./PaxHeaders.21352/elk-6.3.20000644000000000000000000000013213543334761012117 xustar0030 mtime=1569569265.604628548 30 atime=1569569199.886670523 30 ctime=1569569265.604628548 elk-6.3.2/0000755002504400250440000000000013543334761014106 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/PaxHeaders.21352/src0000644000000000000000000000013213543334737012554 xustar0030 mtime=1569569247.304640236 30 atime=1569569237.958646206 30 ctime=1569569247.304640236 elk-6.3.2/src/0000755002504400250440000000000013543334737014700 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/src/PaxHeaders.21352/BLAS0000644000000000000000000000013013543334726013271 xustar0030 mtime=1569569238.223646036 28 atime=1569569237.9666462 30 ctime=1569569238.223646036 elk-6.3.2/src/BLAS/0000755002504400250440000000000013543334726015417 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/src/BLAS/PaxHeaders.21352/Makefile0000644000000000000000000000013013543334725015005 xustar0030 mtime=1569569237.968646199 28 atime=1569569237.9676462 30 ctime=1569569237.968646199 elk-6.3.2/src/BLAS/Makefile0000644002504400250440000000215213543334725017056 0ustar00dewhurstdewhurst00000000000000 AR = ar include ../../make.inc #------------------------------------------------------------------------------- # Suffix Rules #------------------------------------------------------------------------------- .SUFFIXES: .o .f .f.o: $(F77) $(F77_OPTS) -c $< #------------------------------------------------------------------------------- # File dependencies #------------------------------------------------------------------------------- SRC = \ daxpy.f dcabs1.f dcopy.f ddot.f dgemm.f dgemv.f dger.f dnrm2.f \ drot.f dscal.f dspmv.f dspr2.f dswap.f dsymm.f dsymv.f dsyr2.f \ dsyr2k.f dsyrk.f dtrmm.f dtrmv.f dtrsm.f dtrsv.f dzasum.f dznrm2.f \ idamax.f izamax.f lsame.f zaxpy.f zcopy.f zdotc.f zdotu.f zdrot.f \ zdscal.f zgemm.f zgemv.f zgerc.f zgeru.f zhemm.f zhemv.f zher2.f \ zher2k.f zher.f zherk.f zhpmv.f zhpr2.f zhpr.f zscal.f zswap.f \ ztbsv.f ztpmv.f ztpsv.f ztrmm.f ztrmv.f ztrsm.f ztrsv.f OBJ = $(SRC:.f=.o) blas: $(OBJ) $(AR) -rc blas.a $(OBJ) clean: rm -f *.o *.mod *~ *.a ifc* *.gcno gmon.out ls: ls -x --tabsize=0 --width=80 *.f elk-6.3.2/src/BLAS/PaxHeaders.21352/zgemv.f0000644000000000000000000000013213543334725014646 xustar0030 mtime=1569569237.973646196 30 atime=1569569237.972646197 30 ctime=1569569237.973646196 elk-6.3.2/src/BLAS/zgemv.f0000644002504400250440000002224013543334725016715 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA,BETA * INTEGER INCX,INCY,LDA,M,N * CHARACTER TRANS * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEMV performs one of the matrix-vector operations *> *> y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, or *> *> y := alpha*A**H*x + beta*y, *> *> where alpha and beta are scalars, x and y are vectors and A is an *> m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' y := alpha*A*x + beta*y. *> *> TRANS = 'T' or 't' y := alpha*A**T*x + beta*y. *> *> TRANS = 'C' or 'c' y := alpha*A**H*x + beta*y. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix A. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry, the leading m by n part of the array A must *> contain the matrix of coefficients. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, m ). *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n' *> and at least *> ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. *> Before entry, the incremented array X must contain the *> vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is COMPLEX*16 *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then Y need not be set on input. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n' *> and at least *> ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. *> Before entry with BETA non-zero, the incremented array Y *> must contain the vector y. On exit, Y is overwritten by the *> updated vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA INTEGER INCX,INCY,LDA,M,N CHARACTER TRANS * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY LOGICAL NOCONJ * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 1 ELSE IF (M.LT.0) THEN INFO = 2 ELSE IF (N.LT.0) THEN INFO = 3 ELSE IF (LDA.LT.MAX(1,M)) THEN INFO = 6 ELSE IF (INCX.EQ.0) THEN INFO = 8 ELSE IF (INCY.EQ.0) THEN INFO = 11 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZGEMV ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. + ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * NOCONJ = LSAME(TRANS,'T') * * Set LENX and LENY, the lengths of the vectors x and y, and set * up the start points in X and Y. * IF (LSAME(TRANS,'N')) THEN LENX = N LENY = M ELSE LENX = M LENY = N END IF IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (LENX-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (LENY-1)*INCY END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * * First form y := beta*y. * IF (BETA.NE.ONE) THEN IF (INCY.EQ.1) THEN IF (BETA.EQ.ZERO) THEN DO 10 I = 1,LENY Y(I) = ZERO 10 CONTINUE ELSE DO 20 I = 1,LENY Y(I) = BETA*Y(I) 20 CONTINUE END IF ELSE IY = KY IF (BETA.EQ.ZERO) THEN DO 30 I = 1,LENY Y(IY) = ZERO IY = IY + INCY 30 CONTINUE ELSE DO 40 I = 1,LENY Y(IY) = BETA*Y(IY) IY = IY + INCY 40 CONTINUE END IF END IF END IF IF (ALPHA.EQ.ZERO) RETURN IF (LSAME(TRANS,'N')) THEN * * Form y := alpha*A*x + y. * JX = KX IF (INCY.EQ.1) THEN DO 60 J = 1,N TEMP = ALPHA*X(JX) DO 50 I = 1,M Y(I) = Y(I) + TEMP*A(I,J) 50 CONTINUE JX = JX + INCX 60 CONTINUE ELSE DO 80 J = 1,N TEMP = ALPHA*X(JX) IY = KY DO 70 I = 1,M Y(IY) = Y(IY) + TEMP*A(I,J) IY = IY + INCY 70 CONTINUE JX = JX + INCX 80 CONTINUE END IF ELSE * * Form y := alpha*A**T*x + y or y := alpha*A**H*x + y. * JY = KY IF (INCX.EQ.1) THEN DO 110 J = 1,N TEMP = ZERO IF (NOCONJ) THEN DO 90 I = 1,M TEMP = TEMP + A(I,J)*X(I) 90 CONTINUE ELSE DO 100 I = 1,M TEMP = TEMP + DCONJG(A(I,J))*X(I) 100 CONTINUE END IF Y(JY) = Y(JY) + ALPHA*TEMP JY = JY + INCY 110 CONTINUE ELSE DO 140 J = 1,N TEMP = ZERO IX = KX IF (NOCONJ) THEN DO 120 I = 1,M TEMP = TEMP + A(I,J)*X(IX) IX = IX + INCX 120 CONTINUE ELSE DO 130 I = 1,M TEMP = TEMP + DCONJG(A(I,J))*X(IX) IX = IX + INCX 130 CONTINUE END IF Y(JY) = Y(JY) + ALPHA*TEMP JY = JY + INCY 140 CONTINUE END IF END IF * RETURN * * End of ZGEMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dcabs1.f0000644000000000000000000000013213543334725014653 xustar0030 mtime=1569569237.977646193 30 atime=1569569237.976646194 30 ctime=1569569237.977646193 elk-6.3.2/src/BLAS/dcabs1.f0000644002504400250440000000256513543334725016732 0ustar00dewhurstdewhurst00000000000000*> \brief \b DCABS1 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DCABS1(Z) * * .. Scalar Arguments .. * COMPLEX*16 Z * .. * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DCABS1 computes |Re(.)| + |Im(.)| of a double complex number *> \endverbatim * * Arguments: * ========== * *> \param[in] Z *> \verbatim *> Z is COMPLEX*16 *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * * ===================================================================== DOUBLE PRECISION FUNCTION DCABS1(Z) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. COMPLEX*16 Z * .. * .. * ===================================================================== * * .. Intrinsic Functions .. INTRINSIC ABS,DBLE,DIMAG * DCABS1 = ABS(DBLE(Z)) + ABS(DIMAG(Z)) RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dspmv.f0000644000000000000000000000013013543334725014645 xustar0029 mtime=1569569237.98264619 30 atime=1569569237.981646191 29 ctime=1569569237.98264619 elk-6.3.2/src/BLAS/dspmv.f0000644002504400250440000002237213543334725016724 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSPMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER INCX,INCY,N * CHARACTER UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION AP(*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSPMV performs the matrix-vector operation *> *> y := alpha*A*x + beta*y, *> *> where alpha and beta are scalars, x and y are n element vectors and *> A is an n by n symmetric matrix, supplied in packed form. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the matrix A is supplied in the packed *> array AP as follows: *> *> UPLO = 'U' or 'u' The upper triangular part of A is *> supplied in AP. *> *> UPLO = 'L' or 'l' The lower triangular part of A is *> supplied in AP. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular part of the symmetric matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) *> and a( 2, 2 ) respectively, and so on. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular part of the symmetric matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) *> and a( 3, 1 ) respectively, and so on. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then Y need not be set on input. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. On exit, Y is overwritten by the updated *> vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DSPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER INCX,INCY,N CHARACTER UPLO * .. * .. Array Arguments .. DOUBLE PRECISION AP(*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 6 ELSE IF (INCY.EQ.0) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSPMV ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * Set up the start points in X and Y. * IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF * * Start the operations. In this version the elements of the array AP * are accessed sequentially with one pass through AP. * * First form y := beta*y. * IF (BETA.NE.ONE) THEN IF (INCY.EQ.1) THEN IF (BETA.EQ.ZERO) THEN DO 10 I = 1,N Y(I) = ZERO 10 CONTINUE ELSE DO 20 I = 1,N Y(I) = BETA*Y(I) 20 CONTINUE END IF ELSE IY = KY IF (BETA.EQ.ZERO) THEN DO 30 I = 1,N Y(IY) = ZERO IY = IY + INCY 30 CONTINUE ELSE DO 40 I = 1,N Y(IY) = BETA*Y(IY) IY = IY + INCY 40 CONTINUE END IF END IF END IF IF (ALPHA.EQ.ZERO) RETURN KK = 1 IF (LSAME(UPLO,'U')) THEN * * Form y when AP contains the upper triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO K = KK DO 50 I = 1,J - 1 Y(I) = Y(I) + TEMP1*AP(K) TEMP2 = TEMP2 + AP(K)*X(I) K = K + 1 50 CONTINUE Y(J) = Y(J) + TEMP1*AP(KK+J-1) + ALPHA*TEMP2 KK = KK + J 60 CONTINUE ELSE JX = KX JY = KY DO 80 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO IX = KX IY = KY DO 70 K = KK,KK + J - 2 Y(IY) = Y(IY) + TEMP1*AP(K) TEMP2 = TEMP2 + AP(K)*X(IX) IX = IX + INCX IY = IY + INCY 70 CONTINUE Y(JY) = Y(JY) + TEMP1*AP(KK+J-1) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY KK = KK + J 80 CONTINUE END IF ELSE * * Form y when AP contains the lower triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 100 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO Y(J) = Y(J) + TEMP1*AP(KK) K = KK + 1 DO 90 I = J + 1,N Y(I) = Y(I) + TEMP1*AP(K) TEMP2 = TEMP2 + AP(K)*X(I) K = K + 1 90 CONTINUE Y(J) = Y(J) + ALPHA*TEMP2 KK = KK + (N-J+1) 100 CONTINUE ELSE JX = KX JY = KY DO 120 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO Y(JY) = Y(JY) + TEMP1*AP(KK) IX = JX IY = JY DO 110 K = KK + 1,KK + N - J IX = IX + INCX IY = IY + INCY Y(IY) = Y(IY) + TEMP1*AP(K) TEMP2 = TEMP2 + AP(K)*X(IX) 110 CONTINUE Y(JY) = Y(JY) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY KK = KK + (N-J+1) 120 CONTINUE END IF END IF * RETURN * * End of DSPMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dspr2.f0000644000000000000000000000013213543334725014550 xustar0030 mtime=1569569237.987646187 30 atime=1569569237.985646188 30 ctime=1569569237.987646187 elk-6.3.2/src/BLAS/dspr2.f0000644002504400250440000002064613543334725016627 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSPR2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER INCX,INCY,N * CHARACTER UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION AP(*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSPR2 performs the symmetric rank 2 operation *> *> A := alpha*x*y**T + alpha*y*x**T + A, *> *> where alpha is a scalar, x and y are n element vectors and A is an *> n by n symmetric matrix, supplied in packed form. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the matrix A is supplied in the packed *> array AP as follows: *> *> UPLO = 'U' or 'u' The upper triangular part of A is *> supplied in AP. *> *> UPLO = 'L' or 'l' The lower triangular part of A is *> supplied in AP. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular part of the symmetric matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) *> and a( 2, 2 ) respectively, and so on. On exit, the array *> AP is overwritten by the upper triangular part of the *> updated matrix. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular part of the symmetric matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) *> and a( 3, 1 ) respectively, and so on. On exit, the array *> AP is overwritten by the lower triangular part of the *> updated matrix. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DSPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER INCX,INCY,N CHARACTER UPLO * .. * .. Array Arguments .. DOUBLE PRECISION AP(*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER (ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSPR2 ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Set up the start points in X and Y if the increments are not both * unity. * IF ((INCX.NE.1) .OR. (INCY.NE.1)) THEN IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF JX = KX JY = KY END IF * * Start the operations. In this version the elements of the array AP * are accessed sequentially with one pass through AP. * KK = 1 IF (LSAME(UPLO,'U')) THEN * * Form A when upper triangle is stored in AP. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 20 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*Y(J) TEMP2 = ALPHA*X(J) K = KK DO 10 I = 1,J AP(K) = AP(K) + X(I)*TEMP1 + Y(I)*TEMP2 K = K + 1 10 CONTINUE END IF KK = KK + J 20 CONTINUE ELSE DO 40 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*Y(JY) TEMP2 = ALPHA*X(JX) IX = KX IY = KY DO 30 K = KK,KK + J - 1 AP(K) = AP(K) + X(IX)*TEMP1 + Y(IY)*TEMP2 IX = IX + INCX IY = IY + INCY 30 CONTINUE END IF JX = JX + INCX JY = JY + INCY KK = KK + J 40 CONTINUE END IF ELSE * * Form A when lower triangle is stored in AP. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*Y(J) TEMP2 = ALPHA*X(J) K = KK DO 50 I = J,N AP(K) = AP(K) + X(I)*TEMP1 + Y(I)*TEMP2 K = K + 1 50 CONTINUE END IF KK = KK + N - J + 1 60 CONTINUE ELSE DO 80 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*Y(JY) TEMP2 = ALPHA*X(JX) IX = JX IY = JY DO 70 K = KK,KK + N - J AP(K) = AP(K) + X(IX)*TEMP1 + Y(IY)*TEMP2 IX = IX + INCX IY = IY + INCY 70 CONTINUE END IF JX = JX + INCX JY = JY + INCY KK = KK + N - J + 1 80 CONTINUE END IF END IF * RETURN * * End of DSPR2 . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zgeru.f0000644000000000000000000000013213543334725014652 xustar0030 mtime=1569569237.991646185 30 atime=1569569237.990646185 30 ctime=1569569237.991646185 elk-6.3.2/src/BLAS/zgeru.f0000644002504400250440000001302013543334725016715 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGERU * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * INTEGER INCX,INCY,LDA,M,N * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGERU performs the rank 1 operation *> *> A := alpha*x*y**T + A, *> *> where alpha is a scalar, x is an m element vector, y is an n element *> vector and A is an m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix A. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( m - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the m *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry, the leading m by n part of the array A must *> contain the matrix of coefficients. On exit, A is *> overwritten by the updated matrix. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA INTEGER INCX,INCY,LDA,M,N * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JY,KX * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (M.LT.0) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 ELSE IF (LDA.LT.MAX(1,M)) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZGERU ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (INCY.GT.0) THEN JY = 1 ELSE JY = 1 - (N-1)*INCY END IF IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (Y(JY).NE.ZERO) THEN TEMP = ALPHA*Y(JY) DO 10 I = 1,M A(I,J) = A(I,J) + X(I)*TEMP 10 CONTINUE END IF JY = JY + INCY 20 CONTINUE ELSE IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (M-1)*INCX END IF DO 40 J = 1,N IF (Y(JY).NE.ZERO) THEN TEMP = ALPHA*Y(JY) IX = KX DO 30 I = 1,M A(I,J) = A(I,J) + X(IX)*TEMP IX = IX + INCX 30 CONTINUE END IF JY = JY + INCY 40 CONTINUE END IF * RETURN * * End of ZGERU . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztbsv.f0000644000000000000000000000013213543334725014666 xustar0030 mtime=1569569237.996646181 30 atime=1569569237.994646183 30 ctime=1569569237.996646181 elk-6.3.2/src/BLAS/ztbsv.f0000644002504400250440000003351613543334725016745 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTBSV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,K,LDA,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTBSV solves one of the systems of equations *> *> A*x = b, or A**T*x = b, or A**H*x = b, *> *> where b and x are n element vectors and A is an n by n unit, or *> non-unit, upper or lower triangular band matrix, with ( k + 1 ) *> diagonals. *> *> No test for singularity or near-singularity is included in this *> routine. Such tests must be performed before calling this routine. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the equations to be solved as *> follows: *> *> TRANS = 'N' or 'n' A*x = b. *> *> TRANS = 'T' or 't' A**T*x = b. *> *> TRANS = 'C' or 'c' A**H*x = b. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry with UPLO = 'U' or 'u', K specifies the number of *> super-diagonals of the matrix A. *> On entry with UPLO = 'L' or 'l', K specifies the number of *> sub-diagonals of the matrix A. *> K must satisfy 0 .le. K. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading ( k + 1 ) *> by n part of the array A must contain the upper triangular *> band part of the matrix of coefficients, supplied column by *> column, with the leading diagonal of the matrix in row *> ( k + 1 ) of the array, the first super-diagonal starting at *> position 2 in row k, and so on. The top left k by k triangle *> of the array A is not referenced. *> The following program segment will transfer an upper *> triangular band matrix from conventional full matrix storage *> to band storage: *> *> DO 20, J = 1, N *> M = K + 1 - J *> DO 10, I = MAX( 1, J - K ), J *> A( M + I, J ) = matrix( I, J ) *> 10 CONTINUE *> 20 CONTINUE *> *> Before entry with UPLO = 'L' or 'l', the leading ( k + 1 ) *> by n part of the array A must contain the lower triangular *> band part of the matrix of coefficients, supplied column by *> column, with the leading diagonal of the matrix in row 1 of *> the array, the first sub-diagonal starting at position 1 in *> row 2, and so on. The bottom right k by k triangle of the *> array A is not referenced. *> The following program segment will transfer a lower *> triangular band matrix from conventional full matrix storage *> to band storage: *> *> DO 20, J = 1, N *> M = 1 - J *> DO 10, I = J, MIN( N, J + K ) *> A( M + I, J ) = matrix( I, J ) *> 10 CONTINUE *> 20 CONTINUE *> *> Note that when DIAG = 'U' or 'u' the elements of the array A *> corresponding to the diagonal elements of the matrix are not *> referenced, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> ( k + 1 ). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element right-hand side vector b. On exit, X is overwritten *> with the solution vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,K,LDA,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,KPLUS1,KX,L LOGICAL NOCONJ,NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX,MIN * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (K.LT.0) THEN INFO = 5 ELSE IF (LDA.LT. (K+1)) THEN INFO = 7 ELSE IF (INCX.EQ.0) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTBSV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOCONJ = LSAME(TRANS,'T') NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of A are * accessed by sequentially with one pass through A. * IF (LSAME(TRANS,'N')) THEN * * Form x := inv( A )*x. * IF (LSAME(UPLO,'U')) THEN KPLUS1 = K + 1 IF (INCX.EQ.1) THEN DO 20 J = N,1,-1 IF (X(J).NE.ZERO) THEN L = KPLUS1 - J IF (NOUNIT) X(J) = X(J)/A(KPLUS1,J) TEMP = X(J) DO 10 I = J - 1,MAX(1,J-K),-1 X(I) = X(I) - TEMP*A(L+I,J) 10 CONTINUE END IF 20 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 40 J = N,1,-1 KX = KX - INCX IF (X(JX).NE.ZERO) THEN IX = KX L = KPLUS1 - J IF (NOUNIT) X(JX) = X(JX)/A(KPLUS1,J) TEMP = X(JX) DO 30 I = J - 1,MAX(1,J-K),-1 X(IX) = X(IX) - TEMP*A(L+I,J) IX = IX - INCX 30 CONTINUE END IF JX = JX - INCX 40 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 60 J = 1,N IF (X(J).NE.ZERO) THEN L = 1 - J IF (NOUNIT) X(J) = X(J)/A(1,J) TEMP = X(J) DO 50 I = J + 1,MIN(N,J+K) X(I) = X(I) - TEMP*A(L+I,J) 50 CONTINUE END IF 60 CONTINUE ELSE JX = KX DO 80 J = 1,N KX = KX + INCX IF (X(JX).NE.ZERO) THEN IX = KX L = 1 - J IF (NOUNIT) X(JX) = X(JX)/A(1,J) TEMP = X(JX) DO 70 I = J + 1,MIN(N,J+K) X(IX) = X(IX) - TEMP*A(L+I,J) IX = IX + INCX 70 CONTINUE END IF JX = JX + INCX 80 CONTINUE END IF END IF ELSE * * Form x := inv( A**T )*x or x := inv( A**H )*x. * IF (LSAME(UPLO,'U')) THEN KPLUS1 = K + 1 IF (INCX.EQ.1) THEN DO 110 J = 1,N TEMP = X(J) L = KPLUS1 - J IF (NOCONJ) THEN DO 90 I = MAX(1,J-K),J - 1 TEMP = TEMP - A(L+I,J)*X(I) 90 CONTINUE IF (NOUNIT) TEMP = TEMP/A(KPLUS1,J) ELSE DO 100 I = MAX(1,J-K),J - 1 TEMP = TEMP - DCONJG(A(L+I,J))*X(I) 100 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(KPLUS1,J)) END IF X(J) = TEMP 110 CONTINUE ELSE JX = KX DO 140 J = 1,N TEMP = X(JX) IX = KX L = KPLUS1 - J IF (NOCONJ) THEN DO 120 I = MAX(1,J-K),J - 1 TEMP = TEMP - A(L+I,J)*X(IX) IX = IX + INCX 120 CONTINUE IF (NOUNIT) TEMP = TEMP/A(KPLUS1,J) ELSE DO 130 I = MAX(1,J-K),J - 1 TEMP = TEMP - DCONJG(A(L+I,J))*X(IX) IX = IX + INCX 130 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(KPLUS1,J)) END IF X(JX) = TEMP JX = JX + INCX IF (J.GT.K) KX = KX + INCX 140 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 170 J = N,1,-1 TEMP = X(J) L = 1 - J IF (NOCONJ) THEN DO 150 I = MIN(N,J+K),J + 1,-1 TEMP = TEMP - A(L+I,J)*X(I) 150 CONTINUE IF (NOUNIT) TEMP = TEMP/A(1,J) ELSE DO 160 I = MIN(N,J+K),J + 1,-1 TEMP = TEMP - DCONJG(A(L+I,J))*X(I) 160 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(1,J)) END IF X(J) = TEMP 170 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 200 J = N,1,-1 TEMP = X(JX) IX = KX L = 1 - J IF (NOCONJ) THEN DO 180 I = MIN(N,J+K),J + 1,-1 TEMP = TEMP - A(L+I,J)*X(IX) IX = IX - INCX 180 CONTINUE IF (NOUNIT) TEMP = TEMP/A(1,J) ELSE DO 190 I = MIN(N,J+K),J + 1,-1 TEMP = TEMP - DCONJG(A(L+I,J))*X(IX) IX = IX - INCX 190 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(1,J)) END IF X(JX) = TEMP JX = JX - INCX IF ((N-J).GE.K) KX = KX - INCX 200 CONTINUE END IF END IF END IF * RETURN * * End of ZTBSV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zgemm.f0000644000000000000000000000013213543334726014636 xustar0030 mtime=1569569238.002646177 30 atime=1569569238.000646179 30 ctime=1569569238.002646177 elk-6.3.2/src/BLAS/zgemm.f0000644002504400250440000003377513543334726016724 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEMM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA,BETA * INTEGER K,LDA,LDB,LDC,M,N * CHARACTER TRANSA,TRANSB * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEMM performs one of the matrix-matrix operations *> *> C := alpha*op( A )*op( B ) + beta*C, *> *> where op( X ) is one of *> *> op( X ) = X or op( X ) = X**T or op( X ) = X**H, *> *> alpha and beta are scalars, and A, B and C are matrices, with op( A ) *> an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANSA *> \verbatim *> TRANSA is CHARACTER*1 *> On entry, TRANSA specifies the form of op( A ) to be used in *> the matrix multiplication as follows: *> *> TRANSA = 'N' or 'n', op( A ) = A. *> *> TRANSA = 'T' or 't', op( A ) = A**T. *> *> TRANSA = 'C' or 'c', op( A ) = A**H. *> \endverbatim *> *> \param[in] TRANSB *> \verbatim *> TRANSB is CHARACTER*1 *> On entry, TRANSB specifies the form of op( B ) to be used in *> the matrix multiplication as follows: *> *> TRANSB = 'N' or 'n', op( B ) = B. *> *> TRANSB = 'T' or 't', op( B ) = B**T. *> *> TRANSB = 'C' or 'c', op( B ) = B**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix *> op( A ) and of the matrix C. M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix *> op( B ) and the number of columns of the matrix C. N must be *> at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry, K specifies the number of columns of the matrix *> op( A ) and the number of rows of the matrix op( B ). K must *> be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is *> k when TRANSA = 'N' or 'n', and is m otherwise. *> Before entry with TRANSA = 'N' or 'n', the leading m by k *> part of the array A must contain the matrix A, otherwise *> the leading k by m part of the array A must contain the *> matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When TRANSA = 'N' or 'n' then *> LDA must be at least max( 1, m ), otherwise LDA must be at *> least max( 1, k ). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is COMPLEX*16 array, dimension ( LDB, kb ), where kb is *> n when TRANSB = 'N' or 'n', and is k otherwise. *> Before entry with TRANSB = 'N' or 'n', the leading k by n *> part of the array B must contain the matrix B, otherwise *> the leading n by k part of the array B must contain the *> matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. When TRANSB = 'N' or 'n' then *> LDB must be at least max( 1, k ), otherwise LDB must be at *> least max( 1, n ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is COMPLEX*16 *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then C need not be set on input. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension ( LDC, N ) *> Before entry, the leading m by n part of the array C must *> contain the matrix C, except when beta is zero, in which *> case C need not be set on entry. *> On exit, the array C is overwritten by the m by n matrix *> ( alpha*op( A )*op( B ) + beta*C ). *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA INTEGER K,LDA,LDB,LDC,M,N CHARACTER TRANSA,TRANSB * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,J,L,NCOLA,NROWA,NROWB LOGICAL CONJA,CONJB,NOTA,NOTB * .. * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * * Set NOTA and NOTB as true if A and B respectively are not * conjugated or transposed, set CONJA and CONJB as true if A and * B respectively are to be transposed but not conjugated and set * NROWA, NCOLA and NROWB as the number of rows and columns of A * and the number of rows of B respectively. * NOTA = LSAME(TRANSA,'N') NOTB = LSAME(TRANSB,'N') CONJA = LSAME(TRANSA,'C') CONJB = LSAME(TRANSB,'C') IF (NOTA) THEN NROWA = M NCOLA = K ELSE NROWA = K NCOLA = M END IF IF (NOTB) THEN NROWB = K ELSE NROWB = N END IF * * Test the input parameters. * INFO = 0 IF ((.NOT.NOTA) .AND. (.NOT.CONJA) .AND. + (.NOT.LSAME(TRANSA,'T'))) THEN INFO = 1 ELSE IF ((.NOT.NOTB) .AND. (.NOT.CONJB) .AND. + (.NOT.LSAME(TRANSB,'T'))) THEN INFO = 2 ELSE IF (M.LT.0) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (K.LT.0) THEN INFO = 5 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 8 ELSE IF (LDB.LT.MAX(1,NROWB)) THEN INFO = 10 ELSE IF (LDC.LT.MAX(1,M)) THEN INFO = 13 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZGEMM ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. + (((ALPHA.EQ.ZERO).OR. (K.EQ.0)).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,M C(I,J) = BETA*C(I,J) 30 CONTINUE 40 CONTINUE END IF RETURN END IF * * Start the operations. * IF (NOTB) THEN IF (NOTA) THEN * * Form C := alpha*A*B + beta*C. * DO 90 J = 1,N IF (BETA.EQ.ZERO) THEN DO 50 I = 1,M C(I,J) = ZERO 50 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 60 I = 1,M C(I,J) = BETA*C(I,J) 60 CONTINUE END IF DO 80 L = 1,K TEMP = ALPHA*B(L,J) DO 70 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 70 CONTINUE 80 CONTINUE 90 CONTINUE ELSE IF (CONJA) THEN * * Form C := alpha*A**H*B + beta*C. * DO 120 J = 1,N DO 110 I = 1,M TEMP = ZERO DO 100 L = 1,K TEMP = TEMP + DCONJG(A(L,I))*B(L,J) 100 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 110 CONTINUE 120 CONTINUE ELSE * * Form C := alpha*A**T*B + beta*C * DO 150 J = 1,N DO 140 I = 1,M TEMP = ZERO DO 130 L = 1,K TEMP = TEMP + A(L,I)*B(L,J) 130 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 140 CONTINUE 150 CONTINUE END IF ELSE IF (NOTA) THEN IF (CONJB) THEN * * Form C := alpha*A*B**H + beta*C. * DO 200 J = 1,N IF (BETA.EQ.ZERO) THEN DO 160 I = 1,M C(I,J) = ZERO 160 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 170 I = 1,M C(I,J) = BETA*C(I,J) 170 CONTINUE END IF DO 190 L = 1,K TEMP = ALPHA*DCONJG(B(J,L)) DO 180 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 180 CONTINUE 190 CONTINUE 200 CONTINUE ELSE * * Form C := alpha*A*B**T + beta*C * DO 250 J = 1,N IF (BETA.EQ.ZERO) THEN DO 210 I = 1,M C(I,J) = ZERO 210 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 220 I = 1,M C(I,J) = BETA*C(I,J) 220 CONTINUE END IF DO 240 L = 1,K TEMP = ALPHA*B(J,L) DO 230 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 230 CONTINUE 240 CONTINUE 250 CONTINUE END IF ELSE IF (CONJA) THEN IF (CONJB) THEN * * Form C := alpha*A**H*B**H + beta*C. * DO 280 J = 1,N DO 270 I = 1,M TEMP = ZERO DO 260 L = 1,K TEMP = TEMP + DCONJG(A(L,I))*DCONJG(B(J,L)) 260 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 270 CONTINUE 280 CONTINUE ELSE * * Form C := alpha*A**H*B**T + beta*C * DO 310 J = 1,N DO 300 I = 1,M TEMP = ZERO DO 290 L = 1,K TEMP = TEMP + DCONJG(A(L,I))*B(J,L) 290 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 300 CONTINUE 310 CONTINUE END IF ELSE IF (CONJB) THEN * * Form C := alpha*A**T*B**H + beta*C * DO 340 J = 1,N DO 330 I = 1,M TEMP = ZERO DO 320 L = 1,K TEMP = TEMP + A(L,I)*DCONJG(B(J,L)) 320 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 330 CONTINUE 340 CONTINUE ELSE * * Form C := alpha*A**T*B**T + beta*C * DO 370 J = 1,N DO 360 I = 1,M TEMP = ZERO DO 350 L = 1,K TEMP = TEMP + A(L,I)*B(J,L) 350 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 360 CONTINUE 370 CONTINUE END IF END IF * RETURN * * End of ZGEMM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/daxpy.f0000644000000000000000000000013213543334726014644 xustar0030 mtime=1569569238.006646175 30 atime=1569569238.005646176 30 ctime=1569569238.006646175 elk-6.3.2/src/BLAS/daxpy.f0000644002504400250440000000664513543334726016726 0ustar00dewhurstdewhurst00000000000000*> \brief \b DAXPY * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY) * * .. Scalar Arguments .. * DOUBLE PRECISION DA * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*),DY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DAXPY constant times a vector plus a vector. *> uses unrolled loops for increments equal to one. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] DA *> \verbatim *> DA is DOUBLE PRECISION *> On entry, DA specifies the scalar alpha. *> \endverbatim *> *> \param[in] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim *> *> \param[in,out] DY *> \verbatim *> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of DY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DA INTEGER INCX,INCY,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*),DY(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,IX,IY,M,MP1 * .. * .. Intrinsic Functions .. INTRINSIC MOD * .. IF (N.LE.0) RETURN IF (DA.EQ.0.0d0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * * * clean-up loop * M = MOD(N,4) IF (M.NE.0) THEN DO I = 1,M DY(I) = DY(I) + DA*DX(I) END DO END IF IF (N.LT.4) RETURN MP1 = M + 1 DO I = MP1,N,4 DY(I) = DY(I) + DA*DX(I) DY(I+1) = DY(I+1) + DA*DX(I+1) DY(I+2) = DY(I+2) + DA*DX(I+2) DY(I+3) = DY(I+3) + DA*DX(I+3) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N DY(IY) = DY(IY) + DA*DX(IX) IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dcopy.f0000644000000000000000000000013213543334726014635 xustar0030 mtime=1569569238.010646172 30 atime=1569569238.009646173 30 ctime=1569569238.010646172 elk-6.3.2/src/BLAS/dcopy.f0000644002504400250440000000632313543334726016710 0ustar00dewhurstdewhurst00000000000000*> \brief \b DCOPY * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DCOPY(N,DX,INCX,DY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*),DY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DCOPY copies a vector, x, to a vector, y. *> uses unrolled loops for increments equal to 1. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim *> *> \param[out] DY *> \verbatim *> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of DY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE DCOPY(N,DX,INCX,DY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*),DY(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,IX,IY,M,MP1 * .. * .. Intrinsic Functions .. INTRINSIC MOD * .. IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * * * clean-up loop * M = MOD(N,7) IF (M.NE.0) THEN DO I = 1,M DY(I) = DX(I) END DO IF (N.LT.7) RETURN END IF MP1 = M + 1 DO I = MP1,N,7 DY(I) = DX(I) DY(I+1) = DX(I+1) DY(I+2) = DX(I+2) DY(I+3) = DX(I+3) DY(I+4) = DX(I+4) DY(I+5) = DX(I+5) DY(I+6) = DX(I+6) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N DY(IY) = DX(IX) IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zdotc.f0000644000000000000000000000012713543334726014646 xustar0029 mtime=1569569238.01464617 29 atime=1569569238.01364617 29 ctime=1569569238.01464617 elk-6.3.2/src/BLAS/zdotc.f0000644002504400250440000000564413543334726016722 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZDOTC * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * COMPLEX*16 FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*),ZY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZDOTC forms the dot product of two complex vectors *> ZDOTC = X^H * Y *> *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] ZX *> \verbatim *> ZX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim *> *> \param[in] ZY *> \verbatim *> ZY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of ZY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== COMPLEX*16 FUNCTION ZDOTC(N,ZX,INCX,ZY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*),ZY(*) * .. * * ===================================================================== * * .. Local Scalars .. COMPLEX*16 ZTEMP INTEGER I,IX,IY * .. * .. Intrinsic Functions .. INTRINSIC DCONJG * .. ZTEMP = (0.0d0,0.0d0) ZDOTC = (0.0d0,0.0d0) IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * DO I = 1,N ZTEMP = ZTEMP + DCONJG(ZX(I))*ZY(I) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N ZTEMP = ZTEMP + DCONJG(ZX(IX))*ZY(IY) IX = IX + INCX IY = IY + INCY END DO END IF ZDOTC = ZTEMP RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zhemv.f0000644000000000000000000000013213543334726014650 xustar0030 mtime=1569569238.019646167 30 atime=1569569238.018646167 30 ctime=1569569238.019646167 elk-6.3.2/src/BLAS/zhemv.f0000644002504400250440000002255413543334726016727 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHEMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHEMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA,BETA * INTEGER INCX,INCY,LDA,N * CHARACTER UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEMV performs the matrix-vector operation *> *> y := alpha*A*x + beta*y, *> *> where alpha and beta are scalars, x and y are n element vectors and *> A is an n by n hermitian matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array A is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of A *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of A *> is to be referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular part of the hermitian matrix and the strictly *> lower triangular part of A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular part of the hermitian matrix and the strictly *> upper triangular part of A is not referenced. *> Note that the imaginary parts of the diagonal elements need *> not be set and are assumed to be zero. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is COMPLEX*16 *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then Y need not be set on input. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. On exit, Y is overwritten by the updated *> vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHEMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA INTEGER INCX,INCY,LDA,N CHARACTER UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 5 ELSE IF (INCX.EQ.0) THEN INFO = 7 ELSE IF (INCY.EQ.0) THEN INFO = 10 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHEMV ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * Set up the start points in X and Y. * IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through the triangular part * of A. * * First form y := beta*y. * IF (BETA.NE.ONE) THEN IF (INCY.EQ.1) THEN IF (BETA.EQ.ZERO) THEN DO 10 I = 1,N Y(I) = ZERO 10 CONTINUE ELSE DO 20 I = 1,N Y(I) = BETA*Y(I) 20 CONTINUE END IF ELSE IY = KY IF (BETA.EQ.ZERO) THEN DO 30 I = 1,N Y(IY) = ZERO IY = IY + INCY 30 CONTINUE ELSE DO 40 I = 1,N Y(IY) = BETA*Y(IY) IY = IY + INCY 40 CONTINUE END IF END IF END IF IF (ALPHA.EQ.ZERO) RETURN IF (LSAME(UPLO,'U')) THEN * * Form y when A is stored in upper triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO DO 50 I = 1,J - 1 Y(I) = Y(I) + TEMP1*A(I,J) TEMP2 = TEMP2 + DCONJG(A(I,J))*X(I) 50 CONTINUE Y(J) = Y(J) + TEMP1*DBLE(A(J,J)) + ALPHA*TEMP2 60 CONTINUE ELSE JX = KX JY = KY DO 80 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO IX = KX IY = KY DO 70 I = 1,J - 1 Y(IY) = Y(IY) + TEMP1*A(I,J) TEMP2 = TEMP2 + DCONJG(A(I,J))*X(IX) IX = IX + INCX IY = IY + INCY 70 CONTINUE Y(JY) = Y(JY) + TEMP1*DBLE(A(J,J)) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY 80 CONTINUE END IF ELSE * * Form y when A is stored in lower triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 100 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO Y(J) = Y(J) + TEMP1*DBLE(A(J,J)) DO 90 I = J + 1,N Y(I) = Y(I) + TEMP1*A(I,J) TEMP2 = TEMP2 + DCONJG(A(I,J))*X(I) 90 CONTINUE Y(J) = Y(J) + ALPHA*TEMP2 100 CONTINUE ELSE JX = KX JY = KY DO 120 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO Y(JY) = Y(JY) + TEMP1*DBLE(A(J,J)) IX = JX IY = JY DO 110 I = J + 1,N IX = IX + INCX IY = IY + INCY Y(IY) = Y(IY) + TEMP1*A(I,J) TEMP2 = TEMP2 + DCONJG(A(I,J))*X(IX) 110 CONTINUE Y(JY) = Y(JY) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY 120 CONTINUE END IF END IF * RETURN * * End of ZHEMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zaxpy.f0000644000000000000000000000013213543334726014672 xustar0030 mtime=1569569238.023646164 30 atime=1569569238.022646165 30 ctime=1569569238.023646164 elk-6.3.2/src/BLAS/zaxpy.f0000644002504400250440000000600413543334726016741 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZAXPY * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZAXPY(N,ZA,ZX,INCX,ZY,INCY) * * .. Scalar Arguments .. * COMPLEX*16 ZA * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*),ZY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZAXPY constant times a vector plus a vector. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] ZA *> \verbatim *> ZA is COMPLEX*16 *> On entry, ZA specifies the scalar alpha. *> \endverbatim *> *> \param[in] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim *> *> \param[in,out] ZY *> \verbatim *> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of ZY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE ZAXPY(N,ZA,ZX,INCX,ZY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. COMPLEX*16 ZA INTEGER INCX,INCY,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*),ZY(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,IX,IY * .. * .. External Functions .. DOUBLE PRECISION DCABS1 EXTERNAL DCABS1 * .. IF (N.LE.0) RETURN IF (DCABS1(ZA).EQ.0.0d0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * DO I = 1,N ZY(I) = ZY(I) + ZA*ZX(I) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N ZY(IY) = ZY(IY) + ZA*ZX(IX) IX = IX + INCX IY = IY + INCY END DO END IF * RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zdotu.f0000644000000000000000000000013213543334726014664 xustar0030 mtime=1569569238.027646162 30 atime=1569569238.026646162 30 ctime=1569569238.027646162 elk-6.3.2/src/BLAS/zdotu.f0000644002504400250440000000552413543334726016741 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZDOTU * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*),ZY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZDOTU forms the dot product of two complex vectors *> ZDOTU = X^T * Y *> *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] ZX *> \verbatim *> ZX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim *> *> \param[in] ZY *> \verbatim *> ZY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of ZY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== COMPLEX*16 FUNCTION ZDOTU(N,ZX,INCX,ZY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*),ZY(*) * .. * * ===================================================================== * * .. Local Scalars .. COMPLEX*16 ZTEMP INTEGER I,IX,IY * .. ZTEMP = (0.0d0,0.0d0) ZDOTU = (0.0d0,0.0d0) IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * DO I = 1,N ZTEMP = ZTEMP + ZX(I)*ZY(I) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N ZTEMP = ZTEMP + ZX(IX)*ZY(IY) IX = IX + INCX IY = IY + INCY END DO END IF ZDOTU = ZTEMP RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zcopy.f0000644000000000000000000000013213543334726014663 xustar0030 mtime=1569569238.032646158 30 atime=1569569238.031646159 30 ctime=1569569238.032646158 elk-6.3.2/src/BLAS/zcopy.f0000644002504400250440000000526613543334726016743 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZCOPY * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZCOPY(N,ZX,INCX,ZY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*),ZY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZCOPY copies a vector, x, to a vector, y. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim *> *> \param[out] ZY *> \verbatim *> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of ZY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 4/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE ZCOPY(N,ZX,INCX,ZY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*),ZY(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,IX,IY * .. IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * DO I = 1,N ZY(I) = ZX(I) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N ZY(IY) = ZX(IX) IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dscal.f0000644000000000000000000000013213543334726014605 xustar0030 mtime=1569569238.036646156 30 atime=1569569238.035646156 30 ctime=1569569238.036646156 elk-6.3.2/src/BLAS/dscal.f0000644002504400250440000000566413543334726016667 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSCAL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSCAL(N,DA,DX,INCX) * * .. Scalar Arguments .. * DOUBLE PRECISION DA * INTEGER INCX,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSCAL scales a vector by a constant. *> uses unrolled loops for increment equal to 1. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] DA *> \verbatim *> DA is DOUBLE PRECISION *> On entry, DA specifies the scalar alpha. *> \endverbatim *> *> \param[in,out] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 3/93 to return if incx .le. 0. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE DSCAL(N,DA,DX,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DA INTEGER INCX,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,M,MP1,NINCX * .. * .. Intrinsic Functions .. INTRINSIC MOD * .. IF (N.LE.0 .OR. INCX.LE.0) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * * * clean-up loop * M = MOD(N,5) IF (M.NE.0) THEN DO I = 1,M DX(I) = DA*DX(I) END DO IF (N.LT.5) RETURN END IF MP1 = M + 1 DO I = MP1,N,5 DX(I) = DA*DX(I) DX(I+1) = DA*DX(I+1) DX(I+2) = DA*DX(I+2) DX(I+3) = DA*DX(I+3) DX(I+4) = DA*DX(I+4) END DO ELSE * * code for increment not equal to 1 * NINCX = N*INCX DO I = 1,NINCX,INCX DX(I) = DA*DX(I) END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dnrm2.f0000644000000000000000000000013213543334726014541 xustar0030 mtime=1569569238.040646153 30 atime=1569569238.039646154 30 ctime=1569569238.040646153 elk-6.3.2/src/BLAS/dnrm2.f0000644002504400250440000000600113543334726016605 0ustar00dewhurstdewhurst00000000000000*> \brief \b DNRM2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * .. * .. Array Arguments .. * DOUBLE PRECISION X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DNRM2 returns the euclidean norm of a vector via the function *> name, so that *> *> DNRM2 := sqrt( x'*x ) *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> -- This version written on 25-October-1982. *> Modified on 14-October-1993 to inline the call to DLASSQ. *> Sven Hammarling, Nag Ltd. *> \endverbatim *> * ===================================================================== DOUBLE PRECISION FUNCTION DNRM2(N,X,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,N * .. * .. Array Arguments .. DOUBLE PRECISION X(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION ABSXI,NORM,SCALE,SSQ INTEGER IX * .. * .. Intrinsic Functions .. INTRINSIC ABS,SQRT * .. IF (N.LT.1 .OR. INCX.LT.1) THEN NORM = ZERO ELSE IF (N.EQ.1) THEN NORM = ABS(X(1)) ELSE SCALE = ZERO SSQ = ONE * The following loop is equivalent to this call to the LAPACK * auxiliary routine: * CALL DLASSQ( N, X, INCX, SCALE, SSQ ) * DO 10 IX = 1,1 + (N-1)*INCX,INCX IF (X(IX).NE.ZERO) THEN ABSXI = ABS(X(IX)) IF (SCALE.LT.ABSXI) THEN SSQ = ONE + SSQ* (SCALE/ABSXI)**2 SCALE = ABSXI ELSE SSQ = SSQ + (ABSXI/SCALE)**2 END IF END IF 10 CONTINUE NORM = SCALE*SQRT(SSQ) END IF * DNRM2 = NORM RETURN * * End of DNRM2. * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ddot.f0000644000000000000000000000013013543334726014447 xustar0029 mtime=1569569238.04564615 30 atime=1569569238.044646151 29 ctime=1569569238.04564615 elk-6.3.2/src/BLAS/ddot.f0000644002504400250440000000652313543334726016526 0ustar00dewhurstdewhurst00000000000000*> \brief \b DDOT * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*),DY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DDOT forms the dot product of two vectors. *> uses unrolled loops for increments equal to one. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim *> *> \param[in] DY *> \verbatim *> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of DY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*),DY(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DTEMP INTEGER I,IX,IY,M,MP1 * .. * .. Intrinsic Functions .. INTRINSIC MOD * .. DDOT = 0.0d0 DTEMP = 0.0d0 IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * * * clean-up loop * M = MOD(N,5) IF (M.NE.0) THEN DO I = 1,M DTEMP = DTEMP + DX(I)*DY(I) END DO IF (N.LT.5) THEN DDOT=DTEMP RETURN END IF END IF MP1 = M + 1 DO I = MP1,N,5 DTEMP = DTEMP + DX(I)*DY(I) + DX(I+1)*DY(I+1) + $ DX(I+2)*DY(I+2) + DX(I+3)*DY(I+3) + DX(I+4)*DY(I+4) END DO ELSE * * code for unequal increments or equal increments * not equal to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N DTEMP = DTEMP + DX(IX)*DY(IY) IX = IX + INCX IY = IY + INCY END DO END IF DDOT = DTEMP RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zher.f0000644000000000000000000000013213543334726014467 xustar0030 mtime=1569569238.049646148 30 atime=1569569238.048646148 30 ctime=1569569238.049646148 elk-6.3.2/src/BLAS/zher.f0000644002504400250440000001750413543334726016545 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHER * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHER(UPLO,N,ALPHA,X,INCX,A,LDA) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER INCX,LDA,N * CHARACTER UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHER performs the hermitian rank 1 operation *> *> A := alpha*x*x**H + A, *> *> where alpha is a real scalar, x is an n element vector and A is an *> n by n hermitian matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array A is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of A *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of A *> is to be referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular part of the hermitian matrix and the strictly *> lower triangular part of A is not referenced. On exit, the *> upper triangular part of the array A is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular part of the hermitian matrix and the strictly *> upper triangular part of A is not referenced. On exit, the *> lower triangular part of the array A is overwritten by the *> lower triangular part of the updated matrix. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero, and on exit they *> are set to zero. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHER(UPLO,N,ALPHA,X,INCX,A,LDA) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER INCX,LDA,N CHARACTER UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,KX * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 7 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHER ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (ALPHA.EQ.DBLE(ZERO))) RETURN * * Set the start point in X if the increment is not unity. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through the triangular part * of A. * IF (LSAME(UPLO,'U')) THEN * * Form A when A is stored in upper triangle. * IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(J)) DO 10 I = 1,J - 1 A(I,J) = A(I,J) + X(I)*TEMP 10 CONTINUE A(J,J) = DBLE(A(J,J)) + DBLE(X(J)*TEMP) ELSE A(J,J) = DBLE(A(J,J)) END IF 20 CONTINUE ELSE JX = KX DO 40 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(JX)) IX = KX DO 30 I = 1,J - 1 A(I,J) = A(I,J) + X(IX)*TEMP IX = IX + INCX 30 CONTINUE A(J,J) = DBLE(A(J,J)) + DBLE(X(JX)*TEMP) ELSE A(J,J) = DBLE(A(J,J)) END IF JX = JX + INCX 40 CONTINUE END IF ELSE * * Form A when A is stored in lower triangle. * IF (INCX.EQ.1) THEN DO 60 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(J)) A(J,J) = DBLE(A(J,J)) + DBLE(TEMP*X(J)) DO 50 I = J + 1,N A(I,J) = A(I,J) + X(I)*TEMP 50 CONTINUE ELSE A(J,J) = DBLE(A(J,J)) END IF 60 CONTINUE ELSE JX = KX DO 80 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(JX)) A(J,J) = DBLE(A(J,J)) + DBLE(TEMP*X(JX)) IX = JX DO 70 I = J + 1,N IX = IX + INCX A(I,J) = A(I,J) + X(IX)*TEMP 70 CONTINUE ELSE A(J,J) = DBLE(A(J,J)) END IF JX = JX + INCX 80 CONTINUE END IF END IF * RETURN * * End of ZHER . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zdscal.f0000644000000000000000000000013213543334726014777 xustar0030 mtime=1569569238.054646144 30 atime=1569569238.053646145 30 ctime=1569569238.054646144 elk-6.3.2/src/BLAS/zdscal.f0000644002504400250440000000504413543334726017051 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZDSCAL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZDSCAL(N,DA,ZX,INCX) * * .. Scalar Arguments .. * DOUBLE PRECISION DA * INTEGER INCX,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZDSCAL scales a vector by a constant. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] DA *> \verbatim *> DA is DOUBLE PRECISION *> On entry, DA specifies the scalar alpha. *> \endverbatim *> *> \param[in,out] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 3/93 to return if incx .le. 0. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE ZDSCAL(N,DA,ZX,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION DA INTEGER INCX,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,NINCX * .. * .. Intrinsic Functions .. INTRINSIC DCMPLX * .. IF (N.LE.0 .OR. INCX.LE.0) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * DO I = 1,N ZX(I) = DCMPLX(DA,0.0d0)*ZX(I) END DO ELSE * * code for increment not equal to 1 * NINCX = N*INCX DO I = 1,NINCX,INCX ZX(I) = DCMPLX(DA,0.0d0)*ZX(I) END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dgemm.f0000644000000000000000000000013213543334726014610 xustar0030 mtime=1569569238.059646141 30 atime=1569569238.057646142 30 ctime=1569569238.059646141 elk-6.3.2/src/BLAS/dgemm.f0000644002504400250440000002555713543334726016675 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGEMM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER K,LDA,LDB,LDC,M,N * CHARACTER TRANSA,TRANSB * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGEMM performs one of the matrix-matrix operations *> *> C := alpha*op( A )*op( B ) + beta*C, *> *> where op( X ) is one of *> *> op( X ) = X or op( X ) = X**T, *> *> alpha and beta are scalars, and A, B and C are matrices, with op( A ) *> an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANSA *> \verbatim *> TRANSA is CHARACTER*1 *> On entry, TRANSA specifies the form of op( A ) to be used in *> the matrix multiplication as follows: *> *> TRANSA = 'N' or 'n', op( A ) = A. *> *> TRANSA = 'T' or 't', op( A ) = A**T. *> *> TRANSA = 'C' or 'c', op( A ) = A**T. *> \endverbatim *> *> \param[in] TRANSB *> \verbatim *> TRANSB is CHARACTER*1 *> On entry, TRANSB specifies the form of op( B ) to be used in *> the matrix multiplication as follows: *> *> TRANSB = 'N' or 'n', op( B ) = B. *> *> TRANSB = 'T' or 't', op( B ) = B**T. *> *> TRANSB = 'C' or 'c', op( B ) = B**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix *> op( A ) and of the matrix C. M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix *> op( B ) and the number of columns of the matrix C. N must be *> at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry, K specifies the number of columns of the matrix *> op( A ) and the number of rows of the matrix op( B ). K must *> be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is *> k when TRANSA = 'N' or 'n', and is m otherwise. *> Before entry with TRANSA = 'N' or 'n', the leading m by k *> part of the array A must contain the matrix A, otherwise *> the leading k by m part of the array A must contain the *> matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When TRANSA = 'N' or 'n' then *> LDA must be at least max( 1, m ), otherwise LDA must be at *> least max( 1, k ). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension ( LDB, kb ), where kb is *> n when TRANSB = 'N' or 'n', and is k otherwise. *> Before entry with TRANSB = 'N' or 'n', the leading k by n *> part of the array B must contain the matrix B, otherwise *> the leading n by k part of the array B must contain the *> matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. When TRANSB = 'N' or 'n' then *> LDB must be at least max( 1, k ), otherwise LDB must be at *> least max( 1, n ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then C need not be set on input. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension ( LDC, N ) *> Before entry, the leading m by n part of the array C must *> contain the matrix C, except when beta is zero, in which *> case C need not be set on entry. *> On exit, the array C is overwritten by the m by n matrix *> ( alpha*op( A )*op( B ) + beta*C ). *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER K,LDA,LDB,LDC,M,N CHARACTER TRANSA,TRANSB * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,J,L,NCOLA,NROWA,NROWB LOGICAL NOTA,NOTB * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Set NOTA and NOTB as true if A and B respectively are not * transposed and set NROWA, NCOLA and NROWB as the number of rows * and columns of A and the number of rows of B respectively. * NOTA = LSAME(TRANSA,'N') NOTB = LSAME(TRANSB,'N') IF (NOTA) THEN NROWA = M NCOLA = K ELSE NROWA = K NCOLA = M END IF IF (NOTB) THEN NROWB = K ELSE NROWB = N END IF * * Test the input parameters. * INFO = 0 IF ((.NOT.NOTA) .AND. (.NOT.LSAME(TRANSA,'C')) .AND. + (.NOT.LSAME(TRANSA,'T'))) THEN INFO = 1 ELSE IF ((.NOT.NOTB) .AND. (.NOT.LSAME(TRANSB,'C')) .AND. + (.NOT.LSAME(TRANSB,'T'))) THEN INFO = 2 ELSE IF (M.LT.0) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (K.LT.0) THEN INFO = 5 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 8 ELSE IF (LDB.LT.MAX(1,NROWB)) THEN INFO = 10 ELSE IF (LDC.LT.MAX(1,M)) THEN INFO = 13 END IF IF (INFO.NE.0) THEN CALL XERBLA('DGEMM ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. + (((ALPHA.EQ.ZERO).OR. (K.EQ.0)).AND. (BETA.EQ.ONE))) RETURN * * And if alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,M C(I,J) = BETA*C(I,J) 30 CONTINUE 40 CONTINUE END IF RETURN END IF * * Start the operations. * IF (NOTB) THEN IF (NOTA) THEN * * Form C := alpha*A*B + beta*C. * DO 90 J = 1,N IF (BETA.EQ.ZERO) THEN DO 50 I = 1,M C(I,J) = ZERO 50 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 60 I = 1,M C(I,J) = BETA*C(I,J) 60 CONTINUE END IF DO 80 L = 1,K TEMP = ALPHA*B(L,J) DO 70 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 70 CONTINUE 80 CONTINUE 90 CONTINUE ELSE * * Form C := alpha*A**T*B + beta*C * DO 120 J = 1,N DO 110 I = 1,M TEMP = ZERO DO 100 L = 1,K TEMP = TEMP + A(L,I)*B(L,J) 100 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 110 CONTINUE 120 CONTINUE END IF ELSE IF (NOTA) THEN * * Form C := alpha*A*B**T + beta*C * DO 170 J = 1,N IF (BETA.EQ.ZERO) THEN DO 130 I = 1,M C(I,J) = ZERO 130 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 140 I = 1,M C(I,J) = BETA*C(I,J) 140 CONTINUE END IF DO 160 L = 1,K TEMP = ALPHA*B(J,L) DO 150 I = 1,M C(I,J) = C(I,J) + TEMP*A(I,L) 150 CONTINUE 160 CONTINUE 170 CONTINUE ELSE * * Form C := alpha*A**T*B**T + beta*C * DO 200 J = 1,N DO 190 I = 1,M TEMP = ZERO DO 180 L = 1,K TEMP = TEMP + A(L,I)*B(J,L) 180 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 190 CONTINUE 200 CONTINUE END IF END IF * RETURN * * End of DGEMM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dznrm2.f0000644000000000000000000000013213543334726014733 xustar0030 mtime=1569569238.063646139 30 atime=1569569238.062646139 30 ctime=1569569238.063646139 elk-6.3.2/src/BLAS/dznrm2.f0000644002504400250440000000646413543334726017014 0ustar00dewhurstdewhurst00000000000000*> \brief \b DZNRM2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DZNRM2(N,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * .. * .. Array Arguments .. * COMPLEX*16 X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DZNRM2 returns the euclidean norm of a vector via the function *> name, so that *> *> DZNRM2 := sqrt( x**H*x ) *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension (N) *> complex vector with N elements *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of X *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> -- This version written on 25-October-1982. *> Modified on 14-October-1993 to inline the call to ZLASSQ. *> Sven Hammarling, Nag Ltd. *> \endverbatim *> * ===================================================================== DOUBLE PRECISION FUNCTION DZNRM2(N,X,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,N * .. * .. Array Arguments .. COMPLEX*16 X(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION NORM,SCALE,SSQ,TEMP INTEGER IX * .. * .. Intrinsic Functions .. INTRINSIC ABS,DBLE,DIMAG,SQRT * .. IF (N.LT.1 .OR. INCX.LT.1) THEN NORM = ZERO ELSE SCALE = ZERO SSQ = ONE * The following loop is equivalent to this call to the LAPACK * auxiliary routine: * CALL ZLASSQ( N, X, INCX, SCALE, SSQ ) * DO 10 IX = 1,1 + (N-1)*INCX,INCX IF (DBLE(X(IX)).NE.ZERO) THEN TEMP = ABS(DBLE(X(IX))) IF (SCALE.LT.TEMP) THEN SSQ = ONE + SSQ* (SCALE/TEMP)**2 SCALE = TEMP ELSE SSQ = SSQ + (TEMP/SCALE)**2 END IF END IF IF (DIMAG(X(IX)).NE.ZERO) THEN TEMP = ABS(DIMAG(X(IX))) IF (SCALE.LT.TEMP) THEN SSQ = ONE + SSQ* (SCALE/TEMP)**2 SCALE = TEMP ELSE SSQ = SSQ + (TEMP/SCALE)**2 END IF END IF 10 CONTINUE NORM = SCALE*SQRT(SSQ) END IF * DZNRM2 = NORM RETURN * * End of DZNRM2. * END elk-6.3.2/src/BLAS/PaxHeaders.21352/idamax.f0000644000000000000000000000013213543334726014762 xustar0030 mtime=1569569238.067646136 30 atime=1569569238.066646137 30 ctime=1569569238.067646136 elk-6.3.2/src/BLAS/idamax.f0000644002504400250440000000534313543334726017036 0ustar00dewhurstdewhurst00000000000000*> \brief \b IDAMAX * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * INTEGER FUNCTION IDAMAX(N,DX,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> IDAMAX finds the index of the first element having maximum absolute value. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of SX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup aux_blas * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 3/93 to return if incx .le. 0. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== INTEGER FUNCTION IDAMAX(N,DX,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DMAX INTEGER I,IX * .. * .. Intrinsic Functions .. INTRINSIC DABS * .. IDAMAX = 0 IF (N.LT.1 .OR. INCX.LE.0) RETURN IDAMAX = 1 IF (N.EQ.1) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * DMAX = DABS(DX(1)) DO I = 2,N IF (DABS(DX(I)).GT.DMAX) THEN IDAMAX = I DMAX = DABS(DX(I)) END IF END DO ELSE * * code for increment not equal to 1 * IX = 1 DMAX = DABS(DX(1)) IX = IX + INCX DO I = 2,N IF (DABS(DX(IX)).GT.DMAX) THEN IDAMAX = I DMAX = DABS(DX(IX)) END IF IX = IX + INCX END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dtrsm.f0000644000000000000000000000013213543334726014650 xustar0030 mtime=1569569238.073646132 30 atime=1569569238.071646133 30 ctime=1569569238.073646132 elk-6.3.2/src/BLAS/dtrsm.f0000644002504400250440000003273413543334726016730 0ustar00dewhurstdewhurst00000000000000*> \brief \b DTRSM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER LDA,LDB,M,N * CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),B(LDB,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DTRSM solves one of the matrix equations *> *> op( A )*X = alpha*B, or X*op( A ) = alpha*B, *> *> where alpha is a scalar, X and B are m by n matrices, A is a unit, or *> non-unit, upper or lower triangular matrix and op( A ) is one of *> *> op( A ) = A or op( A ) = A**T. *> *> The matrix X is overwritten on B. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> On entry, SIDE specifies whether op( A ) appears on the left *> or right of X as follows: *> *> SIDE = 'L' or 'l' op( A )*X = alpha*B. *> *> SIDE = 'R' or 'r' X*op( A ) = alpha*B. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix A is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANSA *> \verbatim *> TRANSA is CHARACTER*1 *> On entry, TRANSA specifies the form of op( A ) to be used in *> the matrix multiplication as follows: *> *> TRANSA = 'N' or 'n' op( A ) = A. *> *> TRANSA = 'T' or 't' op( A ) = A**T. *> *> TRANSA = 'C' or 'c' op( A ) = A**T. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit triangular *> as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of B. M must be at *> least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of B. N must be *> at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. When alpha is *> zero then A is not referenced and B need not be set before *> entry. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, k ), *> where k is m when SIDE = 'L' or 'l' *> and k is n when SIDE = 'R' or 'r'. *> Before entry with UPLO = 'U' or 'u', the leading k by k *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading k by k *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When SIDE = 'L' or 'l' then *> LDA must be at least max( 1, m ), when SIDE = 'R' or 'r' *> then LDA must be at least max( 1, n ). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension ( LDB, N ) *> Before entry, the leading m by n part of the array B must *> contain the right-hand side matrix B, and on exit is *> overwritten by the solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. LDB must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE DTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER LDA,LDB,M,N CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),B(LDB,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,J,K,NROWA LOGICAL LSIDE,NOUNIT,UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Test the input parameters. * LSIDE = LSAME(SIDE,'L') IF (LSIDE) THEN NROWA = M ELSE NROWA = N END IF NOUNIT = LSAME(DIAG,'N') UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.LSIDE) .AND. (.NOT.LSAME(SIDE,'R'))) THEN INFO = 1 ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 2 ELSE IF ((.NOT.LSAME(TRANSA,'N')) .AND. + (.NOT.LSAME(TRANSA,'T')) .AND. + (.NOT.LSAME(TRANSA,'C'))) THEN INFO = 3 ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN INFO = 4 ELSE IF (M.LT.0) THEN INFO = 5 ELSE IF (N.LT.0) THEN INFO = 6 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 9 ELSE IF (LDB.LT.MAX(1,M)) THEN INFO = 11 END IF IF (INFO.NE.0) THEN CALL XERBLA('DTRSM ',INFO) RETURN END IF * * Quick return if possible. * IF (M.EQ.0 .OR. N.EQ.0) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M B(I,J) = ZERO 10 CONTINUE 20 CONTINUE RETURN END IF * * Start the operations. * IF (LSIDE) THEN IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*inv( A )*B. * IF (UPPER) THEN DO 60 J = 1,N IF (ALPHA.NE.ONE) THEN DO 30 I = 1,M B(I,J) = ALPHA*B(I,J) 30 CONTINUE END IF DO 50 K = M,1,-1 IF (B(K,J).NE.ZERO) THEN IF (NOUNIT) B(K,J) = B(K,J)/A(K,K) DO 40 I = 1,K - 1 B(I,J) = B(I,J) - B(K,J)*A(I,K) 40 CONTINUE END IF 50 CONTINUE 60 CONTINUE ELSE DO 100 J = 1,N IF (ALPHA.NE.ONE) THEN DO 70 I = 1,M B(I,J) = ALPHA*B(I,J) 70 CONTINUE END IF DO 90 K = 1,M IF (B(K,J).NE.ZERO) THEN IF (NOUNIT) B(K,J) = B(K,J)/A(K,K) DO 80 I = K + 1,M B(I,J) = B(I,J) - B(K,J)*A(I,K) 80 CONTINUE END IF 90 CONTINUE 100 CONTINUE END IF ELSE * * Form B := alpha*inv( A**T )*B. * IF (UPPER) THEN DO 130 J = 1,N DO 120 I = 1,M TEMP = ALPHA*B(I,J) DO 110 K = 1,I - 1 TEMP = TEMP - A(K,I)*B(K,J) 110 CONTINUE IF (NOUNIT) TEMP = TEMP/A(I,I) B(I,J) = TEMP 120 CONTINUE 130 CONTINUE ELSE DO 160 J = 1,N DO 150 I = M,1,-1 TEMP = ALPHA*B(I,J) DO 140 K = I + 1,M TEMP = TEMP - A(K,I)*B(K,J) 140 CONTINUE IF (NOUNIT) TEMP = TEMP/A(I,I) B(I,J) = TEMP 150 CONTINUE 160 CONTINUE END IF END IF ELSE IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*B*inv( A ). * IF (UPPER) THEN DO 210 J = 1,N IF (ALPHA.NE.ONE) THEN DO 170 I = 1,M B(I,J) = ALPHA*B(I,J) 170 CONTINUE END IF DO 190 K = 1,J - 1 IF (A(K,J).NE.ZERO) THEN DO 180 I = 1,M B(I,J) = B(I,J) - A(K,J)*B(I,K) 180 CONTINUE END IF 190 CONTINUE IF (NOUNIT) THEN TEMP = ONE/A(J,J) DO 200 I = 1,M B(I,J) = TEMP*B(I,J) 200 CONTINUE END IF 210 CONTINUE ELSE DO 260 J = N,1,-1 IF (ALPHA.NE.ONE) THEN DO 220 I = 1,M B(I,J) = ALPHA*B(I,J) 220 CONTINUE END IF DO 240 K = J + 1,N IF (A(K,J).NE.ZERO) THEN DO 230 I = 1,M B(I,J) = B(I,J) - A(K,J)*B(I,K) 230 CONTINUE END IF 240 CONTINUE IF (NOUNIT) THEN TEMP = ONE/A(J,J) DO 250 I = 1,M B(I,J) = TEMP*B(I,J) 250 CONTINUE END IF 260 CONTINUE END IF ELSE * * Form B := alpha*B*inv( A**T ). * IF (UPPER) THEN DO 310 K = N,1,-1 IF (NOUNIT) THEN TEMP = ONE/A(K,K) DO 270 I = 1,M B(I,K) = TEMP*B(I,K) 270 CONTINUE END IF DO 290 J = 1,K - 1 IF (A(J,K).NE.ZERO) THEN TEMP = A(J,K) DO 280 I = 1,M B(I,J) = B(I,J) - TEMP*B(I,K) 280 CONTINUE END IF 290 CONTINUE IF (ALPHA.NE.ONE) THEN DO 300 I = 1,M B(I,K) = ALPHA*B(I,K) 300 CONTINUE END IF 310 CONTINUE ELSE DO 360 K = 1,N IF (NOUNIT) THEN TEMP = ONE/A(K,K) DO 320 I = 1,M B(I,K) = TEMP*B(I,K) 320 CONTINUE END IF DO 340 J = K + 1,N IF (A(J,K).NE.ZERO) THEN TEMP = A(J,K) DO 330 I = 1,M B(I,J) = B(I,J) - TEMP*B(I,K) 330 CONTINUE END IF 340 CONTINUE IF (ALPHA.NE.ONE) THEN DO 350 I = 1,M B(I,K) = ALPHA*B(I,K) 350 CONTINUE END IF 360 CONTINUE END IF END IF END IF * RETURN * * End of DTRSM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dgemv.f0000644000000000000000000000012713543334726014625 xustar0029 mtime=1569569238.07764613 29 atime=1569569238.07664613 29 ctime=1569569238.07764613 elk-6.3.2/src/BLAS/dgemv.f0000644002504400250440000002107313543334726016673 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGEMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER INCX,INCY,LDA,M,N * CHARACTER TRANS * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGEMV performs one of the matrix-vector operations *> *> y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, *> *> where alpha and beta are scalars, x and y are vectors and A is an *> m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' y := alpha*A*x + beta*y. *> *> TRANS = 'T' or 't' y := alpha*A**T*x + beta*y. *> *> TRANS = 'C' or 'c' y := alpha*A**T*x + beta*y. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix A. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, N ) *> Before entry, the leading m by n part of the array A must *> contain the matrix of coefficients. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, m ). *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n' *> and at least *> ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. *> Before entry, the incremented array X must contain the *> vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then Y need not be set on input. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension at least *> ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n' *> and at least *> ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. *> Before entry with BETA non-zero, the incremented array Y *> must contain the vector y. On exit, Y is overwritten by the *> updated vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER INCX,INCY,LDA,M,N CHARACTER TRANS * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 1 ELSE IF (M.LT.0) THEN INFO = 2 ELSE IF (N.LT.0) THEN INFO = 3 ELSE IF (LDA.LT.MAX(1,M)) THEN INFO = 6 ELSE IF (INCX.EQ.0) THEN INFO = 8 ELSE IF (INCY.EQ.0) THEN INFO = 11 END IF IF (INFO.NE.0) THEN CALL XERBLA('DGEMV ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. + ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * Set LENX and LENY, the lengths of the vectors x and y, and set * up the start points in X and Y. * IF (LSAME(TRANS,'N')) THEN LENX = N LENY = M ELSE LENX = M LENY = N END IF IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (LENX-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (LENY-1)*INCY END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * * First form y := beta*y. * IF (BETA.NE.ONE) THEN IF (INCY.EQ.1) THEN IF (BETA.EQ.ZERO) THEN DO 10 I = 1,LENY Y(I) = ZERO 10 CONTINUE ELSE DO 20 I = 1,LENY Y(I) = BETA*Y(I) 20 CONTINUE END IF ELSE IY = KY IF (BETA.EQ.ZERO) THEN DO 30 I = 1,LENY Y(IY) = ZERO IY = IY + INCY 30 CONTINUE ELSE DO 40 I = 1,LENY Y(IY) = BETA*Y(IY) IY = IY + INCY 40 CONTINUE END IF END IF END IF IF (ALPHA.EQ.ZERO) RETURN IF (LSAME(TRANS,'N')) THEN * * Form y := alpha*A*x + y. * JX = KX IF (INCY.EQ.1) THEN DO 60 J = 1,N TEMP = ALPHA*X(JX) DO 50 I = 1,M Y(I) = Y(I) + TEMP*A(I,J) 50 CONTINUE JX = JX + INCX 60 CONTINUE ELSE DO 80 J = 1,N TEMP = ALPHA*X(JX) IY = KY DO 70 I = 1,M Y(IY) = Y(IY) + TEMP*A(I,J) IY = IY + INCY 70 CONTINUE JX = JX + INCX 80 CONTINUE END IF ELSE * * Form y := alpha*A**T*x + y. * JY = KY IF (INCX.EQ.1) THEN DO 100 J = 1,N TEMP = ZERO DO 90 I = 1,M TEMP = TEMP + A(I,J)*X(I) 90 CONTINUE Y(JY) = Y(JY) + ALPHA*TEMP JY = JY + INCY 100 CONTINUE ELSE DO 120 J = 1,N TEMP = ZERO IX = KX DO 110 I = 1,M TEMP = TEMP + A(I,J)*X(IX) IX = IX + INCX 110 CONTINUE Y(JY) = Y(JY) + ALPHA*TEMP JY = JY + INCY 120 CONTINUE END IF END IF * RETURN * * End of DGEMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dswap.f0000644000000000000000000000013213543334726014635 xustar0030 mtime=1569569238.082646126 30 atime=1569569238.081646127 30 ctime=1569569238.082646126 elk-6.3.2/src/BLAS/dswap.f0000644002504400250440000000660513543334726016713 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSWAP * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSWAP(N,DX,INCX,DY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*),DY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSWAP interchanges two vectors. *> uses unrolled loops for increments equal to 1. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in,out] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim *> *> \param[in,out] DY *> \verbatim *> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of DY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE DSWAP(N,DX,INCX,DY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*),DY(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DTEMP INTEGER I,IX,IY,M,MP1 * .. * .. Intrinsic Functions .. INTRINSIC MOD * .. IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * * * clean-up loop * M = MOD(N,3) IF (M.NE.0) THEN DO I = 1,M DTEMP = DX(I) DX(I) = DY(I) DY(I) = DTEMP END DO IF (N.LT.3) RETURN END IF MP1 = M + 1 DO I = MP1,N,3 DTEMP = DX(I) DX(I) = DY(I) DY(I) = DTEMP DTEMP = DX(I+1) DX(I+1) = DY(I+1) DY(I+1) = DTEMP DTEMP = DX(I+2) DX(I+2) = DY(I+2) DY(I+2) = DTEMP END DO ELSE * * code for unequal increments or equal increments not equal * to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N DTEMP = DX(IX) DX(IX) = DY(IY) DY(IY) = DTEMP IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/lsame.f0000644000000000000000000000013213543334726014620 xustar0030 mtime=1569569238.086646124 30 atime=1569569238.085646125 30 ctime=1569569238.086646124 elk-6.3.2/src/BLAS/lsame.f0000644002504400250440000000610113543334726016665 0ustar00dewhurstdewhurst00000000000000*> \brief \b LSAME * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * LOGICAL FUNCTION LSAME(CA,CB) * * .. Scalar Arguments .. * CHARACTER CA,CB * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> LSAME returns .TRUE. if CA is the same letter as CB regardless of *> case. *> \endverbatim * * Arguments: * ========== * *> \param[in] CA *> \verbatim *> CA is CHARACTER*1 *> \endverbatim *> *> \param[in] CB *> \verbatim *> CB is CHARACTER*1 *> CA and CB specify the single characters to be compared. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup aux_blas * * ===================================================================== LOGICAL FUNCTION LSAME(CA,CB) * * -- Reference BLAS level1 routine (version 3.1) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER CA,CB * .. * * ===================================================================== * * .. Intrinsic Functions .. INTRINSIC ICHAR * .. * .. Local Scalars .. INTEGER INTA,INTB,ZCODE * .. * * Test if the characters are equal * LSAME = CA .EQ. CB IF (LSAME) RETURN * * Now test for equivalence if both characters are alphabetic. * ZCODE = ICHAR('Z') * * Use 'Z' rather than 'A' so that ASCII can be detected on Prime * machines, on which ICHAR returns a value with bit 8 set. * ICHAR('A') on Prime machines returns 193 which is the same as * ICHAR('A') on an EBCDIC machine. * INTA = ICHAR(CA) INTB = ICHAR(CB) * IF (ZCODE.EQ.90 .OR. ZCODE.EQ.122) THEN * * ASCII is assumed - ZCODE is the ASCII code of either lower or * upper case 'Z'. * IF (INTA.GE.97 .AND. INTA.LE.122) INTA = INTA - 32 IF (INTB.GE.97 .AND. INTB.LE.122) INTB = INTB - 32 * ELSE IF (ZCODE.EQ.233 .OR. ZCODE.EQ.169) THEN * * EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or * upper case 'Z'. * IF (INTA.GE.129 .AND. INTA.LE.137 .OR. + INTA.GE.145 .AND. INTA.LE.153 .OR. + INTA.GE.162 .AND. INTA.LE.169) INTA = INTA + 64 IF (INTB.GE.129 .AND. INTB.LE.137 .OR. + INTB.GE.145 .AND. INTB.LE.153 .OR. + INTB.GE.162 .AND. INTB.LE.169) INTB = INTB + 64 * ELSE IF (ZCODE.EQ.218 .OR. ZCODE.EQ.250) THEN * * ASCII is assumed, on Prime machines - ZCODE is the ASCII code * plus 128 of either lower or upper case 'Z'. * IF (INTA.GE.225 .AND. INTA.LE.250) INTA = INTA - 32 IF (INTB.GE.225 .AND. INTB.LE.250) INTB = INTB - 32 END IF LSAME = INTA .EQ. INTB * * RETURN * * End of LSAME * END elk-6.3.2/src/BLAS/PaxHeaders.21352/drot.f0000644000000000000000000000013213543334726014467 xustar0030 mtime=1569569238.090646121 30 atime=1569569238.089646122 30 ctime=1569569238.090646121 elk-6.3.2/src/BLAS/drot.f0000644002504400250440000000614013543334726016537 0ustar00dewhurstdewhurst00000000000000*> \brief \b DROT * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S) * * .. Scalar Arguments .. * DOUBLE PRECISION C,S * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * DOUBLE PRECISION DX(*),DY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DROT applies a plane rotation. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in,out] DX *> \verbatim *> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of DX *> \endverbatim *> *> \param[in,out] DY *> \verbatim *> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of DY *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION *> \endverbatim *> *> \param[in] S *> \verbatim *> S is DOUBLE PRECISION *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, linpack, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. DOUBLE PRECISION C,S INTEGER INCX,INCY,N * .. * .. Array Arguments .. DOUBLE PRECISION DX(*),DY(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DTEMP INTEGER I,IX,IY * .. IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 * DO I = 1,N DTEMP = C*DX(I) + S*DY(I) DY(I) = C*DY(I) - S*DX(I) DX(I) = DTEMP END DO ELSE * * code for unequal increments or equal increments not equal * to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N DTEMP = C*DX(IX) + S*DY(IY) DY(IY) = C*DY(IY) - S*DX(IX) DX(IX) = DTEMP IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/dtrmm.f0000644000000000000000000000013213543334726014642 xustar0030 mtime=1569569238.095646118 30 atime=1569569238.094646119 30 ctime=1569569238.095646118 elk-6.3.2/src/BLAS/dtrmm.f0000644002504400250440000003100713543334726016712 0ustar00dewhurstdewhurst00000000000000*> \brief \b DTRMM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER LDA,LDB,M,N * CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),B(LDB,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DTRMM performs one of the matrix-matrix operations *> *> B := alpha*op( A )*B, or B := alpha*B*op( A ), *> *> where alpha is a scalar, B is an m by n matrix, A is a unit, or *> non-unit, upper or lower triangular matrix and op( A ) is one of *> *> op( A ) = A or op( A ) = A**T. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> On entry, SIDE specifies whether op( A ) multiplies B from *> the left or right as follows: *> *> SIDE = 'L' or 'l' B := alpha*op( A )*B. *> *> SIDE = 'R' or 'r' B := alpha*B*op( A ). *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix A is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANSA *> \verbatim *> TRANSA is CHARACTER*1 *> On entry, TRANSA specifies the form of op( A ) to be used in *> the matrix multiplication as follows: *> *> TRANSA = 'N' or 'n' op( A ) = A. *> *> TRANSA = 'T' or 't' op( A ) = A**T. *> *> TRANSA = 'C' or 'c' op( A ) = A**T. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit triangular *> as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of B. M must be at *> least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of B. N must be *> at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. When alpha is *> zero then A is not referenced and B need not be set before *> entry. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, k ), where k is m *> when SIDE = 'L' or 'l' and is n when SIDE = 'R' or 'r'. *> Before entry with UPLO = 'U' or 'u', the leading k by k *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading k by k *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When SIDE = 'L' or 'l' then *> LDA must be at least max( 1, m ), when SIDE = 'R' or 'r' *> then LDA must be at least max( 1, n ). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension ( LDB, N ) *> Before entry, the leading m by n part of the array B must *> contain the matrix B, and on exit is overwritten by the *> transformed matrix. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. LDB must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE DTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER LDA,LDB,M,N CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),B(LDB,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,J,K,NROWA LOGICAL LSIDE,NOUNIT,UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Test the input parameters. * LSIDE = LSAME(SIDE,'L') IF (LSIDE) THEN NROWA = M ELSE NROWA = N END IF NOUNIT = LSAME(DIAG,'N') UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.LSIDE) .AND. (.NOT.LSAME(SIDE,'R'))) THEN INFO = 1 ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 2 ELSE IF ((.NOT.LSAME(TRANSA,'N')) .AND. + (.NOT.LSAME(TRANSA,'T')) .AND. + (.NOT.LSAME(TRANSA,'C'))) THEN INFO = 3 ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN INFO = 4 ELSE IF (M.LT.0) THEN INFO = 5 ELSE IF (N.LT.0) THEN INFO = 6 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 9 ELSE IF (LDB.LT.MAX(1,M)) THEN INFO = 11 END IF IF (INFO.NE.0) THEN CALL XERBLA('DTRMM ',INFO) RETURN END IF * * Quick return if possible. * IF (M.EQ.0 .OR. N.EQ.0) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M B(I,J) = ZERO 10 CONTINUE 20 CONTINUE RETURN END IF * * Start the operations. * IF (LSIDE) THEN IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*A*B. * IF (UPPER) THEN DO 50 J = 1,N DO 40 K = 1,M IF (B(K,J).NE.ZERO) THEN TEMP = ALPHA*B(K,J) DO 30 I = 1,K - 1 B(I,J) = B(I,J) + TEMP*A(I,K) 30 CONTINUE IF (NOUNIT) TEMP = TEMP*A(K,K) B(K,J) = TEMP END IF 40 CONTINUE 50 CONTINUE ELSE DO 80 J = 1,N DO 70 K = M,1,-1 IF (B(K,J).NE.ZERO) THEN TEMP = ALPHA*B(K,J) B(K,J) = TEMP IF (NOUNIT) B(K,J) = B(K,J)*A(K,K) DO 60 I = K + 1,M B(I,J) = B(I,J) + TEMP*A(I,K) 60 CONTINUE END IF 70 CONTINUE 80 CONTINUE END IF ELSE * * Form B := alpha*A**T*B. * IF (UPPER) THEN DO 110 J = 1,N DO 100 I = M,1,-1 TEMP = B(I,J) IF (NOUNIT) TEMP = TEMP*A(I,I) DO 90 K = 1,I - 1 TEMP = TEMP + A(K,I)*B(K,J) 90 CONTINUE B(I,J) = ALPHA*TEMP 100 CONTINUE 110 CONTINUE ELSE DO 140 J = 1,N DO 130 I = 1,M TEMP = B(I,J) IF (NOUNIT) TEMP = TEMP*A(I,I) DO 120 K = I + 1,M TEMP = TEMP + A(K,I)*B(K,J) 120 CONTINUE B(I,J) = ALPHA*TEMP 130 CONTINUE 140 CONTINUE END IF END IF ELSE IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*B*A. * IF (UPPER) THEN DO 180 J = N,1,-1 TEMP = ALPHA IF (NOUNIT) TEMP = TEMP*A(J,J) DO 150 I = 1,M B(I,J) = TEMP*B(I,J) 150 CONTINUE DO 170 K = 1,J - 1 IF (A(K,J).NE.ZERO) THEN TEMP = ALPHA*A(K,J) DO 160 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 160 CONTINUE END IF 170 CONTINUE 180 CONTINUE ELSE DO 220 J = 1,N TEMP = ALPHA IF (NOUNIT) TEMP = TEMP*A(J,J) DO 190 I = 1,M B(I,J) = TEMP*B(I,J) 190 CONTINUE DO 210 K = J + 1,N IF (A(K,J).NE.ZERO) THEN TEMP = ALPHA*A(K,J) DO 200 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 200 CONTINUE END IF 210 CONTINUE 220 CONTINUE END IF ELSE * * Form B := alpha*B*A**T. * IF (UPPER) THEN DO 260 K = 1,N DO 240 J = 1,K - 1 IF (A(J,K).NE.ZERO) THEN TEMP = ALPHA*A(J,K) DO 230 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 230 CONTINUE END IF 240 CONTINUE TEMP = ALPHA IF (NOUNIT) TEMP = TEMP*A(K,K) IF (TEMP.NE.ONE) THEN DO 250 I = 1,M B(I,K) = TEMP*B(I,K) 250 CONTINUE END IF 260 CONTINUE ELSE DO 300 K = N,1,-1 DO 280 J = K + 1,N IF (A(J,K).NE.ZERO) THEN TEMP = ALPHA*A(J,K) DO 270 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 270 CONTINUE END IF 280 CONTINUE TEMP = ALPHA IF (NOUNIT) TEMP = TEMP*A(K,K) IF (TEMP.NE.ONE) THEN DO 290 I = 1,M B(I,K) = TEMP*B(I,K) 290 CONTINUE END IF 300 CONTINUE END IF END IF END IF * RETURN * * End of DTRMM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dger.f0000644000000000000000000000013213543334726014440 xustar0030 mtime=1569569238.100646115 30 atime=1569569238.099646116 30 ctime=1569569238.100646115 elk-6.3.2/src/BLAS/dger.f0000644002504400250440000001307513543334726016515 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGER * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DGER(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER INCX,INCY,LDA,M,N * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGER performs the rank 1 operation *> *> A := alpha*x*y**T + A, *> *> where alpha is a scalar, x is an m element vector, y is an n element *> vector and A is an m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix A. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( m - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the m *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, N ) *> Before entry, the leading m by n part of the array A must *> contain the matrix of coefficients. On exit, A is *> overwritten by the updated matrix. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DGER(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER INCX,INCY,LDA,M,N * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER (ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,IX,J,JY,KX * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (M.LT.0) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 ELSE IF (LDA.LT.MAX(1,M)) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('DGER ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (INCY.GT.0) THEN JY = 1 ELSE JY = 1 - (N-1)*INCY END IF IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (Y(JY).NE.ZERO) THEN TEMP = ALPHA*Y(JY) DO 10 I = 1,M A(I,J) = A(I,J) + X(I)*TEMP 10 CONTINUE END IF JY = JY + INCY 20 CONTINUE ELSE IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (M-1)*INCX END IF DO 40 J = 1,N IF (Y(JY).NE.ZERO) THEN TEMP = ALPHA*Y(JY) IX = KX DO 30 I = 1,M A(I,J) = A(I,J) + X(IX)*TEMP IX = IX + INCX 30 CONTINUE END IF JY = JY + INCY 40 CONTINUE END IF * RETURN * * End of DGER . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dtrmv.f0000644000000000000000000000013213543334726014653 xustar0030 mtime=1569569238.105646112 30 atime=1569569238.103646113 30 ctime=1569569238.105646112 elk-6.3.2/src/BLAS/dtrmv.f0000644002504400250440000002362013543334726016725 0ustar00dewhurstdewhurst00000000000000*> \brief \b DTRMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,LDA,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DTRMV performs one of the matrix-vector operations *> *> x := A*x, or x := A**T*x, *> *> where x is an n element vector and A is an n by n unit, or non-unit, *> upper or lower triangular matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' x := A*x. *> *> TRANS = 'T' or 't' x := A**T*x. *> *> TRANS = 'C' or 'c' x := A**T*x. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. On exit, X is overwritten with the *> transformed vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),X(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER (ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,IX,J,JX,KX LOGICAL NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 6 ELSE IF (INCX.EQ.0) THEN INFO = 8 END IF IF (INFO.NE.0) THEN CALL XERBLA('DTRMV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (LSAME(TRANS,'N')) THEN * * Form x := A*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = X(J) DO 10 I = 1,J - 1 X(I) = X(I) + TEMP*A(I,J) 10 CONTINUE IF (NOUNIT) X(J) = X(J)*A(J,J) END IF 20 CONTINUE ELSE JX = KX DO 40 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = X(JX) IX = KX DO 30 I = 1,J - 1 X(IX) = X(IX) + TEMP*A(I,J) IX = IX + INCX 30 CONTINUE IF (NOUNIT) X(JX) = X(JX)*A(J,J) END IF JX = JX + INCX 40 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 60 J = N,1,-1 IF (X(J).NE.ZERO) THEN TEMP = X(J) DO 50 I = N,J + 1,-1 X(I) = X(I) + TEMP*A(I,J) 50 CONTINUE IF (NOUNIT) X(J) = X(J)*A(J,J) END IF 60 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 80 J = N,1,-1 IF (X(JX).NE.ZERO) THEN TEMP = X(JX) IX = KX DO 70 I = N,J + 1,-1 X(IX) = X(IX) + TEMP*A(I,J) IX = IX - INCX 70 CONTINUE IF (NOUNIT) X(JX) = X(JX)*A(J,J) END IF JX = JX - INCX 80 CONTINUE END IF END IF ELSE * * Form x := A**T*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 100 J = N,1,-1 TEMP = X(J) IF (NOUNIT) TEMP = TEMP*A(J,J) DO 90 I = J - 1,1,-1 TEMP = TEMP + A(I,J)*X(I) 90 CONTINUE X(J) = TEMP 100 CONTINUE ELSE JX = KX + (N-1)*INCX DO 120 J = N,1,-1 TEMP = X(JX) IX = JX IF (NOUNIT) TEMP = TEMP*A(J,J) DO 110 I = J - 1,1,-1 IX = IX - INCX TEMP = TEMP + A(I,J)*X(IX) 110 CONTINUE X(JX) = TEMP JX = JX - INCX 120 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 140 J = 1,N TEMP = X(J) IF (NOUNIT) TEMP = TEMP*A(J,J) DO 130 I = J + 1,N TEMP = TEMP + A(I,J)*X(I) 130 CONTINUE X(J) = TEMP 140 CONTINUE ELSE JX = KX DO 160 J = 1,N TEMP = X(JX) IX = JX IF (NOUNIT) TEMP = TEMP*A(J,J) DO 150 I = J + 1,N IX = IX + INCX TEMP = TEMP + A(I,J)*X(IX) 150 CONTINUE X(JX) = TEMP JX = JX + INCX 160 CONTINUE END IF END IF END IF * RETURN * * End of DTRMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dsymv.f0000644000000000000000000000013113543334726014660 xustar0030 mtime=1569569238.110646109 29 atime=1569569238.10864611 30 ctime=1569569238.110646109 elk-6.3.2/src/BLAS/dsymv.f0000644002504400250440000002226513543334726016737 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSYMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER INCX,INCY,LDA,N * CHARACTER UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYMV performs the matrix-vector operation *> *> y := alpha*A*x + beta*y, *> *> where alpha and beta are scalars, x and y are n element vectors and *> A is an n by n symmetric matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array A is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of A *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of A *> is to be referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular part of the symmetric matrix and the strictly *> lower triangular part of A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular part of the symmetric matrix and the strictly *> upper triangular part of A is not referenced. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then Y need not be set on input. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. On exit, Y is overwritten by the updated *> vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DSYMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER INCX,INCY,LDA,N CHARACTER UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 5 ELSE IF (INCX.EQ.0) THEN INFO = 7 ELSE IF (INCY.EQ.0) THEN INFO = 10 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSYMV ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * Set up the start points in X and Y. * IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through the triangular part * of A. * * First form y := beta*y. * IF (BETA.NE.ONE) THEN IF (INCY.EQ.1) THEN IF (BETA.EQ.ZERO) THEN DO 10 I = 1,N Y(I) = ZERO 10 CONTINUE ELSE DO 20 I = 1,N Y(I) = BETA*Y(I) 20 CONTINUE END IF ELSE IY = KY IF (BETA.EQ.ZERO) THEN DO 30 I = 1,N Y(IY) = ZERO IY = IY + INCY 30 CONTINUE ELSE DO 40 I = 1,N Y(IY) = BETA*Y(IY) IY = IY + INCY 40 CONTINUE END IF END IF END IF IF (ALPHA.EQ.ZERO) RETURN IF (LSAME(UPLO,'U')) THEN * * Form y when A is stored in upper triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO DO 50 I = 1,J - 1 Y(I) = Y(I) + TEMP1*A(I,J) TEMP2 = TEMP2 + A(I,J)*X(I) 50 CONTINUE Y(J) = Y(J) + TEMP1*A(J,J) + ALPHA*TEMP2 60 CONTINUE ELSE JX = KX JY = KY DO 80 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO IX = KX IY = KY DO 70 I = 1,J - 1 Y(IY) = Y(IY) + TEMP1*A(I,J) TEMP2 = TEMP2 + A(I,J)*X(IX) IX = IX + INCX IY = IY + INCY 70 CONTINUE Y(JY) = Y(JY) + TEMP1*A(J,J) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY 80 CONTINUE END IF ELSE * * Form y when A is stored in lower triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 100 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO Y(J) = Y(J) + TEMP1*A(J,J) DO 90 I = J + 1,N Y(I) = Y(I) + TEMP1*A(I,J) TEMP2 = TEMP2 + A(I,J)*X(I) 90 CONTINUE Y(J) = Y(J) + ALPHA*TEMP2 100 CONTINUE ELSE JX = KX JY = KY DO 120 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO Y(JY) = Y(JY) + TEMP1*A(J,J) IX = JX IY = JY DO 110 I = J + 1,N IX = IX + INCX IY = IY + INCY Y(IY) = Y(IY) + TEMP1*A(I,J) TEMP2 = TEMP2 + A(I,J)*X(IX) 110 CONTINUE Y(JY) = Y(JY) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY 120 CONTINUE END IF END IF * RETURN * * End of DSYMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dsyrk.f0000644000000000000000000000013213543334726014653 xustar0030 mtime=1569569238.114646106 30 atime=1569569238.113646107 30 ctime=1569569238.114646106 elk-6.3.2/src/BLAS/dsyrk.f0000644002504400250440000002505613543334726016732 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYRK * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER K,LDA,LDC,N * CHARACTER TRANS,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYRK performs one of the symmetric rank k operations *> *> C := alpha*A*A**T + beta*C, *> *> or *> *> C := alpha*A**T*A + beta*C, *> *> where alpha and beta are scalars, C is an n by n symmetric matrix *> and A is an n by k matrix in the first case and a k by n matrix *> in the second case. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array C is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of C *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of C *> is to be referenced. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' C := alpha*A*A**T + beta*C. *> *> TRANS = 'T' or 't' C := alpha*A**T*A + beta*C. *> *> TRANS = 'C' or 'c' C := alpha*A**T*A + beta*C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix C. N must be *> at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry with TRANS = 'N' or 'n', K specifies the number *> of columns of the matrix A, and on entry with *> TRANS = 'T' or 't' or 'C' or 'c', K specifies the number *> of rows of the matrix A. K must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is *> k when TRANS = 'N' or 'n', and is n otherwise. *> Before entry with TRANS = 'N' or 'n', the leading n by k *> part of the array A must contain the matrix A, otherwise *> the leading k by n part of the array A must contain the *> matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When TRANS = 'N' or 'n' *> then LDA must be at least max( 1, n ), otherwise LDA must *> be at least max( 1, k ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension ( LDC, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array C must contain the upper *> triangular part of the symmetric matrix and the strictly *> lower triangular part of C is not referenced. On exit, the *> upper triangular part of the array C is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array C must contain the lower *> triangular part of the symmetric matrix and the strictly *> upper triangular part of C is not referenced. On exit, the *> lower triangular part of the array C is overwritten by the *> lower triangular part of the updated matrix. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE DSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER K,LDA,LDC,N CHARACTER TRANS,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,J,L,NROWA LOGICAL UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Test the input parameters. * IF (LSAME(TRANS,'N')) THEN NROWA = N ELSE NROWA = K END IF UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 1 ELSE IF ((.NOT.LSAME(TRANS,'N')) .AND. + (.NOT.LSAME(TRANS,'T')) .AND. + (.NOT.LSAME(TRANS,'C'))) THEN INFO = 2 ELSE IF (N.LT.0) THEN INFO = 3 ELSE IF (K.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 7 ELSE IF (LDC.LT.MAX(1,N)) THEN INFO = 10 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSYRK ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (((ALPHA.EQ.ZERO).OR. + (K.EQ.0)).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (UPPER) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,J C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,J C(I,J) = BETA*C(I,J) 30 CONTINUE 40 CONTINUE END IF ELSE IF (BETA.EQ.ZERO) THEN DO 60 J = 1,N DO 50 I = J,N C(I,J) = ZERO 50 CONTINUE 60 CONTINUE ELSE DO 80 J = 1,N DO 70 I = J,N C(I,J) = BETA*C(I,J) 70 CONTINUE 80 CONTINUE END IF END IF RETURN END IF * * Start the operations. * IF (LSAME(TRANS,'N')) THEN * * Form C := alpha*A*A**T + beta*C. * IF (UPPER) THEN DO 130 J = 1,N IF (BETA.EQ.ZERO) THEN DO 90 I = 1,J C(I,J) = ZERO 90 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 100 I = 1,J C(I,J) = BETA*C(I,J) 100 CONTINUE END IF DO 120 L = 1,K IF (A(J,L).NE.ZERO) THEN TEMP = ALPHA*A(J,L) DO 110 I = 1,J C(I,J) = C(I,J) + TEMP*A(I,L) 110 CONTINUE END IF 120 CONTINUE 130 CONTINUE ELSE DO 180 J = 1,N IF (BETA.EQ.ZERO) THEN DO 140 I = J,N C(I,J) = ZERO 140 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 150 I = J,N C(I,J) = BETA*C(I,J) 150 CONTINUE END IF DO 170 L = 1,K IF (A(J,L).NE.ZERO) THEN TEMP = ALPHA*A(J,L) DO 160 I = J,N C(I,J) = C(I,J) + TEMP*A(I,L) 160 CONTINUE END IF 170 CONTINUE 180 CONTINUE END IF ELSE * * Form C := alpha*A**T*A + beta*C. * IF (UPPER) THEN DO 210 J = 1,N DO 200 I = 1,J TEMP = ZERO DO 190 L = 1,K TEMP = TEMP + A(L,I)*A(L,J) 190 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 200 CONTINUE 210 CONTINUE ELSE DO 240 J = 1,N DO 230 I = J,N TEMP = ZERO DO 220 L = 1,K TEMP = TEMP + A(L,I)*A(L,J) 220 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 230 CONTINUE 240 CONTINUE END IF END IF * RETURN * * End of DSYRK . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dsyr2.f0000644000000000000000000000013213543334726014562 xustar0030 mtime=1569569238.119646103 30 atime=1569569238.118646103 30 ctime=1569569238.119646103 elk-6.3.2/src/BLAS/dsyr2.f0000644002504400250440000002062213543334726016633 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYR2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSYR2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER INCX,INCY,LDA,N * CHARACTER UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYR2 performs the symmetric rank 2 operation *> *> A := alpha*x*y**T + alpha*y*x**T + A, *> *> where alpha is a scalar, x and y are n element vectors and A is an n *> by n symmetric matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array A is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of A *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of A *> is to be referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular part of the symmetric matrix and the strictly *> lower triangular part of A is not referenced. On exit, the *> upper triangular part of the array A is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular part of the symmetric matrix and the strictly *> upper triangular part of A is not referenced. On exit, the *> lower triangular part of the array A is overwritten by the *> lower triangular part of the updated matrix. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE DSYR2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER INCX,INCY,LDA,N CHARACTER UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER (ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSYR2 ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Set up the start points in X and Y if the increments are not both * unity. * IF ((INCX.NE.1) .OR. (INCY.NE.1)) THEN IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF JX = KX JY = KY END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through the triangular part * of A. * IF (LSAME(UPLO,'U')) THEN * * Form A when A is stored in the upper triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 20 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*Y(J) TEMP2 = ALPHA*X(J) DO 10 I = 1,J A(I,J) = A(I,J) + X(I)*TEMP1 + Y(I)*TEMP2 10 CONTINUE END IF 20 CONTINUE ELSE DO 40 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*Y(JY) TEMP2 = ALPHA*X(JX) IX = KX IY = KY DO 30 I = 1,J A(I,J) = A(I,J) + X(IX)*TEMP1 + Y(IY)*TEMP2 IX = IX + INCX IY = IY + INCY 30 CONTINUE END IF JX = JX + INCX JY = JY + INCY 40 CONTINUE END IF ELSE * * Form A when A is stored in the lower triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*Y(J) TEMP2 = ALPHA*X(J) DO 50 I = J,N A(I,J) = A(I,J) + X(I)*TEMP1 + Y(I)*TEMP2 50 CONTINUE END IF 60 CONTINUE ELSE DO 80 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*Y(JY) TEMP2 = ALPHA*X(JX) IX = JX IY = JY DO 70 I = J,N A(I,J) = A(I,J) + X(IX)*TEMP1 + Y(IY)*TEMP2 IX = IX + INCX IY = IY + INCY 70 CONTINUE END IF JX = JX + INCX JY = JY + INCY 80 CONTINUE END IF END IF * RETURN * * End of DSYR2 . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dtrsv.f0000644000000000000000000000012413543334726014662 xustar0028 mtime=1569569238.1246461 28 atime=1569569238.1236461 28 ctime=1569569238.1246461 elk-6.3.2/src/BLAS/dtrsv.f0000644002504400250440000002361413543334726016736 0ustar00dewhurstdewhurst00000000000000*> \brief \b DTRSV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,LDA,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DTRSV solves one of the systems of equations *> *> A*x = b, or A**T*x = b, *> *> where b and x are n element vectors and A is an n by n unit, or *> non-unit, upper or lower triangular matrix. *> *> No test for singularity or near-singularity is included in this *> routine. Such tests must be performed before calling this routine. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the equations to be solved as *> follows: *> *> TRANS = 'N' or 'n' A*x = b. *> *> TRANS = 'T' or 't' A**T*x = b. *> *> TRANS = 'C' or 'c' A**T*x = b. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is DOUBLE PRECISION array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element right-hand side vector b. On exit, X is overwritten *> with the solution vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level1 * * ===================================================================== SUBROUTINE DTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * -- Reference BLAS level1 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),X(*) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER (ZERO=0.0D+0) * .. * .. Local Scalars .. DOUBLE PRECISION TEMP INTEGER I,INFO,IX,J,JX,KX LOGICAL NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 6 ELSE IF (INCX.EQ.0) THEN INFO = 8 END IF IF (INFO.NE.0) THEN CALL XERBLA('DTRSV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (LSAME(TRANS,'N')) THEN * * Form x := inv( A )*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 20 J = N,1,-1 IF (X(J).NE.ZERO) THEN IF (NOUNIT) X(J) = X(J)/A(J,J) TEMP = X(J) DO 10 I = J - 1,1,-1 X(I) = X(I) - TEMP*A(I,J) 10 CONTINUE END IF 20 CONTINUE ELSE JX = KX + (N-1)*INCX DO 40 J = N,1,-1 IF (X(JX).NE.ZERO) THEN IF (NOUNIT) X(JX) = X(JX)/A(J,J) TEMP = X(JX) IX = JX DO 30 I = J - 1,1,-1 IX = IX - INCX X(IX) = X(IX) - TEMP*A(I,J) 30 CONTINUE END IF JX = JX - INCX 40 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 60 J = 1,N IF (X(J).NE.ZERO) THEN IF (NOUNIT) X(J) = X(J)/A(J,J) TEMP = X(J) DO 50 I = J + 1,N X(I) = X(I) - TEMP*A(I,J) 50 CONTINUE END IF 60 CONTINUE ELSE JX = KX DO 80 J = 1,N IF (X(JX).NE.ZERO) THEN IF (NOUNIT) X(JX) = X(JX)/A(J,J) TEMP = X(JX) IX = JX DO 70 I = J + 1,N IX = IX + INCX X(IX) = X(IX) - TEMP*A(I,J) 70 CONTINUE END IF JX = JX + INCX 80 CONTINUE END IF END IF ELSE * * Form x := inv( A**T )*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 100 J = 1,N TEMP = X(J) DO 90 I = 1,J - 1 TEMP = TEMP - A(I,J)*X(I) 90 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) X(J) = TEMP 100 CONTINUE ELSE JX = KX DO 120 J = 1,N TEMP = X(JX) IX = KX DO 110 I = 1,J - 1 TEMP = TEMP - A(I,J)*X(IX) IX = IX + INCX 110 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) X(JX) = TEMP JX = JX + INCX 120 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 140 J = N,1,-1 TEMP = X(J) DO 130 I = N,J + 1,-1 TEMP = TEMP - A(I,J)*X(I) 130 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) X(J) = TEMP 140 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 160 J = N,1,-1 TEMP = X(JX) IX = KX DO 150 I = N,J + 1,-1 TEMP = TEMP - A(I,J)*X(IX) IX = IX - INCX 150 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) X(JX) = TEMP JX = JX - INCX 160 CONTINUE END IF END IF END IF * RETURN * * End of DTRSV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dsymm.f0000644000000000000000000000013213543334726014650 xustar0030 mtime=1569569238.129646096 30 atime=1569569238.127646098 30 ctime=1569569238.129646096 elk-6.3.2/src/BLAS/dsymm.f0000644002504400250440000002565513543334726016734 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYMM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER LDA,LDB,LDC,M,N * CHARACTER SIDE,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYMM performs one of the matrix-matrix operations *> *> C := alpha*A*B + beta*C, *> *> or *> *> C := alpha*B*A + beta*C, *> *> where alpha and beta are scalars, A is a symmetric matrix and B and *> C are m by n matrices. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> On entry, SIDE specifies whether the symmetric matrix A *> appears on the left or right in the operation as follows: *> *> SIDE = 'L' or 'l' C := alpha*A*B + beta*C, *> *> SIDE = 'R' or 'r' C := alpha*B*A + beta*C, *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the symmetric matrix A is to be *> referenced as follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of the *> symmetric matrix is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of the *> symmetric matrix is to be referenced. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix C. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix C. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is *> m when SIDE = 'L' or 'l' and is n otherwise. *> Before entry with SIDE = 'L' or 'l', the m by m part of *> the array A must contain the symmetric matrix, such that *> when UPLO = 'U' or 'u', the leading m by m upper triangular *> part of the array A must contain the upper triangular part *> of the symmetric matrix and the strictly lower triangular *> part of A is not referenced, and when UPLO = 'L' or 'l', *> the leading m by m lower triangular part of the array A *> must contain the lower triangular part of the symmetric *> matrix and the strictly upper triangular part of A is not *> referenced. *> Before entry with SIDE = 'R' or 'r', the n by n part of *> the array A must contain the symmetric matrix, such that *> when UPLO = 'U' or 'u', the leading n by n upper triangular *> part of the array A must contain the upper triangular part *> of the symmetric matrix and the strictly lower triangular *> part of A is not referenced, and when UPLO = 'L' or 'l', *> the leading n by n lower triangular part of the array A *> must contain the lower triangular part of the symmetric *> matrix and the strictly upper triangular part of A is not *> referenced. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When SIDE = 'L' or 'l' then *> LDA must be at least max( 1, m ), otherwise LDA must be at *> least max( 1, n ). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension ( LDB, N ) *> Before entry, the leading m by n part of the array B must *> contain the matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. LDB must be at least *> max( 1, m ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then C need not be set on input. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension ( LDC, N ) *> Before entry, the leading m by n part of the array C must *> contain the matrix C, except when beta is zero, in which *> case C need not be set on entry. *> On exit, the array C is overwritten by the m by n updated *> matrix. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE DSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER LDA,LDB,LDC,M,N CHARACTER SIDE,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Local Scalars .. DOUBLE PRECISION TEMP1,TEMP2 INTEGER I,INFO,J,K,NROWA LOGICAL UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Set NROWA as the number of rows of A. * IF (LSAME(SIDE,'L')) THEN NROWA = M ELSE NROWA = N END IF UPPER = LSAME(UPLO,'U') * * Test the input parameters. * INFO = 0 IF ((.NOT.LSAME(SIDE,'L')) .AND. (.NOT.LSAME(SIDE,'R'))) THEN INFO = 1 ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 2 ELSE IF (M.LT.0) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 7 ELSE IF (LDB.LT.MAX(1,M)) THEN INFO = 9 ELSE IF (LDC.LT.MAX(1,M)) THEN INFO = 12 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSYMM ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. + ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,M C(I,J) = BETA*C(I,J) 30 CONTINUE 40 CONTINUE END IF RETURN END IF * * Start the operations. * IF (LSAME(SIDE,'L')) THEN * * Form C := alpha*A*B + beta*C. * IF (UPPER) THEN DO 70 J = 1,N DO 60 I = 1,M TEMP1 = ALPHA*B(I,J) TEMP2 = ZERO DO 50 K = 1,I - 1 C(K,J) = C(K,J) + TEMP1*A(K,I) TEMP2 = TEMP2 + B(K,J)*A(K,I) 50 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = TEMP1*A(I,I) + ALPHA*TEMP2 ELSE C(I,J) = BETA*C(I,J) + TEMP1*A(I,I) + + ALPHA*TEMP2 END IF 60 CONTINUE 70 CONTINUE ELSE DO 100 J = 1,N DO 90 I = M,1,-1 TEMP1 = ALPHA*B(I,J) TEMP2 = ZERO DO 80 K = I + 1,M C(K,J) = C(K,J) + TEMP1*A(K,I) TEMP2 = TEMP2 + B(K,J)*A(K,I) 80 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = TEMP1*A(I,I) + ALPHA*TEMP2 ELSE C(I,J) = BETA*C(I,J) + TEMP1*A(I,I) + + ALPHA*TEMP2 END IF 90 CONTINUE 100 CONTINUE END IF ELSE * * Form C := alpha*B*A + beta*C. * DO 170 J = 1,N TEMP1 = ALPHA*A(J,J) IF (BETA.EQ.ZERO) THEN DO 110 I = 1,M C(I,J) = TEMP1*B(I,J) 110 CONTINUE ELSE DO 120 I = 1,M C(I,J) = BETA*C(I,J) + TEMP1*B(I,J) 120 CONTINUE END IF DO 140 K = 1,J - 1 IF (UPPER) THEN TEMP1 = ALPHA*A(K,J) ELSE TEMP1 = ALPHA*A(J,K) END IF DO 130 I = 1,M C(I,J) = C(I,J) + TEMP1*B(I,K) 130 CONTINUE 140 CONTINUE DO 160 K = J + 1,N IF (UPPER) THEN TEMP1 = ALPHA*A(J,K) ELSE TEMP1 = ALPHA*A(K,J) END IF DO 150 I = 1,M C(I,J) = C(I,J) + TEMP1*B(I,K) 150 CONTINUE 160 CONTINUE 170 CONTINUE END IF * RETURN * * End of DSYMM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dsyr2k.f0000644000000000000000000000013213543334726014735 xustar0030 mtime=1569569238.134646093 30 atime=1569569238.132646095 30 ctime=1569569238.134646093 elk-6.3.2/src/BLAS/dsyr2k.f0000644002504400250440000003031613543334726017007 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYR2K * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE DSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER K,LDA,LDB,LDC,N * CHARACTER TRANS,UPLO * .. * .. Array Arguments .. * DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYR2K performs one of the symmetric rank 2k operations *> *> C := alpha*A*B**T + alpha*B*A**T + beta*C, *> *> or *> *> C := alpha*A**T*B + alpha*B**T*A + beta*C, *> *> where alpha and beta are scalars, C is an n by n symmetric matrix *> and A and B are n by k matrices in the first case and k by n *> matrices in the second case. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array C is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of C *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of C *> is to be referenced. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' C := alpha*A*B**T + alpha*B*A**T + *> beta*C. *> *> TRANS = 'T' or 't' C := alpha*A**T*B + alpha*B**T*A + *> beta*C. *> *> TRANS = 'C' or 'c' C := alpha*A**T*B + alpha*B**T*A + *> beta*C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix C. N must be *> at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry with TRANS = 'N' or 'n', K specifies the number *> of columns of the matrices A and B, and on entry with *> TRANS = 'T' or 't' or 'C' or 'c', K specifies the number *> of rows of the matrices A and B. K must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is *> k when TRANS = 'N' or 'n', and is n otherwise. *> Before entry with TRANS = 'N' or 'n', the leading n by k *> part of the array A must contain the matrix A, otherwise *> the leading k by n part of the array A must contain the *> matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When TRANS = 'N' or 'n' *> then LDA must be at least max( 1, n ), otherwise LDA must *> be at least max( 1, k ). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension ( LDB, kb ), where kb is *> k when TRANS = 'N' or 'n', and is n otherwise. *> Before entry with TRANS = 'N' or 'n', the leading n by k *> part of the array B must contain the matrix B, otherwise *> the leading k by n part of the array B must contain the *> matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. When TRANS = 'N' or 'n' *> then LDB must be at least max( 1, n ), otherwise LDB must *> be at least max( 1, k ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension ( LDC, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array C must contain the upper *> triangular part of the symmetric matrix and the strictly *> lower triangular part of C is not referenced. On exit, the *> upper triangular part of the array C is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array C must contain the lower *> triangular part of the symmetric matrix and the strictly *> upper triangular part of C is not referenced. On exit, the *> lower triangular part of the array C is overwritten by the *> lower triangular part of the updated matrix. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup double_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE DSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER K,LDA,LDB,LDC,N CHARACTER TRANS,UPLO * .. * .. Array Arguments .. DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Local Scalars .. DOUBLE PRECISION TEMP1,TEMP2 INTEGER I,INFO,J,L,NROWA LOGICAL UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Test the input parameters. * IF (LSAME(TRANS,'N')) THEN NROWA = N ELSE NROWA = K END IF UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 1 ELSE IF ((.NOT.LSAME(TRANS,'N')) .AND. + (.NOT.LSAME(TRANS,'T')) .AND. + (.NOT.LSAME(TRANS,'C'))) THEN INFO = 2 ELSE IF (N.LT.0) THEN INFO = 3 ELSE IF (K.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 7 ELSE IF (LDB.LT.MAX(1,NROWA)) THEN INFO = 9 ELSE IF (LDC.LT.MAX(1,N)) THEN INFO = 12 END IF IF (INFO.NE.0) THEN CALL XERBLA('DSYR2K',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (((ALPHA.EQ.ZERO).OR. + (K.EQ.0)).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (UPPER) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,J C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,J C(I,J) = BETA*C(I,J) 30 CONTINUE 40 CONTINUE END IF ELSE IF (BETA.EQ.ZERO) THEN DO 60 J = 1,N DO 50 I = J,N C(I,J) = ZERO 50 CONTINUE 60 CONTINUE ELSE DO 80 J = 1,N DO 70 I = J,N C(I,J) = BETA*C(I,J) 70 CONTINUE 80 CONTINUE END IF END IF RETURN END IF * * Start the operations. * IF (LSAME(TRANS,'N')) THEN * * Form C := alpha*A*B**T + alpha*B*A**T + C. * IF (UPPER) THEN DO 130 J = 1,N IF (BETA.EQ.ZERO) THEN DO 90 I = 1,J C(I,J) = ZERO 90 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 100 I = 1,J C(I,J) = BETA*C(I,J) 100 CONTINUE END IF DO 120 L = 1,K IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN TEMP1 = ALPHA*B(J,L) TEMP2 = ALPHA*A(J,L) DO 110 I = 1,J C(I,J) = C(I,J) + A(I,L)*TEMP1 + + B(I,L)*TEMP2 110 CONTINUE END IF 120 CONTINUE 130 CONTINUE ELSE DO 180 J = 1,N IF (BETA.EQ.ZERO) THEN DO 140 I = J,N C(I,J) = ZERO 140 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 150 I = J,N C(I,J) = BETA*C(I,J) 150 CONTINUE END IF DO 170 L = 1,K IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN TEMP1 = ALPHA*B(J,L) TEMP2 = ALPHA*A(J,L) DO 160 I = J,N C(I,J) = C(I,J) + A(I,L)*TEMP1 + + B(I,L)*TEMP2 160 CONTINUE END IF 170 CONTINUE 180 CONTINUE END IF ELSE * * Form C := alpha*A**T*B + alpha*B**T*A + C. * IF (UPPER) THEN DO 210 J = 1,N DO 200 I = 1,J TEMP1 = ZERO TEMP2 = ZERO DO 190 L = 1,K TEMP1 = TEMP1 + A(L,I)*B(L,J) TEMP2 = TEMP2 + B(L,I)*A(L,J) 190 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP1 + ALPHA*TEMP2 ELSE C(I,J) = BETA*C(I,J) + ALPHA*TEMP1 + + ALPHA*TEMP2 END IF 200 CONTINUE 210 CONTINUE ELSE DO 240 J = 1,N DO 230 I = J,N TEMP1 = ZERO TEMP2 = ZERO DO 220 L = 1,K TEMP1 = TEMP1 + A(L,I)*B(L,J) TEMP2 = TEMP2 + B(L,I)*A(L,J) 220 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP1 + ALPHA*TEMP2 ELSE C(I,J) = BETA*C(I,J) + ALPHA*TEMP1 + + ALPHA*TEMP2 END IF 230 CONTINUE 240 CONTINUE END IF END IF * RETURN * * End of DSYR2K. * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zswap.f0000644000000000000000000000013213543334726014663 xustar0030 mtime=1569569238.138646091 30 atime=1569569238.137646091 30 ctime=1569569238.138646091 elk-6.3.2/src/BLAS/zswap.f0000644002504400250440000000545013543334726016736 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZSWAP * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZSWAP(N,ZX,INCX,ZY,INCY) * * .. Scalar Arguments .. * INTEGER INCX,INCY,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*),ZY(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZSWAP interchanges two vectors. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in,out] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim *> *> \param[in,out] ZY *> \verbatim *> ZY is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> storage spacing between elements of ZY *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE ZSWAP(N,ZX,INCX,ZY,INCY) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,INCY,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*),ZY(*) * .. * * ===================================================================== * * .. Local Scalars .. COMPLEX*16 ZTEMP INTEGER I,IX,IY * .. IF (N.LE.0) RETURN IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN * * code for both increments equal to 1 DO I = 1,N ZTEMP = ZX(I) ZX(I) = ZY(I) ZY(I) = ZTEMP END DO ELSE * * code for unequal increments or equal increments not equal * to 1 * IX = 1 IY = 1 IF (INCX.LT.0) IX = (-N+1)*INCX + 1 IF (INCY.LT.0) IY = (-N+1)*INCY + 1 DO I = 1,N ZTEMP = ZX(IX) ZX(IX) = ZY(IY) ZY(IY) = ZTEMP IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/izamax.f0000644000000000000000000000013213543334726015010 xustar0030 mtime=1569569238.143646088 30 atime=1569569238.142646088 30 ctime=1569569238.143646088 elk-6.3.2/src/BLAS/izamax.f0000644002504400250440000000536413543334726017067 0ustar00dewhurstdewhurst00000000000000*> \brief \b IZAMAX * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * INTEGER FUNCTION IZAMAX(N,ZX,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> IZAMAX finds the index of the first element having maximum |Re(.)| + |Im(.)| *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of SX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup aux_blas * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 1/15/85. *> modified 3/93 to return if incx .le. 0. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== INTEGER FUNCTION IZAMAX(N,ZX,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DMAX INTEGER I,IX * .. * .. External Functions .. DOUBLE PRECISION DCABS1 EXTERNAL DCABS1 * .. IZAMAX = 0 IF (N.LT.1 .OR. INCX.LE.0) RETURN IZAMAX = 1 IF (N.EQ.1) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * DMAX = DCABS1(ZX(1)) DO I = 2,N IF (DCABS1(ZX(I)).GT.DMAX) THEN IZAMAX = I DMAX = DCABS1(ZX(I)) END IF END DO ELSE * * code for increment not equal to 1 * IX = 1 DMAX = DCABS1(ZX(1)) IX = IX + INCX DO I = 2,N IF (DCABS1(ZX(IX)).GT.DMAX) THEN IZAMAX = I DMAX = DCABS1(ZX(IX)) END IF IX = IX + INCX END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zscal.f0000644000000000000000000000013213543334726014633 xustar0030 mtime=1569569238.147646085 30 atime=1569569238.146646086 30 ctime=1569569238.147646085 elk-6.3.2/src/BLAS/zscal.f0000644002504400250440000000466213543334726016712 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZSCAL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZSCAL(N,ZA,ZX,INCX) * * .. Scalar Arguments .. * COMPLEX*16 ZA * INTEGER INCX,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZSCAL scales a vector by a constant. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in] ZA *> \verbatim *> ZA is COMPLEX*16 *> On entry, ZA specifies the scalar alpha. *> \endverbatim *> *> \param[in,out] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 3/93 to return if incx .le. 0. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== SUBROUTINE ZSCAL(N,ZA,ZX,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. COMPLEX*16 ZA INTEGER INCX,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I,NINCX * .. IF (N.LE.0 .OR. INCX.LE.0) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * DO I = 1,N ZX(I) = ZA*ZX(I) END DO ELSE * * code for increment not equal to 1 * NINCX = N*INCX DO I = 1,NINCX,INCX ZX(I) = ZA*ZX(I) END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztrmm.f0000644000000000000000000000013213543334726014670 xustar0030 mtime=1569569238.152646082 30 atime=1569569238.150646083 30 ctime=1569569238.152646082 elk-6.3.2/src/BLAS/ztrmm.f0000644002504400250440000003416613543334726016751 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRMM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * INTEGER LDA,LDB,M,N * CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),B(LDB,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRMM performs one of the matrix-matrix operations *> *> B := alpha*op( A )*B, or B := alpha*B*op( A ) *> *> where alpha is a scalar, B is an m by n matrix, A is a unit, or *> non-unit, upper or lower triangular matrix and op( A ) is one of *> *> op( A ) = A or op( A ) = A**T or op( A ) = A**H. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> On entry, SIDE specifies whether op( A ) multiplies B from *> the left or right as follows: *> *> SIDE = 'L' or 'l' B := alpha*op( A )*B. *> *> SIDE = 'R' or 'r' B := alpha*B*op( A ). *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix A is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANSA *> \verbatim *> TRANSA is CHARACTER*1 *> On entry, TRANSA specifies the form of op( A ) to be used in *> the matrix multiplication as follows: *> *> TRANSA = 'N' or 'n' op( A ) = A. *> *> TRANSA = 'T' or 't' op( A ) = A**T. *> *> TRANSA = 'C' or 'c' op( A ) = A**H. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit triangular *> as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of B. M must be at *> least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of B. N must be *> at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. When alpha is *> zero then A is not referenced and B need not be set before *> entry. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, k ), where k is m *> when SIDE = 'L' or 'l' and is n when SIDE = 'R' or 'r'. *> Before entry with UPLO = 'U' or 'u', the leading k by k *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading k by k *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When SIDE = 'L' or 'l' then *> LDA must be at least max( 1, m ), when SIDE = 'R' or 'r' *> then LDA must be at least max( 1, n ). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension ( LDB, N ). *> Before entry, the leading m by n part of the array B must *> contain the matrix B, and on exit is overwritten by the *> transformed matrix. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. LDB must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA INTEGER LDA,LDB,M,N CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),B(LDB,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,J,K,NROWA LOGICAL LSIDE,NOCONJ,NOUNIT,UPPER * .. * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * * Test the input parameters. * LSIDE = LSAME(SIDE,'L') IF (LSIDE) THEN NROWA = M ELSE NROWA = N END IF NOCONJ = LSAME(TRANSA,'T') NOUNIT = LSAME(DIAG,'N') UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.LSIDE) .AND. (.NOT.LSAME(SIDE,'R'))) THEN INFO = 1 ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 2 ELSE IF ((.NOT.LSAME(TRANSA,'N')) .AND. + (.NOT.LSAME(TRANSA,'T')) .AND. + (.NOT.LSAME(TRANSA,'C'))) THEN INFO = 3 ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN INFO = 4 ELSE IF (M.LT.0) THEN INFO = 5 ELSE IF (N.LT.0) THEN INFO = 6 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 9 ELSE IF (LDB.LT.MAX(1,M)) THEN INFO = 11 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTRMM ',INFO) RETURN END IF * * Quick return if possible. * IF (M.EQ.0 .OR. N.EQ.0) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M B(I,J) = ZERO 10 CONTINUE 20 CONTINUE RETURN END IF * * Start the operations. * IF (LSIDE) THEN IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*A*B. * IF (UPPER) THEN DO 50 J = 1,N DO 40 K = 1,M IF (B(K,J).NE.ZERO) THEN TEMP = ALPHA*B(K,J) DO 30 I = 1,K - 1 B(I,J) = B(I,J) + TEMP*A(I,K) 30 CONTINUE IF (NOUNIT) TEMP = TEMP*A(K,K) B(K,J) = TEMP END IF 40 CONTINUE 50 CONTINUE ELSE DO 80 J = 1,N DO 70 K = M,1,-1 IF (B(K,J).NE.ZERO) THEN TEMP = ALPHA*B(K,J) B(K,J) = TEMP IF (NOUNIT) B(K,J) = B(K,J)*A(K,K) DO 60 I = K + 1,M B(I,J) = B(I,J) + TEMP*A(I,K) 60 CONTINUE END IF 70 CONTINUE 80 CONTINUE END IF ELSE * * Form B := alpha*A**T*B or B := alpha*A**H*B. * IF (UPPER) THEN DO 120 J = 1,N DO 110 I = M,1,-1 TEMP = B(I,J) IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*A(I,I) DO 90 K = 1,I - 1 TEMP = TEMP + A(K,I)*B(K,J) 90 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(A(I,I)) DO 100 K = 1,I - 1 TEMP = TEMP + DCONJG(A(K,I))*B(K,J) 100 CONTINUE END IF B(I,J) = ALPHA*TEMP 110 CONTINUE 120 CONTINUE ELSE DO 160 J = 1,N DO 150 I = 1,M TEMP = B(I,J) IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*A(I,I) DO 130 K = I + 1,M TEMP = TEMP + A(K,I)*B(K,J) 130 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(A(I,I)) DO 140 K = I + 1,M TEMP = TEMP + DCONJG(A(K,I))*B(K,J) 140 CONTINUE END IF B(I,J) = ALPHA*TEMP 150 CONTINUE 160 CONTINUE END IF END IF ELSE IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*B*A. * IF (UPPER) THEN DO 200 J = N,1,-1 TEMP = ALPHA IF (NOUNIT) TEMP = TEMP*A(J,J) DO 170 I = 1,M B(I,J) = TEMP*B(I,J) 170 CONTINUE DO 190 K = 1,J - 1 IF (A(K,J).NE.ZERO) THEN TEMP = ALPHA*A(K,J) DO 180 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 180 CONTINUE END IF 190 CONTINUE 200 CONTINUE ELSE DO 240 J = 1,N TEMP = ALPHA IF (NOUNIT) TEMP = TEMP*A(J,J) DO 210 I = 1,M B(I,J) = TEMP*B(I,J) 210 CONTINUE DO 230 K = J + 1,N IF (A(K,J).NE.ZERO) THEN TEMP = ALPHA*A(K,J) DO 220 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 220 CONTINUE END IF 230 CONTINUE 240 CONTINUE END IF ELSE * * Form B := alpha*B*A**T or B := alpha*B*A**H. * IF (UPPER) THEN DO 280 K = 1,N DO 260 J = 1,K - 1 IF (A(J,K).NE.ZERO) THEN IF (NOCONJ) THEN TEMP = ALPHA*A(J,K) ELSE TEMP = ALPHA*DCONJG(A(J,K)) END IF DO 250 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 250 CONTINUE END IF 260 CONTINUE TEMP = ALPHA IF (NOUNIT) THEN IF (NOCONJ) THEN TEMP = TEMP*A(K,K) ELSE TEMP = TEMP*DCONJG(A(K,K)) END IF END IF IF (TEMP.NE.ONE) THEN DO 270 I = 1,M B(I,K) = TEMP*B(I,K) 270 CONTINUE END IF 280 CONTINUE ELSE DO 320 K = N,1,-1 DO 300 J = K + 1,N IF (A(J,K).NE.ZERO) THEN IF (NOCONJ) THEN TEMP = ALPHA*A(J,K) ELSE TEMP = ALPHA*DCONJG(A(J,K)) END IF DO 290 I = 1,M B(I,J) = B(I,J) + TEMP*B(I,K) 290 CONTINUE END IF 300 CONTINUE TEMP = ALPHA IF (NOUNIT) THEN IF (NOCONJ) THEN TEMP = TEMP*A(K,K) ELSE TEMP = TEMP*DCONJG(A(K,K)) END IF END IF IF (TEMP.NE.ONE) THEN DO 310 I = 1,M B(I,K) = TEMP*B(I,K) 310 CONTINUE END IF 320 CONTINUE END IF END IF END IF * RETURN * * End of ZTRMM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztrsm.f0000644000000000000000000000013213543334726014676 xustar0030 mtime=1569569238.158646078 30 atime=1569569238.156646079 30 ctime=1569569238.158646078 elk-6.3.2/src/BLAS/ztrsm.f0000644002504400250440000003574713543334726016765 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRSM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * INTEGER LDA,LDB,M,N * CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),B(LDB,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRSM solves one of the matrix equations *> *> op( A )*X = alpha*B, or X*op( A ) = alpha*B, *> *> where alpha is a scalar, X and B are m by n matrices, A is a unit, or *> non-unit, upper or lower triangular matrix and op( A ) is one of *> *> op( A ) = A or op( A ) = A**T or op( A ) = A**H. *> *> The matrix X is overwritten on B. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> On entry, SIDE specifies whether op( A ) appears on the left *> or right of X as follows: *> *> SIDE = 'L' or 'l' op( A )*X = alpha*B. *> *> SIDE = 'R' or 'r' X*op( A ) = alpha*B. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix A is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANSA *> \verbatim *> TRANSA is CHARACTER*1 *> On entry, TRANSA specifies the form of op( A ) to be used in *> the matrix multiplication as follows: *> *> TRANSA = 'N' or 'n' op( A ) = A. *> *> TRANSA = 'T' or 't' op( A ) = A**T. *> *> TRANSA = 'C' or 'c' op( A ) = A**H. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit triangular *> as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of B. M must be at *> least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of B. N must be *> at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. When alpha is *> zero then A is not referenced and B need not be set before *> entry. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, k ), *> where k is m when SIDE = 'L' or 'l' *> and k is n when SIDE = 'R' or 'r'. *> Before entry with UPLO = 'U' or 'u', the leading k by k *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading k by k *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When SIDE = 'L' or 'l' then *> LDA must be at least max( 1, m ), when SIDE = 'R' or 'r' *> then LDA must be at least max( 1, n ). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension ( LDB, N ) *> Before entry, the leading m by n part of the array B must *> contain the right-hand side matrix B, and on exit is *> overwritten by the solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. LDB must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA INTEGER LDA,LDB,M,N CHARACTER DIAG,SIDE,TRANSA,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),B(LDB,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,J,K,NROWA LOGICAL LSIDE,NOCONJ,NOUNIT,UPPER * .. * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * * Test the input parameters. * LSIDE = LSAME(SIDE,'L') IF (LSIDE) THEN NROWA = M ELSE NROWA = N END IF NOCONJ = LSAME(TRANSA,'T') NOUNIT = LSAME(DIAG,'N') UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.LSIDE) .AND. (.NOT.LSAME(SIDE,'R'))) THEN INFO = 1 ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 2 ELSE IF ((.NOT.LSAME(TRANSA,'N')) .AND. + (.NOT.LSAME(TRANSA,'T')) .AND. + (.NOT.LSAME(TRANSA,'C'))) THEN INFO = 3 ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN INFO = 4 ELSE IF (M.LT.0) THEN INFO = 5 ELSE IF (N.LT.0) THEN INFO = 6 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 9 ELSE IF (LDB.LT.MAX(1,M)) THEN INFO = 11 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTRSM ',INFO) RETURN END IF * * Quick return if possible. * IF (M.EQ.0 .OR. N.EQ.0) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M B(I,J) = ZERO 10 CONTINUE 20 CONTINUE RETURN END IF * * Start the operations. * IF (LSIDE) THEN IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*inv( A )*B. * IF (UPPER) THEN DO 60 J = 1,N IF (ALPHA.NE.ONE) THEN DO 30 I = 1,M B(I,J) = ALPHA*B(I,J) 30 CONTINUE END IF DO 50 K = M,1,-1 IF (B(K,J).NE.ZERO) THEN IF (NOUNIT) B(K,J) = B(K,J)/A(K,K) DO 40 I = 1,K - 1 B(I,J) = B(I,J) - B(K,J)*A(I,K) 40 CONTINUE END IF 50 CONTINUE 60 CONTINUE ELSE DO 100 J = 1,N IF (ALPHA.NE.ONE) THEN DO 70 I = 1,M B(I,J) = ALPHA*B(I,J) 70 CONTINUE END IF DO 90 K = 1,M IF (B(K,J).NE.ZERO) THEN IF (NOUNIT) B(K,J) = B(K,J)/A(K,K) DO 80 I = K + 1,M B(I,J) = B(I,J) - B(K,J)*A(I,K) 80 CONTINUE END IF 90 CONTINUE 100 CONTINUE END IF ELSE * * Form B := alpha*inv( A**T )*B * or B := alpha*inv( A**H )*B. * IF (UPPER) THEN DO 140 J = 1,N DO 130 I = 1,M TEMP = ALPHA*B(I,J) IF (NOCONJ) THEN DO 110 K = 1,I - 1 TEMP = TEMP - A(K,I)*B(K,J) 110 CONTINUE IF (NOUNIT) TEMP = TEMP/A(I,I) ELSE DO 120 K = 1,I - 1 TEMP = TEMP - DCONJG(A(K,I))*B(K,J) 120 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(I,I)) END IF B(I,J) = TEMP 130 CONTINUE 140 CONTINUE ELSE DO 180 J = 1,N DO 170 I = M,1,-1 TEMP = ALPHA*B(I,J) IF (NOCONJ) THEN DO 150 K = I + 1,M TEMP = TEMP - A(K,I)*B(K,J) 150 CONTINUE IF (NOUNIT) TEMP = TEMP/A(I,I) ELSE DO 160 K = I + 1,M TEMP = TEMP - DCONJG(A(K,I))*B(K,J) 160 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(I,I)) END IF B(I,J) = TEMP 170 CONTINUE 180 CONTINUE END IF END IF ELSE IF (LSAME(TRANSA,'N')) THEN * * Form B := alpha*B*inv( A ). * IF (UPPER) THEN DO 230 J = 1,N IF (ALPHA.NE.ONE) THEN DO 190 I = 1,M B(I,J) = ALPHA*B(I,J) 190 CONTINUE END IF DO 210 K = 1,J - 1 IF (A(K,J).NE.ZERO) THEN DO 200 I = 1,M B(I,J) = B(I,J) - A(K,J)*B(I,K) 200 CONTINUE END IF 210 CONTINUE IF (NOUNIT) THEN TEMP = ONE/A(J,J) DO 220 I = 1,M B(I,J) = TEMP*B(I,J) 220 CONTINUE END IF 230 CONTINUE ELSE DO 280 J = N,1,-1 IF (ALPHA.NE.ONE) THEN DO 240 I = 1,M B(I,J) = ALPHA*B(I,J) 240 CONTINUE END IF DO 260 K = J + 1,N IF (A(K,J).NE.ZERO) THEN DO 250 I = 1,M B(I,J) = B(I,J) - A(K,J)*B(I,K) 250 CONTINUE END IF 260 CONTINUE IF (NOUNIT) THEN TEMP = ONE/A(J,J) DO 270 I = 1,M B(I,J) = TEMP*B(I,J) 270 CONTINUE END IF 280 CONTINUE END IF ELSE * * Form B := alpha*B*inv( A**T ) * or B := alpha*B*inv( A**H ). * IF (UPPER) THEN DO 330 K = N,1,-1 IF (NOUNIT) THEN IF (NOCONJ) THEN TEMP = ONE/A(K,K) ELSE TEMP = ONE/DCONJG(A(K,K)) END IF DO 290 I = 1,M B(I,K) = TEMP*B(I,K) 290 CONTINUE END IF DO 310 J = 1,K - 1 IF (A(J,K).NE.ZERO) THEN IF (NOCONJ) THEN TEMP = A(J,K) ELSE TEMP = DCONJG(A(J,K)) END IF DO 300 I = 1,M B(I,J) = B(I,J) - TEMP*B(I,K) 300 CONTINUE END IF 310 CONTINUE IF (ALPHA.NE.ONE) THEN DO 320 I = 1,M B(I,K) = ALPHA*B(I,K) 320 CONTINUE END IF 330 CONTINUE ELSE DO 380 K = 1,N IF (NOUNIT) THEN IF (NOCONJ) THEN TEMP = ONE/A(K,K) ELSE TEMP = ONE/DCONJG(A(K,K)) END IF DO 340 I = 1,M B(I,K) = TEMP*B(I,K) 340 CONTINUE END IF DO 360 J = K + 1,N IF (A(J,K).NE.ZERO) THEN IF (NOCONJ) THEN TEMP = A(J,K) ELSE TEMP = DCONJG(A(J,K)) END IF DO 350 I = 1,M B(I,J) = B(I,J) - TEMP*B(I,K) 350 CONTINUE END IF 360 CONTINUE IF (ALPHA.NE.ONE) THEN DO 370 I = 1,M B(I,K) = ALPHA*B(I,K) 370 CONTINUE END IF 380 CONTINUE END IF END IF END IF * RETURN * * End of ZTRSM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zher2.f0000644000000000000000000000013213543334726014551 xustar0030 mtime=1569569238.162646075 30 atime=1569569238.161646076 30 ctime=1569569238.162646075 elk-6.3.2/src/BLAS/zher2.f0000644002504400250440000002245113543334726016624 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHER2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHER2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * INTEGER INCX,INCY,LDA,N * CHARACTER UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHER2 performs the hermitian rank 2 operation *> *> A := alpha*x*y**H + conjg( alpha )*y*x**H + A, *> *> where alpha is a scalar, x and y are n element vectors and A is an n *> by n hermitian matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array A is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of A *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of A *> is to be referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular part of the hermitian matrix and the strictly *> lower triangular part of A is not referenced. On exit, the *> upper triangular part of the array A is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular part of the hermitian matrix and the strictly *> upper triangular part of A is not referenced. On exit, the *> lower triangular part of the array A is overwritten by the *> lower triangular part of the updated matrix. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero, and on exit they *> are set to zero. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHER2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA INTEGER INCX,INCY,LDA,N CHARACTER UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHER2 ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Set up the start points in X and Y if the increments are not both * unity. * IF ((INCX.NE.1) .OR. (INCY.NE.1)) THEN IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF JX = KX JY = KY END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through the triangular part * of A. * IF (LSAME(UPLO,'U')) THEN * * Form A when A is stored in the upper triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 20 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(J)) TEMP2 = DCONJG(ALPHA*X(J)) DO 10 I = 1,J - 1 A(I,J) = A(I,J) + X(I)*TEMP1 + Y(I)*TEMP2 10 CONTINUE A(J,J) = DBLE(A(J,J)) + + DBLE(X(J)*TEMP1+Y(J)*TEMP2) ELSE A(J,J) = DBLE(A(J,J)) END IF 20 CONTINUE ELSE DO 40 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(JY)) TEMP2 = DCONJG(ALPHA*X(JX)) IX = KX IY = KY DO 30 I = 1,J - 1 A(I,J) = A(I,J) + X(IX)*TEMP1 + Y(IY)*TEMP2 IX = IX + INCX IY = IY + INCY 30 CONTINUE A(J,J) = DBLE(A(J,J)) + + DBLE(X(JX)*TEMP1+Y(JY)*TEMP2) ELSE A(J,J) = DBLE(A(J,J)) END IF JX = JX + INCX JY = JY + INCY 40 CONTINUE END IF ELSE * * Form A when A is stored in the lower triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(J)) TEMP2 = DCONJG(ALPHA*X(J)) A(J,J) = DBLE(A(J,J)) + + DBLE(X(J)*TEMP1+Y(J)*TEMP2) DO 50 I = J + 1,N A(I,J) = A(I,J) + X(I)*TEMP1 + Y(I)*TEMP2 50 CONTINUE ELSE A(J,J) = DBLE(A(J,J)) END IF 60 CONTINUE ELSE DO 80 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(JY)) TEMP2 = DCONJG(ALPHA*X(JX)) A(J,J) = DBLE(A(J,J)) + + DBLE(X(JX)*TEMP1+Y(JY)*TEMP2) IX = JX IY = JY DO 70 I = J + 1,N IX = IX + INCX IY = IY + INCY A(I,J) = A(I,J) + X(IX)*TEMP1 + Y(IY)*TEMP2 70 CONTINUE ELSE A(J,J) = DBLE(A(J,J)) END IF JX = JX + INCX JY = JY + INCY 80 CONTINUE END IF END IF * RETURN * * End of ZHER2 . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztrsv.f0000644000000000000000000000013213543334726014707 xustar0030 mtime=1569569238.167646072 30 atime=1569569238.166646073 30 ctime=1569569238.167646072 elk-6.3.2/src/BLAS/ztrsv.f0000644002504400250440000002661513543334726016770 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRSV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,LDA,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRSV solves one of the systems of equations *> *> A*x = b, or A**T*x = b, or A**H*x = b, *> *> where b and x are n element vectors and A is an n by n unit, or *> non-unit, upper or lower triangular matrix. *> *> No test for singularity or near-singularity is included in this *> routine. Such tests must be performed before calling this routine. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the equations to be solved as *> follows: *> *> TRANS = 'N' or 'n' A*x = b. *> *> TRANS = 'T' or 't' A**T*x = b. *> *> TRANS = 'C' or 'c' A**H*x = b. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element right-hand side vector b. On exit, X is overwritten *> with the solution vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,KX LOGICAL NOCONJ,NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 6 ELSE IF (INCX.EQ.0) THEN INFO = 8 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTRSV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOCONJ = LSAME(TRANS,'T') NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (LSAME(TRANS,'N')) THEN * * Form x := inv( A )*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 20 J = N,1,-1 IF (X(J).NE.ZERO) THEN IF (NOUNIT) X(J) = X(J)/A(J,J) TEMP = X(J) DO 10 I = J - 1,1,-1 X(I) = X(I) - TEMP*A(I,J) 10 CONTINUE END IF 20 CONTINUE ELSE JX = KX + (N-1)*INCX DO 40 J = N,1,-1 IF (X(JX).NE.ZERO) THEN IF (NOUNIT) X(JX) = X(JX)/A(J,J) TEMP = X(JX) IX = JX DO 30 I = J - 1,1,-1 IX = IX - INCX X(IX) = X(IX) - TEMP*A(I,J) 30 CONTINUE END IF JX = JX - INCX 40 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 60 J = 1,N IF (X(J).NE.ZERO) THEN IF (NOUNIT) X(J) = X(J)/A(J,J) TEMP = X(J) DO 50 I = J + 1,N X(I) = X(I) - TEMP*A(I,J) 50 CONTINUE END IF 60 CONTINUE ELSE JX = KX DO 80 J = 1,N IF (X(JX).NE.ZERO) THEN IF (NOUNIT) X(JX) = X(JX)/A(J,J) TEMP = X(JX) IX = JX DO 70 I = J + 1,N IX = IX + INCX X(IX) = X(IX) - TEMP*A(I,J) 70 CONTINUE END IF JX = JX + INCX 80 CONTINUE END IF END IF ELSE * * Form x := inv( A**T )*x or x := inv( A**H )*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 110 J = 1,N TEMP = X(J) IF (NOCONJ) THEN DO 90 I = 1,J - 1 TEMP = TEMP - A(I,J)*X(I) 90 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) ELSE DO 100 I = 1,J - 1 TEMP = TEMP - DCONJG(A(I,J))*X(I) 100 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(J,J)) END IF X(J) = TEMP 110 CONTINUE ELSE JX = KX DO 140 J = 1,N IX = KX TEMP = X(JX) IF (NOCONJ) THEN DO 120 I = 1,J - 1 TEMP = TEMP - A(I,J)*X(IX) IX = IX + INCX 120 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) ELSE DO 130 I = 1,J - 1 TEMP = TEMP - DCONJG(A(I,J))*X(IX) IX = IX + INCX 130 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(J,J)) END IF X(JX) = TEMP JX = JX + INCX 140 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 170 J = N,1,-1 TEMP = X(J) IF (NOCONJ) THEN DO 150 I = N,J + 1,-1 TEMP = TEMP - A(I,J)*X(I) 150 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) ELSE DO 160 I = N,J + 1,-1 TEMP = TEMP - DCONJG(A(I,J))*X(I) 160 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(J,J)) END IF X(J) = TEMP 170 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 200 J = N,1,-1 IX = KX TEMP = X(JX) IF (NOCONJ) THEN DO 180 I = N,J + 1,-1 TEMP = TEMP - A(I,J)*X(IX) IX = IX - INCX 180 CONTINUE IF (NOUNIT) TEMP = TEMP/A(J,J) ELSE DO 190 I = N,J + 1,-1 TEMP = TEMP - DCONJG(A(I,J))*X(IX) IX = IX - INCX 190 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(A(J,J)) END IF X(JX) = TEMP JX = JX - INCX 200 CONTINUE END IF END IF END IF * RETURN * * End of ZTRSV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztrmv.f0000644000000000000000000000013113543334726014700 xustar0030 mtime=1569569238.172646069 29 atime=1569569238.17064607 30 ctime=1569569238.172646069 elk-6.3.2/src/BLAS/ztrmv.f0000644002504400250440000002646713543334726016767 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,LDA,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRMV performs one of the matrix-vector operations *> *> x := A*x, or x := A**T*x, or x := A**H*x, *> *> where x is an n element vector and A is an n by n unit, or non-unit, *> upper or lower triangular matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' x := A*x. *> *> TRANS = 'T' or 't' x := A**T*x. *> *> TRANS = 'C' or 'c' x := A**H*x. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ). *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array A must contain the upper *> triangular matrix and the strictly lower triangular part of *> A is not referenced. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array A must contain the lower *> triangular matrix and the strictly upper triangular part of *> A is not referenced. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced either, but are assumed to be unity. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, n ). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. On exit, X is overwritten with the *> transformed vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,LDA,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,KX LOGICAL NOCONJ,NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,N)) THEN INFO = 6 ELSE IF (INCX.EQ.0) THEN INFO = 8 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTRMV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOCONJ = LSAME(TRANS,'T') NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (LSAME(TRANS,'N')) THEN * * Form x := A*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = X(J) DO 10 I = 1,J - 1 X(I) = X(I) + TEMP*A(I,J) 10 CONTINUE IF (NOUNIT) X(J) = X(J)*A(J,J) END IF 20 CONTINUE ELSE JX = KX DO 40 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = X(JX) IX = KX DO 30 I = 1,J - 1 X(IX) = X(IX) + TEMP*A(I,J) IX = IX + INCX 30 CONTINUE IF (NOUNIT) X(JX) = X(JX)*A(J,J) END IF JX = JX + INCX 40 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 60 J = N,1,-1 IF (X(J).NE.ZERO) THEN TEMP = X(J) DO 50 I = N,J + 1,-1 X(I) = X(I) + TEMP*A(I,J) 50 CONTINUE IF (NOUNIT) X(J) = X(J)*A(J,J) END IF 60 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 80 J = N,1,-1 IF (X(JX).NE.ZERO) THEN TEMP = X(JX) IX = KX DO 70 I = N,J + 1,-1 X(IX) = X(IX) + TEMP*A(I,J) IX = IX - INCX 70 CONTINUE IF (NOUNIT) X(JX) = X(JX)*A(J,J) END IF JX = JX - INCX 80 CONTINUE END IF END IF ELSE * * Form x := A**T*x or x := A**H*x. * IF (LSAME(UPLO,'U')) THEN IF (INCX.EQ.1) THEN DO 110 J = N,1,-1 TEMP = X(J) IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*A(J,J) DO 90 I = J - 1,1,-1 TEMP = TEMP + A(I,J)*X(I) 90 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(A(J,J)) DO 100 I = J - 1,1,-1 TEMP = TEMP + DCONJG(A(I,J))*X(I) 100 CONTINUE END IF X(J) = TEMP 110 CONTINUE ELSE JX = KX + (N-1)*INCX DO 140 J = N,1,-1 TEMP = X(JX) IX = JX IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*A(J,J) DO 120 I = J - 1,1,-1 IX = IX - INCX TEMP = TEMP + A(I,J)*X(IX) 120 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(A(J,J)) DO 130 I = J - 1,1,-1 IX = IX - INCX TEMP = TEMP + DCONJG(A(I,J))*X(IX) 130 CONTINUE END IF X(JX) = TEMP JX = JX - INCX 140 CONTINUE END IF ELSE IF (INCX.EQ.1) THEN DO 170 J = 1,N TEMP = X(J) IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*A(J,J) DO 150 I = J + 1,N TEMP = TEMP + A(I,J)*X(I) 150 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(A(J,J)) DO 160 I = J + 1,N TEMP = TEMP + DCONJG(A(I,J))*X(I) 160 CONTINUE END IF X(J) = TEMP 170 CONTINUE ELSE JX = KX DO 200 J = 1,N TEMP = X(JX) IX = JX IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*A(J,J) DO 180 I = J + 1,N IX = IX + INCX TEMP = TEMP + A(I,J)*X(IX) 180 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(A(J,J)) DO 190 I = J + 1,N IX = IX + INCX TEMP = TEMP + DCONJG(A(I,J))*X(IX) 190 CONTINUE END IF X(JX) = TEMP JX = JX + INCX 200 CONTINUE END IF END IF END IF * RETURN * * End of ZTRMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zhemm.f0000644000000000000000000000013213543334726014637 xustar0030 mtime=1569569238.177646066 30 atime=1569569238.176646067 30 ctime=1569569238.177646066 elk-6.3.2/src/BLAS/zhemm.f0000644002504400250440000002615313543334726016715 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHEMM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA,BETA * INTEGER LDA,LDB,LDC,M,N * CHARACTER SIDE,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEMM performs one of the matrix-matrix operations *> *> C := alpha*A*B + beta*C, *> *> or *> *> C := alpha*B*A + beta*C, *> *> where alpha and beta are scalars, A is an hermitian matrix and B and *> C are m by n matrices. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> On entry, SIDE specifies whether the hermitian matrix A *> appears on the left or right in the operation as follows: *> *> SIDE = 'L' or 'l' C := alpha*A*B + beta*C, *> *> SIDE = 'R' or 'r' C := alpha*B*A + beta*C, *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the hermitian matrix A is to be *> referenced as follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of the *> hermitian matrix is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of the *> hermitian matrix is to be referenced. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix C. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix C. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is *> m when SIDE = 'L' or 'l' and is n otherwise. *> Before entry with SIDE = 'L' or 'l', the m by m part of *> the array A must contain the hermitian matrix, such that *> when UPLO = 'U' or 'u', the leading m by m upper triangular *> part of the array A must contain the upper triangular part *> of the hermitian matrix and the strictly lower triangular *> part of A is not referenced, and when UPLO = 'L' or 'l', *> the leading m by m lower triangular part of the array A *> must contain the lower triangular part of the hermitian *> matrix and the strictly upper triangular part of A is not *> referenced. *> Before entry with SIDE = 'R' or 'r', the n by n part of *> the array A must contain the hermitian matrix, such that *> when UPLO = 'U' or 'u', the leading n by n upper triangular *> part of the array A must contain the upper triangular part *> of the hermitian matrix and the strictly lower triangular *> part of A is not referenced, and when UPLO = 'L' or 'l', *> the leading n by n lower triangular part of the array A *> must contain the lower triangular part of the hermitian *> matrix and the strictly upper triangular part of A is not *> referenced. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When SIDE = 'L' or 'l' then *> LDA must be at least max( 1, m ), otherwise LDA must be at *> least max( 1, n ). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is COMPLEX*16 array, dimension ( LDB, N ) *> Before entry, the leading m by n part of the array B must *> contain the matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. LDB must be at least *> max( 1, m ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is COMPLEX*16 *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then C need not be set on input. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension ( LDC, N ) *> Before entry, the leading m by n part of the array C must *> contain the matrix C, except when beta is zero, in which *> case C need not be set on entry. *> On exit, the array C is overwritten by the m by n updated *> matrix. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA INTEGER LDA,LDB,LDC,M,N CHARACTER SIDE,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG,MAX * .. * .. Local Scalars .. COMPLEX*16 TEMP1,TEMP2 INTEGER I,INFO,J,K,NROWA LOGICAL UPPER * .. * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * * Set NROWA as the number of rows of A. * IF (LSAME(SIDE,'L')) THEN NROWA = M ELSE NROWA = N END IF UPPER = LSAME(UPLO,'U') * * Test the input parameters. * INFO = 0 IF ((.NOT.LSAME(SIDE,'L')) .AND. (.NOT.LSAME(SIDE,'R'))) THEN INFO = 1 ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 2 ELSE IF (M.LT.0) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 7 ELSE IF (LDB.LT.MAX(1,M)) THEN INFO = 9 ELSE IF (LDC.LT.MAX(1,M)) THEN INFO = 12 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHEMM ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. + ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,M C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,M C(I,J) = BETA*C(I,J) 30 CONTINUE 40 CONTINUE END IF RETURN END IF * * Start the operations. * IF (LSAME(SIDE,'L')) THEN * * Form C := alpha*A*B + beta*C. * IF (UPPER) THEN DO 70 J = 1,N DO 60 I = 1,M TEMP1 = ALPHA*B(I,J) TEMP2 = ZERO DO 50 K = 1,I - 1 C(K,J) = C(K,J) + TEMP1*A(K,I) TEMP2 = TEMP2 + B(K,J)*DCONJG(A(K,I)) 50 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = TEMP1*DBLE(A(I,I)) + ALPHA*TEMP2 ELSE C(I,J) = BETA*C(I,J) + TEMP1*DBLE(A(I,I)) + + ALPHA*TEMP2 END IF 60 CONTINUE 70 CONTINUE ELSE DO 100 J = 1,N DO 90 I = M,1,-1 TEMP1 = ALPHA*B(I,J) TEMP2 = ZERO DO 80 K = I + 1,M C(K,J) = C(K,J) + TEMP1*A(K,I) TEMP2 = TEMP2 + B(K,J)*DCONJG(A(K,I)) 80 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = TEMP1*DBLE(A(I,I)) + ALPHA*TEMP2 ELSE C(I,J) = BETA*C(I,J) + TEMP1*DBLE(A(I,I)) + + ALPHA*TEMP2 END IF 90 CONTINUE 100 CONTINUE END IF ELSE * * Form C := alpha*B*A + beta*C. * DO 170 J = 1,N TEMP1 = ALPHA*DBLE(A(J,J)) IF (BETA.EQ.ZERO) THEN DO 110 I = 1,M C(I,J) = TEMP1*B(I,J) 110 CONTINUE ELSE DO 120 I = 1,M C(I,J) = BETA*C(I,J) + TEMP1*B(I,J) 120 CONTINUE END IF DO 140 K = 1,J - 1 IF (UPPER) THEN TEMP1 = ALPHA*A(K,J) ELSE TEMP1 = ALPHA*DCONJG(A(J,K)) END IF DO 130 I = 1,M C(I,J) = C(I,J) + TEMP1*B(I,K) 130 CONTINUE 140 CONTINUE DO 160 K = J + 1,N IF (UPPER) THEN TEMP1 = ALPHA*DCONJG(A(J,K)) ELSE TEMP1 = ALPHA*A(K,J) END IF DO 150 I = 1,M C(I,J) = C(I,J) + TEMP1*B(I,K) 150 CONTINUE 160 CONTINUE 170 CONTINUE END IF * RETURN * * End of ZHEMM . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zher2k.f0000644000000000000000000000013213543334726014724 xustar0030 mtime=1569569238.183646062 30 atime=1569569238.181646063 30 ctime=1569569238.183646062 elk-6.3.2/src/BLAS/zher2k.f0000644002504400250440000003453013543334726017000 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHER2K * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * DOUBLE PRECISION BETA * INTEGER K,LDA,LDB,LDC,N * CHARACTER TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHER2K performs one of the hermitian rank 2k operations *> *> C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C, *> *> or *> *> C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C, *> *> where alpha and beta are scalars with beta real, C is an n by n *> hermitian matrix and A and B are n by k matrices in the first case *> and k by n matrices in the second case. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array C is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of C *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of C *> is to be referenced. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' C := alpha*A*B**H + *> conjg( alpha )*B*A**H + *> beta*C. *> *> TRANS = 'C' or 'c' C := alpha*A**H*B + *> conjg( alpha )*B**H*A + *> beta*C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix C. N must be *> at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry with TRANS = 'N' or 'n', K specifies the number *> of columns of the matrices A and B, and on entry with *> TRANS = 'C' or 'c', K specifies the number of rows of the *> matrices A and B. K must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 . *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is *> k when TRANS = 'N' or 'n', and is n otherwise. *> Before entry with TRANS = 'N' or 'n', the leading n by k *> part of the array A must contain the matrix A, otherwise *> the leading k by n part of the array A must contain the *> matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When TRANS = 'N' or 'n' *> then LDA must be at least max( 1, n ), otherwise LDA must *> be at least max( 1, k ). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is COMPLEX*16 array, dimension ( LDB, kb ), where kb is *> k when TRANS = 'N' or 'n', and is n otherwise. *> Before entry with TRANS = 'N' or 'n', the leading n by k *> part of the array B must contain the matrix B, otherwise *> the leading k by n part of the array B must contain the *> matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> On entry, LDB specifies the first dimension of B as declared *> in the calling (sub) program. When TRANS = 'N' or 'n' *> then LDB must be at least max( 1, n ), otherwise LDB must *> be at least max( 1, k ). *> Unchanged on exit. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION . *> On entry, BETA specifies the scalar beta. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension ( LDC, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array C must contain the upper *> triangular part of the hermitian matrix and the strictly *> lower triangular part of C is not referenced. On exit, the *> upper triangular part of the array C is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array C must contain the lower *> triangular part of the hermitian matrix and the strictly *> upper triangular part of C is not referenced. On exit, the *> lower triangular part of the array C is overwritten by the *> lower triangular part of the updated matrix. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero, and on exit they *> are set to zero. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> *> -- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1. *> Ed Anderson, Cray Research Inc. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA DOUBLE PRECISION BETA INTEGER K,LDA,LDB,LDC,N CHARACTER TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG,MAX * .. * .. Local Scalars .. COMPLEX*16 TEMP1,TEMP2 INTEGER I,INFO,J,L,NROWA LOGICAL UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE PARAMETER (ONE=1.0D+0) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * * Test the input parameters. * IF (LSAME(TRANS,'N')) THEN NROWA = N ELSE NROWA = K END IF UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 1 ELSE IF ((.NOT.LSAME(TRANS,'N')) .AND. + (.NOT.LSAME(TRANS,'C'))) THEN INFO = 2 ELSE IF (N.LT.0) THEN INFO = 3 ELSE IF (K.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 7 ELSE IF (LDB.LT.MAX(1,NROWA)) THEN INFO = 9 ELSE IF (LDC.LT.MAX(1,N)) THEN INFO = 12 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHER2K',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (((ALPHA.EQ.ZERO).OR. + (K.EQ.0)).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (UPPER) THEN IF (BETA.EQ.DBLE(ZERO)) THEN DO 20 J = 1,N DO 10 I = 1,J C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,J - 1 C(I,J) = BETA*C(I,J) 30 CONTINUE C(J,J) = BETA*DBLE(C(J,J)) 40 CONTINUE END IF ELSE IF (BETA.EQ.DBLE(ZERO)) THEN DO 60 J = 1,N DO 50 I = J,N C(I,J) = ZERO 50 CONTINUE 60 CONTINUE ELSE DO 80 J = 1,N C(J,J) = BETA*DBLE(C(J,J)) DO 70 I = J + 1,N C(I,J) = BETA*C(I,J) 70 CONTINUE 80 CONTINUE END IF END IF RETURN END IF * * Start the operations. * IF (LSAME(TRANS,'N')) THEN * * Form C := alpha*A*B**H + conjg( alpha )*B*A**H + * C. * IF (UPPER) THEN DO 130 J = 1,N IF (BETA.EQ.DBLE(ZERO)) THEN DO 90 I = 1,J C(I,J) = ZERO 90 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 100 I = 1,J - 1 C(I,J) = BETA*C(I,J) 100 CONTINUE C(J,J) = BETA*DBLE(C(J,J)) ELSE C(J,J) = DBLE(C(J,J)) END IF DO 120 L = 1,K IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(B(J,L)) TEMP2 = DCONJG(ALPHA*A(J,L)) DO 110 I = 1,J - 1 C(I,J) = C(I,J) + A(I,L)*TEMP1 + + B(I,L)*TEMP2 110 CONTINUE C(J,J) = DBLE(C(J,J)) + + DBLE(A(J,L)*TEMP1+B(J,L)*TEMP2) END IF 120 CONTINUE 130 CONTINUE ELSE DO 180 J = 1,N IF (BETA.EQ.DBLE(ZERO)) THEN DO 140 I = J,N C(I,J) = ZERO 140 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 150 I = J + 1,N C(I,J) = BETA*C(I,J) 150 CONTINUE C(J,J) = BETA*DBLE(C(J,J)) ELSE C(J,J) = DBLE(C(J,J)) END IF DO 170 L = 1,K IF ((A(J,L).NE.ZERO) .OR. (B(J,L).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(B(J,L)) TEMP2 = DCONJG(ALPHA*A(J,L)) DO 160 I = J + 1,N C(I,J) = C(I,J) + A(I,L)*TEMP1 + + B(I,L)*TEMP2 160 CONTINUE C(J,J) = DBLE(C(J,J)) + + DBLE(A(J,L)*TEMP1+B(J,L)*TEMP2) END IF 170 CONTINUE 180 CONTINUE END IF ELSE * * Form C := alpha*A**H*B + conjg( alpha )*B**H*A + * C. * IF (UPPER) THEN DO 210 J = 1,N DO 200 I = 1,J TEMP1 = ZERO TEMP2 = ZERO DO 190 L = 1,K TEMP1 = TEMP1 + DCONJG(A(L,I))*B(L,J) TEMP2 = TEMP2 + DCONJG(B(L,I))*A(L,J) 190 CONTINUE IF (I.EQ.J) THEN IF (BETA.EQ.DBLE(ZERO)) THEN C(J,J) = DBLE(ALPHA*TEMP1+ + DCONJG(ALPHA)*TEMP2) ELSE C(J,J) = BETA*DBLE(C(J,J)) + + DBLE(ALPHA*TEMP1+ + DCONJG(ALPHA)*TEMP2) END IF ELSE IF (BETA.EQ.DBLE(ZERO)) THEN C(I,J) = ALPHA*TEMP1 + DCONJG(ALPHA)*TEMP2 ELSE C(I,J) = BETA*C(I,J) + ALPHA*TEMP1 + + DCONJG(ALPHA)*TEMP2 END IF END IF 200 CONTINUE 210 CONTINUE ELSE DO 240 J = 1,N DO 230 I = J,N TEMP1 = ZERO TEMP2 = ZERO DO 220 L = 1,K TEMP1 = TEMP1 + DCONJG(A(L,I))*B(L,J) TEMP2 = TEMP2 + DCONJG(B(L,I))*A(L,J) 220 CONTINUE IF (I.EQ.J) THEN IF (BETA.EQ.DBLE(ZERO)) THEN C(J,J) = DBLE(ALPHA*TEMP1+ + DCONJG(ALPHA)*TEMP2) ELSE C(J,J) = BETA*DBLE(C(J,J)) + + DBLE(ALPHA*TEMP1+ + DCONJG(ALPHA)*TEMP2) END IF ELSE IF (BETA.EQ.DBLE(ZERO)) THEN C(I,J) = ALPHA*TEMP1 + DCONJG(ALPHA)*TEMP2 ELSE C(I,J) = BETA*C(I,J) + ALPHA*TEMP1 + + DCONJG(ALPHA)*TEMP2 END IF END IF 230 CONTINUE 240 CONTINUE END IF END IF * RETURN * * End of ZHER2K. * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztpsv.f0000644000000000000000000000013113543334726014704 xustar0030 mtime=1569569238.188646059 29 atime=1569569238.18664606 30 ctime=1569569238.188646059 elk-6.3.2/src/BLAS/ztpsv.f0000644002504400250440000003011713543334726016756 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTPSV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTPSV(UPLO,TRANS,DIAG,N,AP,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 AP(*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTPSV solves one of the systems of equations *> *> A*x = b, or A**T*x = b, or A**H*x = b, *> *> where b and x are n element vectors and A is an n by n unit, or *> non-unit, upper or lower triangular matrix, supplied in packed form. *> *> No test for singularity or near-singularity is included in this *> routine. Such tests must be performed before calling this routine. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the equations to be solved as *> follows: *> *> TRANS = 'N' or 'n' A*x = b. *> *> TRANS = 'T' or 't' A**T*x = b. *> *> TRANS = 'C' or 'c' A**H*x = b. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is COMPLEX*16 array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular matrix packed sequentially, *> column by column, so that AP( 1 ) contains a( 1, 1 ), *> AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) *> respectively, and so on. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular matrix packed sequentially, *> column by column, so that AP( 1 ) contains a( 1, 1 ), *> AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) *> respectively, and so on. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced, but are assumed to be unity. *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element right-hand side vector b. On exit, X is overwritten *> with the solution vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTPSV(UPLO,TRANS,DIAG,N,AP,X,INCX) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 AP(*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,K,KK,KX LOGICAL NOCONJ,NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (INCX.EQ.0) THEN INFO = 7 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTPSV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOCONJ = LSAME(TRANS,'T') NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of AP are * accessed sequentially with one pass through AP. * IF (LSAME(TRANS,'N')) THEN * * Form x := inv( A )*x. * IF (LSAME(UPLO,'U')) THEN KK = (N* (N+1))/2 IF (INCX.EQ.1) THEN DO 20 J = N,1,-1 IF (X(J).NE.ZERO) THEN IF (NOUNIT) X(J) = X(J)/AP(KK) TEMP = X(J) K = KK - 1 DO 10 I = J - 1,1,-1 X(I) = X(I) - TEMP*AP(K) K = K - 1 10 CONTINUE END IF KK = KK - J 20 CONTINUE ELSE JX = KX + (N-1)*INCX DO 40 J = N,1,-1 IF (X(JX).NE.ZERO) THEN IF (NOUNIT) X(JX) = X(JX)/AP(KK) TEMP = X(JX) IX = JX DO 30 K = KK - 1,KK - J + 1,-1 IX = IX - INCX X(IX) = X(IX) - TEMP*AP(K) 30 CONTINUE END IF JX = JX - INCX KK = KK - J 40 CONTINUE END IF ELSE KK = 1 IF (INCX.EQ.1) THEN DO 60 J = 1,N IF (X(J).NE.ZERO) THEN IF (NOUNIT) X(J) = X(J)/AP(KK) TEMP = X(J) K = KK + 1 DO 50 I = J + 1,N X(I) = X(I) - TEMP*AP(K) K = K + 1 50 CONTINUE END IF KK = KK + (N-J+1) 60 CONTINUE ELSE JX = KX DO 80 J = 1,N IF (X(JX).NE.ZERO) THEN IF (NOUNIT) X(JX) = X(JX)/AP(KK) TEMP = X(JX) IX = JX DO 70 K = KK + 1,KK + N - J IX = IX + INCX X(IX) = X(IX) - TEMP*AP(K) 70 CONTINUE END IF JX = JX + INCX KK = KK + (N-J+1) 80 CONTINUE END IF END IF ELSE * * Form x := inv( A**T )*x or x := inv( A**H )*x. * IF (LSAME(UPLO,'U')) THEN KK = 1 IF (INCX.EQ.1) THEN DO 110 J = 1,N TEMP = X(J) K = KK IF (NOCONJ) THEN DO 90 I = 1,J - 1 TEMP = TEMP - AP(K)*X(I) K = K + 1 90 CONTINUE IF (NOUNIT) TEMP = TEMP/AP(KK+J-1) ELSE DO 100 I = 1,J - 1 TEMP = TEMP - DCONJG(AP(K))*X(I) K = K + 1 100 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(AP(KK+J-1)) END IF X(J) = TEMP KK = KK + J 110 CONTINUE ELSE JX = KX DO 140 J = 1,N TEMP = X(JX) IX = KX IF (NOCONJ) THEN DO 120 K = KK,KK + J - 2 TEMP = TEMP - AP(K)*X(IX) IX = IX + INCX 120 CONTINUE IF (NOUNIT) TEMP = TEMP/AP(KK+J-1) ELSE DO 130 K = KK,KK + J - 2 TEMP = TEMP - DCONJG(AP(K))*X(IX) IX = IX + INCX 130 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(AP(KK+J-1)) END IF X(JX) = TEMP JX = JX + INCX KK = KK + J 140 CONTINUE END IF ELSE KK = (N* (N+1))/2 IF (INCX.EQ.1) THEN DO 170 J = N,1,-1 TEMP = X(J) K = KK IF (NOCONJ) THEN DO 150 I = N,J + 1,-1 TEMP = TEMP - AP(K)*X(I) K = K - 1 150 CONTINUE IF (NOUNIT) TEMP = TEMP/AP(KK-N+J) ELSE DO 160 I = N,J + 1,-1 TEMP = TEMP - DCONJG(AP(K))*X(I) K = K - 1 160 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(AP(KK-N+J)) END IF X(J) = TEMP KK = KK - (N-J+1) 170 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 200 J = N,1,-1 TEMP = X(JX) IX = KX IF (NOCONJ) THEN DO 180 K = KK,KK - (N- (J+1)),-1 TEMP = TEMP - AP(K)*X(IX) IX = IX - INCX 180 CONTINUE IF (NOUNIT) TEMP = TEMP/AP(KK-N+J) ELSE DO 190 K = KK,KK - (N- (J+1)),-1 TEMP = TEMP - DCONJG(AP(K))*X(IX) IX = IX - INCX 190 CONTINUE IF (NOUNIT) TEMP = TEMP/DCONJG(AP(KK-N+J)) END IF X(JX) = TEMP JX = JX - INCX KK = KK - (N-J+1) 200 CONTINUE END IF END IF END IF * RETURN * * End of ZTPSV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zhpmv.f0000644000000000000000000000013213543334726014663 xustar0030 mtime=1569569238.193646056 30 atime=1569569238.191646057 30 ctime=1569569238.193646056 elk-6.3.2/src/BLAS/zhpmv.f0000644002504400250440000002275213543334726016742 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHPMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA,BETA * INTEGER INCX,INCY,N * CHARACTER UPLO * .. * .. Array Arguments .. * COMPLEX*16 AP(*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPMV performs the matrix-vector operation *> *> y := alpha*A*x + beta*y, *> *> where alpha and beta are scalars, x and y are n element vectors and *> A is an n by n hermitian matrix, supplied in packed form. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the matrix A is supplied in the packed *> array AP as follows: *> *> UPLO = 'U' or 'u' The upper triangular part of A is *> supplied in AP. *> *> UPLO = 'L' or 'l' The lower triangular part of A is *> supplied in AP. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is COMPLEX*16 array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular part of the hermitian matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) *> and a( 2, 2 ) respectively, and so on. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular part of the hermitian matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) *> and a( 3, 1 ) respectively, and so on. *> Note that the imaginary parts of the diagonal elements need *> not be set and are assumed to be zero. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is COMPLEX*16 *> On entry, BETA specifies the scalar beta. When BETA is *> supplied as zero then Y need not be set on input. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. On exit, Y is overwritten by the updated *> vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHPMV(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA,BETA INTEGER INCX,INCY,N CHARACTER UPLO * .. * .. Array Arguments .. COMPLEX*16 AP(*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER (ONE= (1.0D+0,0.0D+0)) COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 6 ELSE IF (INCY.EQ.0) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHPMV ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. ((ALPHA.EQ.ZERO).AND. (BETA.EQ.ONE))) RETURN * * Set up the start points in X and Y. * IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF * * Start the operations. In this version the elements of the array AP * are accessed sequentially with one pass through AP. * * First form y := beta*y. * IF (BETA.NE.ONE) THEN IF (INCY.EQ.1) THEN IF (BETA.EQ.ZERO) THEN DO 10 I = 1,N Y(I) = ZERO 10 CONTINUE ELSE DO 20 I = 1,N Y(I) = BETA*Y(I) 20 CONTINUE END IF ELSE IY = KY IF (BETA.EQ.ZERO) THEN DO 30 I = 1,N Y(IY) = ZERO IY = IY + INCY 30 CONTINUE ELSE DO 40 I = 1,N Y(IY) = BETA*Y(IY) IY = IY + INCY 40 CONTINUE END IF END IF END IF IF (ALPHA.EQ.ZERO) RETURN KK = 1 IF (LSAME(UPLO,'U')) THEN * * Form y when AP contains the upper triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO K = KK DO 50 I = 1,J - 1 Y(I) = Y(I) + TEMP1*AP(K) TEMP2 = TEMP2 + DCONJG(AP(K))*X(I) K = K + 1 50 CONTINUE Y(J) = Y(J) + TEMP1*DBLE(AP(KK+J-1)) + ALPHA*TEMP2 KK = KK + J 60 CONTINUE ELSE JX = KX JY = KY DO 80 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO IX = KX IY = KY DO 70 K = KK,KK + J - 2 Y(IY) = Y(IY) + TEMP1*AP(K) TEMP2 = TEMP2 + DCONJG(AP(K))*X(IX) IX = IX + INCX IY = IY + INCY 70 CONTINUE Y(JY) = Y(JY) + TEMP1*DBLE(AP(KK+J-1)) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY KK = KK + J 80 CONTINUE END IF ELSE * * Form y when AP contains the lower triangle. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 100 J = 1,N TEMP1 = ALPHA*X(J) TEMP2 = ZERO Y(J) = Y(J) + TEMP1*DBLE(AP(KK)) K = KK + 1 DO 90 I = J + 1,N Y(I) = Y(I) + TEMP1*AP(K) TEMP2 = TEMP2 + DCONJG(AP(K))*X(I) K = K + 1 90 CONTINUE Y(J) = Y(J) + ALPHA*TEMP2 KK = KK + (N-J+1) 100 CONTINUE ELSE JX = KX JY = KY DO 120 J = 1,N TEMP1 = ALPHA*X(JX) TEMP2 = ZERO Y(JY) = Y(JY) + TEMP1*DBLE(AP(KK)) IX = JX IY = JY DO 110 K = KK + 1,KK + N - J IX = IX + INCX IY = IY + INCY Y(IY) = Y(IY) + TEMP1*AP(K) TEMP2 = TEMP2 + DCONJG(AP(K))*X(IX) 110 CONTINUE Y(JY) = Y(JY) + ALPHA*TEMP2 JX = JX + INCX JY = JY + INCY KK = KK + (N-J+1) 120 CONTINUE END IF END IF * RETURN * * End of ZHPMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zhpr2.f0000644000000000000000000000013213543334726014564 xustar0030 mtime=1569569238.197646053 30 atime=1569569238.196646054 30 ctime=1569569238.197646053 elk-6.3.2/src/BLAS/zhpr2.f0000644002504400250440000002263613543334726016644 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHPR2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * INTEGER INCX,INCY,N * CHARACTER UPLO * .. * .. Array Arguments .. * COMPLEX*16 AP(*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPR2 performs the hermitian rank 2 operation *> *> A := alpha*x*y**H + conjg( alpha )*y*x**H + A, *> *> where alpha is a scalar, x and y are n element vectors and A is an *> n by n hermitian matrix, supplied in packed form. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the matrix A is supplied in the packed *> array AP as follows: *> *> UPLO = 'U' or 'u' The upper triangular part of A is *> supplied in AP. *> *> UPLO = 'L' or 'l' The lower triangular part of A is *> supplied in AP. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular part of the hermitian matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) *> and a( 2, 2 ) respectively, and so on. On exit, the array *> AP is overwritten by the upper triangular part of the *> updated matrix. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular part of the hermitian matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) *> and a( 3, 1 ) respectively, and so on. On exit, the array *> AP is overwritten by the lower triangular part of the *> updated matrix. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero, and on exit they *> are set to zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA INTEGER INCX,INCY,N CHARACTER UPLO * .. * .. Array Arguments .. COMPLEX*16 AP(*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP1,TEMP2 INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,KX,KY * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHPR2 ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Set up the start points in X and Y if the increments are not both * unity. * IF ((INCX.NE.1) .OR. (INCY.NE.1)) THEN IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (N-1)*INCX END IF IF (INCY.GT.0) THEN KY = 1 ELSE KY = 1 - (N-1)*INCY END IF JX = KX JY = KY END IF * * Start the operations. In this version the elements of the array AP * are accessed sequentially with one pass through AP. * KK = 1 IF (LSAME(UPLO,'U')) THEN * * Form A when upper triangle is stored in AP. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 20 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(J)) TEMP2 = DCONJG(ALPHA*X(J)) K = KK DO 10 I = 1,J - 1 AP(K) = AP(K) + X(I)*TEMP1 + Y(I)*TEMP2 K = K + 1 10 CONTINUE AP(KK+J-1) = DBLE(AP(KK+J-1)) + + DBLE(X(J)*TEMP1+Y(J)*TEMP2) ELSE AP(KK+J-1) = DBLE(AP(KK+J-1)) END IF KK = KK + J 20 CONTINUE ELSE DO 40 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(JY)) TEMP2 = DCONJG(ALPHA*X(JX)) IX = KX IY = KY DO 30 K = KK,KK + J - 2 AP(K) = AP(K) + X(IX)*TEMP1 + Y(IY)*TEMP2 IX = IX + INCX IY = IY + INCY 30 CONTINUE AP(KK+J-1) = DBLE(AP(KK+J-1)) + + DBLE(X(JX)*TEMP1+Y(JY)*TEMP2) ELSE AP(KK+J-1) = DBLE(AP(KK+J-1)) END IF JX = JX + INCX JY = JY + INCY KK = KK + J 40 CONTINUE END IF ELSE * * Form A when lower triangle is stored in AP. * IF ((INCX.EQ.1) .AND. (INCY.EQ.1)) THEN DO 60 J = 1,N IF ((X(J).NE.ZERO) .OR. (Y(J).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(J)) TEMP2 = DCONJG(ALPHA*X(J)) AP(KK) = DBLE(AP(KK)) + + DBLE(X(J)*TEMP1+Y(J)*TEMP2) K = KK + 1 DO 50 I = J + 1,N AP(K) = AP(K) + X(I)*TEMP1 + Y(I)*TEMP2 K = K + 1 50 CONTINUE ELSE AP(KK) = DBLE(AP(KK)) END IF KK = KK + N - J + 1 60 CONTINUE ELSE DO 80 J = 1,N IF ((X(JX).NE.ZERO) .OR. (Y(JY).NE.ZERO)) THEN TEMP1 = ALPHA*DCONJG(Y(JY)) TEMP2 = DCONJG(ALPHA*X(JX)) AP(KK) = DBLE(AP(KK)) + + DBLE(X(JX)*TEMP1+Y(JY)*TEMP2) IX = JX IY = JY DO 70 K = KK + 1,KK + N - J IX = IX + INCX IY = IY + INCY AP(K) = AP(K) + X(IX)*TEMP1 + Y(IY)*TEMP2 70 CONTINUE ELSE AP(KK) = DBLE(AP(KK)) END IF JX = JX + INCX JY = JY + INCY KK = KK + N - J + 1 80 CONTINUE END IF END IF * RETURN * * End of ZHPR2 . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/ztpmv.f0000644000000000000000000000013013543334726014675 xustar0029 mtime=1569569238.20264605 30 atime=1569569238.200646051 29 ctime=1569569238.20264605 elk-6.3.2/src/BLAS/ztpmv.f0000644002504400250440000002775213543334726016763 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTPMV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZTPMV(UPLO,TRANS,DIAG,N,AP,X,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 AP(*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTPMV performs one of the matrix-vector operations *> *> x := A*x, or x := A**T*x, or x := A**H*x, *> *> where x is an n element vector and A is an n by n unit, or non-unit, *> upper or lower triangular matrix, supplied in packed form. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the matrix is an upper or *> lower triangular matrix as follows: *> *> UPLO = 'U' or 'u' A is an upper triangular matrix. *> *> UPLO = 'L' or 'l' A is a lower triangular matrix. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' x := A*x. *> *> TRANS = 'T' or 't' x := A**T*x. *> *> TRANS = 'C' or 'c' x := A**H*x. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> On entry, DIAG specifies whether or not A is unit *> triangular as follows: *> *> DIAG = 'U' or 'u' A is assumed to be unit triangular. *> *> DIAG = 'N' or 'n' A is not assumed to be unit *> triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is COMPLEX*16 array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular matrix packed sequentially, *> column by column, so that AP( 1 ) contains a( 1, 1 ), *> AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) *> respectively, and so on. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular matrix packed sequentially, *> column by column, so that AP( 1 ) contains a( 1, 1 ), *> AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) *> respectively, and so on. *> Note that when DIAG = 'U' or 'u', the diagonal elements of *> A are not referenced, but are assumed to be unity. *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. On exit, X is overwritten with the *> transformed vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> The vector and matrix arguments are not referenced when N = 0, or M = 0 *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTPMV(UPLO,TRANS,DIAG,N,AP,X,INCX) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX,N CHARACTER DIAG,TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 AP(*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,K,KK,KX LOGICAL NOCONJ,NOUNIT * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND. + .NOT.LSAME(TRANS,'C')) THEN INFO = 2 ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN INFO = 3 ELSE IF (N.LT.0) THEN INFO = 4 ELSE IF (INCX.EQ.0) THEN INFO = 7 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZTPMV ',INFO) RETURN END IF * * Quick return if possible. * IF (N.EQ.0) RETURN * NOCONJ = LSAME(TRANS,'T') NOUNIT = LSAME(DIAG,'N') * * Set up the start point in X if the increment is not unity. This * will be ( N - 1 )*INCX too small for descending loops. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of AP are * accessed sequentially with one pass through AP. * IF (LSAME(TRANS,'N')) THEN * * Form x:= A*x. * IF (LSAME(UPLO,'U')) THEN KK = 1 IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = X(J) K = KK DO 10 I = 1,J - 1 X(I) = X(I) + TEMP*AP(K) K = K + 1 10 CONTINUE IF (NOUNIT) X(J) = X(J)*AP(KK+J-1) END IF KK = KK + J 20 CONTINUE ELSE JX = KX DO 40 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = X(JX) IX = KX DO 30 K = KK,KK + J - 2 X(IX) = X(IX) + TEMP*AP(K) IX = IX + INCX 30 CONTINUE IF (NOUNIT) X(JX) = X(JX)*AP(KK+J-1) END IF JX = JX + INCX KK = KK + J 40 CONTINUE END IF ELSE KK = (N* (N+1))/2 IF (INCX.EQ.1) THEN DO 60 J = N,1,-1 IF (X(J).NE.ZERO) THEN TEMP = X(J) K = KK DO 50 I = N,J + 1,-1 X(I) = X(I) + TEMP*AP(K) K = K - 1 50 CONTINUE IF (NOUNIT) X(J) = X(J)*AP(KK-N+J) END IF KK = KK - (N-J+1) 60 CONTINUE ELSE KX = KX + (N-1)*INCX JX = KX DO 80 J = N,1,-1 IF (X(JX).NE.ZERO) THEN TEMP = X(JX) IX = KX DO 70 K = KK,KK - (N- (J+1)),-1 X(IX) = X(IX) + TEMP*AP(K) IX = IX - INCX 70 CONTINUE IF (NOUNIT) X(JX) = X(JX)*AP(KK-N+J) END IF JX = JX - INCX KK = KK - (N-J+1) 80 CONTINUE END IF END IF ELSE * * Form x := A**T*x or x := A**H*x. * IF (LSAME(UPLO,'U')) THEN KK = (N* (N+1))/2 IF (INCX.EQ.1) THEN DO 110 J = N,1,-1 TEMP = X(J) K = KK - 1 IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*AP(KK) DO 90 I = J - 1,1,-1 TEMP = TEMP + AP(K)*X(I) K = K - 1 90 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(AP(KK)) DO 100 I = J - 1,1,-1 TEMP = TEMP + DCONJG(AP(K))*X(I) K = K - 1 100 CONTINUE END IF X(J) = TEMP KK = KK - J 110 CONTINUE ELSE JX = KX + (N-1)*INCX DO 140 J = N,1,-1 TEMP = X(JX) IX = JX IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*AP(KK) DO 120 K = KK - 1,KK - J + 1,-1 IX = IX - INCX TEMP = TEMP + AP(K)*X(IX) 120 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(AP(KK)) DO 130 K = KK - 1,KK - J + 1,-1 IX = IX - INCX TEMP = TEMP + DCONJG(AP(K))*X(IX) 130 CONTINUE END IF X(JX) = TEMP JX = JX - INCX KK = KK - J 140 CONTINUE END IF ELSE KK = 1 IF (INCX.EQ.1) THEN DO 170 J = 1,N TEMP = X(J) K = KK + 1 IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*AP(KK) DO 150 I = J + 1,N TEMP = TEMP + AP(K)*X(I) K = K + 1 150 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(AP(KK)) DO 160 I = J + 1,N TEMP = TEMP + DCONJG(AP(K))*X(I) K = K + 1 160 CONTINUE END IF X(J) = TEMP KK = KK + (N-J+1) 170 CONTINUE ELSE JX = KX DO 200 J = 1,N TEMP = X(JX) IX = JX IF (NOCONJ) THEN IF (NOUNIT) TEMP = TEMP*AP(KK) DO 180 K = KK + 1,KK + N - J IX = IX + INCX TEMP = TEMP + AP(K)*X(IX) 180 CONTINUE ELSE IF (NOUNIT) TEMP = TEMP*DCONJG(AP(KK)) DO 190 K = KK + 1,KK + N - J IX = IX + INCX TEMP = TEMP + DCONJG(AP(K))*X(IX) 190 CONTINUE END IF X(JX) = TEMP JX = JX + INCX KK = KK + (N-J+1) 200 CONTINUE END IF END IF END IF * RETURN * * End of ZTPMV . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zdrot.f0000644000000000000000000000013213543334726014661 xustar0030 mtime=1569569238.207646047 30 atime=1569569238.205646048 30 ctime=1569569238.207646047 elk-6.3.2/src/BLAS/zdrot.f0000644002504400250440000000753213543334726016737 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZDROT * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S ) * * .. Scalar Arguments .. * INTEGER INCX, INCY, N * DOUBLE PRECISION C, S * .. * .. Array Arguments .. * COMPLEX*16 CX( * ), CY( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> Applies a plane rotation, where the cos and sin (c and s) are real *> and the vectors cx and cy are complex. *> jack dongarra, linpack, 3/11/78. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the vectors cx and cy. *> N must be at least zero. *> \endverbatim *> *> \param[in,out] CX *> \verbatim *> CX is COMPLEX*16 array, dimension at least *> ( 1 + ( N - 1 )*abs( INCX ) ). *> Before entry, the incremented array CX must contain the n *> element vector cx. On exit, CX is overwritten by the updated *> vector cx. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> CX. INCX must not be zero. *> \endverbatim *> *> \param[in,out] CY *> \verbatim *> CY is COMPLEX*16 array, dimension at least *> ( 1 + ( N - 1 )*abs( INCY ) ). *> Before entry, the incremented array CY must contain the n *> element vector cy. On exit, CY is overwritten by the updated *> vector cy. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> CY. INCY must not be zero. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION *> On entry, C specifies the cosine, cos. *> \endverbatim *> *> \param[in] S *> \verbatim *> S is DOUBLE PRECISION *> On entry, S specifies the sine, sin. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level1 * * ===================================================================== SUBROUTINE ZDROT( N, CX, INCX, CY, INCY, C, S ) * * -- Reference BLAS level1 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX, INCY, N DOUBLE PRECISION C, S * .. * .. Array Arguments .. COMPLEX*16 CX( * ), CY( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, IX, IY COMPLEX*16 CTEMP * .. * .. Executable Statements .. * IF( N.LE.0 ) $ RETURN IF( INCX.EQ.1 .AND. INCY.EQ.1 ) THEN * * code for both increments equal to 1 * DO I = 1, N CTEMP = C*CX( I ) + S*CY( I ) CY( I ) = C*CY( I ) - S*CX( I ) CX( I ) = CTEMP END DO ELSE * * code for unequal increments or equal increments not equal * to 1 * IX = 1 IY = 1 IF( INCX.LT.0 ) $ IX = ( -N+1 )*INCX + 1 IF( INCY.LT.0 ) $ IY = ( -N+1 )*INCY + 1 DO I = 1, N CTEMP = C*CX( IX ) + S*CY( IY ) CY( IY ) = C*CY( IY ) - S*CX( IX ) CX( IX ) = CTEMP IX = IX + INCX IY = IY + INCY END DO END IF RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zgerc.f0000644000000000000000000000013213543334726014631 xustar0030 mtime=1569569238.211646044 30 atime=1569569238.210646045 30 ctime=1569569238.211646044 elk-6.3.2/src/BLAS/zgerc.f0000644002504400250440000001304713543334726016705 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGERC * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * .. Scalar Arguments .. * COMPLEX*16 ALPHA * INTEGER INCX,INCY,LDA,M,N * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGERC performs the rank 1 operation *> *> A := alpha*x*y**H + A, *> *> where alpha is a scalar, x is an m element vector, y is an n element *> vector and A is an m by n matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of the matrix A. *> M must be at least zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( m - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the m *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCY ) ). *> Before entry, the incremented array Y must contain the n *> element vector y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> On entry, INCY specifies the increment for the elements of *> Y. INCY must not be zero. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, N ) *> Before entry, the leading m by n part of the array A must *> contain the matrix of coefficients. On exit, A is *> overwritten by the updated matrix. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. LDA must be at least *> max( 1, m ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 ALPHA INTEGER INCX,INCY,LDA,M,N * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),X(*),Y(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JY,KX * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DCONJG,MAX * .. * * Test the input parameters. * INFO = 0 IF (M.LT.0) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 ELSE IF (INCY.EQ.0) THEN INFO = 7 ELSE IF (LDA.LT.MAX(1,M)) THEN INFO = 9 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZGERC ',INFO) RETURN END IF * * Quick return if possible. * IF ((M.EQ.0) .OR. (N.EQ.0) .OR. (ALPHA.EQ.ZERO)) RETURN * * Start the operations. In this version the elements of A are * accessed sequentially with one pass through A. * IF (INCY.GT.0) THEN JY = 1 ELSE JY = 1 - (N-1)*INCY END IF IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (Y(JY).NE.ZERO) THEN TEMP = ALPHA*DCONJG(Y(JY)) DO 10 I = 1,M A(I,J) = A(I,J) + X(I)*TEMP 10 CONTINUE END IF JY = JY + INCY 20 CONTINUE ELSE IF (INCX.GT.0) THEN KX = 1 ELSE KX = 1 - (M-1)*INCX END IF DO 40 J = 1,N IF (Y(JY).NE.ZERO) THEN TEMP = ALPHA*DCONJG(Y(JY)) IX = KX DO 30 I = 1,M A(I,J) = A(I,J) + X(IX)*TEMP IX = IX + INCX 30 CONTINUE END IF JY = JY + INCY 40 CONTINUE END IF * RETURN * * End of ZGERC . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/dzasum.f0000644000000000000000000000013213543334726015022 xustar0030 mtime=1569569238.215646042 30 atime=1569569238.214646042 30 ctime=1569569238.215646042 elk-6.3.2/src/BLAS/dzasum.f0000644002504400250440000000507313543334726017076 0ustar00dewhurstdewhurst00000000000000*> \brief \b DZASUM * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DZASUM(N,ZX,INCX) * * .. Scalar Arguments .. * INTEGER INCX,N * .. * .. Array Arguments .. * COMPLEX*16 ZX(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DZASUM takes the sum of the (|Re(.)| + |Im(.)|)'s of a complex vector and *> returns a single precision result. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> number of elements in input vector(s) *> \endverbatim *> *> \param[in,out] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> storage spacing between elements of ZX *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup double_blas_level1 * *> \par Further Details: * ===================== *> *> \verbatim *> *> jack dongarra, 3/11/78. *> modified 3/93 to return if incx .le. 0. *> modified 12/3/93, array(1) declarations changed to array(*) *> \endverbatim *> * ===================================================================== DOUBLE PRECISION FUNCTION DZASUM(N,ZX,INCX) * * -- Reference BLAS level1 routine (version 3.8.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX,N * .. * .. Array Arguments .. COMPLEX*16 ZX(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION STEMP INTEGER I,NINCX * .. * .. External Functions .. DOUBLE PRECISION DCABS1 EXTERNAL DCABS1 * .. DZASUM = 0.0d0 STEMP = 0.0d0 IF (N.LE.0 .OR. INCX.LE.0) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * DO I = 1,N STEMP = STEMP + DCABS1(ZX(I)) END DO ELSE * * code for increment not equal to 1 * NINCX = N*INCX DO I = 1,NINCX,INCX STEMP = STEMP + DCABS1(ZX(I)) END DO END IF DZASUM = STEMP RETURN END elk-6.3.2/src/BLAS/PaxHeaders.21352/zherk.f0000644000000000000000000000013213543334726014642 xustar0030 mtime=1569569238.220646038 30 atime=1569569238.219646039 30 ctime=1569569238.220646038 elk-6.3.2/src/BLAS/zherk.f0000644002504400250440000002770213543334726016721 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHERK * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA,BETA * INTEGER K,LDA,LDC,N * CHARACTER TRANS,UPLO * .. * .. Array Arguments .. * COMPLEX*16 A(LDA,*),C(LDC,*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHERK performs one of the hermitian rank k operations *> *> C := alpha*A*A**H + beta*C, *> *> or *> *> C := alpha*A**H*A + beta*C, *> *> where alpha and beta are real scalars, C is an n by n hermitian *> matrix and A is an n by k matrix in the first case and a k by n *> matrix in the second case. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the array C is to be referenced as *> follows: *> *> UPLO = 'U' or 'u' Only the upper triangular part of C *> is to be referenced. *> *> UPLO = 'L' or 'l' Only the lower triangular part of C *> is to be referenced. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> On entry, TRANS specifies the operation to be performed as *> follows: *> *> TRANS = 'N' or 'n' C := alpha*A*A**H + beta*C. *> *> TRANS = 'C' or 'c' C := alpha*A**H*A + beta*C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix C. N must be *> at least zero. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> On entry with TRANS = 'N' or 'n', K specifies the number *> of columns of the matrix A, and on entry with *> TRANS = 'C' or 'c', K specifies the number of rows of the *> matrix A. K must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION . *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is *> k when TRANS = 'N' or 'n', and is n otherwise. *> Before entry with TRANS = 'N' or 'n', the leading n by k *> part of the array A must contain the matrix A, otherwise *> the leading k by n part of the array A must contain the *> matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> On entry, LDA specifies the first dimension of A as declared *> in the calling (sub) program. When TRANS = 'N' or 'n' *> then LDA must be at least max( 1, n ), otherwise LDA must *> be at least max( 1, k ). *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION. *> On entry, BETA specifies the scalar beta. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension ( LDC, N ) *> Before entry with UPLO = 'U' or 'u', the leading n by n *> upper triangular part of the array C must contain the upper *> triangular part of the hermitian matrix and the strictly *> lower triangular part of C is not referenced. On exit, the *> upper triangular part of the array C is overwritten by the *> upper triangular part of the updated matrix. *> Before entry with UPLO = 'L' or 'l', the leading n by n *> lower triangular part of the array C must contain the lower *> triangular part of the hermitian matrix and the strictly *> upper triangular part of C is not referenced. On exit, the *> lower triangular part of the array C is overwritten by the *> lower triangular part of the updated matrix. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero, and on exit they *> are set to zero. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> On entry, LDC specifies the first dimension of C as declared *> in the calling (sub) program. LDC must be at least *> max( 1, n ). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level3 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 3 Blas routine. *> *> -- Written on 8-February-1989. *> Jack Dongarra, Argonne National Laboratory. *> Iain Duff, AERE Harwell. *> Jeremy Du Croz, Numerical Algorithms Group Ltd. *> Sven Hammarling, Numerical Algorithms Group Ltd. *> *> -- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1. *> Ed Anderson, Cray Research Inc. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) * * -- Reference BLAS level3 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA,BETA INTEGER K,LDA,LDC,N CHARACTER TRANS,UPLO * .. * .. Array Arguments .. COMPLEX*16 A(LDA,*),C(LDC,*) * .. * * ===================================================================== * * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCMPLX,DCONJG,MAX * .. * .. Local Scalars .. COMPLEX*16 TEMP DOUBLE PRECISION RTEMP INTEGER I,INFO,J,L,NROWA LOGICAL UPPER * .. * .. Parameters .. DOUBLE PRECISION ONE,ZERO PARAMETER (ONE=1.0D+0,ZERO=0.0D+0) * .. * * Test the input parameters. * IF (LSAME(TRANS,'N')) THEN NROWA = N ELSE NROWA = K END IF UPPER = LSAME(UPLO,'U') * INFO = 0 IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN INFO = 1 ELSE IF ((.NOT.LSAME(TRANS,'N')) .AND. + (.NOT.LSAME(TRANS,'C'))) THEN INFO = 2 ELSE IF (N.LT.0) THEN INFO = 3 ELSE IF (K.LT.0) THEN INFO = 4 ELSE IF (LDA.LT.MAX(1,NROWA)) THEN INFO = 7 ELSE IF (LDC.LT.MAX(1,N)) THEN INFO = 10 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHERK ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (((ALPHA.EQ.ZERO).OR. + (K.EQ.0)).AND. (BETA.EQ.ONE))) RETURN * * And when alpha.eq.zero. * IF (ALPHA.EQ.ZERO) THEN IF (UPPER) THEN IF (BETA.EQ.ZERO) THEN DO 20 J = 1,N DO 10 I = 1,J C(I,J) = ZERO 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1,N DO 30 I = 1,J - 1 C(I,J) = BETA*C(I,J) 30 CONTINUE C(J,J) = BETA*DBLE(C(J,J)) 40 CONTINUE END IF ELSE IF (BETA.EQ.ZERO) THEN DO 60 J = 1,N DO 50 I = J,N C(I,J) = ZERO 50 CONTINUE 60 CONTINUE ELSE DO 80 J = 1,N C(J,J) = BETA*DBLE(C(J,J)) DO 70 I = J + 1,N C(I,J) = BETA*C(I,J) 70 CONTINUE 80 CONTINUE END IF END IF RETURN END IF * * Start the operations. * IF (LSAME(TRANS,'N')) THEN * * Form C := alpha*A*A**H + beta*C. * IF (UPPER) THEN DO 130 J = 1,N IF (BETA.EQ.ZERO) THEN DO 90 I = 1,J C(I,J) = ZERO 90 CONTINUE ELSE IF (BETA.NE.ONE) THEN DO 100 I = 1,J - 1 C(I,J) = BETA*C(I,J) 100 CONTINUE C(J,J) = BETA*DBLE(C(J,J)) ELSE C(J,J) = DBLE(C(J,J)) END IF DO 120 L = 1,K IF (A(J,L).NE.DCMPLX(ZERO)) THEN TEMP = ALPHA*DCONJG(A(J,L)) DO 110 I = 1,J - 1 C(I,J) = C(I,J) + TEMP*A(I,L) 110 CONTINUE C(J,J) = DBLE(C(J,J)) + DBLE(TEMP*A(I,L)) END IF 120 CONTINUE 130 CONTINUE ELSE DO 180 J = 1,N IF (BETA.EQ.ZERO) THEN DO 140 I = J,N C(I,J) = ZERO 140 CONTINUE ELSE IF (BETA.NE.ONE) THEN C(J,J) = BETA*DBLE(C(J,J)) DO 150 I = J + 1,N C(I,J) = BETA*C(I,J) 150 CONTINUE ELSE C(J,J) = DBLE(C(J,J)) END IF DO 170 L = 1,K IF (A(J,L).NE.DCMPLX(ZERO)) THEN TEMP = ALPHA*DCONJG(A(J,L)) C(J,J) = DBLE(C(J,J)) + DBLE(TEMP*A(J,L)) DO 160 I = J + 1,N C(I,J) = C(I,J) + TEMP*A(I,L) 160 CONTINUE END IF 170 CONTINUE 180 CONTINUE END IF ELSE * * Form C := alpha*A**H*A + beta*C. * IF (UPPER) THEN DO 220 J = 1,N DO 200 I = 1,J - 1 TEMP = ZERO DO 190 L = 1,K TEMP = TEMP + DCONJG(A(L,I))*A(L,J) 190 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 200 CONTINUE RTEMP = ZERO DO 210 L = 1,K RTEMP = RTEMP + DCONJG(A(L,J))*A(L,J) 210 CONTINUE IF (BETA.EQ.ZERO) THEN C(J,J) = ALPHA*RTEMP ELSE C(J,J) = ALPHA*RTEMP + BETA*DBLE(C(J,J)) END IF 220 CONTINUE ELSE DO 260 J = 1,N RTEMP = ZERO DO 230 L = 1,K RTEMP = RTEMP + DCONJG(A(L,J))*A(L,J) 230 CONTINUE IF (BETA.EQ.ZERO) THEN C(J,J) = ALPHA*RTEMP ELSE C(J,J) = ALPHA*RTEMP + BETA*DBLE(C(J,J)) END IF DO 250 I = J + 1,N TEMP = ZERO DO 240 L = 1,K TEMP = TEMP + DCONJG(A(L,I))*A(L,J) 240 CONTINUE IF (BETA.EQ.ZERO) THEN C(I,J) = ALPHA*TEMP ELSE C(I,J) = ALPHA*TEMP + BETA*C(I,J) END IF 250 CONTINUE 260 CONTINUE END IF END IF * RETURN * * End of ZHERK . * END elk-6.3.2/src/BLAS/PaxHeaders.21352/zhpr.f0000644000000000000000000000013213543334726014502 xustar0030 mtime=1569569238.225646035 30 atime=1569569238.224646036 30 ctime=1569569238.225646035 elk-6.3.2/src/BLAS/zhpr.f0000644002504400250440000001767213543334726016566 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHPR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * SUBROUTINE ZHPR(UPLO,N,ALPHA,X,INCX,AP) * * .. Scalar Arguments .. * DOUBLE PRECISION ALPHA * INTEGER INCX,N * CHARACTER UPLO * .. * .. Array Arguments .. * COMPLEX*16 AP(*),X(*) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPR performs the hermitian rank 1 operation *> *> A := alpha*x*x**H + A, *> *> where alpha is a real scalar, x is an n element vector and A is an *> n by n hermitian matrix, supplied in packed form. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> On entry, UPLO specifies whether the upper or lower *> triangular part of the matrix A is supplied in the packed *> array AP as follows: *> *> UPLO = 'U' or 'u' The upper triangular part of A is *> supplied in AP. *> *> UPLO = 'L' or 'l' The lower triangular part of A is *> supplied in AP. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the order of the matrix A. *> N must be at least zero. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION. *> On entry, ALPHA specifies the scalar alpha. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension at least *> ( 1 + ( n - 1 )*abs( INCX ) ). *> Before entry, the incremented array X must contain the n *> element vector x. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> On entry, INCX specifies the increment for the elements of *> X. INCX must not be zero. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension at least *> ( ( n*( n + 1 ) )/2 ). *> Before entry with UPLO = 'U' or 'u', the array AP must *> contain the upper triangular part of the hermitian matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) *> and a( 2, 2 ) respectively, and so on. On exit, the array *> AP is overwritten by the upper triangular part of the *> updated matrix. *> Before entry with UPLO = 'L' or 'l', the array AP must *> contain the lower triangular part of the hermitian matrix *> packed sequentially, column by column, so that AP( 1 ) *> contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) *> and a( 3, 1 ) respectively, and so on. On exit, the array *> AP is overwritten by the lower triangular part of the *> updated matrix. *> Note that the imaginary parts of the diagonal elements need *> not be set, they are assumed to be zero, and on exit they *> are set to zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16_blas_level2 * *> \par Further Details: * ===================== *> *> \verbatim *> *> Level 2 Blas routine. *> *> -- Written on 22-October-1986. *> Jack Dongarra, Argonne National Lab. *> Jeremy Du Croz, Nag Central Office. *> Sven Hammarling, Nag Central Office. *> Richard Hanson, Sandia National Labs. *> \endverbatim *> * ===================================================================== SUBROUTINE ZHPR(UPLO,N,ALPHA,X,INCX,AP) * * -- Reference BLAS level2 routine (version 3.7.0) -- * -- Reference BLAS is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION ALPHA INTEGER INCX,N CHARACTER UPLO * .. * .. Array Arguments .. COMPLEX*16 AP(*),X(*) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER (ZERO= (0.0D+0,0.0D+0)) * .. * .. Local Scalars .. COMPLEX*16 TEMP INTEGER I,INFO,IX,J,JX,K,KK,KX * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE,DCONJG * .. * * Test the input parameters. * INFO = 0 IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN INFO = 1 ELSE IF (N.LT.0) THEN INFO = 2 ELSE IF (INCX.EQ.0) THEN INFO = 5 END IF IF (INFO.NE.0) THEN CALL XERBLA('ZHPR ',INFO) RETURN END IF * * Quick return if possible. * IF ((N.EQ.0) .OR. (ALPHA.EQ.DBLE(ZERO))) RETURN * * Set the start point in X if the increment is not unity. * IF (INCX.LE.0) THEN KX = 1 - (N-1)*INCX ELSE IF (INCX.NE.1) THEN KX = 1 END IF * * Start the operations. In this version the elements of the array AP * are accessed sequentially with one pass through AP. * KK = 1 IF (LSAME(UPLO,'U')) THEN * * Form A when upper triangle is stored in AP. * IF (INCX.EQ.1) THEN DO 20 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(J)) K = KK DO 10 I = 1,J - 1 AP(K) = AP(K) + X(I)*TEMP K = K + 1 10 CONTINUE AP(KK+J-1) = DBLE(AP(KK+J-1)) + DBLE(X(J)*TEMP) ELSE AP(KK+J-1) = DBLE(AP(KK+J-1)) END IF KK = KK + J 20 CONTINUE ELSE JX = KX DO 40 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(JX)) IX = KX DO 30 K = KK,KK + J - 2 AP(K) = AP(K) + X(IX)*TEMP IX = IX + INCX 30 CONTINUE AP(KK+J-1) = DBLE(AP(KK+J-1)) + DBLE(X(JX)*TEMP) ELSE AP(KK+J-1) = DBLE(AP(KK+J-1)) END IF JX = JX + INCX KK = KK + J 40 CONTINUE END IF ELSE * * Form A when lower triangle is stored in AP. * IF (INCX.EQ.1) THEN DO 60 J = 1,N IF (X(J).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(J)) AP(KK) = DBLE(AP(KK)) + DBLE(TEMP*X(J)) K = KK + 1 DO 50 I = J + 1,N AP(K) = AP(K) + X(I)*TEMP K = K + 1 50 CONTINUE ELSE AP(KK) = DBLE(AP(KK)) END IF KK = KK + N - J + 1 60 CONTINUE ELSE JX = KX DO 80 J = 1,N IF (X(JX).NE.ZERO) THEN TEMP = ALPHA*DCONJG(X(JX)) AP(KK) = DBLE(AP(KK)) + DBLE(TEMP*X(JX)) IX = JX DO 70 K = KK + 1,KK + N - J IX = IX + INCX AP(K) = AP(K) + X(IX)*TEMP 70 CONTINUE ELSE AP(KK) = DBLE(AP(KK)) END IF JX = JX + INCX KK = KK + N - J + 1 80 CONTINUE END IF END IF * RETURN * * End of ZHPR . * END elk-6.3.2/src/PaxHeaders.21352/LAPACK0000644000000000000000000000013213543334727013506 xustar0030 mtime=1569569239.523645206 30 atime=1569569238.235646029 30 ctime=1569569239.523645206 elk-6.3.2/src/LAPACK/0000755002504400250440000000000013543334727015632 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed5.f0000644000000000000000000000013213543334726015067 xustar0030 mtime=1569569238.238646027 30 atime=1569569238.237646028 30 ctime=1569569238.238646027 elk-6.3.2/src/LAPACK/dlaed5.f0000644002504400250440000001237313543334726017144 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED5 used by sstedc. Solves the 2-by-2 secular equation. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED5 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED5( I, D, Z, DELTA, RHO, DLAM ) * * .. Scalar Arguments .. * INTEGER I * DOUBLE PRECISION DLAM, RHO * .. * .. Array Arguments .. * DOUBLE PRECISION D( 2 ), DELTA( 2 ), Z( 2 ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> This subroutine computes the I-th eigenvalue of a symmetric rank-one *> modification of a 2-by-2 diagonal matrix *> *> diag( D ) + RHO * Z * transpose(Z) . *> *> The diagonal elements in the array D are assumed to satisfy *> *> D(i) < D(j) for i < j . *> *> We also assume RHO > 0 and that the Euclidean norm of the vector *> Z is one. *> \endverbatim * * Arguments: * ========== * *> \param[in] I *> \verbatim *> I is INTEGER *> The index of the eigenvalue to be computed. I = 1 or I = 2. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (2) *> The original eigenvalues. We assume D(1) < D(2). *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (2) *> The components of the updating vector. *> \endverbatim *> *> \param[out] DELTA *> \verbatim *> DELTA is DOUBLE PRECISION array, dimension (2) *> The vector DELTA contains the information necessary *> to construct the eigenvectors. *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> The scalar in the symmetric updating formula. *> \endverbatim *> *> \param[out] DLAM *> \verbatim *> DLAM is DOUBLE PRECISION *> The computed lambda_I, the I-th updated eigenvalue. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Ren-Cang Li, Computer Science Division, University of California *> at Berkeley, USA *> * ===================================================================== SUBROUTINE DLAED5( I, D, Z, DELTA, RHO, DLAM ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER I DOUBLE PRECISION DLAM, RHO * .. * .. Array Arguments .. DOUBLE PRECISION D( 2 ), DELTA( 2 ), Z( 2 ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO, FOUR PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ FOUR = 4.0D0 ) * .. * .. Local Scalars .. DOUBLE PRECISION B, C, DEL, TAU, TEMP, W * .. * .. Intrinsic Functions .. INTRINSIC ABS, SQRT * .. * .. Executable Statements .. * DEL = D( 2 ) - D( 1 ) IF( I.EQ.1 ) THEN W = ONE + TWO*RHO*( Z( 2 )*Z( 2 )-Z( 1 )*Z( 1 ) ) / DEL IF( W.GT.ZERO ) THEN B = DEL + RHO*( Z( 1 )*Z( 1 )+Z( 2 )*Z( 2 ) ) C = RHO*Z( 1 )*Z( 1 )*DEL * * B > ZERO, always * TAU = TWO*C / ( B+SQRT( ABS( B*B-FOUR*C ) ) ) DLAM = D( 1 ) + TAU DELTA( 1 ) = -Z( 1 ) / TAU DELTA( 2 ) = Z( 2 ) / ( DEL-TAU ) ELSE B = -DEL + RHO*( Z( 1 )*Z( 1 )+Z( 2 )*Z( 2 ) ) C = RHO*Z( 2 )*Z( 2 )*DEL IF( B.GT.ZERO ) THEN TAU = -TWO*C / ( B+SQRT( B*B+FOUR*C ) ) ELSE TAU = ( B-SQRT( B*B+FOUR*C ) ) / TWO END IF DLAM = D( 2 ) + TAU DELTA( 1 ) = -Z( 1 ) / ( DEL+TAU ) DELTA( 2 ) = -Z( 2 ) / TAU END IF TEMP = SQRT( DELTA( 1 )*DELTA( 1 )+DELTA( 2 )*DELTA( 2 ) ) DELTA( 1 ) = DELTA( 1 ) / TEMP DELTA( 2 ) = DELTA( 2 ) / TEMP ELSE * * Now I=2 * B = -DEL + RHO*( Z( 1 )*Z( 1 )+Z( 2 )*Z( 2 ) ) C = RHO*Z( 2 )*Z( 2 )*DEL IF( B.GT.ZERO ) THEN TAU = ( B+SQRT( B*B+FOUR*C ) ) / TWO ELSE TAU = TWO*C / ( -B+SQRT( B*B+FOUR*C ) ) END IF DLAM = D( 2 ) + TAU DELTA( 1 ) = -Z( 1 ) / ( DEL+TAU ) DELTA( 2 ) = -Z( 2 ) / TAU TEMP = SQRT( DELTA( 1 )*DELTA( 1 )+DELTA( 2 )*DELTA( 2 ) ) DELTA( 1 ) = DELTA( 1 ) / TEMP DELTA( 2 ) = DELTA( 2 ) / TEMP END IF RETURN * * End OF DLAED5 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/disnan.f0000644000000000000000000000013213543334726015205 xustar0030 mtime=1569569238.242646024 30 atime=1569569238.241646025 30 ctime=1569569238.242646024 elk-6.3.2/src/LAPACK/disnan.f0000644002504400250440000000372713543334726017265 0ustar00dewhurstdewhurst00000000000000*> \brief \b DISNAN tests input for NaN. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DISNAN + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * LOGICAL FUNCTION DISNAN( DIN ) * * .. Scalar Arguments .. * DOUBLE PRECISION, INTENT(IN) :: DIN * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DISNAN returns .TRUE. if its argument is NaN, and .FALSE. *> otherwise. To be replaced by the Fortran 2003 intrinsic in the *> future. *> \endverbatim * * Arguments: * ========== * *> \param[in] DIN *> \verbatim *> DIN is DOUBLE PRECISION *> Input to test for NaN. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup OTHERauxiliary * * ===================================================================== LOGICAL FUNCTION DISNAN( DIN ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. DOUBLE PRECISION, INTENT(IN) :: DIN * .. * * ===================================================================== * * .. External Functions .. LOGICAL DLAISNAN EXTERNAL DLAISNAN * .. * .. Executable Statements .. DISNAN = DLAISNAN(DIN,DIN) RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed1.f0000644000000000000000000000013213543334726015063 xustar0030 mtime=1569569238.246646022 30 atime=1569569238.245646022 30 ctime=1569569238.246646022 elk-6.3.2/src/LAPACK/dlaed1.f0000644002504400250440000002043513543334726017136 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED1 used by sstedc. Computes the updated eigensystem of a diagonal matrix after modification by a rank-one symmetric matrix. Used when the original matrix is tridiagonal. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED1 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK, IWORK, * INFO ) * * .. Scalar Arguments .. * INTEGER CUTPNT, INFO, LDQ, N * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER INDXQ( * ), IWORK( * ) * DOUBLE PRECISION D( * ), Q( LDQ, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED1 computes the updated eigensystem of a diagonal *> matrix after modification by a rank-one symmetric matrix. This *> routine is used only for the eigenproblem which requires all *> eigenvalues and eigenvectors of a tridiagonal matrix. DLAED7 handles *> the case in which eigenvalues only or eigenvalues and eigenvectors *> of a full symmetric matrix (which was reduced to tridiagonal form) *> are desired. *> *> T = Q(in) ( D(in) + RHO * Z*Z**T ) Q**T(in) = Q(out) * D(out) * Q**T(out) *> *> where Z = Q**T*u, u is a vector of length N with ones in the *> CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. *> *> The eigenvectors of the original matrix are stored in Q, and the *> eigenvalues are in D. The algorithm consists of three stages: *> *> The first stage consists of deflating the size of the problem *> when there are multiple eigenvalues or if there is a zero in *> the Z vector. For each such occurrence the dimension of the *> secular equation problem is reduced by one. This stage is *> performed by the routine DLAED2. *> *> The second stage consists of calculating the updated *> eigenvalues. This is done by finding the roots of the secular *> equation via the routine DLAED4 (as called by DLAED3). *> This routine also calculates the eigenvectors of the current *> problem. *> *> The final stage consists of computing the updated eigenvectors *> directly using the updated eigenvalues. The eigenvectors for *> the current problem are multiplied with the eigenvectors from *> the overall problem. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the eigenvalues of the rank-1-perturbed matrix. *> On exit, the eigenvalues of the repaired matrix. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ,N) *> On entry, the eigenvectors of the rank-1-perturbed matrix. *> On exit, the eigenvectors of the repaired tridiagonal matrix. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[in,out] INDXQ *> \verbatim *> INDXQ is INTEGER array, dimension (N) *> On entry, the permutation which separately sorts the two *> subproblems in D into ascending order. *> On exit, the permutation which will reintegrate the *> subproblems back into sorted order, *> i.e. D( INDXQ( I = 1, N ) ) will be in ascending order. *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> The subdiagonal entry used to create the rank-1 modification. *> \endverbatim *> *> \param[in] CUTPNT *> \verbatim *> CUTPNT is INTEGER *> The location of the last eigenvalue in the leading sub-matrix. *> min(1,N) <= CUTPNT <= N/2. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (4*N + N**2) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (4*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = 1, an eigenvalue did not converge *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA \n *> Modified by Francoise Tisseur, University of Tennessee *> * ===================================================================== SUBROUTINE DLAED1( N, D, Q, LDQ, INDXQ, RHO, CUTPNT, WORK, IWORK, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER CUTPNT, INFO, LDQ, N DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER INDXQ( * ), IWORK( * ) DOUBLE PRECISION D( * ), Q( LDQ, * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER COLTYP, I, IDLMDA, INDX, INDXC, INDXP, IQ2, IS, $ IW, IZ, K, N1, N2, ZPP1 * .. * .. External Subroutines .. EXTERNAL DCOPY, DLAED2, DLAED3, DLAMRG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( N.LT.0 ) THEN INFO = -1 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( MIN( 1, N / 2 ).GT.CUTPNT .OR. ( N / 2 ).LT.CUTPNT ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED1', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * The following values are integer pointers which indicate * the portion of the workspace * used by a particular array in DLAED2 and DLAED3. * IZ = 1 IDLMDA = IZ + N IW = IDLMDA + N IQ2 = IW + N * INDX = 1 INDXC = INDX + N COLTYP = INDXC + N INDXP = COLTYP + N * * * Form the z-vector which consists of the last row of Q_1 and the * first row of Q_2. * CALL DCOPY( CUTPNT, Q( CUTPNT, 1 ), LDQ, WORK( IZ ), 1 ) ZPP1 = CUTPNT + 1 CALL DCOPY( N-CUTPNT, Q( ZPP1, ZPP1 ), LDQ, WORK( IZ+CUTPNT ), 1 ) * * Deflate eigenvalues. * CALL DLAED2( K, N, CUTPNT, D, Q, LDQ, INDXQ, RHO, WORK( IZ ), $ WORK( IDLMDA ), WORK( IW ), WORK( IQ2 ), $ IWORK( INDX ), IWORK( INDXC ), IWORK( INDXP ), $ IWORK( COLTYP ), INFO ) * IF( INFO.NE.0 ) $ GO TO 20 * * Solve Secular Equation. * IF( K.NE.0 ) THEN IS = ( IWORK( COLTYP )+IWORK( COLTYP+1 ) )*CUTPNT + $ ( IWORK( COLTYP+1 )+IWORK( COLTYP+2 ) )*( N-CUTPNT ) + IQ2 CALL DLAED3( K, N, CUTPNT, D, Q, LDQ, RHO, WORK( IDLMDA ), $ WORK( IQ2 ), IWORK( INDXC ), IWORK( COLTYP ), $ WORK( IW ), WORK( IS ), INFO ) IF( INFO.NE.0 ) $ GO TO 20 * * Prepare the INDXQ sorting permutation. * N1 = K N2 = N - K CALL DLAMRG( N1, N2, D, 1, -1, INDXQ ) ELSE DO 10 I = 1, N INDXQ( I ) = I 10 CONTINUE END IF * 20 CONTINUE RETURN * * End of DLAED1 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlamch.f0000644000000000000000000000013113543334726015160 xustar0030 mtime=1569569238.250646019 29 atime=1569569238.24964602 30 ctime=1569569238.250646019 elk-6.3.2/src/LAPACK/dlamch.f0000644002504400250440000000672313543334726017240 0ustar00dewhurstdewhurst00000000000000 FUNCTION DLAMCH ( CMACH ) RESULT(RMACH) ! ! -- LAPACK auxiliary routine Replacement for DLAMCH.f ! use Fortran 90 Machine Parameter built-in functions. ! character(len=1) :: CMACH real(kind(1.d0)) :: xdbl, ydbl, RMACH ! ! Purpose ! ======= ! ! ! DLAMCH determines double precision machine parameters. ! ! Arguments ! ========= ! ! CMACH (input) CHARACTER*1 ! Specifies the value to be returned by DLAMCH: ! = 'E' or 'e', DLAMCH := eps ! = 'S' or 's , DLAMCH := sfmin ! = 'B' or 'b', DLAMCH := base ! = 'P' or 'p', DLAMCH := eps*base ! = 'N' or 'n', DLAMCH := t ! = 'R' or 'r', DLAMCH := rnd ! = 'M' or 'm', DLAMCH := emin ! = 'U' or 'u', DLAMCH := rmin ! = 'L' or 'l', DLAMCH := emax ! = 'O' or 'o', DLAMCH := rmax ! ! where ! ! ! ===================================================================== xdbl=1.d0 IF( CMACH == 'E' .or. CMACH == 'e' ) THEN ! eps = relative machine precision RMACH = Epsilon(xdbl) ELSE IF( CMACH == 'S' .or. CMACH == 's' ) THEN ! sfmin = safe minimum, such that 1/sfmin does not overflow RMACH = Tiny(xdbl) ELSE IF( CMACH == 'B' .or. CMACH == 'b' ) THEN ! base = base of the machine RMACH = Radix(xdbl) ELSE IF( CMACH == 'P' .or. CMACH == 'p' ) THEN ! prec = eps*base RMACH = Radix(xdbl)*Epsilon(xdbl) ELSE IF( CMACH == 'N' .or. CMACH == 'n' ) THEN ! t = number of (base) digits in the mantissa RMACH = Digits(xdbl) ELSE IF( CMACH == 'R' .or. CMACH == 'r' ) THEN ! rnd = 1.0 when rounding occurs in addition, 0.0 otherwise ! Assume rounding (IEEE). RMACH = 1.0 ELSE IF( CMACH == 'M' .or. CMACH == 'm' ) THEN ! emin = minimum exponent before (gradual) underflow RMACH = Minexponent(xdbl) ELSE IF( CMACH == 'U' .or. CMACH == 'u' ) THEN ! rmin = underflow threshold - base**(emin-1) RMACH = Tiny(xdbl) ELSE IF( CMACH == 'L' .or. CMACH == 'l' ) THEN ! emax = largest exponent before overflow RMACH = Maxexponent(xdbl) ELSE IF( CMACH == 'O' .or. CMACH == 'o' ) THEN ! rmax = overflow threshold - (base**emax)*(1-eps) RMACH = Huge(xdbl) END IF ! END * ************************************************************************ * DOUBLE PRECISION FUNCTION DLAMC3( A, B ) * * -- LAPACK auxiliary routine (version 3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * * .. Scalar Arguments .. DOUBLE PRECISION A, B * * .. Local variables .. INTEGER I DOUBLE PRECISION X(10),Y(10) * .. * * Purpose * ======= * * DLAMC3 is intended to force A and B to be stored prior to doing * the addition of A and B , for use in situations where optimizers * might hold one of these in a register. * * Arguments * ========= * * A (input) DOUBLE PRECISION * B (input) DOUBLE PRECISION * The values A and B. * * ===================================================================== * * .. Executable Statements .. * * DLAMC3 = A + B * Modification by JKD to ensure variables are flushed to memory DO I=1,10 X(I)=A END DO DO I=1,10 Y(I)=X(I)+B END DO DLAMC3=Y(10) * RETURN * * End of DLAMC3 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhpgvx.f0000644000000000000000000000013213543334726015257 xustar0030 mtime=1569569238.255646016 30 atime=1569569238.253646017 30 ctime=1569569238.255646016 elk-6.3.2/src/LAPACK/zhpgvx.f0000644002504400250440000003221413543334726017330 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHPGVX * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHPGVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, * IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, * IWORK, IFAIL, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, ITYPE, IU, LDZ, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPGVX computes selected eigenvalues and, optionally, eigenvectors *> of a complex generalized Hermitian-definite eigenproblem, of the form *> A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and *> B are assumed to be Hermitian, stored in packed format, and B is also *> positive definite. Eigenvalues and eigenvectors can be selected by *> specifying either a range of values or a range of indices for the *> desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> Specifies the problem type to be solved: *> = 1: A*x = (lambda)*B*x *> = 2: A*B*x = (lambda)*x *> = 3: B*A*x = (lambda)*x *> \endverbatim *> *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found; *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found; *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangles of A and B are stored; *> = 'L': Lower triangles of A and B are stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the Hermitian matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *> *> On exit, the contents of AP are destroyed. *> \endverbatim *> *> \param[in,out] BP *> \verbatim *> BP is COMPLEX*16 array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the Hermitian matrix *> B, packed columnwise in a linear array. The j-th column of B *> is stored in the array BP as follows: *> if UPLO = 'U', BP(i + (j-1)*j/2) = B(i,j) for 1<=i<=j; *> if UPLO = 'L', BP(i + (j-1)*(2*n-j)/2) = B(i,j) for j<=i<=n. *> *> On exit, the triangular factor U or L from the Cholesky *> factorization B = U**H*U or B = L*L**H, in the same storage *> format as B. *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing AP to tridiagonal form. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> On normal exit, the first M elements contain the selected *> eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ, N) *> If JOBZ = 'N', then Z is not referenced. *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> The eigenvectors are normalized as follows: *> if ITYPE = 1 or 2, Z**H*B*Z = I; *> if ITYPE = 3, Z**H*inv(B)*Z = I. *> *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and the *> index of the eigenvector is returned in IFAIL. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (2*N) *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (7*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: ZPPTRF or ZHPEVX returned an error code: *> <= N: if INFO = i, ZHPEVX failed to converge; *> i eigenvectors failed to converge. Their indices *> are stored in array IFAIL. *> > N: if INFO = N + i, for 1 <= i <= n, then the leading *> minor of order i of B is not positive definite. *> The factorization of B could not be completed and *> no eigenvalues or eigenvectors were computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHEReigen * *> \par Contributors: * ================== *> *> Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA * * ===================================================================== SUBROUTINE ZHPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, $ IWORK, IFAIL, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, ITYPE, IU, LDZ, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ CHARACTER TRANS INTEGER J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZHPEVX, ZHPGST, ZPPTRF, ZTPMV, ZTPSV * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) UPPER = LSAME( UPLO, 'U' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) * INFO = 0 IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -2 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -3 ELSE IF( .NOT.( UPPER .OR. LSAME( UPLO, 'L' ) ) ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) THEN INFO = -9 END IF ELSE IF( INDEIG ) THEN IF( IL.LT.1 ) THEN INFO = -10 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -11 END IF END IF END IF IF( INFO.EQ.0 ) THEN IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.N ) ) THEN INFO = -16 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHPGVX', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Form a Cholesky factorization of B. * CALL ZPPTRF( UPLO, N, BP, INFO ) IF( INFO.NE.0 ) THEN INFO = N + INFO RETURN END IF * * Transform problem to standard eigenvalue problem and solve. * CALL ZHPGST( ITYPE, UPLO, N, AP, BP, INFO ) CALL ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, $ W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO ) * IF( WANTZ ) THEN * * Backtransform eigenvectors to the original problem. * IF( INFO.GT.0 ) $ M = INFO - 1 IF( ITYPE.EQ.1 .OR. ITYPE.EQ.2 ) THEN * * For A*x=(lambda)*B*x and A*B*x=(lambda)*x; * backtransform eigenvectors: x = inv(L)**H *y or inv(U)*y * IF( UPPER ) THEN TRANS = 'N' ELSE TRANS = 'C' END IF * DO 10 J = 1, M CALL ZTPSV( UPLO, TRANS, 'Non-unit', N, BP, Z( 1, J ), $ 1 ) 10 CONTINUE * ELSE IF( ITYPE.EQ.3 ) THEN * * For B*A*x=(lambda)*x; * backtransform eigenvectors: x = L*y or U**H *y * IF( UPPER ) THEN TRANS = 'C' ELSE TRANS = 'N' END IF * DO 20 J = 1, M CALL ZTPMV( UPLO, TRANS, 'Non-unit', N, BP, Z( 1, J ), $ 1 ) 20 CONTINUE END IF END IF * RETURN * * End of ZHPGVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/iparam2stage.f0000644000000000000000000000013213543334726016310 xustar0030 mtime=1569569238.260646013 30 atime=1569569238.258646014 30 ctime=1569569238.260646013 elk-6.3.2/src/LAPACK/iparam2stage.f0000644002504400250440000003000413543334726020354 0ustar00dewhurstdewhurst00000000000000*> \brief \b IPARAM2STAGE * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download IPARAM2STAGE + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION IPARAM2STAGE( ISPEC, NAME, OPTS, * NI, NBI, IBI, NXI ) * #if defined(_OPENMP) * use omp_lib * #endif * IMPLICIT NONE * * .. Scalar Arguments .. * CHARACTER*( * ) NAME, OPTS * INTEGER ISPEC, NI, NBI, IBI, NXI * *> \par Purpose: * ============= *> *> \verbatim *> *> This program sets problem and machine dependent parameters *> useful for xHETRD_2STAGE, xHETRD_H@2HB, xHETRD_HB2ST, *> xGEBRD_2STAGE, xGEBRD_GE2GB, xGEBRD_GB2BD *> and related subroutines for eigenvalue problems. *> It is called whenever ILAENV is called with 17 <= ISPEC <= 21. *> It is called whenever ILAENV2STAGE is called with 1 <= ISPEC <= 5 *> with a direct conversion ISPEC + 16. *> \endverbatim * * Arguments: * ========== * *> \param[in] ISPEC *> \verbatim *> ISPEC is integer scalar *> ISPEC specifies which tunable parameter IPARAM2STAGE should *> return. *> *> ISPEC=17: the optimal blocksize nb for the reduction to * BAND *> *> ISPEC=18: the optimal blocksize ib for the eigenvectors *> singular vectors update routine *> *> ISPEC=19: The length of the array that store the Housholder *> representation for the second stage *> Band to Tridiagonal or Bidiagonal *> *> ISPEC=20: The workspace needed for the routine in input. *> *> ISPEC=21: For future release. *> \endverbatim *> *> \param[in] NAME *> \verbatim *> NAME is character string *> Name of the calling subroutine *> \endverbatim *> *> \param[in] OPTS *> \verbatim *> OPTS is CHARACTER*(*) *> The character options to the subroutine NAME, concatenated *> into a single character string. For example, UPLO = 'U', *> TRANS = 'T', and DIAG = 'N' for a triangular routine would *> be specified as OPTS = 'UTN'. *> \endverbatim *> *> \param[in] NI *> \verbatim *> NI is INTEGER which is the size of the matrix *> \endverbatim *> *> \param[in] NBI *> \verbatim *> NBI is INTEGER which is the used in the reduciton, * (e.g., the size of the band), needed to compute workspace * and LHOUS2. *> \endverbatim *> *> \param[in] IBI *> \verbatim *> IBI is INTEGER which represent the IB of the reduciton, * needed to compute workspace and LHOUS2. *> \endverbatim *> *> \param[in] NXI *> \verbatim *> NXI is INTEGER needed in the future release. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Implemented by Azzam Haidar. *> *> All detail are available on technical report, SC11, SC13 papers. *> *> Azzam Haidar, Hatem Ltaief, and Jack Dongarra. *> Parallel reduction to condensed forms for symmetric eigenvalue problems *> using aggregated fine-grained and memory-aware kernels. In Proceedings *> of 2011 International Conference for High Performance Computing, *> Networking, Storage and Analysis (SC '11), New York, NY, USA, *> Article 8 , 11 pages. *> http://doi.acm.org/10.1145/2063384.2063394 *> *> A. Haidar, J. Kurzak, P. Luszczek, 2013. *> An improved parallel singular value algorithm and its implementation *> for multicore hardware, In Proceedings of 2013 International Conference *> for High Performance Computing, Networking, Storage and Analysis (SC '13). *> Denver, Colorado, USA, 2013. *> Article 90, 12 pages. *> http://doi.acm.org/10.1145/2503210.2503292 *> *> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra. *> A novel hybrid CPU-GPU generalized eigensolver for electronic structure *> calculations based on fine-grained memory aware tasks. *> International Journal of High Performance Computing Applications. *> Volume 28 Issue 2, Pages 196-209, May 2014. *> http://hpc.sagepub.com/content/28/2/196 *> *> \endverbatim *> * ===================================================================== INTEGER FUNCTION IPARAM2STAGE( ISPEC, NAME, OPTS, $ NI, NBI, IBI, NXI ) #if defined(_OPENMP) use omp_lib #endif IMPLICIT NONE * * -- LAPACK auxiliary routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER*( * ) NAME, OPTS INTEGER ISPEC, NI, NBI, IBI, NXI * * ================================================================ * .. * .. Local Scalars .. INTEGER I, IC, IZ, KD, IB, LHOUS, LWORK, NTHREADS, $ FACTOPTNB, QROPTNB, LQOPTNB LOGICAL RPREC, CPREC CHARACTER PREC*1, ALGO*3, STAG*5, SUBNAM*12, VECT*1 * .. * .. Intrinsic Functions .. INTRINSIC CHAR, ICHAR, MAX * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Invalid value for ISPEC * IF( (ISPEC.LT.17).OR.(ISPEC.GT.21) ) THEN IPARAM2STAGE = -1 RETURN ENDIF * * Get the number of threads * NTHREADS = 1 #if defined(_OPENMP) !$OMP PARALLEL NTHREADS = OMP_GET_NUM_THREADS() !$OMP END PARALLEL #endif * WRITE(*,*) 'IPARAM VOICI NTHREADS ISPEC ',NTHREADS, ISPEC * IF( ISPEC .NE. 19 ) THEN * * Convert NAME to upper case if the first character is lower case. * IPARAM2STAGE = -1 SUBNAM = NAME IC = ICHAR( SUBNAM( 1: 1 ) ) IZ = ICHAR( 'Z' ) IF( IZ.EQ.90 .OR. IZ.EQ.122 ) THEN * * ASCII character set * IF( IC.GE.97 .AND. IC.LE.122 ) THEN SUBNAM( 1: 1 ) = CHAR( IC-32 ) DO 100 I = 2, 12 IC = ICHAR( SUBNAM( I: I ) ) IF( IC.GE.97 .AND. IC.LE.122 ) $ SUBNAM( I: I ) = CHAR( IC-32 ) 100 CONTINUE END IF * ELSE IF( IZ.EQ.233 .OR. IZ.EQ.169 ) THEN * * EBCDIC character set * IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) ) THEN SUBNAM( 1: 1 ) = CHAR( IC+64 ) DO 110 I = 2, 12 IC = ICHAR( SUBNAM( I: I ) ) IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) )SUBNAM( I: $ I ) = CHAR( IC+64 ) 110 CONTINUE END IF * ELSE IF( IZ.EQ.218 .OR. IZ.EQ.250 ) THEN * * Prime machines: ASCII+128 * IF( IC.GE.225 .AND. IC.LE.250 ) THEN SUBNAM( 1: 1 ) = CHAR( IC-32 ) DO 120 I = 2, 12 IC = ICHAR( SUBNAM( I: I ) ) IF( IC.GE.225 .AND. IC.LE.250 ) $ SUBNAM( I: I ) = CHAR( IC-32 ) 120 CONTINUE END IF END IF * PREC = SUBNAM( 1: 1 ) ALGO = SUBNAM( 4: 6 ) STAG = SUBNAM( 8:12 ) RPREC = PREC.EQ.'S' .OR. PREC.EQ.'D' CPREC = PREC.EQ.'C' .OR. PREC.EQ.'Z' * * Invalid value for PRECISION * IF( .NOT.( RPREC .OR. CPREC ) ) THEN IPARAM2STAGE = -1 RETURN ENDIF ENDIF * WRITE(*,*),'RPREC,CPREC ',RPREC,CPREC, * $ ' ALGO ',ALGO,' STAGE ',STAG * * IF (( ISPEC .EQ. 17 ) .OR. ( ISPEC .EQ. 18 )) THEN * * ISPEC = 17, 18: block size KD, IB * Could be also dependent from N but for now it * depend only on sequential or parallel * IF( NTHREADS.GT.4 ) THEN IF( CPREC ) THEN KD = 128 IB = 32 ELSE KD = 160 IB = 40 ENDIF ELSE IF( NTHREADS.GT.1 ) THEN IF( CPREC ) THEN KD = 64 IB = 32 ELSE KD = 64 IB = 32 ENDIF ELSE IF( CPREC ) THEN KD = 16 IB = 16 ELSE KD = 32 IB = 16 ENDIF ENDIF IF( ISPEC.EQ.17 ) IPARAM2STAGE = KD IF( ISPEC.EQ.18 ) IPARAM2STAGE = IB * ELSE IF ( ISPEC .EQ. 19 ) THEN * * ISPEC = 19: * LHOUS length of the Houselholder representation * matrix (V,T) of the second stage. should be >= 1. * * Will add the VECT OPTION HERE next release VECT = OPTS(1:1) IF( VECT.EQ.'N' ) THEN LHOUS = MAX( 1, 4*NI ) ELSE * This is not correct, it need to call the ALGO and the stage2 LHOUS = MAX( 1, 4*NI ) + IBI ENDIF IF( LHOUS.GE.0 ) THEN IPARAM2STAGE = LHOUS ELSE IPARAM2STAGE = -1 ENDIF * ELSE IF ( ISPEC .EQ. 20 ) THEN * * ISPEC = 20: (21 for future use) * LWORK length of the workspace for * either or both stages for TRD and BRD. should be >= 1. * TRD: * TRD_stage 1: = LT + LW + LS1 + LS2 * = LDT*KD + N*KD + N*MAX(KD,FACTOPTNB) + LDS2*KD * where LDT=LDS2=KD * = N*KD + N*max(KD,FACTOPTNB) + 2*KD*KD * TRD_stage 2: = (2NB+1)*N + KD*NTHREADS * TRD_both : = max(stage1,stage2) + AB ( AB=(KD+1)*N ) * = N*KD + N*max(KD+1,FACTOPTNB) * + max(2*KD*KD, KD*NTHREADS) * + (KD+1)*N LWORK = -1 SUBNAM(1:1) = PREC SUBNAM(2:6) = 'GEQRF' QROPTNB = ILAENV( 1, SUBNAM, ' ', NI, NBI, -1, -1 ) SUBNAM(2:6) = 'GELQF' LQOPTNB = ILAENV( 1, SUBNAM, ' ', NBI, NI, -1, -1 ) * Could be QR or LQ for TRD and the max for BRD FACTOPTNB = MAX(QROPTNB, LQOPTNB) IF( ALGO.EQ.'TRD' ) THEN IF( STAG.EQ.'2STAG' ) THEN LWORK = NI*NBI + NI*MAX(NBI+1,FACTOPTNB) $ + MAX(2*NBI*NBI, NBI*NTHREADS) $ + (NBI+1)*NI ELSE IF( (STAG.EQ.'HE2HB').OR.(STAG.EQ.'SY2SB') ) THEN LWORK = NI*NBI + NI*MAX(NBI,FACTOPTNB) + 2*NBI*NBI ELSE IF( (STAG.EQ.'HB2ST').OR.(STAG.EQ.'SB2ST') ) THEN LWORK = (2*NBI+1)*NI + NBI*NTHREADS ENDIF ELSE IF( ALGO.EQ.'BRD' ) THEN IF( STAG.EQ.'2STAG' ) THEN LWORK = 2*NI*NBI + NI*MAX(NBI+1,FACTOPTNB) $ + MAX(2*NBI*NBI, NBI*NTHREADS) $ + (NBI+1)*NI ELSE IF( STAG.EQ.'GE2GB' ) THEN LWORK = NI*NBI + NI*MAX(NBI,FACTOPTNB) + 2*NBI*NBI ELSE IF( STAG.EQ.'GB2BD' ) THEN LWORK = (3*NBI+1)*NI + NBI*NTHREADS ENDIF ENDIF LWORK = MAX ( 1, LWORK ) IF( LWORK.GT.0 ) THEN IPARAM2STAGE = LWORK ELSE IPARAM2STAGE = -1 ENDIF * ELSE IF ( ISPEC .EQ. 21 ) THEN * * ISPEC = 21 for future use IPARAM2STAGE = NXI ENDIF * * ==== End of IPARAM2STAGE ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed2.f0000644000000000000000000000013013543334726015062 xustar0029 mtime=1569569238.26564601 30 atime=1569569238.263646011 29 ctime=1569569238.26564601 elk-6.3.2/src/LAPACK/dlaed2.f0000644002504400250440000003723113543334726017141 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED2 used by sstedc. Merges eigenvalues and deflates secular equation. Used when the original matrix is tridiagonal. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED2( K, N, N1, D, Q, LDQ, INDXQ, RHO, Z, DLAMDA, W, * Q2, INDX, INDXC, INDXP, COLTYP, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDQ, N, N1 * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER COLTYP( * ), INDX( * ), INDXC( * ), INDXP( * ), * $ INDXQ( * ) * DOUBLE PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), Q2( * ), * $ W( * ), Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED2 merges the two sets of eigenvalues together into a single *> sorted set. Then it tries to deflate the size of the problem. *> There are two ways in which deflation can occur: when two or more *> eigenvalues are close together or if there is a tiny entry in the *> Z vector. For each such occurrence the order of the related secular *> equation problem is reduced by one. *> \endverbatim * * Arguments: * ========== * *> \param[out] K *> \verbatim *> K is INTEGER *> The number of non-deflated eigenvalues, and the order of the *> related secular equation. 0 <= K <=N. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in] N1 *> \verbatim *> N1 is INTEGER *> The location of the last eigenvalue in the leading sub-matrix. *> min(1,N) <= N1 <= N/2. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, D contains the eigenvalues of the two submatrices to *> be combined. *> On exit, D contains the trailing (N-K) updated eigenvalues *> (those which were deflated) sorted into increasing order. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ, N) *> On entry, Q contains the eigenvectors of two submatrices in *> the two square blocks with corners at (1,1), (N1,N1) *> and (N1+1, N1+1), (N,N). *> On exit, Q contains the trailing (N-K) updated eigenvectors *> (those which were deflated) in its last N-K columns. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[in,out] INDXQ *> \verbatim *> INDXQ is INTEGER array, dimension (N) *> The permutation which separately sorts the two sub-problems *> in D into ascending order. Note that elements in the second *> half of this permutation must first have N1 added to their *> values. Destroyed on exit. *> \endverbatim *> *> \param[in,out] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> On entry, the off-diagonal element associated with the rank-1 *> cut which originally split the two submatrices which are now *> being recombined. *> On exit, RHO has been modified to the value required by *> DLAED3. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (N) *> On entry, Z contains the updating vector (the last *> row of the first sub-eigenvector matrix and the first row of *> the second sub-eigenvector matrix). *> On exit, the contents of Z have been destroyed by the updating *> process. *> \endverbatim *> *> \param[out] DLAMDA *> \verbatim *> DLAMDA is DOUBLE PRECISION array, dimension (N) *> A copy of the first K eigenvalues which will be used by *> DLAED3 to form the secular equation. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> The first k values of the final deflation-altered z-vector *> which will be passed to DLAED3. *> \endverbatim *> *> \param[out] Q2 *> \verbatim *> Q2 is DOUBLE PRECISION array, dimension (N1**2+(N-N1)**2) *> A copy of the first K eigenvectors which will be used by *> DLAED3 in a matrix multiply (DGEMM) to solve for the new *> eigenvectors. *> \endverbatim *> *> \param[out] INDX *> \verbatim *> INDX is INTEGER array, dimension (N) *> The permutation used to sort the contents of DLAMDA into *> ascending order. *> \endverbatim *> *> \param[out] INDXC *> \verbatim *> INDXC is INTEGER array, dimension (N) *> The permutation used to arrange the columns of the deflated *> Q matrix into three groups: the first group contains non-zero *> elements only at and above N1, the second contains *> non-zero elements only below N1, and the third is dense. *> \endverbatim *> *> \param[out] INDXP *> \verbatim *> INDXP is INTEGER array, dimension (N) *> The permutation used to place deflated values of D at the end *> of the array. INDXP(1:K) points to the nondeflated D-values *> and INDXP(K+1:N) points to the deflated eigenvalues. *> \endverbatim *> *> \param[out] COLTYP *> \verbatim *> COLTYP is INTEGER array, dimension (N) *> During execution, a label which will indicate which of the *> following types a column in the Q2 matrix is: *> 1 : non-zero in the upper half only; *> 2 : dense; *> 3 : non-zero in the lower half only; *> 4 : deflated. *> On exit, COLTYP(i) is the number of columns of type i, *> for i=1 to 4 only. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA \n *> Modified by Francoise Tisseur, University of Tennessee *> * ===================================================================== SUBROUTINE DLAED2( K, N, N1, D, Q, LDQ, INDXQ, RHO, Z, DLAMDA, W, $ Q2, INDX, INDXC, INDXP, COLTYP, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDQ, N, N1 DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER COLTYP( * ), INDX( * ), INDXC( * ), INDXP( * ), $ INDXQ( * ) DOUBLE PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), Q2( * ), $ W( * ), Z( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION MONE, ZERO, ONE, TWO, EIGHT PARAMETER ( MONE = -1.0D0, ZERO = 0.0D0, ONE = 1.0D0, $ TWO = 2.0D0, EIGHT = 8.0D0 ) * .. * .. Local Arrays .. INTEGER CTOT( 4 ), PSM( 4 ) * .. * .. Local Scalars .. INTEGER CT, I, IMAX, IQ1, IQ2, J, JMAX, JS, K2, N1P1, $ N2, NJ, PJ DOUBLE PRECISION C, EPS, S, T, TAU, TOL * .. * .. External Functions .. INTEGER IDAMAX DOUBLE PRECISION DLAMCH, DLAPY2 EXTERNAL IDAMAX, DLAMCH, DLAPY2 * .. * .. External Subroutines .. EXTERNAL DCOPY, DLACPY, DLAMRG, DROT, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( MIN( 1, ( N / 2 ) ).GT.N1 .OR. ( N / 2 ).LT.N1 ) THEN INFO = -3 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED2', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * N2 = N - N1 N1P1 = N1 + 1 * IF( RHO.LT.ZERO ) THEN CALL DSCAL( N2, MONE, Z( N1P1 ), 1 ) END IF * * Normalize z so that norm(z) = 1. Since z is the concatenation of * two normalized vectors, norm2(z) = sqrt(2). * T = ONE / SQRT( TWO ) CALL DSCAL( N, T, Z, 1 ) * * RHO = ABS( norm(z)**2 * RHO ) * RHO = ABS( TWO*RHO ) * * Sort the eigenvalues into increasing order * DO 10 I = N1P1, N INDXQ( I ) = INDXQ( I ) + N1 10 CONTINUE * * re-integrate the deflated parts from the last pass * DO 20 I = 1, N DLAMDA( I ) = D( INDXQ( I ) ) 20 CONTINUE CALL DLAMRG( N1, N2, DLAMDA, 1, 1, INDXC ) DO 30 I = 1, N INDX( I ) = INDXQ( INDXC( I ) ) 30 CONTINUE * * Calculate the allowable deflation tolerance * IMAX = IDAMAX( N, Z, 1 ) JMAX = IDAMAX( N, D, 1 ) EPS = DLAMCH( 'Epsilon' ) TOL = EIGHT*EPS*MAX( ABS( D( JMAX ) ), ABS( Z( IMAX ) ) ) * * If the rank-1 modifier is small enough, no more needs to be done * except to reorganize Q so that its columns correspond with the * elements in D. * IF( RHO*ABS( Z( IMAX ) ).LE.TOL ) THEN K = 0 IQ2 = 1 DO 40 J = 1, N I = INDX( J ) CALL DCOPY( N, Q( 1, I ), 1, Q2( IQ2 ), 1 ) DLAMDA( J ) = D( I ) IQ2 = IQ2 + N 40 CONTINUE CALL DLACPY( 'A', N, N, Q2, N, Q, LDQ ) CALL DCOPY( N, DLAMDA, 1, D, 1 ) GO TO 190 END IF * * If there are multiple eigenvalues then the problem deflates. Here * the number of equal eigenvalues are found. As each equal * eigenvalue is found, an elementary reflector is computed to rotate * the corresponding eigensubspace so that the corresponding * components of Z are zero in this new basis. * DO 50 I = 1, N1 COLTYP( I ) = 1 50 CONTINUE DO 60 I = N1P1, N COLTYP( I ) = 3 60 CONTINUE * * K = 0 K2 = N + 1 DO 70 J = 1, N NJ = INDX( J ) IF( RHO*ABS( Z( NJ ) ).LE.TOL ) THEN * * Deflate due to small z component. * K2 = K2 - 1 COLTYP( NJ ) = 4 INDXP( K2 ) = NJ IF( J.EQ.N ) $ GO TO 100 ELSE PJ = NJ GO TO 80 END IF 70 CONTINUE 80 CONTINUE J = J + 1 NJ = INDX( J ) IF( J.GT.N ) $ GO TO 100 IF( RHO*ABS( Z( NJ ) ).LE.TOL ) THEN * * Deflate due to small z component. * K2 = K2 - 1 COLTYP( NJ ) = 4 INDXP( K2 ) = NJ ELSE * * Check if eigenvalues are close enough to allow deflation. * S = Z( PJ ) C = Z( NJ ) * * Find sqrt(a**2+b**2) without overflow or * destructive underflow. * TAU = DLAPY2( C, S ) T = D( NJ ) - D( PJ ) C = C / TAU S = -S / TAU IF( ABS( T*C*S ).LE.TOL ) THEN * * Deflation is possible. * Z( NJ ) = TAU Z( PJ ) = ZERO IF( COLTYP( NJ ).NE.COLTYP( PJ ) ) $ COLTYP( NJ ) = 2 COLTYP( PJ ) = 4 CALL DROT( N, Q( 1, PJ ), 1, Q( 1, NJ ), 1, C, S ) T = D( PJ )*C**2 + D( NJ )*S**2 D( NJ ) = D( PJ )*S**2 + D( NJ )*C**2 D( PJ ) = T K2 = K2 - 1 I = 1 90 CONTINUE IF( K2+I.LE.N ) THEN IF( D( PJ ).LT.D( INDXP( K2+I ) ) ) THEN INDXP( K2+I-1 ) = INDXP( K2+I ) INDXP( K2+I ) = PJ I = I + 1 GO TO 90 ELSE INDXP( K2+I-1 ) = PJ END IF ELSE INDXP( K2+I-1 ) = PJ END IF PJ = NJ ELSE K = K + 1 DLAMDA( K ) = D( PJ ) W( K ) = Z( PJ ) INDXP( K ) = PJ PJ = NJ END IF END IF GO TO 80 100 CONTINUE * * Record the last eigenvalue. * K = K + 1 DLAMDA( K ) = D( PJ ) W( K ) = Z( PJ ) INDXP( K ) = PJ * * Count up the total number of the various types of columns, then * form a permutation which positions the four column types into * four uniform groups (although one or more of these groups may be * empty). * DO 110 J = 1, 4 CTOT( J ) = 0 110 CONTINUE DO 120 J = 1, N CT = COLTYP( J ) CTOT( CT ) = CTOT( CT ) + 1 120 CONTINUE * * PSM(*) = Position in SubMatrix (of types 1 through 4) * PSM( 1 ) = 1 PSM( 2 ) = 1 + CTOT( 1 ) PSM( 3 ) = PSM( 2 ) + CTOT( 2 ) PSM( 4 ) = PSM( 3 ) + CTOT( 3 ) K = N - CTOT( 4 ) * * Fill out the INDXC array so that the permutation which it induces * will place all type-1 columns first, all type-2 columns next, * then all type-3's, and finally all type-4's. * DO 130 J = 1, N JS = INDXP( J ) CT = COLTYP( JS ) INDX( PSM( CT ) ) = JS INDXC( PSM( CT ) ) = J PSM( CT ) = PSM( CT ) + 1 130 CONTINUE * * Sort the eigenvalues and corresponding eigenvectors into DLAMDA * and Q2 respectively. The eigenvalues/vectors which were not * deflated go into the first K slots of DLAMDA and Q2 respectively, * while those which were deflated go into the last N - K slots. * I = 1 IQ1 = 1 IQ2 = 1 + ( CTOT( 1 )+CTOT( 2 ) )*N1 DO 140 J = 1, CTOT( 1 ) JS = INDX( I ) CALL DCOPY( N1, Q( 1, JS ), 1, Q2( IQ1 ), 1 ) Z( I ) = D( JS ) I = I + 1 IQ1 = IQ1 + N1 140 CONTINUE * DO 150 J = 1, CTOT( 2 ) JS = INDX( I ) CALL DCOPY( N1, Q( 1, JS ), 1, Q2( IQ1 ), 1 ) CALL DCOPY( N2, Q( N1+1, JS ), 1, Q2( IQ2 ), 1 ) Z( I ) = D( JS ) I = I + 1 IQ1 = IQ1 + N1 IQ2 = IQ2 + N2 150 CONTINUE * DO 160 J = 1, CTOT( 3 ) JS = INDX( I ) CALL DCOPY( N2, Q( N1+1, JS ), 1, Q2( IQ2 ), 1 ) Z( I ) = D( JS ) I = I + 1 IQ2 = IQ2 + N2 160 CONTINUE * IQ1 = IQ2 DO 170 J = 1, CTOT( 4 ) JS = INDX( I ) CALL DCOPY( N, Q( 1, JS ), 1, Q2( IQ2 ), 1 ) IQ2 = IQ2 + N Z( I ) = D( JS ) I = I + 1 170 CONTINUE * * The deflated eigenvalues and their corresponding vectors go back * into the last N - K slots of D and Q respectively. * IF( K.LT.N ) THEN CALL DLACPY( 'A', N, CTOT( 4 ), Q2( IQ1 ), N, $ Q( 1, K+1 ), LDQ ) CALL DCOPY( N-K, Z( K+1 ), 1, D( K+1 ), 1 ) END IF * * Copy CTOT into COLTYP for referencing in DLAED3. * DO 180 J = 1, 4 COLTYP( J ) = CTOT( J ) 180 CONTINUE * 190 CONTINUE RETURN * * End of DLAED2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhegv.f0000644000000000000000000000013213543334726015054 xustar0030 mtime=1569569238.269646007 30 atime=1569569238.267646008 30 ctime=1569569238.269646007 elk-6.3.2/src/LAPACK/zhegv.f0000644002504400250440000002306713543334726017133 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHEGV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEGV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, * LWORK, RWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, UPLO * INTEGER INFO, ITYPE, LDA, LDB, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEGV computes all the eigenvalues, and optionally, the eigenvectors *> of a complex generalized Hermitian-definite eigenproblem, of the form *> A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. *> Here A and B are assumed to be Hermitian and B is also *> positive definite. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> Specifies the problem type to be solved: *> = 1: A*x = (lambda)*B*x *> = 2: A*B*x = (lambda)*x *> = 3: B*A*x = (lambda)*x *> \endverbatim *> *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangles of A and B are stored; *> = 'L': Lower triangles of A and B are stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA, N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> *> On exit, if JOBZ = 'V', then if INFO = 0, A contains the *> matrix Z of eigenvectors. The eigenvectors are normalized *> as follows: *> if ITYPE = 1 or 2, Z**H*B*Z = I; *> if ITYPE = 3, Z**H*inv(B)*Z = I. *> If JOBZ = 'N', then on exit the upper triangle (if UPLO='U') *> or the lower triangle (if UPLO='L') of A, including the *> diagonal, is destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB, N) *> On entry, the Hermitian positive definite matrix B. *> If UPLO = 'U', the leading N-by-N upper triangular part of B *> contains the upper triangular part of the matrix B. *> If UPLO = 'L', the leading N-by-N lower triangular part of B *> contains the lower triangular part of the matrix B. *> *> On exit, if INFO <= N, the part of B containing the matrix is *> overwritten by the triangular factor U or L from the Cholesky *> factorization B = U**H*U or B = L*L**H. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,2*N-1). *> For optimal efficiency, LWORK >= (NB+1)*N, *> where NB is the blocksize for ZHETRD returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (max(1, 3*N-2)) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: ZPOTRF or ZHEEV returned an error code: *> <= N: if INFO = i, ZHEEV failed to converge; *> i off-diagonal elements of an intermediate *> tridiagonal form did not converge to zero; *> > N: if INFO = N + i, for 1 <= i <= N, then the leading *> minor of order i of B is not positive definite. *> The factorization of B could not be completed and *> no eigenvalues or eigenvectors were computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEeigen * * ===================================================================== SUBROUTINE ZHEGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, $ LWORK, RWORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, UPLO INTEGER INFO, ITYPE, LDA, LDB, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY, UPPER, WANTZ CHARACTER TRANS INTEGER LWKOPT, NB, NEIG * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZHEEV, ZHEGST, ZPOTRF, ZTRMM, ZTRSM * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) UPPER = LSAME( UPLO, 'U' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -2 ELSE IF( .NOT.( UPPER .OR. LSAME( UPLO, 'L' ) ) ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -8 END IF * IF( INFO.EQ.0 ) THEN NB = ILAENV( 1, 'ZHETRD', UPLO, N, -1, -1, -1 ) LWKOPT = MAX( 1, ( NB + 1 )*N ) WORK( 1 ) = LWKOPT * IF( LWORK.LT.MAX( 1, 2*N - 1 ) .AND. .NOT.LQUERY ) THEN INFO = -11 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEGV ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Form a Cholesky factorization of B. * CALL ZPOTRF( UPLO, N, B, LDB, INFO ) IF( INFO.NE.0 ) THEN INFO = N + INFO RETURN END IF * * Transform problem to standard eigenvalue problem and solve. * CALL ZHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) CALL ZHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, INFO ) * IF( WANTZ ) THEN * * Backtransform eigenvectors to the original problem. * NEIG = N IF( INFO.GT.0 ) $ NEIG = INFO - 1 IF( ITYPE.EQ.1 .OR. ITYPE.EQ.2 ) THEN * * For A*x=(lambda)*B*x and A*B*x=(lambda)*x; * backtransform eigenvectors: x = inv(L)**H *y or inv(U)*y * IF( UPPER ) THEN TRANS = 'N' ELSE TRANS = 'C' END IF * CALL ZTRSM( 'Left', UPLO, TRANS, 'Non-unit', N, NEIG, ONE, $ B, LDB, A, LDA ) * ELSE IF( ITYPE.EQ.3 ) THEN * * For B*A*x=(lambda)*x; * backtransform eigenvectors: x = L*y or U**H *y * IF( UPPER ) THEN TRANS = 'C' ELSE TRANS = 'N' END IF * CALL ZTRMM( 'Left', UPLO, TRANS, 'Non-unit', N, NEIG, ONE, $ B, LDB, A, LDA ) END IF END IF * WORK( 1 ) = LWKOPT * RETURN * * End of ZHEGV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgetrf.f0000644000000000000000000000013213543334726015232 xustar0030 mtime=1569569238.273646005 30 atime=1569569238.272646005 30 ctime=1569569238.273646005 elk-6.3.2/src/LAPACK/zgetrf.f0000644002504400250440000001423713543334726017310 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGETRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGETRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGETRF computes an LU factorization of a general M-by-N matrix A *> using partial pivoting with row interchanges. *> *> The factorization has the form *> A = P * L * U *> where P is a permutation matrix, L is lower triangular with unit *> diagonal elements (lower trapezoidal if m > n), and U is upper *> triangular (upper trapezoidal if m < n). *> *> This is the right-looking Level 3 BLAS version of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the M-by-N matrix to be factored. *> On exit, the factors L and U from the factorization *> A = P*L*U; the unit diagonal elements of L are not stored. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (min(M,N)) *> The pivot indices; for 1 <= i <= min(M,N), row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and division by zero will occur if it is used *> to solve a system of equations. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * * ===================================================================== SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, IINFO, J, JB, NB * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGEMM, ZGETRF2, ZLASWP, ZTRSM * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGETRF', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * * Determine the block size for this environment. * NB = ILAENV( 1, 'ZGETRF', ' ', M, N, -1, -1 ) IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN * * Use unblocked code. * CALL ZGETRF2( M, N, A, LDA, IPIV, INFO ) ELSE * * Use blocked code. * DO 20 J = 1, MIN( M, N ), NB JB = MIN( MIN( M, N )-J+1, NB ) * * Factor diagonal and subdiagonal blocks and test for exact * singularity. * CALL ZGETRF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) * * Adjust INFO and the pivot indices. * IF( INFO.EQ.0 .AND. IINFO.GT.0 ) $ INFO = IINFO + J - 1 DO 10 I = J, MIN( M, J+JB-1 ) IPIV( I ) = J - 1 + IPIV( I ) 10 CONTINUE * * Apply interchanges to columns 1:J-1. * CALL ZLASWP( J-1, A, LDA, J, J+JB-1, IPIV, 1 ) * IF( J+JB.LE.N ) THEN * * Apply interchanges to columns J+JB:N. * CALL ZLASWP( N-J-JB+1, A( 1, J+JB ), LDA, J, J+JB-1, $ IPIV, 1 ) * * Compute block row of U. * CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', JB, $ N-J-JB+1, ONE, A( J, J ), LDA, A( J, J+JB ), $ LDA ) IF( J+JB.LE.M ) THEN * * Update trailing submatrix. * CALL ZGEMM( 'No transpose', 'No transpose', M-J-JB+1, $ N-J-JB+1, JB, -ONE, A( J+JB, J ), LDA, $ A( J, J+JB ), LDA, ONE, A( J+JB, J+JB ), $ LDA ) END IF END IF 20 CONTINUE END IF RETURN * * End of ZGETRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgetri.f0000644000000000000000000000013213543334726015235 xustar0030 mtime=1569569238.277646002 30 atime=1569569238.276646003 30 ctime=1569569238.277646002 elk-6.3.2/src/LAPACK/zgetri.f0000644002504400250440000001636513543334726017317 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGETRI * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGETRI + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGETRI computes the inverse of a matrix using the LU factorization *> computed by ZGETRF. *> *> This method inverts U and then computes inv(A) by solving the system *> inv(A)*L = inv(U) for inv(A). *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the factors L and U from the factorization *> A = P*L*U as computed by ZGETRF. *> On exit, if INFO = 0, the inverse of the original matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices from ZGETRF; for 1<=i<=N, row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO=0, then WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimal performance LWORK >= N*NB, where NB is *> the optimal blocksize returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero; the matrix is *> singular and its inverse could not be computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * * ===================================================================== SUBROUTINE ZGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 A( LDA, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IWS, J, JB, JJ, JP, LDWORK, LWKOPT, NB, $ NBMIN, NN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGEMM, ZGEMV, ZSWAP, ZTRSM, ZTRTRI * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 NB = ILAENV( 1, 'ZGETRI', ' ', N, -1, -1, -1 ) LWKOPT = N*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( N.LT.0 ) THEN INFO = -1 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -3 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGETRI', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Form inv(U). If INFO > 0 from ZTRTRI, then U is singular, * and the inverse is not computed. * CALL ZTRTRI( 'Upper', 'Non-unit', N, A, LDA, INFO ) IF( INFO.GT.0 ) $ RETURN * NBMIN = 2 LDWORK = N IF( NB.GT.1 .AND. NB.LT.N ) THEN IWS = MAX( LDWORK*NB, 1 ) IF( LWORK.LT.IWS ) THEN NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZGETRI', ' ', N, -1, -1, -1 ) ) END IF ELSE IWS = N END IF * * Solve the equation inv(A)*L = inv(U) for inv(A). * IF( NB.LT.NBMIN .OR. NB.GE.N ) THEN * * Use unblocked code. * DO 20 J = N, 1, -1 * * Copy current column of L to WORK and replace with zeros. * DO 10 I = J + 1, N WORK( I ) = A( I, J ) A( I, J ) = ZERO 10 CONTINUE * * Compute current column of inv(A). * IF( J.LT.N ) $ CALL ZGEMV( 'No transpose', N, N-J, -ONE, A( 1, J+1 ), $ LDA, WORK( J+1 ), 1, ONE, A( 1, J ), 1 ) 20 CONTINUE ELSE * * Use blocked code. * NN = ( ( N-1 ) / NB )*NB + 1 DO 50 J = NN, 1, -NB JB = MIN( NB, N-J+1 ) * * Copy current block column of L to WORK and replace with * zeros. * DO 40 JJ = J, J + JB - 1 DO 30 I = JJ + 1, N WORK( I+( JJ-J )*LDWORK ) = A( I, JJ ) A( I, JJ ) = ZERO 30 CONTINUE 40 CONTINUE * * Compute current block column of inv(A). * IF( J+JB.LE.N ) $ CALL ZGEMM( 'No transpose', 'No transpose', N, JB, $ N-J-JB+1, -ONE, A( 1, J+JB ), LDA, $ WORK( J+JB ), LDWORK, ONE, A( 1, J ), LDA ) CALL ZTRSM( 'Right', 'Lower', 'No transpose', 'Unit', N, JB, $ ONE, WORK( J ), LDWORK, A( 1, J ), LDA ) 50 CONTINUE END IF * * Apply column interchanges. * DO 60 J = N - 1, 1, -1 JP = IPIV( J ) IF( JP.NE.J ) $ CALL ZSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 ) 60 CONTINUE * WORK( 1 ) = IWS RETURN * * End of ZGETRI * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgesv.f0000644000000000000000000000012713543334726015045 xustar0030 mtime=1569569238.281645999 27 atime=1569569238.280646 30 ctime=1569569238.281645999 elk-6.3.2/src/LAPACK/dgesv.f0000644002504400250440000001202713543334726017112 0ustar00dewhurstdewhurst00000000000000*> \brief DGESV computes the solution to system of linear equations A * X = B for GE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGESV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. * INTEGER IPIV( * ) * DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGESV computes the solution to a real system of linear equations *> A * X = B, *> where A is an N-by-N matrix and X and B are N-by-NRHS matrices. *> *> The LU decomposition with partial pivoting and row interchanges is *> used to factor A as *> A = P * L * U, *> where P is a permutation matrix, L is unit lower triangular, and U is *> upper triangular. The factored form of A is then used to solve the *> system of equations A * X = B. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of linear equations, i.e., the order of the *> matrix A. N >= 0. *> \endverbatim *> *> \param[in] NRHS *> \verbatim *> NRHS is INTEGER *> The number of right hand sides, i.e., the number of columns *> of the matrix B. NRHS >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the N-by-N coefficient matrix A. *> On exit, the factors L and U from the factorization *> A = P*L*U; the unit diagonal elements of L are not stored. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices that define the permutation matrix P; *> row i of the matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB,NRHS) *> On entry, the N-by-NRHS matrix of right hand side matrix B. *> On exit, if INFO = 0, the N-by-NRHS solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, so the solution could not be computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEsolve * * ===================================================================== SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. External Subroutines .. EXTERNAL DGETRF, DGETRS, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 IF( N.LT.0 ) THEN INFO = -1 ELSE IF( NRHS.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGESV ', -INFO ) RETURN END IF * * Compute the LU factorization of A. * CALL DGETRF( N, N, A, LDA, IPIV, INFO ) IF( INFO.EQ.0 ) THEN * * Solve the system A*X = B, overwriting B with X. * CALL DGETRS( 'No transpose', N, NRHS, A, LDA, IPIV, B, LDB, $ INFO ) END IF RETURN * * End of DGESV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsyev.f0000644000000000000000000000013213543334726015063 xustar0030 mtime=1569569238.286645996 30 atime=1569569238.284645997 30 ctime=1569569238.286645996 elk-6.3.2/src/LAPACK/dsyev.f0000644002504400250440000002036413543334726017137 0ustar00dewhurstdewhurst00000000000000*> \brief DSYEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYEV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, UPLO * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), W( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYEV computes all eigenvalues and, optionally, eigenvectors of a *> real symmetric matrix A. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA, N) *> On entry, the symmetric matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> On exit, if JOBZ = 'V', then if INFO = 0, A contains the *> orthonormal eigenvectors of the matrix A. *> If JOBZ = 'N', then on exit the lower triangle (if UPLO='L') *> or the upper triangle (if UPLO='U') of A, including the *> diagonal, is destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,3*N-1). *> For optimal efficiency, LWORK >= (NB+2)*N, *> where NB is the blocksize for DSYTRD returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the algorithm failed to converge; i *> off-diagonal elements of an intermediate tridiagonal *> form did not converge to zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleSYeigen * * ===================================================================== SUBROUTINE DSYEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, UPLO INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), W( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL LOWER, LQUERY, WANTZ INTEGER IINFO, IMAX, INDE, INDTAU, INDWRK, ISCALE, $ LLWORK, LWKOPT, NB DOUBLE PRECISION ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, $ SMLNUM * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, DLANSY EXTERNAL LSAME, ILAENV, DLAMCH, DLANSY * .. * .. External Subroutines .. EXTERNAL DLASCL, DORGTR, DSCAL, DSTEQR, DSTERF, DSYTRD, $ XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) LOWER = LSAME( UPLO, 'L' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( LOWER .OR. LSAME( UPLO, 'U' ) ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF * IF( INFO.EQ.0 ) THEN NB = ILAENV( 1, 'DSYTRD', UPLO, N, -1, -1, -1 ) LWKOPT = MAX( 1, ( NB+2 )*N ) WORK( 1 ) = LWKOPT * IF( LWORK.LT.MAX( 1, 3*N-1 ) .AND. .NOT.LQUERY ) $ INFO = -8 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYEV ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN RETURN END IF * IF( N.EQ.1 ) THEN W( 1 ) = A( 1, 1 ) WORK( 1 ) = 2 IF( WANTZ ) $ A( 1, 1 ) = ONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = SQRT( BIGNUM ) * * Scale matrix to allowable range, if necessary. * ANRM = DLANSY( 'M', UPLO, N, A, LDA, WORK ) ISCALE = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) $ CALL DLASCL( UPLO, 0, 0, ONE, SIGMA, N, N, A, LDA, INFO ) * * Call DSYTRD to reduce symmetric matrix to tridiagonal form. * INDE = 1 INDTAU = INDE + N INDWRK = INDTAU + N LLWORK = LWORK - INDWRK + 1 CALL DSYTRD( UPLO, N, A, LDA, W, WORK( INDE ), WORK( INDTAU ), $ WORK( INDWRK ), LLWORK, IINFO ) * * For eigenvalues only, call DSTERF. For eigenvectors, first call * DORGTR to generate the orthogonal matrix, then call DSTEQR. * IF( .NOT.WANTZ ) THEN CALL DSTERF( N, W, WORK( INDE ), INFO ) ELSE CALL DORGTR( UPLO, N, A, LDA, WORK( INDTAU ), WORK( INDWRK ), $ LLWORK, IINFO ) CALL DSTEQR( JOBZ, N, W, WORK( INDE ), A, LDA, WORK( INDTAU ), $ INFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = N ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * * Set WORK(1) to optimal workspace size. * WORK( 1 ) = LWKOPT * RETURN * * End of DSYEV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsygvx.f0000644000000000000000000000013213543334726015255 xustar0030 mtime=1569569238.291645993 30 atime=1569569238.289645994 30 ctime=1569569238.291645993 elk-6.3.2/src/LAPACK/dsygvx.f0000644002504400250440000003556113543334726017336 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYGVX * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYGVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYGVX( ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, * VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, * LWORK, IWORK, IFAIL, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, ITYPE, IU, LDA, LDB, LDZ, LWORK, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION A( LDA, * ), B( LDB, * ), W( * ), WORK( * ), * $ Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYGVX computes selected eigenvalues, and optionally, eigenvectors *> of a real generalized symmetric-definite eigenproblem, of the form *> A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A *> and B are assumed to be symmetric and B is also positive definite. *> Eigenvalues and eigenvectors can be selected by specifying either a *> range of values or a range of indices for the desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> Specifies the problem type to be solved: *> = 1: A*x = (lambda)*B*x *> = 2: A*B*x = (lambda)*x *> = 3: B*A*x = (lambda)*x *> \endverbatim *> *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found. *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found. *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A and B are stored; *> = 'L': Lower triangle of A and B are stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix pencil (A,B). N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA, N) *> On entry, the symmetric matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> *> On exit, the lower triangle (if UPLO='L') or the upper *> triangle (if UPLO='U') of A, including the diagonal, is *> destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB, N) *> On entry, the symmetric matrix B. If UPLO = 'U', the *> leading N-by-N upper triangular part of B contains the *> upper triangular part of the matrix B. If UPLO = 'L', *> the leading N-by-N lower triangular part of B contains *> the lower triangular part of the matrix B. *> *> On exit, if INFO <= N, the part of B containing the matrix is *> overwritten by the triangular factor U or L from the Cholesky *> factorization B = U**T*U or B = L*L**T. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing C to tridiagonal form, where C is the symmetric *> matrix of the standard symmetric problem to which the *> generalized problem is transformed. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> On normal exit, the first M elements contain the selected *> eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ, max(1,M)) *> If JOBZ = 'N', then Z is not referenced. *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> The eigenvectors are normalized as follows: *> if ITYPE = 1 or 2, Z**T*B*Z = I; *> if ITYPE = 3, Z**T*inv(B)*Z = I. *> *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and the *> index of the eigenvector is returned in IFAIL. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,8*N). *> For optimal efficiency, LWORK >= (NB+3)*N, *> where NB is the blocksize for DSYTRD returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: DPOTRF or DSYEVX returned an error code: *> <= N: if INFO = i, DSYEVX failed to converge; *> i eigenvectors failed to converge. Their indices *> are stored in array IFAIL. *> > N: if INFO = N + i, for 1 <= i <= N, then the leading *> minor of order i of B is not positive definite. *> The factorization of B could not be completed and *> no eigenvalues or eigenvectors were computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup doubleSYeigen * *> \par Contributors: * ================== *> *> Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA * * ===================================================================== SUBROUTINE DSYGVX( ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, $ VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, $ LWORK, IWORK, IFAIL, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, ITYPE, IU, LDA, LDB, LDZ, LWORK, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION A( LDA, * ), B( LDB, * ), W( * ), WORK( * ), $ Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, LQUERY, UPPER, VALEIG, WANTZ CHARACTER TRANS INTEGER LWKMIN, LWKOPT, NB * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DPOTRF, DSYEVX, DSYGST, DTRMM, DTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * UPPER = LSAME( UPLO, 'U' ) WANTZ = LSAME( JOBZ, 'V' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -2 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -3 ELSE IF( .NOT.( UPPER .OR. LSAME( UPLO, 'L' ) ) ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -7 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -9 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) $ INFO = -11 ELSE IF( INDEIG ) THEN IF( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) THEN INFO = -12 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -13 END IF END IF END IF IF (INFO.EQ.0) THEN IF (LDZ.LT.1 .OR. (WANTZ .AND. LDZ.LT.N)) THEN INFO = -18 END IF END IF * IF( INFO.EQ.0 ) THEN LWKMIN = MAX( 1, 8*N ) NB = ILAENV( 1, 'DSYTRD', UPLO, N, -1, -1, -1 ) LWKOPT = MAX( LWKMIN, ( NB + 3 )*N ) WORK( 1 ) = LWKOPT * IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN INFO = -20 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYGVX', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * M = 0 IF( N.EQ.0 ) THEN RETURN END IF * * Form a Cholesky factorization of B. * CALL DPOTRF( UPLO, N, B, LDB, INFO ) IF( INFO.NE.0 ) THEN INFO = N + INFO RETURN END IF * * Transform problem to standard eigenvalue problem and solve. * CALL DSYGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) CALL DSYEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, $ M, W, Z, LDZ, WORK, LWORK, IWORK, IFAIL, INFO ) * IF( WANTZ ) THEN * * Backtransform eigenvectors to the original problem. * IF( INFO.GT.0 ) $ M = INFO - 1 IF( ITYPE.EQ.1 .OR. ITYPE.EQ.2 ) THEN * * For A*x=(lambda)*B*x and A*B*x=(lambda)*x; * backtransform eigenvectors: x = inv(L)**T*y or inv(U)*y * IF( UPPER ) THEN TRANS = 'N' ELSE TRANS = 'T' END IF * CALL DTRSM( 'Left', UPLO, TRANS, 'Non-unit', N, M, ONE, B, $ LDB, Z, LDZ ) * ELSE IF( ITYPE.EQ.3 ) THEN * * For B*A*x=(lambda)*x; * backtransform eigenvectors: x = L*y or U**T*y * IF( UPPER ) THEN TRANS = 'T' ELSE TRANS = 'N' END IF * CALL DTRMM( 'Left', UPLO, TRANS, 'Non-unit', N, M, ONE, B, $ LDB, Z, LDZ ) END IF END IF * * Set WORK(1) to optimal workspace size. * WORK( 1 ) = LWKOPT * RETURN * * End of DSYGVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhegvx.f0000644000000000000000000000013013543334726015242 xustar0029 mtime=1569569238.29664599 30 atime=1569569238.294645991 29 ctime=1569569238.29664599 elk-6.3.2/src/LAPACK/zhegvx.f0000644002504400250440000003606413543334726017324 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHEGVX * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEGVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEGVX( ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, * VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, * LWORK, RWORK, IWORK, IFAIL, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, ITYPE, IU, LDA, LDB, LDZ, LWORK, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ), * $ Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEGVX computes selected eigenvalues, and optionally, eigenvectors *> of a complex generalized Hermitian-definite eigenproblem, of the form *> A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and *> B are assumed to be Hermitian and B is also positive definite. *> Eigenvalues and eigenvectors can be selected by specifying either a *> range of values or a range of indices for the desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> Specifies the problem type to be solved: *> = 1: A*x = (lambda)*B*x *> = 2: A*B*x = (lambda)*x *> = 3: B*A*x = (lambda)*x *> \endverbatim *> *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found. *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found. *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangles of A and B are stored; *> = 'L': Lower triangles of A and B are stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA, N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> *> On exit, the lower triangle (if UPLO='L') or the upper *> triangle (if UPLO='U') of A, including the diagonal, is *> destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB, N) *> On entry, the Hermitian matrix B. If UPLO = 'U', the *> leading N-by-N upper triangular part of B contains the *> upper triangular part of the matrix B. If UPLO = 'L', *> the leading N-by-N lower triangular part of B contains *> the lower triangular part of the matrix B. *> *> On exit, if INFO <= N, the part of B containing the matrix is *> overwritten by the triangular factor U or L from the Cholesky *> factorization B = U**H*U or B = L*L**H. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing C to tridiagonal form, where C is the symmetric *> matrix of the standard symmetric problem to which the *> generalized problem is transformed. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> The first M elements contain the selected *> eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ, max(1,M)) *> If JOBZ = 'N', then Z is not referenced. *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> The eigenvectors are normalized as follows: *> if ITYPE = 1 or 2, Z**T*B*Z = I; *> if ITYPE = 3, Z**T*inv(B)*Z = I. *> *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and the *> index of the eigenvector is returned in IFAIL. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,2*N). *> For optimal efficiency, LWORK >= (NB+1)*N, *> where NB is the blocksize for ZHETRD returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (7*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: ZPOTRF or ZHEEVX returned an error code: *> <= N: if INFO = i, ZHEEVX failed to converge; *> i eigenvectors failed to converge. Their indices *> are stored in array IFAIL. *> > N: if INFO = N + i, for 1 <= i <= N, then the leading *> minor of order i of B is not positive definite. *> The factorization of B could not be completed and *> no eigenvalues or eigenvectors were computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16HEeigen * *> \par Contributors: * ================== *> *> Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA * * ===================================================================== SUBROUTINE ZHEGVX( ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, $ VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, $ LWORK, RWORK, IWORK, IFAIL, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, ITYPE, IU, LDA, LDB, LDZ, LWORK, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ), $ Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, LQUERY, UPPER, VALEIG, WANTZ CHARACTER TRANS INTEGER LWKOPT, NB * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZHEEVX, ZHEGST, ZPOTRF, ZTRMM, ZTRSM * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) UPPER = LSAME( UPLO, 'U' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -2 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -3 ELSE IF( .NOT.( UPPER .OR. LSAME( UPLO, 'L' ) ) ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -7 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -9 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) $ INFO = -11 ELSE IF( INDEIG ) THEN IF( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) THEN INFO = -12 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -13 END IF END IF END IF IF (INFO.EQ.0) THEN IF (LDZ.LT.1 .OR. (WANTZ .AND. LDZ.LT.N)) THEN INFO = -18 END IF END IF * IF( INFO.EQ.0 ) THEN NB = ILAENV( 1, 'ZHETRD', UPLO, N, -1, -1, -1 ) LWKOPT = MAX( 1, ( NB + 1 )*N ) WORK( 1 ) = LWKOPT * IF( LWORK.LT.MAX( 1, 2*N ) .AND. .NOT.LQUERY ) THEN INFO = -20 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEGVX', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * M = 0 IF( N.EQ.0 ) THEN RETURN END IF * * Form a Cholesky factorization of B. * CALL ZPOTRF( UPLO, N, B, LDB, INFO ) IF( INFO.NE.0 ) THEN INFO = N + INFO RETURN END IF * * Transform problem to standard eigenvalue problem and solve. * CALL ZHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) CALL ZHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, $ M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, $ INFO ) * IF( WANTZ ) THEN * * Backtransform eigenvectors to the original problem. * IF( INFO.GT.0 ) $ M = INFO - 1 IF( ITYPE.EQ.1 .OR. ITYPE.EQ.2 ) THEN * * For A*x=(lambda)*B*x and A*B*x=(lambda)*x; * backtransform eigenvectors: x = inv(L)**H *y or inv(U)*y * IF( UPPER ) THEN TRANS = 'N' ELSE TRANS = 'C' END IF * CALL ZTRSM( 'Left', UPLO, TRANS, 'Non-unit', N, M, CONE, B, $ LDB, Z, LDZ ) * ELSE IF( ITYPE.EQ.3 ) THEN * * For B*A*x=(lambda)*x; * backtransform eigenvectors: x = L*y or U**H *y * IF( UPPER ) THEN TRANS = 'C' ELSE TRANS = 'N' END IF * CALL ZTRMM( 'Left', UPLO, TRANS, 'Non-unit', N, M, CONE, B, $ LDB, Z, LDZ ) END IF END IF * * Set WORK(1) to optimal complex workspace size. * WORK( 1 ) = LWKOPT * RETURN * * End of ZHEGVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zheevd.f0000644000000000000000000000013213543334726015216 xustar0030 mtime=1569569238.301645987 30 atime=1569569238.299645988 30 ctime=1569569238.301645987 elk-6.3.2/src/LAPACK/zheevd.f0000644002504400250440000003133713543334726017274 0ustar00dewhurstdewhurst00000000000000*> \brief ZHEEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEEVD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, * LRWORK, IWORK, LIWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, UPLO * INTEGER INFO, LDA, LIWORK, LRWORK, LWORK, N * .. * .. Array Arguments .. * INTEGER IWORK( * ) * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 A( LDA, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEEVD computes all eigenvalues and, optionally, eigenvectors of a *> complex Hermitian matrix A. If eigenvectors are desired, it uses a *> divide and conquer algorithm. *> *> The divide and conquer algorithm makes very mild assumptions about *> floating point arithmetic. It will work on machines with a guard *> digit in add/subtract, or on those binary machines without guard *> digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or *> Cray-2. It could conceivably fail on hexadecimal or decimal machines *> without guard digits, but we know of none. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA, N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> On exit, if JOBZ = 'V', then if INFO = 0, A contains the *> orthonormal eigenvectors of the matrix A. *> If JOBZ = 'N', then on exit the lower triangle (if UPLO='L') *> or the upper triangle (if UPLO='U') of A, including the *> diagonal, is destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. *> If N <= 1, LWORK must be at least 1. *> If JOBZ = 'N' and N > 1, LWORK must be at least N + 1. *> If JOBZ = 'V' and N > 1, LWORK must be at least 2*N + N**2. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal sizes of the WORK, RWORK and *> IWORK arrays, returns these values as the first entries of *> the WORK, RWORK and IWORK arrays, and no error message *> related to LWORK or LRWORK or LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, *> dimension (LRWORK) *> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK. *> \endverbatim *> *> \param[in] LRWORK *> \verbatim *> LRWORK is INTEGER *> The dimension of the array RWORK. *> If N <= 1, LRWORK must be at least 1. *> If JOBZ = 'N' and N > 1, LRWORK must be at least N. *> If JOBZ = 'V' and N > 1, LRWORK must be at least *> 1 + 5*N + 2*N**2. *> *> If LRWORK = -1, then a workspace query is assumed; the *> routine only calculates the optimal sizes of the WORK, RWORK *> and IWORK arrays, returns these values as the first entries *> of the WORK, RWORK and IWORK arrays, and no error message *> related to LWORK or LRWORK or LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (MAX(1,LIWORK)) *> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK. *> \endverbatim *> *> \param[in] LIWORK *> \verbatim *> LIWORK is INTEGER *> The dimension of the array IWORK. *> If N <= 1, LIWORK must be at least 1. *> If JOBZ = 'N' and N > 1, LIWORK must be at least 1. *> If JOBZ = 'V' and N > 1, LIWORK must be at least 3 + 5*N. *> *> If LIWORK = -1, then a workspace query is assumed; the *> routine only calculates the optimal sizes of the WORK, RWORK *> and IWORK arrays, returns these values as the first entries *> of the WORK, RWORK and IWORK arrays, and no error message *> related to LWORK or LRWORK or LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i and JOBZ = 'N', then the algorithm failed *> to converge; i off-diagonal elements of an intermediate *> tridiagonal form did not converge to zero; *> if INFO = i and JOBZ = 'V', then the algorithm failed *> to compute an eigenvalue while working on the submatrix *> lying in rows and columns INFO/(N+1) through *> mod(INFO,N+1). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEeigen * *> \par Further Details: * ===================== *> *> Modified description of INFO. Sven, 16 Feb 05. * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA *> * ===================================================================== SUBROUTINE ZHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, $ LRWORK, IWORK, LIWORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, UPLO INTEGER INFO, LDA, LIWORK, LRWORK, LWORK, N * .. * .. Array Arguments .. INTEGER IWORK( * ) DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 A( LDA, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D0, 0.0D0 ) ) * .. * .. Local Scalars .. LOGICAL LOWER, LQUERY, WANTZ INTEGER IINFO, IMAX, INDE, INDRWK, INDTAU, INDWK2, $ INDWRK, ISCALE, LIOPT, LIWMIN, LLRWK, LLWORK, $ LLWRK2, LOPT, LROPT, LRWMIN, LWMIN DOUBLE PRECISION ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, $ SMLNUM * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, ZLANHE EXTERNAL LSAME, ILAENV, DLAMCH, ZLANHE * .. * .. External Subroutines .. EXTERNAL DSCAL, DSTERF, XERBLA, ZHETRD, ZLACPY, ZLASCL, $ ZSTEDC, ZUNMTR * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) LOWER = LSAME( UPLO, 'L' ) LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 .OR. LIWORK.EQ.-1 ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( LOWER .OR. LSAME( UPLO, 'U' ) ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF * IF( INFO.EQ.0 ) THEN IF( N.LE.1 ) THEN LWMIN = 1 LRWMIN = 1 LIWMIN = 1 LOPT = LWMIN LROPT = LRWMIN LIOPT = LIWMIN ELSE IF( WANTZ ) THEN LWMIN = 2*N + N*N LRWMIN = 1 + 5*N + 2*N**2 LIWMIN = 3 + 5*N ELSE LWMIN = N + 1 LRWMIN = N LIWMIN = 1 END IF LOPT = MAX( LWMIN, N + $ ILAENV( 1, 'ZHETRD', UPLO, N, -1, -1, -1 ) ) LROPT = LRWMIN LIOPT = LIWMIN END IF WORK( 1 ) = LOPT RWORK( 1 ) = LROPT IWORK( 1 ) = LIOPT * IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN INFO = -8 ELSE IF( LRWORK.LT.LRWMIN .AND. .NOT.LQUERY ) THEN INFO = -10 ELSE IF( LIWORK.LT.LIWMIN .AND. .NOT.LQUERY ) THEN INFO = -12 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEEVD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN W( 1 ) = A( 1, 1 ) IF( WANTZ ) $ A( 1, 1 ) = CONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = SQRT( BIGNUM ) * * Scale matrix to allowable range, if necessary. * ANRM = ZLANHE( 'M', UPLO, N, A, LDA, RWORK ) ISCALE = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) $ CALL ZLASCL( UPLO, 0, 0, ONE, SIGMA, N, N, A, LDA, INFO ) * * Call ZHETRD to reduce Hermitian matrix to tridiagonal form. * INDE = 1 INDTAU = 1 INDWRK = INDTAU + N INDRWK = INDE + N INDWK2 = INDWRK + N*N LLWORK = LWORK - INDWRK + 1 LLWRK2 = LWORK - INDWK2 + 1 LLRWK = LRWORK - INDRWK + 1 CALL ZHETRD( UPLO, N, A, LDA, W, RWORK( INDE ), WORK( INDTAU ), $ WORK( INDWRK ), LLWORK, IINFO ) * * For eigenvalues only, call DSTERF. For eigenvectors, first call * ZSTEDC to generate the eigenvector matrix, WORK(INDWRK), of the * tridiagonal matrix, then call ZUNMTR to multiply it to the * Householder transformations represented as Householder vectors in * A. * IF( .NOT.WANTZ ) THEN CALL DSTERF( N, W, RWORK( INDE ), INFO ) ELSE CALL ZSTEDC( 'I', N, W, RWORK( INDE ), WORK( INDWRK ), N, $ WORK( INDWK2 ), LLWRK2, RWORK( INDRWK ), LLRWK, $ IWORK, LIWORK, INFO ) CALL ZUNMTR( 'L', UPLO, 'N', N, N, A, LDA, WORK( INDTAU ), $ WORK( INDWRK ), N, WORK( INDWK2 ), LLWRK2, IINFO ) CALL ZLACPY( 'A', N, N, WORK( INDWRK ), N, A, LDA ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = N ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * WORK( 1 ) = LOPT RWORK( 1 ) = LROPT IWORK( 1 ) = LIOPT * RETURN * * End of ZHEEVD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zheev.f0000644000000000000000000000013213543334726015052 xustar0030 mtime=1569569238.305645984 30 atime=1569569238.304645985 30 ctime=1569569238.305645984 elk-6.3.2/src/LAPACK/zheev.f0000644002504400250440000002114613543334726017125 0ustar00dewhurstdewhurst00000000000000*> \brief ZHEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEEV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, * INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, UPLO * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 A( LDA, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEEV computes all eigenvalues and, optionally, eigenvectors of a *> complex Hermitian matrix A. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA, N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> On exit, if JOBZ = 'V', then if INFO = 0, A contains the *> orthonormal eigenvectors of the matrix A. *> If JOBZ = 'N', then on exit the lower triangle (if UPLO='L') *> or the upper triangle (if UPLO='U') of A, including the *> diagonal, is destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,2*N-1). *> For optimal efficiency, LWORK >= (NB+1)*N, *> where NB is the blocksize for ZHETRD returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (max(1, 3*N-2)) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the algorithm failed to converge; i *> off-diagonal elements of an intermediate tridiagonal *> form did not converge to zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEeigen * * ===================================================================== SUBROUTINE ZHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, $ INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, UPLO INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 A( LDA, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D0, 0.0D0 ) ) * .. * .. Local Scalars .. LOGICAL LOWER, LQUERY, WANTZ INTEGER IINFO, IMAX, INDE, INDTAU, INDWRK, ISCALE, $ LLWORK, LWKOPT, NB DOUBLE PRECISION ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, $ SMLNUM * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, ZLANHE EXTERNAL LSAME, ILAENV, DLAMCH, ZLANHE * .. * .. External Subroutines .. EXTERNAL DSCAL, DSTERF, XERBLA, ZHETRD, ZLASCL, ZSTEQR, $ ZUNGTR * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) LOWER = LSAME( UPLO, 'L' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( LOWER .OR. LSAME( UPLO, 'U' ) ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF * IF( INFO.EQ.0 ) THEN NB = ILAENV( 1, 'ZHETRD', UPLO, N, -1, -1, -1 ) LWKOPT = MAX( 1, ( NB+1 )*N ) WORK( 1 ) = LWKOPT * IF( LWORK.LT.MAX( 1, 2*N-1 ) .AND. .NOT.LQUERY ) $ INFO = -8 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEEV ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN RETURN END IF * IF( N.EQ.1 ) THEN W( 1 ) = A( 1, 1 ) WORK( 1 ) = 1 IF( WANTZ ) $ A( 1, 1 ) = CONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = SQRT( BIGNUM ) * * Scale matrix to allowable range, if necessary. * ANRM = ZLANHE( 'M', UPLO, N, A, LDA, RWORK ) ISCALE = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) $ CALL ZLASCL( UPLO, 0, 0, ONE, SIGMA, N, N, A, LDA, INFO ) * * Call ZHETRD to reduce Hermitian matrix to tridiagonal form. * INDE = 1 INDTAU = 1 INDWRK = INDTAU + N LLWORK = LWORK - INDWRK + 1 CALL ZHETRD( UPLO, N, A, LDA, W, RWORK( INDE ), WORK( INDTAU ), $ WORK( INDWRK ), LLWORK, IINFO ) * * For eigenvalues only, call DSTERF. For eigenvectors, first call * ZUNGTR to generate the unitary matrix, then call ZSTEQR. * IF( .NOT.WANTZ ) THEN CALL DSTERF( N, W, RWORK( INDE ), INFO ) ELSE CALL ZUNGTR( UPLO, N, A, LDA, WORK( INDTAU ), WORK( INDWRK ), $ LLWORK, IINFO ) INDWRK = INDE + N CALL ZSTEQR( JOBZ, N, W, RWORK( INDE ), A, LDA, $ RWORK( INDWRK ), INFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = N ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * * Set WORK(1) to optimal complex workspace size. * WORK( 1 ) = LWKOPT * RETURN * * End of ZHEEV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgetrf.f0000644000000000000000000000013213543334726015204 xustar0030 mtime=1569569238.309645982 30 atime=1569569238.308645982 30 ctime=1569569238.309645982 elk-6.3.2/src/LAPACK/dgetrf.f0000644002504400250440000001422613543334726017260 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGETRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGETRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGETRF computes an LU factorization of a general M-by-N matrix A *> using partial pivoting with row interchanges. *> *> The factorization has the form *> A = P * L * U *> where P is a permutation matrix, L is lower triangular with unit *> diagonal elements (lower trapezoidal if m > n), and U is upper *> triangular (upper trapezoidal if m < n). *> *> This is the right-looking Level 3 BLAS version of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the M-by-N matrix to be factored. *> On exit, the factors L and U from the factorization *> A = P*L*U; the unit diagonal elements of L are not stored. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (min(M,N)) *> The pivot indices; for 1 <= i <= min(M,N), row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and division by zero will occur if it is used *> to solve a system of equations. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * * ===================================================================== SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. INTEGER I, IINFO, J, JB, NB * .. * .. External Subroutines .. EXTERNAL DGEMM, DGETRF2, DLASWP, DTRSM, XERBLA * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGETRF', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * * Determine the block size for this environment. * NB = ILAENV( 1, 'DGETRF', ' ', M, N, -1, -1 ) IF( NB.LE.1 .OR. NB.GE.MIN( M, N ) ) THEN * * Use unblocked code. * CALL DGETRF2( M, N, A, LDA, IPIV, INFO ) ELSE * * Use blocked code. * DO 20 J = 1, MIN( M, N ), NB JB = MIN( MIN( M, N )-J+1, NB ) * * Factor diagonal and subdiagonal blocks and test for exact * singularity. * CALL DGETRF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO ) * * Adjust INFO and the pivot indices. * IF( INFO.EQ.0 .AND. IINFO.GT.0 ) $ INFO = IINFO + J - 1 DO 10 I = J, MIN( M, J+JB-1 ) IPIV( I ) = J - 1 + IPIV( I ) 10 CONTINUE * * Apply interchanges to columns 1:J-1. * CALL DLASWP( J-1, A, LDA, J, J+JB-1, IPIV, 1 ) * IF( J+JB.LE.N ) THEN * * Apply interchanges to columns J+JB:N. * CALL DLASWP( N-J-JB+1, A( 1, J+JB ), LDA, J, J+JB-1, $ IPIV, 1 ) * * Compute block row of U. * CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', JB, $ N-J-JB+1, ONE, A( J, J ), LDA, A( J, J+JB ), $ LDA ) IF( J+JB.LE.M ) THEN * * Update trailing submatrix. * CALL DGEMM( 'No transpose', 'No transpose', M-J-JB+1, $ N-J-JB+1, JB, -ONE, A( J+JB, J ), LDA, $ A( J, J+JB ), LDA, ONE, A( J+JB, J+JB ), $ LDA ) END IF END IF 20 CONTINUE END IF RETURN * * End of DGETRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgetri.f0000644000000000000000000000013113543334726015206 xustar0030 mtime=1569569238.313645979 29 atime=1569569238.31264598 30 ctime=1569569238.313645979 elk-6.3.2/src/LAPACK/dgetri.f0000644002504400250440000001631513543334726017264 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGETRI * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGETRI + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * DOUBLE PRECISION A( LDA, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGETRI computes the inverse of a matrix using the LU factorization *> computed by DGETRF. *> *> This method inverts U and then computes inv(A) by solving the system *> inv(A)*L = inv(U) for inv(A). *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the factors L and U from the factorization *> A = P*L*U as computed by DGETRF. *> On exit, if INFO = 0, the inverse of the original matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices from DGETRF; for 1<=i<=N, row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO=0, then WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimal performance LWORK >= N*NB, where NB is *> the optimal blocksize returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero; the matrix is *> singular and its inverse could not be computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * * ===================================================================== SUBROUTINE DGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IWS, J, JB, JJ, JP, LDWORK, LWKOPT, NB, $ NBMIN, NN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. External Subroutines .. EXTERNAL DGEMM, DGEMV, DSWAP, DTRSM, DTRTRI, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 NB = ILAENV( 1, 'DGETRI', ' ', N, -1, -1, -1 ) LWKOPT = N*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( N.LT.0 ) THEN INFO = -1 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -3 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGETRI', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Form inv(U). If INFO > 0 from DTRTRI, then U is singular, * and the inverse is not computed. * CALL DTRTRI( 'Upper', 'Non-unit', N, A, LDA, INFO ) IF( INFO.GT.0 ) $ RETURN * NBMIN = 2 LDWORK = N IF( NB.GT.1 .AND. NB.LT.N ) THEN IWS = MAX( LDWORK*NB, 1 ) IF( LWORK.LT.IWS ) THEN NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DGETRI', ' ', N, -1, -1, -1 ) ) END IF ELSE IWS = N END IF * * Solve the equation inv(A)*L = inv(U) for inv(A). * IF( NB.LT.NBMIN .OR. NB.GE.N ) THEN * * Use unblocked code. * DO 20 J = N, 1, -1 * * Copy current column of L to WORK and replace with zeros. * DO 10 I = J + 1, N WORK( I ) = A( I, J ) A( I, J ) = ZERO 10 CONTINUE * * Compute current column of inv(A). * IF( J.LT.N ) $ CALL DGEMV( 'No transpose', N, N-J, -ONE, A( 1, J+1 ), $ LDA, WORK( J+1 ), 1, ONE, A( 1, J ), 1 ) 20 CONTINUE ELSE * * Use blocked code. * NN = ( ( N-1 ) / NB )*NB + 1 DO 50 J = NN, 1, -NB JB = MIN( NB, N-J+1 ) * * Copy current block column of L to WORK and replace with * zeros. * DO 40 JJ = J, J + JB - 1 DO 30 I = JJ + 1, N WORK( I+( JJ-J )*LDWORK ) = A( I, JJ ) A( I, JJ ) = ZERO 30 CONTINUE 40 CONTINUE * * Compute current block column of inv(A). * IF( J+JB.LE.N ) $ CALL DGEMM( 'No transpose', 'No transpose', N, JB, $ N-J-JB+1, -ONE, A( 1, J+JB ), LDA, $ WORK( J+JB ), LDWORK, ONE, A( 1, J ), LDA ) CALL DTRSM( 'Right', 'Lower', 'No transpose', 'Unit', N, JB, $ ONE, WORK( J ), LDWORK, A( 1, J ), LDA ) 50 CONTINUE END IF * * Apply column interchanges. * DO 60 J = N - 1, 1, -1 JP = IPIV( J ) IF( JP.NE.J ) $ CALL DSWAP( N, A( 1, J ), 1, A( 1, JP ), 1 ) 60 CONTINUE * WORK( 1 ) = IWS RETURN * * End of DGETRI * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgesv.f0000644000000000000000000000013213543334726015067 xustar0030 mtime=1569569238.318645976 30 atime=1569569238.316645977 30 ctime=1569569238.318645976 elk-6.3.2/src/LAPACK/zgesv.f0000644002504400250440000001203213543334726017134 0ustar00dewhurstdewhurst00000000000000*> \brief ZGESV computes the solution to system of linear equations A * X = B for GE matrices (simple driver) * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGESV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGESV computes the solution to a complex system of linear equations *> A * X = B, *> where A is an N-by-N matrix and X and B are N-by-NRHS matrices. *> *> The LU decomposition with partial pivoting and row interchanges is *> used to factor A as *> A = P * L * U, *> where P is a permutation matrix, L is unit lower triangular, and U is *> upper triangular. The factored form of A is then used to solve the *> system of equations A * X = B. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of linear equations, i.e., the order of the *> matrix A. N >= 0. *> \endverbatim *> *> \param[in] NRHS *> \verbatim *> NRHS is INTEGER *> The number of right hand sides, i.e., the number of columns *> of the matrix B. NRHS >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the N-by-N coefficient matrix A. *> On exit, the factors L and U from the factorization *> A = P*L*U; the unit diagonal elements of L are not stored. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices that define the permutation matrix P; *> row i of the matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,NRHS) *> On entry, the N-by-NRHS matrix of right hand side matrix B. *> On exit, if INFO = 0, the N-by-NRHS solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, so the solution could not be computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16GEsolve * * ===================================================================== SUBROUTINE ZGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * -- LAPACK driver routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. External Subroutines .. EXTERNAL XERBLA, ZGETRF, ZGETRS * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 IF( N.LT.0 ) THEN INFO = -1 ELSE IF( NRHS.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGESV ', -INFO ) RETURN END IF * * Compute the LU factorization of A. * CALL ZGETRF( N, N, A, LDA, IPIV, INFO ) IF( INFO.EQ.0 ) THEN * * Solve the system A*X = B, overwriting B with X. * CALL ZGETRS( 'No transpose', N, NRHS, A, LDA, IPIV, B, LDB, $ INFO ) END IF RETURN * * End of ZGESV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgeev.f0000644000000000000000000000013213543334726015051 xustar0030 mtime=1569569238.323645973 30 atime=1569569238.321645974 30 ctime=1569569238.323645973 elk-6.3.2/src/LAPACK/zgeev.f0000644002504400250440000003730213543334726017125 0ustar00dewhurstdewhurst00000000000000*> \brief ZGEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEEV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR, * WORK, LWORK, RWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBVL, JOBVR * INTEGER INFO, LDA, LDVL, LDVR, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION RWORK( * ) * COMPLEX*16 A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ), * $ W( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEEV computes for an N-by-N complex nonsymmetric matrix A, the *> eigenvalues and, optionally, the left and/or right eigenvectors. *> *> The right eigenvector v(j) of A satisfies *> A * v(j) = lambda(j) * v(j) *> where lambda(j) is its eigenvalue. *> The left eigenvector u(j) of A satisfies *> u(j)**H * A = lambda(j) * u(j)**H *> where u(j)**H denotes the conjugate transpose of u(j). *> *> The computed eigenvectors are normalized to have Euclidean norm *> equal to 1 and largest component real. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBVL *> \verbatim *> JOBVL is CHARACTER*1 *> = 'N': left eigenvectors of A are not computed; *> = 'V': left eigenvectors of are computed. *> \endverbatim *> *> \param[in] JOBVR *> \verbatim *> JOBVR is CHARACTER*1 *> = 'N': right eigenvectors of A are not computed; *> = 'V': right eigenvectors of A are computed. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the N-by-N matrix A. *> On exit, A has been overwritten. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> W contains the computed eigenvalues. *> \endverbatim *> *> \param[out] VL *> \verbatim *> VL is COMPLEX*16 array, dimension (LDVL,N) *> If JOBVL = 'V', the left eigenvectors u(j) are stored one *> after another in the columns of VL, in the same order *> as their eigenvalues. *> If JOBVL = 'N', VL is not referenced. *> u(j) = VL(:,j), the j-th column of VL. *> \endverbatim *> *> \param[in] LDVL *> \verbatim *> LDVL is INTEGER *> The leading dimension of the array VL. LDVL >= 1; if *> JOBVL = 'V', LDVL >= N. *> \endverbatim *> *> \param[out] VR *> \verbatim *> VR is COMPLEX*16 array, dimension (LDVR,N) *> If JOBVR = 'V', the right eigenvectors v(j) are stored one *> after another in the columns of VR, in the same order *> as their eigenvalues. *> If JOBVR = 'N', VR is not referenced. *> v(j) = VR(:,j), the j-th column of VR. *> \endverbatim *> *> \param[in] LDVR *> \verbatim *> LDVR is INTEGER *> The leading dimension of the array VR. LDVR >= 1; if *> JOBVR = 'V', LDVR >= N. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,2*N). *> For good performance, LWORK must generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (2*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = i, the QR algorithm failed to compute all the *> eigenvalues, and no eigenvectors have been computed; *> elements and i+1:N of W contain eigenvalues which have *> converged. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * * @precisions fortran z -> c * *> \ingroup complex16GEeigen * * ===================================================================== SUBROUTINE ZGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR, $ WORK, LWORK, RWORK, INFO ) implicit none * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBVL, JOBVR INTEGER INFO, LDA, LDVL, LDVR, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION RWORK( * ) COMPLEX*16 A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ), $ W( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, SCALEA, WANTVL, WANTVR CHARACTER SIDE INTEGER HSWORK, I, IBAL, IERR, IHI, ILO, IRWORK, ITAU, $ IWRK, K, LWORK_TREVC, MAXWRK, MINWRK, NOUT DOUBLE PRECISION ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM COMPLEX*16 TMP * .. * .. Local Arrays .. LOGICAL SELECT( 1 ) DOUBLE PRECISION DUM( 1 ) * .. * .. External Subroutines .. EXTERNAL DLABAD, XERBLA, ZDSCAL, ZGEBAK, ZGEBAL, ZGEHRD, $ ZHSEQR, ZLACPY, ZLASCL, ZSCAL, ZTREVC3, ZUNGHR * .. * .. External Functions .. LOGICAL LSAME INTEGER IDAMAX, ILAENV DOUBLE PRECISION DLAMCH, DZNRM2, ZLANGE EXTERNAL LSAME, IDAMAX, ILAENV, DLAMCH, DZNRM2, ZLANGE * .. * .. Intrinsic Functions .. INTRINSIC DBLE, DCMPLX, CONJG, AIMAG, MAX, SQRT * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) WANTVL = LSAME( JOBVL, 'V' ) WANTVR = LSAME( JOBVR, 'V' ) IF( ( .NOT.WANTVL ) .AND. ( .NOT.LSAME( JOBVL, 'N' ) ) ) THEN INFO = -1 ELSE IF( ( .NOT.WANTVR ) .AND. ( .NOT.LSAME( JOBVR, 'N' ) ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDVL.LT.1 .OR. ( WANTVL .AND. LDVL.LT.N ) ) THEN INFO = -8 ELSE IF( LDVR.LT.1 .OR. ( WANTVR .AND. LDVR.LT.N ) ) THEN INFO = -10 END IF * * Compute workspace * (Note: Comments in the code beginning "Workspace:" describe the * minimal amount of workspace needed at that point in the code, * as well as the preferred amount for good performance. * CWorkspace refers to complex workspace, and RWorkspace to real * workspace. NB refers to the optimal block size for the * immediately following subroutine, as returned by ILAENV. * HSWORK refers to the workspace preferred by ZHSEQR, as * calculated below. HSWORK is computed assuming ILO=1 and IHI=N, * the worst case.) * IF( INFO.EQ.0 ) THEN IF( N.EQ.0 ) THEN MINWRK = 1 MAXWRK = 1 ELSE MAXWRK = N + N*ILAENV( 1, 'ZGEHRD', ' ', N, 1, N, 0 ) MINWRK = 2*N IF( WANTVL ) THEN MAXWRK = MAX( MAXWRK, N + ( N - 1 )*ILAENV( 1, 'ZUNGHR', $ ' ', N, 1, N, -1 ) ) CALL ZTREVC3( 'L', 'B', SELECT, N, A, LDA, $ VL, LDVL, VR, LDVR, $ N, NOUT, WORK, -1, RWORK, -1, IERR ) LWORK_TREVC = INT( WORK(1) ) MAXWRK = MAX( MAXWRK, N + LWORK_TREVC ) CALL ZHSEQR( 'S', 'V', N, 1, N, A, LDA, W, VL, LDVL, $ WORK, -1, INFO ) ELSE IF( WANTVR ) THEN MAXWRK = MAX( MAXWRK, N + ( N - 1 )*ILAENV( 1, 'ZUNGHR', $ ' ', N, 1, N, -1 ) ) CALL ZTREVC3( 'R', 'B', SELECT, N, A, LDA, $ VL, LDVL, VR, LDVR, $ N, NOUT, WORK, -1, RWORK, -1, IERR ) LWORK_TREVC = INT( WORK(1) ) MAXWRK = MAX( MAXWRK, N + LWORK_TREVC ) CALL ZHSEQR( 'S', 'V', N, 1, N, A, LDA, W, VR, LDVR, $ WORK, -1, INFO ) ELSE CALL ZHSEQR( 'E', 'N', N, 1, N, A, LDA, W, VR, LDVR, $ WORK, -1, INFO ) END IF HSWORK = INT( WORK(1) ) MAXWRK = MAX( MAXWRK, HSWORK, MINWRK ) END IF WORK( 1 ) = MAXWRK * IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN INFO = -12 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEEV ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Get machine constants * EPS = DLAMCH( 'P' ) SMLNUM = DLAMCH( 'S' ) BIGNUM = ONE / SMLNUM CALL DLABAD( SMLNUM, BIGNUM ) SMLNUM = SQRT( SMLNUM ) / EPS BIGNUM = ONE / SMLNUM * * Scale A if max element outside range [SMLNUM,BIGNUM] * ANRM = ZLANGE( 'M', N, N, A, LDA, DUM ) SCALEA = .FALSE. IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN SCALEA = .TRUE. CSCALE = SMLNUM ELSE IF( ANRM.GT.BIGNUM ) THEN SCALEA = .TRUE. CSCALE = BIGNUM END IF IF( SCALEA ) $ CALL ZLASCL( 'G', 0, 0, ANRM, CSCALE, N, N, A, LDA, IERR ) * * Balance the matrix * (CWorkspace: none) * (RWorkspace: need N) * IBAL = 1 CALL ZGEBAL( 'B', N, A, LDA, ILO, IHI, RWORK( IBAL ), IERR ) * * Reduce to upper Hessenberg form * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: none) * ITAU = 1 IWRK = ITAU + N CALL ZGEHRD( N, ILO, IHI, A, LDA, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) * IF( WANTVL ) THEN * * Want left eigenvectors * Copy Householder vectors to VL * SIDE = 'L' CALL ZLACPY( 'L', N, N, A, LDA, VL, LDVL ) * * Generate unitary matrix in VL * (CWorkspace: need 2*N-1, prefer N+(N-1)*NB) * (RWorkspace: none) * CALL ZUNGHR( N, ILO, IHI, VL, LDVL, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) * * Perform QR iteration, accumulating Schur vectors in VL * (CWorkspace: need 1, prefer HSWORK (see comments) ) * (RWorkspace: none) * IWRK = ITAU CALL ZHSEQR( 'S', 'V', N, ILO, IHI, A, LDA, W, VL, LDVL, $ WORK( IWRK ), LWORK-IWRK+1, INFO ) * IF( WANTVR ) THEN * * Want left and right eigenvectors * Copy Schur vectors to VR * SIDE = 'B' CALL ZLACPY( 'F', N, N, VL, LDVL, VR, LDVR ) END IF * ELSE IF( WANTVR ) THEN * * Want right eigenvectors * Copy Householder vectors to VR * SIDE = 'R' CALL ZLACPY( 'L', N, N, A, LDA, VR, LDVR ) * * Generate unitary matrix in VR * (CWorkspace: need 2*N-1, prefer N+(N-1)*NB) * (RWorkspace: none) * CALL ZUNGHR( N, ILO, IHI, VR, LDVR, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) * * Perform QR iteration, accumulating Schur vectors in VR * (CWorkspace: need 1, prefer HSWORK (see comments) ) * (RWorkspace: none) * IWRK = ITAU CALL ZHSEQR( 'S', 'V', N, ILO, IHI, A, LDA, W, VR, LDVR, $ WORK( IWRK ), LWORK-IWRK+1, INFO ) * ELSE * * Compute eigenvalues only * (CWorkspace: need 1, prefer HSWORK (see comments) ) * (RWorkspace: none) * IWRK = ITAU CALL ZHSEQR( 'E', 'N', N, ILO, IHI, A, LDA, W, VR, LDVR, $ WORK( IWRK ), LWORK-IWRK+1, INFO ) END IF * * If INFO .NE. 0 from ZHSEQR, then quit * IF( INFO.NE.0 ) $ GO TO 50 * IF( WANTVL .OR. WANTVR ) THEN * * Compute left and/or right eigenvectors * (CWorkspace: need 2*N, prefer N + 2*N*NB) * (RWorkspace: need 2*N) * IRWORK = IBAL + N CALL ZTREVC3( SIDE, 'B', SELECT, N, A, LDA, VL, LDVL, VR, LDVR, $ N, NOUT, WORK( IWRK ), LWORK-IWRK+1, $ RWORK( IRWORK ), N, IERR ) END IF * IF( WANTVL ) THEN * * Undo balancing of left eigenvectors * (CWorkspace: none) * (RWorkspace: need N) * CALL ZGEBAK( 'B', 'L', N, ILO, IHI, RWORK( IBAL ), N, VL, LDVL, $ IERR ) * * Normalize left eigenvectors and make largest component real * DO 20 I = 1, N SCL = ONE / DZNRM2( N, VL( 1, I ), 1 ) CALL ZDSCAL( N, SCL, VL( 1, I ), 1 ) DO 10 K = 1, N RWORK( IRWORK+K-1 ) = DBLE( VL( K, I ) )**2 + $ AIMAG( VL( K, I ) )**2 10 CONTINUE K = IDAMAX( N, RWORK( IRWORK ), 1 ) TMP = CONJG( VL( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) ) CALL ZSCAL( N, TMP, VL( 1, I ), 1 ) VL( K, I ) = DCMPLX( DBLE( VL( K, I ) ), ZERO ) 20 CONTINUE END IF * IF( WANTVR ) THEN * * Undo balancing of right eigenvectors * (CWorkspace: none) * (RWorkspace: need N) * CALL ZGEBAK( 'B', 'R', N, ILO, IHI, RWORK( IBAL ), N, VR, LDVR, $ IERR ) * * Normalize right eigenvectors and make largest component real * DO 40 I = 1, N SCL = ONE / DZNRM2( N, VR( 1, I ), 1 ) CALL ZDSCAL( N, SCL, VR( 1, I ), 1 ) DO 30 K = 1, N RWORK( IRWORK+K-1 ) = DBLE( VR( K, I ) )**2 + $ AIMAG( VR( K, I ) )**2 30 CONTINUE K = IDAMAX( N, RWORK( IRWORK ), 1 ) TMP = CONJG( VR( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) ) CALL ZSCAL( N, TMP, VR( 1, I ), 1 ) VR( K, I ) = DCMPLX( DBLE( VR( K, I ) ), ZERO ) 40 CONTINUE END IF * * Undo scaling if necessary * 50 CONTINUE IF( SCALEA ) THEN CALL ZLASCL( 'G', 0, 0, CSCALE, ANRM, N-INFO, 1, W( INFO+1 ), $ MAX( N-INFO, 1 ), IERR ) IF( INFO.GT.0 ) THEN CALL ZLASCL( 'G', 0, 0, CSCALE, ANRM, ILO-1, 1, W, N, IERR ) END IF END IF * WORK( 1 ) = MAXWRK RETURN * * End of ZGEEV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ilaenv.f0000644000000000000000000000013213543334726015207 xustar0030 mtime=1569569238.328645969 30 atime=1569569238.326645971 30 ctime=1569569238.328645969 elk-6.3.2/src/LAPACK/ilaenv.f0000644002504400250440000005021713543334726017263 0ustar00dewhurstdewhurst00000000000000*> \brief \b ILAENV * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ILAENV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) * * .. Scalar Arguments .. * CHARACTER*( * ) NAME, OPTS * INTEGER ISPEC, N1, N2, N3, N4 * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ILAENV is called from the LAPACK routines to choose problem-dependent *> parameters for the local environment. See ISPEC for a description of *> the parameters. *> *> ILAENV returns an INTEGER *> if ILAENV >= 0: ILAENV returns the value of the parameter specified by ISPEC *> if ILAENV < 0: if ILAENV = -k, the k-th argument had an illegal value. *> *> This version provides a set of parameters which should give good, *> but not optimal, performance on many of the currently available *> computers. Users are encouraged to modify this subroutine to set *> the tuning parameters for their particular machine using the option *> and problem size information in the arguments. *> *> This routine will not function correctly if it is converted to all *> lower case. Converting it to all upper case is allowed. *> \endverbatim * * Arguments: * ========== * *> \param[in] ISPEC *> \verbatim *> ISPEC is INTEGER *> Specifies the parameter to be returned as the value of *> ILAENV. *> = 1: the optimal blocksize; if this value is 1, an unblocked *> algorithm will give the best performance. *> = 2: the minimum block size for which the block routine *> should be used; if the usable block size is less than *> this value, an unblocked routine should be used. *> = 3: the crossover point (in a block routine, for N less *> than this value, an unblocked routine should be used) *> = 4: the number of shifts, used in the nonsymmetric *> eigenvalue routines (DEPRECATED) *> = 5: the minimum column dimension for blocking to be used; *> rectangular blocks must have dimension at least k by m, *> where k is given by ILAENV(2,...) and m by ILAENV(5,...) *> = 6: the crossover point for the SVD (when reducing an m by n *> matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds *> this value, a QR factorization is used first to reduce *> the matrix to a triangular form.) *> = 7: the number of processors *> = 8: the crossover point for the multishift QR method *> for nonsymmetric eigenvalue problems (DEPRECATED) *> = 9: maximum size of the subproblems at the bottom of the *> computation tree in the divide-and-conquer algorithm *> (used by xGELSD and xGESDD) *> =10: ieee NaN arithmetic can be trusted not to trap *> =11: infinity arithmetic can be trusted not to trap *> 12 <= ISPEC <= 16: *> xHSEQR or related subroutines, *> see IPARMQ for detailed explanation *> \endverbatim *> *> \param[in] NAME *> \verbatim *> NAME is CHARACTER*(*) *> The name of the calling subroutine, in either upper case or *> lower case. *> \endverbatim *> *> \param[in] OPTS *> \verbatim *> OPTS is CHARACTER*(*) *> The character options to the subroutine NAME, concatenated *> into a single character string. For example, UPLO = 'U', *> TRANS = 'T', and DIAG = 'N' for a triangular routine would *> be specified as OPTS = 'UTN'. *> \endverbatim *> *> \param[in] N1 *> \verbatim *> N1 is INTEGER *> \endverbatim *> *> \param[in] N2 *> \verbatim *> N2 is INTEGER *> \endverbatim *> *> \param[in] N3 *> \verbatim *> N3 is INTEGER *> \endverbatim *> *> \param[in] N4 *> \verbatim *> N4 is INTEGER *> Problem dimensions for the subroutine NAME; these may not all *> be required. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The following conventions have been used when calling ILAENV from the *> LAPACK routines: *> 1) OPTS is a concatenation of all of the character options to *> subroutine NAME, in the same order that they appear in the *> argument list for NAME, even if they are not used in determining *> the value of the parameter specified by ISPEC. *> 2) The problem dimensions N1, N2, N3, N4 are specified in the order *> that they appear in the argument list for NAME. N1 is used *> first, N2 second, and so on, and unused problem dimensions are *> passed a value of -1. *> 3) The parameter value returned by ILAENV is checked for validity in *> the calling subroutine. For example, ILAENV is used to retrieve *> the optimal blocksize for STRTRI as follows: *> *> NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 ) *> IF( NB.LE.1 ) NB = MAX( 1, N ) *> \endverbatim *> * ===================================================================== INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) * * -- LAPACK auxiliary routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. CHARACTER*( * ) NAME, OPTS INTEGER ISPEC, N1, N2, N3, N4 * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, IC, IZ, NB, NBMIN, NX LOGICAL CNAME, SNAME, TWOSTAGE CHARACTER C1*1, C2*2, C4*2, C3*3, SUBNAM*16 * .. * .. Intrinsic Functions .. INTRINSIC CHAR, ICHAR, INT, MIN, REAL * .. * .. External Functions .. INTEGER IEEECK, IPARMQ, IPARAM2STAGE EXTERNAL IEEECK, IPARMQ, IPARAM2STAGE * .. * .. Executable Statements .. * GO TO ( 10, 10, 10, 80, 90, 100, 110, 120, $ 130, 140, 150, 160, 160, 160, 160, 160)ISPEC * * Invalid value for ISPEC * ILAENV = -1 RETURN * 10 CONTINUE * * Convert NAME to upper case if the first character is lower case. * ILAENV = 1 SUBNAM = NAME IC = ICHAR( SUBNAM( 1: 1 ) ) IZ = ICHAR( 'Z' ) IF( IZ.EQ.90 .OR. IZ.EQ.122 ) THEN * * ASCII character set * IF( IC.GE.97 .AND. IC.LE.122 ) THEN SUBNAM( 1: 1 ) = CHAR( IC-32 ) DO 20 I = 2, 6 IC = ICHAR( SUBNAM( I: I ) ) IF( IC.GE.97 .AND. IC.LE.122 ) $ SUBNAM( I: I ) = CHAR( IC-32 ) 20 CONTINUE END IF * ELSE IF( IZ.EQ.233 .OR. IZ.EQ.169 ) THEN * * EBCDIC character set * IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) ) THEN SUBNAM( 1: 1 ) = CHAR( IC+64 ) DO 30 I = 2, 6 IC = ICHAR( SUBNAM( I: I ) ) IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) )SUBNAM( I: $ I ) = CHAR( IC+64 ) 30 CONTINUE END IF * ELSE IF( IZ.EQ.218 .OR. IZ.EQ.250 ) THEN * * Prime machines: ASCII+128 * IF( IC.GE.225 .AND. IC.LE.250 ) THEN SUBNAM( 1: 1 ) = CHAR( IC-32 ) DO 40 I = 2, 6 IC = ICHAR( SUBNAM( I: I ) ) IF( IC.GE.225 .AND. IC.LE.250 ) $ SUBNAM( I: I ) = CHAR( IC-32 ) 40 CONTINUE END IF END IF * C1 = SUBNAM( 1: 1 ) SNAME = C1.EQ.'S' .OR. C1.EQ.'D' CNAME = C1.EQ.'C' .OR. C1.EQ.'Z' IF( .NOT.( CNAME .OR. SNAME ) ) $ RETURN C2 = SUBNAM( 2: 3 ) C3 = SUBNAM( 4: 6 ) C4 = C3( 2: 3 ) TWOSTAGE = LEN( SUBNAM ).GE.11 $ .AND. SUBNAM( 11: 11 ).EQ.'2' * GO TO ( 50, 60, 70 )ISPEC * 50 CONTINUE * * ISPEC = 1: block size * * In these examples, separate code is provided for setting NB for * real and complex. We assume that NB will take the same value in * single or double precision. * NB = 1 * IF( C2.EQ.'GE' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN NB = 64 ELSE NB = 64 END IF ELSE IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. $ C3.EQ.'QLF' ) THEN IF( SNAME ) THEN NB = 32 ELSE NB = 32 END IF ELSE IF( C3.EQ.'QR ') THEN IF( N3 .EQ. 1) THEN IF( SNAME ) THEN * M*N IF ((N1*N2.LE.131072).OR.(N1.LE.8192)) THEN NB = N1 ELSE NB = 32768/N2 END IF ELSE IF ((N1*N2.LE.131072).OR.(N1.LE.8192)) THEN NB = N1 ELSE NB = 32768/N2 END IF END IF ELSE IF( SNAME ) THEN NB = 1 ELSE NB = 1 END IF END IF ELSE IF( C3.EQ.'LQ ') THEN IF( N3 .EQ. 2) THEN IF( SNAME ) THEN * M*N IF ((N1*N2.LE.131072).OR.(N1.LE.8192)) THEN NB = N1 ELSE NB = 32768/N2 END IF ELSE IF ((N1*N2.LE.131072).OR.(N1.LE.8192)) THEN NB = N1 ELSE NB = 32768/N2 END IF END IF ELSE IF( SNAME ) THEN NB = 1 ELSE NB = 1 END IF END IF ELSE IF( C3.EQ.'HRD' ) THEN IF( SNAME ) THEN NB = 32 ELSE NB = 32 END IF ELSE IF( C3.EQ.'BRD' ) THEN IF( SNAME ) THEN NB = 32 ELSE NB = 32 END IF ELSE IF( C3.EQ.'TRI' ) THEN IF( SNAME ) THEN NB = 64 ELSE NB = 64 END IF END IF ELSE IF( C2.EQ.'PO' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN NB = 64 ELSE NB = 64 END IF END IF ELSE IF( C2.EQ.'SY' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN IF( TWOSTAGE ) THEN NB = 192 ELSE NB = 64 END IF ELSE IF( TWOSTAGE ) THEN NB = 192 ELSE NB = 64 END IF END IF ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN NB = 32 ELSE IF( SNAME .AND. C3.EQ.'GST' ) THEN NB = 64 END IF ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN IF( C3.EQ.'TRF' ) THEN IF( TWOSTAGE ) THEN NB = 192 ELSE NB = 64 END IF ELSE IF( C3.EQ.'TRD' ) THEN NB = 32 ELSE IF( C3.EQ.'GST' ) THEN NB = 64 END IF ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN IF( C3( 1: 1 ).EQ.'G' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NB = 32 END IF ELSE IF( C3( 1: 1 ).EQ.'M' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NB = 32 END IF END IF ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN IF( C3( 1: 1 ).EQ.'G' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NB = 32 END IF ELSE IF( C3( 1: 1 ).EQ.'M' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NB = 32 END IF END IF ELSE IF( C2.EQ.'GB' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN IF( N4.LE.64 ) THEN NB = 1 ELSE NB = 32 END IF ELSE IF( N4.LE.64 ) THEN NB = 1 ELSE NB = 32 END IF END IF END IF ELSE IF( C2.EQ.'PB' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN IF( N2.LE.64 ) THEN NB = 1 ELSE NB = 32 END IF ELSE IF( N2.LE.64 ) THEN NB = 1 ELSE NB = 32 END IF END IF END IF ELSE IF( C2.EQ.'TR' ) THEN IF( C3.EQ.'TRI' ) THEN IF( SNAME ) THEN NB = 64 ELSE NB = 64 END IF ELSE IF ( C3.EQ.'EVC' ) THEN IF( SNAME ) THEN NB = 64 ELSE NB = 64 END IF END IF ELSE IF( C2.EQ.'LA' ) THEN IF( C3.EQ.'UUM' ) THEN IF( SNAME ) THEN NB = 64 ELSE NB = 64 END IF END IF ELSE IF( SNAME .AND. C2.EQ.'ST' ) THEN IF( C3.EQ.'EBZ' ) THEN NB = 1 END IF ELSE IF( C2.EQ.'GG' ) THEN NB = 32 IF( C3.EQ.'HD3' ) THEN IF( SNAME ) THEN NB = 32 ELSE NB = 32 END IF END IF END IF ILAENV = NB RETURN * 60 CONTINUE * * ISPEC = 2: minimum block size * NBMIN = 2 IF( C2.EQ.'GE' ) THEN IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. C3.EQ. $ 'QLF' ) THEN IF( SNAME ) THEN NBMIN = 2 ELSE NBMIN = 2 END IF ELSE IF( C3.EQ.'HRD' ) THEN IF( SNAME ) THEN NBMIN = 2 ELSE NBMIN = 2 END IF ELSE IF( C3.EQ.'BRD' ) THEN IF( SNAME ) THEN NBMIN = 2 ELSE NBMIN = 2 END IF ELSE IF( C3.EQ.'TRI' ) THEN IF( SNAME ) THEN NBMIN = 2 ELSE NBMIN = 2 END IF END IF ELSE IF( C2.EQ.'SY' ) THEN IF( C3.EQ.'TRF' ) THEN IF( SNAME ) THEN NBMIN = 8 ELSE NBMIN = 8 END IF ELSE IF( SNAME .AND. C3.EQ.'TRD' ) THEN NBMIN = 2 END IF ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN IF( C3.EQ.'TRD' ) THEN NBMIN = 2 END IF ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN IF( C3( 1: 1 ).EQ.'G' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NBMIN = 2 END IF ELSE IF( C3( 1: 1 ).EQ.'M' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NBMIN = 2 END IF END IF ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN IF( C3( 1: 1 ).EQ.'G' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NBMIN = 2 END IF ELSE IF( C3( 1: 1 ).EQ.'M' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NBMIN = 2 END IF END IF ELSE IF( C2.EQ.'GG' ) THEN NBMIN = 2 IF( C3.EQ.'HD3' ) THEN NBMIN = 2 END IF END IF ILAENV = NBMIN RETURN * 70 CONTINUE * * ISPEC = 3: crossover point * NX = 0 IF( C2.EQ.'GE' ) THEN IF( C3.EQ.'QRF' .OR. C3.EQ.'RQF' .OR. C3.EQ.'LQF' .OR. C3.EQ. $ 'QLF' ) THEN IF( SNAME ) THEN NX = 128 ELSE NX = 128 END IF ELSE IF( C3.EQ.'HRD' ) THEN IF( SNAME ) THEN NX = 128 ELSE NX = 128 END IF ELSE IF( C3.EQ.'BRD' ) THEN IF( SNAME ) THEN NX = 128 ELSE NX = 128 END IF END IF ELSE IF( C2.EQ.'SY' ) THEN IF( SNAME .AND. C3.EQ.'TRD' ) THEN NX = 32 END IF ELSE IF( CNAME .AND. C2.EQ.'HE' ) THEN IF( C3.EQ.'TRD' ) THEN NX = 32 END IF ELSE IF( SNAME .AND. C2.EQ.'OR' ) THEN IF( C3( 1: 1 ).EQ.'G' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NX = 128 END IF END IF ELSE IF( CNAME .AND. C2.EQ.'UN' ) THEN IF( C3( 1: 1 ).EQ.'G' ) THEN IF( C4.EQ.'QR' .OR. C4.EQ.'RQ' .OR. C4.EQ.'LQ' .OR. C4.EQ. $ 'QL' .OR. C4.EQ.'HR' .OR. C4.EQ.'TR' .OR. C4.EQ.'BR' ) $ THEN NX = 128 END IF END IF ELSE IF( C2.EQ.'GG' ) THEN NX = 128 IF( C3.EQ.'HD3' ) THEN NX = 128 END IF END IF ILAENV = NX RETURN * 80 CONTINUE * * ISPEC = 4: number of shifts (used by xHSEQR) * ILAENV = 6 RETURN * 90 CONTINUE * * ISPEC = 5: minimum column dimension (not used) * ILAENV = 2 RETURN * 100 CONTINUE * * ISPEC = 6: crossover point for SVD (used by xGELSS and xGESVD) * ILAENV = INT( REAL( MIN( N1, N2 ) )*1.6E0 ) RETURN * 110 CONTINUE * * ISPEC = 7: number of processors (not used) * ILAENV = 1 RETURN * 120 CONTINUE * * ISPEC = 8: crossover point for multishift (used by xHSEQR) * ILAENV = 50 RETURN * 130 CONTINUE * * ISPEC = 9: maximum size of the subproblems at the bottom of the * computation tree in the divide-and-conquer algorithm * (used by xGELSD and xGESDD) * ILAENV = 25 RETURN * 140 CONTINUE * * ISPEC = 10: ieee NaN arithmetic can be trusted not to trap * * ILAENV = 0 ILAENV = 1 IF( ILAENV.EQ.1 ) THEN ILAENV = IEEECK( 1, 0.0, 1.0 ) END IF RETURN * 150 CONTINUE * * ISPEC = 11: infinity arithmetic can be trusted not to trap * * ILAENV = 0 ILAENV = 1 IF( ILAENV.EQ.1 ) THEN ILAENV = IEEECK( 0, 0.0, 1.0 ) END IF RETURN * 160 CONTINUE * * 12 <= ISPEC <= 16: xHSEQR or related subroutines. * ILAENV = IPARMQ( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) RETURN * * End of ILAENV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/xerbla.f0000644000000000000000000000013213543334726015206 xustar0030 mtime=1569569238.332645967 30 atime=1569569238.331645967 30 ctime=1569569238.332645967 elk-6.3.2/src/LAPACK/xerbla.f0000644002504400250440000000503113543334726017254 0ustar00dewhurstdewhurst00000000000000*> \brief \b XERBLA * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download XERBLA + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE XERBLA( SRNAME, INFO ) * * .. Scalar Arguments .. * CHARACTER*(*) SRNAME * INTEGER INFO * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> XERBLA is an error handler for the LAPACK routines. *> It is called by an LAPACK routine if an input parameter has an *> invalid value. A message is printed and execution stops. *> *> Installers may consider modifying the STOP statement in order to *> call system-specific exception-handling facilities. *> \endverbatim * * Arguments: * ========== * *> \param[in] SRNAME *> \verbatim *> SRNAME is CHARACTER*(*) *> The name of the routine which called XERBLA. *> \endverbatim *> *> \param[in] INFO *> \verbatim *> INFO is INTEGER *> The position of the invalid parameter in the parameter list *> of the calling routine. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE XERBLA( SRNAME, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER*(*) SRNAME INTEGER INFO * .. * * ===================================================================== * * .. Intrinsic Functions .. INTRINSIC LEN_TRIM * .. * .. Executable Statements .. * WRITE( *, FMT = 9999 )SRNAME( 1:LEN_TRIM( SRNAME ) ), INFO * STOP * 9999 FORMAT( ' ** On entry to ', A, ' parameter number ', I2, ' had ', $ 'an illegal value' ) * * End of XERBLA * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zpptrf.f0000644000000000000000000000013213543334726015256 xustar0030 mtime=1569569238.337645964 30 atime=1569569238.335645965 30 ctime=1569569238.337645964 elk-6.3.2/src/LAPACK/zpptrf.f0000644002504400250440000001447613543334726017341 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZPPTRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZPPTRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZPPTRF( UPLO, N, AP, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, N * .. * .. Array Arguments .. * COMPLEX*16 AP( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZPPTRF computes the Cholesky factorization of a complex Hermitian *> positive definite matrix A stored in packed format. *> *> The factorization has the form *> A = U**H * U, if UPLO = 'U', or *> A = L * L**H, if UPLO = 'L', *> where U is an upper triangular matrix and L is lower triangular. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the Hermitian matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. *> See below for further details. *> *> On exit, if INFO = 0, the triangular factor U or L from the *> Cholesky factorization A = U**H*U or A = L*L**H, in the same *> storage format as A. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the leading minor of order i is not *> positive definite, and the factorization could not be *> completed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The packed storage scheme is illustrated by the following example *> when N = 4, UPLO = 'U': *> *> Two-dimensional storage of the Hermitian matrix A: *> *> a11 a12 a13 a14 *> a22 a23 a24 *> a33 a34 (aij = conjg(aji)) *> a44 *> *> Packed storage of the upper triangle of A: *> *> AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ] *> \endverbatim *> * ===================================================================== SUBROUTINE ZPPTRF( UPLO, N, AP, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, N * .. * .. Array Arguments .. COMPLEX*16 AP( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER J, JC, JJ DOUBLE PRECISION AJJ * .. * .. External Functions .. LOGICAL LSAME COMPLEX*16 ZDOTC EXTERNAL LSAME, ZDOTC * .. * .. External Subroutines .. EXTERNAL XERBLA, ZDSCAL, ZHPR, ZTPSV * .. * .. Intrinsic Functions .. INTRINSIC DBLE, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZPPTRF', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( UPPER ) THEN * * Compute the Cholesky factorization A = U**H * U. * JJ = 0 DO 10 J = 1, N JC = JJ + 1 JJ = JJ + J * * Compute elements 1:J-1 of column J. * IF( J.GT.1 ) $ CALL ZTPSV( 'Upper', 'Conjugate transpose', 'Non-unit', $ J-1, AP, AP( JC ), 1 ) * * Compute U(J,J) and test for non-positive-definiteness. * AJJ = DBLE( AP( JJ ) ) - ZDOTC( J-1, AP( JC ), 1, AP( JC ), $ 1 ) IF( AJJ.LE.ZERO ) THEN AP( JJ ) = AJJ GO TO 30 END IF AP( JJ ) = SQRT( AJJ ) 10 CONTINUE ELSE * * Compute the Cholesky factorization A = L * L**H. * JJ = 1 DO 20 J = 1, N * * Compute L(J,J) and test for non-positive-definiteness. * AJJ = DBLE( AP( JJ ) ) IF( AJJ.LE.ZERO ) THEN AP( JJ ) = AJJ GO TO 30 END IF AJJ = SQRT( AJJ ) AP( JJ ) = AJJ * * Compute elements J+1:N of column J and update the trailing * submatrix. * IF( J.LT.N ) THEN CALL ZDSCAL( N-J, ONE / AJJ, AP( JJ+1 ), 1 ) CALL ZHPR( 'Lower', N-J, -ONE, AP( JJ+1 ), 1, $ AP( JJ+N-J+1 ) ) JJ = JJ + N - J + 1 END IF 20 CONTINUE END IF GO TO 40 * 30 CONTINUE INFO = J * 40 CONTINUE RETURN * * End of ZPPTRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhpgst.f0000644000000000000000000000013213543334726015250 xustar0030 mtime=1569569238.341645961 30 atime=1569569238.340645962 30 ctime=1569569238.341645961 elk-6.3.2/src/LAPACK/zhpgst.f0000644002504400250440000002054213543334726017322 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHPGST * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHPGST + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHPGST( ITYPE, UPLO, N, AP, BP, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, ITYPE, N * .. * .. Array Arguments .. * COMPLEX*16 AP( * ), BP( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPGST reduces a complex Hermitian-definite generalized *> eigenproblem to standard form, using packed storage. *> *> If ITYPE = 1, the problem is A*x = lambda*B*x, *> and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H) *> *> If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or *> B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L. *> *> B must have been previously factorized as U**H*U or L*L**H by ZPPTRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); *> = 2 or 3: compute U*A*U**H or L**H*A*L. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored and B is factored as *> U**H*U; *> = 'L': Lower triangle of A is stored and B is factored as *> L*L**H. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the Hermitian matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. *> *> On exit, if INFO = 0, the transformed matrix, stored in the *> same format as A. *> \endverbatim *> *> \param[in] BP *> \verbatim *> BP is COMPLEX*16 array, dimension (N*(N+1)/2) *> The triangular factor from the Cholesky factorization of B, *> stored in the same format as A, as returned by ZPPTRF. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZHPGST( ITYPE, UPLO, N, AP, BP, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, ITYPE, N * .. * .. Array Arguments .. COMPLEX*16 AP( * ), BP( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, HALF PARAMETER ( ONE = 1.0D+0, HALF = 0.5D+0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER J, J1, J1J1, JJ, K, K1, K1K1, KK DOUBLE PRECISION AJJ, AKK, BJJ, BKK COMPLEX*16 CT * .. * .. External Subroutines .. EXTERNAL XERBLA, ZAXPY, ZDSCAL, ZHPMV, ZHPR2, ZTPMV, $ ZTPSV * .. * .. Intrinsic Functions .. INTRINSIC DBLE * .. * .. External Functions .. LOGICAL LSAME COMPLEX*16 ZDOTC EXTERNAL LSAME, ZDOTC * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHPGST', -INFO ) RETURN END IF * IF( ITYPE.EQ.1 ) THEN IF( UPPER ) THEN * * Compute inv(U**H)*A*inv(U) * * J1 and JJ are the indices of A(1,j) and A(j,j) * JJ = 0 DO 10 J = 1, N J1 = JJ + 1 JJ = JJ + J * * Compute the j-th column of the upper triangle of A * AP( JJ ) = DBLE( AP( JJ ) ) BJJ = BP( JJ ) CALL ZTPSV( UPLO, 'Conjugate transpose', 'Non-unit', J, $ BP, AP( J1 ), 1 ) CALL ZHPMV( UPLO, J-1, -CONE, AP, BP( J1 ), 1, CONE, $ AP( J1 ), 1 ) CALL ZDSCAL( J-1, ONE / BJJ, AP( J1 ), 1 ) AP( JJ ) = ( AP( JJ )-ZDOTC( J-1, AP( J1 ), 1, BP( J1 ), $ 1 ) ) / BJJ 10 CONTINUE ELSE * * Compute inv(L)*A*inv(L**H) * * KK and K1K1 are the indices of A(k,k) and A(k+1,k+1) * KK = 1 DO 20 K = 1, N K1K1 = KK + N - K + 1 * * Update the lower triangle of A(k:n,k:n) * AKK = AP( KK ) BKK = BP( KK ) AKK = AKK / BKK**2 AP( KK ) = AKK IF( K.LT.N ) THEN CALL ZDSCAL( N-K, ONE / BKK, AP( KK+1 ), 1 ) CT = -HALF*AKK CALL ZAXPY( N-K, CT, BP( KK+1 ), 1, AP( KK+1 ), 1 ) CALL ZHPR2( UPLO, N-K, -CONE, AP( KK+1 ), 1, $ BP( KK+1 ), 1, AP( K1K1 ) ) CALL ZAXPY( N-K, CT, BP( KK+1 ), 1, AP( KK+1 ), 1 ) CALL ZTPSV( UPLO, 'No transpose', 'Non-unit', N-K, $ BP( K1K1 ), AP( KK+1 ), 1 ) END IF KK = K1K1 20 CONTINUE END IF ELSE IF( UPPER ) THEN * * Compute U*A*U**H * * K1 and KK are the indices of A(1,k) and A(k,k) * KK = 0 DO 30 K = 1, N K1 = KK + 1 KK = KK + K * * Update the upper triangle of A(1:k,1:k) * AKK = AP( KK ) BKK = BP( KK ) CALL ZTPMV( UPLO, 'No transpose', 'Non-unit', K-1, BP, $ AP( K1 ), 1 ) CT = HALF*AKK CALL ZAXPY( K-1, CT, BP( K1 ), 1, AP( K1 ), 1 ) CALL ZHPR2( UPLO, K-1, CONE, AP( K1 ), 1, BP( K1 ), 1, $ AP ) CALL ZAXPY( K-1, CT, BP( K1 ), 1, AP( K1 ), 1 ) CALL ZDSCAL( K-1, BKK, AP( K1 ), 1 ) AP( KK ) = AKK*BKK**2 30 CONTINUE ELSE * * Compute L**H *A*L * * JJ and J1J1 are the indices of A(j,j) and A(j+1,j+1) * JJ = 1 DO 40 J = 1, N J1J1 = JJ + N - J + 1 * * Compute the j-th column of the lower triangle of A * AJJ = AP( JJ ) BJJ = BP( JJ ) AP( JJ ) = AJJ*BJJ + ZDOTC( N-J, AP( JJ+1 ), 1, $ BP( JJ+1 ), 1 ) CALL ZDSCAL( N-J, BJJ, AP( JJ+1 ), 1 ) CALL ZHPMV( UPLO, N-J, CONE, AP( J1J1 ), BP( JJ+1 ), 1, $ CONE, AP( JJ+1 ), 1 ) CALL ZTPMV( UPLO, 'Conjugate transpose', 'Non-unit', $ N-J+1, BP( JJ ), AP( JJ ), 1 ) JJ = J1J1 40 CONTINUE END IF END IF RETURN * * End of ZHPGST * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhpevx.f0000644000000000000000000000013213543334726015255 xustar0030 mtime=1569569238.346645958 30 atime=1569569238.344645959 30 ctime=1569569238.346645958 elk-6.3.2/src/LAPACK/zhpevx.f0000644002504400250440000003762713543334726017343 0ustar00dewhurstdewhurst00000000000000*> \brief ZHPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHPEVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, * ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, * IFAIL, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, IU, LDZ, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 AP( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPEVX computes selected eigenvalues and, optionally, eigenvectors *> of a complex Hermitian matrix A in packed storage. *> Eigenvalues/vectors can be selected by specifying either a range of *> values or a range of indices for the desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found; *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found; *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the Hermitian matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *> *> On exit, AP is overwritten by values generated during the *> reduction to tridiagonal form. If UPLO = 'U', the diagonal *> and first superdiagonal of the tridiagonal matrix T overwrite *> the corresponding elements of A, and if UPLO = 'L', the *> diagonal and first subdiagonal of T overwrite the *> corresponding elements of A. *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing AP to tridiagonal form. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> *> See "Computing Small Singular Values of Bidiagonal Matrices *> with Guaranteed High Relative Accuracy," by Demmel and *> Kahan, LAPACK Working Note #3. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the selected eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ, max(1,M)) *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and *> the index of the eigenvector is returned in IFAIL. *> If JOBZ = 'N', then Z is not referenced. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (2*N) *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (7*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, then i eigenvectors failed to converge. *> Their indices are stored in array IFAIL. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHEReigen * * ===================================================================== SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, $ ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, $ IFAIL, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, IU, LDZ, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 AP( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D0, 0.0D0 ) ) * .. * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, $ INDISP, INDIWK, INDRWK, INDTAU, INDWRK, ISCALE, $ ITMP1, J, JJ, NSPLIT DOUBLE PRECISION ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, $ SIGMA, SMLNUM, TMP1, VLL, VUU * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH, ZLANHP EXTERNAL LSAME, DLAMCH, ZLANHP * .. * .. External Subroutines .. EXTERNAL DCOPY, DSCAL, DSTEBZ, DSTERF, XERBLA, ZDSCAL, $ ZHPTRD, ZSTEIN, ZSTEQR, ZSWAP, ZUPGTR, ZUPMTR * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -2 ELSE IF( .NOT.( LSAME( UPLO, 'L' ) .OR. LSAME( UPLO, 'U' ) ) ) $ THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) $ INFO = -7 ELSE IF( INDEIG ) THEN IF( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) THEN INFO = -8 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -9 END IF END IF END IF IF( INFO.EQ.0 ) THEN IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.N ) ) $ INFO = -14 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHPEVX', -INFO ) RETURN END IF * * Quick return if possible * M = 0 IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN IF( ALLEIG .OR. INDEIG ) THEN M = 1 W( 1 ) = AP( 1 ) ELSE IF( VL.LT.DBLE( AP( 1 ) ) .AND. VU.GE.DBLE( AP( 1 ) ) ) THEN M = 1 W( 1 ) = AP( 1 ) END IF END IF IF( WANTZ ) $ Z( 1, 1 ) = CONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = MIN( SQRT( BIGNUM ), ONE / SQRT( SQRT( SAFMIN ) ) ) * * Scale matrix to allowable range, if necessary. * ISCALE = 0 ABSTLL = ABSTOL IF( VALEIG ) THEN VLL = VL VUU = VU ELSE VLL = ZERO VUU = ZERO END IF ANRM = ZLANHP( 'M', UPLO, N, AP, RWORK ) IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) THEN CALL ZDSCAL( ( N*( N+1 ) ) / 2, SIGMA, AP, 1 ) IF( ABSTOL.GT.0 ) $ ABSTLL = ABSTOL*SIGMA IF( VALEIG ) THEN VLL = VL*SIGMA VUU = VU*SIGMA END IF END IF * * Call ZHPTRD to reduce Hermitian packed matrix to tridiagonal form. * INDD = 1 INDE = INDD + N INDRWK = INDE + N INDTAU = 1 INDWRK = INDTAU + N CALL ZHPTRD( UPLO, N, AP, RWORK( INDD ), RWORK( INDE ), $ WORK( INDTAU ), IINFO ) * * If all eigenvalues are desired and ABSTOL is less than or equal * to zero, then call DSTERF or ZUPGTR and ZSTEQR. If this fails * for some eigenvalue, then try DSTEBZ. * TEST = .FALSE. IF (INDEIG) THEN IF (IL.EQ.1 .AND. IU.EQ.N) THEN TEST = .TRUE. END IF END IF IF ((ALLEIG .OR. TEST) .AND. (ABSTOL.LE.ZERO)) THEN CALL DCOPY( N, RWORK( INDD ), 1, W, 1 ) INDEE = INDRWK + 2*N IF( .NOT.WANTZ ) THEN CALL DCOPY( N-1, RWORK( INDE ), 1, RWORK( INDEE ), 1 ) CALL DSTERF( N, W, RWORK( INDEE ), INFO ) ELSE CALL ZUPGTR( UPLO, N, AP, WORK( INDTAU ), Z, LDZ, $ WORK( INDWRK ), IINFO ) CALL DCOPY( N-1, RWORK( INDE ), 1, RWORK( INDEE ), 1 ) CALL ZSTEQR( JOBZ, N, W, RWORK( INDEE ), Z, LDZ, $ RWORK( INDRWK ), INFO ) IF( INFO.EQ.0 ) THEN DO 10 I = 1, N IFAIL( I ) = 0 10 CONTINUE END IF END IF IF( INFO.EQ.0 ) THEN M = N GO TO 20 END IF INFO = 0 END IF * * Otherwise, call DSTEBZ and, if eigenvectors are desired, ZSTEIN. * IF( WANTZ ) THEN ORDER = 'B' ELSE ORDER = 'E' END IF INDIBL = 1 INDISP = INDIBL + N INDIWK = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ RWORK( INDD ), RWORK( INDE ), M, NSPLIT, W, $ IWORK( INDIBL ), IWORK( INDISP ), RWORK( INDRWK ), $ IWORK( INDIWK ), INFO ) * IF( WANTZ ) THEN CALL ZSTEIN( N, RWORK( INDD ), RWORK( INDE ), M, W, $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, $ RWORK( INDRWK ), IWORK( INDIWK ), IFAIL, INFO ) * * Apply unitary matrix used in reduction to tridiagonal * form to eigenvectors returned by ZSTEIN. * INDWRK = INDTAU + N CALL ZUPMTR( 'L', UPLO, 'N', N, M, AP, WORK( INDTAU ), Z, LDZ, $ WORK( INDWRK ), IINFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * 20 CONTINUE IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = M ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * * If eigenvalues are not in order, then sort them, along with * eigenvectors. * IF( WANTZ ) THEN DO 40 J = 1, M - 1 I = 0 TMP1 = W( J ) DO 30 JJ = J + 1, M IF( W( JJ ).LT.TMP1 ) THEN I = JJ TMP1 = W( JJ ) END IF 30 CONTINUE * IF( I.NE.0 ) THEN ITMP1 = IWORK( INDIBL+I-1 ) W( I ) = W( J ) IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) W( J ) = TMP1 IWORK( INDIBL+J-1 ) = ITMP1 CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) IFAIL( I ) = IFAIL( J ) IFAIL( J ) = ITMP1 END IF END IF 40 CONTINUE END IF * RETURN * * End of ZHPEVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgetrs.f0000644000000000000000000000013213543334726015221 xustar0030 mtime=1569569238.351645955 30 atime=1569569238.349645956 30 ctime=1569569238.351645955 elk-6.3.2/src/LAPACK/dgetrs.f0000644002504400250440000001356413543334726017301 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGETRS * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGETRS + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * .. Scalar Arguments .. * CHARACTER TRANS * INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. * INTEGER IPIV( * ) * DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGETRS solves a system of linear equations *> A * X = B or A**T * X = B *> with a general N-by-N matrix A using the LU factorization computed *> by DGETRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> Specifies the form of the system of equations: *> = 'N': A * X = B (No transpose) *> = 'T': A**T* X = B (Transpose) *> = 'C': A**T* X = B (Conjugate transpose = Transpose) *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] NRHS *> \verbatim *> NRHS is INTEGER *> The number of right hand sides, i.e., the number of columns *> of the matrix B. NRHS >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The factors L and U from the factorization A = P*L*U *> as computed by DGETRF. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices from DGETRF; for 1<=i<=N, row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB,NRHS) *> On entry, the right hand side matrix B. *> On exit, the solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * * ===================================================================== SUBROUTINE DGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER TRANS INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL NOTRAN * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DLASWP, DTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 NOTRAN = LSAME( TRANS, 'N' ) IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) .AND. .NOT. $ LSAME( TRANS, 'C' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( NRHS.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGETRS', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. NRHS.EQ.0 ) $ RETURN * IF( NOTRAN ) THEN * * Solve A * X = B. * * Apply row interchanges to the right hand sides. * CALL DLASWP( NRHS, B, LDB, 1, N, IPIV, 1 ) * * Solve L*X = B, overwriting B with X. * CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', N, NRHS, $ ONE, A, LDA, B, LDB ) * * Solve U*X = B, overwriting B with X. * CALL DTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', N, $ NRHS, ONE, A, LDA, B, LDB ) ELSE * * Solve A**T * X = B. * * Solve U**T *X = B, overwriting B with X. * CALL DTRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', N, NRHS, $ ONE, A, LDA, B, LDB ) * * Solve L**T *X = B, overwriting B with X. * CALL DTRSM( 'Left', 'Lower', 'Transpose', 'Unit', N, NRHS, ONE, $ A, LDA, B, LDB ) * * Apply row interchanges to the solution vectors. * CALL DLASWP( NRHS, B, LDB, 1, N, IPIV, -1 ) END IF * RETURN * * End of DGETRS * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgetrf2.f0000644000000000000000000000013213543334726015266 xustar0030 mtime=1569569238.355645952 30 atime=1569569238.354645953 30 ctime=1569569238.355645952 elk-6.3.2/src/LAPACK/dgetrf2.f0000644002504400250440000001560213543334726017341 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGETRF2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * RECURSIVE SUBROUTINE DGETRF2( M, N, A, LDA, IPIV, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGETRF2 computes an LU factorization of a general M-by-N matrix A *> using partial pivoting with row interchanges. *> *> The factorization has the form *> A = P * L * U *> where P is a permutation matrix, L is lower triangular with unit *> diagonal elements (lower trapezoidal if m > n), and U is upper *> triangular (upper trapezoidal if m < n). *> *> This is the recursive version of the algorithm. It divides *> the matrix into four submatrices: *> *> [ A11 | A12 ] where A11 is n1 by n1 and A22 is n2 by n2 *> A = [ -----|----- ] with n1 = min(m,n)/2 *> [ A21 | A22 ] n2 = n-n1 *> *> [ A11 ] *> The subroutine calls itself to factor [ --- ], *> [ A12 ] *> [ A12 ] *> do the swaps on [ --- ], solve A12, update A22, *> [ A22 ] *> *> then calls itself to factor A22 and do the swaps on A21. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the M-by-N matrix to be factored. *> On exit, the factors L and U from the factorization *> A = P*L*U; the unit diagonal elements of L are not stored. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (min(M,N)) *> The pivot indices; for 1 <= i <= min(M,N), row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and division by zero will occur if it is used *> to solve a system of equations. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup doubleGEcomputational * * ===================================================================== RECURSIVE SUBROUTINE DGETRF2( M, N, A, LDA, IPIV, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. DOUBLE PRECISION SFMIN, TEMP INTEGER I, IINFO, N1, N2 * .. * .. External Functions .. DOUBLE PRECISION DLAMCH INTEGER IDAMAX EXTERNAL DLAMCH, IDAMAX * .. * .. External Subroutines .. EXTERNAL DGEMM, DSCAL, DLASWP, DTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGETRF2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN IF ( M.EQ.1 ) THEN * * Use unblocked code for one row case * Just need to handle IPIV and INFO * IPIV( 1 ) = 1 IF ( A(1,1).EQ.ZERO ) $ INFO = 1 * ELSE IF( N.EQ.1 ) THEN * * Use unblocked code for one column case * * * Compute machine safe minimum * SFMIN = DLAMCH('S') * * Find pivot and test for singularity * I = IDAMAX( M, A( 1, 1 ), 1 ) IPIV( 1 ) = I IF( A( I, 1 ).NE.ZERO ) THEN * * Apply the interchange * IF( I.NE.1 ) THEN TEMP = A( 1, 1 ) A( 1, 1 ) = A( I, 1 ) A( I, 1 ) = TEMP END IF * * Compute elements 2:M of the column * IF( ABS(A( 1, 1 )) .GE. SFMIN ) THEN CALL DSCAL( M-1, ONE / A( 1, 1 ), A( 2, 1 ), 1 ) ELSE DO 10 I = 1, M-1 A( 1+I, 1 ) = A( 1+I, 1 ) / A( 1, 1 ) 10 CONTINUE END IF * ELSE INFO = 1 END IF * ELSE * * Use recursive code * N1 = MIN( M, N ) / 2 N2 = N-N1 * * [ A11 ] * Factor [ --- ] * [ A21 ] * CALL DGETRF2( M, N1, A, LDA, IPIV, IINFO ) IF ( INFO.EQ.0 .AND. IINFO.GT.0 ) $ INFO = IINFO * * [ A12 ] * Apply interchanges to [ --- ] * [ A22 ] * CALL DLASWP( N2, A( 1, N1+1 ), LDA, 1, N1, IPIV, 1 ) * * Solve A12 * CALL DTRSM( 'L', 'L', 'N', 'U', N1, N2, ONE, A, LDA, $ A( 1, N1+1 ), LDA ) * * Update A22 * CALL DGEMM( 'N', 'N', M-N1, N2, N1, -ONE, A( N1+1, 1 ), LDA, $ A( 1, N1+1 ), LDA, ONE, A( N1+1, N1+1 ), LDA ) * * Factor A22 * CALL DGETRF2( M-N1, N2, A( N1+1, N1+1 ), LDA, IPIV( N1+1 ), $ IINFO ) * * Adjust INFO and the pivot indices * IF ( INFO.EQ.0 .AND. IINFO.GT.0 ) $ INFO = IINFO + N1 DO 20 I = N1+1, MIN( M, N ) IPIV( I ) = IPIV( I ) + N1 20 CONTINUE * * Apply interchanges to A21 * CALL DLASWP( N1, A( 1, 1 ), LDA, N1+1, MIN( M, N), IPIV, 1 ) * END IF RETURN * * End of DGETRF2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaswp.f0000644000000000000000000000012713543334726015227 xustar0029 mtime=1569569238.35964595 29 atime=1569569238.35864595 29 ctime=1569569238.35964595 elk-6.3.2/src/LAPACK/dlaswp.f0000644002504400250440000001201013543334726017264 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASWP performs a series of row interchanges on a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASWP + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASWP( N, A, LDA, K1, K2, IPIV, INCX ) * * .. Scalar Arguments .. * INTEGER INCX, K1, K2, LDA, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASWP performs a series of row interchanges on the matrix A. *> One row interchange is initiated for each of rows K1 through K2 of A. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the matrix of column dimension N to which the row *> interchanges will be applied. *> On exit, the permuted matrix. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> \endverbatim *> *> \param[in] K1 *> \verbatim *> K1 is INTEGER *> The first element of IPIV for which a row interchange will *> be done. *> \endverbatim *> *> \param[in] K2 *> \verbatim *> K2 is INTEGER *> (K2-K1+1) is the number of elements of IPIV for which a row *> interchange will be done. *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX)) *> The vector of pivot indices. Only the elements in positions *> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed. *> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be *> interchanged. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between successive values of IPIV. If INCX *> is negative, the pivots are applied in reverse order. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup doubleOTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Modified by *> R. C. Whaley, Computer Science Dept., Univ. of Tenn., Knoxville, USA *> \endverbatim *> * ===================================================================== SUBROUTINE DLASWP( N, A, LDA, K1, K2, IPIV, INCX ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER INCX, K1, K2, LDA, N * .. * .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, I1, I2, INC, IP, IX, IX0, J, K, N32 DOUBLE PRECISION TEMP * .. * .. Executable Statements .. * * Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows * K1 through K2. * IF( INCX.GT.0 ) THEN IX0 = K1 I1 = K1 I2 = K2 INC = 1 ELSE IF( INCX.LT.0 ) THEN IX0 = K1 + ( K1-K2 )*INCX I1 = K2 I2 = K1 INC = -1 ELSE RETURN END IF * N32 = ( N / 32 )*32 IF( N32.NE.0 ) THEN DO 30 J = 1, N32, 32 IX = IX0 DO 20 I = I1, I2, INC IP = IPIV( IX ) IF( IP.NE.I ) THEN DO 10 K = J, J + 31 TEMP = A( I, K ) A( I, K ) = A( IP, K ) A( IP, K ) = TEMP 10 CONTINUE END IF IX = IX + INCX 20 CONTINUE 30 CONTINUE END IF IF( N32.NE.N ) THEN N32 = N32 + 1 IX = IX0 DO 50 I = I1, I2, INC IP = IPIV( IX ) IF( IP.NE.I ) THEN DO 40 K = N32, N TEMP = A( I, K ) A( I, K ) = A( IP, K ) A( IP, K ) = TEMP 40 CONTINUE END IF IX = IX + INCX 50 CONTINUE END IF * RETURN * * End of DLASWP * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dtrtri.f0000644000000000000000000000013213543334726015241 xustar0030 mtime=1569569238.364645946 30 atime=1569569238.362645948 30 ctime=1569569238.364645946 elk-6.3.2/src/LAPACK/dtrtri.f0000644002504400250440000001536713543334726017324 0ustar00dewhurstdewhurst00000000000000*> \brief \b DTRTRI * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DTRTRI + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DTRTRI( UPLO, DIAG, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER DIAG, UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DTRTRI computes the inverse of a real upper or lower triangular *> matrix A. *> *> This is the Level 3 BLAS version of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': A is upper triangular; *> = 'L': A is lower triangular. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> = 'N': A is non-unit triangular; *> = 'U': A is unit triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the triangular matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of the array A contains *> the upper triangular matrix, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of the array A contains *> the lower triangular matrix, and the strictly upper *> triangular part of A is not referenced. If DIAG = 'U', the *> diagonal elements of A are also not referenced and are *> assumed to be 1. *> On exit, the (triangular) inverse of the original matrix, in *> the same storage format. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, A(i,i) is exactly zero. The triangular *> matrix is singular and its inverse can not be computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DTRTRI( UPLO, DIAG, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIAG, UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. LOGICAL NOUNIT, UPPER INTEGER J, JB, NB, NN * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DTRMM, DTRSM, DTRTI2, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) NOUNIT = LSAME( DIAG, 'N' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( .NOT.NOUNIT .AND. .NOT.LSAME( DIAG, 'U' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DTRTRI', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Check for singularity if non-unit. * IF( NOUNIT ) THEN DO 10 INFO = 1, N IF( A( INFO, INFO ).EQ.ZERO ) $ RETURN 10 CONTINUE INFO = 0 END IF * * Determine the block size for this environment. * NB = ILAENV( 1, 'DTRTRI', UPLO // DIAG, N, -1, -1, -1 ) IF( NB.LE.1 .OR. NB.GE.N ) THEN * * Use unblocked code * CALL DTRTI2( UPLO, DIAG, N, A, LDA, INFO ) ELSE * * Use blocked code * IF( UPPER ) THEN * * Compute inverse of upper triangular matrix * DO 20 J = 1, N, NB JB = MIN( NB, N-J+1 ) * * Compute rows 1:j-1 of current block column * CALL DTRMM( 'Left', 'Upper', 'No transpose', DIAG, J-1, $ JB, ONE, A, LDA, A( 1, J ), LDA ) CALL DTRSM( 'Right', 'Upper', 'No transpose', DIAG, J-1, $ JB, -ONE, A( J, J ), LDA, A( 1, J ), LDA ) * * Compute inverse of current diagonal block * CALL DTRTI2( 'Upper', DIAG, JB, A( J, J ), LDA, INFO ) 20 CONTINUE ELSE * * Compute inverse of lower triangular matrix * NN = ( ( N-1 ) / NB )*NB + 1 DO 30 J = NN, 1, -NB JB = MIN( NB, N-J+1 ) IF( J+JB.LE.N ) THEN * * Compute rows j+jb:n of current block column * CALL DTRMM( 'Left', 'Lower', 'No transpose', DIAG, $ N-J-JB+1, JB, ONE, A( J+JB, J+JB ), LDA, $ A( J+JB, J ), LDA ) CALL DTRSM( 'Right', 'Lower', 'No transpose', DIAG, $ N-J-JB+1, JB, -ONE, A( J, J ), LDA, $ A( J+JB, J ), LDA ) END IF * * Compute inverse of current diagonal block * CALL DTRTI2( 'Lower', DIAG, JB, A( J, J ), LDA, INFO ) 30 CONTINUE END IF END IF * RETURN * * End of DTRTRI * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlansy.f0000644000000000000000000000013213543334726015223 xustar0030 mtime=1569569238.368645944 30 atime=1569569238.366645945 30 ctime=1569569238.368645944 elk-6.3.2/src/LAPACK/dlansy.f0000644002504400250440000001631713543334726017302 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real symmetric matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLANSY + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DLANSY( NORM, UPLO, N, A, LDA, WORK ) * * .. Scalar Arguments .. * CHARACTER NORM, UPLO * INTEGER LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLANSY returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> real symmetric matrix A. *> \endverbatim *> *> \return DLANSY *> \verbatim *> *> DLANSY = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in DLANSY as described *> above. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> symmetric matrix A is to be referenced. *> = 'U': Upper triangular part of A is referenced *> = 'L': Lower triangular part of A is referenced *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. When N = 0, DLANSY is *> set to zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The symmetric matrix A. If UPLO = 'U', the leading n by n *> upper triangular part of A contains the upper triangular part *> of the matrix A, and the strictly lower triangular part of A *> is not referenced. If UPLO = 'L', the leading n by n lower *> triangular part of A contains the lower triangular part of *> the matrix A, and the strictly upper triangular part of A is *> not referenced. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(N,1). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), *> where LWORK >= N when NORM = 'I' or '1' or 'O'; otherwise, *> WORK is not referenced. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleSYauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION DLANSY( NORM, UPLO, N, A, LDA, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM, UPLO INTEGER LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J DOUBLE PRECISION ABSA, SCALE, SUM, VALUE * .. * .. External Subroutines .. EXTERNAL DLASSQ * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, SQRT * .. * .. Executable Statements .. * IF( N.EQ.0 ) THEN VALUE = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * VALUE = ZERO IF( LSAME( UPLO, 'U' ) ) THEN DO 20 J = 1, N DO 10 I = 1, J SUM = ABS( A( I, J ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 10 CONTINUE 20 CONTINUE ELSE DO 40 J = 1, N DO 30 I = J, N SUM = ABS( A( I, J ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 30 CONTINUE 40 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'I' ) ) .OR. ( LSAME( NORM, 'O' ) ) .OR. $ ( NORM.EQ.'1' ) ) THEN * * Find normI(A) ( = norm1(A), since A is symmetric). * VALUE = ZERO IF( LSAME( UPLO, 'U' ) ) THEN DO 60 J = 1, N SUM = ZERO DO 50 I = 1, J - 1 ABSA = ABS( A( I, J ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA 50 CONTINUE WORK( J ) = SUM + ABS( A( J, J ) ) 60 CONTINUE DO 70 I = 1, N SUM = WORK( I ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 70 CONTINUE ELSE DO 80 I = 1, N WORK( I ) = ZERO 80 CONTINUE DO 100 J = 1, N SUM = WORK( J ) + ABS( A( J, J ) ) DO 90 I = J + 1, N ABSA = ABS( A( I, J ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA 90 CONTINUE IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 100 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE IF( LSAME( UPLO, 'U' ) ) THEN DO 110 J = 2, N CALL DLASSQ( J-1, A( 1, J ), 1, SCALE, SUM ) 110 CONTINUE ELSE DO 120 J = 1, N - 1 CALL DLASSQ( N-J, A( J+1, J ), 1, SCALE, SUM ) 120 CONTINUE END IF SUM = 2*SUM CALL DLASSQ( N, A, LDA+1, SCALE, SUM ) VALUE = SCALE*SQRT( SUM ) END IF * DLANSY = VALUE RETURN * * End of DLANSY * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlascl.f0000644000000000000000000000013213543334726015173 xustar0030 mtime=1569569238.372645941 30 atime=1569569238.371645942 30 ctime=1569569238.372645941 elk-6.3.2/src/LAPACK/dlascl.f0000644002504400250440000002342713543334726017252 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASCL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASCL( TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER TYPE * INTEGER INFO, KL, KU, LDA, M, N * DOUBLE PRECISION CFROM, CTO * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASCL multiplies the M by N real matrix A by the real scalar *> CTO/CFROM. This is done without over/underflow as long as the final *> result CTO*A(I,J)/CFROM does not over/underflow. TYPE specifies that *> A may be full, upper triangular, lower triangular, upper Hessenberg, *> or banded. *> \endverbatim * * Arguments: * ========== * *> \param[in] TYPE *> \verbatim *> TYPE is CHARACTER*1 *> TYPE indices the storage type of the input matrix. *> = 'G': A is a full matrix. *> = 'L': A is a lower triangular matrix. *> = 'U': A is an upper triangular matrix. *> = 'H': A is an upper Hessenberg matrix. *> = 'B': A is a symmetric band matrix with lower bandwidth KL *> and upper bandwidth KU and with the only the lower *> half stored. *> = 'Q': A is a symmetric band matrix with lower bandwidth KL *> and upper bandwidth KU and with the only the upper *> half stored. *> = 'Z': A is a band matrix with lower bandwidth KL and upper *> bandwidth KU. See DGBTRF for storage details. *> \endverbatim *> *> \param[in] KL *> \verbatim *> KL is INTEGER *> The lower bandwidth of A. Referenced only if TYPE = 'B', *> 'Q' or 'Z'. *> \endverbatim *> *> \param[in] KU *> \verbatim *> KU is INTEGER *> The upper bandwidth of A. Referenced only if TYPE = 'B', *> 'Q' or 'Z'. *> \endverbatim *> *> \param[in] CFROM *> \verbatim *> CFROM is DOUBLE PRECISION *> \endverbatim *> *> \param[in] CTO *> \verbatim *> CTO is DOUBLE PRECISION *> *> The matrix A is multiplied by CTO/CFROM. A(I,J) is computed *> without over/underflow if the final result CTO*A(I,J)/CFROM *> can be represented without over/underflow. CFROM must be *> nonzero. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The matrix to be multiplied by CTO/CFROM. See TYPE for the *> storage type. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If TYPE = 'G', 'L', 'U', 'H', LDA >= max(1,M); *> TYPE = 'B', LDA >= KL+1; *> TYPE = 'Q', LDA >= KU+1; *> TYPE = 'Z', LDA >= 2*KL+KU+1. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> 0 - successful exit *> <0 - if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLASCL( TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER TYPE INTEGER INFO, KL, KU, LDA, M, N DOUBLE PRECISION CFROM, CTO * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL DONE INTEGER I, ITYPE, J, K1, K2, K3, K4 DOUBLE PRECISION BIGNUM, CFROM1, CFROMC, CTO1, CTOC, MUL, SMLNUM * .. * .. External Functions .. LOGICAL LSAME, DISNAN DOUBLE PRECISION DLAMCH EXTERNAL LSAME, DLAMCH, DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 * IF( LSAME( TYPE, 'G' ) ) THEN ITYPE = 0 ELSE IF( LSAME( TYPE, 'L' ) ) THEN ITYPE = 1 ELSE IF( LSAME( TYPE, 'U' ) ) THEN ITYPE = 2 ELSE IF( LSAME( TYPE, 'H' ) ) THEN ITYPE = 3 ELSE IF( LSAME( TYPE, 'B' ) ) THEN ITYPE = 4 ELSE IF( LSAME( TYPE, 'Q' ) ) THEN ITYPE = 5 ELSE IF( LSAME( TYPE, 'Z' ) ) THEN ITYPE = 6 ELSE ITYPE = -1 END IF * IF( ITYPE.EQ.-1 ) THEN INFO = -1 ELSE IF( CFROM.EQ.ZERO .OR. DISNAN(CFROM) ) THEN INFO = -4 ELSE IF( DISNAN(CTO) ) THEN INFO = -5 ELSE IF( M.LT.0 ) THEN INFO = -6 ELSE IF( N.LT.0 .OR. ( ITYPE.EQ.4 .AND. N.NE.M ) .OR. $ ( ITYPE.EQ.5 .AND. N.NE.M ) ) THEN INFO = -7 ELSE IF( ITYPE.LE.3 .AND. LDA.LT.MAX( 1, M ) ) THEN INFO = -9 ELSE IF( ITYPE.GE.4 ) THEN IF( KL.LT.0 .OR. KL.GT.MAX( M-1, 0 ) ) THEN INFO = -2 ELSE IF( KU.LT.0 .OR. KU.GT.MAX( N-1, 0 ) .OR. $ ( ( ITYPE.EQ.4 .OR. ITYPE.EQ.5 ) .AND. KL.NE.KU ) ) $ THEN INFO = -3 ELSE IF( ( ITYPE.EQ.4 .AND. LDA.LT.KL+1 ) .OR. $ ( ITYPE.EQ.5 .AND. LDA.LT.KU+1 ) .OR. $ ( ITYPE.EQ.6 .AND. LDA.LT.2*KL+KU+1 ) ) THEN INFO = -9 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLASCL', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. M.EQ.0 ) $ RETURN * * Get machine parameters * SMLNUM = DLAMCH( 'S' ) BIGNUM = ONE / SMLNUM * CFROMC = CFROM CTOC = CTO * 10 CONTINUE CFROM1 = CFROMC*SMLNUM IF( CFROM1.EQ.CFROMC ) THEN ! CFROMC is an inf. Multiply by a correctly signed zero for ! finite CTOC, or a NaN if CTOC is infinite. MUL = CTOC / CFROMC DONE = .TRUE. CTO1 = CTOC ELSE CTO1 = CTOC / BIGNUM IF( CTO1.EQ.CTOC ) THEN ! CTOC is either 0 or an inf. In both cases, CTOC itself ! serves as the correct multiplication factor. MUL = CTOC DONE = .TRUE. CFROMC = ONE ELSE IF( ABS( CFROM1 ).GT.ABS( CTOC ) .AND. CTOC.NE.ZERO ) THEN MUL = SMLNUM DONE = .FALSE. CFROMC = CFROM1 ELSE IF( ABS( CTO1 ).GT.ABS( CFROMC ) ) THEN MUL = BIGNUM DONE = .FALSE. CTOC = CTO1 ELSE MUL = CTOC / CFROMC DONE = .TRUE. END IF END IF * IF( ITYPE.EQ.0 ) THEN * * Full matrix * DO 30 J = 1, N DO 20 I = 1, M A( I, J ) = A( I, J )*MUL 20 CONTINUE 30 CONTINUE * ELSE IF( ITYPE.EQ.1 ) THEN * * Lower triangular matrix * DO 50 J = 1, N DO 40 I = J, M A( I, J ) = A( I, J )*MUL 40 CONTINUE 50 CONTINUE * ELSE IF( ITYPE.EQ.2 ) THEN * * Upper triangular matrix * DO 70 J = 1, N DO 60 I = 1, MIN( J, M ) A( I, J ) = A( I, J )*MUL 60 CONTINUE 70 CONTINUE * ELSE IF( ITYPE.EQ.3 ) THEN * * Upper Hessenberg matrix * DO 90 J = 1, N DO 80 I = 1, MIN( J+1, M ) A( I, J ) = A( I, J )*MUL 80 CONTINUE 90 CONTINUE * ELSE IF( ITYPE.EQ.4 ) THEN * * Lower half of a symmetric band matrix * K3 = KL + 1 K4 = N + 1 DO 110 J = 1, N DO 100 I = 1, MIN( K3, K4-J ) A( I, J ) = A( I, J )*MUL 100 CONTINUE 110 CONTINUE * ELSE IF( ITYPE.EQ.5 ) THEN * * Upper half of a symmetric band matrix * K1 = KU + 2 K3 = KU + 1 DO 130 J = 1, N DO 120 I = MAX( K1-J, 1 ), K3 A( I, J ) = A( I, J )*MUL 120 CONTINUE 130 CONTINUE * ELSE IF( ITYPE.EQ.6 ) THEN * * Band matrix * K1 = KL + KU + 2 K2 = KL + 1 K3 = 2*KL + KU + 1 K4 = KL + KU + 1 + M DO 150 J = 1, N DO 140 I = MAX( K1-J, K2 ), MIN( K3, K4-J ) A( I, J ) = A( I, J )*MUL 140 CONTINUE 150 CONTINUE * END IF * IF( .NOT.DONE ) $ GO TO 10 * RETURN * * End of DLASCL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsytrd.f0000644000000000000000000000013213543334726015242 xustar0030 mtime=1569569238.377645938 30 atime=1569569238.375645939 30 ctime=1569569238.377645938 elk-6.3.2/src/LAPACK/dsytrd.f0000644002504400250440000002634613543334726017324 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYTRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYTRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYTRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAU( * ), * $ WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYTRD reduces a real symmetric matrix A to real symmetric *> tridiagonal form T by an orthogonal similarity transformation: *> Q**T * A * Q = T. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> On exit, if UPLO = 'U', the diagonal and first superdiagonal *> of A are overwritten by the corresponding elements of the *> tridiagonal matrix T, and the elements above the first *> superdiagonal, with the array TAU, represent the orthogonal *> matrix Q as a product of elementary reflectors; if UPLO *> = 'L', the diagonal and first subdiagonal of A are over- *> written by the corresponding elements of the tridiagonal *> matrix T, and the elements below the first subdiagonal, with *> the array TAU, represent the orthogonal matrix Q as a product *> of elementary reflectors. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix T: *> E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= 1. *> For optimum performance LWORK >= N*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleSYcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n-1) . . . H(2) H(1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in *> A(1:i-1,i+1), and tau in TAU(i). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(n-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), *> and tau in TAU(i). *> *> The contents of A on exit are illustrated by the following examples *> with n = 5: *> *> if UPLO = 'U': if UPLO = 'L': *> *> ( d e v2 v3 v4 ) ( d ) *> ( d e v3 v4 ) ( e d ) *> ( d e v4 ) ( v1 e d ) *> ( d e ) ( v1 v2 e d ) *> ( d ) ( v1 v2 v3 e d ) *> *> where d and e denote diagonal and off-diagonal elements of T, and vi *> denotes an element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DSYTRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAU( * ), $ WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, UPPER INTEGER I, IINFO, IWS, J, KK, LDWORK, LWKOPT, NB, $ NBMIN, NX * .. * .. External Subroutines .. EXTERNAL DLATRD, DSYR2K, DSYTD2, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) LQUERY = ( LWORK.EQ.-1 ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LWORK.LT.1 .AND. .NOT.LQUERY ) THEN INFO = -9 END IF * IF( INFO.EQ.0 ) THEN * * Determine the block size. * NB = ILAENV( 1, 'DSYTRD', UPLO, N, -1, -1, -1 ) LWKOPT = N*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYTRD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NX = N IWS = 1 IF( NB.GT.1 .AND. NB.LT.N ) THEN * * Determine when to cross over from blocked to unblocked code * (last block is always handled by unblocked code). * NX = MAX( NB, ILAENV( 3, 'DSYTRD', UPLO, N, -1, -1, -1 ) ) IF( NX.LT.N ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: determine the * minimum value of NB, and reduce NB or force use of * unblocked code by setting NX = N. * NB = MAX( LWORK / LDWORK, 1 ) NBMIN = ILAENV( 2, 'DSYTRD', UPLO, N, -1, -1, -1 ) IF( NB.LT.NBMIN ) $ NX = N END IF ELSE NX = N END IF ELSE NB = 1 END IF * IF( UPPER ) THEN * * Reduce the upper triangle of A. * Columns 1:kk are handled by the unblocked method. * KK = N - ( ( N-NX+NB-1 ) / NB )*NB DO 20 I = N - NB + 1, KK + 1, -NB * * Reduce columns i:i+nb-1 to tridiagonal form and form the * matrix W which is needed to update the unreduced part of * the matrix * CALL DLATRD( UPLO, I+NB-1, NB, A, LDA, E, TAU, WORK, $ LDWORK ) * * Update the unreduced submatrix A(1:i-1,1:i-1), using an * update of the form: A := A - V*W**T - W*V**T * CALL DSYR2K( UPLO, 'No transpose', I-1, NB, -ONE, A( 1, I ), $ LDA, WORK, LDWORK, ONE, A, LDA ) * * Copy superdiagonal elements back into A, and diagonal * elements into D * DO 10 J = I, I + NB - 1 A( J-1, J ) = E( J-1 ) D( J ) = A( J, J ) 10 CONTINUE 20 CONTINUE * * Use unblocked code to reduce the last or only block * CALL DSYTD2( UPLO, KK, A, LDA, D, E, TAU, IINFO ) ELSE * * Reduce the lower triangle of A * DO 40 I = 1, N - NX, NB * * Reduce columns i:i+nb-1 to tridiagonal form and form the * matrix W which is needed to update the unreduced part of * the matrix * CALL DLATRD( UPLO, N-I+1, NB, A( I, I ), LDA, E( I ), $ TAU( I ), WORK, LDWORK ) * * Update the unreduced submatrix A(i+ib:n,i+ib:n), using * an update of the form: A := A - V*W**T - W*V**T * CALL DSYR2K( UPLO, 'No transpose', N-I-NB+1, NB, -ONE, $ A( I+NB, I ), LDA, WORK( NB+1 ), LDWORK, ONE, $ A( I+NB, I+NB ), LDA ) * * Copy subdiagonal elements back into A, and diagonal * elements into D * DO 30 J = I, I + NB - 1 A( J+1, J ) = E( J ) D( J ) = A( J, J ) 30 CONTINUE 40 CONTINUE * * Use unblocked code to reduce the last or only block * CALL DSYTD2( UPLO, N-I+1, A( I, I ), LDA, D( I ), E( I ), $ TAU( I ), IINFO ) END IF * WORK( 1 ) = LWKOPT RETURN * * End of DSYTRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsterf.f0000644000000000000000000000013213543334726015220 xustar0030 mtime=1569569238.381645936 30 atime=1569569238.380645936 30 ctime=1569569238.381645936 elk-6.3.2/src/LAPACK/dsterf.f0000644002504400250440000002463113543334726017275 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSTERF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSTERF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSTERF( N, D, E, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSTERF computes all eigenvalues of a symmetric tridiagonal matrix *> using the Pal-Walker-Kahan variant of the QL or QR algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the n diagonal elements of the tridiagonal matrix. *> On exit, if INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the (n-1) subdiagonal elements of the tridiagonal *> matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: the algorithm failed to find all of the eigenvalues in *> a total of 30*N iterations; if INFO = i, then i *> elements of E have not converged to zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DSTERF( N, D, E, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO, THREE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ THREE = 3.0D0 ) INTEGER MAXIT PARAMETER ( MAXIT = 30 ) * .. * .. Local Scalars .. INTEGER I, ISCALE, JTOT, L, L1, LEND, LENDSV, LSV, M, $ NMAXIT DOUBLE PRECISION ALPHA, ANORM, BB, C, EPS, EPS2, GAMMA, OLDC, $ OLDGAM, P, R, RT1, RT2, RTE, S, SAFMAX, SAFMIN, $ SIGMA, SSFMAX, SSFMIN, RMAX * .. * .. External Functions .. DOUBLE PRECISION DLAMCH, DLANST, DLAPY2 EXTERNAL DLAMCH, DLANST, DLAPY2 * .. * .. External Subroutines .. EXTERNAL DLAE2, DLASCL, DLASRT, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * * Quick return if possible * IF( N.LT.0 ) THEN INFO = -1 CALL XERBLA( 'DSTERF', -INFO ) RETURN END IF IF( N.LE.1 ) $ RETURN * * Determine the unit roundoff for this environment. * EPS = DLAMCH( 'E' ) EPS2 = EPS**2 SAFMIN = DLAMCH( 'S' ) SAFMAX = ONE / SAFMIN SSFMAX = SQRT( SAFMAX ) / THREE SSFMIN = SQRT( SAFMIN ) / EPS2 RMAX = DLAMCH( 'O' ) * * Compute the eigenvalues of the tridiagonal matrix. * NMAXIT = N*MAXIT SIGMA = ZERO JTOT = 0 * * Determine where the matrix splits and choose QL or QR iteration * for each block, according to whether top or bottom diagonal * element is smaller. * L1 = 1 * 10 CONTINUE IF( L1.GT.N ) $ GO TO 170 IF( L1.GT.1 ) $ E( L1-1 ) = ZERO DO 20 M = L1, N - 1 IF( ABS( E( M ) ).LE.( SQRT( ABS( D( M ) ) )*SQRT( ABS( D( M+ $ 1 ) ) ) )*EPS ) THEN E( M ) = ZERO GO TO 30 END IF 20 CONTINUE M = N * 30 CONTINUE L = L1 LSV = L LEND = M LENDSV = LEND L1 = M + 1 IF( LEND.EQ.L ) $ GO TO 10 * * Scale submatrix in rows and columns L to LEND * ANORM = DLANST( 'M', LEND-L+1, D( L ), E( L ) ) ISCALE = 0 IF( ANORM.EQ.ZERO ) $ GO TO 10 IF( (ANORM.GT.SSFMAX) ) THEN ISCALE = 1 CALL DLASCL( 'G', 0, 0, ANORM, SSFMAX, LEND-L+1, 1, D( L ), N, $ INFO ) CALL DLASCL( 'G', 0, 0, ANORM, SSFMAX, LEND-L, 1, E( L ), N, $ INFO ) ELSE IF( ANORM.LT.SSFMIN ) THEN ISCALE = 2 CALL DLASCL( 'G', 0, 0, ANORM, SSFMIN, LEND-L+1, 1, D( L ), N, $ INFO ) CALL DLASCL( 'G', 0, 0, ANORM, SSFMIN, LEND-L, 1, E( L ), N, $ INFO ) END IF * DO 40 I = L, LEND - 1 E( I ) = E( I )**2 40 CONTINUE * * Choose between QL and QR iteration * IF( ABS( D( LEND ) ).LT.ABS( D( L ) ) ) THEN LEND = LSV L = LENDSV END IF * IF( LEND.GE.L ) THEN * * QL Iteration * * Look for small subdiagonal element. * 50 CONTINUE IF( L.NE.LEND ) THEN DO 60 M = L, LEND - 1 IF( ABS( E( M ) ).LE.EPS2*ABS( D( M )*D( M+1 ) ) ) $ GO TO 70 60 CONTINUE END IF M = LEND * 70 CONTINUE IF( M.LT.LEND ) $ E( M ) = ZERO P = D( L ) IF( M.EQ.L ) $ GO TO 90 * * If remaining matrix is 2 by 2, use DLAE2 to compute its * eigenvalues. * IF( M.EQ.L+1 ) THEN RTE = SQRT( E( L ) ) CALL DLAE2( D( L ), RTE, D( L+1 ), RT1, RT2 ) D( L ) = RT1 D( L+1 ) = RT2 E( L ) = ZERO L = L + 2 IF( L.LE.LEND ) $ GO TO 50 GO TO 150 END IF * IF( JTOT.EQ.NMAXIT ) $ GO TO 150 JTOT = JTOT + 1 * * Form shift. * RTE = SQRT( E( L ) ) SIGMA = ( D( L+1 )-P ) / ( TWO*RTE ) R = DLAPY2( SIGMA, ONE ) SIGMA = P - ( RTE / ( SIGMA+SIGN( R, SIGMA ) ) ) * C = ONE S = ZERO GAMMA = D( M ) - SIGMA P = GAMMA*GAMMA * * Inner loop * DO 80 I = M - 1, L, -1 BB = E( I ) R = P + BB IF( I.NE.M-1 ) $ E( I+1 ) = S*R OLDC = C C = P / R S = BB / R OLDGAM = GAMMA ALPHA = D( I ) GAMMA = C*( ALPHA-SIGMA ) - S*OLDGAM D( I+1 ) = OLDGAM + ( ALPHA-GAMMA ) IF( C.NE.ZERO ) THEN P = ( GAMMA*GAMMA ) / C ELSE P = OLDC*BB END IF 80 CONTINUE * E( L ) = S*P D( L ) = SIGMA + GAMMA GO TO 50 * * Eigenvalue found. * 90 CONTINUE D( L ) = P * L = L + 1 IF( L.LE.LEND ) $ GO TO 50 GO TO 150 * ELSE * * QR Iteration * * Look for small superdiagonal element. * 100 CONTINUE DO 110 M = L, LEND + 1, -1 IF( ABS( E( M-1 ) ).LE.EPS2*ABS( D( M )*D( M-1 ) ) ) $ GO TO 120 110 CONTINUE M = LEND * 120 CONTINUE IF( M.GT.LEND ) $ E( M-1 ) = ZERO P = D( L ) IF( M.EQ.L ) $ GO TO 140 * * If remaining matrix is 2 by 2, use DLAE2 to compute its * eigenvalues. * IF( M.EQ.L-1 ) THEN RTE = SQRT( E( L-1 ) ) CALL DLAE2( D( L ), RTE, D( L-1 ), RT1, RT2 ) D( L ) = RT1 D( L-1 ) = RT2 E( L-1 ) = ZERO L = L - 2 IF( L.GE.LEND ) $ GO TO 100 GO TO 150 END IF * IF( JTOT.EQ.NMAXIT ) $ GO TO 150 JTOT = JTOT + 1 * * Form shift. * RTE = SQRT( E( L-1 ) ) SIGMA = ( D( L-1 )-P ) / ( TWO*RTE ) R = DLAPY2( SIGMA, ONE ) SIGMA = P - ( RTE / ( SIGMA+SIGN( R, SIGMA ) ) ) * C = ONE S = ZERO GAMMA = D( M ) - SIGMA P = GAMMA*GAMMA * * Inner loop * DO 130 I = M, L - 1 BB = E( I ) R = P + BB IF( I.NE.M ) $ E( I-1 ) = S*R OLDC = C C = P / R S = BB / R OLDGAM = GAMMA ALPHA = D( I+1 ) GAMMA = C*( ALPHA-SIGMA ) - S*OLDGAM D( I ) = OLDGAM + ( ALPHA-GAMMA ) IF( C.NE.ZERO ) THEN P = ( GAMMA*GAMMA ) / C ELSE P = OLDC*BB END IF 130 CONTINUE * E( L-1 ) = S*P D( L ) = SIGMA + GAMMA GO TO 100 * * Eigenvalue found. * 140 CONTINUE D( L ) = P * L = L - 1 IF( L.GE.LEND ) $ GO TO 100 GO TO 150 * END IF * * Undo scaling if necessary * 150 CONTINUE IF( ISCALE.EQ.1 ) $ CALL DLASCL( 'G', 0, 0, SSFMAX, ANORM, LENDSV-LSV+1, 1, $ D( LSV ), N, INFO ) IF( ISCALE.EQ.2 ) $ CALL DLASCL( 'G', 0, 0, SSFMIN, ANORM, LENDSV-LSV+1, 1, $ D( LSV ), N, INFO ) * * Check for no convergence to an eigenvalue after a total * of N*MAXIT iterations. * IF( JTOT.LT.NMAXIT ) $ GO TO 10 DO 160 I = 1, N - 1 IF( E( I ).NE.ZERO ) $ INFO = INFO + 1 160 CONTINUE GO TO 180 * * Sort eigenvalues in increasing order. * 170 CONTINUE CALL DLASRT( 'I', N, D, INFO ) * 180 CONTINUE RETURN * * End of DSTERF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorgtr.f0000644000000000000000000000013213543334726015232 xustar0030 mtime=1569569238.386645932 30 atime=1569569238.385645933 30 ctime=1569569238.386645932 elk-6.3.2/src/LAPACK/dorgtr.f0000644002504400250440000001562013543334726017305 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORGTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORGTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORGTR( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORGTR generates a real orthogonal matrix Q which is defined as the *> product of n-1 elementary reflectors of order N, as returned by *> DSYTRD: *> *> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1), *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A contains elementary reflectors *> from DSYTRD; *> = 'L': Lower triangle of A contains elementary reflectors *> from DSYTRD. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix Q. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the vectors which define the elementary reflectors, *> as returned by DSYTRD. *> On exit, the N-by-N orthogonal matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (N-1) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DSYTRD. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N-1). *> For optimum performance LWORK >= (N-1)*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORGTR( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, UPPER INTEGER I, IINFO, J, LWKOPT, NB * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DORGQL, DORGQR, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, N-1 ) .AND. .NOT.LQUERY ) THEN INFO = -7 END IF * IF( INFO.EQ.0 ) THEN IF( UPPER ) THEN NB = ILAENV( 1, 'DORGQL', ' ', N-1, N-1, N-1, -1 ) ELSE NB = ILAENV( 1, 'DORGQR', ' ', N-1, N-1, N-1, -1 ) END IF LWKOPT = MAX( 1, N-1 )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORGTR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( UPPER ) THEN * * Q was determined by a call to DSYTRD with UPLO = 'U' * * Shift the vectors which define the elementary reflectors one * column to the left, and set the last row and column of Q to * those of the unit matrix * DO 20 J = 1, N - 1 DO 10 I = 1, J - 1 A( I, J ) = A( I, J+1 ) 10 CONTINUE A( N, J ) = ZERO 20 CONTINUE DO 30 I = 1, N - 1 A( I, N ) = ZERO 30 CONTINUE A( N, N ) = ONE * * Generate Q(1:n-1,1:n-1) * CALL DORGQL( N-1, N-1, N-1, A, LDA, TAU, WORK, LWORK, IINFO ) * ELSE * * Q was determined by a call to DSYTRD with UPLO = 'L'. * * Shift the vectors which define the elementary reflectors one * column to the right, and set the first row and column of Q to * those of the unit matrix * DO 50 J = N, 2, -1 A( 1, J ) = ZERO DO 40 I = J + 1, N A( I, J ) = A( I, J-1 ) 40 CONTINUE 50 CONTINUE A( 1, 1 ) = ONE DO 60 I = 2, N A( I, 1 ) = ZERO 60 CONTINUE IF( N.GT.1 ) THEN * * Generate Q(2:n,2:n) * CALL DORGQR( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK, $ LWORK, IINFO ) END IF END IF WORK( 1 ) = LWKOPT RETURN * * End of DORGTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsteqr.f0000644000000000000000000000013113543334726015232 xustar0030 mtime=1569569238.391645929 29 atime=1569569238.38964593 30 ctime=1569569238.391645929 elk-6.3.2/src/LAPACK/dsteqr.f0000644002504400250440000003627613543334726017320 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSTEQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSTEQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSTEQR( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER COMPZ * INTEGER INFO, LDZ, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSTEQR computes all eigenvalues and, optionally, eigenvectors of a *> symmetric tridiagonal matrix using the implicit QL or QR method. *> The eigenvectors of a full or band symmetric matrix can also be found *> if DSYTRD or DSPTRD or DSBTRD has been used to reduce this matrix to *> tridiagonal form. *> \endverbatim * * Arguments: * ========== * *> \param[in] COMPZ *> \verbatim *> COMPZ is CHARACTER*1 *> = 'N': Compute eigenvalues only. *> = 'V': Compute eigenvalues and eigenvectors of the original *> symmetric matrix. On entry, Z must contain the *> orthogonal matrix used to reduce the original matrix *> to tridiagonal form. *> = 'I': Compute eigenvalues and eigenvectors of the *> tridiagonal matrix. Z is initialized to the identity *> matrix. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the diagonal elements of the tridiagonal matrix. *> On exit, if INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the (n-1) subdiagonal elements of the tridiagonal *> matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ, N) *> On entry, if COMPZ = 'V', then Z contains the orthogonal *> matrix used in the reduction to tridiagonal form. *> On exit, if INFO = 0, then if COMPZ = 'V', Z contains the *> orthonormal eigenvectors of the original symmetric matrix, *> and if COMPZ = 'I', Z contains the orthonormal eigenvectors *> of the symmetric tridiagonal matrix. *> If COMPZ = 'N', then Z is not referenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> eigenvectors are desired, then LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (max(1,2*N-2)) *> If COMPZ = 'N', then WORK is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: the algorithm has failed to find all the eigenvalues in *> a total of 30*N iterations; if INFO = i, then i *> elements of E have not converged to zero; on exit, D *> and E contain the elements of a symmetric tridiagonal *> matrix which is orthogonally similar to the original *> matrix. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DSTEQR( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER COMPZ INTEGER INFO, LDZ, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO, THREE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ THREE = 3.0D0 ) INTEGER MAXIT PARAMETER ( MAXIT = 30 ) * .. * .. Local Scalars .. INTEGER I, ICOMPZ, II, ISCALE, J, JTOT, K, L, L1, LEND, $ LENDM1, LENDP1, LENDSV, LM1, LSV, M, MM, MM1, $ NM1, NMAXIT DOUBLE PRECISION ANORM, B, C, EPS, EPS2, F, G, P, R, RT1, RT2, $ S, SAFMAX, SAFMIN, SSFMAX, SSFMIN, TST * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH, DLANST, DLAPY2 EXTERNAL LSAME, DLAMCH, DLANST, DLAPY2 * .. * .. External Subroutines .. EXTERNAL DLAE2, DLAEV2, DLARTG, DLASCL, DLASET, DLASR, $ DLASRT, DSWAP, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( LSAME( COMPZ, 'N' ) ) THEN ICOMPZ = 0 ELSE IF( LSAME( COMPZ, 'V' ) ) THEN ICOMPZ = 1 ELSE IF( LSAME( COMPZ, 'I' ) ) THEN ICOMPZ = 2 ELSE ICOMPZ = -1 END IF IF( ICOMPZ.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( ( LDZ.LT.1 ) .OR. ( ICOMPZ.GT.0 .AND. LDZ.LT.MAX( 1, $ N ) ) ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSTEQR', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN IF( ICOMPZ.EQ.2 ) $ Z( 1, 1 ) = ONE RETURN END IF * * Determine the unit roundoff and over/underflow thresholds. * EPS = DLAMCH( 'E' ) EPS2 = EPS**2 SAFMIN = DLAMCH( 'S' ) SAFMAX = ONE / SAFMIN SSFMAX = SQRT( SAFMAX ) / THREE SSFMIN = SQRT( SAFMIN ) / EPS2 * * Compute the eigenvalues and eigenvectors of the tridiagonal * matrix. * IF( ICOMPZ.EQ.2 ) $ CALL DLASET( 'Full', N, N, ZERO, ONE, Z, LDZ ) * NMAXIT = N*MAXIT JTOT = 0 * * Determine where the matrix splits and choose QL or QR iteration * for each block, according to whether top or bottom diagonal * element is smaller. * L1 = 1 NM1 = N - 1 * 10 CONTINUE IF( L1.GT.N ) $ GO TO 160 IF( L1.GT.1 ) $ E( L1-1 ) = ZERO IF( L1.LE.NM1 ) THEN DO 20 M = L1, NM1 TST = ABS( E( M ) ) IF( TST.EQ.ZERO ) $ GO TO 30 IF( TST.LE.( SQRT( ABS( D( M ) ) )*SQRT( ABS( D( M+ $ 1 ) ) ) )*EPS ) THEN E( M ) = ZERO GO TO 30 END IF 20 CONTINUE END IF M = N * 30 CONTINUE L = L1 LSV = L LEND = M LENDSV = LEND L1 = M + 1 IF( LEND.EQ.L ) $ GO TO 10 * * Scale submatrix in rows and columns L to LEND * ANORM = DLANST( 'M', LEND-L+1, D( L ), E( L ) ) ISCALE = 0 IF( ANORM.EQ.ZERO ) $ GO TO 10 IF( ANORM.GT.SSFMAX ) THEN ISCALE = 1 CALL DLASCL( 'G', 0, 0, ANORM, SSFMAX, LEND-L+1, 1, D( L ), N, $ INFO ) CALL DLASCL( 'G', 0, 0, ANORM, SSFMAX, LEND-L, 1, E( L ), N, $ INFO ) ELSE IF( ANORM.LT.SSFMIN ) THEN ISCALE = 2 CALL DLASCL( 'G', 0, 0, ANORM, SSFMIN, LEND-L+1, 1, D( L ), N, $ INFO ) CALL DLASCL( 'G', 0, 0, ANORM, SSFMIN, LEND-L, 1, E( L ), N, $ INFO ) END IF * * Choose between QL and QR iteration * IF( ABS( D( LEND ) ).LT.ABS( D( L ) ) ) THEN LEND = LSV L = LENDSV END IF * IF( LEND.GT.L ) THEN * * QL Iteration * * Look for small subdiagonal element. * 40 CONTINUE IF( L.NE.LEND ) THEN LENDM1 = LEND - 1 DO 50 M = L, LENDM1 TST = ABS( E( M ) )**2 IF( TST.LE.( EPS2*ABS( D( M ) ) )*ABS( D( M+1 ) )+ $ SAFMIN )GO TO 60 50 CONTINUE END IF * M = LEND * 60 CONTINUE IF( M.LT.LEND ) $ E( M ) = ZERO P = D( L ) IF( M.EQ.L ) $ GO TO 80 * * If remaining matrix is 2-by-2, use DLAE2 or SLAEV2 * to compute its eigensystem. * IF( M.EQ.L+1 ) THEN IF( ICOMPZ.GT.0 ) THEN CALL DLAEV2( D( L ), E( L ), D( L+1 ), RT1, RT2, C, S ) WORK( L ) = C WORK( N-1+L ) = S CALL DLASR( 'R', 'V', 'B', N, 2, WORK( L ), $ WORK( N-1+L ), Z( 1, L ), LDZ ) ELSE CALL DLAE2( D( L ), E( L ), D( L+1 ), RT1, RT2 ) END IF D( L ) = RT1 D( L+1 ) = RT2 E( L ) = ZERO L = L + 2 IF( L.LE.LEND ) $ GO TO 40 GO TO 140 END IF * IF( JTOT.EQ.NMAXIT ) $ GO TO 140 JTOT = JTOT + 1 * * Form shift. * G = ( D( L+1 )-P ) / ( TWO*E( L ) ) R = DLAPY2( G, ONE ) G = D( M ) - P + ( E( L ) / ( G+SIGN( R, G ) ) ) * S = ONE C = ONE P = ZERO * * Inner loop * MM1 = M - 1 DO 70 I = MM1, L, -1 F = S*E( I ) B = C*E( I ) CALL DLARTG( G, F, C, S, R ) IF( I.NE.M-1 ) $ E( I+1 ) = R G = D( I+1 ) - P R = ( D( I )-G )*S + TWO*C*B P = S*R D( I+1 ) = G + P G = C*R - B * * If eigenvectors are desired, then save rotations. * IF( ICOMPZ.GT.0 ) THEN WORK( I ) = C WORK( N-1+I ) = -S END IF * 70 CONTINUE * * If eigenvectors are desired, then apply saved rotations. * IF( ICOMPZ.GT.0 ) THEN MM = M - L + 1 CALL DLASR( 'R', 'V', 'B', N, MM, WORK( L ), WORK( N-1+L ), $ Z( 1, L ), LDZ ) END IF * D( L ) = D( L ) - P E( L ) = G GO TO 40 * * Eigenvalue found. * 80 CONTINUE D( L ) = P * L = L + 1 IF( L.LE.LEND ) $ GO TO 40 GO TO 140 * ELSE * * QR Iteration * * Look for small superdiagonal element. * 90 CONTINUE IF( L.NE.LEND ) THEN LENDP1 = LEND + 1 DO 100 M = L, LENDP1, -1 TST = ABS( E( M-1 ) )**2 IF( TST.LE.( EPS2*ABS( D( M ) ) )*ABS( D( M-1 ) )+ $ SAFMIN )GO TO 110 100 CONTINUE END IF * M = LEND * 110 CONTINUE IF( M.GT.LEND ) $ E( M-1 ) = ZERO P = D( L ) IF( M.EQ.L ) $ GO TO 130 * * If remaining matrix is 2-by-2, use DLAE2 or SLAEV2 * to compute its eigensystem. * IF( M.EQ.L-1 ) THEN IF( ICOMPZ.GT.0 ) THEN CALL DLAEV2( D( L-1 ), E( L-1 ), D( L ), RT1, RT2, C, S ) WORK( M ) = C WORK( N-1+M ) = S CALL DLASR( 'R', 'V', 'F', N, 2, WORK( M ), $ WORK( N-1+M ), Z( 1, L-1 ), LDZ ) ELSE CALL DLAE2( D( L-1 ), E( L-1 ), D( L ), RT1, RT2 ) END IF D( L-1 ) = RT1 D( L ) = RT2 E( L-1 ) = ZERO L = L - 2 IF( L.GE.LEND ) $ GO TO 90 GO TO 140 END IF * IF( JTOT.EQ.NMAXIT ) $ GO TO 140 JTOT = JTOT + 1 * * Form shift. * G = ( D( L-1 )-P ) / ( TWO*E( L-1 ) ) R = DLAPY2( G, ONE ) G = D( M ) - P + ( E( L-1 ) / ( G+SIGN( R, G ) ) ) * S = ONE C = ONE P = ZERO * * Inner loop * LM1 = L - 1 DO 120 I = M, LM1 F = S*E( I ) B = C*E( I ) CALL DLARTG( G, F, C, S, R ) IF( I.NE.M ) $ E( I-1 ) = R G = D( I ) - P R = ( D( I+1 )-G )*S + TWO*C*B P = S*R D( I ) = G + P G = C*R - B * * If eigenvectors are desired, then save rotations. * IF( ICOMPZ.GT.0 ) THEN WORK( I ) = C WORK( N-1+I ) = S END IF * 120 CONTINUE * * If eigenvectors are desired, then apply saved rotations. * IF( ICOMPZ.GT.0 ) THEN MM = L - M + 1 CALL DLASR( 'R', 'V', 'F', N, MM, WORK( M ), WORK( N-1+M ), $ Z( 1, M ), LDZ ) END IF * D( L ) = D( L ) - P E( LM1 ) = G GO TO 90 * * Eigenvalue found. * 130 CONTINUE D( L ) = P * L = L - 1 IF( L.GE.LEND ) $ GO TO 90 GO TO 140 * END IF * * Undo scaling if necessary * 140 CONTINUE IF( ISCALE.EQ.1 ) THEN CALL DLASCL( 'G', 0, 0, SSFMAX, ANORM, LENDSV-LSV+1, 1, $ D( LSV ), N, INFO ) CALL DLASCL( 'G', 0, 0, SSFMAX, ANORM, LENDSV-LSV, 1, E( LSV ), $ N, INFO ) ELSE IF( ISCALE.EQ.2 ) THEN CALL DLASCL( 'G', 0, 0, SSFMIN, ANORM, LENDSV-LSV+1, 1, $ D( LSV ), N, INFO ) CALL DLASCL( 'G', 0, 0, SSFMIN, ANORM, LENDSV-LSV, 1, E( LSV ), $ N, INFO ) END IF * * Check for no convergence to an eigenvalue after a total * of N*MAXIT iterations. * IF( JTOT.LT.NMAXIT ) $ GO TO 10 DO 150 I = 1, N - 1 IF( E( I ).NE.ZERO ) $ INFO = INFO + 1 150 CONTINUE GO TO 190 * * Order eigenvalues and eigenvectors. * 160 CONTINUE IF( ICOMPZ.EQ.0 ) THEN * * Use Quick Sort * CALL DLASRT( 'I', N, D, INFO ) * ELSE * * Use Selection Sort to minimize swaps of eigenvectors * DO 180 II = 2, N I = II - 1 K = I P = D( I ) DO 170 J = II, N IF( D( J ).LT.P ) THEN K = J P = D( J ) END IF 170 CONTINUE IF( K.NE.I ) THEN D( K ) = D( I ) D( I ) = P CALL DSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 ) END IF 180 CONTINUE END IF * 190 CONTINUE RETURN * * End of DSTEQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dpotrf.f0000644000000000000000000000013213543334726015227 xustar0030 mtime=1569569238.395645927 30 atime=1569569238.394645927 30 ctime=1569569238.395645927 elk-6.3.2/src/LAPACK/dpotrf.f0000644002504400250440000001604613543334726017305 0ustar00dewhurstdewhurst00000000000000*> \brief \b DPOTRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DPOTRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DPOTRF( UPLO, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DPOTRF computes the Cholesky factorization of a real symmetric *> positive definite matrix A. *> *> The factorization has the form *> A = U**T * U, if UPLO = 'U', or *> A = L * L**T, if UPLO = 'L', *> where U is an upper triangular matrix and L is lower triangular. *> *> This is the block version of the algorithm, calling Level 3 BLAS. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the factor U or L from the Cholesky *> factorization A = U**T*U or A = L*L**T. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the leading minor of order i is not *> positive definite, and the factorization could not be *> completed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doublePOcomputational * * ===================================================================== SUBROUTINE DPOTRF( UPLO, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER J, JB, NB * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DGEMM, DPOTRF2, DSYRK, DTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DPOTRF', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Determine the block size for this environment. * NB = ILAENV( 1, 'DPOTRF', UPLO, N, -1, -1, -1 ) IF( NB.LE.1 .OR. NB.GE.N ) THEN * * Use unblocked code. * CALL DPOTRF2( UPLO, N, A, LDA, INFO ) ELSE * * Use blocked code. * IF( UPPER ) THEN * * Compute the Cholesky factorization A = U**T*U. * DO 10 J = 1, N, NB * * Update and factorize the current diagonal block and test * for non-positive-definiteness. * JB = MIN( NB, N-J+1 ) CALL DSYRK( 'Upper', 'Transpose', JB, J-1, -ONE, $ A( 1, J ), LDA, ONE, A( J, J ), LDA ) CALL DPOTRF2( 'Upper', JB, A( J, J ), LDA, INFO ) IF( INFO.NE.0 ) $ GO TO 30 IF( J+JB.LE.N ) THEN * * Compute the current block row. * CALL DGEMM( 'Transpose', 'No transpose', JB, N-J-JB+1, $ J-1, -ONE, A( 1, J ), LDA, A( 1, J+JB ), $ LDA, ONE, A( J, J+JB ), LDA ) CALL DTRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', $ JB, N-J-JB+1, ONE, A( J, J ), LDA, $ A( J, J+JB ), LDA ) END IF 10 CONTINUE * ELSE * * Compute the Cholesky factorization A = L*L**T. * DO 20 J = 1, N, NB * * Update and factorize the current diagonal block and test * for non-positive-definiteness. * JB = MIN( NB, N-J+1 ) CALL DSYRK( 'Lower', 'No transpose', JB, J-1, -ONE, $ A( J, 1 ), LDA, ONE, A( J, J ), LDA ) CALL DPOTRF2( 'Lower', JB, A( J, J ), LDA, INFO ) IF( INFO.NE.0 ) $ GO TO 30 IF( J+JB.LE.N ) THEN * * Compute the current block column. * CALL DGEMM( 'No transpose', 'Transpose', N-J-JB+1, JB, $ J-1, -ONE, A( J+JB, 1 ), LDA, A( J, 1 ), $ LDA, ONE, A( J+JB, J ), LDA ) CALL DTRSM( 'Right', 'Lower', 'Transpose', 'Non-unit', $ N-J-JB+1, JB, ONE, A( J, J ), LDA, $ A( J+JB, J ), LDA ) END IF 20 CONTINUE END IF END IF GO TO 40 * 30 CONTINUE INFO = INFO + J - 1 * 40 CONTINUE RETURN * * End of DPOTRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsygst.f0000644000000000000000000000013213543334726015246 xustar0030 mtime=1569569238.400645923 30 atime=1569569238.398645925 30 ctime=1569569238.400645923 elk-6.3.2/src/LAPACK/dsygst.f0000644002504400250440000002536013543334726017323 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYGST * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYGST + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYGST reduces a real symmetric-definite generalized eigenproblem *> to standard form. *> *> If ITYPE = 1, the problem is A*x = lambda*B*x, *> and A is overwritten by inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T) *> *> If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or *> B*A*x = lambda*x, and A is overwritten by U*A*U**T or L**T*A*L. *> *> B must have been previously factorized as U**T*U or L*L**T by DPOTRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> = 1: compute inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T); *> = 2 or 3: compute U*A*U**T or L**T*A*L. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored and B is factored as *> U**T*U; *> = 'L': Lower triangle of A is stored and B is factored as *> L*L**T. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the transformed matrix, stored in the *> same format as A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB,N) *> The triangular factor from the Cholesky factorization of B, *> as returned by DPOTRF. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleSYcomputational * * ===================================================================== SUBROUTINE DSYGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, HALF PARAMETER ( ONE = 1.0D0, HALF = 0.5D0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER K, KB, NB * .. * .. External Subroutines .. EXTERNAL DSYGS2, DSYMM, DSYR2K, DTRMM, DTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYGST', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Determine the block size for this environment. * NB = ILAENV( 1, 'DSYGST', UPLO, N, -1, -1, -1 ) * IF( NB.LE.1 .OR. NB.GE.N ) THEN * * Use unblocked code * CALL DSYGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) ELSE * * Use blocked code * IF( ITYPE.EQ.1 ) THEN IF( UPPER ) THEN * * Compute inv(U**T)*A*inv(U) * DO 10 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the upper triangle of A(k:n,k:n) * CALL DSYGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) IF( K+KB.LE.N ) THEN CALL DTRSM( 'Left', UPLO, 'Transpose', 'Non-unit', $ KB, N-K-KB+1, ONE, B( K, K ), LDB, $ A( K, K+KB ), LDA ) CALL DSYMM( 'Left', UPLO, KB, N-K-KB+1, -HALF, $ A( K, K ), LDA, B( K, K+KB ), LDB, ONE, $ A( K, K+KB ), LDA ) CALL DSYR2K( UPLO, 'Transpose', N-K-KB+1, KB, -ONE, $ A( K, K+KB ), LDA, B( K, K+KB ), LDB, $ ONE, A( K+KB, K+KB ), LDA ) CALL DSYMM( 'Left', UPLO, KB, N-K-KB+1, -HALF, $ A( K, K ), LDA, B( K, K+KB ), LDB, ONE, $ A( K, K+KB ), LDA ) CALL DTRSM( 'Right', UPLO, 'No transpose', $ 'Non-unit', KB, N-K-KB+1, ONE, $ B( K+KB, K+KB ), LDB, A( K, K+KB ), $ LDA ) END IF 10 CONTINUE ELSE * * Compute inv(L)*A*inv(L**T) * DO 20 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the lower triangle of A(k:n,k:n) * CALL DSYGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) IF( K+KB.LE.N ) THEN CALL DTRSM( 'Right', UPLO, 'Transpose', 'Non-unit', $ N-K-KB+1, KB, ONE, B( K, K ), LDB, $ A( K+KB, K ), LDA ) CALL DSYMM( 'Right', UPLO, N-K-KB+1, KB, -HALF, $ A( K, K ), LDA, B( K+KB, K ), LDB, ONE, $ A( K+KB, K ), LDA ) CALL DSYR2K( UPLO, 'No transpose', N-K-KB+1, KB, $ -ONE, A( K+KB, K ), LDA, B( K+KB, K ), $ LDB, ONE, A( K+KB, K+KB ), LDA ) CALL DSYMM( 'Right', UPLO, N-K-KB+1, KB, -HALF, $ A( K, K ), LDA, B( K+KB, K ), LDB, ONE, $ A( K+KB, K ), LDA ) CALL DTRSM( 'Left', UPLO, 'No transpose', $ 'Non-unit', N-K-KB+1, KB, ONE, $ B( K+KB, K+KB ), LDB, A( K+KB, K ), $ LDA ) END IF 20 CONTINUE END IF ELSE IF( UPPER ) THEN * * Compute U*A*U**T * DO 30 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the upper triangle of A(1:k+kb-1,1:k+kb-1) * CALL DTRMM( 'Left', UPLO, 'No transpose', 'Non-unit', $ K-1, KB, ONE, B, LDB, A( 1, K ), LDA ) CALL DSYMM( 'Right', UPLO, K-1, KB, HALF, A( K, K ), $ LDA, B( 1, K ), LDB, ONE, A( 1, K ), LDA ) CALL DSYR2K( UPLO, 'No transpose', K-1, KB, ONE, $ A( 1, K ), LDA, B( 1, K ), LDB, ONE, A, $ LDA ) CALL DSYMM( 'Right', UPLO, K-1, KB, HALF, A( K, K ), $ LDA, B( 1, K ), LDB, ONE, A( 1, K ), LDA ) CALL DTRMM( 'Right', UPLO, 'Transpose', 'Non-unit', $ K-1, KB, ONE, B( K, K ), LDB, A( 1, K ), $ LDA ) CALL DSYGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) 30 CONTINUE ELSE * * Compute L**T*A*L * DO 40 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the lower triangle of A(1:k+kb-1,1:k+kb-1) * CALL DTRMM( 'Right', UPLO, 'No transpose', 'Non-unit', $ KB, K-1, ONE, B, LDB, A( K, 1 ), LDA ) CALL DSYMM( 'Left', UPLO, KB, K-1, HALF, A( K, K ), $ LDA, B( K, 1 ), LDB, ONE, A( K, 1 ), LDA ) CALL DSYR2K( UPLO, 'Transpose', K-1, KB, ONE, $ A( K, 1 ), LDA, B( K, 1 ), LDB, ONE, A, $ LDA ) CALL DSYMM( 'Left', UPLO, KB, K-1, HALF, A( K, K ), $ LDA, B( K, 1 ), LDB, ONE, A( K, 1 ), LDA ) CALL DTRMM( 'Left', UPLO, 'Transpose', 'Non-unit', KB, $ K-1, ONE, B( K, K ), LDB, A( K, 1 ), LDA ) CALL DSYGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) 40 CONTINUE END IF END IF END IF RETURN * * End of DSYGST * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsyevx.f0000644000000000000000000000013013543334726015251 xustar0029 mtime=1569569238.40564592 30 atime=1569569238.403645921 29 ctime=1569569238.40564592 elk-6.3.2/src/LAPACK/dsyevx.f0000644002504400250440000004261613543334726017333 0ustar00dewhurstdewhurst00000000000000*> \brief DSYEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYEVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, * ABSTOL, M, W, Z, LDZ, WORK, LWORK, IWORK, * IFAIL, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, IU, LDA, LDZ, LWORK, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION A( LDA, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYEVX computes selected eigenvalues and, optionally, eigenvectors *> of a real symmetric matrix A. Eigenvalues and eigenvectors can be *> selected by specifying either a range of values or a range of indices *> for the desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found. *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found. *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA, N) *> On entry, the symmetric matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> On exit, the lower triangle (if UPLO='L') or the upper *> triangle (if UPLO='U') of A, including the diagonal, is *> destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing A to tridiagonal form. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> *> See "Computing Small Singular Values of Bidiagonal Matrices *> with Guaranteed High Relative Accuracy," by Demmel and *> Kahan, LAPACK Working Note #3. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> On normal exit, the first M elements contain the selected *> eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ, max(1,M)) *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and the *> index of the eigenvector is returned in IFAIL. *> If JOBZ = 'N', then Z is not referenced. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= 1, when N <= 1; *> otherwise 8*N. *> For optimal efficiency, LWORK >= (NB+3)*N, *> where NB is the max of the blocksize for DSYTRD and DORMTR *> returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, then i eigenvectors failed to converge. *> Their indices are stored in array IFAIL. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup doubleSYeigen * * ===================================================================== SUBROUTINE DSYEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, $ ABSTOL, M, W, Z, LDZ, WORK, LWORK, IWORK, $ IFAIL, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, IU, LDA, LDZ, LWORK, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION A( LDA, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, LOWER, LQUERY, TEST, VALEIG, $ WANTZ CHARACTER ORDER INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, $ INDISP, INDIWO, INDTAU, INDWKN, INDWRK, ISCALE, $ ITMP1, J, JJ, LLWORK, LLWRKN, LWKMIN, $ LWKOPT, NB, NSPLIT DOUBLE PRECISION ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, $ SIGMA, SMLNUM, TMP1, VLL, VUU * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, DLANSY EXTERNAL LSAME, ILAENV, DLAMCH, DLANSY * .. * .. External Subroutines .. EXTERNAL DCOPY, DLACPY, DORGTR, DORMTR, DSCAL, DSTEBZ, $ DSTEIN, DSTEQR, DSTERF, DSWAP, DSYTRD, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * LOWER = LSAME( UPLO, 'L' ) WANTZ = LSAME( JOBZ, 'V' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -2 ELSE IF( .NOT.( LOWER .OR. LSAME( UPLO, 'U' ) ) ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) $ INFO = -8 ELSE IF( INDEIG ) THEN IF( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) THEN INFO = -9 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -10 END IF END IF END IF IF( INFO.EQ.0 ) THEN IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.N ) ) THEN INFO = -15 END IF END IF * IF( INFO.EQ.0 ) THEN IF( N.LE.1 ) THEN LWKMIN = 1 WORK( 1 ) = LWKMIN ELSE LWKMIN = 8*N NB = ILAENV( 1, 'DSYTRD', UPLO, N, -1, -1, -1 ) NB = MAX( NB, ILAENV( 1, 'DORMTR', UPLO, N, -1, -1, -1 ) ) LWKOPT = MAX( LWKMIN, ( NB + 3 )*N ) WORK( 1 ) = LWKOPT END IF * IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) $ INFO = -17 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYEVX', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * M = 0 IF( N.EQ.0 ) THEN RETURN END IF * IF( N.EQ.1 ) THEN IF( ALLEIG .OR. INDEIG ) THEN M = 1 W( 1 ) = A( 1, 1 ) ELSE IF( VL.LT.A( 1, 1 ) .AND. VU.GE.A( 1, 1 ) ) THEN M = 1 W( 1 ) = A( 1, 1 ) END IF END IF IF( WANTZ ) $ Z( 1, 1 ) = ONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = MIN( SQRT( BIGNUM ), ONE / SQRT( SQRT( SAFMIN ) ) ) * * Scale matrix to allowable range, if necessary. * ISCALE = 0 ABSTLL = ABSTOL IF( VALEIG ) THEN VLL = VL VUU = VU END IF ANRM = DLANSY( 'M', UPLO, N, A, LDA, WORK ) IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) THEN IF( LOWER ) THEN DO 10 J = 1, N CALL DSCAL( N-J+1, SIGMA, A( J, J ), 1 ) 10 CONTINUE ELSE DO 20 J = 1, N CALL DSCAL( J, SIGMA, A( 1, J ), 1 ) 20 CONTINUE END IF IF( ABSTOL.GT.0 ) $ ABSTLL = ABSTOL*SIGMA IF( VALEIG ) THEN VLL = VL*SIGMA VUU = VU*SIGMA END IF END IF * * Call DSYTRD to reduce symmetric matrix to tridiagonal form. * INDTAU = 1 INDE = INDTAU + N INDD = INDE + N INDWRK = INDD + N LLWORK = LWORK - INDWRK + 1 CALL DSYTRD( UPLO, N, A, LDA, WORK( INDD ), WORK( INDE ), $ WORK( INDTAU ), WORK( INDWRK ), LLWORK, IINFO ) * * If all eigenvalues are desired and ABSTOL is less than or equal to * zero, then call DSTERF or DORGTR and SSTEQR. If this fails for * some eigenvalue, then try DSTEBZ. * TEST = .FALSE. IF( INDEIG ) THEN IF( IL.EQ.1 .AND. IU.EQ.N ) THEN TEST = .TRUE. END IF END IF IF( ( ALLEIG .OR. TEST ) .AND. ( ABSTOL.LE.ZERO ) ) THEN CALL DCOPY( N, WORK( INDD ), 1, W, 1 ) INDEE = INDWRK + 2*N IF( .NOT.WANTZ ) THEN CALL DCOPY( N-1, WORK( INDE ), 1, WORK( INDEE ), 1 ) CALL DSTERF( N, W, WORK( INDEE ), INFO ) ELSE CALL DLACPY( 'A', N, N, A, LDA, Z, LDZ ) CALL DORGTR( UPLO, N, Z, LDZ, WORK( INDTAU ), $ WORK( INDWRK ), LLWORK, IINFO ) CALL DCOPY( N-1, WORK( INDE ), 1, WORK( INDEE ), 1 ) CALL DSTEQR( JOBZ, N, W, WORK( INDEE ), Z, LDZ, $ WORK( INDWRK ), INFO ) IF( INFO.EQ.0 ) THEN DO 30 I = 1, N IFAIL( I ) = 0 30 CONTINUE END IF END IF IF( INFO.EQ.0 ) THEN M = N GO TO 40 END IF INFO = 0 END IF * * Otherwise, call DSTEBZ and, if eigenvectors are desired, SSTEIN. * IF( WANTZ ) THEN ORDER = 'B' ELSE ORDER = 'E' END IF INDIBL = 1 INDISP = INDIBL + N INDIWO = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, $ IWORK( INDIBL ), IWORK( INDISP ), WORK( INDWRK ), $ IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN CALL DSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) * * Apply orthogonal matrix used in reduction to tridiagonal * form to eigenvectors returned by DSTEIN. * INDWKN = INDE LLWRKN = LWORK - INDWKN + 1 CALL DORMTR( 'L', UPLO, 'N', N, M, A, LDA, WORK( INDTAU ), Z, $ LDZ, WORK( INDWKN ), LLWRKN, IINFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * 40 CONTINUE IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = M ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * * If eigenvalues are not in order, then sort them, along with * eigenvectors. * IF( WANTZ ) THEN DO 60 J = 1, M - 1 I = 0 TMP1 = W( J ) DO 50 JJ = J + 1, M IF( W( JJ ).LT.TMP1 ) THEN I = JJ TMP1 = W( JJ ) END IF 50 CONTINUE * IF( I.NE.0 ) THEN ITMP1 = IWORK( INDIBL+I-1 ) W( I ) = W( J ) IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) W( J ) = TMP1 IWORK( INDIBL+J-1 ) = ITMP1 CALL DSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) IFAIL( I ) = IFAIL( J ) IFAIL( J ) = ITMP1 END IF END IF 60 CONTINUE END IF * * Set WORK(1) to optimal workspace size. * WORK( 1 ) = LWKOPT * RETURN * * End of DSYEVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ieeeck.f0000644000000000000000000000013213543334726015156 xustar0030 mtime=1569569238.409645918 30 atime=1569569238.408645918 30 ctime=1569569238.409645918 elk-6.3.2/src/LAPACK/ieeeck.f0000644002504400250440000001072413543334726017231 0ustar00dewhurstdewhurst00000000000000*> \brief \b IEEECK * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download IEEECK + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) * * .. Scalar Arguments .. * INTEGER ISPEC * REAL ONE, ZERO * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> IEEECK is called from the ILAENV to verify that Infinity and *> possibly NaN arithmetic is safe (i.e. will not trap). *> \endverbatim * * Arguments: * ========== * *> \param[in] ISPEC *> \verbatim *> ISPEC is INTEGER *> Specifies whether to test just for inifinity arithmetic *> or whether to test for infinity and NaN arithmetic. *> = 0: Verify infinity arithmetic only. *> = 1: Verify infinity and NaN arithmetic. *> \endverbatim *> *> \param[in] ZERO *> \verbatim *> ZERO is REAL *> Must contain the value 0.0 *> This is passed to prevent the compiler from optimizing *> away this code. *> \endverbatim *> *> \param[in] ONE *> \verbatim *> ONE is REAL *> Must contain the value 1.0 *> This is passed to prevent the compiler from optimizing *> away this code. *> *> RETURN VALUE: INTEGER *> = 0: Arithmetic failed to produce the correct answers *> = 1: Arithmetic produced the correct answers *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== INTEGER FUNCTION IEEECK( ISPEC, ZERO, ONE ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER ISPEC REAL ONE, ZERO * .. * * ===================================================================== * * .. Local Scalars .. REAL NAN1, NAN2, NAN3, NAN4, NAN5, NAN6, NEGINF, $ NEGZRO, NEWZRO, POSINF * .. * .. Executable Statements .. IEEECK = 1 * POSINF = ONE / ZERO IF( POSINF.LE.ONE ) THEN IEEECK = 0 RETURN END IF * NEGINF = -ONE / ZERO IF( NEGINF.GE.ZERO ) THEN IEEECK = 0 RETURN END IF * NEGZRO = ONE / ( NEGINF+ONE ) IF( NEGZRO.NE.ZERO ) THEN IEEECK = 0 RETURN END IF * NEGINF = ONE / NEGZRO IF( NEGINF.GE.ZERO ) THEN IEEECK = 0 RETURN END IF * NEWZRO = NEGZRO + ZERO IF( NEWZRO.NE.ZERO ) THEN IEEECK = 0 RETURN END IF * POSINF = ONE / NEWZRO IF( POSINF.LE.ONE ) THEN IEEECK = 0 RETURN END IF * NEGINF = NEGINF*POSINF IF( NEGINF.GE.ZERO ) THEN IEEECK = 0 RETURN END IF * POSINF = POSINF*POSINF IF( POSINF.LE.ONE ) THEN IEEECK = 0 RETURN END IF * * * * * Return if we were only asked to check infinity arithmetic * IF( ISPEC.EQ.0 ) $ RETURN * NAN1 = POSINF + NEGINF * NAN2 = POSINF / NEGINF * NAN3 = POSINF / POSINF * NAN4 = POSINF*ZERO * NAN5 = NEGINF*NEGZRO * NAN6 = NAN5*ZERO * IF( NAN1.EQ.NAN1 ) THEN IEEECK = 0 RETURN END IF * IF( NAN2.EQ.NAN2 ) THEN IEEECK = 0 RETURN END IF * IF( NAN3.EQ.NAN3 ) THEN IEEECK = 0 RETURN END IF * IF( NAN4.EQ.NAN4 ) THEN IEEECK = 0 RETURN END IF * IF( NAN5.EQ.NAN5 ) THEN IEEECK = 0 RETURN END IF * IF( NAN6.EQ.NAN6 ) THEN IEEECK = 0 RETURN END IF * RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/iparmq.f0000644000000000000000000000013213543334726015222 xustar0030 mtime=1569569238.414645914 30 atime=1569569238.412645916 30 ctime=1569569238.414645914 elk-6.3.2/src/LAPACK/iparmq.f0000644002504400250440000003343013543334726017274 0ustar00dewhurstdewhurst00000000000000*> \brief \b IPARMQ * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download IPARMQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK ) * * .. Scalar Arguments .. * INTEGER IHI, ILO, ISPEC, LWORK, N * CHARACTER NAME*( * ), OPTS*( * ) * * *> \par Purpose: * ============= *> *> \verbatim *> *> This program sets problem and machine dependent parameters *> useful for xHSEQR and related subroutines for eigenvalue *> problems. It is called whenever *> IPARMQ is called with 12 <= ISPEC <= 16 *> \endverbatim * * Arguments: * ========== * *> \param[in] ISPEC *> \verbatim *> ISPEC is INTEGER *> ISPEC specifies which tunable parameter IPARMQ should *> return. *> *> ISPEC=12: (INMIN) Matrices of order nmin or less *> are sent directly to xLAHQR, the implicit *> double shift QR algorithm. NMIN must be *> at least 11. *> *> ISPEC=13: (INWIN) Size of the deflation window. *> This is best set greater than or equal to *> the number of simultaneous shifts NS. *> Larger matrices benefit from larger deflation *> windows. *> *> ISPEC=14: (INIBL) Determines when to stop nibbling and *> invest in an (expensive) multi-shift QR sweep. *> If the aggressive early deflation subroutine *> finds LD converged eigenvalues from an order *> NW deflation window and LD.GT.(NW*NIBBLE)/100, *> then the next QR sweep is skipped and early *> deflation is applied immediately to the *> remaining active diagonal block. Setting *> IPARMQ(ISPEC=14) = 0 causes TTQRE to skip a *> multi-shift QR sweep whenever early deflation *> finds a converged eigenvalue. Setting *> IPARMQ(ISPEC=14) greater than or equal to 100 *> prevents TTQRE from skipping a multi-shift *> QR sweep. *> *> ISPEC=15: (NSHFTS) The number of simultaneous shifts in *> a multi-shift QR iteration. *> *> ISPEC=16: (IACC22) IPARMQ is set to 0, 1 or 2 with the *> following meanings. *> 0: During the multi-shift QR/QZ sweep, *> blocked eigenvalue reordering, blocked *> Hessenberg-triangular reduction, *> reflections and/or rotations are not *> accumulated when updating the *> far-from-diagonal matrix entries. *> 1: During the multi-shift QR/QZ sweep, *> blocked eigenvalue reordering, blocked *> Hessenberg-triangular reduction, *> reflections and/or rotations are *> accumulated, and matrix-matrix *> multiplication is used to update the *> far-from-diagonal matrix entries. *> 2: During the multi-shift QR/QZ sweep, *> blocked eigenvalue reordering, blocked *> Hessenberg-triangular reduction, *> reflections and/or rotations are *> accumulated, and 2-by-2 block structure *> is exploited during matrix-matrix *> multiplies. *> (If xTRMM is slower than xGEMM, then *> IPARMQ(ISPEC=16)=1 may be more efficient than *> IPARMQ(ISPEC=16)=2 despite the greater level of *> arithmetic work implied by the latter choice.) *> \endverbatim *> *> \param[in] NAME *> \verbatim *> NAME is character string *> Name of the calling subroutine *> \endverbatim *> *> \param[in] OPTS *> \verbatim *> OPTS is character string *> This is a concatenation of the string arguments to *> TTQRE. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> N is the order of the Hessenberg matrix H. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> It is assumed that H is already upper triangular *> in rows and columns 1:ILO-1 and IHI+1:N. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The amount of workspace available. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Little is known about how best to choose these parameters. *> It is possible to use different values of the parameters *> for each of CHSEQR, DHSEQR, SHSEQR and ZHSEQR. *> *> It is probably best to choose different parameters for *> different matrices and different parameters at different *> times during the iteration, but this has not been *> implemented --- yet. *> *> *> The best choices of most of the parameters depend *> in an ill-understood way on the relative execution *> rate of xLAQR3 and xLAQR5 and on the nature of each *> particular eigenvalue problem. Experiment may be the *> only practical way to determine which choices are most *> effective. *> *> Following is a list of default values supplied by IPARMQ. *> These defaults may be adjusted in order to attain better *> performance in any particular computational environment. *> *> IPARMQ(ISPEC=12) The xLAHQR vs xLAQR0 crossover point. *> Default: 75. (Must be at least 11.) *> *> IPARMQ(ISPEC=13) Recommended deflation window size. *> This depends on ILO, IHI and NS, the *> number of simultaneous shifts returned *> by IPARMQ(ISPEC=15). The default for *> (IHI-ILO+1).LE.500 is NS. The default *> for (IHI-ILO+1).GT.500 is 3*NS/2. *> *> IPARMQ(ISPEC=14) Nibble crossover point. Default: 14. *> *> IPARMQ(ISPEC=15) Number of simultaneous shifts, NS. *> a multi-shift QR iteration. *> *> If IHI-ILO+1 is ... *> *> greater than ...but less ... the *> or equal to ... than default is *> *> 0 30 NS = 2+ *> 30 60 NS = 4+ *> 60 150 NS = 10 *> 150 590 NS = ** *> 590 3000 NS = 64 *> 3000 6000 NS = 128 *> 6000 infinity NS = 256 *> *> (+) By default matrices of this order are *> passed to the implicit double shift routine *> xLAHQR. See IPARMQ(ISPEC=12) above. These *> values of NS are used only in case of a rare *> xLAHQR failure. *> *> (**) The asterisks (**) indicate an ad-hoc *> function increasing from 10 to 64. *> *> IPARMQ(ISPEC=16) Select structured matrix multiply. *> (See ISPEC=16 above for details.) *> Default: 3. *> \endverbatim *> * ===================================================================== INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER IHI, ILO, ISPEC, LWORK, N CHARACTER NAME*( * ), OPTS*( * ) * * ================================================================ * .. Parameters .. INTEGER INMIN, INWIN, INIBL, ISHFTS, IACC22 PARAMETER ( INMIN = 12, INWIN = 13, INIBL = 14, $ ISHFTS = 15, IACC22 = 16 ) INTEGER NMIN, K22MIN, KACMIN, NIBBLE, KNWSWP PARAMETER ( NMIN = 75, K22MIN = 14, KACMIN = 14, $ NIBBLE = 14, KNWSWP = 500 ) REAL TWO PARAMETER ( TWO = 2.0 ) * .. * .. Local Scalars .. INTEGER NH, NS INTEGER I, IC, IZ CHARACTER SUBNAM*6 * .. * .. Intrinsic Functions .. INTRINSIC LOG, MAX, MOD, NINT, REAL * .. * .. Executable Statements .. IF( ( ISPEC.EQ.ISHFTS ) .OR. ( ISPEC.EQ.INWIN ) .OR. $ ( ISPEC.EQ.IACC22 ) ) THEN * * ==== Set the number simultaneous shifts ==== * NH = IHI - ILO + 1 NS = 2 IF( NH.GE.30 ) $ NS = 4 IF( NH.GE.60 ) $ NS = 10 IF( NH.GE.150 ) $ NS = MAX( 10, NH / NINT( LOG( REAL( NH ) ) / LOG( TWO ) ) ) IF( NH.GE.590 ) $ NS = 64 IF( NH.GE.3000 ) $ NS = 128 IF( NH.GE.6000 ) $ NS = 256 NS = MAX( 2, NS-MOD( NS, 2 ) ) END IF * IF( ISPEC.EQ.INMIN ) THEN * * * ===== Matrices of order smaller than NMIN get sent * . to xLAHQR, the classic double shift algorithm. * . This must be at least 11. ==== * IPARMQ = NMIN * ELSE IF( ISPEC.EQ.INIBL ) THEN * * ==== INIBL: skip a multi-shift qr iteration and * . whenever aggressive early deflation finds * . at least (NIBBLE*(window size)/100) deflations. ==== * IPARMQ = NIBBLE * ELSE IF( ISPEC.EQ.ISHFTS ) THEN * * ==== NSHFTS: The number of simultaneous shifts ===== * IPARMQ = NS * ELSE IF( ISPEC.EQ.INWIN ) THEN * * ==== NW: deflation window size. ==== * IF( NH.LE.KNWSWP ) THEN IPARMQ = NS ELSE IPARMQ = 3*NS / 2 END IF * ELSE IF( ISPEC.EQ.IACC22 ) THEN * * ==== IACC22: Whether to accumulate reflections * . before updating the far-from-diagonal elements * . and whether to use 2-by-2 block structure while * . doing it. A small amount of work could be saved * . by making this choice dependent also upon the * . NH=IHI-ILO+1. * * * Convert NAME to upper case if the first character is lower case. * IPARMQ = 0 SUBNAM = NAME IC = ICHAR( SUBNAM( 1: 1 ) ) IZ = ICHAR( 'Z' ) IF( IZ.EQ.90 .OR. IZ.EQ.122 ) THEN * * ASCII character set * IF( IC.GE.97 .AND. IC.LE.122 ) THEN SUBNAM( 1: 1 ) = CHAR( IC-32 ) DO I = 2, 6 IC = ICHAR( SUBNAM( I: I ) ) IF( IC.GE.97 .AND. IC.LE.122 ) $ SUBNAM( I: I ) = CHAR( IC-32 ) END DO END IF * ELSE IF( IZ.EQ.233 .OR. IZ.EQ.169 ) THEN * * EBCDIC character set * IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) ) THEN SUBNAM( 1: 1 ) = CHAR( IC+64 ) DO I = 2, 6 IC = ICHAR( SUBNAM( I: I ) ) IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. $ ( IC.GE.145 .AND. IC.LE.153 ) .OR. $ ( IC.GE.162 .AND. IC.LE.169 ) )SUBNAM( I: $ I ) = CHAR( IC+64 ) END DO END IF * ELSE IF( IZ.EQ.218 .OR. IZ.EQ.250 ) THEN * * Prime machines: ASCII+128 * IF( IC.GE.225 .AND. IC.LE.250 ) THEN SUBNAM( 1: 1 ) = CHAR( IC-32 ) DO I = 2, 6 IC = ICHAR( SUBNAM( I: I ) ) IF( IC.GE.225 .AND. IC.LE.250 ) $ SUBNAM( I: I ) = CHAR( IC-32 ) END DO END IF END IF * IF( SUBNAM( 2:6 ).EQ.'GGHRD' .OR. $ SUBNAM( 2:6 ).EQ.'GGHD3' ) THEN IPARMQ = 1 IF( NH.GE.K22MIN ) $ IPARMQ = 2 ELSE IF ( SUBNAM( 4:6 ).EQ.'EXC' ) THEN IF( NH.GE.KACMIN ) $ IPARMQ = 1 IF( NH.GE.K22MIN ) $ IPARMQ = 2 ELSE IF ( SUBNAM( 2:6 ).EQ.'HSEQR' .OR. $ SUBNAM( 2:5 ).EQ.'LAQR' ) THEN IF( NS.GE.KACMIN ) $ IPARMQ = 1 IF( NS.GE.K22MIN ) $ IPARMQ = 2 END IF * ELSE * ===== invalid value of ispec ===== IPARMQ = -1 * END IF * * ==== End of IPARMQ ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ztrevc3.f0000644000000000000000000000013213543334726015331 xustar0030 mtime=1569569238.419645911 30 atime=1569569238.417645913 30 ctime=1569569238.419645911 elk-6.3.2/src/LAPACK/ztrevc3.f0000644002504400250440000005123713543334726017410 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTREVC3 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZTREVC3 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZTREVC3( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR, * $ LDVR, MM, M, WORK, LWORK, RWORK, LRWORK, INFO) * * .. Scalar Arguments .. * CHARACTER HOWMNY, SIDE * INTEGER INFO, LDT, LDVL, LDVR, LWORK, M, MM, N * .. * .. Array Arguments .. * LOGICAL SELECT( * ) * DOUBLE PRECISION RWORK( * ) * COMPLEX*16 T( LDT, * ), VL( LDVL, * ), VR( LDVR, * ), * $ WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTREVC3 computes some or all of the right and/or left eigenvectors of *> a complex upper triangular matrix T. *> Matrices of this type are produced by the Schur factorization of *> a complex general matrix: A = Q*T*Q**H, as computed by ZHSEQR. *> *> The right eigenvector x and the left eigenvector y of T corresponding *> to an eigenvalue w are defined by: *> *> T*x = w*x, (y**H)*T = w*(y**H) *> *> where y**H denotes the conjugate transpose of the vector y. *> The eigenvalues are not input to this routine, but are read directly *> from the diagonal of T. *> *> This routine returns the matrices X and/or Y of right and left *> eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an *> input matrix. If Q is the unitary factor that reduces a matrix A to *> Schur form T, then Q*X and Q*Y are the matrices of right and left *> eigenvectors of A. *> *> This uses a Level 3 BLAS version of the back transformation. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'R': compute right eigenvectors only; *> = 'L': compute left eigenvectors only; *> = 'B': compute both right and left eigenvectors. *> \endverbatim *> *> \param[in] HOWMNY *> \verbatim *> HOWMNY is CHARACTER*1 *> = 'A': compute all right and/or left eigenvectors; *> = 'B': compute all right and/or left eigenvectors, *> backtransformed using the matrices supplied in *> VR and/or VL; *> = 'S': compute selected right and/or left eigenvectors, *> as indicated by the logical array SELECT. *> \endverbatim *> *> \param[in] SELECT *> \verbatim *> SELECT is LOGICAL array, dimension (N) *> If HOWMNY = 'S', SELECT specifies the eigenvectors to be *> computed. *> The eigenvector corresponding to the j-th eigenvalue is *> computed if SELECT(j) = .TRUE.. *> Not referenced if HOWMNY = 'A' or 'B'. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix T. N >= 0. *> \endverbatim *> *> \param[in,out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,N) *> The upper triangular matrix T. T is modified, but restored *> on exit. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= max(1,N). *> \endverbatim *> *> \param[in,out] VL *> \verbatim *> VL is COMPLEX*16 array, dimension (LDVL,MM) *> On entry, if SIDE = 'L' or 'B' and HOWMNY = 'B', VL must *> contain an N-by-N matrix Q (usually the unitary matrix Q of *> Schur vectors returned by ZHSEQR). *> On exit, if SIDE = 'L' or 'B', VL contains: *> if HOWMNY = 'A', the matrix Y of left eigenvectors of T; *> if HOWMNY = 'B', the matrix Q*Y; *> if HOWMNY = 'S', the left eigenvectors of T specified by *> SELECT, stored consecutively in the columns *> of VL, in the same order as their *> eigenvalues. *> Not referenced if SIDE = 'R'. *> \endverbatim *> *> \param[in] LDVL *> \verbatim *> LDVL is INTEGER *> The leading dimension of the array VL. *> LDVL >= 1, and if SIDE = 'L' or 'B', LDVL >= N. *> \endverbatim *> *> \param[in,out] VR *> \verbatim *> VR is COMPLEX*16 array, dimension (LDVR,MM) *> On entry, if SIDE = 'R' or 'B' and HOWMNY = 'B', VR must *> contain an N-by-N matrix Q (usually the unitary matrix Q of *> Schur vectors returned by ZHSEQR). *> On exit, if SIDE = 'R' or 'B', VR contains: *> if HOWMNY = 'A', the matrix X of right eigenvectors of T; *> if HOWMNY = 'B', the matrix Q*X; *> if HOWMNY = 'S', the right eigenvectors of T specified by *> SELECT, stored consecutively in the columns *> of VR, in the same order as their *> eigenvalues. *> Not referenced if SIDE = 'L'. *> \endverbatim *> *> \param[in] LDVR *> \verbatim *> LDVR is INTEGER *> The leading dimension of the array VR. *> LDVR >= 1, and if SIDE = 'R' or 'B', LDVR >= N. *> \endverbatim *> *> \param[in] MM *> \verbatim *> MM is INTEGER *> The number of columns in the arrays VL and/or VR. MM >= M. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The number of columns in the arrays VL and/or VR actually *> used to store the eigenvectors. *> If HOWMNY = 'A' or 'B', M is set to N. *> Each selected eigenvector occupies one column. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of array WORK. LWORK >= max(1,2*N). *> For optimum performance, LWORK >= N + 2*N*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (LRWORK) *> \endverbatim *> *> \param[in] LRWORK *> \verbatim *> LRWORK is INTEGER *> The dimension of array RWORK. LRWORK >= max(1,N). *> *> If LRWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the RWORK array, returns *> this value as the first entry of the RWORK array, and no error *> message related to LRWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * * @precisions fortran z -> c * *> \ingroup complex16OTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The algorithm used in this program is basically backward (forward) *> substitution, with scaling to make the the code robust against *> possible overflow. *> *> Each eigenvector is normalized so that the element of largest *> magnitude has magnitude 1; here the magnitude of a complex number *> (x,y) is taken to be |x| + |y|. *> \endverbatim *> * ===================================================================== SUBROUTINE ZTREVC3( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR, $ LDVR, MM, M, WORK, LWORK, RWORK, LRWORK, INFO) IMPLICIT NONE * * -- LAPACK computational routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. CHARACTER HOWMNY, SIDE INTEGER INFO, LDT, LDVL, LDVR, LWORK, LRWORK, M, MM, N * .. * .. Array Arguments .. LOGICAL SELECT( * ) DOUBLE PRECISION RWORK( * ) COMPLEX*16 T( LDT, * ), VL( LDVL, * ), VR( LDVR, * ), $ WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), $ CONE = ( 1.0D+0, 0.0D+0 ) ) INTEGER NBMIN, NBMAX PARAMETER ( NBMIN = 8, NBMAX = 128 ) * .. * .. Local Scalars .. LOGICAL ALLV, BOTHV, LEFTV, LQUERY, OVER, RIGHTV, SOMEV INTEGER I, II, IS, J, K, KI, IV, MAXWRK, NB DOUBLE PRECISION OVFL, REMAX, SCALE, SMIN, SMLNUM, ULP, UNFL COMPLEX*16 CDUM * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV, IZAMAX DOUBLE PRECISION DLAMCH, DZASUM EXTERNAL LSAME, ILAENV, IZAMAX, DLAMCH, DZASUM * .. * .. External Subroutines .. EXTERNAL XERBLA, ZCOPY, ZDSCAL, ZGEMV, ZLATRS, $ ZGEMM, DLABAD, ZLASET, ZLACPY * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, CONJG, AIMAG, MAX * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( AIMAG( CDUM ) ) * .. * .. Executable Statements .. * * Decode and test the input parameters * BOTHV = LSAME( SIDE, 'B' ) RIGHTV = LSAME( SIDE, 'R' ) .OR. BOTHV LEFTV = LSAME( SIDE, 'L' ) .OR. BOTHV * ALLV = LSAME( HOWMNY, 'A' ) OVER = LSAME( HOWMNY, 'B' ) SOMEV = LSAME( HOWMNY, 'S' ) * * Set M to the number of columns required to store the selected * eigenvectors. * IF( SOMEV ) THEN M = 0 DO 10 J = 1, N IF( SELECT( J ) ) $ M = M + 1 10 CONTINUE ELSE M = N END IF * INFO = 0 NB = ILAENV( 1, 'ZTREVC', SIDE // HOWMNY, N, -1, -1, -1 ) MAXWRK = N + 2*N*NB WORK(1) = MAXWRK RWORK(1) = N LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 ) IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN INFO = -1 ELSE IF( .NOT.ALLV .AND. .NOT.OVER .AND. .NOT.SOMEV ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDT.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( LDVL.LT.1 .OR. ( LEFTV .AND. LDVL.LT.N ) ) THEN INFO = -8 ELSE IF( LDVR.LT.1 .OR. ( RIGHTV .AND. LDVR.LT.N ) ) THEN INFO = -10 ELSE IF( MM.LT.M ) THEN INFO = -11 ELSE IF( LWORK.LT.MAX( 1, 2*N ) .AND. .NOT.LQUERY ) THEN INFO = -14 ELSE IF ( LRWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -16 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZTREVC3', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible. * IF( N.EQ.0 ) $ RETURN * * Use blocked version of back-transformation if sufficient workspace. * Zero-out the workspace to avoid potential NaN propagation. * IF( OVER .AND. LWORK .GE. N + 2*N*NBMIN ) THEN NB = (LWORK - N) / (2*N) NB = MIN( NB, NBMAX ) CALL ZLASET( 'F', N, 1+2*NB, CZERO, CZERO, WORK, N ) ELSE NB = 1 END IF * * Set the constants to control overflow. * UNFL = DLAMCH( 'Safe minimum' ) OVFL = ONE / UNFL CALL DLABAD( UNFL, OVFL ) ULP = DLAMCH( 'Precision' ) SMLNUM = UNFL*( N / ULP ) * * Store the diagonal elements of T in working array WORK. * DO 20 I = 1, N WORK( I ) = T( I, I ) 20 CONTINUE * * Compute 1-norm of each column of strictly upper triangular * part of T to control overflow in triangular solver. * RWORK( 1 ) = ZERO DO 30 J = 2, N RWORK( J ) = DZASUM( J-1, T( 1, J ), 1 ) 30 CONTINUE * IF( RIGHTV ) THEN * * ============================================================ * Compute right eigenvectors. * * IV is index of column in current block. * Non-blocked version always uses IV=NB=1; * blocked version starts with IV=NB, goes down to 1. * (Note the "0-th" column is used to store the original diagonal.) IV = NB IS = M DO 80 KI = N, 1, -1 IF( SOMEV ) THEN IF( .NOT.SELECT( KI ) ) $ GO TO 80 END IF SMIN = MAX( ULP*( CABS1( T( KI, KI ) ) ), SMLNUM ) * * -------------------------------------------------------- * Complex right eigenvector * WORK( KI + IV*N ) = CONE * * Form right-hand side. * DO 40 K = 1, KI - 1 WORK( K + IV*N ) = -T( K, KI ) 40 CONTINUE * * Solve upper triangular system: * [ T(1:KI-1,1:KI-1) - T(KI,KI) ]*X = SCALE*WORK. * DO 50 K = 1, KI - 1 T( K, K ) = T( K, K ) - T( KI, KI ) IF( CABS1( T( K, K ) ).LT.SMIN ) $ T( K, K ) = SMIN 50 CONTINUE * IF( KI.GT.1 ) THEN CALL ZLATRS( 'Upper', 'No transpose', 'Non-unit', 'Y', $ KI-1, T, LDT, WORK( 1 + IV*N ), SCALE, $ RWORK, INFO ) WORK( KI + IV*N ) = SCALE END IF * * Copy the vector x or Q*x to VR and normalize. * IF( .NOT.OVER ) THEN * ------------------------------ * no back-transform: copy x to VR and normalize. CALL ZCOPY( KI, WORK( 1 + IV*N ), 1, VR( 1, IS ), 1 ) * II = IZAMAX( KI, VR( 1, IS ), 1 ) REMAX = ONE / CABS1( VR( II, IS ) ) CALL ZDSCAL( KI, REMAX, VR( 1, IS ), 1 ) * DO 60 K = KI + 1, N VR( K, IS ) = CZERO 60 CONTINUE * ELSE IF( NB.EQ.1 ) THEN * ------------------------------ * version 1: back-transform each vector with GEMV, Q*x. IF( KI.GT.1 ) $ CALL ZGEMV( 'N', N, KI-1, CONE, VR, LDVR, $ WORK( 1 + IV*N ), 1, DCMPLX( SCALE ), $ VR( 1, KI ), 1 ) * II = IZAMAX( N, VR( 1, KI ), 1 ) REMAX = ONE / CABS1( VR( II, KI ) ) CALL ZDSCAL( N, REMAX, VR( 1, KI ), 1 ) * ELSE * ------------------------------ * version 2: back-transform block of vectors with GEMM * zero out below vector DO K = KI + 1, N WORK( K + IV*N ) = CZERO END DO * * Columns IV:NB of work are valid vectors. * When the number of vectors stored reaches NB, * or if this was last vector, do the GEMM IF( (IV.EQ.1) .OR. (KI.EQ.1) ) THEN CALL ZGEMM( 'N', 'N', N, NB-IV+1, KI+NB-IV, CONE, $ VR, LDVR, $ WORK( 1 + (IV)*N ), N, $ CZERO, $ WORK( 1 + (NB+IV)*N ), N ) * normalize vectors DO K = IV, NB II = IZAMAX( N, WORK( 1 + (NB+K)*N ), 1 ) REMAX = ONE / CABS1( WORK( II + (NB+K)*N ) ) CALL ZDSCAL( N, REMAX, WORK( 1 + (NB+K)*N ), 1 ) END DO CALL ZLACPY( 'F', N, NB-IV+1, $ WORK( 1 + (NB+IV)*N ), N, $ VR( 1, KI ), LDVR ) IV = NB ELSE IV = IV - 1 END IF END IF * * Restore the original diagonal elements of T. * DO 70 K = 1, KI - 1 T( K, K ) = WORK( K ) 70 CONTINUE * IS = IS - 1 80 CONTINUE END IF * IF( LEFTV ) THEN * * ============================================================ * Compute left eigenvectors. * * IV is index of column in current block. * Non-blocked version always uses IV=1; * blocked version starts with IV=1, goes up to NB. * (Note the "0-th" column is used to store the original diagonal.) IV = 1 IS = 1 DO 130 KI = 1, N * IF( SOMEV ) THEN IF( .NOT.SELECT( KI ) ) $ GO TO 130 END IF SMIN = MAX( ULP*( CABS1( T( KI, KI ) ) ), SMLNUM ) * * -------------------------------------------------------- * Complex left eigenvector * WORK( KI + IV*N ) = CONE * * Form right-hand side. * DO 90 K = KI + 1, N WORK( K + IV*N ) = -CONJG( T( KI, K ) ) 90 CONTINUE * * Solve conjugate-transposed triangular system: * [ T(KI+1:N,KI+1:N) - T(KI,KI) ]**H * X = SCALE*WORK. * DO 100 K = KI + 1, N T( K, K ) = T( K, K ) - T( KI, KI ) IF( CABS1( T( K, K ) ).LT.SMIN ) $ T( K, K ) = SMIN 100 CONTINUE * IF( KI.LT.N ) THEN CALL ZLATRS( 'Upper', 'Conjugate transpose', 'Non-unit', $ 'Y', N-KI, T( KI+1, KI+1 ), LDT, $ WORK( KI+1 + IV*N ), SCALE, RWORK, INFO ) WORK( KI + IV*N ) = SCALE END IF * * Copy the vector x or Q*x to VL and normalize. * IF( .NOT.OVER ) THEN * ------------------------------ * no back-transform: copy x to VL and normalize. CALL ZCOPY( N-KI+1, WORK( KI + IV*N ), 1, VL(KI,IS), 1 ) * II = IZAMAX( N-KI+1, VL( KI, IS ), 1 ) + KI - 1 REMAX = ONE / CABS1( VL( II, IS ) ) CALL ZDSCAL( N-KI+1, REMAX, VL( KI, IS ), 1 ) * DO 110 K = 1, KI - 1 VL( K, IS ) = CZERO 110 CONTINUE * ELSE IF( NB.EQ.1 ) THEN * ------------------------------ * version 1: back-transform each vector with GEMV, Q*x. IF( KI.LT.N ) $ CALL ZGEMV( 'N', N, N-KI, CONE, VL( 1, KI+1 ), LDVL, $ WORK( KI+1 + IV*N ), 1, DCMPLX( SCALE ), $ VL( 1, KI ), 1 ) * II = IZAMAX( N, VL( 1, KI ), 1 ) REMAX = ONE / CABS1( VL( II, KI ) ) CALL ZDSCAL( N, REMAX, VL( 1, KI ), 1 ) * ELSE * ------------------------------ * version 2: back-transform block of vectors with GEMM * zero out above vector * could go from KI-NV+1 to KI-1 DO K = 1, KI - 1 WORK( K + IV*N ) = CZERO END DO * * Columns 1:IV of work are valid vectors. * When the number of vectors stored reaches NB, * or if this was last vector, do the GEMM IF( (IV.EQ.NB) .OR. (KI.EQ.N) ) THEN CALL ZGEMM( 'N', 'N', N, IV, N-KI+IV, CONE, $ VL( 1, KI-IV+1 ), LDVL, $ WORK( KI-IV+1 + (1)*N ), N, $ CZERO, $ WORK( 1 + (NB+1)*N ), N ) * normalize vectors DO K = 1, IV II = IZAMAX( N, WORK( 1 + (NB+K)*N ), 1 ) REMAX = ONE / CABS1( WORK( II + (NB+K)*N ) ) CALL ZDSCAL( N, REMAX, WORK( 1 + (NB+K)*N ), 1 ) END DO CALL ZLACPY( 'F', N, IV, $ WORK( 1 + (NB+1)*N ), N, $ VL( 1, KI-IV+1 ), LDVL ) IV = 1 ELSE IV = IV + 1 END IF END IF * * Restore the original diagonal elements of T. * DO 120 K = KI + 1, N T( K, K ) = WORK( K ) 120 CONTINUE * IS = IS + 1 130 CONTINUE END IF * RETURN * * End of ZTREVC3 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhseqr.f0000644000000000000000000000013213543334726015245 xustar0030 mtime=1569569238.425645907 30 atime=1569569238.422645909 30 ctime=1569569238.425645907 elk-6.3.2/src/LAPACK/zhseqr.f0000644002504400250440000004303013543334726017314 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHSEQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHSEQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, ILO, INFO, LDH, LDZ, LWORK, N * CHARACTER COMPZ, JOB * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHSEQR computes the eigenvalues of a Hessenberg matrix H *> and, optionally, the matrices T and Z from the Schur decomposition *> H = Z T Z**H, where T is an upper triangular matrix (the *> Schur form), and Z is the unitary matrix of Schur vectors. *> *> Optionally Z may be postmultiplied into an input unitary *> matrix Q so that this routine can give the Schur factorization *> of a matrix A which has been reduced to the Hessenberg form H *> by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOB *> \verbatim *> JOB is CHARACTER*1 *> = 'E': compute eigenvalues only; *> = 'S': compute eigenvalues and the Schur form T. *> \endverbatim *> *> \param[in] COMPZ *> \verbatim *> COMPZ is CHARACTER*1 *> = 'N': no Schur vectors are computed; *> = 'I': Z is initialized to the unit matrix and the matrix Z *> of Schur vectors of H is returned; *> = 'V': Z must contain an unitary matrix Q on entry, and *> the product Q*Z is returned. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix H. N .GE. 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> *> It is assumed that H is already upper triangular in rows *> and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally *> set by a previous call to ZGEBAL, and then passed to ZGEHRD *> when the matrix output by ZGEBAL is reduced to Hessenberg *> form. Otherwise ILO and IHI should be set to 1 and N *> respectively. If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N. *> If N = 0, then ILO = 1 and IHI = 0. *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On entry, the upper Hessenberg matrix H. *> On exit, if INFO = 0 and JOB = 'S', H contains the upper *> triangular matrix T from the Schur decomposition (the *> Schur form). If INFO = 0 and JOB = 'E', the contents of *> H are unspecified on exit. (The output value of H when *> INFO.GT.0 is given under the description of INFO below.) *> *> Unlike earlier versions of ZHSEQR, this subroutine may *> explicitly H(i,j) = 0 for i.GT.j and j = 1, 2, ... ILO-1 *> or j = IHI+1, IHI+2, ... N. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> The leading dimension of the array H. LDH .GE. max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> The computed eigenvalues. If JOB = 'S', the eigenvalues are *> stored in the same order as on the diagonal of the Schur *> form returned in H, with W(i) = H(i,i). *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,N) *> If COMPZ = 'N', Z is not referenced. *> If COMPZ = 'I', on entry Z need not be set and on exit, *> if INFO = 0, Z contains the unitary matrix Z of the Schur *> vectors of H. If COMPZ = 'V', on entry Z must contain an *> N-by-N matrix Q, which is assumed to be equal to the unit *> matrix except for the submatrix Z(ILO:IHI,ILO:IHI). On exit, *> if INFO = 0, Z contains Q*Z. *> Normally Q is the unitary matrix generated by ZUNGHR *> after the call to ZGEHRD which formed the Hessenberg matrix *> H. (The output value of Z when INFO.GT.0 is given under *> the description of INFO below.) *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. if COMPZ = 'I' or *> COMPZ = 'V', then LDZ.GE.MAX(1,N). Otherwize, LDZ.GE.1. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (LWORK) *> On exit, if INFO = 0, WORK(1) returns an estimate of *> the optimal value for LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK .GE. max(1,N) *> is sufficient and delivers very good and sometimes *> optimal performance. However, LWORK as large as 11*N *> may be required for optimal performance. A workspace *> query is recommended to determine the optimal workspace *> size. *> *> If LWORK = -1, then ZHSEQR does a workspace query. *> In this case, ZHSEQR checks the input parameters and *> estimates the optimal workspace size for the given *> values of N, ILO and IHI. The estimate is returned *> in WORK(1). No error message related to LWORK is *> issued by XERBLA. Neither H nor Z are accessed. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> .LT. 0: if INFO = -i, the i-th argument had an illegal *> value *> .GT. 0: if INFO = i, ZHSEQR failed to compute all of *> the eigenvalues. Elements 1:ilo-1 and i+1:n of WR *> and WI contain those eigenvalues which have been *> successfully computed. (Failures are rare.) *> *> If INFO .GT. 0 and JOB = 'E', then on exit, the *> remaining unconverged eigenvalues are the eigen- *> values of the upper Hessenberg matrix rows and *> columns ILO through INFO of the final, output *> value of H. *> *> If INFO .GT. 0 and JOB = 'S', then on exit *> *> (*) (initial value of H)*U = U*(final value of H) *> *> where U is a unitary matrix. The final *> value of H is upper Hessenberg and triangular in *> rows and columns INFO+1 through IHI. *> *> If INFO .GT. 0 and COMPZ = 'V', then on exit *> *> (final value of Z) = (initial value of Z)*U *> *> where U is the unitary matrix in (*) (regard- *> less of the value of JOB.) *> *> If INFO .GT. 0 and COMPZ = 'I', then on exit *> (final value of Z) = U *> where U is the unitary matrix in (*) (regard- *> less of the value of JOB.) *> *> If INFO .GT. 0 and COMPZ = 'N', then Z is not *> accessed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA * *> \par Further Details: * ===================== *> *> \verbatim *> *> Default values supplied by *> ILAENV(ISPEC,'ZHSEQR',JOB(:1)//COMPZ(:1),N,ILO,IHI,LWORK). *> It is suggested that these defaults be adjusted in order *> to attain best performance in each particular *> computational environment. *> *> ISPEC=12: The ZLAHQR vs ZLAQR0 crossover point. *> Default: 75. (Must be at least 11.) *> *> ISPEC=13: Recommended deflation window size. *> This depends on ILO, IHI and NS. NS is the *> number of simultaneous shifts returned *> by ILAENV(ISPEC=15). (See ISPEC=15 below.) *> The default for (IHI-ILO+1).LE.500 is NS. *> The default for (IHI-ILO+1).GT.500 is 3*NS/2. *> *> ISPEC=14: Nibble crossover point. (See IPARMQ for *> details.) Default: 14% of deflation window *> size. *> *> ISPEC=15: Number of simultaneous shifts in a multishift *> QR iteration. *> *> If IHI-ILO+1 is ... *> *> greater than ...but less ... the *> or equal to ... than default is *> *> 1 30 NS = 2(+) *> 30 60 NS = 4(+) *> 60 150 NS = 10(+) *> 150 590 NS = ** *> 590 3000 NS = 64 *> 3000 6000 NS = 128 *> 6000 infinity NS = 256 *> *> (+) By default some or all matrices of this order *> are passed to the implicit double shift routine *> ZLAHQR and this parameter is ignored. See *> ISPEC=12 above and comments in IPARMQ for *> details. *> *> (**) The asterisks (**) indicate an ad-hoc *> function of N increasing from 10 to 64. *> *> ISPEC=16: Select structured matrix multiply. *> If the number of simultaneous shifts (specified *> by ISPEC=15) is less than 14, then the default *> for ISPEC=16 is 0. Otherwise the default for *> ISPEC=16 is 2. *> \endverbatim * *> \par References: * ================ *> *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part I: Maintaining Well Focused Shifts, and Level 3 *> Performance, SIAM Journal of Matrix Analysis, volume 23, pages *> 929--947, 2002. *> \n *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part II: Aggressive Early Deflation, SIAM Journal *> of Matrix Analysis, volume 23, pages 948--973, 2002. * * ===================================================================== SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, ILO, INFO, LDH, LDZ, LWORK, N CHARACTER COMPZ, JOB * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. * * ==== Matrices of order NTINY or smaller must be processed by * . ZLAHQR because of insufficient subdiagonal scratch space. * . (This is a hard limit.) ==== INTEGER NTINY PARAMETER ( NTINY = 11 ) * * ==== NL allocates some local workspace to help small matrices * . through a rare ZLAHQR failure. NL .GT. NTINY = 11 is * . required and NL .LE. NMIN = ILAENV(ISPEC=12,...) is recom- * . mended. (The default value of NMIN is 75.) Using NL = 49 * . allows up to six simultaneous shifts and a 16-by-16 * . deflation window. ==== INTEGER NL PARAMETER ( NL = 49 ) COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION RZERO PARAMETER ( RZERO = 0.0d0 ) * .. * .. Local Arrays .. COMPLEX*16 HL( NL, NL ), WORKL( NL ) * .. * .. Local Scalars .. INTEGER KBOT, NMIN LOGICAL INITZ, LQUERY, WANTT, WANTZ * .. * .. External Functions .. INTEGER ILAENV LOGICAL LSAME EXTERNAL ILAENV, LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZCOPY, ZLACPY, ZLAHQR, ZLAQR0, ZLASET * .. * .. Intrinsic Functions .. INTRINSIC DBLE, DCMPLX, MAX, MIN * .. * .. Executable Statements .. * * ==== Decode and check the input parameters. ==== * WANTT = LSAME( JOB, 'S' ) INITZ = LSAME( COMPZ, 'I' ) WANTZ = INITZ .OR. LSAME( COMPZ, 'V' ) WORK( 1 ) = DCMPLX( DBLE( MAX( 1, N ) ), RZERO ) LQUERY = LWORK.EQ.-1 * INFO = 0 IF( .NOT.LSAME( JOB, 'E' ) .AND. .NOT.WANTT ) THEN INFO = -1 ELSE IF( .NOT.LSAME( COMPZ, 'N' ) .AND. .NOT.WANTZ ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( ILO.LT.1 .OR. ILO.GT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( IHI.LT.MIN( ILO, N ) .OR. IHI.GT.N ) THEN INFO = -5 ELSE IF( LDH.LT.MAX( 1, N ) ) THEN INFO = -7 ELSE IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.MAX( 1, N ) ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.NE.0 ) THEN * * ==== Quick return in case of invalid argument. ==== * CALL XERBLA( 'ZHSEQR', -INFO ) RETURN * ELSE IF( N.EQ.0 ) THEN * * ==== Quick return in case N = 0; nothing to do. ==== * RETURN * ELSE IF( LQUERY ) THEN * * ==== Quick return in case of a workspace query ==== * CALL ZLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILO, IHI, Z, $ LDZ, WORK, LWORK, INFO ) * ==== Ensure reported workspace size is backward-compatible with * . previous LAPACK versions. ==== WORK( 1 ) = DCMPLX( MAX( DBLE( WORK( 1 ) ), DBLE( MAX( 1, $ N ) ) ), RZERO ) RETURN * ELSE * * ==== copy eigenvalues isolated by ZGEBAL ==== * IF( ILO.GT.1 ) $ CALL ZCOPY( ILO-1, H, LDH+1, W, 1 ) IF( IHI.LT.N ) $ CALL ZCOPY( N-IHI, H( IHI+1, IHI+1 ), LDH+1, W( IHI+1 ), 1 ) * * ==== Initialize Z, if requested ==== * IF( INITZ ) $ CALL ZLASET( 'A', N, N, ZERO, ONE, Z, LDZ ) * * ==== Quick return if possible ==== * IF( ILO.EQ.IHI ) THEN W( ILO ) = H( ILO, ILO ) RETURN END IF * * ==== ZLAHQR/ZLAQR0 crossover point ==== * NMIN = ILAENV( 12, 'ZHSEQR', JOB( : 1 ) // COMPZ( : 1 ), N, $ ILO, IHI, LWORK ) NMIN = MAX( NTINY, NMIN ) * * ==== ZLAQR0 for big matrices; ZLAHQR for small ones ==== * IF( N.GT.NMIN ) THEN CALL ZLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILO, IHI, $ Z, LDZ, WORK, LWORK, INFO ) ELSE * * ==== Small matrix ==== * CALL ZLAHQR( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILO, IHI, $ Z, LDZ, INFO ) * IF( INFO.GT.0 ) THEN * * ==== A rare ZLAHQR failure! ZLAQR0 sometimes succeeds * . when ZLAHQR fails. ==== * KBOT = INFO * IF( N.GE.NL ) THEN * * ==== Larger matrices have enough subdiagonal scratch * . space to call ZLAQR0 directly. ==== * CALL ZLAQR0( WANTT, WANTZ, N, ILO, KBOT, H, LDH, W, $ ILO, IHI, Z, LDZ, WORK, LWORK, INFO ) * ELSE * * ==== Tiny matrices don't have enough subdiagonal * . scratch space to benefit from ZLAQR0. Hence, * . tiny matrices must be copied into a larger * . array before calling ZLAQR0. ==== * CALL ZLACPY( 'A', N, N, H, LDH, HL, NL ) HL( N+1, N ) = ZERO CALL ZLASET( 'A', NL, NL-N, ZERO, ZERO, HL( 1, N+1 ), $ NL ) CALL ZLAQR0( WANTT, WANTZ, NL, ILO, KBOT, HL, NL, W, $ ILO, IHI, Z, LDZ, WORKL, NL, INFO ) IF( WANTT .OR. INFO.NE.0 ) $ CALL ZLACPY( 'A', N, N, HL, NL, H, LDH ) END IF END IF END IF * * ==== Clear out the trash, if necessary. ==== * IF( ( WANTT .OR. INFO.NE.0 ) .AND. N.GT.2 ) $ CALL ZLASET( 'L', N-2, N-2, ZERO, ZERO, H( 3, 1 ), LDH ) * * ==== Ensure reported workspace size is backward-compatible with * . previous LAPACK versions. ==== * WORK( 1 ) = DCMPLX( MAX( DBLE( MAX( 1, N ) ), $ DBLE( WORK( 1 ) ) ), RZERO ) END IF * * ==== End of ZHSEQR ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlabad.f0000644000000000000000000000013213543334726015140 xustar0030 mtime=1569569238.429645905 30 atime=1569569238.428645906 30 ctime=1569569238.429645905 elk-6.3.2/src/LAPACK/dlabad.f0000644002504400250440000000601513543334726017211 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLABAD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLABAD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLABAD( SMALL, LARGE ) * * .. Scalar Arguments .. * DOUBLE PRECISION LARGE, SMALL * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLABAD takes as input the values computed by DLAMCH for underflow and *> overflow, and returns the square root of each of these values if the *> log of LARGE is sufficiently large. This subroutine is intended to *> identify machines with a large exponent range, such as the Crays, and *> redefine the underflow and overflow limits to be the square roots of *> the values computed by DLAMCH. This subroutine is needed because *> DLAMCH does not compensate for poor arithmetic in the upper half of *> the exponent range, as is found on a Cray. *> \endverbatim * * Arguments: * ========== * *> \param[in,out] SMALL *> \verbatim *> SMALL is DOUBLE PRECISION *> On entry, the underflow threshold as computed by DLAMCH. *> On exit, if LOG10(LARGE) is sufficiently large, the square *> root of SMALL, otherwise unchanged. *> \endverbatim *> *> \param[in,out] LARGE *> \verbatim *> LARGE is DOUBLE PRECISION *> On entry, the overflow threshold as computed by DLAMCH. *> On exit, if LOG10(LARGE) is sufficiently large, the square *> root of LARGE, otherwise unchanged. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLABAD( SMALL, LARGE ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION LARGE, SMALL * .. * * ===================================================================== * * .. Intrinsic Functions .. INTRINSIC LOG10, SQRT * .. * .. Executable Statements .. * * If it looks like we're on a Cray, take the square root of * SMALL and LARGE to avoid overflow and underflow problems. * IF( LOG10( LARGE ).GT.2000.D0 ) THEN SMALL = SQRT( SMALL ) LARGE = SQRT( LARGE ) END IF * RETURN * * End of DLABAD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlange.f0000644000000000000000000000013213543334726015211 xustar0030 mtime=1569569238.433645902 30 atime=1569569238.432645903 30 ctime=1569569238.433645902 elk-6.3.2/src/LAPACK/zlange.f0000644002504400250440000001341713543334726017266 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLANGE + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION ZLANGE( NORM, M, N, A, LDA, WORK ) * * .. Scalar Arguments .. * CHARACTER NORM * INTEGER LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION WORK( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLANGE returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> complex matrix A. *> \endverbatim *> *> \return ZLANGE *> \verbatim *> *> ZLANGE = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in ZLANGE as described *> above. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. When M = 0, *> ZLANGE is set to zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. When N = 0, *> ZLANGE is set to zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The m by n matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(M,1). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), *> where LWORK >= M when NORM = 'I'; otherwise, WORK is not *> referenced. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION ZLANGE( NORM, M, N, A, LDA, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM INTEGER LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION WORK( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J DOUBLE PRECISION SCALE, SUM, VALUE, TEMP * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. External Subroutines .. EXTERNAL ZLASSQ * .. * .. Intrinsic Functions .. INTRINSIC ABS, MIN, SQRT * .. * .. Executable Statements .. * IF( MIN( M, N ).EQ.0 ) THEN VALUE = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * VALUE = ZERO DO 20 J = 1, N DO 10 I = 1, M TEMP = ABS( A( I, J ) ) IF( VALUE.LT.TEMP .OR. DISNAN( TEMP ) ) VALUE = TEMP 10 CONTINUE 20 CONTINUE ELSE IF( ( LSAME( NORM, 'O' ) ) .OR. ( NORM.EQ.'1' ) ) THEN * * Find norm1(A). * VALUE = ZERO DO 40 J = 1, N SUM = ZERO DO 30 I = 1, M SUM = SUM + ABS( A( I, J ) ) 30 CONTINUE IF( VALUE.LT.SUM .OR. DISNAN( SUM ) ) VALUE = SUM 40 CONTINUE ELSE IF( LSAME( NORM, 'I' ) ) THEN * * Find normI(A). * DO 50 I = 1, M WORK( I ) = ZERO 50 CONTINUE DO 70 J = 1, N DO 60 I = 1, M WORK( I ) = WORK( I ) + ABS( A( I, J ) ) 60 CONTINUE 70 CONTINUE VALUE = ZERO DO 80 I = 1, M TEMP = WORK( I ) IF( VALUE.LT.TEMP .OR. DISNAN( TEMP ) ) VALUE = TEMP 80 CONTINUE ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE DO 90 J = 1, N CALL ZLASSQ( M, A( 1, J ), 1, SCALE, SUM ) 90 CONTINUE VALUE = SCALE*SQRT( SUM ) END IF * ZLANGE = VALUE RETURN * * End of ZLANGE * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlascl.f0000644000000000000000000000013013543334726015217 xustar0030 mtime=1569569238.438645899 28 atime=1569569238.4366459 30 ctime=1569569238.438645899 elk-6.3.2/src/LAPACK/zlascl.f0000644002504400250440000002343513543334726017277 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLASCL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLASCL( TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER TYPE * INTEGER INFO, KL, KU, LDA, M, N * DOUBLE PRECISION CFROM, CTO * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLASCL multiplies the M by N complex matrix A by the real scalar *> CTO/CFROM. This is done without over/underflow as long as the final *> result CTO*A(I,J)/CFROM does not over/underflow. TYPE specifies that *> A may be full, upper triangular, lower triangular, upper Hessenberg, *> or banded. *> \endverbatim * * Arguments: * ========== * *> \param[in] TYPE *> \verbatim *> TYPE is CHARACTER*1 *> TYPE indices the storage type of the input matrix. *> = 'G': A is a full matrix. *> = 'L': A is a lower triangular matrix. *> = 'U': A is an upper triangular matrix. *> = 'H': A is an upper Hessenberg matrix. *> = 'B': A is a symmetric band matrix with lower bandwidth KL *> and upper bandwidth KU and with the only the lower *> half stored. *> = 'Q': A is a symmetric band matrix with lower bandwidth KL *> and upper bandwidth KU and with the only the upper *> half stored. *> = 'Z': A is a band matrix with lower bandwidth KL and upper *> bandwidth KU. See ZGBTRF for storage details. *> \endverbatim *> *> \param[in] KL *> \verbatim *> KL is INTEGER *> The lower bandwidth of A. Referenced only if TYPE = 'B', *> 'Q' or 'Z'. *> \endverbatim *> *> \param[in] KU *> \verbatim *> KU is INTEGER *> The upper bandwidth of A. Referenced only if TYPE = 'B', *> 'Q' or 'Z'. *> \endverbatim *> *> \param[in] CFROM *> \verbatim *> CFROM is DOUBLE PRECISION *> \endverbatim *> *> \param[in] CTO *> \verbatim *> CTO is DOUBLE PRECISION *> *> The matrix A is multiplied by CTO/CFROM. A(I,J) is computed *> without over/underflow if the final result CTO*A(I,J)/CFROM *> can be represented without over/underflow. CFROM must be *> nonzero. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The matrix to be multiplied by CTO/CFROM. See TYPE for the *> storage type. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If TYPE = 'G', 'L', 'U', 'H', LDA >= max(1,M); *> TYPE = 'B', LDA >= KL+1; *> TYPE = 'Q', LDA >= KU+1; *> TYPE = 'Z', LDA >= 2*KL+KU+1. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> 0 - successful exit *> <0 - if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLASCL( TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER TYPE INTEGER INFO, KL, KU, LDA, M, N DOUBLE PRECISION CFROM, CTO * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL DONE INTEGER I, ITYPE, J, K1, K2, K3, K4 DOUBLE PRECISION BIGNUM, CFROM1, CFROMC, CTO1, CTOC, MUL, SMLNUM * .. * .. External Functions .. LOGICAL LSAME, DISNAN DOUBLE PRECISION DLAMCH EXTERNAL LSAME, DLAMCH, DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 * IF( LSAME( TYPE, 'G' ) ) THEN ITYPE = 0 ELSE IF( LSAME( TYPE, 'L' ) ) THEN ITYPE = 1 ELSE IF( LSAME( TYPE, 'U' ) ) THEN ITYPE = 2 ELSE IF( LSAME( TYPE, 'H' ) ) THEN ITYPE = 3 ELSE IF( LSAME( TYPE, 'B' ) ) THEN ITYPE = 4 ELSE IF( LSAME( TYPE, 'Q' ) ) THEN ITYPE = 5 ELSE IF( LSAME( TYPE, 'Z' ) ) THEN ITYPE = 6 ELSE ITYPE = -1 END IF * IF( ITYPE.EQ.-1 ) THEN INFO = -1 ELSE IF( CFROM.EQ.ZERO .OR. DISNAN(CFROM) ) THEN INFO = -4 ELSE IF( DISNAN(CTO) ) THEN INFO = -5 ELSE IF( M.LT.0 ) THEN INFO = -6 ELSE IF( N.LT.0 .OR. ( ITYPE.EQ.4 .AND. N.NE.M ) .OR. $ ( ITYPE.EQ.5 .AND. N.NE.M ) ) THEN INFO = -7 ELSE IF( ITYPE.LE.3 .AND. LDA.LT.MAX( 1, M ) ) THEN INFO = -9 ELSE IF( ITYPE.GE.4 ) THEN IF( KL.LT.0 .OR. KL.GT.MAX( M-1, 0 ) ) THEN INFO = -2 ELSE IF( KU.LT.0 .OR. KU.GT.MAX( N-1, 0 ) .OR. $ ( ( ITYPE.EQ.4 .OR. ITYPE.EQ.5 ) .AND. KL.NE.KU ) ) $ THEN INFO = -3 ELSE IF( ( ITYPE.EQ.4 .AND. LDA.LT.KL+1 ) .OR. $ ( ITYPE.EQ.5 .AND. LDA.LT.KU+1 ) .OR. $ ( ITYPE.EQ.6 .AND. LDA.LT.2*KL+KU+1 ) ) THEN INFO = -9 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZLASCL', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. M.EQ.0 ) $ RETURN * * Get machine parameters * SMLNUM = DLAMCH( 'S' ) BIGNUM = ONE / SMLNUM * CFROMC = CFROM CTOC = CTO * 10 CONTINUE CFROM1 = CFROMC*SMLNUM IF( CFROM1.EQ.CFROMC ) THEN ! CFROMC is an inf. Multiply by a correctly signed zero for ! finite CTOC, or a NaN if CTOC is infinite. MUL = CTOC / CFROMC DONE = .TRUE. CTO1 = CTOC ELSE CTO1 = CTOC / BIGNUM IF( CTO1.EQ.CTOC ) THEN ! CTOC is either 0 or an inf. In both cases, CTOC itself ! serves as the correct multiplication factor. MUL = CTOC DONE = .TRUE. CFROMC = ONE ELSE IF( ABS( CFROM1 ).GT.ABS( CTOC ) .AND. CTOC.NE.ZERO ) THEN MUL = SMLNUM DONE = .FALSE. CFROMC = CFROM1 ELSE IF( ABS( CTO1 ).GT.ABS( CFROMC ) ) THEN MUL = BIGNUM DONE = .FALSE. CTOC = CTO1 ELSE MUL = CTOC / CFROMC DONE = .TRUE. END IF END IF * IF( ITYPE.EQ.0 ) THEN * * Full matrix * DO 30 J = 1, N DO 20 I = 1, M A( I, J ) = A( I, J )*MUL 20 CONTINUE 30 CONTINUE * ELSE IF( ITYPE.EQ.1 ) THEN * * Lower triangular matrix * DO 50 J = 1, N DO 40 I = J, M A( I, J ) = A( I, J )*MUL 40 CONTINUE 50 CONTINUE * ELSE IF( ITYPE.EQ.2 ) THEN * * Upper triangular matrix * DO 70 J = 1, N DO 60 I = 1, MIN( J, M ) A( I, J ) = A( I, J )*MUL 60 CONTINUE 70 CONTINUE * ELSE IF( ITYPE.EQ.3 ) THEN * * Upper Hessenberg matrix * DO 90 J = 1, N DO 80 I = 1, MIN( J+1, M ) A( I, J ) = A( I, J )*MUL 80 CONTINUE 90 CONTINUE * ELSE IF( ITYPE.EQ.4 ) THEN * * Lower half of a symmetric band matrix * K3 = KL + 1 K4 = N + 1 DO 110 J = 1, N DO 100 I = 1, MIN( K3, K4-J ) A( I, J ) = A( I, J )*MUL 100 CONTINUE 110 CONTINUE * ELSE IF( ITYPE.EQ.5 ) THEN * * Upper half of a symmetric band matrix * K1 = KU + 2 K3 = KU + 1 DO 130 J = 1, N DO 120 I = MAX( K1-J, 1 ), K3 A( I, J ) = A( I, J )*MUL 120 CONTINUE 130 CONTINUE * ELSE IF( ITYPE.EQ.6 ) THEN * * Band matrix * K1 = KL + KU + 2 K2 = KL + 1 K3 = 2*KL + KU + 1 K4 = KL + KU + 1 + M DO 150 J = 1, N DO 140 I = MAX( K1-J, K2 ), MIN( K3, K4-J ) A( I, J ) = A( I, J )*MUL 140 CONTINUE 150 CONTINUE * END IF * IF( .NOT.DONE ) $ GO TO 10 * RETURN * * End of ZLASCL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgebal.f0000644000000000000000000000013213543334726015175 xustar0030 mtime=1569569238.442645897 30 atime=1569569238.441645897 30 ctime=1569569238.442645897 elk-6.3.2/src/LAPACK/zgebal.f0000644002504400250440000002471613543334726017256 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEBAL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEBAL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) * * .. Scalar Arguments .. * CHARACTER JOB * INTEGER IHI, ILO, INFO, LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION SCALE( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEBAL balances a general complex matrix A. This involves, first, *> permuting A by a similarity transformation to isolate eigenvalues *> in the first 1 to ILO-1 and last IHI+1 to N elements on the *> diagonal; and second, applying a diagonal similarity transformation *> to rows and columns ILO to IHI to make the rows and columns as *> close in norm as possible. Both steps are optional. *> *> Balancing may reduce the 1-norm of the matrix, and improve the *> accuracy of the computed eigenvalues and/or eigenvectors. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOB *> \verbatim *> JOB is CHARACTER*1 *> Specifies the operations to be performed on A: *> = 'N': none: simply set ILO = 1, IHI = N, SCALE(I) = 1.0 *> for i = 1,...,N; *> = 'P': permute only; *> = 'S': scale only; *> = 'B': both permute and scale. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the input matrix A. *> On exit, A is overwritten by the balanced matrix. *> If JOB = 'N', A is not referenced. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[out] IHI *> \verbatim *> IHI is INTEGER *> ILO and IHI are set to INTEGER such that on exit *> A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N. *> If JOB = 'N' or 'S', ILO = 1 and IHI = N. *> \endverbatim *> *> \param[out] SCALE *> \verbatim *> SCALE is DOUBLE PRECISION array, dimension (N) *> Details of the permutations and scaling factors applied to *> A. If P(j) is the index of the row and column interchanged *> with row and column j and D(j) is the scaling factor *> applied to row and column j, then *> SCALE(j) = P(j) for j = 1,...,ILO-1 *> = D(j) for j = ILO,...,IHI *> = P(j) for j = IHI+1,...,N. *> The order in which the interchanges are made is N to IHI+1, *> then 1 to ILO-1. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The permutations consist of row and column interchanges which put *> the matrix in the form *> *> ( T1 X Y ) *> P A P = ( 0 B Z ) *> ( 0 0 T2 ) *> *> where T1 and T2 are upper triangular matrices whose eigenvalues lie *> along the diagonal. The column indices ILO and IHI mark the starting *> and ending columns of the submatrix B. Balancing consists of applying *> a diagonal similarity transformation inv(D) * B * D to make the *> 1-norms of each row of B and its corresponding column nearly equal. *> The output matrix is *> *> ( T1 X*D Y ) *> ( 0 inv(D)*B*D inv(D)*Z ). *> ( 0 0 T2 ) *> *> Information about the permutations P and the diagonal matrix D is *> returned in the vector SCALE. *> *> This subroutine is based on the EISPACK routine CBAL. *> *> Modified by Tzu-Yi Chen, Computer Science Division, University of *> California at Berkeley, USA *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. CHARACTER JOB INTEGER IHI, ILO, INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION SCALE( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) DOUBLE PRECISION SCLFAC PARAMETER ( SCLFAC = 2.0D+0 ) DOUBLE PRECISION FACTOR PARAMETER ( FACTOR = 0.95D+0 ) * .. * .. Local Scalars .. LOGICAL NOCONV INTEGER I, ICA, IEXC, IRA, J, K, L, M DOUBLE PRECISION C, CA, F, G, R, RA, S, SFMAX1, SFMAX2, SFMIN1, $ SFMIN2 * .. * .. External Functions .. LOGICAL DISNAN, LSAME INTEGER IZAMAX DOUBLE PRECISION DLAMCH, DZNRM2 EXTERNAL DISNAN, LSAME, IZAMAX, DLAMCH, DZNRM2 * .. * .. External Subroutines .. EXTERNAL XERBLA, ZDSCAL, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DIMAG, MAX, MIN * * Test the input parameters * INFO = 0 IF( .NOT.LSAME( JOB, 'N' ) .AND. .NOT.LSAME( JOB, 'P' ) .AND. $ .NOT.LSAME( JOB, 'S' ) .AND. .NOT.LSAME( JOB, 'B' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEBAL', -INFO ) RETURN END IF * K = 1 L = N * IF( N.EQ.0 ) $ GO TO 210 * IF( LSAME( JOB, 'N' ) ) THEN DO 10 I = 1, N SCALE( I ) = ONE 10 CONTINUE GO TO 210 END IF * IF( LSAME( JOB, 'S' ) ) $ GO TO 120 * * Permutation to isolate eigenvalues if possible * GO TO 50 * * Row and column exchange. * 20 CONTINUE SCALE( M ) = J IF( J.EQ.M ) $ GO TO 30 * CALL ZSWAP( L, A( 1, J ), 1, A( 1, M ), 1 ) CALL ZSWAP( N-K+1, A( J, K ), LDA, A( M, K ), LDA ) * 30 CONTINUE GO TO ( 40, 80 )IEXC * * Search for rows isolating an eigenvalue and push them down. * 40 CONTINUE IF( L.EQ.1 ) $ GO TO 210 L = L - 1 * 50 CONTINUE DO 70 J = L, 1, -1 * DO 60 I = 1, L IF( I.EQ.J ) $ GO TO 60 IF( DBLE( A( J, I ) ).NE.ZERO .OR. DIMAG( A( J, I ) ).NE. $ ZERO )GO TO 70 60 CONTINUE * M = L IEXC = 1 GO TO 20 70 CONTINUE * GO TO 90 * * Search for columns isolating an eigenvalue and push them left. * 80 CONTINUE K = K + 1 * 90 CONTINUE DO 110 J = K, L * DO 100 I = K, L IF( I.EQ.J ) $ GO TO 100 IF( DBLE( A( I, J ) ).NE.ZERO .OR. DIMAG( A( I, J ) ).NE. $ ZERO )GO TO 110 100 CONTINUE * M = K IEXC = 2 GO TO 20 110 CONTINUE * 120 CONTINUE DO 130 I = K, L SCALE( I ) = ONE 130 CONTINUE * IF( LSAME( JOB, 'P' ) ) $ GO TO 210 * * Balance the submatrix in rows K to L. * * Iterative loop for norm reduction * SFMIN1 = DLAMCH( 'S' ) / DLAMCH( 'P' ) SFMAX1 = ONE / SFMIN1 SFMIN2 = SFMIN1*SCLFAC SFMAX2 = ONE / SFMIN2 140 CONTINUE NOCONV = .FALSE. * DO 200 I = K, L * C = DZNRM2( L-K+1, A( K, I ), 1 ) R = DZNRM2( L-K+1, A( I, K ), LDA ) ICA = IZAMAX( L, A( 1, I ), 1 ) CA = ABS( A( ICA, I ) ) IRA = IZAMAX( N-K+1, A( I, K ), LDA ) RA = ABS( A( I, IRA+K-1 ) ) * * Guard against zero C or R due to underflow. * IF( C.EQ.ZERO .OR. R.EQ.ZERO ) $ GO TO 200 G = R / SCLFAC F = ONE S = C + R 160 CONTINUE IF( C.GE.G .OR. MAX( F, C, CA ).GE.SFMAX2 .OR. $ MIN( R, G, RA ).LE.SFMIN2 )GO TO 170 IF( DISNAN( C+F+CA+R+G+RA ) ) THEN * * Exit if NaN to avoid infinite loop * INFO = -3 CALL XERBLA( 'ZGEBAL', -INFO ) RETURN END IF F = F*SCLFAC C = C*SCLFAC CA = CA*SCLFAC R = R / SCLFAC G = G / SCLFAC RA = RA / SCLFAC GO TO 160 * 170 CONTINUE G = C / SCLFAC 180 CONTINUE IF( G.LT.R .OR. MAX( R, RA ).GE.SFMAX2 .OR. $ MIN( F, C, G, CA ).LE.SFMIN2 )GO TO 190 F = F / SCLFAC C = C / SCLFAC G = G / SCLFAC CA = CA / SCLFAC R = R*SCLFAC RA = RA*SCLFAC GO TO 180 * * Now balance. * 190 CONTINUE IF( ( C+R ).GE.FACTOR*S ) $ GO TO 200 IF( F.LT.ONE .AND. SCALE( I ).LT.ONE ) THEN IF( F*SCALE( I ).LE.SFMIN1 ) $ GO TO 200 END IF IF( F.GT.ONE .AND. SCALE( I ).GT.ONE ) THEN IF( SCALE( I ).GE.SFMAX1 / F ) $ GO TO 200 END IF G = ONE / F SCALE( I ) = SCALE( I )*F NOCONV = .TRUE. * CALL ZDSCAL( N-K+1, G, A( I, K ), LDA ) CALL ZDSCAL( L, F, A( 1, I ), 1 ) * 200 CONTINUE * IF( NOCONV ) $ GO TO 140 * 210 CONTINUE ILO = K IHI = L * RETURN * * End of ZGEBAL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgehrd.f0000644000000000000000000000013213543334726015214 xustar0030 mtime=1569569238.447645893 30 atime=1569569238.445645895 30 ctime=1569569238.447645893 elk-6.3.2/src/LAPACK/zgehrd.f0000644002504400250440000002525513543334726017274 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEHRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEHRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, ILO, INFO, LDA, LWORK, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEHRD reduces a complex general matrix A to upper Hessenberg form H by *> an unitary similarity transformation: Q**H * A * Q = H . *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> *> It is assumed that A is already upper triangular in rows *> and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally *> set by a previous call to ZGEBAL; otherwise they should be *> set to 1 and N respectively. See Further Details. *> 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the N-by-N general matrix to be reduced. *> On exit, the upper triangle and the first subdiagonal of A *> are overwritten with the upper Hessenberg matrix H, and the *> elements below the first subdiagonal, with the array TAU, *> represent the unitary matrix Q as a product of elementary *> reflectors. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). Elements 1:ILO-1 and IHI:N-1 of TAU are set to *> zero. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (LWORK) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,N). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of (ihi-ilo) elementary *> reflectors *> *> Q = H(ilo) H(ilo+1) . . . H(ihi-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i) = 0, v(i+1) = 1 and v(ihi+1:n) = 0; v(i+2:ihi) is stored on *> exit in A(i+2:ihi,i), and tau in TAU(i). *> *> The contents of A are illustrated by the following example, with *> n = 7, ilo = 2 and ihi = 6: *> *> on entry, on exit, *> *> ( a a a a a a a ) ( a a h h h h a ) *> ( a a a a a a ) ( a h h h h a ) *> ( a a a a a a ) ( h h h h h h ) *> ( a a a a a a ) ( v2 h h h h h ) *> ( a a a a a a ) ( v2 v3 h h h h ) *> ( a a a a a a ) ( v2 v3 v4 h h h ) *> ( a ) ( a ) *> *> where a denotes an element of the original matrix A, h denotes a *> modified element of the upper Hessenberg matrix H, and vi denotes an *> element of the vector defining H(i). *> *> This file is a slight modification of LAPACK-3.0's DGEHRD *> subroutine incorporating improvements proposed by Quintana-Orti and *> Van de Geijn (2006). (See DLAHR2.) *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, ILO, INFO, LDA, LWORK, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWT, J, LDWORK, LWKOPT, NB, $ NBMIN, NH, NX COMPLEX*16 EI * .. * .. External Subroutines .. EXTERNAL ZAXPY, ZGEHD2, ZGEMM, ZLAHR2, ZLARFB, ZTRMM, $ XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) IF( N.LT.0 ) THEN INFO = -1 ELSE IF( ILO.LT.1 .OR. ILO.GT.MAX( 1, N ) ) THEN INFO = -2 ELSE IF( IHI.LT.MIN( ILO, N ) .OR. IHI.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * NB = MIN( NBMAX, ILAENV( 1, 'ZGEHRD', ' ', N, ILO, IHI, -1 ) ) LWKOPT = N*NB + TSIZE WORK( 1 ) = LWKOPT ENDIF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEHRD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Set elements 1:ILO-1 and IHI:N-1 of TAU to zero * DO 10 I = 1, ILO - 1 TAU( I ) = ZERO 10 CONTINUE DO 20 I = MAX( 1, IHI ), N - 1 TAU( I ) = ZERO 20 CONTINUE * * Quick return if possible * NH = IHI - ILO + 1 IF( NH.LE.1 ) THEN WORK( 1 ) = 1 RETURN END IF * * Determine the block size * NB = MIN( NBMAX, ILAENV( 1, 'ZGEHRD', ' ', N, ILO, IHI, -1 ) ) NBMIN = 2 IF( NB.GT.1 .AND. NB.LT.NH ) THEN * * Determine when to cross over from blocked to unblocked code * (last block is always handled by unblocked code) * NX = MAX( NB, ILAENV( 3, 'ZGEHRD', ' ', N, ILO, IHI, -1 ) ) IF( NX.LT.NH ) THEN * * Determine if workspace is large enough for blocked code * IF( LWORK.LT.N*NB+TSIZE ) THEN * * Not enough workspace to use optimal NB: determine the * minimum value of NB, and reduce NB or force use of * unblocked code * NBMIN = MAX( 2, ILAENV( 2, 'ZGEHRD', ' ', N, ILO, IHI, $ -1 ) ) IF( LWORK.GE.(N*NBMIN + TSIZE) ) THEN NB = (LWORK-TSIZE) / N ELSE NB = 1 END IF END IF END IF END IF LDWORK = N * IF( NB.LT.NBMIN .OR. NB.GE.NH ) THEN * * Use unblocked code below * I = ILO * ELSE * * Use blocked code * IWT = 1 + N*NB DO 40 I = ILO, IHI - 1 - NX, NB IB = MIN( NB, IHI-I ) * * Reduce columns i:i+ib-1 to Hessenberg form, returning the * matrices V and T of the block reflector H = I - V*T*V**H * which performs the reduction, and also the matrix Y = A*V*T * CALL ZLAHR2( IHI, I, IB, A( 1, I ), LDA, TAU( I ), $ WORK( IWT ), LDT, WORK, LDWORK ) * * Apply the block reflector H to A(1:ihi,i+ib:ihi) from the * right, computing A := A - Y * V**H. V(i+ib,ib-1) must be set * to 1 * EI = A( I+IB, I+IB-1 ) A( I+IB, I+IB-1 ) = ONE CALL ZGEMM( 'No transpose', 'Conjugate transpose', $ IHI, IHI-I-IB+1, $ IB, -ONE, WORK, LDWORK, A( I+IB, I ), LDA, ONE, $ A( 1, I+IB ), LDA ) A( I+IB, I+IB-1 ) = EI * * Apply the block reflector H to A(1:i,i+1:i+ib-1) from the * right * CALL ZTRMM( 'Right', 'Lower', 'Conjugate transpose', $ 'Unit', I, IB-1, $ ONE, A( I+1, I ), LDA, WORK, LDWORK ) DO 30 J = 0, IB-2 CALL ZAXPY( I, -ONE, WORK( LDWORK*J+1 ), 1, $ A( 1, I+J+1 ), 1 ) 30 CONTINUE * * Apply the block reflector H to A(i+1:ihi,i+ib:n) from the * left * CALL ZLARFB( 'Left', 'Conjugate transpose', 'Forward', $ 'Columnwise', $ IHI-I, N-I-IB+1, IB, A( I+1, I ), LDA, $ WORK( IWT ), LDT, A( I+1, I+IB ), LDA, $ WORK, LDWORK ) 40 CONTINUE END IF * * Use unblocked code to reduce the rest of the matrix * CALL ZGEHD2( N, I, IHI, A, LDA, TAU, WORK, IINFO ) WORK( 1 ) = LWKOPT * RETURN * * End of ZGEHRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlacpy.f0000644000000000000000000000013213543334726015233 xustar0030 mtime=1569569238.451645891 30 atime=1569569238.450645891 30 ctime=1569569238.451645891 elk-6.3.2/src/LAPACK/zlacpy.f0000644002504400250440000000775413543334726017317 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLACPY copies all or part of one two-dimensional array to another. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLACPY + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER LDA, LDB, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLACPY copies all or part of a two-dimensional matrix A to another *> matrix B. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies the part of the matrix A to be copied to B. *> = 'U': Upper triangular part *> = 'L': Lower triangular part *> Otherwise: All of the matrix A *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The m by n matrix A. If UPLO = 'U', only the upper trapezium *> is accessed; if UPLO = 'L', only the lower trapezium is *> accessed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,N) *> On exit, B = A in the locations specified by UPLO. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER LDA, LDB, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * IF( LSAME( UPLO, 'U' ) ) THEN DO 20 J = 1, N DO 10 I = 1, MIN( J, M ) B( I, J ) = A( I, J ) 10 CONTINUE 20 CONTINUE * ELSE IF( LSAME( UPLO, 'L' ) ) THEN DO 40 J = 1, N DO 30 I = J, M B( I, J ) = A( I, J ) 30 CONTINUE 40 CONTINUE * ELSE DO 60 J = 1, N DO 50 I = 1, M B( I, J ) = A( I, J ) 50 CONTINUE 60 CONTINUE END IF * RETURN * * End of ZLACPY * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunghr.f0000644000000000000000000000013213543334726015246 xustar0030 mtime=1569569238.456645888 30 atime=1569569238.454645889 30 ctime=1569569238.456645888 elk-6.3.2/src/LAPACK/zunghr.f0000644002504400250440000001470713543334726017326 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGHR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGHR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGHR( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, ILO, INFO, LDA, LWORK, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGHR generates a complex unitary matrix Q which is defined as the *> product of IHI-ILO elementary reflectors of order N, as returned by *> ZGEHRD: *> *> Q = H(ilo) H(ilo+1) . . . H(ihi-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix Q. N >= 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> *> ILO and IHI must have the same values as in the previous call *> of ZGEHRD. Q is equal to the unit matrix except in the *> submatrix Q(ilo+1:ihi,ilo+1:ihi). *> 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the vectors which define the elementary reflectors, *> as returned by ZGEHRD. *> On exit, the N-by-N unitary matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEHRD. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= IHI-ILO. *> For optimum performance LWORK >= (IHI-ILO)*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNGHR( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, ILO, INFO, LDA, LWORK, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IINFO, J, LWKOPT, NB, NH * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNGQR * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NH = IHI - ILO LQUERY = ( LWORK.EQ.-1 ) IF( N.LT.0 ) THEN INFO = -1 ELSE IF( ILO.LT.1 .OR. ILO.GT.MAX( 1, N ) ) THEN INFO = -2 ELSE IF( IHI.LT.MIN( ILO, N ) .OR. IHI.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LWORK.LT.MAX( 1, NH ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF * IF( INFO.EQ.0 ) THEN NB = ILAENV( 1, 'ZUNGQR', ' ', NH, NH, NH, -1 ) LWKOPT = MAX( 1, NH )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGHR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * * Shift the vectors which define the elementary reflectors one * column to the right, and set the first ilo and the last n-ihi * rows and columns to those of the unit matrix * DO 40 J = IHI, ILO + 1, -1 DO 10 I = 1, J - 1 A( I, J ) = ZERO 10 CONTINUE DO 20 I = J + 1, IHI A( I, J ) = A( I, J-1 ) 20 CONTINUE DO 30 I = IHI + 1, N A( I, J ) = ZERO 30 CONTINUE 40 CONTINUE DO 60 J = 1, ILO DO 50 I = 1, N A( I, J ) = ZERO 50 CONTINUE A( J, J ) = ONE 60 CONTINUE DO 80 J = IHI + 1, N DO 70 I = 1, N A( I, J ) = ZERO 70 CONTINUE A( J, J ) = ONE 80 CONTINUE * IF( NH.GT.0 ) THEN * * Generate Q(ilo+1:ihi,ilo+1:ihi) * CALL ZUNGQR( NH, NH, NH, A( ILO+1, ILO+1 ), LDA, TAU( ILO ), $ WORK, LWORK, IINFO ) END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNGHR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgebak.f0000644000000000000000000000013213543334726015174 xustar0030 mtime=1569569238.460645885 30 atime=1569569238.459645886 30 ctime=1569569238.460645885 elk-6.3.2/src/LAPACK/zgebak.f0000644002504400250440000001615713543334726017255 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEBAK * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEBAK + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, * INFO ) * * .. Scalar Arguments .. * CHARACTER JOB, SIDE * INTEGER IHI, ILO, INFO, LDV, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION SCALE( * ) * COMPLEX*16 V( LDV, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEBAK forms the right or left eigenvectors of a complex general *> matrix by backward transformation on the computed eigenvectors of the *> balanced matrix output by ZGEBAL. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOB *> \verbatim *> JOB is CHARACTER*1 *> Specifies the type of backward transformation required: *> = 'N', do nothing, return immediately; *> = 'P', do backward transformation for permutation only; *> = 'S', do backward transformation for scaling only; *> = 'B', do backward transformations for both permutation and *> scaling. *> JOB must be the same as the argument JOB supplied to ZGEBAL. *> \endverbatim *> *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'R': V contains right eigenvectors; *> = 'L': V contains left eigenvectors. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of rows of the matrix V. N >= 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> The integers ILO and IHI determined by ZGEBAL. *> 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0. *> \endverbatim *> *> \param[in] SCALE *> \verbatim *> SCALE is DOUBLE PRECISION array, dimension (N) *> Details of the permutation and scaling factors, as returned *> by ZGEBAL. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of columns of the matrix V. M >= 0. *> \endverbatim *> *> \param[in,out] V *> \verbatim *> V is COMPLEX*16 array, dimension (LDV,M) *> On entry, the matrix of right or left eigenvectors to be *> transformed, as returned by ZHSEIN or ZTREVC. *> On exit, V is overwritten by the transformed eigenvectors. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of the array V. LDV >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * * ===================================================================== SUBROUTINE ZGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOB, SIDE INTEGER IHI, ILO, INFO, LDV, M, N * .. * .. Array Arguments .. DOUBLE PRECISION SCALE( * ) COMPLEX*16 V( LDV, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LEFTV, RIGHTV INTEGER I, II, K DOUBLE PRECISION S * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZDSCAL, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Decode and Test the input parameters * RIGHTV = LSAME( SIDE, 'R' ) LEFTV = LSAME( SIDE, 'L' ) * INFO = 0 IF( .NOT.LSAME( JOB, 'N' ) .AND. .NOT.LSAME( JOB, 'P' ) .AND. $ .NOT.LSAME( JOB, 'S' ) .AND. .NOT.LSAME( JOB, 'B' ) ) THEN INFO = -1 ELSE IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( ILO.LT.1 .OR. ILO.GT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( IHI.LT.MIN( ILO, N ) .OR. IHI.GT.N ) THEN INFO = -5 ELSE IF( M.LT.0 ) THEN INFO = -7 ELSE IF( LDV.LT.MAX( 1, N ) ) THEN INFO = -9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEBAK', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN IF( M.EQ.0 ) $ RETURN IF( LSAME( JOB, 'N' ) ) $ RETURN * IF( ILO.EQ.IHI ) $ GO TO 30 * * Backward balance * IF( LSAME( JOB, 'S' ) .OR. LSAME( JOB, 'B' ) ) THEN * IF( RIGHTV ) THEN DO 10 I = ILO, IHI S = SCALE( I ) CALL ZDSCAL( M, S, V( I, 1 ), LDV ) 10 CONTINUE END IF * IF( LEFTV ) THEN DO 20 I = ILO, IHI S = ONE / SCALE( I ) CALL ZDSCAL( M, S, V( I, 1 ), LDV ) 20 CONTINUE END IF * END IF * * Backward permutation * * For I = ILO-1 step -1 until 1, * IHI+1 step 1 until N do -- * 30 CONTINUE IF( LSAME( JOB, 'P' ) .OR. LSAME( JOB, 'B' ) ) THEN IF( RIGHTV ) THEN DO 40 II = 1, N I = II IF( I.GE.ILO .AND. I.LE.IHI ) $ GO TO 40 IF( I.LT.ILO ) $ I = ILO - II K = SCALE( I ) IF( K.EQ.I ) $ GO TO 40 CALL ZSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) 40 CONTINUE END IF * IF( LEFTV ) THEN DO 50 II = 1, N I = II IF( I.GE.ILO .AND. I.LE.IHI ) $ GO TO 50 IF( I.LT.ILO ) $ I = ILO - II K = SCALE( I ) IF( K.EQ.I ) $ GO TO 50 CALL ZSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) 50 CONTINUE END IF END IF * RETURN * * End of ZGEBAK * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgetrs.f0000644000000000000000000000013213543334726015247 xustar0030 mtime=1569569238.464645883 30 atime=1569569238.463645883 30 ctime=1569569238.464645883 elk-6.3.2/src/LAPACK/zgetrs.f0000644002504400250440000001364313543334726017325 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGETRS * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGETRS + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * .. Scalar Arguments .. * CHARACTER TRANS * INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGETRS solves a system of linear equations *> A * X = B, A**T * X = B, or A**H * X = B *> with a general N-by-N matrix A using the LU factorization computed *> by ZGETRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> Specifies the form of the system of equations: *> = 'N': A * X = B (No transpose) *> = 'T': A**T * X = B (Transpose) *> = 'C': A**H * X = B (Conjugate transpose) *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] NRHS *> \verbatim *> NRHS is INTEGER *> The number of right hand sides, i.e., the number of columns *> of the matrix B. NRHS >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The factors L and U from the factorization A = P*L*U *> as computed by ZGETRF. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices from ZGETRF; for 1<=i<=N, row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,NRHS) *> On entry, the right hand side matrix B. *> On exit, the solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * * ===================================================================== SUBROUTINE ZGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER TRANS INTEGER INFO, LDA, LDB, N, NRHS * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL NOTRAN * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLASWP, ZTRSM * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 NOTRAN = LSAME( TRANS, 'N' ) IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) .AND. .NOT. $ LSAME( TRANS, 'C' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( NRHS.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGETRS', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. NRHS.EQ.0 ) $ RETURN * IF( NOTRAN ) THEN * * Solve A * X = B. * * Apply row interchanges to the right hand sides. * CALL ZLASWP( NRHS, B, LDB, 1, N, IPIV, 1 ) * * Solve L*X = B, overwriting B with X. * CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', N, NRHS, $ ONE, A, LDA, B, LDB ) * * Solve U*X = B, overwriting B with X. * CALL ZTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', N, $ NRHS, ONE, A, LDA, B, LDB ) ELSE * * Solve A**T * X = B or A**H * X = B. * * Solve U**T *X = B or U**H *X = B, overwriting B with X. * CALL ZTRSM( 'Left', 'Upper', TRANS, 'Non-unit', N, NRHS, ONE, $ A, LDA, B, LDB ) * * Solve L**T *X = B, or L**H *X = B overwriting B with X. * CALL ZTRSM( 'Left', 'Lower', TRANS, 'Unit', N, NRHS, ONE, A, $ LDA, B, LDB ) * * Apply row interchanges to the solution vectors. * CALL ZLASWP( NRHS, B, LDB, 1, N, IPIV, -1 ) END IF * RETURN * * End of ZGETRS * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgetrf2.f0000644000000000000000000000013013543334726015312 xustar0029 mtime=1569569238.46864588 30 atime=1569569238.467645881 29 ctime=1569569238.46864588 elk-6.3.2/src/LAPACK/zgetrf2.f0000644002504400250440000001571113543334726017370 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGETRF2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * RECURSIVE SUBROUTINE ZGETRF2( M, N, A, LDA, IPIV, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGETRF2 computes an LU factorization of a general M-by-N matrix A *> using partial pivoting with row interchanges. *> *> The factorization has the form *> A = P * L * U *> where P is a permutation matrix, L is lower triangular with unit *> diagonal elements (lower trapezoidal if m > n), and U is upper *> triangular (upper trapezoidal if m < n). *> *> This is the recursive version of the algorithm. It divides *> the matrix into four submatrices: *> *> [ A11 | A12 ] where A11 is n1 by n1 and A22 is n2 by n2 *> A = [ -----|----- ] with n1 = min(m,n)/2 *> [ A21 | A22 ] n2 = n-n1 *> *> [ A11 ] *> The subroutine calls itself to factor [ --- ], *> [ A12 ] *> [ A12 ] *> do the swaps on [ --- ], solve A12, update A22, *> [ A22 ] *> *> then calls itself to factor A22 and do the swaps on A21. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the M-by-N matrix to be factored. *> On exit, the factors L and U from the factorization *> A = P*L*U; the unit diagonal elements of L are not stored. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (min(M,N)) *> The pivot indices; for 1 <= i <= min(M,N), row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and division by zero will occur if it is used *> to solve a system of equations. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16GEcomputational * * ===================================================================== RECURSIVE SUBROUTINE ZGETRF2( M, N, A, LDA, IPIV, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. DOUBLE PRECISION SFMIN COMPLEX*16 TEMP INTEGER I, IINFO, N1, N2 * .. * .. External Functions .. DOUBLE PRECISION DLAMCH INTEGER IZAMAX EXTERNAL DLAMCH, IZAMAX * .. * .. External Subroutines .. EXTERNAL ZGEMM, ZSCAL, ZLASWP, ZTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGETRF2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN IF ( M.EQ.1 ) THEN * * Use unblocked code for one row case * Just need to handle IPIV and INFO * IPIV( 1 ) = 1 IF ( A(1,1).EQ.ZERO ) $ INFO = 1 * ELSE IF( N.EQ.1 ) THEN * * Use unblocked code for one column case * * * Compute machine safe minimum * SFMIN = DLAMCH('S') * * Find pivot and test for singularity * I = IZAMAX( M, A( 1, 1 ), 1 ) IPIV( 1 ) = I IF( A( I, 1 ).NE.ZERO ) THEN * * Apply the interchange * IF( I.NE.1 ) THEN TEMP = A( 1, 1 ) A( 1, 1 ) = A( I, 1 ) A( I, 1 ) = TEMP END IF * * Compute elements 2:M of the column * IF( ABS(A( 1, 1 )) .GE. SFMIN ) THEN CALL ZSCAL( M-1, ONE / A( 1, 1 ), A( 2, 1 ), 1 ) ELSE DO 10 I = 1, M-1 A( 1+I, 1 ) = A( 1+I, 1 ) / A( 1, 1 ) 10 CONTINUE END IF * ELSE INFO = 1 END IF ELSE * * Use recursive code * N1 = MIN( M, N ) / 2 N2 = N-N1 * * [ A11 ] * Factor [ --- ] * [ A21 ] * CALL ZGETRF2( M, N1, A, LDA, IPIV, IINFO ) IF ( INFO.EQ.0 .AND. IINFO.GT.0 ) $ INFO = IINFO * * [ A12 ] * Apply interchanges to [ --- ] * [ A22 ] * CALL ZLASWP( N2, A( 1, N1+1 ), LDA, 1, N1, IPIV, 1 ) * * Solve A12 * CALL ZTRSM( 'L', 'L', 'N', 'U', N1, N2, ONE, A, LDA, $ A( 1, N1+1 ), LDA ) * * Update A22 * CALL ZGEMM( 'N', 'N', M-N1, N2, N1, -ONE, A( N1+1, 1 ), LDA, $ A( 1, N1+1 ), LDA, ONE, A( N1+1, N1+1 ), LDA ) * * Factor A22 * CALL ZGETRF2( M-N1, N2, A( N1+1, N1+1 ), LDA, IPIV( N1+1 ), $ IINFO ) * * Adjust INFO and the pivot indices * IF ( INFO.EQ.0 .AND. IINFO.GT.0 ) $ INFO = IINFO + N1 DO 20 I = N1+1, MIN( M, N ) IPIV( I ) = IPIV( I ) + N1 20 CONTINUE * * Apply interchanges to A21 * CALL ZLASWP( N1, A( 1, 1 ), LDA, N1+1, MIN( M, N), IPIV, 1 ) * END IF RETURN * * End of ZGETRF2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaswp.f0000644000000000000000000000013213543334726015251 xustar0030 mtime=1569569238.472645877 30 atime=1569569238.471645878 30 ctime=1569569238.472645877 elk-6.3.2/src/LAPACK/zlaswp.f0000644002504400250440000001200513543334726017316 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLASWP performs a series of row interchanges on a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLASWP + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLASWP( N, A, LDA, K1, K2, IPIV, INCX ) * * .. Scalar Arguments .. * INTEGER INCX, K1, K2, LDA, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLASWP performs a series of row interchanges on the matrix A. *> One row interchange is initiated for each of rows K1 through K2 of A. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the matrix of column dimension N to which the row *> interchanges will be applied. *> On exit, the permuted matrix. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> \endverbatim *> *> \param[in] K1 *> \verbatim *> K1 is INTEGER *> The first element of IPIV for which a row interchange will *> be done. *> \endverbatim *> *> \param[in] K2 *> \verbatim *> K2 is INTEGER *> (K2-K1+1) is the number of elements of IPIV for which a row *> interchange will be done. *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX)) *> The vector of pivot indices. Only the elements in positions *> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed. *> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be *> interchanged. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between successive values of IPIV. If INCX *> is negative, the pivots are applied in reverse order. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Modified by *> R. C. Whaley, Computer Science Dept., Univ. of Tenn., Knoxville, USA *> \endverbatim *> * ===================================================================== SUBROUTINE ZLASWP( N, A, LDA, K1, K2, IPIV, INCX ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER INCX, K1, K2, LDA, N * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, I1, I2, INC, IP, IX, IX0, J, K, N32 COMPLEX*16 TEMP * .. * .. Executable Statements .. * * Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows * K1 through K2. * IF( INCX.GT.0 ) THEN IX0 = K1 I1 = K1 I2 = K2 INC = 1 ELSE IF( INCX.LT.0 ) THEN IX0 = K1 + ( K1-K2 )*INCX I1 = K2 I2 = K1 INC = -1 ELSE RETURN END IF * N32 = ( N / 32 )*32 IF( N32.NE.0 ) THEN DO 30 J = 1, N32, 32 IX = IX0 DO 20 I = I1, I2, INC IP = IPIV( IX ) IF( IP.NE.I ) THEN DO 10 K = J, J + 31 TEMP = A( I, K ) A( I, K ) = A( IP, K ) A( IP, K ) = TEMP 10 CONTINUE END IF IX = IX + INCX 20 CONTINUE 30 CONTINUE END IF IF( N32.NE.N ) THEN N32 = N32 + 1 IX = IX0 DO 50 I = I1, I2, INC IP = IPIV( IX ) IF( IP.NE.I ) THEN DO 40 K = N32, N TEMP = A( I, K ) A( I, K ) = A( IP, K ) A( IP, K ) = TEMP 40 CONTINUE END IF IX = IX + INCX 50 CONTINUE END IF * RETURN * * End of ZLASWP * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ztrtri.f0000644000000000000000000000013213543334726015267 xustar0030 mtime=1569569238.477645874 30 atime=1569569238.476645875 30 ctime=1569569238.477645874 elk-6.3.2/src/LAPACK/ztrtri.f0000644002504400250440000001545013543334726017343 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRTRI * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZTRTRI + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZTRTRI( UPLO, DIAG, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER DIAG, UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRTRI computes the inverse of a complex upper or lower triangular *> matrix A. *> *> This is the Level 3 BLAS version of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': A is upper triangular; *> = 'L': A is lower triangular. *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> = 'N': A is non-unit triangular; *> = 'U': A is unit triangular. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the triangular matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of the array A contains *> the upper triangular matrix, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of the array A contains *> the lower triangular matrix, and the strictly upper *> triangular part of A is not referenced. If DIAG = 'U', the *> diagonal elements of A are also not referenced and are *> assumed to be 1. *> On exit, the (triangular) inverse of the original matrix, in *> the same storage format. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, A(i,i) is exactly zero. The triangular *> matrix is singular and its inverse can not be computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZTRTRI( UPLO, DIAG, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIAG, UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL NOUNIT, UPPER INTEGER J, JB, NB, NN * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZTRMM, ZTRSM, ZTRTI2 * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) NOUNIT = LSAME( DIAG, 'N' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( .NOT.NOUNIT .AND. .NOT.LSAME( DIAG, 'U' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZTRTRI', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Check for singularity if non-unit. * IF( NOUNIT ) THEN DO 10 INFO = 1, N IF( A( INFO, INFO ).EQ.ZERO ) $ RETURN 10 CONTINUE INFO = 0 END IF * * Determine the block size for this environment. * NB = ILAENV( 1, 'ZTRTRI', UPLO // DIAG, N, -1, -1, -1 ) IF( NB.LE.1 .OR. NB.GE.N ) THEN * * Use unblocked code * CALL ZTRTI2( UPLO, DIAG, N, A, LDA, INFO ) ELSE * * Use blocked code * IF( UPPER ) THEN * * Compute inverse of upper triangular matrix * DO 20 J = 1, N, NB JB = MIN( NB, N-J+1 ) * * Compute rows 1:j-1 of current block column * CALL ZTRMM( 'Left', 'Upper', 'No transpose', DIAG, J-1, $ JB, ONE, A, LDA, A( 1, J ), LDA ) CALL ZTRSM( 'Right', 'Upper', 'No transpose', DIAG, J-1, $ JB, -ONE, A( J, J ), LDA, A( 1, J ), LDA ) * * Compute inverse of current diagonal block * CALL ZTRTI2( 'Upper', DIAG, JB, A( J, J ), LDA, INFO ) 20 CONTINUE ELSE * * Compute inverse of lower triangular matrix * NN = ( ( N-1 ) / NB )*NB + 1 DO 30 J = NN, 1, -NB JB = MIN( NB, N-J+1 ) IF( J+JB.LE.N ) THEN * * Compute rows j+jb:n of current block column * CALL ZTRMM( 'Left', 'Lower', 'No transpose', DIAG, $ N-J-JB+1, JB, ONE, A( J+JB, J+JB ), LDA, $ A( J+JB, J ), LDA ) CALL ZTRSM( 'Right', 'Lower', 'No transpose', DIAG, $ N-J-JB+1, JB, -ONE, A( J, J ), LDA, $ A( J+JB, J ), LDA ) END IF * * Compute inverse of current diagonal block * CALL ZTRTI2( 'Lower', DIAG, JB, A( J, J ), LDA, INFO ) 30 CONTINUE END IF END IF * RETURN * * End of ZTRTRI * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlanhe.f0000644000000000000000000000013213543334726015212 xustar0030 mtime=1569569238.481645872 30 atime=1569569238.480645872 30 ctime=1569569238.481645872 elk-6.3.2/src/LAPACK/zlanhe.f0000644002504400250440000001767213543334726017276 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLANHE returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex Hermitian matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLANHE + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION ZLANHE( NORM, UPLO, N, A, LDA, WORK ) * * .. Scalar Arguments .. * CHARACTER NORM, UPLO * INTEGER LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION WORK( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLANHE returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> complex hermitian matrix A. *> \endverbatim *> *> \return ZLANHE *> \verbatim *> *> ZLANHE = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in ZLANHE as described *> above. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> hermitian matrix A is to be referenced. *> = 'U': Upper triangular part of A is referenced *> = 'L': Lower triangular part of A is referenced *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. When N = 0, ZLANHE is *> set to zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The hermitian matrix A. If UPLO = 'U', the leading n by n *> upper triangular part of A contains the upper triangular part *> of the matrix A, and the strictly lower triangular part of A *> is not referenced. If UPLO = 'L', the leading n by n lower *> triangular part of A contains the lower triangular part of *> the matrix A, and the strictly upper triangular part of A is *> not referenced. Note that the imaginary parts of the diagonal *> elements need not be set and are assumed to be zero. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(N,1). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), *> where LWORK >= N when NORM = 'I' or '1' or 'O'; otherwise, *> WORK is not referenced. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION ZLANHE( NORM, UPLO, N, A, LDA, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM, UPLO INTEGER LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION WORK( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J DOUBLE PRECISION ABSA, SCALE, SUM, VALUE * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. External Subroutines .. EXTERNAL ZLASSQ * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, SQRT * .. * .. Executable Statements .. * IF( N.EQ.0 ) THEN VALUE = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * VALUE = ZERO IF( LSAME( UPLO, 'U' ) ) THEN DO 20 J = 1, N DO 10 I = 1, J - 1 SUM = ABS( A( I, J ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 10 CONTINUE SUM = ABS( DBLE( A( J, J ) ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 20 CONTINUE ELSE DO 40 J = 1, N SUM = ABS( DBLE( A( J, J ) ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM DO 30 I = J + 1, N SUM = ABS( A( I, J ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 30 CONTINUE 40 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'I' ) ) .OR. ( LSAME( NORM, 'O' ) ) .OR. $ ( NORM.EQ.'1' ) ) THEN * * Find normI(A) ( = norm1(A), since A is hermitian). * VALUE = ZERO IF( LSAME( UPLO, 'U' ) ) THEN DO 60 J = 1, N SUM = ZERO DO 50 I = 1, J - 1 ABSA = ABS( A( I, J ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA 50 CONTINUE WORK( J ) = SUM + ABS( DBLE( A( J, J ) ) ) 60 CONTINUE DO 70 I = 1, N SUM = WORK( I ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 70 CONTINUE ELSE DO 80 I = 1, N WORK( I ) = ZERO 80 CONTINUE DO 100 J = 1, N SUM = WORK( J ) + ABS( DBLE( A( J, J ) ) ) DO 90 I = J + 1, N ABSA = ABS( A( I, J ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA 90 CONTINUE IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 100 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE IF( LSAME( UPLO, 'U' ) ) THEN DO 110 J = 2, N CALL ZLASSQ( J-1, A( 1, J ), 1, SCALE, SUM ) 110 CONTINUE ELSE DO 120 J = 1, N - 1 CALL ZLASSQ( N-J, A( J+1, J ), 1, SCALE, SUM ) 120 CONTINUE END IF SUM = 2*SUM DO 130 I = 1, N IF( DBLE( A( I, I ) ).NE.ZERO ) THEN ABSA = ABS( DBLE( A( I, I ) ) ) IF( SCALE.LT.ABSA ) THEN SUM = ONE + SUM*( SCALE / ABSA )**2 SCALE = ABSA ELSE SUM = SUM + ( ABSA / SCALE )**2 END IF END IF 130 CONTINUE VALUE = SCALE*SQRT( SUM ) END IF * ZLANHE = VALUE RETURN * * End of ZLANHE * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhetrd.f0000644000000000000000000000013113543334726015230 xustar0030 mtime=1569569238.486645868 29 atime=1569569238.48464587 30 ctime=1569569238.486645868 elk-6.3.2/src/LAPACK/zhetrd.f0000644002504400250440000002646113543334726017311 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHETRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHETRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHETRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHETRD reduces a complex Hermitian matrix A to real symmetric *> tridiagonal form T by a unitary similarity transformation: *> Q**H * A * Q = T. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> On exit, if UPLO = 'U', the diagonal and first superdiagonal *> of A are overwritten by the corresponding elements of the *> tridiagonal matrix T, and the elements above the first *> superdiagonal, with the array TAU, represent the unitary *> matrix Q as a product of elementary reflectors; if UPLO *> = 'L', the diagonal and first subdiagonal of A are over- *> written by the corresponding elements of the tridiagonal *> matrix T, and the elements below the first subdiagonal, with *> the array TAU, represent the unitary matrix Q as a product *> of elementary reflectors. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix T: *> E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= 1. *> For optimum performance LWORK >= N*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n-1) . . . H(2) H(1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in *> A(1:i-1,i+1), and tau in TAU(i). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(n-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), *> and tau in TAU(i). *> *> The contents of A on exit are illustrated by the following examples *> with n = 5: *> *> if UPLO = 'U': if UPLO = 'L': *> *> ( d e v2 v3 v4 ) ( d ) *> ( d e v3 v4 ) ( e d ) *> ( d e v4 ) ( v1 e d ) *> ( d e ) ( v1 v2 e d ) *> ( d ) ( v1 v2 v3 e d ) *> *> where d and e denote diagonal and off-diagonal elements of T, and vi *> denotes an element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZHETRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY, UPPER INTEGER I, IINFO, IWS, J, KK, LDWORK, LWKOPT, NB, $ NBMIN, NX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZHER2K, ZHETD2, ZLATRD * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) LQUERY = ( LWORK.EQ.-1 ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LWORK.LT.1 .AND. .NOT.LQUERY ) THEN INFO = -9 END IF * IF( INFO.EQ.0 ) THEN * * Determine the block size. * NB = ILAENV( 1, 'ZHETRD', UPLO, N, -1, -1, -1 ) LWKOPT = N*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHETRD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NX = N IWS = 1 IF( NB.GT.1 .AND. NB.LT.N ) THEN * * Determine when to cross over from blocked to unblocked code * (last block is always handled by unblocked code). * NX = MAX( NB, ILAENV( 3, 'ZHETRD', UPLO, N, -1, -1, -1 ) ) IF( NX.LT.N ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: determine the * minimum value of NB, and reduce NB or force use of * unblocked code by setting NX = N. * NB = MAX( LWORK / LDWORK, 1 ) NBMIN = ILAENV( 2, 'ZHETRD', UPLO, N, -1, -1, -1 ) IF( NB.LT.NBMIN ) $ NX = N END IF ELSE NX = N END IF ELSE NB = 1 END IF * IF( UPPER ) THEN * * Reduce the upper triangle of A. * Columns 1:kk are handled by the unblocked method. * KK = N - ( ( N-NX+NB-1 ) / NB )*NB DO 20 I = N - NB + 1, KK + 1, -NB * * Reduce columns i:i+nb-1 to tridiagonal form and form the * matrix W which is needed to update the unreduced part of * the matrix * CALL ZLATRD( UPLO, I+NB-1, NB, A, LDA, E, TAU, WORK, $ LDWORK ) * * Update the unreduced submatrix A(1:i-1,1:i-1), using an * update of the form: A := A - V*W**H - W*V**H * CALL ZHER2K( UPLO, 'No transpose', I-1, NB, -CONE, $ A( 1, I ), LDA, WORK, LDWORK, ONE, A, LDA ) * * Copy superdiagonal elements back into A, and diagonal * elements into D * DO 10 J = I, I + NB - 1 A( J-1, J ) = E( J-1 ) D( J ) = A( J, J ) 10 CONTINUE 20 CONTINUE * * Use unblocked code to reduce the last or only block * CALL ZHETD2( UPLO, KK, A, LDA, D, E, TAU, IINFO ) ELSE * * Reduce the lower triangle of A * DO 40 I = 1, N - NX, NB * * Reduce columns i:i+nb-1 to tridiagonal form and form the * matrix W which is needed to update the unreduced part of * the matrix * CALL ZLATRD( UPLO, N-I+1, NB, A( I, I ), LDA, E( I ), $ TAU( I ), WORK, LDWORK ) * * Update the unreduced submatrix A(i+nb:n,i+nb:n), using * an update of the form: A := A - V*W**H - W*V**H * CALL ZHER2K( UPLO, 'No transpose', N-I-NB+1, NB, -CONE, $ A( I+NB, I ), LDA, WORK( NB+1 ), LDWORK, ONE, $ A( I+NB, I+NB ), LDA ) * * Copy subdiagonal elements back into A, and diagonal * elements into D * DO 30 J = I, I + NB - 1 A( J+1, J ) = E( J ) D( J ) = A( J, J ) 30 CONTINUE 40 CONTINUE * * Use unblocked code to reduce the last or only block * CALL ZHETD2( UPLO, N-I+1, A( I, I ), LDA, D( I ), E( I ), $ TAU( I ), IINFO ) END IF * WORK( 1 ) = LWKOPT RETURN * * End of ZHETRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zstedc.f0000644000000000000000000000013213543334726015225 xustar0030 mtime=1569569238.491645865 30 atime=1569569238.489645867 30 ctime=1569569238.491645865 elk-6.3.2/src/LAPACK/zstedc.f0000644002504400250440000003732413543334726017305 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZSTEDC * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZSTEDC + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, * LRWORK, IWORK, LIWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER COMPZ * INTEGER INFO, LDZ, LIWORK, LRWORK, LWORK, N * .. * .. Array Arguments .. * INTEGER IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), RWORK( * ) * COMPLEX*16 WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZSTEDC computes all eigenvalues and, optionally, eigenvectors of a *> symmetric tridiagonal matrix using the divide and conquer method. *> The eigenvectors of a full or band complex Hermitian matrix can also *> be found if ZHETRD or ZHPTRD or ZHBTRD has been used to reduce this *> matrix to tridiagonal form. *> *> This code makes very mild assumptions about floating point *> arithmetic. It will work on machines with a guard digit in *> add/subtract, or on those binary machines without guard digits *> which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. *> It could conceivably fail on hexadecimal or decimal machines *> without guard digits, but we know of none. See DLAED3 for details. *> \endverbatim * * Arguments: * ========== * *> \param[in] COMPZ *> \verbatim *> COMPZ is CHARACTER*1 *> = 'N': Compute eigenvalues only. *> = 'I': Compute eigenvectors of tridiagonal matrix also. *> = 'V': Compute eigenvectors of original Hermitian matrix *> also. On entry, Z contains the unitary matrix used *> to reduce the original matrix to tridiagonal form. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the diagonal elements of the tridiagonal matrix. *> On exit, if INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the subdiagonal elements of the tridiagonal matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,N) *> On entry, if COMPZ = 'V', then Z contains the unitary *> matrix used in the reduction to tridiagonal form. *> On exit, if INFO = 0, then if COMPZ = 'V', Z contains the *> orthonormal eigenvectors of the original Hermitian matrix, *> and if COMPZ = 'I', Z contains the orthonormal eigenvectors *> of the symmetric tridiagonal matrix. *> If COMPZ = 'N', then Z is not referenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1. *> If eigenvectors are desired, then LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If COMPZ = 'N' or 'I', or N <= 1, LWORK must be at least 1. *> If COMPZ = 'V' and N > 1, LWORK must be at least N*N. *> Note that for COMPZ = 'V', then if N is less than or *> equal to the minimum divide size, usually 25, then LWORK need *> only be 1. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal sizes of the WORK, RWORK and *> IWORK arrays, returns these values as the first entries of *> the WORK, RWORK and IWORK arrays, and no error message *> related to LWORK or LRWORK or LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (MAX(1,LRWORK)) *> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK. *> \endverbatim *> *> \param[in] LRWORK *> \verbatim *> LRWORK is INTEGER *> The dimension of the array RWORK. *> If COMPZ = 'N' or N <= 1, LRWORK must be at least 1. *> If COMPZ = 'V' and N > 1, LRWORK must be at least *> 1 + 3*N + 2*N*lg N + 4*N**2 , *> where lg( N ) = smallest integer k such *> that 2**k >= N. *> If COMPZ = 'I' and N > 1, LRWORK must be at least *> 1 + 4*N + 2*N**2 . *> Note that for COMPZ = 'I' or 'V', then if N is less than or *> equal to the minimum divide size, usually 25, then LRWORK *> need only be max(1,2*(N-1)). *> *> If LRWORK = -1, then a workspace query is assumed; the *> routine only calculates the optimal sizes of the WORK, RWORK *> and IWORK arrays, returns these values as the first entries *> of the WORK, RWORK and IWORK arrays, and no error message *> related to LWORK or LRWORK or LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (MAX(1,LIWORK)) *> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK. *> \endverbatim *> *> \param[in] LIWORK *> \verbatim *> LIWORK is INTEGER *> The dimension of the array IWORK. *> If COMPZ = 'N' or N <= 1, LIWORK must be at least 1. *> If COMPZ = 'V' or N > 1, LIWORK must be at least *> 6 + 6*N + 5*N*lg N. *> If COMPZ = 'I' or N > 1, LIWORK must be at least *> 3 + 5*N . *> Note that for COMPZ = 'I' or 'V', then if N is less than or *> equal to the minimum divide size, usually 25, then LIWORK *> need only be 1. *> *> If LIWORK = -1, then a workspace query is assumed; the *> routine only calculates the optimal sizes of the WORK, RWORK *> and IWORK arrays, returns these values as the first entries *> of the WORK, RWORK and IWORK arrays, and no error message *> related to LWORK or LRWORK or LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: The algorithm failed to compute an eigenvalue while *> working on the submatrix lying in rows and columns *> INFO/(N+1) through mod(INFO,N+1). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16OTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA * * ===================================================================== SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, $ LRWORK, IWORK, LIWORK, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. CHARACTER COMPZ INTEGER INFO, LDZ, LIWORK, LRWORK, LWORK, N * .. * .. Array Arguments .. INTEGER IWORK( * ) DOUBLE PRECISION D( * ), E( * ), RWORK( * ) COMPLEX*16 WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER FINISH, I, ICOMPZ, II, J, K, LGN, LIWMIN, LL, $ LRWMIN, LWMIN, M, SMLSIZ, START DOUBLE PRECISION EPS, ORGNRM, P, TINY * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, DLANST EXTERNAL LSAME, ILAENV, DLAMCH, DLANST * .. * .. External Subroutines .. EXTERNAL DLASCL, DLASET, DSTEDC, DSTEQR, DSTERF, XERBLA, $ ZLACPY, ZLACRM, ZLAED0, ZSTEQR, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, INT, LOG, MAX, MOD, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 LQUERY = ( LWORK.EQ.-1 .OR. LRWORK.EQ.-1 .OR. LIWORK.EQ.-1 ) * IF( LSAME( COMPZ, 'N' ) ) THEN ICOMPZ = 0 ELSE IF( LSAME( COMPZ, 'V' ) ) THEN ICOMPZ = 1 ELSE IF( LSAME( COMPZ, 'I' ) ) THEN ICOMPZ = 2 ELSE ICOMPZ = -1 END IF IF( ICOMPZ.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( ( LDZ.LT.1 ) .OR. $ ( ICOMPZ.GT.0 .AND. LDZ.LT.MAX( 1, N ) ) ) THEN INFO = -6 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * SMLSIZ = ILAENV( 9, 'ZSTEDC', ' ', 0, 0, 0, 0 ) IF( N.LE.1 .OR. ICOMPZ.EQ.0 ) THEN LWMIN = 1 LIWMIN = 1 LRWMIN = 1 ELSE IF( N.LE.SMLSIZ ) THEN LWMIN = 1 LIWMIN = 1 LRWMIN = 2*( N - 1 ) ELSE IF( ICOMPZ.EQ.1 ) THEN LGN = INT( LOG( DBLE( N ) ) / LOG( TWO ) ) IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IF( 2**LGN.LT.N ) $ LGN = LGN + 1 LWMIN = N*N LRWMIN = 1 + 3*N + 2*N*LGN + 4*N**2 LIWMIN = 6 + 6*N + 5*N*LGN ELSE IF( ICOMPZ.EQ.2 ) THEN LWMIN = 1 LRWMIN = 1 + 4*N + 2*N**2 LIWMIN = 3 + 5*N END IF WORK( 1 ) = LWMIN RWORK( 1 ) = LRWMIN IWORK( 1 ) = LIWMIN * IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN INFO = -8 ELSE IF( LRWORK.LT.LRWMIN .AND. .NOT.LQUERY ) THEN INFO = -10 ELSE IF( LIWORK.LT.LIWMIN .AND. .NOT.LQUERY ) THEN INFO = -12 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZSTEDC', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN IF( N.EQ.1 ) THEN IF( ICOMPZ.NE.0 ) $ Z( 1, 1 ) = ONE RETURN END IF * * If the following conditional clause is removed, then the routine * will use the Divide and Conquer routine to compute only the * eigenvalues, which requires (3N + 3N**2) real workspace and * (2 + 5N + 2N lg(N)) integer workspace. * Since on many architectures DSTERF is much faster than any other * algorithm for finding eigenvalues only, it is used here * as the default. If the conditional clause is removed, then * information on the size of workspace needs to be changed. * * If COMPZ = 'N', use DSTERF to compute the eigenvalues. * IF( ICOMPZ.EQ.0 ) THEN CALL DSTERF( N, D, E, INFO ) GO TO 70 END IF * * If N is smaller than the minimum divide size (SMLSIZ+1), then * solve the problem with another solver. * IF( N.LE.SMLSIZ ) THEN * CALL ZSTEQR( COMPZ, N, D, E, Z, LDZ, RWORK, INFO ) * ELSE * * If COMPZ = 'I', we simply call DSTEDC instead. * IF( ICOMPZ.EQ.2 ) THEN CALL DLASET( 'Full', N, N, ZERO, ONE, RWORK, N ) LL = N*N + 1 CALL DSTEDC( 'I', N, D, E, RWORK, N, $ RWORK( LL ), LRWORK-LL+1, IWORK, LIWORK, INFO ) DO 20 J = 1, N DO 10 I = 1, N Z( I, J ) = RWORK( ( J-1 )*N+I ) 10 CONTINUE 20 CONTINUE GO TO 70 END IF * * From now on, only option left to be handled is COMPZ = 'V', * i.e. ICOMPZ = 1. * * Scale. * ORGNRM = DLANST( 'M', N, D, E ) IF( ORGNRM.EQ.ZERO ) $ GO TO 70 * EPS = DLAMCH( 'Epsilon' ) * START = 1 * * while ( START <= N ) * 30 CONTINUE IF( START.LE.N ) THEN * * Let FINISH be the position of the next subdiagonal entry * such that E( FINISH ) <= TINY or FINISH = N if no such * subdiagonal exists. The matrix identified by the elements * between START and FINISH constitutes an independent * sub-problem. * FINISH = START 40 CONTINUE IF( FINISH.LT.N ) THEN TINY = EPS*SQRT( ABS( D( FINISH ) ) )* $ SQRT( ABS( D( FINISH+1 ) ) ) IF( ABS( E( FINISH ) ).GT.TINY ) THEN FINISH = FINISH + 1 GO TO 40 END IF END IF * * (Sub) Problem determined. Compute its size and solve it. * M = FINISH - START + 1 IF( M.GT.SMLSIZ ) THEN * * Scale. * ORGNRM = DLANST( 'M', M, D( START ), E( START ) ) CALL DLASCL( 'G', 0, 0, ORGNRM, ONE, M, 1, D( START ), M, $ INFO ) CALL DLASCL( 'G', 0, 0, ORGNRM, ONE, M-1, 1, E( START ), $ M-1, INFO ) * CALL ZLAED0( N, M, D( START ), E( START ), Z( 1, START ), $ LDZ, WORK, N, RWORK, IWORK, INFO ) IF( INFO.GT.0 ) THEN INFO = ( INFO / ( M+1 )+START-1 )*( N+1 ) + $ MOD( INFO, ( M+1 ) ) + START - 1 GO TO 70 END IF * * Scale back. * CALL DLASCL( 'G', 0, 0, ONE, ORGNRM, M, 1, D( START ), M, $ INFO ) * ELSE CALL DSTEQR( 'I', M, D( START ), E( START ), RWORK, M, $ RWORK( M*M+1 ), INFO ) CALL ZLACRM( N, M, Z( 1, START ), LDZ, RWORK, M, WORK, N, $ RWORK( M*M+1 ) ) CALL ZLACPY( 'A', N, M, WORK, N, Z( 1, START ), LDZ ) IF( INFO.GT.0 ) THEN INFO = START*( N+1 ) + FINISH GO TO 70 END IF END IF * START = FINISH + 1 GO TO 30 END IF * * endwhile * * * Use Selection Sort to minimize swaps of eigenvectors * DO 60 II = 2, N I = II - 1 K = I P = D( I ) DO 50 J = II, N IF( D( J ).LT.P ) THEN K = J P = D( J ) END IF 50 CONTINUE IF( K.NE.I ) THEN D( K ) = D( I ) D( I ) = P CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 ) END IF 60 CONTINUE END IF * 70 CONTINUE WORK( 1 ) = LWMIN RWORK( 1 ) = LRWMIN IWORK( 1 ) = LIWMIN * RETURN * * End of ZSTEDC * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunmtr.f0000644000000000000000000000013213543334726015270 xustar0030 mtime=1569569238.495645863 30 atime=1569569238.494645863 30 ctime=1569569238.495645863 elk-6.3.2/src/LAPACK/zunmtr.f0000644002504400250440000002112313543334726017336 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNMTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNMTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNMTR( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS, UPLO * INTEGER INFO, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNMTR overwrites the general complex M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> where Q is a complex unitary matrix of order nq, with nq = m if *> SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of *> nq-1 elementary reflectors, as returned by ZHETRD: *> *> if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left; *> = 'R': apply Q or Q**H from the Right. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A contains elementary reflectors *> from ZHETRD; *> = 'L': Lower triangle of A contains elementary reflectors *> from ZHETRD. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'C': Conjugate transpose, apply Q**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension *> (LDA,M) if SIDE = 'L' *> (LDA,N) if SIDE = 'R' *> The vectors which define the elementary reflectors, as *> returned by ZHETRD. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZHETRD. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For optimum performance LWORK >= N*NB if SIDE = 'L', and *> LWORK >=M*NB if SIDE = 'R', where NB is the optimal *> blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNMTR( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS, UPLO INTEGER INFO, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LEFT, LQUERY, UPPER INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNMQL, ZUNMQR * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) UPPER = LSAME( UPLO, 'U' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( .NOT.LSAME( TRANS, 'N' ) .AND. .NOT.LSAME( TRANS, 'C' ) ) $ THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN IF( UPPER ) THEN IF( LEFT ) THEN NB = ILAENV( 1, 'ZUNMQL', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'ZUNMQL', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF ELSE IF( LEFT ) THEN NB = ILAENV( 1, 'ZUNMQR', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'ZUNMQR', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF END IF LWKOPT = MAX( 1, NW )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNMTR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. NQ.EQ.1 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( LEFT ) THEN MI = M - 1 NI = N ELSE MI = M NI = N - 1 END IF * IF( UPPER ) THEN * * Q was determined by a call to ZHETRD with UPLO = 'U' * CALL ZUNMQL( SIDE, TRANS, MI, NI, NQ-1, A( 1, 2 ), LDA, TAU, C, $ LDC, WORK, LWORK, IINFO ) ELSE * * Q was determined by a call to ZHETRD with UPLO = 'L' * IF( LEFT ) THEN I1 = 2 I2 = 1 ELSE I1 = 1 I2 = 2 END IF CALL ZUNMQR( SIDE, TRANS, MI, NI, NQ-1, A( 2, 1 ), LDA, TAU, $ C( I1, I2 ), LDC, WORK, LWORK, IINFO ) END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNMTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zungtr.f0000644000000000000000000000013013543334726015260 xustar0029 mtime=1569569238.50064586 30 atime=1569569238.498645861 29 ctime=1569569238.50064586 elk-6.3.2/src/LAPACK/zungtr.f0000644002504400250440000001564113543334726017340 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGTR( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGTR generates a complex unitary matrix Q which is defined as the *> product of n-1 elementary reflectors of order N, as returned by *> ZHETRD: *> *> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1), *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A contains elementary reflectors *> from ZHETRD; *> = 'L': Lower triangle of A contains elementary reflectors *> from ZHETRD. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix Q. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the vectors which define the elementary reflectors, *> as returned by ZHETRD. *> On exit, the N-by-N unitary matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= N. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZHETRD. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= N-1. *> For optimum performance LWORK >= (N-1)*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNGTR( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, LWORK, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY, UPPER INTEGER I, IINFO, J, LWKOPT, NB * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNGQL, ZUNGQR * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, N-1 ) .AND. .NOT.LQUERY ) THEN INFO = -7 END IF * IF( INFO.EQ.0 ) THEN IF( UPPER ) THEN NB = ILAENV( 1, 'ZUNGQL', ' ', N-1, N-1, N-1, -1 ) ELSE NB = ILAENV( 1, 'ZUNGQR', ' ', N-1, N-1, N-1, -1 ) END IF LWKOPT = MAX( 1, N-1 )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGTR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( UPPER ) THEN * * Q was determined by a call to ZHETRD with UPLO = 'U' * * Shift the vectors which define the elementary reflectors one * column to the left, and set the last row and column of Q to * those of the unit matrix * DO 20 J = 1, N - 1 DO 10 I = 1, J - 1 A( I, J ) = A( I, J+1 ) 10 CONTINUE A( N, J ) = ZERO 20 CONTINUE DO 30 I = 1, N - 1 A( I, N ) = ZERO 30 CONTINUE A( N, N ) = ONE * * Generate Q(1:n-1,1:n-1) * CALL ZUNGQL( N-1, N-1, N-1, A, LDA, TAU, WORK, LWORK, IINFO ) * ELSE * * Q was determined by a call to ZHETRD with UPLO = 'L'. * * Shift the vectors which define the elementary reflectors one * column to the right, and set the first row and column of Q to * those of the unit matrix * DO 50 J = N, 2, -1 A( 1, J ) = ZERO DO 40 I = J + 1, N A( I, J ) = A( I, J-1 ) 40 CONTINUE 50 CONTINUE A( 1, 1 ) = ONE DO 60 I = 2, N A( I, 1 ) = ZERO 60 CONTINUE IF( N.GT.1 ) THEN * * Generate Q(2:n,2:n) * CALL ZUNGQR( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK, $ LWORK, IINFO ) END IF END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNGTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zsteqr.f0000644000000000000000000000013213543334726015261 xustar0030 mtime=1569569238.505645856 30 atime=1569569238.503645858 30 ctime=1569569238.505645856 elk-6.3.2/src/LAPACK/zsteqr.f0000644002504400250440000003661013543334726017336 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZSTEQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZSTEQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZSTEQR( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER COMPZ * INTEGER INFO, LDZ, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ), WORK( * ) * COMPLEX*16 Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZSTEQR computes all eigenvalues and, optionally, eigenvectors of a *> symmetric tridiagonal matrix using the implicit QL or QR method. *> The eigenvectors of a full or band complex Hermitian matrix can also *> be found if ZHETRD or ZHPTRD or ZHBTRD has been used to reduce this *> matrix to tridiagonal form. *> \endverbatim * * Arguments: * ========== * *> \param[in] COMPZ *> \verbatim *> COMPZ is CHARACTER*1 *> = 'N': Compute eigenvalues only. *> = 'V': Compute eigenvalues and eigenvectors of the original *> Hermitian matrix. On entry, Z must contain the *> unitary matrix used to reduce the original matrix *> to tridiagonal form. *> = 'I': Compute eigenvalues and eigenvectors of the *> tridiagonal matrix. Z is initialized to the identity *> matrix. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the diagonal elements of the tridiagonal matrix. *> On exit, if INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the (n-1) subdiagonal elements of the tridiagonal *> matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ, N) *> On entry, if COMPZ = 'V', then Z contains the unitary *> matrix used in the reduction to tridiagonal form. *> On exit, if INFO = 0, then if COMPZ = 'V', Z contains the *> orthonormal eigenvectors of the original Hermitian matrix, *> and if COMPZ = 'I', Z contains the orthonormal eigenvectors *> of the symmetric tridiagonal matrix. *> If COMPZ = 'N', then Z is not referenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> eigenvectors are desired, then LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (max(1,2*N-2)) *> If COMPZ = 'N', then WORK is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: the algorithm has failed to find all the eigenvalues in *> a total of 30*N iterations; if INFO = i, then i *> elements of E have not converged to zero; on exit, D *> and E contain the elements of a symmetric tridiagonal *> matrix which is unitarily similar to the original *> matrix. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZSTEQR( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER COMPZ INTEGER INFO, LDZ, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ), WORK( * ) COMPLEX*16 Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO, THREE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ THREE = 3.0D0 ) COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D0, 0.0D0 ), $ CONE = ( 1.0D0, 0.0D0 ) ) INTEGER MAXIT PARAMETER ( MAXIT = 30 ) * .. * .. Local Scalars .. INTEGER I, ICOMPZ, II, ISCALE, J, JTOT, K, L, L1, LEND, $ LENDM1, LENDP1, LENDSV, LM1, LSV, M, MM, MM1, $ NM1, NMAXIT DOUBLE PRECISION ANORM, B, C, EPS, EPS2, F, G, P, R, RT1, RT2, $ S, SAFMAX, SAFMIN, SSFMAX, SSFMIN, TST * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH, DLANST, DLAPY2 EXTERNAL LSAME, DLAMCH, DLANST, DLAPY2 * .. * .. External Subroutines .. EXTERNAL DLAE2, DLAEV2, DLARTG, DLASCL, DLASRT, XERBLA, $ ZLASET, ZLASR, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( LSAME( COMPZ, 'N' ) ) THEN ICOMPZ = 0 ELSE IF( LSAME( COMPZ, 'V' ) ) THEN ICOMPZ = 1 ELSE IF( LSAME( COMPZ, 'I' ) ) THEN ICOMPZ = 2 ELSE ICOMPZ = -1 END IF IF( ICOMPZ.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( ( LDZ.LT.1 ) .OR. ( ICOMPZ.GT.0 .AND. LDZ.LT.MAX( 1, $ N ) ) ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZSTEQR', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN IF( ICOMPZ.EQ.2 ) $ Z( 1, 1 ) = CONE RETURN END IF * * Determine the unit roundoff and over/underflow thresholds. * EPS = DLAMCH( 'E' ) EPS2 = EPS**2 SAFMIN = DLAMCH( 'S' ) SAFMAX = ONE / SAFMIN SSFMAX = SQRT( SAFMAX ) / THREE SSFMIN = SQRT( SAFMIN ) / EPS2 * * Compute the eigenvalues and eigenvectors of the tridiagonal * matrix. * IF( ICOMPZ.EQ.2 ) $ CALL ZLASET( 'Full', N, N, CZERO, CONE, Z, LDZ ) * NMAXIT = N*MAXIT JTOT = 0 * * Determine where the matrix splits and choose QL or QR iteration * for each block, according to whether top or bottom diagonal * element is smaller. * L1 = 1 NM1 = N - 1 * 10 CONTINUE IF( L1.GT.N ) $ GO TO 160 IF( L1.GT.1 ) $ E( L1-1 ) = ZERO IF( L1.LE.NM1 ) THEN DO 20 M = L1, NM1 TST = ABS( E( M ) ) IF( TST.EQ.ZERO ) $ GO TO 30 IF( TST.LE.( SQRT( ABS( D( M ) ) )*SQRT( ABS( D( M+ $ 1 ) ) ) )*EPS ) THEN E( M ) = ZERO GO TO 30 END IF 20 CONTINUE END IF M = N * 30 CONTINUE L = L1 LSV = L LEND = M LENDSV = LEND L1 = M + 1 IF( LEND.EQ.L ) $ GO TO 10 * * Scale submatrix in rows and columns L to LEND * ANORM = DLANST( 'I', LEND-L+1, D( L ), E( L ) ) ISCALE = 0 IF( ANORM.EQ.ZERO ) $ GO TO 10 IF( ANORM.GT.SSFMAX ) THEN ISCALE = 1 CALL DLASCL( 'G', 0, 0, ANORM, SSFMAX, LEND-L+1, 1, D( L ), N, $ INFO ) CALL DLASCL( 'G', 0, 0, ANORM, SSFMAX, LEND-L, 1, E( L ), N, $ INFO ) ELSE IF( ANORM.LT.SSFMIN ) THEN ISCALE = 2 CALL DLASCL( 'G', 0, 0, ANORM, SSFMIN, LEND-L+1, 1, D( L ), N, $ INFO ) CALL DLASCL( 'G', 0, 0, ANORM, SSFMIN, LEND-L, 1, E( L ), N, $ INFO ) END IF * * Choose between QL and QR iteration * IF( ABS( D( LEND ) ).LT.ABS( D( L ) ) ) THEN LEND = LSV L = LENDSV END IF * IF( LEND.GT.L ) THEN * * QL Iteration * * Look for small subdiagonal element. * 40 CONTINUE IF( L.NE.LEND ) THEN LENDM1 = LEND - 1 DO 50 M = L, LENDM1 TST = ABS( E( M ) )**2 IF( TST.LE.( EPS2*ABS( D( M ) ) )*ABS( D( M+1 ) )+ $ SAFMIN )GO TO 60 50 CONTINUE END IF * M = LEND * 60 CONTINUE IF( M.LT.LEND ) $ E( M ) = ZERO P = D( L ) IF( M.EQ.L ) $ GO TO 80 * * If remaining matrix is 2-by-2, use DLAE2 or SLAEV2 * to compute its eigensystem. * IF( M.EQ.L+1 ) THEN IF( ICOMPZ.GT.0 ) THEN CALL DLAEV2( D( L ), E( L ), D( L+1 ), RT1, RT2, C, S ) WORK( L ) = C WORK( N-1+L ) = S CALL ZLASR( 'R', 'V', 'B', N, 2, WORK( L ), $ WORK( N-1+L ), Z( 1, L ), LDZ ) ELSE CALL DLAE2( D( L ), E( L ), D( L+1 ), RT1, RT2 ) END IF D( L ) = RT1 D( L+1 ) = RT2 E( L ) = ZERO L = L + 2 IF( L.LE.LEND ) $ GO TO 40 GO TO 140 END IF * IF( JTOT.EQ.NMAXIT ) $ GO TO 140 JTOT = JTOT + 1 * * Form shift. * G = ( D( L+1 )-P ) / ( TWO*E( L ) ) R = DLAPY2( G, ONE ) G = D( M ) - P + ( E( L ) / ( G+SIGN( R, G ) ) ) * S = ONE C = ONE P = ZERO * * Inner loop * MM1 = M - 1 DO 70 I = MM1, L, -1 F = S*E( I ) B = C*E( I ) CALL DLARTG( G, F, C, S, R ) IF( I.NE.M-1 ) $ E( I+1 ) = R G = D( I+1 ) - P R = ( D( I )-G )*S + TWO*C*B P = S*R D( I+1 ) = G + P G = C*R - B * * If eigenvectors are desired, then save rotations. * IF( ICOMPZ.GT.0 ) THEN WORK( I ) = C WORK( N-1+I ) = -S END IF * 70 CONTINUE * * If eigenvectors are desired, then apply saved rotations. * IF( ICOMPZ.GT.0 ) THEN MM = M - L + 1 CALL ZLASR( 'R', 'V', 'B', N, MM, WORK( L ), WORK( N-1+L ), $ Z( 1, L ), LDZ ) END IF * D( L ) = D( L ) - P E( L ) = G GO TO 40 * * Eigenvalue found. * 80 CONTINUE D( L ) = P * L = L + 1 IF( L.LE.LEND ) $ GO TO 40 GO TO 140 * ELSE * * QR Iteration * * Look for small superdiagonal element. * 90 CONTINUE IF( L.NE.LEND ) THEN LENDP1 = LEND + 1 DO 100 M = L, LENDP1, -1 TST = ABS( E( M-1 ) )**2 IF( TST.LE.( EPS2*ABS( D( M ) ) )*ABS( D( M-1 ) )+ $ SAFMIN )GO TO 110 100 CONTINUE END IF * M = LEND * 110 CONTINUE IF( M.GT.LEND ) $ E( M-1 ) = ZERO P = D( L ) IF( M.EQ.L ) $ GO TO 130 * * If remaining matrix is 2-by-2, use DLAE2 or SLAEV2 * to compute its eigensystem. * IF( M.EQ.L-1 ) THEN IF( ICOMPZ.GT.0 ) THEN CALL DLAEV2( D( L-1 ), E( L-1 ), D( L ), RT1, RT2, C, S ) WORK( M ) = C WORK( N-1+M ) = S CALL ZLASR( 'R', 'V', 'F', N, 2, WORK( M ), $ WORK( N-1+M ), Z( 1, L-1 ), LDZ ) ELSE CALL DLAE2( D( L-1 ), E( L-1 ), D( L ), RT1, RT2 ) END IF D( L-1 ) = RT1 D( L ) = RT2 E( L-1 ) = ZERO L = L - 2 IF( L.GE.LEND ) $ GO TO 90 GO TO 140 END IF * IF( JTOT.EQ.NMAXIT ) $ GO TO 140 JTOT = JTOT + 1 * * Form shift. * G = ( D( L-1 )-P ) / ( TWO*E( L-1 ) ) R = DLAPY2( G, ONE ) G = D( M ) - P + ( E( L-1 ) / ( G+SIGN( R, G ) ) ) * S = ONE C = ONE P = ZERO * * Inner loop * LM1 = L - 1 DO 120 I = M, LM1 F = S*E( I ) B = C*E( I ) CALL DLARTG( G, F, C, S, R ) IF( I.NE.M ) $ E( I-1 ) = R G = D( I ) - P R = ( D( I+1 )-G )*S + TWO*C*B P = S*R D( I ) = G + P G = C*R - B * * If eigenvectors are desired, then save rotations. * IF( ICOMPZ.GT.0 ) THEN WORK( I ) = C WORK( N-1+I ) = S END IF * 120 CONTINUE * * If eigenvectors are desired, then apply saved rotations. * IF( ICOMPZ.GT.0 ) THEN MM = L - M + 1 CALL ZLASR( 'R', 'V', 'F', N, MM, WORK( M ), WORK( N-1+M ), $ Z( 1, M ), LDZ ) END IF * D( L ) = D( L ) - P E( LM1 ) = G GO TO 90 * * Eigenvalue found. * 130 CONTINUE D( L ) = P * L = L - 1 IF( L.GE.LEND ) $ GO TO 90 GO TO 140 * END IF * * Undo scaling if necessary * 140 CONTINUE IF( ISCALE.EQ.1 ) THEN CALL DLASCL( 'G', 0, 0, SSFMAX, ANORM, LENDSV-LSV+1, 1, $ D( LSV ), N, INFO ) CALL DLASCL( 'G', 0, 0, SSFMAX, ANORM, LENDSV-LSV, 1, E( LSV ), $ N, INFO ) ELSE IF( ISCALE.EQ.2 ) THEN CALL DLASCL( 'G', 0, 0, SSFMIN, ANORM, LENDSV-LSV+1, 1, $ D( LSV ), N, INFO ) CALL DLASCL( 'G', 0, 0, SSFMIN, ANORM, LENDSV-LSV, 1, E( LSV ), $ N, INFO ) END IF * * Check for no convergence to an eigenvalue after a total * of N*MAXIT iterations. * IF( JTOT.EQ.NMAXIT ) THEN DO 150 I = 1, N - 1 IF( E( I ).NE.ZERO ) $ INFO = INFO + 1 150 CONTINUE RETURN END IF GO TO 10 * * Order eigenvalues and eigenvectors. * 160 CONTINUE IF( ICOMPZ.EQ.0 ) THEN * * Use Quick Sort * CALL DLASRT( 'I', N, D, INFO ) * ELSE * * Use Selection Sort to minimize swaps of eigenvectors * DO 180 II = 2, N I = II - 1 K = I P = D( I ) DO 170 J = II, N IF( D( J ).LT.P ) THEN K = J P = D( J ) END IF 170 CONTINUE IF( K.NE.I ) THEN D( K ) = D( I ) D( I ) = P CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 ) END IF 180 CONTINUE END IF RETURN * * End of ZSTEQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zpotrf.f0000644000000000000000000000013213543334726015255 xustar0030 mtime=1569569238.509645854 30 atime=1569569238.508645854 30 ctime=1569569238.509645854 elk-6.3.2/src/LAPACK/zpotrf.f0000644002504400250440000001632513543334726017333 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZPOTRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZPOTRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZPOTRF( UPLO, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZPOTRF computes the Cholesky factorization of a complex Hermitian *> positive definite matrix A. *> *> The factorization has the form *> A = U**H * U, if UPLO = 'U', or *> A = L * L**H, if UPLO = 'L', *> where U is an upper triangular matrix and L is lower triangular. *> *> This is the block version of the algorithm, calling Level 3 BLAS. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the factor U or L from the Cholesky *> factorization A = U**H *U or A = L*L**H. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the leading minor of order i is not *> positive definite, and the factorization could not be *> completed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16POcomputational * * ===================================================================== SUBROUTINE ZPOTRF( UPLO, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE COMPLEX*16 CONE PARAMETER ( ONE = 1.0D+0, CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER J, JB, NB * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGEMM, ZHERK, ZPOTRF2, ZTRSM * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZPOTRF', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Determine the block size for this environment. * NB = ILAENV( 1, 'ZPOTRF', UPLO, N, -1, -1, -1 ) IF( NB.LE.1 .OR. NB.GE.N ) THEN * * Use unblocked code. * CALL ZPOTRF2( UPLO, N, A, LDA, INFO ) ELSE * * Use blocked code. * IF( UPPER ) THEN * * Compute the Cholesky factorization A = U**H *U. * DO 10 J = 1, N, NB * * Update and factorize the current diagonal block and test * for non-positive-definiteness. * JB = MIN( NB, N-J+1 ) CALL ZHERK( 'Upper', 'Conjugate transpose', JB, J-1, $ -ONE, A( 1, J ), LDA, ONE, A( J, J ), LDA ) CALL ZPOTRF2( 'Upper', JB, A( J, J ), LDA, INFO ) IF( INFO.NE.0 ) $ GO TO 30 IF( J+JB.LE.N ) THEN * * Compute the current block row. * CALL ZGEMM( 'Conjugate transpose', 'No transpose', JB, $ N-J-JB+1, J-1, -CONE, A( 1, J ), LDA, $ A( 1, J+JB ), LDA, CONE, A( J, J+JB ), $ LDA ) CALL ZTRSM( 'Left', 'Upper', 'Conjugate transpose', $ 'Non-unit', JB, N-J-JB+1, CONE, A( J, J ), $ LDA, A( J, J+JB ), LDA ) END IF 10 CONTINUE * ELSE * * Compute the Cholesky factorization A = L*L**H. * DO 20 J = 1, N, NB * * Update and factorize the current diagonal block and test * for non-positive-definiteness. * JB = MIN( NB, N-J+1 ) CALL ZHERK( 'Lower', 'No transpose', JB, J-1, -ONE, $ A( J, 1 ), LDA, ONE, A( J, J ), LDA ) CALL ZPOTRF2( 'Lower', JB, A( J, J ), LDA, INFO ) IF( INFO.NE.0 ) $ GO TO 30 IF( J+JB.LE.N ) THEN * * Compute the current block column. * CALL ZGEMM( 'No transpose', 'Conjugate transpose', $ N-J-JB+1, JB, J-1, -CONE, A( J+JB, 1 ), $ LDA, A( J, 1 ), LDA, CONE, A( J+JB, J ), $ LDA ) CALL ZTRSM( 'Right', 'Lower', 'Conjugate transpose', $ 'Non-unit', N-J-JB+1, JB, CONE, A( J, J ), $ LDA, A( J+JB, J ), LDA ) END IF 20 CONTINUE END IF END IF GO TO 40 * 30 CONTINUE INFO = INFO + J - 1 * 40 CONTINUE RETURN * * End of ZPOTRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhegst.f0000644000000000000000000000013213543334726015235 xustar0030 mtime=1569569238.514645851 30 atime=1569569238.512645852 30 ctime=1569569238.514645851 elk-6.3.2/src/LAPACK/zhegst.f0000644002504400250440000002622413543334726017312 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHEGST * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEGST + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEGST reduces a complex Hermitian-definite generalized *> eigenproblem to standard form. *> *> If ITYPE = 1, the problem is A*x = lambda*B*x, *> and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H) *> *> If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or *> B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L. *> *> B must have been previously factorized as U**H*U or L*L**H by ZPOTRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); *> = 2 or 3: compute U*A*U**H or L**H*A*L. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored and B is factored as *> U**H*U; *> = 'L': Lower triangle of A is stored and B is factored as *> L*L**H. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the transformed matrix, stored in the *> same format as A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,N) *> The triangular factor from the Cholesky factorization of B, *> as returned by ZPOTRF. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEcomputational * * ===================================================================== SUBROUTINE ZHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) COMPLEX*16 CONE, HALF PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ), $ HALF = ( 0.5D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER K, KB, NB * .. * .. External Subroutines .. EXTERNAL XERBLA, ZHEGS2, ZHEMM, ZHER2K, ZTRMM, ZTRSM * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEGST', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Determine the block size for this environment. * NB = ILAENV( 1, 'ZHEGST', UPLO, N, -1, -1, -1 ) * IF( NB.LE.1 .OR. NB.GE.N ) THEN * * Use unblocked code * CALL ZHEGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) ELSE * * Use blocked code * IF( ITYPE.EQ.1 ) THEN IF( UPPER ) THEN * * Compute inv(U**H)*A*inv(U) * DO 10 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the upper triangle of A(k:n,k:n) * CALL ZHEGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) IF( K+KB.LE.N ) THEN CALL ZTRSM( 'Left', UPLO, 'Conjugate transpose', $ 'Non-unit', KB, N-K-KB+1, CONE, $ B( K, K ), LDB, A( K, K+KB ), LDA ) CALL ZHEMM( 'Left', UPLO, KB, N-K-KB+1, -HALF, $ A( K, K ), LDA, B( K, K+KB ), LDB, $ CONE, A( K, K+KB ), LDA ) CALL ZHER2K( UPLO, 'Conjugate transpose', N-K-KB+1, $ KB, -CONE, A( K, K+KB ), LDA, $ B( K, K+KB ), LDB, ONE, $ A( K+KB, K+KB ), LDA ) CALL ZHEMM( 'Left', UPLO, KB, N-K-KB+1, -HALF, $ A( K, K ), LDA, B( K, K+KB ), LDB, $ CONE, A( K, K+KB ), LDA ) CALL ZTRSM( 'Right', UPLO, 'No transpose', $ 'Non-unit', KB, N-K-KB+1, CONE, $ B( K+KB, K+KB ), LDB, A( K, K+KB ), $ LDA ) END IF 10 CONTINUE ELSE * * Compute inv(L)*A*inv(L**H) * DO 20 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the lower triangle of A(k:n,k:n) * CALL ZHEGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) IF( K+KB.LE.N ) THEN CALL ZTRSM( 'Right', UPLO, 'Conjugate transpose', $ 'Non-unit', N-K-KB+1, KB, CONE, $ B( K, K ), LDB, A( K+KB, K ), LDA ) CALL ZHEMM( 'Right', UPLO, N-K-KB+1, KB, -HALF, $ A( K, K ), LDA, B( K+KB, K ), LDB, $ CONE, A( K+KB, K ), LDA ) CALL ZHER2K( UPLO, 'No transpose', N-K-KB+1, KB, $ -CONE, A( K+KB, K ), LDA, $ B( K+KB, K ), LDB, ONE, $ A( K+KB, K+KB ), LDA ) CALL ZHEMM( 'Right', UPLO, N-K-KB+1, KB, -HALF, $ A( K, K ), LDA, B( K+KB, K ), LDB, $ CONE, A( K+KB, K ), LDA ) CALL ZTRSM( 'Left', UPLO, 'No transpose', $ 'Non-unit', N-K-KB+1, KB, CONE, $ B( K+KB, K+KB ), LDB, A( K+KB, K ), $ LDA ) END IF 20 CONTINUE END IF ELSE IF( UPPER ) THEN * * Compute U*A*U**H * DO 30 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the upper triangle of A(1:k+kb-1,1:k+kb-1) * CALL ZTRMM( 'Left', UPLO, 'No transpose', 'Non-unit', $ K-1, KB, CONE, B, LDB, A( 1, K ), LDA ) CALL ZHEMM( 'Right', UPLO, K-1, KB, HALF, A( K, K ), $ LDA, B( 1, K ), LDB, CONE, A( 1, K ), $ LDA ) CALL ZHER2K( UPLO, 'No transpose', K-1, KB, CONE, $ A( 1, K ), LDA, B( 1, K ), LDB, ONE, A, $ LDA ) CALL ZHEMM( 'Right', UPLO, K-1, KB, HALF, A( K, K ), $ LDA, B( 1, K ), LDB, CONE, A( 1, K ), $ LDA ) CALL ZTRMM( 'Right', UPLO, 'Conjugate transpose', $ 'Non-unit', K-1, KB, CONE, B( K, K ), LDB, $ A( 1, K ), LDA ) CALL ZHEGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) 30 CONTINUE ELSE * * Compute L**H*A*L * DO 40 K = 1, N, NB KB = MIN( N-K+1, NB ) * * Update the lower triangle of A(1:k+kb-1,1:k+kb-1) * CALL ZTRMM( 'Right', UPLO, 'No transpose', 'Non-unit', $ KB, K-1, CONE, B, LDB, A( K, 1 ), LDA ) CALL ZHEMM( 'Left', UPLO, KB, K-1, HALF, A( K, K ), $ LDA, B( K, 1 ), LDB, CONE, A( K, 1 ), $ LDA ) CALL ZHER2K( UPLO, 'Conjugate transpose', K-1, KB, $ CONE, A( K, 1 ), LDA, B( K, 1 ), LDB, $ ONE, A, LDA ) CALL ZHEMM( 'Left', UPLO, KB, K-1, HALF, A( K, K ), $ LDA, B( K, 1 ), LDB, CONE, A( K, 1 ), $ LDA ) CALL ZTRMM( 'Left', UPLO, 'Conjugate transpose', $ 'Non-unit', KB, K-1, CONE, B( K, K ), LDB, $ A( K, 1 ), LDA ) CALL ZHEGS2( ITYPE, UPLO, KB, A( K, K ), LDA, $ B( K, K ), LDB, INFO ) 40 CONTINUE END IF END IF END IF RETURN * * End of ZHEGST * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zheevx.f0000644000000000000000000000013213543334726015242 xustar0030 mtime=1569569238.519645847 30 atime=1569569238.517645849 30 ctime=1569569238.519645847 elk-6.3.2/src/LAPACK/zheevx.f0000644002504400250440000004334413543334726017321 0ustar00dewhurstdewhurst00000000000000*> \brief ZHEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEEVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, * ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, * IWORK, IFAIL, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, IU, LDA, LDZ, LWORK, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION RWORK( * ), W( * ) * COMPLEX*16 A( LDA, * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEEVX computes selected eigenvalues and, optionally, eigenvectors *> of a complex Hermitian matrix A. Eigenvalues and eigenvectors can *> be selected by specifying either a range of values or a range of *> indices for the desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found. *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found. *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA, N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the *> leading N-by-N upper triangular part of A contains the *> upper triangular part of the matrix A. If UPLO = 'L', *> the leading N-by-N lower triangular part of A contains *> the lower triangular part of the matrix A. *> On exit, the lower triangle (if UPLO='L') or the upper *> triangle (if UPLO='U') of A, including the diagonal, is *> destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing A to tridiagonal form. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> *> See "Computing Small Singular Values of Bidiagonal Matrices *> with Guaranteed High Relative Accuracy," by Demmel and *> Kahan, LAPACK Working Note #3. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> On normal exit, the first M elements contain the selected *> eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ, max(1,M)) *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and the *> index of the eigenvector is returned in IFAIL. *> If JOBZ = 'N', then Z is not referenced. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= 1, when N <= 1; *> otherwise 2*N. *> For optimal efficiency, LWORK >= (NB+1)*N, *> where NB is the max of the blocksize for ZHETRD and for *> ZUNMTR as returned by ILAENV. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (7*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, then i eigenvectors failed to converge. *> Their indices are stored in array IFAIL. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16HEeigen * * ===================================================================== SUBROUTINE ZHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, $ ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, $ IWORK, IFAIL, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, IU, LDA, LDZ, LWORK, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION RWORK( * ), W( * ) COMPLEX*16 A( LDA, * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, LOWER, LQUERY, TEST, VALEIG, $ WANTZ CHARACTER ORDER INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, $ INDISP, INDIWK, INDRWK, INDTAU, INDWRK, ISCALE, $ ITMP1, J, JJ, LLWORK, LWKMIN, LWKOPT, NB, $ NSPLIT DOUBLE PRECISION ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, $ SIGMA, SMLNUM, TMP1, VLL, VUU * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, ZLANHE EXTERNAL LSAME, ILAENV, DLAMCH, ZLANHE * .. * .. External Subroutines .. EXTERNAL DCOPY, DSCAL, DSTEBZ, DSTERF, XERBLA, ZDSCAL, $ ZHETRD, ZLACPY, ZSTEIN, ZSTEQR, ZSWAP, ZUNGTR, $ ZUNMTR * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * LOWER = LSAME( UPLO, 'L' ) WANTZ = LSAME( JOBZ, 'V' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) LQUERY = ( LWORK.EQ.-1 ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -2 ELSE IF( .NOT.( LOWER .OR. LSAME( UPLO, 'U' ) ) ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) $ INFO = -8 ELSE IF( INDEIG ) THEN IF( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) THEN INFO = -9 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -10 END IF END IF END IF IF( INFO.EQ.0 ) THEN IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.N ) ) THEN INFO = -15 END IF END IF * IF( INFO.EQ.0 ) THEN IF( N.LE.1 ) THEN LWKMIN = 1 WORK( 1 ) = LWKMIN ELSE LWKMIN = 2*N NB = ILAENV( 1, 'ZHETRD', UPLO, N, -1, -1, -1 ) NB = MAX( NB, ILAENV( 1, 'ZUNMTR', UPLO, N, -1, -1, -1 ) ) LWKOPT = MAX( 1, ( NB + 1 )*N ) WORK( 1 ) = LWKOPT END IF * IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) $ INFO = -17 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEEVX', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * M = 0 IF( N.EQ.0 ) THEN RETURN END IF * IF( N.EQ.1 ) THEN IF( ALLEIG .OR. INDEIG ) THEN M = 1 W( 1 ) = A( 1, 1 ) ELSE IF( VALEIG ) THEN IF( VL.LT.DBLE( A( 1, 1 ) ) .AND. VU.GE.DBLE( A( 1, 1 ) ) ) $ THEN M = 1 W( 1 ) = A( 1, 1 ) END IF END IF IF( WANTZ ) $ Z( 1, 1 ) = CONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = MIN( SQRT( BIGNUM ), ONE / SQRT( SQRT( SAFMIN ) ) ) * * Scale matrix to allowable range, if necessary. * ISCALE = 0 ABSTLL = ABSTOL IF( VALEIG ) THEN VLL = VL VUU = VU END IF ANRM = ZLANHE( 'M', UPLO, N, A, LDA, RWORK ) IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) THEN IF( LOWER ) THEN DO 10 J = 1, N CALL ZDSCAL( N-J+1, SIGMA, A( J, J ), 1 ) 10 CONTINUE ELSE DO 20 J = 1, N CALL ZDSCAL( J, SIGMA, A( 1, J ), 1 ) 20 CONTINUE END IF IF( ABSTOL.GT.0 ) $ ABSTLL = ABSTOL*SIGMA IF( VALEIG ) THEN VLL = VL*SIGMA VUU = VU*SIGMA END IF END IF * * Call ZHETRD to reduce Hermitian matrix to tridiagonal form. * INDD = 1 INDE = INDD + N INDRWK = INDE + N INDTAU = 1 INDWRK = INDTAU + N LLWORK = LWORK - INDWRK + 1 CALL ZHETRD( UPLO, N, A, LDA, RWORK( INDD ), RWORK( INDE ), $ WORK( INDTAU ), WORK( INDWRK ), LLWORK, IINFO ) * * If all eigenvalues are desired and ABSTOL is less than or equal to * zero, then call DSTERF or ZUNGTR and ZSTEQR. If this fails for * some eigenvalue, then try DSTEBZ. * TEST = .FALSE. IF( INDEIG ) THEN IF( IL.EQ.1 .AND. IU.EQ.N ) THEN TEST = .TRUE. END IF END IF IF( ( ALLEIG .OR. TEST ) .AND. ( ABSTOL.LE.ZERO ) ) THEN CALL DCOPY( N, RWORK( INDD ), 1, W, 1 ) INDEE = INDRWK + 2*N IF( .NOT.WANTZ ) THEN CALL DCOPY( N-1, RWORK( INDE ), 1, RWORK( INDEE ), 1 ) CALL DSTERF( N, W, RWORK( INDEE ), INFO ) ELSE CALL ZLACPY( 'A', N, N, A, LDA, Z, LDZ ) CALL ZUNGTR( UPLO, N, Z, LDZ, WORK( INDTAU ), $ WORK( INDWRK ), LLWORK, IINFO ) CALL DCOPY( N-1, RWORK( INDE ), 1, RWORK( INDEE ), 1 ) CALL ZSTEQR( JOBZ, N, W, RWORK( INDEE ), Z, LDZ, $ RWORK( INDRWK ), INFO ) IF( INFO.EQ.0 ) THEN DO 30 I = 1, N IFAIL( I ) = 0 30 CONTINUE END IF END IF IF( INFO.EQ.0 ) THEN M = N GO TO 40 END IF INFO = 0 END IF * * Otherwise, call DSTEBZ and, if eigenvectors are desired, ZSTEIN. * IF( WANTZ ) THEN ORDER = 'B' ELSE ORDER = 'E' END IF INDIBL = 1 INDISP = INDIBL + N INDIWK = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ RWORK( INDD ), RWORK( INDE ), M, NSPLIT, W, $ IWORK( INDIBL ), IWORK( INDISP ), RWORK( INDRWK ), $ IWORK( INDIWK ), INFO ) * IF( WANTZ ) THEN CALL ZSTEIN( N, RWORK( INDD ), RWORK( INDE ), M, W, $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, $ RWORK( INDRWK ), IWORK( INDIWK ), IFAIL, INFO ) * * Apply unitary matrix used in reduction to tridiagonal * form to eigenvectors returned by ZSTEIN. * CALL ZUNMTR( 'L', UPLO, 'N', N, M, A, LDA, WORK( INDTAU ), Z, $ LDZ, WORK( INDWRK ), LLWORK, IINFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * 40 CONTINUE IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = M ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * * If eigenvalues are not in order, then sort them, along with * eigenvectors. * IF( WANTZ ) THEN DO 60 J = 1, M - 1 I = 0 TMP1 = W( J ) DO 50 JJ = J + 1, M IF( W( JJ ).LT.TMP1 ) THEN I = JJ TMP1 = W( JJ ) END IF 50 CONTINUE * IF( I.NE.0 ) THEN ITMP1 = IWORK( INDIBL+I-1 ) W( I ) = W( J ) IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) W( J ) = TMP1 IWORK( INDIBL+J-1 ) = ITMP1 CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) IFAIL( I ) = IFAIL( J ) IFAIL( J ) = ITMP1 END IF END IF 60 CONTINUE END IF * * Set WORK(1) to optimal complex workspace size. * WORK( 1 ) = LWKOPT * RETURN * * End of ZHEEVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlanhp.f0000644000000000000000000000013213543334726015225 xustar0030 mtime=1569569238.524645844 30 atime=1569569238.522645845 30 ctime=1569569238.524645844 elk-6.3.2/src/LAPACK/zlanhp.f0000644002504400250440000002017013543334726017274 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLANHP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex Hermitian matrix supplied in packed form. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLANHP + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION ZLANHP( NORM, UPLO, N, AP, WORK ) * * .. Scalar Arguments .. * CHARACTER NORM, UPLO * INTEGER N * .. * .. Array Arguments .. * DOUBLE PRECISION WORK( * ) * COMPLEX*16 AP( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLANHP returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> complex hermitian matrix A, supplied in packed form. *> \endverbatim *> *> \return ZLANHP *> \verbatim *> *> ZLANHP = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in ZLANHP as described *> above. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> hermitian matrix A is supplied. *> = 'U': Upper triangular part of A is supplied *> = 'L': Lower triangular part of A is supplied *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. When N = 0, ZLANHP is *> set to zero. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> The upper or lower triangle of the hermitian matrix A, packed *> columnwise in a linear array. The j-th column of A is stored *> in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. *> Note that the imaginary parts of the diagonal elements need *> not be set and are assumed to be zero. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), *> where LWORK >= N when NORM = 'I' or '1' or 'O'; otherwise, *> WORK is not referenced. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION ZLANHP( NORM, UPLO, N, AP, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM, UPLO INTEGER N * .. * .. Array Arguments .. DOUBLE PRECISION WORK( * ) COMPLEX*16 AP( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J, K DOUBLE PRECISION ABSA, SCALE, SUM, VALUE * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. External Subroutines .. EXTERNAL ZLASSQ * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, SQRT * .. * .. Executable Statements .. * IF( N.EQ.0 ) THEN VALUE = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * VALUE = ZERO IF( LSAME( UPLO, 'U' ) ) THEN K = 0 DO 20 J = 1, N DO 10 I = K + 1, K + J - 1 SUM = ABS( AP( I ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 10 CONTINUE K = K + J SUM = ABS( DBLE( AP( K ) ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 20 CONTINUE ELSE K = 1 DO 40 J = 1, N SUM = ABS( DBLE( AP( K ) ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM DO 30 I = K + 1, K + N - J SUM = ABS( AP( I ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 30 CONTINUE K = K + N - J + 1 40 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'I' ) ) .OR. ( LSAME( NORM, 'O' ) ) .OR. $ ( NORM.EQ.'1' ) ) THEN * * Find normI(A) ( = norm1(A), since A is hermitian). * VALUE = ZERO K = 1 IF( LSAME( UPLO, 'U' ) ) THEN DO 60 J = 1, N SUM = ZERO DO 50 I = 1, J - 1 ABSA = ABS( AP( K ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA K = K + 1 50 CONTINUE WORK( J ) = SUM + ABS( DBLE( AP( K ) ) ) K = K + 1 60 CONTINUE DO 70 I = 1, N SUM = WORK( I ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 70 CONTINUE ELSE DO 80 I = 1, N WORK( I ) = ZERO 80 CONTINUE DO 100 J = 1, N SUM = WORK( J ) + ABS( DBLE( AP( K ) ) ) K = K + 1 DO 90 I = J + 1, N ABSA = ABS( AP( K ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA K = K + 1 90 CONTINUE IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 100 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE K = 2 IF( LSAME( UPLO, 'U' ) ) THEN DO 110 J = 2, N CALL ZLASSQ( J-1, AP( K ), 1, SCALE, SUM ) K = K + J 110 CONTINUE ELSE DO 120 J = 1, N - 1 CALL ZLASSQ( N-J, AP( K ), 1, SCALE, SUM ) K = K + N - J + 1 120 CONTINUE END IF SUM = 2*SUM K = 1 DO 130 I = 1, N IF( DBLE( AP( K ) ).NE.ZERO ) THEN ABSA = ABS( DBLE( AP( K ) ) ) IF( SCALE.LT.ABSA ) THEN SUM = ONE + SUM*( SCALE / ABSA )**2 SCALE = ABSA ELSE SUM = SUM + ( ABSA / SCALE )**2 END IF END IF IF( LSAME( UPLO, 'U' ) ) THEN K = K + I + 1 ELSE K = K + N - I + 1 END IF 130 CONTINUE VALUE = SCALE*SQRT( SUM ) END IF * ZLANHP = VALUE RETURN * * End of ZLANHP * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhptrd.f0000644000000000000000000000013213543334726015244 xustar0030 mtime=1569569238.528645842 30 atime=1569569238.527645842 30 ctime=1569569238.528645842 elk-6.3.2/src/LAPACK/zhptrd.f0000644002504400250440000002163013543334726017315 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHPTRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHPTRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHPTRD( UPLO, N, AP, D, E, TAU, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * COMPLEX*16 AP( * ), TAU( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHPTRD reduces a complex Hermitian matrix A stored in packed form to *> real symmetric tridiagonal form T by a unitary similarity *> transformation: Q**H * A * Q = T. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the Hermitian matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *> On exit, if UPLO = 'U', the diagonal and first superdiagonal *> of A are overwritten by the corresponding elements of the *> tridiagonal matrix T, and the elements above the first *> superdiagonal, with the array TAU, represent the unitary *> matrix Q as a product of elementary reflectors; if UPLO *> = 'L', the diagonal and first subdiagonal of A are over- *> written by the corresponding elements of the tridiagonal *> matrix T, and the elements below the first subdiagonal, with *> the array TAU, represent the unitary matrix Q as a product *> of elementary reflectors. See Further Details. *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix T: *> E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n-1) . . . H(2) H(1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP, *> overwriting A(1:i-1,i+1), and tau is stored in TAU(i). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(n-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP, *> overwriting A(i+2:n,i), and tau is stored in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZHPTRD( UPLO, N, AP, D, E, TAU, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) COMPLEX*16 AP( * ), TAU( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO, HALF PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ), $ HALF = ( 0.5D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER I, I1, I1I1, II COMPLEX*16 ALPHA, TAUI * .. * .. External Subroutines .. EXTERNAL XERBLA, ZAXPY, ZHPMV, ZHPR2, ZLARFG * .. * .. External Functions .. LOGICAL LSAME COMPLEX*16 ZDOTC EXTERNAL LSAME, ZDOTC * .. * .. Intrinsic Functions .. INTRINSIC DBLE * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHPTRD', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * IF( UPPER ) THEN * * Reduce the upper triangle of A. * I1 is the index in AP of A(1,I+1). * I1 = N*( N-1 ) / 2 + 1 AP( I1+N-1 ) = DBLE( AP( I1+N-1 ) ) DO 10 I = N - 1, 1, -1 * * Generate elementary reflector H(i) = I - tau * v * v**H * to annihilate A(1:i-1,i+1) * ALPHA = AP( I1+I-1 ) CALL ZLARFG( I, ALPHA, AP( I1 ), 1, TAUI ) E( I ) = ALPHA * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(1:i,1:i) * AP( I1+I-1 ) = ONE * * Compute y := tau * A * v storing y in TAU(1:i) * CALL ZHPMV( UPLO, I, TAUI, AP, AP( I1 ), 1, ZERO, TAU, $ 1 ) * * Compute w := y - 1/2 * tau * (y**H *v) * v * ALPHA = -HALF*TAUI*ZDOTC( I, TAU, 1, AP( I1 ), 1 ) CALL ZAXPY( I, ALPHA, AP( I1 ), 1, TAU, 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**H - w * v**H * CALL ZHPR2( UPLO, I, -ONE, AP( I1 ), 1, TAU, 1, AP ) * END IF AP( I1+I-1 ) = E( I ) D( I+1 ) = AP( I1+I ) TAU( I ) = TAUI I1 = I1 - I 10 CONTINUE D( 1 ) = AP( 1 ) ELSE * * Reduce the lower triangle of A. II is the index in AP of * A(i,i) and I1I1 is the index of A(i+1,i+1). * II = 1 AP( 1 ) = DBLE( AP( 1 ) ) DO 20 I = 1, N - 1 I1I1 = II + N - I + 1 * * Generate elementary reflector H(i) = I - tau * v * v**H * to annihilate A(i+2:n,i) * ALPHA = AP( II+1 ) CALL ZLARFG( N-I, ALPHA, AP( II+2 ), 1, TAUI ) E( I ) = ALPHA * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(i+1:n,i+1:n) * AP( II+1 ) = ONE * * Compute y := tau * A * v storing y in TAU(i:n-1) * CALL ZHPMV( UPLO, N-I, TAUI, AP( I1I1 ), AP( II+1 ), 1, $ ZERO, TAU( I ), 1 ) * * Compute w := y - 1/2 * tau * (y**H *v) * v * ALPHA = -HALF*TAUI*ZDOTC( N-I, TAU( I ), 1, AP( II+1 ), $ 1 ) CALL ZAXPY( N-I, ALPHA, AP( II+1 ), 1, TAU( I ), 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**H - w * v**H * CALL ZHPR2( UPLO, N-I, -ONE, AP( II+1 ), 1, TAU( I ), 1, $ AP( I1I1 ) ) * END IF AP( II+1 ) = E( I ) D( I ) = AP( II ) TAU( I ) = TAUI II = I1I1 20 CONTINUE D( N ) = AP( II ) END IF * RETURN * * End of ZHPTRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zupgtr.f0000644000000000000000000000013113543334726015263 xustar0030 mtime=1569569238.533645838 29 atime=1569569238.53164584 30 ctime=1569569238.533645838 elk-6.3.2/src/LAPACK/zupgtr.f0000644002504400250440000001373213543334726017341 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUPGTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUPGTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUPGTR( UPLO, N, AP, TAU, Q, LDQ, WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDQ, N * .. * .. Array Arguments .. * COMPLEX*16 AP( * ), Q( LDQ, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUPGTR generates a complex unitary matrix Q which is defined as the *> product of n-1 elementary reflectors H(i) of order n, as returned by *> ZHPTRD using packed storage: *> *> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1), *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangular packed storage used in previous *> call to ZHPTRD; *> = 'L': Lower triangular packed storage used in previous *> call to ZHPTRD. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix Q. N >= 0. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is COMPLEX*16 array, dimension (N*(N+1)/2) *> The vectors which define the elementary reflectors, as *> returned by ZHPTRD. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZHPTRD. *> \endverbatim *> *> \param[out] Q *> \verbatim *> Q is COMPLEX*16 array, dimension (LDQ,N) *> The N-by-N unitary matrix Q. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (N-1) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUPGTR( UPLO, N, AP, TAU, Q, LDQ, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDQ, N * .. * .. Array Arguments .. COMPLEX*16 AP( * ), Q( LDQ, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), $ CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER I, IINFO, IJ, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNG2L, ZUNG2R * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUPGTR', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( UPPER ) THEN * * Q was determined by a call to ZHPTRD with UPLO = 'U' * * Unpack the vectors which define the elementary reflectors and * set the last row and column of Q equal to those of the unit * matrix * IJ = 2 DO 20 J = 1, N - 1 DO 10 I = 1, J - 1 Q( I, J ) = AP( IJ ) IJ = IJ + 1 10 CONTINUE IJ = IJ + 2 Q( N, J ) = CZERO 20 CONTINUE DO 30 I = 1, N - 1 Q( I, N ) = CZERO 30 CONTINUE Q( N, N ) = CONE * * Generate Q(1:n-1,1:n-1) * CALL ZUNG2L( N-1, N-1, N-1, Q, LDQ, TAU, WORK, IINFO ) * ELSE * * Q was determined by a call to ZHPTRD with UPLO = 'L'. * * Unpack the vectors which define the elementary reflectors and * set the first row and column of Q equal to those of the unit * matrix * Q( 1, 1 ) = CONE DO 40 I = 2, N Q( I, 1 ) = CZERO 40 CONTINUE IJ = 3 DO 60 J = 2, N Q( 1, J ) = CZERO DO 50 I = J + 1, N Q( I, J ) = AP( IJ ) IJ = IJ + 1 50 CONTINUE IJ = IJ + 2 60 CONTINUE IF( N.GT.1 ) THEN * * Generate Q(2:n,2:n) * CALL ZUNG2R( N-1, N-1, N-1, Q( 2, 2 ), LDQ, TAU, WORK, $ IINFO ) END IF END IF RETURN * * End of ZUPGTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dstebz.f0000644000000000000000000000013213543334726015224 xustar0030 mtime=1569569238.539645835 30 atime=1569569238.536645837 30 ctime=1569569238.539645835 elk-6.3.2/src/LAPACK/dstebz.f0000644002504400250440000005716213543334726017306 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSTEBZ * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSTEBZ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, * M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, * INFO ) * * .. Scalar Arguments .. * CHARACTER ORDER, RANGE * INTEGER IL, INFO, IU, M, N, NSPLIT * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IBLOCK( * ), ISPLIT( * ), IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), W( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSTEBZ computes the eigenvalues of a symmetric tridiagonal *> matrix T. The user may ask for all eigenvalues, all eigenvalues *> in the half-open interval (VL, VU], or the IL-th through IU-th *> eigenvalues. *> *> To avoid overflow, the matrix must be scaled so that its *> largest element is no greater than overflow**(1/2) * underflow**(1/4) in absolute value, and for greatest *> accuracy, it should not be much smaller than that. *> *> See W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal *> Matrix", Report CS41, Computer Science Dept., Stanford *> University, July 21, 1966. *> \endverbatim * * Arguments: * ========== * *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': ("All") all eigenvalues will be found. *> = 'V': ("Value") all eigenvalues in the half-open interval *> (VL, VU] will be found. *> = 'I': ("Index") the IL-th through IU-th eigenvalues (of the *> entire matrix) will be found. *> \endverbatim *> *> \param[in] ORDER *> \verbatim *> ORDER is CHARACTER*1 *> = 'B': ("By Block") the eigenvalues will be grouped by *> split-off block (see IBLOCK, ISPLIT) and *> ordered from smallest to largest within *> the block. *> = 'E': ("Entire matrix") *> the eigenvalues for the entire matrix *> will be ordered from smallest to *> largest. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the tridiagonal matrix T. N >= 0. *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. Eigenvalues less than or equal *> to VL, or greater than VU, will not be returned. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. Eigenvalues less than or equal *> to VL, or greater than VU, will not be returned. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute tolerance for the eigenvalues. An eigenvalue *> (or cluster) is considered to be located if it has been *> determined to lie in an interval whose width is ABSTOL or *> less. If ABSTOL is less than or equal to zero, then ULP*|T| *> will be used, where |T| means the 1-norm of T. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The n diagonal elements of the tridiagonal matrix T. *> \endverbatim *> *> \param[in] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The (n-1) off-diagonal elements of the tridiagonal matrix T. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The actual number of eigenvalues found. 0 <= M <= N. *> (See also the description of INFO=2,3.) *> \endverbatim *> *> \param[out] NSPLIT *> \verbatim *> NSPLIT is INTEGER *> The number of diagonal blocks in the matrix T. *> 1 <= NSPLIT <= N. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> On exit, the first M elements of W will contain the *> eigenvalues. (DSTEBZ may use the remaining N-M elements as *> workspace.) *> \endverbatim *> *> \param[out] IBLOCK *> \verbatim *> IBLOCK is INTEGER array, dimension (N) *> At each row/column j where E(j) is zero or small, the *> matrix T is considered to split into a block diagonal *> matrix. On exit, if INFO = 0, IBLOCK(i) specifies to which *> block (from 1 to the number of blocks) the eigenvalue W(i) *> belongs. (DSTEBZ may use the remaining N-M elements as *> workspace.) *> \endverbatim *> *> \param[out] ISPLIT *> \verbatim *> ISPLIT is INTEGER array, dimension (N) *> The splitting points, at which T breaks up into submatrices. *> The first submatrix consists of rows/columns 1 to ISPLIT(1), *> the second of rows/columns ISPLIT(1)+1 through ISPLIT(2), *> etc., and the NSPLIT-th consists of rows/columns *> ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N. *> (Only the first NSPLIT elements will actually be used, but *> since the user cannot know a priori what value NSPLIT will *> have, N words must be reserved for ISPLIT.) *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (4*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (3*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: some or all of the eigenvalues failed to converge or *> were not computed: *> =1 or 3: Bisection failed to converge for some *> eigenvalues; these eigenvalues are flagged by a *> negative block number. The effect is that the *> eigenvalues may not be as accurate as the *> absolute and relative tolerances. This is *> generally caused by unexpectedly inaccurate *> arithmetic. *> =2 or 3: RANGE='I' only: Not all of the eigenvalues *> IL:IU were found. *> Effect: M < IU+1-IL *> Cause: non-monotonic arithmetic, causing the *> Sturm sequence to be non-monotonic. *> Cure: recalculate, using RANGE='A', and pick *> out eigenvalues IL:IU. In some cases, *> increasing the PARAMETER "FUDGE" may *> make things work. *> = 4: RANGE='I', and the Gershgorin interval *> initially used was too small. No eigenvalues *> were computed. *> Probable cause: your machine has sloppy *> floating-point arithmetic. *> Cure: Increase the PARAMETER "FUDGE", *> recompile, and try again. *> \endverbatim * *> \par Internal Parameters: * ========================= *> *> \verbatim *> RELFAC DOUBLE PRECISION, default = 2.0e0 *> The relative tolerance. An interval (a,b] lies within *> "relative tolerance" if b-a < RELFAC*ulp*max(|a|,|b|), *> where "ulp" is the machine precision (distance from 1 to *> the next larger floating point number.) *> *> FUDGE DOUBLE PRECISION, default = 2 *> A "fudge factor" to widen the Gershgorin intervals. Ideally, *> a value of 1 should work, but on machines with sloppy *> arithmetic, this needs to be larger. The default for *> publicly released versions should be large enough to handle *> the worst machine around. Note that this has no effect *> on accuracy of the solution. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DSTEBZ( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, $ M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER ORDER, RANGE INTEGER IL, INFO, IU, M, N, NSPLIT DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IBLOCK( * ), ISPLIT( * ), IWORK( * ) DOUBLE PRECISION D( * ), E( * ), W( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO, HALF PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ HALF = 1.0D0 / TWO ) DOUBLE PRECISION FUDGE, RELFAC PARAMETER ( FUDGE = 2.1D0, RELFAC = 2.0D0 ) * .. * .. Local Scalars .. LOGICAL NCNVRG, TOOFEW INTEGER IB, IBEGIN, IDISCL, IDISCU, IE, IEND, IINFO, $ IM, IN, IOFF, IORDER, IOUT, IRANGE, ITMAX, $ ITMP1, IW, IWOFF, J, JB, JDISC, JE, NB, NWL, $ NWU DOUBLE PRECISION ATOLI, BNORM, GL, GU, PIVMIN, RTOLI, SAFEMN, $ TMP1, TMP2, TNORM, ULP, WKILL, WL, WLU, WU, WUL * .. * .. Local Arrays .. INTEGER IDUMMA( 1 ) * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH EXTERNAL LSAME, ILAENV, DLAMCH * .. * .. External Subroutines .. EXTERNAL DLAEBZ, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, INT, LOG, MAX, MIN, SQRT * .. * .. Executable Statements .. * INFO = 0 * * Decode RANGE * IF( LSAME( RANGE, 'A' ) ) THEN IRANGE = 1 ELSE IF( LSAME( RANGE, 'V' ) ) THEN IRANGE = 2 ELSE IF( LSAME( RANGE, 'I' ) ) THEN IRANGE = 3 ELSE IRANGE = 0 END IF * * Decode ORDER * IF( LSAME( ORDER, 'B' ) ) THEN IORDER = 2 ELSE IF( LSAME( ORDER, 'E' ) ) THEN IORDER = 1 ELSE IORDER = 0 END IF * * Check for Errors * IF( IRANGE.LE.0 ) THEN INFO = -1 ELSE IF( IORDER.LE.0 ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( IRANGE.EQ.2 ) THEN IF( VL.GE.VU ) $ INFO = -5 ELSE IF( IRANGE.EQ.3 .AND. ( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) ) $ THEN INFO = -6 ELSE IF( IRANGE.EQ.3 .AND. ( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) ) $ THEN INFO = -7 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSTEBZ', -INFO ) RETURN END IF * * Initialize error flags * INFO = 0 NCNVRG = .FALSE. TOOFEW = .FALSE. * * Quick return if possible * M = 0 IF( N.EQ.0 ) $ RETURN * * Simplifications: * IF( IRANGE.EQ.3 .AND. IL.EQ.1 .AND. IU.EQ.N ) $ IRANGE = 1 * * Get machine constants * NB is the minimum vector length for vector bisection, or 0 * if only scalar is to be done. * SAFEMN = DLAMCH( 'S' ) ULP = DLAMCH( 'P' ) RTOLI = ULP*RELFAC NB = ILAENV( 1, 'DSTEBZ', ' ', N, -1, -1, -1 ) IF( NB.LE.1 ) $ NB = 0 * * Special Case when N=1 * IF( N.EQ.1 ) THEN NSPLIT = 1 ISPLIT( 1 ) = 1 IF( IRANGE.EQ.2 .AND. ( VL.GE.D( 1 ) .OR. VU.LT.D( 1 ) ) ) THEN M = 0 ELSE W( 1 ) = D( 1 ) IBLOCK( 1 ) = 1 M = 1 END IF RETURN END IF * * Compute Splitting Points * NSPLIT = 1 WORK( N ) = ZERO PIVMIN = ONE * DO 10 J = 2, N TMP1 = E( J-1 )**2 IF( ABS( D( J )*D( J-1 ) )*ULP**2+SAFEMN.GT.TMP1 ) THEN ISPLIT( NSPLIT ) = J - 1 NSPLIT = NSPLIT + 1 WORK( J-1 ) = ZERO ELSE WORK( J-1 ) = TMP1 PIVMIN = MAX( PIVMIN, TMP1 ) END IF 10 CONTINUE ISPLIT( NSPLIT ) = N PIVMIN = PIVMIN*SAFEMN * * Compute Interval and ATOLI * IF( IRANGE.EQ.3 ) THEN * * RANGE='I': Compute the interval containing eigenvalues * IL through IU. * * Compute Gershgorin interval for entire (split) matrix * and use it as the initial interval * GU = D( 1 ) GL = D( 1 ) TMP1 = ZERO * DO 20 J = 1, N - 1 TMP2 = SQRT( WORK( J ) ) GU = MAX( GU, D( J )+TMP1+TMP2 ) GL = MIN( GL, D( J )-TMP1-TMP2 ) TMP1 = TMP2 20 CONTINUE * GU = MAX( GU, D( N )+TMP1 ) GL = MIN( GL, D( N )-TMP1 ) TNORM = MAX( ABS( GL ), ABS( GU ) ) GL = GL - FUDGE*TNORM*ULP*N - FUDGE*TWO*PIVMIN GU = GU + FUDGE*TNORM*ULP*N + FUDGE*PIVMIN * * Compute Iteration parameters * ITMAX = INT( ( LOG( TNORM+PIVMIN )-LOG( PIVMIN ) ) / $ LOG( TWO ) ) + 2 IF( ABSTOL.LE.ZERO ) THEN ATOLI = ULP*TNORM ELSE ATOLI = ABSTOL END IF * WORK( N+1 ) = GL WORK( N+2 ) = GL WORK( N+3 ) = GU WORK( N+4 ) = GU WORK( N+5 ) = GL WORK( N+6 ) = GU IWORK( 1 ) = -1 IWORK( 2 ) = -1 IWORK( 3 ) = N + 1 IWORK( 4 ) = N + 1 IWORK( 5 ) = IL - 1 IWORK( 6 ) = IU * CALL DLAEBZ( 3, ITMAX, N, 2, 2, NB, ATOLI, RTOLI, PIVMIN, D, E, $ WORK, IWORK( 5 ), WORK( N+1 ), WORK( N+5 ), IOUT, $ IWORK, W, IBLOCK, IINFO ) * IF( IWORK( 6 ).EQ.IU ) THEN WL = WORK( N+1 ) WLU = WORK( N+3 ) NWL = IWORK( 1 ) WU = WORK( N+4 ) WUL = WORK( N+2 ) NWU = IWORK( 4 ) ELSE WL = WORK( N+2 ) WLU = WORK( N+4 ) NWL = IWORK( 2 ) WU = WORK( N+3 ) WUL = WORK( N+1 ) NWU = IWORK( 3 ) END IF * IF( NWL.LT.0 .OR. NWL.GE.N .OR. NWU.LT.1 .OR. NWU.GT.N ) THEN INFO = 4 RETURN END IF ELSE * * RANGE='A' or 'V' -- Set ATOLI * TNORM = MAX( ABS( D( 1 ) )+ABS( E( 1 ) ), $ ABS( D( N ) )+ABS( E( N-1 ) ) ) * DO 30 J = 2, N - 1 TNORM = MAX( TNORM, ABS( D( J ) )+ABS( E( J-1 ) )+ $ ABS( E( J ) ) ) 30 CONTINUE * IF( ABSTOL.LE.ZERO ) THEN ATOLI = ULP*TNORM ELSE ATOLI = ABSTOL END IF * IF( IRANGE.EQ.2 ) THEN WL = VL WU = VU ELSE WL = ZERO WU = ZERO END IF END IF * * Find Eigenvalues -- Loop Over Blocks and recompute NWL and NWU. * NWL accumulates the number of eigenvalues .le. WL, * NWU accumulates the number of eigenvalues .le. WU * M = 0 IEND = 0 INFO = 0 NWL = 0 NWU = 0 * DO 70 JB = 1, NSPLIT IOFF = IEND IBEGIN = IOFF + 1 IEND = ISPLIT( JB ) IN = IEND - IOFF * IF( IN.EQ.1 ) THEN * * Special Case -- IN=1 * IF( IRANGE.EQ.1 .OR. WL.GE.D( IBEGIN )-PIVMIN ) $ NWL = NWL + 1 IF( IRANGE.EQ.1 .OR. WU.GE.D( IBEGIN )-PIVMIN ) $ NWU = NWU + 1 IF( IRANGE.EQ.1 .OR. ( WL.LT.D( IBEGIN )-PIVMIN .AND. WU.GE. $ D( IBEGIN )-PIVMIN ) ) THEN M = M + 1 W( M ) = D( IBEGIN ) IBLOCK( M ) = JB END IF ELSE * * General Case -- IN > 1 * * Compute Gershgorin Interval * and use it as the initial interval * GU = D( IBEGIN ) GL = D( IBEGIN ) TMP1 = ZERO * DO 40 J = IBEGIN, IEND - 1 TMP2 = ABS( E( J ) ) GU = MAX( GU, D( J )+TMP1+TMP2 ) GL = MIN( GL, D( J )-TMP1-TMP2 ) TMP1 = TMP2 40 CONTINUE * GU = MAX( GU, D( IEND )+TMP1 ) GL = MIN( GL, D( IEND )-TMP1 ) BNORM = MAX( ABS( GL ), ABS( GU ) ) GL = GL - FUDGE*BNORM*ULP*IN - FUDGE*PIVMIN GU = GU + FUDGE*BNORM*ULP*IN + FUDGE*PIVMIN * * Compute ATOLI for the current submatrix * IF( ABSTOL.LE.ZERO ) THEN ATOLI = ULP*MAX( ABS( GL ), ABS( GU ) ) ELSE ATOLI = ABSTOL END IF * IF( IRANGE.GT.1 ) THEN IF( GU.LT.WL ) THEN NWL = NWL + IN NWU = NWU + IN GO TO 70 END IF GL = MAX( GL, WL ) GU = MIN( GU, WU ) IF( GL.GE.GU ) $ GO TO 70 END IF * * Set Up Initial Interval * WORK( N+1 ) = GL WORK( N+IN+1 ) = GU CALL DLAEBZ( 1, 0, IN, IN, 1, NB, ATOLI, RTOLI, PIVMIN, $ D( IBEGIN ), E( IBEGIN ), WORK( IBEGIN ), $ IDUMMA, WORK( N+1 ), WORK( N+2*IN+1 ), IM, $ IWORK, W( M+1 ), IBLOCK( M+1 ), IINFO ) * NWL = NWL + IWORK( 1 ) NWU = NWU + IWORK( IN+1 ) IWOFF = M - IWORK( 1 ) * * Compute Eigenvalues * ITMAX = INT( ( LOG( GU-GL+PIVMIN )-LOG( PIVMIN ) ) / $ LOG( TWO ) ) + 2 CALL DLAEBZ( 2, ITMAX, IN, IN, 1, NB, ATOLI, RTOLI, PIVMIN, $ D( IBEGIN ), E( IBEGIN ), WORK( IBEGIN ), $ IDUMMA, WORK( N+1 ), WORK( N+2*IN+1 ), IOUT, $ IWORK, W( M+1 ), IBLOCK( M+1 ), IINFO ) * * Copy Eigenvalues Into W and IBLOCK * Use -JB for block number for unconverged eigenvalues. * DO 60 J = 1, IOUT TMP1 = HALF*( WORK( J+N )+WORK( J+IN+N ) ) * * Flag non-convergence. * IF( J.GT.IOUT-IINFO ) THEN NCNVRG = .TRUE. IB = -JB ELSE IB = JB END IF DO 50 JE = IWORK( J ) + 1 + IWOFF, $ IWORK( J+IN ) + IWOFF W( JE ) = TMP1 IBLOCK( JE ) = IB 50 CONTINUE 60 CONTINUE * M = M + IM END IF 70 CONTINUE * * If RANGE='I', then (WL,WU) contains eigenvalues NWL+1,...,NWU * If NWL+1 < IL or NWU > IU, discard extra eigenvalues. * IF( IRANGE.EQ.3 ) THEN IM = 0 IDISCL = IL - 1 - NWL IDISCU = NWU - IU * IF( IDISCL.GT.0 .OR. IDISCU.GT.0 ) THEN DO 80 JE = 1, M IF( W( JE ).LE.WLU .AND. IDISCL.GT.0 ) THEN IDISCL = IDISCL - 1 ELSE IF( W( JE ).GE.WUL .AND. IDISCU.GT.0 ) THEN IDISCU = IDISCU - 1 ELSE IM = IM + 1 W( IM ) = W( JE ) IBLOCK( IM ) = IBLOCK( JE ) END IF 80 CONTINUE M = IM END IF IF( IDISCL.GT.0 .OR. IDISCU.GT.0 ) THEN * * Code to deal with effects of bad arithmetic: * Some low eigenvalues to be discarded are not in (WL,WLU], * or high eigenvalues to be discarded are not in (WUL,WU] * so just kill off the smallest IDISCL/largest IDISCU * eigenvalues, by simply finding the smallest/largest * eigenvalue(s). * * (If N(w) is monotone non-decreasing, this should never * happen.) * IF( IDISCL.GT.0 ) THEN WKILL = WU DO 100 JDISC = 1, IDISCL IW = 0 DO 90 JE = 1, M IF( IBLOCK( JE ).NE.0 .AND. $ ( W( JE ).LT.WKILL .OR. IW.EQ.0 ) ) THEN IW = JE WKILL = W( JE ) END IF 90 CONTINUE IBLOCK( IW ) = 0 100 CONTINUE END IF IF( IDISCU.GT.0 ) THEN * WKILL = WL DO 120 JDISC = 1, IDISCU IW = 0 DO 110 JE = 1, M IF( IBLOCK( JE ).NE.0 .AND. $ ( W( JE ).GT.WKILL .OR. IW.EQ.0 ) ) THEN IW = JE WKILL = W( JE ) END IF 110 CONTINUE IBLOCK( IW ) = 0 120 CONTINUE END IF IM = 0 DO 130 JE = 1, M IF( IBLOCK( JE ).NE.0 ) THEN IM = IM + 1 W( IM ) = W( JE ) IBLOCK( IM ) = IBLOCK( JE ) END IF 130 CONTINUE M = IM END IF IF( IDISCL.LT.0 .OR. IDISCU.LT.0 ) THEN TOOFEW = .TRUE. END IF END IF * * If ORDER='B', do nothing -- the eigenvalues are already sorted * by block. * If ORDER='E', sort the eigenvalues from smallest to largest * IF( IORDER.EQ.1 .AND. NSPLIT.GT.1 ) THEN DO 150 JE = 1, M - 1 IE = 0 TMP1 = W( JE ) DO 140 J = JE + 1, M IF( W( J ).LT.TMP1 ) THEN IE = J TMP1 = W( J ) END IF 140 CONTINUE * IF( IE.NE.0 ) THEN ITMP1 = IBLOCK( IE ) W( IE ) = W( JE ) IBLOCK( IE ) = IBLOCK( JE ) W( JE ) = TMP1 IBLOCK( JE ) = ITMP1 END IF 150 CONTINUE END IF * INFO = 0 IF( NCNVRG ) $ INFO = INFO + 1 IF( TOOFEW ) $ INFO = INFO + 2 RETURN * * End of DSTEBZ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zstein.f0000644000000000000000000000013213543334726015245 xustar0030 mtime=1569569238.544645831 30 atime=1569569238.542645833 30 ctime=1569569238.544645831 elk-6.3.2/src/LAPACK/zstein.f0000644002504400250440000003342013543334726017316 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZSTEIN * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZSTEIN + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZSTEIN( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, * IWORK, IFAIL, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDZ, M, N * .. * .. Array Arguments .. * INTEGER IBLOCK( * ), IFAIL( * ), ISPLIT( * ), * $ IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), W( * ), WORK( * ) * COMPLEX*16 Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZSTEIN computes the eigenvectors of a real symmetric tridiagonal *> matrix T corresponding to specified eigenvalues, using inverse *> iteration. *> *> The maximum number of iterations allowed for each eigenvector is *> specified by an internal parameter MAXITS (currently set to 5). *> *> Although the eigenvectors are real, they are stored in a complex *> array, which may be passed to ZUNMTR or ZUPMTR for back *> transformation to the eigenvectors of a complex Hermitian matrix *> which was reduced to tridiagonal form. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix. N >= 0. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The n diagonal elements of the tridiagonal matrix T. *> \endverbatim *> *> \param[in] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The (n-1) subdiagonal elements of the tridiagonal matrix *> T, stored in elements 1 to N-1. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of eigenvectors to be found. 0 <= M <= N. *> \endverbatim *> *> \param[in] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> The first M elements of W contain the eigenvalues for *> which eigenvectors are to be computed. The eigenvalues *> should be grouped by split-off block and ordered from *> smallest to largest within the block. ( The output array *> W from DSTEBZ with ORDER = 'B' is expected here. ) *> \endverbatim *> *> \param[in] IBLOCK *> \verbatim *> IBLOCK is INTEGER array, dimension (N) *> The submatrix indices associated with the corresponding *> eigenvalues in W; IBLOCK(i)=1 if eigenvalue W(i) belongs to *> the first submatrix from the top, =2 if W(i) belongs to *> the second submatrix, etc. ( The output array IBLOCK *> from DSTEBZ is expected here. ) *> \endverbatim *> *> \param[in] ISPLIT *> \verbatim *> ISPLIT is INTEGER array, dimension (N) *> The splitting points, at which T breaks up into submatrices. *> The first submatrix consists of rows/columns 1 to *> ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1 *> through ISPLIT( 2 ), etc. *> ( The output array ISPLIT from DSTEBZ is expected here. ) *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ, M) *> The computed eigenvectors. The eigenvector associated *> with the eigenvalue W(i) is stored in the i-th column of *> Z. Any vector which fails to converge is set to its current *> iterate after MAXITS iterations. *> The imaginary parts of the eigenvectors are set to zero. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (5*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (M) *> On normal exit, all elements of IFAIL are zero. *> If one or more eigenvectors fail to converge after *> MAXITS iterations, then their indices are stored in *> array IFAIL. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, then i eigenvectors failed to converge *> in MAXITS iterations. Their indices are stored in *> array IFAIL. *> \endverbatim * *> \par Internal Parameters: * ========================= *> *> \verbatim *> MAXITS INTEGER, default = 5 *> The maximum number of iterations performed. *> *> EXTRA INTEGER, default = 2 *> The number of iterations performed after norm growth *> criterion is satisfied, should be at least 1. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZSTEIN( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, $ IWORK, IFAIL, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDZ, M, N * .. * .. Array Arguments .. INTEGER IBLOCK( * ), IFAIL( * ), ISPLIT( * ), $ IWORK( * ) DOUBLE PRECISION D( * ), E( * ), W( * ), WORK( * ) COMPLEX*16 Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), $ CONE = ( 1.0D+0, 0.0D+0 ) ) DOUBLE PRECISION ZERO, ONE, TEN, ODM3, ODM1 PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, TEN = 1.0D+1, $ ODM3 = 1.0D-3, ODM1 = 1.0D-1 ) INTEGER MAXITS, EXTRA PARAMETER ( MAXITS = 5, EXTRA = 2 ) * .. * .. Local Scalars .. INTEGER B1, BLKSIZ, BN, GPIND, I, IINFO, INDRV1, $ INDRV2, INDRV3, INDRV4, INDRV5, ITS, J, J1, $ JBLK, JMAX, JR, NBLK, NRMCHK DOUBLE PRECISION DTPCRT, EPS, EPS1, NRM, ONENRM, ORTOL, PERTOL, $ SCL, SEP, TOL, XJ, XJM, ZTR * .. * .. Local Arrays .. INTEGER ISEED( 4 ) * .. * .. External Functions .. INTEGER IDAMAX DOUBLE PRECISION DLAMCH, DNRM2 EXTERNAL IDAMAX, DLAMCH, DNRM2 * .. * .. External Subroutines .. EXTERNAL DCOPY, DLAGTF, DLAGTS, DLARNV, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, MAX, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 DO 10 I = 1, M IFAIL( I ) = 0 10 CONTINUE * IF( N.LT.0 ) THEN INFO = -1 ELSE IF( M.LT.0 .OR. M.GT.N ) THEN INFO = -4 ELSE IF( LDZ.LT.MAX( 1, N ) ) THEN INFO = -9 ELSE DO 20 J = 2, M IF( IBLOCK( J ).LT.IBLOCK( J-1 ) ) THEN INFO = -6 GO TO 30 END IF IF( IBLOCK( J ).EQ.IBLOCK( J-1 ) .AND. W( J ).LT.W( J-1 ) ) $ THEN INFO = -5 GO TO 30 END IF 20 CONTINUE 30 CONTINUE END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZSTEIN', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. M.EQ.0 ) THEN RETURN ELSE IF( N.EQ.1 ) THEN Z( 1, 1 ) = CONE RETURN END IF * * Get machine constants. * EPS = DLAMCH( 'Precision' ) * * Initialize seed for random number generator DLARNV. * DO 40 I = 1, 4 ISEED( I ) = 1 40 CONTINUE * * Initialize pointers. * INDRV1 = 0 INDRV2 = INDRV1 + N INDRV3 = INDRV2 + N INDRV4 = INDRV3 + N INDRV5 = INDRV4 + N * * Compute eigenvectors of matrix blocks. * J1 = 1 DO 180 NBLK = 1, IBLOCK( M ) * * Find starting and ending indices of block nblk. * IF( NBLK.EQ.1 ) THEN B1 = 1 ELSE B1 = ISPLIT( NBLK-1 ) + 1 END IF BN = ISPLIT( NBLK ) BLKSIZ = BN - B1 + 1 IF( BLKSIZ.EQ.1 ) $ GO TO 60 GPIND = J1 * * Compute reorthogonalization criterion and stopping criterion. * ONENRM = ABS( D( B1 ) ) + ABS( E( B1 ) ) ONENRM = MAX( ONENRM, ABS( D( BN ) )+ABS( E( BN-1 ) ) ) DO 50 I = B1 + 1, BN - 1 ONENRM = MAX( ONENRM, ABS( D( I ) )+ABS( E( I-1 ) )+ $ ABS( E( I ) ) ) 50 CONTINUE ORTOL = ODM3*ONENRM * DTPCRT = SQRT( ODM1 / BLKSIZ ) * * Loop through eigenvalues of block nblk. * 60 CONTINUE JBLK = 0 DO 170 J = J1, M IF( IBLOCK( J ).NE.NBLK ) THEN J1 = J GO TO 180 END IF JBLK = JBLK + 1 XJ = W( J ) * * Skip all the work if the block size is one. * IF( BLKSIZ.EQ.1 ) THEN WORK( INDRV1+1 ) = ONE GO TO 140 END IF * * If eigenvalues j and j-1 are too close, add a relatively * small perturbation. * IF( JBLK.GT.1 ) THEN EPS1 = ABS( EPS*XJ ) PERTOL = TEN*EPS1 SEP = XJ - XJM IF( SEP.LT.PERTOL ) $ XJ = XJM + PERTOL END IF * ITS = 0 NRMCHK = 0 * * Get random starting vector. * CALL DLARNV( 2, ISEED, BLKSIZ, WORK( INDRV1+1 ) ) * * Copy the matrix T so it won't be destroyed in factorization. * CALL DCOPY( BLKSIZ, D( B1 ), 1, WORK( INDRV4+1 ), 1 ) CALL DCOPY( BLKSIZ-1, E( B1 ), 1, WORK( INDRV2+2 ), 1 ) CALL DCOPY( BLKSIZ-1, E( B1 ), 1, WORK( INDRV3+1 ), 1 ) * * Compute LU factors with partial pivoting ( PT = LU ) * TOL = ZERO CALL DLAGTF( BLKSIZ, WORK( INDRV4+1 ), XJ, WORK( INDRV2+2 ), $ WORK( INDRV3+1 ), TOL, WORK( INDRV5+1 ), IWORK, $ IINFO ) * * Update iteration count. * 70 CONTINUE ITS = ITS + 1 IF( ITS.GT.MAXITS ) $ GO TO 120 * * Normalize and scale the righthand side vector Pb. * JMAX = IDAMAX( BLKSIZ, WORK( INDRV1+1 ), 1 ) SCL = BLKSIZ*ONENRM*MAX( EPS, $ ABS( WORK( INDRV4+BLKSIZ ) ) ) / $ ABS( WORK( INDRV1+JMAX ) ) CALL DSCAL( BLKSIZ, SCL, WORK( INDRV1+1 ), 1 ) * * Solve the system LU = Pb. * CALL DLAGTS( -1, BLKSIZ, WORK( INDRV4+1 ), WORK( INDRV2+2 ), $ WORK( INDRV3+1 ), WORK( INDRV5+1 ), IWORK, $ WORK( INDRV1+1 ), TOL, IINFO ) * * Reorthogonalize by modified Gram-Schmidt if eigenvalues are * close enough. * IF( JBLK.EQ.1 ) $ GO TO 110 IF( ABS( XJ-XJM ).GT.ORTOL ) $ GPIND = J IF( GPIND.NE.J ) THEN DO 100 I = GPIND, J - 1 ZTR = ZERO DO 80 JR = 1, BLKSIZ ZTR = ZTR + WORK( INDRV1+JR )* $ DBLE( Z( B1-1+JR, I ) ) 80 CONTINUE DO 90 JR = 1, BLKSIZ WORK( INDRV1+JR ) = WORK( INDRV1+JR ) - $ ZTR*DBLE( Z( B1-1+JR, I ) ) 90 CONTINUE 100 CONTINUE END IF * * Check the infinity norm of the iterate. * 110 CONTINUE JMAX = IDAMAX( BLKSIZ, WORK( INDRV1+1 ), 1 ) NRM = ABS( WORK( INDRV1+JMAX ) ) * * Continue for additional iterations after norm reaches * stopping criterion. * IF( NRM.LT.DTPCRT ) $ GO TO 70 NRMCHK = NRMCHK + 1 IF( NRMCHK.LT.EXTRA+1 ) $ GO TO 70 * GO TO 130 * * If stopping criterion was not satisfied, update info and * store eigenvector number in array ifail. * 120 CONTINUE INFO = INFO + 1 IFAIL( INFO ) = J * * Accept iterate as jth eigenvector. * 130 CONTINUE SCL = ONE / DNRM2( BLKSIZ, WORK( INDRV1+1 ), 1 ) JMAX = IDAMAX( BLKSIZ, WORK( INDRV1+1 ), 1 ) IF( WORK( INDRV1+JMAX ).LT.ZERO ) $ SCL = -SCL CALL DSCAL( BLKSIZ, SCL, WORK( INDRV1+1 ), 1 ) 140 CONTINUE DO 150 I = 1, N Z( I, J ) = CZERO 150 CONTINUE DO 160 I = 1, BLKSIZ Z( B1+I-1, J ) = DCMPLX( WORK( INDRV1+I ), ZERO ) 160 CONTINUE * * Save the shift to check eigenvalue spacing at next * iteration. * XJM = XJ * 170 CONTINUE 180 CONTINUE * RETURN * * End of ZSTEIN * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zupmtr.f0000644000000000000000000000013213543334726015272 xustar0030 mtime=1569569238.548645829 30 atime=1569569238.547645829 30 ctime=1569569238.548645829 elk-6.3.2/src/LAPACK/zupmtr.f0000644002504400250440000002155413543334726017350 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUPMTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUPMTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, * INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS, UPLO * INTEGER INFO, LDC, M, N * .. * .. Array Arguments .. * COMPLEX*16 AP( * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUPMTR overwrites the general complex M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> where Q is a complex unitary matrix of order nq, with nq = m if *> SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of *> nq-1 elementary reflectors, as returned by ZHPTRD using packed *> storage: *> *> if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left; *> = 'R': apply Q or Q**H from the Right. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangular packed storage used in previous *> call to ZHPTRD; *> = 'L': Lower triangular packed storage used in previous *> call to ZHPTRD. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'C': Conjugate transpose, apply Q**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is COMPLEX*16 array, dimension *> (M*(M+1)/2) if SIDE = 'L' *> (N*(N+1)/2) if SIDE = 'R' *> The vectors which define the elementary reflectors, as *> returned by ZHPTRD. AP is modified by the routine but *> restored on exit. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (M-1) if SIDE = 'L' *> or (N-1) if SIDE = 'R' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZHPTRD. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension *> (N) if SIDE = 'L' *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS, UPLO INTEGER INFO, LDC, M, N * .. * .. Array Arguments .. COMPLEX*16 AP( * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL FORWRD, LEFT, NOTRAN, UPPER INTEGER I, I1, I2, I3, IC, II, JC, MI, NI, NQ COMPLEX*16 AII, TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) UPPER = LSAME( UPLO, 'U' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUPMTR', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * IF( UPPER ) THEN * * Q was determined by a call to ZHPTRD with UPLO = 'U' * FORWRD = ( LEFT .AND. NOTRAN ) .OR. $ ( .NOT.LEFT .AND. .NOT.NOTRAN ) * IF( FORWRD ) THEN I1 = 1 I2 = NQ - 1 I3 = 1 II = 2 ELSE I1 = NQ - 1 I2 = 1 I3 = -1 II = NQ*( NQ+1 ) / 2 - 1 END IF * IF( LEFT ) THEN NI = N ELSE MI = M END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) or H(i)**H is applied to C(1:i,1:n) * MI = I ELSE * * H(i) or H(i)**H is applied to C(1:m,1:i) * NI = I END IF * * Apply H(i) or H(i)**H * IF( NOTRAN ) THEN TAUI = TAU( I ) ELSE TAUI = DCONJG( TAU( I ) ) END IF AII = AP( II ) AP( II ) = ONE CALL ZLARF( SIDE, MI, NI, AP( II-I+1 ), 1, TAUI, C, LDC, $ WORK ) AP( II ) = AII * IF( FORWRD ) THEN II = II + I + 2 ELSE II = II - I - 1 END IF 10 CONTINUE ELSE * * Q was determined by a call to ZHPTRD with UPLO = 'L'. * FORWRD = ( LEFT .AND. .NOT.NOTRAN ) .OR. $ ( .NOT.LEFT .AND. NOTRAN ) * IF( FORWRD ) THEN I1 = 1 I2 = NQ - 1 I3 = 1 II = 2 ELSE I1 = NQ - 1 I2 = 1 I3 = -1 II = NQ*( NQ+1 ) / 2 - 1 END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 20 I = I1, I2, I3 AII = AP( II ) AP( II ) = ONE IF( LEFT ) THEN * * H(i) or H(i)**H is applied to C(i+1:m,1:n) * MI = M - I IC = I + 1 ELSE * * H(i) or H(i)**H is applied to C(1:m,i+1:n) * NI = N - I JC = I + 1 END IF * * Apply H(i) or H(i)**H * IF( NOTRAN ) THEN TAUI = TAU( I ) ELSE TAUI = DCONJG( TAU( I ) ) END IF CALL ZLARF( SIDE, MI, NI, AP( II ), 1, TAUI, C( IC, JC ), $ LDC, WORK ) AP( II ) = AII * IF( FORWRD ) THEN II = II + NQ - I + 1 ELSE II = II - NQ + I - 2 END IF 20 CONTINUE END IF RETURN * * End of ZUPMTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlassq.f0000644000000000000000000000013213543334726015220 xustar0030 mtime=1569569238.552645826 30 atime=1569569238.551645827 30 ctime=1569569238.552645826 elk-6.3.2/src/LAPACK/dlassq.f0000644002504400250440000001036113543334726017270 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASSQ updates a sum of squares represented in scaled form. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASSQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASSQ( N, X, INCX, SCALE, SUMSQ ) * * .. Scalar Arguments .. * INTEGER INCX, N * DOUBLE PRECISION SCALE, SUMSQ * .. * .. Array Arguments .. * DOUBLE PRECISION X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASSQ returns the values scl and smsq such that *> *> ( scl**2 )*smsq = x( 1 )**2 +...+ x( n )**2 + ( scale**2 )*sumsq, *> *> where x( i ) = X( 1 + ( i - 1 )*INCX ). The value of sumsq is *> assumed to be non-negative and scl returns the value *> *> scl = max( scale, abs( x( i ) ) ). *> *> scale and sumsq must be supplied in SCALE and SUMSQ and *> scl and smsq are overwritten on SCALE and SUMSQ respectively. *> *> The routine makes only one pass through the vector x. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of elements to be used from the vector X. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION array, dimension (N) *> The vector for which a scaled sum of squares is computed. *> x( i ) = X( 1 + ( i - 1 )*INCX ), 1 <= i <= n. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between successive values of the vector X. *> INCX > 0. *> \endverbatim *> *> \param[in,out] SCALE *> \verbatim *> SCALE is DOUBLE PRECISION *> On entry, the value scale in the equation above. *> On exit, SCALE is overwritten with scl , the scaling factor *> for the sum of squares. *> \endverbatim *> *> \param[in,out] SUMSQ *> \verbatim *> SUMSQ is DOUBLE PRECISION *> On entry, the value sumsq in the equation above. *> On exit, SUMSQ is overwritten with smsq , the basic sum of *> squares from which scl has been factored out. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLASSQ( N, X, INCX, SCALE, SUMSQ ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX, N DOUBLE PRECISION SCALE, SUMSQ * .. * .. Array Arguments .. DOUBLE PRECISION X( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER IX DOUBLE PRECISION ABSXI * .. * .. External Functions .. LOGICAL DISNAN EXTERNAL DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS * .. * .. Executable Statements .. * IF( N.GT.0 ) THEN DO 10 IX = 1, 1 + ( N-1 )*INCX, INCX ABSXI = ABS( X( IX ) ) IF( ABSXI.GT.ZERO.OR.DISNAN( ABSXI ) ) THEN IF( SCALE.LT.ABSXI ) THEN SUMSQ = 1 + SUMSQ*( SCALE / ABSXI )**2 SCALE = ABSXI ELSE SUMSQ = SUMSQ + ( ABSXI / SCALE )**2 END IF END IF 10 CONTINUE END IF RETURN * * End of DLASSQ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorgql.f0000644000000000000000000000013213543334726015221 xustar0030 mtime=1569569238.557645823 30 atime=1569569238.555645824 30 ctime=1569569238.557645823 elk-6.3.2/src/LAPACK/dorgql.f0000644002504400250440000002000613543334726017266 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORGQL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORGQL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORGQL( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORGQL generates an M-by-N real matrix Q with orthonormal columns, *> which is defined as the last N columns of a product of K elementary *> reflectors of order M *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGEQLF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the (n-k+i)-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by DGEQLF in the last k columns of its array *> argument A. *> On exit, the M-by-N matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQLF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimum performance LWORK >= N*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORGQL( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, J, KK, L, LDWORK, LWKOPT, $ NB, NBMIN, NX * .. * .. External Subroutines .. EXTERNAL DLARFB, DLARFT, DORG2L, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF * IF( INFO.EQ.0 ) THEN IF( N.EQ.0 ) THEN LWKOPT = 1 ELSE NB = ILAENV( 1, 'DORGQL', ' ', M, N, K, -1 ) LWKOPT = N*NB END IF WORK( 1 ) = LWKOPT * IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORGQL', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.LE.0 ) THEN RETURN END IF * NBMIN = 2 NX = 0 IWS = N IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'DORGQL', ' ', M, N, K, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DORGQL', ' ', M, N, K, -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code after the first block. * The last kk columns are handled by the block method. * KK = MIN( K, ( ( K-NX+NB-1 ) / NB )*NB ) * * Set A(m-kk+1:m,1:n-kk) to zero. * DO 20 J = 1, N - KK DO 10 I = M - KK + 1, M A( I, J ) = ZERO 10 CONTINUE 20 CONTINUE ELSE KK = 0 END IF * * Use unblocked code for the first or only block. * CALL DORG2L( M-KK, N-KK, K-KK, A, LDA, TAU, WORK, IINFO ) * IF( KK.GT.0 ) THEN * * Use blocked code * DO 50 I = K - KK + 1, K, NB IB = MIN( NB, K-I+1 ) IF( N-K+I.GT.1 ) THEN * * Form the triangular factor of the block reflector * H = H(i+ib-1) . . . H(i+1) H(i) * CALL DLARFT( 'Backward', 'Columnwise', M-K+I+IB-1, IB, $ A( 1, N-K+I ), LDA, TAU( I ), WORK, LDWORK ) * * Apply H to A(1:m-k+i+ib-1,1:n-k+i-1) from the left * CALL DLARFB( 'Left', 'No transpose', 'Backward', $ 'Columnwise', M-K+I+IB-1, N-K+I-1, IB, $ A( 1, N-K+I ), LDA, WORK, LDWORK, A, LDA, $ WORK( IB+1 ), LDWORK ) END IF * * Apply H to rows 1:m-k+i+ib-1 of current block * CALL DORG2L( M-K+I+IB-1, IB, IB, A( 1, N-K+I ), LDA, $ TAU( I ), WORK, IINFO ) * * Set rows m-k+i+ib:m of current block to zero * DO 40 J = N - K + I, N - K + I + IB - 1 DO 30 L = M - K + I + IB, M A( L, J ) = ZERO 30 CONTINUE 40 CONTINUE 50 CONTINUE END IF * WORK( 1 ) = IWS RETURN * * End of DORGQL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorgqr.f0000644000000000000000000000013213543334726015227 xustar0030 mtime=1569569238.561645821 30 atime=1569569238.560645821 30 ctime=1569569238.561645821 elk-6.3.2/src/LAPACK/dorgqr.f0000644002504400250440000001761013543334726017303 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORGQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORGQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORGQR generates an M-by-N real matrix Q with orthonormal columns, *> which is defined as the first N columns of a product of K elementary *> reflectors of order M *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by DGEQRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the i-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by DGEQRF in the first k columns of its array *> argument A. *> On exit, the M-by-N matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQRF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimum performance LWORK >= N*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, J, KI, KK, L, LDWORK, $ LWKOPT, NB, NBMIN, NX * .. * .. External Subroutines .. EXTERNAL DLARFB, DLARFT, DORG2R, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'DORGQR', ' ', M, N, K, -1 ) LWKOPT = MAX( 1, N )*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORGQR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.LE.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = N IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'DORGQR', ' ', M, N, K, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DORGQR', ' ', M, N, K, -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code after the last block. * The first kk columns are handled by the block method. * KI = ( ( K-NX-1 ) / NB )*NB KK = MIN( K, KI+NB ) * * Set A(1:kk,kk+1:n) to zero. * DO 20 J = KK + 1, N DO 10 I = 1, KK A( I, J ) = ZERO 10 CONTINUE 20 CONTINUE ELSE KK = 0 END IF * * Use unblocked code for the last or only block. * IF( KK.LT.N ) $ CALL DORG2R( M-KK, N-KK, K-KK, A( KK+1, KK+1 ), LDA, $ TAU( KK+1 ), WORK, IINFO ) * IF( KK.GT.0 ) THEN * * Use blocked code * DO 50 I = KI + 1, 1, -NB IB = MIN( NB, K-I+1 ) IF( I+IB.LE.N ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL DLARFT( 'Forward', 'Columnwise', M-I+1, IB, $ A( I, I ), LDA, TAU( I ), WORK, LDWORK ) * * Apply H to A(i:m,i+ib:n) from the left * CALL DLARFB( 'Left', 'No transpose', 'Forward', $ 'Columnwise', M-I+1, N-I-IB+1, IB, $ A( I, I ), LDA, WORK, LDWORK, A( I, I+IB ), $ LDA, WORK( IB+1 ), LDWORK ) END IF * * Apply H to rows i:m of current block * CALL DORG2R( M-I+1, IB, IB, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * * Set rows 1:i-1 of current block to zero * DO 40 J = I, I + IB - 1 DO 30 L = 1, I - 1 A( L, J ) = ZERO 30 CONTINUE 40 CONTINUE 50 CONTINUE END IF * WORK( 1 ) = IWS RETURN * * End of DORGQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dpotrf2.f0000644000000000000000000000013213543334726015311 xustar0030 mtime=1569569238.565645818 30 atime=1569569238.564645819 30 ctime=1569569238.565645818 elk-6.3.2/src/LAPACK/dpotrf2.f0000644002504400250440000001425613543334726017370 0ustar00dewhurstdewhurst00000000000000*> \brief \b DPOTRF2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * RECURSIVE SUBROUTINE DPOTRF2( UPLO, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * REAL A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DPOTRF2 computes the Cholesky factorization of a real symmetric *> positive definite matrix A using the recursive algorithm. *> *> The factorization has the form *> A = U**T * U, if UPLO = 'U', or *> A = L * L**T, if UPLO = 'L', *> where U is an upper triangular matrix and L is lower triangular. *> *> This is the recursive version of the algorithm. It divides *> the matrix into four submatrices: *> *> [ A11 | A12 ] where A11 is n1 by n1 and A22 is n2 by n2 *> A = [ -----|----- ] with n1 = n/2 *> [ A21 | A22 ] n2 = n-n1 *> *> The subroutine calls itself to factor A11. Update and scale A21 *> or A12, update A22 then calls itself to factor A22. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the factor U or L from the Cholesky *> factorization A = U**T*U or A = L*L**T. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the leading minor of order i is not *> positive definite, and the factorization could not be *> completed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doublePOcomputational * * ===================================================================== RECURSIVE SUBROUTINE DPOTRF2( UPLO, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER N1, N2, IINFO * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. External Subroutines .. EXTERNAL DSYRK, DTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DPOTRF2', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * N=1 case * IF( N.EQ.1 ) THEN * * Test for non-positive-definiteness * IF( A( 1, 1 ).LE.ZERO.OR.DISNAN( A( 1, 1 ) ) ) THEN INFO = 1 RETURN END IF * * Factor * A( 1, 1 ) = SQRT( A( 1, 1 ) ) * * Use recursive code * ELSE N1 = N/2 N2 = N-N1 * * Factor A11 * CALL DPOTRF2( UPLO, N1, A( 1, 1 ), LDA, IINFO ) IF ( IINFO.NE.0 ) THEN INFO = IINFO RETURN END IF * * Compute the Cholesky factorization A = U**T*U * IF( UPPER ) THEN * * Update and scale A12 * CALL DTRSM( 'L', 'U', 'T', 'N', N1, N2, ONE, $ A( 1, 1 ), LDA, A( 1, N1+1 ), LDA ) * * Update and factor A22 * CALL DSYRK( UPLO, 'T', N2, N1, -ONE, A( 1, N1+1 ), LDA, $ ONE, A( N1+1, N1+1 ), LDA ) CALL DPOTRF2( UPLO, N2, A( N1+1, N1+1 ), LDA, IINFO ) IF ( IINFO.NE.0 ) THEN INFO = IINFO + N1 RETURN END IF * * Compute the Cholesky factorization A = L*L**T * ELSE * * Update and scale A21 * CALL DTRSM( 'R', 'L', 'T', 'N', N2, N1, ONE, $ A( 1, 1 ), LDA, A( N1+1, 1 ), LDA ) * * Update and factor A22 * CALL DSYRK( UPLO, 'N', N2, N1, -ONE, A( N1+1, 1 ), LDA, $ ONE, A( N1+1, N1+1 ), LDA ) CALL DPOTRF2( UPLO, N2, A( N1+1, N1+1 ), LDA, IINFO ) IF ( IINFO.NE.0 ) THEN INFO = IINFO + N1 RETURN END IF END IF END IF RETURN * * End of DPOTRF2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaebz.f0000644000000000000000000000013213543334726015172 xustar0030 mtime=1569569238.571645814 30 atime=1569569238.569645815 30 ctime=1569569238.571645814 elk-6.3.2/src/LAPACK/dlaebz.f0000644002504400250440000005402013543334726017242 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAEBZ computes the number of eigenvalues of a real symmetric tridiagonal matrix which are less than or equal to a given value, and performs other tasks required by the routine sstebz. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAEBZ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAEBZ( IJOB, NITMAX, N, MMAX, MINP, NBMIN, ABSTOL, * RELTOL, PIVMIN, D, E, E2, NVAL, AB, C, MOUT, * NAB, WORK, IWORK, INFO ) * * .. Scalar Arguments .. * INTEGER IJOB, INFO, MINP, MMAX, MOUT, N, NBMIN, NITMAX * DOUBLE PRECISION ABSTOL, PIVMIN, RELTOL * .. * .. Array Arguments .. * INTEGER IWORK( * ), NAB( MMAX, * ), NVAL( * ) * DOUBLE PRECISION AB( MMAX, * ), C( * ), D( * ), E( * ), E2( * ), * $ WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAEBZ contains the iteration loops which compute and use the *> function N(w), which is the count of eigenvalues of a symmetric *> tridiagonal matrix T less than or equal to its argument w. It *> performs a choice of two types of loops: *> *> IJOB=1, followed by *> IJOB=2: It takes as input a list of intervals and returns a list of *> sufficiently small intervals whose union contains the same *> eigenvalues as the union of the original intervals. *> The input intervals are (AB(j,1),AB(j,2)], j=1,...,MINP. *> The output interval (AB(j,1),AB(j,2)] will contain *> eigenvalues NAB(j,1)+1,...,NAB(j,2), where 1 <= j <= MOUT. *> *> IJOB=3: It performs a binary search in each input interval *> (AB(j,1),AB(j,2)] for a point w(j) such that *> N(w(j))=NVAL(j), and uses C(j) as the starting point of *> the search. If such a w(j) is found, then on output *> AB(j,1)=AB(j,2)=w. If no such w(j) is found, then on output *> (AB(j,1),AB(j,2)] will be a small interval containing the *> point where N(w) jumps through NVAL(j), unless that point *> lies outside the initial interval. *> *> Note that the intervals are in all cases half-open intervals, *> i.e., of the form (a,b] , which includes b but not a . *> *> To avoid underflow, the matrix should be scaled so that its largest *> element is no greater than overflow**(1/2) * underflow**(1/4) *> in absolute value. To assure the most accurate computation *> of small eigenvalues, the matrix should be scaled to be *> not much smaller than that, either. *> *> See W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal *> Matrix", Report CS41, Computer Science Dept., Stanford *> University, July 21, 1966 *> *> Note: the arguments are, in general, *not* checked for unreasonable *> values. *> \endverbatim * * Arguments: * ========== * *> \param[in] IJOB *> \verbatim *> IJOB is INTEGER *> Specifies what is to be done: *> = 1: Compute NAB for the initial intervals. *> = 2: Perform bisection iteration to find eigenvalues of T. *> = 3: Perform bisection iteration to invert N(w), i.e., *> to find a point which has a specified number of *> eigenvalues of T to its left. *> Other values will cause DLAEBZ to return with INFO=-1. *> \endverbatim *> *> \param[in] NITMAX *> \verbatim *> NITMAX is INTEGER *> The maximum number of "levels" of bisection to be *> performed, i.e., an interval of width W will not be made *> smaller than 2^(-NITMAX) * W. If not all intervals *> have converged after NITMAX iterations, then INFO is set *> to the number of non-converged intervals. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension n of the tridiagonal matrix T. It must be at *> least 1. *> \endverbatim *> *> \param[in] MMAX *> \verbatim *> MMAX is INTEGER *> The maximum number of intervals. If more than MMAX intervals *> are generated, then DLAEBZ will quit with INFO=MMAX+1. *> \endverbatim *> *> \param[in] MINP *> \verbatim *> MINP is INTEGER *> The initial number of intervals. It may not be greater than *> MMAX. *> \endverbatim *> *> \param[in] NBMIN *> \verbatim *> NBMIN is INTEGER *> The smallest number of intervals that should be processed *> using a vector loop. If zero, then only the scalar loop *> will be used. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The minimum (absolute) width of an interval. When an *> interval is narrower than ABSTOL, or than RELTOL times the *> larger (in magnitude) endpoint, then it is considered to be *> sufficiently small, i.e., converged. This must be at least *> zero. *> \endverbatim *> *> \param[in] RELTOL *> \verbatim *> RELTOL is DOUBLE PRECISION *> The minimum relative width of an interval. When an interval *> is narrower than ABSTOL, or than RELTOL times the larger (in *> magnitude) endpoint, then it is considered to be *> sufficiently small, i.e., converged. Note: this should *> always be at least radix*machine epsilon. *> \endverbatim *> *> \param[in] PIVMIN *> \verbatim *> PIVMIN is DOUBLE PRECISION *> The minimum absolute value of a "pivot" in the Sturm *> sequence loop. *> This must be at least max |e(j)**2|*safe_min and at *> least safe_min, where safe_min is at least *> the smallest number that can divide one without overflow. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T. *> \endverbatim *> *> \param[in] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N) *> The offdiagonal elements of the tridiagonal matrix T in *> positions 1 through N-1. E(N) is arbitrary. *> \endverbatim *> *> \param[in] E2 *> \verbatim *> E2 is DOUBLE PRECISION array, dimension (N) *> The squares of the offdiagonal elements of the tridiagonal *> matrix T. E2(N) is ignored. *> \endverbatim *> *> \param[in,out] NVAL *> \verbatim *> NVAL is INTEGER array, dimension (MINP) *> If IJOB=1 or 2, not referenced. *> If IJOB=3, the desired values of N(w). The elements of NVAL *> will be reordered to correspond with the intervals in AB. *> Thus, NVAL(j) on output will not, in general be the same as *> NVAL(j) on input, but it will correspond with the interval *> (AB(j,1),AB(j,2)] on output. *> \endverbatim *> *> \param[in,out] AB *> \verbatim *> AB is DOUBLE PRECISION array, dimension (MMAX,2) *> The endpoints of the intervals. AB(j,1) is a(j), the left *> endpoint of the j-th interval, and AB(j,2) is b(j), the *> right endpoint of the j-th interval. The input intervals *> will, in general, be modified, split, and reordered by the *> calculation. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (MMAX) *> If IJOB=1, ignored. *> If IJOB=2, workspace. *> If IJOB=3, then on input C(j) should be initialized to the *> first search point in the binary search. *> \endverbatim *> *> \param[out] MOUT *> \verbatim *> MOUT is INTEGER *> If IJOB=1, the number of eigenvalues in the intervals. *> If IJOB=2 or 3, the number of intervals output. *> If IJOB=3, MOUT will equal MINP. *> \endverbatim *> *> \param[in,out] NAB *> \verbatim *> NAB is INTEGER array, dimension (MMAX,2) *> If IJOB=1, then on output NAB(i,j) will be set to N(AB(i,j)). *> If IJOB=2, then on input, NAB(i,j) should be set. It must *> satisfy the condition: *> N(AB(i,1)) <= NAB(i,1) <= NAB(i,2) <= N(AB(i,2)), *> which means that in interval i only eigenvalues *> NAB(i,1)+1,...,NAB(i,2) will be considered. Usually, *> NAB(i,j)=N(AB(i,j)), from a previous call to DLAEBZ with *> IJOB=1. *> On output, NAB(i,j) will contain *> max(na(k),min(nb(k),N(AB(i,j)))), where k is the index of *> the input interval that the output interval *> (AB(j,1),AB(j,2)] came from, and na(k) and nb(k) are the *> the input values of NAB(k,1) and NAB(k,2). *> If IJOB=3, then on output, NAB(i,j) contains N(AB(i,j)), *> unless N(w) > NVAL(i) for all search points w , in which *> case NAB(i,1) will not be modified, i.e., the output *> value will be the same as the input value (modulo *> reorderings -- see NVAL and AB), or unless N(w) < NVAL(i) *> for all search points w , in which case NAB(i,2) will *> not be modified. Normally, NAB should be set to some *> distinctive value(s) before DLAEBZ is called. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MMAX) *> Workspace. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (MMAX) *> Workspace. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: All intervals converged. *> = 1--MMAX: The last INFO intervals did not converge. *> = MMAX+1: More than MMAX intervals were generated. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> This routine is intended to be called only by other LAPACK *> routines, thus the interface is less user-friendly. It is intended *> for two purposes: *> *> (a) finding eigenvalues. In this case, DLAEBZ should have one or *> more initial intervals set up in AB, and DLAEBZ should be called *> with IJOB=1. This sets up NAB, and also counts the eigenvalues. *> Intervals with no eigenvalues would usually be thrown out at *> this point. Also, if not all the eigenvalues in an interval i *> are desired, NAB(i,1) can be increased or NAB(i,2) decreased. *> For example, set NAB(i,1)=NAB(i,2)-1 to get the largest *> eigenvalue. DLAEBZ is then called with IJOB=2 and MMAX *> no smaller than the value of MOUT returned by the call with *> IJOB=1. After this (IJOB=2) call, eigenvalues NAB(i,1)+1 *> through NAB(i,2) are approximately AB(i,1) (or AB(i,2)) to the *> tolerance specified by ABSTOL and RELTOL. *> *> (b) finding an interval (a',b'] containing eigenvalues w(f),...,w(l). *> In this case, start with a Gershgorin interval (a,b). Set up *> AB to contain 2 search intervals, both initially (a,b). One *> NVAL element should contain f-1 and the other should contain l *> , while C should contain a and b, resp. NAB(i,1) should be -1 *> and NAB(i,2) should be N+1, to flag an error if the desired *> interval does not lie in (a,b). DLAEBZ is then called with *> IJOB=3. On exit, if w(f-1) < w(f), then one of the intervals -- *> j -- will have AB(j,1)=AB(j,2) and NAB(j,1)=NAB(j,2)=f-1, while *> if, to the specified tolerance, w(f-k)=...=w(f+r), k > 0 and r *> >= 0, then the interval will have N(AB(j,1))=NAB(j,1)=f-k and *> N(AB(j,2))=NAB(j,2)=f+r. The cases w(l) < w(l+1) and *> w(l-r)=...=w(l+k) are handled similarly. *> \endverbatim *> * ===================================================================== SUBROUTINE DLAEBZ( IJOB, NITMAX, N, MMAX, MINP, NBMIN, ABSTOL, $ RELTOL, PIVMIN, D, E, E2, NVAL, AB, C, MOUT, $ NAB, WORK, IWORK, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IJOB, INFO, MINP, MMAX, MOUT, N, NBMIN, NITMAX DOUBLE PRECISION ABSTOL, PIVMIN, RELTOL * .. * .. Array Arguments .. INTEGER IWORK( * ), NAB( MMAX, * ), NVAL( * ) DOUBLE PRECISION AB( MMAX, * ), C( * ), D( * ), E( * ), E2( * ), $ WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, TWO, HALF PARAMETER ( ZERO = 0.0D0, TWO = 2.0D0, $ HALF = 1.0D0 / TWO ) * .. * .. Local Scalars .. INTEGER ITMP1, ITMP2, J, JI, JIT, JP, KF, KFNEW, KL, $ KLNEW DOUBLE PRECISION TMP1, TMP2 * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN * .. * .. Executable Statements .. * * Check for Errors * INFO = 0 IF( IJOB.LT.1 .OR. IJOB.GT.3 ) THEN INFO = -1 RETURN END IF * * Initialize NAB * IF( IJOB.EQ.1 ) THEN * * Compute the number of eigenvalues in the initial intervals. * MOUT = 0 DO 30 JI = 1, MINP DO 20 JP = 1, 2 TMP1 = D( 1 ) - AB( JI, JP ) IF( ABS( TMP1 ).LT.PIVMIN ) $ TMP1 = -PIVMIN NAB( JI, JP ) = 0 IF( TMP1.LE.ZERO ) $ NAB( JI, JP ) = 1 * DO 10 J = 2, N TMP1 = D( J ) - E2( J-1 ) / TMP1 - AB( JI, JP ) IF( ABS( TMP1 ).LT.PIVMIN ) $ TMP1 = -PIVMIN IF( TMP1.LE.ZERO ) $ NAB( JI, JP ) = NAB( JI, JP ) + 1 10 CONTINUE 20 CONTINUE MOUT = MOUT + NAB( JI, 2 ) - NAB( JI, 1 ) 30 CONTINUE RETURN END IF * * Initialize for loop * * KF and KL have the following meaning: * Intervals 1,...,KF-1 have converged. * Intervals KF,...,KL still need to be refined. * KF = 1 KL = MINP * * If IJOB=2, initialize C. * If IJOB=3, use the user-supplied starting point. * IF( IJOB.EQ.2 ) THEN DO 40 JI = 1, MINP C( JI ) = HALF*( AB( JI, 1 )+AB( JI, 2 ) ) 40 CONTINUE END IF * * Iteration loop * DO 130 JIT = 1, NITMAX * * Loop over intervals * IF( KL-KF+1.GE.NBMIN .AND. NBMIN.GT.0 ) THEN * * Begin of Parallel Version of the loop * DO 60 JI = KF, KL * * Compute N(c), the number of eigenvalues less than c * WORK( JI ) = D( 1 ) - C( JI ) IWORK( JI ) = 0 IF( WORK( JI ).LE.PIVMIN ) THEN IWORK( JI ) = 1 WORK( JI ) = MIN( WORK( JI ), -PIVMIN ) END IF * DO 50 J = 2, N WORK( JI ) = D( J ) - E2( J-1 ) / WORK( JI ) - C( JI ) IF( WORK( JI ).LE.PIVMIN ) THEN IWORK( JI ) = IWORK( JI ) + 1 WORK( JI ) = MIN( WORK( JI ), -PIVMIN ) END IF 50 CONTINUE 60 CONTINUE * IF( IJOB.LE.2 ) THEN * * IJOB=2: Choose all intervals containing eigenvalues. * KLNEW = KL DO 70 JI = KF, KL * * Insure that N(w) is monotone * IWORK( JI ) = MIN( NAB( JI, 2 ), $ MAX( NAB( JI, 1 ), IWORK( JI ) ) ) * * Update the Queue -- add intervals if both halves * contain eigenvalues. * IF( IWORK( JI ).EQ.NAB( JI, 2 ) ) THEN * * No eigenvalue in the upper interval: * just use the lower interval. * AB( JI, 2 ) = C( JI ) * ELSE IF( IWORK( JI ).EQ.NAB( JI, 1 ) ) THEN * * No eigenvalue in the lower interval: * just use the upper interval. * AB( JI, 1 ) = C( JI ) ELSE KLNEW = KLNEW + 1 IF( KLNEW.LE.MMAX ) THEN * * Eigenvalue in both intervals -- add upper to * queue. * AB( KLNEW, 2 ) = AB( JI, 2 ) NAB( KLNEW, 2 ) = NAB( JI, 2 ) AB( KLNEW, 1 ) = C( JI ) NAB( KLNEW, 1 ) = IWORK( JI ) AB( JI, 2 ) = C( JI ) NAB( JI, 2 ) = IWORK( JI ) ELSE INFO = MMAX + 1 END IF END IF 70 CONTINUE IF( INFO.NE.0 ) $ RETURN KL = KLNEW ELSE * * IJOB=3: Binary search. Keep only the interval containing * w s.t. N(w) = NVAL * DO 80 JI = KF, KL IF( IWORK( JI ).LE.NVAL( JI ) ) THEN AB( JI, 1 ) = C( JI ) NAB( JI, 1 ) = IWORK( JI ) END IF IF( IWORK( JI ).GE.NVAL( JI ) ) THEN AB( JI, 2 ) = C( JI ) NAB( JI, 2 ) = IWORK( JI ) END IF 80 CONTINUE END IF * ELSE * * End of Parallel Version of the loop * * Begin of Serial Version of the loop * KLNEW = KL DO 100 JI = KF, KL * * Compute N(w), the number of eigenvalues less than w * TMP1 = C( JI ) TMP2 = D( 1 ) - TMP1 ITMP1 = 0 IF( TMP2.LE.PIVMIN ) THEN ITMP1 = 1 TMP2 = MIN( TMP2, -PIVMIN ) END IF * DO 90 J = 2, N TMP2 = D( J ) - E2( J-1 ) / TMP2 - TMP1 IF( TMP2.LE.PIVMIN ) THEN ITMP1 = ITMP1 + 1 TMP2 = MIN( TMP2, -PIVMIN ) END IF 90 CONTINUE * IF( IJOB.LE.2 ) THEN * * IJOB=2: Choose all intervals containing eigenvalues. * * Insure that N(w) is monotone * ITMP1 = MIN( NAB( JI, 2 ), $ MAX( NAB( JI, 1 ), ITMP1 ) ) * * Update the Queue -- add intervals if both halves * contain eigenvalues. * IF( ITMP1.EQ.NAB( JI, 2 ) ) THEN * * No eigenvalue in the upper interval: * just use the lower interval. * AB( JI, 2 ) = TMP1 * ELSE IF( ITMP1.EQ.NAB( JI, 1 ) ) THEN * * No eigenvalue in the lower interval: * just use the upper interval. * AB( JI, 1 ) = TMP1 ELSE IF( KLNEW.LT.MMAX ) THEN * * Eigenvalue in both intervals -- add upper to queue. * KLNEW = KLNEW + 1 AB( KLNEW, 2 ) = AB( JI, 2 ) NAB( KLNEW, 2 ) = NAB( JI, 2 ) AB( KLNEW, 1 ) = TMP1 NAB( KLNEW, 1 ) = ITMP1 AB( JI, 2 ) = TMP1 NAB( JI, 2 ) = ITMP1 ELSE INFO = MMAX + 1 RETURN END IF ELSE * * IJOB=3: Binary search. Keep only the interval * containing w s.t. N(w) = NVAL * IF( ITMP1.LE.NVAL( JI ) ) THEN AB( JI, 1 ) = TMP1 NAB( JI, 1 ) = ITMP1 END IF IF( ITMP1.GE.NVAL( JI ) ) THEN AB( JI, 2 ) = TMP1 NAB( JI, 2 ) = ITMP1 END IF END IF 100 CONTINUE KL = KLNEW * END IF * * Check for convergence * KFNEW = KF DO 110 JI = KF, KL TMP1 = ABS( AB( JI, 2 )-AB( JI, 1 ) ) TMP2 = MAX( ABS( AB( JI, 2 ) ), ABS( AB( JI, 1 ) ) ) IF( TMP1.LT.MAX( ABSTOL, PIVMIN, RELTOL*TMP2 ) .OR. $ NAB( JI, 1 ).GE.NAB( JI, 2 ) ) THEN * * Converged -- Swap with position KFNEW, * then increment KFNEW * IF( JI.GT.KFNEW ) THEN TMP1 = AB( JI, 1 ) TMP2 = AB( JI, 2 ) ITMP1 = NAB( JI, 1 ) ITMP2 = NAB( JI, 2 ) AB( JI, 1 ) = AB( KFNEW, 1 ) AB( JI, 2 ) = AB( KFNEW, 2 ) NAB( JI, 1 ) = NAB( KFNEW, 1 ) NAB( JI, 2 ) = NAB( KFNEW, 2 ) AB( KFNEW, 1 ) = TMP1 AB( KFNEW, 2 ) = TMP2 NAB( KFNEW, 1 ) = ITMP1 NAB( KFNEW, 2 ) = ITMP2 IF( IJOB.EQ.3 ) THEN ITMP1 = NVAL( JI ) NVAL( JI ) = NVAL( KFNEW ) NVAL( KFNEW ) = ITMP1 END IF END IF KFNEW = KFNEW + 1 END IF 110 CONTINUE KF = KFNEW * * Choose Midpoints * DO 120 JI = KF, KL C( JI ) = HALF*( AB( JI, 1 )+AB( JI, 2 ) ) 120 CONTINUE * * If no more intervals to refine, quit. * IF( KF.GT.KL ) $ GO TO 140 130 CONTINUE * * Converged * 140 CONTINUE INFO = MAX( KL+1-KF, 0 ) MOUT = KL * RETURN * * End of DLAEBZ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaset.f0000644000000000000000000000013213543334726015205 xustar0030 mtime=1569569238.576645811 30 atime=1569569238.574645812 30 ctime=1569569238.576645811 elk-6.3.2/src/LAPACK/dlaset.f0000644002504400250440000001147413543334726017263 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASET + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER LDA, M, N * DOUBLE PRECISION ALPHA, BETA * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASET initializes an m-by-n matrix A to BETA on the diagonal and *> ALPHA on the offdiagonals. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies the part of the matrix A to be set. *> = 'U': Upper triangular part is set; the strictly lower *> triangular part of A is not changed. *> = 'L': Lower triangular part is set; the strictly upper *> triangular part of A is not changed. *> Otherwise: All of the matrix A is set. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION *> The constant to which the offdiagonal elements are to be set. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is DOUBLE PRECISION *> The constant to which the diagonal elements are to be set. *> \endverbatim *> *> \param[out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On exit, the leading m-by-n submatrix of A is set as follows: *> *> if UPLO = 'U', A(i,j) = ALPHA, 1<=i<=j-1, 1<=j<=n, *> if UPLO = 'L', A(i,j) = ALPHA, j+1<=i<=m, 1<=j<=n, *> otherwise, A(i,j) = ALPHA, 1<=i<=m, 1<=j<=n, i.ne.j, *> *> and, for all UPLO, A(i,i) = BETA, 1<=i<=min(m,n). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER LDA, M, N DOUBLE PRECISION ALPHA, BETA * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * IF( LSAME( UPLO, 'U' ) ) THEN * * Set the strictly upper triangular or trapezoidal part of the * array to ALPHA. * DO 20 J = 2, N DO 10 I = 1, MIN( J-1, M ) A( I, J ) = ALPHA 10 CONTINUE 20 CONTINUE * ELSE IF( LSAME( UPLO, 'L' ) ) THEN * * Set the strictly lower triangular or trapezoidal part of the * array to ALPHA. * DO 40 J = 1, MIN( M, N ) DO 30 I = J + 1, M A( I, J ) = ALPHA 30 CONTINUE 40 CONTINUE * ELSE * * Set the leading m-by-n submatrix to ALPHA. * DO 60 J = 1, N DO 50 I = 1, M A( I, J ) = ALPHA 50 CONTINUE 60 CONTINUE END IF * * Set the first min(M,N) diagonal elements to BETA. * DO 70 I = 1, MIN( M, N ) A( I, I ) = BETA 70 CONTINUE * RETURN * * End of DLASET * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlanst.f0000644000000000000000000000013213543334726015216 xustar0030 mtime=1569569238.580645808 30 atime=1569569238.579645809 30 ctime=1569569238.580645808 elk-6.3.2/src/LAPACK/dlanst.f0000644002504400250440000001232413543334726017267 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLANST returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real symmetric tridiagonal matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLANST + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DLANST( NORM, N, D, E ) * * .. Scalar Arguments .. * CHARACTER NORM * INTEGER N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLANST returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> real symmetric tridiagonal matrix A. *> \endverbatim *> *> \return DLANST *> \verbatim *> *> DLANST = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in DLANST as described *> above. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. When N = 0, DLANST is *> set to zero. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of A. *> \endverbatim *> *> \param[in] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The (n-1) sub-diagonal or super-diagonal elements of A. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION DLANST( NORM, N, D, E ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM INTEGER N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I DOUBLE PRECISION ANORM, SCALE, SUM * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. External Subroutines .. EXTERNAL DLASSQ * .. * .. Intrinsic Functions .. INTRINSIC ABS, SQRT * .. * .. Executable Statements .. * IF( N.LE.0 ) THEN ANORM = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * ANORM = ABS( D( N ) ) DO 10 I = 1, N - 1 SUM = ABS( D( I ) ) IF( ANORM .LT. SUM .OR. DISNAN( SUM ) ) ANORM = SUM SUM = ABS( E( I ) ) IF( ANORM .LT. SUM .OR. DISNAN( SUM ) ) ANORM = SUM 10 CONTINUE ELSE IF( LSAME( NORM, 'O' ) .OR. NORM.EQ.'1' .OR. $ LSAME( NORM, 'I' ) ) THEN * * Find norm1(A). * IF( N.EQ.1 ) THEN ANORM = ABS( D( 1 ) ) ELSE ANORM = ABS( D( 1 ) )+ABS( E( 1 ) ) SUM = ABS( E( N-1 ) )+ABS( D( N ) ) IF( ANORM .LT. SUM .OR. DISNAN( SUM ) ) ANORM = SUM DO 20 I = 2, N - 1 SUM = ABS( D( I ) )+ABS( E( I ) )+ABS( E( I-1 ) ) IF( ANORM .LT. SUM .OR. DISNAN( SUM ) ) ANORM = SUM 20 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE IF( N.GT.1 ) THEN CALL DLASSQ( N-1, E, 1, SCALE, SUM ) SUM = 2*SUM END IF CALL DLASSQ( N, D, 1, SCALE, SUM ) ANORM = SCALE*SQRT( SUM ) END IF * DLANST = ANORM RETURN * * End of DLANST * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaev2.f0000644000000000000000000000013213543334726015106 xustar0030 mtime=1569569238.584645806 30 atime=1569569238.583645806 30 ctime=1569569238.584645806 elk-6.3.2/src/LAPACK/dlaev2.f0000644002504400250440000001407213543334726017161 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAEV2 computes the eigenvalues and eigenvectors of a 2-by-2 symmetric/Hermitian matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAEV2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAEV2( A, B, C, RT1, RT2, CS1, SN1 ) * * .. Scalar Arguments .. * DOUBLE PRECISION A, B, C, CS1, RT1, RT2, SN1 * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAEV2 computes the eigendecomposition of a 2-by-2 symmetric matrix *> [ A B ] *> [ B C ]. *> On return, RT1 is the eigenvalue of larger absolute value, RT2 is the *> eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right *> eigenvector for RT1, giving the decomposition *> *> [ CS1 SN1 ] [ A B ] [ CS1 -SN1 ] = [ RT1 0 ] *> [-SN1 CS1 ] [ B C ] [ SN1 CS1 ] [ 0 RT2 ]. *> \endverbatim * * Arguments: * ========== * *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION *> The (1,1) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION *> The (1,2) element and the conjugate of the (2,1) element of *> the 2-by-2 matrix. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION *> The (2,2) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[out] RT1 *> \verbatim *> RT1 is DOUBLE PRECISION *> The eigenvalue of larger absolute value. *> \endverbatim *> *> \param[out] RT2 *> \verbatim *> RT2 is DOUBLE PRECISION *> The eigenvalue of smaller absolute value. *> \endverbatim *> *> \param[out] CS1 *> \verbatim *> CS1 is DOUBLE PRECISION *> \endverbatim *> *> \param[out] SN1 *> \verbatim *> SN1 is DOUBLE PRECISION *> The vector (CS1, SN1) is a unit right eigenvector for RT1. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> RT1 is accurate to a few ulps barring over/underflow. *> *> RT2 may be inaccurate if there is massive cancellation in the *> determinant A*C-B*B; higher precision or correctly rounded or *> correctly truncated arithmetic would be needed to compute RT2 *> accurately in all cases. *> *> CS1 and SN1 are accurate to a few ulps barring over/underflow. *> *> Overflow is possible only if RT1 is within a factor of 5 of overflow. *> Underflow is harmless if the input data is 0 or exceeds *> underflow_threshold / macheps. *> \endverbatim *> * ===================================================================== SUBROUTINE DLAEV2( A, B, C, RT1, RT2, CS1, SN1 ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION A, B, C, CS1, RT1, RT2, SN1 * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0D0 ) DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION HALF PARAMETER ( HALF = 0.5D0 ) * .. * .. Local Scalars .. INTEGER SGN1, SGN2 DOUBLE PRECISION AB, ACMN, ACMX, ACS, ADF, CS, CT, DF, RT, SM, $ TB, TN * .. * .. Intrinsic Functions .. INTRINSIC ABS, SQRT * .. * .. Executable Statements .. * * Compute the eigenvalues * SM = A + C DF = A - C ADF = ABS( DF ) TB = B + B AB = ABS( TB ) IF( ABS( A ).GT.ABS( C ) ) THEN ACMX = A ACMN = C ELSE ACMX = C ACMN = A END IF IF( ADF.GT.AB ) THEN RT = ADF*SQRT( ONE+( AB / ADF )**2 ) ELSE IF( ADF.LT.AB ) THEN RT = AB*SQRT( ONE+( ADF / AB )**2 ) ELSE * * Includes case AB=ADF=0 * RT = AB*SQRT( TWO ) END IF IF( SM.LT.ZERO ) THEN RT1 = HALF*( SM-RT ) SGN1 = -1 * * Order of execution important. * To get fully accurate smaller eigenvalue, * next line needs to be executed in higher precision. * RT2 = ( ACMX / RT1 )*ACMN - ( B / RT1 )*B ELSE IF( SM.GT.ZERO ) THEN RT1 = HALF*( SM+RT ) SGN1 = 1 * * Order of execution important. * To get fully accurate smaller eigenvalue, * next line needs to be executed in higher precision. * RT2 = ( ACMX / RT1 )*ACMN - ( B / RT1 )*B ELSE * * Includes case RT1 = RT2 = 0 * RT1 = HALF*RT RT2 = -HALF*RT SGN1 = 1 END IF * * Compute the eigenvector * IF( DF.GE.ZERO ) THEN CS = DF + RT SGN2 = 1 ELSE CS = DF - RT SGN2 = -1 END IF ACS = ABS( CS ) IF( ACS.GT.AB ) THEN CT = -TB / CS SN1 = ONE / SQRT( ONE+CT*CT ) CS1 = CT*SN1 ELSE IF( AB.EQ.ZERO ) THEN CS1 = ONE SN1 = ZERO ELSE TN = -CS / TB CS1 = ONE / SQRT( ONE+TN*TN ) SN1 = TN*CS1 END IF END IF IF( SGN1.EQ.SGN2 ) THEN TN = CS1 CS1 = -SN1 SN1 = TN END IF RETURN * * End of DLAEV2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasr.f0000644000000000000000000000013213543334726015036 xustar0030 mtime=1569569238.589645803 30 atime=1569569238.587645804 30 ctime=1569569238.589645803 elk-6.3.2/src/LAPACK/dlasr.f0000644002504400250440000003530613543334726017114 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASR applies a sequence of plane rotations to a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) * * .. Scalar Arguments .. * CHARACTER DIRECT, PIVOT, SIDE * INTEGER LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( * ), S( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASR applies a sequence of plane rotations to a real matrix A, *> from either the left or the right. *> *> When SIDE = 'L', the transformation takes the form *> *> A := P*A *> *> and when SIDE = 'R', the transformation takes the form *> *> A := A*P**T *> *> where P is an orthogonal matrix consisting of a sequence of z plane *> rotations, with z = M when SIDE = 'L' and z = N when SIDE = 'R', *> and P**T is the transpose of P. *> *> When DIRECT = 'F' (Forward sequence), then *> *> P = P(z-1) * ... * P(2) * P(1) *> *> and when DIRECT = 'B' (Backward sequence), then *> *> P = P(1) * P(2) * ... * P(z-1) *> *> where P(k) is a plane rotation matrix defined by the 2-by-2 rotation *> *> R(k) = ( c(k) s(k) ) *> = ( -s(k) c(k) ). *> *> When PIVOT = 'V' (Variable pivot), the rotation is performed *> for the plane (k,k+1), i.e., P(k) has the form *> *> P(k) = ( 1 ) *> ( ... ) *> ( 1 ) *> ( c(k) s(k) ) *> ( -s(k) c(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> *> where R(k) appears as a rank-2 modification to the identity matrix in *> rows and columns k and k+1. *> *> When PIVOT = 'T' (Top pivot), the rotation is performed for the *> plane (1,k+1), so P(k) has the form *> *> P(k) = ( c(k) s(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> ( -s(k) c(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> *> where R(k) appears in rows and columns 1 and k+1. *> *> Similarly, when PIVOT = 'B' (Bottom pivot), the rotation is *> performed for the plane (k,z), giving P(k) the form *> *> P(k) = ( 1 ) *> ( ... ) *> ( 1 ) *> ( c(k) s(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> ( -s(k) c(k) ) *> *> where R(k) appears in rows and columns k and z. The rotations are *> performed without ever forming P(k) explicitly. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> Specifies whether the plane rotation matrix P is applied to *> A on the left or the right. *> = 'L': Left, compute A := P*A *> = 'R': Right, compute A:= A*P**T *> \endverbatim *> *> \param[in] PIVOT *> \verbatim *> PIVOT is CHARACTER*1 *> Specifies the plane for which P(k) is a plane rotation *> matrix. *> = 'V': Variable pivot, the plane (k,k+1) *> = 'T': Top pivot, the plane (1,k+1) *> = 'B': Bottom pivot, the plane (k,z) *> \endverbatim *> *> \param[in] DIRECT *> \verbatim *> DIRECT is CHARACTER*1 *> Specifies whether P is a forward or backward sequence of *> plane rotations. *> = 'F': Forward, P = P(z-1)*...*P(2)*P(1) *> = 'B': Backward, P = P(1)*P(2)*...*P(z-1) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. If m <= 1, an immediate *> return is effected. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. If n <= 1, an *> immediate return is effected. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> The cosines c(k) of the plane rotations. *> \endverbatim *> *> \param[in] S *> \verbatim *> S is DOUBLE PRECISION array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> The sines s(k) of the plane rotations. The 2-by-2 plane *> rotation part of the matrix P(k), R(k), has the form *> R(k) = ( c(k) s(k) ) *> ( -s(k) c(k) ). *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The M-by-N matrix A. On exit, A is overwritten by P*A if *> SIDE = 'R' or by A*P**T if SIDE = 'L'. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIRECT, PIVOT, SIDE INTEGER LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( * ), S( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, INFO, J DOUBLE PRECISION CTEMP, STEMP, TEMP * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( .NOT.( LSAME( SIDE, 'L' ) .OR. LSAME( SIDE, 'R' ) ) ) THEN INFO = 1 ELSE IF( .NOT.( LSAME( PIVOT, 'V' ) .OR. LSAME( PIVOT, $ 'T' ) .OR. LSAME( PIVOT, 'B' ) ) ) THEN INFO = 2 ELSE IF( .NOT.( LSAME( DIRECT, 'F' ) .OR. LSAME( DIRECT, 'B' ) ) ) $ THEN INFO = 3 ELSE IF( M.LT.0 ) THEN INFO = 4 ELSE IF( N.LT.0 ) THEN INFO = 5 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = 9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLASR ', INFO ) RETURN END IF * * Quick return if possible * IF( ( M.EQ.0 ) .OR. ( N.EQ.0 ) ) $ RETURN IF( LSAME( SIDE, 'L' ) ) THEN * * Form P * A * IF( LSAME( PIVOT, 'V' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 20 J = 1, M - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 10 I = 1, N TEMP = A( J+1, I ) A( J+1, I ) = CTEMP*TEMP - STEMP*A( J, I ) A( J, I ) = STEMP*TEMP + CTEMP*A( J, I ) 10 CONTINUE END IF 20 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 40 J = M - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 30 I = 1, N TEMP = A( J+1, I ) A( J+1, I ) = CTEMP*TEMP - STEMP*A( J, I ) A( J, I ) = STEMP*TEMP + CTEMP*A( J, I ) 30 CONTINUE END IF 40 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'T' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 60 J = 2, M CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 50 I = 1, N TEMP = A( J, I ) A( J, I ) = CTEMP*TEMP - STEMP*A( 1, I ) A( 1, I ) = STEMP*TEMP + CTEMP*A( 1, I ) 50 CONTINUE END IF 60 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 80 J = M, 2, -1 CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 70 I = 1, N TEMP = A( J, I ) A( J, I ) = CTEMP*TEMP - STEMP*A( 1, I ) A( 1, I ) = STEMP*TEMP + CTEMP*A( 1, I ) 70 CONTINUE END IF 80 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'B' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 100 J = 1, M - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 90 I = 1, N TEMP = A( J, I ) A( J, I ) = STEMP*A( M, I ) + CTEMP*TEMP A( M, I ) = CTEMP*A( M, I ) - STEMP*TEMP 90 CONTINUE END IF 100 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 120 J = M - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 110 I = 1, N TEMP = A( J, I ) A( J, I ) = STEMP*A( M, I ) + CTEMP*TEMP A( M, I ) = CTEMP*A( M, I ) - STEMP*TEMP 110 CONTINUE END IF 120 CONTINUE END IF END IF ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form A * P**T * IF( LSAME( PIVOT, 'V' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 140 J = 1, N - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 130 I = 1, M TEMP = A( I, J+1 ) A( I, J+1 ) = CTEMP*TEMP - STEMP*A( I, J ) A( I, J ) = STEMP*TEMP + CTEMP*A( I, J ) 130 CONTINUE END IF 140 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 160 J = N - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 150 I = 1, M TEMP = A( I, J+1 ) A( I, J+1 ) = CTEMP*TEMP - STEMP*A( I, J ) A( I, J ) = STEMP*TEMP + CTEMP*A( I, J ) 150 CONTINUE END IF 160 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'T' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 180 J = 2, N CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 170 I = 1, M TEMP = A( I, J ) A( I, J ) = CTEMP*TEMP - STEMP*A( I, 1 ) A( I, 1 ) = STEMP*TEMP + CTEMP*A( I, 1 ) 170 CONTINUE END IF 180 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 200 J = N, 2, -1 CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 190 I = 1, M TEMP = A( I, J ) A( I, J ) = CTEMP*TEMP - STEMP*A( I, 1 ) A( I, 1 ) = STEMP*TEMP + CTEMP*A( I, 1 ) 190 CONTINUE END IF 200 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'B' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 220 J = 1, N - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 210 I = 1, M TEMP = A( I, J ) A( I, J ) = STEMP*A( I, N ) + CTEMP*TEMP A( I, N ) = CTEMP*A( I, N ) - STEMP*TEMP 210 CONTINUE END IF 220 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 240 J = N - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 230 I = 1, M TEMP = A( I, J ) A( I, J ) = STEMP*A( I, N ) + CTEMP*TEMP A( I, N ) = CTEMP*A( I, N ) - STEMP*TEMP 230 CONTINUE END IF 240 CONTINUE END IF END IF END IF * RETURN * * End of DLASR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlae2.f0000644000000000000000000000013213543334726014720 xustar0030 mtime=1569569238.594645799 30 atime=1569569238.592645801 30 ctime=1569569238.594645799 elk-6.3.2/src/LAPACK/dlae2.f0000644002504400250440000001131113543334726016764 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAE2 computes the eigenvalues of a 2-by-2 symmetric matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAE2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAE2( A, B, C, RT1, RT2 ) * * .. Scalar Arguments .. * DOUBLE PRECISION A, B, C, RT1, RT2 * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAE2 computes the eigenvalues of a 2-by-2 symmetric matrix *> [ A B ] *> [ B C ]. *> On return, RT1 is the eigenvalue of larger absolute value, and RT2 *> is the eigenvalue of smaller absolute value. *> \endverbatim * * Arguments: * ========== * *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION *> The (1,1) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION *> The (1,2) and (2,1) elements of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION *> The (2,2) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[out] RT1 *> \verbatim *> RT1 is DOUBLE PRECISION *> The eigenvalue of larger absolute value. *> \endverbatim *> *> \param[out] RT2 *> \verbatim *> RT2 is DOUBLE PRECISION *> The eigenvalue of smaller absolute value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> RT1 is accurate to a few ulps barring over/underflow. *> *> RT2 may be inaccurate if there is massive cancellation in the *> determinant A*C-B*B; higher precision or correctly rounded or *> correctly truncated arithmetic would be needed to compute RT2 *> accurately in all cases. *> *> Overflow is possible only if RT1 is within a factor of 5 of overflow. *> Underflow is harmless if the input data is 0 or exceeds *> underflow_threshold / macheps. *> \endverbatim *> * ===================================================================== SUBROUTINE DLAE2( A, B, C, RT1, RT2 ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION A, B, C, RT1, RT2 * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0D0 ) DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION HALF PARAMETER ( HALF = 0.5D0 ) * .. * .. Local Scalars .. DOUBLE PRECISION AB, ACMN, ACMX, ADF, DF, RT, SM, TB * .. * .. Intrinsic Functions .. INTRINSIC ABS, SQRT * .. * .. Executable Statements .. * * Compute the eigenvalues * SM = A + C DF = A - C ADF = ABS( DF ) TB = B + B AB = ABS( TB ) IF( ABS( A ).GT.ABS( C ) ) THEN ACMX = A ACMN = C ELSE ACMX = C ACMN = A END IF IF( ADF.GT.AB ) THEN RT = ADF*SQRT( ONE+( AB / ADF )**2 ) ELSE IF( ADF.LT.AB ) THEN RT = AB*SQRT( ONE+( ADF / AB )**2 ) ELSE * * Includes case AB=ADF=0 * RT = AB*SQRT( TWO ) END IF IF( SM.LT.ZERO ) THEN RT1 = HALF*( SM-RT ) * * Order of execution important. * To get fully accurate smaller eigenvalue, * next line needs to be executed in higher precision. * RT2 = ( ACMX / RT1 )*ACMN - ( B / RT1 )*B ELSE IF( SM.GT.ZERO ) THEN RT1 = HALF*( SM+RT ) * * Order of execution important. * To get fully accurate smaller eigenvalue, * next line needs to be executed in higher precision. * RT2 = ( ACMX / RT1 )*ACMN - ( B / RT1 )*B ELSE * * Includes case RT1 = RT2 = 0 * RT1 = HALF*RT RT2 = -HALF*RT END IF RETURN * * End of DLAE2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlapy2.f0000644000000000000000000000013213543334726015124 xustar0030 mtime=1569569238.598645797 30 atime=1569569238.597645798 30 ctime=1569569238.598645797 elk-6.3.2/src/LAPACK/dlapy2.f0000644002504400250440000000546613543334726017206 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAPY2 returns sqrt(x2+y2). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAPY2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DLAPY2( X, Y ) * * .. Scalar Arguments .. * DOUBLE PRECISION X, Y * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAPY2 returns sqrt(x**2+y**2), taking care not to cause unnecessary *> overflow. *> \endverbatim * * Arguments: * ========== * *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is DOUBLE PRECISION *> X and Y specify the values x and y. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup OTHERauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION DLAPY2( X, Y ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. DOUBLE PRECISION X, Y * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) * .. * .. Local Scalars .. DOUBLE PRECISION W, XABS, YABS, Z LOGICAL X_IS_NAN, Y_IS_NAN * .. * .. External Functions .. LOGICAL DISNAN EXTERNAL DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * X_IS_NAN = DISNAN( X ) Y_IS_NAN = DISNAN( Y ) IF ( X_IS_NAN ) DLAPY2 = X IF ( Y_IS_NAN ) DLAPY2 = Y * IF ( .NOT.( X_IS_NAN.OR.Y_IS_NAN ) ) THEN XABS = ABS( X ) YABS = ABS( Y ) W = MAX( XABS, YABS ) Z = MIN( XABS, YABS ) IF( Z.EQ.ZERO ) THEN DLAPY2 = W ELSE DLAPY2 = W*SQRT( ONE+( Z / W )**2 ) END IF END IF RETURN * * End of DLAPY2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlartg.f0000644000000000000000000000013213543334726015206 xustar0030 mtime=1569569238.602645794 30 atime=1569569238.601645795 30 ctime=1569569238.602645794 elk-6.3.2/src/LAPACK/dlartg.f0000644002504400250440000001261313543334726017260 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARTG generates a plane rotation with real cosine and real sine. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARTG + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARTG( F, G, CS, SN, R ) * * .. Scalar Arguments .. * DOUBLE PRECISION CS, F, G, R, SN * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARTG generate a plane rotation so that *> *> [ CS SN ] . [ F ] = [ R ] where CS**2 + SN**2 = 1. *> [ -SN CS ] [ G ] [ 0 ] *> *> This is a slower, more accurate version of the BLAS1 routine DROTG, *> with the following other differences: *> F and G are unchanged on return. *> If G=0, then CS=1 and SN=0. *> If F=0 and (G .ne. 0), then CS=0 and SN=1 without doing any *> floating point operations (saves work in DBDSQR when *> there are zeros on the diagonal). *> *> If F exceeds G in magnitude, CS will be positive. *> \endverbatim * * Arguments: * ========== * *> \param[in] F *> \verbatim *> F is DOUBLE PRECISION *> The first component of vector to be rotated. *> \endverbatim *> *> \param[in] G *> \verbatim *> G is DOUBLE PRECISION *> The second component of vector to be rotated. *> \endverbatim *> *> \param[out] CS *> \verbatim *> CS is DOUBLE PRECISION *> The cosine of the rotation. *> \endverbatim *> *> \param[out] SN *> \verbatim *> SN is DOUBLE PRECISION *> The sine of the rotation. *> \endverbatim *> *> \param[out] R *> \verbatim *> R is DOUBLE PRECISION *> The nonzero component of the rotated vector. *> *> This version has a few statements commented out for thread safety *> (machine parameters are computed on each entry). 10 feb 03, SJH. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLARTG( F, G, CS, SN, R ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION CS, F, G, R, SN * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0D0 ) * .. * .. Local Scalars .. * LOGICAL FIRST INTEGER COUNT, I DOUBLE PRECISION EPS, F1, G1, SAFMIN, SAFMN2, SAFMX2, SCALE * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. Intrinsic Functions .. INTRINSIC ABS, INT, LOG, MAX, SQRT * .. * .. Save statement .. * SAVE FIRST, SAFMX2, SAFMIN, SAFMN2 * .. * .. Data statements .. * DATA FIRST / .TRUE. / * .. * .. Executable Statements .. * * IF( FIRST ) THEN SAFMIN = DLAMCH( 'S' ) EPS = DLAMCH( 'E' ) SAFMN2 = DLAMCH( 'B' )**INT( LOG( SAFMIN / EPS ) / $ LOG( DLAMCH( 'B' ) ) / TWO ) SAFMX2 = ONE / SAFMN2 * FIRST = .FALSE. * END IF IF( G.EQ.ZERO ) THEN CS = ONE SN = ZERO R = F ELSE IF( F.EQ.ZERO ) THEN CS = ZERO SN = ONE R = G ELSE F1 = F G1 = G SCALE = MAX( ABS( F1 ), ABS( G1 ) ) IF( SCALE.GE.SAFMX2 ) THEN COUNT = 0 10 CONTINUE COUNT = COUNT + 1 F1 = F1*SAFMN2 G1 = G1*SAFMN2 SCALE = MAX( ABS( F1 ), ABS( G1 ) ) IF( SCALE.GE.SAFMX2 ) $ GO TO 10 R = SQRT( F1**2+G1**2 ) CS = F1 / R SN = G1 / R DO 20 I = 1, COUNT R = R*SAFMX2 20 CONTINUE ELSE IF( SCALE.LE.SAFMN2 ) THEN COUNT = 0 30 CONTINUE COUNT = COUNT + 1 F1 = F1*SAFMX2 G1 = G1*SAFMX2 SCALE = MAX( ABS( F1 ), ABS( G1 ) ) IF( SCALE.LE.SAFMN2 ) $ GO TO 30 R = SQRT( F1**2+G1**2 ) CS = F1 / R SN = G1 / R DO 40 I = 1, COUNT R = R*SAFMN2 40 CONTINUE ELSE R = SQRT( F1**2+G1**2 ) CS = F1 / R SN = G1 / R END IF IF( ABS( F ).GT.ABS( G ) .AND. CS.LT.ZERO ) THEN CS = -CS SN = -SN R = -R END IF END IF RETURN * * End of DLARTG * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasrt.f0000644000000000000000000000013213543334726015222 xustar0030 mtime=1569569238.607645791 30 atime=1569569238.605645792 30 ctime=1569569238.607645791 elk-6.3.2/src/LAPACK/dlasrt.f0000644002504400250440000001731413543334726017277 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASRT sorts numbers in increasing or decreasing order. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASRT + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASRT( ID, N, D, INFO ) * * .. Scalar Arguments .. * CHARACTER ID * INTEGER INFO, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> Sort the numbers in D in increasing order (if ID = 'I') or *> in decreasing order (if ID = 'D' ). *> *> Use Quick Sort, reverting to Insertion sort on arrays of *> size <= 20. Dimension of STACK limits N to about 2**32. *> \endverbatim * * Arguments: * ========== * *> \param[in] ID *> \verbatim *> ID is CHARACTER*1 *> = 'I': sort D in increasing order; *> = 'D': sort D in decreasing order. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The length of the array D. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the array to be sorted. *> On exit, D has been sorted into increasing order *> (D(1) <= ... <= D(N) ) or into decreasing order *> (D(1) >= ... >= D(N) ), depending on ID. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLASRT( ID, N, D, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER ID INTEGER INFO, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER SELECT PARAMETER ( SELECT = 20 ) * .. * .. Local Scalars .. INTEGER DIR, ENDD, I, J, START, STKPNT DOUBLE PRECISION D1, D2, D3, DMNMX, TMP * .. * .. Local Arrays .. INTEGER STACK( 2, 32 ) * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 DIR = -1 IF( LSAME( ID, 'D' ) ) THEN DIR = 0 ELSE IF( LSAME( ID, 'I' ) ) THEN DIR = 1 END IF IF( DIR.EQ.-1 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLASRT', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.1 ) $ RETURN * STKPNT = 1 STACK( 1, 1 ) = 1 STACK( 2, 1 ) = N 10 CONTINUE START = STACK( 1, STKPNT ) ENDD = STACK( 2, STKPNT ) STKPNT = STKPNT - 1 IF( ENDD-START.LE.SELECT .AND. ENDD-START.GT.0 ) THEN * * Do Insertion sort on D( START:ENDD ) * IF( DIR.EQ.0 ) THEN * * Sort into decreasing order * DO 30 I = START + 1, ENDD DO 20 J = I, START + 1, -1 IF( D( J ).GT.D( J-1 ) ) THEN DMNMX = D( J ) D( J ) = D( J-1 ) D( J-1 ) = DMNMX ELSE GO TO 30 END IF 20 CONTINUE 30 CONTINUE * ELSE * * Sort into increasing order * DO 50 I = START + 1, ENDD DO 40 J = I, START + 1, -1 IF( D( J ).LT.D( J-1 ) ) THEN DMNMX = D( J ) D( J ) = D( J-1 ) D( J-1 ) = DMNMX ELSE GO TO 50 END IF 40 CONTINUE 50 CONTINUE * END IF * ELSE IF( ENDD-START.GT.SELECT ) THEN * * Partition D( START:ENDD ) and stack parts, largest one first * * Choose partition entry as median of 3 * D1 = D( START ) D2 = D( ENDD ) I = ( START+ENDD ) / 2 D3 = D( I ) IF( D1.LT.D2 ) THEN IF( D3.LT.D1 ) THEN DMNMX = D1 ELSE IF( D3.LT.D2 ) THEN DMNMX = D3 ELSE DMNMX = D2 END IF ELSE IF( D3.LT.D2 ) THEN DMNMX = D2 ELSE IF( D3.LT.D1 ) THEN DMNMX = D3 ELSE DMNMX = D1 END IF END IF * IF( DIR.EQ.0 ) THEN * * Sort into decreasing order * I = START - 1 J = ENDD + 1 60 CONTINUE 70 CONTINUE J = J - 1 IF( D( J ).LT.DMNMX ) $ GO TO 70 80 CONTINUE I = I + 1 IF( D( I ).GT.DMNMX ) $ GO TO 80 IF( I.LT.J ) THEN TMP = D( I ) D( I ) = D( J ) D( J ) = TMP GO TO 60 END IF IF( J-START.GT.ENDD-J-1 ) THEN STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = START STACK( 2, STKPNT ) = J STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = J + 1 STACK( 2, STKPNT ) = ENDD ELSE STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = J + 1 STACK( 2, STKPNT ) = ENDD STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = START STACK( 2, STKPNT ) = J END IF ELSE * * Sort into increasing order * I = START - 1 J = ENDD + 1 90 CONTINUE 100 CONTINUE J = J - 1 IF( D( J ).GT.DMNMX ) $ GO TO 100 110 CONTINUE I = I + 1 IF( D( I ).LT.DMNMX ) $ GO TO 110 IF( I.LT.J ) THEN TMP = D( I ) D( I ) = D( J ) D( J ) = TMP GO TO 90 END IF IF( J-START.GT.ENDD-J-1 ) THEN STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = START STACK( 2, STKPNT ) = J STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = J + 1 STACK( 2, STKPNT ) = ENDD ELSE STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = J + 1 STACK( 2, STKPNT ) = ENDD STKPNT = STKPNT + 1 STACK( 1, STKPNT ) = START STACK( 2, STKPNT ) = J END IF END IF END IF IF( STKPNT.GT.0 ) $ GO TO 10 RETURN * * End of DLASRT * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlacpy.f0000644000000000000000000000013213543334726015205 xustar0030 mtime=1569569238.611645789 30 atime=1569569238.610645789 30 ctime=1569569238.611645789 elk-6.3.2/src/LAPACK/dlacpy.f0000644002504400250440000001000113543334726017244 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLACPY copies all or part of one two-dimensional array to another. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLACPY + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER LDA, LDB, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLACPY copies all or part of a two-dimensional matrix A to another *> matrix B. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies the part of the matrix A to be copied to B. *> = 'U': Upper triangular part *> = 'L': Lower triangular part *> Otherwise: All of the matrix A *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The m by n matrix A. If UPLO = 'U', only the upper triangle *> or trapezoid is accessed; if UPLO = 'L', only the lower *> triangle or trapezoid is accessed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB,N) *> On exit, B = A in the locations specified by UPLO. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER LDA, LDB, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * IF( LSAME( UPLO, 'U' ) ) THEN DO 20 J = 1, N DO 10 I = 1, MIN( J, M ) B( I, J ) = A( I, J ) 10 CONTINUE 20 CONTINUE ELSE IF( LSAME( UPLO, 'L' ) ) THEN DO 40 J = 1, N DO 30 I = J, M B( I, J ) = A( I, J ) 30 CONTINUE 40 CONTINUE ELSE DO 60 J = 1, N DO 50 I = 1, M B( I, J ) = A( I, J ) 50 CONTINUE 60 CONTINUE END IF RETURN * * End of DLACPY * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dstein.f0000644000000000000000000000013213543334726015217 xustar0030 mtime=1569569238.616645785 30 atime=1569569238.614645787 30 ctime=1569569238.616645785 elk-6.3.2/src/LAPACK/dstein.f0000644002504400250440000003214113543334726017267 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSTEIN * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSTEIN + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSTEIN( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, * IWORK, IFAIL, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDZ, M, N * .. * .. Array Arguments .. * INTEGER IBLOCK( * ), IFAIL( * ), ISPLIT( * ), * $ IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSTEIN computes the eigenvectors of a real symmetric tridiagonal *> matrix T corresponding to specified eigenvalues, using inverse *> iteration. *> *> The maximum number of iterations allowed for each eigenvector is *> specified by an internal parameter MAXITS (currently set to 5). *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix. N >= 0. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The n diagonal elements of the tridiagonal matrix T. *> \endverbatim *> *> \param[in] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The (n-1) subdiagonal elements of the tridiagonal matrix *> T, in elements 1 to N-1. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of eigenvectors to be found. 0 <= M <= N. *> \endverbatim *> *> \param[in] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> The first M elements of W contain the eigenvalues for *> which eigenvectors are to be computed. The eigenvalues *> should be grouped by split-off block and ordered from *> smallest to largest within the block. ( The output array *> W from DSTEBZ with ORDER = 'B' is expected here. ) *> \endverbatim *> *> \param[in] IBLOCK *> \verbatim *> IBLOCK is INTEGER array, dimension (N) *> The submatrix indices associated with the corresponding *> eigenvalues in W; IBLOCK(i)=1 if eigenvalue W(i) belongs to *> the first submatrix from the top, =2 if W(i) belongs to *> the second submatrix, etc. ( The output array IBLOCK *> from DSTEBZ is expected here. ) *> \endverbatim *> *> \param[in] ISPLIT *> \verbatim *> ISPLIT is INTEGER array, dimension (N) *> The splitting points, at which T breaks up into submatrices. *> The first submatrix consists of rows/columns 1 to *> ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1 *> through ISPLIT( 2 ), etc. *> ( The output array ISPLIT from DSTEBZ is expected here. ) *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ, M) *> The computed eigenvectors. The eigenvector associated *> with the eigenvalue W(i) is stored in the i-th column of *> Z. Any vector which fails to converge is set to its current *> iterate after MAXITS iterations. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (5*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (M) *> On normal exit, all elements of IFAIL are zero. *> If one or more eigenvectors fail to converge after *> MAXITS iterations, then their indices are stored in *> array IFAIL. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, then i eigenvectors failed to converge *> in MAXITS iterations. Their indices are stored in *> array IFAIL. *> \endverbatim * *> \par Internal Parameters: * ========================= *> *> \verbatim *> MAXITS INTEGER, default = 5 *> The maximum number of iterations performed. *> *> EXTRA INTEGER, default = 2 *> The number of iterations performed after norm growth *> criterion is satisfied, should be at least 1. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DSTEIN( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, $ IWORK, IFAIL, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDZ, M, N * .. * .. Array Arguments .. INTEGER IBLOCK( * ), IFAIL( * ), ISPLIT( * ), $ IWORK( * ) DOUBLE PRECISION D( * ), E( * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TEN, ODM3, ODM1 PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, TEN = 1.0D+1, $ ODM3 = 1.0D-3, ODM1 = 1.0D-1 ) INTEGER MAXITS, EXTRA PARAMETER ( MAXITS = 5, EXTRA = 2 ) * .. * .. Local Scalars .. INTEGER B1, BLKSIZ, BN, GPIND, I, IINFO, INDRV1, $ INDRV2, INDRV3, INDRV4, INDRV5, ITS, J, J1, $ JBLK, JMAX, NBLK, NRMCHK DOUBLE PRECISION DTPCRT, EPS, EPS1, NRM, ONENRM, ORTOL, PERTOL, $ SCL, SEP, TOL, XJ, XJM, ZTR * .. * .. Local Arrays .. INTEGER ISEED( 4 ) * .. * .. External Functions .. INTEGER IDAMAX DOUBLE PRECISION DDOT, DLAMCH, DNRM2 EXTERNAL IDAMAX, DDOT, DLAMCH, DNRM2 * .. * .. External Subroutines .. EXTERNAL DAXPY, DCOPY, DLAGTF, DLAGTS, DLARNV, DSCAL, $ XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 DO 10 I = 1, M IFAIL( I ) = 0 10 CONTINUE * IF( N.LT.0 ) THEN INFO = -1 ELSE IF( M.LT.0 .OR. M.GT.N ) THEN INFO = -4 ELSE IF( LDZ.LT.MAX( 1, N ) ) THEN INFO = -9 ELSE DO 20 J = 2, M IF( IBLOCK( J ).LT.IBLOCK( J-1 ) ) THEN INFO = -6 GO TO 30 END IF IF( IBLOCK( J ).EQ.IBLOCK( J-1 ) .AND. W( J ).LT.W( J-1 ) ) $ THEN INFO = -5 GO TO 30 END IF 20 CONTINUE 30 CONTINUE END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSTEIN', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. M.EQ.0 ) THEN RETURN ELSE IF( N.EQ.1 ) THEN Z( 1, 1 ) = ONE RETURN END IF * * Get machine constants. * EPS = DLAMCH( 'Precision' ) * * Initialize seed for random number generator DLARNV. * DO 40 I = 1, 4 ISEED( I ) = 1 40 CONTINUE * * Initialize pointers. * INDRV1 = 0 INDRV2 = INDRV1 + N INDRV3 = INDRV2 + N INDRV4 = INDRV3 + N INDRV5 = INDRV4 + N * * Compute eigenvectors of matrix blocks. * J1 = 1 DO 160 NBLK = 1, IBLOCK( M ) * * Find starting and ending indices of block nblk. * IF( NBLK.EQ.1 ) THEN B1 = 1 ELSE B1 = ISPLIT( NBLK-1 ) + 1 END IF BN = ISPLIT( NBLK ) BLKSIZ = BN - B1 + 1 IF( BLKSIZ.EQ.1 ) $ GO TO 60 GPIND = J1 * * Compute reorthogonalization criterion and stopping criterion. * ONENRM = ABS( D( B1 ) ) + ABS( E( B1 ) ) ONENRM = MAX( ONENRM, ABS( D( BN ) )+ABS( E( BN-1 ) ) ) DO 50 I = B1 + 1, BN - 1 ONENRM = MAX( ONENRM, ABS( D( I ) )+ABS( E( I-1 ) )+ $ ABS( E( I ) ) ) 50 CONTINUE ORTOL = ODM3*ONENRM * DTPCRT = SQRT( ODM1 / BLKSIZ ) * * Loop through eigenvalues of block nblk. * 60 CONTINUE JBLK = 0 DO 150 J = J1, M IF( IBLOCK( J ).NE.NBLK ) THEN J1 = J GO TO 160 END IF JBLK = JBLK + 1 XJ = W( J ) * * Skip all the work if the block size is one. * IF( BLKSIZ.EQ.1 ) THEN WORK( INDRV1+1 ) = ONE GO TO 120 END IF * * If eigenvalues j and j-1 are too close, add a relatively * small perturbation. * IF( JBLK.GT.1 ) THEN EPS1 = ABS( EPS*XJ ) PERTOL = TEN*EPS1 SEP = XJ - XJM IF( SEP.LT.PERTOL ) $ XJ = XJM + PERTOL END IF * ITS = 0 NRMCHK = 0 * * Get random starting vector. * CALL DLARNV( 2, ISEED, BLKSIZ, WORK( INDRV1+1 ) ) * * Copy the matrix T so it won't be destroyed in factorization. * CALL DCOPY( BLKSIZ, D( B1 ), 1, WORK( INDRV4+1 ), 1 ) CALL DCOPY( BLKSIZ-1, E( B1 ), 1, WORK( INDRV2+2 ), 1 ) CALL DCOPY( BLKSIZ-1, E( B1 ), 1, WORK( INDRV3+1 ), 1 ) * * Compute LU factors with partial pivoting ( PT = LU ) * TOL = ZERO CALL DLAGTF( BLKSIZ, WORK( INDRV4+1 ), XJ, WORK( INDRV2+2 ), $ WORK( INDRV3+1 ), TOL, WORK( INDRV5+1 ), IWORK, $ IINFO ) * * Update iteration count. * 70 CONTINUE ITS = ITS + 1 IF( ITS.GT.MAXITS ) $ GO TO 100 * * Normalize and scale the righthand side vector Pb. * JMAX = IDAMAX( BLKSIZ, WORK( INDRV1+1 ), 1 ) SCL = BLKSIZ*ONENRM*MAX( EPS, $ ABS( WORK( INDRV4+BLKSIZ ) ) ) / $ ABS( WORK( INDRV1+JMAX ) ) CALL DSCAL( BLKSIZ, SCL, WORK( INDRV1+1 ), 1 ) * * Solve the system LU = Pb. * CALL DLAGTS( -1, BLKSIZ, WORK( INDRV4+1 ), WORK( INDRV2+2 ), $ WORK( INDRV3+1 ), WORK( INDRV5+1 ), IWORK, $ WORK( INDRV1+1 ), TOL, IINFO ) * * Reorthogonalize by modified Gram-Schmidt if eigenvalues are * close enough. * IF( JBLK.EQ.1 ) $ GO TO 90 IF( ABS( XJ-XJM ).GT.ORTOL ) $ GPIND = J IF( GPIND.NE.J ) THEN DO 80 I = GPIND, J - 1 ZTR = -DDOT( BLKSIZ, WORK( INDRV1+1 ), 1, Z( B1, I ), $ 1 ) CALL DAXPY( BLKSIZ, ZTR, Z( B1, I ), 1, $ WORK( INDRV1+1 ), 1 ) 80 CONTINUE END IF * * Check the infinity norm of the iterate. * 90 CONTINUE JMAX = IDAMAX( BLKSIZ, WORK( INDRV1+1 ), 1 ) NRM = ABS( WORK( INDRV1+JMAX ) ) * * Continue for additional iterations after norm reaches * stopping criterion. * IF( NRM.LT.DTPCRT ) $ GO TO 70 NRMCHK = NRMCHK + 1 IF( NRMCHK.LT.EXTRA+1 ) $ GO TO 70 * GO TO 110 * * If stopping criterion was not satisfied, update info and * store eigenvector number in array ifail. * 100 CONTINUE INFO = INFO + 1 IFAIL( INFO ) = J * * Accept iterate as jth eigenvector. * 110 CONTINUE SCL = ONE / DNRM2( BLKSIZ, WORK( INDRV1+1 ), 1 ) JMAX = IDAMAX( BLKSIZ, WORK( INDRV1+1 ), 1 ) IF( WORK( INDRV1+JMAX ).LT.ZERO ) $ SCL = -SCL CALL DSCAL( BLKSIZ, SCL, WORK( INDRV1+1 ), 1 ) 120 CONTINUE DO 130 I = 1, N Z( I, J ) = ZERO 130 CONTINUE DO 140 I = 1, BLKSIZ Z( B1+I-1, J ) = WORK( INDRV1+I ) 140 CONTINUE * * Save the shift to check eigenvalue spacing at next * iteration. * XJM = XJ * 150 CONTINUE 160 CONTINUE * RETURN * * End of DSTEIN * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dormtr.f0000644000000000000000000000013213543334726015240 xustar0030 mtime=1569569238.620645783 30 atime=1569569238.619645783 30 ctime=1569569238.620645783 elk-6.3.2/src/LAPACK/dormtr.f0000644002504400250440000002113413543334726017310 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORMTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORMTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORMTR( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS, UPLO * INTEGER INFO, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORMTR overwrites the general real M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'T': Q**T * C C * Q**T *> *> where Q is a real orthogonal matrix of order nq, with nq = m if *> SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of *> nq-1 elementary reflectors, as returned by DSYTRD: *> *> if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left; *> = 'R': apply Q or Q**T from the Right. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A contains elementary reflectors *> from DSYTRD; *> = 'L': Lower triangle of A contains elementary reflectors *> from DSYTRD. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'T': Transpose, apply Q**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension *> (LDA,M) if SIDE = 'L' *> (LDA,N) if SIDE = 'R' *> The vectors which define the elementary reflectors, as *> returned by DSYTRD. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DSYTRD. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For optimum performance LWORK >= N*NB if SIDE = 'L', and *> LWORK >= M*NB if SIDE = 'R', where NB is the optimal *> blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORMTR( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS, UPLO INTEGER INFO, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LEFT, LQUERY, UPPER INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DORMQL, DORMQR, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) UPPER = LSAME( UPLO, 'U' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( .NOT.LSAME( TRANS, 'N' ) .AND. .NOT.LSAME( TRANS, 'T' ) ) $ THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN IF( UPPER ) THEN IF( LEFT ) THEN NB = ILAENV( 1, 'DORMQL', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'DORMQL', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF ELSE IF( LEFT ) THEN NB = ILAENV( 1, 'DORMQR', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'DORMQR', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF END IF LWKOPT = MAX( 1, NW )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORMTR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. NQ.EQ.1 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( LEFT ) THEN MI = M - 1 NI = N ELSE MI = M NI = N - 1 END IF * IF( UPPER ) THEN * * Q was determined by a call to DSYTRD with UPLO = 'U' * CALL DORMQL( SIDE, TRANS, MI, NI, NQ-1, A( 1, 2 ), LDA, TAU, C, $ LDC, WORK, LWORK, IINFO ) ELSE * * Q was determined by a call to DSYTRD with UPLO = 'L' * IF( LEFT ) THEN I1 = 2 I2 = 1 ELSE I1 = 1 I2 = 2 END IF CALL DORMQR( SIDE, TRANS, MI, NI, NQ-1, A( 2, 1 ), LDA, TAU, $ C( I1, I2 ), LDC, WORK, LWORK, IINFO ) END IF WORK( 1 ) = LWKOPT RETURN * * End of DORMTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsygs2.f0000644000000000000000000000013013543334726015142 xustar0029 mtime=1569569238.62564578 30 atime=1569569238.623645781 29 ctime=1569569238.62564578 elk-6.3.2/src/LAPACK/dsygs2.f0000644002504400250440000002123713543334726017220 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYGS2 reduces a symmetric definite generalized eigenproblem to standard form, using the factorization results obtained from spotrf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYGS2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYGS2 reduces a real symmetric-definite generalized eigenproblem *> to standard form. *> *> If ITYPE = 1, the problem is A*x = lambda*B*x, *> and A is overwritten by inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T) *> *> If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or *> B*A*x = lambda*x, and A is overwritten by U*A*U**T or L**T *A*L. *> *> B must have been previously factorized as U**T *U or L*L**T by DPOTRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> = 1: compute inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T); *> = 2 or 3: compute U*A*U**T or L**T *A*L. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> symmetric matrix A is stored, and how B has been factorized. *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> n by n upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n by n lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the transformed matrix, stored in the *> same format as A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB,N) *> The triangular factor from the Cholesky factorization of B, *> as returned by DPOTRF. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleSYcomputational * * ===================================================================== SUBROUTINE DSYGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, HALF PARAMETER ( ONE = 1.0D0, HALF = 0.5D0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER K DOUBLE PRECISION AKK, BKK, CT * .. * .. External Subroutines .. EXTERNAL DAXPY, DSCAL, DSYR2, DTRMV, DTRSV, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYGS2', -INFO ) RETURN END IF * IF( ITYPE.EQ.1 ) THEN IF( UPPER ) THEN * * Compute inv(U**T)*A*inv(U) * DO 10 K = 1, N * * Update the upper triangle of A(k:n,k:n) * AKK = A( K, K ) BKK = B( K, K ) AKK = AKK / BKK**2 A( K, K ) = AKK IF( K.LT.N ) THEN CALL DSCAL( N-K, ONE / BKK, A( K, K+1 ), LDA ) CT = -HALF*AKK CALL DAXPY( N-K, CT, B( K, K+1 ), LDB, A( K, K+1 ), $ LDA ) CALL DSYR2( UPLO, N-K, -ONE, A( K, K+1 ), LDA, $ B( K, K+1 ), LDB, A( K+1, K+1 ), LDA ) CALL DAXPY( N-K, CT, B( K, K+1 ), LDB, A( K, K+1 ), $ LDA ) CALL DTRSV( UPLO, 'Transpose', 'Non-unit', N-K, $ B( K+1, K+1 ), LDB, A( K, K+1 ), LDA ) END IF 10 CONTINUE ELSE * * Compute inv(L)*A*inv(L**T) * DO 20 K = 1, N * * Update the lower triangle of A(k:n,k:n) * AKK = A( K, K ) BKK = B( K, K ) AKK = AKK / BKK**2 A( K, K ) = AKK IF( K.LT.N ) THEN CALL DSCAL( N-K, ONE / BKK, A( K+1, K ), 1 ) CT = -HALF*AKK CALL DAXPY( N-K, CT, B( K+1, K ), 1, A( K+1, K ), 1 ) CALL DSYR2( UPLO, N-K, -ONE, A( K+1, K ), 1, $ B( K+1, K ), 1, A( K+1, K+1 ), LDA ) CALL DAXPY( N-K, CT, B( K+1, K ), 1, A( K+1, K ), 1 ) CALL DTRSV( UPLO, 'No transpose', 'Non-unit', N-K, $ B( K+1, K+1 ), LDB, A( K+1, K ), 1 ) END IF 20 CONTINUE END IF ELSE IF( UPPER ) THEN * * Compute U*A*U**T * DO 30 K = 1, N * * Update the upper triangle of A(1:k,1:k) * AKK = A( K, K ) BKK = B( K, K ) CALL DTRMV( UPLO, 'No transpose', 'Non-unit', K-1, B, $ LDB, A( 1, K ), 1 ) CT = HALF*AKK CALL DAXPY( K-1, CT, B( 1, K ), 1, A( 1, K ), 1 ) CALL DSYR2( UPLO, K-1, ONE, A( 1, K ), 1, B( 1, K ), 1, $ A, LDA ) CALL DAXPY( K-1, CT, B( 1, K ), 1, A( 1, K ), 1 ) CALL DSCAL( K-1, BKK, A( 1, K ), 1 ) A( K, K ) = AKK*BKK**2 30 CONTINUE ELSE * * Compute L**T *A*L * DO 40 K = 1, N * * Update the lower triangle of A(1:k,1:k) * AKK = A( K, K ) BKK = B( K, K ) CALL DTRMV( UPLO, 'Transpose', 'Non-unit', K-1, B, LDB, $ A( K, 1 ), LDA ) CT = HALF*AKK CALL DAXPY( K-1, CT, B( K, 1 ), LDB, A( K, 1 ), LDA ) CALL DSYR2( UPLO, K-1, ONE, A( K, 1 ), LDA, B( K, 1 ), $ LDB, A, LDA ) CALL DAXPY( K-1, CT, B( K, 1 ), LDB, A( K, 1 ), LDA ) CALL DSCAL( K-1, BKK, A( K, 1 ), LDA ) A( K, K ) = AKK*BKK**2 40 CONTINUE END IF END IF RETURN * * End of DSYGS2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlatrd.f0000644000000000000000000000013213543334726015203 xustar0030 mtime=1569569238.630645776 30 atime=1569569238.628645778 30 ctime=1569569238.630645776 elk-6.3.2/src/LAPACK/dlatrd.f0000644002504400250440000002656013543334726017263 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal form by an orthogonal similarity transformation. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLATRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER LDA, LDW, N, NB * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), E( * ), TAU( * ), W( LDW, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLATRD reduces NB rows and columns of a real symmetric matrix A to *> symmetric tridiagonal form by an orthogonal similarity *> transformation Q**T * A * Q, and returns the matrices V and W which are *> needed to apply the transformation to the unreduced part of A. *> *> If UPLO = 'U', DLATRD reduces the last NB rows and columns of a *> matrix, of which the upper triangle is supplied; *> if UPLO = 'L', DLATRD reduces the first NB rows and columns of a *> matrix, of which the lower triangle is supplied. *> *> This is an auxiliary routine called by DSYTRD. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> symmetric matrix A is stored: *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. *> \endverbatim *> *> \param[in] NB *> \verbatim *> NB is INTEGER *> The number of rows and columns to be reduced. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> n-by-n upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n-by-n lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> On exit: *> if UPLO = 'U', the last NB columns have been reduced to *> tridiagonal form, with the diagonal elements overwriting *> the diagonal elements of A; the elements above the diagonal *> with the array TAU, represent the orthogonal matrix Q as a *> product of elementary reflectors; *> if UPLO = 'L', the first NB columns have been reduced to *> tridiagonal form, with the diagonal elements overwriting *> the diagonal elements of A; the elements below the diagonal *> with the array TAU, represent the orthogonal matrix Q as a *> product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= (1,N). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal *> elements of the last NB columns of the reduced matrix; *> if UPLO = 'L', E(1:nb) contains the subdiagonal elements of *> the first NB columns of the reduced matrix. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (N-1) *> The scalar factors of the elementary reflectors, stored in *> TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'. *> See Further Details. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (LDW,NB) *> The n-by-nb matrix W required to update the unreduced part *> of A. *> \endverbatim *> *> \param[in] LDW *> \verbatim *> LDW is INTEGER *> The leading dimension of the array W. LDW >= max(1,N). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n) H(n-1) . . . H(n-nb+1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), *> and tau in TAU(i-1). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(nb). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), *> and tau in TAU(i). *> *> The elements of the vectors v together form the n-by-nb matrix V *> which is needed, with W, to apply the transformation to the unreduced *> part of the matrix, using a symmetric rank-2k update of the form: *> A := A - V*W**T - W*V**T. *> *> The contents of A on exit are illustrated by the following examples *> with n = 5 and nb = 2: *> *> if UPLO = 'U': if UPLO = 'L': *> *> ( a a a v4 v5 ) ( d ) *> ( a a v4 v5 ) ( 1 d ) *> ( a 1 v5 ) ( v1 1 a ) *> ( d 1 ) ( v1 v2 a a ) *> ( d ) ( v1 v2 a a a ) *> *> where d denotes a diagonal element of the reduced matrix, a denotes *> an element of the original matrix that is unchanged, and vi denotes *> an element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER LDA, LDW, N, NB * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), E( * ), TAU( * ), W( LDW, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, HALF PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, HALF = 0.5D+0 ) * .. * .. Local Scalars .. INTEGER I, IW DOUBLE PRECISION ALPHA * .. * .. External Subroutines .. EXTERNAL DAXPY, DGEMV, DLARFG, DSCAL, DSYMV * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DDOT EXTERNAL LSAME, DDOT * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * * Quick return if possible * IF( N.LE.0 ) $ RETURN * IF( LSAME( UPLO, 'U' ) ) THEN * * Reduce last NB columns of upper triangle * DO 10 I = N, N - NB + 1, -1 IW = I - N + NB IF( I.LT.N ) THEN * * Update A(1:i,i) * CALL DGEMV( 'No transpose', I, N-I, -ONE, A( 1, I+1 ), $ LDA, W( I, IW+1 ), LDW, ONE, A( 1, I ), 1 ) CALL DGEMV( 'No transpose', I, N-I, -ONE, W( 1, IW+1 ), $ LDW, A( I, I+1 ), LDA, ONE, A( 1, I ), 1 ) END IF IF( I.GT.1 ) THEN * * Generate elementary reflector H(i) to annihilate * A(1:i-2,i) * CALL DLARFG( I-1, A( I-1, I ), A( 1, I ), 1, TAU( I-1 ) ) E( I-1 ) = A( I-1, I ) A( I-1, I ) = ONE * * Compute W(1:i-1,i) * CALL DSYMV( 'Upper', I-1, ONE, A, LDA, A( 1, I ), 1, $ ZERO, W( 1, IW ), 1 ) IF( I.LT.N ) THEN CALL DGEMV( 'Transpose', I-1, N-I, ONE, W( 1, IW+1 ), $ LDW, A( 1, I ), 1, ZERO, W( I+1, IW ), 1 ) CALL DGEMV( 'No transpose', I-1, N-I, -ONE, $ A( 1, I+1 ), LDA, W( I+1, IW ), 1, ONE, $ W( 1, IW ), 1 ) CALL DGEMV( 'Transpose', I-1, N-I, ONE, A( 1, I+1 ), $ LDA, A( 1, I ), 1, ZERO, W( I+1, IW ), 1 ) CALL DGEMV( 'No transpose', I-1, N-I, -ONE, $ W( 1, IW+1 ), LDW, W( I+1, IW ), 1, ONE, $ W( 1, IW ), 1 ) END IF CALL DSCAL( I-1, TAU( I-1 ), W( 1, IW ), 1 ) ALPHA = -HALF*TAU( I-1 )*DDOT( I-1, W( 1, IW ), 1, $ A( 1, I ), 1 ) CALL DAXPY( I-1, ALPHA, A( 1, I ), 1, W( 1, IW ), 1 ) END IF * 10 CONTINUE ELSE * * Reduce first NB columns of lower triangle * DO 20 I = 1, NB * * Update A(i:n,i) * CALL DGEMV( 'No transpose', N-I+1, I-1, -ONE, A( I, 1 ), $ LDA, W( I, 1 ), LDW, ONE, A( I, I ), 1 ) CALL DGEMV( 'No transpose', N-I+1, I-1, -ONE, W( I, 1 ), $ LDW, A( I, 1 ), LDA, ONE, A( I, I ), 1 ) IF( I.LT.N ) THEN * * Generate elementary reflector H(i) to annihilate * A(i+2:n,i) * CALL DLARFG( N-I, A( I+1, I ), A( MIN( I+2, N ), I ), 1, $ TAU( I ) ) E( I ) = A( I+1, I ) A( I+1, I ) = ONE * * Compute W(i+1:n,i) * CALL DSYMV( 'Lower', N-I, ONE, A( I+1, I+1 ), LDA, $ A( I+1, I ), 1, ZERO, W( I+1, I ), 1 ) CALL DGEMV( 'Transpose', N-I, I-1, ONE, W( I+1, 1 ), LDW, $ A( I+1, I ), 1, ZERO, W( 1, I ), 1 ) CALL DGEMV( 'No transpose', N-I, I-1, -ONE, A( I+1, 1 ), $ LDA, W( 1, I ), 1, ONE, W( I+1, I ), 1 ) CALL DGEMV( 'Transpose', N-I, I-1, ONE, A( I+1, 1 ), LDA, $ A( I+1, I ), 1, ZERO, W( 1, I ), 1 ) CALL DGEMV( 'No transpose', N-I, I-1, -ONE, W( I+1, 1 ), $ LDW, W( 1, I ), 1, ONE, W( I+1, I ), 1 ) CALL DSCAL( N-I, TAU( I ), W( I+1, I ), 1 ) ALPHA = -HALF*TAU( I )*DDOT( N-I, W( I+1, I ), 1, $ A( I+1, I ), 1 ) CALL DAXPY( N-I, ALPHA, A( I+1, I ), 1, W( I+1, I ), 1 ) END IF * 20 CONTINUE END IF * RETURN * * End of DLATRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsytd2.f0000644000000000000000000000013213543334726015142 xustar0030 mtime=1569569238.634645774 30 atime=1569569238.633645775 30 ctime=1569569238.634645774 elk-6.3.2/src/LAPACK/dsytd2.f0000644002504400250440000002317213543334726017216 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSYTD2 reduces a symmetric matrix to real symmetric tridiagonal form by an orthogonal similarity transformation (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSYTD2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSYTD2( UPLO, N, A, LDA, D, E, TAU, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAU( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSYTD2 reduces a real symmetric matrix A to symmetric tridiagonal *> form T by an orthogonal similarity transformation: Q**T * A * Q = T. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> symmetric matrix A is stored: *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> n-by-n upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n-by-n lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> On exit, if UPLO = 'U', the diagonal and first superdiagonal *> of A are overwritten by the corresponding elements of the *> tridiagonal matrix T, and the elements above the first *> superdiagonal, with the array TAU, represent the orthogonal *> matrix Q as a product of elementary reflectors; if UPLO *> = 'L', the diagonal and first subdiagonal of A are over- *> written by the corresponding elements of the tridiagonal *> matrix T, and the elements below the first subdiagonal, with *> the array TAU, represent the orthogonal matrix Q as a product *> of elementary reflectors. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix T: *> E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleSYcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n-1) . . . H(2) H(1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in *> A(1:i-1,i+1), and tau in TAU(i). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(n-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), *> and tau in TAU(i). *> *> The contents of A on exit are illustrated by the following examples *> with n = 5: *> *> if UPLO = 'U': if UPLO = 'L': *> *> ( d e v2 v3 v4 ) ( d ) *> ( d e v3 v4 ) ( e d ) *> ( d e v4 ) ( v1 e d ) *> ( d e ) ( v1 v2 e d ) *> ( d ) ( v1 v2 v3 e d ) *> *> where d and e denote diagonal and off-diagonal elements of T, and vi *> denotes an element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DSYTD2( UPLO, N, A, LDA, D, E, TAU, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAU( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO, HALF PARAMETER ( ONE = 1.0D0, ZERO = 0.0D0, $ HALF = 1.0D0 / 2.0D0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER I DOUBLE PRECISION ALPHA, TAUI * .. * .. External Subroutines .. EXTERNAL DAXPY, DLARFG, DSYMV, DSYR2, XERBLA * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DDOT EXTERNAL LSAME, DDOT * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSYTD2', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * IF( UPPER ) THEN * * Reduce the upper triangle of A * DO 10 I = N - 1, 1, -1 * * Generate elementary reflector H(i) = I - tau * v * v**T * to annihilate A(1:i-1,i+1) * CALL DLARFG( I, A( I, I+1 ), A( 1, I+1 ), 1, TAUI ) E( I ) = A( I, I+1 ) * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(1:i,1:i) * A( I, I+1 ) = ONE * * Compute x := tau * A * v storing x in TAU(1:i) * CALL DSYMV( UPLO, I, TAUI, A, LDA, A( 1, I+1 ), 1, ZERO, $ TAU, 1 ) * * Compute w := x - 1/2 * tau * (x**T * v) * v * ALPHA = -HALF*TAUI*DDOT( I, TAU, 1, A( 1, I+1 ), 1 ) CALL DAXPY( I, ALPHA, A( 1, I+1 ), 1, TAU, 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**T - w * v**T * CALL DSYR2( UPLO, I, -ONE, A( 1, I+1 ), 1, TAU, 1, A, $ LDA ) * A( I, I+1 ) = E( I ) END IF D( I+1 ) = A( I+1, I+1 ) TAU( I ) = TAUI 10 CONTINUE D( 1 ) = A( 1, 1 ) ELSE * * Reduce the lower triangle of A * DO 20 I = 1, N - 1 * * Generate elementary reflector H(i) = I - tau * v * v**T * to annihilate A(i+2:n,i) * CALL DLARFG( N-I, A( I+1, I ), A( MIN( I+2, N ), I ), 1, $ TAUI ) E( I ) = A( I+1, I ) * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(i+1:n,i+1:n) * A( I+1, I ) = ONE * * Compute x := tau * A * v storing y in TAU(i:n-1) * CALL DSYMV( UPLO, N-I, TAUI, A( I+1, I+1 ), LDA, $ A( I+1, I ), 1, ZERO, TAU( I ), 1 ) * * Compute w := x - 1/2 * tau * (x**T * v) * v * ALPHA = -HALF*TAUI*DDOT( N-I, TAU( I ), 1, A( I+1, I ), $ 1 ) CALL DAXPY( N-I, ALPHA, A( I+1, I ), 1, TAU( I ), 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**T - w * v**T * CALL DSYR2( UPLO, N-I, -ONE, A( I+1, I ), 1, TAU( I ), 1, $ A( I+1, I+1 ), LDA ) * A( I+1, I ) = E( I ) END IF D( I ) = A( I, I ) TAU( I ) = TAUI 20 CONTINUE D( N ) = A( N, N ) END IF * RETURN * * End of DSYTD2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dtrti2.f0000644000000000000000000000013213543334726015141 xustar0030 mtime=1569569238.638645771 30 atime=1569569238.637645772 30 ctime=1569569238.638645771 elk-6.3.2/src/LAPACK/dtrti2.f0000644002504400250440000001342313543334726017213 0ustar00dewhurstdewhurst00000000000000*> \brief \b DTRTI2 computes the inverse of a triangular matrix (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DTRTI2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DTRTI2( UPLO, DIAG, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER DIAG, UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DTRTI2 computes the inverse of a real upper or lower triangular *> matrix. *> *> This is the Level 2 BLAS version of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the matrix A is upper or lower triangular. *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> Specifies whether or not the matrix A is unit triangular. *> = 'N': Non-unit triangular *> = 'U': Unit triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the triangular matrix A. If UPLO = 'U', the *> leading n by n upper triangular part of the array A contains *> the upper triangular matrix, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n by n lower triangular part of the array A contains *> the lower triangular matrix, and the strictly upper *> triangular part of A is not referenced. If DIAG = 'U', the *> diagonal elements of A are also not referenced and are *> assumed to be 1. *> *> On exit, the (triangular) inverse of the original matrix, in *> the same storage format. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -k, the k-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DTRTI2( UPLO, DIAG, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIAG, UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL NOUNIT, UPPER INTEGER J DOUBLE PRECISION AJJ * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DSCAL, DTRMV, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) NOUNIT = LSAME( DIAG, 'N' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( .NOT.NOUNIT .AND. .NOT.LSAME( DIAG, 'U' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DTRTI2', -INFO ) RETURN END IF * IF( UPPER ) THEN * * Compute inverse of upper triangular matrix. * DO 10 J = 1, N IF( NOUNIT ) THEN A( J, J ) = ONE / A( J, J ) AJJ = -A( J, J ) ELSE AJJ = -ONE END IF * * Compute elements 1:j-1 of j-th column. * CALL DTRMV( 'Upper', 'No transpose', DIAG, J-1, A, LDA, $ A( 1, J ), 1 ) CALL DSCAL( J-1, AJJ, A( 1, J ), 1 ) 10 CONTINUE ELSE * * Compute inverse of lower triangular matrix. * DO 20 J = N, 1, -1 IF( NOUNIT ) THEN A( J, J ) = ONE / A( J, J ) AJJ = -A( J, J ) ELSE AJJ = -ONE END IF IF( J.LT.N ) THEN * * Compute elements j+1:n of j-th column. * CALL DTRMV( 'Lower', 'No transpose', DIAG, N-J, $ A( J+1, J+1 ), LDA, A( J+1, J ), 1 ) CALL DSCAL( N-J, AJJ, A( J+1, J ), 1 ) END IF 20 CONTINUE END IF * RETURN * * End of DTRTI2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlahr2.f0000644000000000000000000000013213543334726015133 xustar0030 mtime=1569569238.643645768 30 atime=1569569238.642645769 30 ctime=1569569238.643645768 elk-6.3.2/src/LAPACK/zlahr2.f0000644002504400250440000002415713543334726017213 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elements below the specified subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAHR2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAHR2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) * * .. Scalar Arguments .. * INTEGER K, LDA, LDT, LDY, N, NB * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), T( LDT, NB ), TAU( NB ), * $ Y( LDY, NB ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAHR2 reduces the first NB columns of A complex general n-BY-(n-k+1) *> matrix A so that elements below the k-th subdiagonal are zero. The *> reduction is performed by an unitary similarity transformation *> Q**H * A * Q. The routine returns the matrices V and T which determine *> Q as a block reflector I - V*T*V**H, and also the matrix Y = A * V * T. *> *> This is an auxiliary routine called by ZGEHRD. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The offset for the reduction. Elements below the k-th *> subdiagonal in the first NB columns are reduced to zero. *> K < N. *> \endverbatim *> *> \param[in] NB *> \verbatim *> NB is INTEGER *> The number of columns to be reduced. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N-K+1) *> On entry, the n-by-(n-k+1) general matrix A. *> On exit, the elements on and above the k-th subdiagonal in *> the first NB columns are overwritten with the corresponding *> elements of the reduced matrix; the elements below the k-th *> subdiagonal, with the array TAU, represent the matrix Q as a *> product of elementary reflectors. The other columns of A are *> unchanged. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (NB) *> The scalar factors of the elementary reflectors. See Further *> Details. *> \endverbatim *> *> \param[out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,NB) *> The upper triangular matrix T. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= NB. *> \endverbatim *> *> \param[out] Y *> \verbatim *> Y is COMPLEX*16 array, dimension (LDY,NB) *> The n-by-nb matrix Y. *> \endverbatim *> *> \param[in] LDY *> \verbatim *> LDY is INTEGER *> The leading dimension of the array Y. LDY >= N. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of nb elementary reflectors *> *> Q = H(1) H(2) . . . H(nb). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in *> A(i+k+1:n,i), and tau in TAU(i). *> *> The elements of the vectors v together form the (n-k+1)-by-nb matrix *> V which is needed, with T and Y, to apply the transformation to the *> unreduced part of the matrix, using an update of the form: *> A := (I - V*T*V**H) * (A - Y*V**H). *> *> The contents of A on exit are illustrated by the following example *> with n = 7, k = 3 and nb = 2: *> *> ( a a a a a ) *> ( a a a a a ) *> ( a a a a a ) *> ( h h a a a ) *> ( v1 h a a a ) *> ( v1 v2 a a a ) *> ( v1 v2 a a a ) *> *> where a denotes an element of the original matrix A, h denotes a *> modified element of the upper Hessenberg matrix H, and vi denotes an *> element of the vector defining H(i). *> *> This subroutine is a slight modification of LAPACK-3.0's DLAHRD *> incorporating improvements proposed by Quintana-Orti and Van de *> Gejin. Note that the entries of A(1:K,2:NB) differ from those *> returned by the original LAPACK-3.0's DLAHRD routine. (This *> subroutine is not backward compatible with LAPACK-3.0's DLAHRD.) *> \endverbatim * *> \par References: * ================ *> *> Gregorio Quintana-Orti and Robert van de Geijn, "Improving the *> performance of reduction to Hessenberg form," ACM Transactions on *> Mathematical Software, 32(2):180-194, June 2006. *> * ===================================================================== SUBROUTINE ZLAHR2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER K, LDA, LDT, LDY, N, NB * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), T( LDT, NB ), TAU( NB ), $ Y( LDY, NB ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I COMPLEX*16 EI * .. * .. External Subroutines .. EXTERNAL ZAXPY, ZCOPY, ZGEMM, ZGEMV, ZLACPY, $ ZLARFG, ZSCAL, ZTRMM, ZTRMV, ZLACGV * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * * Quick return if possible * IF( N.LE.1 ) $ RETURN * DO 10 I = 1, NB IF( I.GT.1 ) THEN * * Update A(K+1:N,I) * * Update I-th column of A - Y * V**H * CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA ) CALL ZGEMV( 'NO TRANSPOSE', N-K, I-1, -ONE, Y(K+1,1), LDY, $ A( K+I-1, 1 ), LDA, ONE, A( K+1, I ), 1 ) CALL ZLACGV( I-1, A( K+I-1, 1 ), LDA ) * * Apply I - V * T**H * V**H to this column (call it b) from the * left, using the last column of T as workspace * * Let V = ( V1 ) and b = ( b1 ) (first I-1 rows) * ( V2 ) ( b2 ) * * where V1 is unit lower triangular * * w := V1**H * b1 * CALL ZCOPY( I-1, A( K+1, I ), 1, T( 1, NB ), 1 ) CALL ZTRMV( 'Lower', 'Conjugate transpose', 'UNIT', $ I-1, A( K+1, 1 ), $ LDA, T( 1, NB ), 1 ) * * w := w + V2**H * b2 * CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1, $ ONE, A( K+I, 1 ), $ LDA, A( K+I, I ), 1, ONE, T( 1, NB ), 1 ) * * w := T**H * w * CALL ZTRMV( 'Upper', 'Conjugate transpose', 'NON-UNIT', $ I-1, T, LDT, $ T( 1, NB ), 1 ) * * b2 := b2 - V2*w * CALL ZGEMV( 'NO TRANSPOSE', N-K-I+1, I-1, -ONE, $ A( K+I, 1 ), $ LDA, T( 1, NB ), 1, ONE, A( K+I, I ), 1 ) * * b1 := b1 - V1*w * CALL ZTRMV( 'Lower', 'NO TRANSPOSE', $ 'UNIT', I-1, $ A( K+1, 1 ), LDA, T( 1, NB ), 1 ) CALL ZAXPY( I-1, -ONE, T( 1, NB ), 1, A( K+1, I ), 1 ) * A( K+I-1, I-1 ) = EI END IF * * Generate the elementary reflector H(I) to annihilate * A(K+I+1:N,I) * CALL ZLARFG( N-K-I+1, A( K+I, I ), A( MIN( K+I+1, N ), I ), 1, $ TAU( I ) ) EI = A( K+I, I ) A( K+I, I ) = ONE * * Compute Y(K+1:N,I) * CALL ZGEMV( 'NO TRANSPOSE', N-K, N-K-I+1, $ ONE, A( K+1, I+1 ), $ LDA, A( K+I, I ), 1, ZERO, Y( K+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', N-K-I+1, I-1, $ ONE, A( K+I, 1 ), LDA, $ A( K+I, I ), 1, ZERO, T( 1, I ), 1 ) CALL ZGEMV( 'NO TRANSPOSE', N-K, I-1, -ONE, $ Y( K+1, 1 ), LDY, $ T( 1, I ), 1, ONE, Y( K+1, I ), 1 ) CALL ZSCAL( N-K, TAU( I ), Y( K+1, I ), 1 ) * * Compute T(1:I,I) * CALL ZSCAL( I-1, -TAU( I ), T( 1, I ), 1 ) CALL ZTRMV( 'Upper', 'No Transpose', 'NON-UNIT', $ I-1, T, LDT, $ T( 1, I ), 1 ) T( I, I ) = TAU( I ) * 10 CONTINUE A( K+NB, NB ) = EI * * Compute Y(1:K,1:NB) * CALL ZLACPY( 'ALL', K, NB, A( 1, 2 ), LDA, Y, LDY ) CALL ZTRMM( 'RIGHT', 'Lower', 'NO TRANSPOSE', $ 'UNIT', K, NB, $ ONE, A( K+1, 1 ), LDA, Y, LDY ) IF( N.GT.K+NB ) $ CALL ZGEMM( 'NO TRANSPOSE', 'NO TRANSPOSE', K, $ NB, N-K-NB, ONE, $ A( 1, 2+NB ), LDA, A( K+1+NB, 1 ), LDA, ONE, Y, $ LDY ) CALL ZTRMM( 'RIGHT', 'Upper', 'NO TRANSPOSE', $ 'NON-UNIT', K, NB, $ ONE, T, LDT, Y, LDY ) * RETURN * * End of ZLAHR2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlarfb.f0000644000000000000000000000013213543334726015211 xustar0030 mtime=1569569238.649645764 30 atime=1569569238.646645766 30 ctime=1569569238.649645764 elk-6.3.2/src/LAPACK/zlarfb.f0000644002504400250440000005325113543334726017266 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLARFB applies a block reflector or its conjugate-transpose to a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLARFB + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLARFB( SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, * T, LDT, C, LDC, WORK, LDWORK ) * * .. Scalar Arguments .. * CHARACTER DIRECT, SIDE, STOREV, TRANS * INTEGER K, LDC, LDT, LDV, LDWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 C( LDC, * ), T( LDT, * ), V( LDV, * ), * $ WORK( LDWORK, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLARFB applies a complex block reflector H or its transpose H**H to a *> complex M-by-N matrix C, from either the left or the right. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply H or H**H from the Left *> = 'R': apply H or H**H from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply H (No transpose) *> = 'C': apply H**H (Conjugate transpose) *> \endverbatim *> *> \param[in] DIRECT *> \verbatim *> DIRECT is CHARACTER*1 *> Indicates how H is formed from a product of elementary *> reflectors *> = 'F': H = H(1) H(2) . . . H(k) (Forward) *> = 'B': H = H(k) . . . H(2) H(1) (Backward) *> \endverbatim *> *> \param[in] STOREV *> \verbatim *> STOREV is CHARACTER*1 *> Indicates how the vectors which define the elementary *> reflectors are stored: *> = 'C': Columnwise *> = 'R': Rowwise *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The order of the matrix T (= the number of elementary *> reflectors whose product defines the block reflector). *> \endverbatim *> *> \param[in] V *> \verbatim *> V is COMPLEX*16 array, dimension *> (LDV,K) if STOREV = 'C' *> (LDV,M) if STOREV = 'R' and SIDE = 'L' *> (LDV,N) if STOREV = 'R' and SIDE = 'R' *> See Further Details. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of the array V. *> If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M); *> if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N); *> if STOREV = 'R', LDV >= K. *> \endverbatim *> *> \param[in] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,K) *> The triangular K-by-K matrix T in the representation of the *> block reflector. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= K. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by H*C or H**H*C or C*H or C*H**H. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (LDWORK,K) *> \endverbatim *> *> \param[in] LDWORK *> \verbatim *> LDWORK is INTEGER *> The leading dimension of the array WORK. *> If SIDE = 'L', LDWORK >= max(1,N); *> if SIDE = 'R', LDWORK >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2013 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The shape of the matrix V and the storage of the vectors which define *> the H(i) is best illustrated by the following example with n = 5 and *> k = 3. The elements equal to 1 are not stored; the corresponding *> array elements are modified but restored on exit. The rest of the *> array is not used. *> *> DIRECT = 'F' and STOREV = 'C': DIRECT = 'F' and STOREV = 'R': *> *> V = ( 1 ) V = ( 1 v1 v1 v1 v1 ) *> ( v1 1 ) ( 1 v2 v2 v2 ) *> ( v1 v2 1 ) ( 1 v3 v3 ) *> ( v1 v2 v3 ) *> ( v1 v2 v3 ) *> *> DIRECT = 'B' and STOREV = 'C': DIRECT = 'B' and STOREV = 'R': *> *> V = ( v1 v2 v3 ) V = ( v1 v1 1 ) *> ( v1 v2 v3 ) ( v2 v2 v2 1 ) *> ( 1 v2 v3 ) ( v3 v3 v3 v3 1 ) *> ( 1 v3 ) *> ( 1 ) *> \endverbatim *> * ===================================================================== SUBROUTINE ZLARFB( SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, $ T, LDT, C, LDC, WORK, LDWORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2013 * * .. Scalar Arguments .. CHARACTER DIRECT, SIDE, STOREV, TRANS INTEGER K, LDC, LDT, LDV, LDWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 C( LDC, * ), T( LDT, * ), V( LDV, * ), $ WORK( LDWORK, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. CHARACTER TRANST INTEGER I, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL ZCOPY, ZGEMM, ZLACGV, ZTRMM * .. * .. Intrinsic Functions .. INTRINSIC DCONJG * .. * .. Executable Statements .. * * Quick return if possible * IF( M.LE.0 .OR. N.LE.0 ) $ RETURN * IF( LSAME( TRANS, 'N' ) ) THEN TRANST = 'C' ELSE TRANST = 'N' END IF * IF( LSAME( STOREV, 'C' ) ) THEN * IF( LSAME( DIRECT, 'F' ) ) THEN * * Let V = ( V1 ) (first K rows) * ( V2 ) * where V1 is unit lower triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**H * C where C = ( C1 ) * ( C2 ) * * W := C**H * V = (C1**H * V1 + C2**H * V2) (stored in WORK) * * W := C1**H * DO 10 J = 1, K CALL ZCOPY( N, C( J, 1 ), LDC, WORK( 1, J ), 1 ) CALL ZLACGV( N, WORK( 1, J ), 1 ) 10 CONTINUE * * W := W * V1 * CALL ZTRMM( 'Right', 'Lower', 'No transpose', 'Unit', N, $ K, ONE, V, LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C2**H * V2 * CALL ZGEMM( 'Conjugate transpose', 'No transpose', N, $ K, M-K, ONE, C( K+1, 1 ), LDC, $ V( K+1, 1 ), LDV, ONE, WORK, LDWORK ) END IF * * W := W * T**H or W * T * CALL ZTRMM( 'Right', 'Upper', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V * W**H * IF( M.GT.K ) THEN * * C2 := C2 - V2 * W**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', $ M-K, N, K, -ONE, V( K+1, 1 ), LDV, WORK, $ LDWORK, ONE, C( K+1, 1 ), LDC ) END IF * * W := W * V1**H * CALL ZTRMM( 'Right', 'Lower', 'Conjugate transpose', $ 'Unit', N, K, ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W**H * DO 30 J = 1, K DO 20 I = 1, N C( J, I ) = C( J, I ) - DCONJG( WORK( I, J ) ) 20 CONTINUE 30 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**H where C = ( C1 C2 ) * * W := C * V = (C1*V1 + C2*V2) (stored in WORK) * * W := C1 * DO 40 J = 1, K CALL ZCOPY( M, C( 1, J ), 1, WORK( 1, J ), 1 ) 40 CONTINUE * * W := W * V1 * CALL ZTRMM( 'Right', 'Lower', 'No transpose', 'Unit', M, $ K, ONE, V, LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C2 * V2 * CALL ZGEMM( 'No transpose', 'No transpose', M, K, N-K, $ ONE, C( 1, K+1 ), LDC, V( K+1, 1 ), LDV, $ ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**H * CALL ZTRMM( 'Right', 'Upper', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V**H * IF( N.GT.K ) THEN * * C2 := C2 - W * V2**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', M, $ N-K, K, -ONE, WORK, LDWORK, V( K+1, 1 ), $ LDV, ONE, C( 1, K+1 ), LDC ) END IF * * W := W * V1**H * CALL ZTRMM( 'Right', 'Lower', 'Conjugate transpose', $ 'Unit', M, K, ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W * DO 60 J = 1, K DO 50 I = 1, M C( I, J ) = C( I, J ) - WORK( I, J ) 50 CONTINUE 60 CONTINUE END IF * ELSE * * Let V = ( V1 ) * ( V2 ) (last K rows) * where V2 is unit upper triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**H * C where C = ( C1 ) * ( C2 ) * * W := C**H * V = (C1**H * V1 + C2**H * V2) (stored in WORK) * * W := C2**H * DO 70 J = 1, K CALL ZCOPY( N, C( M-K+J, 1 ), LDC, WORK( 1, J ), 1 ) CALL ZLACGV( N, WORK( 1, J ), 1 ) 70 CONTINUE * * W := W * V2 * CALL ZTRMM( 'Right', 'Upper', 'No transpose', 'Unit', N, $ K, ONE, V( M-K+1, 1 ), LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C1**H * V1 * CALL ZGEMM( 'Conjugate transpose', 'No transpose', N, $ K, M-K, ONE, C, LDC, V, LDV, ONE, WORK, $ LDWORK ) END IF * * W := W * T**H or W * T * CALL ZTRMM( 'Right', 'Lower', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V * W**H * IF( M.GT.K ) THEN * * C1 := C1 - V1 * W**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', $ M-K, N, K, -ONE, V, LDV, WORK, LDWORK, $ ONE, C, LDC ) END IF * * W := W * V2**H * CALL ZTRMM( 'Right', 'Upper', 'Conjugate transpose', $ 'Unit', N, K, ONE, V( M-K+1, 1 ), LDV, WORK, $ LDWORK ) * * C2 := C2 - W**H * DO 90 J = 1, K DO 80 I = 1, N C( M-K+J, I ) = C( M-K+J, I ) - $ DCONJG( WORK( I, J ) ) 80 CONTINUE 90 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**H where C = ( C1 C2 ) * * W := C * V = (C1*V1 + C2*V2) (stored in WORK) * * W := C2 * DO 100 J = 1, K CALL ZCOPY( M, C( 1, N-K+J ), 1, WORK( 1, J ), 1 ) 100 CONTINUE * * W := W * V2 * CALL ZTRMM( 'Right', 'Upper', 'No transpose', 'Unit', M, $ K, ONE, V( N-K+1, 1 ), LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C1 * V1 * CALL ZGEMM( 'No transpose', 'No transpose', M, K, N-K, $ ONE, C, LDC, V, LDV, ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**H * CALL ZTRMM( 'Right', 'Lower', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V**H * IF( N.GT.K ) THEN * * C1 := C1 - W * V1**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', M, $ N-K, K, -ONE, WORK, LDWORK, V, LDV, ONE, $ C, LDC ) END IF * * W := W * V2**H * CALL ZTRMM( 'Right', 'Upper', 'Conjugate transpose', $ 'Unit', M, K, ONE, V( N-K+1, 1 ), LDV, WORK, $ LDWORK ) * * C2 := C2 - W * DO 120 J = 1, K DO 110 I = 1, M C( I, N-K+J ) = C( I, N-K+J ) - WORK( I, J ) 110 CONTINUE 120 CONTINUE END IF END IF * ELSE IF( LSAME( STOREV, 'R' ) ) THEN * IF( LSAME( DIRECT, 'F' ) ) THEN * * Let V = ( V1 V2 ) (V1: first K columns) * where V1 is unit upper triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**H * C where C = ( C1 ) * ( C2 ) * * W := C**H * V**H = (C1**H * V1**H + C2**H * V2**H) (stored in WORK) * * W := C1**H * DO 130 J = 1, K CALL ZCOPY( N, C( J, 1 ), LDC, WORK( 1, J ), 1 ) CALL ZLACGV( N, WORK( 1, J ), 1 ) 130 CONTINUE * * W := W * V1**H * CALL ZTRMM( 'Right', 'Upper', 'Conjugate transpose', $ 'Unit', N, K, ONE, V, LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C2**H * V2**H * CALL ZGEMM( 'Conjugate transpose', $ 'Conjugate transpose', N, K, M-K, ONE, $ C( K+1, 1 ), LDC, V( 1, K+1 ), LDV, ONE, $ WORK, LDWORK ) END IF * * W := W * T**H or W * T * CALL ZTRMM( 'Right', 'Upper', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V**H * W**H * IF( M.GT.K ) THEN * * C2 := C2 - V2**H * W**H * CALL ZGEMM( 'Conjugate transpose', $ 'Conjugate transpose', M-K, N, K, -ONE, $ V( 1, K+1 ), LDV, WORK, LDWORK, ONE, $ C( K+1, 1 ), LDC ) END IF * * W := W * V1 * CALL ZTRMM( 'Right', 'Upper', 'No transpose', 'Unit', N, $ K, ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W**H * DO 150 J = 1, K DO 140 I = 1, N C( J, I ) = C( J, I ) - DCONJG( WORK( I, J ) ) 140 CONTINUE 150 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**H where C = ( C1 C2 ) * * W := C * V**H = (C1*V1**H + C2*V2**H) (stored in WORK) * * W := C1 * DO 160 J = 1, K CALL ZCOPY( M, C( 1, J ), 1, WORK( 1, J ), 1 ) 160 CONTINUE * * W := W * V1**H * CALL ZTRMM( 'Right', 'Upper', 'Conjugate transpose', $ 'Unit', M, K, ONE, V, LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C2 * V2**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', M, $ K, N-K, ONE, C( 1, K+1 ), LDC, $ V( 1, K+1 ), LDV, ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**H * CALL ZTRMM( 'Right', 'Upper', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V * IF( N.GT.K ) THEN * * C2 := C2 - W * V2 * CALL ZGEMM( 'No transpose', 'No transpose', M, N-K, K, $ -ONE, WORK, LDWORK, V( 1, K+1 ), LDV, ONE, $ C( 1, K+1 ), LDC ) END IF * * W := W * V1 * CALL ZTRMM( 'Right', 'Upper', 'No transpose', 'Unit', M, $ K, ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W * DO 180 J = 1, K DO 170 I = 1, M C( I, J ) = C( I, J ) - WORK( I, J ) 170 CONTINUE 180 CONTINUE * END IF * ELSE * * Let V = ( V1 V2 ) (V2: last K columns) * where V2 is unit lower triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**H * C where C = ( C1 ) * ( C2 ) * * W := C**H * V**H = (C1**H * V1**H + C2**H * V2**H) (stored in WORK) * * W := C2**H * DO 190 J = 1, K CALL ZCOPY( N, C( M-K+J, 1 ), LDC, WORK( 1, J ), 1 ) CALL ZLACGV( N, WORK( 1, J ), 1 ) 190 CONTINUE * * W := W * V2**H * CALL ZTRMM( 'Right', 'Lower', 'Conjugate transpose', $ 'Unit', N, K, ONE, V( 1, M-K+1 ), LDV, WORK, $ LDWORK ) IF( M.GT.K ) THEN * * W := W + C1**H * V1**H * CALL ZGEMM( 'Conjugate transpose', $ 'Conjugate transpose', N, K, M-K, ONE, C, $ LDC, V, LDV, ONE, WORK, LDWORK ) END IF * * W := W * T**H or W * T * CALL ZTRMM( 'Right', 'Lower', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V**H * W**H * IF( M.GT.K ) THEN * * C1 := C1 - V1**H * W**H * CALL ZGEMM( 'Conjugate transpose', $ 'Conjugate transpose', M-K, N, K, -ONE, V, $ LDV, WORK, LDWORK, ONE, C, LDC ) END IF * * W := W * V2 * CALL ZTRMM( 'Right', 'Lower', 'No transpose', 'Unit', N, $ K, ONE, V( 1, M-K+1 ), LDV, WORK, LDWORK ) * * C2 := C2 - W**H * DO 210 J = 1, K DO 200 I = 1, N C( M-K+J, I ) = C( M-K+J, I ) - $ DCONJG( WORK( I, J ) ) 200 CONTINUE 210 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**H where C = ( C1 C2 ) * * W := C * V**H = (C1*V1**H + C2*V2**H) (stored in WORK) * * W := C2 * DO 220 J = 1, K CALL ZCOPY( M, C( 1, N-K+J ), 1, WORK( 1, J ), 1 ) 220 CONTINUE * * W := W * V2**H * CALL ZTRMM( 'Right', 'Lower', 'Conjugate transpose', $ 'Unit', M, K, ONE, V( 1, N-K+1 ), LDV, WORK, $ LDWORK ) IF( N.GT.K ) THEN * * W := W + C1 * V1**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', M, $ K, N-K, ONE, C, LDC, V, LDV, ONE, WORK, $ LDWORK ) END IF * * W := W * T or W * T**H * CALL ZTRMM( 'Right', 'Lower', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V * IF( N.GT.K ) THEN * * C1 := C1 - W * V1 * CALL ZGEMM( 'No transpose', 'No transpose', M, N-K, K, $ -ONE, WORK, LDWORK, V, LDV, ONE, C, LDC ) END IF * * W := W * V2 * CALL ZTRMM( 'Right', 'Lower', 'No transpose', 'Unit', M, $ K, ONE, V( 1, N-K+1 ), LDV, WORK, LDWORK ) * * C1 := C1 - W * DO 240 J = 1, K DO 230 I = 1, M C( I, N-K+J ) = C( I, N-K+J ) - WORK( I, J ) 230 CONTINUE 240 CONTINUE * END IF * END IF END IF * RETURN * * End of ZLARFB * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgehd2.f0000644000000000000000000000013213543334726015114 xustar0030 mtime=1569569238.653645762 30 atime=1569569238.652645762 30 ctime=1569569238.653645762 elk-6.3.2/src/LAPACK/zgehd2.f0000644002504400250440000001467313543334726017176 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEHD2 reduces a general square matrix to upper Hessenberg form using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEHD2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, ILO, INFO, LDA, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEHD2 reduces a complex general matrix A to upper Hessenberg form H *> by a unitary similarity transformation: Q**H * A * Q = H . *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> *> It is assumed that A is already upper triangular in rows *> and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally *> set by a previous call to ZGEBAL; otherwise they should be *> set to 1 and N respectively. See Further Details. *> 1 <= ILO <= IHI <= max(1,N). *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the n by n general matrix to be reduced. *> On exit, the upper triangle and the first subdiagonal of A *> are overwritten with the upper Hessenberg matrix H, and the *> elements below the first subdiagonal, with the array TAU, *> represent the unitary matrix Q as a product of elementary *> reflectors. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of (ihi-ilo) elementary *> reflectors *> *> Q = H(ilo) H(ilo+1) . . . H(ihi-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i) = 0, v(i+1) = 1 and v(ihi+1:n) = 0; v(i+2:ihi) is stored on *> exit in A(i+2:ihi,i), and tau in TAU(i). *> *> The contents of A are illustrated by the following example, with *> n = 7, ilo = 2 and ihi = 6: *> *> on entry, on exit, *> *> ( a a a a a a a ) ( a a h h h h a ) *> ( a a a a a a ) ( a h h h h a ) *> ( a a a a a a ) ( h h h h h h ) *> ( a a a a a a ) ( v2 h h h h h ) *> ( a a a a a a ) ( v2 v3 h h h h ) *> ( a a a a a a ) ( v2 v3 v4 h h h ) *> ( a ) ( a ) *> *> where a denotes an element of the original matrix A, h denotes a *> modified element of the upper Hessenberg matrix H, and vi denotes an *> element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEHD2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, ILO, INFO, LDA, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( N.LT.0 ) THEN INFO = -1 ELSE IF( ILO.LT.1 .OR. ILO.GT.MAX( 1, N ) ) THEN INFO = -2 ELSE IF( IHI.LT.MIN( ILO, N ) .OR. IHI.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEHD2', -INFO ) RETURN END IF * DO 10 I = ILO, IHI - 1 * * Compute elementary reflector H(i) to annihilate A(i+2:ihi,i) * ALPHA = A( I+1, I ) CALL ZLARFG( IHI-I, ALPHA, A( MIN( I+2, N ), I ), 1, TAU( I ) ) A( I+1, I ) = ONE * * Apply H(i) to A(1:ihi,i+1:ihi) from the right * CALL ZLARF( 'Right', IHI, IHI-I, A( I+1, I ), 1, TAU( I ), $ A( 1, I+1 ), LDA, WORK ) * * Apply H(i)**H to A(i+1:ihi,i+1:n) from the left * CALL ZLARF( 'Left', IHI-I, N-I, A( I+1, I ), 1, $ DCONJG( TAU( I ) ), A( I+1, I+1 ), LDA, WORK ) * A( I+1, I ) = ALPHA 10 CONTINUE * RETURN * * End of ZGEHD2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhegs2.f0000644000000000000000000000013113543334726015132 xustar0030 mtime=1569569238.657645759 29 atime=1569569238.65664576 30 ctime=1569569238.657645759 elk-6.3.2/src/LAPACK/zhegs2.f0000644002504400250440000002241413543334726017205 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHEGS2 reduces a Hermitian definite generalized eigenproblem to standard form, using the factorization results obtained from cpotrf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHEGS2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHEGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHEGS2 reduces a complex Hermitian-definite generalized *> eigenproblem to standard form. *> *> If ITYPE = 1, the problem is A*x = lambda*B*x, *> and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H) *> *> If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or *> B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H *A*L. *> *> B must have been previously factorized as U**H *U or L*L**H by ZPOTRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] ITYPE *> \verbatim *> ITYPE is INTEGER *> = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); *> = 2 or 3: compute U*A*U**H or L**H *A*L. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> Hermitian matrix A is stored, and how B has been factorized. *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrices A and B. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the leading *> n by n upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n by n lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the transformed matrix, stored in the *> same format as A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,N) *> The triangular factor from the Cholesky factorization of B, *> as returned by ZPOTRF. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEcomputational * * ===================================================================== SUBROUTINE ZHEGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, ITYPE, LDA, LDB, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, HALF PARAMETER ( ONE = 1.0D+0, HALF = 0.5D+0 ) COMPLEX*16 CONE PARAMETER ( CONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER K DOUBLE PRECISION AKK, BKK COMPLEX*16 CT * .. * .. External Subroutines .. EXTERNAL XERBLA, ZAXPY, ZDSCAL, ZHER2, ZLACGV, ZTRMV, $ ZTRSV * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( ITYPE.LT.1 .OR. ITYPE.GT.3 ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHEGS2', -INFO ) RETURN END IF * IF( ITYPE.EQ.1 ) THEN IF( UPPER ) THEN * * Compute inv(U**H)*A*inv(U) * DO 10 K = 1, N * * Update the upper triangle of A(k:n,k:n) * AKK = A( K, K ) BKK = B( K, K ) AKK = AKK / BKK**2 A( K, K ) = AKK IF( K.LT.N ) THEN CALL ZDSCAL( N-K, ONE / BKK, A( K, K+1 ), LDA ) CT = -HALF*AKK CALL ZLACGV( N-K, A( K, K+1 ), LDA ) CALL ZLACGV( N-K, B( K, K+1 ), LDB ) CALL ZAXPY( N-K, CT, B( K, K+1 ), LDB, A( K, K+1 ), $ LDA ) CALL ZHER2( UPLO, N-K, -CONE, A( K, K+1 ), LDA, $ B( K, K+1 ), LDB, A( K+1, K+1 ), LDA ) CALL ZAXPY( N-K, CT, B( K, K+1 ), LDB, A( K, K+1 ), $ LDA ) CALL ZLACGV( N-K, B( K, K+1 ), LDB ) CALL ZTRSV( UPLO, 'Conjugate transpose', 'Non-unit', $ N-K, B( K+1, K+1 ), LDB, A( K, K+1 ), $ LDA ) CALL ZLACGV( N-K, A( K, K+1 ), LDA ) END IF 10 CONTINUE ELSE * * Compute inv(L)*A*inv(L**H) * DO 20 K = 1, N * * Update the lower triangle of A(k:n,k:n) * AKK = A( K, K ) BKK = B( K, K ) AKK = AKK / BKK**2 A( K, K ) = AKK IF( K.LT.N ) THEN CALL ZDSCAL( N-K, ONE / BKK, A( K+1, K ), 1 ) CT = -HALF*AKK CALL ZAXPY( N-K, CT, B( K+1, K ), 1, A( K+1, K ), 1 ) CALL ZHER2( UPLO, N-K, -CONE, A( K+1, K ), 1, $ B( K+1, K ), 1, A( K+1, K+1 ), LDA ) CALL ZAXPY( N-K, CT, B( K+1, K ), 1, A( K+1, K ), 1 ) CALL ZTRSV( UPLO, 'No transpose', 'Non-unit', N-K, $ B( K+1, K+1 ), LDB, A( K+1, K ), 1 ) END IF 20 CONTINUE END IF ELSE IF( UPPER ) THEN * * Compute U*A*U**H * DO 30 K = 1, N * * Update the upper triangle of A(1:k,1:k) * AKK = A( K, K ) BKK = B( K, K ) CALL ZTRMV( UPLO, 'No transpose', 'Non-unit', K-1, B, $ LDB, A( 1, K ), 1 ) CT = HALF*AKK CALL ZAXPY( K-1, CT, B( 1, K ), 1, A( 1, K ), 1 ) CALL ZHER2( UPLO, K-1, CONE, A( 1, K ), 1, B( 1, K ), 1, $ A, LDA ) CALL ZAXPY( K-1, CT, B( 1, K ), 1, A( 1, K ), 1 ) CALL ZDSCAL( K-1, BKK, A( 1, K ), 1 ) A( K, K ) = AKK*BKK**2 30 CONTINUE ELSE * * Compute L**H *A*L * DO 40 K = 1, N * * Update the lower triangle of A(1:k,1:k) * AKK = A( K, K ) BKK = B( K, K ) CALL ZLACGV( K-1, A( K, 1 ), LDA ) CALL ZTRMV( UPLO, 'Conjugate transpose', 'Non-unit', K-1, $ B, LDB, A( K, 1 ), LDA ) CT = HALF*AKK CALL ZLACGV( K-1, B( K, 1 ), LDB ) CALL ZAXPY( K-1, CT, B( K, 1 ), LDB, A( K, 1 ), LDA ) CALL ZHER2( UPLO, K-1, CONE, A( K, 1 ), LDA, B( K, 1 ), $ LDB, A, LDA ) CALL ZAXPY( K-1, CT, B( K, 1 ), LDB, A( K, 1 ), LDA ) CALL ZLACGV( K-1, B( K, 1 ), LDB ) CALL ZDSCAL( K-1, BKK, A( K, 1 ), LDA ) CALL ZLACGV( K-1, A( K, 1 ), LDA ) A( K, K ) = AKK*BKK**2 40 CONTINUE END IF END IF RETURN * * End of ZHEGS2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlatrd.f0000644000000000000000000000013213543334726015231 xustar0030 mtime=1569569238.662645756 30 atime=1569569238.661645757 30 ctime=1569569238.662645756 elk-6.3.2/src/LAPACK/zlatrd.f0000644002504400250440000003040413543334726017301 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal form by an unitary similarity transformation. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLATRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER LDA, LDW, N, NB * .. * .. Array Arguments .. * DOUBLE PRECISION E( * ) * COMPLEX*16 A( LDA, * ), TAU( * ), W( LDW, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLATRD reduces NB rows and columns of a complex Hermitian matrix A to *> Hermitian tridiagonal form by a unitary similarity *> transformation Q**H * A * Q, and returns the matrices V and W which are *> needed to apply the transformation to the unreduced part of A. *> *> If UPLO = 'U', ZLATRD reduces the last NB rows and columns of a *> matrix, of which the upper triangle is supplied; *> if UPLO = 'L', ZLATRD reduces the first NB rows and columns of a *> matrix, of which the lower triangle is supplied. *> *> This is an auxiliary routine called by ZHETRD. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> Hermitian matrix A is stored: *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. *> \endverbatim *> *> \param[in] NB *> \verbatim *> NB is INTEGER *> The number of rows and columns to be reduced. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the leading *> n-by-n upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n-by-n lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> On exit: *> if UPLO = 'U', the last NB columns have been reduced to *> tridiagonal form, with the diagonal elements overwriting *> the diagonal elements of A; the elements above the diagonal *> with the array TAU, represent the unitary matrix Q as a *> product of elementary reflectors; *> if UPLO = 'L', the first NB columns have been reduced to *> tridiagonal form, with the diagonal elements overwriting *> the diagonal elements of A; the elements below the diagonal *> with the array TAU, represent the unitary matrix Q as a *> product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal *> elements of the last NB columns of the reduced matrix; *> if UPLO = 'L', E(1:nb) contains the subdiagonal elements of *> the first NB columns of the reduced matrix. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> The scalar factors of the elementary reflectors, stored in *> TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'. *> See Further Details. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (LDW,NB) *> The n-by-nb matrix W required to update the unreduced part *> of A. *> \endverbatim *> *> \param[in] LDW *> \verbatim *> LDW is INTEGER *> The leading dimension of the array W. LDW >= max(1,N). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n) H(n-1) . . . H(n-nb+1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), *> and tau in TAU(i-1). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(nb). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), *> and tau in TAU(i). *> *> The elements of the vectors v together form the n-by-nb matrix V *> which is needed, with W, to apply the transformation to the unreduced *> part of the matrix, using a Hermitian rank-2k update of the form: *> A := A - V*W**H - W*V**H. *> *> The contents of A on exit are illustrated by the following examples *> with n = 5 and nb = 2: *> *> if UPLO = 'U': if UPLO = 'L': *> *> ( a a a v4 v5 ) ( d ) *> ( a a v4 v5 ) ( 1 d ) *> ( a 1 v5 ) ( v1 1 a ) *> ( d 1 ) ( v1 v2 a a ) *> ( d ) ( v1 v2 a a a ) *> *> where d denotes a diagonal element of the reduced matrix, a denotes *> an element of the original matrix that is unchanged, and vi denotes *> an element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER LDA, LDW, N, NB * .. * .. Array Arguments .. DOUBLE PRECISION E( * ) COMPLEX*16 A( LDA, * ), TAU( * ), W( LDW, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE, HALF PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ), $ HALF = ( 0.5D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, IW COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL ZAXPY, ZGEMV, ZHEMV, ZLACGV, ZLARFG, ZSCAL * .. * .. External Functions .. LOGICAL LSAME COMPLEX*16 ZDOTC EXTERNAL LSAME, ZDOTC * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MIN * .. * .. Executable Statements .. * * Quick return if possible * IF( N.LE.0 ) $ RETURN * IF( LSAME( UPLO, 'U' ) ) THEN * * Reduce last NB columns of upper triangle * DO 10 I = N, N - NB + 1, -1 IW = I - N + NB IF( I.LT.N ) THEN * * Update A(1:i,i) * A( I, I ) = DBLE( A( I, I ) ) CALL ZLACGV( N-I, W( I, IW+1 ), LDW ) CALL ZGEMV( 'No transpose', I, N-I, -ONE, A( 1, I+1 ), $ LDA, W( I, IW+1 ), LDW, ONE, A( 1, I ), 1 ) CALL ZLACGV( N-I, W( I, IW+1 ), LDW ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) CALL ZGEMV( 'No transpose', I, N-I, -ONE, W( 1, IW+1 ), $ LDW, A( I, I+1 ), LDA, ONE, A( 1, I ), 1 ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) A( I, I ) = DBLE( A( I, I ) ) END IF IF( I.GT.1 ) THEN * * Generate elementary reflector H(i) to annihilate * A(1:i-2,i) * ALPHA = A( I-1, I ) CALL ZLARFG( I-1, ALPHA, A( 1, I ), 1, TAU( I-1 ) ) E( I-1 ) = ALPHA A( I-1, I ) = ONE * * Compute W(1:i-1,i) * CALL ZHEMV( 'Upper', I-1, ONE, A, LDA, A( 1, I ), 1, $ ZERO, W( 1, IW ), 1 ) IF( I.LT.N ) THEN CALL ZGEMV( 'Conjugate transpose', I-1, N-I, ONE, $ W( 1, IW+1 ), LDW, A( 1, I ), 1, ZERO, $ W( I+1, IW ), 1 ) CALL ZGEMV( 'No transpose', I-1, N-I, -ONE, $ A( 1, I+1 ), LDA, W( I+1, IW ), 1, ONE, $ W( 1, IW ), 1 ) CALL ZGEMV( 'Conjugate transpose', I-1, N-I, ONE, $ A( 1, I+1 ), LDA, A( 1, I ), 1, ZERO, $ W( I+1, IW ), 1 ) CALL ZGEMV( 'No transpose', I-1, N-I, -ONE, $ W( 1, IW+1 ), LDW, W( I+1, IW ), 1, ONE, $ W( 1, IW ), 1 ) END IF CALL ZSCAL( I-1, TAU( I-1 ), W( 1, IW ), 1 ) ALPHA = -HALF*TAU( I-1 )*ZDOTC( I-1, W( 1, IW ), 1, $ A( 1, I ), 1 ) CALL ZAXPY( I-1, ALPHA, A( 1, I ), 1, W( 1, IW ), 1 ) END IF * 10 CONTINUE ELSE * * Reduce first NB columns of lower triangle * DO 20 I = 1, NB * * Update A(i:n,i) * A( I, I ) = DBLE( A( I, I ) ) CALL ZLACGV( I-1, W( I, 1 ), LDW ) CALL ZGEMV( 'No transpose', N-I+1, I-1, -ONE, A( I, 1 ), $ LDA, W( I, 1 ), LDW, ONE, A( I, I ), 1 ) CALL ZLACGV( I-1, W( I, 1 ), LDW ) CALL ZLACGV( I-1, A( I, 1 ), LDA ) CALL ZGEMV( 'No transpose', N-I+1, I-1, -ONE, W( I, 1 ), $ LDW, A( I, 1 ), LDA, ONE, A( I, I ), 1 ) CALL ZLACGV( I-1, A( I, 1 ), LDA ) A( I, I ) = DBLE( A( I, I ) ) IF( I.LT.N ) THEN * * Generate elementary reflector H(i) to annihilate * A(i+2:n,i) * ALPHA = A( I+1, I ) CALL ZLARFG( N-I, ALPHA, A( MIN( I+2, N ), I ), 1, $ TAU( I ) ) E( I ) = ALPHA A( I+1, I ) = ONE * * Compute W(i+1:n,i) * CALL ZHEMV( 'Lower', N-I, ONE, A( I+1, I+1 ), LDA, $ A( I+1, I ), 1, ZERO, W( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', N-I, I-1, ONE, $ W( I+1, 1 ), LDW, A( I+1, I ), 1, ZERO, $ W( 1, I ), 1 ) CALL ZGEMV( 'No transpose', N-I, I-1, -ONE, A( I+1, 1 ), $ LDA, W( 1, I ), 1, ONE, W( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', N-I, I-1, ONE, $ A( I+1, 1 ), LDA, A( I+1, I ), 1, ZERO, $ W( 1, I ), 1 ) CALL ZGEMV( 'No transpose', N-I, I-1, -ONE, W( I+1, 1 ), $ LDW, W( 1, I ), 1, ONE, W( I+1, I ), 1 ) CALL ZSCAL( N-I, TAU( I ), W( I+1, I ), 1 ) ALPHA = -HALF*TAU( I )*ZDOTC( N-I, W( I+1, I ), 1, $ A( I+1, I ), 1 ) CALL ZAXPY( N-I, ALPHA, A( I+1, I ), 1, W( I+1, I ), 1 ) END IF * 20 CONTINUE END IF * RETURN * * End of ZLATRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zhetd2.f0000644000000000000000000000013213543334726015131 xustar0030 mtime=1569569238.667645753 30 atime=1569569238.666645753 30 ctime=1569569238.667645753 elk-6.3.2/src/LAPACK/zhetd2.f0000644002504400250440000002371113543334726017204 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZHETD2 reduces a Hermitian matrix to real symmetric tridiagonal form by an unitary similarity transformation (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZHETD2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHETD2( UPLO, N, A, LDA, D, E, TAU, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * COMPLEX*16 A( LDA, * ), TAU( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZHETD2 reduces a complex Hermitian matrix A to real symmetric *> tridiagonal form T by a unitary similarity transformation: *> Q**H * A * Q = T. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> Hermitian matrix A is stored: *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the Hermitian matrix A. If UPLO = 'U', the leading *> n-by-n upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n-by-n lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> On exit, if UPLO = 'U', the diagonal and first superdiagonal *> of A are overwritten by the corresponding elements of the *> tridiagonal matrix T, and the elements above the first *> superdiagonal, with the array TAU, represent the unitary *> matrix Q as a product of elementary reflectors; if UPLO *> = 'L', the diagonal and first subdiagonal of A are over- *> written by the corresponding elements of the tridiagonal *> matrix T, and the elements below the first subdiagonal, with *> the array TAU, represent the unitary matrix Q as a product *> of elementary reflectors. See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix T: *> E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16HEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n-1) . . . H(2) H(1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in *> A(1:i-1,i+1), and tau in TAU(i). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(n-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), *> and tau in TAU(i). *> *> The contents of A on exit are illustrated by the following examples *> with n = 5: *> *> if UPLO = 'U': if UPLO = 'L': *> *> ( d e v2 v3 v4 ) ( d ) *> ( d e v3 v4 ) ( e d ) *> ( d e v4 ) ( v1 e d ) *> ( d e ) ( v1 v2 e d ) *> ( d ) ( v1 v2 v3 e d ) *> *> where d and e denote diagonal and off-diagonal elements of T, and vi *> denotes an element of the vector defining H(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZHETD2( UPLO, N, A, LDA, D, E, TAU, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) COMPLEX*16 A( LDA, * ), TAU( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO, HALF PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ), $ HALF = ( 0.5D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER I COMPLEX*16 ALPHA, TAUI * .. * .. External Subroutines .. EXTERNAL XERBLA, ZAXPY, ZHEMV, ZHER2, ZLARFG * .. * .. External Functions .. LOGICAL LSAME COMPLEX*16 ZDOTC EXTERNAL LSAME, ZDOTC * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U') IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZHETD2', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * IF( UPPER ) THEN * * Reduce the upper triangle of A * A( N, N ) = DBLE( A( N, N ) ) DO 10 I = N - 1, 1, -1 * * Generate elementary reflector H(i) = I - tau * v * v**H * to annihilate A(1:i-1,i+1) * ALPHA = A( I, I+1 ) CALL ZLARFG( I, ALPHA, A( 1, I+1 ), 1, TAUI ) E( I ) = ALPHA * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(1:i,1:i) * A( I, I+1 ) = ONE * * Compute x := tau * A * v storing x in TAU(1:i) * CALL ZHEMV( UPLO, I, TAUI, A, LDA, A( 1, I+1 ), 1, ZERO, $ TAU, 1 ) * * Compute w := x - 1/2 * tau * (x**H * v) * v * ALPHA = -HALF*TAUI*ZDOTC( I, TAU, 1, A( 1, I+1 ), 1 ) CALL ZAXPY( I, ALPHA, A( 1, I+1 ), 1, TAU, 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**H - w * v**H * CALL ZHER2( UPLO, I, -ONE, A( 1, I+1 ), 1, TAU, 1, A, $ LDA ) * ELSE A( I, I ) = DBLE( A( I, I ) ) END IF A( I, I+1 ) = E( I ) D( I+1 ) = A( I+1, I+1 ) TAU( I ) = TAUI 10 CONTINUE D( 1 ) = A( 1, 1 ) ELSE * * Reduce the lower triangle of A * A( 1, 1 ) = DBLE( A( 1, 1 ) ) DO 20 I = 1, N - 1 * * Generate elementary reflector H(i) = I - tau * v * v**H * to annihilate A(i+2:n,i) * ALPHA = A( I+1, I ) CALL ZLARFG( N-I, ALPHA, A( MIN( I+2, N ), I ), 1, TAUI ) E( I ) = ALPHA * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(i+1:n,i+1:n) * A( I+1, I ) = ONE * * Compute x := tau * A * v storing y in TAU(i:n-1) * CALL ZHEMV( UPLO, N-I, TAUI, A( I+1, I+1 ), LDA, $ A( I+1, I ), 1, ZERO, TAU( I ), 1 ) * * Compute w := x - 1/2 * tau * (x**H * v) * v * ALPHA = -HALF*TAUI*ZDOTC( N-I, TAU( I ), 1, A( I+1, I ), $ 1 ) CALL ZAXPY( N-I, ALPHA, A( I+1, I ), 1, TAU( I ), 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**H - w * v**H * CALL ZHER2( UPLO, N-I, -ONE, A( I+1, I ), 1, TAU( I ), 1, $ A( I+1, I+1 ), LDA ) * ELSE A( I+1, I+1 ) = DBLE( A( I+1, I+1 ) ) END IF A( I+1, I ) = E( I ) D( I ) = A( I, I ) TAU( I ) = TAUI 20 CONTINUE D( N ) = A( N, N ) END IF * RETURN * * End of ZHETD2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlarfg.f0000644000000000000000000000013013543334726015214 xustar0029 mtime=1569569238.67164575 30 atime=1569569238.670645751 29 ctime=1569569238.67164575 elk-6.3.2/src/LAPACK/zlarfg.f0000644002504400250440000001245513543334726017274 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLARFG generates an elementary reflector (Householder matrix). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLARFG + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLARFG( N, ALPHA, X, INCX, TAU ) * * .. Scalar Arguments .. * INTEGER INCX, N * COMPLEX*16 ALPHA, TAU * .. * .. Array Arguments .. * COMPLEX*16 X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLARFG generates a complex elementary reflector H of order n, such *> that *> *> H**H * ( alpha ) = ( beta ), H**H * H = I. *> ( x ) ( 0 ) *> *> where alpha and beta are scalars, with beta real, and x is an *> (n-1)-element complex vector. H is represented in the form *> *> H = I - tau * ( 1 ) * ( 1 v**H ) , *> ( v ) *> *> where tau is a complex scalar and v is a complex (n-1)-element *> vector. Note that H is not hermitian. *> *> If the elements of x are all zero and alpha is real, then tau = 0 *> and H is taken to be the unit matrix. *> *> Otherwise 1 <= real(tau) <= 2 and abs(tau-1) <= 1 . *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the elementary reflector. *> \endverbatim *> *> \param[in,out] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> On entry, the value alpha. *> On exit, it is overwritten with the value beta. *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension *> (1+(N-2)*abs(INCX)) *> On entry, the vector x. *> On exit, it is overwritten with the vector v. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between elements of X. INCX > 0. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 *> The value tau. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLARFG( N, ALPHA, X, INCX, TAU ) * * -- LAPACK auxiliary routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX, N COMPLEX*16 ALPHA, TAU * .. * .. Array Arguments .. COMPLEX*16 X( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER J, KNT DOUBLE PRECISION ALPHI, ALPHR, BETA, RSAFMN, SAFMIN, XNORM * .. * .. External Functions .. DOUBLE PRECISION DLAMCH, DLAPY3, DZNRM2 COMPLEX*16 ZLADIV EXTERNAL DLAMCH, DLAPY3, DZNRM2, ZLADIV * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DIMAG, SIGN * .. * .. External Subroutines .. EXTERNAL ZDSCAL, ZSCAL * .. * .. Executable Statements .. * IF( N.LE.0 ) THEN TAU = ZERO RETURN END IF * XNORM = DZNRM2( N-1, X, INCX ) ALPHR = DBLE( ALPHA ) ALPHI = DIMAG( ALPHA ) * IF( XNORM.EQ.ZERO .AND. ALPHI.EQ.ZERO ) THEN * * H = I * TAU = ZERO ELSE * * general case * BETA = -SIGN( DLAPY3( ALPHR, ALPHI, XNORM ), ALPHR ) SAFMIN = DLAMCH( 'S' ) / DLAMCH( 'E' ) RSAFMN = ONE / SAFMIN * KNT = 0 IF( ABS( BETA ).LT.SAFMIN ) THEN * * XNORM, BETA may be inaccurate; scale X and recompute them * 10 CONTINUE KNT = KNT + 1 CALL ZDSCAL( N-1, RSAFMN, X, INCX ) BETA = BETA*RSAFMN ALPHI = ALPHI*RSAFMN ALPHR = ALPHR*RSAFMN IF( (ABS( BETA ).LT.SAFMIN) .AND. (KNT .LT. 20) ) $ GO TO 10 * * New BETA is at most 1, at least SAFMIN * XNORM = DZNRM2( N-1, X, INCX ) ALPHA = DCMPLX( ALPHR, ALPHI ) BETA = -SIGN( DLAPY3( ALPHR, ALPHI, XNORM ), ALPHR ) END IF TAU = DCMPLX( ( BETA-ALPHR ) / BETA, -ALPHI / BETA ) ALPHA = ZLADIV( DCMPLX( ONE ), ALPHA-BETA ) CALL ZSCAL( N-1, ALPHA, X, INCX ) * * If ALPHA is subnormal, it may lose relative accuracy * DO 20 J = 1, KNT BETA = BETA*SAFMIN 20 CONTINUE ALPHA = BETA END IF * RETURN * * End of ZLARFG * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaqr0.f0000644000000000000000000000013213543334726015142 xustar0030 mtime=1569569238.677645746 30 atime=1569569238.674645748 30 ctime=1569569238.677645746 elk-6.3.2/src/LAPACK/zlaqr0.f0000644002504400250440000006077013543334726017223 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAQR0 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAQR0 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, * IHIZ, Z, LDZ, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, LWORK, N * LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAQR0 computes the eigenvalues of a Hessenberg matrix H *> and, optionally, the matrices T and Z from the Schur decomposition *> H = Z T Z**H, where T is an upper triangular matrix (the *> Schur form), and Z is the unitary matrix of Schur vectors. *> *> Optionally Z may be postmultiplied into an input unitary *> matrix Q so that this routine can give the Schur factorization *> of a matrix A which has been reduced to the Hessenberg form H *> by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H. *> \endverbatim * * Arguments: * ========== * *> \param[in] WANTT *> \verbatim *> WANTT is LOGICAL *> = .TRUE. : the full Schur form T is required; *> = .FALSE.: only eigenvalues are required. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim *> WANTZ is LOGICAL *> = .TRUE. : the matrix of Schur vectors Z is required; *> = .FALSE.: Schur vectors are not required. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix H. N .GE. 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> *> It is assumed that H is already upper triangular in rows *> and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1, *> H(ILO,ILO-1) is zero. ILO and IHI are normally set by a *> previous call to ZGEBAL, and then passed to ZGEHRD when the *> matrix output by ZGEBAL is reduced to Hessenberg form. *> Otherwise, ILO and IHI should be set to 1 and N, *> respectively. If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N. *> If N = 0, then ILO = 1 and IHI = 0. *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On entry, the upper Hessenberg matrix H. *> On exit, if INFO = 0 and WANTT is .TRUE., then H *> contains the upper triangular matrix T from the Schur *> decomposition (the Schur form). If INFO = 0 and WANT is *> .FALSE., then the contents of H are unspecified on exit. *> (The output value of H when INFO.GT.0 is given under the *> description of INFO below.) *> *> This subroutine may explicitly set H(i,j) = 0 for i.GT.j and *> j = 1, 2, ... ILO-1 or j = IHI+1, IHI+2, ... N. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> The leading dimension of the array H. LDH .GE. max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> The computed eigenvalues of H(ILO:IHI,ILO:IHI) are stored *> in W(ILO:IHI). If WANTT is .TRUE., then the eigenvalues are *> stored in the same order as on the diagonal of the Schur *> form returned in H, with W(i) = H(i,i). *> \endverbatim *> *> \param[in] ILOZ *> \verbatim *> ILOZ is INTEGER *> \endverbatim *> *> \param[in] IHIZ *> \verbatim *> IHIZ is INTEGER *> Specify the rows of Z to which transformations must be *> applied if WANTZ is .TRUE.. *> 1 .LE. ILOZ .LE. ILO; IHI .LE. IHIZ .LE. N. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,IHI) *> If WANTZ is .FALSE., then Z is not referenced. *> If WANTZ is .TRUE., then Z(ILO:IHI,ILOZ:IHIZ) is *> replaced by Z(ILO:IHI,ILOZ:IHIZ)*U where U is the *> orthogonal Schur factor of H(ILO:IHI,ILO:IHI). *> (The output value of Z when INFO.GT.0 is given under *> the description of INFO below.) *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. if WANTZ is .TRUE. *> then LDZ.GE.MAX(1,IHIZ). Otherwize, LDZ.GE.1. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension LWORK *> On exit, if LWORK = -1, WORK(1) returns an estimate of *> the optimal value for LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK .GE. max(1,N) *> is sufficient, but LWORK typically as large as 6*N may *> be required for optimal performance. A workspace query *> to determine the optimal workspace size is recommended. *> *> If LWORK = -1, then ZLAQR0 does a workspace query. *> In this case, ZLAQR0 checks the input parameters and *> estimates the optimal workspace size for the given *> values of N, ILO and IHI. The estimate is returned *> in WORK(1). No error message related to LWORK is *> issued by XERBLA. Neither H nor Z are accessed. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> .GT. 0: if INFO = i, ZLAQR0 failed to compute all of *> the eigenvalues. Elements 1:ilo-1 and i+1:n of WR *> and WI contain those eigenvalues which have been *> successfully computed. (Failures are rare.) *> *> If INFO .GT. 0 and WANT is .FALSE., then on exit, *> the remaining unconverged eigenvalues are the eigen- *> values of the upper Hessenberg matrix rows and *> columns ILO through INFO of the final, output *> value of H. *> *> If INFO .GT. 0 and WANTT is .TRUE., then on exit *> *> (*) (initial value of H)*U = U*(final value of H) *> *> where U is a unitary matrix. The final *> value of H is upper Hessenberg and triangular in *> rows and columns INFO+1 through IHI. *> *> If INFO .GT. 0 and WANTZ is .TRUE., then on exit *> *> (final value of Z(ILO:IHI,ILOZ:IHIZ) *> = (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U *> *> where U is the unitary matrix in (*) (regard- *> less of the value of WANTT.) *> *> If INFO .GT. 0 and WANTZ is .FALSE., then Z is not *> accessed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA * *> \par References: * ================ *> *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part I: Maintaining Well Focused Shifts, and Level 3 *> Performance, SIAM Journal of Matrix Analysis, volume 23, pages *> 929--947, 2002. *> \n *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part II: Aggressive Early Deflation, SIAM Journal *> of Matrix Analysis, volume 23, pages 948--973, 2002. *> * ===================================================================== SUBROUTINE ZLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, $ IHIZ, Z, LDZ, WORK, LWORK, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, LWORK, N LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ================================================================ * * .. Parameters .. * * ==== Matrices of order NTINY or smaller must be processed by * . ZLAHQR because of insufficient subdiagonal scratch space. * . (This is a hard limit.) ==== INTEGER NTINY PARAMETER ( NTINY = 11 ) * * ==== Exceptional deflation windows: try to cure rare * . slow convergence by varying the size of the * . deflation window after KEXNW iterations. ==== INTEGER KEXNW PARAMETER ( KEXNW = 5 ) * * ==== Exceptional shifts: try to cure rare slow convergence * . with ad-hoc exceptional shifts every KEXSH iterations. * . ==== INTEGER KEXSH PARAMETER ( KEXSH = 6 ) * * ==== The constant WILK1 is used to form the exceptional * . shifts. ==== DOUBLE PRECISION WILK1 PARAMETER ( WILK1 = 0.75d0 ) COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 AA, BB, CC, CDUM, DD, DET, RTDISC, SWAP, TR2 DOUBLE PRECISION S INTEGER I, INF, IT, ITMAX, K, KACC22, KBOT, KDU, KS, $ KT, KTOP, KU, KV, KWH, KWTOP, KWV, LD, LS, $ LWKOPT, NDEC, NDFL, NH, NHO, NIBBLE, NMIN, NS, $ NSMAX, NSR, NVE, NW, NWMAX, NWR, NWUPBD LOGICAL SORTED CHARACTER JBCMPZ*2 * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Local Arrays .. COMPLEX*16 ZDUM( 1, 1 ) * .. * .. External Subroutines .. EXTERNAL ZLACPY, ZLAHQR, ZLAQR3, ZLAQR4, ZLAQR5 * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DIMAG, INT, MAX, MIN, MOD, $ SQRT * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. INFO = 0 * * ==== Quick return for N = 0: nothing to do. ==== * IF( N.EQ.0 ) THEN WORK( 1 ) = ONE RETURN END IF * IF( N.LE.NTINY ) THEN * * ==== Tiny matrices must use ZLAHQR. ==== * LWKOPT = 1 IF( LWORK.NE.-1 ) $ CALL ZLAHQR( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, $ IHIZ, Z, LDZ, INFO ) ELSE * * ==== Use small bulge multi-shift QR with aggressive early * . deflation on larger-than-tiny matrices. ==== * * ==== Hope for the best. ==== * INFO = 0 * * ==== Set up job flags for ILAENV. ==== * IF( WANTT ) THEN JBCMPZ( 1: 1 ) = 'S' ELSE JBCMPZ( 1: 1 ) = 'E' END IF IF( WANTZ ) THEN JBCMPZ( 2: 2 ) = 'V' ELSE JBCMPZ( 2: 2 ) = 'N' END IF * * ==== NWR = recommended deflation window size. At this * . point, N .GT. NTINY = 11, so there is enough * . subdiagonal workspace for NWR.GE.2 as required. * . (In fact, there is enough subdiagonal space for * . NWR.GE.3.) ==== * NWR = ILAENV( 13, 'ZLAQR0', JBCMPZ, N, ILO, IHI, LWORK ) NWR = MAX( 2, NWR ) NWR = MIN( IHI-ILO+1, ( N-1 ) / 3, NWR ) * * ==== NSR = recommended number of simultaneous shifts. * . At this point N .GT. NTINY = 11, so there is at * . enough subdiagonal workspace for NSR to be even * . and greater than or equal to two as required. ==== * NSR = ILAENV( 15, 'ZLAQR0', JBCMPZ, N, ILO, IHI, LWORK ) NSR = MIN( NSR, ( N+6 ) / 9, IHI-ILO ) NSR = MAX( 2, NSR-MOD( NSR, 2 ) ) * * ==== Estimate optimal workspace ==== * * ==== Workspace query call to ZLAQR3 ==== * CALL ZLAQR3( WANTT, WANTZ, N, ILO, IHI, NWR+1, H, LDH, ILOZ, $ IHIZ, Z, LDZ, LS, LD, W, H, LDH, N, H, LDH, N, H, $ LDH, WORK, -1 ) * * ==== Optimal workspace = MAX(ZLAQR5, ZLAQR3) ==== * LWKOPT = MAX( 3*NSR / 2, INT( WORK( 1 ) ) ) * * ==== Quick return in case of workspace query. ==== * IF( LWORK.EQ.-1 ) THEN WORK( 1 ) = DCMPLX( LWKOPT, 0 ) RETURN END IF * * ==== ZLAHQR/ZLAQR0 crossover point ==== * NMIN = ILAENV( 12, 'ZLAQR0', JBCMPZ, N, ILO, IHI, LWORK ) NMIN = MAX( NTINY, NMIN ) * * ==== Nibble crossover point ==== * NIBBLE = ILAENV( 14, 'ZLAQR0', JBCMPZ, N, ILO, IHI, LWORK ) NIBBLE = MAX( 0, NIBBLE ) * * ==== Accumulate reflections during ttswp? Use block * . 2-by-2 structure during matrix-matrix multiply? ==== * KACC22 = ILAENV( 16, 'ZLAQR0', JBCMPZ, N, ILO, IHI, LWORK ) KACC22 = MAX( 0, KACC22 ) KACC22 = MIN( 2, KACC22 ) * * ==== NWMAX = the largest possible deflation window for * . which there is sufficient workspace. ==== * NWMAX = MIN( ( N-1 ) / 3, LWORK / 2 ) NW = NWMAX * * ==== NSMAX = the Largest number of simultaneous shifts * . for which there is sufficient workspace. ==== * NSMAX = MIN( ( N+6 ) / 9, 2*LWORK / 3 ) NSMAX = NSMAX - MOD( NSMAX, 2 ) * * ==== NDFL: an iteration count restarted at deflation. ==== * NDFL = 1 * * ==== ITMAX = iteration limit ==== * ITMAX = MAX( 30, 2*KEXSH )*MAX( 10, ( IHI-ILO+1 ) ) * * ==== Last row and column in the active block ==== * KBOT = IHI * * ==== Main Loop ==== * DO 70 IT = 1, ITMAX * * ==== Done when KBOT falls below ILO ==== * IF( KBOT.LT.ILO ) $ GO TO 80 * * ==== Locate active block ==== * DO 10 K = KBOT, ILO + 1, -1 IF( H( K, K-1 ).EQ.ZERO ) $ GO TO 20 10 CONTINUE K = ILO 20 CONTINUE KTOP = K * * ==== Select deflation window size: * . Typical Case: * . If possible and advisable, nibble the entire * . active block. If not, use size MIN(NWR,NWMAX) * . or MIN(NWR+1,NWMAX) depending upon which has * . the smaller corresponding subdiagonal entry * . (a heuristic). * . * . Exceptional Case: * . If there have been no deflations in KEXNW or * . more iterations, then vary the deflation window * . size. At first, because, larger windows are, * . in general, more powerful than smaller ones, * . rapidly increase the window to the maximum possible. * . Then, gradually reduce the window size. ==== * NH = KBOT - KTOP + 1 NWUPBD = MIN( NH, NWMAX ) IF( NDFL.LT.KEXNW ) THEN NW = MIN( NWUPBD, NWR ) ELSE NW = MIN( NWUPBD, 2*NW ) END IF IF( NW.LT.NWMAX ) THEN IF( NW.GE.NH-1 ) THEN NW = NH ELSE KWTOP = KBOT - NW + 1 IF( CABS1( H( KWTOP, KWTOP-1 ) ).GT. $ CABS1( H( KWTOP-1, KWTOP-2 ) ) )NW = NW + 1 END IF END IF IF( NDFL.LT.KEXNW ) THEN NDEC = -1 ELSE IF( NDEC.GE.0 .OR. NW.GE.NWUPBD ) THEN NDEC = NDEC + 1 IF( NW-NDEC.LT.2 ) $ NDEC = 0 NW = NW - NDEC END IF * * ==== Aggressive early deflation: * . split workspace under the subdiagonal into * . - an nw-by-nw work array V in the lower * . left-hand-corner, * . - an NW-by-at-least-NW-but-more-is-better * . (NW-by-NHO) horizontal work array along * . the bottom edge, * . - an at-least-NW-but-more-is-better (NHV-by-NW) * . vertical work array along the left-hand-edge. * . ==== * KV = N - NW + 1 KT = NW + 1 NHO = ( N-NW-1 ) - KT + 1 KWV = NW + 2 NVE = ( N-NW ) - KWV + 1 * * ==== Aggressive early deflation ==== * CALL ZLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, $ IHIZ, Z, LDZ, LS, LD, W, H( KV, 1 ), LDH, NHO, $ H( KV, KT ), LDH, NVE, H( KWV, 1 ), LDH, WORK, $ LWORK ) * * ==== Adjust KBOT accounting for new deflations. ==== * KBOT = KBOT - LD * * ==== KS points to the shifts. ==== * KS = KBOT - LS + 1 * * ==== Skip an expensive QR sweep if there is a (partly * . heuristic) reason to expect that many eigenvalues * . will deflate without it. Here, the QR sweep is * . skipped if many eigenvalues have just been deflated * . or if the remaining active block is small. * IF( ( LD.EQ.0 ) .OR. ( ( 100*LD.LE.NW*NIBBLE ) .AND. ( KBOT- $ KTOP+1.GT.MIN( NMIN, NWMAX ) ) ) ) THEN * * ==== NS = nominal number of simultaneous shifts. * . This may be lowered (slightly) if ZLAQR3 * . did not provide that many shifts. ==== * NS = MIN( NSMAX, NSR, MAX( 2, KBOT-KTOP ) ) NS = NS - MOD( NS, 2 ) * * ==== If there have been no deflations * . in a multiple of KEXSH iterations, * . then try exceptional shifts. * . Otherwise use shifts provided by * . ZLAQR3 above or from the eigenvalues * . of a trailing principal submatrix. ==== * IF( MOD( NDFL, KEXSH ).EQ.0 ) THEN KS = KBOT - NS + 1 DO 30 I = KBOT, KS + 1, -2 W( I ) = H( I, I ) + WILK1*CABS1( H( I, I-1 ) ) W( I-1 ) = W( I ) 30 CONTINUE ELSE * * ==== Got NS/2 or fewer shifts? Use ZLAQR4 or * . ZLAHQR on a trailing principal submatrix to * . get more. (Since NS.LE.NSMAX.LE.(N+6)/9, * . there is enough space below the subdiagonal * . to fit an NS-by-NS scratch array.) ==== * IF( KBOT-KS+1.LE.NS / 2 ) THEN KS = KBOT - NS + 1 KT = N - NS + 1 CALL ZLACPY( 'A', NS, NS, H( KS, KS ), LDH, $ H( KT, 1 ), LDH ) IF( NS.GT.NMIN ) THEN CALL ZLAQR4( .false., .false., NS, 1, NS, $ H( KT, 1 ), LDH, W( KS ), 1, 1, $ ZDUM, 1, WORK, LWORK, INF ) ELSE CALL ZLAHQR( .false., .false., NS, 1, NS, $ H( KT, 1 ), LDH, W( KS ), 1, 1, $ ZDUM, 1, INF ) END IF KS = KS + INF * * ==== In case of a rare QR failure use * . eigenvalues of the trailing 2-by-2 * . principal submatrix. Scale to avoid * . overflows, underflows and subnormals. * . (The scale factor S can not be zero, * . because H(KBOT,KBOT-1) is nonzero.) ==== * IF( KS.GE.KBOT ) THEN S = CABS1( H( KBOT-1, KBOT-1 ) ) + $ CABS1( H( KBOT, KBOT-1 ) ) + $ CABS1( H( KBOT-1, KBOT ) ) + $ CABS1( H( KBOT, KBOT ) ) AA = H( KBOT-1, KBOT-1 ) / S CC = H( KBOT, KBOT-1 ) / S BB = H( KBOT-1, KBOT ) / S DD = H( KBOT, KBOT ) / S TR2 = ( AA+DD ) / TWO DET = ( AA-TR2 )*( DD-TR2 ) - BB*CC RTDISC = SQRT( -DET ) W( KBOT-1 ) = ( TR2+RTDISC )*S W( KBOT ) = ( TR2-RTDISC )*S * KS = KBOT - 1 END IF END IF * IF( KBOT-KS+1.GT.NS ) THEN * * ==== Sort the shifts (Helps a little) ==== * SORTED = .false. DO 50 K = KBOT, KS + 1, -1 IF( SORTED ) $ GO TO 60 SORTED = .true. DO 40 I = KS, K - 1 IF( CABS1( W( I ) ).LT.CABS1( W( I+1 ) ) ) $ THEN SORTED = .false. SWAP = W( I ) W( I ) = W( I+1 ) W( I+1 ) = SWAP END IF 40 CONTINUE 50 CONTINUE 60 CONTINUE END IF END IF * * ==== If there are only two shifts, then use * . only one. ==== * IF( KBOT-KS+1.EQ.2 ) THEN IF( CABS1( W( KBOT )-H( KBOT, KBOT ) ).LT. $ CABS1( W( KBOT-1 )-H( KBOT, KBOT ) ) ) THEN W( KBOT-1 ) = W( KBOT ) ELSE W( KBOT ) = W( KBOT-1 ) END IF END IF * * ==== Use up to NS of the the smallest magnatiude * . shifts. If there aren't NS shifts available, * . then use them all, possibly dropping one to * . make the number of shifts even. ==== * NS = MIN( NS, KBOT-KS+1 ) NS = NS - MOD( NS, 2 ) KS = KBOT - NS + 1 * * ==== Small-bulge multi-shift QR sweep: * . split workspace under the subdiagonal into * . - a KDU-by-KDU work array U in the lower * . left-hand-corner, * . - a KDU-by-at-least-KDU-but-more-is-better * . (KDU-by-NHo) horizontal work array WH along * . the bottom edge, * . - and an at-least-KDU-but-more-is-better-by-KDU * . (NVE-by-KDU) vertical work WV arrow along * . the left-hand-edge. ==== * KDU = 3*NS - 3 KU = N - KDU + 1 KWH = KDU + 1 NHO = ( N-KDU+1-4 ) - ( KDU+1 ) + 1 KWV = KDU + 4 NVE = N - KDU - KWV + 1 * * ==== Small-bulge multi-shift QR sweep ==== * CALL ZLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NS, $ W( KS ), H, LDH, ILOZ, IHIZ, Z, LDZ, WORK, $ 3, H( KU, 1 ), LDH, NVE, H( KWV, 1 ), LDH, $ NHO, H( KU, KWH ), LDH ) END IF * * ==== Note progress (or the lack of it). ==== * IF( LD.GT.0 ) THEN NDFL = 1 ELSE NDFL = NDFL + 1 END IF * * ==== End of main loop ==== 70 CONTINUE * * ==== Iteration limit exceeded. Set INFO to show where * . the problem occurred and exit. ==== * INFO = KBOT 80 CONTINUE END IF * * ==== Return the optimal value of LWORK. ==== * WORK( 1 ) = DCMPLX( LWKOPT, 0 ) * * ==== End of ZLAQR0 ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaset.f0000644000000000000000000000013213543334726015233 xustar0030 mtime=1569569238.682645743 30 atime=1569569238.680645745 30 ctime=1569569238.682645743 elk-6.3.2/src/LAPACK/zlaset.f0000644002504400250440000001136013543334726017303 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLASET + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER LDA, M, N * COMPLEX*16 ALPHA, BETA * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLASET initializes a 2-D array A to BETA on the diagonal and *> ALPHA on the offdiagonals. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies the part of the matrix A to be set. *> = 'U': Upper triangular part is set. The lower triangle *> is unchanged. *> = 'L': Lower triangular part is set. The upper triangle *> is unchanged. *> Otherwise: All of the matrix A is set. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> On entry, M specifies the number of rows of A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> On entry, N specifies the number of columns of A. *> \endverbatim *> *> \param[in] ALPHA *> \verbatim *> ALPHA is COMPLEX*16 *> All the offdiagonal array elements are set to ALPHA. *> \endverbatim *> *> \param[in] BETA *> \verbatim *> BETA is COMPLEX*16 *> All the diagonal array elements are set to BETA. *> \endverbatim *> *> \param[out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the m by n matrix A. *> On exit, A(i,j) = ALPHA, 1 <= i <= m, 1 <= j <= n, i.ne.j; *> A(i,i) = BETA , 1 <= i <= min(m,n) *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER LDA, M, N COMPLEX*16 ALPHA, BETA * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * IF( LSAME( UPLO, 'U' ) ) THEN * * Set the diagonal to BETA and the strictly upper triangular * part of the array to ALPHA. * DO 20 J = 2, N DO 10 I = 1, MIN( J-1, M ) A( I, J ) = ALPHA 10 CONTINUE 20 CONTINUE DO 30 I = 1, MIN( N, M ) A( I, I ) = BETA 30 CONTINUE * ELSE IF( LSAME( UPLO, 'L' ) ) THEN * * Set the diagonal to BETA and the strictly lower triangular * part of the array to ALPHA. * DO 50 J = 1, MIN( M, N ) DO 40 I = J + 1, M A( I, J ) = ALPHA 40 CONTINUE 50 CONTINUE DO 60 I = 1, MIN( N, M ) A( I, I ) = BETA 60 CONTINUE * ELSE * * Set the array to BETA on the diagonal and ALPHA on the * offdiagonal. * DO 80 J = 1, N DO 70 I = 1, M A( I, J ) = ALPHA 70 CONTINUE 80 CONTINUE DO 90 I = 1, MIN( M, N ) A( I, I ) = BETA 90 CONTINUE END IF * RETURN * * End of ZLASET * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlahqr.f0000644000000000000000000000013013543334726015230 xustar0029 mtime=1569569238.68764574 30 atime=1569569238.685645741 29 ctime=1569569238.68764574 elk-6.3.2/src/LAPACK/zlahqr.f0000644002504400250440000004406413543334726017311 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAHQR computes the eigenvalues and Schur factorization of an upper Hessenberg matrix, using the double-shift/single-shift QR algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAHQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAHQR( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, * IHIZ, Z, LDZ, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, N * LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), W( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAHQR is an auxiliary routine called by CHSEQR to update the *> eigenvalues and Schur decomposition already computed by CHSEQR, by *> dealing with the Hessenberg submatrix in rows and columns ILO to *> IHI. *> \endverbatim * * Arguments: * ========== * *> \param[in] WANTT *> \verbatim *> WANTT is LOGICAL *> = .TRUE. : the full Schur form T is required; *> = .FALSE.: only eigenvalues are required. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim *> WANTZ is LOGICAL *> = .TRUE. : the matrix of Schur vectors Z is required; *> = .FALSE.: Schur vectors are not required. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix H. N >= 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> It is assumed that H is already upper triangular in rows and *> columns IHI+1:N, and that H(ILO,ILO-1) = 0 (unless ILO = 1). *> ZLAHQR works primarily with the Hessenberg submatrix in rows *> and columns ILO to IHI, but applies transformations to all of *> H if WANTT is .TRUE.. *> 1 <= ILO <= max(1,IHI); IHI <= N. *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On entry, the upper Hessenberg matrix H. *> On exit, if INFO is zero and if WANTT is .TRUE., then H *> is upper triangular in rows and columns ILO:IHI. If INFO *> is zero and if WANTT is .FALSE., then the contents of H *> are unspecified on exit. The output state of H in case *> INF is positive is below under the description of INFO. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> The leading dimension of the array H. LDH >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> The computed eigenvalues ILO to IHI are stored in the *> corresponding elements of W. If WANTT is .TRUE., the *> eigenvalues are stored in the same order as on the diagonal *> of the Schur form returned in H, with W(i) = H(i,i). *> \endverbatim *> *> \param[in] ILOZ *> \verbatim *> ILOZ is INTEGER *> \endverbatim *> *> \param[in] IHIZ *> \verbatim *> IHIZ is INTEGER *> Specify the rows of Z to which transformations must be *> applied if WANTZ is .TRUE.. *> 1 <= ILOZ <= ILO; IHI <= IHIZ <= N. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,N) *> If WANTZ is .TRUE., on entry Z must contain the current *> matrix Z of transformations accumulated by CHSEQR, and on *> exit Z has been updated; transformations are applied only to *> the submatrix Z(ILOZ:IHIZ,ILO:IHI). *> If WANTZ is .FALSE., Z is not referenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> .GT. 0: if INFO = i, ZLAHQR failed to compute all the *> eigenvalues ILO to IHI in a total of 30 iterations *> per eigenvalue; elements i+1:ihi of W contain *> those eigenvalues which have been successfully *> computed. *> *> If INFO .GT. 0 and WANTT is .FALSE., then on exit, *> the remaining unconverged eigenvalues are the *> eigenvalues of the upper Hessenberg matrix *> rows and columns ILO thorugh INFO of the final, *> output value of H. *> *> If INFO .GT. 0 and WANTT is .TRUE., then on exit *> (*) (initial value of H)*U = U*(final value of H) *> where U is an orthognal matrix. The final *> value of H is upper Hessenberg and triangular in *> rows and columns INFO+1 through IHI. *> *> If INFO .GT. 0 and WANTZ is .TRUE., then on exit *> (final value of Z) = (initial value of Z)*U *> where U is the orthogonal matrix in (*) *> (regardless of the value of WANTT.) *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> \verbatim *> *> 02-96 Based on modifications by *> David Day, Sandia National Laboratory, USA *> *> 12-04 Further modifications by *> Ralph Byers, University of Kansas, USA *> This is a modified version of ZLAHQR from LAPACK version 3.0. *> It is (1) more robust against overflow and underflow and *> (2) adopts the more conservative Ahues & Tisseur stopping *> criterion (LAWN 122, 1997). *> \endverbatim *> * ===================================================================== SUBROUTINE ZLAHQR( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, $ IHIZ, Z, LDZ, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, N LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), W( * ), Z( LDZ, * ) * .. * * ========================================================= * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION RZERO, RONE, HALF PARAMETER ( RZERO = 0.0d0, RONE = 1.0d0, HALF = 0.5d0 ) DOUBLE PRECISION DAT1 PARAMETER ( DAT1 = 3.0d0 / 4.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 CDUM, H11, H11S, H22, SC, SUM, T, T1, TEMP, U, $ V2, X, Y DOUBLE PRECISION AA, AB, BA, BB, H10, H21, RTEMP, S, SAFMAX, $ SAFMIN, SMLNUM, SX, T2, TST, ULP INTEGER I, I1, I2, ITS, ITMAX, J, JHI, JLO, K, L, M, $ NH, NZ * .. * .. Local Arrays .. COMPLEX*16 V( 2 ) * .. * .. External Functions .. COMPLEX*16 ZLADIV DOUBLE PRECISION DLAMCH EXTERNAL ZLADIV, DLAMCH * .. * .. External Subroutines .. EXTERNAL DLABAD, ZCOPY, ZLARFG, ZSCAL * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCONJG, DIMAG, MAX, MIN, SQRT * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. * INFO = 0 * * Quick return if possible * IF( N.EQ.0 ) $ RETURN IF( ILO.EQ.IHI ) THEN W( ILO ) = H( ILO, ILO ) RETURN END IF * * ==== clear out the trash ==== DO 10 J = ILO, IHI - 3 H( J+2, J ) = ZERO H( J+3, J ) = ZERO 10 CONTINUE IF( ILO.LE.IHI-2 ) $ H( IHI, IHI-2 ) = ZERO * ==== ensure that subdiagonal entries are real ==== IF( WANTT ) THEN JLO = 1 JHI = N ELSE JLO = ILO JHI = IHI END IF DO 20 I = ILO + 1, IHI IF( DIMAG( H( I, I-1 ) ).NE.RZERO ) THEN * ==== The following redundant normalization * . avoids problems with both gradual and * . sudden underflow in ABS(H(I,I-1)) ==== SC = H( I, I-1 ) / CABS1( H( I, I-1 ) ) SC = DCONJG( SC ) / ABS( SC ) H( I, I-1 ) = ABS( H( I, I-1 ) ) CALL ZSCAL( JHI-I+1, SC, H( I, I ), LDH ) CALL ZSCAL( MIN( JHI, I+1 )-JLO+1, DCONJG( SC ), $ H( JLO, I ), 1 ) IF( WANTZ ) $ CALL ZSCAL( IHIZ-ILOZ+1, DCONJG( SC ), Z( ILOZ, I ), 1 ) END IF 20 CONTINUE * NH = IHI - ILO + 1 NZ = IHIZ - ILOZ + 1 * * Set machine-dependent constants for the stopping criterion. * SAFMIN = DLAMCH( 'SAFE MINIMUM' ) SAFMAX = RONE / SAFMIN CALL DLABAD( SAFMIN, SAFMAX ) ULP = DLAMCH( 'PRECISION' ) SMLNUM = SAFMIN*( DBLE( NH ) / ULP ) * * I1 and I2 are the indices of the first row and last column of H * to which transformations must be applied. If eigenvalues only are * being computed, I1 and I2 are set inside the main loop. * IF( WANTT ) THEN I1 = 1 I2 = N END IF * * ITMAX is the total number of QR iterations allowed. * ITMAX = 30 * MAX( 10, NH ) * * The main loop begins here. I is the loop index and decreases from * IHI to ILO in steps of 1. Each iteration of the loop works * with the active submatrix in rows and columns L to I. * Eigenvalues I+1 to IHI have already converged. Either L = ILO, or * H(L,L-1) is negligible so that the matrix splits. * I = IHI 30 CONTINUE IF( I.LT.ILO ) $ GO TO 150 * * Perform QR iterations on rows and columns ILO to I until a * submatrix of order 1 splits off at the bottom because a * subdiagonal element has become negligible. * L = ILO DO 130 ITS = 0, ITMAX * * Look for a single small subdiagonal element. * DO 40 K = I, L + 1, -1 IF( CABS1( H( K, K-1 ) ).LE.SMLNUM ) $ GO TO 50 TST = CABS1( H( K-1, K-1 ) ) + CABS1( H( K, K ) ) IF( TST.EQ.ZERO ) THEN IF( K-2.GE.ILO ) $ TST = TST + ABS( DBLE( H( K-1, K-2 ) ) ) IF( K+1.LE.IHI ) $ TST = TST + ABS( DBLE( H( K+1, K ) ) ) END IF * ==== The following is a conservative small subdiagonal * . deflation criterion due to Ahues & Tisseur (LAWN 122, * . 1997). It has better mathematical foundation and * . improves accuracy in some examples. ==== IF( ABS( DBLE( H( K, K-1 ) ) ).LE.ULP*TST ) THEN AB = MAX( CABS1( H( K, K-1 ) ), CABS1( H( K-1, K ) ) ) BA = MIN( CABS1( H( K, K-1 ) ), CABS1( H( K-1, K ) ) ) AA = MAX( CABS1( H( K, K ) ), $ CABS1( H( K-1, K-1 )-H( K, K ) ) ) BB = MIN( CABS1( H( K, K ) ), $ CABS1( H( K-1, K-1 )-H( K, K ) ) ) S = AA + AB IF( BA*( AB / S ).LE.MAX( SMLNUM, $ ULP*( BB*( AA / S ) ) ) )GO TO 50 END IF 40 CONTINUE 50 CONTINUE L = K IF( L.GT.ILO ) THEN * * H(L,L-1) is negligible * H( L, L-1 ) = ZERO END IF * * Exit from loop if a submatrix of order 1 has split off. * IF( L.GE.I ) $ GO TO 140 * * Now the active submatrix is in rows and columns L to I. If * eigenvalues only are being computed, only the active submatrix * need be transformed. * IF( .NOT.WANTT ) THEN I1 = L I2 = I END IF * IF( ITS.EQ.10 ) THEN * * Exceptional shift. * S = DAT1*ABS( DBLE( H( L+1, L ) ) ) T = S + H( L, L ) ELSE IF( ITS.EQ.20 ) THEN * * Exceptional shift. * S = DAT1*ABS( DBLE( H( I, I-1 ) ) ) T = S + H( I, I ) ELSE * * Wilkinson's shift. * T = H( I, I ) U = SQRT( H( I-1, I ) )*SQRT( H( I, I-1 ) ) S = CABS1( U ) IF( S.NE.RZERO ) THEN X = HALF*( H( I-1, I-1 )-T ) SX = CABS1( X ) S = MAX( S, CABS1( X ) ) Y = S*SQRT( ( X / S )**2+( U / S )**2 ) IF( SX.GT.RZERO ) THEN IF( DBLE( X / SX )*DBLE( Y )+DIMAG( X / SX )* $ DIMAG( Y ).LT.RZERO )Y = -Y END IF T = T - U*ZLADIV( U, ( X+Y ) ) END IF END IF * * Look for two consecutive small subdiagonal elements. * DO 60 M = I - 1, L + 1, -1 * * Determine the effect of starting the single-shift QR * iteration at row M, and see if this would make H(M,M-1) * negligible. * H11 = H( M, M ) H22 = H( M+1, M+1 ) H11S = H11 - T H21 = DBLE( H( M+1, M ) ) S = CABS1( H11S ) + ABS( H21 ) H11S = H11S / S H21 = H21 / S V( 1 ) = H11S V( 2 ) = H21 H10 = DBLE( H( M, M-1 ) ) IF( ABS( H10 )*ABS( H21 ).LE.ULP* $ ( CABS1( H11S )*( CABS1( H11 )+CABS1( H22 ) ) ) ) $ GO TO 70 60 CONTINUE H11 = H( L, L ) H22 = H( L+1, L+1 ) H11S = H11 - T H21 = DBLE( H( L+1, L ) ) S = CABS1( H11S ) + ABS( H21 ) H11S = H11S / S H21 = H21 / S V( 1 ) = H11S V( 2 ) = H21 70 CONTINUE * * Single-shift QR step * DO 120 K = M, I - 1 * * The first iteration of this loop determines a reflection G * from the vector V and applies it from left and right to H, * thus creating a nonzero bulge below the subdiagonal. * * Each subsequent iteration determines a reflection G to * restore the Hessenberg form in the (K-1)th column, and thus * chases the bulge one step toward the bottom of the active * submatrix. * * V(2) is always real before the call to ZLARFG, and hence * after the call T2 ( = T1*V(2) ) is also real. * IF( K.GT.M ) $ CALL ZCOPY( 2, H( K, K-1 ), 1, V, 1 ) CALL ZLARFG( 2, V( 1 ), V( 2 ), 1, T1 ) IF( K.GT.M ) THEN H( K, K-1 ) = V( 1 ) H( K+1, K-1 ) = ZERO END IF V2 = V( 2 ) T2 = DBLE( T1*V2 ) * * Apply G from the left to transform the rows of the matrix * in columns K to I2. * DO 80 J = K, I2 SUM = DCONJG( T1 )*H( K, J ) + T2*H( K+1, J ) H( K, J ) = H( K, J ) - SUM H( K+1, J ) = H( K+1, J ) - SUM*V2 80 CONTINUE * * Apply G from the right to transform the columns of the * matrix in rows I1 to min(K+2,I). * DO 90 J = I1, MIN( K+2, I ) SUM = T1*H( J, K ) + T2*H( J, K+1 ) H( J, K ) = H( J, K ) - SUM H( J, K+1 ) = H( J, K+1 ) - SUM*DCONJG( V2 ) 90 CONTINUE * IF( WANTZ ) THEN * * Accumulate transformations in the matrix Z * DO 100 J = ILOZ, IHIZ SUM = T1*Z( J, K ) + T2*Z( J, K+1 ) Z( J, K ) = Z( J, K ) - SUM Z( J, K+1 ) = Z( J, K+1 ) - SUM*DCONJG( V2 ) 100 CONTINUE END IF * IF( K.EQ.M .AND. M.GT.L ) THEN * * If the QR step was started at row M > L because two * consecutive small subdiagonals were found, then extra * scaling must be performed to ensure that H(M,M-1) remains * real. * TEMP = ONE - T1 TEMP = TEMP / ABS( TEMP ) H( M+1, M ) = H( M+1, M )*DCONJG( TEMP ) IF( M+2.LE.I ) $ H( M+2, M+1 ) = H( M+2, M+1 )*TEMP DO 110 J = M, I IF( J.NE.M+1 ) THEN IF( I2.GT.J ) $ CALL ZSCAL( I2-J, TEMP, H( J, J+1 ), LDH ) CALL ZSCAL( J-I1, DCONJG( TEMP ), H( I1, J ), 1 ) IF( WANTZ ) THEN CALL ZSCAL( NZ, DCONJG( TEMP ), Z( ILOZ, J ), $ 1 ) END IF END IF 110 CONTINUE END IF 120 CONTINUE * * Ensure that H(I,I-1) is real. * TEMP = H( I, I-1 ) IF( DIMAG( TEMP ).NE.RZERO ) THEN RTEMP = ABS( TEMP ) H( I, I-1 ) = RTEMP TEMP = TEMP / RTEMP IF( I2.GT.I ) $ CALL ZSCAL( I2-I, DCONJG( TEMP ), H( I, I+1 ), LDH ) CALL ZSCAL( I-I1, TEMP, H( I1, I ), 1 ) IF( WANTZ ) THEN CALL ZSCAL( NZ, TEMP, Z( ILOZ, I ), 1 ) END IF END IF * 130 CONTINUE * * Failure to converge in remaining number of iterations * INFO = I RETURN * 140 CONTINUE * * H(I,I-1) is negligible: one eigenvalue has converged. * W( I ) = H( I, I ) * * return to start of the main loop with new value of I. * I = L - 1 GO TO 30 * 150 CONTINUE RETURN * * End of ZLAHQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlassq.f0000644000000000000000000000013213543334726015246 xustar0030 mtime=1569569238.692645737 30 atime=1569569238.691645737 30 ctime=1569569238.692645737 elk-6.3.2/src/LAPACK/zlassq.f0000644002504400250440000001121513543334726017315 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLASSQ updates a sum of squares represented in scaled form. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLASSQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLASSQ( N, X, INCX, SCALE, SUMSQ ) * * .. Scalar Arguments .. * INTEGER INCX, N * DOUBLE PRECISION SCALE, SUMSQ * .. * .. Array Arguments .. * COMPLEX*16 X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLASSQ returns the values scl and ssq such that *> *> ( scl**2 )*ssq = x( 1 )**2 +...+ x( n )**2 + ( scale**2 )*sumsq, *> *> where x( i ) = abs( X( 1 + ( i - 1 )*INCX ) ). The value of sumsq is *> assumed to be at least unity and the value of ssq will then satisfy *> *> 1.0 .le. ssq .le. ( sumsq + 2*n ). *> *> scale is assumed to be non-negative and scl returns the value *> *> scl = max( scale, abs( real( x( i ) ) ), abs( aimag( x( i ) ) ) ), *> i *> *> scale and sumsq must be supplied in SCALE and SUMSQ respectively. *> SCALE and SUMSQ are overwritten by scl and ssq respectively. *> *> The routine makes only one pass through the vector X. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of elements to be used from the vector X. *> \endverbatim *> *> \param[in] X *> \verbatim *> X is COMPLEX*16 array, dimension (N) *> The vector x as described above. *> x( i ) = X( 1 + ( i - 1 )*INCX ), 1 <= i <= n. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between successive values of the vector X. *> INCX > 0. *> \endverbatim *> *> \param[in,out] SCALE *> \verbatim *> SCALE is DOUBLE PRECISION *> On entry, the value scale in the equation above. *> On exit, SCALE is overwritten with the value scl . *> \endverbatim *> *> \param[in,out] SUMSQ *> \verbatim *> SUMSQ is DOUBLE PRECISION *> On entry, the value sumsq in the equation above. *> On exit, SUMSQ is overwritten with the value ssq . *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLASSQ( N, X, INCX, SCALE, SUMSQ ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX, N DOUBLE PRECISION SCALE, SUMSQ * .. * .. Array Arguments .. COMPLEX*16 X( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER IX DOUBLE PRECISION TEMP1 * .. * .. External Functions .. LOGICAL DISNAN EXTERNAL DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DIMAG * .. * .. Executable Statements .. * IF( N.GT.0 ) THEN DO 10 IX = 1, 1 + ( N-1 )*INCX, INCX TEMP1 = ABS( DBLE( X( IX ) ) ) IF( TEMP1.GT.ZERO.OR.DISNAN( TEMP1 ) ) THEN IF( SCALE.LT.TEMP1 ) THEN SUMSQ = 1 + SUMSQ*( SCALE / TEMP1 )**2 SCALE = TEMP1 ELSE SUMSQ = SUMSQ + ( TEMP1 / SCALE )**2 END IF END IF TEMP1 = ABS( DIMAG( X( IX ) ) ) IF( TEMP1.GT.ZERO.OR.DISNAN( TEMP1 ) ) THEN IF( SCALE.LT.TEMP1 ) THEN SUMSQ = 1 + SUMSQ*( SCALE / TEMP1 )**2 SCALE = TEMP1 ELSE SUMSQ = SUMSQ + ( TEMP1 / SCALE )**2 END IF END IF 10 CONTINUE END IF * RETURN * * End of ZLASSQ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zpotrf2.f0000644000000000000000000000013213543334726015337 xustar0030 mtime=1569569238.696645734 30 atime=1569569238.695645735 30 ctime=1569569238.696645734 elk-6.3.2/src/LAPACK/zpotrf2.f0000644002504400250440000001446113543334726017414 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZPOTRF2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * * Definition: * =========== * * RECURSIVE SUBROUTINE ZPOTRF2( UPLO, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZPOTRF2 computes the Cholesky factorization of a real symmetric *> positive definite matrix A using the recursive algorithm. *> *> The factorization has the form *> A = U**H * U, if UPLO = 'U', or *> A = L * L**H, if UPLO = 'L', *> where U is an upper triangular matrix and L is lower triangular. *> *> This is the recursive version of the algorithm. It divides *> the matrix into four submatrices: *> *> [ A11 | A12 ] where A11 is n1 by n1 and A22 is n2 by n2 *> A = [ -----|----- ] with n1 = n/2 *> [ A21 | A22 ] n2 = n-n1 *> *> The subroutine calls itself to factor A11. Update and scale A21 *> or A12, update A22 then call itself to factor A22. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the symmetric matrix A. If UPLO = 'U', the leading *> N-by-N upper triangular part of A contains the upper *> triangular part of the matrix A, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading N-by-N lower triangular part of A contains the lower *> triangular part of the matrix A, and the strictly upper *> triangular part of A is not referenced. *> *> On exit, if INFO = 0, the factor U or L from the Cholesky *> factorization A = U**H*U or A = L*L**H. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, the leading minor of order i is not *> positive definite, and the factorization could not be *> completed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16POcomputational * * ===================================================================== RECURSIVE SUBROUTINE ZPOTRF2( UPLO, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) COMPLEX*16 CONE PARAMETER ( CONE = (1.0D+0, 0.0D+0) ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER N1, N2, IINFO DOUBLE PRECISION AJJ * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. External Subroutines .. EXTERNAL ZHERK, ZTRSM, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, DBLE, SQRT * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZPOTRF2', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * N=1 case * IF( N.EQ.1 ) THEN * * Test for non-positive-definiteness * AJJ = DBLE( A( 1, 1 ) ) IF( AJJ.LE.ZERO.OR.DISNAN( AJJ ) ) THEN INFO = 1 RETURN END IF * * Factor * A( 1, 1 ) = SQRT( AJJ ) * * Use recursive code * ELSE N1 = N/2 N2 = N-N1 * * Factor A11 * CALL ZPOTRF2( UPLO, N1, A( 1, 1 ), LDA, IINFO ) IF ( IINFO.NE.0 ) THEN INFO = IINFO RETURN END IF * * Compute the Cholesky factorization A = U**H*U * IF( UPPER ) THEN * * Update and scale A12 * CALL ZTRSM( 'L', 'U', 'C', 'N', N1, N2, CONE, $ A( 1, 1 ), LDA, A( 1, N1+1 ), LDA ) * * Update and factor A22 * CALL ZHERK( UPLO, 'C', N2, N1, -ONE, A( 1, N1+1 ), LDA, $ ONE, A( N1+1, N1+1 ), LDA ) CALL ZPOTRF2( UPLO, N2, A( N1+1, N1+1 ), LDA, IINFO ) IF ( IINFO.NE.0 ) THEN INFO = IINFO + N1 RETURN END IF * * Compute the Cholesky factorization A = L*L**H * ELSE * * Update and scale A21 * CALL ZTRSM( 'R', 'L', 'C', 'N', N2, N1, CONE, $ A( 1, 1 ), LDA, A( N1+1, 1 ), LDA ) * * Update and factor A22 * CALL ZHERK( UPLO, 'N', N2, N1, -ONE, A( N1+1, 1 ), LDA, $ ONE, A( N1+1, N1+1 ), LDA ) CALL ZPOTRF2( UPLO, N2, A( N1+1, N1+1 ), LDA, IINFO ) IF ( IINFO.NE.0 ) THEN INFO = IINFO + N1 RETURN END IF END IF END IF RETURN * * End of ZPOTRF2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dstedc.f0000644000000000000000000000013213543334726015177 xustar0030 mtime=1569569238.701645731 30 atime=1569569238.699645732 30 ctime=1569569238.701645731 elk-6.3.2/src/LAPACK/dstedc.f0000644002504400250440000003632613543334726017260 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSTEDC * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSTEDC + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK, * LIWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER COMPZ * INTEGER INFO, LDZ, LIWORK, LWORK, N * .. * .. Array Arguments .. * INTEGER IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSTEDC computes all eigenvalues and, optionally, eigenvectors of a *> symmetric tridiagonal matrix using the divide and conquer method. *> The eigenvectors of a full or band real symmetric matrix can also be *> found if DSYTRD or DSPTRD or DSBTRD has been used to reduce this *> matrix to tridiagonal form. *> *> This code makes very mild assumptions about floating point *> arithmetic. It will work on machines with a guard digit in *> add/subtract, or on those binary machines without guard digits *> which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. *> It could conceivably fail on hexadecimal or decimal machines *> without guard digits, but we know of none. See DLAED3 for details. *> \endverbatim * * Arguments: * ========== * *> \param[in] COMPZ *> \verbatim *> COMPZ is CHARACTER*1 *> = 'N': Compute eigenvalues only. *> = 'I': Compute eigenvectors of tridiagonal matrix also. *> = 'V': Compute eigenvectors of original dense symmetric *> matrix also. On entry, Z contains the orthogonal *> matrix used to reduce the original matrix to *> tridiagonal form. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the diagonal elements of the tridiagonal matrix. *> On exit, if INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the subdiagonal elements of the tridiagonal matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ,N) *> On entry, if COMPZ = 'V', then Z contains the orthogonal *> matrix used in the reduction to tridiagonal form. *> On exit, if INFO = 0, then if COMPZ = 'V', Z contains the *> orthonormal eigenvectors of the original symmetric matrix, *> and if COMPZ = 'I', Z contains the orthonormal eigenvectors *> of the symmetric tridiagonal matrix. *> If COMPZ = 'N', then Z is not referenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1. *> If eigenvectors are desired, then LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If COMPZ = 'N' or N <= 1 then LWORK must be at least 1. *> If COMPZ = 'V' and N > 1 then LWORK must be at least *> ( 1 + 3*N + 2*N*lg N + 4*N**2 ), *> where lg( N ) = smallest integer k such *> that 2**k >= N. *> If COMPZ = 'I' and N > 1 then LWORK must be at least *> ( 1 + 4*N + N**2 ). *> Note that for COMPZ = 'I' or 'V', then if N is less than or *> equal to the minimum divide size, usually 25, then LWORK need *> only be max(1,2*(N-1)). *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (MAX(1,LIWORK)) *> On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK. *> \endverbatim *> *> \param[in] LIWORK *> \verbatim *> LIWORK is INTEGER *> The dimension of the array IWORK. *> If COMPZ = 'N' or N <= 1 then LIWORK must be at least 1. *> If COMPZ = 'V' and N > 1 then LIWORK must be at least *> ( 6 + 6*N + 5*N*lg N ). *> If COMPZ = 'I' and N > 1 then LIWORK must be at least *> ( 3 + 5*N ). *> Note that for COMPZ = 'I' or 'V', then if N is less than or *> equal to the minimum divide size, usually 25, then LIWORK *> need only be 1. *> *> If LIWORK = -1, then a workspace query is assumed; the *> routine only calculates the optimal size of the IWORK array, *> returns this value as the first entry of the IWORK array, and *> no error message related to LIWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: The algorithm failed to compute an eigenvalue while *> working on the submatrix lying in rows and columns *> INFO/(N+1) through mod(INFO,N+1). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA \n *> Modified by Francoise Tisseur, University of Tennessee *> * ===================================================================== SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK, $ LIWORK, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. CHARACTER COMPZ INTEGER INFO, LDZ, LIWORK, LWORK, N * .. * .. Array Arguments .. INTEGER IWORK( * ) DOUBLE PRECISION D( * ), E( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER FINISH, I, ICOMPZ, II, J, K, LGN, LIWMIN, $ LWMIN, M, SMLSIZ, START, STOREZ, STRTRW DOUBLE PRECISION EPS, ORGNRM, P, TINY * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, DLANST EXTERNAL LSAME, ILAENV, DLAMCH, DLANST * .. * .. External Subroutines .. EXTERNAL DGEMM, DLACPY, DLAED0, DLASCL, DLASET, DLASRT, $ DSTEQR, DSTERF, DSWAP, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, INT, LOG, MAX, MOD, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 LQUERY = ( LWORK.EQ.-1 .OR. LIWORK.EQ.-1 ) * IF( LSAME( COMPZ, 'N' ) ) THEN ICOMPZ = 0 ELSE IF( LSAME( COMPZ, 'V' ) ) THEN ICOMPZ = 1 ELSE IF( LSAME( COMPZ, 'I' ) ) THEN ICOMPZ = 2 ELSE ICOMPZ = -1 END IF IF( ICOMPZ.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( ( LDZ.LT.1 ) .OR. $ ( ICOMPZ.GT.0 .AND. LDZ.LT.MAX( 1, N ) ) ) THEN INFO = -6 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * SMLSIZ = ILAENV( 9, 'DSTEDC', ' ', 0, 0, 0, 0 ) IF( N.LE.1 .OR. ICOMPZ.EQ.0 ) THEN LIWMIN = 1 LWMIN = 1 ELSE IF( N.LE.SMLSIZ ) THEN LIWMIN = 1 LWMIN = 2*( N - 1 ) ELSE LGN = INT( LOG( DBLE( N ) )/LOG( TWO ) ) IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IF( ICOMPZ.EQ.1 ) THEN LWMIN = 1 + 3*N + 2*N*LGN + 4*N**2 LIWMIN = 6 + 6*N + 5*N*LGN ELSE IF( ICOMPZ.EQ.2 ) THEN LWMIN = 1 + 4*N + N**2 LIWMIN = 3 + 5*N END IF END IF WORK( 1 ) = LWMIN IWORK( 1 ) = LIWMIN * IF( LWORK.LT.LWMIN .AND. .NOT. LQUERY ) THEN INFO = -8 ELSE IF( LIWORK.LT.LIWMIN .AND. .NOT. LQUERY ) THEN INFO = -10 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSTEDC', -INFO ) RETURN ELSE IF (LQUERY) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN IF( N.EQ.1 ) THEN IF( ICOMPZ.NE.0 ) $ Z( 1, 1 ) = ONE RETURN END IF * * If the following conditional clause is removed, then the routine * will use the Divide and Conquer routine to compute only the * eigenvalues, which requires (3N + 3N**2) real workspace and * (2 + 5N + 2N lg(N)) integer workspace. * Since on many architectures DSTERF is much faster than any other * algorithm for finding eigenvalues only, it is used here * as the default. If the conditional clause is removed, then * information on the size of workspace needs to be changed. * * If COMPZ = 'N', use DSTERF to compute the eigenvalues. * IF( ICOMPZ.EQ.0 ) THEN CALL DSTERF( N, D, E, INFO ) GO TO 50 END IF * * If N is smaller than the minimum divide size (SMLSIZ+1), then * solve the problem with another solver. * IF( N.LE.SMLSIZ ) THEN * CALL DSTEQR( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) * ELSE * * If COMPZ = 'V', the Z matrix must be stored elsewhere for later * use. * IF( ICOMPZ.EQ.1 ) THEN STOREZ = 1 + N*N ELSE STOREZ = 1 END IF * IF( ICOMPZ.EQ.2 ) THEN CALL DLASET( 'Full', N, N, ZERO, ONE, Z, LDZ ) END IF * * Scale. * ORGNRM = DLANST( 'M', N, D, E ) IF( ORGNRM.EQ.ZERO ) $ GO TO 50 * EPS = DLAMCH( 'Epsilon' ) * START = 1 * * while ( START <= N ) * 10 CONTINUE IF( START.LE.N ) THEN * * Let FINISH be the position of the next subdiagonal entry * such that E( FINISH ) <= TINY or FINISH = N if no such * subdiagonal exists. The matrix identified by the elements * between START and FINISH constitutes an independent * sub-problem. * FINISH = START 20 CONTINUE IF( FINISH.LT.N ) THEN TINY = EPS*SQRT( ABS( D( FINISH ) ) )* $ SQRT( ABS( D( FINISH+1 ) ) ) IF( ABS( E( FINISH ) ).GT.TINY ) THEN FINISH = FINISH + 1 GO TO 20 END IF END IF * * (Sub) Problem determined. Compute its size and solve it. * M = FINISH - START + 1 IF( M.EQ.1 ) THEN START = FINISH + 1 GO TO 10 END IF IF( M.GT.SMLSIZ ) THEN * * Scale. * ORGNRM = DLANST( 'M', M, D( START ), E( START ) ) CALL DLASCL( 'G', 0, 0, ORGNRM, ONE, M, 1, D( START ), M, $ INFO ) CALL DLASCL( 'G', 0, 0, ORGNRM, ONE, M-1, 1, E( START ), $ M-1, INFO ) * IF( ICOMPZ.EQ.1 ) THEN STRTRW = 1 ELSE STRTRW = START END IF CALL DLAED0( ICOMPZ, N, M, D( START ), E( START ), $ Z( STRTRW, START ), LDZ, WORK( 1 ), N, $ WORK( STOREZ ), IWORK, INFO ) IF( INFO.NE.0 ) THEN INFO = ( INFO / ( M+1 )+START-1 )*( N+1 ) + $ MOD( INFO, ( M+1 ) ) + START - 1 GO TO 50 END IF * * Scale back. * CALL DLASCL( 'G', 0, 0, ONE, ORGNRM, M, 1, D( START ), M, $ INFO ) * ELSE IF( ICOMPZ.EQ.1 ) THEN * * Since QR won't update a Z matrix which is larger than * the length of D, we must solve the sub-problem in a * workspace and then multiply back into Z. * CALL DSTEQR( 'I', M, D( START ), E( START ), WORK, M, $ WORK( M*M+1 ), INFO ) CALL DLACPY( 'A', N, M, Z( 1, START ), LDZ, $ WORK( STOREZ ), N ) CALL DGEMM( 'N', 'N', N, M, M, ONE, $ WORK( STOREZ ), N, WORK, M, ZERO, $ Z( 1, START ), LDZ ) ELSE IF( ICOMPZ.EQ.2 ) THEN CALL DSTEQR( 'I', M, D( START ), E( START ), $ Z( START, START ), LDZ, WORK, INFO ) ELSE CALL DSTERF( M, D( START ), E( START ), INFO ) END IF IF( INFO.NE.0 ) THEN INFO = START*( N+1 ) + FINISH GO TO 50 END IF END IF * START = FINISH + 1 GO TO 10 END IF * * endwhile * IF( ICOMPZ.EQ.0 ) THEN * * Use Quick Sort * CALL DLASRT( 'I', N, D, INFO ) * ELSE * * Use Selection Sort to minimize swaps of eigenvectors * DO 40 II = 2, N I = II - 1 K = I P = D( I ) DO 30 J = II, N IF( D( J ).LT.P ) THEN K = J P = D( J ) END IF 30 CONTINUE IF( K.NE.I ) THEN D( K ) = D( I ) D( I ) = P CALL DSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 ) END IF 40 CONTINUE END IF END IF * 50 CONTINUE WORK( 1 ) = LWMIN IWORK( 1 ) = LIWMIN * RETURN * * End of DSTEDC * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaed0.f0000644000000000000000000000013213543334726015110 xustar0030 mtime=1569569238.706645728 30 atime=1569569238.704645729 30 ctime=1569569238.706645728 elk-6.3.2/src/LAPACK/zlaed0.f0000644002504400250440000002607713543334726017173 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAED0 used by sstedc. Computes all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAED0 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAED0( QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, * IWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDQ, LDQS, N, QSIZ * .. * .. Array Arguments .. * INTEGER IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), RWORK( * ) * COMPLEX*16 Q( LDQ, * ), QSTORE( LDQS, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> Using the divide and conquer method, ZLAED0 computes all eigenvalues *> of a symmetric tridiagonal matrix which is one diagonal block of *> those from reducing a dense or band Hermitian matrix and *> corresponding eigenvectors of the dense or band matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] QSIZ *> \verbatim *> QSIZ is INTEGER *> The dimension of the unitary matrix used to reduce *> the full matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the diagonal elements of the tridiagonal matrix. *> On exit, the eigenvalues in ascending order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the off-diagonal elements of the tridiagonal matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is COMPLEX*16 array, dimension (LDQ,N) *> On entry, Q must contain an QSIZ x N matrix whose columns *> unitarily orthonormal. It is a part of the unitary matrix *> that reduces the full dense Hermitian matrix to a *> (reducible) symmetric tridiagonal matrix. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, *> the dimension of IWORK must be at least *> 6 + 6*N + 5*N*lg N *> ( lg( N ) = smallest integer k *> such that 2^k >= N ) *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, *> dimension (1 + 3*N + 2*N*lg N + 3*N**2) *> ( lg( N ) = smallest integer k *> such that 2^k >= N ) *> \endverbatim *> *> \param[out] QSTORE *> \verbatim *> QSTORE is COMPLEX*16 array, dimension (LDQS, N) *> Used to store parts of *> the eigenvector matrix when the updating matrix multiplies *> take place. *> \endverbatim *> *> \param[in] LDQS *> \verbatim *> LDQS is INTEGER *> The leading dimension of the array QSTORE. *> LDQS >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: The algorithm failed to compute an eigenvalue while *> working on the submatrix lying in rows and columns *> INFO/(N+1) through mod(INFO,N+1). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZLAED0( QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK, $ IWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDQ, LDQS, N, QSIZ * .. * .. Array Arguments .. INTEGER IWORK( * ) DOUBLE PRECISION D( * ), E( * ), RWORK( * ) COMPLEX*16 Q( LDQ, * ), QSTORE( LDQS, * ) * .. * * ===================================================================== * * Warning: N could be as big as QSIZ! * * .. Parameters .. DOUBLE PRECISION TWO PARAMETER ( TWO = 2.D+0 ) * .. * .. Local Scalars .. INTEGER CURLVL, CURPRB, CURR, I, IGIVCL, IGIVNM, $ IGIVPT, INDXQ, IPERM, IPRMPT, IQ, IQPTR, IWREM, $ J, K, LGN, LL, MATSIZ, MSD2, SMLSIZ, SMM1, $ SPM1, SPM2, SUBMAT, SUBPBS, TLVLS DOUBLE PRECISION TEMP * .. * .. External Subroutines .. EXTERNAL DCOPY, DSTEQR, XERBLA, ZCOPY, ZLACRM, ZLAED7 * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, INT, LOG, MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * * IF( ICOMPQ .LT. 0 .OR. ICOMPQ .GT. 2 ) THEN * INFO = -1 * ELSE IF( ( ICOMPQ .EQ. 1 ) .AND. ( QSIZ .LT. MAX( 0, N ) ) ) * $ THEN IF( QSIZ.LT.MAX( 0, N ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( LDQS.LT.MAX( 1, N ) ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZLAED0', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * SMLSIZ = ILAENV( 9, 'ZLAED0', ' ', 0, 0, 0, 0 ) * * Determine the size and placement of the submatrices, and save in * the leading elements of IWORK. * IWORK( 1 ) = N SUBPBS = 1 TLVLS = 0 10 CONTINUE IF( IWORK( SUBPBS ).GT.SMLSIZ ) THEN DO 20 J = SUBPBS, 1, -1 IWORK( 2*J ) = ( IWORK( J )+1 ) / 2 IWORK( 2*J-1 ) = IWORK( J ) / 2 20 CONTINUE TLVLS = TLVLS + 1 SUBPBS = 2*SUBPBS GO TO 10 END IF DO 30 J = 2, SUBPBS IWORK( J ) = IWORK( J ) + IWORK( J-1 ) 30 CONTINUE * * Divide the matrix into SUBPBS submatrices of size at most SMLSIZ+1 * using rank-1 modifications (cuts). * SPM1 = SUBPBS - 1 DO 40 I = 1, SPM1 SUBMAT = IWORK( I ) + 1 SMM1 = SUBMAT - 1 D( SMM1 ) = D( SMM1 ) - ABS( E( SMM1 ) ) D( SUBMAT ) = D( SUBMAT ) - ABS( E( SMM1 ) ) 40 CONTINUE * INDXQ = 4*N + 3 * * Set up workspaces for eigenvalues only/accumulate new vectors * routine * TEMP = LOG( DBLE( N ) ) / LOG( TWO ) LGN = INT( TEMP ) IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IPRMPT = INDXQ + N + 1 IPERM = IPRMPT + N*LGN IQPTR = IPERM + N*LGN IGIVPT = IQPTR + N + 2 IGIVCL = IGIVPT + N*LGN * IGIVNM = 1 IQ = IGIVNM + 2*N*LGN IWREM = IQ + N**2 + 1 * Initialize pointers DO 50 I = 0, SUBPBS IWORK( IPRMPT+I ) = 1 IWORK( IGIVPT+I ) = 1 50 CONTINUE IWORK( IQPTR ) = 1 * * Solve each submatrix eigenproblem at the bottom of the divide and * conquer tree. * CURR = 0 DO 70 I = 0, SPM1 IF( I.EQ.0 ) THEN SUBMAT = 1 MATSIZ = IWORK( 1 ) ELSE SUBMAT = IWORK( I ) + 1 MATSIZ = IWORK( I+1 ) - IWORK( I ) END IF LL = IQ - 1 + IWORK( IQPTR+CURR ) CALL DSTEQR( 'I', MATSIZ, D( SUBMAT ), E( SUBMAT ), $ RWORK( LL ), MATSIZ, RWORK, INFO ) CALL ZLACRM( QSIZ, MATSIZ, Q( 1, SUBMAT ), LDQ, RWORK( LL ), $ MATSIZ, QSTORE( 1, SUBMAT ), LDQS, $ RWORK( IWREM ) ) IWORK( IQPTR+CURR+1 ) = IWORK( IQPTR+CURR ) + MATSIZ**2 CURR = CURR + 1 IF( INFO.GT.0 ) THEN INFO = SUBMAT*( N+1 ) + SUBMAT + MATSIZ - 1 RETURN END IF K = 1 DO 60 J = SUBMAT, IWORK( I+1 ) IWORK( INDXQ+J ) = K K = K + 1 60 CONTINUE 70 CONTINUE * * Successively merge eigensystems of adjacent submatrices * into eigensystem for the corresponding larger matrix. * * while ( SUBPBS > 1 ) * CURLVL = 1 80 CONTINUE IF( SUBPBS.GT.1 ) THEN SPM2 = SUBPBS - 2 DO 90 I = 0, SPM2, 2 IF( I.EQ.0 ) THEN SUBMAT = 1 MATSIZ = IWORK( 2 ) MSD2 = IWORK( 1 ) CURPRB = 0 ELSE SUBMAT = IWORK( I ) + 1 MATSIZ = IWORK( I+2 ) - IWORK( I ) MSD2 = MATSIZ / 2 CURPRB = CURPRB + 1 END IF * * Merge lower order eigensystems (of size MSD2 and MATSIZ - MSD2) * into an eigensystem of size MATSIZ. ZLAED7 handles the case * when the eigenvectors of a full or band Hermitian matrix (which * was reduced to tridiagonal form) are desired. * * I am free to use Q as a valuable working space until Loop 150. * CALL ZLAED7( MATSIZ, MSD2, QSIZ, TLVLS, CURLVL, CURPRB, $ D( SUBMAT ), QSTORE( 1, SUBMAT ), LDQS, $ E( SUBMAT+MSD2-1 ), IWORK( INDXQ+SUBMAT ), $ RWORK( IQ ), IWORK( IQPTR ), IWORK( IPRMPT ), $ IWORK( IPERM ), IWORK( IGIVPT ), $ IWORK( IGIVCL ), RWORK( IGIVNM ), $ Q( 1, SUBMAT ), RWORK( IWREM ), $ IWORK( SUBPBS+1 ), INFO ) IF( INFO.GT.0 ) THEN INFO = SUBMAT*( N+1 ) + SUBMAT + MATSIZ - 1 RETURN END IF IWORK( I / 2+1 ) = IWORK( I+2 ) 90 CONTINUE SUBPBS = SUBPBS / 2 CURLVL = CURLVL + 1 GO TO 80 END IF * * end while * * Re-merge the eigenvalues/vectors which were deflated at the final * merge step. * DO 100 I = 1, N J = IWORK( INDXQ+I ) RWORK( I ) = D( J ) CALL ZCOPY( QSIZ, QSTORE( 1, J ), 1, Q( 1, I ), 1 ) 100 CONTINUE CALL DCOPY( N, RWORK, 1, D, 1 ) * RETURN * * End of ZLAED0 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlacrm.f0000644000000000000000000000013213543334726015221 xustar0030 mtime=1569569238.710645725 30 atime=1569569238.709645726 30 ctime=1569569238.710645725 elk-6.3.2/src/LAPACK/zlacrm.f0000644002504400250440000001135113543334726017271 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLACRM multiplies a complex matrix by a square real matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLACRM + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLACRM( M, N, A, LDA, B, LDB, C, LDC, RWORK ) * * .. Scalar Arguments .. * INTEGER LDA, LDB, LDC, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION B( LDB, * ), RWORK( * ) * COMPLEX*16 A( LDA, * ), C( LDC, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLACRM performs a very simple matrix-matrix multiplication: *> C := A * B, *> where A is M by N and complex; B is N by N and real; *> C is M by N and complex. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A and of the matrix C. *> M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns and rows of the matrix B and *> the number of columns of the matrix C. *> N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA, N) *> On entry, A contains the M by N matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >=max(1,M). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (LDB, N) *> On entry, B contains the N by N matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >=max(1,N). *> \endverbatim *> *> \param[out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC, N) *> On exit, C contains the M by N matrix C. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >=max(1,N). *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (2*M*N) *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLACRM( M, N, A, LDA, B, LDB, C, LDC, RWORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER LDA, LDB, LDC, M, N * .. * .. Array Arguments .. DOUBLE PRECISION B( LDB, * ), RWORK( * ) COMPLEX*16 A( LDA, * ), C( LDC, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D0, ZERO = 0.0D0 ) * .. * .. Local Scalars .. INTEGER I, J, L * .. * .. Intrinsic Functions .. INTRINSIC DBLE, DCMPLX, DIMAG * .. * .. External Subroutines .. EXTERNAL DGEMM * .. * .. Executable Statements .. * * Quick return if possible. * IF( ( M.EQ.0 ) .OR. ( N.EQ.0 ) ) $ RETURN * DO 20 J = 1, N DO 10 I = 1, M RWORK( ( J-1 )*M+I ) = DBLE( A( I, J ) ) 10 CONTINUE 20 CONTINUE * L = M*N + 1 CALL DGEMM( 'N', 'N', M, N, N, ONE, RWORK, M, B, LDB, ZERO, $ RWORK( L ), M ) DO 40 J = 1, N DO 30 I = 1, M C( I, J ) = RWORK( L+( J-1 )*M+I-1 ) 30 CONTINUE 40 CONTINUE * DO 60 J = 1, N DO 50 I = 1, M RWORK( ( J-1 )*M+I ) = DIMAG( A( I, J ) ) 50 CONTINUE 60 CONTINUE CALL DGEMM( 'N', 'N', M, N, N, ONE, RWORK, M, B, LDB, ZERO, $ RWORK( L ), M ) DO 80 J = 1, N DO 70 I = 1, M C( I, J ) = DCMPLX( DBLE( C( I, J ) ), $ RWORK( L+( J-1 )*M+I-1 ) ) 70 CONTINUE 80 CONTINUE * RETURN * * End of ZLACRM * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlarnv.f0000644000000000000000000000013213543334726015217 xustar0030 mtime=1569569238.714645723 30 atime=1569569238.713645723 30 ctime=1569569238.714645723 elk-6.3.2/src/LAPACK/dlarnv.f0000644002504400250440000001126213543334726017270 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARNV returns a vector of random numbers from a uniform or normal distribution. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARNV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARNV( IDIST, ISEED, N, X ) * * .. Scalar Arguments .. * INTEGER IDIST, N * .. * .. Array Arguments .. * INTEGER ISEED( 4 ) * DOUBLE PRECISION X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARNV returns a vector of n random real numbers from a uniform or *> normal distribution. *> \endverbatim * * Arguments: * ========== * *> \param[in] IDIST *> \verbatim *> IDIST is INTEGER *> Specifies the distribution of the random numbers: *> = 1: uniform (0,1) *> = 2: uniform (-1,1) *> = 3: normal (0,1) *> \endverbatim *> *> \param[in,out] ISEED *> \verbatim *> ISEED is INTEGER array, dimension (4) *> On entry, the seed of the random number generator; the array *> elements must be between 0 and 4095, and ISEED(4) must be *> odd. *> On exit, the seed is updated. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of random numbers to be generated. *> \endverbatim *> *> \param[out] X *> \verbatim *> X is DOUBLE PRECISION array, dimension (N) *> The generated random numbers. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> This routine calls the auxiliary routine DLARUV to generate random *> real numbers from a uniform (0,1) distribution, in batches of up to *> 128 using vectorisable code. The Box-Muller method is used to *> transform numbers from a uniform to a normal distribution. *> \endverbatim *> * ===================================================================== SUBROUTINE DLARNV( IDIST, ISEED, N, X ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IDIST, N * .. * .. Array Arguments .. INTEGER ISEED( 4 ) DOUBLE PRECISION X( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, TWO PARAMETER ( ONE = 1.0D+0, TWO = 2.0D+0 ) INTEGER LV PARAMETER ( LV = 128 ) DOUBLE PRECISION TWOPI PARAMETER ( TWOPI = 6.2831853071795864769252867663D+0 ) * .. * .. Local Scalars .. INTEGER I, IL, IL2, IV * .. * .. Local Arrays .. DOUBLE PRECISION U( LV ) * .. * .. Intrinsic Functions .. INTRINSIC COS, LOG, MIN, SQRT * .. * .. External Subroutines .. EXTERNAL DLARUV * .. * .. Executable Statements .. * DO 40 IV = 1, N, LV / 2 IL = MIN( LV / 2, N-IV+1 ) IF( IDIST.EQ.3 ) THEN IL2 = 2*IL ELSE IL2 = IL END IF * * Call DLARUV to generate IL2 numbers from a uniform (0,1) * distribution (IL2 <= LV) * CALL DLARUV( ISEED, IL2, U ) * IF( IDIST.EQ.1 ) THEN * * Copy generated numbers * DO 10 I = 1, IL X( IV+I-1 ) = U( I ) 10 CONTINUE ELSE IF( IDIST.EQ.2 ) THEN * * Convert generated numbers to uniform (-1,1) distribution * DO 20 I = 1, IL X( IV+I-1 ) = TWO*U( I ) - ONE 20 CONTINUE ELSE IF( IDIST.EQ.3 ) THEN * * Convert generated numbers to normal (0,1) distribution * DO 30 I = 1, IL X( IV+I-1 ) = SQRT( -TWO*LOG( U( 2*I-1 ) ) )* $ COS( TWOPI*U( 2*I ) ) 30 CONTINUE END IF 40 CONTINUE RETURN * * End of DLARNV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlagtf.f0000644000000000000000000000012713543334726015176 xustar0029 mtime=1569569238.71964572 29 atime=1569569238.71864572 29 ctime=1569569238.71964572 elk-6.3.2/src/LAPACK/dlagtf.f0000644002504400250440000002006213543334726017241 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAGTF computes an LU factorization of a matrix T-λI, where T is a general tridiagonal matrix, and λ a scalar, using partial pivoting with row interchanges. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAGTF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAGTF( N, A, LAMBDA, B, C, TOL, D, IN, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, N * DOUBLE PRECISION LAMBDA, TOL * .. * .. Array Arguments .. * INTEGER IN( * ) * DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAGTF factorizes the matrix (T - lambda*I), where T is an n by n *> tridiagonal matrix and lambda is a scalar, as *> *> T - lambda*I = PLU, *> *> where P is a permutation matrix, L is a unit lower tridiagonal matrix *> with at most one non-zero sub-diagonal elements per column and U is *> an upper triangular matrix with at most two non-zero super-diagonal *> elements per column. *> *> The factorization is obtained by Gaussian elimination with partial *> pivoting and implicit row scaling. *> *> The parameter LAMBDA is included in the routine so that DLAGTF may *> be used, in conjunction with DLAGTS, to obtain eigenvectors of T by *> inverse iteration. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix T. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (N) *> On entry, A must contain the diagonal elements of T. *> *> On exit, A is overwritten by the n diagonal elements of the *> upper triangular matrix U of the factorization of T. *> \endverbatim *> *> \param[in] LAMBDA *> \verbatim *> LAMBDA is DOUBLE PRECISION *> On entry, the scalar lambda. *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (N-1) *> On entry, B must contain the (n-1) super-diagonal elements of *> T. *> *> On exit, B is overwritten by the (n-1) super-diagonal *> elements of the matrix U of the factorization of T. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (N-1) *> On entry, C must contain the (n-1) sub-diagonal elements of *> T. *> *> On exit, C is overwritten by the (n-1) sub-diagonal elements *> of the matrix L of the factorization of T. *> \endverbatim *> *> \param[in] TOL *> \verbatim *> TOL is DOUBLE PRECISION *> On entry, a relative tolerance used to indicate whether or *> not the matrix (T - lambda*I) is nearly singular. TOL should *> normally be chose as approximately the largest relative error *> in the elements of T. For example, if the elements of T are *> correct to about 4 significant figures, then TOL should be *> set to about 5*10**(-4). If TOL is supplied as less than eps, *> where eps is the relative machine precision, then the value *> eps is used in place of TOL. *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N-2) *> On exit, D is overwritten by the (n-2) second super-diagonal *> elements of the matrix U of the factorization of T. *> \endverbatim *> *> \param[out] IN *> \verbatim *> IN is INTEGER array, dimension (N) *> On exit, IN contains details of the permutation matrix P. If *> an interchange occurred at the kth step of the elimination, *> then IN(k) = 1, otherwise IN(k) = 0. The element IN(n) *> returns the smallest positive integer j such that *> *> abs( u(j,j) ).le. norm( (T - lambda*I)(j) )*TOL, *> *> where norm( A(j) ) denotes the sum of the absolute values of *> the jth row of the matrix A. If no such j exists then IN(n) *> is returned as zero. If IN(n) is returned as positive, then a *> diagonal element of U is small, indicating that *> (T - lambda*I) is singular or nearly singular, *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0 : successful exit *> .lt. 0: if INFO = -k, the kth argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLAGTF( N, A, LAMBDA, B, C, TOL, D, IN, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, N DOUBLE PRECISION LAMBDA, TOL * .. * .. Array Arguments .. INTEGER IN( * ) DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER K DOUBLE PRECISION EPS, MULT, PIV1, PIV2, SCALE1, SCALE2, TEMP, TL * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Executable Statements .. * INFO = 0 IF( N.LT.0 ) THEN INFO = -1 CALL XERBLA( 'DLAGTF', -INFO ) RETURN END IF * IF( N.EQ.0 ) $ RETURN * A( 1 ) = A( 1 ) - LAMBDA IN( N ) = 0 IF( N.EQ.1 ) THEN IF( A( 1 ).EQ.ZERO ) $ IN( 1 ) = 1 RETURN END IF * EPS = DLAMCH( 'Epsilon' ) * TL = MAX( TOL, EPS ) SCALE1 = ABS( A( 1 ) ) + ABS( B( 1 ) ) DO 10 K = 1, N - 1 A( K+1 ) = A( K+1 ) - LAMBDA SCALE2 = ABS( C( K ) ) + ABS( A( K+1 ) ) IF( K.LT.( N-1 ) ) $ SCALE2 = SCALE2 + ABS( B( K+1 ) ) IF( A( K ).EQ.ZERO ) THEN PIV1 = ZERO ELSE PIV1 = ABS( A( K ) ) / SCALE1 END IF IF( C( K ).EQ.ZERO ) THEN IN( K ) = 0 PIV2 = ZERO SCALE1 = SCALE2 IF( K.LT.( N-1 ) ) $ D( K ) = ZERO ELSE PIV2 = ABS( C( K ) ) / SCALE2 IF( PIV2.LE.PIV1 ) THEN IN( K ) = 0 SCALE1 = SCALE2 C( K ) = C( K ) / A( K ) A( K+1 ) = A( K+1 ) - C( K )*B( K ) IF( K.LT.( N-1 ) ) $ D( K ) = ZERO ELSE IN( K ) = 1 MULT = A( K ) / C( K ) A( K ) = C( K ) TEMP = A( K+1 ) A( K+1 ) = B( K ) - MULT*TEMP IF( K.LT.( N-1 ) ) THEN D( K ) = B( K+1 ) B( K+1 ) = -MULT*D( K ) END IF B( K ) = TEMP C( K ) = MULT END IF END IF IF( ( MAX( PIV1, PIV2 ).LE.TL ) .AND. ( IN( N ).EQ.0 ) ) $ IN( N ) = K 10 CONTINUE IF( ( ABS( A( N ) ).LE.SCALE1*TL ) .AND. ( IN( N ).EQ.0 ) ) $ IN( N ) = N * RETURN * * End of DLAGTF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlagts.f0000644000000000000000000000013213543334726015207 xustar0030 mtime=1569569238.724645716 30 atime=1569569238.722645718 30 ctime=1569569238.724645716 elk-6.3.2/src/LAPACK/dlagts.f0000644002504400250440000003034113543334726017257 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAGTS solves the system of equations (T-λI)x = y or (T-λI)Tx = y,where T is a general tridiagonal matrix and λ a scalar, using the LU factorization computed by slagtf. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAGTS + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAGTS( JOB, N, A, B, C, D, IN, Y, TOL, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, JOB, N * DOUBLE PRECISION TOL * .. * .. Array Arguments .. * INTEGER IN( * ) * DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ), Y( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAGTS may be used to solve one of the systems of equations *> *> (T - lambda*I)*x = y or (T - lambda*I)**T*x = y, *> *> where T is an n by n tridiagonal matrix, for x, following the *> factorization of (T - lambda*I) as *> *> (T - lambda*I) = P*L*U , *> *> by routine DLAGTF. The choice of equation to be solved is *> controlled by the argument JOB, and in each case there is an option *> to perturb zero or very small diagonal elements of U, this option *> being intended for use in applications such as inverse iteration. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOB *> \verbatim *> JOB is INTEGER *> Specifies the job to be performed by DLAGTS as follows: *> = 1: The equations (T - lambda*I)x = y are to be solved, *> but diagonal elements of U are not to be perturbed. *> = -1: The equations (T - lambda*I)x = y are to be solved *> and, if overflow would otherwise occur, the diagonal *> elements of U are to be perturbed. See argument TOL *> below. *> = 2: The equations (T - lambda*I)**Tx = y are to be solved, *> but diagonal elements of U are not to be perturbed. *> = -2: The equations (T - lambda*I)**Tx = y are to be solved *> and, if overflow would otherwise occur, the diagonal *> elements of U are to be perturbed. See argument TOL *> below. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix T. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (N) *> On entry, A must contain the diagonal elements of U as *> returned from DLAGTF. *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION array, dimension (N-1) *> On entry, B must contain the first super-diagonal elements of *> U as returned from DLAGTF. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (N-1) *> On entry, C must contain the sub-diagonal elements of L as *> returned from DLAGTF. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N-2) *> On entry, D must contain the second super-diagonal elements *> of U as returned from DLAGTF. *> \endverbatim *> *> \param[in] IN *> \verbatim *> IN is INTEGER array, dimension (N) *> On entry, IN must contain details of the matrix P as returned *> from DLAGTF. *> \endverbatim *> *> \param[in,out] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension (N) *> On entry, the right hand side vector y. *> On exit, Y is overwritten by the solution vector x. *> \endverbatim *> *> \param[in,out] TOL *> \verbatim *> TOL is DOUBLE PRECISION *> On entry, with JOB .lt. 0, TOL should be the minimum *> perturbation to be made to very small diagonal elements of U. *> TOL should normally be chosen as about eps*norm(U), where eps *> is the relative machine precision, but if TOL is supplied as *> non-positive, then it is reset to eps*max( abs( u(i,j) ) ). *> If JOB .gt. 0 then TOL is not referenced. *> *> On exit, TOL is changed as described above, only if TOL is *> non-positive on entry. Otherwise TOL is unchanged. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0 : successful exit *> .lt. 0: if INFO = -i, the i-th argument had an illegal value *> .gt. 0: overflow would occur when computing the INFO(th) *> element of the solution vector x. This can only occur *> when JOB is supplied as positive and either means *> that a diagonal element of U is very small, or that *> the elements of the right-hand side vector y are very *> large. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== SUBROUTINE DLAGTS( JOB, N, A, B, C, D, IN, Y, TOL, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, JOB, N DOUBLE PRECISION TOL * .. * .. Array Arguments .. INTEGER IN( * ) DOUBLE PRECISION A( * ), B( * ), C( * ), D( * ), Y( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER K DOUBLE PRECISION ABSAK, AK, BIGNUM, EPS, PERT, SFMIN, TEMP * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SIGN * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Executable Statements .. * INFO = 0 IF( ( ABS( JOB ).GT.2 ) .OR. ( JOB.EQ.0 ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAGTS', -INFO ) RETURN END IF * IF( N.EQ.0 ) $ RETURN * EPS = DLAMCH( 'Epsilon' ) SFMIN = DLAMCH( 'Safe minimum' ) BIGNUM = ONE / SFMIN * IF( JOB.LT.0 ) THEN IF( TOL.LE.ZERO ) THEN TOL = ABS( A( 1 ) ) IF( N.GT.1 ) $ TOL = MAX( TOL, ABS( A( 2 ) ), ABS( B( 1 ) ) ) DO 10 K = 3, N TOL = MAX( TOL, ABS( A( K ) ), ABS( B( K-1 ) ), $ ABS( D( K-2 ) ) ) 10 CONTINUE TOL = TOL*EPS IF( TOL.EQ.ZERO ) $ TOL = EPS END IF END IF * IF( ABS( JOB ).EQ.1 ) THEN DO 20 K = 2, N IF( IN( K-1 ).EQ.0 ) THEN Y( K ) = Y( K ) - C( K-1 )*Y( K-1 ) ELSE TEMP = Y( K-1 ) Y( K-1 ) = Y( K ) Y( K ) = TEMP - C( K-1 )*Y( K ) END IF 20 CONTINUE IF( JOB.EQ.1 ) THEN DO 30 K = N, 1, -1 IF( K.LE.N-2 ) THEN TEMP = Y( K ) - B( K )*Y( K+1 ) - D( K )*Y( K+2 ) ELSE IF( K.EQ.N-1 ) THEN TEMP = Y( K ) - B( K )*Y( K+1 ) ELSE TEMP = Y( K ) END IF AK = A( K ) ABSAK = ABS( AK ) IF( ABSAK.LT.ONE ) THEN IF( ABSAK.LT.SFMIN ) THEN IF( ABSAK.EQ.ZERO .OR. ABS( TEMP )*SFMIN.GT.ABSAK ) $ THEN INFO = K RETURN ELSE TEMP = TEMP*BIGNUM AK = AK*BIGNUM END IF ELSE IF( ABS( TEMP ).GT.ABSAK*BIGNUM ) THEN INFO = K RETURN END IF END IF Y( K ) = TEMP / AK 30 CONTINUE ELSE DO 50 K = N, 1, -1 IF( K.LE.N-2 ) THEN TEMP = Y( K ) - B( K )*Y( K+1 ) - D( K )*Y( K+2 ) ELSE IF( K.EQ.N-1 ) THEN TEMP = Y( K ) - B( K )*Y( K+1 ) ELSE TEMP = Y( K ) END IF AK = A( K ) PERT = SIGN( TOL, AK ) 40 CONTINUE ABSAK = ABS( AK ) IF( ABSAK.LT.ONE ) THEN IF( ABSAK.LT.SFMIN ) THEN IF( ABSAK.EQ.ZERO .OR. ABS( TEMP )*SFMIN.GT.ABSAK ) $ THEN AK = AK + PERT PERT = 2*PERT GO TO 40 ELSE TEMP = TEMP*BIGNUM AK = AK*BIGNUM END IF ELSE IF( ABS( TEMP ).GT.ABSAK*BIGNUM ) THEN AK = AK + PERT PERT = 2*PERT GO TO 40 END IF END IF Y( K ) = TEMP / AK 50 CONTINUE END IF ELSE * * Come to here if JOB = 2 or -2 * IF( JOB.EQ.2 ) THEN DO 60 K = 1, N IF( K.GE.3 ) THEN TEMP = Y( K ) - B( K-1 )*Y( K-1 ) - D( K-2 )*Y( K-2 ) ELSE IF( K.EQ.2 ) THEN TEMP = Y( K ) - B( K-1 )*Y( K-1 ) ELSE TEMP = Y( K ) END IF AK = A( K ) ABSAK = ABS( AK ) IF( ABSAK.LT.ONE ) THEN IF( ABSAK.LT.SFMIN ) THEN IF( ABSAK.EQ.ZERO .OR. ABS( TEMP )*SFMIN.GT.ABSAK ) $ THEN INFO = K RETURN ELSE TEMP = TEMP*BIGNUM AK = AK*BIGNUM END IF ELSE IF( ABS( TEMP ).GT.ABSAK*BIGNUM ) THEN INFO = K RETURN END IF END IF Y( K ) = TEMP / AK 60 CONTINUE ELSE DO 80 K = 1, N IF( K.GE.3 ) THEN TEMP = Y( K ) - B( K-1 )*Y( K-1 ) - D( K-2 )*Y( K-2 ) ELSE IF( K.EQ.2 ) THEN TEMP = Y( K ) - B( K-1 )*Y( K-1 ) ELSE TEMP = Y( K ) END IF AK = A( K ) PERT = SIGN( TOL, AK ) 70 CONTINUE ABSAK = ABS( AK ) IF( ABSAK.LT.ONE ) THEN IF( ABSAK.LT.SFMIN ) THEN IF( ABSAK.EQ.ZERO .OR. ABS( TEMP )*SFMIN.GT.ABSAK ) $ THEN AK = AK + PERT PERT = 2*PERT GO TO 70 ELSE TEMP = TEMP*BIGNUM AK = AK*BIGNUM END IF ELSE IF( ABS( TEMP ).GT.ABSAK*BIGNUM ) THEN AK = AK + PERT PERT = 2*PERT GO TO 70 END IF END IF Y( K ) = TEMP / AK 80 CONTINUE END IF * DO 90 K = N, 2, -1 IF( IN( K-1 ).EQ.0 ) THEN Y( K-1 ) = Y( K-1 ) - C( K-1 )*Y( K ) ELSE TEMP = Y( K-1 ) Y( K-1 ) = Y( K ) Y( K ) = TEMP - C( K-1 )*Y( K ) END IF 90 CONTINUE END IF * * End of DLAGTS * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlasr.f0000644000000000000000000000013213543334726015064 xustar0030 mtime=1569569238.729645713 30 atime=1569569238.727645714 30 ctime=1569569238.729645713 elk-6.3.2/src/LAPACK/zlasr.f0000644002504400250440000003543313543334726017143 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLASR applies a sequence of plane rotations to a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLASR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) * * .. Scalar Arguments .. * CHARACTER DIRECT, PIVOT, SIDE * INTEGER LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION C( * ), S( * ) * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLASR applies a sequence of real plane rotations to a complex matrix *> A, from either the left or the right. *> *> When SIDE = 'L', the transformation takes the form *> *> A := P*A *> *> and when SIDE = 'R', the transformation takes the form *> *> A := A*P**T *> *> where P is an orthogonal matrix consisting of a sequence of z plane *> rotations, with z = M when SIDE = 'L' and z = N when SIDE = 'R', *> and P**T is the transpose of P. *> *> When DIRECT = 'F' (Forward sequence), then *> *> P = P(z-1) * ... * P(2) * P(1) *> *> and when DIRECT = 'B' (Backward sequence), then *> *> P = P(1) * P(2) * ... * P(z-1) *> *> where P(k) is a plane rotation matrix defined by the 2-by-2 rotation *> *> R(k) = ( c(k) s(k) ) *> = ( -s(k) c(k) ). *> *> When PIVOT = 'V' (Variable pivot), the rotation is performed *> for the plane (k,k+1), i.e., P(k) has the form *> *> P(k) = ( 1 ) *> ( ... ) *> ( 1 ) *> ( c(k) s(k) ) *> ( -s(k) c(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> *> where R(k) appears as a rank-2 modification to the identity matrix in *> rows and columns k and k+1. *> *> When PIVOT = 'T' (Top pivot), the rotation is performed for the *> plane (1,k+1), so P(k) has the form *> *> P(k) = ( c(k) s(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> ( -s(k) c(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> *> where R(k) appears in rows and columns 1 and k+1. *> *> Similarly, when PIVOT = 'B' (Bottom pivot), the rotation is *> performed for the plane (k,z), giving P(k) the form *> *> P(k) = ( 1 ) *> ( ... ) *> ( 1 ) *> ( c(k) s(k) ) *> ( 1 ) *> ( ... ) *> ( 1 ) *> ( -s(k) c(k) ) *> *> where R(k) appears in rows and columns k and z. The rotations are *> performed without ever forming P(k) explicitly. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> Specifies whether the plane rotation matrix P is applied to *> A on the left or the right. *> = 'L': Left, compute A := P*A *> = 'R': Right, compute A:= A*P**T *> \endverbatim *> *> \param[in] PIVOT *> \verbatim *> PIVOT is CHARACTER*1 *> Specifies the plane for which P(k) is a plane rotation *> matrix. *> = 'V': Variable pivot, the plane (k,k+1) *> = 'T': Top pivot, the plane (1,k+1) *> = 'B': Bottom pivot, the plane (k,z) *> \endverbatim *> *> \param[in] DIRECT *> \verbatim *> DIRECT is CHARACTER*1 *> Specifies whether P is a forward or backward sequence of *> plane rotations. *> = 'F': Forward, P = P(z-1)*...*P(2)*P(1) *> = 'B': Backward, P = P(1)*P(2)*...*P(z-1) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. If m <= 1, an immediate *> return is effected. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. If n <= 1, an *> immediate return is effected. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> The cosines c(k) of the plane rotations. *> \endverbatim *> *> \param[in] S *> \verbatim *> S is DOUBLE PRECISION array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> The sines s(k) of the plane rotations. The 2-by-2 plane *> rotation part of the matrix P(k), R(k), has the form *> R(k) = ( c(k) s(k) ) *> ( -s(k) c(k) ). *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The M-by-N matrix A. On exit, A is overwritten by P*A if *> SIDE = 'R' or by A*P**T if SIDE = 'L'. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIRECT, PIVOT, SIDE INTEGER LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION C( * ), S( * ) COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, INFO, J DOUBLE PRECISION CTEMP, STEMP COMPLEX*16 TEMP * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( .NOT.( LSAME( SIDE, 'L' ) .OR. LSAME( SIDE, 'R' ) ) ) THEN INFO = 1 ELSE IF( .NOT.( LSAME( PIVOT, 'V' ) .OR. LSAME( PIVOT, $ 'T' ) .OR. LSAME( PIVOT, 'B' ) ) ) THEN INFO = 2 ELSE IF( .NOT.( LSAME( DIRECT, 'F' ) .OR. LSAME( DIRECT, 'B' ) ) ) $ THEN INFO = 3 ELSE IF( M.LT.0 ) THEN INFO = 4 ELSE IF( N.LT.0 ) THEN INFO = 5 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = 9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZLASR ', INFO ) RETURN END IF * * Quick return if possible * IF( ( M.EQ.0 ) .OR. ( N.EQ.0 ) ) $ RETURN IF( LSAME( SIDE, 'L' ) ) THEN * * Form P * A * IF( LSAME( PIVOT, 'V' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 20 J = 1, M - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 10 I = 1, N TEMP = A( J+1, I ) A( J+1, I ) = CTEMP*TEMP - STEMP*A( J, I ) A( J, I ) = STEMP*TEMP + CTEMP*A( J, I ) 10 CONTINUE END IF 20 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 40 J = M - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 30 I = 1, N TEMP = A( J+1, I ) A( J+1, I ) = CTEMP*TEMP - STEMP*A( J, I ) A( J, I ) = STEMP*TEMP + CTEMP*A( J, I ) 30 CONTINUE END IF 40 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'T' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 60 J = 2, M CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 50 I = 1, N TEMP = A( J, I ) A( J, I ) = CTEMP*TEMP - STEMP*A( 1, I ) A( 1, I ) = STEMP*TEMP + CTEMP*A( 1, I ) 50 CONTINUE END IF 60 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 80 J = M, 2, -1 CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 70 I = 1, N TEMP = A( J, I ) A( J, I ) = CTEMP*TEMP - STEMP*A( 1, I ) A( 1, I ) = STEMP*TEMP + CTEMP*A( 1, I ) 70 CONTINUE END IF 80 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'B' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 100 J = 1, M - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 90 I = 1, N TEMP = A( J, I ) A( J, I ) = STEMP*A( M, I ) + CTEMP*TEMP A( M, I ) = CTEMP*A( M, I ) - STEMP*TEMP 90 CONTINUE END IF 100 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 120 J = M - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 110 I = 1, N TEMP = A( J, I ) A( J, I ) = STEMP*A( M, I ) + CTEMP*TEMP A( M, I ) = CTEMP*A( M, I ) - STEMP*TEMP 110 CONTINUE END IF 120 CONTINUE END IF END IF ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form A * P**T * IF( LSAME( PIVOT, 'V' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 140 J = 1, N - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 130 I = 1, M TEMP = A( I, J+1 ) A( I, J+1 ) = CTEMP*TEMP - STEMP*A( I, J ) A( I, J ) = STEMP*TEMP + CTEMP*A( I, J ) 130 CONTINUE END IF 140 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 160 J = N - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 150 I = 1, M TEMP = A( I, J+1 ) A( I, J+1 ) = CTEMP*TEMP - STEMP*A( I, J ) A( I, J ) = STEMP*TEMP + CTEMP*A( I, J ) 150 CONTINUE END IF 160 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'T' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 180 J = 2, N CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 170 I = 1, M TEMP = A( I, J ) A( I, J ) = CTEMP*TEMP - STEMP*A( I, 1 ) A( I, 1 ) = STEMP*TEMP + CTEMP*A( I, 1 ) 170 CONTINUE END IF 180 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 200 J = N, 2, -1 CTEMP = C( J-1 ) STEMP = S( J-1 ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 190 I = 1, M TEMP = A( I, J ) A( I, J ) = CTEMP*TEMP - STEMP*A( I, 1 ) A( I, 1 ) = STEMP*TEMP + CTEMP*A( I, 1 ) 190 CONTINUE END IF 200 CONTINUE END IF ELSE IF( LSAME( PIVOT, 'B' ) ) THEN IF( LSAME( DIRECT, 'F' ) ) THEN DO 220 J = 1, N - 1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 210 I = 1, M TEMP = A( I, J ) A( I, J ) = STEMP*A( I, N ) + CTEMP*TEMP A( I, N ) = CTEMP*A( I, N ) - STEMP*TEMP 210 CONTINUE END IF 220 CONTINUE ELSE IF( LSAME( DIRECT, 'B' ) ) THEN DO 240 J = N - 1, 1, -1 CTEMP = C( J ) STEMP = S( J ) IF( ( CTEMP.NE.ONE ) .OR. ( STEMP.NE.ZERO ) ) THEN DO 230 I = 1, M TEMP = A( I, J ) A( I, J ) = STEMP*A( I, N ) + CTEMP*TEMP A( I, N ) = CTEMP*A( I, N ) - STEMP*TEMP 230 CONTINUE END IF 240 CONTINUE END IF END IF END IF * RETURN * * End of ZLASR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlatrs.f0000644000000000000000000000013213543334726015250 xustar0030 mtime=1569569238.735645709 30 atime=1569569238.732645711 30 ctime=1569569238.735645709 elk-6.3.2/src/LAPACK/zlatrs.f0000644002504400250440000007253513543334726017333 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLATRS solves a triangular system of equations with the scale factor set to prevent overflow. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLATRS + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLATRS( UPLO, TRANS, DIAG, NORMIN, N, A, LDA, X, SCALE, * CNORM, INFO ) * * .. Scalar Arguments .. * CHARACTER DIAG, NORMIN, TRANS, UPLO * INTEGER INFO, LDA, N * DOUBLE PRECISION SCALE * .. * .. Array Arguments .. * DOUBLE PRECISION CNORM( * ) * COMPLEX*16 A( LDA, * ), X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLATRS solves one of the triangular systems *> *> A * x = s*b, A**T * x = s*b, or A**H * x = s*b, *> *> with scaling to prevent overflow. Here A is an upper or lower *> triangular matrix, A**T denotes the transpose of A, A**H denotes the *> conjugate transpose of A, x and b are n-element vectors, and s is a *> scaling factor, usually less than or equal to 1, chosen so that the *> components of x will be less than the overflow threshold. If the *> unscaled problem will not cause overflow, the Level 2 BLAS routine *> ZTRSV is called. If the matrix A is singular (A(j,j) = 0 for some j), *> then s is set to 0 and a non-trivial solution to A*x = 0 is returned. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the matrix A is upper or lower triangular. *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> Specifies the operation applied to A. *> = 'N': Solve A * x = s*b (No transpose) *> = 'T': Solve A**T * x = s*b (Transpose) *> = 'C': Solve A**H * x = s*b (Conjugate transpose) *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> Specifies whether or not the matrix A is unit triangular. *> = 'N': Non-unit triangular *> = 'U': Unit triangular *> \endverbatim *> *> \param[in] NORMIN *> \verbatim *> NORMIN is CHARACTER*1 *> Specifies whether CNORM has been set or not. *> = 'Y': CNORM contains the column norms on entry *> = 'N': CNORM is not set on entry. On exit, the norms will *> be computed and stored in CNORM. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The triangular matrix A. If UPLO = 'U', the leading n by n *> upper triangular part of the array A contains the upper *> triangular matrix, and the strictly lower triangular part of *> A is not referenced. If UPLO = 'L', the leading n by n lower *> triangular part of the array A contains the lower triangular *> matrix, and the strictly upper triangular part of A is not *> referenced. If DIAG = 'U', the diagonal elements of A are *> also not referenced and are assumed to be 1. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max (1,N). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension (N) *> On entry, the right hand side b of the triangular system. *> On exit, X is overwritten by the solution vector x. *> \endverbatim *> *> \param[out] SCALE *> \verbatim *> SCALE is DOUBLE PRECISION *> The scaling factor s for the triangular system *> A * x = s*b, A**T * x = s*b, or A**H * x = s*b. *> If SCALE = 0, the matrix A is singular or badly scaled, and *> the vector x is an exact or approximate solution to A*x = 0. *> \endverbatim *> *> \param[in,out] CNORM *> \verbatim *> CNORM is DOUBLE PRECISION array, dimension (N) *> *> If NORMIN = 'Y', CNORM is an input argument and CNORM(j) *> contains the norm of the off-diagonal part of the j-th column *> of A. If TRANS = 'N', CNORM(j) must be greater than or equal *> to the infinity-norm, and if TRANS = 'T' or 'C', CNORM(j) *> must be greater than or equal to the 1-norm. *> *> If NORMIN = 'N', CNORM is an output argument and CNORM(j) *> returns the 1-norm of the offdiagonal part of the j-th column *> of A. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -k, the k-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> A rough bound on x is computed; if that is less than overflow, ZTRSV *> is called, otherwise, specific code is used which checks for possible *> overflow or divide-by-zero at every operation. *> *> A columnwise scheme is used for solving A*x = b. The basic algorithm *> if A is lower triangular is *> *> x[1:n] := b[1:n] *> for j = 1, ..., n *> x(j) := x(j) / A(j,j) *> x[j+1:n] := x[j+1:n] - x(j) * A[j+1:n,j] *> end *> *> Define bounds on the components of x after j iterations of the loop: *> M(j) = bound on x[1:j] *> G(j) = bound on x[j+1:n] *> Initially, let M(0) = 0 and G(0) = max{x(i), i=1,...,n}. *> *> Then for iteration j+1 we have *> M(j+1) <= G(j) / | A(j+1,j+1) | *> G(j+1) <= G(j) + M(j+1) * | A[j+2:n,j+1] | *> <= G(j) ( 1 + CNORM(j+1) / | A(j+1,j+1) | ) *> *> where CNORM(j+1) is greater than or equal to the infinity-norm of *> column j+1 of A, not counting the diagonal. Hence *> *> G(j) <= G(0) product ( 1 + CNORM(i) / | A(i,i) | ) *> 1<=i<=j *> and *> *> |x(j)| <= ( G(0) / |A(j,j)| ) product ( 1 + CNORM(i) / |A(i,i)| ) *> 1<=i< j *> *> Since |x(j)| <= M(j), we use the Level 2 BLAS routine ZTRSV if the *> reciprocal of the largest M(j), j=1,..,n, is larger than *> max(underflow, 1/overflow). *> *> The bound on x(j) is also used to determine when a step in the *> columnwise method can be performed without fear of overflow. If *> the computed bound is greater than a large constant, x is scaled to *> prevent overflow, but if the bound overflows, x is set to 0, x(j) to *> 1, and scale to 0, and a non-trivial solution to A*x = 0 is found. *> *> Similarly, a row-wise scheme is used to solve A**T *x = b or *> A**H *x = b. The basic algorithm for A upper triangular is *> *> for j = 1, ..., n *> x(j) := ( b(j) - A[1:j-1,j]' * x[1:j-1] ) / A(j,j) *> end *> *> We simultaneously compute two bounds *> G(j) = bound on ( b(i) - A[1:i-1,i]' * x[1:i-1] ), 1<=i<=j *> M(j) = bound on x(i), 1<=i<=j *> *> The initial values are G(0) = 0, M(0) = max{b(i), i=1,..,n}, and we *> add the constraint G(j) >= G(j-1) and M(j) >= M(j-1) for j >= 1. *> Then the bound on x(j) is *> *> M(j) <= M(j-1) * ( 1 + CNORM(j) ) / | A(j,j) | *> *> <= M(0) * product ( ( 1 + CNORM(i) ) / |A(i,i)| ) *> 1<=i<=j *> *> and we can safely call ZTRSV if 1/M(n) and 1/G(n) are both greater *> than max(underflow, 1/overflow). *> \endverbatim *> * ===================================================================== SUBROUTINE ZLATRS( UPLO, TRANS, DIAG, NORMIN, N, A, LDA, X, SCALE, $ CNORM, INFO ) * * -- LAPACK auxiliary routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. CHARACTER DIAG, NORMIN, TRANS, UPLO INTEGER INFO, LDA, N DOUBLE PRECISION SCALE * .. * .. Array Arguments .. DOUBLE PRECISION CNORM( * ) COMPLEX*16 A( LDA, * ), X( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, HALF, ONE, TWO PARAMETER ( ZERO = 0.0D+0, HALF = 0.5D+0, ONE = 1.0D+0, $ TWO = 2.0D+0 ) * .. * .. Local Scalars .. LOGICAL NOTRAN, NOUNIT, UPPER INTEGER I, IMAX, J, JFIRST, JINC, JLAST DOUBLE PRECISION BIGNUM, GROW, REC, SMLNUM, TJJ, TMAX, TSCAL, $ XBND, XJ, XMAX COMPLEX*16 CSUMJ, TJJS, USCAL, ZDUM * .. * .. External Functions .. LOGICAL LSAME INTEGER IDAMAX, IZAMAX DOUBLE PRECISION DLAMCH, DZASUM COMPLEX*16 ZDOTC, ZDOTU, ZLADIV EXTERNAL LSAME, IDAMAX, IZAMAX, DLAMCH, DZASUM, ZDOTC, $ ZDOTU, ZLADIV * .. * .. External Subroutines .. EXTERNAL DSCAL, XERBLA, ZAXPY, ZDSCAL, ZTRSV, DLABAD * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, MAX, MIN * .. * .. Statement Functions .. DOUBLE PRECISION CABS1, CABS2 * .. * .. Statement Function definitions .. CABS1( ZDUM ) = ABS( DBLE( ZDUM ) ) + ABS( DIMAG( ZDUM ) ) CABS2( ZDUM ) = ABS( DBLE( ZDUM ) / 2.D0 ) + $ ABS( DIMAG( ZDUM ) / 2.D0 ) * .. * .. Executable Statements .. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) NOTRAN = LSAME( TRANS, 'N' ) NOUNIT = LSAME( DIAG, 'N' ) * * Test the input parameters. * IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) .AND. .NOT. $ LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( .NOT.NOUNIT .AND. .NOT.LSAME( DIAG, 'U' ) ) THEN INFO = -3 ELSE IF( .NOT.LSAME( NORMIN, 'Y' ) .AND. .NOT. $ LSAME( NORMIN, 'N' ) ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZLATRS', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Determine machine dependent parameters to control overflow. * SMLNUM = DLAMCH( 'Safe minimum' ) BIGNUM = ONE / SMLNUM CALL DLABAD( SMLNUM, BIGNUM ) SMLNUM = SMLNUM / DLAMCH( 'Precision' ) BIGNUM = ONE / SMLNUM SCALE = ONE * IF( LSAME( NORMIN, 'N' ) ) THEN * * Compute the 1-norm of each column, not including the diagonal. * IF( UPPER ) THEN * * A is upper triangular. * DO 10 J = 1, N CNORM( J ) = DZASUM( J-1, A( 1, J ), 1 ) 10 CONTINUE ELSE * * A is lower triangular. * DO 20 J = 1, N - 1 CNORM( J ) = DZASUM( N-J, A( J+1, J ), 1 ) 20 CONTINUE CNORM( N ) = ZERO END IF END IF * * Scale the column norms by TSCAL if the maximum element in CNORM is * greater than BIGNUM/2. * IMAX = IDAMAX( N, CNORM, 1 ) TMAX = CNORM( IMAX ) IF( TMAX.LE.BIGNUM*HALF ) THEN TSCAL = ONE ELSE TSCAL = HALF / ( SMLNUM*TMAX ) CALL DSCAL( N, TSCAL, CNORM, 1 ) END IF * * Compute a bound on the computed solution vector to see if the * Level 2 BLAS routine ZTRSV can be used. * XMAX = ZERO DO 30 J = 1, N XMAX = MAX( XMAX, CABS2( X( J ) ) ) 30 CONTINUE XBND = XMAX * IF( NOTRAN ) THEN * * Compute the growth in A * x = b. * IF( UPPER ) THEN JFIRST = N JLAST = 1 JINC = -1 ELSE JFIRST = 1 JLAST = N JINC = 1 END IF * IF( TSCAL.NE.ONE ) THEN GROW = ZERO GO TO 60 END IF * IF( NOUNIT ) THEN * * A is non-unit triangular. * * Compute GROW = 1/G(j) and XBND = 1/M(j). * Initially, G(0) = max{x(i), i=1,...,n}. * GROW = HALF / MAX( XBND, SMLNUM ) XBND = GROW DO 40 J = JFIRST, JLAST, JINC * * Exit the loop if the growth factor is too small. * IF( GROW.LE.SMLNUM ) $ GO TO 60 * TJJS = A( J, J ) TJJ = CABS1( TJJS ) * IF( TJJ.GE.SMLNUM ) THEN * * M(j) = G(j-1) / abs(A(j,j)) * XBND = MIN( XBND, MIN( ONE, TJJ )*GROW ) ELSE * * M(j) could overflow, set XBND to 0. * XBND = ZERO END IF * IF( TJJ+CNORM( J ).GE.SMLNUM ) THEN * * G(j) = G(j-1)*( 1 + CNORM(j) / abs(A(j,j)) ) * GROW = GROW*( TJJ / ( TJJ+CNORM( J ) ) ) ELSE * * G(j) could overflow, set GROW to 0. * GROW = ZERO END IF 40 CONTINUE GROW = XBND ELSE * * A is unit triangular. * * Compute GROW = 1/G(j), where G(0) = max{x(i), i=1,...,n}. * GROW = MIN( ONE, HALF / MAX( XBND, SMLNUM ) ) DO 50 J = JFIRST, JLAST, JINC * * Exit the loop if the growth factor is too small. * IF( GROW.LE.SMLNUM ) $ GO TO 60 * * G(j) = G(j-1)*( 1 + CNORM(j) ) * GROW = GROW*( ONE / ( ONE+CNORM( J ) ) ) 50 CONTINUE END IF 60 CONTINUE * ELSE * * Compute the growth in A**T * x = b or A**H * x = b. * IF( UPPER ) THEN JFIRST = 1 JLAST = N JINC = 1 ELSE JFIRST = N JLAST = 1 JINC = -1 END IF * IF( TSCAL.NE.ONE ) THEN GROW = ZERO GO TO 90 END IF * IF( NOUNIT ) THEN * * A is non-unit triangular. * * Compute GROW = 1/G(j) and XBND = 1/M(j). * Initially, M(0) = max{x(i), i=1,...,n}. * GROW = HALF / MAX( XBND, SMLNUM ) XBND = GROW DO 70 J = JFIRST, JLAST, JINC * * Exit the loop if the growth factor is too small. * IF( GROW.LE.SMLNUM ) $ GO TO 90 * * G(j) = max( G(j-1), M(j-1)*( 1 + CNORM(j) ) ) * XJ = ONE + CNORM( J ) GROW = MIN( GROW, XBND / XJ ) * TJJS = A( J, J ) TJJ = CABS1( TJJS ) * IF( TJJ.GE.SMLNUM ) THEN * * M(j) = M(j-1)*( 1 + CNORM(j) ) / abs(A(j,j)) * IF( XJ.GT.TJJ ) $ XBND = XBND*( TJJ / XJ ) ELSE * * M(j) could overflow, set XBND to 0. * XBND = ZERO END IF 70 CONTINUE GROW = MIN( GROW, XBND ) ELSE * * A is unit triangular. * * Compute GROW = 1/G(j), where G(0) = max{x(i), i=1,...,n}. * GROW = MIN( ONE, HALF / MAX( XBND, SMLNUM ) ) DO 80 J = JFIRST, JLAST, JINC * * Exit the loop if the growth factor is too small. * IF( GROW.LE.SMLNUM ) $ GO TO 90 * * G(j) = ( 1 + CNORM(j) )*G(j-1) * XJ = ONE + CNORM( J ) GROW = GROW / XJ 80 CONTINUE END IF 90 CONTINUE END IF * IF( ( GROW*TSCAL ).GT.SMLNUM ) THEN * * Use the Level 2 BLAS solve if the reciprocal of the bound on * elements of X is not too small. * CALL ZTRSV( UPLO, TRANS, DIAG, N, A, LDA, X, 1 ) ELSE * * Use a Level 1 BLAS solve, scaling intermediate results. * IF( XMAX.GT.BIGNUM*HALF ) THEN * * Scale X so that its components are less than or equal to * BIGNUM in absolute value. * SCALE = ( BIGNUM*HALF ) / XMAX CALL ZDSCAL( N, SCALE, X, 1 ) XMAX = BIGNUM ELSE XMAX = XMAX*TWO END IF * IF( NOTRAN ) THEN * * Solve A * x = b * DO 120 J = JFIRST, JLAST, JINC * * Compute x(j) = b(j) / A(j,j), scaling x if necessary. * XJ = CABS1( X( J ) ) IF( NOUNIT ) THEN TJJS = A( J, J )*TSCAL ELSE TJJS = TSCAL IF( TSCAL.EQ.ONE ) $ GO TO 110 END IF TJJ = CABS1( TJJS ) IF( TJJ.GT.SMLNUM ) THEN * * abs(A(j,j)) > SMLNUM: * IF( TJJ.LT.ONE ) THEN IF( XJ.GT.TJJ*BIGNUM ) THEN * * Scale x by 1/b(j). * REC = ONE / XJ CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF END IF X( J ) = ZLADIV( X( J ), TJJS ) XJ = CABS1( X( J ) ) ELSE IF( TJJ.GT.ZERO ) THEN * * 0 < abs(A(j,j)) <= SMLNUM: * IF( XJ.GT.TJJ*BIGNUM ) THEN * * Scale x by (1/abs(x(j)))*abs(A(j,j))*BIGNUM * to avoid overflow when dividing by A(j,j). * REC = ( TJJ*BIGNUM ) / XJ IF( CNORM( J ).GT.ONE ) THEN * * Scale by 1/CNORM(j) to avoid overflow when * multiplying x(j) times column j. * REC = REC / CNORM( J ) END IF CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF X( J ) = ZLADIV( X( J ), TJJS ) XJ = CABS1( X( J ) ) ELSE * * A(j,j) = 0: Set x(1:n) = 0, x(j) = 1, and * scale = 0, and compute a solution to A*x = 0. * DO 100 I = 1, N X( I ) = ZERO 100 CONTINUE X( J ) = ONE XJ = ONE SCALE = ZERO XMAX = ZERO END IF 110 CONTINUE * * Scale x if necessary to avoid overflow when adding a * multiple of column j of A. * IF( XJ.GT.ONE ) THEN REC = ONE / XJ IF( CNORM( J ).GT.( BIGNUM-XMAX )*REC ) THEN * * Scale x by 1/(2*abs(x(j))). * REC = REC*HALF CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC END IF ELSE IF( XJ*CNORM( J ).GT.( BIGNUM-XMAX ) ) THEN * * Scale x by 1/2. * CALL ZDSCAL( N, HALF, X, 1 ) SCALE = SCALE*HALF END IF * IF( UPPER ) THEN IF( J.GT.1 ) THEN * * Compute the update * x(1:j-1) := x(1:j-1) - x(j) * A(1:j-1,j) * CALL ZAXPY( J-1, -X( J )*TSCAL, A( 1, J ), 1, X, $ 1 ) I = IZAMAX( J-1, X, 1 ) XMAX = CABS1( X( I ) ) END IF ELSE IF( J.LT.N ) THEN * * Compute the update * x(j+1:n) := x(j+1:n) - x(j) * A(j+1:n,j) * CALL ZAXPY( N-J, -X( J )*TSCAL, A( J+1, J ), 1, $ X( J+1 ), 1 ) I = J + IZAMAX( N-J, X( J+1 ), 1 ) XMAX = CABS1( X( I ) ) END IF END IF 120 CONTINUE * ELSE IF( LSAME( TRANS, 'T' ) ) THEN * * Solve A**T * x = b * DO 170 J = JFIRST, JLAST, JINC * * Compute x(j) = b(j) - sum A(k,j)*x(k). * k<>j * XJ = CABS1( X( J ) ) USCAL = TSCAL REC = ONE / MAX( XMAX, ONE ) IF( CNORM( J ).GT.( BIGNUM-XJ )*REC ) THEN * * If x(j) could overflow, scale x by 1/(2*XMAX). * REC = REC*HALF IF( NOUNIT ) THEN TJJS = A( J, J )*TSCAL ELSE TJJS = TSCAL END IF TJJ = CABS1( TJJS ) IF( TJJ.GT.ONE ) THEN * * Divide by A(j,j) when scaling x if A(j,j) > 1. * REC = MIN( ONE, REC*TJJ ) USCAL = ZLADIV( USCAL, TJJS ) END IF IF( REC.LT.ONE ) THEN CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF END IF * CSUMJ = ZERO IF( USCAL.EQ.DCMPLX( ONE ) ) THEN * * If the scaling needed for A in the dot product is 1, * call ZDOTU to perform the dot product. * IF( UPPER ) THEN CSUMJ = ZDOTU( J-1, A( 1, J ), 1, X, 1 ) ELSE IF( J.LT.N ) THEN CSUMJ = ZDOTU( N-J, A( J+1, J ), 1, X( J+1 ), 1 ) END IF ELSE * * Otherwise, use in-line code for the dot product. * IF( UPPER ) THEN DO 130 I = 1, J - 1 CSUMJ = CSUMJ + ( A( I, J )*USCAL )*X( I ) 130 CONTINUE ELSE IF( J.LT.N ) THEN DO 140 I = J + 1, N CSUMJ = CSUMJ + ( A( I, J )*USCAL )*X( I ) 140 CONTINUE END IF END IF * IF( USCAL.EQ.DCMPLX( TSCAL ) ) THEN * * Compute x(j) := ( x(j) - CSUMJ ) / A(j,j) if 1/A(j,j) * was not used to scale the dotproduct. * X( J ) = X( J ) - CSUMJ XJ = CABS1( X( J ) ) IF( NOUNIT ) THEN TJJS = A( J, J )*TSCAL ELSE TJJS = TSCAL IF( TSCAL.EQ.ONE ) $ GO TO 160 END IF * * Compute x(j) = x(j) / A(j,j), scaling if necessary. * TJJ = CABS1( TJJS ) IF( TJJ.GT.SMLNUM ) THEN * * abs(A(j,j)) > SMLNUM: * IF( TJJ.LT.ONE ) THEN IF( XJ.GT.TJJ*BIGNUM ) THEN * * Scale X by 1/abs(x(j)). * REC = ONE / XJ CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF END IF X( J ) = ZLADIV( X( J ), TJJS ) ELSE IF( TJJ.GT.ZERO ) THEN * * 0 < abs(A(j,j)) <= SMLNUM: * IF( XJ.GT.TJJ*BIGNUM ) THEN * * Scale x by (1/abs(x(j)))*abs(A(j,j))*BIGNUM. * REC = ( TJJ*BIGNUM ) / XJ CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF X( J ) = ZLADIV( X( J ), TJJS ) ELSE * * A(j,j) = 0: Set x(1:n) = 0, x(j) = 1, and * scale = 0 and compute a solution to A**T *x = 0. * DO 150 I = 1, N X( I ) = ZERO 150 CONTINUE X( J ) = ONE SCALE = ZERO XMAX = ZERO END IF 160 CONTINUE ELSE * * Compute x(j) := x(j) / A(j,j) - CSUMJ if the dot * product has already been divided by 1/A(j,j). * X( J ) = ZLADIV( X( J ), TJJS ) - CSUMJ END IF XMAX = MAX( XMAX, CABS1( X( J ) ) ) 170 CONTINUE * ELSE * * Solve A**H * x = b * DO 220 J = JFIRST, JLAST, JINC * * Compute x(j) = b(j) - sum A(k,j)*x(k). * k<>j * XJ = CABS1( X( J ) ) USCAL = TSCAL REC = ONE / MAX( XMAX, ONE ) IF( CNORM( J ).GT.( BIGNUM-XJ )*REC ) THEN * * If x(j) could overflow, scale x by 1/(2*XMAX). * REC = REC*HALF IF( NOUNIT ) THEN TJJS = DCONJG( A( J, J ) )*TSCAL ELSE TJJS = TSCAL END IF TJJ = CABS1( TJJS ) IF( TJJ.GT.ONE ) THEN * * Divide by A(j,j) when scaling x if A(j,j) > 1. * REC = MIN( ONE, REC*TJJ ) USCAL = ZLADIV( USCAL, TJJS ) END IF IF( REC.LT.ONE ) THEN CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF END IF * CSUMJ = ZERO IF( USCAL.EQ.DCMPLX( ONE ) ) THEN * * If the scaling needed for A in the dot product is 1, * call ZDOTC to perform the dot product. * IF( UPPER ) THEN CSUMJ = ZDOTC( J-1, A( 1, J ), 1, X, 1 ) ELSE IF( J.LT.N ) THEN CSUMJ = ZDOTC( N-J, A( J+1, J ), 1, X( J+1 ), 1 ) END IF ELSE * * Otherwise, use in-line code for the dot product. * IF( UPPER ) THEN DO 180 I = 1, J - 1 CSUMJ = CSUMJ + ( DCONJG( A( I, J ) )*USCAL )* $ X( I ) 180 CONTINUE ELSE IF( J.LT.N ) THEN DO 190 I = J + 1, N CSUMJ = CSUMJ + ( DCONJG( A( I, J ) )*USCAL )* $ X( I ) 190 CONTINUE END IF END IF * IF( USCAL.EQ.DCMPLX( TSCAL ) ) THEN * * Compute x(j) := ( x(j) - CSUMJ ) / A(j,j) if 1/A(j,j) * was not used to scale the dotproduct. * X( J ) = X( J ) - CSUMJ XJ = CABS1( X( J ) ) IF( NOUNIT ) THEN TJJS = DCONJG( A( J, J ) )*TSCAL ELSE TJJS = TSCAL IF( TSCAL.EQ.ONE ) $ GO TO 210 END IF * * Compute x(j) = x(j) / A(j,j), scaling if necessary. * TJJ = CABS1( TJJS ) IF( TJJ.GT.SMLNUM ) THEN * * abs(A(j,j)) > SMLNUM: * IF( TJJ.LT.ONE ) THEN IF( XJ.GT.TJJ*BIGNUM ) THEN * * Scale X by 1/abs(x(j)). * REC = ONE / XJ CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF END IF X( J ) = ZLADIV( X( J ), TJJS ) ELSE IF( TJJ.GT.ZERO ) THEN * * 0 < abs(A(j,j)) <= SMLNUM: * IF( XJ.GT.TJJ*BIGNUM ) THEN * * Scale x by (1/abs(x(j)))*abs(A(j,j))*BIGNUM. * REC = ( TJJ*BIGNUM ) / XJ CALL ZDSCAL( N, REC, X, 1 ) SCALE = SCALE*REC XMAX = XMAX*REC END IF X( J ) = ZLADIV( X( J ), TJJS ) ELSE * * A(j,j) = 0: Set x(1:n) = 0, x(j) = 1, and * scale = 0 and compute a solution to A**H *x = 0. * DO 200 I = 1, N X( I ) = ZERO 200 CONTINUE X( J ) = ONE SCALE = ZERO XMAX = ZERO END IF 210 CONTINUE ELSE * * Compute x(j) := x(j) / A(j,j) - CSUMJ if the dot * product has already been divided by 1/A(j,j). * X( J ) = ZLADIV( X( J ), TJJS ) - CSUMJ END IF XMAX = MAX( XMAX, CABS1( X( J ) ) ) 220 CONTINUE END IF SCALE = SCALE / TSCAL END IF * * Scale the column norms by 1/TSCAL for return. * IF( TSCAL.NE.ONE ) THEN CALL DSCAL( N, ONE / TSCAL, CNORM, 1 ) END IF * RETURN * * End of ZLATRS * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ztrti2.f0000644000000000000000000000013213543334726015167 xustar0030 mtime=1569569238.740645706 30 atime=1569569238.738645707 30 ctime=1569569238.740645706 elk-6.3.2/src/LAPACK/ztrti2.f0000644002504400250440000001343713543334726017246 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRTI2 computes the inverse of a triangular matrix (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZTRTI2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZTRTI2( UPLO, DIAG, N, A, LDA, INFO ) * * .. Scalar Arguments .. * CHARACTER DIAG, UPLO * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRTI2 computes the inverse of a complex upper or lower triangular *> matrix. *> *> This is the Level 2 BLAS version of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the matrix A is upper or lower triangular. *> = 'U': Upper triangular *> = 'L': Lower triangular *> \endverbatim *> *> \param[in] DIAG *> \verbatim *> DIAG is CHARACTER*1 *> Specifies whether or not the matrix A is unit triangular. *> = 'N': Non-unit triangular *> = 'U': Unit triangular *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the triangular matrix A. If UPLO = 'U', the *> leading n by n upper triangular part of the array A contains *> the upper triangular matrix, and the strictly lower *> triangular part of A is not referenced. If UPLO = 'L', the *> leading n by n lower triangular part of the array A contains *> the lower triangular matrix, and the strictly upper *> triangular part of A is not referenced. If DIAG = 'U', the *> diagonal elements of A are also not referenced and are *> assumed to be 1. *> *> On exit, the (triangular) inverse of the original matrix, in *> the same storage format. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -k, the k-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZTRTI2( UPLO, DIAG, N, A, LDA, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIAG, UPLO INTEGER INFO, LDA, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL NOUNIT, UPPER INTEGER J COMPLEX*16 AJJ * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZSCAL, ZTRMV * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 UPPER = LSAME( UPLO, 'U' ) NOUNIT = LSAME( DIAG, 'N' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( .NOT.NOUNIT .AND. .NOT.LSAME( DIAG, 'U' ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZTRTI2', -INFO ) RETURN END IF * IF( UPPER ) THEN * * Compute inverse of upper triangular matrix. * DO 10 J = 1, N IF( NOUNIT ) THEN A( J, J ) = ONE / A( J, J ) AJJ = -A( J, J ) ELSE AJJ = -ONE END IF * * Compute elements 1:j-1 of j-th column. * CALL ZTRMV( 'Upper', 'No transpose', DIAG, J-1, A, LDA, $ A( 1, J ), 1 ) CALL ZSCAL( J-1, AJJ, A( 1, J ), 1 ) 10 CONTINUE ELSE * * Compute inverse of lower triangular matrix. * DO 20 J = N, 1, -1 IF( NOUNIT ) THEN A( J, J ) = ONE / A( J, J ) AJJ = -A( J, J ) ELSE AJJ = -ONE END IF IF( J.LT.N ) THEN * * Compute elements j+1:n of j-th column. * CALL ZTRMV( 'Lower', 'No transpose', DIAG, N-J, $ A( J+1, J+1 ), LDA, A( J+1, J ), 1 ) CALL ZSCAL( N-J, AJJ, A( J+1, J ), 1 ) END IF 20 CONTINUE END IF * RETURN * * End of ZTRTI2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zungqr.f0000644000000000000000000000013213543334726015257 xustar0030 mtime=1569569238.744645704 30 atime=1569569238.743645704 30 ctime=1569569238.744645704 elk-6.3.2/src/LAPACK/zungqr.f0000644002504400250440000001761013543334726017333 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGQR generates an M-by-N complex matrix Q with orthonormal columns, *> which is defined as the first N columns of a product of K elementary *> reflectors of order M *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by ZGEQRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the i-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by ZGEQRF in the first k columns of its array *> argument A. *> On exit, the M-by-N matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQRF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimum performance LWORK >= N*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, J, KI, KK, L, LDWORK, $ LWKOPT, NB, NBMIN, NX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARFB, ZLARFT, ZUNG2R * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'ZUNGQR', ' ', M, N, K, -1 ) LWKOPT = MAX( 1, N )*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGQR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.LE.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = N IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'ZUNGQR', ' ', M, N, K, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZUNGQR', ' ', M, N, K, -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code after the last block. * The first kk columns are handled by the block method. * KI = ( ( K-NX-1 ) / NB )*NB KK = MIN( K, KI+NB ) * * Set A(1:kk,kk+1:n) to zero. * DO 20 J = KK + 1, N DO 10 I = 1, KK A( I, J ) = ZERO 10 CONTINUE 20 CONTINUE ELSE KK = 0 END IF * * Use unblocked code for the last or only block. * IF( KK.LT.N ) $ CALL ZUNG2R( M-KK, N-KK, K-KK, A( KK+1, KK+1 ), LDA, $ TAU( KK+1 ), WORK, IINFO ) * IF( KK.GT.0 ) THEN * * Use blocked code * DO 50 I = KI + 1, 1, -NB IB = MIN( NB, K-I+1 ) IF( I+IB.LE.N ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL ZLARFT( 'Forward', 'Columnwise', M-I+1, IB, $ A( I, I ), LDA, TAU( I ), WORK, LDWORK ) * * Apply H to A(i:m,i+ib:n) from the left * CALL ZLARFB( 'Left', 'No transpose', 'Forward', $ 'Columnwise', M-I+1, N-I-IB+1, IB, $ A( I, I ), LDA, WORK, LDWORK, A( I, I+IB ), $ LDA, WORK( IB+1 ), LDWORK ) END IF * * Apply H to rows i:m of current block * CALL ZUNG2R( M-I+1, IB, IB, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * * Set rows 1:i-1 of current block to zero * DO 40 J = I, I + IB - 1 DO 30 L = 1, I - 1 A( L, J ) = ZERO 30 CONTINUE 40 CONTINUE 50 CONTINUE END IF * WORK( 1 ) = IWS RETURN * * End of ZUNGQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zungql.f0000644000000000000000000000012613543334726015254 xustar0028 mtime=1569569238.7496457 30 atime=1569569238.747645702 28 ctime=1569569238.7496457 elk-6.3.2/src/LAPACK/zungql.f0000644002504400250440000002000613543334726017316 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGQL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGQL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGQL( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGQL generates an M-by-N complex matrix Q with orthonormal columns, *> which is defined as the last N columns of a product of K elementary *> reflectors of order M *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by ZGEQLF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the (n-k+i)-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by ZGEQLF in the last k columns of its array *> argument A. *> On exit, the M-by-N matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQLF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimum performance LWORK >= N*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNGQL( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, J, KK, L, LDWORK, LWKOPT, $ NB, NBMIN, NX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARFB, ZLARFT, ZUNG2L * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF * IF( INFO.EQ.0 ) THEN IF( N.EQ.0 ) THEN LWKOPT = 1 ELSE NB = ILAENV( 1, 'ZUNGQL', ' ', M, N, K, -1 ) LWKOPT = N*NB END IF WORK( 1 ) = LWKOPT * IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGQL', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.LE.0 ) THEN RETURN END IF * NBMIN = 2 NX = 0 IWS = N IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'ZUNGQL', ' ', M, N, K, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZUNGQL', ' ', M, N, K, -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code after the first block. * The last kk columns are handled by the block method. * KK = MIN( K, ( ( K-NX+NB-1 ) / NB )*NB ) * * Set A(m-kk+1:m,1:n-kk) to zero. * DO 20 J = 1, N - KK DO 10 I = M - KK + 1, M A( I, J ) = ZERO 10 CONTINUE 20 CONTINUE ELSE KK = 0 END IF * * Use unblocked code for the first or only block. * CALL ZUNG2L( M-KK, N-KK, K-KK, A, LDA, TAU, WORK, IINFO ) * IF( KK.GT.0 ) THEN * * Use blocked code * DO 50 I = K - KK + 1, K, NB IB = MIN( NB, K-I+1 ) IF( N-K+I.GT.1 ) THEN * * Form the triangular factor of the block reflector * H = H(i+ib-1) . . . H(i+1) H(i) * CALL ZLARFT( 'Backward', 'Columnwise', M-K+I+IB-1, IB, $ A( 1, N-K+I ), LDA, TAU( I ), WORK, LDWORK ) * * Apply H to A(1:m-k+i+ib-1,1:n-k+i-1) from the left * CALL ZLARFB( 'Left', 'No transpose', 'Backward', $ 'Columnwise', M-K+I+IB-1, N-K+I-1, IB, $ A( 1, N-K+I ), LDA, WORK, LDWORK, A, LDA, $ WORK( IB+1 ), LDWORK ) END IF * * Apply H to rows 1:m-k+i+ib-1 of current block * CALL ZUNG2L( M-K+I+IB-1, IB, IB, A( 1, N-K+I ), LDA, $ TAU( I ), WORK, IINFO ) * * Set rows m-k+i+ib:m of current block to zero * DO 40 J = N - K + I, N - K + I + IB - 1 DO 30 L = M - K + I + IB, M A( L, J ) = ZERO 30 CONTINUE 40 CONTINUE 50 CONTINUE END IF * WORK( 1 ) = IWS RETURN * * End of ZUNGQL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunmql.f0000644000000000000000000000013213543334726015257 xustar0030 mtime=1569569238.753645698 30 atime=1569569238.752645699 30 ctime=1569569238.753645698 elk-6.3.2/src/LAPACK/zunmql.f0000644002504400250440000002225313543334726017332 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNMQL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNMQL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNMQL overwrites the general complex M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> where Q is a complex unitary matrix defined as the product of k *> elementary reflectors *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by ZGEQLF. Q is of order M if SIDE = 'L' and of order N *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left; *> = 'R': apply Q or Q**H from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'C': Transpose, apply Q**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> ZGEQLF in the last k columns of its array argument A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQLF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For good performance, LWORK should genreally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) * .. * .. Local Scalars .. LOGICAL LEFT, LQUERY, NOTRAN INTEGER I, I1, I2, I3, IB, IINFO, IWT, LDWORK, LWKOPT, $ MI, NB, NBMIN, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARFB, ZLARFT, ZUNM2L * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = MAX( 1, N ) ELSE NQ = N NW = MAX( 1, M ) END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.NW .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * IF( M.EQ.0 .OR. N.EQ.0 ) THEN LWKOPT = 1 ELSE NB = MIN( NBMAX, ILAENV( 1, 'ZUNMQL', SIDE // TRANS, M, N, $ K, -1 ) ) LWKOPT = NW*NB + TSIZE END IF WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNMQL', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) THEN RETURN END IF * NBMIN = 2 LDWORK = NW IF( NB.GT.1 .AND. NB.LT.K ) THEN IF( LWORK.LT.NW*NB+TSIZE ) THEN NB = (LWORK-TSIZE) / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZUNMQL', SIDE // TRANS, M, N, K, $ -1 ) ) END IF END IF * IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL ZUNM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, $ IINFO ) ELSE * * Use blocked code * IWT = 1 + NW*NB IF( ( LEFT .AND. NOTRAN ) .OR. $ ( .NOT.LEFT .AND. .NOT.NOTRAN ) ) THEN I1 = 1 I2 = K I3 = NB ELSE I1 = ( ( K-1 ) / NB )*NB + 1 I2 = 1 I3 = -NB END IF * IF( LEFT ) THEN NI = N ELSE MI = M END IF * DO 10 I = I1, I2, I3 IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i+ib-1) . . . H(i+1) H(i) * CALL ZLARFT( 'Backward', 'Columnwise', NQ-K+I+IB-1, IB, $ A( 1, I ), LDA, TAU( I ), WORK( IWT ), LDT ) IF( LEFT ) THEN * * H or H**H is applied to C(1:m-k+i+ib-1,1:n) * MI = M - K + I + IB - 1 ELSE * * H or H**H is applied to C(1:m,1:n-k+i+ib-1) * NI = N - K + I + IB - 1 END IF * * Apply H or H**H * CALL ZLARFB( SIDE, TRANS, 'Backward', 'Columnwise', MI, NI, $ IB, A( 1, I ), LDA, WORK( IWT ), LDT, C, LDC, $ WORK, LDWORK ) 10 CONTINUE END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNMQL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunmqr.f0000644000000000000000000000013213543334726015265 xustar0030 mtime=1569569238.758645695 30 atime=1569569238.756645696 30 ctime=1569569238.758645695 elk-6.3.2/src/LAPACK/zunmqr.f0000644002504400250440000002223113543334726017334 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNMQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNMQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNMQR overwrites the general complex M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> where Q is a complex unitary matrix defined as the product of k *> elementary reflectors *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by ZGEQRF. Q is of order M if SIDE = 'L' and of order N *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left; *> = 'R': apply Q or Q**H from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'C': Conjugate transpose, apply Q**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> ZGEQRF in the first k columns of its array argument A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQRF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) * .. * .. Local Scalars .. LOGICAL LEFT, LQUERY, NOTRAN INTEGER I, I1, I2, I3, IB, IC, IINFO, IWT, JC, LDWORK, $ LWKOPT, MI, NB, NBMIN, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARFB, ZLARFT, ZUNM2R * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * NB = MIN( NBMAX, ILAENV( 1, 'ZUNMQR', SIDE // TRANS, M, N, K, $ -1 ) ) LWKOPT = MAX( 1, NW )*NB + TSIZE WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNMQR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 LDWORK = NW IF( NB.GT.1 .AND. NB.LT.K ) THEN IF( LWORK.LT.NW*NB+TSIZE ) THEN NB = (LWORK-TSIZE) / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZUNMQR', SIDE // TRANS, M, N, K, $ -1 ) ) END IF END IF * IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL ZUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, $ IINFO ) ELSE * * Use blocked code * IWT = 1 + NW*NB IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. $ ( .NOT.LEFT .AND. NOTRAN ) ) THEN I1 = 1 I2 = K I3 = NB ELSE I1 = ( ( K-1 ) / NB )*NB + 1 I2 = 1 I3 = -NB END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 10 I = I1, I2, I3 IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL ZLARFT( 'Forward', 'Columnwise', NQ-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK( IWT ), LDT ) IF( LEFT ) THEN * * H or H**H is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H or H**H is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H or H**H * CALL ZLARFB( SIDE, TRANS, 'Forward', 'Columnwise', MI, NI, $ IB, A( I, I ), LDA, WORK( IWT ), LDT, $ C( IC, JC ), LDC, WORK, LDWORK ) 10 CONTINUE END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNMQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zung2l.f0000644000000000000000000000013213543334726015152 xustar0030 mtime=1569569238.762645692 30 atime=1569569238.761645693 30 ctime=1569569238.762645692 elk-6.3.2/src/LAPACK/zung2l.f0000644002504400250440000001225013543334726017221 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNG2L generates all or part of the unitary matrix Q from a QL factorization determined by cgeqlf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNG2L + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNG2L generates an m by n complex matrix Q with orthonormal columns, *> which is defined as the last n columns of a product of k elementary *> reflectors of order m *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by ZGEQLF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the (n-k+i)-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by ZGEQLF in the last k columns of its array *> argument A. *> On exit, the m-by-n matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQLF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, II, J, L * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNG2L', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * * Initialise columns 1:n-k to columns of the unit matrix * DO 20 J = 1, N - K DO 10 L = 1, M A( L, J ) = ZERO 10 CONTINUE A( M-N+J, J ) = ONE 20 CONTINUE * DO 40 I = 1, K II = N - K + I * * Apply H(i) to A(1:m-k+i,1:n-k+i) from the left * A( M-N+II, II ) = ONE CALL ZLARF( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), A, $ LDA, WORK ) CALL ZSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 ) A( M-N+II, II ) = ONE - TAU( I ) * * Set A(m-k+i+1:m,n-k+i) to zero * DO 30 L = M - N + II + 1, M A( L, II ) = ZERO 30 CONTINUE 40 CONTINUE RETURN * * End of ZUNG2L * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zung2r.f0000644000000000000000000000013113543334726015157 xustar0030 mtime=1569569238.767645689 29 atime=1569569238.76564569 30 ctime=1569569238.767645689 elk-6.3.2/src/LAPACK/zung2r.f0000644002504400250440000001210013543334726017221 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNG2R * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNG2R + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNG2R( M, N, K, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNG2R generates an m by n complex matrix Q with orthonormal columns, *> which is defined as the first n columns of a product of k elementary *> reflectors of order m *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by ZGEQRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the i-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by ZGEQRF in the first k columns of its array *> argument A. *> On exit, the m by n matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQRF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNG2R( M, N, K, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, J, L * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNG2R', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * * Initialise columns k+1:n to columns of the unit matrix * DO 20 J = K + 1, N DO 10 L = 1, M A( L, J ) = ZERO 10 CONTINUE A( J, J ) = ONE 20 CONTINUE * DO 40 I = K, 1, -1 * * Apply H(i) to A(i:m,i:n) from the left * IF( I.LT.N ) THEN A( I, I ) = ONE CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), $ A( I, I+1 ), LDA, WORK ) END IF IF( I.LT.M ) $ CALL ZSCAL( M-I, -TAU( I ), A( I+1, I ), 1 ) A( I, I ) = ONE - TAU( I ) * * Set A(1:i-1,i) to zero * DO 30 L = 1, I - 1 A( L, I ) = ZERO 30 CONTINUE 40 CONTINUE RETURN * * End of ZUNG2R * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlarf.f0000644000000000000000000000013213543334726015047 xustar0030 mtime=1569569238.771645686 30 atime=1569569238.770645687 30 ctime=1569569238.771645686 elk-6.3.2/src/LAPACK/zlarf.f0000644002504400250440000001426713543334726017130 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLARF applies an elementary reflector to a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLARF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * .. Scalar Arguments .. * CHARACTER SIDE * INTEGER INCV, LDC, M, N * COMPLEX*16 TAU * .. * .. Array Arguments .. * COMPLEX*16 C( LDC, * ), V( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLARF applies a complex elementary reflector H to a complex M-by-N *> matrix C, from either the left or the right. H is represented in the *> form *> *> H = I - tau * v * v**H *> *> where tau is a complex scalar and v is a complex vector. *> *> If tau = 0, then H is taken to be the unit matrix. *> *> To apply H**H, supply conjg(tau) instead *> tau. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': form H * C *> = 'R': form C * H *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. *> \endverbatim *> *> \param[in] V *> \verbatim *> V is COMPLEX*16 array, dimension *> (1 + (M-1)*abs(INCV)) if SIDE = 'L' *> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' *> The vector v in the representation of H. V is not used if *> TAU = 0. *> \endverbatim *> *> \param[in] INCV *> \verbatim *> INCV is INTEGER *> The increment between elements of v. INCV <> 0. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 *> The value tau in the representation of H. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by the matrix H * C if SIDE = 'L', *> or C * H if SIDE = 'R'. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension *> (N) if SIDE = 'L' *> or (M) if SIDE = 'R' *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE INTEGER INCV, LDC, M, N COMPLEX*16 TAU * .. * .. Array Arguments .. COMPLEX*16 C( LDC, * ), V( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT INTEGER I, LASTV, LASTC * .. * .. External Subroutines .. EXTERNAL ZGEMV, ZGERC * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAZLR, ILAZLC EXTERNAL LSAME, ILAZLR, ILAZLC * .. * .. Executable Statements .. * APPLYLEFT = LSAME( SIDE, 'L' ) LASTV = 0 LASTC = 0 IF( TAU.NE.ZERO ) THEN * Set up variables for scanning V. LASTV begins pointing to the end * of V. IF( APPLYLEFT ) THEN LASTV = M ELSE LASTV = N END IF IF( INCV.GT.0 ) THEN I = 1 + (LASTV-1) * INCV ELSE I = 1 END IF * Look for the last non-zero row in V. DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) LASTV = LASTV - 1 I = I - INCV END DO IF( APPLYLEFT ) THEN * Scan for the last non-zero column in C(1:lastv,:). LASTC = ILAZLC(LASTV, N, C, LDC) ELSE * Scan for the last non-zero row in C(:,1:lastv). LASTC = ILAZLR(M, LASTV, C, LDC) END IF END IF * Note that lastc.eq.0 renders the BLAS operations null; no special * case is needed at this level. IF( APPLYLEFT ) THEN * * Form H * C * IF( LASTV.GT.0 ) THEN * * w(1:lastc,1) := C(1:lastv,1:lastc)**H * v(1:lastv,1) * CALL ZGEMV( 'Conjugate transpose', LASTV, LASTC, ONE, $ C, LDC, V, INCV, ZERO, WORK, 1 ) * * C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)**H * CALL ZGERC( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) END IF ELSE * * Form C * H * IF( LASTV.GT.0 ) THEN * * w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) * CALL ZGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, $ V, INCV, ZERO, WORK, 1 ) * * C(1:lastc,1:lastv) := C(...) - w(1:lastc,1) * v(1:lastv,1)**H * CALL ZGERC( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) END IF END IF RETURN * * End of ZLARF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaisnan.f0000644000000000000000000000013213543334726015522 xustar0030 mtime=1569569238.775645684 30 atime=1569569238.774645684 30 ctime=1569569238.775645684 elk-6.3.2/src/LAPACK/dlaisnan.f0000644002504400250440000000506013543334726017572 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAISNAN tests input for NaN by comparing two arguments for inequality. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAISNAN + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * LOGICAL FUNCTION DLAISNAN( DIN1, DIN2 ) * * .. Scalar Arguments .. * DOUBLE PRECISION, INTENT(IN) :: DIN1, DIN2 * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> This routine is not for general use. It exists solely to avoid *> over-optimization in DISNAN. *> *> DLAISNAN checks for NaNs by comparing its two arguments for *> inequality. NaN is the only floating-point value where NaN != NaN *> returns .TRUE. To check for NaNs, pass the same variable as both *> arguments. *> *> A compiler must assume that the two arguments are *> not the same variable, and the test will not be optimized away. *> Interprocedural or whole-program optimization may delete this *> test. The ISNAN functions will be replaced by the correct *> Fortran 03 intrinsic once the intrinsic is widely available. *> \endverbatim * * Arguments: * ========== * *> \param[in] DIN1 *> \verbatim *> DIN1 is DOUBLE PRECISION *> \endverbatim *> *> \param[in] DIN2 *> \verbatim *> DIN2 is DOUBLE PRECISION *> Two numbers to compare for inequality. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup OTHERauxiliary * * ===================================================================== LOGICAL FUNCTION DLAISNAN( DIN1, DIN2 ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. DOUBLE PRECISION, INTENT(IN) :: DIN1, DIN2 * .. * * ===================================================================== * * .. Executable Statements .. DLAISNAN = (DIN1.NE.DIN2) RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaruv.f0000644000000000000000000000013013543334726015224 xustar0029 mtime=1569569238.78164568 30 atime=1569569238.779645681 29 ctime=1569569238.78164568 elk-6.3.2/src/LAPACK/dlaruv.f0000644002504400250440000004407213543334726017304 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARUV returns a vector of n random real numbers from a uniform distribution. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARUV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARUV( ISEED, N, X ) * * .. Scalar Arguments .. * INTEGER N * .. * .. Array Arguments .. * INTEGER ISEED( 4 ) * DOUBLE PRECISION X( N ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARUV returns a vector of n random real numbers from a uniform (0,1) *> distribution (n <= 128). *> *> This is an auxiliary routine called by DLARNV and ZLARNV. *> \endverbatim * * Arguments: * ========== * *> \param[in,out] ISEED *> \verbatim *> ISEED is INTEGER array, dimension (4) *> On entry, the seed of the random number generator; the array *> elements must be between 0 and 4095, and ISEED(4) must be *> odd. *> On exit, the seed is updated. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of random numbers to be generated. N <= 128. *> \endverbatim *> *> \param[out] X *> \verbatim *> X is DOUBLE PRECISION array, dimension (N) *> The generated random numbers. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> This routine uses a multiplicative congruential method with modulus *> 2**48 and multiplier 33952834046453 (see G.S.Fishman, *> 'Multiplicative congruential random number generators with modulus *> 2**b: an exhaustive analysis for b = 32 and a partial analysis for *> b = 48', Math. Comp. 189, pp 331-344, 1990). *> *> 48-bit integers are stored in 4 integer array elements with 12 bits *> per element. Hence the routine is portable across machines with *> integers of 32 bits or more. *> \endverbatim *> * ===================================================================== SUBROUTINE DLARUV( ISEED, N, X ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER N * .. * .. Array Arguments .. INTEGER ISEED( 4 ) DOUBLE PRECISION X( N ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) INTEGER LV, IPW2 DOUBLE PRECISION R PARAMETER ( LV = 128, IPW2 = 4096, R = ONE / IPW2 ) * .. * .. Local Scalars .. INTEGER I, I1, I2, I3, I4, IT1, IT2, IT3, IT4, J * .. * .. Local Arrays .. INTEGER MM( LV, 4 ) * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MIN, MOD * .. * .. Data statements .. DATA ( MM( 1, J ), J = 1, 4 ) / 494, 322, 2508, $ 2549 / DATA ( MM( 2, J ), J = 1, 4 ) / 2637, 789, 3754, $ 1145 / DATA ( MM( 3, J ), J = 1, 4 ) / 255, 1440, 1766, $ 2253 / DATA ( MM( 4, J ), J = 1, 4 ) / 2008, 752, 3572, $ 305 / DATA ( MM( 5, J ), J = 1, 4 ) / 1253, 2859, 2893, $ 3301 / DATA ( MM( 6, J ), J = 1, 4 ) / 3344, 123, 307, $ 1065 / DATA ( MM( 7, J ), J = 1, 4 ) / 4084, 1848, 1297, $ 3133 / DATA ( MM( 8, J ), J = 1, 4 ) / 1739, 643, 3966, $ 2913 / DATA ( MM( 9, J ), J = 1, 4 ) / 3143, 2405, 758, $ 3285 / DATA ( MM( 10, J ), J = 1, 4 ) / 3468, 2638, 2598, $ 1241 / DATA ( MM( 11, J ), J = 1, 4 ) / 688, 2344, 3406, $ 1197 / DATA ( MM( 12, J ), J = 1, 4 ) / 1657, 46, 2922, $ 3729 / DATA ( MM( 13, J ), J = 1, 4 ) / 1238, 3814, 1038, $ 2501 / DATA ( MM( 14, J ), J = 1, 4 ) / 3166, 913, 2934, $ 1673 / DATA ( MM( 15, J ), J = 1, 4 ) / 1292, 3649, 2091, $ 541 / DATA ( MM( 16, J ), J = 1, 4 ) / 3422, 339, 2451, $ 2753 / DATA ( MM( 17, J ), J = 1, 4 ) / 1270, 3808, 1580, $ 949 / DATA ( MM( 18, J ), J = 1, 4 ) / 2016, 822, 1958, $ 2361 / DATA ( MM( 19, J ), J = 1, 4 ) / 154, 2832, 2055, $ 1165 / DATA ( MM( 20, J ), J = 1, 4 ) / 2862, 3078, 1507, $ 4081 / DATA ( MM( 21, J ), J = 1, 4 ) / 697, 3633, 1078, $ 2725 / DATA ( MM( 22, J ), J = 1, 4 ) / 1706, 2970, 3273, $ 3305 / DATA ( MM( 23, J ), J = 1, 4 ) / 491, 637, 17, $ 3069 / DATA ( MM( 24, J ), J = 1, 4 ) / 931, 2249, 854, $ 3617 / DATA ( MM( 25, J ), J = 1, 4 ) / 1444, 2081, 2916, $ 3733 / DATA ( MM( 26, J ), J = 1, 4 ) / 444, 4019, 3971, $ 409 / DATA ( MM( 27, J ), J = 1, 4 ) / 3577, 1478, 2889, $ 2157 / DATA ( MM( 28, J ), J = 1, 4 ) / 3944, 242, 3831, $ 1361 / DATA ( MM( 29, J ), J = 1, 4 ) / 2184, 481, 2621, $ 3973 / DATA ( MM( 30, J ), J = 1, 4 ) / 1661, 2075, 1541, $ 1865 / DATA ( MM( 31, J ), J = 1, 4 ) / 3482, 4058, 893, $ 2525 / DATA ( MM( 32, J ), J = 1, 4 ) / 657, 622, 736, $ 1409 / DATA ( MM( 33, J ), J = 1, 4 ) / 3023, 3376, 3992, $ 3445 / DATA ( MM( 34, J ), J = 1, 4 ) / 3618, 812, 787, $ 3577 / DATA ( MM( 35, J ), J = 1, 4 ) / 1267, 234, 2125, $ 77 / DATA ( MM( 36, J ), J = 1, 4 ) / 1828, 641, 2364, $ 3761 / DATA ( MM( 37, J ), J = 1, 4 ) / 164, 4005, 2460, $ 2149 / DATA ( MM( 38, J ), J = 1, 4 ) / 3798, 1122, 257, $ 1449 / DATA ( MM( 39, J ), J = 1, 4 ) / 3087, 3135, 1574, $ 3005 / DATA ( MM( 40, J ), J = 1, 4 ) / 2400, 2640, 3912, $ 225 / DATA ( MM( 41, J ), J = 1, 4 ) / 2870, 2302, 1216, $ 85 / DATA ( MM( 42, J ), J = 1, 4 ) / 3876, 40, 3248, $ 3673 / DATA ( MM( 43, J ), J = 1, 4 ) / 1905, 1832, 3401, $ 3117 / DATA ( MM( 44, J ), J = 1, 4 ) / 1593, 2247, 2124, $ 3089 / DATA ( MM( 45, J ), J = 1, 4 ) / 1797, 2034, 2762, $ 1349 / DATA ( MM( 46, J ), J = 1, 4 ) / 1234, 2637, 149, $ 2057 / DATA ( MM( 47, J ), J = 1, 4 ) / 3460, 1287, 2245, $ 413 / DATA ( MM( 48, J ), J = 1, 4 ) / 328, 1691, 166, $ 65 / DATA ( MM( 49, J ), J = 1, 4 ) / 2861, 496, 466, $ 1845 / DATA ( MM( 50, J ), J = 1, 4 ) / 1950, 1597, 4018, $ 697 / DATA ( MM( 51, J ), J = 1, 4 ) / 617, 2394, 1399, $ 3085 / DATA ( MM( 52, J ), J = 1, 4 ) / 2070, 2584, 190, $ 3441 / DATA ( MM( 53, J ), J = 1, 4 ) / 3331, 1843, 2879, $ 1573 / DATA ( MM( 54, J ), J = 1, 4 ) / 769, 336, 153, $ 3689 / DATA ( MM( 55, J ), J = 1, 4 ) / 1558, 1472, 2320, $ 2941 / DATA ( MM( 56, J ), J = 1, 4 ) / 2412, 2407, 18, $ 929 / DATA ( MM( 57, J ), J = 1, 4 ) / 2800, 433, 712, $ 533 / DATA ( MM( 58, J ), J = 1, 4 ) / 189, 2096, 2159, $ 2841 / DATA ( MM( 59, J ), J = 1, 4 ) / 287, 1761, 2318, $ 4077 / DATA ( MM( 60, J ), J = 1, 4 ) / 2045, 2810, 2091, $ 721 / DATA ( MM( 61, J ), J = 1, 4 ) / 1227, 566, 3443, $ 2821 / DATA ( MM( 62, J ), J = 1, 4 ) / 2838, 442, 1510, $ 2249 / DATA ( MM( 63, J ), J = 1, 4 ) / 209, 41, 449, $ 2397 / DATA ( MM( 64, J ), J = 1, 4 ) / 2770, 1238, 1956, $ 2817 / DATA ( MM( 65, J ), J = 1, 4 ) / 3654, 1086, 2201, $ 245 / DATA ( MM( 66, J ), J = 1, 4 ) / 3993, 603, 3137, $ 1913 / DATA ( MM( 67, J ), J = 1, 4 ) / 192, 840, 3399, $ 1997 / DATA ( MM( 68, J ), J = 1, 4 ) / 2253, 3168, 1321, $ 3121 / DATA ( MM( 69, J ), J = 1, 4 ) / 3491, 1499, 2271, $ 997 / DATA ( MM( 70, J ), J = 1, 4 ) / 2889, 1084, 3667, $ 1833 / DATA ( MM( 71, J ), J = 1, 4 ) / 2857, 3438, 2703, $ 2877 / DATA ( MM( 72, J ), J = 1, 4 ) / 2094, 2408, 629, $ 1633 / DATA ( MM( 73, J ), J = 1, 4 ) / 1818, 1589, 2365, $ 981 / DATA ( MM( 74, J ), J = 1, 4 ) / 688, 2391, 2431, $ 2009 / DATA ( MM( 75, J ), J = 1, 4 ) / 1407, 288, 1113, $ 941 / DATA ( MM( 76, J ), J = 1, 4 ) / 634, 26, 3922, $ 2449 / DATA ( MM( 77, J ), J = 1, 4 ) / 3231, 512, 2554, $ 197 / DATA ( MM( 78, J ), J = 1, 4 ) / 815, 1456, 184, $ 2441 / DATA ( MM( 79, J ), J = 1, 4 ) / 3524, 171, 2099, $ 285 / DATA ( MM( 80, J ), J = 1, 4 ) / 1914, 1677, 3228, $ 1473 / DATA ( MM( 81, J ), J = 1, 4 ) / 516, 2657, 4012, $ 2741 / DATA ( MM( 82, J ), J = 1, 4 ) / 164, 2270, 1921, $ 3129 / DATA ( MM( 83, J ), J = 1, 4 ) / 303, 2587, 3452, $ 909 / DATA ( MM( 84, J ), J = 1, 4 ) / 2144, 2961, 3901, $ 2801 / DATA ( MM( 85, J ), J = 1, 4 ) / 3480, 1970, 572, $ 421 / DATA ( MM( 86, J ), J = 1, 4 ) / 119, 1817, 3309, $ 4073 / DATA ( MM( 87, J ), J = 1, 4 ) / 3357, 676, 3171, $ 2813 / DATA ( MM( 88, J ), J = 1, 4 ) / 837, 1410, 817, $ 2337 / DATA ( MM( 89, J ), J = 1, 4 ) / 2826, 3723, 3039, $ 1429 / DATA ( MM( 90, J ), J = 1, 4 ) / 2332, 2803, 1696, $ 1177 / DATA ( MM( 91, J ), J = 1, 4 ) / 2089, 3185, 1256, $ 1901 / DATA ( MM( 92, J ), J = 1, 4 ) / 3780, 184, 3715, $ 81 / DATA ( MM( 93, J ), J = 1, 4 ) / 1700, 663, 2077, $ 1669 / DATA ( MM( 94, J ), J = 1, 4 ) / 3712, 499, 3019, $ 2633 / DATA ( MM( 95, J ), J = 1, 4 ) / 150, 3784, 1497, $ 2269 / DATA ( MM( 96, J ), J = 1, 4 ) / 2000, 1631, 1101, $ 129 / DATA ( MM( 97, J ), J = 1, 4 ) / 3375, 1925, 717, $ 1141 / DATA ( MM( 98, J ), J = 1, 4 ) / 1621, 3912, 51, $ 249 / DATA ( MM( 99, J ), J = 1, 4 ) / 3090, 1398, 981, $ 3917 / DATA ( MM( 100, J ), J = 1, 4 ) / 3765, 1349, 1978, $ 2481 / DATA ( MM( 101, J ), J = 1, 4 ) / 1149, 1441, 1813, $ 3941 / DATA ( MM( 102, J ), J = 1, 4 ) / 3146, 2224, 3881, $ 2217 / DATA ( MM( 103, J ), J = 1, 4 ) / 33, 2411, 76, $ 2749 / DATA ( MM( 104, J ), J = 1, 4 ) / 3082, 1907, 3846, $ 3041 / DATA ( MM( 105, J ), J = 1, 4 ) / 2741, 3192, 3694, $ 1877 / DATA ( MM( 106, J ), J = 1, 4 ) / 359, 2786, 1682, $ 345 / DATA ( MM( 107, J ), J = 1, 4 ) / 3316, 382, 124, $ 2861 / DATA ( MM( 108, J ), J = 1, 4 ) / 1749, 37, 1660, $ 1809 / DATA ( MM( 109, J ), J = 1, 4 ) / 185, 759, 3997, $ 3141 / DATA ( MM( 110, J ), J = 1, 4 ) / 2784, 2948, 479, $ 2825 / DATA ( MM( 111, J ), J = 1, 4 ) / 2202, 1862, 1141, $ 157 / DATA ( MM( 112, J ), J = 1, 4 ) / 2199, 3802, 886, $ 2881 / DATA ( MM( 113, J ), J = 1, 4 ) / 1364, 2423, 3514, $ 3637 / DATA ( MM( 114, J ), J = 1, 4 ) / 1244, 2051, 1301, $ 1465 / DATA ( MM( 115, J ), J = 1, 4 ) / 2020, 2295, 3604, $ 2829 / DATA ( MM( 116, J ), J = 1, 4 ) / 3160, 1332, 1888, $ 2161 / DATA ( MM( 117, J ), J = 1, 4 ) / 2785, 1832, 1836, $ 3365 / DATA ( MM( 118, J ), J = 1, 4 ) / 2772, 2405, 1990, $ 361 / DATA ( MM( 119, J ), J = 1, 4 ) / 1217, 3638, 2058, $ 2685 / DATA ( MM( 120, J ), J = 1, 4 ) / 1822, 3661, 692, $ 3745 / DATA ( MM( 121, J ), J = 1, 4 ) / 1245, 327, 1194, $ 2325 / DATA ( MM( 122, J ), J = 1, 4 ) / 2252, 3660, 20, $ 3609 / DATA ( MM( 123, J ), J = 1, 4 ) / 3904, 716, 3285, $ 3821 / DATA ( MM( 124, J ), J = 1, 4 ) / 2774, 1842, 2046, $ 3537 / DATA ( MM( 125, J ), J = 1, 4 ) / 997, 3987, 2107, $ 517 / DATA ( MM( 126, J ), J = 1, 4 ) / 2573, 1368, 3508, $ 3017 / DATA ( MM( 127, J ), J = 1, 4 ) / 1148, 1848, 3525, $ 2141 / DATA ( MM( 128, J ), J = 1, 4 ) / 545, 2366, 3801, $ 1537 / * .. * .. Executable Statements .. * I1 = ISEED( 1 ) I2 = ISEED( 2 ) I3 = ISEED( 3 ) I4 = ISEED( 4 ) * DO 10 I = 1, MIN( N, LV ) * 20 CONTINUE * * Multiply the seed by i-th power of the multiplier modulo 2**48 * IT4 = I4*MM( I, 4 ) IT3 = IT4 / IPW2 IT4 = IT4 - IPW2*IT3 IT3 = IT3 + I3*MM( I, 4 ) + I4*MM( I, 3 ) IT2 = IT3 / IPW2 IT3 = IT3 - IPW2*IT2 IT2 = IT2 + I2*MM( I, 4 ) + I3*MM( I, 3 ) + I4*MM( I, 2 ) IT1 = IT2 / IPW2 IT2 = IT2 - IPW2*IT1 IT1 = IT1 + I1*MM( I, 4 ) + I2*MM( I, 3 ) + I3*MM( I, 2 ) + $ I4*MM( I, 1 ) IT1 = MOD( IT1, IPW2 ) * * Convert 48-bit integer to a real number in the interval (0,1) * X( I ) = R*( DBLE( IT1 )+R*( DBLE( IT2 )+R*( DBLE( IT3 )+R* $ DBLE( IT4 ) ) ) ) * IF (X( I ).EQ.1.0D0) THEN * If a real number has n bits of precision, and the first * n bits of the 48-bit integer above happen to be all 1 (which * will occur about once every 2**n calls), then X( I ) will * be rounded to exactly 1.0. * Since X( I ) is not supposed to return exactly 0.0 or 1.0, * the statistically correct thing to do in this situation is * simply to iterate again. * N.B. the case X( I ) = 0.0 should not be possible. I1 = I1 + 2 I2 = I2 + 2 I3 = I3 + 2 I4 = I4 + 2 GOTO 20 END IF * 10 CONTINUE * * Return final value of seed * ISEED( 1 ) = IT1 ISEED( 2 ) = IT2 ISEED( 3 ) = IT3 ISEED( 4 ) = IT4 RETURN * * End of DLARUV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlarfg.f0000644000000000000000000000013213543334726015170 xustar0030 mtime=1569569238.785645677 30 atime=1569569238.784645678 30 ctime=1569569238.785645677 elk-6.3.2/src/LAPACK/dlarfg.f0000644002504400250440000001162013543334726017237 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARFG generates an elementary reflector (Householder matrix). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARFG + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARFG( N, ALPHA, X, INCX, TAU ) * * .. Scalar Arguments .. * INTEGER INCX, N * DOUBLE PRECISION ALPHA, TAU * .. * .. Array Arguments .. * DOUBLE PRECISION X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARFG generates a real elementary reflector H of order n, such *> that *> *> H * ( alpha ) = ( beta ), H**T * H = I. *> ( x ) ( 0 ) *> *> where alpha and beta are scalars, and x is an (n-1)-element real *> vector. H is represented in the form *> *> H = I - tau * ( 1 ) * ( 1 v**T ) , *> ( v ) *> *> where tau is a real scalar and v is a real (n-1)-element *> vector. *> *> If the elements of x are all zero, then tau = 0 and H is taken to be *> the unit matrix. *> *> Otherwise 1 <= tau <= 2. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the elementary reflector. *> \endverbatim *> *> \param[in,out] ALPHA *> \verbatim *> ALPHA is DOUBLE PRECISION *> On entry, the value alpha. *> On exit, it is overwritten with the value beta. *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is DOUBLE PRECISION array, dimension *> (1+(N-2)*abs(INCX)) *> On entry, the vector x. *> On exit, it is overwritten with the vector v. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between elements of X. INCX > 0. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION *> The value tau. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup doubleOTHERauxiliary * * ===================================================================== SUBROUTINE DLARFG( N, ALPHA, X, INCX, TAU ) * * -- LAPACK auxiliary routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INCX, N DOUBLE PRECISION ALPHA, TAU * .. * .. Array Arguments .. DOUBLE PRECISION X( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER J, KNT DOUBLE PRECISION BETA, RSAFMN, SAFMIN, XNORM * .. * .. External Functions .. DOUBLE PRECISION DLAMCH, DLAPY2, DNRM2 EXTERNAL DLAMCH, DLAPY2, DNRM2 * .. * .. Intrinsic Functions .. INTRINSIC ABS, SIGN * .. * .. External Subroutines .. EXTERNAL DSCAL * .. * .. Executable Statements .. * IF( N.LE.1 ) THEN TAU = ZERO RETURN END IF * XNORM = DNRM2( N-1, X, INCX ) * IF( XNORM.EQ.ZERO ) THEN * * H = I * TAU = ZERO ELSE * * general case * BETA = -SIGN( DLAPY2( ALPHA, XNORM ), ALPHA ) SAFMIN = DLAMCH( 'S' ) / DLAMCH( 'E' ) KNT = 0 IF( ABS( BETA ).LT.SAFMIN ) THEN * * XNORM, BETA may be inaccurate; scale X and recompute them * RSAFMN = ONE / SAFMIN 10 CONTINUE KNT = KNT + 1 CALL DSCAL( N-1, RSAFMN, X, INCX ) BETA = BETA*RSAFMN ALPHA = ALPHA*RSAFMN IF( (ABS( BETA ).LT.SAFMIN) .AND. (KNT .LT. 20) ) $ GO TO 10 * * New BETA is at most 1, at least SAFMIN * XNORM = DNRM2( N-1, X, INCX ) BETA = -SIGN( DLAPY2( ALPHA, XNORM ), ALPHA ) END IF TAU = ( BETA-ALPHA ) / BETA CALL DSCAL( N-1, ONE / ( ALPHA-BETA ), X, INCX ) * * If ALPHA is subnormal, it may lose relative accuracy * DO 20 J = 1, KNT BETA = BETA*SAFMIN 20 CONTINUE ALPHA = BETA END IF * RETURN * * End of DLARFG * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorg2l.f0000644000000000000000000000013213543334726015122 xustar0030 mtime=1569569238.790645674 30 atime=1569569238.789645675 30 ctime=1569569238.790645674 elk-6.3.2/src/LAPACK/dorg2l.f0000644002504400250440000001220613543334726017172 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORG2L generates all or part of the orthogonal matrix Q from a QL factorization determined by sgeqlf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORG2L + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORG2L generates an m by n real matrix Q with orthonormal columns, *> which is defined as the last n columns of a product of k elementary *> reflectors of order m *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGEQLF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the (n-k+i)-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by DGEQLF in the last k columns of its array *> argument A. *> On exit, the m by n matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQLF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORG2L( M, N, K, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, II, J, L * .. * .. External Subroutines .. EXTERNAL DLARF, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORG2L', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * * Initialise columns 1:n-k to columns of the unit matrix * DO 20 J = 1, N - K DO 10 L = 1, M A( L, J ) = ZERO 10 CONTINUE A( M-N+J, J ) = ONE 20 CONTINUE * DO 40 I = 1, K II = N - K + I * * Apply H(i) to A(1:m-k+i,1:n-k+i) from the left * A( M-N+II, II ) = ONE CALL DLARF( 'Left', M-N+II, II-1, A( 1, II ), 1, TAU( I ), A, $ LDA, WORK ) CALL DSCAL( M-N+II-1, -TAU( I ), A( 1, II ), 1 ) A( M-N+II, II ) = ONE - TAU( I ) * * Set A(m-k+i+1:m,n-k+i) to zero * DO 30 L = M - N + II + 1, M A( L, II ) = ZERO 30 CONTINUE 40 CONTINUE RETURN * * End of DORG2L * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlarft.f0000644000000000000000000000013213543334726015205 xustar0030 mtime=1569569238.794645672 30 atime=1569569238.793645672 30 ctime=1569569238.794645672 elk-6.3.2/src/LAPACK/dlarft.f0000644002504400250440000002402613543334726017260 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARFT forms the triangular factor T of a block reflector H = I - vtvH * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARFT + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARFT( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT ) * * .. Scalar Arguments .. * CHARACTER DIRECT, STOREV * INTEGER K, LDT, LDV, N * .. * .. Array Arguments .. * DOUBLE PRECISION T( LDT, * ), TAU( * ), V( LDV, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARFT forms the triangular factor T of a real block reflector H *> of order n, which is defined as a product of k elementary reflectors. *> *> If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; *> *> If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. *> *> If STOREV = 'C', the vector which defines the elementary reflector *> H(i) is stored in the i-th column of the array V, and *> *> H = I - V * T * V**T *> *> If STOREV = 'R', the vector which defines the elementary reflector *> H(i) is stored in the i-th row of the array V, and *> *> H = I - V**T * T * V *> \endverbatim * * Arguments: * ========== * *> \param[in] DIRECT *> \verbatim *> DIRECT is CHARACTER*1 *> Specifies the order in which the elementary reflectors are *> multiplied to form the block reflector: *> = 'F': H = H(1) H(2) . . . H(k) (Forward) *> = 'B': H = H(k) . . . H(2) H(1) (Backward) *> \endverbatim *> *> \param[in] STOREV *> \verbatim *> STOREV is CHARACTER*1 *> Specifies how the vectors which define the elementary *> reflectors are stored (see also Further Details): *> = 'C': columnwise *> = 'R': rowwise *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the block reflector H. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The order of the triangular factor T (= the number of *> elementary reflectors). K >= 1. *> \endverbatim *> *> \param[in] V *> \verbatim *> V is DOUBLE PRECISION array, dimension *> (LDV,K) if STOREV = 'C' *> (LDV,N) if STOREV = 'R' *> The matrix V. See further details. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of the array V. *> If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i). *> \endverbatim *> *> \param[out] T *> \verbatim *> T is DOUBLE PRECISION array, dimension (LDT,K) *> The k by k triangular factor T of the block reflector. *> If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is *> lower triangular. The rest of the array is not used. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= K. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The shape of the matrix V and the storage of the vectors which define *> the H(i) is best illustrated by the following example with n = 5 and *> k = 3. The elements equal to 1 are not stored. *> *> DIRECT = 'F' and STOREV = 'C': DIRECT = 'F' and STOREV = 'R': *> *> V = ( 1 ) V = ( 1 v1 v1 v1 v1 ) *> ( v1 1 ) ( 1 v2 v2 v2 ) *> ( v1 v2 1 ) ( 1 v3 v3 ) *> ( v1 v2 v3 ) *> ( v1 v2 v3 ) *> *> DIRECT = 'B' and STOREV = 'C': DIRECT = 'B' and STOREV = 'R': *> *> V = ( v1 v2 v3 ) V = ( v1 v1 1 ) *> ( v1 v2 v3 ) ( v2 v2 v2 1 ) *> ( 1 v2 v3 ) ( v3 v3 v3 v3 1 ) *> ( 1 v3 ) *> ( 1 ) *> \endverbatim *> * ===================================================================== SUBROUTINE DLARFT( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER DIRECT, STOREV INTEGER K, LDT, LDV, N * .. * .. Array Arguments .. DOUBLE PRECISION T( LDT, * ), TAU( * ), V( LDV, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J, PREVLASTV, LASTV * .. * .. External Subroutines .. EXTERNAL DGEMV, DTRMV * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Executable Statements .. * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( LSAME( DIRECT, 'F' ) ) THEN PREVLASTV = N DO I = 1, K PREVLASTV = MAX( I, PREVLASTV ) IF( TAU( I ).EQ.ZERO ) THEN * * H(i) = I * DO J = 1, I T( J, I ) = ZERO END DO ELSE * * general case * IF( LSAME( STOREV, 'C' ) ) THEN * Skip any trailing zeros. DO LASTV = N, I+1, -1 IF( V( LASTV, I ).NE.ZERO ) EXIT END DO DO J = 1, I-1 T( J, I ) = -TAU( I ) * V( I , J ) END DO J = MIN( LASTV, PREVLASTV ) * * T(1:i-1,i) := - tau(i) * V(i:j,1:i-1)**T * V(i:j,i) * CALL DGEMV( 'Transpose', J-I, I-1, -TAU( I ), $ V( I+1, 1 ), LDV, V( I+1, I ), 1, ONE, $ T( 1, I ), 1 ) ELSE * Skip any trailing zeros. DO LASTV = N, I+1, -1 IF( V( I, LASTV ).NE.ZERO ) EXIT END DO DO J = 1, I-1 T( J, I ) = -TAU( I ) * V( J , I ) END DO J = MIN( LASTV, PREVLASTV ) * * T(1:i-1,i) := - tau(i) * V(1:i-1,i:j) * V(i,i:j)**T * CALL DGEMV( 'No transpose', I-1, J-I, -TAU( I ), $ V( 1, I+1 ), LDV, V( I, I+1 ), LDV, ONE, $ T( 1, I ), 1 ) END IF * * T(1:i-1,i) := T(1:i-1,1:i-1) * T(1:i-1,i) * CALL DTRMV( 'Upper', 'No transpose', 'Non-unit', I-1, T, $ LDT, T( 1, I ), 1 ) T( I, I ) = TAU( I ) IF( I.GT.1 ) THEN PREVLASTV = MAX( PREVLASTV, LASTV ) ELSE PREVLASTV = LASTV END IF END IF END DO ELSE PREVLASTV = 1 DO I = K, 1, -1 IF( TAU( I ).EQ.ZERO ) THEN * * H(i) = I * DO J = I, K T( J, I ) = ZERO END DO ELSE * * general case * IF( I.LT.K ) THEN IF( LSAME( STOREV, 'C' ) ) THEN * Skip any leading zeros. DO LASTV = 1, I-1 IF( V( LASTV, I ).NE.ZERO ) EXIT END DO DO J = I+1, K T( J, I ) = -TAU( I ) * V( N-K+I , J ) END DO J = MAX( LASTV, PREVLASTV ) * * T(i+1:k,i) = -tau(i) * V(j:n-k+i,i+1:k)**T * V(j:n-k+i,i) * CALL DGEMV( 'Transpose', N-K+I-J, K-I, -TAU( I ), $ V( J, I+1 ), LDV, V( J, I ), 1, ONE, $ T( I+1, I ), 1 ) ELSE * Skip any leading zeros. DO LASTV = 1, I-1 IF( V( I, LASTV ).NE.ZERO ) EXIT END DO DO J = I+1, K T( J, I ) = -TAU( I ) * V( J, N-K+I ) END DO J = MAX( LASTV, PREVLASTV ) * * T(i+1:k,i) = -tau(i) * V(i+1:k,j:n-k+i) * V(i,j:n-k+i)**T * CALL DGEMV( 'No transpose', K-I, N-K+I-J, $ -TAU( I ), V( I+1, J ), LDV, V( I, J ), LDV, $ ONE, T( I+1, I ), 1 ) END IF * * T(i+1:k,i) := T(i+1:k,i+1:k) * T(i+1:k,i) * CALL DTRMV( 'Lower', 'No transpose', 'Non-unit', K-I, $ T( I+1, I+1 ), LDT, T( I+1, I ), 1 ) IF( I.GT.1 ) THEN PREVLASTV = MIN( PREVLASTV, LASTV ) ELSE PREVLASTV = LASTV END IF END IF T( I, I ) = TAU( I ) END IF END DO END IF RETURN * * End of DLARFT * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlarfb.f0000644000000000000000000000013213543334726015163 xustar0030 mtime=1569569238.800645668 30 atime=1569569238.798645669 30 ctime=1569569238.800645668 elk-6.3.2/src/LAPACK/dlarfb.f0000644002504400250440000005130513543334726017236 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARFB applies a block reflector or its transpose to a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARFB + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARFB( SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, * T, LDT, C, LDC, WORK, LDWORK ) * * .. Scalar Arguments .. * CHARACTER DIRECT, SIDE, STOREV, TRANS * INTEGER K, LDC, LDT, LDV, LDWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION C( LDC, * ), T( LDT, * ), V( LDV, * ), * $ WORK( LDWORK, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARFB applies a real block reflector H or its transpose H**T to a *> real m by n matrix C, from either the left or the right. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply H or H**T from the Left *> = 'R': apply H or H**T from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply H (No transpose) *> = 'T': apply H**T (Transpose) *> \endverbatim *> *> \param[in] DIRECT *> \verbatim *> DIRECT is CHARACTER*1 *> Indicates how H is formed from a product of elementary *> reflectors *> = 'F': H = H(1) H(2) . . . H(k) (Forward) *> = 'B': H = H(k) . . . H(2) H(1) (Backward) *> \endverbatim *> *> \param[in] STOREV *> \verbatim *> STOREV is CHARACTER*1 *> Indicates how the vectors which define the elementary *> reflectors are stored: *> = 'C': Columnwise *> = 'R': Rowwise *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The order of the matrix T (= the number of elementary *> reflectors whose product defines the block reflector). *> \endverbatim *> *> \param[in] V *> \verbatim *> V is DOUBLE PRECISION array, dimension *> (LDV,K) if STOREV = 'C' *> (LDV,M) if STOREV = 'R' and SIDE = 'L' *> (LDV,N) if STOREV = 'R' and SIDE = 'R' *> The matrix V. See Further Details. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of the array V. *> If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M); *> if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N); *> if STOREV = 'R', LDV >= K. *> \endverbatim *> *> \param[in] T *> \verbatim *> T is DOUBLE PRECISION array, dimension (LDT,K) *> The triangular k by k matrix T in the representation of the *> block reflector. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= K. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the m by n matrix C. *> On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (LDWORK,K) *> \endverbatim *> *> \param[in] LDWORK *> \verbatim *> LDWORK is INTEGER *> The leading dimension of the array WORK. *> If SIDE = 'L', LDWORK >= max(1,N); *> if SIDE = 'R', LDWORK >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2013 * *> \ingroup doubleOTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The shape of the matrix V and the storage of the vectors which define *> the H(i) is best illustrated by the following example with n = 5 and *> k = 3. The elements equal to 1 are not stored; the corresponding *> array elements are modified but restored on exit. The rest of the *> array is not used. *> *> DIRECT = 'F' and STOREV = 'C': DIRECT = 'F' and STOREV = 'R': *> *> V = ( 1 ) V = ( 1 v1 v1 v1 v1 ) *> ( v1 1 ) ( 1 v2 v2 v2 ) *> ( v1 v2 1 ) ( 1 v3 v3 ) *> ( v1 v2 v3 ) *> ( v1 v2 v3 ) *> *> DIRECT = 'B' and STOREV = 'C': DIRECT = 'B' and STOREV = 'R': *> *> V = ( v1 v2 v3 ) V = ( v1 v1 1 ) *> ( v1 v2 v3 ) ( v2 v2 v2 1 ) *> ( 1 v2 v3 ) ( v3 v3 v3 v3 1 ) *> ( 1 v3 ) *> ( 1 ) *> \endverbatim *> * ===================================================================== SUBROUTINE DLARFB( SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, $ T, LDT, C, LDC, WORK, LDWORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2013 * * .. Scalar Arguments .. CHARACTER DIRECT, SIDE, STOREV, TRANS INTEGER K, LDC, LDT, LDV, LDWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION C( LDC, * ), T( LDT, * ), V( LDV, * ), $ WORK( LDWORK, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. CHARACTER TRANST INTEGER I, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DCOPY, DGEMM, DTRMM * .. * .. Executable Statements .. * * Quick return if possible * IF( M.LE.0 .OR. N.LE.0 ) $ RETURN * IF( LSAME( TRANS, 'N' ) ) THEN TRANST = 'T' ELSE TRANST = 'N' END IF * IF( LSAME( STOREV, 'C' ) ) THEN * IF( LSAME( DIRECT, 'F' ) ) THEN * * Let V = ( V1 ) (first K rows) * ( V2 ) * where V1 is unit lower triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**T * C where C = ( C1 ) * ( C2 ) * * W := C**T * V = (C1**T * V1 + C2**T * V2) (stored in WORK) * * W := C1**T * DO 10 J = 1, K CALL DCOPY( N, C( J, 1 ), LDC, WORK( 1, J ), 1 ) 10 CONTINUE * * W := W * V1 * CALL DTRMM( 'Right', 'Lower', 'No transpose', 'Unit', N, $ K, ONE, V, LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C2**T * V2 * CALL DGEMM( 'Transpose', 'No transpose', N, K, M-K, $ ONE, C( K+1, 1 ), LDC, V( K+1, 1 ), LDV, $ ONE, WORK, LDWORK ) END IF * * W := W * T**T or W * T * CALL DTRMM( 'Right', 'Upper', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V * W**T * IF( M.GT.K ) THEN * * C2 := C2 - V2 * W**T * CALL DGEMM( 'No transpose', 'Transpose', M-K, N, K, $ -ONE, V( K+1, 1 ), LDV, WORK, LDWORK, ONE, $ C( K+1, 1 ), LDC ) END IF * * W := W * V1**T * CALL DTRMM( 'Right', 'Lower', 'Transpose', 'Unit', N, K, $ ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W**T * DO 30 J = 1, K DO 20 I = 1, N C( J, I ) = C( J, I ) - WORK( I, J ) 20 CONTINUE 30 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**T where C = ( C1 C2 ) * * W := C * V = (C1*V1 + C2*V2) (stored in WORK) * * W := C1 * DO 40 J = 1, K CALL DCOPY( M, C( 1, J ), 1, WORK( 1, J ), 1 ) 40 CONTINUE * * W := W * V1 * CALL DTRMM( 'Right', 'Lower', 'No transpose', 'Unit', M, $ K, ONE, V, LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C2 * V2 * CALL DGEMM( 'No transpose', 'No transpose', M, K, N-K, $ ONE, C( 1, K+1 ), LDC, V( K+1, 1 ), LDV, $ ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**T * CALL DTRMM( 'Right', 'Upper', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V**T * IF( N.GT.K ) THEN * * C2 := C2 - W * V2**T * CALL DGEMM( 'No transpose', 'Transpose', M, N-K, K, $ -ONE, WORK, LDWORK, V( K+1, 1 ), LDV, ONE, $ C( 1, K+1 ), LDC ) END IF * * W := W * V1**T * CALL DTRMM( 'Right', 'Lower', 'Transpose', 'Unit', M, K, $ ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W * DO 60 J = 1, K DO 50 I = 1, M C( I, J ) = C( I, J ) - WORK( I, J ) 50 CONTINUE 60 CONTINUE END IF * ELSE * * Let V = ( V1 ) * ( V2 ) (last K rows) * where V2 is unit upper triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**T * C where C = ( C1 ) * ( C2 ) * * W := C**T * V = (C1**T * V1 + C2**T * V2) (stored in WORK) * * W := C2**T * DO 70 J = 1, K CALL DCOPY( N, C( M-K+J, 1 ), LDC, WORK( 1, J ), 1 ) 70 CONTINUE * * W := W * V2 * CALL DTRMM( 'Right', 'Upper', 'No transpose', 'Unit', N, $ K, ONE, V( M-K+1, 1 ), LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C1**T * V1 * CALL DGEMM( 'Transpose', 'No transpose', N, K, M-K, $ ONE, C, LDC, V, LDV, ONE, WORK, LDWORK ) END IF * * W := W * T**T or W * T * CALL DTRMM( 'Right', 'Lower', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V * W**T * IF( M.GT.K ) THEN * * C1 := C1 - V1 * W**T * CALL DGEMM( 'No transpose', 'Transpose', M-K, N, K, $ -ONE, V, LDV, WORK, LDWORK, ONE, C, LDC ) END IF * * W := W * V2**T * CALL DTRMM( 'Right', 'Upper', 'Transpose', 'Unit', N, K, $ ONE, V( M-K+1, 1 ), LDV, WORK, LDWORK ) * * C2 := C2 - W**T * DO 90 J = 1, K DO 80 I = 1, N C( M-K+J, I ) = C( M-K+J, I ) - WORK( I, J ) 80 CONTINUE 90 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**T where C = ( C1 C2 ) * * W := C * V = (C1*V1 + C2*V2) (stored in WORK) * * W := C2 * DO 100 J = 1, K CALL DCOPY( M, C( 1, N-K+J ), 1, WORK( 1, J ), 1 ) 100 CONTINUE * * W := W * V2 * CALL DTRMM( 'Right', 'Upper', 'No transpose', 'Unit', M, $ K, ONE, V( N-K+1, 1 ), LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C1 * V1 * CALL DGEMM( 'No transpose', 'No transpose', M, K, N-K, $ ONE, C, LDC, V, LDV, ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**T * CALL DTRMM( 'Right', 'Lower', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V**T * IF( N.GT.K ) THEN * * C1 := C1 - W * V1**T * CALL DGEMM( 'No transpose', 'Transpose', M, N-K, K, $ -ONE, WORK, LDWORK, V, LDV, ONE, C, LDC ) END IF * * W := W * V2**T * CALL DTRMM( 'Right', 'Upper', 'Transpose', 'Unit', M, K, $ ONE, V( N-K+1, 1 ), LDV, WORK, LDWORK ) * * C2 := C2 - W * DO 120 J = 1, K DO 110 I = 1, M C( I, N-K+J ) = C( I, N-K+J ) - WORK( I, J ) 110 CONTINUE 120 CONTINUE END IF END IF * ELSE IF( LSAME( STOREV, 'R' ) ) THEN * IF( LSAME( DIRECT, 'F' ) ) THEN * * Let V = ( V1 V2 ) (V1: first K columns) * where V1 is unit upper triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**T * C where C = ( C1 ) * ( C2 ) * * W := C**T * V**T = (C1**T * V1**T + C2**T * V2**T) (stored in WORK) * * W := C1**T * DO 130 J = 1, K CALL DCOPY( N, C( J, 1 ), LDC, WORK( 1, J ), 1 ) 130 CONTINUE * * W := W * V1**T * CALL DTRMM( 'Right', 'Upper', 'Transpose', 'Unit', N, K, $ ONE, V, LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C2**T * V2**T * CALL DGEMM( 'Transpose', 'Transpose', N, K, M-K, ONE, $ C( K+1, 1 ), LDC, V( 1, K+1 ), LDV, ONE, $ WORK, LDWORK ) END IF * * W := W * T**T or W * T * CALL DTRMM( 'Right', 'Upper', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V**T * W**T * IF( M.GT.K ) THEN * * C2 := C2 - V2**T * W**T * CALL DGEMM( 'Transpose', 'Transpose', M-K, N, K, -ONE, $ V( 1, K+1 ), LDV, WORK, LDWORK, ONE, $ C( K+1, 1 ), LDC ) END IF * * W := W * V1 * CALL DTRMM( 'Right', 'Upper', 'No transpose', 'Unit', N, $ K, ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W**T * DO 150 J = 1, K DO 140 I = 1, N C( J, I ) = C( J, I ) - WORK( I, J ) 140 CONTINUE 150 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H**T where C = ( C1 C2 ) * * W := C * V**T = (C1*V1**T + C2*V2**T) (stored in WORK) * * W := C1 * DO 160 J = 1, K CALL DCOPY( M, C( 1, J ), 1, WORK( 1, J ), 1 ) 160 CONTINUE * * W := W * V1**T * CALL DTRMM( 'Right', 'Upper', 'Transpose', 'Unit', M, K, $ ONE, V, LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C2 * V2**T * CALL DGEMM( 'No transpose', 'Transpose', M, K, N-K, $ ONE, C( 1, K+1 ), LDC, V( 1, K+1 ), LDV, $ ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**T * CALL DTRMM( 'Right', 'Upper', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V * IF( N.GT.K ) THEN * * C2 := C2 - W * V2 * CALL DGEMM( 'No transpose', 'No transpose', M, N-K, K, $ -ONE, WORK, LDWORK, V( 1, K+1 ), LDV, ONE, $ C( 1, K+1 ), LDC ) END IF * * W := W * V1 * CALL DTRMM( 'Right', 'Upper', 'No transpose', 'Unit', M, $ K, ONE, V, LDV, WORK, LDWORK ) * * C1 := C1 - W * DO 180 J = 1, K DO 170 I = 1, M C( I, J ) = C( I, J ) - WORK( I, J ) 170 CONTINUE 180 CONTINUE * END IF * ELSE * * Let V = ( V1 V2 ) (V2: last K columns) * where V2 is unit lower triangular. * IF( LSAME( SIDE, 'L' ) ) THEN * * Form H * C or H**T * C where C = ( C1 ) * ( C2 ) * * W := C**T * V**T = (C1**T * V1**T + C2**T * V2**T) (stored in WORK) * * W := C2**T * DO 190 J = 1, K CALL DCOPY( N, C( M-K+J, 1 ), LDC, WORK( 1, J ), 1 ) 190 CONTINUE * * W := W * V2**T * CALL DTRMM( 'Right', 'Lower', 'Transpose', 'Unit', N, K, $ ONE, V( 1, M-K+1 ), LDV, WORK, LDWORK ) IF( M.GT.K ) THEN * * W := W + C1**T * V1**T * CALL DGEMM( 'Transpose', 'Transpose', N, K, M-K, ONE, $ C, LDC, V, LDV, ONE, WORK, LDWORK ) END IF * * W := W * T**T or W * T * CALL DTRMM( 'Right', 'Lower', TRANST, 'Non-unit', N, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - V**T * W**T * IF( M.GT.K ) THEN * * C1 := C1 - V1**T * W**T * CALL DGEMM( 'Transpose', 'Transpose', M-K, N, K, -ONE, $ V, LDV, WORK, LDWORK, ONE, C, LDC ) END IF * * W := W * V2 * CALL DTRMM( 'Right', 'Lower', 'No transpose', 'Unit', N, $ K, ONE, V( 1, M-K+1 ), LDV, WORK, LDWORK ) * * C2 := C2 - W**T * DO 210 J = 1, K DO 200 I = 1, N C( M-K+J, I ) = C( M-K+J, I ) - WORK( I, J ) 200 CONTINUE 210 CONTINUE * ELSE IF( LSAME( SIDE, 'R' ) ) THEN * * Form C * H or C * H' where C = ( C1 C2 ) * * W := C * V**T = (C1*V1**T + C2*V2**T) (stored in WORK) * * W := C2 * DO 220 J = 1, K CALL DCOPY( M, C( 1, N-K+J ), 1, WORK( 1, J ), 1 ) 220 CONTINUE * * W := W * V2**T * CALL DTRMM( 'Right', 'Lower', 'Transpose', 'Unit', M, K, $ ONE, V( 1, N-K+1 ), LDV, WORK, LDWORK ) IF( N.GT.K ) THEN * * W := W + C1 * V1**T * CALL DGEMM( 'No transpose', 'Transpose', M, K, N-K, $ ONE, C, LDC, V, LDV, ONE, WORK, LDWORK ) END IF * * W := W * T or W * T**T * CALL DTRMM( 'Right', 'Lower', TRANS, 'Non-unit', M, K, $ ONE, T, LDT, WORK, LDWORK ) * * C := C - W * V * IF( N.GT.K ) THEN * * C1 := C1 - W * V1 * CALL DGEMM( 'No transpose', 'No transpose', M, N-K, K, $ -ONE, WORK, LDWORK, V, LDV, ONE, C, LDC ) END IF * * W := W * V2 * CALL DTRMM( 'Right', 'Lower', 'No transpose', 'Unit', M, $ K, ONE, V( 1, N-K+1 ), LDV, WORK, LDWORK ) * * C1 := C1 - W * DO 240 J = 1, K DO 230 I = 1, M C( I, N-K+J ) = C( I, N-K+J ) - WORK( I, J ) 230 CONTINUE 240 CONTINUE * END IF * END IF END IF * RETURN * * End of DLARFB * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorg2r.f0000644000000000000000000000013213543334726015130 xustar0030 mtime=1569569238.804645665 30 atime=1569569238.803645666 30 ctime=1569569238.804645665 elk-6.3.2/src/LAPACK/dorg2r.f0000644002504400250440000001222013543334726017174 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORG2R generates all or part of the orthogonal matrix Q from a QR factorization determined by sgeqrf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORG2R + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORG2R( M, N, K, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORG2R generates an m by n real matrix Q with orthonormal columns, *> which is defined as the first n columns of a product of k elementary *> reflectors of order m *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by DGEQRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. M >= N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. N >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the i-th column must contain the vector which *> defines the elementary reflector H(i), for i = 1,2,...,k, as *> returned by DGEQRF in the first k columns of its array *> argument A. *> On exit, the m-by-n matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQRF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORG2R( M, N, K, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J, L * .. * .. External Subroutines .. EXTERNAL DLARF, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 .OR. N.GT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.N ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORG2R', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * * Initialise columns k+1:n to columns of the unit matrix * DO 20 J = K + 1, N DO 10 L = 1, M A( L, J ) = ZERO 10 CONTINUE A( J, J ) = ONE 20 CONTINUE * DO 40 I = K, 1, -1 * * Apply H(i) to A(i:m,i:n) from the left * IF( I.LT.N ) THEN A( I, I ) = ONE CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), $ A( I, I+1 ), LDA, WORK ) END IF IF( I.LT.M ) $ CALL DSCAL( M-I, -TAU( I ), A( I+1, I ), 1 ) A( I, I ) = ONE - TAU( I ) * * Set A(1:i-1,i) to zero * DO 30 L = 1, I - 1 A( L, I ) = ZERO 30 CONTINUE 40 CONTINUE RETURN * * End of DORG2R * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dormql.f0000644000000000000000000000013213543334726015227 xustar0030 mtime=1569569238.809645662 30 atime=1569569238.807645663 30 ctime=1569569238.809645662 elk-6.3.2/src/LAPACK/dormql.f0000644002504400250440000002227513543334726017306 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORMQL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORMQL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORMQL overwrites the general real M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'T': Q**T * C C * Q**T *> *> where Q is a real orthogonal matrix defined as the product of k *> elementary reflectors *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGEQLF. Q is of order M if SIDE = 'L' and of order N *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left; *> = 'R': apply Q or Q**T from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'T': Transpose, apply Q**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGEQLF in the last k columns of its array argument A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQLF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) * .. * .. Local Scalars .. LOGICAL LEFT, LQUERY, NOTRAN INTEGER I, I1, I2, I3, IB, IINFO, IWT, LDWORK, LWKOPT, $ MI, NB, NBMIN, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DLARFB, DLARFT, DORM2L, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = MAX( 1, N ) ELSE NQ = N NW = MAX( 1, M ) END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.NW .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * IF( M.EQ.0 .OR. N.EQ.0 ) THEN LWKOPT = 1 ELSE NB = MIN( NBMAX, ILAENV( 1, 'DORMQL', SIDE // TRANS, M, N, $ K, -1 ) ) LWKOPT = NW*NB + TSIZE END IF WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORMQL', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) THEN RETURN END IF * NBMIN = 2 LDWORK = NW IF( NB.GT.1 .AND. NB.LT.K ) THEN IF( LWORK.LT.NW*NB+TSIZE ) THEN NB = (LWORK-TSIZE) / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DORMQL', SIDE // TRANS, M, N, K, $ -1 ) ) END IF END IF * IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL DORM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, $ IINFO ) ELSE * * Use blocked code * IWT = 1 + NW*NB IF( ( LEFT .AND. NOTRAN ) .OR. $ ( .NOT.LEFT .AND. .NOT.NOTRAN ) ) THEN I1 = 1 I2 = K I3 = NB ELSE I1 = ( ( K-1 ) / NB )*NB + 1 I2 = 1 I3 = -NB END IF * IF( LEFT ) THEN NI = N ELSE MI = M END IF * DO 10 I = I1, I2, I3 IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i+ib-1) . . . H(i+1) H(i) * CALL DLARFT( 'Backward', 'Columnwise', NQ-K+I+IB-1, IB, $ A( 1, I ), LDA, TAU( I ), WORK( IWT ), LDT ) IF( LEFT ) THEN * * H or H**T is applied to C(1:m-k+i+ib-1,1:n) * MI = M - K + I + IB - 1 ELSE * * H or H**T is applied to C(1:m,1:n-k+i+ib-1) * NI = N - K + I + IB - 1 END IF * * Apply H or H**T * CALL DLARFB( SIDE, TRANS, 'Backward', 'Columnwise', MI, NI, $ IB, A( 1, I ), LDA, WORK( IWT ), LDT, C, LDC, $ WORK, LDWORK ) 10 CONTINUE END IF WORK( 1 ) = LWKOPT RETURN * * End of DORMQL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dormqr.f0000644000000000000000000000013113543334726015234 xustar0030 mtime=1569569238.814645659 29 atime=1569569238.81264566 30 ctime=1569569238.814645659 elk-6.3.2/src/LAPACK/dormqr.f0000644002504400250440000002224113543334726017305 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORMQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORMQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORMQR overwrites the general real M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'T': Q**T * C C * Q**T *> *> where Q is a real orthogonal matrix defined as the product of k *> elementary reflectors *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by DGEQRF. Q is of order M if SIDE = 'L' and of order N *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left; *> = 'R': apply Q or Q**T from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'T': Transpose, apply Q**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGEQRF in the first k columns of its array argument A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQRF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) * .. * .. Local Scalars .. LOGICAL LEFT, LQUERY, NOTRAN INTEGER I, I1, I2, I3, IB, IC, IINFO, IWT, JC, LDWORK, $ LWKOPT, MI, NB, NBMIN, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DLARFB, DLARFT, DORM2R, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * NB = MIN( NBMAX, ILAENV( 1, 'DORMQR', SIDE // TRANS, M, N, K, $ -1 ) ) LWKOPT = MAX( 1, NW )*NB + TSIZE WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORMQR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 LDWORK = NW IF( NB.GT.1 .AND. NB.LT.K ) THEN IF( LWORK.LT.NW*NB+TSIZE ) THEN NB = (LWORK-TSIZE) / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DORMQR', SIDE // TRANS, M, N, K, $ -1 ) ) END IF END IF * IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, $ IINFO ) ELSE * * Use blocked code * IWT = 1 + NW*NB IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. $ ( .NOT.LEFT .AND. NOTRAN ) ) THEN I1 = 1 I2 = K I3 = NB ELSE I1 = ( ( K-1 ) / NB )*NB + 1 I2 = 1 I3 = -NB END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 10 I = I1, I2, I3 IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL DLARFT( 'Forward', 'Columnwise', NQ-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK( IWT ), LDT ) IF( LEFT ) THEN * * H or H**T is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H or H**T is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H or H**T * CALL DLARFB( SIDE, TRANS, 'Forward', 'Columnwise', MI, NI, $ IB, A( I, I ), LDA, WORK( IWT ), LDT, $ C( IC, JC ), LDC, WORK, LDWORK ) 10 CONTINUE END IF WORK( 1 ) = LWKOPT RETURN * * End of DORMQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed0.f0000644000000000000000000000013213543334726015062 xustar0030 mtime=1569569238.819645656 30 atime=1569569238.817645657 30 ctime=1569569238.819645656 elk-6.3.2/src/LAPACK/dlaed0.f0000644002504400250440000003310613543334726017134 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED0 used by sstedc. Computes all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED0 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED0( ICOMPQ, QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, * WORK, IWORK, INFO ) * * .. Scalar Arguments .. * INTEGER ICOMPQ, INFO, LDQ, LDQS, N, QSIZ * .. * .. Array Arguments .. * INTEGER IWORK( * ) * DOUBLE PRECISION D( * ), E( * ), Q( LDQ, * ), QSTORE( LDQS, * ), * $ WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED0 computes all eigenvalues and corresponding eigenvectors of a *> symmetric tridiagonal matrix using the divide and conquer method. *> \endverbatim * * Arguments: * ========== * *> \param[in] ICOMPQ *> \verbatim *> ICOMPQ is INTEGER *> = 0: Compute eigenvalues only. *> = 1: Compute eigenvectors of original dense symmetric matrix *> also. On entry, Q contains the orthogonal matrix used *> to reduce the original matrix to tridiagonal form. *> = 2: Compute eigenvalues and eigenvectors of tridiagonal *> matrix. *> \endverbatim *> *> \param[in] QSIZ *> \verbatim *> QSIZ is INTEGER *> The dimension of the orthogonal matrix used to reduce *> the full matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the main diagonal of the tridiagonal matrix. *> On exit, its eigenvalues. *> \endverbatim *> *> \param[in] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix. *> On exit, E has been destroyed. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ, N) *> On entry, Q must contain an N-by-N orthogonal matrix. *> If ICOMPQ = 0 Q is not referenced. *> If ICOMPQ = 1 On entry, Q is a subset of the columns of the *> orthogonal matrix used to reduce the full *> matrix to tridiagonal form corresponding to *> the subset of the full matrix which is being *> decomposed at this time. *> If ICOMPQ = 2 On entry, Q will be the identity matrix. *> On exit, Q contains the eigenvectors of the *> tridiagonal matrix. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. If eigenvectors are *> desired, then LDQ >= max(1,N). In any case, LDQ >= 1. *> \endverbatim *> *> \param[out] QSTORE *> \verbatim *> QSTORE is DOUBLE PRECISION array, dimension (LDQS, N) *> Referenced only when ICOMPQ = 1. Used to store parts of *> the eigenvector matrix when the updating matrix multiplies *> take place. *> \endverbatim *> *> \param[in] LDQS *> \verbatim *> LDQS is INTEGER *> The leading dimension of the array QSTORE. If ICOMPQ = 1, *> then LDQS >= max(1,N). In any case, LDQS >= 1. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, *> If ICOMPQ = 0 or 1, the dimension of WORK must be at least *> 1 + 3*N + 2*N*lg N + 3*N**2 *> ( lg( N ) = smallest integer k *> such that 2^k >= N ) *> If ICOMPQ = 2, the dimension of WORK must be at least *> 4*N + N**2. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, *> If ICOMPQ = 0 or 1, the dimension of IWORK must be at least *> 6 + 6*N + 5*N*lg N. *> ( lg( N ) = smallest integer k *> such that 2^k >= N ) *> If ICOMPQ = 2, the dimension of IWORK must be at least *> 3 + 5*N. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: The algorithm failed to compute an eigenvalue while *> working on the submatrix lying in rows and columns *> INFO/(N+1) through mod(INFO,N+1). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA * * ===================================================================== SUBROUTINE DLAED0( ICOMPQ, QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, $ WORK, IWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER ICOMPQ, INFO, LDQ, LDQS, N, QSIZ * .. * .. Array Arguments .. INTEGER IWORK( * ) DOUBLE PRECISION D( * ), E( * ), Q( LDQ, * ), QSTORE( LDQS, * ), $ WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO PARAMETER ( ZERO = 0.D0, ONE = 1.D0, TWO = 2.D0 ) * .. * .. Local Scalars .. INTEGER CURLVL, CURPRB, CURR, I, IGIVCL, IGIVNM, $ IGIVPT, INDXQ, IPERM, IPRMPT, IQ, IQPTR, IWREM, $ J, K, LGN, MATSIZ, MSD2, SMLSIZ, SMM1, SPM1, $ SPM2, SUBMAT, SUBPBS, TLVLS DOUBLE PRECISION TEMP * .. * .. External Subroutines .. EXTERNAL DCOPY, DGEMM, DLACPY, DLAED1, DLAED7, DSTEQR, $ XERBLA * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, INT, LOG, MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( ICOMPQ.LT.0 .OR. ICOMPQ.GT.2 ) THEN INFO = -1 ELSE IF( ( ICOMPQ.EQ.1 ) .AND. ( QSIZ.LT.MAX( 0, N ) ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -7 ELSE IF( LDQS.LT.MAX( 1, N ) ) THEN INFO = -9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED0', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * SMLSIZ = ILAENV( 9, 'DLAED0', ' ', 0, 0, 0, 0 ) * * Determine the size and placement of the submatrices, and save in * the leading elements of IWORK. * IWORK( 1 ) = N SUBPBS = 1 TLVLS = 0 10 CONTINUE IF( IWORK( SUBPBS ).GT.SMLSIZ ) THEN DO 20 J = SUBPBS, 1, -1 IWORK( 2*J ) = ( IWORK( J )+1 ) / 2 IWORK( 2*J-1 ) = IWORK( J ) / 2 20 CONTINUE TLVLS = TLVLS + 1 SUBPBS = 2*SUBPBS GO TO 10 END IF DO 30 J = 2, SUBPBS IWORK( J ) = IWORK( J ) + IWORK( J-1 ) 30 CONTINUE * * Divide the matrix into SUBPBS submatrices of size at most SMLSIZ+1 * using rank-1 modifications (cuts). * SPM1 = SUBPBS - 1 DO 40 I = 1, SPM1 SUBMAT = IWORK( I ) + 1 SMM1 = SUBMAT - 1 D( SMM1 ) = D( SMM1 ) - ABS( E( SMM1 ) ) D( SUBMAT ) = D( SUBMAT ) - ABS( E( SMM1 ) ) 40 CONTINUE * INDXQ = 4*N + 3 IF( ICOMPQ.NE.2 ) THEN * * Set up workspaces for eigenvalues only/accumulate new vectors * routine * TEMP = LOG( DBLE( N ) ) / LOG( TWO ) LGN = INT( TEMP ) IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IF( 2**LGN.LT.N ) $ LGN = LGN + 1 IPRMPT = INDXQ + N + 1 IPERM = IPRMPT + N*LGN IQPTR = IPERM + N*LGN IGIVPT = IQPTR + N + 2 IGIVCL = IGIVPT + N*LGN * IGIVNM = 1 IQ = IGIVNM + 2*N*LGN IWREM = IQ + N**2 + 1 * * Initialize pointers * DO 50 I = 0, SUBPBS IWORK( IPRMPT+I ) = 1 IWORK( IGIVPT+I ) = 1 50 CONTINUE IWORK( IQPTR ) = 1 END IF * * Solve each submatrix eigenproblem at the bottom of the divide and * conquer tree. * CURR = 0 DO 70 I = 0, SPM1 IF( I.EQ.0 ) THEN SUBMAT = 1 MATSIZ = IWORK( 1 ) ELSE SUBMAT = IWORK( I ) + 1 MATSIZ = IWORK( I+1 ) - IWORK( I ) END IF IF( ICOMPQ.EQ.2 ) THEN CALL DSTEQR( 'I', MATSIZ, D( SUBMAT ), E( SUBMAT ), $ Q( SUBMAT, SUBMAT ), LDQ, WORK, INFO ) IF( INFO.NE.0 ) $ GO TO 130 ELSE CALL DSTEQR( 'I', MATSIZ, D( SUBMAT ), E( SUBMAT ), $ WORK( IQ-1+IWORK( IQPTR+CURR ) ), MATSIZ, WORK, $ INFO ) IF( INFO.NE.0 ) $ GO TO 130 IF( ICOMPQ.EQ.1 ) THEN CALL DGEMM( 'N', 'N', QSIZ, MATSIZ, MATSIZ, ONE, $ Q( 1, SUBMAT ), LDQ, WORK( IQ-1+IWORK( IQPTR+ $ CURR ) ), MATSIZ, ZERO, QSTORE( 1, SUBMAT ), $ LDQS ) END IF IWORK( IQPTR+CURR+1 ) = IWORK( IQPTR+CURR ) + MATSIZ**2 CURR = CURR + 1 END IF K = 1 DO 60 J = SUBMAT, IWORK( I+1 ) IWORK( INDXQ+J ) = K K = K + 1 60 CONTINUE 70 CONTINUE * * Successively merge eigensystems of adjacent submatrices * into eigensystem for the corresponding larger matrix. * * while ( SUBPBS > 1 ) * CURLVL = 1 80 CONTINUE IF( SUBPBS.GT.1 ) THEN SPM2 = SUBPBS - 2 DO 90 I = 0, SPM2, 2 IF( I.EQ.0 ) THEN SUBMAT = 1 MATSIZ = IWORK( 2 ) MSD2 = IWORK( 1 ) CURPRB = 0 ELSE SUBMAT = IWORK( I ) + 1 MATSIZ = IWORK( I+2 ) - IWORK( I ) MSD2 = MATSIZ / 2 CURPRB = CURPRB + 1 END IF * * Merge lower order eigensystems (of size MSD2 and MATSIZ - MSD2) * into an eigensystem of size MATSIZ. * DLAED1 is used only for the full eigensystem of a tridiagonal * matrix. * DLAED7 handles the cases in which eigenvalues only or eigenvalues * and eigenvectors of a full symmetric matrix (which was reduced to * tridiagonal form) are desired. * IF( ICOMPQ.EQ.2 ) THEN CALL DLAED1( MATSIZ, D( SUBMAT ), Q( SUBMAT, SUBMAT ), $ LDQ, IWORK( INDXQ+SUBMAT ), $ E( SUBMAT+MSD2-1 ), MSD2, WORK, $ IWORK( SUBPBS+1 ), INFO ) ELSE CALL DLAED7( ICOMPQ, MATSIZ, QSIZ, TLVLS, CURLVL, CURPRB, $ D( SUBMAT ), QSTORE( 1, SUBMAT ), LDQS, $ IWORK( INDXQ+SUBMAT ), E( SUBMAT+MSD2-1 ), $ MSD2, WORK( IQ ), IWORK( IQPTR ), $ IWORK( IPRMPT ), IWORK( IPERM ), $ IWORK( IGIVPT ), IWORK( IGIVCL ), $ WORK( IGIVNM ), WORK( IWREM ), $ IWORK( SUBPBS+1 ), INFO ) END IF IF( INFO.NE.0 ) $ GO TO 130 IWORK( I / 2+1 ) = IWORK( I+2 ) 90 CONTINUE SUBPBS = SUBPBS / 2 CURLVL = CURLVL + 1 GO TO 80 END IF * * end while * * Re-merge the eigenvalues/vectors which were deflated at the final * merge step. * IF( ICOMPQ.EQ.1 ) THEN DO 100 I = 1, N J = IWORK( INDXQ+I ) WORK( I ) = D( J ) CALL DCOPY( QSIZ, QSTORE( 1, J ), 1, Q( 1, I ), 1 ) 100 CONTINUE CALL DCOPY( N, WORK, 1, D, 1 ) ELSE IF( ICOMPQ.EQ.2 ) THEN DO 110 I = 1, N J = IWORK( INDXQ+I ) WORK( I ) = D( J ) CALL DCOPY( N, Q( 1, J ), 1, WORK( N*I+1 ), 1 ) 110 CONTINUE CALL DCOPY( N, WORK, 1, D, 1 ) CALL DLACPY( 'A', N, N, WORK( N+1 ), N, Q, LDQ ) ELSE DO 120 I = 1, N J = IWORK( INDXQ+I ) WORK( I ) = D( J ) 120 CONTINUE CALL DCOPY( N, WORK, 1, D, 1 ) END IF GO TO 140 * 130 CONTINUE INFO = SUBMAT*( N+1 ) + SUBMAT + MATSIZ - 1 * 140 CONTINUE RETURN * * End of DLAED0 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlacgv.f0000644000000000000000000000013213543334726015217 xustar0030 mtime=1569569238.823645653 30 atime=1569569238.822645654 30 ctime=1569569238.823645653 elk-6.3.2/src/LAPACK/zlacgv.f0000644002504400250440000000544413543334726017275 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLACGV conjugates a complex vector. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLACGV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLACGV( N, X, INCX ) * * .. Scalar Arguments .. * INTEGER INCX, N * .. * .. Array Arguments .. * COMPLEX*16 X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLACGV conjugates a complex vector of length N. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The length of the vector X. N >= 0. *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension *> (1+(N-1)*abs(INCX)) *> On entry, the vector of length N to be conjugated. *> On exit, X is overwritten with conjg(X). *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The spacing between successive elements of X. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZLACGV( N, X, INCX ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX, N * .. * .. Array Arguments .. COMPLEX*16 X( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, IOFF * .. * .. Intrinsic Functions .. INTRINSIC DCONJG * .. * .. Executable Statements .. * IF( INCX.EQ.1 ) THEN DO 10 I = 1, N X( I ) = DCONJG( X( I ) ) 10 CONTINUE ELSE IOFF = 1 IF( INCX.LT.0 ) $ IOFF = 1 - ( N-1 )*INCX DO 20 I = 1, N X( IOFF ) = DCONJG( X( IOFF ) ) IOFF = IOFF + INCX 20 CONTINUE END IF RETURN * * End of ZLACGV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaed7.f0000644000000000000000000000013013543334726015115 xustar0029 mtime=1569569238.82864565 30 atime=1569569238.826645651 29 ctime=1569569238.82864565 elk-6.3.2/src/LAPACK/zlaed7.f0000644002504400250440000003036313543334726017173 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAED7 used by sstedc. Computes the updated eigensystem of a diagonal matrix after modification by a rank-one symmetric matrix. Used when the original matrix is dense. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAED7 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAED7( N, CUTPNT, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, * LDQ, RHO, INDXQ, QSTORE, QPTR, PRMPTR, PERM, * GIVPTR, GIVCOL, GIVNUM, WORK, RWORK, IWORK, * INFO ) * * .. Scalar Arguments .. * INTEGER CURLVL, CURPBM, CUTPNT, INFO, LDQ, N, QSIZ, * $ TLVLS * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER GIVCOL( 2, * ), GIVPTR( * ), INDXQ( * ), * $ IWORK( * ), PERM( * ), PRMPTR( * ), QPTR( * ) * DOUBLE PRECISION D( * ), GIVNUM( 2, * ), QSTORE( * ), RWORK( * ) * COMPLEX*16 Q( LDQ, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAED7 computes the updated eigensystem of a diagonal *> matrix after modification by a rank-one symmetric matrix. This *> routine is used only for the eigenproblem which requires all *> eigenvalues and optionally eigenvectors of a dense or banded *> Hermitian matrix that has been reduced to tridiagonal form. *> *> T = Q(in) ( D(in) + RHO * Z*Z**H ) Q**H(in) = Q(out) * D(out) * Q**H(out) *> *> where Z = Q**Hu, u is a vector of length N with ones in the *> CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. *> *> The eigenvectors of the original matrix are stored in Q, and the *> eigenvalues are in D. The algorithm consists of three stages: *> *> The first stage consists of deflating the size of the problem *> when there are multiple eigenvalues or if there is a zero in *> the Z vector. For each such occurrence the dimension of the *> secular equation problem is reduced by one. This stage is *> performed by the routine DLAED2. *> *> The second stage consists of calculating the updated *> eigenvalues. This is done by finding the roots of the secular *> equation via the routine DLAED4 (as called by SLAED3). *> This routine also calculates the eigenvectors of the current *> problem. *> *> The final stage consists of computing the updated eigenvectors *> directly using the updated eigenvalues. The eigenvectors for *> the current problem are multiplied with the eigenvectors from *> the overall problem. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in] CUTPNT *> \verbatim *> CUTPNT is INTEGER *> Contains the location of the last eigenvalue in the leading *> sub-matrix. min(1,N) <= CUTPNT <= N. *> \endverbatim *> *> \param[in] QSIZ *> \verbatim *> QSIZ is INTEGER *> The dimension of the unitary matrix used to reduce *> the full matrix to tridiagonal form. QSIZ >= N. *> \endverbatim *> *> \param[in] TLVLS *> \verbatim *> TLVLS is INTEGER *> The total number of merging levels in the overall divide and *> conquer tree. *> \endverbatim *> *> \param[in] CURLVL *> \verbatim *> CURLVL is INTEGER *> The current level in the overall merge routine, *> 0 <= curlvl <= tlvls. *> \endverbatim *> *> \param[in] CURPBM *> \verbatim *> CURPBM is INTEGER *> The current problem in the current level in the overall *> merge routine (counting from upper left to lower right). *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the eigenvalues of the rank-1-perturbed matrix. *> On exit, the eigenvalues of the repaired matrix. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is COMPLEX*16 array, dimension (LDQ,N) *> On entry, the eigenvectors of the rank-1-perturbed matrix. *> On exit, the eigenvectors of the repaired tridiagonal matrix. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> Contains the subdiagonal element used to create the rank-1 *> modification. *> \endverbatim *> *> \param[out] INDXQ *> \verbatim *> INDXQ is INTEGER array, dimension (N) *> This contains the permutation which will reintegrate the *> subproblem just solved back into sorted order, *> ie. D( INDXQ( I = 1, N ) ) will be in ascending order. *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (4*N) *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, *> dimension (3*N+2*QSIZ*N) *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (QSIZ*N) *> \endverbatim *> *> \param[in,out] QSTORE *> \verbatim *> QSTORE is DOUBLE PRECISION array, dimension (N**2+1) *> Stores eigenvectors of submatrices encountered during *> divide and conquer, packed together. QPTR points to *> beginning of the submatrices. *> \endverbatim *> *> \param[in,out] QPTR *> \verbatim *> QPTR is INTEGER array, dimension (N+2) *> List of indices pointing to beginning of submatrices stored *> in QSTORE. The submatrices are numbered starting at the *> bottom left of the divide and conquer tree, from left to *> right and bottom to top. *> \endverbatim *> *> \param[in] PRMPTR *> \verbatim *> PRMPTR is INTEGER array, dimension (N lg N) *> Contains a list of pointers which indicate where in PERM a *> level's permutation is stored. PRMPTR(i+1) - PRMPTR(i) *> indicates the size of the permutation and also the size of *> the full, non-deflated problem. *> \endverbatim *> *> \param[in] PERM *> \verbatim *> PERM is INTEGER array, dimension (N lg N) *> Contains the permutations (from deflation and sorting) to be *> applied to each eigenblock. *> \endverbatim *> *> \param[in] GIVPTR *> \verbatim *> GIVPTR is INTEGER array, dimension (N lg N) *> Contains a list of pointers which indicate where in GIVCOL a *> level's Givens rotations are stored. GIVPTR(i+1) - GIVPTR(i) *> indicates the number of Givens rotations. *> \endverbatim *> *> \param[in] GIVCOL *> \verbatim *> GIVCOL is INTEGER array, dimension (2, N lg N) *> Each pair of numbers indicates a pair of columns to take place *> in a Givens rotation. *> \endverbatim *> *> \param[in] GIVNUM *> \verbatim *> GIVNUM is DOUBLE PRECISION array, dimension (2, N lg N) *> Each number indicates the S value to be used in the *> corresponding Givens rotation. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = 1, an eigenvalue did not converge *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZLAED7( N, CUTPNT, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, $ LDQ, RHO, INDXQ, QSTORE, QPTR, PRMPTR, PERM, $ GIVPTR, GIVCOL, GIVNUM, WORK, RWORK, IWORK, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER CURLVL, CURPBM, CUTPNT, INFO, LDQ, N, QSIZ, $ TLVLS DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER GIVCOL( 2, * ), GIVPTR( * ), INDXQ( * ), $ IWORK( * ), PERM( * ), PRMPTR( * ), QPTR( * ) DOUBLE PRECISION D( * ), GIVNUM( 2, * ), QSTORE( * ), RWORK( * ) COMPLEX*16 Q( LDQ, * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER COLTYP, CURR, I, IDLMDA, INDX, $ INDXC, INDXP, IQ, IW, IZ, K, N1, N2, PTR * .. * .. External Subroutines .. EXTERNAL DLAED9, DLAEDA, DLAMRG, XERBLA, ZLACRM, ZLAED8 * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * * IF( ICOMPQ.LT.0 .OR. ICOMPQ.GT.1 ) THEN * INFO = -1 * ELSE IF( N.LT.0 ) THEN IF( N.LT.0 ) THEN INFO = -1 ELSE IF( MIN( 1, N ).GT.CUTPNT .OR. N.LT.CUTPNT ) THEN INFO = -2 ELSE IF( QSIZ.LT.N ) THEN INFO = -3 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZLAED7', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * The following values are for bookkeeping purposes only. They are * integer pointers which indicate the portion of the workspace * used by a particular array in DLAED2 and SLAED3. * IZ = 1 IDLMDA = IZ + N IW = IDLMDA + N IQ = IW + N * INDX = 1 INDXC = INDX + N COLTYP = INDXC + N INDXP = COLTYP + N * * Form the z-vector which consists of the last row of Q_1 and the * first row of Q_2. * PTR = 1 + 2**TLVLS DO 10 I = 1, CURLVL - 1 PTR = PTR + 2**( TLVLS-I ) 10 CONTINUE CURR = PTR + CURPBM CALL DLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, $ GIVCOL, GIVNUM, QSTORE, QPTR, RWORK( IZ ), $ RWORK( IZ+N ), INFO ) * * When solving the final problem, we no longer need the stored data, * so we will overwrite the data from this level onto the previously * used storage space. * IF( CURLVL.EQ.TLVLS ) THEN QPTR( CURR ) = 1 PRMPTR( CURR ) = 1 GIVPTR( CURR ) = 1 END IF * * Sort and Deflate eigenvalues. * CALL ZLAED8( K, N, QSIZ, Q, LDQ, D, RHO, CUTPNT, RWORK( IZ ), $ RWORK( IDLMDA ), WORK, QSIZ, RWORK( IW ), $ IWORK( INDXP ), IWORK( INDX ), INDXQ, $ PERM( PRMPTR( CURR ) ), GIVPTR( CURR+1 ), $ GIVCOL( 1, GIVPTR( CURR ) ), $ GIVNUM( 1, GIVPTR( CURR ) ), INFO ) PRMPTR( CURR+1 ) = PRMPTR( CURR ) + N GIVPTR( CURR+1 ) = GIVPTR( CURR+1 ) + GIVPTR( CURR ) * * Solve Secular Equation. * IF( K.NE.0 ) THEN CALL DLAED9( K, 1, K, N, D, RWORK( IQ ), K, RHO, $ RWORK( IDLMDA ), RWORK( IW ), $ QSTORE( QPTR( CURR ) ), K, INFO ) CALL ZLACRM( QSIZ, K, WORK, QSIZ, QSTORE( QPTR( CURR ) ), K, Q, $ LDQ, RWORK( IQ ) ) QPTR( CURR+1 ) = QPTR( CURR ) + K**2 IF( INFO.NE.0 ) THEN RETURN END IF * * Prepare the INDXQ sorting premutation. * N1 = K N2 = N - K CALL DLAMRG( N1, N2, D, 1, -1, INDXQ ) ELSE QPTR( CURR+1 ) = QPTR( CURR ) DO 20 I = 1, N INDXQ( I ) = I 20 CONTINUE END IF * RETURN * * End of ZLAED7 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zladiv.f0000644000000000000000000000013213543334726015222 xustar0030 mtime=1569569238.832645647 30 atime=1569569238.831645648 30 ctime=1569569238.832645647 elk-6.3.2/src/LAPACK/zladiv.f0000644002504400250440000000457113543334726017300 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLADIV performs complex division in real arithmetic, avoiding unnecessary overflow. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLADIV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * COMPLEX*16 FUNCTION ZLADIV( X, Y ) * * .. Scalar Arguments .. * COMPLEX*16 X, Y * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLADIV := X / Y, where X and Y are complex. The computation of X / Y *> will not overflow on an intermediary step unless the results *> overflows. *> \endverbatim * * Arguments: * ========== * *> \param[in] X *> \verbatim *> X is COMPLEX*16 *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is COMPLEX*16 *> The complex scalars X and Y. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== COMPLEX*16 FUNCTION ZLADIV( X, Y ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. COMPLEX*16 X, Y * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION ZI, ZR * .. * .. External Subroutines .. EXTERNAL DLADIV * .. * .. Intrinsic Functions .. INTRINSIC DBLE, DCMPLX, DIMAG * .. * .. Executable Statements .. * CALL DLADIV( DBLE( X ), DIMAG( X ), DBLE( Y ), DIMAG( Y ), ZR, $ ZI ) ZLADIV = DCMPLX( ZR, ZI ) * RETURN * * End of ZLADIV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaqr3.f0000644000000000000000000000013213543334726015145 xustar0030 mtime=1569569238.837645644 30 atime=1569569238.835645645 30 ctime=1569569238.837645644 elk-6.3.2/src/LAPACK/zlaqr3.f0000644002504400250440000004314113543334726017217 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAQR3 performs the unitary similarity transformation of a Hessenberg matrix to detect and deflate fully converged eigenvalues from a trailing principal submatrix (aggressive early deflation). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAQR3 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, * IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT, * NV, WV, LDWV, WORK, LWORK ) * * .. Scalar Arguments .. * INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, * $ LDZ, LWORK, N, ND, NH, NS, NV, NW * LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), SH( * ), T( LDT, * ), V( LDV, * ), * $ WORK( * ), WV( LDWV, * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> Aggressive early deflation: *> *> ZLAQR3 accepts as input an upper Hessenberg matrix *> H and performs an unitary similarity transformation *> designed to detect and deflate fully converged eigenvalues from *> a trailing principal submatrix. On output H has been over- *> written by a new Hessenberg matrix that is a perturbation of *> an unitary similarity transformation of H. It is to be *> hoped that the final version of H has many zero subdiagonal *> entries. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] WANTT *> \verbatim *> WANTT is LOGICAL *> If .TRUE., then the Hessenberg matrix H is fully updated *> so that the triangular Schur factor may be *> computed (in cooperation with the calling subroutine). *> If .FALSE., then only enough of H is updated to preserve *> the eigenvalues. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim *> WANTZ is LOGICAL *> If .TRUE., then the unitary matrix Z is updated so *> so that the unitary Schur factor may be computed *> (in cooperation with the calling subroutine). *> If .FALSE., then Z is not referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix H and (if WANTZ is .TRUE.) the *> order of the unitary matrix Z. *> \endverbatim *> *> \param[in] KTOP *> \verbatim *> KTOP is INTEGER *> It is assumed that either KTOP = 1 or H(KTOP,KTOP-1)=0. *> KBOT and KTOP together determine an isolated block *> along the diagonal of the Hessenberg matrix. *> \endverbatim *> *> \param[in] KBOT *> \verbatim *> KBOT is INTEGER *> It is assumed without a check that either *> KBOT = N or H(KBOT+1,KBOT)=0. KBOT and KTOP together *> determine an isolated block along the diagonal of the *> Hessenberg matrix. *> \endverbatim *> *> \param[in] NW *> \verbatim *> NW is INTEGER *> Deflation window size. 1 .LE. NW .LE. (KBOT-KTOP+1). *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On input the initial N-by-N section of H stores the *> Hessenberg matrix undergoing aggressive early deflation. *> On output H has been transformed by a unitary *> similarity transformation, perturbed, and the returned *> to Hessenberg form that (it is to be hoped) has some *> zero subdiagonal entries. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> Leading dimension of H just as declared in the calling *> subroutine. N .LE. LDH *> \endverbatim *> *> \param[in] ILOZ *> \verbatim *> ILOZ is INTEGER *> \endverbatim *> *> \param[in] IHIZ *> \verbatim *> IHIZ is INTEGER *> Specify the rows of Z to which transformations must be *> applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,N) *> IF WANTZ is .TRUE., then on output, the unitary *> similarity transformation mentioned above has been *> accumulated into Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. *> If WANTZ is .FALSE., then Z is unreferenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of Z just as declared in the *> calling subroutine. 1 .LE. LDZ. *> \endverbatim *> *> \param[out] NS *> \verbatim *> NS is INTEGER *> The number of unconverged (ie approximate) eigenvalues *> returned in SR and SI that may be used as shifts by the *> calling subroutine. *> \endverbatim *> *> \param[out] ND *> \verbatim *> ND is INTEGER *> The number of converged eigenvalues uncovered by this *> subroutine. *> \endverbatim *> *> \param[out] SH *> \verbatim *> SH is COMPLEX*16 array, dimension (KBOT) *> On output, approximate eigenvalues that may *> be used for shifts are stored in SH(KBOT-ND-NS+1) *> through SR(KBOT-ND). Converged eigenvalues are *> stored in SH(KBOT-ND+1) through SH(KBOT). *> \endverbatim *> *> \param[out] V *> \verbatim *> V is COMPLEX*16 array, dimension (LDV,NW) *> An NW-by-NW work array. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of V just as declared in the *> calling subroutine. NW .LE. LDV *> \endverbatim *> *> \param[in] NH *> \verbatim *> NH is INTEGER *> The number of columns of T. NH.GE.NW. *> \endverbatim *> *> \param[out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,NW) *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of T just as declared in the *> calling subroutine. NW .LE. LDT *> \endverbatim *> *> \param[in] NV *> \verbatim *> NV is INTEGER *> The number of rows of work array WV available for *> workspace. NV.GE.NW. *> \endverbatim *> *> \param[out] WV *> \verbatim *> WV is COMPLEX*16 array, dimension (LDWV,NW) *> \endverbatim *> *> \param[in] LDWV *> \verbatim *> LDWV is INTEGER *> The leading dimension of W just as declared in the *> calling subroutine. NW .LE. LDV *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (LWORK) *> On exit, WORK(1) is set to an estimate of the optimal value *> of LWORK for the given values of N, NW, KTOP and KBOT. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the work array WORK. LWORK = 2*NW *> suffices, but greater efficiency may result from larger *> values of LWORK. *> *> If LWORK = -1, then a workspace query is assumed; ZLAQR3 *> only estimates the optimal workspace size for the given *> values of N, NW, KTOP and KBOT. The estimate is returned *> in WORK(1). No error message related to LWORK is issued *> by XERBLA. Neither H nor Z are accessed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA *> * ===================================================================== SUBROUTINE ZLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, $ IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT, $ NV, WV, LDWV, WORK, LWORK ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, $ LDZ, LWORK, N, ND, NH, NS, NV, NW LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), SH( * ), T( LDT, * ), V( LDV, * ), $ WORK( * ), WV( LDWV, * ), Z( LDZ, * ) * .. * * ================================================================ * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION RZERO, RONE PARAMETER ( RZERO = 0.0d0, RONE = 1.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 BETA, CDUM, S, TAU DOUBLE PRECISION FOO, SAFMAX, SAFMIN, SMLNUM, ULP INTEGER I, IFST, ILST, INFO, INFQR, J, JW, KCOL, KLN, $ KNT, KROW, KWTOP, LTOP, LWK1, LWK2, LWK3, $ LWKOPT, NMIN * .. * .. External Functions .. DOUBLE PRECISION DLAMCH INTEGER ILAENV EXTERNAL DLAMCH, ILAENV * .. * .. External Subroutines .. EXTERNAL DLABAD, ZCOPY, ZGEHRD, ZGEMM, ZLACPY, ZLAHQR, $ ZLAQR4, ZLARF, ZLARFG, ZLASET, ZTREXC, ZUNMHR * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, INT, MAX, MIN * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. * * ==== Estimate optimal workspace. ==== * JW = MIN( NW, KBOT-KTOP+1 ) IF( JW.LE.2 ) THEN LWKOPT = 1 ELSE * * ==== Workspace query call to ZGEHRD ==== * CALL ZGEHRD( JW, 1, JW-1, T, LDT, WORK, WORK, -1, INFO ) LWK1 = INT( WORK( 1 ) ) * * ==== Workspace query call to ZUNMHR ==== * CALL ZUNMHR( 'R', 'N', JW, JW, 1, JW-1, T, LDT, WORK, V, LDV, $ WORK, -1, INFO ) LWK2 = INT( WORK( 1 ) ) * * ==== Workspace query call to ZLAQR4 ==== * CALL ZLAQR4( .true., .true., JW, 1, JW, T, LDT, SH, 1, JW, V, $ LDV, WORK, -1, INFQR ) LWK3 = INT( WORK( 1 ) ) * * ==== Optimal workspace ==== * LWKOPT = MAX( JW+MAX( LWK1, LWK2 ), LWK3 ) END IF * * ==== Quick return in case of workspace query. ==== * IF( LWORK.EQ.-1 ) THEN WORK( 1 ) = DCMPLX( LWKOPT, 0 ) RETURN END IF * * ==== Nothing to do ... * ... for an empty active block ... ==== NS = 0 ND = 0 WORK( 1 ) = ONE IF( KTOP.GT.KBOT ) $ RETURN * ... nor for an empty deflation window. ==== IF( NW.LT.1 ) $ RETURN * * ==== Machine constants ==== * SAFMIN = DLAMCH( 'SAFE MINIMUM' ) SAFMAX = RONE / SAFMIN CALL DLABAD( SAFMIN, SAFMAX ) ULP = DLAMCH( 'PRECISION' ) SMLNUM = SAFMIN*( DBLE( N ) / ULP ) * * ==== Setup deflation window ==== * JW = MIN( NW, KBOT-KTOP+1 ) KWTOP = KBOT - JW + 1 IF( KWTOP.EQ.KTOP ) THEN S = ZERO ELSE S = H( KWTOP, KWTOP-1 ) END IF * IF( KBOT.EQ.KWTOP ) THEN * * ==== 1-by-1 deflation window: not much to do ==== * SH( KWTOP ) = H( KWTOP, KWTOP ) NS = 1 ND = 0 IF( CABS1( S ).LE.MAX( SMLNUM, ULP*CABS1( H( KWTOP, $ KWTOP ) ) ) ) THEN NS = 0 ND = 1 IF( KWTOP.GT.KTOP ) $ H( KWTOP, KWTOP-1 ) = ZERO END IF WORK( 1 ) = ONE RETURN END IF * * ==== Convert to spike-triangular form. (In case of a * . rare QR failure, this routine continues to do * . aggressive early deflation using that part of * . the deflation window that converged using INFQR * . here and there to keep track.) ==== * CALL ZLACPY( 'U', JW, JW, H( KWTOP, KWTOP ), LDH, T, LDT ) CALL ZCOPY( JW-1, H( KWTOP+1, KWTOP ), LDH+1, T( 2, 1 ), LDT+1 ) * CALL ZLASET( 'A', JW, JW, ZERO, ONE, V, LDV ) NMIN = ILAENV( 12, 'ZLAQR3', 'SV', JW, 1, JW, LWORK ) IF( JW.GT.NMIN ) THEN CALL ZLAQR4( .true., .true., JW, 1, JW, T, LDT, SH( KWTOP ), 1, $ JW, V, LDV, WORK, LWORK, INFQR ) ELSE CALL ZLAHQR( .true., .true., JW, 1, JW, T, LDT, SH( KWTOP ), 1, $ JW, V, LDV, INFQR ) END IF * * ==== Deflation detection loop ==== * NS = JW ILST = INFQR + 1 DO 10 KNT = INFQR + 1, JW * * ==== Small spike tip deflation test ==== * FOO = CABS1( T( NS, NS ) ) IF( FOO.EQ.RZERO ) $ FOO = CABS1( S ) IF( CABS1( S )*CABS1( V( 1, NS ) ).LE.MAX( SMLNUM, ULP*FOO ) ) $ THEN * * ==== One more converged eigenvalue ==== * NS = NS - 1 ELSE * * ==== One undeflatable eigenvalue. Move it up out of the * . way. (ZTREXC can not fail in this case.) ==== * IFST = NS CALL ZTREXC( 'V', JW, T, LDT, V, LDV, IFST, ILST, INFO ) ILST = ILST + 1 END IF 10 CONTINUE * * ==== Return to Hessenberg form ==== * IF( NS.EQ.0 ) $ S = ZERO * IF( NS.LT.JW ) THEN * * ==== sorting the diagonal of T improves accuracy for * . graded matrices. ==== * DO 30 I = INFQR + 1, NS IFST = I DO 20 J = I + 1, NS IF( CABS1( T( J, J ) ).GT.CABS1( T( IFST, IFST ) ) ) $ IFST = J 20 CONTINUE ILST = I IF( IFST.NE.ILST ) $ CALL ZTREXC( 'V', JW, T, LDT, V, LDV, IFST, ILST, INFO ) 30 CONTINUE END IF * * ==== Restore shift/eigenvalue array from T ==== * DO 40 I = INFQR + 1, JW SH( KWTOP+I-1 ) = T( I, I ) 40 CONTINUE * * IF( NS.LT.JW .OR. S.EQ.ZERO ) THEN IF( NS.GT.1 .AND. S.NE.ZERO ) THEN * * ==== Reflect spike back into lower triangle ==== * CALL ZCOPY( NS, V, LDV, WORK, 1 ) DO 50 I = 1, NS WORK( I ) = DCONJG( WORK( I ) ) 50 CONTINUE BETA = WORK( 1 ) CALL ZLARFG( NS, BETA, WORK( 2 ), 1, TAU ) WORK( 1 ) = ONE * CALL ZLASET( 'L', JW-2, JW-2, ZERO, ZERO, T( 3, 1 ), LDT ) * CALL ZLARF( 'L', NS, JW, WORK, 1, DCONJG( TAU ), T, LDT, $ WORK( JW+1 ) ) CALL ZLARF( 'R', NS, NS, WORK, 1, TAU, T, LDT, $ WORK( JW+1 ) ) CALL ZLARF( 'R', JW, NS, WORK, 1, TAU, V, LDV, $ WORK( JW+1 ) ) * CALL ZGEHRD( JW, 1, NS, T, LDT, WORK, WORK( JW+1 ), $ LWORK-JW, INFO ) END IF * * ==== Copy updated reduced window into place ==== * IF( KWTOP.GT.1 ) $ H( KWTOP, KWTOP-1 ) = S*DCONJG( V( 1, 1 ) ) CALL ZLACPY( 'U', JW, JW, T, LDT, H( KWTOP, KWTOP ), LDH ) CALL ZCOPY( JW-1, T( 2, 1 ), LDT+1, H( KWTOP+1, KWTOP ), $ LDH+1 ) * * ==== Accumulate orthogonal matrix in order update * . H and Z, if requested. ==== * IF( NS.GT.1 .AND. S.NE.ZERO ) $ CALL ZUNMHR( 'R', 'N', JW, NS, 1, NS, T, LDT, WORK, V, LDV, $ WORK( JW+1 ), LWORK-JW, INFO ) * * ==== Update vertical slab in H ==== * IF( WANTT ) THEN LTOP = 1 ELSE LTOP = KTOP END IF DO 60 KROW = LTOP, KWTOP - 1, NV KLN = MIN( NV, KWTOP-KROW ) CALL ZGEMM( 'N', 'N', KLN, JW, JW, ONE, H( KROW, KWTOP ), $ LDH, V, LDV, ZERO, WV, LDWV ) CALL ZLACPY( 'A', KLN, JW, WV, LDWV, H( KROW, KWTOP ), LDH ) 60 CONTINUE * * ==== Update horizontal slab in H ==== * IF( WANTT ) THEN DO 70 KCOL = KBOT + 1, N, NH KLN = MIN( NH, N-KCOL+1 ) CALL ZGEMM( 'C', 'N', JW, KLN, JW, ONE, V, LDV, $ H( KWTOP, KCOL ), LDH, ZERO, T, LDT ) CALL ZLACPY( 'A', JW, KLN, T, LDT, H( KWTOP, KCOL ), $ LDH ) 70 CONTINUE END IF * * ==== Update vertical slab in Z ==== * IF( WANTZ ) THEN DO 80 KROW = ILOZ, IHIZ, NV KLN = MIN( NV, IHIZ-KROW+1 ) CALL ZGEMM( 'N', 'N', KLN, JW, JW, ONE, Z( KROW, KWTOP ), $ LDZ, V, LDV, ZERO, WV, LDWV ) CALL ZLACPY( 'A', KLN, JW, WV, LDWV, Z( KROW, KWTOP ), $ LDZ ) 80 CONTINUE END IF END IF * * ==== Return the number of deflations ... ==== * ND = JW - NS * * ==== ... and the number of shifts. (Subtracting * . INFQR from the spike length takes care * . of the case of a rare QR failure while * . calculating eigenvalues of the deflation * . window.) ==== * NS = NS - INFQR * * ==== Return optimal workspace. ==== * WORK( 1 ) = DCMPLX( LWKOPT, 0 ) * * ==== End of ZLAQR3 ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaqr4.f0000644000000000000000000000013013543334726015144 xustar0029 mtime=1569569238.84364564 30 atime=1569569238.840645642 29 ctime=1569569238.84364564 elk-6.3.2/src/LAPACK/zlaqr4.f0000644002504400250440000006102613543334726017222 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAQR4 computes the eigenvalues of a Hessenberg matrix, and optionally the matrices from the Schur decomposition. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAQR4 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAQR4( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, * IHIZ, Z, LDZ, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, LWORK, N * LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAQR4 implements one level of recursion for ZLAQR0. *> It is a complete implementation of the small bulge multi-shift *> QR algorithm. It may be called by ZLAQR0 and, for large enough *> deflation window size, it may be called by ZLAQR3. This *> subroutine is identical to ZLAQR0 except that it calls ZLAQR2 *> instead of ZLAQR3. *> *> ZLAQR4 computes the eigenvalues of a Hessenberg matrix H *> and, optionally, the matrices T and Z from the Schur decomposition *> H = Z T Z**H, where T is an upper triangular matrix (the *> Schur form), and Z is the unitary matrix of Schur vectors. *> *> Optionally Z may be postmultiplied into an input unitary *> matrix Q so that this routine can give the Schur factorization *> of a matrix A which has been reduced to the Hessenberg form H *> by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H. *> \endverbatim * * Arguments: * ========== * *> \param[in] WANTT *> \verbatim *> WANTT is LOGICAL *> = .TRUE. : the full Schur form T is required; *> = .FALSE.: only eigenvalues are required. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim *> WANTZ is LOGICAL *> = .TRUE. : the matrix of Schur vectors Z is required; *> = .FALSE.: Schur vectors are not required. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix H. N .GE. 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> It is assumed that H is already upper triangular in rows *> and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1, *> H(ILO,ILO-1) is zero. ILO and IHI are normally set by a *> previous call to ZGEBAL, and then passed to ZGEHRD when the *> matrix output by ZGEBAL is reduced to Hessenberg form. *> Otherwise, ILO and IHI should be set to 1 and N, *> respectively. If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N. *> If N = 0, then ILO = 1 and IHI = 0. *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On entry, the upper Hessenberg matrix H. *> On exit, if INFO = 0 and WANTT is .TRUE., then H *> contains the upper triangular matrix T from the Schur *> decomposition (the Schur form). If INFO = 0 and WANT is *> .FALSE., then the contents of H are unspecified on exit. *> (The output value of H when INFO.GT.0 is given under the *> description of INFO below.) *> *> This subroutine may explicitly set H(i,j) = 0 for i.GT.j and *> j = 1, 2, ... ILO-1 or j = IHI+1, IHI+2, ... N. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> The leading dimension of the array H. LDH .GE. max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> The computed eigenvalues of H(ILO:IHI,ILO:IHI) are stored *> in W(ILO:IHI). If WANTT is .TRUE., then the eigenvalues are *> stored in the same order as on the diagonal of the Schur *> form returned in H, with W(i) = H(i,i). *> \endverbatim *> *> \param[in] ILOZ *> \verbatim *> ILOZ is INTEGER *> \endverbatim *> *> \param[in] IHIZ *> \verbatim *> IHIZ is INTEGER *> Specify the rows of Z to which transformations must be *> applied if WANTZ is .TRUE.. *> 1 .LE. ILOZ .LE. ILO; IHI .LE. IHIZ .LE. N. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,IHI) *> If WANTZ is .FALSE., then Z is not referenced. *> If WANTZ is .TRUE., then Z(ILO:IHI,ILOZ:IHIZ) is *> replaced by Z(ILO:IHI,ILOZ:IHIZ)*U where U is the *> orthogonal Schur factor of H(ILO:IHI,ILO:IHI). *> (The output value of Z when INFO.GT.0 is given under *> the description of INFO below.) *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. if WANTZ is .TRUE. *> then LDZ.GE.MAX(1,IHIZ). Otherwize, LDZ.GE.1. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension LWORK *> On exit, if LWORK = -1, WORK(1) returns an estimate of *> the optimal value for LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK .GE. max(1,N) *> is sufficient, but LWORK typically as large as 6*N may *> be required for optimal performance. A workspace query *> to determine the optimal workspace size is recommended. *> *> If LWORK = -1, then ZLAQR4 does a workspace query. *> In this case, ZLAQR4 checks the input parameters and *> estimates the optimal workspace size for the given *> values of N, ILO and IHI. The estimate is returned *> in WORK(1). No error message related to LWORK is *> issued by XERBLA. Neither H nor Z are accessed. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> .GT. 0: if INFO = i, ZLAQR4 failed to compute all of *> the eigenvalues. Elements 1:ilo-1 and i+1:n of WR *> and WI contain those eigenvalues which have been *> successfully computed. (Failures are rare.) *> *> If INFO .GT. 0 and WANT is .FALSE., then on exit, *> the remaining unconverged eigenvalues are the eigen- *> values of the upper Hessenberg matrix rows and *> columns ILO through INFO of the final, output *> value of H. *> *> If INFO .GT. 0 and WANTT is .TRUE., then on exit *> *> (*) (initial value of H)*U = U*(final value of H) *> *> where U is a unitary matrix. The final *> value of H is upper Hessenberg and triangular in *> rows and columns INFO+1 through IHI. *> *> If INFO .GT. 0 and WANTZ is .TRUE., then on exit *> *> (final value of Z(ILO:IHI,ILOZ:IHIZ) *> = (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U *> *> where U is the unitary matrix in (*) (regard- *> less of the value of WANTT.) *> *> If INFO .GT. 0 and WANTZ is .FALSE., then Z is not *> accessed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA * *> \par References: * ================ *> *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part I: Maintaining Well Focused Shifts, and Level 3 *> Performance, SIAM Journal of Matrix Analysis, volume 23, pages *> 929--947, 2002. *> \n *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part II: Aggressive Early Deflation, SIAM Journal *> of Matrix Analysis, volume 23, pages 948--973, 2002. *> * ===================================================================== SUBROUTINE ZLAQR4( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, $ IHIZ, Z, LDZ, WORK, LWORK, INFO ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, LWORK, N LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ================================================================ * * .. Parameters .. * * ==== Matrices of order NTINY or smaller must be processed by * . ZLAHQR because of insufficient subdiagonal scratch space. * . (This is a hard limit.) ==== INTEGER NTINY PARAMETER ( NTINY = 11 ) * * ==== Exceptional deflation windows: try to cure rare * . slow convergence by varying the size of the * . deflation window after KEXNW iterations. ==== INTEGER KEXNW PARAMETER ( KEXNW = 5 ) * * ==== Exceptional shifts: try to cure rare slow convergence * . with ad-hoc exceptional shifts every KEXSH iterations. * . ==== INTEGER KEXSH PARAMETER ( KEXSH = 6 ) * * ==== The constant WILK1 is used to form the exceptional * . shifts. ==== DOUBLE PRECISION WILK1 PARAMETER ( WILK1 = 0.75d0 ) COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 AA, BB, CC, CDUM, DD, DET, RTDISC, SWAP, TR2 DOUBLE PRECISION S INTEGER I, INF, IT, ITMAX, K, KACC22, KBOT, KDU, KS, $ KT, KTOP, KU, KV, KWH, KWTOP, KWV, LD, LS, $ LWKOPT, NDEC, NDFL, NH, NHO, NIBBLE, NMIN, NS, $ NSMAX, NSR, NVE, NW, NWMAX, NWR, NWUPBD LOGICAL SORTED CHARACTER JBCMPZ*2 * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Local Arrays .. COMPLEX*16 ZDUM( 1, 1 ) * .. * .. External Subroutines .. EXTERNAL ZLACPY, ZLAHQR, ZLAQR2, ZLAQR5 * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DIMAG, INT, MAX, MIN, MOD, $ SQRT * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. INFO = 0 * * ==== Quick return for N = 0: nothing to do. ==== * IF( N.EQ.0 ) THEN WORK( 1 ) = ONE RETURN END IF * IF( N.LE.NTINY ) THEN * * ==== Tiny matrices must use ZLAHQR. ==== * LWKOPT = 1 IF( LWORK.NE.-1 ) $ CALL ZLAHQR( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ, $ IHIZ, Z, LDZ, INFO ) ELSE * * ==== Use small bulge multi-shift QR with aggressive early * . deflation on larger-than-tiny matrices. ==== * * ==== Hope for the best. ==== * INFO = 0 * * ==== Set up job flags for ILAENV. ==== * IF( WANTT ) THEN JBCMPZ( 1: 1 ) = 'S' ELSE JBCMPZ( 1: 1 ) = 'E' END IF IF( WANTZ ) THEN JBCMPZ( 2: 2 ) = 'V' ELSE JBCMPZ( 2: 2 ) = 'N' END IF * * ==== NWR = recommended deflation window size. At this * . point, N .GT. NTINY = 11, so there is enough * . subdiagonal workspace for NWR.GE.2 as required. * . (In fact, there is enough subdiagonal space for * . NWR.GE.3.) ==== * NWR = ILAENV( 13, 'ZLAQR4', JBCMPZ, N, ILO, IHI, LWORK ) NWR = MAX( 2, NWR ) NWR = MIN( IHI-ILO+1, ( N-1 ) / 3, NWR ) * * ==== NSR = recommended number of simultaneous shifts. * . At this point N .GT. NTINY = 11, so there is at * . enough subdiagonal workspace for NSR to be even * . and greater than or equal to two as required. ==== * NSR = ILAENV( 15, 'ZLAQR4', JBCMPZ, N, ILO, IHI, LWORK ) NSR = MIN( NSR, ( N+6 ) / 9, IHI-ILO ) NSR = MAX( 2, NSR-MOD( NSR, 2 ) ) * * ==== Estimate optimal workspace ==== * * ==== Workspace query call to ZLAQR2 ==== * CALL ZLAQR2( WANTT, WANTZ, N, ILO, IHI, NWR+1, H, LDH, ILOZ, $ IHIZ, Z, LDZ, LS, LD, W, H, LDH, N, H, LDH, N, H, $ LDH, WORK, -1 ) * * ==== Optimal workspace = MAX(ZLAQR5, ZLAQR2) ==== * LWKOPT = MAX( 3*NSR / 2, INT( WORK( 1 ) ) ) * * ==== Quick return in case of workspace query. ==== * IF( LWORK.EQ.-1 ) THEN WORK( 1 ) = DCMPLX( LWKOPT, 0 ) RETURN END IF * * ==== ZLAHQR/ZLAQR0 crossover point ==== * NMIN = ILAENV( 12, 'ZLAQR4', JBCMPZ, N, ILO, IHI, LWORK ) NMIN = MAX( NTINY, NMIN ) * * ==== Nibble crossover point ==== * NIBBLE = ILAENV( 14, 'ZLAQR4', JBCMPZ, N, ILO, IHI, LWORK ) NIBBLE = MAX( 0, NIBBLE ) * * ==== Accumulate reflections during ttswp? Use block * . 2-by-2 structure during matrix-matrix multiply? ==== * KACC22 = ILAENV( 16, 'ZLAQR4', JBCMPZ, N, ILO, IHI, LWORK ) KACC22 = MAX( 0, KACC22 ) KACC22 = MIN( 2, KACC22 ) * * ==== NWMAX = the largest possible deflation window for * . which there is sufficient workspace. ==== * NWMAX = MIN( ( N-1 ) / 3, LWORK / 2 ) NW = NWMAX * * ==== NSMAX = the Largest number of simultaneous shifts * . for which there is sufficient workspace. ==== * NSMAX = MIN( ( N+6 ) / 9, 2*LWORK / 3 ) NSMAX = NSMAX - MOD( NSMAX, 2 ) * * ==== NDFL: an iteration count restarted at deflation. ==== * NDFL = 1 * * ==== ITMAX = iteration limit ==== * ITMAX = MAX( 30, 2*KEXSH )*MAX( 10, ( IHI-ILO+1 ) ) * * ==== Last row and column in the active block ==== * KBOT = IHI * * ==== Main Loop ==== * DO 70 IT = 1, ITMAX * * ==== Done when KBOT falls below ILO ==== * IF( KBOT.LT.ILO ) $ GO TO 80 * * ==== Locate active block ==== * DO 10 K = KBOT, ILO + 1, -1 IF( H( K, K-1 ).EQ.ZERO ) $ GO TO 20 10 CONTINUE K = ILO 20 CONTINUE KTOP = K * * ==== Select deflation window size: * . Typical Case: * . If possible and advisable, nibble the entire * . active block. If not, use size MIN(NWR,NWMAX) * . or MIN(NWR+1,NWMAX) depending upon which has * . the smaller corresponding subdiagonal entry * . (a heuristic). * . * . Exceptional Case: * . If there have been no deflations in KEXNW or * . more iterations, then vary the deflation window * . size. At first, because, larger windows are, * . in general, more powerful than smaller ones, * . rapidly increase the window to the maximum possible. * . Then, gradually reduce the window size. ==== * NH = KBOT - KTOP + 1 NWUPBD = MIN( NH, NWMAX ) IF( NDFL.LT.KEXNW ) THEN NW = MIN( NWUPBD, NWR ) ELSE NW = MIN( NWUPBD, 2*NW ) END IF IF( NW.LT.NWMAX ) THEN IF( NW.GE.NH-1 ) THEN NW = NH ELSE KWTOP = KBOT - NW + 1 IF( CABS1( H( KWTOP, KWTOP-1 ) ).GT. $ CABS1( H( KWTOP-1, KWTOP-2 ) ) )NW = NW + 1 END IF END IF IF( NDFL.LT.KEXNW ) THEN NDEC = -1 ELSE IF( NDEC.GE.0 .OR. NW.GE.NWUPBD ) THEN NDEC = NDEC + 1 IF( NW-NDEC.LT.2 ) $ NDEC = 0 NW = NW - NDEC END IF * * ==== Aggressive early deflation: * . split workspace under the subdiagonal into * . - an nw-by-nw work array V in the lower * . left-hand-corner, * . - an NW-by-at-least-NW-but-more-is-better * . (NW-by-NHO) horizontal work array along * . the bottom edge, * . - an at-least-NW-but-more-is-better (NHV-by-NW) * . vertical work array along the left-hand-edge. * . ==== * KV = N - NW + 1 KT = NW + 1 NHO = ( N-NW-1 ) - KT + 1 KWV = NW + 2 NVE = ( N-NW ) - KWV + 1 * * ==== Aggressive early deflation ==== * CALL ZLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, $ IHIZ, Z, LDZ, LS, LD, W, H( KV, 1 ), LDH, NHO, $ H( KV, KT ), LDH, NVE, H( KWV, 1 ), LDH, WORK, $ LWORK ) * * ==== Adjust KBOT accounting for new deflations. ==== * KBOT = KBOT - LD * * ==== KS points to the shifts. ==== * KS = KBOT - LS + 1 * * ==== Skip an expensive QR sweep if there is a (partly * . heuristic) reason to expect that many eigenvalues * . will deflate without it. Here, the QR sweep is * . skipped if many eigenvalues have just been deflated * . or if the remaining active block is small. * IF( ( LD.EQ.0 ) .OR. ( ( 100*LD.LE.NW*NIBBLE ) .AND. ( KBOT- $ KTOP+1.GT.MIN( NMIN, NWMAX ) ) ) ) THEN * * ==== NS = nominal number of simultaneous shifts. * . This may be lowered (slightly) if ZLAQR2 * . did not provide that many shifts. ==== * NS = MIN( NSMAX, NSR, MAX( 2, KBOT-KTOP ) ) NS = NS - MOD( NS, 2 ) * * ==== If there have been no deflations * . in a multiple of KEXSH iterations, * . then try exceptional shifts. * . Otherwise use shifts provided by * . ZLAQR2 above or from the eigenvalues * . of a trailing principal submatrix. ==== * IF( MOD( NDFL, KEXSH ).EQ.0 ) THEN KS = KBOT - NS + 1 DO 30 I = KBOT, KS + 1, -2 W( I ) = H( I, I ) + WILK1*CABS1( H( I, I-1 ) ) W( I-1 ) = W( I ) 30 CONTINUE ELSE * * ==== Got NS/2 or fewer shifts? Use ZLAHQR * . on a trailing principal submatrix to * . get more. (Since NS.LE.NSMAX.LE.(N+6)/9, * . there is enough space below the subdiagonal * . to fit an NS-by-NS scratch array.) ==== * IF( KBOT-KS+1.LE.NS / 2 ) THEN KS = KBOT - NS + 1 KT = N - NS + 1 CALL ZLACPY( 'A', NS, NS, H( KS, KS ), LDH, $ H( KT, 1 ), LDH ) CALL ZLAHQR( .false., .false., NS, 1, NS, $ H( KT, 1 ), LDH, W( KS ), 1, 1, ZDUM, $ 1, INF ) KS = KS + INF * * ==== In case of a rare QR failure use * . eigenvalues of the trailing 2-by-2 * . principal submatrix. Scale to avoid * . overflows, underflows and subnormals. * . (The scale factor S can not be zero, * . because H(KBOT,KBOT-1) is nonzero.) ==== * IF( KS.GE.KBOT ) THEN S = CABS1( H( KBOT-1, KBOT-1 ) ) + $ CABS1( H( KBOT, KBOT-1 ) ) + $ CABS1( H( KBOT-1, KBOT ) ) + $ CABS1( H( KBOT, KBOT ) ) AA = H( KBOT-1, KBOT-1 ) / S CC = H( KBOT, KBOT-1 ) / S BB = H( KBOT-1, KBOT ) / S DD = H( KBOT, KBOT ) / S TR2 = ( AA+DD ) / TWO DET = ( AA-TR2 )*( DD-TR2 ) - BB*CC RTDISC = SQRT( -DET ) W( KBOT-1 ) = ( TR2+RTDISC )*S W( KBOT ) = ( TR2-RTDISC )*S * KS = KBOT - 1 END IF END IF * IF( KBOT-KS+1.GT.NS ) THEN * * ==== Sort the shifts (Helps a little) ==== * SORTED = .false. DO 50 K = KBOT, KS + 1, -1 IF( SORTED ) $ GO TO 60 SORTED = .true. DO 40 I = KS, K - 1 IF( CABS1( W( I ) ).LT.CABS1( W( I+1 ) ) ) $ THEN SORTED = .false. SWAP = W( I ) W( I ) = W( I+1 ) W( I+1 ) = SWAP END IF 40 CONTINUE 50 CONTINUE 60 CONTINUE END IF END IF * * ==== If there are only two shifts, then use * . only one. ==== * IF( KBOT-KS+1.EQ.2 ) THEN IF( CABS1( W( KBOT )-H( KBOT, KBOT ) ).LT. $ CABS1( W( KBOT-1 )-H( KBOT, KBOT ) ) ) THEN W( KBOT-1 ) = W( KBOT ) ELSE W( KBOT ) = W( KBOT-1 ) END IF END IF * * ==== Use up to NS of the the smallest magnatiude * . shifts. If there aren't NS shifts available, * . then use them all, possibly dropping one to * . make the number of shifts even. ==== * NS = MIN( NS, KBOT-KS+1 ) NS = NS - MOD( NS, 2 ) KS = KBOT - NS + 1 * * ==== Small-bulge multi-shift QR sweep: * . split workspace under the subdiagonal into * . - a KDU-by-KDU work array U in the lower * . left-hand-corner, * . - a KDU-by-at-least-KDU-but-more-is-better * . (KDU-by-NHo) horizontal work array WH along * . the bottom edge, * . - and an at-least-KDU-but-more-is-better-by-KDU * . (NVE-by-KDU) vertical work WV arrow along * . the left-hand-edge. ==== * KDU = 3*NS - 3 KU = N - KDU + 1 KWH = KDU + 1 NHO = ( N-KDU+1-4 ) - ( KDU+1 ) + 1 KWV = KDU + 4 NVE = N - KDU - KWV + 1 * * ==== Small-bulge multi-shift QR sweep ==== * CALL ZLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NS, $ W( KS ), H, LDH, ILOZ, IHIZ, Z, LDZ, WORK, $ 3, H( KU, 1 ), LDH, NVE, H( KWV, 1 ), LDH, $ NHO, H( KU, KWH ), LDH ) END IF * * ==== Note progress (or the lack of it). ==== * IF( LD.GT.0 ) THEN NDFL = 1 ELSE NDFL = NDFL + 1 END IF * * ==== End of main loop ==== 70 CONTINUE * * ==== Iteration limit exceeded. Set INFO to show where * . the problem occurred and exit. ==== * INFO = KBOT 80 CONTINUE END IF * * ==== Return the optimal value of LWORK. ==== * WORK( 1 ) = DCMPLX( LWKOPT, 0 ) * * ==== End of ZLAQR4 ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaqr5.f0000644000000000000000000000013213543334726015147 xustar0030 mtime=1569569238.850645636 30 atime=1569569238.846645638 30 ctime=1569569238.850645636 elk-6.3.2/src/LAPACK/zlaqr5.f0000644002504400250440000010145713543334726017226 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAQR5 performs a single small-bulge multi-shift QR sweep. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAQR5 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, S, * H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, LDU, NV, * WV, LDWV, NH, WH, LDWH ) * * .. Scalar Arguments .. * INTEGER IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV, * $ LDWH, LDWV, LDZ, N, NH, NSHFTS, NV * LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), S( * ), U( LDU, * ), V( LDV, * ), * $ WH( LDWH, * ), WV( LDWV, * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAQR5, called by ZLAQR0, performs a *> single small-bulge multi-shift QR sweep. *> \endverbatim * * Arguments: * ========== * *> \param[in] WANTT *> \verbatim *> WANTT is LOGICAL *> WANTT = .true. if the triangular Schur factor *> is being computed. WANTT is set to .false. otherwise. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim *> WANTZ is LOGICAL *> WANTZ = .true. if the unitary Schur factor is being *> computed. WANTZ is set to .false. otherwise. *> \endverbatim *> *> \param[in] KACC22 *> \verbatim *> KACC22 is INTEGER with value 0, 1, or 2. *> Specifies the computation mode of far-from-diagonal *> orthogonal updates. *> = 0: ZLAQR5 does not accumulate reflections and does not *> use matrix-matrix multiply to update far-from-diagonal *> matrix entries. *> = 1: ZLAQR5 accumulates reflections and uses matrix-matrix *> multiply to update the far-from-diagonal matrix entries. *> = 2: ZLAQR5 accumulates reflections, uses matrix-matrix *> multiply to update the far-from-diagonal matrix entries, *> and takes advantage of 2-by-2 block structure during *> matrix multiplies. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> N is the order of the Hessenberg matrix H upon which this *> subroutine operates. *> \endverbatim *> *> \param[in] KTOP *> \verbatim *> KTOP is INTEGER *> \endverbatim *> *> \param[in] KBOT *> \verbatim *> KBOT is INTEGER *> These are the first and last rows and columns of an *> isolated diagonal block upon which the QR sweep is to be *> applied. It is assumed without a check that *> either KTOP = 1 or H(KTOP,KTOP-1) = 0 *> and *> either KBOT = N or H(KBOT+1,KBOT) = 0. *> \endverbatim *> *> \param[in] NSHFTS *> \verbatim *> NSHFTS is INTEGER *> NSHFTS gives the number of simultaneous shifts. NSHFTS *> must be positive and even. *> \endverbatim *> *> \param[in,out] S *> \verbatim *> S is COMPLEX*16 array, dimension (NSHFTS) *> S contains the shifts of origin that define the multi- *> shift QR sweep. On output S may be reordered. *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On input H contains a Hessenberg matrix. On output a *> multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied *> to the isolated diagonal block in rows and columns KTOP *> through KBOT. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> LDH is the leading dimension of H just as declared in the *> calling procedure. LDH.GE.MAX(1,N). *> \endverbatim *> *> \param[in] ILOZ *> \verbatim *> ILOZ is INTEGER *> \endverbatim *> *> \param[in] IHIZ *> \verbatim *> IHIZ is INTEGER *> Specify the rows of Z to which transformations must be *> applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,IHIZ) *> If WANTZ = .TRUE., then the QR Sweep unitary *> similarity transformation is accumulated into *> Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. *> If WANTZ = .FALSE., then Z is unreferenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> LDA is the leading dimension of Z just as declared in *> the calling procedure. LDZ.GE.N. *> \endverbatim *> *> \param[out] V *> \verbatim *> V is COMPLEX*16 array, dimension (LDV,NSHFTS/2) *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> LDV is the leading dimension of V as declared in the *> calling procedure. LDV.GE.3. *> \endverbatim *> *> \param[out] U *> \verbatim *> U is COMPLEX*16 array, dimension (LDU,3*NSHFTS-3) *> \endverbatim *> *> \param[in] LDU *> \verbatim *> LDU is INTEGER *> LDU is the leading dimension of U just as declared in the *> in the calling subroutine. LDU.GE.3*NSHFTS-3. *> \endverbatim *> *> \param[in] NH *> \verbatim *> NH is INTEGER *> NH is the number of columns in array WH available for *> workspace. NH.GE.1. *> \endverbatim *> *> \param[out] WH *> \verbatim *> WH is COMPLEX*16 array, dimension (LDWH,NH) *> \endverbatim *> *> \param[in] LDWH *> \verbatim *> LDWH is INTEGER *> Leading dimension of WH just as declared in the *> calling procedure. LDWH.GE.3*NSHFTS-3. *> \endverbatim *> *> \param[in] NV *> \verbatim *> NV is INTEGER *> NV is the number of rows in WV agailable for workspace. *> NV.GE.1. *> \endverbatim *> *> \param[out] WV *> \verbatim *> WV is COMPLEX*16 array, dimension (LDWV,3*NSHFTS-3) *> \endverbatim *> *> \param[in] LDWV *> \verbatim *> LDWV is INTEGER *> LDWV is the leading dimension of WV as declared in the *> in the calling subroutine. LDWV.GE.NV. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA * *> \par References: * ================ *> *> K. Braman, R. Byers and R. Mathias, The Multi-Shift QR *> Algorithm Part I: Maintaining Well Focused Shifts, and Level 3 *> Performance, SIAM Journal of Matrix Analysis, volume 23, pages *> 929--947, 2002. *> * ===================================================================== SUBROUTINE ZLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, S, $ H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, LDU, NV, $ WV, LDWV, NH, WH, LDWH ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV, $ LDWH, LDWV, LDZ, N, NH, NSHFTS, NV LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), S( * ), U( LDU, * ), V( LDV, * ), $ WH( LDWH, * ), WV( LDWV, * ), Z( LDZ, * ) * .. * * ================================================================ * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION RZERO, RONE PARAMETER ( RZERO = 0.0d0, RONE = 1.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 ALPHA, BETA, CDUM, REFSUM DOUBLE PRECISION H11, H12, H21, H22, SAFMAX, SAFMIN, SCL, $ SMLNUM, TST1, TST2, ULP INTEGER I2, I4, INCOL, J, J2, J4, JBOT, JCOL, JLEN, $ JROW, JTOP, K, K1, KDU, KMS, KNZ, KRCOL, KZS, $ M, M22, MBOT, MEND, MSTART, MTOP, NBMPS, NDCOL, $ NS, NU LOGICAL ACCUM, BLK22, BMP22 * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. Intrinsic Functions .. * INTRINSIC ABS, DBLE, DCONJG, DIMAG, MAX, MIN, MOD * .. * .. Local Arrays .. COMPLEX*16 VT( 3 ) * .. * .. External Subroutines .. EXTERNAL DLABAD, ZGEMM, ZLACPY, ZLAQR1, ZLARFG, ZLASET, $ ZTRMM * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. * * ==== If there are no shifts, then there is nothing to do. ==== * IF( NSHFTS.LT.2 ) $ RETURN * * ==== If the active block is empty or 1-by-1, then there * . is nothing to do. ==== * IF( KTOP.GE.KBOT ) $ RETURN * * ==== NSHFTS is supposed to be even, but if it is odd, * . then simply reduce it by one. ==== * NS = NSHFTS - MOD( NSHFTS, 2 ) * * ==== Machine constants for deflation ==== * SAFMIN = DLAMCH( 'SAFE MINIMUM' ) SAFMAX = RONE / SAFMIN CALL DLABAD( SAFMIN, SAFMAX ) ULP = DLAMCH( 'PRECISION' ) SMLNUM = SAFMIN*( DBLE( N ) / ULP ) * * ==== Use accumulated reflections to update far-from-diagonal * . entries ? ==== * ACCUM = ( KACC22.EQ.1 ) .OR. ( KACC22.EQ.2 ) * * ==== If so, exploit the 2-by-2 block structure? ==== * BLK22 = ( NS.GT.2 ) .AND. ( KACC22.EQ.2 ) * * ==== clear trash ==== * IF( KTOP+2.LE.KBOT ) $ H( KTOP+2, KTOP ) = ZERO * * ==== NBMPS = number of 2-shift bulges in the chain ==== * NBMPS = NS / 2 * * ==== KDU = width of slab ==== * KDU = 6*NBMPS - 3 * * ==== Create and chase chains of NBMPS bulges ==== * DO 210 INCOL = 3*( 1-NBMPS ) + KTOP - 1, KBOT - 2, 3*NBMPS - 2 NDCOL = INCOL + KDU IF( ACCUM ) $ CALL ZLASET( 'ALL', KDU, KDU, ZERO, ONE, U, LDU ) * * ==== Near-the-diagonal bulge chase. The following loop * . performs the near-the-diagonal part of a small bulge * . multi-shift QR sweep. Each 6*NBMPS-2 column diagonal * . chunk extends from column INCOL to column NDCOL * . (including both column INCOL and column NDCOL). The * . following loop chases a 3*NBMPS column long chain of * . NBMPS bulges 3*NBMPS-2 columns to the right. (INCOL * . may be less than KTOP and and NDCOL may be greater than * . KBOT indicating phantom columns from which to chase * . bulges before they are actually introduced or to which * . to chase bulges beyond column KBOT.) ==== * DO 140 KRCOL = INCOL, MIN( INCOL+3*NBMPS-3, KBOT-2 ) * * ==== Bulges number MTOP to MBOT are active double implicit * . shift bulges. There may or may not also be small * . 2-by-2 bulge, if there is room. The inactive bulges * . (if any) must wait until the active bulges have moved * . down the diagonal to make room. The phantom matrix * . paradigm described above helps keep track. ==== * MTOP = MAX( 1, ( ( KTOP-1 )-KRCOL+2 ) / 3+1 ) MBOT = MIN( NBMPS, ( KBOT-KRCOL ) / 3 ) M22 = MBOT + 1 BMP22 = ( MBOT.LT.NBMPS ) .AND. ( KRCOL+3*( M22-1 ) ).EQ. $ ( KBOT-2 ) * * ==== Generate reflections to chase the chain right * . one column. (The minimum value of K is KTOP-1.) ==== * DO 10 M = MTOP, MBOT K = KRCOL + 3*( M-1 ) IF( K.EQ.KTOP-1 ) THEN CALL ZLAQR1( 3, H( KTOP, KTOP ), LDH, S( 2*M-1 ), $ S( 2*M ), V( 1, M ) ) ALPHA = V( 1, M ) CALL ZLARFG( 3, ALPHA, V( 2, M ), 1, V( 1, M ) ) ELSE BETA = H( K+1, K ) V( 2, M ) = H( K+2, K ) V( 3, M ) = H( K+3, K ) CALL ZLARFG( 3, BETA, V( 2, M ), 1, V( 1, M ) ) * * ==== A Bulge may collapse because of vigilant * . deflation or destructive underflow. In the * . underflow case, try the two-small-subdiagonals * . trick to try to reinflate the bulge. ==== * IF( H( K+3, K ).NE.ZERO .OR. H( K+3, K+1 ).NE. $ ZERO .OR. H( K+3, K+2 ).EQ.ZERO ) THEN * * ==== Typical case: not collapsed (yet). ==== * H( K+1, K ) = BETA H( K+2, K ) = ZERO H( K+3, K ) = ZERO ELSE * * ==== Atypical case: collapsed. Attempt to * . reintroduce ignoring H(K+1,K) and H(K+2,K). * . If the fill resulting from the new * . reflector is too large, then abandon it. * . Otherwise, use the new one. ==== * CALL ZLAQR1( 3, H( K+1, K+1 ), LDH, S( 2*M-1 ), $ S( 2*M ), VT ) ALPHA = VT( 1 ) CALL ZLARFG( 3, ALPHA, VT( 2 ), 1, VT( 1 ) ) REFSUM = DCONJG( VT( 1 ) )* $ ( H( K+1, K )+DCONJG( VT( 2 ) )* $ H( K+2, K ) ) * IF( CABS1( H( K+2, K )-REFSUM*VT( 2 ) )+ $ CABS1( REFSUM*VT( 3 ) ).GT.ULP* $ ( CABS1( H( K, K ) )+CABS1( H( K+1, $ K+1 ) )+CABS1( H( K+2, K+2 ) ) ) ) THEN * * ==== Starting a new bulge here would * . create non-negligible fill. Use * . the old one with trepidation. ==== * H( K+1, K ) = BETA H( K+2, K ) = ZERO H( K+3, K ) = ZERO ELSE * * ==== Stating a new bulge here would * . create only negligible fill. * . Replace the old reflector with * . the new one. ==== * H( K+1, K ) = H( K+1, K ) - REFSUM H( K+2, K ) = ZERO H( K+3, K ) = ZERO V( 1, M ) = VT( 1 ) V( 2, M ) = VT( 2 ) V( 3, M ) = VT( 3 ) END IF END IF END IF 10 CONTINUE * * ==== Generate a 2-by-2 reflection, if needed. ==== * K = KRCOL + 3*( M22-1 ) IF( BMP22 ) THEN IF( K.EQ.KTOP-1 ) THEN CALL ZLAQR1( 2, H( K+1, K+1 ), LDH, S( 2*M22-1 ), $ S( 2*M22 ), V( 1, M22 ) ) BETA = V( 1, M22 ) CALL ZLARFG( 2, BETA, V( 2, M22 ), 1, V( 1, M22 ) ) ELSE BETA = H( K+1, K ) V( 2, M22 ) = H( K+2, K ) CALL ZLARFG( 2, BETA, V( 2, M22 ), 1, V( 1, M22 ) ) H( K+1, K ) = BETA H( K+2, K ) = ZERO END IF END IF * * ==== Multiply H by reflections from the left ==== * IF( ACCUM ) THEN JBOT = MIN( NDCOL, KBOT ) ELSE IF( WANTT ) THEN JBOT = N ELSE JBOT = KBOT END IF DO 30 J = MAX( KTOP, KRCOL ), JBOT MEND = MIN( MBOT, ( J-KRCOL+2 ) / 3 ) DO 20 M = MTOP, MEND K = KRCOL + 3*( M-1 ) REFSUM = DCONJG( V( 1, M ) )* $ ( H( K+1, J )+DCONJG( V( 2, M ) )* $ H( K+2, J )+DCONJG( V( 3, M ) )*H( K+3, J ) ) H( K+1, J ) = H( K+1, J ) - REFSUM H( K+2, J ) = H( K+2, J ) - REFSUM*V( 2, M ) H( K+3, J ) = H( K+3, J ) - REFSUM*V( 3, M ) 20 CONTINUE 30 CONTINUE IF( BMP22 ) THEN K = KRCOL + 3*( M22-1 ) DO 40 J = MAX( K+1, KTOP ), JBOT REFSUM = DCONJG( V( 1, M22 ) )* $ ( H( K+1, J )+DCONJG( V( 2, M22 ) )* $ H( K+2, J ) ) H( K+1, J ) = H( K+1, J ) - REFSUM H( K+2, J ) = H( K+2, J ) - REFSUM*V( 2, M22 ) 40 CONTINUE END IF * * ==== Multiply H by reflections from the right. * . Delay filling in the last row until the * . vigilant deflation check is complete. ==== * IF( ACCUM ) THEN JTOP = MAX( KTOP, INCOL ) ELSE IF( WANTT ) THEN JTOP = 1 ELSE JTOP = KTOP END IF DO 80 M = MTOP, MBOT IF( V( 1, M ).NE.ZERO ) THEN K = KRCOL + 3*( M-1 ) DO 50 J = JTOP, MIN( KBOT, K+3 ) REFSUM = V( 1, M )*( H( J, K+1 )+V( 2, M )* $ H( J, K+2 )+V( 3, M )*H( J, K+3 ) ) H( J, K+1 ) = H( J, K+1 ) - REFSUM H( J, K+2 ) = H( J, K+2 ) - $ REFSUM*DCONJG( V( 2, M ) ) H( J, K+3 ) = H( J, K+3 ) - $ REFSUM*DCONJG( V( 3, M ) ) 50 CONTINUE * IF( ACCUM ) THEN * * ==== Accumulate U. (If necessary, update Z later * . with with an efficient matrix-matrix * . multiply.) ==== * KMS = K - INCOL DO 60 J = MAX( 1, KTOP-INCOL ), KDU REFSUM = V( 1, M )*( U( J, KMS+1 )+V( 2, M )* $ U( J, KMS+2 )+V( 3, M )*U( J, KMS+3 ) ) U( J, KMS+1 ) = U( J, KMS+1 ) - REFSUM U( J, KMS+2 ) = U( J, KMS+2 ) - $ REFSUM*DCONJG( V( 2, M ) ) U( J, KMS+3 ) = U( J, KMS+3 ) - $ REFSUM*DCONJG( V( 3, M ) ) 60 CONTINUE ELSE IF( WANTZ ) THEN * * ==== U is not accumulated, so update Z * . now by multiplying by reflections * . from the right. ==== * DO 70 J = ILOZ, IHIZ REFSUM = V( 1, M )*( Z( J, K+1 )+V( 2, M )* $ Z( J, K+2 )+V( 3, M )*Z( J, K+3 ) ) Z( J, K+1 ) = Z( J, K+1 ) - REFSUM Z( J, K+2 ) = Z( J, K+2 ) - $ REFSUM*DCONJG( V( 2, M ) ) Z( J, K+3 ) = Z( J, K+3 ) - $ REFSUM*DCONJG( V( 3, M ) ) 70 CONTINUE END IF END IF 80 CONTINUE * * ==== Special case: 2-by-2 reflection (if needed) ==== * K = KRCOL + 3*( M22-1 ) IF( BMP22 ) THEN IF ( V( 1, M22 ).NE.ZERO ) THEN DO 90 J = JTOP, MIN( KBOT, K+3 ) REFSUM = V( 1, M22 )*( H( J, K+1 )+V( 2, M22 )* $ H( J, K+2 ) ) H( J, K+1 ) = H( J, K+1 ) - REFSUM H( J, K+2 ) = H( J, K+2 ) - $ REFSUM*DCONJG( V( 2, M22 ) ) 90 CONTINUE * IF( ACCUM ) THEN KMS = K - INCOL DO 100 J = MAX( 1, KTOP-INCOL ), KDU REFSUM = V( 1, M22 )*( U( J, KMS+1 )+ $ V( 2, M22 )*U( J, KMS+2 ) ) U( J, KMS+1 ) = U( J, KMS+1 ) - REFSUM U( J, KMS+2 ) = U( J, KMS+2 ) - $ REFSUM*DCONJG( V( 2, M22 ) ) 100 CONTINUE ELSE IF( WANTZ ) THEN DO 110 J = ILOZ, IHIZ REFSUM = V( 1, M22 )*( Z( J, K+1 )+V( 2, M22 )* $ Z( J, K+2 ) ) Z( J, K+1 ) = Z( J, K+1 ) - REFSUM Z( J, K+2 ) = Z( J, K+2 ) - $ REFSUM*DCONJG( V( 2, M22 ) ) 110 CONTINUE END IF END IF END IF * * ==== Vigilant deflation check ==== * MSTART = MTOP IF( KRCOL+3*( MSTART-1 ).LT.KTOP ) $ MSTART = MSTART + 1 MEND = MBOT IF( BMP22 ) $ MEND = MEND + 1 IF( KRCOL.EQ.KBOT-2 ) $ MEND = MEND + 1 DO 120 M = MSTART, MEND K = MIN( KBOT-1, KRCOL+3*( M-1 ) ) * * ==== The following convergence test requires that * . the tradition small-compared-to-nearby-diagonals * . criterion and the Ahues & Tisseur (LAWN 122, 1997) * . criteria both be satisfied. The latter improves * . accuracy in some examples. Falling back on an * . alternate convergence criterion when TST1 or TST2 * . is zero (as done here) is traditional but probably * . unnecessary. ==== * IF( H( K+1, K ).NE.ZERO ) THEN TST1 = CABS1( H( K, K ) ) + CABS1( H( K+1, K+1 ) ) IF( TST1.EQ.RZERO ) THEN IF( K.GE.KTOP+1 ) $ TST1 = TST1 + CABS1( H( K, K-1 ) ) IF( K.GE.KTOP+2 ) $ TST1 = TST1 + CABS1( H( K, K-2 ) ) IF( K.GE.KTOP+3 ) $ TST1 = TST1 + CABS1( H( K, K-3 ) ) IF( K.LE.KBOT-2 ) $ TST1 = TST1 + CABS1( H( K+2, K+1 ) ) IF( K.LE.KBOT-3 ) $ TST1 = TST1 + CABS1( H( K+3, K+1 ) ) IF( K.LE.KBOT-4 ) $ TST1 = TST1 + CABS1( H( K+4, K+1 ) ) END IF IF( CABS1( H( K+1, K ) ).LE.MAX( SMLNUM, ULP*TST1 ) ) $ THEN H12 = MAX( CABS1( H( K+1, K ) ), $ CABS1( H( K, K+1 ) ) ) H21 = MIN( CABS1( H( K+1, K ) ), $ CABS1( H( K, K+1 ) ) ) H11 = MAX( CABS1( H( K+1, K+1 ) ), $ CABS1( H( K, K )-H( K+1, K+1 ) ) ) H22 = MIN( CABS1( H( K+1, K+1 ) ), $ CABS1( H( K, K )-H( K+1, K+1 ) ) ) SCL = H11 + H12 TST2 = H22*( H11 / SCL ) * IF( TST2.EQ.RZERO .OR. H21*( H12 / SCL ).LE. $ MAX( SMLNUM, ULP*TST2 ) )H( K+1, K ) = ZERO END IF END IF 120 CONTINUE * * ==== Fill in the last row of each bulge. ==== * MEND = MIN( NBMPS, ( KBOT-KRCOL-1 ) / 3 ) DO 130 M = MTOP, MEND K = KRCOL + 3*( M-1 ) REFSUM = V( 1, M )*V( 3, M )*H( K+4, K+3 ) H( K+4, K+1 ) = -REFSUM H( K+4, K+2 ) = -REFSUM*DCONJG( V( 2, M ) ) H( K+4, K+3 ) = H( K+4, K+3 ) - $ REFSUM*DCONJG( V( 3, M ) ) 130 CONTINUE * * ==== End of near-the-diagonal bulge chase. ==== * 140 CONTINUE * * ==== Use U (if accumulated) to update far-from-diagonal * . entries in H. If required, use U to update Z as * . well. ==== * IF( ACCUM ) THEN IF( WANTT ) THEN JTOP = 1 JBOT = N ELSE JTOP = KTOP JBOT = KBOT END IF IF( ( .NOT.BLK22 ) .OR. ( INCOL.LT.KTOP ) .OR. $ ( NDCOL.GT.KBOT ) .OR. ( NS.LE.2 ) ) THEN * * ==== Updates not exploiting the 2-by-2 block * . structure of U. K1 and NU keep track of * . the location and size of U in the special * . cases of introducing bulges and chasing * . bulges off the bottom. In these special * . cases and in case the number of shifts * . is NS = 2, there is no 2-by-2 block * . structure to exploit. ==== * K1 = MAX( 1, KTOP-INCOL ) NU = ( KDU-MAX( 0, NDCOL-KBOT ) ) - K1 + 1 * * ==== Horizontal Multiply ==== * DO 150 JCOL = MIN( NDCOL, KBOT ) + 1, JBOT, NH JLEN = MIN( NH, JBOT-JCOL+1 ) CALL ZGEMM( 'C', 'N', NU, JLEN, NU, ONE, U( K1, K1 ), $ LDU, H( INCOL+K1, JCOL ), LDH, ZERO, WH, $ LDWH ) CALL ZLACPY( 'ALL', NU, JLEN, WH, LDWH, $ H( INCOL+K1, JCOL ), LDH ) 150 CONTINUE * * ==== Vertical multiply ==== * DO 160 JROW = JTOP, MAX( KTOP, INCOL ) - 1, NV JLEN = MIN( NV, MAX( KTOP, INCOL )-JROW ) CALL ZGEMM( 'N', 'N', JLEN, NU, NU, ONE, $ H( JROW, INCOL+K1 ), LDH, U( K1, K1 ), $ LDU, ZERO, WV, LDWV ) CALL ZLACPY( 'ALL', JLEN, NU, WV, LDWV, $ H( JROW, INCOL+K1 ), LDH ) 160 CONTINUE * * ==== Z multiply (also vertical) ==== * IF( WANTZ ) THEN DO 170 JROW = ILOZ, IHIZ, NV JLEN = MIN( NV, IHIZ-JROW+1 ) CALL ZGEMM( 'N', 'N', JLEN, NU, NU, ONE, $ Z( JROW, INCOL+K1 ), LDZ, U( K1, K1 ), $ LDU, ZERO, WV, LDWV ) CALL ZLACPY( 'ALL', JLEN, NU, WV, LDWV, $ Z( JROW, INCOL+K1 ), LDZ ) 170 CONTINUE END IF ELSE * * ==== Updates exploiting U's 2-by-2 block structure. * . (I2, I4, J2, J4 are the last rows and columns * . of the blocks.) ==== * I2 = ( KDU+1 ) / 2 I4 = KDU J2 = I4 - I2 J4 = KDU * * ==== KZS and KNZ deal with the band of zeros * . along the diagonal of one of the triangular * . blocks. ==== * KZS = ( J4-J2 ) - ( NS+1 ) KNZ = NS + 1 * * ==== Horizontal multiply ==== * DO 180 JCOL = MIN( NDCOL, KBOT ) + 1, JBOT, NH JLEN = MIN( NH, JBOT-JCOL+1 ) * * ==== Copy bottom of H to top+KZS of scratch ==== * (The first KZS rows get multiplied by zero.) ==== * CALL ZLACPY( 'ALL', KNZ, JLEN, H( INCOL+1+J2, JCOL ), $ LDH, WH( KZS+1, 1 ), LDWH ) * * ==== Multiply by U21**H ==== * CALL ZLASET( 'ALL', KZS, JLEN, ZERO, ZERO, WH, LDWH ) CALL ZTRMM( 'L', 'U', 'C', 'N', KNZ, JLEN, ONE, $ U( J2+1, 1+KZS ), LDU, WH( KZS+1, 1 ), $ LDWH ) * * ==== Multiply top of H by U11**H ==== * CALL ZGEMM( 'C', 'N', I2, JLEN, J2, ONE, U, LDU, $ H( INCOL+1, JCOL ), LDH, ONE, WH, LDWH ) * * ==== Copy top of H to bottom of WH ==== * CALL ZLACPY( 'ALL', J2, JLEN, H( INCOL+1, JCOL ), LDH, $ WH( I2+1, 1 ), LDWH ) * * ==== Multiply by U21**H ==== * CALL ZTRMM( 'L', 'L', 'C', 'N', J2, JLEN, ONE, $ U( 1, I2+1 ), LDU, WH( I2+1, 1 ), LDWH ) * * ==== Multiply by U22 ==== * CALL ZGEMM( 'C', 'N', I4-I2, JLEN, J4-J2, ONE, $ U( J2+1, I2+1 ), LDU, $ H( INCOL+1+J2, JCOL ), LDH, ONE, $ WH( I2+1, 1 ), LDWH ) * * ==== Copy it back ==== * CALL ZLACPY( 'ALL', KDU, JLEN, WH, LDWH, $ H( INCOL+1, JCOL ), LDH ) 180 CONTINUE * * ==== Vertical multiply ==== * DO 190 JROW = JTOP, MAX( INCOL, KTOP ) - 1, NV JLEN = MIN( NV, MAX( INCOL, KTOP )-JROW ) * * ==== Copy right of H to scratch (the first KZS * . columns get multiplied by zero) ==== * CALL ZLACPY( 'ALL', JLEN, KNZ, H( JROW, INCOL+1+J2 ), $ LDH, WV( 1, 1+KZS ), LDWV ) * * ==== Multiply by U21 ==== * CALL ZLASET( 'ALL', JLEN, KZS, ZERO, ZERO, WV, LDWV ) CALL ZTRMM( 'R', 'U', 'N', 'N', JLEN, KNZ, ONE, $ U( J2+1, 1+KZS ), LDU, WV( 1, 1+KZS ), $ LDWV ) * * ==== Multiply by U11 ==== * CALL ZGEMM( 'N', 'N', JLEN, I2, J2, ONE, $ H( JROW, INCOL+1 ), LDH, U, LDU, ONE, WV, $ LDWV ) * * ==== Copy left of H to right of scratch ==== * CALL ZLACPY( 'ALL', JLEN, J2, H( JROW, INCOL+1 ), LDH, $ WV( 1, 1+I2 ), LDWV ) * * ==== Multiply by U21 ==== * CALL ZTRMM( 'R', 'L', 'N', 'N', JLEN, I4-I2, ONE, $ U( 1, I2+1 ), LDU, WV( 1, 1+I2 ), LDWV ) * * ==== Multiply by U22 ==== * CALL ZGEMM( 'N', 'N', JLEN, I4-I2, J4-J2, ONE, $ H( JROW, INCOL+1+J2 ), LDH, $ U( J2+1, I2+1 ), LDU, ONE, WV( 1, 1+I2 ), $ LDWV ) * * ==== Copy it back ==== * CALL ZLACPY( 'ALL', JLEN, KDU, WV, LDWV, $ H( JROW, INCOL+1 ), LDH ) 190 CONTINUE * * ==== Multiply Z (also vertical) ==== * IF( WANTZ ) THEN DO 200 JROW = ILOZ, IHIZ, NV JLEN = MIN( NV, IHIZ-JROW+1 ) * * ==== Copy right of Z to left of scratch (first * . KZS columns get multiplied by zero) ==== * CALL ZLACPY( 'ALL', JLEN, KNZ, $ Z( JROW, INCOL+1+J2 ), LDZ, $ WV( 1, 1+KZS ), LDWV ) * * ==== Multiply by U12 ==== * CALL ZLASET( 'ALL', JLEN, KZS, ZERO, ZERO, WV, $ LDWV ) CALL ZTRMM( 'R', 'U', 'N', 'N', JLEN, KNZ, ONE, $ U( J2+1, 1+KZS ), LDU, WV( 1, 1+KZS ), $ LDWV ) * * ==== Multiply by U11 ==== * CALL ZGEMM( 'N', 'N', JLEN, I2, J2, ONE, $ Z( JROW, INCOL+1 ), LDZ, U, LDU, ONE, $ WV, LDWV ) * * ==== Copy left of Z to right of scratch ==== * CALL ZLACPY( 'ALL', JLEN, J2, Z( JROW, INCOL+1 ), $ LDZ, WV( 1, 1+I2 ), LDWV ) * * ==== Multiply by U21 ==== * CALL ZTRMM( 'R', 'L', 'N', 'N', JLEN, I4-I2, ONE, $ U( 1, I2+1 ), LDU, WV( 1, 1+I2 ), $ LDWV ) * * ==== Multiply by U22 ==== * CALL ZGEMM( 'N', 'N', JLEN, I4-I2, J4-J2, ONE, $ Z( JROW, INCOL+1+J2 ), LDZ, $ U( J2+1, I2+1 ), LDU, ONE, $ WV( 1, 1+I2 ), LDWV ) * * ==== Copy the result back to Z ==== * CALL ZLACPY( 'ALL', JLEN, KDU, WV, LDWV, $ Z( JROW, INCOL+1 ), LDZ ) 200 CONTINUE END IF END IF END IF 210 CONTINUE * * ==== End of ZLAQR5 ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ilazlc.f0000644000000000000000000000013213543334726015207 xustar0030 mtime=1569569238.854645633 30 atime=1569569238.853645634 30 ctime=1569569238.854645633 elk-6.3.2/src/LAPACK/ilazlc.f0000644002504400250440000000565713543334726017273 0ustar00dewhurstdewhurst00000000000000*> \brief \b ILAZLC scans a matrix for its last non-zero column. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ILAZLC + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION ILAZLC( M, N, A, LDA ) * * .. Scalar Arguments .. * INTEGER M, N, LDA * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ILAZLC scans A for its last non-zero column. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The m by n matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== INTEGER FUNCTION ILAZLC( M, N, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER M, N, LDA * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER ( ZERO = (0.0D+0, 0.0D+0) ) * .. * .. Local Scalars .. INTEGER I * .. * .. Executable Statements .. * * Quick test for the common case where one corner is non-zero. IF( N.EQ.0 ) THEN ILAZLC = N ELSE IF( A(1, N).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN ILAZLC = N ELSE * Now scan each column from the end, returning with the first non-zero. DO ILAZLC = N, 1, -1 DO I = 1, M IF( A(I, ILAZLC).NE.ZERO ) RETURN END DO END DO END IF RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ilazlr.f0000644000000000000000000000013213543334726015226 xustar0030 mtime=1569569238.858645631 30 atime=1569569238.857645631 30 ctime=1569569238.858645631 elk-6.3.2/src/LAPACK/ilazlr.f0000644002504400250440000000574213543334726017305 0ustar00dewhurstdewhurst00000000000000*> \brief \b ILAZLR scans a matrix for its last non-zero row. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ILAZLR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION ILAZLR( M, N, A, LDA ) * * .. Scalar Arguments .. * INTEGER M, N, LDA * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ILAZLR scans A for its last non-zero row. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The m by n matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== INTEGER FUNCTION ILAZLR( M, N, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER M, N, LDA * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER ( ZERO = (0.0D+0, 0.0D+0) ) * .. * .. Local Scalars .. INTEGER I, J * .. * .. Executable Statements .. * * Quick test for the common case where one corner is non-zero. IF( M.EQ.0 ) THEN ILAZLR = M ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN ILAZLR = M ELSE * Scan up each column tracking the last zero row seen. ILAZLR = 0 DO J = 1, N I=M DO WHILE((A(MAX(I,1),J).EQ.ZERO).AND.(I.GE.1)) I=I-1 ENDDO ILAZLR = MAX( ILAZLR, I ) END DO END IF RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlapy3.f0000644000000000000000000000013213543334726015125 xustar0030 mtime=1569569238.862645628 30 atime=1569569238.861645629 30 ctime=1569569238.862645628 elk-6.3.2/src/LAPACK/dlapy3.f0000644002504400250440000000526613543334726017205 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAPY3 returns sqrt(x2+y2+z2). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAPY3 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z ) * * .. Scalar Arguments .. * DOUBLE PRECISION X, Y, Z * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAPY3 returns sqrt(x**2+y**2+z**2), taking care not to cause *> unnecessary overflow. *> \endverbatim * * Arguments: * ========== * *> \param[in] X *> \verbatim *> X is DOUBLE PRECISION *> \endverbatim *> *> \param[in] Y *> \verbatim *> Y is DOUBLE PRECISION *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION *> X, Y and Z specify the values x, y and z. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION DLAPY3( X, Y, Z ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION X, Y, Z * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) * .. * .. Local Scalars .. DOUBLE PRECISION W, XABS, YABS, ZABS * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SQRT * .. * .. Executable Statements .. * XABS = ABS( X ) YABS = ABS( Y ) ZABS = ABS( Z ) W = MAX( XABS, YABS, ZABS ) IF( W.EQ.ZERO ) THEN * W can be zero for max(0,nan,0) * adding all three entries together will make sure * NaN will not disappear. DLAPY3 = XABS + YABS + ZABS ELSE DLAPY3 = W*SQRT( ( XABS / W )**2+( YABS / W )**2+ $ ( ZABS / W )**2 ) END IF RETURN * * End of DLAPY3 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlarft.f0000644000000000000000000000013213543334726015233 xustar0030 mtime=1569569238.867645625 30 atime=1569569238.865645626 30 ctime=1569569238.867645625 elk-6.3.2/src/LAPACK/zlarft.f0000644002504400250440000002415513543334726017311 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLARFT forms the triangular factor T of a block reflector H = I - vtvH * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLARFT + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLARFT( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT ) * * .. Scalar Arguments .. * CHARACTER DIRECT, STOREV * INTEGER K, LDT, LDV, N * .. * .. Array Arguments .. * COMPLEX*16 T( LDT, * ), TAU( * ), V( LDV, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLARFT forms the triangular factor T of a complex block reflector H *> of order n, which is defined as a product of k elementary reflectors. *> *> If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular; *> *> If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular. *> *> If STOREV = 'C', the vector which defines the elementary reflector *> H(i) is stored in the i-th column of the array V, and *> *> H = I - V * T * V**H *> *> If STOREV = 'R', the vector which defines the elementary reflector *> H(i) is stored in the i-th row of the array V, and *> *> H = I - V**H * T * V *> \endverbatim * * Arguments: * ========== * *> \param[in] DIRECT *> \verbatim *> DIRECT is CHARACTER*1 *> Specifies the order in which the elementary reflectors are *> multiplied to form the block reflector: *> = 'F': H = H(1) H(2) . . . H(k) (Forward) *> = 'B': H = H(k) . . . H(2) H(1) (Backward) *> \endverbatim *> *> \param[in] STOREV *> \verbatim *> STOREV is CHARACTER*1 *> Specifies how the vectors which define the elementary *> reflectors are stored (see also Further Details): *> = 'C': columnwise *> = 'R': rowwise *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the block reflector H. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The order of the triangular factor T (= the number of *> elementary reflectors). K >= 1. *> \endverbatim *> *> \param[in] V *> \verbatim *> V is COMPLEX*16 array, dimension *> (LDV,K) if STOREV = 'C' *> (LDV,N) if STOREV = 'R' *> The matrix V. See further details. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of the array V. *> If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i). *> \endverbatim *> *> \param[out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,K) *> The k by k triangular factor T of the block reflector. *> If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is *> lower triangular. The rest of the array is not used. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= K. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The shape of the matrix V and the storage of the vectors which define *> the H(i) is best illustrated by the following example with n = 5 and *> k = 3. The elements equal to 1 are not stored. *> *> DIRECT = 'F' and STOREV = 'C': DIRECT = 'F' and STOREV = 'R': *> *> V = ( 1 ) V = ( 1 v1 v1 v1 v1 ) *> ( v1 1 ) ( 1 v2 v2 v2 ) *> ( v1 v2 1 ) ( 1 v3 v3 ) *> ( v1 v2 v3 ) *> ( v1 v2 v3 ) *> *> DIRECT = 'B' and STOREV = 'C': DIRECT = 'B' and STOREV = 'R': *> *> V = ( v1 v2 v3 ) V = ( v1 v1 1 ) *> ( v1 v2 v3 ) ( v2 v2 v2 1 ) *> ( 1 v2 v3 ) ( v3 v3 v3 v3 1 ) *> ( 1 v3 ) *> ( 1 ) *> \endverbatim *> * ===================================================================== SUBROUTINE ZLARFT( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER DIRECT, STOREV INTEGER K, LDT, LDV, N * .. * .. Array Arguments .. COMPLEX*16 T( LDT, * ), TAU( * ), V( LDV, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, J, PREVLASTV, LASTV * .. * .. External Subroutines .. EXTERNAL ZGEMV, ZTRMV, ZGEMM * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. Executable Statements .. * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( LSAME( DIRECT, 'F' ) ) THEN PREVLASTV = N DO I = 1, K PREVLASTV = MAX( PREVLASTV, I ) IF( TAU( I ).EQ.ZERO ) THEN * * H(i) = I * DO J = 1, I T( J, I ) = ZERO END DO ELSE * * general case * IF( LSAME( STOREV, 'C' ) ) THEN * Skip any trailing zeros. DO LASTV = N, I+1, -1 IF( V( LASTV, I ).NE.ZERO ) EXIT END DO DO J = 1, I-1 T( J, I ) = -TAU( I ) * CONJG( V( I , J ) ) END DO J = MIN( LASTV, PREVLASTV ) * * T(1:i-1,i) := - tau(i) * V(i:j,1:i-1)**H * V(i:j,i) * CALL ZGEMV( 'Conjugate transpose', J-I, I-1, $ -TAU( I ), V( I+1, 1 ), LDV, $ V( I+1, I ), 1, ONE, T( 1, I ), 1 ) ELSE * Skip any trailing zeros. DO LASTV = N, I+1, -1 IF( V( I, LASTV ).NE.ZERO ) EXIT END DO DO J = 1, I-1 T( J, I ) = -TAU( I ) * V( J , I ) END DO J = MIN( LASTV, PREVLASTV ) * * T(1:i-1,i) := - tau(i) * V(1:i-1,i:j) * V(i,i:j)**H * CALL ZGEMM( 'N', 'C', I-1, 1, J-I, -TAU( I ), $ V( 1, I+1 ), LDV, V( I, I+1 ), LDV, $ ONE, T( 1, I ), LDT ) END IF * * T(1:i-1,i) := T(1:i-1,1:i-1) * T(1:i-1,i) * CALL ZTRMV( 'Upper', 'No transpose', 'Non-unit', I-1, T, $ LDT, T( 1, I ), 1 ) T( I, I ) = TAU( I ) IF( I.GT.1 ) THEN PREVLASTV = MAX( PREVLASTV, LASTV ) ELSE PREVLASTV = LASTV END IF END IF END DO ELSE PREVLASTV = 1 DO I = K, 1, -1 IF( TAU( I ).EQ.ZERO ) THEN * * H(i) = I * DO J = I, K T( J, I ) = ZERO END DO ELSE * * general case * IF( I.LT.K ) THEN IF( LSAME( STOREV, 'C' ) ) THEN * Skip any leading zeros. DO LASTV = 1, I-1 IF( V( LASTV, I ).NE.ZERO ) EXIT END DO DO J = I+1, K T( J, I ) = -TAU( I ) * CONJG( V( N-K+I , J ) ) END DO J = MAX( LASTV, PREVLASTV ) * * T(i+1:k,i) = -tau(i) * V(j:n-k+i,i+1:k)**H * V(j:n-k+i,i) * CALL ZGEMV( 'Conjugate transpose', N-K+I-J, K-I, $ -TAU( I ), V( J, I+1 ), LDV, V( J, I ), $ 1, ONE, T( I+1, I ), 1 ) ELSE * Skip any leading zeros. DO LASTV = 1, I-1 IF( V( I, LASTV ).NE.ZERO ) EXIT END DO DO J = I+1, K T( J, I ) = -TAU( I ) * V( J, N-K+I ) END DO J = MAX( LASTV, PREVLASTV ) * * T(i+1:k,i) = -tau(i) * V(i+1:k,j:n-k+i) * V(i,j:n-k+i)**H * CALL ZGEMM( 'N', 'C', K-I, 1, N-K+I-J, -TAU( I ), $ V( I+1, J ), LDV, V( I, J ), LDV, $ ONE, T( I+1, I ), LDT ) END IF * * T(i+1:k,i) := T(i+1:k,i+1:k) * T(i+1:k,i) * CALL ZTRMV( 'Lower', 'No transpose', 'Non-unit', K-I, $ T( I+1, I+1 ), LDT, T( I+1, I ), 1 ) IF( I.GT.1 ) THEN PREVLASTV = MIN( PREVLASTV, LASTV ) ELSE PREVLASTV = LASTV END IF END IF T( I, I ) = TAU( I ) END IF END DO END IF RETURN * * End of ZLARFT * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunm2l.f0000644000000000000000000000013213543334726015160 xustar0030 mtime=1569569238.872645622 30 atime=1569569238.870645623 30 ctime=1569569238.872645622 elk-6.3.2/src/LAPACK/zunm2l.f0000644002504400250440000001642313543334726017235 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNM2L + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNM2L overwrites the general complex m-by-n matrix C with *> *> Q * C if SIDE = 'L' and TRANS = 'N', or *> *> Q**H* C if SIDE = 'L' and TRANS = 'C', or *> *> C * Q if SIDE = 'R' and TRANS = 'N', or *> *> C * Q**H if SIDE = 'R' and TRANS = 'C', *> *> where Q is a complex unitary matrix defined as the product of k *> elementary reflectors *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by ZGEQLF. Q is of order m if SIDE = 'L' and of order n *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left *> = 'R': apply Q or Q**H from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'C': apply Q**H (Conjugate transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> ZGEQLF in the last k columns of its array argument A. *> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQLF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the m-by-n matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension *> (N) if SIDE = 'L', *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, MI, NI, NQ COMPLEX*16 AII, TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNM2L', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) $ RETURN * IF( ( LEFT .AND. NOTRAN .OR. .NOT.LEFT .AND. .NOT.NOTRAN ) ) THEN I1 = 1 I2 = K I3 = 1 ELSE I1 = K I2 = 1 I3 = -1 END IF * IF( LEFT ) THEN NI = N ELSE MI = M END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) or H(i)**H is applied to C(1:m-k+i,1:n) * MI = M - K + I ELSE * * H(i) or H(i)**H is applied to C(1:m,1:n-k+i) * NI = N - K + I END IF * * Apply H(i) or H(i)**H * IF( NOTRAN ) THEN TAUI = TAU( I ) ELSE TAUI = DCONJG( TAU( I ) ) END IF AII = A( NQ-K+I, I ) A( NQ-K+I, I ) = ONE CALL ZLARF( SIDE, MI, NI, A( 1, I ), 1, TAUI, C, LDC, WORK ) A( NQ-K+I, I ) = AII 10 CONTINUE RETURN * * End of ZUNM2L * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunm2r.f0000644000000000000000000000013113543334726015165 xustar0030 mtime=1569569238.876645619 29 atime=1569569238.87564562 30 ctime=1569569238.876645619 elk-6.3.2/src/LAPACK/zunm2r.f0000644002504400250440000001655213543334726017246 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined by cgeqrf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNM2R + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNM2R overwrites the general complex m-by-n matrix C with *> *> Q * C if SIDE = 'L' and TRANS = 'N', or *> *> Q**H* C if SIDE = 'L' and TRANS = 'C', or *> *> C * Q if SIDE = 'R' and TRANS = 'N', or *> *> C * Q**H if SIDE = 'R' and TRANS = 'C', *> *> where Q is a complex unitary matrix defined as the product of k *> elementary reflectors *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by ZGEQRF. Q is of order m if SIDE = 'L' and of order n *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left *> = 'R': apply Q or Q**H from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'C': apply Q**H (Conjugate transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> ZGEQRF in the first k columns of its array argument A. *> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEQRF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the m-by-n matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension *> (N) if SIDE = 'L', *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ COMPLEX*16 AII, TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNM2R', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) $ RETURN * IF( ( LEFT .AND. .NOT.NOTRAN .OR. .NOT.LEFT .AND. NOTRAN ) ) THEN I1 = 1 I2 = K I3 = 1 ELSE I1 = K I2 = 1 I3 = -1 END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) or H(i)**H is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H(i) or H(i)**H is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H(i) or H(i)**H * IF( NOTRAN ) THEN TAUI = TAU( I ) ELSE TAUI = DCONJG( TAU( I ) ) END IF AII = A( I, I ) A( I, I ) = ONE CALL ZLARF( SIDE, MI, NI, A( I, I ), 1, TAUI, C( IC, JC ), LDC, $ WORK ) A( I, I ) = AII 10 CONTINUE RETURN * * End of ZUNM2R * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed7.f0000644000000000000000000000013213543334726015071 xustar0030 mtime=1569569238.881645616 30 atime=1569569238.879645617 30 ctime=1569569238.881645616 elk-6.3.2/src/LAPACK/dlaed7.f0000644002504400250440000003172313543334726017146 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED7 used by sstedc. Computes the updated eigensystem of a diagonal matrix after modification by a rank-one symmetric matrix. Used when the original matrix is dense. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED7 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, * LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR, * PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK, * INFO ) * * .. Scalar Arguments .. * INTEGER CURLVL, CURPBM, CUTPNT, ICOMPQ, INFO, LDQ, N, * $ QSIZ, TLVLS * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER GIVCOL( 2, * ), GIVPTR( * ), INDXQ( * ), * $ IWORK( * ), PERM( * ), PRMPTR( * ), QPTR( * ) * DOUBLE PRECISION D( * ), GIVNUM( 2, * ), Q( LDQ, * ), * $ QSTORE( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED7 computes the updated eigensystem of a diagonal *> matrix after modification by a rank-one symmetric matrix. This *> routine is used only for the eigenproblem which requires all *> eigenvalues and optionally eigenvectors of a dense symmetric matrix *> that has been reduced to tridiagonal form. DLAED1 handles *> the case in which all eigenvalues and eigenvectors of a symmetric *> tridiagonal matrix are desired. *> *> T = Q(in) ( D(in) + RHO * Z*Z**T ) Q**T(in) = Q(out) * D(out) * Q**T(out) *> *> where Z = Q**Tu, u is a vector of length N with ones in the *> CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. *> *> The eigenvectors of the original matrix are stored in Q, and the *> eigenvalues are in D. The algorithm consists of three stages: *> *> The first stage consists of deflating the size of the problem *> when there are multiple eigenvalues or if there is a zero in *> the Z vector. For each such occurrence the dimension of the *> secular equation problem is reduced by one. This stage is *> performed by the routine DLAED8. *> *> The second stage consists of calculating the updated *> eigenvalues. This is done by finding the roots of the secular *> equation via the routine DLAED4 (as called by DLAED9). *> This routine also calculates the eigenvectors of the current *> problem. *> *> The final stage consists of computing the updated eigenvectors *> directly using the updated eigenvalues. The eigenvectors for *> the current problem are multiplied with the eigenvectors from *> the overall problem. *> \endverbatim * * Arguments: * ========== * *> \param[in] ICOMPQ *> \verbatim *> ICOMPQ is INTEGER *> = 0: Compute eigenvalues only. *> = 1: Compute eigenvectors of original dense symmetric matrix *> also. On entry, Q contains the orthogonal matrix used *> to reduce the original matrix to tridiagonal form. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in] QSIZ *> \verbatim *> QSIZ is INTEGER *> The dimension of the orthogonal matrix used to reduce *> the full matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1. *> \endverbatim *> *> \param[in] TLVLS *> \verbatim *> TLVLS is INTEGER *> The total number of merging levels in the overall divide and *> conquer tree. *> \endverbatim *> *> \param[in] CURLVL *> \verbatim *> CURLVL is INTEGER *> The current level in the overall merge routine, *> 0 <= CURLVL <= TLVLS. *> \endverbatim *> *> \param[in] CURPBM *> \verbatim *> CURPBM is INTEGER *> The current problem in the current level in the overall *> merge routine (counting from upper left to lower right). *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the eigenvalues of the rank-1-perturbed matrix. *> On exit, the eigenvalues of the repaired matrix. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ, N) *> On entry, the eigenvectors of the rank-1-perturbed matrix. *> On exit, the eigenvectors of the repaired tridiagonal matrix. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[out] INDXQ *> \verbatim *> INDXQ is INTEGER array, dimension (N) *> The permutation which will reintegrate the subproblem just *> solved back into sorted order, i.e., D( INDXQ( I = 1, N ) ) *> will be in ascending order. *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> The subdiagonal element used to create the rank-1 *> modification. *> \endverbatim *> *> \param[in] CUTPNT *> \verbatim *> CUTPNT is INTEGER *> Contains the location of the last eigenvalue in the leading *> sub-matrix. min(1,N) <= CUTPNT <= N. *> \endverbatim *> *> \param[in,out] QSTORE *> \verbatim *> QSTORE is DOUBLE PRECISION array, dimension (N**2+1) *> Stores eigenvectors of submatrices encountered during *> divide and conquer, packed together. QPTR points to *> beginning of the submatrices. *> \endverbatim *> *> \param[in,out] QPTR *> \verbatim *> QPTR is INTEGER array, dimension (N+2) *> List of indices pointing to beginning of submatrices stored *> in QSTORE. The submatrices are numbered starting at the *> bottom left of the divide and conquer tree, from left to *> right and bottom to top. *> \endverbatim *> *> \param[in] PRMPTR *> \verbatim *> PRMPTR is INTEGER array, dimension (N lg N) *> Contains a list of pointers which indicate where in PERM a *> level's permutation is stored. PRMPTR(i+1) - PRMPTR(i) *> indicates the size of the permutation and also the size of *> the full, non-deflated problem. *> \endverbatim *> *> \param[in] PERM *> \verbatim *> PERM is INTEGER array, dimension (N lg N) *> Contains the permutations (from deflation and sorting) to be *> applied to each eigenblock. *> \endverbatim *> *> \param[in] GIVPTR *> \verbatim *> GIVPTR is INTEGER array, dimension (N lg N) *> Contains a list of pointers which indicate where in GIVCOL a *> level's Givens rotations are stored. GIVPTR(i+1) - GIVPTR(i) *> indicates the number of Givens rotations. *> \endverbatim *> *> \param[in] GIVCOL *> \verbatim *> GIVCOL is INTEGER array, dimension (2, N lg N) *> Each pair of numbers indicates a pair of columns to take place *> in a Givens rotation. *> \endverbatim *> *> \param[in] GIVNUM *> \verbatim *> GIVNUM is DOUBLE PRECISION array, dimension (2, N lg N) *> Each number indicates the S value to be used in the *> corresponding Givens rotation. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (3*N+2*QSIZ*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (4*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = 1, an eigenvalue did not converge *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA * * ===================================================================== SUBROUTINE DLAED7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D, Q, $ LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR, $ PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER CURLVL, CURPBM, CUTPNT, ICOMPQ, INFO, LDQ, N, $ QSIZ, TLVLS DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER GIVCOL( 2, * ), GIVPTR( * ), INDXQ( * ), $ IWORK( * ), PERM( * ), PRMPTR( * ), QPTR( * ) DOUBLE PRECISION D( * ), GIVNUM( 2, * ), Q( LDQ, * ), $ QSTORE( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D0, ZERO = 0.0D0 ) * .. * .. Local Scalars .. INTEGER COLTYP, CURR, I, IDLMDA, INDX, INDXC, INDXP, $ IQ2, IS, IW, IZ, K, LDQ2, N1, N2, PTR * .. * .. External Subroutines .. EXTERNAL DGEMM, DLAED8, DLAED9, DLAEDA, DLAMRG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( ICOMPQ.LT.0 .OR. ICOMPQ.GT.1 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( ICOMPQ.EQ.1 .AND. QSIZ.LT.N ) THEN INFO = -3 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -9 ELSE IF( MIN( 1, N ).GT.CUTPNT .OR. N.LT.CUTPNT ) THEN INFO = -12 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED7', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * The following values are for bookkeeping purposes only. They are * integer pointers which indicate the portion of the workspace * used by a particular array in DLAED8 and DLAED9. * IF( ICOMPQ.EQ.1 ) THEN LDQ2 = QSIZ ELSE LDQ2 = N END IF * IZ = 1 IDLMDA = IZ + N IW = IDLMDA + N IQ2 = IW + N IS = IQ2 + N*LDQ2 * INDX = 1 INDXC = INDX + N COLTYP = INDXC + N INDXP = COLTYP + N * * Form the z-vector which consists of the last row of Q_1 and the * first row of Q_2. * PTR = 1 + 2**TLVLS DO 10 I = 1, CURLVL - 1 PTR = PTR + 2**( TLVLS-I ) 10 CONTINUE CURR = PTR + CURPBM CALL DLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, $ GIVCOL, GIVNUM, QSTORE, QPTR, WORK( IZ ), $ WORK( IZ+N ), INFO ) * * When solving the final problem, we no longer need the stored data, * so we will overwrite the data from this level onto the previously * used storage space. * IF( CURLVL.EQ.TLVLS ) THEN QPTR( CURR ) = 1 PRMPTR( CURR ) = 1 GIVPTR( CURR ) = 1 END IF * * Sort and Deflate eigenvalues. * CALL DLAED8( ICOMPQ, K, N, QSIZ, D, Q, LDQ, INDXQ, RHO, CUTPNT, $ WORK( IZ ), WORK( IDLMDA ), WORK( IQ2 ), LDQ2, $ WORK( IW ), PERM( PRMPTR( CURR ) ), GIVPTR( CURR+1 ), $ GIVCOL( 1, GIVPTR( CURR ) ), $ GIVNUM( 1, GIVPTR( CURR ) ), IWORK( INDXP ), $ IWORK( INDX ), INFO ) PRMPTR( CURR+1 ) = PRMPTR( CURR ) + N GIVPTR( CURR+1 ) = GIVPTR( CURR+1 ) + GIVPTR( CURR ) * * Solve Secular Equation. * IF( K.NE.0 ) THEN CALL DLAED9( K, 1, K, N, D, WORK( IS ), K, RHO, WORK( IDLMDA ), $ WORK( IW ), QSTORE( QPTR( CURR ) ), K, INFO ) IF( INFO.NE.0 ) $ GO TO 30 IF( ICOMPQ.EQ.1 ) THEN CALL DGEMM( 'N', 'N', QSIZ, K, K, ONE, WORK( IQ2 ), LDQ2, $ QSTORE( QPTR( CURR ) ), K, ZERO, Q, LDQ ) END IF QPTR( CURR+1 ) = QPTR( CURR ) + K**2 * * Prepare the INDXQ sorting permutation. * N1 = K N2 = N - K CALL DLAMRG( N1, N2, D, 1, -1, INDXQ ) ELSE QPTR( CURR+1 ) = QPTR( CURR ) DO 20 I = 1, N INDXQ( I ) = I 20 CONTINUE END IF * 30 CONTINUE RETURN * * End of DLAED7 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlarf.f0000644000000000000000000000013213543334726015021 xustar0030 mtime=1569569238.885645614 30 atime=1569569238.884645614 30 ctime=1569569238.885645614 elk-6.3.2/src/LAPACK/dlarf.f0000644002504400250440000001411013543334726017065 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLARF applies an elementary reflector to a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLARF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * .. Scalar Arguments .. * CHARACTER SIDE * INTEGER INCV, LDC, M, N * DOUBLE PRECISION TAU * .. * .. Array Arguments .. * DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLARF applies a real elementary reflector H to a real m by n matrix *> C, from either the left or the right. H is represented in the form *> *> H = I - tau * v * v**T *> *> where tau is a real scalar and v is a real vector. *> *> If tau = 0, then H is taken to be the unit matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': form H * C *> = 'R': form C * H *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. *> \endverbatim *> *> \param[in] V *> \verbatim *> V is DOUBLE PRECISION array, dimension *> (1 + (M-1)*abs(INCV)) if SIDE = 'L' *> or (1 + (N-1)*abs(INCV)) if SIDE = 'R' *> The vector v in the representation of H. V is not used if *> TAU = 0. *> \endverbatim *> *> \param[in] INCV *> \verbatim *> INCV is INTEGER *> The increment between elements of v. INCV <> 0. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION *> The value tau in the representation of H. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the m by n matrix C. *> On exit, C is overwritten by the matrix H * C if SIDE = 'L', *> or C * H if SIDE = 'R'. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension *> (N) if SIDE = 'L' *> or (M) if SIDE = 'R' *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERauxiliary * * ===================================================================== SUBROUTINE DLARF( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE INTEGER INCV, LDC, M, N DOUBLE PRECISION TAU * .. * .. Array Arguments .. DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. LOGICAL APPLYLEFT INTEGER I, LASTV, LASTC * .. * .. External Subroutines .. EXTERNAL DGEMV, DGER * .. * .. External Functions .. LOGICAL LSAME INTEGER ILADLR, ILADLC EXTERNAL LSAME, ILADLR, ILADLC * .. * .. Executable Statements .. * APPLYLEFT = LSAME( SIDE, 'L' ) LASTV = 0 LASTC = 0 IF( TAU.NE.ZERO ) THEN ! Set up variables for scanning V. LASTV begins pointing to the end ! of V. IF( APPLYLEFT ) THEN LASTV = M ELSE LASTV = N END IF IF( INCV.GT.0 ) THEN I = 1 + (LASTV-1) * INCV ELSE I = 1 END IF ! Look for the last non-zero row in V. DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO ) LASTV = LASTV - 1 I = I - INCV END DO IF( APPLYLEFT ) THEN ! Scan for the last non-zero column in C(1:lastv,:). LASTC = ILADLC(LASTV, N, C, LDC) ELSE ! Scan for the last non-zero row in C(:,1:lastv). LASTC = ILADLR(M, LASTV, C, LDC) END IF END IF ! Note that lastc.eq.0 renders the BLAS operations null; no special ! case is needed at this level. IF( APPLYLEFT ) THEN * * Form H * C * IF( LASTV.GT.0 ) THEN * * w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) * CALL DGEMV( 'Transpose', LASTV, LASTC, ONE, C, LDC, V, INCV, $ ZERO, WORK, 1 ) * * C(1:lastv,1:lastc) := C(...) - v(1:lastv,1) * w(1:lastc,1)**T * CALL DGER( LASTV, LASTC, -TAU, V, INCV, WORK, 1, C, LDC ) END IF ELSE * * Form C * H * IF( LASTV.GT.0 ) THEN * * w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) * CALL DGEMV( 'No transpose', LASTC, LASTV, ONE, C, LDC, $ V, INCV, ZERO, WORK, 1 ) * * C(1:lastc,1:lastv) := C(...) - w(1:lastc,1) * v(1:lastv,1)**T * CALL DGER( LASTC, LASTV, -TAU, WORK, 1, V, INCV, C, LDC ) END IF END IF RETURN * * End of DLARF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorm2l.f0000644000000000000000000000013013543334726015126 xustar0029 mtime=1569569238.89064561 30 atime=1569569238.888645612 29 ctime=1569569238.89064561 elk-6.3.2/src/LAPACK/dorm2l.f0000644002504400250440000001622113543334726017201 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORM2L multiplies a general matrix by the orthogonal matrix from a QL factorization determined by sgeqlf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORM2L + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORM2L overwrites the general real m by n matrix C with *> *> Q * C if SIDE = 'L' and TRANS = 'N', or *> *> Q**T * C if SIDE = 'L' and TRANS = 'T', or *> *> C * Q if SIDE = 'R' and TRANS = 'N', or *> *> C * Q**T if SIDE = 'R' and TRANS = 'T', *> *> where Q is a real orthogonal matrix defined as the product of k *> elementary reflectors *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGEQLF. Q is of order m if SIDE = 'L' and of order n *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left *> = 'R': apply Q or Q**T from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'T': apply Q**T (Transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGEQLF in the last k columns of its array argument A. *> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQLF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the m by n matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension *> (N) if SIDE = 'L', *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, MI, NI, NQ DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DLARF, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORM2L', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) $ RETURN * IF( ( LEFT .AND. NOTRAN ) .OR. ( .NOT.LEFT .AND. .NOT.NOTRAN ) ) $ THEN I1 = 1 I2 = K I3 = 1 ELSE I1 = K I2 = 1 I3 = -1 END IF * IF( LEFT ) THEN NI = N ELSE MI = M END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) is applied to C(1:m-k+i,1:n) * MI = M - K + I ELSE * * H(i) is applied to C(1:m,1:n-k+i) * NI = N - K + I END IF * * Apply H(i) * AII = A( NQ-K+I, I ) A( NQ-K+I, I ) = ONE CALL DLARF( SIDE, MI, NI, A( 1, I ), 1, TAU( I ), C, LDC, $ WORK ) A( NQ-K+I, I ) = AII 10 CONTINUE RETURN * * End of DORM2L * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorm2r.f0000644000000000000000000000013213543334726015136 xustar0030 mtime=1569569238.894645608 30 atime=1569569238.893645608 30 ctime=1569569238.894645608 elk-6.3.2/src/LAPACK/dorm2r.f0000644002504400250440000001632213543334726017211 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORM2R multiplies a general matrix by the orthogonal matrix from a QR factorization determined by sgeqrf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORM2R + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORM2R overwrites the general real m by n matrix C with *> *> Q * C if SIDE = 'L' and TRANS = 'N', or *> *> Q**T* C if SIDE = 'L' and TRANS = 'T', or *> *> C * Q if SIDE = 'R' and TRANS = 'N', or *> *> C * Q**T if SIDE = 'R' and TRANS = 'T', *> *> where Q is a real orthogonal matrix defined as the product of k *> elementary reflectors *> *> Q = H(1) H(2) . . . H(k) *> *> as returned by DGEQRF. Q is of order m if SIDE = 'L' and of order n *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left *> = 'R': apply Q or Q**T from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'T': apply Q**T (Transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,K) *> The i-th column must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGEQRF in the first k columns of its array argument A. *> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If SIDE = 'L', LDA >= max(1,M); *> if SIDE = 'R', LDA >= max(1,N). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGEQRF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the m by n matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension *> (N) if SIDE = 'L', *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DLARF, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORM2R', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) $ RETURN * IF( ( LEFT .AND. .NOT.NOTRAN ) .OR. ( .NOT.LEFT .AND. NOTRAN ) ) $ THEN I1 = 1 I2 = K I3 = 1 ELSE I1 = K I2 = 1 I3 = -1 END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H(i) is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H(i) * AII = A( I, I ) A( I, I ) = ONE CALL DLARF( SIDE, MI, NI, A( I, I ), 1, TAU( I ), C( IC, JC ), $ LDC, WORK ) A( I, I ) = AII 10 CONTINUE RETURN * * End of DORM2R * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dladiv.f0000644000000000000000000000013213543334726015174 xustar0030 mtime=1569569238.898645605 30 atime=1569569238.897645606 30 ctime=1569569238.898645605 elk-6.3.2/src/LAPACK/dladiv.f0000644002504400250440000001370613543334726017252 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLADIV performs complex division in real arithmetic, avoiding unnecessary overflow. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLADIV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLADIV( A, B, C, D, P, Q ) * * .. Scalar Arguments .. * DOUBLE PRECISION A, B, C, D, P, Q * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLADIV performs complex division in real arithmetic *> *> a + i*b *> p + i*q = --------- *> c + i*d *> *> The algorithm is due to Michael Baudin and Robert L. Smith *> and can be found in the paper *> "A Robust Complex Division in Scilab" *> \endverbatim * * Arguments: * ========== * *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION *> \endverbatim *> *> \param[in] B *> \verbatim *> B is DOUBLE PRECISION *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION *> The scalars a, b, c, and d in the above expression. *> \endverbatim *> *> \param[out] P *> \verbatim *> P is DOUBLE PRECISION *> \endverbatim *> *> \param[out] Q *> \verbatim *> Q is DOUBLE PRECISION *> The scalars p and q in the above expression. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date January 2013 * *> \ingroup doubleOTHERauxiliary * * ===================================================================== SUBROUTINE DLADIV( A, B, C, D, P, Q ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * January 2013 * * .. Scalar Arguments .. DOUBLE PRECISION A, B, C, D, P, Q * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION BS PARAMETER ( BS = 2.0D0 ) DOUBLE PRECISION HALF PARAMETER ( HALF = 0.5D0 ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0D0 ) * * .. Local Scalars .. DOUBLE PRECISION AA, BB, CC, DD, AB, CD, S, OV, UN, BE, EPS * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. External Subroutines .. EXTERNAL DLADIV1 * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX * .. * .. Executable Statements .. * AA = A BB = B CC = C DD = D AB = MAX( ABS(A), ABS(B) ) CD = MAX( ABS(C), ABS(D) ) S = 1.0D0 OV = DLAMCH( 'Overflow threshold' ) UN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Epsilon' ) BE = BS / (EPS*EPS) IF( AB >= HALF*OV ) THEN AA = HALF * AA BB = HALF * BB S = TWO * S END IF IF( CD >= HALF*OV ) THEN CC = HALF * CC DD = HALF * DD S = HALF * S END IF IF( AB <= UN*BS/EPS ) THEN AA = AA * BE BB = BB * BE S = S / BE END IF IF( CD <= UN*BS/EPS ) THEN CC = CC * BE DD = DD * BE S = S * BE END IF IF( ABS( D ).LE.ABS( C ) ) THEN CALL DLADIV1(AA, BB, CC, DD, P, Q) ELSE CALL DLADIV1(BB, AA, DD, CC, P, Q) Q = -Q END IF P = P * S Q = Q * S * RETURN * * End of DLADIV * END *> \ingroup doubleOTHERauxiliary SUBROUTINE DLADIV1( A, B, C, D, P, Q ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * January 2013 * * .. Scalar Arguments .. DOUBLE PRECISION A, B, C, D, P, Q * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) * * .. Local Scalars .. DOUBLE PRECISION R, T * .. * .. External Functions .. DOUBLE PRECISION DLADIV2 EXTERNAL DLADIV2 * .. * .. Executable Statements .. * R = D / C T = ONE / (C + D * R) P = DLADIV2(A, B, C, D, R, T) A = -A Q = DLADIV2(B, A, C, D, R, T) * RETURN * * End of DLADIV1 * END *> \ingroup doubleOTHERauxiliary DOUBLE PRECISION FUNCTION DLADIV2( A, B, C, D, R, T ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * January 2013 * * .. Scalar Arguments .. DOUBLE PRECISION A, B, C, D, R, T * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) * * .. Local Scalars .. DOUBLE PRECISION BR * .. * .. Executable Statements .. * IF( R.NE.ZERO ) THEN BR = B * R IF( BR.NE.ZERO ) THEN DLADIV2 = (A + BR) * T ELSE DLADIV2 = A * T + (B * T) * R END IF ELSE DLADIV2 = (A + D * (B / C)) * T END IF * RETURN * * End of DLADIV12 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaeda.f0000644000000000000000000000013213543334726015143 xustar0030 mtime=1569569238.903645602 30 atime=1569569238.901645603 30 ctime=1569569238.903645602 elk-6.3.2/src/LAPACK/dlaeda.f0000644002504400250440000002324013543334726017213 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAEDA used by sstedc. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAEDA + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, * GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO ) * * .. Scalar Arguments .. * INTEGER CURLVL, CURPBM, INFO, N, TLVLS * .. * .. Array Arguments .. * INTEGER GIVCOL( 2, * ), GIVPTR( * ), PERM( * ), * $ PRMPTR( * ), QPTR( * ) * DOUBLE PRECISION GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAEDA computes the Z vector corresponding to the merge step in the *> CURLVLth step of the merge process with TLVLS steps for the CURPBMth *> problem. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in] TLVLS *> \verbatim *> TLVLS is INTEGER *> The total number of merging levels in the overall divide and *> conquer tree. *> \endverbatim *> *> \param[in] CURLVL *> \verbatim *> CURLVL is INTEGER *> The current level in the overall merge routine, *> 0 <= curlvl <= tlvls. *> \endverbatim *> *> \param[in] CURPBM *> \verbatim *> CURPBM is INTEGER *> The current problem in the current level in the overall *> merge routine (counting from upper left to lower right). *> \endverbatim *> *> \param[in] PRMPTR *> \verbatim *> PRMPTR is INTEGER array, dimension (N lg N) *> Contains a list of pointers which indicate where in PERM a *> level's permutation is stored. PRMPTR(i+1) - PRMPTR(i) *> indicates the size of the permutation and incidentally the *> size of the full, non-deflated problem. *> \endverbatim *> *> \param[in] PERM *> \verbatim *> PERM is INTEGER array, dimension (N lg N) *> Contains the permutations (from deflation and sorting) to be *> applied to each eigenblock. *> \endverbatim *> *> \param[in] GIVPTR *> \verbatim *> GIVPTR is INTEGER array, dimension (N lg N) *> Contains a list of pointers which indicate where in GIVCOL a *> level's Givens rotations are stored. GIVPTR(i+1) - GIVPTR(i) *> indicates the number of Givens rotations. *> \endverbatim *> *> \param[in] GIVCOL *> \verbatim *> GIVCOL is INTEGER array, dimension (2, N lg N) *> Each pair of numbers indicates a pair of columns to take place *> in a Givens rotation. *> \endverbatim *> *> \param[in] GIVNUM *> \verbatim *> GIVNUM is DOUBLE PRECISION array, dimension (2, N lg N) *> Each number indicates the S value to be used in the *> corresponding Givens rotation. *> \endverbatim *> *> \param[in] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (N**2) *> Contains the square eigenblocks from previous levels, the *> starting positions for blocks are given by QPTR. *> \endverbatim *> *> \param[in] QPTR *> \verbatim *> QPTR is INTEGER array, dimension (N+2) *> Contains a list of pointers which indicate where in Q an *> eigenblock is stored. SQRT( QPTR(i+1) - QPTR(i) ) indicates *> the size of the block. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (N) *> On output this vector contains the updating vector (the last *> row of the first sub-eigenvector matrix and the first row of *> the second sub-eigenvector matrix). *> \endverbatim *> *> \param[out] ZTEMP *> \verbatim *> ZTEMP is DOUBLE PRECISION array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA * * ===================================================================== SUBROUTINE DLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, $ GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER CURLVL, CURPBM, INFO, N, TLVLS * .. * .. Array Arguments .. INTEGER GIVCOL( 2, * ), GIVPTR( * ), PERM( * ), $ PRMPTR( * ), QPTR( * ) DOUBLE PRECISION GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, HALF, ONE PARAMETER ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. INTEGER BSIZ1, BSIZ2, CURR, I, K, MID, PSIZ1, PSIZ2, $ PTR, ZPTR1 * .. * .. External Subroutines .. EXTERNAL DCOPY, DGEMV, DROT, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE, INT, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( N.LT.0 ) THEN INFO = -1 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAEDA', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * * Determine location of first number in second half. * MID = N / 2 + 1 * * Gather last/first rows of appropriate eigenblocks into center of Z * PTR = 1 * * Determine location of lowest level subproblem in the full storage * scheme * CURR = PTR + CURPBM*2**CURLVL + 2**( CURLVL-1 ) - 1 * * Determine size of these matrices. We add HALF to the value of * the SQRT in case the machine underestimates one of these square * roots. * BSIZ1 = INT( HALF+SQRT( DBLE( QPTR( CURR+1 )-QPTR( CURR ) ) ) ) BSIZ2 = INT( HALF+SQRT( DBLE( QPTR( CURR+2 )-QPTR( CURR+1 ) ) ) ) DO 10 K = 1, MID - BSIZ1 - 1 Z( K ) = ZERO 10 CONTINUE CALL DCOPY( BSIZ1, Q( QPTR( CURR )+BSIZ1-1 ), BSIZ1, $ Z( MID-BSIZ1 ), 1 ) CALL DCOPY( BSIZ2, Q( QPTR( CURR+1 ) ), BSIZ2, Z( MID ), 1 ) DO 20 K = MID + BSIZ2, N Z( K ) = ZERO 20 CONTINUE * * Loop through remaining levels 1 -> CURLVL applying the Givens * rotations and permutation and then multiplying the center matrices * against the current Z. * PTR = 2**TLVLS + 1 DO 70 K = 1, CURLVL - 1 CURR = PTR + CURPBM*2**( CURLVL-K ) + 2**( CURLVL-K-1 ) - 1 PSIZ1 = PRMPTR( CURR+1 ) - PRMPTR( CURR ) PSIZ2 = PRMPTR( CURR+2 ) - PRMPTR( CURR+1 ) ZPTR1 = MID - PSIZ1 * * Apply Givens at CURR and CURR+1 * DO 30 I = GIVPTR( CURR ), GIVPTR( CURR+1 ) - 1 CALL DROT( 1, Z( ZPTR1+GIVCOL( 1, I )-1 ), 1, $ Z( ZPTR1+GIVCOL( 2, I )-1 ), 1, GIVNUM( 1, I ), $ GIVNUM( 2, I ) ) 30 CONTINUE DO 40 I = GIVPTR( CURR+1 ), GIVPTR( CURR+2 ) - 1 CALL DROT( 1, Z( MID-1+GIVCOL( 1, I ) ), 1, $ Z( MID-1+GIVCOL( 2, I ) ), 1, GIVNUM( 1, I ), $ GIVNUM( 2, I ) ) 40 CONTINUE PSIZ1 = PRMPTR( CURR+1 ) - PRMPTR( CURR ) PSIZ2 = PRMPTR( CURR+2 ) - PRMPTR( CURR+1 ) DO 50 I = 0, PSIZ1 - 1 ZTEMP( I+1 ) = Z( ZPTR1+PERM( PRMPTR( CURR )+I )-1 ) 50 CONTINUE DO 60 I = 0, PSIZ2 - 1 ZTEMP( PSIZ1+I+1 ) = Z( MID+PERM( PRMPTR( CURR+1 )+I )-1 ) 60 CONTINUE * * Multiply Blocks at CURR and CURR+1 * * Determine size of these matrices. We add HALF to the value of * the SQRT in case the machine underestimates one of these * square roots. * BSIZ1 = INT( HALF+SQRT( DBLE( QPTR( CURR+1 )-QPTR( CURR ) ) ) ) BSIZ2 = INT( HALF+SQRT( DBLE( QPTR( CURR+2 )-QPTR( CURR+ $ 1 ) ) ) ) IF( BSIZ1.GT.0 ) THEN CALL DGEMV( 'T', BSIZ1, BSIZ1, ONE, Q( QPTR( CURR ) ), $ BSIZ1, ZTEMP( 1 ), 1, ZERO, Z( ZPTR1 ), 1 ) END IF CALL DCOPY( PSIZ1-BSIZ1, ZTEMP( BSIZ1+1 ), 1, Z( ZPTR1+BSIZ1 ), $ 1 ) IF( BSIZ2.GT.0 ) THEN CALL DGEMV( 'T', BSIZ2, BSIZ2, ONE, Q( QPTR( CURR+1 ) ), $ BSIZ2, ZTEMP( PSIZ1+1 ), 1, ZERO, Z( MID ), 1 ) END IF CALL DCOPY( PSIZ2-BSIZ2, ZTEMP( PSIZ1+BSIZ2+1 ), 1, $ Z( MID+BSIZ2 ), 1 ) * PTR = PTR + 2**( TLVLS-K ) 70 CONTINUE * RETURN * * End of DLAEDA * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaed8.f0000644000000000000000000000013013543334726015116 xustar0030 mtime=1569569238.908645599 28 atime=1569569238.9066456 30 ctime=1569569238.908645599 elk-6.3.2/src/LAPACK/zlaed8.f0000644002504400250440000003522513543334726017176 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAED8 used by sstedc. Merges eigenvalues and deflates secular equation. Used when the original matrix is dense. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAED8 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAED8( K, N, QSIZ, Q, LDQ, D, RHO, CUTPNT, Z, DLAMDA, * Q2, LDQ2, W, INDXP, INDX, INDXQ, PERM, GIVPTR, * GIVCOL, GIVNUM, INFO ) * * .. Scalar Arguments .. * INTEGER CUTPNT, GIVPTR, INFO, K, LDQ, LDQ2, N, QSIZ * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ), * $ INDXQ( * ), PERM( * ) * DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM( 2, * ), W( * ), * $ Z( * ) * COMPLEX*16 Q( LDQ, * ), Q2( LDQ2, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAED8 merges the two sets of eigenvalues together into a single *> sorted set. Then it tries to deflate the size of the problem. *> There are two ways in which deflation can occur: when two or more *> eigenvalues are close together or if there is a tiny element in the *> Z vector. For each such occurrence the order of the related secular *> equation problem is reduced by one. *> \endverbatim * * Arguments: * ========== * *> \param[out] K *> \verbatim *> K is INTEGER *> Contains the number of non-deflated eigenvalues. *> This is the order of the related secular equation. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in] QSIZ *> \verbatim *> QSIZ is INTEGER *> The dimension of the unitary matrix used to reduce *> the dense or band matrix to tridiagonal form. *> QSIZ >= N if ICOMPQ = 1. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is COMPLEX*16 array, dimension (LDQ,N) *> On entry, Q contains the eigenvectors of the partially solved *> system which has been previously updated in matrix *> multiplies with other partially solved eigensystems. *> On exit, Q contains the trailing (N-K) updated eigenvectors *> (those which were deflated) in its last N-K columns. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max( 1, N ). *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, D contains the eigenvalues of the two submatrices to *> be combined. On exit, D contains the trailing (N-K) updated *> eigenvalues (those which were deflated) sorted into increasing *> order. *> \endverbatim *> *> \param[in,out] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> Contains the off diagonal element associated with the rank-1 *> cut which originally split the two submatrices which are now *> being recombined. RHO is modified during the computation to *> the value required by DLAED3. *> \endverbatim *> *> \param[in] CUTPNT *> \verbatim *> CUTPNT is INTEGER *> Contains the location of the last eigenvalue in the leading *> sub-matrix. MIN(1,N) <= CUTPNT <= N. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (N) *> On input this vector contains the updating vector (the last *> row of the first sub-eigenvector matrix and the first row of *> the second sub-eigenvector matrix). The contents of Z are *> destroyed during the updating process. *> \endverbatim *> *> \param[out] DLAMDA *> \verbatim *> DLAMDA is DOUBLE PRECISION array, dimension (N) *> Contains a copy of the first K eigenvalues which will be used *> by DLAED3 to form the secular equation. *> \endverbatim *> *> \param[out] Q2 *> \verbatim *> Q2 is COMPLEX*16 array, dimension (LDQ2,N) *> If ICOMPQ = 0, Q2 is not referenced. Otherwise, *> Contains a copy of the first K eigenvectors which will be used *> by DLAED7 in a matrix multiply (DGEMM) to update the new *> eigenvectors. *> \endverbatim *> *> \param[in] LDQ2 *> \verbatim *> LDQ2 is INTEGER *> The leading dimension of the array Q2. LDQ2 >= max( 1, N ). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> This will hold the first k values of the final *> deflation-altered z-vector and will be passed to DLAED3. *> \endverbatim *> *> \param[out] INDXP *> \verbatim *> INDXP is INTEGER array, dimension (N) *> This will contain the permutation used to place deflated *> values of D at the end of the array. On output INDXP(1:K) *> points to the nondeflated D-values and INDXP(K+1:N) *> points to the deflated eigenvalues. *> \endverbatim *> *> \param[out] INDX *> \verbatim *> INDX is INTEGER array, dimension (N) *> This will contain the permutation used to sort the contents of *> D into ascending order. *> \endverbatim *> *> \param[in] INDXQ *> \verbatim *> INDXQ is INTEGER array, dimension (N) *> This contains the permutation which separately sorts the two *> sub-problems in D into ascending order. Note that elements in *> the second half of this permutation must first have CUTPNT *> added to their values in order to be accurate. *> \endverbatim *> *> \param[out] PERM *> \verbatim *> PERM is INTEGER array, dimension (N) *> Contains the permutations (from deflation and sorting) to be *> applied to each eigenblock. *> \endverbatim *> *> \param[out] GIVPTR *> \verbatim *> GIVPTR is INTEGER *> Contains the number of Givens rotations which took place in *> this subproblem. *> \endverbatim *> *> \param[out] GIVCOL *> \verbatim *> GIVCOL is INTEGER array, dimension (2, N) *> Each pair of numbers indicates a pair of columns to take place *> in a Givens rotation. *> \endverbatim *> *> \param[out] GIVNUM *> \verbatim *> GIVNUM is DOUBLE PRECISION array, dimension (2, N) *> Each number indicates the S value to be used in the *> corresponding Givens rotation. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZLAED8( K, N, QSIZ, Q, LDQ, D, RHO, CUTPNT, Z, DLAMDA, $ Q2, LDQ2, W, INDXP, INDX, INDXQ, PERM, GIVPTR, $ GIVCOL, GIVNUM, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER CUTPNT, GIVPTR, INFO, K, LDQ, LDQ2, N, QSIZ DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ), $ INDXQ( * ), PERM( * ) DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM( 2, * ), W( * ), $ Z( * ) COMPLEX*16 Q( LDQ, * ), Q2( LDQ2, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION MONE, ZERO, ONE, TWO, EIGHT PARAMETER ( MONE = -1.0D0, ZERO = 0.0D0, ONE = 1.0D0, $ TWO = 2.0D0, EIGHT = 8.0D0 ) * .. * .. Local Scalars .. INTEGER I, IMAX, J, JLAM, JMAX, JP, K2, N1, N1P1, N2 DOUBLE PRECISION C, EPS, S, T, TAU, TOL * .. * .. External Functions .. INTEGER IDAMAX DOUBLE PRECISION DLAMCH, DLAPY2 EXTERNAL IDAMAX, DLAMCH, DLAPY2 * .. * .. External Subroutines .. EXTERNAL DCOPY, DLAMRG, DSCAL, XERBLA, ZCOPY, ZDROT, $ ZLACPY * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( N.LT.0 ) THEN INFO = -2 ELSE IF( QSIZ.LT.N ) THEN INFO = -3 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -5 ELSE IF( CUTPNT.LT.MIN( 1, N ) .OR. CUTPNT.GT.N ) THEN INFO = -8 ELSE IF( LDQ2.LT.MAX( 1, N ) ) THEN INFO = -12 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZLAED8', -INFO ) RETURN END IF * * Need to initialize GIVPTR to O here in case of quick exit * to prevent an unspecified code behavior (usually sigfault) * when IWORK array on entry to *stedc is not zeroed * (or at least some IWORK entries which used in *laed7 for GIVPTR). * GIVPTR = 0 * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * N1 = CUTPNT N2 = N - N1 N1P1 = N1 + 1 * IF( RHO.LT.ZERO ) THEN CALL DSCAL( N2, MONE, Z( N1P1 ), 1 ) END IF * * Normalize z so that norm(z) = 1 * T = ONE / SQRT( TWO ) DO 10 J = 1, N INDX( J ) = J 10 CONTINUE CALL DSCAL( N, T, Z, 1 ) RHO = ABS( TWO*RHO ) * * Sort the eigenvalues into increasing order * DO 20 I = CUTPNT + 1, N INDXQ( I ) = INDXQ( I ) + CUTPNT 20 CONTINUE DO 30 I = 1, N DLAMDA( I ) = D( INDXQ( I ) ) W( I ) = Z( INDXQ( I ) ) 30 CONTINUE I = 1 J = CUTPNT + 1 CALL DLAMRG( N1, N2, DLAMDA, 1, 1, INDX ) DO 40 I = 1, N D( I ) = DLAMDA( INDX( I ) ) Z( I ) = W( INDX( I ) ) 40 CONTINUE * * Calculate the allowable deflation tolerance * IMAX = IDAMAX( N, Z, 1 ) JMAX = IDAMAX( N, D, 1 ) EPS = DLAMCH( 'Epsilon' ) TOL = EIGHT*EPS*ABS( D( JMAX ) ) * * If the rank-1 modifier is small enough, no more needs to be done * -- except to reorganize Q so that its columns correspond with the * elements in D. * IF( RHO*ABS( Z( IMAX ) ).LE.TOL ) THEN K = 0 DO 50 J = 1, N PERM( J ) = INDXQ( INDX( J ) ) CALL ZCOPY( QSIZ, Q( 1, PERM( J ) ), 1, Q2( 1, J ), 1 ) 50 CONTINUE CALL ZLACPY( 'A', QSIZ, N, Q2( 1, 1 ), LDQ2, Q( 1, 1 ), LDQ ) RETURN END IF * * If there are multiple eigenvalues then the problem deflates. Here * the number of equal eigenvalues are found. As each equal * eigenvalue is found, an elementary reflector is computed to rotate * the corresponding eigensubspace so that the corresponding * components of Z are zero in this new basis. * K = 0 K2 = N + 1 DO 60 J = 1, N IF( RHO*ABS( Z( J ) ).LE.TOL ) THEN * * Deflate due to small z component. * K2 = K2 - 1 INDXP( K2 ) = J IF( J.EQ.N ) $ GO TO 100 ELSE JLAM = J GO TO 70 END IF 60 CONTINUE 70 CONTINUE J = J + 1 IF( J.GT.N ) $ GO TO 90 IF( RHO*ABS( Z( J ) ).LE.TOL ) THEN * * Deflate due to small z component. * K2 = K2 - 1 INDXP( K2 ) = J ELSE * * Check if eigenvalues are close enough to allow deflation. * S = Z( JLAM ) C = Z( J ) * * Find sqrt(a**2+b**2) without overflow or * destructive underflow. * TAU = DLAPY2( C, S ) T = D( J ) - D( JLAM ) C = C / TAU S = -S / TAU IF( ABS( T*C*S ).LE.TOL ) THEN * * Deflation is possible. * Z( J ) = TAU Z( JLAM ) = ZERO * * Record the appropriate Givens rotation * GIVPTR = GIVPTR + 1 GIVCOL( 1, GIVPTR ) = INDXQ( INDX( JLAM ) ) GIVCOL( 2, GIVPTR ) = INDXQ( INDX( J ) ) GIVNUM( 1, GIVPTR ) = C GIVNUM( 2, GIVPTR ) = S CALL ZDROT( QSIZ, Q( 1, INDXQ( INDX( JLAM ) ) ), 1, $ Q( 1, INDXQ( INDX( J ) ) ), 1, C, S ) T = D( JLAM )*C*C + D( J )*S*S D( J ) = D( JLAM )*S*S + D( J )*C*C D( JLAM ) = T K2 = K2 - 1 I = 1 80 CONTINUE IF( K2+I.LE.N ) THEN IF( D( JLAM ).LT.D( INDXP( K2+I ) ) ) THEN INDXP( K2+I-1 ) = INDXP( K2+I ) INDXP( K2+I ) = JLAM I = I + 1 GO TO 80 ELSE INDXP( K2+I-1 ) = JLAM END IF ELSE INDXP( K2+I-1 ) = JLAM END IF JLAM = J ELSE K = K + 1 W( K ) = Z( JLAM ) DLAMDA( K ) = D( JLAM ) INDXP( K ) = JLAM JLAM = J END IF END IF GO TO 70 90 CONTINUE * * Record the last eigenvalue. * K = K + 1 W( K ) = Z( JLAM ) DLAMDA( K ) = D( JLAM ) INDXP( K ) = JLAM * 100 CONTINUE * * Sort the eigenvalues and corresponding eigenvectors into DLAMDA * and Q2 respectively. The eigenvalues/vectors which were not * deflated go into the first K slots of DLAMDA and Q2 respectively, * while those which were deflated go into the last N - K slots. * DO 110 J = 1, N JP = INDXP( J ) DLAMDA( J ) = D( JP ) PERM( J ) = INDXQ( INDX( JP ) ) CALL ZCOPY( QSIZ, Q( 1, PERM( J ) ), 1, Q2( 1, J ), 1 ) 110 CONTINUE * * The deflated eigenvalues and their corresponding vectors go back * into the last N - K slots of D and Q respectively. * IF( K.LT.N ) THEN CALL DCOPY( N-K, DLAMDA( K+1 ), 1, D( K+1 ), 1 ) CALL ZLACPY( 'A', QSIZ, N-K, Q2( 1, K+1 ), LDQ2, Q( 1, K+1 ), $ LDQ ) END IF * RETURN * * End of ZLAED8 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed9.f0000644000000000000000000000013213543334726015073 xustar0030 mtime=1569569238.912645596 30 atime=1569569238.911645597 30 ctime=1569569238.912645596 elk-6.3.2/src/LAPACK/dlaed9.f0000644002504400250440000002072213543334726017145 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED9 used by sstedc. Finds the roots of the secular equation and updates the eigenvectors. Used when the original matrix is dense. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED9 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, * S, LDS, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), S( LDS, * ), * $ W( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED9 finds the roots of the secular equation, as defined by the *> values in D, Z, and RHO, between KSTART and KSTOP. It makes the *> appropriate calls to DLAED4 and then stores the new matrix of *> eigenvectors for use in calculating the next level of Z vectors. *> \endverbatim * * Arguments: * ========== * *> \param[in] K *> \verbatim *> K is INTEGER *> The number of terms in the rational function to be solved by *> DLAED4. K >= 0. *> \endverbatim *> *> \param[in] KSTART *> \verbatim *> KSTART is INTEGER *> \endverbatim *> *> \param[in] KSTOP *> \verbatim *> KSTOP is INTEGER *> The updated eigenvalues Lambda(I), KSTART <= I <= KSTOP *> are to be computed. 1 <= KSTART <= KSTOP <= K. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of rows and columns in the Q matrix. *> N >= K (delation may result in N > K). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> D(I) contains the updated eigenvalues *> for KSTART <= I <= KSTOP. *> \endverbatim *> *> \param[out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ,N) *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max( 1, N ). *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> The value of the parameter in the rank one update equation. *> RHO >= 0 required. *> \endverbatim *> *> \param[in] DLAMDA *> \verbatim *> DLAMDA is DOUBLE PRECISION array, dimension (K) *> The first K elements of this array contain the old roots *> of the deflated updating problem. These are the poles *> of the secular equation. *> \endverbatim *> *> \param[in] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (K) *> The first K elements of this array contain the components *> of the deflation-adjusted updating vector. *> \endverbatim *> *> \param[out] S *> \verbatim *> S is DOUBLE PRECISION array, dimension (LDS, K) *> Will contain the eigenvectors of the repaired matrix which *> will be stored for subsequent Z vector calculation and *> multiplied by the previously accumulated eigenvectors *> to update the system. *> \endverbatim *> *> \param[in] LDS *> \verbatim *> LDS is INTEGER *> The leading dimension of S. LDS >= max( 1, K ). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = 1, an eigenvalue did not converge *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA * * ===================================================================== SUBROUTINE DLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W, $ S, LDS, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N DOUBLE PRECISION RHO * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), S( LDS, * ), $ W( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, J DOUBLE PRECISION TEMP * .. * .. External Functions .. DOUBLE PRECISION DLAMC3, DNRM2 EXTERNAL DLAMC3, DNRM2 * .. * .. External Subroutines .. EXTERNAL DCOPY, DLAED4, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( K.LT.0 ) THEN INFO = -1 ELSE IF( KSTART.LT.1 .OR. KSTART.GT.MAX( 1, K ) ) THEN INFO = -2 ELSE IF( MAX( 1, KSTOP ).LT.KSTART .OR. KSTOP.GT.MAX( 1, K ) ) $ THEN INFO = -3 ELSE IF( N.LT.K ) THEN INFO = -4 ELSE IF( LDQ.LT.MAX( 1, K ) ) THEN INFO = -7 ELSE IF( LDS.LT.MAX( 1, K ) ) THEN INFO = -12 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED9', -INFO ) RETURN END IF * * Quick return if possible * IF( K.EQ.0 ) $ RETURN * * Modify values DLAMDA(i) to make sure all DLAMDA(i)-DLAMDA(j) can * be computed with high relative accuracy (barring over/underflow). * This is a problem on machines without a guard digit in * add/subtract (Cray XMP, Cray YMP, Cray C 90 and Cray 2). * The following code replaces DLAMDA(I) by 2*DLAMDA(I)-DLAMDA(I), * which on any of these machines zeros out the bottommost * bit of DLAMDA(I) if it is 1; this makes the subsequent * subtractions DLAMDA(I)-DLAMDA(J) unproblematic when cancellation * occurs. On binary machines with a guard digit (almost all * machines) it does not change DLAMDA(I) at all. On hexadecimal * and decimal machines with a guard digit, it slightly * changes the bottommost bits of DLAMDA(I). It does not account * for hexadecimal or decimal machines without guard digits * (we know of none). We use a subroutine call to compute * 2*DLAMBDA(I) to prevent optimizing compilers from eliminating * this code. * DO 10 I = 1, N DLAMDA( I ) = DLAMC3( DLAMDA( I ), DLAMDA( I ) ) - DLAMDA( I ) 10 CONTINUE * DO 20 J = KSTART, KSTOP CALL DLAED4( K, J, DLAMDA, W, Q( 1, J ), RHO, D( J ), INFO ) * * If the zero finder fails, the computation is terminated. * IF( INFO.NE.0 ) $ GO TO 120 20 CONTINUE * IF( K.EQ.1 .OR. K.EQ.2 ) THEN DO 40 I = 1, K DO 30 J = 1, K S( J, I ) = Q( J, I ) 30 CONTINUE 40 CONTINUE GO TO 120 END IF * * Compute updated W. * CALL DCOPY( K, W, 1, S, 1 ) * * Initialize W(I) = Q(I,I) * CALL DCOPY( K, Q, LDQ+1, W, 1 ) DO 70 J = 1, K DO 50 I = 1, J - 1 W( I ) = W( I )*( Q( I, J ) / ( DLAMDA( I )-DLAMDA( J ) ) ) 50 CONTINUE DO 60 I = J + 1, K W( I ) = W( I )*( Q( I, J ) / ( DLAMDA( I )-DLAMDA( J ) ) ) 60 CONTINUE 70 CONTINUE DO 80 I = 1, K W( I ) = SIGN( SQRT( -W( I ) ), S( I, 1 ) ) 80 CONTINUE * * Compute eigenvectors of the modified rank-1 modification. * DO 110 J = 1, K DO 90 I = 1, K Q( I, J ) = W( I ) / Q( I, J ) 90 CONTINUE TEMP = DNRM2( K, Q( 1, J ), 1 ) DO 100 I = 1, K S( I, J ) = Q( I, J ) / TEMP 100 CONTINUE 110 CONTINUE * 120 CONTINUE RETURN * * End of DLAED9 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlamrg.f0000644000000000000000000000013213543334726015177 xustar0030 mtime=1569569238.917645593 30 atime=1569569238.916645594 30 ctime=1569569238.917645593 elk-6.3.2/src/LAPACK/dlamrg.f0000644002504400250440000001071313543334726017250 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAMRG creates a permutation list to merge the entries of two independently sorted sets into a single set sorted in ascending order. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAMRG + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAMRG( N1, N2, A, DTRD1, DTRD2, INDEX ) * * .. Scalar Arguments .. * INTEGER DTRD1, DTRD2, N1, N2 * .. * .. Array Arguments .. * INTEGER INDEX( * ) * DOUBLE PRECISION A( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAMRG will create a permutation list which will merge the elements *> of A (which is composed of two independently sorted sets) into a *> single set which is sorted in ascending order. *> \endverbatim * * Arguments: * ========== * *> \param[in] N1 *> \verbatim *> N1 is INTEGER *> \endverbatim *> *> \param[in] N2 *> \verbatim *> N2 is INTEGER *> These arguments contain the respective lengths of the two *> sorted lists to be merged. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (N1+N2) *> The first N1 elements of A contain a list of numbers which *> are sorted in either ascending or descending order. Likewise *> for the final N2 elements. *> \endverbatim *> *> \param[in] DTRD1 *> \verbatim *> DTRD1 is INTEGER *> \endverbatim *> *> \param[in] DTRD2 *> \verbatim *> DTRD2 is INTEGER *> These are the strides to be taken through the array A. *> Allowable strides are 1 and -1. They indicate whether a *> subset of A is sorted in ascending (DTRDx = 1) or descending *> (DTRDx = -1) order. *> \endverbatim *> *> \param[out] INDEX *> \verbatim *> INDEX is INTEGER array, dimension (N1+N2) *> On exit this array will contain a permutation such that *> if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be *> sorted in ascending order. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLAMRG( N1, N2, A, DTRD1, DTRD2, INDEX ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER DTRD1, DTRD2, N1, N2 * .. * .. Array Arguments .. INTEGER INDEX( * ) DOUBLE PRECISION A( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, IND1, IND2, N1SV, N2SV * .. * .. Executable Statements .. * N1SV = N1 N2SV = N2 IF( DTRD1.GT.0 ) THEN IND1 = 1 ELSE IND1 = N1 END IF IF( DTRD2.GT.0 ) THEN IND2 = 1 + N1 ELSE IND2 = N1 + N2 END IF I = 1 * while ( (N1SV > 0) & (N2SV > 0) ) 10 CONTINUE IF( N1SV.GT.0 .AND. N2SV.GT.0 ) THEN IF( A( IND1 ).LE.A( IND2 ) ) THEN INDEX( I ) = IND1 I = I + 1 IND1 = IND1 + DTRD1 N1SV = N1SV - 1 ELSE INDEX( I ) = IND2 I = I + 1 IND2 = IND2 + DTRD2 N2SV = N2SV - 1 END IF GO TO 10 END IF * end while IF( N1SV.EQ.0 ) THEN DO 20 N1SV = 1, N2SV INDEX( I ) = IND2 I = I + 1 IND2 = IND2 + DTRD2 20 CONTINUE ELSE * N2SV .EQ. 0 DO 30 N2SV = 1, N1SV INDEX( I ) = IND1 I = I + 1 IND1 = IND1 + DTRD1 30 CONTINUE END IF * RETURN * * End of DLAMRG * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunmhr.f0000644000000000000000000000013213543334726015254 xustar0030 mtime=1569569238.921645591 30 atime=1569569238.920645591 30 ctime=1569569238.921645591 elk-6.3.2/src/LAPACK/zunmhr.f0000644002504400250440000002024713543334726017330 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNMHR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNMHR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNMHR( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C, * LDC, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER IHI, ILO, INFO, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNMHR overwrites the general complex M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> where Q is a complex unitary matrix of order nq, with nq = m if *> SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of *> IHI-ILO elementary reflectors, as returned by ZGEHRD: *> *> Q = H(ilo) H(ilo+1) . . . H(ihi-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left; *> = 'R': apply Q or Q**H from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'C': apply Q**H (Conjugate transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] ILO *> \verbatim *> ILO is INTEGER *> \endverbatim *> *> \param[in] IHI *> \verbatim *> IHI is INTEGER *> *> ILO and IHI must have the same values as in the previous call *> of ZGEHRD. Q is equal to the unit matrix except in the *> submatrix Q(ilo+1:ihi,ilo+1:ihi). *> If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and *> ILO = 1 and IHI = 0, if M = 0; *> if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and *> ILO = 1 and IHI = 0, if N = 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension *> (LDA,M) if SIDE = 'L' *> (LDA,N) if SIDE = 'R' *> The vectors which define the elementary reflectors, as *> returned by ZGEHRD. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension *> (M-1) if SIDE = 'L' *> (N-1) if SIDE = 'R' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGEHRD. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For optimum performance LWORK >= N*NB if SIDE = 'L', and *> LWORK >= M*NB if SIDE = 'R', where NB is the optimal *> blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNMHR( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C, $ LDC, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER IHI, ILO, INFO, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LEFT, LQUERY INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNMQR * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NH = IHI - ILO LEFT = LSAME( SIDE, 'L' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.LSAME( TRANS, 'N' ) .AND. .NOT.LSAME( TRANS, 'C' ) ) $ THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( ILO.LT.1 .OR. ILO.GT.MAX( 1, NQ ) ) THEN INFO = -5 ELSE IF( IHI.LT.MIN( ILO, NQ ) .OR. IHI.GT.NQ ) THEN INFO = -6 ELSE IF( LDA.LT.MAX( 1, NQ ) ) THEN INFO = -8 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -11 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -13 END IF * IF( INFO.EQ.0 ) THEN IF( LEFT ) THEN NB = ILAENV( 1, 'ZUNMQR', SIDE // TRANS, NH, N, NH, -1 ) ELSE NB = ILAENV( 1, 'ZUNMQR', SIDE // TRANS, M, NH, NH, -1 ) END IF LWKOPT = MAX( 1, NW )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNMHR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. NH.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( LEFT ) THEN MI = NH NI = N I1 = ILO + 1 I2 = 1 ELSE MI = M NI = NH I1 = 1 I2 = ILO + 1 END IF * CALL ZUNMQR( SIDE, TRANS, MI, NI, NH, A( ILO+1, ILO ), LDA, $ TAU( ILO ), C( I1, I2 ), LDC, WORK, LWORK, IINFO ) * WORK( 1 ) = LWKOPT RETURN * * End of ZUNMHR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ztrexc.f0000644000000000000000000000013213543334726015250 xustar0030 mtime=1569569238.926645587 30 atime=1569569238.924645589 30 ctime=1569569238.926645587 elk-6.3.2/src/LAPACK/ztrexc.f0000644002504400250440000001456313543334726017330 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTREXC * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZTREXC + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZTREXC( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO ) * * .. Scalar Arguments .. * CHARACTER COMPQ * INTEGER IFST, ILST, INFO, LDQ, LDT, N * .. * .. Array Arguments .. * COMPLEX*16 Q( LDQ, * ), T( LDT, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTREXC reorders the Schur factorization of a complex matrix *> A = Q*T*Q**H, so that the diagonal element of T with row index IFST *> is moved to row ILST. *> *> The Schur form T is reordered by a unitary similarity transformation *> Z**H*T*Z, and optionally the matrix Q of Schur vectors is updated by *> postmultplying it with Z. *> \endverbatim * * Arguments: * ========== * *> \param[in] COMPQ *> \verbatim *> COMPQ is CHARACTER*1 *> = 'V': update the matrix Q of Schur vectors; *> = 'N': do not update Q. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix T. N >= 0. *> If N == 0 arguments ILST and IFST may be any value. *> \endverbatim *> *> \param[in,out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,N) *> On entry, the upper triangular matrix T. *> On exit, the reordered upper triangular matrix. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= max(1,N). *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is COMPLEX*16 array, dimension (LDQ,N) *> On entry, if COMPQ = 'V', the matrix Q of Schur vectors. *> On exit, if COMPQ = 'V', Q has been postmultiplied by the *> unitary transformation matrix Z which reorders T. *> If COMPQ = 'N', Q is not referenced. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= 1, and if *> COMPQ = 'V', LDQ >= max(1,N). *> \endverbatim *> *> \param[in] IFST *> \verbatim *> IFST is INTEGER *> \endverbatim *> *> \param[in] ILST *> \verbatim *> ILST is INTEGER *> *> Specify the reordering of the diagonal elements of T: *> The element with row index IFST is moved to row ILST by a *> sequence of transpositions between adjacent elements. *> 1 <= IFST <= N; 1 <= ILST <= N. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZTREXC( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER COMPQ INTEGER IFST, ILST, INFO, LDQ, LDT, N * .. * .. Array Arguments .. COMPLEX*16 Q( LDQ, * ), T( LDT, * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL WANTQ INTEGER K, M1, M2, M3 DOUBLE PRECISION CS COMPLEX*16 SN, T11, T22, TEMP * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARTG, ZROT * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX * .. * .. Executable Statements .. * * Decode and test the input parameters. * INFO = 0 WANTQ = LSAME( COMPQ, 'V' ) IF( .NOT.LSAME( COMPQ, 'N' ) .AND. .NOT.WANTQ ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDT.LT.MAX( 1, N ) ) THEN INFO = -4 ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.MAX( 1, N ) ) ) THEN INFO = -6 ELSE IF(( IFST.LT.1 .OR. IFST.GT.N ).AND.( N.GT.0 )) THEN INFO = -7 ELSE IF(( ILST.LT.1 .OR. ILST.GT.N ).AND.( N.GT.0 )) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZTREXC', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.1 .OR. IFST.EQ.ILST ) $ RETURN * IF( IFST.LT.ILST ) THEN * * Move the IFST-th diagonal element forward down the diagonal. * M1 = 0 M2 = -1 M3 = 1 ELSE * * Move the IFST-th diagonal element backward up the diagonal. * M1 = -1 M2 = 0 M3 = -1 END IF * DO 10 K = IFST + M1, ILST + M2, M3 * * Interchange the k-th and (k+1)-th diagonal elements. * T11 = T( K, K ) T22 = T( K+1, K+1 ) * * Determine the transformation to perform the interchange. * CALL ZLARTG( T( K, K+1 ), T22-T11, CS, SN, TEMP ) * * Apply transformation to the matrix T. * IF( K+2.LE.N ) $ CALL ZROT( N-K-1, T( K, K+2 ), LDT, T( K+1, K+2 ), LDT, CS, $ SN ) CALL ZROT( K-1, T( 1, K ), 1, T( 1, K+1 ), 1, CS, $ DCONJG( SN ) ) * T( K, K ) = T22 T( K+1, K+1 ) = T11 * IF( WANTQ ) THEN * * Accumulate transformation in the matrix Q. * CALL ZROT( N, Q( 1, K ), 1, Q( 1, K+1 ), 1, CS, $ DCONJG( SN ) ) END IF * 10 CONTINUE * RETURN * * End of ZTREXC * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaqr2.f0000644000000000000000000000013213543334726015144 xustar0030 mtime=1569569238.931645584 30 atime=1569569238.929645585 30 ctime=1569569238.931645584 elk-6.3.2/src/LAPACK/zlaqr2.f0000644002504400250440000004226213543334726017221 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAQR2 performs the unitary similarity transformation of a Hessenberg matrix to detect and deflate fully converged eigenvalues from a trailing principal submatrix (aggressive early deflation). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAQR2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, * IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT, * NV, WV, LDWV, WORK, LWORK ) * * .. Scalar Arguments .. * INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, * $ LDZ, LWORK, N, ND, NH, NS, NV, NW * LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), SH( * ), T( LDT, * ), V( LDV, * ), * $ WORK( * ), WV( LDWV, * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLAQR2 is identical to ZLAQR3 except that it avoids *> recursion by calling ZLAHQR instead of ZLAQR4. *> *> Aggressive early deflation: *> *> ZLAQR2 accepts as input an upper Hessenberg matrix *> H and performs an unitary similarity transformation *> designed to detect and deflate fully converged eigenvalues from *> a trailing principal submatrix. On output H has been over- *> written by a new Hessenberg matrix that is a perturbation of *> an unitary similarity transformation of H. It is to be *> hoped that the final version of H has many zero subdiagonal *> entries. *> *> \endverbatim * * Arguments: * ========== * *> \param[in] WANTT *> \verbatim *> WANTT is LOGICAL *> If .TRUE., then the Hessenberg matrix H is fully updated *> so that the triangular Schur factor may be *> computed (in cooperation with the calling subroutine). *> If .FALSE., then only enough of H is updated to preserve *> the eigenvalues. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim *> WANTZ is LOGICAL *> If .TRUE., then the unitary matrix Z is updated so *> so that the unitary Schur factor may be computed *> (in cooperation with the calling subroutine). *> If .FALSE., then Z is not referenced. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix H and (if WANTZ is .TRUE.) the *> order of the unitary matrix Z. *> \endverbatim *> *> \param[in] KTOP *> \verbatim *> KTOP is INTEGER *> It is assumed that either KTOP = 1 or H(KTOP,KTOP-1)=0. *> KBOT and KTOP together determine an isolated block *> along the diagonal of the Hessenberg matrix. *> \endverbatim *> *> \param[in] KBOT *> \verbatim *> KBOT is INTEGER *> It is assumed without a check that either *> KBOT = N or H(KBOT+1,KBOT)=0. KBOT and KTOP together *> determine an isolated block along the diagonal of the *> Hessenberg matrix. *> \endverbatim *> *> \param[in] NW *> \verbatim *> NW is INTEGER *> Deflation window size. 1 .LE. NW .LE. (KBOT-KTOP+1). *> \endverbatim *> *> \param[in,out] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> On input the initial N-by-N section of H stores the *> Hessenberg matrix undergoing aggressive early deflation. *> On output H has been transformed by a unitary *> similarity transformation, perturbed, and the returned *> to Hessenberg form that (it is to be hoped) has some *> zero subdiagonal entries. *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> Leading dimension of H just as declared in the calling *> subroutine. N .LE. LDH *> \endverbatim *> *> \param[in] ILOZ *> \verbatim *> ILOZ is INTEGER *> \endverbatim *> *> \param[in] IHIZ *> \verbatim *> IHIZ is INTEGER *> Specify the rows of Z to which transformations must be *> applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is COMPLEX*16 array, dimension (LDZ,N) *> IF WANTZ is .TRUE., then on output, the unitary *> similarity transformation mentioned above has been *> accumulated into Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. *> If WANTZ is .FALSE., then Z is unreferenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of Z just as declared in the *> calling subroutine. 1 .LE. LDZ. *> \endverbatim *> *> \param[out] NS *> \verbatim *> NS is INTEGER *> The number of unconverged (ie approximate) eigenvalues *> returned in SR and SI that may be used as shifts by the *> calling subroutine. *> \endverbatim *> *> \param[out] ND *> \verbatim *> ND is INTEGER *> The number of converged eigenvalues uncovered by this *> subroutine. *> \endverbatim *> *> \param[out] SH *> \verbatim *> SH is COMPLEX*16 array, dimension (KBOT) *> On output, approximate eigenvalues that may *> be used for shifts are stored in SH(KBOT-ND-NS+1) *> through SR(KBOT-ND). Converged eigenvalues are *> stored in SH(KBOT-ND+1) through SH(KBOT). *> \endverbatim *> *> \param[out] V *> \verbatim *> V is COMPLEX*16 array, dimension (LDV,NW) *> An NW-by-NW work array. *> \endverbatim *> *> \param[in] LDV *> \verbatim *> LDV is INTEGER *> The leading dimension of V just as declared in the *> calling subroutine. NW .LE. LDV *> \endverbatim *> *> \param[in] NH *> \verbatim *> NH is INTEGER *> The number of columns of T. NH.GE.NW. *> \endverbatim *> *> \param[out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,NW) *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of T just as declared in the *> calling subroutine. NW .LE. LDT *> \endverbatim *> *> \param[in] NV *> \verbatim *> NV is INTEGER *> The number of rows of work array WV available for *> workspace. NV.GE.NW. *> \endverbatim *> *> \param[out] WV *> \verbatim *> WV is COMPLEX*16 array, dimension (LDWV,NW) *> \endverbatim *> *> \param[in] LDWV *> \verbatim *> LDWV is INTEGER *> The leading dimension of W just as declared in the *> calling subroutine. NW .LE. LDV *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (LWORK) *> On exit, WORK(1) is set to an estimate of the optimal value *> of LWORK for the given values of N, NW, KTOP and KBOT. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the work array WORK. LWORK = 2*NW *> suffices, but greater efficiency may result from larger *> values of LWORK. *> *> If LWORK = -1, then a workspace query is assumed; ZLAQR2 *> only estimates the optimal workspace size for the given *> values of N, NW, KTOP and KBOT. The estimate is returned *> in WORK(1). No error message related to LWORK is issued *> by XERBLA. Neither H nor Z are accessed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA *> * ===================================================================== SUBROUTINE ZLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, $ IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT, $ NV, WV, LDWV, WORK, LWORK ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, $ LDZ, LWORK, N, ND, NH, NS, NV, NW LOGICAL WANTT, WANTZ * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), SH( * ), T( LDT, * ), V( LDV, * ), $ WORK( * ), WV( LDWV, * ), Z( LDZ, * ) * .. * * ================================================================ * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ), $ ONE = ( 1.0d0, 0.0d0 ) ) DOUBLE PRECISION RZERO, RONE PARAMETER ( RZERO = 0.0d0, RONE = 1.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 BETA, CDUM, S, TAU DOUBLE PRECISION FOO, SAFMAX, SAFMIN, SMLNUM, ULP INTEGER I, IFST, ILST, INFO, INFQR, J, JW, KCOL, KLN, $ KNT, KROW, KWTOP, LTOP, LWK1, LWK2, LWKOPT * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. External Subroutines .. EXTERNAL DLABAD, ZCOPY, ZGEHRD, ZGEMM, ZLACPY, ZLAHQR, $ ZLARF, ZLARFG, ZLASET, ZTREXC, ZUNMHR * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, INT, MAX, MIN * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. * * ==== Estimate optimal workspace. ==== * JW = MIN( NW, KBOT-KTOP+1 ) IF( JW.LE.2 ) THEN LWKOPT = 1 ELSE * * ==== Workspace query call to ZGEHRD ==== * CALL ZGEHRD( JW, 1, JW-1, T, LDT, WORK, WORK, -1, INFO ) LWK1 = INT( WORK( 1 ) ) * * ==== Workspace query call to ZUNMHR ==== * CALL ZUNMHR( 'R', 'N', JW, JW, 1, JW-1, T, LDT, WORK, V, LDV, $ WORK, -1, INFO ) LWK2 = INT( WORK( 1 ) ) * * ==== Optimal workspace ==== * LWKOPT = JW + MAX( LWK1, LWK2 ) END IF * * ==== Quick return in case of workspace query. ==== * IF( LWORK.EQ.-1 ) THEN WORK( 1 ) = DCMPLX( LWKOPT, 0 ) RETURN END IF * * ==== Nothing to do ... * ... for an empty active block ... ==== NS = 0 ND = 0 WORK( 1 ) = ONE IF( KTOP.GT.KBOT ) $ RETURN * ... nor for an empty deflation window. ==== IF( NW.LT.1 ) $ RETURN * * ==== Machine constants ==== * SAFMIN = DLAMCH( 'SAFE MINIMUM' ) SAFMAX = RONE / SAFMIN CALL DLABAD( SAFMIN, SAFMAX ) ULP = DLAMCH( 'PRECISION' ) SMLNUM = SAFMIN*( DBLE( N ) / ULP ) * * ==== Setup deflation window ==== * JW = MIN( NW, KBOT-KTOP+1 ) KWTOP = KBOT - JW + 1 IF( KWTOP.EQ.KTOP ) THEN S = ZERO ELSE S = H( KWTOP, KWTOP-1 ) END IF * IF( KBOT.EQ.KWTOP ) THEN * * ==== 1-by-1 deflation window: not much to do ==== * SH( KWTOP ) = H( KWTOP, KWTOP ) NS = 1 ND = 0 IF( CABS1( S ).LE.MAX( SMLNUM, ULP*CABS1( H( KWTOP, $ KWTOP ) ) ) ) THEN NS = 0 ND = 1 IF( KWTOP.GT.KTOP ) $ H( KWTOP, KWTOP-1 ) = ZERO END IF WORK( 1 ) = ONE RETURN END IF * * ==== Convert to spike-triangular form. (In case of a * . rare QR failure, this routine continues to do * . aggressive early deflation using that part of * . the deflation window that converged using INFQR * . here and there to keep track.) ==== * CALL ZLACPY( 'U', JW, JW, H( KWTOP, KWTOP ), LDH, T, LDT ) CALL ZCOPY( JW-1, H( KWTOP+1, KWTOP ), LDH+1, T( 2, 1 ), LDT+1 ) * CALL ZLASET( 'A', JW, JW, ZERO, ONE, V, LDV ) CALL ZLAHQR( .true., .true., JW, 1, JW, T, LDT, SH( KWTOP ), 1, $ JW, V, LDV, INFQR ) * * ==== Deflation detection loop ==== * NS = JW ILST = INFQR + 1 DO 10 KNT = INFQR + 1, JW * * ==== Small spike tip deflation test ==== * FOO = CABS1( T( NS, NS ) ) IF( FOO.EQ.RZERO ) $ FOO = CABS1( S ) IF( CABS1( S )*CABS1( V( 1, NS ) ).LE.MAX( SMLNUM, ULP*FOO ) ) $ THEN * * ==== One more converged eigenvalue ==== * NS = NS - 1 ELSE * * ==== One undeflatable eigenvalue. Move it up out of the * . way. (ZTREXC can not fail in this case.) ==== * IFST = NS CALL ZTREXC( 'V', JW, T, LDT, V, LDV, IFST, ILST, INFO ) ILST = ILST + 1 END IF 10 CONTINUE * * ==== Return to Hessenberg form ==== * IF( NS.EQ.0 ) $ S = ZERO * IF( NS.LT.JW ) THEN * * ==== sorting the diagonal of T improves accuracy for * . graded matrices. ==== * DO 30 I = INFQR + 1, NS IFST = I DO 20 J = I + 1, NS IF( CABS1( T( J, J ) ).GT.CABS1( T( IFST, IFST ) ) ) $ IFST = J 20 CONTINUE ILST = I IF( IFST.NE.ILST ) $ CALL ZTREXC( 'V', JW, T, LDT, V, LDV, IFST, ILST, INFO ) 30 CONTINUE END IF * * ==== Restore shift/eigenvalue array from T ==== * DO 40 I = INFQR + 1, JW SH( KWTOP+I-1 ) = T( I, I ) 40 CONTINUE * * IF( NS.LT.JW .OR. S.EQ.ZERO ) THEN IF( NS.GT.1 .AND. S.NE.ZERO ) THEN * * ==== Reflect spike back into lower triangle ==== * CALL ZCOPY( NS, V, LDV, WORK, 1 ) DO 50 I = 1, NS WORK( I ) = DCONJG( WORK( I ) ) 50 CONTINUE BETA = WORK( 1 ) CALL ZLARFG( NS, BETA, WORK( 2 ), 1, TAU ) WORK( 1 ) = ONE * CALL ZLASET( 'L', JW-2, JW-2, ZERO, ZERO, T( 3, 1 ), LDT ) * CALL ZLARF( 'L', NS, JW, WORK, 1, DCONJG( TAU ), T, LDT, $ WORK( JW+1 ) ) CALL ZLARF( 'R', NS, NS, WORK, 1, TAU, T, LDT, $ WORK( JW+1 ) ) CALL ZLARF( 'R', JW, NS, WORK, 1, TAU, V, LDV, $ WORK( JW+1 ) ) * CALL ZGEHRD( JW, 1, NS, T, LDT, WORK, WORK( JW+1 ), $ LWORK-JW, INFO ) END IF * * ==== Copy updated reduced window into place ==== * IF( KWTOP.GT.1 ) $ H( KWTOP, KWTOP-1 ) = S*DCONJG( V( 1, 1 ) ) CALL ZLACPY( 'U', JW, JW, T, LDT, H( KWTOP, KWTOP ), LDH ) CALL ZCOPY( JW-1, T( 2, 1 ), LDT+1, H( KWTOP+1, KWTOP ), $ LDH+1 ) * * ==== Accumulate orthogonal matrix in order update * . H and Z, if requested. ==== * IF( NS.GT.1 .AND. S.NE.ZERO ) $ CALL ZUNMHR( 'R', 'N', JW, NS, 1, NS, T, LDT, WORK, V, LDV, $ WORK( JW+1 ), LWORK-JW, INFO ) * * ==== Update vertical slab in H ==== * IF( WANTT ) THEN LTOP = 1 ELSE LTOP = KTOP END IF DO 60 KROW = LTOP, KWTOP - 1, NV KLN = MIN( NV, KWTOP-KROW ) CALL ZGEMM( 'N', 'N', KLN, JW, JW, ONE, H( KROW, KWTOP ), $ LDH, V, LDV, ZERO, WV, LDWV ) CALL ZLACPY( 'A', KLN, JW, WV, LDWV, H( KROW, KWTOP ), LDH ) 60 CONTINUE * * ==== Update horizontal slab in H ==== * IF( WANTT ) THEN DO 70 KCOL = KBOT + 1, N, NH KLN = MIN( NH, N-KCOL+1 ) CALL ZGEMM( 'C', 'N', JW, KLN, JW, ONE, V, LDV, $ H( KWTOP, KCOL ), LDH, ZERO, T, LDT ) CALL ZLACPY( 'A', JW, KLN, T, LDT, H( KWTOP, KCOL ), $ LDH ) 70 CONTINUE END IF * * ==== Update vertical slab in Z ==== * IF( WANTZ ) THEN DO 80 KROW = ILOZ, IHIZ, NV KLN = MIN( NV, IHIZ-KROW+1 ) CALL ZGEMM( 'N', 'N', KLN, JW, JW, ONE, Z( KROW, KWTOP ), $ LDZ, V, LDV, ZERO, WV, LDWV ) CALL ZLACPY( 'A', KLN, JW, WV, LDWV, Z( KROW, KWTOP ), $ LDZ ) 80 CONTINUE END IF END IF * * ==== Return the number of deflations ... ==== * ND = JW - NS * * ==== ... and the number of shifts. (Subtracting * . INFQR from the spike length takes care * . of the case of a rare QR failure while * . calculating eigenvalues of the deflation * . window.) ==== * NS = NS - INFQR * * ==== Return optimal workspace. ==== * WORK( 1 ) = DCMPLX( LWKOPT, 0 ) * * ==== End of ZLAQR2 ==== * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlaqr1.f0000644000000000000000000000013213543334726015143 xustar0030 mtime=1569569238.935645582 30 atime=1569569238.934645582 30 ctime=1569569238.935645582 elk-6.3.2/src/LAPACK/zlaqr1.f0000644002504400250440000001135313543334726017215 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLAQR1 sets a scalar multiple of the first column of the product of 2-by-2 or 3-by-3 matrix H and specified shifts. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLAQR1 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLAQR1( N, H, LDH, S1, S2, V ) * * .. Scalar Arguments .. * COMPLEX*16 S1, S2 * INTEGER LDH, N * .. * .. Array Arguments .. * COMPLEX*16 H( LDH, * ), V( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> Given a 2-by-2 or 3-by-3 matrix H, ZLAQR1 sets v to a *> scalar multiple of the first column of the product *> *> (*) K = (H - s1*I)*(H - s2*I) *> *> scaling to avoid overflows and most underflows. *> *> This is useful for starting double implicit shift bulges *> in the QR algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> Order of the matrix H. N must be either 2 or 3. *> \endverbatim *> *> \param[in] H *> \verbatim *> H is COMPLEX*16 array, dimension (LDH,N) *> The 2-by-2 or 3-by-3 matrix H in (*). *> \endverbatim *> *> \param[in] LDH *> \verbatim *> LDH is INTEGER *> The leading dimension of H as declared in *> the calling procedure. LDH.GE.N *> \endverbatim *> *> \param[in] S1 *> \verbatim *> S1 is COMPLEX*16 *> \endverbatim *> *> \param[in] S2 *> \verbatim *> S2 is COMPLEX*16 *> *> S1 and S2 are the shifts defining K in (*) above. *> \endverbatim *> *> \param[out] V *> \verbatim *> V is COMPLEX*16 array, dimension (N) *> A scalar multiple of the first column of the *> matrix K in (*). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Karen Braman and Ralph Byers, Department of Mathematics, *> University of Kansas, USA *> * ===================================================================== SUBROUTINE ZLAQR1( N, H, LDH, S1, S2, V ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. COMPLEX*16 S1, S2 INTEGER LDH, N * .. * .. Array Arguments .. COMPLEX*16 H( LDH, * ), V( * ) * .. * * ================================================================ * * .. Parameters .. COMPLEX*16 ZERO PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ) ) DOUBLE PRECISION RZERO PARAMETER ( RZERO = 0.0d0 ) * .. * .. Local Scalars .. COMPLEX*16 CDUM, H21S, H31S DOUBLE PRECISION S * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DIMAG * .. * .. Statement Functions .. DOUBLE PRECISION CABS1 * .. * .. Statement Function definitions .. CABS1( CDUM ) = ABS( DBLE( CDUM ) ) + ABS( DIMAG( CDUM ) ) * .. * .. Executable Statements .. IF( N.EQ.2 ) THEN S = CABS1( H( 1, 1 )-S2 ) + CABS1( H( 2, 1 ) ) IF( S.EQ.RZERO ) THEN V( 1 ) = ZERO V( 2 ) = ZERO ELSE H21S = H( 2, 1 ) / S V( 1 ) = H21S*H( 1, 2 ) + ( H( 1, 1 )-S1 )* $ ( ( H( 1, 1 )-S2 ) / S ) V( 2 ) = H21S*( H( 1, 1 )+H( 2, 2 )-S1-S2 ) END IF ELSE S = CABS1( H( 1, 1 )-S2 ) + CABS1( H( 2, 1 ) ) + $ CABS1( H( 3, 1 ) ) IF( S.EQ.ZERO ) THEN V( 1 ) = ZERO V( 2 ) = ZERO V( 3 ) = ZERO ELSE H21S = H( 2, 1 ) / S H31S = H( 3, 1 ) / S V( 1 ) = ( H( 1, 1 )-S1 )*( ( H( 1, 1 )-S2 ) / S ) + $ H( 1, 2 )*H21S + H( 1, 3 )*H31S V( 2 ) = H21S*( H( 1, 1 )+H( 2, 2 )-S1-S2 ) + H( 2, 3 )*H31S V( 3 ) = H31S*( H( 1, 1 )+H( 3, 3 )-S1-S2 ) + H21S*H( 3, 2 ) END IF END IF END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed3.f0000644000000000000000000000013113543334726015064 xustar0030 mtime=1569569238.940645578 29 atime=1569569238.93864558 30 ctime=1569569238.940645578 elk-6.3.2/src/LAPACK/dlaed3.f0000644002504400250440000002530013543334726017134 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED3 used by sstedc. Finds the roots of the secular equation and updates the eigenvectors. Used when the original matrix is tridiagonal. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED3 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED3( K, N, N1, D, Q, LDQ, RHO, DLAMDA, Q2, INDX, * CTOT, W, S, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDQ, N, N1 * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER CTOT( * ), INDX( * ) * DOUBLE PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), Q2( * ), * $ S( * ), W( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED3 finds the roots of the secular equation, as defined by the *> values in D, W, and RHO, between 1 and K. It makes the *> appropriate calls to DLAED4 and then updates the eigenvectors by *> multiplying the matrix of eigenvectors of the pair of eigensystems *> being combined by the matrix of eigenvectors of the K-by-K system *> which is solved here. *> *> This code makes very mild assumptions about floating point *> arithmetic. It will work on machines with a guard digit in *> add/subtract, or on those binary machines without guard digits *> which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. *> It could conceivably fail on hexadecimal or decimal machines *> without guard digits, but we know of none. *> \endverbatim * * Arguments: * ========== * *> \param[in] K *> \verbatim *> K is INTEGER *> The number of terms in the rational function to be solved by *> DLAED4. K >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of rows and columns in the Q matrix. *> N >= K (deflation may result in N>K). *> \endverbatim *> *> \param[in] N1 *> \verbatim *> N1 is INTEGER *> The location of the last eigenvalue in the leading submatrix. *> min(1,N) <= N1 <= N/2. *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> D(I) contains the updated eigenvalues for *> 1 <= I <= K. *> \endverbatim *> *> \param[out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ,N) *> Initially the first K columns are used as workspace. *> On output the columns 1 to K contain *> the updated eigenvectors. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> The value of the parameter in the rank one update equation. *> RHO >= 0 required. *> \endverbatim *> *> \param[in,out] DLAMDA *> \verbatim *> DLAMDA is DOUBLE PRECISION array, dimension (K) *> The first K elements of this array contain the old roots *> of the deflated updating problem. These are the poles *> of the secular equation. May be changed on output by *> having lowest order bit set to zero on Cray X-MP, Cray Y-MP, *> Cray-2, or Cray C-90, as described above. *> \endverbatim *> *> \param[in] Q2 *> \verbatim *> Q2 is DOUBLE PRECISION array, dimension (LDQ2*N) *> The first K columns of this matrix contain the non-deflated *> eigenvectors for the split problem. *> \endverbatim *> *> \param[in] INDX *> \verbatim *> INDX is INTEGER array, dimension (N) *> The permutation used to arrange the columns of the deflated *> Q matrix into three groups (see DLAED2). *> The rows of the eigenvectors found by DLAED4 must be likewise *> permuted before the matrix multiply can take place. *> \endverbatim *> *> \param[in] CTOT *> \verbatim *> CTOT is INTEGER array, dimension (4) *> A count of the total number of the various types of columns *> in Q, as described in INDX. The fourth column type is any *> column which has been deflated. *> \endverbatim *> *> \param[in,out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (K) *> The first K elements of this array contain the components *> of the deflation-adjusted updating vector. Destroyed on *> output. *> \endverbatim *> *> \param[out] S *> \verbatim *> S is DOUBLE PRECISION array, dimension (N1 + 1)*K *> Will contain the eigenvectors of the repaired matrix which *> will be multiplied by the previously accumulated eigenvectors *> to update the system. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = 1, an eigenvalue did not converge *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA \n *> Modified by Francoise Tisseur, University of Tennessee *> * ===================================================================== SUBROUTINE DLAED3( K, N, N1, D, Q, LDQ, RHO, DLAMDA, Q2, INDX, $ CTOT, W, S, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER INFO, K, LDQ, N, N1 DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER CTOT( * ), INDX( * ) DOUBLE PRECISION D( * ), DLAMDA( * ), Q( LDQ, * ), Q2( * ), $ S( * ), W( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D0, ZERO = 0.0D0 ) * .. * .. Local Scalars .. INTEGER I, II, IQ2, J, N12, N2, N23 DOUBLE PRECISION TEMP * .. * .. External Functions .. DOUBLE PRECISION DLAMC3, DNRM2 EXTERNAL DLAMC3, DNRM2 * .. * .. External Subroutines .. EXTERNAL DCOPY, DGEMM, DLACPY, DLAED4, DLASET, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( K.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.K ) THEN INFO = -2 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED3', -INFO ) RETURN END IF * * Quick return if possible * IF( K.EQ.0 ) $ RETURN * * Modify values DLAMDA(i) to make sure all DLAMDA(i)-DLAMDA(j) can * be computed with high relative accuracy (barring over/underflow). * This is a problem on machines without a guard digit in * add/subtract (Cray XMP, Cray YMP, Cray C 90 and Cray 2). * The following code replaces DLAMDA(I) by 2*DLAMDA(I)-DLAMDA(I), * which on any of these machines zeros out the bottommost * bit of DLAMDA(I) if it is 1; this makes the subsequent * subtractions DLAMDA(I)-DLAMDA(J) unproblematic when cancellation * occurs. On binary machines with a guard digit (almost all * machines) it does not change DLAMDA(I) at all. On hexadecimal * and decimal machines with a guard digit, it slightly * changes the bottommost bits of DLAMDA(I). It does not account * for hexadecimal or decimal machines without guard digits * (we know of none). We use a subroutine call to compute * 2*DLAMBDA(I) to prevent optimizing compilers from eliminating * this code. * DO 10 I = 1, K DLAMDA( I ) = DLAMC3( DLAMDA( I ), DLAMDA( I ) ) - DLAMDA( I ) 10 CONTINUE * DO 20 J = 1, K CALL DLAED4( K, J, DLAMDA, W, Q( 1, J ), RHO, D( J ), INFO ) * * If the zero finder fails, the computation is terminated. * IF( INFO.NE.0 ) $ GO TO 120 20 CONTINUE * IF( K.EQ.1 ) $ GO TO 110 IF( K.EQ.2 ) THEN DO 30 J = 1, K W( 1 ) = Q( 1, J ) W( 2 ) = Q( 2, J ) II = INDX( 1 ) Q( 1, J ) = W( II ) II = INDX( 2 ) Q( 2, J ) = W( II ) 30 CONTINUE GO TO 110 END IF * * Compute updated W. * CALL DCOPY( K, W, 1, S, 1 ) * * Initialize W(I) = Q(I,I) * CALL DCOPY( K, Q, LDQ+1, W, 1 ) DO 60 J = 1, K DO 40 I = 1, J - 1 W( I ) = W( I )*( Q( I, J ) / ( DLAMDA( I )-DLAMDA( J ) ) ) 40 CONTINUE DO 50 I = J + 1, K W( I ) = W( I )*( Q( I, J ) / ( DLAMDA( I )-DLAMDA( J ) ) ) 50 CONTINUE 60 CONTINUE DO 70 I = 1, K W( I ) = SIGN( SQRT( -W( I ) ), S( I ) ) 70 CONTINUE * * Compute eigenvectors of the modified rank-1 modification. * DO 100 J = 1, K DO 80 I = 1, K S( I ) = W( I ) / Q( I, J ) 80 CONTINUE TEMP = DNRM2( K, S, 1 ) DO 90 I = 1, K II = INDX( I ) Q( I, J ) = S( II ) / TEMP 90 CONTINUE 100 CONTINUE * * Compute the updated eigenvectors. * 110 CONTINUE * N2 = N - N1 N12 = CTOT( 1 ) + CTOT( 2 ) N23 = CTOT( 2 ) + CTOT( 3 ) * CALL DLACPY( 'A', N23, K, Q( CTOT( 1 )+1, 1 ), LDQ, S, N23 ) IQ2 = N1*N12 + 1 IF( N23.NE.0 ) THEN CALL DGEMM( 'N', 'N', N2, K, N23, ONE, Q2( IQ2 ), N2, S, N23, $ ZERO, Q( N1+1, 1 ), LDQ ) ELSE CALL DLASET( 'A', N2, K, ZERO, ZERO, Q( N1+1, 1 ), LDQ ) END IF * CALL DLACPY( 'A', N12, K, Q, LDQ, S, N12 ) IF( N12.NE.0 ) THEN CALL DGEMM( 'N', 'N', N1, K, N12, ONE, Q2, N1, S, N12, ZERO, Q, $ LDQ ) ELSE CALL DLASET( 'A', N1, K, ZERO, ZERO, Q( 1, 1 ), LDQ ) END IF * * 120 CONTINUE RETURN * * End of DLAED3 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed8.f0000644000000000000000000000013213543334726015072 xustar0030 mtime=1569569238.945645575 30 atime=1569569238.943645576 30 ctime=1569569238.945645575 elk-6.3.2/src/LAPACK/dlaed8.f0000644002504400250440000003726213543334726017153 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED8 used by sstedc. Merges eigenvalues and deflates secular equation. Used when the original matrix is dense. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED8 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED8( ICOMPQ, K, N, QSIZ, D, Q, LDQ, INDXQ, RHO, * CUTPNT, Z, DLAMDA, Q2, LDQ2, W, PERM, GIVPTR, * GIVCOL, GIVNUM, INDXP, INDX, INFO ) * * .. Scalar Arguments .. * INTEGER CUTPNT, GIVPTR, ICOMPQ, INFO, K, LDQ, LDQ2, N, * $ QSIZ * DOUBLE PRECISION RHO * .. * .. Array Arguments .. * INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ), * $ INDXQ( * ), PERM( * ) * DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM( 2, * ), * $ Q( LDQ, * ), Q2( LDQ2, * ), W( * ), Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED8 merges the two sets of eigenvalues together into a single *> sorted set. Then it tries to deflate the size of the problem. *> There are two ways in which deflation can occur: when two or more *> eigenvalues are close together or if there is a tiny element in the *> Z vector. For each such occurrence the order of the related secular *> equation problem is reduced by one. *> \endverbatim * * Arguments: * ========== * *> \param[in] ICOMPQ *> \verbatim *> ICOMPQ is INTEGER *> = 0: Compute eigenvalues only. *> = 1: Compute eigenvectors of original dense symmetric matrix *> also. On entry, Q contains the orthogonal matrix used *> to reduce the original matrix to tridiagonal form. *> \endverbatim *> *> \param[out] K *> \verbatim *> K is INTEGER *> The number of non-deflated eigenvalues, and the order of the *> related secular equation. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The dimension of the symmetric tridiagonal matrix. N >= 0. *> \endverbatim *> *> \param[in] QSIZ *> \verbatim *> QSIZ is INTEGER *> The dimension of the orthogonal matrix used to reduce *> the full matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the eigenvalues of the two submatrices to be *> combined. On exit, the trailing (N-K) updated eigenvalues *> (those which were deflated) sorted into increasing order. *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ,N) *> If ICOMPQ = 0, Q is not referenced. Otherwise, *> on entry, Q contains the eigenvectors of the partially solved *> system which has been previously updated in matrix *> multiplies with other partially solved eigensystems. *> On exit, Q contains the trailing (N-K) updated eigenvectors *> (those which were deflated) in its last N-K columns. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[in] INDXQ *> \verbatim *> INDXQ is INTEGER array, dimension (N) *> The permutation which separately sorts the two sub-problems *> in D into ascending order. Note that elements in the second *> half of this permutation must first have CUTPNT added to *> their values in order to be accurate. *> \endverbatim *> *> \param[in,out] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> On entry, the off-diagonal element associated with the rank-1 *> cut which originally split the two submatrices which are now *> being recombined. *> On exit, RHO has been modified to the value required by *> DLAED3. *> \endverbatim *> *> \param[in] CUTPNT *> \verbatim *> CUTPNT is INTEGER *> The location of the last eigenvalue in the leading *> sub-matrix. min(1,N) <= CUTPNT <= N. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (N) *> On entry, Z contains the updating vector (the last row of *> the first sub-eigenvector matrix and the first row of the *> second sub-eigenvector matrix). *> On exit, the contents of Z are destroyed by the updating *> process. *> \endverbatim *> *> \param[out] DLAMDA *> \verbatim *> DLAMDA is DOUBLE PRECISION array, dimension (N) *> A copy of the first K eigenvalues which will be used by *> DLAED3 to form the secular equation. *> \endverbatim *> *> \param[out] Q2 *> \verbatim *> Q2 is DOUBLE PRECISION array, dimension (LDQ2,N) *> If ICOMPQ = 0, Q2 is not referenced. Otherwise, *> a copy of the first K eigenvectors which will be used by *> DLAED7 in a matrix multiply (DGEMM) to update the new *> eigenvectors. *> \endverbatim *> *> \param[in] LDQ2 *> \verbatim *> LDQ2 is INTEGER *> The leading dimension of the array Q2. LDQ2 >= max(1,N). *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> The first k values of the final deflation-altered z-vector and *> will be passed to DLAED3. *> \endverbatim *> *> \param[out] PERM *> \verbatim *> PERM is INTEGER array, dimension (N) *> The permutations (from deflation and sorting) to be applied *> to each eigenblock. *> \endverbatim *> *> \param[out] GIVPTR *> \verbatim *> GIVPTR is INTEGER *> The number of Givens rotations which took place in this *> subproblem. *> \endverbatim *> *> \param[out] GIVCOL *> \verbatim *> GIVCOL is INTEGER array, dimension (2, N) *> Each pair of numbers indicates a pair of columns to take place *> in a Givens rotation. *> \endverbatim *> *> \param[out] GIVNUM *> \verbatim *> GIVNUM is DOUBLE PRECISION array, dimension (2, N) *> Each number indicates the S value to be used in the *> corresponding Givens rotation. *> \endverbatim *> *> \param[out] INDXP *> \verbatim *> INDXP is INTEGER array, dimension (N) *> The permutation used to place deflated values of D at the end *> of the array. INDXP(1:K) points to the nondeflated D-values *> and INDXP(K+1:N) points to the deflated eigenvalues. *> \endverbatim *> *> \param[out] INDX *> \verbatim *> INDX is INTEGER array, dimension (N) *> The permutation used to sort the contents of D into ascending *> order. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Jeff Rutter, Computer Science Division, University of California *> at Berkeley, USA * * ===================================================================== SUBROUTINE DLAED8( ICOMPQ, K, N, QSIZ, D, Q, LDQ, INDXQ, RHO, $ CUTPNT, Z, DLAMDA, Q2, LDQ2, W, PERM, GIVPTR, $ GIVCOL, GIVNUM, INDXP, INDX, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER CUTPNT, GIVPTR, ICOMPQ, INFO, K, LDQ, LDQ2, N, $ QSIZ DOUBLE PRECISION RHO * .. * .. Array Arguments .. INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ), $ INDXQ( * ), PERM( * ) DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM( 2, * ), $ Q( LDQ, * ), Q2( LDQ2, * ), W( * ), Z( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION MONE, ZERO, ONE, TWO, EIGHT PARAMETER ( MONE = -1.0D0, ZERO = 0.0D0, ONE = 1.0D0, $ TWO = 2.0D0, EIGHT = 8.0D0 ) * .. * .. Local Scalars .. * INTEGER I, IMAX, J, JLAM, JMAX, JP, K2, N1, N1P1, N2 DOUBLE PRECISION C, EPS, S, T, TAU, TOL * .. * .. External Functions .. INTEGER IDAMAX DOUBLE PRECISION DLAMCH, DLAPY2 EXTERNAL IDAMAX, DLAMCH, DLAPY2 * .. * .. External Subroutines .. EXTERNAL DCOPY, DLACPY, DLAMRG, DROT, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 * IF( ICOMPQ.LT.0 .OR. ICOMPQ.GT.1 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( ICOMPQ.EQ.1 .AND. QSIZ.LT.N ) THEN INFO = -4 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -7 ELSE IF( CUTPNT.LT.MIN( 1, N ) .OR. CUTPNT.GT.N ) THEN INFO = -10 ELSE IF( LDQ2.LT.MAX( 1, N ) ) THEN INFO = -14 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DLAED8', -INFO ) RETURN END IF * * Need to initialize GIVPTR to O here in case of quick exit * to prevent an unspecified code behavior (usually sigfault) * when IWORK array on entry to *stedc is not zeroed * (or at least some IWORK entries which used in *laed7 for GIVPTR). * GIVPTR = 0 * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * N1 = CUTPNT N2 = N - N1 N1P1 = N1 + 1 * IF( RHO.LT.ZERO ) THEN CALL DSCAL( N2, MONE, Z( N1P1 ), 1 ) END IF * * Normalize z so that norm(z) = 1 * T = ONE / SQRT( TWO ) DO 10 J = 1, N INDX( J ) = J 10 CONTINUE CALL DSCAL( N, T, Z, 1 ) RHO = ABS( TWO*RHO ) * * Sort the eigenvalues into increasing order * DO 20 I = CUTPNT + 1, N INDXQ( I ) = INDXQ( I ) + CUTPNT 20 CONTINUE DO 30 I = 1, N DLAMDA( I ) = D( INDXQ( I ) ) W( I ) = Z( INDXQ( I ) ) 30 CONTINUE I = 1 J = CUTPNT + 1 CALL DLAMRG( N1, N2, DLAMDA, 1, 1, INDX ) DO 40 I = 1, N D( I ) = DLAMDA( INDX( I ) ) Z( I ) = W( INDX( I ) ) 40 CONTINUE * * Calculate the allowable deflation tolerence * IMAX = IDAMAX( N, Z, 1 ) JMAX = IDAMAX( N, D, 1 ) EPS = DLAMCH( 'Epsilon' ) TOL = EIGHT*EPS*ABS( D( JMAX ) ) * * If the rank-1 modifier is small enough, no more needs to be done * except to reorganize Q so that its columns correspond with the * elements in D. * IF( RHO*ABS( Z( IMAX ) ).LE.TOL ) THEN K = 0 IF( ICOMPQ.EQ.0 ) THEN DO 50 J = 1, N PERM( J ) = INDXQ( INDX( J ) ) 50 CONTINUE ELSE DO 60 J = 1, N PERM( J ) = INDXQ( INDX( J ) ) CALL DCOPY( QSIZ, Q( 1, PERM( J ) ), 1, Q2( 1, J ), 1 ) 60 CONTINUE CALL DLACPY( 'A', QSIZ, N, Q2( 1, 1 ), LDQ2, Q( 1, 1 ), $ LDQ ) END IF RETURN END IF * * If there are multiple eigenvalues then the problem deflates. Here * the number of equal eigenvalues are found. As each equal * eigenvalue is found, an elementary reflector is computed to rotate * the corresponding eigensubspace so that the corresponding * components of Z are zero in this new basis. * K = 0 K2 = N + 1 DO 70 J = 1, N IF( RHO*ABS( Z( J ) ).LE.TOL ) THEN * * Deflate due to small z component. * K2 = K2 - 1 INDXP( K2 ) = J IF( J.EQ.N ) $ GO TO 110 ELSE JLAM = J GO TO 80 END IF 70 CONTINUE 80 CONTINUE J = J + 1 IF( J.GT.N ) $ GO TO 100 IF( RHO*ABS( Z( J ) ).LE.TOL ) THEN * * Deflate due to small z component. * K2 = K2 - 1 INDXP( K2 ) = J ELSE * * Check if eigenvalues are close enough to allow deflation. * S = Z( JLAM ) C = Z( J ) * * Find sqrt(a**2+b**2) without overflow or * destructive underflow. * TAU = DLAPY2( C, S ) T = D( J ) - D( JLAM ) C = C / TAU S = -S / TAU IF( ABS( T*C*S ).LE.TOL ) THEN * * Deflation is possible. * Z( J ) = TAU Z( JLAM ) = ZERO * * Record the appropriate Givens rotation * GIVPTR = GIVPTR + 1 GIVCOL( 1, GIVPTR ) = INDXQ( INDX( JLAM ) ) GIVCOL( 2, GIVPTR ) = INDXQ( INDX( J ) ) GIVNUM( 1, GIVPTR ) = C GIVNUM( 2, GIVPTR ) = S IF( ICOMPQ.EQ.1 ) THEN CALL DROT( QSIZ, Q( 1, INDXQ( INDX( JLAM ) ) ), 1, $ Q( 1, INDXQ( INDX( J ) ) ), 1, C, S ) END IF T = D( JLAM )*C*C + D( J )*S*S D( J ) = D( JLAM )*S*S + D( J )*C*C D( JLAM ) = T K2 = K2 - 1 I = 1 90 CONTINUE IF( K2+I.LE.N ) THEN IF( D( JLAM ).LT.D( INDXP( K2+I ) ) ) THEN INDXP( K2+I-1 ) = INDXP( K2+I ) INDXP( K2+I ) = JLAM I = I + 1 GO TO 90 ELSE INDXP( K2+I-1 ) = JLAM END IF ELSE INDXP( K2+I-1 ) = JLAM END IF JLAM = J ELSE K = K + 1 W( K ) = Z( JLAM ) DLAMDA( K ) = D( JLAM ) INDXP( K ) = JLAM JLAM = J END IF END IF GO TO 80 100 CONTINUE * * Record the last eigenvalue. * K = K + 1 W( K ) = Z( JLAM ) DLAMDA( K ) = D( JLAM ) INDXP( K ) = JLAM * 110 CONTINUE * * Sort the eigenvalues and corresponding eigenvectors into DLAMDA * and Q2 respectively. The eigenvalues/vectors which were not * deflated go into the first K slots of DLAMDA and Q2 respectively, * while those which were deflated go into the last N - K slots. * IF( ICOMPQ.EQ.0 ) THEN DO 120 J = 1, N JP = INDXP( J ) DLAMDA( J ) = D( JP ) PERM( J ) = INDXQ( INDX( JP ) ) 120 CONTINUE ELSE DO 130 J = 1, N JP = INDXP( J ) DLAMDA( J ) = D( JP ) PERM( J ) = INDXQ( INDX( JP ) ) CALL DCOPY( QSIZ, Q( 1, PERM( J ) ), 1, Q2( 1, J ), 1 ) 130 CONTINUE END IF * * The deflated eigenvalues and their corresponding vectors go back * into the last N - K slots of D and Q respectively. * IF( K.LT.N ) THEN IF( ICOMPQ.EQ.0 ) THEN CALL DCOPY( N-K, DLAMDA( K+1 ), 1, D( K+1 ), 1 ) ELSE CALL DCOPY( N-K, DLAMDA( K+1 ), 1, D( K+1 ), 1 ) CALL DLACPY( 'A', QSIZ, N-K, Q2( 1, K+1 ), LDQ2, $ Q( 1, K+1 ), LDQ ) END IF END IF * RETURN * * End of DLAED8 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed4.f0000644000000000000000000000013213543334726015066 xustar0030 mtime=1569569238.951645571 30 atime=1569569238.948645573 30 ctime=1569569238.951645571 elk-6.3.2/src/LAPACK/dlaed4.f0000644002504400250440000006463413543334726017152 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED4 used by sstedc. Finds a single root of the secular equation. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED4 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) * * .. Scalar Arguments .. * INTEGER I, INFO, N * DOUBLE PRECISION DLAM, RHO * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), DELTA( * ), Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> This subroutine computes the I-th updated eigenvalue of a symmetric *> rank-one modification to a diagonal matrix whose elements are *> given in the array d, and that *> *> D(i) < D(j) for i < j *> *> and that RHO > 0. This is arranged by the calling routine, and is *> no loss in generality. The rank-one modified system is thus *> *> diag( D ) + RHO * Z * Z_transpose. *> *> where we assume the Euclidean norm of Z is 1. *> *> The method consists of approximating the rational functions in the *> secular equation by simpler interpolating rational functions. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The length of all arrays. *> \endverbatim *> *> \param[in] I *> \verbatim *> I is INTEGER *> The index of the eigenvalue to be computed. 1 <= I <= N. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The original eigenvalues. It is assumed that they are in *> order, D(I) < D(J) for I < J. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (N) *> The components of the updating vector. *> \endverbatim *> *> \param[out] DELTA *> \verbatim *> DELTA is DOUBLE PRECISION array, dimension (N) *> If N .GT. 2, DELTA contains (D(j) - lambda_I) in its j-th *> component. If N = 1, then DELTA(1) = 1. If N = 2, see DLAED5 *> for detail. The vector DELTA contains the information necessary *> to construct the eigenvectors by DLAED3 and DLAED9. *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> The scalar in the symmetric updating formula. *> \endverbatim *> *> \param[out] DLAM *> \verbatim *> DLAM is DOUBLE PRECISION *> The computed lambda_I, the I-th updated eigenvalue. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> > 0: if INFO = 1, the updating process failed. *> \endverbatim * *> \par Internal Parameters: * ========================= *> *> \verbatim *> Logical variable ORGATI (origin-at-i?) is used for distinguishing *> whether D(i) or D(i+1) is treated as the origin. *> *> ORGATI = .true. origin at i *> ORGATI = .false. origin at i+1 *> *> Logical variable SWTCH3 (switch-for-3-poles?) is for noting *> if we are working with THREE poles! *> *> MAXIT is the maximum number of iterations allowed for each *> eigenvalue. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Contributors: * ================== *> *> Ren-Cang Li, Computer Science Division, University of California *> at Berkeley, USA *> * ===================================================================== SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER I, INFO, N DOUBLE PRECISION DLAM, RHO * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), DELTA( * ), Z( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER MAXIT PARAMETER ( MAXIT = 30 ) DOUBLE PRECISION ZERO, ONE, TWO, THREE, FOUR, EIGHT, TEN PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ THREE = 3.0D0, FOUR = 4.0D0, EIGHT = 8.0D0, $ TEN = 10.0D0 ) * .. * .. Local Scalars .. LOGICAL ORGATI, SWTCH, SWTCH3 INTEGER II, IIM1, IIP1, IP1, ITER, J, NITER DOUBLE PRECISION A, B, C, DEL, DLTLB, DLTUB, DPHI, DPSI, DW, $ EPS, ERRETM, ETA, MIDPT, PHI, PREW, PSI, $ RHOINV, TAU, TEMP, TEMP1, W * .. * .. Local Arrays .. DOUBLE PRECISION ZZ( 3 ) * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. External Subroutines .. EXTERNAL DLAED5, DLAED6 * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Since this routine is called in an inner loop, we do no argument * checking. * * Quick return for N=1 and 2. * INFO = 0 IF( N.EQ.1 ) THEN * * Presumably, I=1 upon entry * DLAM = D( 1 ) + RHO*Z( 1 )*Z( 1 ) DELTA( 1 ) = ONE RETURN END IF IF( N.EQ.2 ) THEN CALL DLAED5( I, D, Z, DELTA, RHO, DLAM ) RETURN END IF * * Compute machine epsilon * EPS = DLAMCH( 'Epsilon' ) RHOINV = ONE / RHO * * The case I = N * IF( I.EQ.N ) THEN * * Initialize some basic variables * II = N - 1 NITER = 1 * * Calculate initial guess * MIDPT = RHO / TWO * * If ||Z||_2 is not one, then TEMP should be set to * RHO * ||Z||_2^2 / TWO * DO 10 J = 1, N DELTA( J ) = ( D( J )-D( I ) ) - MIDPT 10 CONTINUE * PSI = ZERO DO 20 J = 1, N - 2 PSI = PSI + Z( J )*Z( J ) / DELTA( J ) 20 CONTINUE * C = RHOINV + PSI W = C + Z( II )*Z( II ) / DELTA( II ) + $ Z( N )*Z( N ) / DELTA( N ) * IF( W.LE.ZERO ) THEN TEMP = Z( N-1 )*Z( N-1 ) / ( D( N )-D( N-1 )+RHO ) + $ Z( N )*Z( N ) / RHO IF( C.LE.TEMP ) THEN TAU = RHO ELSE DEL = D( N ) - D( N-1 ) A = -C*DEL + Z( N-1 )*Z( N-1 ) + Z( N )*Z( N ) B = Z( N )*Z( N )*DEL IF( A.LT.ZERO ) THEN TAU = TWO*B / ( SQRT( A*A+FOUR*B*C )-A ) ELSE TAU = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C ) END IF END IF * * It can be proved that * D(N)+RHO/2 <= LAMBDA(N) < D(N)+TAU <= D(N)+RHO * DLTLB = MIDPT DLTUB = RHO ELSE DEL = D( N ) - D( N-1 ) A = -C*DEL + Z( N-1 )*Z( N-1 ) + Z( N )*Z( N ) B = Z( N )*Z( N )*DEL IF( A.LT.ZERO ) THEN TAU = TWO*B / ( SQRT( A*A+FOUR*B*C )-A ) ELSE TAU = ( A+SQRT( A*A+FOUR*B*C ) ) / ( TWO*C ) END IF * * It can be proved that * D(N) < D(N)+TAU < LAMBDA(N) < D(N)+RHO/2 * DLTLB = ZERO DLTUB = MIDPT END IF * DO 30 J = 1, N DELTA( J ) = ( D( J )-D( I ) ) - TAU 30 CONTINUE * * Evaluate PSI and the derivative DPSI * DPSI = ZERO PSI = ZERO ERRETM = ZERO DO 40 J = 1, II TEMP = Z( J ) / DELTA( J ) PSI = PSI + Z( J )*TEMP DPSI = DPSI + TEMP*TEMP ERRETM = ERRETM + PSI 40 CONTINUE ERRETM = ABS( ERRETM ) * * Evaluate PHI and the derivative DPHI * TEMP = Z( N ) / DELTA( N ) PHI = Z( N )*TEMP DPHI = TEMP*TEMP ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV + $ ABS( TAU )*( DPSI+DPHI ) * W = RHOINV + PHI + PSI * * Test for convergence * IF( ABS( W ).LE.EPS*ERRETM ) THEN DLAM = D( I ) + TAU GO TO 250 END IF * IF( W.LE.ZERO ) THEN DLTLB = MAX( DLTLB, TAU ) ELSE DLTUB = MIN( DLTUB, TAU ) END IF * * Calculate the new step * NITER = NITER + 1 C = W - DELTA( N-1 )*DPSI - DELTA( N )*DPHI A = ( DELTA( N-1 )+DELTA( N ) )*W - $ DELTA( N-1 )*DELTA( N )*( DPSI+DPHI ) B = DELTA( N-1 )*DELTA( N )*W IF( C.LT.ZERO ) $ C = ABS( C ) IF( C.EQ.ZERO ) THEN * ETA = B/A * ETA = RHO - TAU ETA = DLTUB - TAU ELSE IF( A.GE.ZERO ) THEN ETA = ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE ETA = TWO*B / ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) END IF * * Note, eta should be positive if w is negative, and * eta should be negative otherwise. However, * if for some reason caused by roundoff, eta*w > 0, * we simply use one Newton step instead. This way * will guarantee eta*w < 0. * IF( W*ETA.GT.ZERO ) $ ETA = -W / ( DPSI+DPHI ) TEMP = TAU + ETA IF( TEMP.GT.DLTUB .OR. TEMP.LT.DLTLB ) THEN IF( W.LT.ZERO ) THEN ETA = ( DLTUB-TAU ) / TWO ELSE ETA = ( DLTLB-TAU ) / TWO END IF END IF DO 50 J = 1, N DELTA( J ) = DELTA( J ) - ETA 50 CONTINUE * TAU = TAU + ETA * * Evaluate PSI and the derivative DPSI * DPSI = ZERO PSI = ZERO ERRETM = ZERO DO 60 J = 1, II TEMP = Z( J ) / DELTA( J ) PSI = PSI + Z( J )*TEMP DPSI = DPSI + TEMP*TEMP ERRETM = ERRETM + PSI 60 CONTINUE ERRETM = ABS( ERRETM ) * * Evaluate PHI and the derivative DPHI * TEMP = Z( N ) / DELTA( N ) PHI = Z( N )*TEMP DPHI = TEMP*TEMP ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV + $ ABS( TAU )*( DPSI+DPHI ) * W = RHOINV + PHI + PSI * * Main loop to update the values of the array DELTA * ITER = NITER + 1 * DO 90 NITER = ITER, MAXIT * * Test for convergence * IF( ABS( W ).LE.EPS*ERRETM ) THEN DLAM = D( I ) + TAU GO TO 250 END IF * IF( W.LE.ZERO ) THEN DLTLB = MAX( DLTLB, TAU ) ELSE DLTUB = MIN( DLTUB, TAU ) END IF * * Calculate the new step * C = W - DELTA( N-1 )*DPSI - DELTA( N )*DPHI A = ( DELTA( N-1 )+DELTA( N ) )*W - $ DELTA( N-1 )*DELTA( N )*( DPSI+DPHI ) B = DELTA( N-1 )*DELTA( N )*W IF( A.GE.ZERO ) THEN ETA = ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE ETA = TWO*B / ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) END IF * * Note, eta should be positive if w is negative, and * eta should be negative otherwise. However, * if for some reason caused by roundoff, eta*w > 0, * we simply use one Newton step instead. This way * will guarantee eta*w < 0. * IF( W*ETA.GT.ZERO ) $ ETA = -W / ( DPSI+DPHI ) TEMP = TAU + ETA IF( TEMP.GT.DLTUB .OR. TEMP.LT.DLTLB ) THEN IF( W.LT.ZERO ) THEN ETA = ( DLTUB-TAU ) / TWO ELSE ETA = ( DLTLB-TAU ) / TWO END IF END IF DO 70 J = 1, N DELTA( J ) = DELTA( J ) - ETA 70 CONTINUE * TAU = TAU + ETA * * Evaluate PSI and the derivative DPSI * DPSI = ZERO PSI = ZERO ERRETM = ZERO DO 80 J = 1, II TEMP = Z( J ) / DELTA( J ) PSI = PSI + Z( J )*TEMP DPSI = DPSI + TEMP*TEMP ERRETM = ERRETM + PSI 80 CONTINUE ERRETM = ABS( ERRETM ) * * Evaluate PHI and the derivative DPHI * TEMP = Z( N ) / DELTA( N ) PHI = Z( N )*TEMP DPHI = TEMP*TEMP ERRETM = EIGHT*( -PHI-PSI ) + ERRETM - PHI + RHOINV + $ ABS( TAU )*( DPSI+DPHI ) * W = RHOINV + PHI + PSI 90 CONTINUE * * Return with INFO = 1, NITER = MAXIT and not converged * INFO = 1 DLAM = D( I ) + TAU GO TO 250 * * End for the case I = N * ELSE * * The case for I < N * NITER = 1 IP1 = I + 1 * * Calculate initial guess * DEL = D( IP1 ) - D( I ) MIDPT = DEL / TWO DO 100 J = 1, N DELTA( J ) = ( D( J )-D( I ) ) - MIDPT 100 CONTINUE * PSI = ZERO DO 110 J = 1, I - 1 PSI = PSI + Z( J )*Z( J ) / DELTA( J ) 110 CONTINUE * PHI = ZERO DO 120 J = N, I + 2, -1 PHI = PHI + Z( J )*Z( J ) / DELTA( J ) 120 CONTINUE C = RHOINV + PSI + PHI W = C + Z( I )*Z( I ) / DELTA( I ) + $ Z( IP1 )*Z( IP1 ) / DELTA( IP1 ) * IF( W.GT.ZERO ) THEN * * d(i)< the ith eigenvalue < (d(i)+d(i+1))/2 * * We choose d(i) as origin. * ORGATI = .TRUE. A = C*DEL + Z( I )*Z( I ) + Z( IP1 )*Z( IP1 ) B = Z( I )*Z( I )*DEL IF( A.GT.ZERO ) THEN TAU = TWO*B / ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) ELSE TAU = ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) END IF DLTLB = ZERO DLTUB = MIDPT ELSE * * (d(i)+d(i+1))/2 <= the ith eigenvalue < d(i+1) * * We choose d(i+1) as origin. * ORGATI = .FALSE. A = C*DEL - Z( I )*Z( I ) - Z( IP1 )*Z( IP1 ) B = Z( IP1 )*Z( IP1 )*DEL IF( A.LT.ZERO ) THEN TAU = TWO*B / ( A-SQRT( ABS( A*A+FOUR*B*C ) ) ) ELSE TAU = -( A+SQRT( ABS( A*A+FOUR*B*C ) ) ) / ( TWO*C ) END IF DLTLB = -MIDPT DLTUB = ZERO END IF * IF( ORGATI ) THEN DO 130 J = 1, N DELTA( J ) = ( D( J )-D( I ) ) - TAU 130 CONTINUE ELSE DO 140 J = 1, N DELTA( J ) = ( D( J )-D( IP1 ) ) - TAU 140 CONTINUE END IF IF( ORGATI ) THEN II = I ELSE II = I + 1 END IF IIM1 = II - 1 IIP1 = II + 1 * * Evaluate PSI and the derivative DPSI * DPSI = ZERO PSI = ZERO ERRETM = ZERO DO 150 J = 1, IIM1 TEMP = Z( J ) / DELTA( J ) PSI = PSI + Z( J )*TEMP DPSI = DPSI + TEMP*TEMP ERRETM = ERRETM + PSI 150 CONTINUE ERRETM = ABS( ERRETM ) * * Evaluate PHI and the derivative DPHI * DPHI = ZERO PHI = ZERO DO 160 J = N, IIP1, -1 TEMP = Z( J ) / DELTA( J ) PHI = PHI + Z( J )*TEMP DPHI = DPHI + TEMP*TEMP ERRETM = ERRETM + PHI 160 CONTINUE * W = RHOINV + PHI + PSI * * W is the value of the secular function with * its ii-th element removed. * SWTCH3 = .FALSE. IF( ORGATI ) THEN IF( W.LT.ZERO ) $ SWTCH3 = .TRUE. ELSE IF( W.GT.ZERO ) $ SWTCH3 = .TRUE. END IF IF( II.EQ.1 .OR. II.EQ.N ) $ SWTCH3 = .FALSE. * TEMP = Z( II ) / DELTA( II ) DW = DPSI + DPHI + TEMP*TEMP TEMP = Z( II )*TEMP W = W + TEMP ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV + $ THREE*ABS( TEMP ) + ABS( TAU )*DW * * Test for convergence * IF( ABS( W ).LE.EPS*ERRETM ) THEN IF( ORGATI ) THEN DLAM = D( I ) + TAU ELSE DLAM = D( IP1 ) + TAU END IF GO TO 250 END IF * IF( W.LE.ZERO ) THEN DLTLB = MAX( DLTLB, TAU ) ELSE DLTUB = MIN( DLTUB, TAU ) END IF * * Calculate the new step * NITER = NITER + 1 IF( .NOT.SWTCH3 ) THEN IF( ORGATI ) THEN C = W - DELTA( IP1 )*DW - ( D( I )-D( IP1 ) )* $ ( Z( I ) / DELTA( I ) )**2 ELSE C = W - DELTA( I )*DW - ( D( IP1 )-D( I ) )* $ ( Z( IP1 ) / DELTA( IP1 ) )**2 END IF A = ( DELTA( I )+DELTA( IP1 ) )*W - $ DELTA( I )*DELTA( IP1 )*DW B = DELTA( I )*DELTA( IP1 )*W IF( C.EQ.ZERO ) THEN IF( A.EQ.ZERO ) THEN IF( ORGATI ) THEN A = Z( I )*Z( I ) + DELTA( IP1 )*DELTA( IP1 )* $ ( DPSI+DPHI ) ELSE A = Z( IP1 )*Z( IP1 ) + DELTA( I )*DELTA( I )* $ ( DPSI+DPHI ) END IF END IF ETA = B / A ELSE IF( A.LE.ZERO ) THEN ETA = ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE ETA = TWO*B / ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) END IF ELSE * * Interpolation using THREE most relevant poles * TEMP = RHOINV + PSI + PHI IF( ORGATI ) THEN TEMP1 = Z( IIM1 ) / DELTA( IIM1 ) TEMP1 = TEMP1*TEMP1 C = TEMP - DELTA( IIP1 )*( DPSI+DPHI ) - $ ( D( IIM1 )-D( IIP1 ) )*TEMP1 ZZ( 1 ) = Z( IIM1 )*Z( IIM1 ) ZZ( 3 ) = DELTA( IIP1 )*DELTA( IIP1 )* $ ( ( DPSI-TEMP1 )+DPHI ) ELSE TEMP1 = Z( IIP1 ) / DELTA( IIP1 ) TEMP1 = TEMP1*TEMP1 C = TEMP - DELTA( IIM1 )*( DPSI+DPHI ) - $ ( D( IIP1 )-D( IIM1 ) )*TEMP1 ZZ( 1 ) = DELTA( IIM1 )*DELTA( IIM1 )* $ ( DPSI+( DPHI-TEMP1 ) ) ZZ( 3 ) = Z( IIP1 )*Z( IIP1 ) END IF ZZ( 2 ) = Z( II )*Z( II ) CALL DLAED6( NITER, ORGATI, C, DELTA( IIM1 ), ZZ, W, ETA, $ INFO ) IF( INFO.NE.0 ) $ GO TO 250 END IF * * Note, eta should be positive if w is negative, and * eta should be negative otherwise. However, * if for some reason caused by roundoff, eta*w > 0, * we simply use one Newton step instead. This way * will guarantee eta*w < 0. * IF( W*ETA.GE.ZERO ) $ ETA = -W / DW TEMP = TAU + ETA IF( TEMP.GT.DLTUB .OR. TEMP.LT.DLTLB ) THEN IF( W.LT.ZERO ) THEN ETA = ( DLTUB-TAU ) / TWO ELSE ETA = ( DLTLB-TAU ) / TWO END IF END IF * PREW = W * DO 180 J = 1, N DELTA( J ) = DELTA( J ) - ETA 180 CONTINUE * * Evaluate PSI and the derivative DPSI * DPSI = ZERO PSI = ZERO ERRETM = ZERO DO 190 J = 1, IIM1 TEMP = Z( J ) / DELTA( J ) PSI = PSI + Z( J )*TEMP DPSI = DPSI + TEMP*TEMP ERRETM = ERRETM + PSI 190 CONTINUE ERRETM = ABS( ERRETM ) * * Evaluate PHI and the derivative DPHI * DPHI = ZERO PHI = ZERO DO 200 J = N, IIP1, -1 TEMP = Z( J ) / DELTA( J ) PHI = PHI + Z( J )*TEMP DPHI = DPHI + TEMP*TEMP ERRETM = ERRETM + PHI 200 CONTINUE * TEMP = Z( II ) / DELTA( II ) DW = DPSI + DPHI + TEMP*TEMP TEMP = Z( II )*TEMP W = RHOINV + PHI + PSI + TEMP ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV + $ THREE*ABS( TEMP ) + ABS( TAU+ETA )*DW * SWTCH = .FALSE. IF( ORGATI ) THEN IF( -W.GT.ABS( PREW ) / TEN ) $ SWTCH = .TRUE. ELSE IF( W.GT.ABS( PREW ) / TEN ) $ SWTCH = .TRUE. END IF * TAU = TAU + ETA * * Main loop to update the values of the array DELTA * ITER = NITER + 1 * DO 240 NITER = ITER, MAXIT * * Test for convergence * IF( ABS( W ).LE.EPS*ERRETM ) THEN IF( ORGATI ) THEN DLAM = D( I ) + TAU ELSE DLAM = D( IP1 ) + TAU END IF GO TO 250 END IF * IF( W.LE.ZERO ) THEN DLTLB = MAX( DLTLB, TAU ) ELSE DLTUB = MIN( DLTUB, TAU ) END IF * * Calculate the new step * IF( .NOT.SWTCH3 ) THEN IF( .NOT.SWTCH ) THEN IF( ORGATI ) THEN C = W - DELTA( IP1 )*DW - $ ( D( I )-D( IP1 ) )*( Z( I ) / DELTA( I ) )**2 ELSE C = W - DELTA( I )*DW - ( D( IP1 )-D( I ) )* $ ( Z( IP1 ) / DELTA( IP1 ) )**2 END IF ELSE TEMP = Z( II ) / DELTA( II ) IF( ORGATI ) THEN DPSI = DPSI + TEMP*TEMP ELSE DPHI = DPHI + TEMP*TEMP END IF C = W - DELTA( I )*DPSI - DELTA( IP1 )*DPHI END IF A = ( DELTA( I )+DELTA( IP1 ) )*W - $ DELTA( I )*DELTA( IP1 )*DW B = DELTA( I )*DELTA( IP1 )*W IF( C.EQ.ZERO ) THEN IF( A.EQ.ZERO ) THEN IF( .NOT.SWTCH ) THEN IF( ORGATI ) THEN A = Z( I )*Z( I ) + DELTA( IP1 )* $ DELTA( IP1 )*( DPSI+DPHI ) ELSE A = Z( IP1 )*Z( IP1 ) + $ DELTA( I )*DELTA( I )*( DPSI+DPHI ) END IF ELSE A = DELTA( I )*DELTA( I )*DPSI + $ DELTA( IP1 )*DELTA( IP1 )*DPHI END IF END IF ETA = B / A ELSE IF( A.LE.ZERO ) THEN ETA = ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE ETA = TWO*B / ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) END IF ELSE * * Interpolation using THREE most relevant poles * TEMP = RHOINV + PSI + PHI IF( SWTCH ) THEN C = TEMP - DELTA( IIM1 )*DPSI - DELTA( IIP1 )*DPHI ZZ( 1 ) = DELTA( IIM1 )*DELTA( IIM1 )*DPSI ZZ( 3 ) = DELTA( IIP1 )*DELTA( IIP1 )*DPHI ELSE IF( ORGATI ) THEN TEMP1 = Z( IIM1 ) / DELTA( IIM1 ) TEMP1 = TEMP1*TEMP1 C = TEMP - DELTA( IIP1 )*( DPSI+DPHI ) - $ ( D( IIM1 )-D( IIP1 ) )*TEMP1 ZZ( 1 ) = Z( IIM1 )*Z( IIM1 ) ZZ( 3 ) = DELTA( IIP1 )*DELTA( IIP1 )* $ ( ( DPSI-TEMP1 )+DPHI ) ELSE TEMP1 = Z( IIP1 ) / DELTA( IIP1 ) TEMP1 = TEMP1*TEMP1 C = TEMP - DELTA( IIM1 )*( DPSI+DPHI ) - $ ( D( IIP1 )-D( IIM1 ) )*TEMP1 ZZ( 1 ) = DELTA( IIM1 )*DELTA( IIM1 )* $ ( DPSI+( DPHI-TEMP1 ) ) ZZ( 3 ) = Z( IIP1 )*Z( IIP1 ) END IF END IF CALL DLAED6( NITER, ORGATI, C, DELTA( IIM1 ), ZZ, W, ETA, $ INFO ) IF( INFO.NE.0 ) $ GO TO 250 END IF * * Note, eta should be positive if w is negative, and * eta should be negative otherwise. However, * if for some reason caused by roundoff, eta*w > 0, * we simply use one Newton step instead. This way * will guarantee eta*w < 0. * IF( W*ETA.GE.ZERO ) $ ETA = -W / DW TEMP = TAU + ETA IF( TEMP.GT.DLTUB .OR. TEMP.LT.DLTLB ) THEN IF( W.LT.ZERO ) THEN ETA = ( DLTUB-TAU ) / TWO ELSE ETA = ( DLTLB-TAU ) / TWO END IF END IF * DO 210 J = 1, N DELTA( J ) = DELTA( J ) - ETA 210 CONTINUE * TAU = TAU + ETA PREW = W * * Evaluate PSI and the derivative DPSI * DPSI = ZERO PSI = ZERO ERRETM = ZERO DO 220 J = 1, IIM1 TEMP = Z( J ) / DELTA( J ) PSI = PSI + Z( J )*TEMP DPSI = DPSI + TEMP*TEMP ERRETM = ERRETM + PSI 220 CONTINUE ERRETM = ABS( ERRETM ) * * Evaluate PHI and the derivative DPHI * DPHI = ZERO PHI = ZERO DO 230 J = N, IIP1, -1 TEMP = Z( J ) / DELTA( J ) PHI = PHI + Z( J )*TEMP DPHI = DPHI + TEMP*TEMP ERRETM = ERRETM + PHI 230 CONTINUE * TEMP = Z( II ) / DELTA( II ) DW = DPSI + DPHI + TEMP*TEMP TEMP = Z( II )*TEMP W = RHOINV + PHI + PSI + TEMP ERRETM = EIGHT*( PHI-PSI ) + ERRETM + TWO*RHOINV + $ THREE*ABS( TEMP ) + ABS( TAU )*DW IF( W*PREW.GT.ZERO .AND. ABS( W ).GT.ABS( PREW ) / TEN ) $ SWTCH = .NOT.SWTCH * 240 CONTINUE * * Return with INFO = 1, NITER = MAXIT and not converged * INFO = 1 IF( ORGATI ) THEN DLAM = D( I ) + TAU ELSE DLAM = D( IP1 ) + TAU END IF * END IF * 250 CONTINUE * RETURN * * End of DLAED4 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/iladlc.f0000644000000000000000000000013213543334726015161 xustar0030 mtime=1569569238.955645569 30 atime=1569569238.954645569 30 ctime=1569569238.955645569 elk-6.3.2/src/LAPACK/iladlc.f0000644002504400250440000000564213543334726017237 0ustar00dewhurstdewhurst00000000000000*> \brief \b ILADLC scans a matrix for its last non-zero column. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ILADLC + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION ILADLC( M, N, A, LDA ) * * .. Scalar Arguments .. * INTEGER M, N, LDA * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ILADLC scans A for its last non-zero column. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The m by n matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== INTEGER FUNCTION ILADLC( M, N, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER M, N, LDA * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I * .. * .. Executable Statements .. * * Quick test for the common case where one corner is non-zero. IF( N.EQ.0 ) THEN ILADLC = N ELSE IF( A(1, N).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN ILADLC = N ELSE * Now scan each column from the end, returning with the first non-zero. DO ILADLC = N, 1, -1 DO I = 1, M IF( A(I, ILADLC).NE.ZERO ) RETURN END DO END DO END IF RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/iladlr.f0000644000000000000000000000013213543334726015200 xustar0030 mtime=1569569238.959645566 30 atime=1569569238.958645567 30 ctime=1569569238.959645566 elk-6.3.2/src/LAPACK/iladlr.f0000644002504400250440000000572513543334726017260 0ustar00dewhurstdewhurst00000000000000*> \brief \b ILADLR scans a matrix for its last non-zero row. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ILADLR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION ILADLR( M, N, A, LDA ) * * .. Scalar Arguments .. * INTEGER M, N, LDA * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ILADLR scans A for its last non-zero row. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The m by n matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * * ===================================================================== INTEGER FUNCTION ILADLR( M, N, A, LDA ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER M, N, LDA * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J * .. * .. Executable Statements .. * * Quick test for the common case where one corner is non-zero. IF( M.EQ.0 ) THEN ILADLR = M ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN ILADLR = M ELSE * Scan up each column tracking the last zero row seen. ILADLR = 0 DO J = 1, N I=M DO WHILE((A(MAX(I,1),J).EQ.ZERO).AND.(I.GE.1)) I=I-1 ENDDO ILADLR = MAX( ILADLR, I ) END DO END IF RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlartg.f0000644000000000000000000000013213543334726015234 xustar0030 mtime=1569569238.964645563 30 atime=1569569238.962645564 30 ctime=1569569238.964645563 elk-6.3.2/src/LAPACK/zlartg.f0000644002504400250440000001632213543334726017307 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLARTG generates a plane rotation with real cosine and complex sine. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLARTG + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLARTG( F, G, CS, SN, R ) * * .. Scalar Arguments .. * DOUBLE PRECISION CS * COMPLEX*16 F, G, R, SN * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLARTG generates a plane rotation so that *> *> [ CS SN ] [ F ] [ R ] *> [ __ ] . [ ] = [ ] where CS**2 + |SN|**2 = 1. *> [ -SN CS ] [ G ] [ 0 ] *> *> This is a faster version of the BLAS1 routine ZROTG, except for *> the following differences: *> F and G are unchanged on return. *> If G=0, then CS=1 and SN=0. *> If F=0, then CS=0 and SN is chosen so that R is real. *> \endverbatim * * Arguments: * ========== * *> \param[in] F *> \verbatim *> F is COMPLEX*16 *> The first component of vector to be rotated. *> \endverbatim *> *> \param[in] G *> \verbatim *> G is COMPLEX*16 *> The second component of vector to be rotated. *> \endverbatim *> *> \param[out] CS *> \verbatim *> CS is DOUBLE PRECISION *> The cosine of the rotation. *> \endverbatim *> *> \param[out] SN *> \verbatim *> SN is COMPLEX*16 *> The sine of the rotation. *> \endverbatim *> *> \param[out] R *> \verbatim *> R is COMPLEX*16 *> The nonzero component of the rotated vector. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> 3-5-96 - Modified with a new algorithm by W. Kahan and J. Demmel *> *> This version has a few statements commented out for thread safety *> (machine parameters are computed on each entry). 10 feb 03, SJH. *> \endverbatim *> * ===================================================================== SUBROUTINE ZLARTG( F, G, CS, SN, R ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION CS COMPLEX*16 F, G, R, SN * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION TWO, ONE, ZERO PARAMETER ( TWO = 2.0D+0, ONE = 1.0D+0, ZERO = 0.0D+0 ) COMPLEX*16 CZERO PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. * LOGICAL FIRST INTEGER COUNT, I DOUBLE PRECISION D, DI, DR, EPS, F2, F2S, G2, G2S, SAFMIN, $ SAFMN2, SAFMX2, SCALE COMPLEX*16 FF, FS, GS * .. * .. External Functions .. DOUBLE PRECISION DLAMCH, DLAPY2 LOGICAL DISNAN EXTERNAL DLAMCH, DLAPY2, DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, INT, LOG, $ MAX, SQRT * .. * .. Statement Functions .. DOUBLE PRECISION ABS1, ABSSQ * .. * .. Statement Function definitions .. ABS1( FF ) = MAX( ABS( DBLE( FF ) ), ABS( DIMAG( FF ) ) ) ABSSQ( FF ) = DBLE( FF )**2 + DIMAG( FF )**2 * .. * .. Executable Statements .. * SAFMIN = DLAMCH( 'S' ) EPS = DLAMCH( 'E' ) SAFMN2 = DLAMCH( 'B' )**INT( LOG( SAFMIN / EPS ) / $ LOG( DLAMCH( 'B' ) ) / TWO ) SAFMX2 = ONE / SAFMN2 SCALE = MAX( ABS1( F ), ABS1( G ) ) FS = F GS = G COUNT = 0 IF( SCALE.GE.SAFMX2 ) THEN 10 CONTINUE COUNT = COUNT + 1 FS = FS*SAFMN2 GS = GS*SAFMN2 SCALE = SCALE*SAFMN2 IF( SCALE.GE.SAFMX2 ) $ GO TO 10 ELSE IF( SCALE.LE.SAFMN2 ) THEN IF( G.EQ.CZERO.OR.DISNAN( ABS( G ) ) ) THEN CS = ONE SN = CZERO R = F RETURN END IF 20 CONTINUE COUNT = COUNT - 1 FS = FS*SAFMX2 GS = GS*SAFMX2 SCALE = SCALE*SAFMX2 IF( SCALE.LE.SAFMN2 ) $ GO TO 20 END IF F2 = ABSSQ( FS ) G2 = ABSSQ( GS ) IF( F2.LE.MAX( G2, ONE )*SAFMIN ) THEN * * This is a rare case: F is very small. * IF( F.EQ.CZERO ) THEN CS = ZERO R = DLAPY2( DBLE( G ), DIMAG( G ) ) * Do complex/real division explicitly with two real divisions D = DLAPY2( DBLE( GS ), DIMAG( GS ) ) SN = DCMPLX( DBLE( GS ) / D, -DIMAG( GS ) / D ) RETURN END IF F2S = DLAPY2( DBLE( FS ), DIMAG( FS ) ) * G2 and G2S are accurate * G2 is at least SAFMIN, and G2S is at least SAFMN2 G2S = SQRT( G2 ) * Error in CS from underflow in F2S is at most * UNFL / SAFMN2 .lt. sqrt(UNFL*EPS) .lt. EPS * If MAX(G2,ONE)=G2, then F2 .lt. G2*SAFMIN, * and so CS .lt. sqrt(SAFMIN) * If MAX(G2,ONE)=ONE, then F2 .lt. SAFMIN * and so CS .lt. sqrt(SAFMIN)/SAFMN2 = sqrt(EPS) * Therefore, CS = F2S/G2S / sqrt( 1 + (F2S/G2S)**2 ) = F2S/G2S CS = F2S / G2S * Make sure abs(FF) = 1 * Do complex/real division explicitly with 2 real divisions IF( ABS1( F ).GT.ONE ) THEN D = DLAPY2( DBLE( F ), DIMAG( F ) ) FF = DCMPLX( DBLE( F ) / D, DIMAG( F ) / D ) ELSE DR = SAFMX2*DBLE( F ) DI = SAFMX2*DIMAG( F ) D = DLAPY2( DR, DI ) FF = DCMPLX( DR / D, DI / D ) END IF SN = FF*DCMPLX( DBLE( GS ) / G2S, -DIMAG( GS ) / G2S ) R = CS*F + SN*G ELSE * * This is the most common case. * Neither F2 nor F2/G2 are less than SAFMIN * F2S cannot overflow, and it is accurate * F2S = SQRT( ONE+G2 / F2 ) * Do the F2S(real)*FS(complex) multiply with two real multiplies R = DCMPLX( F2S*DBLE( FS ), F2S*DIMAG( FS ) ) CS = ONE / F2S D = F2 + G2 * Do complex/real division explicitly with two real divisions SN = DCMPLX( DBLE( R ) / D, DIMAG( R ) / D ) SN = SN*DCONJG( GS ) IF( COUNT.NE.0 ) THEN IF( COUNT.GT.0 ) THEN DO 30 I = 1, COUNT R = R*SAFMX2 30 CONTINUE ELSE DO 40 I = 1, -COUNT R = R*SAFMN2 40 CONTINUE END IF END IF END IF RETURN * * End of ZLARTG * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zrot.f0000644000000000000000000000013213543334726014727 xustar0030 mtime=1569569238.968645561 30 atime=1569569238.967645561 30 ctime=1569569238.968645561 elk-6.3.2/src/LAPACK/zrot.f0000644002504400250440000001013413543334726016775 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZROT applies a plane rotation with real cosine and complex sine to a pair of complex vectors. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZROT + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZROT( N, CX, INCX, CY, INCY, C, S ) * * .. Scalar Arguments .. * INTEGER INCX, INCY, N * DOUBLE PRECISION C * COMPLEX*16 S * .. * .. Array Arguments .. * COMPLEX*16 CX( * ), CY( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZROT applies a plane rotation, where the cos (C) is real and the *> sin (S) is complex, and the vectors CX and CY are complex. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of elements in the vectors CX and CY. *> \endverbatim *> *> \param[in,out] CX *> \verbatim *> CX is COMPLEX*16 array, dimension (N) *> On input, the vector X. *> On output, CX is overwritten with C*X + S*Y. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The increment between successive values of CY. INCX <> 0. *> \endverbatim *> *> \param[in,out] CY *> \verbatim *> CY is COMPLEX*16 array, dimension (N) *> On input, the vector Y. *> On output, CY is overwritten with -CONJG(S)*X + C*Y. *> \endverbatim *> *> \param[in] INCY *> \verbatim *> INCY is INTEGER *> The increment between successive values of CY. INCX <> 0. *> \endverbatim *> *> \param[in] C *> \verbatim *> C is DOUBLE PRECISION *> \endverbatim *> *> \param[in] S *> \verbatim *> S is COMPLEX*16 *> C and S define a rotation *> [ C S ] *> [ -conjg(S) C ] *> where C*C + S*CONJG(S) = 1.0. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * * ===================================================================== SUBROUTINE ZROT( N, CX, INCX, CY, INCY, C, S ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX, INCY, N DOUBLE PRECISION C COMPLEX*16 S * .. * .. Array Arguments .. COMPLEX*16 CX( * ), CY( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, IX, IY COMPLEX*16 STEMP * .. * .. Intrinsic Functions .. INTRINSIC DCONJG * .. * .. Executable Statements .. * IF( N.LE.0 ) $ RETURN IF( INCX.EQ.1 .AND. INCY.EQ.1 ) $ GO TO 20 * * Code for unequal increments or equal increments not equal to 1 * IX = 1 IY = 1 IF( INCX.LT.0 ) $ IX = ( -N+1 )*INCX + 1 IF( INCY.LT.0 ) $ IY = ( -N+1 )*INCY + 1 DO 10 I = 1, N STEMP = C*CX( IX ) + S*CY( IY ) CY( IY ) = C*CY( IY ) - DCONJG( S )*CX( IX ) CX( IX ) = STEMP IX = IX + INCX IY = IY + INCY 10 CONTINUE RETURN * * Code for both increments equal to 1 * 20 CONTINUE DO 30 I = 1, N STEMP = C*CX( I ) + S*CY( I ) CY( I ) = C*CY( I ) - DCONJG( S )*CX( I ) CX( I ) = STEMP 30 CONTINUE RETURN END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlaed6.f0000644000000000000000000000013213543334726015070 xustar0030 mtime=1569569238.972645558 30 atime=1569569238.971645559 30 ctime=1569569238.972645558 elk-6.3.2/src/LAPACK/dlaed6.f0000644002504400250440000002655313543334726017152 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAED6 used by sstedc. Computes one Newton step in solution of the secular equation. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAED6 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) * * .. Scalar Arguments .. * LOGICAL ORGATI * INTEGER INFO, KNITER * DOUBLE PRECISION FINIT, RHO, TAU * .. * .. Array Arguments .. * DOUBLE PRECISION D( 3 ), Z( 3 ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAED6 computes the positive or negative root (closest to the origin) *> of *> z(1) z(2) z(3) *> f(x) = rho + --------- + ---------- + --------- *> d(1)-x d(2)-x d(3)-x *> *> It is assumed that *> *> if ORGATI = .true. the root is between d(2) and d(3); *> otherwise it is between d(1) and d(2) *> *> This routine will be called by DLAED4 when necessary. In most cases, *> the root sought is the smallest in magnitude, though it might not be *> in some extremely rare situations. *> \endverbatim * * Arguments: * ========== * *> \param[in] KNITER *> \verbatim *> KNITER is INTEGER *> Refer to DLAED4 for its significance. *> \endverbatim *> *> \param[in] ORGATI *> \verbatim *> ORGATI is LOGICAL *> If ORGATI is true, the needed root is between d(2) and *> d(3); otherwise it is between d(1) and d(2). See *> DLAED4 for further details. *> \endverbatim *> *> \param[in] RHO *> \verbatim *> RHO is DOUBLE PRECISION *> Refer to the equation f(x) above. *> \endverbatim *> *> \param[in] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (3) *> D satisfies d(1) < d(2) < d(3). *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (3) *> Each of the elements in z must be positive. *> \endverbatim *> *> \param[in] FINIT *> \verbatim *> FINIT is DOUBLE PRECISION *> The value of f at 0. It is more accurate than the one *> evaluated inside this routine (if someone wants to do *> so). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION *> The root of the equation f(x). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> > 0: if INFO = 1, failure to converge *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> 10/02/03: This version has a few statements commented out for thread *> safety (machine parameters are computed on each entry). SJH. *> *> 05/10/06: Modified from a new version of Ren-Cang Li, use *> Gragg-Thornton-Warner cubic convergent scheme for better stability. *> \endverbatim * *> \par Contributors: * ================== *> *> Ren-Cang Li, Computer Science Division, University of California *> at Berkeley, USA *> * ===================================================================== SUBROUTINE DLAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. LOGICAL ORGATI INTEGER INFO, KNITER DOUBLE PRECISION FINIT, RHO, TAU * .. * .. Array Arguments .. DOUBLE PRECISION D( 3 ), Z( 3 ) * .. * * ===================================================================== * * .. Parameters .. INTEGER MAXIT PARAMETER ( MAXIT = 40 ) DOUBLE PRECISION ZERO, ONE, TWO, THREE, FOUR, EIGHT PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, TWO = 2.0D0, $ THREE = 3.0D0, FOUR = 4.0D0, EIGHT = 8.0D0 ) * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. Local Arrays .. DOUBLE PRECISION DSCALE( 3 ), ZSCALE( 3 ) * .. * .. Local Scalars .. LOGICAL SCALE INTEGER I, ITER, NITER DOUBLE PRECISION A, B, BASE, C, DDF, DF, EPS, ERRETM, ETA, F, $ FC, SCLFAC, SCLINV, SMALL1, SMALL2, SMINV1, $ SMINV2, TEMP, TEMP1, TEMP2, TEMP3, TEMP4, $ LBD, UBD * .. * .. Intrinsic Functions .. INTRINSIC ABS, INT, LOG, MAX, MIN, SQRT * .. * .. Executable Statements .. * INFO = 0 * IF( ORGATI ) THEN LBD = D(2) UBD = D(3) ELSE LBD = D(1) UBD = D(2) END IF IF( FINIT .LT. ZERO )THEN LBD = ZERO ELSE UBD = ZERO END IF * NITER = 1 TAU = ZERO IF( KNITER.EQ.2 ) THEN IF( ORGATI ) THEN TEMP = ( D( 3 )-D( 2 ) ) / TWO C = RHO + Z( 1 ) / ( ( D( 1 )-D( 2 ) )-TEMP ) A = C*( D( 2 )+D( 3 ) ) + Z( 2 ) + Z( 3 ) B = C*D( 2 )*D( 3 ) + Z( 2 )*D( 3 ) + Z( 3 )*D( 2 ) ELSE TEMP = ( D( 1 )-D( 2 ) ) / TWO C = RHO + Z( 3 ) / ( ( D( 3 )-D( 2 ) )-TEMP ) A = C*( D( 1 )+D( 2 ) ) + Z( 1 ) + Z( 2 ) B = C*D( 1 )*D( 2 ) + Z( 1 )*D( 2 ) + Z( 2 )*D( 1 ) END IF TEMP = MAX( ABS( A ), ABS( B ), ABS( C ) ) A = A / TEMP B = B / TEMP C = C / TEMP IF( C.EQ.ZERO ) THEN TAU = B / A ELSE IF( A.LE.ZERO ) THEN TAU = ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE TAU = TWO*B / ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) END IF IF( TAU .LT. LBD .OR. TAU .GT. UBD ) $ TAU = ( LBD+UBD )/TWO IF( D(1).EQ.TAU .OR. D(2).EQ.TAU .OR. D(3).EQ.TAU ) THEN TAU = ZERO ELSE TEMP = FINIT + TAU*Z(1)/( D(1)*( D( 1 )-TAU ) ) + $ TAU*Z(2)/( D(2)*( D( 2 )-TAU ) ) + $ TAU*Z(3)/( D(3)*( D( 3 )-TAU ) ) IF( TEMP .LE. ZERO )THEN LBD = TAU ELSE UBD = TAU END IF IF( ABS( FINIT ).LE.ABS( TEMP ) ) $ TAU = ZERO END IF END IF * * get machine parameters for possible scaling to avoid overflow * * modified by Sven: parameters SMALL1, SMINV1, SMALL2, * SMINV2, EPS are not SAVEd anymore between one call to the * others but recomputed at each call * EPS = DLAMCH( 'Epsilon' ) BASE = DLAMCH( 'Base' ) SMALL1 = BASE**( INT( LOG( DLAMCH( 'SafMin' ) ) / LOG( BASE ) / $ THREE ) ) SMINV1 = ONE / SMALL1 SMALL2 = SMALL1*SMALL1 SMINV2 = SMINV1*SMINV1 * * Determine if scaling of inputs necessary to avoid overflow * when computing 1/TEMP**3 * IF( ORGATI ) THEN TEMP = MIN( ABS( D( 2 )-TAU ), ABS( D( 3 )-TAU ) ) ELSE TEMP = MIN( ABS( D( 1 )-TAU ), ABS( D( 2 )-TAU ) ) END IF SCALE = .FALSE. IF( TEMP.LE.SMALL1 ) THEN SCALE = .TRUE. IF( TEMP.LE.SMALL2 ) THEN * * Scale up by power of radix nearest 1/SAFMIN**(2/3) * SCLFAC = SMINV2 SCLINV = SMALL2 ELSE * * Scale up by power of radix nearest 1/SAFMIN**(1/3) * SCLFAC = SMINV1 SCLINV = SMALL1 END IF * * Scaling up safe because D, Z, TAU scaled elsewhere to be O(1) * DO 10 I = 1, 3 DSCALE( I ) = D( I )*SCLFAC ZSCALE( I ) = Z( I )*SCLFAC 10 CONTINUE TAU = TAU*SCLFAC LBD = LBD*SCLFAC UBD = UBD*SCLFAC ELSE * * Copy D and Z to DSCALE and ZSCALE * DO 20 I = 1, 3 DSCALE( I ) = D( I ) ZSCALE( I ) = Z( I ) 20 CONTINUE END IF * FC = ZERO DF = ZERO DDF = ZERO DO 30 I = 1, 3 TEMP = ONE / ( DSCALE( I )-TAU ) TEMP1 = ZSCALE( I )*TEMP TEMP2 = TEMP1*TEMP TEMP3 = TEMP2*TEMP FC = FC + TEMP1 / DSCALE( I ) DF = DF + TEMP2 DDF = DDF + TEMP3 30 CONTINUE F = FINIT + TAU*FC * IF( ABS( F ).LE.ZERO ) $ GO TO 60 IF( F .LE. ZERO )THEN LBD = TAU ELSE UBD = TAU END IF * * Iteration begins -- Use Gragg-Thornton-Warner cubic convergent * scheme * * It is not hard to see that * * 1) Iterations will go up monotonically * if FINIT < 0; * * 2) Iterations will go down monotonically * if FINIT > 0. * ITER = NITER + 1 * DO 50 NITER = ITER, MAXIT * IF( ORGATI ) THEN TEMP1 = DSCALE( 2 ) - TAU TEMP2 = DSCALE( 3 ) - TAU ELSE TEMP1 = DSCALE( 1 ) - TAU TEMP2 = DSCALE( 2 ) - TAU END IF A = ( TEMP1+TEMP2 )*F - TEMP1*TEMP2*DF B = TEMP1*TEMP2*F C = F - ( TEMP1+TEMP2 )*DF + TEMP1*TEMP2*DDF TEMP = MAX( ABS( A ), ABS( B ), ABS( C ) ) A = A / TEMP B = B / TEMP C = C / TEMP IF( C.EQ.ZERO ) THEN ETA = B / A ELSE IF( A.LE.ZERO ) THEN ETA = ( A-SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE ETA = TWO*B / ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) END IF IF( F*ETA.GE.ZERO ) THEN ETA = -F / DF END IF * TAU = TAU + ETA IF( TAU .LT. LBD .OR. TAU .GT. UBD ) $ TAU = ( LBD + UBD )/TWO * FC = ZERO ERRETM = ZERO DF = ZERO DDF = ZERO DO 40 I = 1, 3 IF ( ( DSCALE( I )-TAU ).NE.ZERO ) THEN TEMP = ONE / ( DSCALE( I )-TAU ) TEMP1 = ZSCALE( I )*TEMP TEMP2 = TEMP1*TEMP TEMP3 = TEMP2*TEMP TEMP4 = TEMP1 / DSCALE( I ) FC = FC + TEMP4 ERRETM = ERRETM + ABS( TEMP4 ) DF = DF + TEMP2 DDF = DDF + TEMP3 ELSE GO TO 60 END IF 40 CONTINUE F = FINIT + TAU*FC ERRETM = EIGHT*( ABS( FINIT )+ABS( TAU )*ERRETM ) + $ ABS( TAU )*DF IF( ( ABS( F ).LE.FOUR*EPS*ERRETM ) .OR. $ ( (UBD-LBD).LE.FOUR*EPS*ABS(TAU) ) ) $ GO TO 60 IF( F .LE. ZERO )THEN LBD = TAU ELSE UBD = TAU END IF 50 CONTINUE INFO = 1 60 CONTINUE * * Undo scaling * IF( SCALE ) $ TAU = TAU*SCLINV RETURN * * End of DLAED6 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgeqrf.f0000644000000000000000000000013213543334726015201 xustar0030 mtime=1569569238.977645555 30 atime=1569569238.975645556 30 ctime=1569569238.977645555 elk-6.3.2/src/LAPACK/dgeqrf.f0000644002504400250440000001663413543334726017262 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGEQRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGEQRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGEQRF computes a QR factorization of a real M-by-N matrix A: *> A = Q * R. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the M-by-N matrix A. *> On exit, the elements on and above the diagonal of the array *> contain the min(M,N)-by-N upper trapezoidal matrix R (R is *> upper triangular if m >= n); the elements below the diagonal, *> with the array TAU, represent the orthogonal matrix Q as a *> product of min(m,n) elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimum performance LWORK >= N*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(1) H(2) . . . H(k), where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), *> and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, K, LDWORK, LWKOPT, NB, $ NBMIN, NX * .. * .. External Subroutines .. EXTERNAL DGEQR2, DLARFB, DLARFT, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'DGEQRF', ' ', M, N, -1, -1 ) LWKOPT = N*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGEQRF', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * K = MIN( M, N ) IF( K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = N IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'DGEQRF', ' ', M, N, -1, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DGEQRF', ' ', M, N, -1, $ -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code initially * DO 10 I = 1, K - NX, NB IB = MIN( K-I+1, NB ) * * Compute the QR factorization of the current block * A(i:m,i:i+ib-1) * CALL DGEQR2( M-I+1, IB, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) IF( I+IB.LE.N ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL DLARFT( 'Forward', 'Columnwise', M-I+1, IB, $ A( I, I ), LDA, TAU( I ), WORK, LDWORK ) * * Apply H**T to A(i:m,i+ib:n) from the left * CALL DLARFB( 'Left', 'Transpose', 'Forward', $ 'Columnwise', M-I+1, N-I-IB+1, IB, $ A( I, I ), LDA, WORK, LDWORK, A( I, I+IB ), $ LDA, WORK( IB+1 ), LDWORK ) END IF 10 CONTINUE ELSE I = 1 END IF * * Use unblocked code to factor the last or only block. * IF( I.LE.K ) $ CALL DGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * WORK( 1 ) = IWS RETURN * * End of DGEQRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/Makefile0000644000000000000000000000013213543334726015222 xustar0030 mtime=1569569238.981645552 30 atime=1569569238.980645553 30 ctime=1569569238.981645552 elk-6.3.2/src/LAPACK/Makefile0000644002504400250440000000541313543334726017274 0ustar00dewhurstdewhurst00000000000000 AR = ar include ../../make.inc #------------------------------------------------------------------------------- # Suffix Rules #------------------------------------------------------------------------------- .SUFFIXES: .o .f .f.o: $(F77) $(F77_OPTS) -c $< #------------------------------------------------------------------------------- # File dependencies #------------------------------------------------------------------------------- SRC = \ dbdsqr.f dgebd2.f dgebrd.f dgelq2.f dgelqf.f dgeqr2.f dgeqrf.f \ dgesvd.f dgesv.f dgetrf2.f dgetrf.f dgetri.f dgetrs.f disnan.f \ dlabad.f dlabrd.f dlacpy.f dladiv.f dlae2.f dlaebz.f dlaed0.f \ dlaed1.f dlaed2.f dlaed3.f dlaed4.f dlaed5.f dlaed6.f dlaed7.f \ dlaed8.f dlaed9.f dlaeda.f dlaev2.f dlagtf.f dlagts.f dlaisnan.f \ dlamch.f dlamrg.f dlange.f dlansp.f dlanst.f dlansy.f dlapy2.f \ dlapy3.f dlarfb.f dlarf.f dlarfg.f dlarft.f dlarnv.f dlartg.f \ dlaruv.f dlas2.f dlascl.f dlaset.f dlasq1.f dlasq2.f dlasq3.f \ dlasq4.f dlasq5.f dlasq6.f dlasr.f dlasrt.f dlassq.f dlasv2.f \ dlaswp.f dlatrd.f dopgtr.f dopmtr.f dorg2l.f dorg2r.f dorgbr.f \ dorgl2.f dorglq.f dorgql.f dorgqr.f dorgtr.f dorm2l.f dorm2r.f \ dormbr.f dorml2.f dormlq.f dormql.f dormqr.f dormtr.f dpotrf2.f \ dpotrf.f dspev.f dspevx.f dsptrd.f dstebz.f dstedc.f dstein.f \ dsteqr.f dsterf.f dsyev.f dsyevx.f dsygs2.f dsygst.f dsygvx.f \ dsytd2.f dsytrd.f dtrti2.f dtrtri.f dzsum1.f ieeeck.f iladlc.f \ iladlr.f ilaenv.f ilazlc.f ilazlr.f iparmq.f izmax1.f xerbla.f \ zbdsqr.f zgbsv.f zgbtf2.f zgbtrf.f zgbtrs.f zgebak.f zgebal.f \ zgebd2.f zgebrd.f zgees.f zgeev.f zgehd2.f zgehrd.f zgelq2.f \ zgelqf.f zgeqr2.f zgeqrf.f zgesvd.f zgesv.f zgetrf2.f zgetrf.f \ zgetri.f zgetrs.f zheevd.f zheev.f zheevx.f zhegs2.f zhegst.f \ zhegv.f zhegvx.f zhetd2.f zhetrd.f zhpevx.f zhpgst.f zhpgvx.f \ zhptrd.f zhseqr.f zlabrd.f zlacgv.f zlacn2.f zlacpy.f zlacrm.f \ zladiv.f zlaed0.f zlaed7.f zlaed8.f zlahqr.f zlahr2.f zlange.f \ zlanhe.f zlanhp.f zlaqr0.f zlaqr1.f zlaqr2.f zlaqr3.f zlaqr4.f \ zlaqr5.f zlarfb.f zlarf.f zlarfg.f zlarft.f zlartg.f zlascl.f \ zlaset.f zlasr.f zlassq.f zlaswp.f zlatrd.f zlatrs.f zpotrf2.f \ zpotrf.f zpptrf.f zrot.f zstedc.f zstein.f zsteqr.f ztrevc3.f \ ztrexc.f ztrsen.f ztrsyl.f ztrti2.f ztrtri.f zung2l.f zung2r.f \ zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungtr.f \ zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f zunmlq.f zunmql.f \ zunmqr.f zunmtr.f zupgtr.f zupmtr.f iparam2stage.f OBJ = $(SRC:.f=.o) lapack: $(OBJ) $(AR) -rc lapack.a $(OBJ) clean: rm -f *.o *.mod *~ *.a ifc* *.gcno gmon.out ls: ls -x --tabsize=0 --width=80 *.f elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasq4.f0000644000000000000000000000013113543334726015120 xustar0030 mtime=1569569238.986645549 29 atime=1569569238.98464555 30 ctime=1569569238.986645549 elk-6.3.2/src/LAPACK/dlasq4.f0000644002504400250440000002663413543334726017203 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASQ4 computes an approximation to the smallest eigenvalue using values of d from the previous transform. Used by sbdsqr. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASQ4 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN, * DN1, DN2, TAU, TTYPE, G ) * * .. Scalar Arguments .. * INTEGER I0, N0, N0IN, PP, TTYPE * DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, TAU * .. * .. Array Arguments .. * DOUBLE PRECISION Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASQ4 computes an approximation TAU to the smallest eigenvalue *> using values of d from the previous transform. *> \endverbatim * * Arguments: * ========== * *> \param[in] I0 *> \verbatim *> I0 is INTEGER *> First index. *> \endverbatim *> *> \param[in] N0 *> \verbatim *> N0 is INTEGER *> Last index. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension ( 4*N0 ) *> Z holds the qd array. *> \endverbatim *> *> \param[in] PP *> \verbatim *> PP is INTEGER *> PP=0 for ping, PP=1 for pong. *> \endverbatim *> *> \param[in] N0IN *> \verbatim *> N0IN is INTEGER *> The value of N0 at start of EIGTEST. *> \endverbatim *> *> \param[in] DMIN *> \verbatim *> DMIN is DOUBLE PRECISION *> Minimum value of d. *> \endverbatim *> *> \param[in] DMIN1 *> \verbatim *> DMIN1 is DOUBLE PRECISION *> Minimum value of d, excluding D( N0 ). *> \endverbatim *> *> \param[in] DMIN2 *> \verbatim *> DMIN2 is DOUBLE PRECISION *> Minimum value of d, excluding D( N0 ) and D( N0-1 ). *> \endverbatim *> *> \param[in] DN *> \verbatim *> DN is DOUBLE PRECISION *> d(N) *> \endverbatim *> *> \param[in] DN1 *> \verbatim *> DN1 is DOUBLE PRECISION *> d(N-1) *> \endverbatim *> *> \param[in] DN2 *> \verbatim *> DN2 is DOUBLE PRECISION *> d(N-2) *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION *> This is the shift. *> \endverbatim *> *> \param[out] TTYPE *> \verbatim *> TTYPE is INTEGER *> Shift type. *> \endverbatim *> *> \param[in,out] G *> \verbatim *> G is DOUBLE PRECISION *> G is passed as an argument in order to save its value between *> calls to DLASQ4. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> CNST1 = 9/16 *> \endverbatim *> * ===================================================================== SUBROUTINE DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN, $ DN1, DN2, TAU, TTYPE, G ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. INTEGER I0, N0, N0IN, PP, TTYPE DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, TAU * .. * .. Array Arguments .. DOUBLE PRECISION Z( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION CNST1, CNST2, CNST3 PARAMETER ( CNST1 = 0.5630D0, CNST2 = 1.010D0, $ CNST3 = 1.050D0 ) DOUBLE PRECISION QURTR, THIRD, HALF, ZERO, ONE, TWO, HUNDRD PARAMETER ( QURTR = 0.250D0, THIRD = 0.3330D0, $ HALF = 0.50D0, ZERO = 0.0D0, ONE = 1.0D0, $ TWO = 2.0D0, HUNDRD = 100.0D0 ) * .. * .. Local Scalars .. INTEGER I4, NN, NP DOUBLE PRECISION A2, B1, B2, GAM, GAP1, GAP2, S * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN, SQRT * .. * .. Executable Statements .. * * A negative DMIN forces the shift to take that absolute value * TTYPE records the type of shift. * IF( DMIN.LE.ZERO ) THEN TAU = -DMIN TTYPE = -1 RETURN END IF * NN = 4*N0 + PP IF( N0IN.EQ.N0 ) THEN * * No eigenvalues deflated. * IF( DMIN.EQ.DN .OR. DMIN.EQ.DN1 ) THEN * B1 = SQRT( Z( NN-3 ) )*SQRT( Z( NN-5 ) ) B2 = SQRT( Z( NN-7 ) )*SQRT( Z( NN-9 ) ) A2 = Z( NN-7 ) + Z( NN-5 ) * * Cases 2 and 3. * IF( DMIN.EQ.DN .AND. DMIN1.EQ.DN1 ) THEN GAP2 = DMIN2 - A2 - DMIN2*QURTR IF( GAP2.GT.ZERO .AND. GAP2.GT.B2 ) THEN GAP1 = A2 - DN - ( B2 / GAP2 )*B2 ELSE GAP1 = A2 - DN - ( B1+B2 ) END IF IF( GAP1.GT.ZERO .AND. GAP1.GT.B1 ) THEN S = MAX( DN-( B1 / GAP1 )*B1, HALF*DMIN ) TTYPE = -2 ELSE S = ZERO IF( DN.GT.B1 ) $ S = DN - B1 IF( A2.GT.( B1+B2 ) ) $ S = MIN( S, A2-( B1+B2 ) ) S = MAX( S, THIRD*DMIN ) TTYPE = -3 END IF ELSE * * Case 4. * TTYPE = -4 S = QURTR*DMIN IF( DMIN.EQ.DN ) THEN GAM = DN A2 = ZERO IF( Z( NN-5 ) .GT. Z( NN-7 ) ) $ RETURN B2 = Z( NN-5 ) / Z( NN-7 ) NP = NN - 9 ELSE NP = NN - 2*PP GAM = DN1 IF( Z( NP-4 ) .GT. Z( NP-2 ) ) $ RETURN A2 = Z( NP-4 ) / Z( NP-2 ) IF( Z( NN-9 ) .GT. Z( NN-11 ) ) $ RETURN B2 = Z( NN-9 ) / Z( NN-11 ) NP = NN - 13 END IF * * Approximate contribution to norm squared from I < NN-1. * A2 = A2 + B2 DO 10 I4 = NP, 4*I0 - 1 + PP, -4 IF( B2.EQ.ZERO ) $ GO TO 20 B1 = B2 IF( Z( I4 ) .GT. Z( I4-2 ) ) $ RETURN B2 = B2*( Z( I4 ) / Z( I4-2 ) ) A2 = A2 + B2 IF( HUNDRD*MAX( B2, B1 ).LT.A2 .OR. CNST1.LT.A2 ) $ GO TO 20 10 CONTINUE 20 CONTINUE A2 = CNST3*A2 * * Rayleigh quotient residual bound. * IF( A2.LT.CNST1 ) $ S = GAM*( ONE-SQRT( A2 ) ) / ( ONE+A2 ) END IF ELSE IF( DMIN.EQ.DN2 ) THEN * * Case 5. * TTYPE = -5 S = QURTR*DMIN * * Compute contribution to norm squared from I > NN-2. * NP = NN - 2*PP B1 = Z( NP-2 ) B2 = Z( NP-6 ) GAM = DN2 IF( Z( NP-8 ).GT.B2 .OR. Z( NP-4 ).GT.B1 ) $ RETURN A2 = ( Z( NP-8 ) / B2 )*( ONE+Z( NP-4 ) / B1 ) * * Approximate contribution to norm squared from I < NN-2. * IF( N0-I0.GT.2 ) THEN B2 = Z( NN-13 ) / Z( NN-15 ) A2 = A2 + B2 DO 30 I4 = NN - 17, 4*I0 - 1 + PP, -4 IF( B2.EQ.ZERO ) $ GO TO 40 B1 = B2 IF( Z( I4 ) .GT. Z( I4-2 ) ) $ RETURN B2 = B2*( Z( I4 ) / Z( I4-2 ) ) A2 = A2 + B2 IF( HUNDRD*MAX( B2, B1 ).LT.A2 .OR. CNST1.LT.A2 ) $ GO TO 40 30 CONTINUE 40 CONTINUE A2 = CNST3*A2 END IF * IF( A2.LT.CNST1 ) $ S = GAM*( ONE-SQRT( A2 ) ) / ( ONE+A2 ) ELSE * * Case 6, no information to guide us. * IF( TTYPE.EQ.-6 ) THEN G = G + THIRD*( ONE-G ) ELSE IF( TTYPE.EQ.-18 ) THEN G = QURTR*THIRD ELSE G = QURTR END IF S = G*DMIN TTYPE = -6 END IF * ELSE IF( N0IN.EQ.( N0+1 ) ) THEN * * One eigenvalue just deflated. Use DMIN1, DN1 for DMIN and DN. * IF( DMIN1.EQ.DN1 .AND. DMIN2.EQ.DN2 ) THEN * * Cases 7 and 8. * TTYPE = -7 S = THIRD*DMIN1 IF( Z( NN-5 ).GT.Z( NN-7 ) ) $ RETURN B1 = Z( NN-5 ) / Z( NN-7 ) B2 = B1 IF( B2.EQ.ZERO ) $ GO TO 60 DO 50 I4 = 4*N0 - 9 + PP, 4*I0 - 1 + PP, -4 A2 = B1 IF( Z( I4 ).GT.Z( I4-2 ) ) $ RETURN B1 = B1*( Z( I4 ) / Z( I4-2 ) ) B2 = B2 + B1 IF( HUNDRD*MAX( B1, A2 ).LT.B2 ) $ GO TO 60 50 CONTINUE 60 CONTINUE B2 = SQRT( CNST3*B2 ) A2 = DMIN1 / ( ONE+B2**2 ) GAP2 = HALF*DMIN2 - A2 IF( GAP2.GT.ZERO .AND. GAP2.GT.B2*A2 ) THEN S = MAX( S, A2*( ONE-CNST2*A2*( B2 / GAP2 )*B2 ) ) ELSE S = MAX( S, A2*( ONE-CNST2*B2 ) ) TTYPE = -8 END IF ELSE * * Case 9. * S = QURTR*DMIN1 IF( DMIN1.EQ.DN1 ) $ S = HALF*DMIN1 TTYPE = -9 END IF * ELSE IF( N0IN.EQ.( N0+2 ) ) THEN * * Two eigenvalues deflated. Use DMIN2, DN2 for DMIN and DN. * * Cases 10 and 11. * IF( DMIN2.EQ.DN2 .AND. TWO*Z( NN-5 ).LT.Z( NN-7 ) ) THEN TTYPE = -10 S = THIRD*DMIN2 IF( Z( NN-5 ).GT.Z( NN-7 ) ) $ RETURN B1 = Z( NN-5 ) / Z( NN-7 ) B2 = B1 IF( B2.EQ.ZERO ) $ GO TO 80 DO 70 I4 = 4*N0 - 9 + PP, 4*I0 - 1 + PP, -4 IF( Z( I4 ).GT.Z( I4-2 ) ) $ RETURN B1 = B1*( Z( I4 ) / Z( I4-2 ) ) B2 = B2 + B1 IF( HUNDRD*B1.LT.B2 ) $ GO TO 80 70 CONTINUE 80 CONTINUE B2 = SQRT( CNST3*B2 ) A2 = DMIN2 / ( ONE+B2**2 ) GAP2 = Z( NN-7 ) + Z( NN-9 ) - $ SQRT( Z( NN-11 ) )*SQRT( Z( NN-9 ) ) - A2 IF( GAP2.GT.ZERO .AND. GAP2.GT.B2*A2 ) THEN S = MAX( S, A2*( ONE-CNST2*A2*( B2 / GAP2 )*B2 ) ) ELSE S = MAX( S, A2*( ONE-CNST2*B2 ) ) END IF ELSE S = QURTR*DMIN2 TTYPE = -11 END IF ELSE IF( N0IN.GT.( N0+2 ) ) THEN * * Case 12, more than two eigenvalues deflated. No information. * S = ZERO TTYPE = -12 END IF * TAU = S RETURN * * End of DLASQ4 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgesvd.f0000644000000000000000000000013213543334727015206 xustar0030 mtime=1569569239.001645539 30 atime=1569569238.989645547 30 ctime=1569569239.001645539 elk-6.3.2/src/LAPACK/dgesvd.f0000644002504400250440000041231513543334727017263 0ustar00dewhurstdewhurst00000000000000*> \brief DGESVD computes the singular value decomposition (SVD) for GE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGESVD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBU, JOBVT * INTEGER INFO, LDA, LDU, LDVT, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), S( * ), U( LDU, * ), * $ VT( LDVT, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGESVD computes the singular value decomposition (SVD) of a real *> M-by-N matrix A, optionally computing the left and/or right singular *> vectors. The SVD is written *> *> A = U * SIGMA * transpose(V) *> *> where SIGMA is an M-by-N matrix which is zero except for its *> min(m,n) diagonal elements, U is an M-by-M orthogonal matrix, and *> V is an N-by-N orthogonal matrix. The diagonal elements of SIGMA *> are the singular values of A; they are real and non-negative, and *> are returned in descending order. The first min(m,n) columns of *> U and V are the left and right singular vectors of A. *> *> Note that the routine returns V**T, not V. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBU *> \verbatim *> JOBU is CHARACTER*1 *> Specifies options for computing all or part of the matrix U: *> = 'A': all M columns of U are returned in array U: *> = 'S': the first min(m,n) columns of U (the left singular *> vectors) are returned in the array U; *> = 'O': the first min(m,n) columns of U (the left singular *> vectors) are overwritten on the array A; *> = 'N': no columns of U (no left singular vectors) are *> computed. *> \endverbatim *> *> \param[in] JOBVT *> \verbatim *> JOBVT is CHARACTER*1 *> Specifies options for computing all or part of the matrix *> V**T: *> = 'A': all N rows of V**T are returned in the array VT; *> = 'S': the first min(m,n) rows of V**T (the right singular *> vectors) are returned in the array VT; *> = 'O': the first min(m,n) rows of V**T (the right singular *> vectors) are overwritten on the array A; *> = 'N': no rows of V**T (no right singular vectors) are *> computed. *> *> JOBVT and JOBU cannot both be 'O'. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the input matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the input matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the M-by-N matrix A. *> On exit, *> if JOBU = 'O', A is overwritten with the first min(m,n) *> columns of U (the left singular vectors, *> stored columnwise); *> if JOBVT = 'O', A is overwritten with the first min(m,n) *> rows of V**T (the right singular vectors, *> stored rowwise); *> if JOBU .ne. 'O' and JOBVT .ne. 'O', the contents of A *> are destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] S *> \verbatim *> S is DOUBLE PRECISION array, dimension (min(M,N)) *> The singular values of A, sorted so that S(i) >= S(i+1). *> \endverbatim *> *> \param[out] U *> \verbatim *> U is DOUBLE PRECISION array, dimension (LDU,UCOL) *> (LDU,M) if JOBU = 'A' or (LDU,min(M,N)) if JOBU = 'S'. *> If JOBU = 'A', U contains the M-by-M orthogonal matrix U; *> if JOBU = 'S', U contains the first min(m,n) columns of U *> (the left singular vectors, stored columnwise); *> if JOBU = 'N' or 'O', U is not referenced. *> \endverbatim *> *> \param[in] LDU *> \verbatim *> LDU is INTEGER *> The leading dimension of the array U. LDU >= 1; if *> JOBU = 'S' or 'A', LDU >= M. *> \endverbatim *> *> \param[out] VT *> \verbatim *> VT is DOUBLE PRECISION array, dimension (LDVT,N) *> If JOBVT = 'A', VT contains the N-by-N orthogonal matrix *> V**T; *> if JOBVT = 'S', VT contains the first min(m,n) rows of *> V**T (the right singular vectors, stored rowwise); *> if JOBVT = 'N' or 'O', VT is not referenced. *> \endverbatim *> *> \param[in] LDVT *> \verbatim *> LDVT is INTEGER *> The leading dimension of the array VT. LDVT >= 1; if *> JOBVT = 'A', LDVT >= N; if JOBVT = 'S', LDVT >= min(M,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK; *> if INFO > 0, WORK(2:MIN(M,N)) contains the unconverged *> superdiagonal elements of an upper bidiagonal matrix B *> whose diagonal is in S (not necessarily sorted). B *> satisfies A = U * B * VT, so it has the same singular values *> as A, and singular vectors related by U and VT. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> LWORK >= MAX(1,5*MIN(M,N)) for the paths (see comments inside code): *> - PATH 1 (M much larger than N, JOBU='N') *> - PATH 1t (N much larger than M, JOBVT='N') *> LWORK >= MAX(1,3*MIN(M,N) + MAX(M,N),5*MIN(M,N)) for the other paths *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if DBDSQR did not converge, INFO specifies how many *> superdiagonals of an intermediate bidiagonal form B *> did not converge to zero. See the description of WORK *> above for details. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date April 2012 * *> \ingroup doubleGEsing * * ===================================================================== SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, $ VT, LDVT, WORK, LWORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * April 2012 * * .. Scalar Arguments .. CHARACTER JOBU, JOBVT INTEGER INFO, LDA, LDU, LDVT, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), S( * ), U( LDU, * ), $ VT( LDVT, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, WNTUA, WNTUAS, WNTUN, WNTUO, WNTUS, $ WNTVA, WNTVAS, WNTVN, WNTVO, WNTVS INTEGER BDSPAC, BLK, CHUNK, I, IE, IERR, IR, ISCL, $ ITAU, ITAUP, ITAUQ, IU, IWORK, LDWRKR, LDWRKU, $ MAXWRK, MINMN, MINWRK, MNTHR, NCU, NCVT, NRU, $ NRVT, WRKBL INTEGER LWORK_DGEQRF, LWORK_DORGQR_N, LWORK_DORGQR_M, $ LWORK_DGEBRD, LWORK_DORGBR_P, LWORK_DORGBR_Q, $ LWORK_DGELQF, LWORK_DORGLQ_N, LWORK_DORGLQ_M DOUBLE PRECISION ANRM, BIGNUM, EPS, SMLNUM * .. * .. Local Arrays .. DOUBLE PRECISION DUM( 1 ) * .. * .. External Subroutines .. EXTERNAL DBDSQR, DGEBRD, DGELQF, DGEMM, DGEQRF, DLACPY, $ DLASCL, DLASET, DORGBR, DORGLQ, DORGQR, DORMBR, $ XERBLA * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, DLANGE EXTERNAL LSAME, ILAENV, DLAMCH, DLANGE * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 MINMN = MIN( M, N ) WNTUA = LSAME( JOBU, 'A' ) WNTUS = LSAME( JOBU, 'S' ) WNTUAS = WNTUA .OR. WNTUS WNTUO = LSAME( JOBU, 'O' ) WNTUN = LSAME( JOBU, 'N' ) WNTVA = LSAME( JOBVT, 'A' ) WNTVS = LSAME( JOBVT, 'S' ) WNTVAS = WNTVA .OR. WNTVS WNTVO = LSAME( JOBVT, 'O' ) WNTVN = LSAME( JOBVT, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * IF( .NOT.( WNTUA .OR. WNTUS .OR. WNTUO .OR. WNTUN ) ) THEN INFO = -1 ELSE IF( .NOT.( WNTVA .OR. WNTVS .OR. WNTVO .OR. WNTVN ) .OR. $ ( WNTVO .AND. WNTUO ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -6 ELSE IF( LDU.LT.1 .OR. ( WNTUAS .AND. LDU.LT.M ) ) THEN INFO = -9 ELSE IF( LDVT.LT.1 .OR. ( WNTVA .AND. LDVT.LT.N ) .OR. $ ( WNTVS .AND. LDVT.LT.MINMN ) ) THEN INFO = -11 END IF * * Compute workspace * (Note: Comments in the code beginning "Workspace:" describe the * minimal amount of workspace needed at that point in the code, * as well as the preferred amount for good performance. * NB refers to the optimal block size for the immediately * following subroutine, as returned by ILAENV.) * IF( INFO.EQ.0 ) THEN MINWRK = 1 MAXWRK = 1 IF( M.GE.N .AND. MINMN.GT.0 ) THEN * * Compute space needed for DBDSQR * MNTHR = ILAENV( 6, 'DGESVD', JOBU // JOBVT, M, N, 0, 0 ) BDSPAC = 5*N * Compute space needed for DGEQRF CALL DGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, IERR ) LWORK_DGEQRF = INT( DUM(1) ) * Compute space needed for DORGQR CALL DORGQR( M, N, N, A, LDA, DUM(1), DUM(1), -1, IERR ) LWORK_DORGQR_N = INT( DUM(1) ) CALL DORGQR( M, M, N, A, LDA, DUM(1), DUM(1), -1, IERR ) LWORK_DORGQR_M = INT( DUM(1) ) * Compute space needed for DGEBRD CALL DGEBRD( N, N, A, LDA, S, DUM(1), DUM(1), $ DUM(1), DUM(1), -1, IERR ) LWORK_DGEBRD = INT( DUM(1) ) * Compute space needed for DORGBR P CALL DORGBR( 'P', N, N, N, A, LDA, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_P = INT( DUM(1) ) * Compute space needed for DORGBR Q CALL DORGBR( 'Q', N, N, N, A, LDA, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_Q = INT( DUM(1) ) * IF( M.GE.MNTHR ) THEN IF( WNTUN ) THEN * * Path 1 (M much larger than N, JOBU='N') * MAXWRK = N + LWORK_DGEQRF MAXWRK = MAX( MAXWRK, 3*N + LWORK_DGEBRD ) IF( WNTVO .OR. WNTVAS ) $ MAXWRK = MAX( MAXWRK, 3*N + LWORK_DORGBR_P ) MAXWRK = MAX( MAXWRK, BDSPAC ) MINWRK = MAX( 4*N, BDSPAC ) ELSE IF( WNTUO .AND. WNTVN ) THEN * * Path 2 (M much larger than N, JOBU='O', JOBVT='N') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_N ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = MAX( N*N + WRKBL, N*N + M*N + N ) MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUO .AND. WNTVAS ) THEN * * Path 3 (M much larger than N, JOBU='O', JOBVT='S' or * 'A') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_N ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = MAX( N*N + WRKBL, N*N + M*N + N ) MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUS .AND. WNTVN ) THEN * * Path 4 (M much larger than N, JOBU='S', JOBVT='N') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_N ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = N*N + WRKBL MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUS .AND. WNTVO ) THEN * * Path 5 (M much larger than N, JOBU='S', JOBVT='O') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_N ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = 2*N*N + WRKBL MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUS .AND. WNTVAS ) THEN * * Path 6 (M much larger than N, JOBU='S', JOBVT='S' or * 'A') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_N ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = N*N + WRKBL MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUA .AND. WNTVN ) THEN * * Path 7 (M much larger than N, JOBU='A', JOBVT='N') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_M ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = N*N + WRKBL MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUA .AND. WNTVO ) THEN * * Path 8 (M much larger than N, JOBU='A', JOBVT='O') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_M ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = 2*N*N + WRKBL MINWRK = MAX( 3*N + M, BDSPAC ) ELSE IF( WNTUA .AND. WNTVAS ) THEN * * Path 9 (M much larger than N, JOBU='A', JOBVT='S' or * 'A') * WRKBL = N + LWORK_DGEQRF WRKBL = MAX( WRKBL, N + LWORK_DORGQR_M ) WRKBL = MAX( WRKBL, 3*N + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, 3*N + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = N*N + WRKBL MINWRK = MAX( 3*N + M, BDSPAC ) END IF ELSE * * Path 10 (M at least N, but not much larger) * CALL DGEBRD( M, N, A, LDA, S, DUM(1), DUM(1), $ DUM(1), DUM(1), -1, IERR ) LWORK_DGEBRD = INT( DUM(1) ) MAXWRK = 3*N + LWORK_DGEBRD IF( WNTUS .OR. WNTUO ) THEN CALL DORGBR( 'Q', M, N, N, A, LDA, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_Q = INT( DUM(1) ) MAXWRK = MAX( MAXWRK, 3*N + LWORK_DORGBR_Q ) END IF IF( WNTUA ) THEN CALL DORGBR( 'Q', M, M, N, A, LDA, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_Q = INT( DUM(1) ) MAXWRK = MAX( MAXWRK, 3*N + LWORK_DORGBR_Q ) END IF IF( .NOT.WNTVN ) THEN MAXWRK = MAX( MAXWRK, 3*N + LWORK_DORGBR_P ) END IF MAXWRK = MAX( MAXWRK, BDSPAC ) MINWRK = MAX( 3*N + M, BDSPAC ) END IF ELSE IF( MINMN.GT.0 ) THEN * * Compute space needed for DBDSQR * MNTHR = ILAENV( 6, 'DGESVD', JOBU // JOBVT, M, N, 0, 0 ) BDSPAC = 5*M * Compute space needed for DGELQF CALL DGELQF( M, N, A, LDA, DUM(1), DUM(1), -1, IERR ) LWORK_DGELQF = INT( DUM(1) ) * Compute space needed for DORGLQ CALL DORGLQ( N, N, M, DUM(1), N, DUM(1), DUM(1), -1, IERR ) LWORK_DORGLQ_N = INT( DUM(1) ) CALL DORGLQ( M, N, M, A, LDA, DUM(1), DUM(1), -1, IERR ) LWORK_DORGLQ_M = INT( DUM(1) ) * Compute space needed for DGEBRD CALL DGEBRD( M, M, A, LDA, S, DUM(1), DUM(1), $ DUM(1), DUM(1), -1, IERR ) LWORK_DGEBRD = INT( DUM(1) ) * Compute space needed for DORGBR P CALL DORGBR( 'P', M, M, M, A, N, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_P = INT( DUM(1) ) * Compute space needed for DORGBR Q CALL DORGBR( 'Q', M, M, M, A, N, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_Q = INT( DUM(1) ) IF( N.GE.MNTHR ) THEN IF( WNTVN ) THEN * * Path 1t(N much larger than M, JOBVT='N') * MAXWRK = M + LWORK_DGELQF MAXWRK = MAX( MAXWRK, 3*M + LWORK_DGEBRD ) IF( WNTUO .OR. WNTUAS ) $ MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORGBR_Q ) MAXWRK = MAX( MAXWRK, BDSPAC ) MINWRK = MAX( 4*M, BDSPAC ) ELSE IF( WNTVO .AND. WNTUN ) THEN * * Path 2t(N much larger than M, JOBU='N', JOBVT='O') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_M ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = MAX( M*M + WRKBL, M*M + M*N + M ) MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVO .AND. WNTUAS ) THEN * * Path 3t(N much larger than M, JOBU='S' or 'A', * JOBVT='O') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_M ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = MAX( M*M + WRKBL, M*M + M*N + M ) MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVS .AND. WNTUN ) THEN * * Path 4t(N much larger than M, JOBU='N', JOBVT='S') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_M ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = M*M + WRKBL MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVS .AND. WNTUO ) THEN * * Path 5t(N much larger than M, JOBU='O', JOBVT='S') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_M ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = 2*M*M + WRKBL MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVS .AND. WNTUAS ) THEN * * Path 6t(N much larger than M, JOBU='S' or 'A', * JOBVT='S') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_M ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = M*M + WRKBL MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVA .AND. WNTUN ) THEN * * Path 7t(N much larger than M, JOBU='N', JOBVT='A') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_N ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = M*M + WRKBL MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVA .AND. WNTUO ) THEN * * Path 8t(N much larger than M, JOBU='O', JOBVT='A') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_N ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = 2*M*M + WRKBL MINWRK = MAX( 3*M + N, BDSPAC ) ELSE IF( WNTVA .AND. WNTUAS ) THEN * * Path 9t(N much larger than M, JOBU='S' or 'A', * JOBVT='A') * WRKBL = M + LWORK_DGELQF WRKBL = MAX( WRKBL, M + LWORK_DORGLQ_N ) WRKBL = MAX( WRKBL, 3*M + LWORK_DGEBRD ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_P ) WRKBL = MAX( WRKBL, 3*M + LWORK_DORGBR_Q ) WRKBL = MAX( WRKBL, BDSPAC ) MAXWRK = M*M + WRKBL MINWRK = MAX( 3*M + N, BDSPAC ) END IF ELSE * * Path 10t(N greater than M, but not much larger) * CALL DGEBRD( M, N, A, LDA, S, DUM(1), DUM(1), $ DUM(1), DUM(1), -1, IERR ) LWORK_DGEBRD = INT( DUM(1) ) MAXWRK = 3*M + LWORK_DGEBRD IF( WNTVS .OR. WNTVO ) THEN * Compute space needed for DORGBR P CALL DORGBR( 'P', M, N, M, A, N, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_P = INT( DUM(1) ) MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORGBR_P ) END IF IF( WNTVA ) THEN CALL DORGBR( 'P', N, N, M, A, N, DUM(1), $ DUM(1), -1, IERR ) LWORK_DORGBR_P = INT( DUM(1) ) MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORGBR_P ) END IF IF( .NOT.WNTUN ) THEN MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORGBR_Q ) END IF MAXWRK = MAX( MAXWRK, BDSPAC ) MINWRK = MAX( 3*M + N, BDSPAC ) END IF END IF MAXWRK = MAX( MAXWRK, MINWRK ) WORK( 1 ) = MAXWRK * IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN INFO = -13 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGESVD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) THEN RETURN END IF * * Get machine constants * EPS = DLAMCH( 'P' ) SMLNUM = SQRT( DLAMCH( 'S' ) ) / EPS BIGNUM = ONE / SMLNUM * * Scale A if max element outside range [SMLNUM,BIGNUM] * ANRM = DLANGE( 'M', M, N, A, LDA, DUM ) ISCL = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN ISCL = 1 CALL DLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, IERR ) ELSE IF( ANRM.GT.BIGNUM ) THEN ISCL = 1 CALL DLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, IERR ) END IF * IF( M.GE.N ) THEN * * A has at least as many rows as columns. If A has sufficiently * more rows than columns, first reduce using the QR * decomposition (if sufficient workspace available) * IF( M.GE.MNTHR ) THEN * IF( WNTUN ) THEN * * Path 1 (M much larger than N, JOBU='N') * No left singular vectors to be computed * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Zero out below R * IF( N .GT. 1 ) THEN CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ), $ LDA ) END IF IE = 1 ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in A * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, A, LDA, S, WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) NCVT = 0 IF( WNTVO .OR. WNTVAS ) THEN * * If right singular vectors desired, generate P'. * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) NCVT = N END IF IWORK = IE + N * * Perform bidiagonal QR iteration, computing right * singular vectors of A in A if desired * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, NCVT, 0, 0, S, WORK( IE ), A, LDA, $ DUM, 1, DUM, 1, WORK( IWORK ), INFO ) * * If right singular vectors desired in VT, copy them there * IF( WNTVAS ) $ CALL DLACPY( 'F', N, N, A, LDA, VT, LDVT ) * ELSE IF( WNTUO .AND. WNTVN ) THEN * * Path 2 (M much larger than N, JOBU='O', JOBVT='N') * N left singular vectors to be overwritten on A and * no right singular vectors to be computed * IF( LWORK.GE.N*N+MAX( 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N + N ) + LDA*N ) THEN * * WORK(IU) is LDA by N, WORK(IR) is LDA by N * LDWRKU = LDA LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N + N ) + N*N ) THEN * * WORK(IU) is LDA by N, WORK(IR) is N by N * LDWRKU = LDA LDWRKR = N ELSE * * WORK(IU) is LDWRKU by N, WORK(IR) is N by N * LDWRKU = ( LWORK-N*N-N ) / N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IR) and zero out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IR ), LDWRKR ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, WORK( IR+1 ), $ LDWRKR ) * * Generate Q in A * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DORGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + 2*N*NB) * CALL DGEBRD( N, N, WORK( IR ), LDWRKR, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing R * (Workspace: need N*N + 4*N, prefer N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) * (Workspace: need N*N + BDSPAC) * CALL DBDSQR( 'U', N, 0, N, 0, S, WORK( IE ), DUM, 1, $ WORK( IR ), LDWRKR, DUM, 1, $ WORK( IWORK ), INFO ) IU = IE + N * * Multiply Q in A by left singular vectors of R in * WORK(IR), storing result in WORK(IU) and copying to A * (Workspace: need N*N + 2*N, prefer N*N + M*N + N) * DO 10 I = 1, M, LDWRKU CHUNK = MIN( M-I+1, LDWRKU ) CALL DGEMM( 'N', 'N', CHUNK, N, N, ONE, A( I, 1 ), $ LDA, WORK( IR ), LDWRKR, ZERO, $ WORK( IU ), LDWRKU ) CALL DLACPY( 'F', CHUNK, N, WORK( IU ), LDWRKU, $ A( I, 1 ), LDA ) 10 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * IE = 1 ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize A * (Workspace: need 3*N + M, prefer 3*N + (M + N)*NB) * CALL DGEBRD( M, N, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing A * (Workspace: need 4*N, prefer 3*N + N*NB) * CALL DORGBR( 'Q', M, N, N, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, 0, M, 0, S, WORK( IE ), DUM, 1, $ A, LDA, DUM, 1, WORK( IWORK ), INFO ) * END IF * ELSE IF( WNTUO .AND. WNTVAS ) THEN * * Path 3 (M much larger than N, JOBU='O', JOBVT='S' or 'A') * N left singular vectors to be overwritten on A and * N right singular vectors to be computed in VT * IF( LWORK.GE.N*N+MAX( 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N + N ) + LDA*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by N * LDWRKU = LDA LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N + N ) + N*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is N by N * LDWRKU = LDA LDWRKR = N ELSE * * WORK(IU) is LDWRKU by N and WORK(IR) is N by N * LDWRKU = ( LWORK-N*N-N ) / N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to VT, zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ VT( 2, 1 ), LDVT ) * * Generate Q in A * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DORGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT, copying result to WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + 2*N*NB) * CALL DGEBRD( N, N, VT, LDVT, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', N, N, VT, LDVT, WORK( IR ), LDWRKR ) * * Generate left vectors bidiagonalizing R in WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing R in VT * (Workspace: need N*N + 4*N-1, prefer N*N + 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) and computing right * singular vectors of R in VT * (Workspace: need N*N + BDSPAC) * CALL DBDSQR( 'U', N, N, N, 0, S, WORK( IE ), VT, LDVT, $ WORK( IR ), LDWRKR, DUM, 1, $ WORK( IWORK ), INFO ) IU = IE + N * * Multiply Q in A by left singular vectors of R in * WORK(IR), storing result in WORK(IU) and copying to A * (Workspace: need N*N + 2*N, prefer N*N + M*N + N) * DO 20 I = 1, M, LDWRKU CHUNK = MIN( M-I+1, LDWRKU ) CALL DGEMM( 'N', 'N', CHUNK, N, N, ONE, A( I, 1 ), $ LDA, WORK( IR ), LDWRKR, ZERO, $ WORK( IU ), LDWRKU ) CALL DLACPY( 'F', CHUNK, N, WORK( IU ), LDWRKU, $ A( I, 1 ), LDA ) 20 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to VT, zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ VT( 2, 1 ), LDVT ) * * Generate Q in A * (Workspace: need 2*N, prefer N + N*NB) * CALL DORGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, VT, LDVT, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in A by left vectors bidiagonalizing R * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, VT, LDVT, $ WORK( ITAUQ ), A, LDA, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing R in VT * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A and computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, N, M, 0, S, WORK( IE ), VT, LDVT, $ A, LDA, DUM, 1, WORK( IWORK ), INFO ) * END IF * ELSE IF( WNTUS ) THEN * IF( WNTVN ) THEN * * Path 4 (M much larger than N, JOBU='S', JOBVT='N') * N left singular vectors to be computed in U and * no right singular vectors to be computed * IF( LWORK.GE.N*N+MAX( 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IR) is LDA by N * LDWRKR = LDA ELSE * * WORK(IR) is N by N * LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IR), zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IR ), $ LDWRKR ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ WORK( IR+1 ), LDWRKR ) * * Generate Q in A * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DORGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + 2*N*NB) * CALL DGEBRD( N, N, WORK( IR ), LDWRKR, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing R in WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) * (Workspace: need N*N + BDSPAC) * CALL DBDSQR( 'U', N, 0, N, 0, S, WORK( IE ), DUM, $ 1, WORK( IR ), LDWRKR, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply Q in A by left singular vectors of R in * WORK(IR), storing result in U * (Workspace: need N*N) * CALL DGEMM( 'N', 'N', M, N, N, ONE, A, LDA, $ WORK( IR ), LDWRKR, ZERO, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need 2*N, prefer N + N*NB) * CALL DORGQR( M, N, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left vectors bidiagonalizing R * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, 0, M, 0, S, WORK( IE ), DUM, $ 1, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTVO ) THEN * * Path 5 (M much larger than N, JOBU='S', JOBVT='O') * N left singular vectors to be computed in U and * N right singular vectors to be overwritten on A * IF( LWORK.GE.2*N*N+MAX( 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA + N )*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is N by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = N ELSE * * WORK(IU) is N by N and WORK(IR) is N by N * LDWRKU = N IR = IU + LDWRKU*N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need 2*N*N + 2*N, prefer 2*N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ WORK( IU+1 ), LDWRKU ) * * Generate Q in A * (Workspace: need 2*N*N + 2*N, prefer 2*N*N + N + N*NB) * CALL DORGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to * WORK(IR) * (Workspace: need 2*N*N + 4*N, * prefer 2*N*N+3*N+2*N*NB) * CALL DGEBRD( N, N, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', N, N, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate left bidiagonalizing vectors in WORK(IU) * (Workspace: need 2*N*N + 4*N, prefer 2*N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in WORK(IR) * (Workspace: need 2*N*N + 4*N-1, * prefer 2*N*N+3*N+(N-1)*NB) * CALL DORGBR( 'P', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in WORK(IR) * (Workspace: need 2*N*N + BDSPAC) * CALL DBDSQR( 'U', N, N, N, 0, S, WORK( IE ), $ WORK( IR ), LDWRKR, WORK( IU ), $ LDWRKU, DUM, 1, WORK( IWORK ), INFO ) * * Multiply Q in A by left singular vectors of R in * WORK(IU), storing result in U * (Workspace: need N*N) * CALL DGEMM( 'N', 'N', M, N, N, ONE, A, LDA, $ WORK( IU ), LDWRKU, ZERO, U, LDU ) * * Copy right singular vectors of R to A * (Workspace: need N*N) * CALL DLACPY( 'F', N, N, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need 2*N, prefer N + N*NB) * CALL DORGQR( M, N, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left vectors bidiagonalizing R * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing R in A * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, N, M, 0, S, WORK( IE ), A, $ LDA, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTVAS ) THEN * * Path 6 (M much larger than N, JOBU='S', JOBVT='S' * or 'A') * N left singular vectors to be computed in U and * N right singular vectors to be computed in VT * IF( LWORK.GE.N*N+MAX( 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IU) is LDA by N * LDWRKU = LDA ELSE * * WORK(IU) is N by N * LDWRKU = N END IF ITAU = IU + LDWRKU*N IWORK = ITAU + N * * Compute A=Q*R * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ WORK( IU+1 ), LDWRKU ) * * Generate Q in A * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DORGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to VT * (Workspace: need N*N + 4*N, prefer N*N + 3*N + 2*N*NB) * CALL DGEBRD( N, N, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', N, N, WORK( IU ), LDWRKU, VT, $ LDVT ) * * Generate left bidiagonalizing vectors in WORK(IU) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (Workspace: need N*N + 4*N-1, * prefer N*N+3*N+(N-1)*NB) * CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in VT * (Workspace: need N*N + BDSPAC) * CALL DBDSQR( 'U', N, N, N, 0, S, WORK( IE ), VT, $ LDVT, WORK( IU ), LDWRKU, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply Q in A by left singular vectors of R in * WORK(IU), storing result in U * (Workspace: need N*N) * CALL DGEMM( 'N', 'N', M, N, N, ONE, A, LDA, $ WORK( IU ), LDWRKU, ZERO, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need 2*N, prefer N + N*NB) * CALL DORGQR( M, N, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to VT, zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ VT( 2, 1 ), LDVT ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, VT, LDVT, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in VT * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, VT, LDVT, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, N, M, 0, S, WORK( IE ), VT, $ LDVT, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * END IF * ELSE IF( WNTUA ) THEN * IF( WNTVN ) THEN * * Path 7 (M much larger than N, JOBU='A', JOBVT='N') * M left singular vectors to be computed in U and * no right singular vectors to be computed * IF( LWORK.GE.N*N+MAX( N+M, 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IR) is LDA by N * LDWRKR = LDA ELSE * * WORK(IR) is N by N * LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Copy R to WORK(IR), zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IR ), $ LDWRKR ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ WORK( IR+1 ), LDWRKR ) * * Generate Q in U * (Workspace: need N*N + N + M, prefer N*N + N + M*NB) * CALL DORGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + 2*N*NB) * CALL DGEBRD( N, N, WORK( IR ), LDWRKR, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in WORK(IR) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) * (Workspace: need N*N + BDSPAC) * CALL DBDSQR( 'U', N, 0, N, 0, S, WORK( IE ), DUM, $ 1, WORK( IR ), LDWRKR, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply Q in U by left singular vectors of R in * WORK(IR), storing result in A * (Workspace: need N*N) * CALL DGEMM( 'N', 'N', M, N, N, ONE, U, LDU, $ WORK( IR ), LDWRKR, ZERO, A, LDA ) * * Copy left singular vectors of A from A to U * CALL DLACPY( 'F', M, N, A, LDA, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need N + M, prefer N + M*NB) * CALL DORGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in A * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, 0, M, 0, S, WORK( IE ), DUM, $ 1, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTVO ) THEN * * Path 8 (M much larger than N, JOBU='A', JOBVT='O') * M left singular vectors to be computed in U and * N right singular vectors to be overwritten on A * IF( LWORK.GE.2*N*N+MAX( N+M, 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA + N )*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is N by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = N ELSE * * WORK(IU) is N by N and WORK(IR) is N by N * LDWRKU = N IR = IU + LDWRKU*N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N*N + 2*N, prefer 2*N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need 2*N*N + N + M, prefer 2*N*N + N + M*NB) * CALL DORGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ WORK( IU+1 ), LDWRKU ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to * WORK(IR) * (Workspace: need 2*N*N + 4*N, * prefer 2*N*N+3*N+2*N*NB) * CALL DGEBRD( N, N, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', N, N, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate left bidiagonalizing vectors in WORK(IU) * (Workspace: need 2*N*N + 4*N, prefer 2*N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in WORK(IR) * (Workspace: need 2*N*N + 4*N-1, * prefer 2*N*N+3*N+(N-1)*NB) * CALL DORGBR( 'P', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in WORK(IR) * (Workspace: need 2*N*N + BDSPAC) * CALL DBDSQR( 'U', N, N, N, 0, S, WORK( IE ), $ WORK( IR ), LDWRKR, WORK( IU ), $ LDWRKU, DUM, 1, WORK( IWORK ), INFO ) * * Multiply Q in U by left singular vectors of R in * WORK(IU), storing result in A * (Workspace: need N*N) * CALL DGEMM( 'N', 'N', M, N, N, ONE, U, LDU, $ WORK( IU ), LDWRKU, ZERO, A, LDA ) * * Copy left singular vectors of A from A to U * CALL DLACPY( 'F', M, N, A, LDA, U, LDU ) * * Copy right singular vectors of R from WORK(IR) to A * CALL DLACPY( 'F', N, N, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need N + M, prefer N + M*NB) * CALL DORGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in A * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in A * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, N, M, 0, S, WORK( IE ), A, $ LDA, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTVAS ) THEN * * Path 9 (M much larger than N, JOBU='A', JOBVT='S' * or 'A') * M left singular vectors to be computed in U and * N right singular vectors to be computed in VT * IF( LWORK.GE.N*N+MAX( N+M, 4*N, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IU) is LDA by N * LDWRKU = LDA ELSE * * WORK(IU) is N by N * LDWRKU = N END IF ITAU = IU + LDWRKU*N IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need N*N + 2*N, prefer N*N + N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need N*N + N + M, prefer N*N + N + M*NB) * CALL DORGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ WORK( IU+1 ), LDWRKU ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to VT * (Workspace: need N*N + 4*N, prefer N*N + 3*N + 2*N*NB) * CALL DGEBRD( N, N, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', N, N, WORK( IU ), LDWRKU, VT, $ LDVT ) * * Generate left bidiagonalizing vectors in WORK(IU) * (Workspace: need N*N + 4*N, prefer N*N + 3*N + N*NB) * CALL DORGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (Workspace: need N*N + 4*N-1, * prefer N*N+3*N+(N-1)*NB) * CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in VT * (Workspace: need N*N + BDSPAC) * CALL DBDSQR( 'U', N, N, N, 0, S, WORK( IE ), VT, $ LDVT, WORK( IU ), LDWRKU, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply Q in U by left singular vectors of R in * WORK(IU), storing result in A * (Workspace: need N*N) * CALL DGEMM( 'N', 'N', M, N, N, ONE, U, LDU, $ WORK( IU ), LDWRKU, ZERO, A, LDA ) * * Copy left singular vectors of A from A to U * CALL DLACPY( 'F', M, N, A, LDA, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (Workspace: need 2*N, prefer N + N*NB) * CALL DGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (Workspace: need N + M, prefer N + M*NB) * CALL DORGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R from A to VT, zeroing out below it * CALL DLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL DLASET( 'L', N-1, N-1, ZERO, ZERO, $ VT( 2, 1 ), LDVT ) IE = ITAU ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT * (Workspace: need 4*N, prefer 3*N + 2*N*NB) * CALL DGEBRD( N, N, VT, LDVT, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in VT * (Workspace: need 3*N + M, prefer 3*N + M*NB) * CALL DORMBR( 'Q', 'R', 'N', M, N, N, VT, LDVT, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, N, M, 0, S, WORK( IE ), VT, $ LDVT, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * END IF * END IF * ELSE * * M .LT. MNTHR * * Path 10 (M at least N, but not much larger) * Reduce to bidiagonal form without QR decomposition * IE = 1 ITAUQ = IE + N ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize A * (Workspace: need 3*N + M, prefer 3*N + (M + N)*NB) * CALL DGEBRD( M, N, A, LDA, S, WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) IF( WNTUAS ) THEN * * If left singular vectors desired in U, copy result to U * and generate left bidiagonalizing vectors in U * (Workspace: need 3*N + NCU, prefer 3*N + NCU*NB) * CALL DLACPY( 'L', M, N, A, LDA, U, LDU ) IF( WNTUS ) $ NCU = N IF( WNTUA ) $ NCU = M CALL DORGBR( 'Q', M, NCU, N, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVAS ) THEN * * If right singular vectors desired in VT, copy result to * VT and generate right bidiagonalizing vectors in VT * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DLACPY( 'U', N, N, A, LDA, VT, LDVT ) CALL DORGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTUO ) THEN * * If left singular vectors desired in A, generate left * bidiagonalizing vectors in A * (Workspace: need 4*N, prefer 3*N + N*NB) * CALL DORGBR( 'Q', M, N, N, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVO ) THEN * * If right singular vectors desired in A, generate right * bidiagonalizing vectors in A * (Workspace: need 4*N-1, prefer 3*N + (N-1)*NB) * CALL DORGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IWORK = IE + N IF( WNTUAS .OR. WNTUO ) $ NRU = M IF( WNTUN ) $ NRU = 0 IF( WNTVAS .OR. WNTVO ) $ NCVT = N IF( WNTVN ) $ NCVT = 0 IF( ( .NOT.WNTUO ) .AND. ( .NOT.WNTVO ) ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, NCVT, NRU, 0, S, WORK( IE ), VT, $ LDVT, U, LDU, DUM, 1, WORK( IWORK ), INFO ) ELSE IF( ( .NOT.WNTUO ) .AND. WNTVO ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, NCVT, NRU, 0, S, WORK( IE ), A, LDA, $ U, LDU, DUM, 1, WORK( IWORK ), INFO ) ELSE * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in A and computing right singular * vectors in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', N, NCVT, NRU, 0, S, WORK( IE ), VT, $ LDVT, A, LDA, DUM, 1, WORK( IWORK ), INFO ) END IF * END IF * ELSE * * A has more columns than rows. If A has sufficiently more * columns than rows, first reduce using the LQ decomposition (if * sufficient workspace available) * IF( N.GE.MNTHR ) THEN * IF( WNTVN ) THEN * * Path 1t(N much larger than M, JOBVT='N') * No right singular vectors to be computed * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Zero out above L * CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, A( 1, 2 ), LDA ) IE = 1 ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in A * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, A, LDA, S, WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) IF( WNTUO .OR. WNTUAS ) THEN * * If left singular vectors desired, generate Q * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IWORK = IE + M NRU = 0 IF( WNTUO .OR. WNTUAS ) $ NRU = M * * Perform bidiagonal QR iteration, computing left singular * vectors of A in A if desired * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, 0, NRU, 0, S, WORK( IE ), DUM, 1, A, $ LDA, DUM, 1, WORK( IWORK ), INFO ) * * If left singular vectors desired in U, copy them there * IF( WNTUAS ) $ CALL DLACPY( 'F', M, M, A, LDA, U, LDU ) * ELSE IF( WNTVO .AND. WNTUN ) THEN * * Path 2t(N much larger than M, JOBU='N', JOBVT='O') * M right singular vectors to be overwritten on A and * no left singular vectors to be computed * IF( LWORK.GE.M*M+MAX( 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N + M ) + LDA*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by M * LDWRKU = LDA CHUNK = N LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N + M ) + M*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is M by M * LDWRKU = LDA CHUNK = N LDWRKR = M ELSE * * WORK(IU) is M by CHUNK and WORK(IR) is M by M * LDWRKU = M CHUNK = ( LWORK-M*M-M ) / M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IR) and zero out above it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IR ), LDWRKR ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IR+LDWRKR ), LDWRKR ) * * Generate Q in A * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DORGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IR) * (Workspace: need M*M + 4*M, prefer M*M + 3*M + 2*M*NB) * CALL DGEBRD( M, M, WORK( IR ), LDWRKR, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing L * (Workspace: need M*M + 4*M-1, prefer M*M + 3*M + (M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of L in WORK(IR) * (Workspace: need M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, 0, 0, S, WORK( IE ), $ WORK( IR ), LDWRKR, DUM, 1, DUM, 1, $ WORK( IWORK ), INFO ) IU = IE + M * * Multiply right singular vectors of L in WORK(IR) by Q * in A, storing result in WORK(IU) and copying to A * (Workspace: need M*M + 2*M, prefer M*M + M*N + M) * DO 30 I = 1, N, CHUNK BLK = MIN( N-I+1, CHUNK ) CALL DGEMM( 'N', 'N', M, BLK, M, ONE, WORK( IR ), $ LDWRKR, A( 1, I ), LDA, ZERO, $ WORK( IU ), LDWRKU ) CALL DLACPY( 'F', M, BLK, WORK( IU ), LDWRKU, $ A( 1, I ), LDA ) 30 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * IE = 1 ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize A * (Workspace: need 3*M + N, prefer 3*M + (M + N)*NB) * CALL DGEBRD( M, N, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing A * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'P', M, N, M, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of A in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'L', M, N, 0, 0, S, WORK( IE ), A, LDA, $ DUM, 1, DUM, 1, WORK( IWORK ), INFO ) * END IF * ELSE IF( WNTVO .AND. WNTUAS ) THEN * * Path 3t(N much larger than M, JOBU='S' or 'A', JOBVT='O') * M right singular vectors to be overwritten on A and * M left singular vectors to be computed in U * IF( LWORK.GE.M*M+MAX( 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N + M ) + LDA*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by M * LDWRKU = LDA CHUNK = N LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N + M ) + M*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is M by M * LDWRKU = LDA CHUNK = N LDWRKR = M ELSE * * WORK(IU) is M by CHUNK and WORK(IR) is M by M * LDWRKU = M CHUNK = ( LWORK-M*M-M ) / M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing about above it * CALL DLACPY( 'L', M, M, A, LDA, U, LDU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, U( 1, 2 ), $ LDU ) * * Generate Q in A * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DORGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U, copying result to WORK(IR) * (Workspace: need M*M + 4*M, prefer M*M + 3*M + 2*M*NB) * CALL DGEBRD( M, M, U, LDU, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, M, U, LDU, WORK( IR ), LDWRKR ) * * Generate right vectors bidiagonalizing L in WORK(IR) * (Workspace: need M*M + 4*M-1, prefer M*M + 3*M + (M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing L in U * (Workspace: need M*M + 4*M, prefer M*M + 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in U, and computing right * singular vectors of L in WORK(IR) * (Workspace: need M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, M, 0, S, WORK( IE ), $ WORK( IR ), LDWRKR, U, LDU, DUM, 1, $ WORK( IWORK ), INFO ) IU = IE + M * * Multiply right singular vectors of L in WORK(IR) by Q * in A, storing result in WORK(IU) and copying to A * (Workspace: need M*M + 2*M, prefer M*M + M*N + M)) * DO 40 I = 1, N, CHUNK BLK = MIN( N-I+1, CHUNK ) CALL DGEMM( 'N', 'N', M, BLK, M, ONE, WORK( IR ), $ LDWRKR, A( 1, I ), LDA, ZERO, $ WORK( IU ), LDWRKU ) CALL DLACPY( 'F', M, BLK, WORK( IU ), LDWRKU, $ A( 1, I ), LDA ) 40 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, U, LDU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, U( 1, 2 ), $ LDU ) * * Generate Q in A * (Workspace: need 2*M, prefer M + M*NB) * CALL DORGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, U, LDU, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right vectors bidiagonalizing L by Q in A * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, U, LDU, $ WORK( ITAUP ), A, LDA, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing L in U * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, M, 0, S, WORK( IE ), A, LDA, $ U, LDU, DUM, 1, WORK( IWORK ), INFO ) * END IF * ELSE IF( WNTVS ) THEN * IF( WNTUN ) THEN * * Path 4t(N much larger than M, JOBU='N', JOBVT='S') * M right singular vectors to be computed in VT and * no left singular vectors to be computed * IF( LWORK.GE.M*M+MAX( 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IR) is LDA by M * LDWRKR = LDA ELSE * * WORK(IR) is M by M * LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IR), zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IR ), $ LDWRKR ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IR+LDWRKR ), LDWRKR ) * * Generate Q in A * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DORGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IR) * (Workspace: need M*M + 4*M, prefer M*M + 3*M + 2*M*NB) * CALL DGEBRD( M, M, WORK( IR ), LDWRKR, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing L in * WORK(IR) * (Workspace: need M*M + 4*M, prefer M*M + 3*M + (M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of L in WORK(IR) * (Workspace: need M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, 0, 0, S, WORK( IE ), $ WORK( IR ), LDWRKR, DUM, 1, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IR) by * Q in A, storing result in VT * (Workspace: need M*M) * CALL DGEMM( 'N', 'N', M, N, M, ONE, WORK( IR ), $ LDWRKR, A, LDA, ZERO, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy result to VT * CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DORGLQ( M, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, A( 1, 2 ), $ LDA ) * * Bidiagonalize L in A * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right vectors bidiagonalizing L by Q in VT * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, 0, 0, S, WORK( IE ), VT, $ LDVT, DUM, 1, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTUO ) THEN * * Path 5t(N much larger than M, JOBU='O', JOBVT='S') * M right singular vectors to be computed in VT and * M left singular vectors to be overwritten on A * IF( LWORK.GE.2*M*M+MAX( 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is LDA by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA + M )*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is M by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = M ELSE * * WORK(IU) is M by M and WORK(IR) is M by M * LDWRKU = M IR = IU + LDWRKU*M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need 2*M*M + 2*M, prefer 2*M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out below it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IU+LDWRKU ), LDWRKU ) * * Generate Q in A * (Workspace: need 2*M*M + 2*M, prefer 2*M*M + M + M*NB) * CALL DORGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to * WORK(IR) * (Workspace: need 2*M*M + 4*M, * prefer 2*M*M+3*M+2*M*NB) * CALL DGEBRD( M, M, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, M, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate right bidiagonalizing vectors in WORK(IU) * (Workspace: need 2*M*M + 4*M-1, * prefer 2*M*M+3*M+(M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in WORK(IR) * (Workspace: need 2*M*M + 4*M, prefer 2*M*M + 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in WORK(IR) and computing * right singular vectors of L in WORK(IU) * (Workspace: need 2*M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, M, 0, S, WORK( IE ), $ WORK( IU ), LDWRKU, WORK( IR ), $ LDWRKR, DUM, 1, WORK( IWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in A, storing result in VT * (Workspace: need M*M) * CALL DGEMM( 'N', 'N', M, N, M, ONE, WORK( IU ), $ LDWRKU, A, LDA, ZERO, VT, LDVT ) * * Copy left singular vectors of L to A * (Workspace: need M*M) * CALL DLACPY( 'F', M, M, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DORGLQ( M, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, A( 1, 2 ), $ LDA ) * * Bidiagonalize L in A * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right vectors bidiagonalizing L by Q in VT * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors of L in A * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, compute left * singular vectors of A in A and compute right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, M, 0, S, WORK( IE ), VT, $ LDVT, A, LDA, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTUAS ) THEN * * Path 6t(N much larger than M, JOBU='S' or 'A', * JOBVT='S') * M right singular vectors to be computed in VT and * M left singular vectors to be computed in U * IF( LWORK.GE.M*M+MAX( 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IU) is LDA by N * LDWRKU = LDA ELSE * * WORK(IU) is LDA by M * LDWRKU = M END IF ITAU = IU + LDWRKU*M IWORK = ITAU + M * * Compute A=L*Q * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IU+LDWRKU ), LDWRKU ) * * Generate Q in A * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DORGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to U * (Workspace: need M*M + 4*M, prefer M*M + 3*M + 2*M*NB) * CALL DGEBRD( M, M, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, M, WORK( IU ), LDWRKU, U, $ LDU ) * * Generate right bidiagonalizing vectors in WORK(IU) * (Workspace: need M*M + 4*M-1, * prefer M*M+3*M+(M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (Workspace: need M*M + 4*M, prefer M*M + 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in U and computing right * singular vectors of L in WORK(IU) * (Workspace: need M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, M, 0, S, WORK( IE ), $ WORK( IU ), LDWRKU, U, LDU, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in A, storing result in VT * (Workspace: need M*M) * CALL DGEMM( 'N', 'N', M, N, M, ONE, WORK( IU ), $ LDWRKU, A, LDA, ZERO, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DORGLQ( M, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, U, LDU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, U( 1, 2 ), $ LDU ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, U, LDU, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in U by Q * in VT * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, U, LDU, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, M, 0, S, WORK( IE ), VT, $ LDVT, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * END IF * ELSE IF( WNTVA ) THEN * IF( WNTUN ) THEN * * Path 7t(N much larger than M, JOBU='N', JOBVT='A') * N right singular vectors to be computed in VT and * no left singular vectors to be computed * IF( LWORK.GE.M*M+MAX( N + M, 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IR) is LDA by M * LDWRKR = LDA ELSE * * WORK(IR) is M by M * LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Copy L to WORK(IR), zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IR ), $ LDWRKR ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IR+LDWRKR ), LDWRKR ) * * Generate Q in VT * (Workspace: need M*M + M + N, prefer M*M + M + N*NB) * CALL DORGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IR) * (Workspace: need M*M + 4*M, prefer M*M + 3*M + 2*M*NB) * CALL DGEBRD( M, M, WORK( IR ), LDWRKR, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in WORK(IR) * (Workspace: need M*M + 4*M-1, * prefer M*M+3*M+(M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of L in WORK(IR) * (Workspace: need M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, 0, 0, S, WORK( IE ), $ WORK( IR ), LDWRKR, DUM, 1, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IR) by * Q in VT, storing result in A * (Workspace: need M*M) * CALL DGEMM( 'N', 'N', M, N, M, ONE, WORK( IR ), $ LDWRKR, VT, LDVT, ZERO, A, LDA ) * * Copy right singular vectors of A from A to VT * CALL DLACPY( 'F', M, N, A, LDA, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need M + N, prefer M + N*NB) * CALL DORGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, A( 1, 2 ), $ LDA ) * * Bidiagonalize L in A * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in A by Q * in VT * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, 0, 0, S, WORK( IE ), VT, $ LDVT, DUM, 1, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTUO ) THEN * * Path 8t(N much larger than M, JOBU='O', JOBVT='A') * N right singular vectors to be computed in VT and * M left singular vectors to be overwritten on A * IF( LWORK.GE.2*M*M+MAX( N + M, 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is LDA by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA + M )*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is M by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = M ELSE * * WORK(IU) is M by M and WORK(IR) is M by M * LDWRKU = M IR = IU + LDWRKU*M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need 2*M*M + 2*M, prefer 2*M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need 2*M*M + M + N, prefer 2*M*M + M + N*NB) * CALL DORGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IU+LDWRKU ), LDWRKU ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to * WORK(IR) * (Workspace: need 2*M*M + 4*M, * prefer 2*M*M+3*M+2*M*NB) * CALL DGEBRD( M, M, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, M, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate right bidiagonalizing vectors in WORK(IU) * (Workspace: need 2*M*M + 4*M-1, * prefer 2*M*M+3*M+(M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in WORK(IR) * (Workspace: need 2*M*M + 4*M, prefer 2*M*M + 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in WORK(IR) and computing * right singular vectors of L in WORK(IU) * (Workspace: need 2*M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, M, 0, S, WORK( IE ), $ WORK( IU ), LDWRKU, WORK( IR ), $ LDWRKR, DUM, 1, WORK( IWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in VT, storing result in A * (Workspace: need M*M) * CALL DGEMM( 'N', 'N', M, N, M, ONE, WORK( IU ), $ LDWRKU, VT, LDVT, ZERO, A, LDA ) * * Copy right singular vectors of A from A to VT * CALL DLACPY( 'F', M, N, A, LDA, VT, LDVT ) * * Copy left singular vectors of A from WORK(IR) to A * CALL DLACPY( 'F', M, M, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need M + N, prefer M + N*NB) * CALL DORGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, A( 1, 2 ), $ LDA ) * * Bidiagonalize L in A * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, A, LDA, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in A by Q * in VT * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in A * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A and computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, M, 0, S, WORK( IE ), VT, $ LDVT, A, LDA, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * ELSE IF( WNTUAS ) THEN * * Path 9t(N much larger than M, JOBU='S' or 'A', * JOBVT='A') * N right singular vectors to be computed in VT and * M left singular vectors to be computed in U * IF( LWORK.GE.M*M+MAX( N + M, 4*M, BDSPAC ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IU) is LDA by M * LDWRKU = LDA ELSE * * WORK(IU) is M by M * LDWRKU = M END IF ITAU = IU + LDWRKU*M IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need M*M + 2*M, prefer M*M + M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need M*M + M + N, prefer M*M + M + N*NB) * CALL DORGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, $ WORK( IU+LDWRKU ), LDWRKU ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to U * (Workspace: need M*M + 4*M, prefer M*M + 3*M + 2*M*NB) * CALL DGEBRD( M, M, WORK( IU ), LDWRKU, S, $ WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL DLACPY( 'L', M, M, WORK( IU ), LDWRKU, U, $ LDU ) * * Generate right bidiagonalizing vectors in WORK(IU) * (Workspace: need M*M + 4*M, prefer M*M + 3*M + (M-1)*NB) * CALL DORGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (Workspace: need M*M + 4*M, prefer M*M + 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in U and computing right * singular vectors of L in WORK(IU) * (Workspace: need M*M + BDSPAC) * CALL DBDSQR( 'U', M, M, M, 0, S, WORK( IE ), $ WORK( IU ), LDWRKU, U, LDU, DUM, 1, $ WORK( IWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in VT, storing result in A * (Workspace: need M*M) * CALL DGEMM( 'N', 'N', M, N, M, ONE, WORK( IU ), $ LDWRKU, VT, LDVT, ZERO, A, LDA ) * * Copy right singular vectors of A from A to VT * CALL DLACPY( 'F', M, N, A, LDA, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (Workspace: need 2*M, prefer M + M*NB) * CALL DGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (Workspace: need M + N, prefer M + N*NB) * CALL DORGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing out above it * CALL DLACPY( 'L', M, M, A, LDA, U, LDU ) CALL DLASET( 'U', M-1, M-1, ZERO, ZERO, U( 1, 2 ), $ LDU ) IE = ITAU ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U * (Workspace: need 4*M, prefer 3*M + 2*M*NB) * CALL DGEBRD( M, M, U, LDU, S, WORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in U by Q * in VT * (Workspace: need 3*M + N, prefer 3*M + N*NB) * CALL DORMBR( 'P', 'L', 'T', M, N, M, U, LDU, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'U', M, N, M, 0, S, WORK( IE ), VT, $ LDVT, U, LDU, DUM, 1, WORK( IWORK ), $ INFO ) * END IF * END IF * END IF * ELSE * * N .LT. MNTHR * * Path 10t(N greater than M, but not much larger) * Reduce to bidiagonal form without LQ decomposition * IE = 1 ITAUQ = IE + M ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize A * (Workspace: need 3*M + N, prefer 3*M + (M + N)*NB) * CALL DGEBRD( M, N, A, LDA, S, WORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) IF( WNTUAS ) THEN * * If left singular vectors desired in U, copy result to U * and generate left bidiagonalizing vectors in U * (Workspace: need 4*M-1, prefer 3*M + (M-1)*NB) * CALL DLACPY( 'L', M, M, A, LDA, U, LDU ) CALL DORGBR( 'Q', M, M, N, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVAS ) THEN * * If right singular vectors desired in VT, copy result to * VT and generate right bidiagonalizing vectors in VT * (Workspace: need 3*M + NRVT, prefer 3*M + NRVT*NB) * CALL DLACPY( 'U', M, N, A, LDA, VT, LDVT ) IF( WNTVA ) $ NRVT = N IF( WNTVS ) $ NRVT = M CALL DORGBR( 'P', NRVT, N, M, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTUO ) THEN * * If left singular vectors desired in A, generate left * bidiagonalizing vectors in A * (Workspace: need 4*M-1, prefer 3*M + (M-1)*NB) * CALL DORGBR( 'Q', M, M, N, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVO ) THEN * * If right singular vectors desired in A, generate right * bidiagonalizing vectors in A * (Workspace: need 4*M, prefer 3*M + M*NB) * CALL DORGBR( 'P', M, N, M, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IWORK = IE + M IF( WNTUAS .OR. WNTUO ) $ NRU = M IF( WNTUN ) $ NRU = 0 IF( WNTVAS .OR. WNTVO ) $ NCVT = N IF( WNTVN ) $ NCVT = 0 IF( ( .NOT.WNTUO ) .AND. ( .NOT.WNTVO ) ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'L', M, NCVT, NRU, 0, S, WORK( IE ), VT, $ LDVT, U, LDU, DUM, 1, WORK( IWORK ), INFO ) ELSE IF( ( .NOT.WNTUO ) .AND. WNTVO ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in A * (Workspace: need BDSPAC) * CALL DBDSQR( 'L', M, NCVT, NRU, 0, S, WORK( IE ), A, LDA, $ U, LDU, DUM, 1, WORK( IWORK ), INFO ) ELSE * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in A and computing right singular * vectors in VT * (Workspace: need BDSPAC) * CALL DBDSQR( 'L', M, NCVT, NRU, 0, S, WORK( IE ), VT, $ LDVT, A, LDA, DUM, 1, WORK( IWORK ), INFO ) END IF * END IF * END IF * * If DBDSQR failed to converge, copy unconverged superdiagonals * to WORK( 2:MINMN ) * IF( INFO.NE.0 ) THEN IF( IE.GT.2 ) THEN DO 50 I = 1, MINMN - 1 WORK( I+1 ) = WORK( I+IE-1 ) 50 CONTINUE END IF IF( IE.LT.2 ) THEN DO 60 I = MINMN - 1, 1, -1 WORK( I+1 ) = WORK( I+IE-1 ) 60 CONTINUE END IF END IF * * Undo scaling if necessary * IF( ISCL.EQ.1 ) THEN IF( ANRM.GT.BIGNUM ) $ CALL DLASCL( 'G', 0, 0, BIGNUM, ANRM, MINMN, 1, S, MINMN, $ IERR ) IF( INFO.NE.0 .AND. ANRM.GT.BIGNUM ) $ CALL DLASCL( 'G', 0, 0, BIGNUM, ANRM, MINMN-1, 1, WORK( 2 ), $ MINMN, IERR ) IF( ANRM.LT.SMLNUM ) $ CALL DLASCL( 'G', 0, 0, SMLNUM, ANRM, MINMN, 1, S, MINMN, $ IERR ) IF( INFO.NE.0 .AND. ANRM.LT.SMLNUM ) $ CALL DLASCL( 'G', 0, 0, SMLNUM, ANRM, MINMN-1, 1, WORK( 2 ), $ MINMN, IERR ) END IF * * Return optimal workspace in WORK(1) * WORK( 1 ) = MAXWRK * RETURN * * End of DGESVD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgebrd.f0000644000000000000000000000013213543334727015161 xustar0030 mtime=1569569239.006645536 30 atime=1569569239.004645538 30 ctime=1569569239.006645536 elk-6.3.2/src/LAPACK/dgebrd.f0000644002504400250440000002574713543334727017247 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGEBRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGEBRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, * INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ), * $ TAUQ( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGEBRD reduces a general real M-by-N matrix A to upper or lower *> bidiagonal form B by an orthogonal transformation: Q**T * A * P = B. *> *> If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows in the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns in the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the M-by-N general matrix to be reduced. *> On exit, *> if m >= n, the diagonal and the first superdiagonal are *> overwritten with the upper bidiagonal matrix B; the *> elements below the diagonal, with the array TAUQ, represent *> the orthogonal matrix Q as a product of elementary *> reflectors, and the elements above the first superdiagonal, *> with the array TAUP, represent the orthogonal matrix P as *> a product of elementary reflectors; *> if m < n, the diagonal and the first subdiagonal are *> overwritten with the lower bidiagonal matrix B; the *> elements below the first subdiagonal, with the array TAUQ, *> represent the orthogonal matrix Q as a product of *> elementary reflectors, and the elements above the diagonal, *> with the array TAUP, represent the orthogonal matrix P as *> a product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (min(M,N)) *> The diagonal elements of the bidiagonal matrix B: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (min(M,N)-1) *> The off-diagonal elements of the bidiagonal matrix B: *> if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1; *> if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1. *> \endverbatim *> *> \param[out] TAUQ *> \verbatim *> TAUQ is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the orthogonal matrix Q. See Further Details. *> \endverbatim *> *> \param[out] TAUP *> \verbatim *> TAUP is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the orthogonal matrix P. See Further Details. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,M,N). *> For optimum performance LWORK >= (M+N)*NB, where NB *> is the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup doubleGEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrices Q and P are represented as products of elementary *> reflectors: *> *> If m >= n, *> *> Q = H(1) H(2) . . . H(n) and P = G(1) G(2) . . . G(n-1) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**T and G(i) = I - taup * u * u**T *> *> where tauq and taup are real scalars, and v and u are real vectors; *> v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit in A(i+1:m,i); *> u(1:i) = 0, u(i+1) = 1, and u(i+2:n) is stored on exit in A(i,i+2:n); *> tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> If m < n, *> *> Q = H(1) H(2) . . . H(m-1) and P = G(1) G(2) . . . G(m) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**T and G(i) = I - taup * u * u**T *> *> where tauq and taup are real scalars, and v and u are real vectors; *> v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit in A(i+2:m,i); *> u(1:i-1) = 0, u(i) = 1, and u(i+1:n) is stored on exit in A(i,i+1:n); *> tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> The contents of A on exit are illustrated by the following examples: *> *> m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n): *> *> ( d e u1 u1 u1 ) ( d u1 u1 u1 u1 u1 ) *> ( v1 d e u2 u2 ) ( e d u2 u2 u2 u2 ) *> ( v1 v2 d e u3 ) ( v1 e d u3 u3 u3 ) *> ( v1 v2 v3 d e ) ( v1 v2 e d u4 u4 ) *> ( v1 v2 v3 v4 d ) ( v1 v2 v3 e d u5 ) *> ( v1 v2 v3 v4 v5 ) *> *> where d and e denote diagonal and off-diagonal elements of B, vi *> denotes an element of the vector defining H(i), and ui an element of *> the vector defining G(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, $ INFO ) * * -- LAPACK computational routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ), $ TAUQ( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IINFO, J, LDWRKX, LDWRKY, LWKOPT, MINMN, NB, $ NBMIN, NX, WS * .. * .. External Subroutines .. EXTERNAL DGEBD2, DGEMM, DLABRD, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 NB = MAX( 1, ILAENV( 1, 'DGEBRD', ' ', M, N, -1, -1 ) ) LWKOPT = ( M+N )*NB WORK( 1 ) = DBLE( LWKOPT ) LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, M, N ) .AND. .NOT.LQUERY ) THEN INFO = -10 END IF IF( INFO.LT.0 ) THEN CALL XERBLA( 'DGEBRD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * MINMN = MIN( M, N ) IF( MINMN.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * WS = MAX( M, N ) LDWRKX = M LDWRKY = N * IF( NB.GT.1 .AND. NB.LT.MINMN ) THEN * * Set the crossover point NX. * NX = MAX( NB, ILAENV( 3, 'DGEBRD', ' ', M, N, -1, -1 ) ) * * Determine when to switch from blocked to unblocked code. * IF( NX.LT.MINMN ) THEN WS = ( M+N )*NB IF( LWORK.LT.WS ) THEN * * Not enough work space for the optimal NB, consider using * a smaller block size. * NBMIN = ILAENV( 2, 'DGEBRD', ' ', M, N, -1, -1 ) IF( LWORK.GE.( M+N )*NBMIN ) THEN NB = LWORK / ( M+N ) ELSE NB = 1 NX = MINMN END IF END IF END IF ELSE NX = MINMN END IF * DO 30 I = 1, MINMN - NX, NB * * Reduce rows and columns i:i+nb-1 to bidiagonal form and return * the matrices X and Y which are needed to update the unreduced * part of the matrix * CALL DLABRD( M-I+1, N-I+1, NB, A( I, I ), LDA, D( I ), E( I ), $ TAUQ( I ), TAUP( I ), WORK, LDWRKX, $ WORK( LDWRKX*NB+1 ), LDWRKY ) * * Update the trailing submatrix A(i+nb:m,i+nb:n), using an update * of the form A := A - V*Y**T - X*U**T * CALL DGEMM( 'No transpose', 'Transpose', M-I-NB+1, N-I-NB+1, $ NB, -ONE, A( I+NB, I ), LDA, $ WORK( LDWRKX*NB+NB+1 ), LDWRKY, ONE, $ A( I+NB, I+NB ), LDA ) CALL DGEMM( 'No transpose', 'No transpose', M-I-NB+1, N-I-NB+1, $ NB, -ONE, WORK( NB+1 ), LDWRKX, A( I, I+NB ), LDA, $ ONE, A( I+NB, I+NB ), LDA ) * * Copy diagonal and off-diagonal elements of B back into A * IF( M.GE.N ) THEN DO 10 J = I, I + NB - 1 A( J, J ) = D( J ) A( J, J+1 ) = E( J ) 10 CONTINUE ELSE DO 20 J = I, I + NB - 1 A( J, J ) = D( J ) A( J+1, J ) = E( J ) 20 CONTINUE END IF 30 CONTINUE * * Use unblocked code to reduce the remainder of the matrix * CALL DGEBD2( M-I+1, N-I+1, A( I, I ), LDA, D( I ), E( I ), $ TAUQ( I ), TAUP( I ), WORK, IINFO ) WORK( 1 ) = WS RETURN * * End of DGEBRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasq3.f0000644000000000000000000000013213543334727015121 xustar0030 mtime=1569569239.011645533 30 atime=1569569239.009645534 30 ctime=1569569239.011645533 elk-6.3.2/src/LAPACK/dlasq3.f0000644002504400250440000002474313543334727017202 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASQ3 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, * ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, * DN2, G, TAU ) * * .. Scalar Arguments .. * LOGICAL IEEE * INTEGER I0, ITER, N0, NDIV, NFAIL, PP * DOUBLE PRECISION DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, * $ QMAX, SIGMA, TAU * .. * .. Array Arguments .. * DOUBLE PRECISION Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASQ3 checks for deflation, computes a shift (TAU) and calls dqds. *> In case of failure it changes shifts, and tries again until output *> is positive. *> \endverbatim * * Arguments: * ========== * *> \param[in] I0 *> \verbatim *> I0 is INTEGER *> First index. *> \endverbatim *> *> \param[in,out] N0 *> \verbatim *> N0 is INTEGER *> Last index. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension ( 4*N0 ) *> Z holds the qd array. *> \endverbatim *> *> \param[in,out] PP *> \verbatim *> PP is INTEGER *> PP=0 for ping, PP=1 for pong. *> PP=2 indicates that flipping was applied to the Z array *> and that the initial tests for deflation should not be *> performed. *> \endverbatim *> *> \param[out] DMIN *> \verbatim *> DMIN is DOUBLE PRECISION *> Minimum value of d. *> \endverbatim *> *> \param[out] SIGMA *> \verbatim *> SIGMA is DOUBLE PRECISION *> Sum of shifts used in current segment. *> \endverbatim *> *> \param[in,out] DESIG *> \verbatim *> DESIG is DOUBLE PRECISION *> Lower order part of SIGMA *> \endverbatim *> *> \param[in] QMAX *> \verbatim *> QMAX is DOUBLE PRECISION *> Maximum value of q. *> \endverbatim *> *> \param[in,out] NFAIL *> \verbatim *> NFAIL is INTEGER *> Increment NFAIL by 1 each time the shift was too big. *> \endverbatim *> *> \param[in,out] ITER *> \verbatim *> ITER is INTEGER *> Increment ITER by 1 for each iteration. *> \endverbatim *> *> \param[in,out] NDIV *> \verbatim *> NDIV is INTEGER *> Increment NDIV by 1 for each division. *> \endverbatim *> *> \param[in] IEEE *> \verbatim *> IEEE is LOGICAL *> Flag for IEEE or non IEEE arithmetic (passed to DLASQ5). *> \endverbatim *> *> \param[in,out] TTYPE *> \verbatim *> TTYPE is INTEGER *> Shift type. *> \endverbatim *> *> \param[in,out] DMIN1 *> \verbatim *> DMIN1 is DOUBLE PRECISION *> \endverbatim *> *> \param[in,out] DMIN2 *> \verbatim *> DMIN2 is DOUBLE PRECISION *> \endverbatim *> *> \param[in,out] DN *> \verbatim *> DN is DOUBLE PRECISION *> \endverbatim *> *> \param[in,out] DN1 *> \verbatim *> DN1 is DOUBLE PRECISION *> \endverbatim *> *> \param[in,out] DN2 *> \verbatim *> DN2 is DOUBLE PRECISION *> \endverbatim *> *> \param[in,out] G *> \verbatim *> G is DOUBLE PRECISION *> \endverbatim *> *> \param[in,out] TAU *> \verbatim *> TAU is DOUBLE PRECISION *> *> These are passed as arguments in order to save their values *> between calls to DLASQ3. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLASQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, $ ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, $ DN2, G, TAU ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. LOGICAL IEEE INTEGER I0, ITER, N0, NDIV, NFAIL, PP DOUBLE PRECISION DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G, $ QMAX, SIGMA, TAU * .. * .. Array Arguments .. DOUBLE PRECISION Z( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION CBIAS PARAMETER ( CBIAS = 1.50D0 ) DOUBLE PRECISION ZERO, QURTR, HALF, ONE, TWO, HUNDRD PARAMETER ( ZERO = 0.0D0, QURTR = 0.250D0, HALF = 0.5D0, $ ONE = 1.0D0, TWO = 2.0D0, HUNDRD = 100.0D0 ) * .. * .. Local Scalars .. INTEGER IPN4, J4, N0IN, NN, TTYPE DOUBLE PRECISION EPS, S, T, TEMP, TOL, TOL2 * .. * .. External Subroutines .. EXTERNAL DLASQ4, DLASQ5, DLASQ6 * .. * .. External Function .. DOUBLE PRECISION DLAMCH LOGICAL DISNAN EXTERNAL DISNAN, DLAMCH * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * N0IN = N0 EPS = DLAMCH( 'Precision' ) TOL = EPS*HUNDRD TOL2 = TOL**2 * * Check for deflation. * 10 CONTINUE * IF( N0.LT.I0 ) $ RETURN IF( N0.EQ.I0 ) $ GO TO 20 NN = 4*N0 + PP IF( N0.EQ.( I0+1 ) ) $ GO TO 40 * * Check whether E(N0-1) is negligible, 1 eigenvalue. * IF( Z( NN-5 ).GT.TOL2*( SIGMA+Z( NN-3 ) ) .AND. $ Z( NN-2*PP-4 ).GT.TOL2*Z( NN-7 ) ) $ GO TO 30 * 20 CONTINUE * Z( 4*N0-3 ) = Z( 4*N0+PP-3 ) + SIGMA N0 = N0 - 1 GO TO 10 * * Check whether E(N0-2) is negligible, 2 eigenvalues. * 30 CONTINUE * IF( Z( NN-9 ).GT.TOL2*SIGMA .AND. $ Z( NN-2*PP-8 ).GT.TOL2*Z( NN-11 ) ) $ GO TO 50 * 40 CONTINUE * IF( Z( NN-3 ).GT.Z( NN-7 ) ) THEN S = Z( NN-3 ) Z( NN-3 ) = Z( NN-7 ) Z( NN-7 ) = S END IF T = HALF*( ( Z( NN-7 )-Z( NN-3 ) )+Z( NN-5 ) ) IF( Z( NN-5 ).GT.Z( NN-3 )*TOL2.AND.T.NE.ZERO ) THEN S = Z( NN-3 )*( Z( NN-5 ) / T ) IF( S.LE.T ) THEN S = Z( NN-3 )*( Z( NN-5 ) / $ ( T*( ONE+SQRT( ONE+S / T ) ) ) ) ELSE S = Z( NN-3 )*( Z( NN-5 ) / ( T+SQRT( T )*SQRT( T+S ) ) ) END IF T = Z( NN-7 ) + ( S+Z( NN-5 ) ) Z( NN-3 ) = Z( NN-3 )*( Z( NN-7 ) / T ) Z( NN-7 ) = T END IF Z( 4*N0-7 ) = Z( NN-7 ) + SIGMA Z( 4*N0-3 ) = Z( NN-3 ) + SIGMA N0 = N0 - 2 GO TO 10 * 50 CONTINUE IF( PP.EQ.2 ) $ PP = 0 * * Reverse the qd-array, if warranted. * IF( DMIN.LE.ZERO .OR. N0.LT.N0IN ) THEN IF( CBIAS*Z( 4*I0+PP-3 ).LT.Z( 4*N0+PP-3 ) ) THEN IPN4 = 4*( I0+N0 ) DO 60 J4 = 4*I0, 2*( I0+N0-1 ), 4 TEMP = Z( J4-3 ) Z( J4-3 ) = Z( IPN4-J4-3 ) Z( IPN4-J4-3 ) = TEMP TEMP = Z( J4-2 ) Z( J4-2 ) = Z( IPN4-J4-2 ) Z( IPN4-J4-2 ) = TEMP TEMP = Z( J4-1 ) Z( J4-1 ) = Z( IPN4-J4-5 ) Z( IPN4-J4-5 ) = TEMP TEMP = Z( J4 ) Z( J4 ) = Z( IPN4-J4-4 ) Z( IPN4-J4-4 ) = TEMP 60 CONTINUE IF( N0-I0.LE.4 ) THEN Z( 4*N0+PP-1 ) = Z( 4*I0+PP-1 ) Z( 4*N0-PP ) = Z( 4*I0-PP ) END IF DMIN2 = MIN( DMIN2, Z( 4*N0+PP-1 ) ) Z( 4*N0+PP-1 ) = MIN( Z( 4*N0+PP-1 ), Z( 4*I0+PP-1 ), $ Z( 4*I0+PP+3 ) ) Z( 4*N0-PP ) = MIN( Z( 4*N0-PP ), Z( 4*I0-PP ), $ Z( 4*I0-PP+4 ) ) QMAX = MAX( QMAX, Z( 4*I0+PP-3 ), Z( 4*I0+PP+1 ) ) DMIN = -ZERO END IF END IF * * Choose a shift. * CALL DLASQ4( I0, N0, Z, PP, N0IN, DMIN, DMIN1, DMIN2, DN, DN1, $ DN2, TAU, TTYPE, G ) * * Call dqds until DMIN > 0. * 70 CONTINUE * CALL DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, DN, $ DN1, DN2, IEEE, EPS ) * NDIV = NDIV + ( N0-I0+2 ) ITER = ITER + 1 * * Check status. * IF( DMIN.GE.ZERO .AND. DMIN1.GE.ZERO ) THEN * * Success. * GO TO 90 * ELSE IF( DMIN.LT.ZERO .AND. DMIN1.GT.ZERO .AND. $ Z( 4*( N0-1 )-PP ).LT.TOL*( SIGMA+DN1 ) .AND. $ ABS( DN ).LT.TOL*SIGMA ) THEN * * Convergence hidden by negative DN. * Z( 4*( N0-1 )-PP+2 ) = ZERO DMIN = ZERO GO TO 90 ELSE IF( DMIN.LT.ZERO ) THEN * * TAU too big. Select new TAU and try again. * NFAIL = NFAIL + 1 IF( TTYPE.LT.-22 ) THEN * * Failed twice. Play it safe. * TAU = ZERO ELSE IF( DMIN1.GT.ZERO ) THEN * * Late failure. Gives excellent shift. * TAU = ( TAU+DMIN )*( ONE-TWO*EPS ) TTYPE = TTYPE - 11 ELSE * * Early failure. Divide by 4. * TAU = QURTR*TAU TTYPE = TTYPE - 12 END IF GO TO 70 ELSE IF( DISNAN( DMIN ) ) THEN * * NaN. * IF( TAU.EQ.ZERO ) THEN GO TO 80 ELSE TAU = ZERO GO TO 70 END IF ELSE * * Possible underflow. Play it safe. * GO TO 80 END IF * * Risk of underflow. * 80 CONTINUE CALL DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, DN1, DN2 ) NDIV = NDIV + ( N0-I0+2 ) ITER = ITER + 1 TAU = ZERO * 90 CONTINUE IF( TAU.LT.SIGMA ) THEN DESIG = DESIG + TAU T = SIGMA + DESIG DESIG = DESIG - ( T-SIGMA ) ELSE T = SIGMA + TAU DESIG = SIGMA - ( T-TAU ) + DESIG END IF SIGMA = T * RETURN * * End of DLASQ3 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasq1.f0000644000000000000000000000013013543334727015115 xustar0029 mtime=1569569239.01564553 30 atime=1569569239.014645531 29 ctime=1569569239.01564553 elk-6.3.2/src/LAPACK/dlasq1.f0000644002504400250440000001502313543334727017167 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASQ1 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASQ1( N, D, E, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASQ1 computes the singular values of a real N-by-N bidiagonal *> matrix with diagonal D and off-diagonal E. The singular values *> are computed to high relative accuracy, in the absence of *> denormalization, underflow and overflow. The algorithm was first *> presented in *> *> "Accurate singular values and differential qd algorithms" by K. V. *> Fernando and B. N. Parlett, Numer. Math., Vol-67, No. 2, pp. 191-230, *> 1994, *> *> and the present implementation is described in "An implementation of *> the dqds Algorithm (Positive Case)", LAPACK Working Note. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of rows and columns in the matrix. N >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, D contains the diagonal elements of the *> bidiagonal matrix whose SVD is desired. On normal exit, *> D contains the singular values in decreasing order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N) *> On entry, elements E(1:N-1) contain the off-diagonal elements *> of the bidiagonal matrix whose SVD is desired. *> On exit, E is overwritten. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (4*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: the algorithm failed *> = 1, a split was marked by a positive value in E *> = 2, current block of Z not diagonalized after 100*N *> iterations (in inner while loop) On exit D and E *> represent a matrix with the same singular values *> which the calling subroutine could use to finish the *> computation, or even feed back into DLASQ1 *> = 3, termination criterion of outer while loop not met *> (program created more than N unreduced blocks) *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLASQ1( N, D, E, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) * .. * .. Local Scalars .. INTEGER I, IINFO DOUBLE PRECISION EPS, SCALE, SAFMIN, SIGMN, SIGMX * .. * .. External Subroutines .. EXTERNAL DCOPY, DLAS2, DLASCL, DLASQ2, DLASRT, XERBLA * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SQRT * .. * .. Executable Statements .. * INFO = 0 IF( N.LT.0 ) THEN INFO = -1 CALL XERBLA( 'DLASQ1', -INFO ) RETURN ELSE IF( N.EQ.0 ) THEN RETURN ELSE IF( N.EQ.1 ) THEN D( 1 ) = ABS( D( 1 ) ) RETURN ELSE IF( N.EQ.2 ) THEN CALL DLAS2( D( 1 ), E( 1 ), D( 2 ), SIGMN, SIGMX ) D( 1 ) = SIGMX D( 2 ) = SIGMN RETURN END IF * * Estimate the largest singular value. * SIGMX = ZERO DO 10 I = 1, N - 1 D( I ) = ABS( D( I ) ) SIGMX = MAX( SIGMX, ABS( E( I ) ) ) 10 CONTINUE D( N ) = ABS( D( N ) ) * * Early return if SIGMX is zero (matrix is already diagonal). * IF( SIGMX.EQ.ZERO ) THEN CALL DLASRT( 'D', N, D, IINFO ) RETURN END IF * DO 20 I = 1, N SIGMX = MAX( SIGMX, D( I ) ) 20 CONTINUE * * Copy D and E into WORK (in the Z format) and scale (squaring the * input data makes scaling by a power of the radix pointless). * EPS = DLAMCH( 'Precision' ) SAFMIN = DLAMCH( 'Safe minimum' ) SCALE = SQRT( EPS / SAFMIN ) CALL DCOPY( N, D, 1, WORK( 1 ), 2 ) CALL DCOPY( N-1, E, 1, WORK( 2 ), 2 ) CALL DLASCL( 'G', 0, 0, SIGMX, SCALE, 2*N-1, 1, WORK, 2*N-1, $ IINFO ) * * Compute the q's and e's. * DO 30 I = 1, 2*N - 1 WORK( I ) = WORK( I )**2 30 CONTINUE WORK( 2*N ) = ZERO * CALL DLASQ2( N, WORK, INFO ) * IF( INFO.EQ.0 ) THEN DO 40 I = 1, N D( I ) = SQRT( WORK( I ) ) 40 CONTINUE CALL DLASCL( 'G', 0, 0, SCALE, SIGMX, N, 1, D, N, IINFO ) ELSE IF( INFO.EQ.2 ) THEN * * Maximum number of iterations exceeded. Move data from WORK * into D and E so the calling subroutine can try to finish * DO I = 1, N D( I ) = SQRT( WORK( 2*I-1 ) ) E( I ) = SQRT( WORK( 2*I ) ) END DO CALL DLASCL( 'G', 0, 0, SCALE, SIGMX, N, 1, D, N, IINFO ) CALL DLASCL( 'G', 0, 0, SCALE, SIGMX, N, 1, E, N, IINFO ) END IF * RETURN * * End of DLASQ1 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgesvd.f0000644000000000000000000000013013543334727015232 xustar0029 mtime=1569569239.03164552 30 atime=1569569239.018645529 29 ctime=1569569239.03164552 elk-6.3.2/src/LAPACK/zgesvd.f0000644002504400250440000042645313543334727017321 0ustar00dewhurstdewhurst00000000000000*> \brief ZGESVD computes the singular value decomposition (SVD) for GE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGESVD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT, * WORK, LWORK, RWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBU, JOBVT * INTEGER INFO, LDA, LDU, LDVT, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION RWORK( * ), S( * ) * COMPLEX*16 A( LDA, * ), U( LDU, * ), VT( LDVT, * ), * $ WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGESVD computes the singular value decomposition (SVD) of a complex *> M-by-N matrix A, optionally computing the left and/or right singular *> vectors. The SVD is written *> *> A = U * SIGMA * conjugate-transpose(V) *> *> where SIGMA is an M-by-N matrix which is zero except for its *> min(m,n) diagonal elements, U is an M-by-M unitary matrix, and *> V is an N-by-N unitary matrix. The diagonal elements of SIGMA *> are the singular values of A; they are real and non-negative, and *> are returned in descending order. The first min(m,n) columns of *> U and V are the left and right singular vectors of A. *> *> Note that the routine returns V**H, not V. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBU *> \verbatim *> JOBU is CHARACTER*1 *> Specifies options for computing all or part of the matrix U: *> = 'A': all M columns of U are returned in array U: *> = 'S': the first min(m,n) columns of U (the left singular *> vectors) are returned in the array U; *> = 'O': the first min(m,n) columns of U (the left singular *> vectors) are overwritten on the array A; *> = 'N': no columns of U (no left singular vectors) are *> computed. *> \endverbatim *> *> \param[in] JOBVT *> \verbatim *> JOBVT is CHARACTER*1 *> Specifies options for computing all or part of the matrix *> V**H: *> = 'A': all N rows of V**H are returned in the array VT; *> = 'S': the first min(m,n) rows of V**H (the right singular *> vectors) are returned in the array VT; *> = 'O': the first min(m,n) rows of V**H (the right singular *> vectors) are overwritten on the array A; *> = 'N': no rows of V**H (no right singular vectors) are *> computed. *> *> JOBVT and JOBU cannot both be 'O'. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the input matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the input matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the M-by-N matrix A. *> On exit, *> if JOBU = 'O', A is overwritten with the first min(m,n) *> columns of U (the left singular vectors, *> stored columnwise); *> if JOBVT = 'O', A is overwritten with the first min(m,n) *> rows of V**H (the right singular vectors, *> stored rowwise); *> if JOBU .ne. 'O' and JOBVT .ne. 'O', the contents of A *> are destroyed. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] S *> \verbatim *> S is DOUBLE PRECISION array, dimension (min(M,N)) *> The singular values of A, sorted so that S(i) >= S(i+1). *> \endverbatim *> *> \param[out] U *> \verbatim *> U is COMPLEX*16 array, dimension (LDU,UCOL) *> (LDU,M) if JOBU = 'A' or (LDU,min(M,N)) if JOBU = 'S'. *> If JOBU = 'A', U contains the M-by-M unitary matrix U; *> if JOBU = 'S', U contains the first min(m,n) columns of U *> (the left singular vectors, stored columnwise); *> if JOBU = 'N' or 'O', U is not referenced. *> \endverbatim *> *> \param[in] LDU *> \verbatim *> LDU is INTEGER *> The leading dimension of the array U. LDU >= 1; if *> JOBU = 'S' or 'A', LDU >= M. *> \endverbatim *> *> \param[out] VT *> \verbatim *> VT is COMPLEX*16 array, dimension (LDVT,N) *> If JOBVT = 'A', VT contains the N-by-N unitary matrix *> V**H; *> if JOBVT = 'S', VT contains the first min(m,n) rows of *> V**H (the right singular vectors, stored rowwise); *> if JOBVT = 'N' or 'O', VT is not referenced. *> \endverbatim *> *> \param[in] LDVT *> \verbatim *> LDVT is INTEGER *> The leading dimension of the array VT. LDVT >= 1; if *> JOBVT = 'A', LDVT >= N; if JOBVT = 'S', LDVT >= min(M,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> LWORK >= MAX(1,2*MIN(M,N)+MAX(M,N)). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (5*min(M,N)) *> On exit, if INFO > 0, RWORK(1:MIN(M,N)-1) contains the *> unconverged superdiagonal elements of an upper bidiagonal *> matrix B whose diagonal is in S (not necessarily sorted). *> B satisfies A = U * B * VT, so it has the same singular *> values as A, and singular vectors related by U and VT. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if ZBDSQR did not converge, INFO specifies how many *> superdiagonals of an intermediate bidiagonal form B *> did not converge to zero. See the description of RWORK *> above for details. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date April 2012 * *> \ingroup complex16GEsing * * ===================================================================== SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, $ VT, LDVT, WORK, LWORK, RWORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * April 2012 * * .. Scalar Arguments .. CHARACTER JOBU, JOBVT INTEGER INFO, LDA, LDU, LDVT, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION RWORK( * ), S( * ) COMPLEX*16 A( LDA, * ), U( LDU, * ), VT( LDVT, * ), $ WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D0, 0.0D0 ), $ CONE = ( 1.0D0, 0.0D0 ) ) DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, WNTUA, WNTUAS, WNTUN, WNTUO, WNTUS, $ WNTVA, WNTVAS, WNTVN, WNTVO, WNTVS INTEGER BLK, CHUNK, I, IE, IERR, IR, IRWORK, ISCL, $ ITAU, ITAUP, ITAUQ, IU, IWORK, LDWRKR, LDWRKU, $ MAXWRK, MINMN, MINWRK, MNTHR, NCU, NCVT, NRU, $ NRVT, WRKBL INTEGER LWORK_ZGEQRF, LWORK_ZUNGQR_N, LWORK_ZUNGQR_M, $ LWORK_ZGEBRD, LWORK_ZUNGBR_P, LWORK_ZUNGBR_Q, $ LWORK_ZGELQF, LWORK_ZUNGLQ_N, LWORK_ZUNGLQ_M DOUBLE PRECISION ANRM, BIGNUM, EPS, SMLNUM * .. * .. Local Arrays .. DOUBLE PRECISION DUM( 1 ) COMPLEX*16 CDUM( 1 ) * .. * .. External Subroutines .. EXTERNAL DLASCL, XERBLA, ZBDSQR, ZGEBRD, ZGELQF, ZGEMM, $ ZGEQRF, ZLACPY, ZLASCL, ZLASET, ZUNGBR, ZUNGLQ, $ ZUNGQR, ZUNMBR * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, ZLANGE EXTERNAL LSAME, ILAENV, DLAMCH, ZLANGE * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 MINMN = MIN( M, N ) WNTUA = LSAME( JOBU, 'A' ) WNTUS = LSAME( JOBU, 'S' ) WNTUAS = WNTUA .OR. WNTUS WNTUO = LSAME( JOBU, 'O' ) WNTUN = LSAME( JOBU, 'N' ) WNTVA = LSAME( JOBVT, 'A' ) WNTVS = LSAME( JOBVT, 'S' ) WNTVAS = WNTVA .OR. WNTVS WNTVO = LSAME( JOBVT, 'O' ) WNTVN = LSAME( JOBVT, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * IF( .NOT.( WNTUA .OR. WNTUS .OR. WNTUO .OR. WNTUN ) ) THEN INFO = -1 ELSE IF( .NOT.( WNTVA .OR. WNTVS .OR. WNTVO .OR. WNTVN ) .OR. $ ( WNTVO .AND. WNTUO ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -6 ELSE IF( LDU.LT.1 .OR. ( WNTUAS .AND. LDU.LT.M ) ) THEN INFO = -9 ELSE IF( LDVT.LT.1 .OR. ( WNTVA .AND. LDVT.LT.N ) .OR. $ ( WNTVS .AND. LDVT.LT.MINMN ) ) THEN INFO = -11 END IF * * Compute workspace * (Note: Comments in the code beginning "Workspace:" describe the * minimal amount of workspace needed at that point in the code, * as well as the preferred amount for good performance. * CWorkspace refers to complex workspace, and RWorkspace to * real workspace. NB refers to the optimal block size for the * immediately following subroutine, as returned by ILAENV.) * IF( INFO.EQ.0 ) THEN MINWRK = 1 MAXWRK = 1 IF( M.GE.N .AND. MINMN.GT.0 ) THEN * * Space needed for ZBDSQR is BDSPAC = 5*N * MNTHR = ILAENV( 6, 'ZGESVD', JOBU // JOBVT, M, N, 0, 0 ) * Compute space needed for ZGEQRF CALL ZGEQRF( M, N, A, LDA, CDUM(1), CDUM(1), -1, IERR ) LWORK_ZGEQRF = INT( CDUM(1) ) * Compute space needed for ZUNGQR CALL ZUNGQR( M, N, N, A, LDA, CDUM(1), CDUM(1), -1, IERR ) LWORK_ZUNGQR_N = INT( CDUM(1) ) CALL ZUNGQR( M, M, N, A, LDA, CDUM(1), CDUM(1), -1, IERR ) LWORK_ZUNGQR_M = INT( CDUM(1) ) * Compute space needed for ZGEBRD CALL ZGEBRD( N, N, A, LDA, S, DUM(1), CDUM(1), $ CDUM(1), CDUM(1), -1, IERR ) LWORK_ZGEBRD = INT( CDUM(1) ) * Compute space needed for ZUNGBR CALL ZUNGBR( 'P', N, N, N, A, LDA, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_P = INT( CDUM(1) ) CALL ZUNGBR( 'Q', N, N, N, A, LDA, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_Q = INT( CDUM(1) ) * IF( M.GE.MNTHR ) THEN IF( WNTUN ) THEN * * Path 1 (M much larger than N, JOBU='N') * MAXWRK = N + LWORK_ZGEQRF MAXWRK = MAX( MAXWRK, 2*N+LWORK_ZGEBRD ) IF( WNTVO .OR. WNTVAS ) $ MAXWRK = MAX( MAXWRK, 2*N+LWORK_ZUNGBR_P ) MINWRK = 3*N ELSE IF( WNTUO .AND. WNTVN ) THEN * * Path 2 (M much larger than N, JOBU='O', JOBVT='N') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_N ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) MAXWRK = MAX( N*N+WRKBL, N*N+M*N ) MINWRK = 2*N + M ELSE IF( WNTUO .AND. WNTVAS ) THEN * * Path 3 (M much larger than N, JOBU='O', JOBVT='S' or * 'A') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_N ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_P ) MAXWRK = MAX( N*N+WRKBL, N*N+M*N ) MINWRK = 2*N + M ELSE IF( WNTUS .AND. WNTVN ) THEN * * Path 4 (M much larger than N, JOBU='S', JOBVT='N') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_N ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) MAXWRK = N*N + WRKBL MINWRK = 2*N + M ELSE IF( WNTUS .AND. WNTVO ) THEN * * Path 5 (M much larger than N, JOBU='S', JOBVT='O') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_N ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_P ) MAXWRK = 2*N*N + WRKBL MINWRK = 2*N + M ELSE IF( WNTUS .AND. WNTVAS ) THEN * * Path 6 (M much larger than N, JOBU='S', JOBVT='S' or * 'A') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_N ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_P ) MAXWRK = N*N + WRKBL MINWRK = 2*N + M ELSE IF( WNTUA .AND. WNTVN ) THEN * * Path 7 (M much larger than N, JOBU='A', JOBVT='N') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_M ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) MAXWRK = N*N + WRKBL MINWRK = 2*N + M ELSE IF( WNTUA .AND. WNTVO ) THEN * * Path 8 (M much larger than N, JOBU='A', JOBVT='O') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_M ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_P ) MAXWRK = 2*N*N + WRKBL MINWRK = 2*N + M ELSE IF( WNTUA .AND. WNTVAS ) THEN * * Path 9 (M much larger than N, JOBU='A', JOBVT='S' or * 'A') * WRKBL = N + LWORK_ZGEQRF WRKBL = MAX( WRKBL, N+LWORK_ZUNGQR_M ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_Q ) WRKBL = MAX( WRKBL, 2*N+LWORK_ZUNGBR_P ) MAXWRK = N*N + WRKBL MINWRK = 2*N + M END IF ELSE * * Path 10 (M at least N, but not much larger) * CALL ZGEBRD( M, N, A, LDA, S, DUM(1), CDUM(1), $ CDUM(1), CDUM(1), -1, IERR ) LWORK_ZGEBRD = INT( CDUM(1) ) MAXWRK = 2*N + LWORK_ZGEBRD IF( WNTUS .OR. WNTUO ) THEN CALL ZUNGBR( 'Q', M, N, N, A, LDA, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_Q = INT( CDUM(1) ) MAXWRK = MAX( MAXWRK, 2*N+LWORK_ZUNGBR_Q ) END IF IF( WNTUA ) THEN CALL ZUNGBR( 'Q', M, M, N, A, LDA, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_Q = INT( CDUM(1) ) MAXWRK = MAX( MAXWRK, 2*N+LWORK_ZUNGBR_Q ) END IF IF( .NOT.WNTVN ) THEN MAXWRK = MAX( MAXWRK, 2*N+LWORK_ZUNGBR_P ) END IF MINWRK = 2*N + M END IF ELSE IF( MINMN.GT.0 ) THEN * * Space needed for ZBDSQR is BDSPAC = 5*M * MNTHR = ILAENV( 6, 'ZGESVD', JOBU // JOBVT, M, N, 0, 0 ) * Compute space needed for ZGELQF CALL ZGELQF( M, N, A, LDA, CDUM(1), CDUM(1), -1, IERR ) LWORK_ZGELQF = INT( CDUM(1) ) * Compute space needed for ZUNGLQ CALL ZUNGLQ( N, N, M, CDUM(1), N, CDUM(1), CDUM(1), -1, $ IERR ) LWORK_ZUNGLQ_N = INT( CDUM(1) ) CALL ZUNGLQ( M, N, M, A, LDA, CDUM(1), CDUM(1), -1, IERR ) LWORK_ZUNGLQ_M = INT( CDUM(1) ) * Compute space needed for ZGEBRD CALL ZGEBRD( M, M, A, LDA, S, DUM(1), CDUM(1), $ CDUM(1), CDUM(1), -1, IERR ) LWORK_ZGEBRD = INT( CDUM(1) ) * Compute space needed for ZUNGBR P CALL ZUNGBR( 'P', M, M, M, A, N, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_P = INT( CDUM(1) ) * Compute space needed for ZUNGBR Q CALL ZUNGBR( 'Q', M, M, M, A, N, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_Q = INT( CDUM(1) ) IF( N.GE.MNTHR ) THEN IF( WNTVN ) THEN * * Path 1t(N much larger than M, JOBVT='N') * MAXWRK = M + LWORK_ZGELQF MAXWRK = MAX( MAXWRK, 2*M+LWORK_ZGEBRD ) IF( WNTUO .OR. WNTUAS ) $ MAXWRK = MAX( MAXWRK, 2*M+LWORK_ZUNGBR_Q ) MINWRK = 3*M ELSE IF( WNTVO .AND. WNTUN ) THEN * * Path 2t(N much larger than M, JOBU='N', JOBVT='O') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_M ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) MAXWRK = MAX( M*M+WRKBL, M*M+M*N ) MINWRK = 2*M + N ELSE IF( WNTVO .AND. WNTUAS ) THEN * * Path 3t(N much larger than M, JOBU='S' or 'A', * JOBVT='O') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_M ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_Q ) MAXWRK = MAX( M*M+WRKBL, M*M+M*N ) MINWRK = 2*M + N ELSE IF( WNTVS .AND. WNTUN ) THEN * * Path 4t(N much larger than M, JOBU='N', JOBVT='S') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_M ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) MAXWRK = M*M + WRKBL MINWRK = 2*M + N ELSE IF( WNTVS .AND. WNTUO ) THEN * * Path 5t(N much larger than M, JOBU='O', JOBVT='S') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_M ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_Q ) MAXWRK = 2*M*M + WRKBL MINWRK = 2*M + N ELSE IF( WNTVS .AND. WNTUAS ) THEN * * Path 6t(N much larger than M, JOBU='S' or 'A', * JOBVT='S') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_M ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_Q ) MAXWRK = M*M + WRKBL MINWRK = 2*M + N ELSE IF( WNTVA .AND. WNTUN ) THEN * * Path 7t(N much larger than M, JOBU='N', JOBVT='A') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_N ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) MAXWRK = M*M + WRKBL MINWRK = 2*M + N ELSE IF( WNTVA .AND. WNTUO ) THEN * * Path 8t(N much larger than M, JOBU='O', JOBVT='A') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_N ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_Q ) MAXWRK = 2*M*M + WRKBL MINWRK = 2*M + N ELSE IF( WNTVA .AND. WNTUAS ) THEN * * Path 9t(N much larger than M, JOBU='S' or 'A', * JOBVT='A') * WRKBL = M + LWORK_ZGELQF WRKBL = MAX( WRKBL, M+LWORK_ZUNGLQ_N ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZGEBRD ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_P ) WRKBL = MAX( WRKBL, 2*M+LWORK_ZUNGBR_Q ) MAXWRK = M*M + WRKBL MINWRK = 2*M + N END IF ELSE * * Path 10t(N greater than M, but not much larger) * CALL ZGEBRD( M, N, A, LDA, S, DUM(1), CDUM(1), $ CDUM(1), CDUM(1), -1, IERR ) LWORK_ZGEBRD = INT( CDUM(1) ) MAXWRK = 2*M + LWORK_ZGEBRD IF( WNTVS .OR. WNTVO ) THEN * Compute space needed for ZUNGBR P CALL ZUNGBR( 'P', M, N, M, A, N, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_P = INT( CDUM(1) ) MAXWRK = MAX( MAXWRK, 2*M+LWORK_ZUNGBR_P ) END IF IF( WNTVA ) THEN CALL ZUNGBR( 'P', N, N, M, A, N, CDUM(1), $ CDUM(1), -1, IERR ) LWORK_ZUNGBR_P = INT( CDUM(1) ) MAXWRK = MAX( MAXWRK, 2*M+LWORK_ZUNGBR_P ) END IF IF( .NOT.WNTUN ) THEN MAXWRK = MAX( MAXWRK, 2*M+LWORK_ZUNGBR_Q ) END IF MINWRK = 2*M + N END IF END IF MAXWRK = MAX( MAXWRK, MINWRK ) WORK( 1 ) = MAXWRK * IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN INFO = -13 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGESVD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) THEN RETURN END IF * * Get machine constants * EPS = DLAMCH( 'P' ) SMLNUM = SQRT( DLAMCH( 'S' ) ) / EPS BIGNUM = ONE / SMLNUM * * Scale A if max element outside range [SMLNUM,BIGNUM] * ANRM = ZLANGE( 'M', M, N, A, LDA, DUM ) ISCL = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN ISCL = 1 CALL ZLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, IERR ) ELSE IF( ANRM.GT.BIGNUM ) THEN ISCL = 1 CALL ZLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, IERR ) END IF * IF( M.GE.N ) THEN * * A has at least as many rows as columns. If A has sufficiently * more rows than columns, first reduce using the QR * decomposition (if sufficient workspace available) * IF( M.GE.MNTHR ) THEN * IF( WNTUN ) THEN * * Path 1 (M much larger than N, JOBU='N') * No left singular vectors to be computed * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: need 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Zero out below R * IF( N .GT. 1 ) THEN CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, A( 2, 1 ), $ LDA ) END IF IE = 1 ITAUQ = 1 ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in A * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, A, LDA, S, RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) NCVT = 0 IF( WNTVO .OR. WNTVAS ) THEN * * If right singular vectors desired, generate P'. * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) NCVT = N END IF IRWORK = IE + N * * Perform bidiagonal QR iteration, computing right * singular vectors of A in A if desired * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, NCVT, 0, 0, S, RWORK( IE ), A, LDA, $ CDUM, 1, CDUM, 1, RWORK( IRWORK ), INFO ) * * If right singular vectors desired in VT, copy them there * IF( WNTVAS ) $ CALL ZLACPY( 'F', N, N, A, LDA, VT, LDVT ) * ELSE IF( WNTUO .AND. WNTVN ) THEN * * Path 2 (M much larger than N, JOBU='O', JOBVT='N') * N left singular vectors to be overwritten on A and * no right singular vectors to be computed * IF( LWORK.GE.N*N+3*N ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N )+LDA*N ) THEN * * WORK(IU) is LDA by N, WORK(IR) is LDA by N * LDWRKU = LDA LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N )+N*N ) THEN * * WORK(IU) is LDA by N, WORK(IR) is N by N * LDWRKU = LDA LDWRKR = N ELSE * * WORK(IU) is LDWRKU by N, WORK(IR) is N by N * LDWRKU = ( LWORK-N*N ) / N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IR) and zero out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IR ), LDWRKR ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IR+1 ), LDWRKR ) * * Generate Q in A * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IR ), LDWRKR, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing R * (CWorkspace: need N*N+3*N, prefer N*N+2*N+N*NB) * (RWorkspace: need 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) * (CWorkspace: need N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, 0, N, 0, S, RWORK( IE ), CDUM, 1, $ WORK( IR ), LDWRKR, CDUM, 1, $ RWORK( IRWORK ), INFO ) IU = ITAUQ * * Multiply Q in A by left singular vectors of R in * WORK(IR), storing result in WORK(IU) and copying to A * (CWorkspace: need N*N+N, prefer N*N+M*N) * (RWorkspace: 0) * DO 10 I = 1, M, LDWRKU CHUNK = MIN( M-I+1, LDWRKU ) CALL ZGEMM( 'N', 'N', CHUNK, N, N, CONE, A( I, 1 ), $ LDA, WORK( IR ), LDWRKR, CZERO, $ WORK( IU ), LDWRKU ) CALL ZLACPY( 'F', CHUNK, N, WORK( IU ), LDWRKU, $ A( I, 1 ), LDA ) 10 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * IE = 1 ITAUQ = 1 ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize A * (CWorkspace: need 2*N+M, prefer 2*N+(M+N)*NB) * (RWorkspace: N) * CALL ZGEBRD( M, N, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing A * (CWorkspace: need 3*N, prefer 2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, N, N, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A * (CWorkspace: need 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, 0, M, 0, S, RWORK( IE ), CDUM, 1, $ A, LDA, CDUM, 1, RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTUO .AND. WNTVAS ) THEN * * Path 3 (M much larger than N, JOBU='O', JOBVT='S' or 'A') * N left singular vectors to be overwritten on A and * N right singular vectors to be computed in VT * IF( LWORK.GE.N*N+3*N ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N )+LDA*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by N * LDWRKU = LDA LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N )+N*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is N by N * LDWRKU = LDA LDWRKR = N ELSE * * WORK(IU) is LDWRKU by N and WORK(IR) is N by N * LDWRKU = ( LWORK-N*N ) / N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to VT, zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ VT( 2, 1 ), LDVT ) * * Generate Q in A * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT, copying result to WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, VT, LDVT, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', N, N, VT, LDVT, WORK( IR ), LDWRKR ) * * Generate left vectors bidiagonalizing R in WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing R in VT * (CWorkspace: need N*N+3*N-1, prefer N*N+2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) and computing right * singular vectors of R in VT * (CWorkspace: need N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, N, 0, S, RWORK( IE ), VT, $ LDVT, WORK( IR ), LDWRKR, CDUM, 1, $ RWORK( IRWORK ), INFO ) IU = ITAUQ * * Multiply Q in A by left singular vectors of R in * WORK(IR), storing result in WORK(IU) and copying to A * (CWorkspace: need N*N+N, prefer N*N+M*N) * (RWorkspace: 0) * DO 20 I = 1, M, LDWRKU CHUNK = MIN( M-I+1, LDWRKU ) CALL ZGEMM( 'N', 'N', CHUNK, N, N, CONE, A( I, 1 ), $ LDA, WORK( IR ), LDWRKR, CZERO, $ WORK( IU ), LDWRKU ) CALL ZLACPY( 'F', CHUNK, N, WORK( IU ), LDWRKU, $ A( I, 1 ), LDA ) 20 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to VT, zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ VT( 2, 1 ), LDVT ) * * Generate Q in A * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: N) * CALL ZGEBRD( N, N, VT, LDVT, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in A by left vectors bidiagonalizing R * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, VT, LDVT, $ WORK( ITAUQ ), A, LDA, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing R in VT * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, M, 0, S, RWORK( IE ), VT, $ LDVT, A, LDA, CDUM, 1, RWORK( IRWORK ), $ INFO ) * END IF * ELSE IF( WNTUS ) THEN * IF( WNTVN ) THEN * * Path 4 (M much larger than N, JOBU='S', JOBVT='N') * N left singular vectors to be computed in U and * no right singular vectors to be computed * IF( LWORK.GE.N*N+3*N ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IR) is LDA by N * LDWRKR = LDA ELSE * * WORK(IR) is N by N * LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IR), zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IR ), $ LDWRKR ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IR+1 ), LDWRKR ) * * Generate Q in A * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IR ), LDWRKR, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing R in WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) * (CWorkspace: need N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, 0, N, 0, S, RWORK( IE ), CDUM, $ 1, WORK( IR ), LDWRKR, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply Q in A by left singular vectors of R in * WORK(IR), storing result in U * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, N, CONE, A, LDA, $ WORK( IR ), LDWRKR, CZERO, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left vectors bidiagonalizing R * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, 0, M, 0, S, RWORK( IE ), CDUM, $ 1, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) * END IF * ELSE IF( WNTVO ) THEN * * Path 5 (M much larger than N, JOBU='S', JOBVT='O') * N left singular vectors to be computed in U and * N right singular vectors to be overwritten on A * IF( LWORK.GE.2*N*N+3*N ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA+N )*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is N by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = N ELSE * * WORK(IU) is N by N and WORK(IR) is N by N * LDWRKU = N IR = IU + LDWRKU*N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need 2*N*N+2*N, prefer 2*N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IU+1 ), LDWRKU ) * * Generate Q in A * (CWorkspace: need 2*N*N+2*N, prefer 2*N*N+N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to * WORK(IR) * (CWorkspace: need 2*N*N+3*N, * prefer 2*N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', N, N, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate left bidiagonalizing vectors in WORK(IU) * (CWorkspace: need 2*N*N+3*N, prefer 2*N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in WORK(IR) * (CWorkspace: need 2*N*N+3*N-1, * prefer 2*N*N+2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in WORK(IR) * (CWorkspace: need 2*N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, N, 0, S, RWORK( IE ), $ WORK( IR ), LDWRKR, WORK( IU ), $ LDWRKU, CDUM, 1, RWORK( IRWORK ), $ INFO ) * * Multiply Q in A by left singular vectors of R in * WORK(IU), storing result in U * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, N, CONE, A, LDA, $ WORK( IU ), LDWRKU, CZERO, U, LDU ) * * Copy right singular vectors of R to A * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZLACPY( 'F', N, N, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left vectors bidiagonalizing R * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing R in A * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in A * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, M, 0, S, RWORK( IE ), A, $ LDA, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) * END IF * ELSE IF( WNTVAS ) THEN * * Path 6 (M much larger than N, JOBU='S', JOBVT='S' * or 'A') * N left singular vectors to be computed in U and * N right singular vectors to be computed in VT * IF( LWORK.GE.N*N+3*N ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IU) is LDA by N * LDWRKU = LDA ELSE * * WORK(IU) is N by N * LDWRKU = N END IF ITAU = IU + LDWRKU*N IWORK = ITAU + N * * Compute A=Q*R * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IU+1 ), LDWRKU ) * * Generate Q in A * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to VT * (CWorkspace: need N*N+3*N, prefer N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', N, N, WORK( IU ), LDWRKU, VT, $ LDVT ) * * Generate left bidiagonalizing vectors in WORK(IU) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (CWorkspace: need N*N+3*N-1, * prefer N*N+2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in VT * (CWorkspace: need N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, N, 0, S, RWORK( IE ), VT, $ LDVT, WORK( IU ), LDWRKU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply Q in A by left singular vectors of R in * WORK(IU), storing result in U * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, N, CONE, A, LDA, $ WORK( IU ), LDWRKU, CZERO, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, N, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to VT, zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ VT( 2, 1 ), LDVT ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, VT, LDVT, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in VT * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, VT, LDVT, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, M, 0, S, RWORK( IE ), VT, $ LDVT, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * END IF * ELSE IF( WNTUA ) THEN * IF( WNTVN ) THEN * * Path 7 (M much larger than N, JOBU='A', JOBVT='N') * M left singular vectors to be computed in U and * no right singular vectors to be computed * IF( LWORK.GE.N*N+MAX( N+M, 3*N ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IR) is LDA by N * LDWRKR = LDA ELSE * * WORK(IR) is N by N * LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Copy R to WORK(IR), zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IR ), $ LDWRKR ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IR+1 ), LDWRKR ) * * Generate Q in U * (CWorkspace: need N*N+N+M, prefer N*N+N+M*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IR ), LDWRKR, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in WORK(IR) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IR) * (CWorkspace: need N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, 0, N, 0, S, RWORK( IE ), CDUM, $ 1, WORK( IR ), LDWRKR, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply Q in U by left singular vectors of R in * WORK(IR), storing result in A * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, N, CONE, U, LDU, $ WORK( IR ), LDWRKR, CZERO, A, LDA ) * * Copy left singular vectors of A from A to U * CALL ZLACPY( 'F', M, N, A, LDA, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need N+M, prefer N+M*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in A * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, 0, M, 0, S, RWORK( IE ), CDUM, $ 1, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) * END IF * ELSE IF( WNTVO ) THEN * * Path 8 (M much larger than N, JOBU='A', JOBVT='O') * M left singular vectors to be computed in U and * N right singular vectors to be overwritten on A * IF( LWORK.GE.2*N*N+MAX( N+M, 3*N ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA+N )*N ) THEN * * WORK(IU) is LDA by N and WORK(IR) is N by N * LDWRKU = LDA IR = IU + LDWRKU*N LDWRKR = N ELSE * * WORK(IU) is N by N and WORK(IR) is N by N * LDWRKU = N IR = IU + LDWRKU*N LDWRKR = N END IF ITAU = IR + LDWRKR*N IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N*N+2*N, prefer 2*N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need 2*N*N+N+M, prefer 2*N*N+N+M*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IU+1 ), LDWRKU ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to * WORK(IR) * (CWorkspace: need 2*N*N+3*N, * prefer 2*N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', N, N, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate left bidiagonalizing vectors in WORK(IU) * (CWorkspace: need 2*N*N+3*N, prefer 2*N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in WORK(IR) * (CWorkspace: need 2*N*N+3*N-1, * prefer 2*N*N+2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in WORK(IR) * (CWorkspace: need 2*N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, N, 0, S, RWORK( IE ), $ WORK( IR ), LDWRKR, WORK( IU ), $ LDWRKU, CDUM, 1, RWORK( IRWORK ), $ INFO ) * * Multiply Q in U by left singular vectors of R in * WORK(IU), storing result in A * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, N, CONE, U, LDU, $ WORK( IU ), LDWRKU, CZERO, A, LDA ) * * Copy left singular vectors of A from A to U * CALL ZLACPY( 'F', M, N, A, LDA, U, LDU ) * * Copy right singular vectors of R from WORK(IR) to A * CALL ZLACPY( 'F', N, N, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need N+M, prefer N+M*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Zero out below R in A * IF( N .GT. 1 ) THEN CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ A( 2, 1 ), LDA ) END IF * * Bidiagonalize R in A * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in A * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, A, LDA, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in A * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in A * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, M, 0, S, RWORK( IE ), A, $ LDA, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) * END IF * ELSE IF( WNTVAS ) THEN * * Path 9 (M much larger than N, JOBU='A', JOBVT='S' * or 'A') * M left singular vectors to be computed in U and * N right singular vectors to be computed in VT * IF( LWORK.GE.N*N+MAX( N+M, 3*N ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*N ) THEN * * WORK(IU) is LDA by N * LDWRKU = LDA ELSE * * WORK(IU) is N by N * LDWRKU = N END IF ITAU = IU + LDWRKU*N IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need N*N+2*N, prefer N*N+N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need N*N+N+M, prefer N*N+N+M*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R to WORK(IU), zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ WORK( IU+1 ), LDWRKU ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in WORK(IU), copying result to VT * (CWorkspace: need N*N+3*N, prefer N*N+2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', N, N, WORK( IU ), LDWRKU, VT, $ LDVT ) * * Generate left bidiagonalizing vectors in WORK(IU) * (CWorkspace: need N*N+3*N, prefer N*N+2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', N, N, N, WORK( IU ), LDWRKU, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (CWorkspace: need N*N+3*N-1, * prefer N*N+2*N+(N-1)*NB) * (RWorkspace: need 0) * CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of R in WORK(IU) and computing * right singular vectors of R in VT * (CWorkspace: need N*N) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, N, 0, S, RWORK( IE ), VT, $ LDVT, WORK( IU ), LDWRKU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply Q in U by left singular vectors of R in * WORK(IU), storing result in A * (CWorkspace: need N*N) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, N, CONE, U, LDU, $ WORK( IU ), LDWRKU, CZERO, A, LDA ) * * Copy left singular vectors of A from A to U * CALL ZLACPY( 'F', M, N, A, LDA, U, LDU ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + N * * Compute A=Q*R, copying result to U * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: 0) * CALL ZGEQRF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) * * Generate Q in U * (CWorkspace: need N+M, prefer N+M*NB) * (RWorkspace: 0) * CALL ZUNGQR( M, M, N, U, LDU, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy R from A to VT, zeroing out below it * CALL ZLACPY( 'U', N, N, A, LDA, VT, LDVT ) IF( N.GT.1 ) $ CALL ZLASET( 'L', N-1, N-1, CZERO, CZERO, $ VT( 2, 1 ), LDVT ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize R in VT * (CWorkspace: need 3*N, prefer 2*N+2*N*NB) * (RWorkspace: need N) * CALL ZGEBRD( N, N, VT, LDVT, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply Q in U by left bidiagonalizing vectors * in VT * (CWorkspace: need 2*N+M, prefer 2*N+M*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'Q', 'R', 'N', M, N, N, VT, LDVT, $ WORK( ITAUQ ), U, LDU, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in VT * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + N * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, N, M, 0, S, RWORK( IE ), VT, $ LDVT, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * END IF * END IF * ELSE * * M .LT. MNTHR * * Path 10 (M at least N, but not much larger) * Reduce to bidiagonal form without QR decomposition * IE = 1 ITAUQ = 1 ITAUP = ITAUQ + N IWORK = ITAUP + N * * Bidiagonalize A * (CWorkspace: need 2*N+M, prefer 2*N+(M+N)*NB) * (RWorkspace: need N) * CALL ZGEBRD( M, N, A, LDA, S, RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) IF( WNTUAS ) THEN * * If left singular vectors desired in U, copy result to U * and generate left bidiagonalizing vectors in U * (CWorkspace: need 2*N+NCU, prefer 2*N+NCU*NB) * (RWorkspace: 0) * CALL ZLACPY( 'L', M, N, A, LDA, U, LDU ) IF( WNTUS ) $ NCU = N IF( WNTUA ) $ NCU = M CALL ZUNGBR( 'Q', M, NCU, N, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVAS ) THEN * * If right singular vectors desired in VT, copy result to * VT and generate right bidiagonalizing vectors in VT * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZLACPY( 'U', N, N, A, LDA, VT, LDVT ) CALL ZUNGBR( 'P', N, N, N, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTUO ) THEN * * If left singular vectors desired in A, generate left * bidiagonalizing vectors in A * (CWorkspace: need 3*N, prefer 2*N+N*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, N, N, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVO ) THEN * * If right singular vectors desired in A, generate right * bidiagonalizing vectors in A * (CWorkspace: need 3*N-1, prefer 2*N+(N-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', N, N, N, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IRWORK = IE + N IF( WNTUAS .OR. WNTUO ) $ NRU = M IF( WNTUN ) $ NRU = 0 IF( WNTVAS .OR. WNTVO ) $ NCVT = N IF( WNTVN ) $ NCVT = 0 IF( ( .NOT.WNTUO ) .AND. ( .NOT.WNTVO ) ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, NCVT, NRU, 0, S, RWORK( IE ), VT, $ LDVT, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) ELSE IF( ( .NOT.WNTUO ) .AND. WNTVO ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in A * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, NCVT, NRU, 0, S, RWORK( IE ), A, $ LDA, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) ELSE * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in A and computing right singular * vectors in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', N, NCVT, NRU, 0, S, RWORK( IE ), VT, $ LDVT, A, LDA, CDUM, 1, RWORK( IRWORK ), $ INFO ) END IF * END IF * ELSE * * A has more columns than rows. If A has sufficiently more * columns than rows, first reduce using the LQ decomposition (if * sufficient workspace available) * IF( N.GE.MNTHR ) THEN * IF( WNTVN ) THEN * * Path 1t(N much larger than M, JOBVT='N') * No right singular vectors to be computed * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Zero out above L * CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, A( 1, 2 ), $ LDA ) IE = 1 ITAUQ = 1 ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in A * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, A, LDA, S, RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) IF( WNTUO .OR. WNTUAS ) THEN * * If left singular vectors desired, generate Q * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IRWORK = IE + M NRU = 0 IF( WNTUO .OR. WNTUAS ) $ NRU = M * * Perform bidiagonal QR iteration, computing left singular * vectors of A in A if desired * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, 0, NRU, 0, S, RWORK( IE ), CDUM, 1, $ A, LDA, CDUM, 1, RWORK( IRWORK ), INFO ) * * If left singular vectors desired in U, copy them there * IF( WNTUAS ) $ CALL ZLACPY( 'F', M, M, A, LDA, U, LDU ) * ELSE IF( WNTVO .AND. WNTUN ) THEN * * Path 2t(N much larger than M, JOBU='N', JOBVT='O') * M right singular vectors to be overwritten on A and * no left singular vectors to be computed * IF( LWORK.GE.M*M+3*M ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N )+LDA*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by M * LDWRKU = LDA CHUNK = N LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N )+M*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is M by M * LDWRKU = LDA CHUNK = N LDWRKR = M ELSE * * WORK(IU) is M by CHUNK and WORK(IR) is M by M * LDWRKU = M CHUNK = ( LWORK-M*M ) / M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IR) and zero out above it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IR ), LDWRKR ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IR+LDWRKR ), LDWRKR ) * * Generate Q in A * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IR) * (CWorkspace: need M*M+3*M, prefer M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IR ), LDWRKR, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing L * (CWorkspace: need M*M+3*M-1, prefer M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of L in WORK(IR) * (CWorkspace: need M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, 0, 0, S, RWORK( IE ), $ WORK( IR ), LDWRKR, CDUM, 1, CDUM, 1, $ RWORK( IRWORK ), INFO ) IU = ITAUQ * * Multiply right singular vectors of L in WORK(IR) by Q * in A, storing result in WORK(IU) and copying to A * (CWorkspace: need M*M+M, prefer M*M+M*N) * (RWorkspace: 0) * DO 30 I = 1, N, CHUNK BLK = MIN( N-I+1, CHUNK ) CALL ZGEMM( 'N', 'N', M, BLK, M, CONE, WORK( IR ), $ LDWRKR, A( 1, I ), LDA, CZERO, $ WORK( IU ), LDWRKU ) CALL ZLACPY( 'F', M, BLK, WORK( IU ), LDWRKU, $ A( 1, I ), LDA ) 30 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * IE = 1 ITAUQ = 1 ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize A * (CWorkspace: need 2*M+N, prefer 2*M+(M+N)*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, N, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing A * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, N, M, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of A in A * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'L', M, N, 0, 0, S, RWORK( IE ), A, LDA, $ CDUM, 1, CDUM, 1, RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTVO .AND. WNTUAS ) THEN * * Path 3t(N much larger than M, JOBU='S' or 'A', JOBVT='O') * M right singular vectors to be overwritten on A and * M left singular vectors to be computed in U * IF( LWORK.GE.M*M+3*M ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.MAX( WRKBL, LDA*N )+LDA*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is LDA by M * LDWRKU = LDA CHUNK = N LDWRKR = LDA ELSE IF( LWORK.GE.MAX( WRKBL, LDA*N )+M*M ) THEN * * WORK(IU) is LDA by N and WORK(IR) is M by M * LDWRKU = LDA CHUNK = N LDWRKR = M ELSE * * WORK(IU) is M by CHUNK and WORK(IR) is M by M * LDWRKU = M CHUNK = ( LWORK-M*M ) / M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing about above it * CALL ZLACPY( 'L', M, M, A, LDA, U, LDU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, U( 1, 2 ), $ LDU ) * * Generate Q in A * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U, copying result to WORK(IR) * (CWorkspace: need M*M+3*M, prefer M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, U, LDU, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, M, U, LDU, WORK( IR ), LDWRKR ) * * Generate right vectors bidiagonalizing L in WORK(IR) * (CWorkspace: need M*M+3*M-1, prefer M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing L in U * (CWorkspace: need M*M+3*M, prefer M*M+2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in U, and computing right * singular vectors of L in WORK(IR) * (CWorkspace: need M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, M, 0, S, RWORK( IE ), $ WORK( IR ), LDWRKR, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) IU = ITAUQ * * Multiply right singular vectors of L in WORK(IR) by Q * in A, storing result in WORK(IU) and copying to A * (CWorkspace: need M*M+M, prefer M*M+M*N)) * (RWorkspace: 0) * DO 40 I = 1, N, CHUNK BLK = MIN( N-I+1, CHUNK ) CALL ZGEMM( 'N', 'N', M, BLK, M, CONE, WORK( IR ), $ LDWRKR, A( 1, I ), LDA, CZERO, $ WORK( IU ), LDWRKU ) CALL ZLACPY( 'F', M, BLK, WORK( IU ), LDWRKU, $ A( 1, I ), LDA ) 40 CONTINUE * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, U, LDU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, U( 1, 2 ), $ LDU ) * * Generate Q in A * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, U, LDU, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right vectors bidiagonalizing L by Q in A * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, U, LDU, $ WORK( ITAUP ), A, LDA, WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left vectors bidiagonalizing L in U * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in A * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, M, 0, S, RWORK( IE ), A, LDA, $ U, LDU, CDUM, 1, RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTVS ) THEN * IF( WNTUN ) THEN * * Path 4t(N much larger than M, JOBU='N', JOBVT='S') * M right singular vectors to be computed in VT and * no left singular vectors to be computed * IF( LWORK.GE.M*M+3*M ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IR) is LDA by M * LDWRKR = LDA ELSE * * WORK(IR) is M by M * LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IR), zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IR ), $ LDWRKR ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IR+LDWRKR ), LDWRKR ) * * Generate Q in A * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IR) * (CWorkspace: need M*M+3*M, prefer M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IR ), LDWRKR, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right vectors bidiagonalizing L in * WORK(IR) * (CWorkspace: need M*M+3*M, prefer M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of L in WORK(IR) * (CWorkspace: need M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, 0, 0, S, RWORK( IE ), $ WORK( IR ), LDWRKR, CDUM, 1, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IR) by * Q in A, storing result in VT * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, M, CONE, WORK( IR ), $ LDWRKR, A, LDA, CZERO, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy result to VT * CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ A( 1, 2 ), LDA ) * * Bidiagonalize L in A * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right vectors bidiagonalizing L by Q in VT * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, 0, 0, S, RWORK( IE ), VT, $ LDVT, CDUM, 1, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTUO ) THEN * * Path 5t(N much larger than M, JOBU='O', JOBVT='S') * M right singular vectors to be computed in VT and * M left singular vectors to be overwritten on A * IF( LWORK.GE.2*M*M+3*M ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is LDA by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA+M )*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is M by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = M ELSE * * WORK(IU) is M by M and WORK(IR) is M by M * LDWRKU = M IR = IU + LDWRKU*M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need 2*M*M+2*M, prefer 2*M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out below it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IU+LDWRKU ), LDWRKU ) * * Generate Q in A * (CWorkspace: need 2*M*M+2*M, prefer 2*M*M+M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to * WORK(IR) * (CWorkspace: need 2*M*M+3*M, * prefer 2*M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, M, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate right bidiagonalizing vectors in WORK(IU) * (CWorkspace: need 2*M*M+3*M-1, * prefer 2*M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in WORK(IR) * (CWorkspace: need 2*M*M+3*M, prefer 2*M*M+2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in WORK(IR) and computing * right singular vectors of L in WORK(IU) * (CWorkspace: need 2*M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, M, 0, S, RWORK( IE ), $ WORK( IU ), LDWRKU, WORK( IR ), $ LDWRKR, CDUM, 1, RWORK( IRWORK ), $ INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in A, storing result in VT * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, M, CONE, WORK( IU ), $ LDWRKU, A, LDA, CZERO, VT, LDVT ) * * Copy left singular vectors of L to A * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZLACPY( 'F', M, M, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ A( 1, 2 ), LDA ) * * Bidiagonalize L in A * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right vectors bidiagonalizing L by Q in VT * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors of L in A * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, M, 0, S, RWORK( IE ), VT, $ LDVT, A, LDA, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTUAS ) THEN * * Path 6t(N much larger than M, JOBU='S' or 'A', * JOBVT='S') * M right singular vectors to be computed in VT and * M left singular vectors to be computed in U * IF( LWORK.GE.M*M+3*M ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IU) is LDA by N * LDWRKU = LDA ELSE * * WORK(IU) is LDA by M * LDWRKU = M END IF ITAU = IU + LDWRKU*M IWORK = ITAU + M * * Compute A=L*Q * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IU+LDWRKU ), LDWRKU ) * * Generate Q in A * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to U * (CWorkspace: need M*M+3*M, prefer M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, M, WORK( IU ), LDWRKU, U, $ LDU ) * * Generate right bidiagonalizing vectors in WORK(IU) * (CWorkspace: need M*M+3*M-1, * prefer M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (CWorkspace: need M*M+3*M, prefer M*M+2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in U and computing right * singular vectors of L in WORK(IU) * (CWorkspace: need M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, M, 0, S, RWORK( IE ), $ WORK( IU ), LDWRKU, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in A, storing result in VT * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, M, CONE, WORK( IU ), $ LDWRKU, A, LDA, CZERO, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZUNGLQ( M, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, U, LDU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ U( 1, 2 ), LDU ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, U, LDU, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in U by Q * in VT * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, U, LDU, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, M, 0, S, RWORK( IE ), VT, $ LDVT, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * END IF * ELSE IF( WNTVA ) THEN * IF( WNTUN ) THEN * * Path 7t(N much larger than M, JOBU='N', JOBVT='A') * N right singular vectors to be computed in VT and * no left singular vectors to be computed * IF( LWORK.GE.M*M+MAX( N+M, 3*M ) ) THEN * * Sufficient workspace for a fast algorithm * IR = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IR) is LDA by M * LDWRKR = LDA ELSE * * WORK(IR) is M by M * LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Copy L to WORK(IR), zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IR ), $ LDWRKR ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IR+LDWRKR ), LDWRKR ) * * Generate Q in VT * (CWorkspace: need M*M+M+N, prefer M*M+M+N*NB) * (RWorkspace: 0) * CALL ZUNGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IR) * (CWorkspace: need M*M+3*M, prefer M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IR ), LDWRKR, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate right bidiagonalizing vectors in WORK(IR) * (CWorkspace: need M*M+3*M-1, * prefer M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of L in WORK(IR) * (CWorkspace: need M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, 0, 0, S, RWORK( IE ), $ WORK( IR ), LDWRKR, CDUM, 1, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IR) by * Q in VT, storing result in A * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, M, CONE, WORK( IR ), $ LDWRKR, VT, LDVT, CZERO, A, LDA ) * * Copy right singular vectors of A from A to VT * CALL ZLACPY( 'F', M, N, A, LDA, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need M+N, prefer M+N*NB) * (RWorkspace: 0) * CALL ZUNGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ A( 1, 2 ), LDA ) * * Bidiagonalize L in A * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in A by Q * in VT * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, 0, 0, S, RWORK( IE ), VT, $ LDVT, CDUM, 1, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTUO ) THEN * * Path 8t(N much larger than M, JOBU='O', JOBVT='A') * N right singular vectors to be computed in VT and * M left singular vectors to be overwritten on A * IF( LWORK.GE.2*M*M+MAX( N+M, 3*M ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+2*LDA*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is LDA by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = LDA ELSE IF( LWORK.GE.WRKBL+( LDA+M )*M ) THEN * * WORK(IU) is LDA by M and WORK(IR) is M by M * LDWRKU = LDA IR = IU + LDWRKU*M LDWRKR = M ELSE * * WORK(IU) is M by M and WORK(IR) is M by M * LDWRKU = M IR = IU + LDWRKU*M LDWRKR = M END IF ITAU = IR + LDWRKR*M IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need 2*M*M+2*M, prefer 2*M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need 2*M*M+M+N, prefer 2*M*M+M+N*NB) * (RWorkspace: 0) * CALL ZUNGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IU+LDWRKU ), LDWRKU ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to * WORK(IR) * (CWorkspace: need 2*M*M+3*M, * prefer 2*M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, M, WORK( IU ), LDWRKU, $ WORK( IR ), LDWRKR ) * * Generate right bidiagonalizing vectors in WORK(IU) * (CWorkspace: need 2*M*M+3*M-1, * prefer 2*M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in WORK(IR) * (CWorkspace: need 2*M*M+3*M, prefer 2*M*M+2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, WORK( IR ), LDWRKR, $ WORK( ITAUQ ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in WORK(IR) and computing * right singular vectors of L in WORK(IU) * (CWorkspace: need 2*M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, M, 0, S, RWORK( IE ), $ WORK( IU ), LDWRKU, WORK( IR ), $ LDWRKR, CDUM, 1, RWORK( IRWORK ), $ INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in VT, storing result in A * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, M, CONE, WORK( IU ), $ LDWRKU, VT, LDVT, CZERO, A, LDA ) * * Copy right singular vectors of A from A to VT * CALL ZLACPY( 'F', M, N, A, LDA, VT, LDVT ) * * Copy left singular vectors of A from WORK(IR) to A * CALL ZLACPY( 'F', M, M, WORK( IR ), LDWRKR, A, $ LDA ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need M+N, prefer M+N*NB) * (RWorkspace: 0) * CALL ZUNGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Zero out above L in A * CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ A( 1, 2 ), LDA ) * * Bidiagonalize L in A * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, A, LDA, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in A by Q * in VT * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, A, LDA, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in A * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in A and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, M, 0, S, RWORK( IE ), VT, $ LDVT, A, LDA, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * ELSE IF( WNTUAS ) THEN * * Path 9t(N much larger than M, JOBU='S' or 'A', * JOBVT='A') * N right singular vectors to be computed in VT and * M left singular vectors to be computed in U * IF( LWORK.GE.M*M+MAX( N+M, 3*M ) ) THEN * * Sufficient workspace for a fast algorithm * IU = 1 IF( LWORK.GE.WRKBL+LDA*M ) THEN * * WORK(IU) is LDA by M * LDWRKU = LDA ELSE * * WORK(IU) is M by M * LDWRKU = M END IF ITAU = IU + LDWRKU*M IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need M*M+2*M, prefer M*M+M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need M*M+M+N, prefer M*M+M+N*NB) * (RWorkspace: 0) * CALL ZUNGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to WORK(IU), zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, WORK( IU ), $ LDWRKU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ WORK( IU+LDWRKU ), LDWRKU ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in WORK(IU), copying result to U * (CWorkspace: need M*M+3*M, prefer M*M+2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, WORK( IU ), LDWRKU, S, $ RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) CALL ZLACPY( 'L', M, M, WORK( IU ), LDWRKU, U, $ LDU ) * * Generate right bidiagonalizing vectors in WORK(IU) * (CWorkspace: need M*M+3*M, prefer M*M+2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, M, M, WORK( IU ), LDWRKU, $ WORK( ITAUP ), WORK( IWORK ), $ LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (CWorkspace: need M*M+3*M, prefer M*M+2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of L in U and computing right * singular vectors of L in WORK(IU) * (CWorkspace: need M*M) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, M, M, 0, S, RWORK( IE ), $ WORK( IU ), LDWRKU, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * * Multiply right singular vectors of L in WORK(IU) by * Q in VT, storing result in A * (CWorkspace: need M*M) * (RWorkspace: 0) * CALL ZGEMM( 'N', 'N', M, N, M, CONE, WORK( IU ), $ LDWRKU, VT, LDVT, CZERO, A, LDA ) * * Copy right singular vectors of A from A to VT * CALL ZLACPY( 'F', M, N, A, LDA, VT, LDVT ) * ELSE * * Insufficient workspace for a fast algorithm * ITAU = 1 IWORK = ITAU + M * * Compute A=L*Q, copying result to VT * (CWorkspace: need 2*M, prefer M+M*NB) * (RWorkspace: 0) * CALL ZGELQF( M, N, A, LDA, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) * * Generate Q in VT * (CWorkspace: need M+N, prefer M+N*NB) * (RWorkspace: 0) * CALL ZUNGLQ( N, N, M, VT, LDVT, WORK( ITAU ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Copy L to U, zeroing out above it * CALL ZLACPY( 'L', M, M, A, LDA, U, LDU ) CALL ZLASET( 'U', M-1, M-1, CZERO, CZERO, $ U( 1, 2 ), LDU ) IE = 1 ITAUQ = ITAU ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize L in U * (CWorkspace: need 3*M, prefer 2*M+2*M*NB) * (RWorkspace: need M) * CALL ZGEBRD( M, M, U, LDU, S, RWORK( IE ), $ WORK( ITAUQ ), WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Multiply right bidiagonalizing vectors in U by Q * in VT * (CWorkspace: need 2*M+N, prefer 2*M+N*NB) * (RWorkspace: 0) * CALL ZUNMBR( 'P', 'L', 'C', M, N, M, U, LDU, $ WORK( ITAUP ), VT, LDVT, $ WORK( IWORK ), LWORK-IWORK+1, IERR ) * * Generate left bidiagonalizing vectors in U * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, M, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) IRWORK = IE + M * * Perform bidiagonal QR iteration, computing left * singular vectors of A in U and computing right * singular vectors of A in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'U', M, N, M, 0, S, RWORK( IE ), VT, $ LDVT, U, LDU, CDUM, 1, $ RWORK( IRWORK ), INFO ) * END IF * END IF * END IF * ELSE * * N .LT. MNTHR * * Path 10t(N greater than M, but not much larger) * Reduce to bidiagonal form without LQ decomposition * IE = 1 ITAUQ = 1 ITAUP = ITAUQ + M IWORK = ITAUP + M * * Bidiagonalize A * (CWorkspace: need 2*M+N, prefer 2*M+(M+N)*NB) * (RWorkspace: M) * CALL ZGEBRD( M, N, A, LDA, S, RWORK( IE ), WORK( ITAUQ ), $ WORK( ITAUP ), WORK( IWORK ), LWORK-IWORK+1, $ IERR ) IF( WNTUAS ) THEN * * If left singular vectors desired in U, copy result to U * and generate left bidiagonalizing vectors in U * (CWorkspace: need 3*M-1, prefer 2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZLACPY( 'L', M, M, A, LDA, U, LDU ) CALL ZUNGBR( 'Q', M, M, N, U, LDU, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVAS ) THEN * * If right singular vectors desired in VT, copy result to * VT and generate right bidiagonalizing vectors in VT * (CWorkspace: need 2*M+NRVT, prefer 2*M+NRVT*NB) * (RWorkspace: 0) * CALL ZLACPY( 'U', M, N, A, LDA, VT, LDVT ) IF( WNTVA ) $ NRVT = N IF( WNTVS ) $ NRVT = M CALL ZUNGBR( 'P', NRVT, N, M, VT, LDVT, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTUO ) THEN * * If left singular vectors desired in A, generate left * bidiagonalizing vectors in A * (CWorkspace: need 3*M-1, prefer 2*M+(M-1)*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'Q', M, M, N, A, LDA, WORK( ITAUQ ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IF( WNTVO ) THEN * * If right singular vectors desired in A, generate right * bidiagonalizing vectors in A * (CWorkspace: need 3*M, prefer 2*M+M*NB) * (RWorkspace: 0) * CALL ZUNGBR( 'P', M, N, M, A, LDA, WORK( ITAUP ), $ WORK( IWORK ), LWORK-IWORK+1, IERR ) END IF IRWORK = IE + M IF( WNTUAS .OR. WNTUO ) $ NRU = M IF( WNTUN ) $ NRU = 0 IF( WNTVAS .OR. WNTVO ) $ NCVT = N IF( WNTVN ) $ NCVT = 0 IF( ( .NOT.WNTUO ) .AND. ( .NOT.WNTVO ) ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'L', M, NCVT, NRU, 0, S, RWORK( IE ), VT, $ LDVT, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) ELSE IF( ( .NOT.WNTUO ) .AND. WNTVO ) THEN * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in U and computing right singular * vectors in A * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'L', M, NCVT, NRU, 0, S, RWORK( IE ), A, $ LDA, U, LDU, CDUM, 1, RWORK( IRWORK ), $ INFO ) ELSE * * Perform bidiagonal QR iteration, if desired, computing * left singular vectors in A and computing right singular * vectors in VT * (CWorkspace: 0) * (RWorkspace: need BDSPAC) * CALL ZBDSQR( 'L', M, NCVT, NRU, 0, S, RWORK( IE ), VT, $ LDVT, A, LDA, CDUM, 1, RWORK( IRWORK ), $ INFO ) END IF * END IF * END IF * * Undo scaling if necessary * IF( ISCL.EQ.1 ) THEN IF( ANRM.GT.BIGNUM ) $ CALL DLASCL( 'G', 0, 0, BIGNUM, ANRM, MINMN, 1, S, MINMN, $ IERR ) IF( INFO.NE.0 .AND. ANRM.GT.BIGNUM ) $ CALL DLASCL( 'G', 0, 0, BIGNUM, ANRM, MINMN-1, 1, $ RWORK( IE ), MINMN, IERR ) IF( ANRM.LT.SMLNUM ) $ CALL DLASCL( 'G', 0, 0, SMLNUM, ANRM, MINMN, 1, S, MINMN, $ IERR ) IF( INFO.NE.0 .AND. ANRM.LT.SMLNUM ) $ CALL DLASCL( 'G', 0, 0, SMLNUM, ANRM, MINMN-1, 1, $ RWORK( IE ), MINMN, IERR ) END IF * * Return optimal workspace in WORK(1) * WORK( 1 ) = MAXWRK * RETURN * * End of ZGESVD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dspev.f0000644000000000000000000000013213543334727015053 xustar0030 mtime=1569569239.307645344 30 atime=1569569239.306645345 30 ctime=1569569239.307645344 elk-6.3.2/src/LAPACK/dspev.f0000644002504400250440000001703613543334727017131 0ustar00dewhurstdewhurst00000000000000*> \brief DSPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSPEV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSPEV( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, UPLO * INTEGER INFO, LDZ, N * .. * .. Array Arguments .. * DOUBLE PRECISION AP( * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSPEV computes all the eigenvalues and, optionally, eigenvectors of a *> real symmetric matrix A in packed storage. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the symmetric matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *> *> On exit, AP is overwritten by values generated during the *> reduction to tridiagonal form. If UPLO = 'U', the diagonal *> and first superdiagonal of the tridiagonal matrix T overwrite *> the corresponding elements of A, and if UPLO = 'L', the *> diagonal and first subdiagonal of T overwrite the *> corresponding elements of A. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ, N) *> If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal *> eigenvectors of the matrix A, with the i-th column of Z *> holding the eigenvector associated with W(i). *> If JOBZ = 'N', then Z is not referenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (3*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = i, the algorithm failed to converge; i *> off-diagonal elements of an intermediate tridiagonal *> form did not converge to zero. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHEReigen * * ===================================================================== SUBROUTINE DSPEV( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, UPLO INTEGER INFO, LDZ, N * .. * .. Array Arguments .. DOUBLE PRECISION AP( * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL WANTZ INTEGER IINFO, IMAX, INDE, INDTAU, INDWRK, ISCALE DOUBLE PRECISION ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, $ SMLNUM * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH, DLANSP EXTERNAL LSAME, DLAMCH, DLANSP * .. * .. External Subroutines .. EXTERNAL DOPGTR, DSCAL, DSPTRD, DSTEQR, DSTERF, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC SQRT * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) $ THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -3 ELSE IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.N ) ) THEN INFO = -7 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSPEV ', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN W( 1 ) = AP( 1 ) IF( WANTZ ) $ Z( 1, 1 ) = ONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = SQRT( BIGNUM ) * * Scale matrix to allowable range, if necessary. * ANRM = DLANSP( 'M', UPLO, N, AP, WORK ) ISCALE = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) THEN CALL DSCAL( ( N*( N+1 ) ) / 2, SIGMA, AP, 1 ) END IF * * Call DSPTRD to reduce symmetric packed matrix to tridiagonal form. * INDE = 1 INDTAU = INDE + N CALL DSPTRD( UPLO, N, AP, W, WORK( INDE ), WORK( INDTAU ), IINFO ) * * For eigenvalues only, call DSTERF. For eigenvectors, first call * DOPGTR to generate the orthogonal matrix, then call DSTEQR. * IF( .NOT.WANTZ ) THEN CALL DSTERF( N, W, WORK( INDE ), INFO ) ELSE INDWRK = INDTAU + N CALL DOPGTR( UPLO, N, AP, WORK( INDTAU ), Z, LDZ, $ WORK( INDWRK ), IINFO ) CALL DSTEQR( JOBZ, N, W, WORK( INDE ), Z, LDZ, WORK( INDTAU ), $ INFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = N ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * RETURN * * End of DSPEV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dspevx.f0000644000000000000000000000013213543334727015243 xustar0030 mtime=1569569239.312645341 30 atime=1569569239.310645342 30 ctime=1569569239.312645341 elk-6.3.2/src/LAPACK/dspevx.f0000644002504400250440000003704313543334727017321 0ustar00dewhurstdewhurst00000000000000*> \brief DSPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSPEVX + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, * ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, * INFO ) * * .. Scalar Arguments .. * CHARACTER JOBZ, RANGE, UPLO * INTEGER IL, INFO, IU, LDZ, M, N * DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. * INTEGER IFAIL( * ), IWORK( * ) * DOUBLE PRECISION AP( * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSPEVX computes selected eigenvalues and, optionally, eigenvectors *> of a real symmetric matrix A in packed storage. Eigenvalues/vectors *> can be selected by specifying either a range of values or a range of *> indices for the desired eigenvalues. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBZ *> \verbatim *> JOBZ is CHARACTER*1 *> = 'N': Compute eigenvalues only; *> = 'V': Compute eigenvalues and eigenvectors. *> \endverbatim *> *> \param[in] RANGE *> \verbatim *> RANGE is CHARACTER*1 *> = 'A': all eigenvalues will be found; *> = 'V': all eigenvalues in the half-open interval (VL,VU] *> will be found; *> = 'I': the IL-th through IU-th eigenvalues will be found. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the symmetric matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *> *> On exit, AP is overwritten by values generated during the *> reduction to tridiagonal form. If UPLO = 'U', the diagonal *> and first superdiagonal of the tridiagonal matrix T overwrite *> the corresponding elements of A, and if UPLO = 'L', the *> diagonal and first subdiagonal of T overwrite the *> corresponding elements of A. *> \endverbatim *> *> \param[in] VL *> \verbatim *> VL is DOUBLE PRECISION *> If RANGE='V', the lower bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] VU *> \verbatim *> VU is DOUBLE PRECISION *> If RANGE='V', the upper bound of the interval to *> be searched for eigenvalues. VL < VU. *> Not referenced if RANGE = 'A' or 'I'. *> \endverbatim *> *> \param[in] IL *> \verbatim *> IL is INTEGER *> If RANGE='I', the index of the *> smallest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] IU *> \verbatim *> IU is INTEGER *> If RANGE='I', the index of the *> largest eigenvalue to be returned. *> 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. *> Not referenced if RANGE = 'A' or 'V'. *> \endverbatim *> *> \param[in] ABSTOL *> \verbatim *> ABSTOL is DOUBLE PRECISION *> The absolute error tolerance for the eigenvalues. *> An approximate eigenvalue is accepted as converged *> when it is determined to lie in an interval [a,b] *> of width less than or equal to *> *> ABSTOL + EPS * max( |a|,|b| ) , *> *> where EPS is the machine precision. If ABSTOL is less than *> or equal to zero, then EPS*|T| will be used in its place, *> where |T| is the 1-norm of the tridiagonal matrix obtained *> by reducing AP to tridiagonal form. *> *> Eigenvalues will be computed most accurately when ABSTOL is *> set to twice the underflow threshold 2*DLAMCH('S'), not zero. *> If this routine returns with INFO>0, indicating that some *> eigenvectors did not converge, try setting ABSTOL to *> 2*DLAMCH('S'). *> *> See "Computing Small Singular Values of Bidiagonal Matrices *> with Guaranteed High Relative Accuracy," by Demmel and *> Kahan, LAPACK Working Note #3. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The total number of eigenvalues found. 0 <= M <= N. *> If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is DOUBLE PRECISION array, dimension (N) *> If INFO = 0, the selected eigenvalues in ascending order. *> \endverbatim *> *> \param[out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension (LDZ, max(1,M)) *> If JOBZ = 'V', then if INFO = 0, the first M columns of Z *> contain the orthonormal eigenvectors of the matrix A *> corresponding to the selected eigenvalues, with the i-th *> column of Z holding the eigenvector associated with W(i). *> If an eigenvector fails to converge, then that column of Z *> contains the latest approximation to the eigenvector, and the *> index of the eigenvector is returned in IFAIL. *> If JOBZ = 'N', then Z is not referenced. *> Note: the user must ensure that at least max(1,M) columns are *> supplied in the array Z; if RANGE = 'V', the exact value of M *> is not known in advance and an upper bound must be used. *> \endverbatim *> *> \param[in] LDZ *> \verbatim *> LDZ is INTEGER *> The leading dimension of the array Z. LDZ >= 1, and if *> JOBZ = 'V', LDZ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (8*N) *> \endverbatim *> *> \param[out] IWORK *> \verbatim *> IWORK is INTEGER array, dimension (5*N) *> \endverbatim *> *> \param[out] IFAIL *> \verbatim *> IFAIL is INTEGER array, dimension (N) *> If JOBZ = 'V', then if INFO = 0, the first M elements of *> IFAIL are zero. If INFO > 0, then IFAIL contains the *> indices of the eigenvectors that failed to converge. *> If JOBZ = 'N', then IFAIL is not referenced. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, then i eigenvectors failed to converge. *> Their indices are stored in array IFAIL. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2016 * *> \ingroup doubleOTHEReigen * * ===================================================================== SUBROUTINE DSPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, $ ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, $ INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ, RANGE, UPLO INTEGER IL, INFO, IU, LDZ, M, N DOUBLE PRECISION ABSTOL, VL, VU * .. * .. Array Arguments .. INTEGER IFAIL( * ), IWORK( * ) DOUBLE PRECISION AP( * ), W( * ), WORK( * ), Z( LDZ, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL ALLEIG, INDEIG, TEST, VALEIG, WANTZ CHARACTER ORDER INTEGER I, IINFO, IMAX, INDD, INDE, INDEE, INDIBL, $ INDISP, INDIWO, INDTAU, INDWRK, ISCALE, ITMP1, $ J, JJ, NSPLIT DOUBLE PRECISION ABSTLL, ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, $ SIGMA, SMLNUM, TMP1, VLL, VUU * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH, DLANSP EXTERNAL LSAME, DLAMCH, DLANSP * .. * .. External Subroutines .. EXTERNAL DCOPY, DOPGTR, DOPMTR, DSCAL, DSPTRD, DSTEBZ, $ DSTEIN, DSTEQR, DSTERF, DSWAP, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * WANTZ = LSAME( JOBZ, 'V' ) ALLEIG = LSAME( RANGE, 'A' ) VALEIG = LSAME( RANGE, 'V' ) INDEIG = LSAME( RANGE, 'I' ) * INFO = 0 IF( .NOT.( WANTZ .OR. LSAME( JOBZ, 'N' ) ) ) THEN INFO = -1 ELSE IF( .NOT.( ALLEIG .OR. VALEIG .OR. INDEIG ) ) THEN INFO = -2 ELSE IF( .NOT.( LSAME( UPLO, 'L' ) .OR. LSAME( UPLO, 'U' ) ) ) $ THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( VALEIG ) THEN IF( N.GT.0 .AND. VU.LE.VL ) $ INFO = -7 ELSE IF( INDEIG ) THEN IF( IL.LT.1 .OR. IL.GT.MAX( 1, N ) ) THEN INFO = -8 ELSE IF( IU.LT.MIN( N, IL ) .OR. IU.GT.N ) THEN INFO = -9 END IF END IF END IF IF( INFO.EQ.0 ) THEN IF( LDZ.LT.1 .OR. ( WANTZ .AND. LDZ.LT.N ) ) $ INFO = -14 END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSPEVX', -INFO ) RETURN END IF * * Quick return if possible * M = 0 IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN IF( ALLEIG .OR. INDEIG ) THEN M = 1 W( 1 ) = AP( 1 ) ELSE IF( VL.LT.AP( 1 ) .AND. VU.GE.AP( 1 ) ) THEN M = 1 W( 1 ) = AP( 1 ) END IF END IF IF( WANTZ ) $ Z( 1, 1 ) = ONE RETURN END IF * * Get machine constants. * SAFMIN = DLAMCH( 'Safe minimum' ) EPS = DLAMCH( 'Precision' ) SMLNUM = SAFMIN / EPS BIGNUM = ONE / SMLNUM RMIN = SQRT( SMLNUM ) RMAX = MIN( SQRT( BIGNUM ), ONE / SQRT( SQRT( SAFMIN ) ) ) * * Scale matrix to allowable range, if necessary. * ISCALE = 0 ABSTLL = ABSTOL IF( VALEIG ) THEN VLL = VL VUU = VU ELSE VLL = ZERO VUU = ZERO END IF ANRM = DLANSP( 'M', UPLO, N, AP, WORK ) IF( ANRM.GT.ZERO .AND. ANRM.LT.RMIN ) THEN ISCALE = 1 SIGMA = RMIN / ANRM ELSE IF( ANRM.GT.RMAX ) THEN ISCALE = 1 SIGMA = RMAX / ANRM END IF IF( ISCALE.EQ.1 ) THEN CALL DSCAL( ( N*( N+1 ) ) / 2, SIGMA, AP, 1 ) IF( ABSTOL.GT.0 ) $ ABSTLL = ABSTOL*SIGMA IF( VALEIG ) THEN VLL = VL*SIGMA VUU = VU*SIGMA END IF END IF * * Call DSPTRD to reduce symmetric packed matrix to tridiagonal form. * INDTAU = 1 INDE = INDTAU + N INDD = INDE + N INDWRK = INDD + N CALL DSPTRD( UPLO, N, AP, WORK( INDD ), WORK( INDE ), $ WORK( INDTAU ), IINFO ) * * If all eigenvalues are desired and ABSTOL is less than or equal * to zero, then call DSTERF or DOPGTR and SSTEQR. If this fails * for some eigenvalue, then try DSTEBZ. * TEST = .FALSE. IF (INDEIG) THEN IF (IL.EQ.1 .AND. IU.EQ.N) THEN TEST = .TRUE. END IF END IF IF ((ALLEIG .OR. TEST) .AND. (ABSTOL.LE.ZERO)) THEN CALL DCOPY( N, WORK( INDD ), 1, W, 1 ) INDEE = INDWRK + 2*N IF( .NOT.WANTZ ) THEN CALL DCOPY( N-1, WORK( INDE ), 1, WORK( INDEE ), 1 ) CALL DSTERF( N, W, WORK( INDEE ), INFO ) ELSE CALL DOPGTR( UPLO, N, AP, WORK( INDTAU ), Z, LDZ, $ WORK( INDWRK ), IINFO ) CALL DCOPY( N-1, WORK( INDE ), 1, WORK( INDEE ), 1 ) CALL DSTEQR( JOBZ, N, W, WORK( INDEE ), Z, LDZ, $ WORK( INDWRK ), INFO ) IF( INFO.EQ.0 ) THEN DO 10 I = 1, N IFAIL( I ) = 0 10 CONTINUE END IF END IF IF( INFO.EQ.0 ) THEN M = N GO TO 20 END IF INFO = 0 END IF * * Otherwise, call DSTEBZ and, if eigenvectors are desired, SSTEIN. * IF( WANTZ ) THEN ORDER = 'B' ELSE ORDER = 'E' END IF INDIBL = 1 INDISP = INDIBL + N INDIWO = INDISP + N CALL DSTEBZ( RANGE, ORDER, N, VLL, VUU, IL, IU, ABSTLL, $ WORK( INDD ), WORK( INDE ), M, NSPLIT, W, $ IWORK( INDIBL ), IWORK( INDISP ), WORK( INDWRK ), $ IWORK( INDIWO ), INFO ) * IF( WANTZ ) THEN CALL DSTEIN( N, WORK( INDD ), WORK( INDE ), M, W, $ IWORK( INDIBL ), IWORK( INDISP ), Z, LDZ, $ WORK( INDWRK ), IWORK( INDIWO ), IFAIL, INFO ) * * Apply orthogonal matrix used in reduction to tridiagonal * form to eigenvectors returned by DSTEIN. * CALL DOPMTR( 'L', UPLO, 'N', N, M, AP, WORK( INDTAU ), Z, LDZ, $ WORK( INDWRK ), IINFO ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. * 20 CONTINUE IF( ISCALE.EQ.1 ) THEN IF( INFO.EQ.0 ) THEN IMAX = M ELSE IMAX = INFO - 1 END IF CALL DSCAL( IMAX, ONE / SIGMA, W, 1 ) END IF * * If eigenvalues are not in order, then sort them, along with * eigenvectors. * IF( WANTZ ) THEN DO 40 J = 1, M - 1 I = 0 TMP1 = W( J ) DO 30 JJ = J + 1, M IF( W( JJ ).LT.TMP1 ) THEN I = JJ TMP1 = W( JJ ) END IF 30 CONTINUE * IF( I.NE.0 ) THEN ITMP1 = IWORK( INDIBL+I-1 ) W( I ) = W( J ) IWORK( INDIBL+I-1 ) = IWORK( INDIBL+J-1 ) W( J ) = TMP1 IWORK( INDIBL+J-1 ) = ITMP1 CALL DSWAP( N, Z( 1, I ), 1, Z( 1, J ), 1 ) IF( INFO.NE.0 ) THEN ITMP1 = IFAIL( I ) IFAIL( I ) = IFAIL( J ) IFAIL( J ) = ITMP1 END IF END IF 40 CONTINUE END IF * RETURN * * End of DSPEVX * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgees.f0000644000000000000000000000013213543334727015047 xustar0030 mtime=1569569239.317645338 30 atime=1569569239.315645339 30 ctime=1569569239.317645338 elk-6.3.2/src/LAPACK/zgees.f0000644002504400250440000003206513543334727017124 0ustar00dewhurstdewhurst00000000000000*> \brief ZGEES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE matrices * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEES + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, * LDVS, WORK, LWORK, RWORK, BWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER JOBVS, SORT * INTEGER INFO, LDA, LDVS, LWORK, N, SDIM * .. * .. Array Arguments .. * LOGICAL BWORK( * ) * DOUBLE PRECISION RWORK( * ) * COMPLEX*16 A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. * LOGICAL SELECT * EXTERNAL SELECT * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEES computes for an N-by-N complex nonsymmetric matrix A, the *> eigenvalues, the Schur form T, and, optionally, the matrix of Schur *> vectors Z. This gives the Schur factorization A = Z*T*(Z**H). *> *> Optionally, it also orders the eigenvalues on the diagonal of the *> Schur form so that selected eigenvalues are at the top left. *> The leading columns of Z then form an orthonormal basis for the *> invariant subspace corresponding to the selected eigenvalues. *> *> A complex matrix is in Schur form if it is upper triangular. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOBVS *> \verbatim *> JOBVS is CHARACTER*1 *> = 'N': Schur vectors are not computed; *> = 'V': Schur vectors are computed. *> \endverbatim *> *> \param[in] SORT *> \verbatim *> SORT is CHARACTER*1 *> Specifies whether or not to order the eigenvalues on the *> diagonal of the Schur form. *> = 'N': Eigenvalues are not ordered: *> = 'S': Eigenvalues are ordered (see SELECT). *> \endverbatim *> *> \param[in] SELECT *> \verbatim *> SELECT is a LOGICAL FUNCTION of one COMPLEX*16 argument *> SELECT must be declared EXTERNAL in the calling subroutine. *> If SORT = 'S', SELECT is used to select eigenvalues to order *> to the top left of the Schur form. *> IF SORT = 'N', SELECT is not referenced. *> The eigenvalue W(j) is selected if SELECT(W(j)) is true. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the N-by-N matrix A. *> On exit, A has been overwritten by its Schur form T. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,N). *> \endverbatim *> *> \param[out] SDIM *> \verbatim *> SDIM is INTEGER *> If SORT = 'N', SDIM = 0. *> If SORT = 'S', SDIM = number of eigenvalues for which *> SELECT is true. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> W contains the computed eigenvalues, in the same order that *> they appear on the diagonal of the output Schur form T. *> \endverbatim *> *> \param[out] VS *> \verbatim *> VS is COMPLEX*16 array, dimension (LDVS,N) *> If JOBVS = 'V', VS contains the unitary matrix Z of Schur *> vectors. *> If JOBVS = 'N', VS is not referenced. *> \endverbatim *> *> \param[in] LDVS *> \verbatim *> LDVS is INTEGER *> The leading dimension of the array VS. LDVS >= 1; if *> JOBVS = 'V', LDVS >= N. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,2*N). *> For good performance, LWORK must generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (N) *> \endverbatim *> *> \param[out] BWORK *> \verbatim *> BWORK is LOGICAL array, dimension (N) *> Not referenced if SORT = 'N'. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> > 0: if INFO = i, and i is *> <= N: the QR algorithm failed to compute all the *> eigenvalues; elements 1:ILO-1 and i+1:N of W *> contain those eigenvalues which have converged; *> if JOBVS = 'V', VS contains the matrix which *> reduces A to its partially converged Schur form. *> = N+1: the eigenvalues could not be reordered because *> some eigenvalues were too close to separate (the *> problem is very ill-conditioned); *> = N+2: after reordering, roundoff changed values of *> some complex eigenvalues so that leading *> eigenvalues in the Schur form no longer satisfy *> SELECT = .TRUE.. This could also be caused by *> underflow due to scaling. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEeigen * * ===================================================================== SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS, $ LDVS, WORK, LWORK, RWORK, BWORK, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER JOBVS, SORT INTEGER INFO, LDA, LDVS, LWORK, N, SDIM * .. * .. Array Arguments .. LOGICAL BWORK( * ) DOUBLE PRECISION RWORK( * ) COMPLEX*16 A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. LOGICAL SELECT EXTERNAL SELECT * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, SCALEA, WANTST, WANTVS INTEGER HSWORK, I, IBAL, ICOND, IERR, IEVAL, IHI, ILO, $ ITAU, IWRK, MAXWRK, MINWRK DOUBLE PRECISION ANRM, BIGNUM, CSCALE, EPS, S, SEP, SMLNUM * .. * .. Local Arrays .. DOUBLE PRECISION DUM( 1 ) * .. * .. External Subroutines .. EXTERNAL DLABAD, XERBLA, ZCOPY, ZGEBAK, ZGEBAL, ZGEHRD, $ ZHSEQR, ZLACPY, ZLASCL, ZTRSEN, ZUNGHR * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV DOUBLE PRECISION DLAMCH, ZLANGE EXTERNAL LSAME, ILAENV, DLAMCH, ZLANGE * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) WANTVS = LSAME( JOBVS, 'V' ) WANTST = LSAME( SORT, 'S' ) IF( ( .NOT.WANTVS ) .AND. ( .NOT.LSAME( JOBVS, 'N' ) ) ) THEN INFO = -1 ELSE IF( ( .NOT.WANTST ) .AND. ( .NOT.LSAME( SORT, 'N' ) ) ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( LDVS.LT.1 .OR. ( WANTVS .AND. LDVS.LT.N ) ) THEN INFO = -10 END IF * * Compute workspace * (Note: Comments in the code beginning "Workspace:" describe the * minimal amount of workspace needed at that point in the code, * as well as the preferred amount for good performance. * CWorkspace refers to complex workspace, and RWorkspace to real * workspace. NB refers to the optimal block size for the * immediately following subroutine, as returned by ILAENV. * HSWORK refers to the workspace preferred by ZHSEQR, as * calculated below. HSWORK is computed assuming ILO=1 and IHI=N, * the worst case.) * IF( INFO.EQ.0 ) THEN IF( N.EQ.0 ) THEN MINWRK = 1 MAXWRK = 1 ELSE MAXWRK = N + N*ILAENV( 1, 'ZGEHRD', ' ', N, 1, N, 0 ) MINWRK = 2*N * CALL ZHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS, $ WORK, -1, IEVAL ) HSWORK = WORK( 1 ) * IF( .NOT.WANTVS ) THEN MAXWRK = MAX( MAXWRK, HSWORK ) ELSE MAXWRK = MAX( MAXWRK, N + ( N - 1 )*ILAENV( 1, 'ZUNGHR', $ ' ', N, 1, N, -1 ) ) MAXWRK = MAX( MAXWRK, HSWORK ) END IF END IF WORK( 1 ) = MAXWRK * IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN INFO = -12 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEES ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN SDIM = 0 RETURN END IF * * Get machine constants * EPS = DLAMCH( 'P' ) SMLNUM = DLAMCH( 'S' ) BIGNUM = ONE / SMLNUM CALL DLABAD( SMLNUM, BIGNUM ) SMLNUM = SQRT( SMLNUM ) / EPS BIGNUM = ONE / SMLNUM * * Scale A if max element outside range [SMLNUM,BIGNUM] * ANRM = ZLANGE( 'M', N, N, A, LDA, DUM ) SCALEA = .FALSE. IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN SCALEA = .TRUE. CSCALE = SMLNUM ELSE IF( ANRM.GT.BIGNUM ) THEN SCALEA = .TRUE. CSCALE = BIGNUM END IF IF( SCALEA ) $ CALL ZLASCL( 'G', 0, 0, ANRM, CSCALE, N, N, A, LDA, IERR ) * * Permute the matrix to make it more nearly triangular * (CWorkspace: none) * (RWorkspace: need N) * IBAL = 1 CALL ZGEBAL( 'P', N, A, LDA, ILO, IHI, RWORK( IBAL ), IERR ) * * Reduce to upper Hessenberg form * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: none) * ITAU = 1 IWRK = N + ITAU CALL ZGEHRD( N, ILO, IHI, A, LDA, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) * IF( WANTVS ) THEN * * Copy Householder vectors to VS * CALL ZLACPY( 'L', N, N, A, LDA, VS, LDVS ) * * Generate unitary matrix in VS * (CWorkspace: need 2*N-1, prefer N+(N-1)*NB) * (RWorkspace: none) * CALL ZUNGHR( N, ILO, IHI, VS, LDVS, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) END IF * SDIM = 0 * * Perform QR iteration, accumulating Schur vectors in VS if desired * (CWorkspace: need 1, prefer HSWORK (see comments) ) * (RWorkspace: none) * IWRK = ITAU CALL ZHSEQR( 'S', JOBVS, N, ILO, IHI, A, LDA, W, VS, LDVS, $ WORK( IWRK ), LWORK-IWRK+1, IEVAL ) IF( IEVAL.GT.0 ) $ INFO = IEVAL * * Sort eigenvalues if desired * IF( WANTST .AND. INFO.EQ.0 ) THEN IF( SCALEA ) $ CALL ZLASCL( 'G', 0, 0, CSCALE, ANRM, N, 1, W, N, IERR ) DO 10 I = 1, N BWORK( I ) = SELECT( W( I ) ) 10 CONTINUE * * Reorder eigenvalues and transform Schur vectors * (CWorkspace: none) * (RWorkspace: none) * CALL ZTRSEN( 'N', JOBVS, BWORK, N, A, LDA, VS, LDVS, W, SDIM, $ S, SEP, WORK( IWRK ), LWORK-IWRK+1, ICOND ) END IF * IF( WANTVS ) THEN * * Undo balancing * (CWorkspace: none) * (RWorkspace: need N) * CALL ZGEBAK( 'P', 'R', N, ILO, IHI, RWORK( IBAL ), N, VS, LDVS, $ IERR ) END IF * IF( SCALEA ) THEN * * Undo scaling for the Schur form of A * CALL ZLASCL( 'U', 0, 0, CSCALE, ANRM, N, N, A, LDA, IERR ) CALL ZCOPY( N, A, LDA+1, W, 1 ) END IF * WORK( 1 ) = MAXWRK RETURN * * End of ZGEES * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgbsv.f0000644000000000000000000000013213543334727015065 xustar0030 mtime=1569569239.321645335 30 atime=1569569239.320645336 30 ctime=1569569239.321645335 elk-6.3.2/src/LAPACK/zgbsv.f0000644002504400250440000001556613543334727017151 0ustar00dewhurstdewhurst00000000000000*> \brief ZGBSV computes the solution to system of linear equations A * X = B for GB matrices (simple driver) * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGBSV + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGBSV( N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, KL, KU, LDAB, LDB, N, NRHS * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 AB( LDAB, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGBSV computes the solution to a complex system of linear equations *> A * X = B, where A is a band matrix of order N with KL subdiagonals *> and KU superdiagonals, and X and B are N-by-NRHS matrices. *> *> The LU decomposition with partial pivoting and row interchanges is *> used to factor A as A = L * U, where L is a product of permutation *> and unit lower triangular matrices with KL subdiagonals, and U is *> upper triangular with KL+KU superdiagonals. The factored form of A *> is then used to solve the system of equations A * X = B. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of linear equations, i.e., the order of the *> matrix A. N >= 0. *> \endverbatim *> *> \param[in] KL *> \verbatim *> KL is INTEGER *> The number of subdiagonals within the band of A. KL >= 0. *> \endverbatim *> *> \param[in] KU *> \verbatim *> KU is INTEGER *> The number of superdiagonals within the band of A. KU >= 0. *> \endverbatim *> *> \param[in] NRHS *> \verbatim *> NRHS is INTEGER *> The number of right hand sides, i.e., the number of columns *> of the matrix B. NRHS >= 0. *> \endverbatim *> *> \param[in,out] AB *> \verbatim *> AB is COMPLEX*16 array, dimension (LDAB,N) *> On entry, the matrix A in band storage, in rows KL+1 to *> 2*KL+KU+1; rows 1 to KL of the array need not be set. *> The j-th column of A is stored in the j-th column of the *> array AB as follows: *> AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+KL) *> On exit, details of the factorization: U is stored as an *> upper triangular band matrix with KL+KU superdiagonals in *> rows 1 to KL+KU+1, and the multipliers used during the *> factorization are stored in rows KL+KU+2 to 2*KL+KU+1. *> See below for further details. *> \endverbatim *> *> \param[in] LDAB *> \verbatim *> LDAB is INTEGER *> The leading dimension of the array AB. LDAB >= 2*KL+KU+1. *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices that define the permutation matrix P; *> row i of the matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,NRHS) *> On entry, the N-by-NRHS right hand side matrix B. *> On exit, if INFO = 0, the N-by-NRHS solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and the solution has not been computed. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GBsolve * *> \par Further Details: * ===================== *> *> \verbatim *> *> The band storage scheme is illustrated by the following example, when *> M = N = 6, KL = 2, KU = 1: *> *> On entry: On exit: *> *> * * * + + + * * * u14 u25 u36 *> * * + + + + * * u13 u24 u35 u46 *> * a12 a23 a34 a45 a56 * u12 u23 u34 u45 u56 *> a11 a22 a33 a44 a55 a66 u11 u22 u33 u44 u55 u66 *> a21 a32 a43 a54 a65 * m21 m32 m43 m54 m65 * *> a31 a42 a53 a64 * * m31 m42 m53 m64 * * *> *> Array elements marked * are not used by the routine; elements marked *> + need not be set on entry, but are required by the routine to store *> elements of U because of fill-in resulting from the row interchanges. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGBSV( N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO ) * * -- LAPACK driver routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, KL, KU, LDAB, LDB, N, NRHS * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 AB( LDAB, * ), B( LDB, * ) * .. * * ===================================================================== * * .. External Subroutines .. EXTERNAL XERBLA, ZGBTRF, ZGBTRS * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 IF( N.LT.0 ) THEN INFO = -1 ELSE IF( KL.LT.0 ) THEN INFO = -2 ELSE IF( KU.LT.0 ) THEN INFO = -3 ELSE IF( NRHS.LT.0 ) THEN INFO = -4 ELSE IF( LDAB.LT.2*KL+KU+1 ) THEN INFO = -6 ELSE IF( LDB.LT.MAX( N, 1 ) ) THEN INFO = -9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGBSV ', -INFO ) RETURN END IF * * Compute the LU factorization of the band matrix A. * CALL ZGBTRF( N, N, KL, KU, AB, LDAB, IPIV, INFO ) IF( INFO.EQ.0 ) THEN * * Solve the system A*X = B, overwriting B with X. * CALL ZGBTRS( 'No transpose', N, KL, KU, NRHS, AB, LDAB, IPIV, $ B, LDB, INFO ) END IF RETURN * * End of ZGBSV * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasq2.f0000644000000000000000000000013213543334727015120 xustar0030 mtime=1569569239.326645332 30 atime=1569569239.324645333 30 ctime=1569569239.326645332 elk-6.3.2/src/LAPACK/dlasq2.f0000644002504400250440000004116713543334727017200 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd Array Z to high relative accuracy. Used by sbdsqr and sstegr. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASQ2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASQ2( N, Z, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, N * .. * .. Array Arguments .. * DOUBLE PRECISION Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASQ2 computes all the eigenvalues of the symmetric positive *> definite tridiagonal matrix associated with the qd array Z to high *> relative accuracy are computed to high relative accuracy, in the *> absence of denormalization, underflow and overflow. *> *> To see the relation of Z to the tridiagonal matrix, let L be a *> unit lower bidiagonal matrix with subdiagonals Z(2,4,6,,..) and *> let U be an upper bidiagonal matrix with 1's above and diagonal *> Z(1,3,5,,..). The tridiagonal is L*U or, if you prefer, the *> symmetric tridiagonal to which it is similar. *> *> Note : DLASQ2 defines a logical variable, IEEE, which is true *> on machines which follow ieee-754 floating-point standard in their *> handling of infinities and NaNs, and false otherwise. This variable *> is passed to DLASQ3. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of rows and columns in the matrix. N >= 0. *> \endverbatim *> *> \param[in,out] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension ( 4*N ) *> On entry Z holds the qd array. On exit, entries 1 to N hold *> the eigenvalues in decreasing order, Z( 2*N+1 ) holds the *> trace, and Z( 2*N+2 ) holds the sum of the eigenvalues. If *> N > 2, then Z( 2*N+3 ) holds the iteration count, Z( 2*N+4 ) *> holds NDIVS/NIN^2, and Z( 2*N+5 ) holds the percentage of *> shifts that failed. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if the i-th argument is a scalar and had an illegal *> value, then INFO = -i, if the i-th argument is an *> array and the j-entry had an illegal value, then *> INFO = -(i*100+j) *> > 0: the algorithm failed *> = 1, a split was marked by a positive value in E *> = 2, current block of Z not diagonalized after 100*N *> iterations (in inner while loop). On exit Z holds *> a qd array with the same eigenvalues as the given Z. *> = 3, termination criterion of outer while loop not met *> (program created more than N unreduced blocks) *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> Local Variables: I0:N0 defines a current unreduced segment of Z. *> The shifts are accumulated in SIGMA. Iteration count is in ITER. *> Ping-pong is controlled by PP (alternates between 0 and 1). *> \endverbatim *> * ===================================================================== SUBROUTINE DLASQ2( N, Z, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, N * .. * .. Array Arguments .. DOUBLE PRECISION Z( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION CBIAS PARAMETER ( CBIAS = 1.50D0 ) DOUBLE PRECISION ZERO, HALF, ONE, TWO, FOUR, HUNDRD PARAMETER ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0, $ TWO = 2.0D0, FOUR = 4.0D0, HUNDRD = 100.0D0 ) * .. * .. Local Scalars .. LOGICAL IEEE INTEGER I0, I1, I4, IINFO, IPN4, ITER, IWHILA, IWHILB, $ K, KMIN, N0, N1, NBIG, NDIV, NFAIL, PP, SPLT, $ TTYPE DOUBLE PRECISION D, DEE, DEEMIN, DESIG, DMIN, DMIN1, DMIN2, DN, $ DN1, DN2, E, EMAX, EMIN, EPS, G, OLDEMN, QMAX, $ QMIN, S, SAFMIN, SIGMA, T, TAU, TEMP, TOL, $ TOL2, TRACE, ZMAX, TEMPE, TEMPQ * .. * .. External Subroutines .. EXTERNAL DLASQ3, DLASRT, XERBLA * .. * .. External Functions .. INTEGER ILAENV DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH, ILAENV * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, MAX, MIN, SQRT * .. * .. Executable Statements .. * * Test the input arguments. * (in case DLASQ2 is not called by DLASQ1) * INFO = 0 EPS = DLAMCH( 'Precision' ) SAFMIN = DLAMCH( 'Safe minimum' ) TOL = EPS*HUNDRD TOL2 = TOL**2 * IF( N.LT.0 ) THEN INFO = -1 CALL XERBLA( 'DLASQ2', 1 ) RETURN ELSE IF( N.EQ.0 ) THEN RETURN ELSE IF( N.EQ.1 ) THEN * * 1-by-1 case. * IF( Z( 1 ).LT.ZERO ) THEN INFO = -201 CALL XERBLA( 'DLASQ2', 2 ) END IF RETURN ELSE IF( N.EQ.2 ) THEN * * 2-by-2 case. * IF( Z( 2 ).LT.ZERO .OR. Z( 3 ).LT.ZERO ) THEN INFO = -2 CALL XERBLA( 'DLASQ2', 2 ) RETURN ELSE IF( Z( 3 ).GT.Z( 1 ) ) THEN D = Z( 3 ) Z( 3 ) = Z( 1 ) Z( 1 ) = D END IF Z( 5 ) = Z( 1 ) + Z( 2 ) + Z( 3 ) IF( Z( 2 ).GT.Z( 3 )*TOL2 ) THEN T = HALF*( ( Z( 1 )-Z( 3 ) )+Z( 2 ) ) S = Z( 3 )*( Z( 2 ) / T ) IF( S.LE.T ) THEN S = Z( 3 )*( Z( 2 ) / ( T*( ONE+SQRT( ONE+S / T ) ) ) ) ELSE S = Z( 3 )*( Z( 2 ) / ( T+SQRT( T )*SQRT( T+S ) ) ) END IF T = Z( 1 ) + ( S+Z( 2 ) ) Z( 3 ) = Z( 3 )*( Z( 1 ) / T ) Z( 1 ) = T END IF Z( 2 ) = Z( 3 ) Z( 6 ) = Z( 2 ) + Z( 1 ) RETURN END IF * * Check for negative data and compute sums of q's and e's. * Z( 2*N ) = ZERO EMIN = Z( 2 ) QMAX = ZERO ZMAX = ZERO D = ZERO E = ZERO * DO 10 K = 1, 2*( N-1 ), 2 IF( Z( K ).LT.ZERO ) THEN INFO = -( 200+K ) CALL XERBLA( 'DLASQ2', 2 ) RETURN ELSE IF( Z( K+1 ).LT.ZERO ) THEN INFO = -( 200+K+1 ) CALL XERBLA( 'DLASQ2', 2 ) RETURN END IF D = D + Z( K ) E = E + Z( K+1 ) QMAX = MAX( QMAX, Z( K ) ) EMIN = MIN( EMIN, Z( K+1 ) ) ZMAX = MAX( QMAX, ZMAX, Z( K+1 ) ) 10 CONTINUE IF( Z( 2*N-1 ).LT.ZERO ) THEN INFO = -( 200+2*N-1 ) CALL XERBLA( 'DLASQ2', 2 ) RETURN END IF D = D + Z( 2*N-1 ) QMAX = MAX( QMAX, Z( 2*N-1 ) ) ZMAX = MAX( QMAX, ZMAX ) * * Check for diagonality. * IF( E.EQ.ZERO ) THEN DO 20 K = 2, N Z( K ) = Z( 2*K-1 ) 20 CONTINUE CALL DLASRT( 'D', N, Z, IINFO ) Z( 2*N-1 ) = D RETURN END IF * TRACE = D + E * * Check for zero data. * IF( TRACE.EQ.ZERO ) THEN Z( 2*N-1 ) = ZERO RETURN END IF * * Check whether the machine is IEEE conformable. * IEEE = ILAENV( 10, 'DLASQ2', 'N', 1, 2, 3, 4 ).EQ.1 .AND. $ ILAENV( 11, 'DLASQ2', 'N', 1, 2, 3, 4 ).EQ.1 * * Rearrange data for locality: Z=(q1,qq1,e1,ee1,q2,qq2,e2,ee2,...). * DO 30 K = 2*N, 2, -2 Z( 2*K ) = ZERO Z( 2*K-1 ) = Z( K ) Z( 2*K-2 ) = ZERO Z( 2*K-3 ) = Z( K-1 ) 30 CONTINUE * I0 = 1 N0 = N * * Reverse the qd-array, if warranted. * IF( CBIAS*Z( 4*I0-3 ).LT.Z( 4*N0-3 ) ) THEN IPN4 = 4*( I0+N0 ) DO 40 I4 = 4*I0, 2*( I0+N0-1 ), 4 TEMP = Z( I4-3 ) Z( I4-3 ) = Z( IPN4-I4-3 ) Z( IPN4-I4-3 ) = TEMP TEMP = Z( I4-1 ) Z( I4-1 ) = Z( IPN4-I4-5 ) Z( IPN4-I4-5 ) = TEMP 40 CONTINUE END IF * * Initial split checking via dqd and Li's test. * PP = 0 * DO 80 K = 1, 2 * D = Z( 4*N0+PP-3 ) DO 50 I4 = 4*( N0-1 ) + PP, 4*I0 + PP, -4 IF( Z( I4-1 ).LE.TOL2*D ) THEN Z( I4-1 ) = -ZERO D = Z( I4-3 ) ELSE D = Z( I4-3 )*( D / ( D+Z( I4-1 ) ) ) END IF 50 CONTINUE * * dqd maps Z to ZZ plus Li's test. * EMIN = Z( 4*I0+PP+1 ) D = Z( 4*I0+PP-3 ) DO 60 I4 = 4*I0 + PP, 4*( N0-1 ) + PP, 4 Z( I4-2*PP-2 ) = D + Z( I4-1 ) IF( Z( I4-1 ).LE.TOL2*D ) THEN Z( I4-1 ) = -ZERO Z( I4-2*PP-2 ) = D Z( I4-2*PP ) = ZERO D = Z( I4+1 ) ELSE IF( SAFMIN*Z( I4+1 ).LT.Z( I4-2*PP-2 ) .AND. $ SAFMIN*Z( I4-2*PP-2 ).LT.Z( I4+1 ) ) THEN TEMP = Z( I4+1 ) / Z( I4-2*PP-2 ) Z( I4-2*PP ) = Z( I4-1 )*TEMP D = D*TEMP ELSE Z( I4-2*PP ) = Z( I4+1 )*( Z( I4-1 ) / Z( I4-2*PP-2 ) ) D = Z( I4+1 )*( D / Z( I4-2*PP-2 ) ) END IF EMIN = MIN( EMIN, Z( I4-2*PP ) ) 60 CONTINUE Z( 4*N0-PP-2 ) = D * * Now find qmax. * QMAX = Z( 4*I0-PP-2 ) DO 70 I4 = 4*I0 - PP + 2, 4*N0 - PP - 2, 4 QMAX = MAX( QMAX, Z( I4 ) ) 70 CONTINUE * * Prepare for the next iteration on K. * PP = 1 - PP 80 CONTINUE * * Initialise variables to pass to DLASQ3. * TTYPE = 0 DMIN1 = ZERO DMIN2 = ZERO DN = ZERO DN1 = ZERO DN2 = ZERO G = ZERO TAU = ZERO * ITER = 2 NFAIL = 0 NDIV = 2*( N0-I0 ) * DO 160 IWHILA = 1, N + 1 IF( N0.LT.1 ) $ GO TO 170 * * While array unfinished do * * E(N0) holds the value of SIGMA when submatrix in I0:N0 * splits from the rest of the array, but is negated. * DESIG = ZERO IF( N0.EQ.N ) THEN SIGMA = ZERO ELSE SIGMA = -Z( 4*N0-1 ) END IF IF( SIGMA.LT.ZERO ) THEN INFO = 1 RETURN END IF * * Find last unreduced submatrix's top index I0, find QMAX and * EMIN. Find Gershgorin-type bound if Q's much greater than E's. * EMAX = ZERO IF( N0.GT.I0 ) THEN EMIN = ABS( Z( 4*N0-5 ) ) ELSE EMIN = ZERO END IF QMIN = Z( 4*N0-3 ) QMAX = QMIN DO 90 I4 = 4*N0, 8, -4 IF( Z( I4-5 ).LE.ZERO ) $ GO TO 100 IF( QMIN.GE.FOUR*EMAX ) THEN QMIN = MIN( QMIN, Z( I4-3 ) ) EMAX = MAX( EMAX, Z( I4-5 ) ) END IF QMAX = MAX( QMAX, Z( I4-7 )+Z( I4-5 ) ) EMIN = MIN( EMIN, Z( I4-5 ) ) 90 CONTINUE I4 = 4 * 100 CONTINUE I0 = I4 / 4 PP = 0 * IF( N0-I0.GT.1 ) THEN DEE = Z( 4*I0-3 ) DEEMIN = DEE KMIN = I0 DO 110 I4 = 4*I0+1, 4*N0-3, 4 DEE = Z( I4 )*( DEE /( DEE+Z( I4-2 ) ) ) IF( DEE.LE.DEEMIN ) THEN DEEMIN = DEE KMIN = ( I4+3 )/4 END IF 110 CONTINUE IF( (KMIN-I0)*2.LT.N0-KMIN .AND. $ DEEMIN.LE.HALF*Z(4*N0-3) ) THEN IPN4 = 4*( I0+N0 ) PP = 2 DO 120 I4 = 4*I0, 2*( I0+N0-1 ), 4 TEMP = Z( I4-3 ) Z( I4-3 ) = Z( IPN4-I4-3 ) Z( IPN4-I4-3 ) = TEMP TEMP = Z( I4-2 ) Z( I4-2 ) = Z( IPN4-I4-2 ) Z( IPN4-I4-2 ) = TEMP TEMP = Z( I4-1 ) Z( I4-1 ) = Z( IPN4-I4-5 ) Z( IPN4-I4-5 ) = TEMP TEMP = Z( I4 ) Z( I4 ) = Z( IPN4-I4-4 ) Z( IPN4-I4-4 ) = TEMP 120 CONTINUE END IF END IF * * Put -(initial shift) into DMIN. * DMIN = -MAX( ZERO, QMIN-TWO*SQRT( QMIN )*SQRT( EMAX ) ) * * Now I0:N0 is unreduced. * PP = 0 for ping, PP = 1 for pong. * PP = 2 indicates that flipping was applied to the Z array and * and that the tests for deflation upon entry in DLASQ3 * should not be performed. * NBIG = 100*( N0-I0+1 ) DO 140 IWHILB = 1, NBIG IF( I0.GT.N0 ) $ GO TO 150 * * While submatrix unfinished take a good dqds step. * CALL DLASQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, $ ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, $ DN2, G, TAU ) * PP = 1 - PP * * When EMIN is very small check for splits. * IF( PP.EQ.0 .AND. N0-I0.GE.3 ) THEN IF( Z( 4*N0 ).LE.TOL2*QMAX .OR. $ Z( 4*N0-1 ).LE.TOL2*SIGMA ) THEN SPLT = I0 - 1 QMAX = Z( 4*I0-3 ) EMIN = Z( 4*I0-1 ) OLDEMN = Z( 4*I0 ) DO 130 I4 = 4*I0, 4*( N0-3 ), 4 IF( Z( I4 ).LE.TOL2*Z( I4-3 ) .OR. $ Z( I4-1 ).LE.TOL2*SIGMA ) THEN Z( I4-1 ) = -SIGMA SPLT = I4 / 4 QMAX = ZERO EMIN = Z( I4+3 ) OLDEMN = Z( I4+4 ) ELSE QMAX = MAX( QMAX, Z( I4+1 ) ) EMIN = MIN( EMIN, Z( I4-1 ) ) OLDEMN = MIN( OLDEMN, Z( I4 ) ) END IF 130 CONTINUE Z( 4*N0-1 ) = EMIN Z( 4*N0 ) = OLDEMN I0 = SPLT + 1 END IF END IF * 140 CONTINUE * INFO = 2 * * Maximum number of iterations exceeded, restore the shift * SIGMA and place the new d's and e's in a qd array. * This might need to be done for several blocks * I1 = I0 N1 = N0 145 CONTINUE TEMPQ = Z( 4*I0-3 ) Z( 4*I0-3 ) = Z( 4*I0-3 ) + SIGMA DO K = I0+1, N0 TEMPE = Z( 4*K-5 ) Z( 4*K-5 ) = Z( 4*K-5 ) * (TEMPQ / Z( 4*K-7 )) TEMPQ = Z( 4*K-3 ) Z( 4*K-3 ) = Z( 4*K-3 ) + SIGMA + TEMPE - Z( 4*K-5 ) END DO * * Prepare to do this on the previous block if there is one * IF( I1.GT.1 ) THEN N1 = I1-1 DO WHILE( ( I1.GE.2 ) .AND. ( Z(4*I1-5).GE.ZERO ) ) I1 = I1 - 1 END DO SIGMA = -Z(4*N1-1) GO TO 145 END IF DO K = 1, N Z( 2*K-1 ) = Z( 4*K-3 ) * * Only the block 1..N0 is unfinished. The rest of the e's * must be essentially zero, although sometimes other data * has been stored in them. * IF( K.LT.N0 ) THEN Z( 2*K ) = Z( 4*K-1 ) ELSE Z( 2*K ) = 0 END IF END DO RETURN * * end IWHILB * 150 CONTINUE * 160 CONTINUE * INFO = 3 RETURN * * end IWHILA * 170 CONTINUE * * Move q's to the front. * DO 180 K = 2, N Z( K ) = Z( 4*K-3 ) 180 CONTINUE * * Sort and compute sum of eigenvalues. * CALL DLASRT( 'D', N, Z, IINFO ) * E = ZERO DO 190 K = N, 1, -1 E = E + Z( K ) 190 CONTINUE * * Store trace, sum(eigenvalues) and information on performance. * Z( 2*N+1 ) = TRACE Z( 2*N+2 ) = E Z( 2*N+3 ) = DBLE( ITER ) Z( 2*N+4 ) = DBLE( NDIV ) / DBLE( N**2 ) Z( 2*N+5 ) = HUNDRD*NFAIL / DBLE( ITER ) RETURN * * End of DLASQ2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorgbr.f0000644000000000000000000000013113543334727015210 xustar0030 mtime=1569569239.331645329 29 atime=1569569239.32964533 30 ctime=1569569239.331645329 elk-6.3.2/src/LAPACK/dorgbr.f0000644002504400250440000002323013543334727017260 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORGBR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORGBR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER VECT * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORGBR generates one of the real orthogonal matrices Q or P**T *> determined by DGEBRD when reducing a real matrix A to bidiagonal *> form: A = Q * B * P**T. Q and P**T are defined as products of *> elementary reflectors H(i) or G(i) respectively. *> *> If VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q *> is of order M: *> if m >= k, Q = H(1) H(2) . . . H(k) and DORGBR returns the first n *> columns of Q, where m >= n >= k; *> if m < k, Q = H(1) H(2) . . . H(m-1) and DORGBR returns Q as an *> M-by-M matrix. *> *> If VECT = 'P', A is assumed to have been a K-by-N matrix, and P**T *> is of order N: *> if k < n, P**T = G(k) . . . G(2) G(1) and DORGBR returns the first m *> rows of P**T, where n >= m >= k; *> if k >= n, P**T = G(n-1) . . . G(2) G(1) and DORGBR returns P**T as *> an N-by-N matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] VECT *> \verbatim *> VECT is CHARACTER*1 *> Specifies whether the matrix Q or the matrix P**T is *> required, as defined in the transformation applied by DGEBRD: *> = 'Q': generate Q; *> = 'P': generate P**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q or P**T to be returned. *> M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q or P**T to be returned. *> N >= 0. *> If VECT = 'Q', M >= N >= min(M,K); *> if VECT = 'P', N >= M >= min(N,K). *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> If VECT = 'Q', the number of columns in the original M-by-K *> matrix reduced by DGEBRD. *> If VECT = 'P', the number of rows in the original K-by-N *> matrix reduced by DGEBRD. *> K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the vectors which define the elementary reflectors, *> as returned by DGEBRD. *> On exit, the M-by-N matrix Q or P**T. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension *> (min(M,K)) if VECT = 'Q' *> (min(N,K)) if VECT = 'P' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i) or G(i), which determines Q or P**T, as *> returned by DGEBRD in its array argument TAUQ or TAUP. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,min(M,N)). *> For optimum performance LWORK >= min(M,N)*NB, where NB *> is the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date April 2012 * *> \ingroup doubleGBcomputational * * ===================================================================== SUBROUTINE DORGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * April 2012 * * .. Scalar Arguments .. CHARACTER VECT INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, WANTQ INTEGER I, IINFO, J, LWKOPT, MN * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DORGLQ, DORGQR, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 WANTQ = LSAME( VECT, 'Q' ) MN = MIN( M, N ) LQUERY = ( LWORK.EQ.-1 ) IF( .NOT.WANTQ .AND. .NOT.LSAME( VECT, 'P' ) ) THEN INFO = -1 ELSE IF( M.LT.0 ) THEN INFO = -2 ELSE IF( N.LT.0 .OR. ( WANTQ .AND. ( N.GT.M .OR. N.LT.MIN( M, $ K ) ) ) .OR. ( .NOT.WANTQ .AND. ( M.GT.N .OR. M.LT. $ MIN( N, K ) ) ) ) THEN INFO = -3 ELSE IF( K.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -6 ELSE IF( LWORK.LT.MAX( 1, MN ) .AND. .NOT.LQUERY ) THEN INFO = -9 END IF * IF( INFO.EQ.0 ) THEN WORK( 1 ) = 1 IF( WANTQ ) THEN IF( M.GE.K ) THEN CALL DORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO ) ELSE IF( M.GT.1 ) THEN CALL DORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK, $ -1, IINFO ) END IF END IF ELSE IF( K.LT.N ) THEN CALL DORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO ) ELSE IF( N.GT.1 ) THEN CALL DORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK, $ -1, IINFO ) END IF END IF END IF LWKOPT = WORK( 1 ) LWKOPT = MAX (LWKOPT, MN) END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORGBR', -INFO ) RETURN ELSE IF( LQUERY ) THEN WORK( 1 ) = LWKOPT RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( WANTQ ) THEN * * Form Q, determined by a call to DGEBRD to reduce an m-by-k * matrix * IF( M.GE.K ) THEN * * If m >= k, assume m >= n >= k * CALL DORGQR( M, N, K, A, LDA, TAU, WORK, LWORK, IINFO ) * ELSE * * If m < k, assume m = n * * Shift the vectors which define the elementary reflectors one * column to the right, and set the first row and column of Q * to those of the unit matrix * DO 20 J = M, 2, -1 A( 1, J ) = ZERO DO 10 I = J + 1, M A( I, J ) = A( I, J-1 ) 10 CONTINUE 20 CONTINUE A( 1, 1 ) = ONE DO 30 I = 2, M A( I, 1 ) = ZERO 30 CONTINUE IF( M.GT.1 ) THEN * * Form Q(2:m,2:m) * CALL DORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK, $ LWORK, IINFO ) END IF END IF ELSE * * Form P**T, determined by a call to DGEBRD to reduce a k-by-n * matrix * IF( K.LT.N ) THEN * * If k < n, assume k <= m <= n * CALL DORGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, IINFO ) * ELSE * * If k >= n, assume m = n * * Shift the vectors which define the elementary reflectors one * row downward, and set the first row and column of P**T to * those of the unit matrix * A( 1, 1 ) = ONE DO 40 I = 2, N A( I, 1 ) = ZERO 40 CONTINUE DO 60 J = 2, N DO 50 I = J - 1, 2, -1 A( I, J ) = A( I-1, J ) 50 CONTINUE A( 1, J ) = ZERO 60 CONTINUE IF( N.GT.1 ) THEN * * Form P**T(2:n,2:n) * CALL DORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK, $ LWORK, IINFO ) END IF END IF END IF WORK( 1 ) = LWKOPT RETURN * * End of DORGBR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgelqf.f0000644000000000000000000000013213543334727015174 xustar0030 mtime=1569569239.335645326 30 atime=1569569239.334645327 30 ctime=1569569239.335645326 elk-6.3.2/src/LAPACK/dgelqf.f0000644002504400250440000001660413543334727017252 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGELQF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGELQF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGELQF computes an LQ factorization of a real M-by-N matrix A: *> A = L * Q. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the M-by-N matrix A. *> On exit, the elements on and below the diagonal of the array *> contain the m-by-min(m,n) lower trapezoidal matrix L (L is *> lower triangular if m <= n); the elements above the diagonal, *> with the array TAU, represent the orthogonal matrix Q as a *> product of elementary reflectors (see Further Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,M). *> For optimum performance LWORK >= M*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(k) . . . H(2) H(1), where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i-1) = 0 and v(i) = 1; v(i+1:n) is stored on exit in A(i,i+1:n), *> and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, K, LDWORK, LWKOPT, NB, $ NBMIN, NX * .. * .. External Subroutines .. EXTERNAL DGELQ2, DLARFB, DLARFT, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'DGELQF', ' ', M, N, -1, -1 ) LWKOPT = M*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, M ) .AND. .NOT.LQUERY ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGELQF', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * K = MIN( M, N ) IF( K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = M IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'DGELQF', ' ', M, N, -1, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = M IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DGELQF', ' ', M, N, -1, $ -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code initially * DO 10 I = 1, K - NX, NB IB = MIN( K-I+1, NB ) * * Compute the LQ factorization of the current block * A(i:i+ib-1,i:n) * CALL DGELQ2( IB, N-I+1, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) IF( I+IB.LE.M ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL DLARFT( 'Forward', 'Rowwise', N-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK, LDWORK ) * * Apply H to A(i+ib:m,i:n) from the right * CALL DLARFB( 'Right', 'No transpose', 'Forward', $ 'Rowwise', M-I-IB+1, N-I+1, IB, A( I, I ), $ LDA, WORK, LDWORK, A( I+IB, I ), LDA, $ WORK( IB+1 ), LDWORK ) END IF 10 CONTINUE ELSE I = 1 END IF * * Use unblocked code to factor the last or only block. * IF( I.LE.K ) $ CALL DGELQ2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * WORK( 1 ) = IWS RETURN * * End of DGELQF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorglq.f0000644000000000000000000000013213543334727015222 xustar0030 mtime=1569569239.339645324 30 atime=1569569239.338645324 30 ctime=1569569239.339645324 elk-6.3.2/src/LAPACK/dorglq.f0000644002504400250440000001754113543334727017301 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORGLQ * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORGLQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORGLQ generates an M-by-N real matrix Q with orthonormal rows, *> which is defined as the first M rows of a product of K elementary *> reflectors of order N *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGELQF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. N >= M. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. M >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the i-th row must contain the vector which defines *> the elementary reflector H(i), for i = 1,2,...,k, as returned *> by DGELQF in the first k rows of its array argument A. *> On exit, the M-by-N matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGELQF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,M). *> For optimum performance LWORK >= M*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, J, KI, KK, L, LDWORK, $ LWKOPT, NB, NBMIN, NX * .. * .. External Subroutines .. EXTERNAL DLARFB, DLARFT, DORGL2, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'DORGLQ', ' ', M, N, K, -1 ) LWKOPT = MAX( 1, M )*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.M ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 ELSE IF( LWORK.LT.MAX( 1, M ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORGLQ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.LE.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = M IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'DORGLQ', ' ', M, N, K, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = M IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DORGLQ', ' ', M, N, K, -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code after the last block. * The first kk rows are handled by the block method. * KI = ( ( K-NX-1 ) / NB )*NB KK = MIN( K, KI+NB ) * * Set A(kk+1:m,1:kk) to zero. * DO 20 J = 1, KK DO 10 I = KK + 1, M A( I, J ) = ZERO 10 CONTINUE 20 CONTINUE ELSE KK = 0 END IF * * Use unblocked code for the last or only block. * IF( KK.LT.M ) $ CALL DORGL2( M-KK, N-KK, K-KK, A( KK+1, KK+1 ), LDA, $ TAU( KK+1 ), WORK, IINFO ) * IF( KK.GT.0 ) THEN * * Use blocked code * DO 50 I = KI + 1, 1, -NB IB = MIN( NB, K-I+1 ) IF( I+IB.LE.M ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL DLARFT( 'Forward', 'Rowwise', N-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK, LDWORK ) * * Apply H**T to A(i+ib:m,i:n) from the right * CALL DLARFB( 'Right', 'Transpose', 'Forward', 'Rowwise', $ M-I-IB+1, N-I+1, IB, A( I, I ), LDA, WORK, $ LDWORK, A( I+IB, I ), LDA, WORK( IB+1 ), $ LDWORK ) END IF * * Apply H**T to columns i:n of current block * CALL DORGL2( IB, N-I+1, IB, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * * Set columns 1:i-1 of current block to zero * DO 40 J = 1, I - 1 DO 30 L = I, I + IB - 1 A( L, J ) = ZERO 30 CONTINUE 40 CONTINUE 50 CONTINUE END IF * WORK( 1 ) = IWS RETURN * * End of DORGLQ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlange.f0000644000000000000000000000013013543334727015162 xustar0029 mtime=1569569239.34464532 30 atime=1569569239.343645321 29 ctime=1569569239.34464532 elk-6.3.2/src/LAPACK/dlange.f0000644002504400250440000001333513543334727017240 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of a general rectangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLANGE + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DLANGE( NORM, M, N, A, LDA, WORK ) * * .. Scalar Arguments .. * CHARACTER NORM * INTEGER LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLANGE returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> real matrix A. *> \endverbatim *> *> \return DLANGE *> \verbatim *> *> DLANGE = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in DLANGE as described *> above. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. When M = 0, *> DLANGE is set to zero. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. When N = 0, *> DLANGE is set to zero. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> The m by n matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(M,1). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), *> where LWORK >= M when NORM = 'I'; otherwise, WORK is not *> referenced. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION DLANGE( NORM, M, N, A, LDA, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM INTEGER LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J DOUBLE PRECISION SCALE, SUM, VALUE, TEMP * .. * .. External Subroutines .. EXTERNAL DLASSQ * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, MIN, SQRT * .. * .. Executable Statements .. * IF( MIN( M, N ).EQ.0 ) THEN VALUE = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * VALUE = ZERO DO 20 J = 1, N DO 10 I = 1, M TEMP = ABS( A( I, J ) ) IF( VALUE.LT.TEMP .OR. DISNAN( TEMP ) ) VALUE = TEMP 10 CONTINUE 20 CONTINUE ELSE IF( ( LSAME( NORM, 'O' ) ) .OR. ( NORM.EQ.'1' ) ) THEN * * Find norm1(A). * VALUE = ZERO DO 40 J = 1, N SUM = ZERO DO 30 I = 1, M SUM = SUM + ABS( A( I, J ) ) 30 CONTINUE IF( VALUE.LT.SUM .OR. DISNAN( SUM ) ) VALUE = SUM 40 CONTINUE ELSE IF( LSAME( NORM, 'I' ) ) THEN * * Find normI(A). * DO 50 I = 1, M WORK( I ) = ZERO 50 CONTINUE DO 70 J = 1, N DO 60 I = 1, M WORK( I ) = WORK( I ) + ABS( A( I, J ) ) 60 CONTINUE 70 CONTINUE VALUE = ZERO DO 80 I = 1, M TEMP = WORK( I ) IF( VALUE.LT.TEMP .OR. DISNAN( TEMP ) ) VALUE = TEMP 80 CONTINUE ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE DO 90 J = 1, N CALL DLASSQ( M, A( 1, J ), 1, SCALE, SUM ) 90 CONTINUE VALUE = SCALE*SQRT( SUM ) END IF * DLANGE = VALUE RETURN * * End of DLANGE * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dbdsqr.f0000644000000000000000000000013213543334727015211 xustar0030 mtime=1569569239.350645317 30 atime=1569569239.347645318 30 ctime=1569569239.350645317 elk-6.3.2/src/LAPACK/dbdsqr.f0000644002504400250440000006423213543334727017267 0ustar00dewhurstdewhurst00000000000000*> \brief \b DBDSQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DBDSQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, * LDU, C, LDC, WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU * .. * .. Array Arguments .. * DOUBLE PRECISION C( LDC, * ), D( * ), E( * ), U( LDU, * ), * $ VT( LDVT, * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DBDSQR computes the singular values and, optionally, the right and/or *> left singular vectors from the singular value decomposition (SVD) of *> a real N-by-N (upper or lower) bidiagonal matrix B using the implicit *> zero-shift QR algorithm. The SVD of B has the form *> *> B = Q * S * P**T *> *> where S is the diagonal matrix of singular values, Q is an orthogonal *> matrix of left singular vectors, and P is an orthogonal matrix of *> right singular vectors. If left singular vectors are requested, this *> subroutine actually returns U*Q instead of Q, and, if right singular *> vectors are requested, this subroutine returns P**T*VT instead of *> P**T, for given real input matrices U and VT. When U and VT are the *> orthogonal matrices that reduce a general matrix A to bidiagonal *> form: A = U*B*VT, as computed by DGEBRD, then *> *> A = (U*Q) * S * (P**T*VT) *> *> is the SVD of A. Optionally, the subroutine may also compute Q**T*C *> for a given real input matrix C. *> *> See "Computing Small Singular Values of Bidiagonal Matrices With *> Guaranteed High Relative Accuracy," by J. Demmel and W. Kahan, *> LAPACK Working Note #3 (or SIAM J. Sci. Statist. Comput. vol. 11, *> no. 5, pp. 873-912, Sept 1990) and *> "Accurate singular values and differential qd algorithms," by *> B. Parlett and V. Fernando, Technical Report CPAM-554, Mathematics *> Department, University of California at Berkeley, July 1992 *> for a detailed description of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': B is upper bidiagonal; *> = 'L': B is lower bidiagonal. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix B. N >= 0. *> \endverbatim *> *> \param[in] NCVT *> \verbatim *> NCVT is INTEGER *> The number of columns of the matrix VT. NCVT >= 0. *> \endverbatim *> *> \param[in] NRU *> \verbatim *> NRU is INTEGER *> The number of rows of the matrix U. NRU >= 0. *> \endverbatim *> *> \param[in] NCC *> \verbatim *> NCC is INTEGER *> The number of columns of the matrix C. NCC >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the n diagonal elements of the bidiagonal matrix B. *> On exit, if INFO=0, the singular values of B in decreasing *> order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the N-1 offdiagonal elements of the bidiagonal *> matrix B. *> On exit, if INFO = 0, E is destroyed; if INFO > 0, D and E *> will contain the diagonal and superdiagonal elements of a *> bidiagonal matrix orthogonally equivalent to the one given *> as input. *> \endverbatim *> *> \param[in,out] VT *> \verbatim *> VT is DOUBLE PRECISION array, dimension (LDVT, NCVT) *> On entry, an N-by-NCVT matrix VT. *> On exit, VT is overwritten by P**T * VT. *> Not referenced if NCVT = 0. *> \endverbatim *> *> \param[in] LDVT *> \verbatim *> LDVT is INTEGER *> The leading dimension of the array VT. *> LDVT >= max(1,N) if NCVT > 0; LDVT >= 1 if NCVT = 0. *> \endverbatim *> *> \param[in,out] U *> \verbatim *> U is DOUBLE PRECISION array, dimension (LDU, N) *> On entry, an NRU-by-N matrix U. *> On exit, U is overwritten by U * Q. *> Not referenced if NRU = 0. *> \endverbatim *> *> \param[in] LDU *> \verbatim *> LDU is INTEGER *> The leading dimension of the array U. LDU >= max(1,NRU). *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC, NCC) *> On entry, an N-by-NCC matrix C. *> On exit, C is overwritten by Q**T * C. *> Not referenced if NCC = 0. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. *> LDC >= max(1,N) if NCC > 0; LDC >=1 if NCC = 0. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (4*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: If INFO = -i, the i-th argument had an illegal value *> > 0: *> if NCVT = NRU = NCC = 0, *> = 1, a split was marked by a positive value in E *> = 2, current block of Z not diagonalized after 30*N *> iterations (in inner while loop) *> = 3, termination criterion of outer while loop not met *> (program created more than N unreduced blocks) *> else NCVT = NRU = NCC = 0, *> the algorithm did not converge; D and E contain the *> elements of a bidiagonal matrix which is orthogonally *> similar to the input matrix B; if INFO = i, i *> elements of E have not converged to zero. *> \endverbatim * *> \par Internal Parameters: * ========================= *> *> \verbatim *> TOLMUL DOUBLE PRECISION, default = max(10,min(100,EPS**(-1/8))) *> TOLMUL controls the convergence criterion of the QR loop. *> If it is positive, TOLMUL*EPS is the desired relative *> precision in the computed singular values. *> If it is negative, abs(TOLMUL*EPS*sigma_max) is the *> desired absolute accuracy in the computed singular *> values (corresponds to relative accuracy *> abs(TOLMUL*EPS) in the largest singular value. *> abs(TOLMUL) should be between 1 and 1/EPS, and preferably *> between 10 (for fast convergence) and .1/EPS *> (for there to be some accuracy in the results). *> Default is to lose at either one eighth or 2 of the *> available decimal digits in each computed singular value *> (whichever is smaller). *> *> MAXITR INTEGER, default = 6 *> MAXITR controls the maximum number of passes of the *> algorithm through its inner loop. The algorithms stops *> (and so fails to converge) if the number of passes *> through the inner loop exceeds MAXITR*N**2. *> *> \endverbatim * *> \par Note: * =========== *> *> \verbatim *> Bug report from Cezary Dendek. *> On March 23rd 2017, the INTEGER variable MAXIT = MAXITR*N**2 is *> removed since it can overflow pretty easily (for N larger or equal *> than 18,919). We instead use MAXITDIVN = MAXITR*N. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, $ LDU, C, LDC, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU * .. * .. Array Arguments .. DOUBLE PRECISION C( LDC, * ), D( * ), E( * ), U( LDU, * ), $ VT( LDVT, * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION NEGONE PARAMETER ( NEGONE = -1.0D0 ) DOUBLE PRECISION HNDRTH PARAMETER ( HNDRTH = 0.01D0 ) DOUBLE PRECISION TEN PARAMETER ( TEN = 10.0D0 ) DOUBLE PRECISION HNDRD PARAMETER ( HNDRD = 100.0D0 ) DOUBLE PRECISION MEIGTH PARAMETER ( MEIGTH = -0.125D0 ) INTEGER MAXITR PARAMETER ( MAXITR = 6 ) * .. * .. Local Scalars .. LOGICAL LOWER, ROTATE INTEGER I, IDIR, ISUB, ITER, ITERDIVN, J, LL, LLL, M, $ MAXITDIVN, NM1, NM12, NM13, OLDLL, OLDM DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, $ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, $ SN, THRESH, TOL, TOLMUL, UNFL * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH EXTERNAL LSAME, DLAMCH * .. * .. External Subroutines .. EXTERNAL DLARTG, DLAS2, DLASQ1, DLASR, DLASV2, DROT, $ DSCAL, DSWAP, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, MAX, MIN, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 LOWER = LSAME( UPLO, 'L' ) IF( .NOT.LSAME( UPLO, 'U' ) .AND. .NOT.LOWER ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( NCVT.LT.0 ) THEN INFO = -3 ELSE IF( NRU.LT.0 ) THEN INFO = -4 ELSE IF( NCC.LT.0 ) THEN INFO = -5 ELSE IF( ( NCVT.EQ.0 .AND. LDVT.LT.1 ) .OR. $ ( NCVT.GT.0 .AND. LDVT.LT.MAX( 1, N ) ) ) THEN INFO = -9 ELSE IF( LDU.LT.MAX( 1, NRU ) ) THEN INFO = -11 ELSE IF( ( NCC.EQ.0 .AND. LDC.LT.1 ) .OR. $ ( NCC.GT.0 .AND. LDC.LT.MAX( 1, N ) ) ) THEN INFO = -13 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DBDSQR', -INFO ) RETURN END IF IF( N.EQ.0 ) $ RETURN IF( N.EQ.1 ) $ GO TO 160 * * ROTATE is true if any singular vectors desired, false otherwise * ROTATE = ( NCVT.GT.0 ) .OR. ( NRU.GT.0 ) .OR. ( NCC.GT.0 ) * * If no singular vectors desired, use qd algorithm * IF( .NOT.ROTATE ) THEN CALL DLASQ1( N, D, E, WORK, INFO ) * * If INFO equals 2, dqds didn't finish, try to finish * IF( INFO .NE. 2 ) RETURN INFO = 0 END IF * NM1 = N - 1 NM12 = NM1 + NM1 NM13 = NM12 + NM1 IDIR = 0 * * Get machine constants * EPS = DLAMCH( 'Epsilon' ) UNFL = DLAMCH( 'Safe minimum' ) * * If matrix lower bidiagonal, rotate to be upper bidiagonal * by applying Givens rotations on the left * IF( LOWER ) THEN DO 10 I = 1, N - 1 CALL DLARTG( D( I ), E( I ), CS, SN, R ) D( I ) = R E( I ) = SN*D( I+1 ) D( I+1 ) = CS*D( I+1 ) WORK( I ) = CS WORK( NM1+I ) = SN 10 CONTINUE * * Update singular vectors if desired * IF( NRU.GT.0 ) $ CALL DLASR( 'R', 'V', 'F', NRU, N, WORK( 1 ), WORK( N ), U, $ LDU ) IF( NCC.GT.0 ) $ CALL DLASR( 'L', 'V', 'F', N, NCC, WORK( 1 ), WORK( N ), C, $ LDC ) END IF * * Compute singular values to relative accuracy TOL * (By setting TOL to be negative, algorithm will compute * singular values to absolute accuracy ABS(TOL)*norm(input matrix)) * TOLMUL = MAX( TEN, MIN( HNDRD, EPS**MEIGTH ) ) TOL = TOLMUL*EPS * * Compute approximate maximum, minimum singular values * SMAX = ZERO DO 20 I = 1, N SMAX = MAX( SMAX, ABS( D( I ) ) ) 20 CONTINUE DO 30 I = 1, N - 1 SMAX = MAX( SMAX, ABS( E( I ) ) ) 30 CONTINUE SMINL = ZERO IF( TOL.GE.ZERO ) THEN * * Relative accuracy desired * SMINOA = ABS( D( 1 ) ) IF( SMINOA.EQ.ZERO ) $ GO TO 50 MU = SMINOA DO 40 I = 2, N MU = ABS( D( I ) )*( MU / ( MU+ABS( E( I-1 ) ) ) ) SMINOA = MIN( SMINOA, MU ) IF( SMINOA.EQ.ZERO ) $ GO TO 50 40 CONTINUE 50 CONTINUE SMINOA = SMINOA / SQRT( DBLE( N ) ) THRESH = MAX( TOL*SMINOA, MAXITR*(N*(N*UNFL)) ) ELSE * * Absolute accuracy desired * THRESH = MAX( ABS( TOL )*SMAX, MAXITR*(N*(N*UNFL)) ) END IF * * Prepare for main iteration loop for the singular values * (MAXIT is the maximum number of passes through the inner * loop permitted before nonconvergence signalled.) * MAXITDIVN = MAXITR*N ITERDIVN = 0 ITER = -1 OLDLL = -1 OLDM = -1 * * M points to last element of unconverged part of matrix * M = N * * Begin main iteration loop * 60 CONTINUE * * Check for convergence or exceeding iteration count * IF( M.LE.1 ) $ GO TO 160 * IF( ITER.GE.N ) THEN ITER = ITER - N ITERDIVN = ITERDIVN + 1 IF( ITERDIVN.GE.MAXITDIVN ) $ GO TO 200 END IF * * Find diagonal block of matrix to work on * IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) $ D( M ) = ZERO SMAX = ABS( D( M ) ) SMIN = SMAX DO 70 LLL = 1, M - 1 LL = M - LLL ABSS = ABS( D( LL ) ) ABSE = ABS( E( LL ) ) IF( TOL.LT.ZERO .AND. ABSS.LE.THRESH ) $ D( LL ) = ZERO IF( ABSE.LE.THRESH ) $ GO TO 80 SMIN = MIN( SMIN, ABSS ) SMAX = MAX( SMAX, ABSS, ABSE ) 70 CONTINUE LL = 0 GO TO 90 80 CONTINUE E( LL ) = ZERO * * Matrix splits since E(LL) = 0 * IF( LL.EQ.M-1 ) THEN * * Convergence of bottom singular value, return to top of loop * M = M - 1 GO TO 60 END IF 90 CONTINUE LL = LL + 1 * * E(LL) through E(M-1) are nonzero, E(LL-1) is zero * IF( LL.EQ.M-1 ) THEN * * 2 by 2 block, handle separately * CALL DLASV2( D( M-1 ), E( M-1 ), D( M ), SIGMN, SIGMX, SINR, $ COSR, SINL, COSL ) D( M-1 ) = SIGMX E( M-1 ) = ZERO D( M ) = SIGMN * * Compute singular vectors, if desired * IF( NCVT.GT.0 ) $ CALL DROT( NCVT, VT( M-1, 1 ), LDVT, VT( M, 1 ), LDVT, COSR, $ SINR ) IF( NRU.GT.0 ) $ CALL DROT( NRU, U( 1, M-1 ), 1, U( 1, M ), 1, COSL, SINL ) IF( NCC.GT.0 ) $ CALL DROT( NCC, C( M-1, 1 ), LDC, C( M, 1 ), LDC, COSL, $ SINL ) M = M - 2 GO TO 60 END IF * * If working on new submatrix, choose shift direction * (from larger end diagonal element towards smaller) * IF( LL.GT.OLDM .OR. M.LT.OLDLL ) THEN IF( ABS( D( LL ) ).GE.ABS( D( M ) ) ) THEN * * Chase bulge from top (big end) to bottom (small end) * IDIR = 1 ELSE * * Chase bulge from bottom (big end) to top (small end) * IDIR = 2 END IF END IF * * Apply convergence tests * IF( IDIR.EQ.1 ) THEN * * Run convergence test in forward direction * First apply standard test to bottom of matrix * IF( ABS( E( M-1 ) ).LE.ABS( TOL )*ABS( D( M ) ) .OR. $ ( TOL.LT.ZERO .AND. ABS( E( M-1 ) ).LE.THRESH ) ) THEN E( M-1 ) = ZERO GO TO 60 END IF * IF( TOL.GE.ZERO ) THEN * * If relative accuracy desired, * apply convergence criterion forward * MU = ABS( D( LL ) ) SMINL = MU DO 100 LLL = LL, M - 1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) SMINL = MIN( SMINL, MU ) 100 CONTINUE END IF * ELSE * * Run convergence test in backward direction * First apply standard test to top of matrix * IF( ABS( E( LL ) ).LE.ABS( TOL )*ABS( D( LL ) ) .OR. $ ( TOL.LT.ZERO .AND. ABS( E( LL ) ).LE.THRESH ) ) THEN E( LL ) = ZERO GO TO 60 END IF * IF( TOL.GE.ZERO ) THEN * * If relative accuracy desired, * apply convergence criterion backward * MU = ABS( D( M ) ) SMINL = MU DO 110 LLL = M - 1, LL, -1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) SMINL = MIN( SMINL, MU ) 110 CONTINUE END IF END IF OLDLL = LL OLDM = M * * Compute shift. First, test if shifting would ruin relative * accuracy, and if so set the shift to zero. * IF( TOL.GE.ZERO .AND. N*TOL*( SMINL / SMAX ).LE. $ MAX( EPS, HNDRTH*TOL ) ) THEN * * Use a zero shift to avoid loss of relative accuracy * SHIFT = ZERO ELSE * * Compute the shift from 2-by-2 block at end of matrix * IF( IDIR.EQ.1 ) THEN SLL = ABS( D( LL ) ) CALL DLAS2( D( M-1 ), E( M-1 ), D( M ), SHIFT, R ) ELSE SLL = ABS( D( M ) ) CALL DLAS2( D( LL ), E( LL ), D( LL+1 ), SHIFT, R ) END IF * * Test if shift negligible, and if so set to zero * IF( SLL.GT.ZERO ) THEN IF( ( SHIFT / SLL )**2.LT.EPS ) $ SHIFT = ZERO END IF END IF * * Increment iteration count * ITER = ITER + M - LL * * If SHIFT = 0, do simplified QR iteration * IF( SHIFT.EQ.ZERO ) THEN IF( IDIR.EQ.1 ) THEN * * Chase bulge from top to bottom * Save cosines and sines for later singular vector updates * CS = ONE OLDCS = ONE DO 120 I = LL, M - 1 CALL DLARTG( D( I )*CS, E( I ), CS, SN, R ) IF( I.GT.LL ) $ E( I-1 ) = OLDSN*R CALL DLARTG( OLDCS*R, D( I+1 )*SN, OLDCS, OLDSN, D( I ) ) WORK( I-LL+1 ) = CS WORK( I-LL+1+NM1 ) = SN WORK( I-LL+1+NM12 ) = OLDCS WORK( I-LL+1+NM13 ) = OLDSN 120 CONTINUE H = D( M )*CS D( M ) = H*OLDCS E( M-1 ) = H*OLDSN * * Update singular vectors * IF( NCVT.GT.0 ) $ CALL DLASR( 'L', 'V', 'F', M-LL+1, NCVT, WORK( 1 ), $ WORK( N ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL DLASR( 'R', 'V', 'F', NRU, M-LL+1, WORK( NM12+1 ), $ WORK( NM13+1 ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL DLASR( 'L', 'V', 'F', M-LL+1, NCC, WORK( NM12+1 ), $ WORK( NM13+1 ), C( LL, 1 ), LDC ) * * Test convergence * IF( ABS( E( M-1 ) ).LE.THRESH ) $ E( M-1 ) = ZERO * ELSE * * Chase bulge from bottom to top * Save cosines and sines for later singular vector updates * CS = ONE OLDCS = ONE DO 130 I = M, LL + 1, -1 CALL DLARTG( D( I )*CS, E( I-1 ), CS, SN, R ) IF( I.LT.M ) $ E( I ) = OLDSN*R CALL DLARTG( OLDCS*R, D( I-1 )*SN, OLDCS, OLDSN, D( I ) ) WORK( I-LL ) = CS WORK( I-LL+NM1 ) = -SN WORK( I-LL+NM12 ) = OLDCS WORK( I-LL+NM13 ) = -OLDSN 130 CONTINUE H = D( LL )*CS D( LL ) = H*OLDCS E( LL ) = H*OLDSN * * Update singular vectors * IF( NCVT.GT.0 ) $ CALL DLASR( 'L', 'V', 'B', M-LL+1, NCVT, WORK( NM12+1 ), $ WORK( NM13+1 ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL DLASR( 'R', 'V', 'B', NRU, M-LL+1, WORK( 1 ), $ WORK( N ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL DLASR( 'L', 'V', 'B', M-LL+1, NCC, WORK( 1 ), $ WORK( N ), C( LL, 1 ), LDC ) * * Test convergence * IF( ABS( E( LL ) ).LE.THRESH ) $ E( LL ) = ZERO END IF ELSE * * Use nonzero shift * IF( IDIR.EQ.1 ) THEN * * Chase bulge from top to bottom * Save cosines and sines for later singular vector updates * F = ( ABS( D( LL ) )-SHIFT )* $ ( SIGN( ONE, D( LL ) )+SHIFT / D( LL ) ) G = E( LL ) DO 140 I = LL, M - 1 CALL DLARTG( F, G, COSR, SINR, R ) IF( I.GT.LL ) $ E( I-1 ) = R F = COSR*D( I ) + SINR*E( I ) E( I ) = COSR*E( I ) - SINR*D( I ) G = SINR*D( I+1 ) D( I+1 ) = COSR*D( I+1 ) CALL DLARTG( F, G, COSL, SINL, R ) D( I ) = R F = COSL*E( I ) + SINL*D( I+1 ) D( I+1 ) = COSL*D( I+1 ) - SINL*E( I ) IF( I.LT.M-1 ) THEN G = SINL*E( I+1 ) E( I+1 ) = COSL*E( I+1 ) END IF WORK( I-LL+1 ) = COSR WORK( I-LL+1+NM1 ) = SINR WORK( I-LL+1+NM12 ) = COSL WORK( I-LL+1+NM13 ) = SINL 140 CONTINUE E( M-1 ) = F * * Update singular vectors * IF( NCVT.GT.0 ) $ CALL DLASR( 'L', 'V', 'F', M-LL+1, NCVT, WORK( 1 ), $ WORK( N ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL DLASR( 'R', 'V', 'F', NRU, M-LL+1, WORK( NM12+1 ), $ WORK( NM13+1 ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL DLASR( 'L', 'V', 'F', M-LL+1, NCC, WORK( NM12+1 ), $ WORK( NM13+1 ), C( LL, 1 ), LDC ) * * Test convergence * IF( ABS( E( M-1 ) ).LE.THRESH ) $ E( M-1 ) = ZERO * ELSE * * Chase bulge from bottom to top * Save cosines and sines for later singular vector updates * F = ( ABS( D( M ) )-SHIFT )*( SIGN( ONE, D( M ) )+SHIFT / $ D( M ) ) G = E( M-1 ) DO 150 I = M, LL + 1, -1 CALL DLARTG( F, G, COSR, SINR, R ) IF( I.LT.M ) $ E( I ) = R F = COSR*D( I ) + SINR*E( I-1 ) E( I-1 ) = COSR*E( I-1 ) - SINR*D( I ) G = SINR*D( I-1 ) D( I-1 ) = COSR*D( I-1 ) CALL DLARTG( F, G, COSL, SINL, R ) D( I ) = R F = COSL*E( I-1 ) + SINL*D( I-1 ) D( I-1 ) = COSL*D( I-1 ) - SINL*E( I-1 ) IF( I.GT.LL+1 ) THEN G = SINL*E( I-2 ) E( I-2 ) = COSL*E( I-2 ) END IF WORK( I-LL ) = COSR WORK( I-LL+NM1 ) = -SINR WORK( I-LL+NM12 ) = COSL WORK( I-LL+NM13 ) = -SINL 150 CONTINUE E( LL ) = F * * Test convergence * IF( ABS( E( LL ) ).LE.THRESH ) $ E( LL ) = ZERO * * Update singular vectors if desired * IF( NCVT.GT.0 ) $ CALL DLASR( 'L', 'V', 'B', M-LL+1, NCVT, WORK( NM12+1 ), $ WORK( NM13+1 ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL DLASR( 'R', 'V', 'B', NRU, M-LL+1, WORK( 1 ), $ WORK( N ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL DLASR( 'L', 'V', 'B', M-LL+1, NCC, WORK( 1 ), $ WORK( N ), C( LL, 1 ), LDC ) END IF END IF * * QR iteration finished, go back and check convergence * GO TO 60 * * All singular values converged, so make them positive * 160 CONTINUE DO 170 I = 1, N IF( D( I ).LT.ZERO ) THEN D( I ) = -D( I ) * * Change sign of singular vectors, if desired * IF( NCVT.GT.0 ) $ CALL DSCAL( NCVT, NEGONE, VT( I, 1 ), LDVT ) END IF 170 CONTINUE * * Sort the singular values into decreasing order (insertion sort on * singular values, but only one transposition per singular vector) * DO 190 I = 1, N - 1 * * Scan for smallest D(I) * ISUB = 1 SMIN = D( 1 ) DO 180 J = 2, N + 1 - I IF( D( J ).LE.SMIN ) THEN ISUB = J SMIN = D( J ) END IF 180 CONTINUE IF( ISUB.NE.N+1-I ) THEN * * Swap singular values and vectors * D( ISUB ) = D( N+1-I ) D( N+1-I ) = SMIN IF( NCVT.GT.0 ) $ CALL DSWAP( NCVT, VT( ISUB, 1 ), LDVT, VT( N+1-I, 1 ), $ LDVT ) IF( NRU.GT.0 ) $ CALL DSWAP( NRU, U( 1, ISUB ), 1, U( 1, N+1-I ), 1 ) IF( NCC.GT.0 ) $ CALL DSWAP( NCC, C( ISUB, 1 ), LDC, C( N+1-I, 1 ), LDC ) END IF 190 CONTINUE GO TO 220 * * Maximum number of iterations exceeded, failure to converge * 200 CONTINUE INFO = 0 DO 210 I = 1, N - 1 IF( E( I ).NE.ZERO ) $ INFO = INFO + 1 210 CONTINUE 220 CONTINUE RETURN * * End of DBDSQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dormbr.f0000644000000000000000000000013213543334727015217 xustar0030 mtime=1569569239.355645313 30 atime=1569569239.353645315 30 ctime=1569569239.355645313 elk-6.3.2/src/LAPACK/dormbr.f0000644002504400250440000002515313543334727017274 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORMBR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORMBR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORMBR( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, * LDC, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS, VECT * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> If VECT = 'Q', DORMBR overwrites the general real M-by-N matrix C *> with *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'T': Q**T * C C * Q**T *> *> If VECT = 'P', DORMBR overwrites the general real M-by-N matrix C *> with *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': P * C C * P *> TRANS = 'T': P**T * C C * P**T *> *> Here Q and P**T are the orthogonal matrices determined by DGEBRD when *> reducing a real matrix A to bidiagonal form: A = Q * B * P**T. Q and *> P**T are defined as products of elementary reflectors H(i) and G(i) *> respectively. *> *> Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Thus nq is the *> order of the orthogonal matrix Q or P**T that is applied. *> *> If VECT = 'Q', A is assumed to have been an NQ-by-K matrix: *> if nq >= k, Q = H(1) H(2) . . . H(k); *> if nq < k, Q = H(1) H(2) . . . H(nq-1). *> *> If VECT = 'P', A is assumed to have been a K-by-NQ matrix: *> if k < nq, P = G(1) G(2) . . . G(k); *> if k >= nq, P = G(1) G(2) . . . G(nq-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] VECT *> \verbatim *> VECT is CHARACTER*1 *> = 'Q': apply Q or Q**T; *> = 'P': apply P or P**T. *> \endverbatim *> *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q, Q**T, P or P**T from the Left; *> = 'R': apply Q, Q**T, P or P**T from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q or P; *> = 'T': Transpose, apply Q**T or P**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> If VECT = 'Q', the number of columns in the original *> matrix reduced by DGEBRD. *> If VECT = 'P', the number of rows in the original *> matrix reduced by DGEBRD. *> K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension *> (LDA,min(nq,K)) if VECT = 'Q' *> (LDA,nq) if VECT = 'P' *> The vectors which define the elementary reflectors H(i) and *> G(i), whose products determine the matrices Q and P, as *> returned by DGEBRD. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If VECT = 'Q', LDA >= max(1,nq); *> if VECT = 'P', LDA >= max(1,min(nq,K)). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (min(nq,K)) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i) or G(i) which determines Q or P, as returned *> by DGEBRD in the array argument TAUQ or TAUP. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q *> or P*C or P**T*C or C*P or C*P**T. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For optimum performance LWORK >= N*NB if SIDE = 'L', and *> LWORK >= M*NB if SIDE = 'R', where NB is the optimal *> blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORMBR( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, $ LDC, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS, VECT INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL APPLYQ, LEFT, LQUERY, NOTRAN CHARACTER TRANST INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DORMLQ, DORMQR, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 APPLYQ = LSAME( VECT, 'Q' ) LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q or P and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.APPLYQ .AND. .NOT.LSAME( VECT, 'P' ) ) THEN INFO = -1 ELSE IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -2 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( K.LT.0 ) THEN INFO = -6 ELSE IF( ( APPLYQ .AND. LDA.LT.MAX( 1, NQ ) ) .OR. $ ( .NOT.APPLYQ .AND. LDA.LT.MAX( 1, MIN( NQ, K ) ) ) ) $ THEN INFO = -8 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -11 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -13 END IF * IF( INFO.EQ.0 ) THEN IF( APPLYQ ) THEN IF( LEFT ) THEN NB = ILAENV( 1, 'DORMQR', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'DORMQR', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF ELSE IF( LEFT ) THEN NB = ILAENV( 1, 'DORMLQ', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'DORMLQ', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF END IF LWKOPT = MAX( 1, NW )*NB WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORMBR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * WORK( 1 ) = 1 IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * IF( APPLYQ ) THEN * * Apply Q * IF( NQ.GE.K ) THEN * * Q was determined by a call to DGEBRD with nq >= k * CALL DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, IINFO ) ELSE IF( NQ.GT.1 ) THEN * * Q was determined by a call to DGEBRD with nq < k * IF( LEFT ) THEN MI = M - 1 NI = N I1 = 2 I2 = 1 ELSE MI = M NI = N - 1 I1 = 1 I2 = 2 END IF CALL DORMQR( SIDE, TRANS, MI, NI, NQ-1, A( 2, 1 ), LDA, TAU, $ C( I1, I2 ), LDC, WORK, LWORK, IINFO ) END IF ELSE * * Apply P * IF( NOTRAN ) THEN TRANST = 'T' ELSE TRANST = 'N' END IF IF( NQ.GT.K ) THEN * * P was determined by a call to DGEBRD with nq > k * CALL DORMLQ( SIDE, TRANST, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, IINFO ) ELSE IF( NQ.GT.1 ) THEN * * P was determined by a call to DGEBRD with nq <= k * IF( LEFT ) THEN MI = M - 1 NI = N I1 = 2 I2 = 1 ELSE MI = M NI = N - 1 I1 = 1 I2 = 2 END IF CALL DORMLQ( SIDE, TRANST, MI, NI, NQ-1, A( 1, 2 ), LDA, $ TAU, C( I1, I2 ), LDC, WORK, LWORK, IINFO ) END IF END IF WORK( 1 ) = LWKOPT RETURN * * End of DORMBR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlansp.f0000644000000000000000000000013213543334727015213 xustar0030 mtime=1569569239.359645311 30 atime=1569569239.358645311 30 ctime=1569569239.359645311 elk-6.3.2/src/LAPACK/dlansp.f0000644002504400250440000001726613543334727017276 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLANSP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a symmetric matrix supplied in packed form. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLANSP + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DLANSP( NORM, UPLO, N, AP, WORK ) * * .. Scalar Arguments .. * CHARACTER NORM, UPLO * INTEGER N * .. * .. Array Arguments .. * DOUBLE PRECISION AP( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLANSP returns the value of the one norm, or the Frobenius norm, or *> the infinity norm, or the element of largest absolute value of a *> real symmetric matrix A, supplied in packed form. *> \endverbatim *> *> \return DLANSP *> \verbatim *> *> DLANSP = ( max(abs(A(i,j))), NORM = 'M' or 'm' *> ( *> ( norm1(A), NORM = '1', 'O' or 'o' *> ( *> ( normI(A), NORM = 'I' or 'i' *> ( *> ( normF(A), NORM = 'F', 'f', 'E' or 'e' *> *> where norm1 denotes the one norm of a matrix (maximum column sum), *> normI denotes the infinity norm of a matrix (maximum row sum) and *> normF denotes the Frobenius norm of a matrix (square root of sum of *> squares). Note that max(abs(A(i,j))) is not a consistent matrix norm. *> \endverbatim * * Arguments: * ========== * *> \param[in] NORM *> \verbatim *> NORM is CHARACTER*1 *> Specifies the value to be returned in DLANSP as described *> above. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> Specifies whether the upper or lower triangular part of the *> symmetric matrix A is supplied. *> = 'U': Upper triangular part of A is supplied *> = 'L': Lower triangular part of A is supplied *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. When N = 0, DLANSP is *> set to zero. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2) *> The upper or lower triangle of the symmetric matrix A, packed *> columnwise in a linear array. The j-th column of A is stored *> in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), *> where LWORK >= N when NORM = 'I' or '1' or 'O'; otherwise, *> WORK is not referenced. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERauxiliary * * ===================================================================== DOUBLE PRECISION FUNCTION DLANSP( NORM, UPLO, N, AP, WORK ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER NORM, UPLO INTEGER N * .. * .. Array Arguments .. DOUBLE PRECISION AP( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J, K DOUBLE PRECISION ABSA, SCALE, SUM, VALUE * .. * .. External Subroutines .. EXTERNAL DLASSQ * .. * .. External Functions .. LOGICAL LSAME, DISNAN EXTERNAL LSAME, DISNAN * .. * .. Intrinsic Functions .. INTRINSIC ABS, SQRT * .. * .. Executable Statements .. * IF( N.EQ.0 ) THEN VALUE = ZERO ELSE IF( LSAME( NORM, 'M' ) ) THEN * * Find max(abs(A(i,j))). * VALUE = ZERO IF( LSAME( UPLO, 'U' ) ) THEN K = 1 DO 20 J = 1, N DO 10 I = K, K + J - 1 SUM = ABS( AP( I ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 10 CONTINUE K = K + J 20 CONTINUE ELSE K = 1 DO 40 J = 1, N DO 30 I = K, K + N - J SUM = ABS( AP( I ) ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 30 CONTINUE K = K + N - J + 1 40 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'I' ) ) .OR. ( LSAME( NORM, 'O' ) ) .OR. $ ( NORM.EQ.'1' ) ) THEN * * Find normI(A) ( = norm1(A), since A is symmetric). * VALUE = ZERO K = 1 IF( LSAME( UPLO, 'U' ) ) THEN DO 60 J = 1, N SUM = ZERO DO 50 I = 1, J - 1 ABSA = ABS( AP( K ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA K = K + 1 50 CONTINUE WORK( J ) = SUM + ABS( AP( K ) ) K = K + 1 60 CONTINUE DO 70 I = 1, N SUM = WORK( I ) IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 70 CONTINUE ELSE DO 80 I = 1, N WORK( I ) = ZERO 80 CONTINUE DO 100 J = 1, N SUM = WORK( J ) + ABS( AP( K ) ) K = K + 1 DO 90 I = J + 1, N ABSA = ABS( AP( K ) ) SUM = SUM + ABSA WORK( I ) = WORK( I ) + ABSA K = K + 1 90 CONTINUE IF( VALUE .LT. SUM .OR. DISNAN( SUM ) ) VALUE = SUM 100 CONTINUE END IF ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN * * Find normF(A). * SCALE = ZERO SUM = ONE K = 2 IF( LSAME( UPLO, 'U' ) ) THEN DO 110 J = 2, N CALL DLASSQ( J-1, AP( K ), 1, SCALE, SUM ) K = K + J 110 CONTINUE ELSE DO 120 J = 1, N - 1 CALL DLASSQ( N-J, AP( K ), 1, SCALE, SUM ) K = K + N - J + 1 120 CONTINUE END IF SUM = 2*SUM K = 1 DO 130 I = 1, N IF( AP( K ).NE.ZERO ) THEN ABSA = ABS( AP( K ) ) IF( SCALE.LT.ABSA ) THEN SUM = ONE + SUM*( SCALE / ABSA )**2 SCALE = ABSA ELSE SUM = SUM + ( ABSA / SCALE )**2 END IF END IF IF( LSAME( UPLO, 'U' ) ) THEN K = K + I + 1 ELSE K = K + N - I + 1 END IF 130 CONTINUE VALUE = SCALE*SQRT( SUM ) END IF * DLANSP = VALUE RETURN * * End of DLANSP * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dsptrd.f0000644000000000000000000000013213543334727015232 xustar0030 mtime=1569569239.364645308 30 atime=1569569239.362645309 30 ctime=1569569239.364645308 elk-6.3.2/src/LAPACK/dsptrd.f0000644002504400250440000002116013543334727017301 0ustar00dewhurstdewhurst00000000000000*> \brief \b DSPTRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DSPTRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DSPTRD( UPLO, N, AP, D, E, TAU, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, N * .. * .. Array Arguments .. * DOUBLE PRECISION AP( * ), D( * ), E( * ), TAU( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DSPTRD reduces a real symmetric matrix A stored in packed form to *> symmetric tridiagonal form T by an orthogonal similarity *> transformation: Q**T * A * Q = T. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangle of A is stored; *> = 'L': Lower triangle of A is stored. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2) *> On entry, the upper or lower triangle of the symmetric matrix *> A, packed columnwise in a linear array. The j-th column of A *> is stored in the array AP as follows: *> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; *> if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. *> On exit, if UPLO = 'U', the diagonal and first superdiagonal *> of A are overwritten by the corresponding elements of the *> tridiagonal matrix T, and the elements above the first *> superdiagonal, with the array TAU, represent the orthogonal *> matrix Q as a product of elementary reflectors; if UPLO *> = 'L', the diagonal and first subdiagonal of A are over- *> written by the corresponding elements of the tridiagonal *> matrix T, and the elements below the first subdiagonal, with *> the array TAU, represent the orthogonal matrix Q as a product *> of elementary reflectors. See Further Details. *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> The diagonal elements of the tridiagonal matrix T: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> The off-diagonal elements of the tridiagonal matrix T: *> E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'. *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (N-1) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> If UPLO = 'U', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(n-1) . . . H(2) H(1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP, *> overwriting A(1:i-1,i+1), and tau is stored in TAU(i). *> *> If UPLO = 'L', the matrix Q is represented as a product of elementary *> reflectors *> *> Q = H(1) H(2) . . . H(n-1). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP, *> overwriting A(i+2:n,i), and tau is stored in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DSPTRD( UPLO, N, AP, D, E, TAU, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, N * .. * .. Array Arguments .. DOUBLE PRECISION AP( * ), D( * ), E( * ), TAU( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO, HALF PARAMETER ( ONE = 1.0D0, ZERO = 0.0D0, $ HALF = 1.0D0 / 2.0D0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER I, I1, I1I1, II DOUBLE PRECISION ALPHA, TAUI * .. * .. External Subroutines .. EXTERNAL DAXPY, DLARFG, DSPMV, DSPR2, XERBLA * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DDOT EXTERNAL LSAME, DDOT * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DSPTRD', -INFO ) RETURN END IF * * Quick return if possible * IF( N.LE.0 ) $ RETURN * IF( UPPER ) THEN * * Reduce the upper triangle of A. * I1 is the index in AP of A(1,I+1). * I1 = N*( N-1 ) / 2 + 1 DO 10 I = N - 1, 1, -1 * * Generate elementary reflector H(i) = I - tau * v * v**T * to annihilate A(1:i-1,i+1) * CALL DLARFG( I, AP( I1+I-1 ), AP( I1 ), 1, TAUI ) E( I ) = AP( I1+I-1 ) * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(1:i,1:i) * AP( I1+I-1 ) = ONE * * Compute y := tau * A * v storing y in TAU(1:i) * CALL DSPMV( UPLO, I, TAUI, AP, AP( I1 ), 1, ZERO, TAU, $ 1 ) * * Compute w := y - 1/2 * tau * (y**T *v) * v * ALPHA = -HALF*TAUI*DDOT( I, TAU, 1, AP( I1 ), 1 ) CALL DAXPY( I, ALPHA, AP( I1 ), 1, TAU, 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**T - w * v**T * CALL DSPR2( UPLO, I, -ONE, AP( I1 ), 1, TAU, 1, AP ) * AP( I1+I-1 ) = E( I ) END IF D( I+1 ) = AP( I1+I ) TAU( I ) = TAUI I1 = I1 - I 10 CONTINUE D( 1 ) = AP( 1 ) ELSE * * Reduce the lower triangle of A. II is the index in AP of * A(i,i) and I1I1 is the index of A(i+1,i+1). * II = 1 DO 20 I = 1, N - 1 I1I1 = II + N - I + 1 * * Generate elementary reflector H(i) = I - tau * v * v**T * to annihilate A(i+2:n,i) * CALL DLARFG( N-I, AP( II+1 ), AP( II+2 ), 1, TAUI ) E( I ) = AP( II+1 ) * IF( TAUI.NE.ZERO ) THEN * * Apply H(i) from both sides to A(i+1:n,i+1:n) * AP( II+1 ) = ONE * * Compute y := tau * A * v storing y in TAU(i:n-1) * CALL DSPMV( UPLO, N-I, TAUI, AP( I1I1 ), AP( II+1 ), 1, $ ZERO, TAU( I ), 1 ) * * Compute w := y - 1/2 * tau * (y**T *v) * v * ALPHA = -HALF*TAUI*DDOT( N-I, TAU( I ), 1, AP( II+1 ), $ 1 ) CALL DAXPY( N-I, ALPHA, AP( II+1 ), 1, TAU( I ), 1 ) * * Apply the transformation as a rank-2 update: * A := A - v * w**T - w * v**T * CALL DSPR2( UPLO, N-I, -ONE, AP( II+1 ), 1, TAU( I ), 1, $ AP( I1I1 ) ) * AP( II+1 ) = E( I ) END IF D( I ) = AP( II ) TAU( I ) = TAUI II = I1I1 20 CONTINUE D( N ) = AP( II ) END IF * RETURN * * End of DSPTRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dopgtr.f0000644000000000000000000000013213543334727015231 xustar0030 mtime=1569569239.368645305 30 atime=1569569239.367645306 30 ctime=1569569239.368645305 elk-6.3.2/src/LAPACK/dopgtr.f0000644002504400250440000001366713543334727017315 0ustar00dewhurstdewhurst00000000000000*> \brief \b DOPGTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DOPGTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DOPGTR( UPLO, N, AP, TAU, Q, LDQ, WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDQ, N * .. * .. Array Arguments .. * DOUBLE PRECISION AP( * ), Q( LDQ, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DOPGTR generates a real orthogonal matrix Q which is defined as the *> product of n-1 elementary reflectors H(i) of order n, as returned by *> DSPTRD using packed storage: *> *> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1), *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangular packed storage used in previous *> call to DSPTRD; *> = 'L': Lower triangular packed storage used in previous *> call to DSPTRD. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix Q. N >= 0. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2) *> The vectors which define the elementary reflectors, as *> returned by DSPTRD. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (N-1) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DSPTRD. *> \endverbatim *> *> \param[out] Q *> \verbatim *> Q is DOUBLE PRECISION array, dimension (LDQ,N) *> The N-by-N orthogonal matrix Q. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. LDQ >= max(1,N). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (N-1) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DOPGTR( UPLO, N, AP, TAU, Q, LDQ, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDQ, N * .. * .. Array Arguments .. DOUBLE PRECISION AP( * ), Q( LDQ, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL UPPER INTEGER I, IINFO, IJ, J * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DORG2L, DORG2R, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 UPPER = LSAME( UPLO, 'U' ) IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDQ.LT.MAX( 1, N ) ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DOPGTR', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( UPPER ) THEN * * Q was determined by a call to DSPTRD with UPLO = 'U' * * Unpack the vectors which define the elementary reflectors and * set the last row and column of Q equal to those of the unit * matrix * IJ = 2 DO 20 J = 1, N - 1 DO 10 I = 1, J - 1 Q( I, J ) = AP( IJ ) IJ = IJ + 1 10 CONTINUE IJ = IJ + 2 Q( N, J ) = ZERO 20 CONTINUE DO 30 I = 1, N - 1 Q( I, N ) = ZERO 30 CONTINUE Q( N, N ) = ONE * * Generate Q(1:n-1,1:n-1) * CALL DORG2L( N-1, N-1, N-1, Q, LDQ, TAU, WORK, IINFO ) * ELSE * * Q was determined by a call to DSPTRD with UPLO = 'L'. * * Unpack the vectors which define the elementary reflectors and * set the first row and column of Q equal to those of the unit * matrix * Q( 1, 1 ) = ONE DO 40 I = 2, N Q( I, 1 ) = ZERO 40 CONTINUE IJ = 3 DO 60 J = 2, N Q( 1, J ) = ZERO DO 50 I = J + 1, N Q( I, J ) = AP( IJ ) IJ = IJ + 1 50 CONTINUE IJ = IJ + 2 60 CONTINUE IF( N.GT.1 ) THEN * * Generate Q(2:n,2:n) * CALL DORG2R( N-1, N-1, N-1, Q( 2, 2 ), LDQ, TAU, WORK, $ IINFO ) END IF END IF RETURN * * End of DOPGTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dopmtr.f0000644000000000000000000000013213543334727015237 xustar0030 mtime=1569569239.373645302 30 atime=1569569239.371645303 30 ctime=1569569239.373645302 elk-6.3.2/src/LAPACK/dopmtr.f0000644002504400250440000002101413543334727017304 0ustar00dewhurstdewhurst00000000000000*> \brief \b DOPMTR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DOPMTR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DOPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, * INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS, UPLO * INTEGER INFO, LDC, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION AP( * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DOPMTR overwrites the general real M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'T': Q**T * C C * Q**T *> *> where Q is a real orthogonal matrix of order nq, with nq = m if *> SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of *> nq-1 elementary reflectors, as returned by DSPTRD using packed *> storage: *> *> if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); *> *> if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left; *> = 'R': apply Q or Q**T from the Right. *> \endverbatim *> *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': Upper triangular packed storage used in previous *> call to DSPTRD; *> = 'L': Lower triangular packed storage used in previous *> call to DSPTRD. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'T': Transpose, apply Q**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] AP *> \verbatim *> AP is DOUBLE PRECISION array, dimension *> (M*(M+1)/2) if SIDE = 'L' *> (N*(N+1)/2) if SIDE = 'R' *> The vectors which define the elementary reflectors, as *> returned by DSPTRD. AP is modified by the routine but *> restored on exit. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (M-1) if SIDE = 'L' *> or (N-1) if SIDE = 'R' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DSPTRD. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension *> (N) if SIDE = 'L' *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DOPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS, UPLO INTEGER INFO, LDC, M, N * .. * .. Array Arguments .. DOUBLE PRECISION AP( * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL FORWRD, LEFT, NOTRAN, UPPER INTEGER I, I1, I2, I3, IC, II, JC, MI, NI, NQ DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DLARF, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) UPPER = LSAME( UPLO, 'U' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN INFO = -2 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -9 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DOPMTR', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * IF( UPPER ) THEN * * Q was determined by a call to DSPTRD with UPLO = 'U' * FORWRD = ( LEFT .AND. NOTRAN ) .OR. $ ( .NOT.LEFT .AND. .NOT.NOTRAN ) * IF( FORWRD ) THEN I1 = 1 I2 = NQ - 1 I3 = 1 II = 2 ELSE I1 = NQ - 1 I2 = 1 I3 = -1 II = NQ*( NQ+1 ) / 2 - 1 END IF * IF( LEFT ) THEN NI = N ELSE MI = M END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) is applied to C(1:i,1:n) * MI = I ELSE * * H(i) is applied to C(1:m,1:i) * NI = I END IF * * Apply H(i) * AII = AP( II ) AP( II ) = ONE CALL DLARF( SIDE, MI, NI, AP( II-I+1 ), 1, TAU( I ), C, LDC, $ WORK ) AP( II ) = AII * IF( FORWRD ) THEN II = II + I + 2 ELSE II = II - I - 1 END IF 10 CONTINUE ELSE * * Q was determined by a call to DSPTRD with UPLO = 'L'. * FORWRD = ( LEFT .AND. .NOT.NOTRAN ) .OR. $ ( .NOT.LEFT .AND. NOTRAN ) * IF( FORWRD ) THEN I1 = 1 I2 = NQ - 1 I3 = 1 II = 2 ELSE I1 = NQ - 1 I2 = 1 I3 = -1 II = NQ*( NQ+1 ) / 2 - 1 END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 20 I = I1, I2, I3 AII = AP( II ) AP( II ) = ONE IF( LEFT ) THEN * * H(i) is applied to C(i+1:m,1:n) * MI = M - I IC = I + 1 ELSE * * H(i) is applied to C(1:m,i+1:n) * NI = N - I JC = I + 1 END IF * * Apply H(i) * CALL DLARF( SIDE, MI, NI, AP( II ), 1, TAU( I ), $ C( IC, JC ), LDC, WORK ) AP( II ) = AII * IF( FORWRD ) THEN II = II + NQ - I + 1 ELSE II = II - NQ + I - 2 END IF 20 CONTINUE END IF RETURN * * End of DOPMTR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgbtrf.f0000644000000000000000000000013013543334727015226 xustar0030 mtime=1569569239.378645299 28 atime=1569569239.3766453 30 ctime=1569569239.378645299 elk-6.3.2/src/LAPACK/zgbtrf.f0000644002504400250440000003771013543334727017307 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGBTRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGBTRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, KL, KU, LDAB, M, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 AB( LDAB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGBTRF computes an LU factorization of a complex m-by-n band matrix A *> using partial pivoting with row interchanges. *> *> This is the blocked version of the algorithm, calling Level 3 BLAS. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] KL *> \verbatim *> KL is INTEGER *> The number of subdiagonals within the band of A. KL >= 0. *> \endverbatim *> *> \param[in] KU *> \verbatim *> KU is INTEGER *> The number of superdiagonals within the band of A. KU >= 0. *> \endverbatim *> *> \param[in,out] AB *> \verbatim *> AB is COMPLEX*16 array, dimension (LDAB,N) *> On entry, the matrix A in band storage, in rows KL+1 to *> 2*KL+KU+1; rows 1 to KL of the array need not be set. *> The j-th column of A is stored in the j-th column of the *> array AB as follows: *> AB(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl) *> *> On exit, details of the factorization: U is stored as an *> upper triangular band matrix with KL+KU superdiagonals in *> rows 1 to KL+KU+1, and the multipliers used during the *> factorization are stored in rows KL+KU+2 to 2*KL+KU+1. *> See below for further details. *> \endverbatim *> *> \param[in] LDAB *> \verbatim *> LDAB is INTEGER *> The leading dimension of the array AB. LDAB >= 2*KL+KU+1. *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (min(M,N)) *> The pivot indices; for 1 <= i <= min(M,N), row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = +i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and division by zero will occur if it is used *> to solve a system of equations. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GBcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The band storage scheme is illustrated by the following example, when *> M = N = 6, KL = 2, KU = 1: *> *> On entry: On exit: *> *> * * * + + + * * * u14 u25 u36 *> * * + + + + * * u13 u24 u35 u46 *> * a12 a23 a34 a45 a56 * u12 u23 u34 u45 u56 *> a11 a22 a33 a44 a55 a66 u11 u22 u33 u44 u55 u66 *> a21 a32 a43 a54 a65 * m21 m32 m43 m54 m65 * *> a31 a42 a53 a64 * * m31 m42 m53 m64 * * *> *> Array elements marked * are not used by the routine; elements marked *> + need not be set on entry, but are required by the routine to store *> elements of U because of fill-in resulting from the row interchanges. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, KL, KU, LDAB, M, N * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 AB( LDAB, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) INTEGER NBMAX, LDWORK PARAMETER ( NBMAX = 64, LDWORK = NBMAX+1 ) * .. * .. Local Scalars .. INTEGER I, I2, I3, II, IP, J, J2, J3, JB, JJ, JM, JP, $ JU, K2, KM, KV, NB, NW COMPLEX*16 TEMP * .. * .. Local Arrays .. COMPLEX*16 WORK13( LDWORK, NBMAX ), $ WORK31( LDWORK, NBMAX ) * .. * .. External Functions .. INTEGER ILAENV, IZAMAX EXTERNAL ILAENV, IZAMAX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZCOPY, ZGBTF2, ZGEMM, ZGERU, ZLASWP, $ ZSCAL, ZSWAP, ZTRSM * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * KV is the number of superdiagonals in the factor U, allowing for * fill-in * KV = KU + KL * * Test the input parameters. * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( KL.LT.0 ) THEN INFO = -3 ELSE IF( KU.LT.0 ) THEN INFO = -4 ELSE IF( LDAB.LT.KL+KV+1 ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGBTRF', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * * Determine the block size for this environment * NB = ILAENV( 1, 'ZGBTRF', ' ', M, N, KL, KU ) * * The block size must not exceed the limit set by the size of the * local arrays WORK13 and WORK31. * NB = MIN( NB, NBMAX ) * IF( NB.LE.1 .OR. NB.GT.KL ) THEN * * Use unblocked code * CALL ZGBTF2( M, N, KL, KU, AB, LDAB, IPIV, INFO ) ELSE * * Use blocked code * * Zero the superdiagonal elements of the work array WORK13 * DO 20 J = 1, NB DO 10 I = 1, J - 1 WORK13( I, J ) = ZERO 10 CONTINUE 20 CONTINUE * * Zero the subdiagonal elements of the work array WORK31 * DO 40 J = 1, NB DO 30 I = J + 1, NB WORK31( I, J ) = ZERO 30 CONTINUE 40 CONTINUE * * Gaussian elimination with partial pivoting * * Set fill-in elements in columns KU+2 to KV to zero * DO 60 J = KU + 2, MIN( KV, N ) DO 50 I = KV - J + 2, KL AB( I, J ) = ZERO 50 CONTINUE 60 CONTINUE * * JU is the index of the last column affected by the current * stage of the factorization * JU = 1 * DO 180 J = 1, MIN( M, N ), NB JB = MIN( NB, MIN( M, N )-J+1 ) * * The active part of the matrix is partitioned * * A11 A12 A13 * A21 A22 A23 * A31 A32 A33 * * Here A11, A21 and A31 denote the current block of JB columns * which is about to be factorized. The number of rows in the * partitioning are JB, I2, I3 respectively, and the numbers * of columns are JB, J2, J3. The superdiagonal elements of A13 * and the subdiagonal elements of A31 lie outside the band. * I2 = MIN( KL-JB, M-J-JB+1 ) I3 = MIN( JB, M-J-KL+1 ) * * J2 and J3 are computed after JU has been updated. * * Factorize the current block of JB columns * DO 80 JJ = J, J + JB - 1 * * Set fill-in elements in column JJ+KV to zero * IF( JJ+KV.LE.N ) THEN DO 70 I = 1, KL AB( I, JJ+KV ) = ZERO 70 CONTINUE END IF * * Find pivot and test for singularity. KM is the number of * subdiagonal elements in the current column. * KM = MIN( KL, M-JJ ) JP = IZAMAX( KM+1, AB( KV+1, JJ ), 1 ) IPIV( JJ ) = JP + JJ - J IF( AB( KV+JP, JJ ).NE.ZERO ) THEN JU = MAX( JU, MIN( JJ+KU+JP-1, N ) ) IF( JP.NE.1 ) THEN * * Apply interchange to columns J to J+JB-1 * IF( JP+JJ-1.LT.J+KL ) THEN * CALL ZSWAP( JB, AB( KV+1+JJ-J, J ), LDAB-1, $ AB( KV+JP+JJ-J, J ), LDAB-1 ) ELSE * * The interchange affects columns J to JJ-1 of A31 * which are stored in the work array WORK31 * CALL ZSWAP( JJ-J, AB( KV+1+JJ-J, J ), LDAB-1, $ WORK31( JP+JJ-J-KL, 1 ), LDWORK ) CALL ZSWAP( J+JB-JJ, AB( KV+1, JJ ), LDAB-1, $ AB( KV+JP, JJ ), LDAB-1 ) END IF END IF * * Compute multipliers * CALL ZSCAL( KM, ONE / AB( KV+1, JJ ), AB( KV+2, JJ ), $ 1 ) * * Update trailing submatrix within the band and within * the current block. JM is the index of the last column * which needs to be updated. * JM = MIN( JU, J+JB-1 ) IF( JM.GT.JJ ) $ CALL ZGERU( KM, JM-JJ, -ONE, AB( KV+2, JJ ), 1, $ AB( KV, JJ+1 ), LDAB-1, $ AB( KV+1, JJ+1 ), LDAB-1 ) ELSE * * If pivot is zero, set INFO to the index of the pivot * unless a zero pivot has already been found. * IF( INFO.EQ.0 ) $ INFO = JJ END IF * * Copy current column of A31 into the work array WORK31 * NW = MIN( JJ-J+1, I3 ) IF( NW.GT.0 ) $ CALL ZCOPY( NW, AB( KV+KL+1-JJ+J, JJ ), 1, $ WORK31( 1, JJ-J+1 ), 1 ) 80 CONTINUE IF( J+JB.LE.N ) THEN * * Apply the row interchanges to the other blocks. * J2 = MIN( JU-J+1, KV ) - JB J3 = MAX( 0, JU-J-KV+1 ) * * Use ZLASWP to apply the row interchanges to A12, A22, and * A32. * CALL ZLASWP( J2, AB( KV+1-JB, J+JB ), LDAB-1, 1, JB, $ IPIV( J ), 1 ) * * Adjust the pivot indices. * DO 90 I = J, J + JB - 1 IPIV( I ) = IPIV( I ) + J - 1 90 CONTINUE * * Apply the row interchanges to A13, A23, and A33 * columnwise. * K2 = J - 1 + JB + J2 DO 110 I = 1, J3 JJ = K2 + I DO 100 II = J + I - 1, J + JB - 1 IP = IPIV( II ) IF( IP.NE.II ) THEN TEMP = AB( KV+1+II-JJ, JJ ) AB( KV+1+II-JJ, JJ ) = AB( KV+1+IP-JJ, JJ ) AB( KV+1+IP-JJ, JJ ) = TEMP END IF 100 CONTINUE 110 CONTINUE * * Update the relevant part of the trailing submatrix * IF( J2.GT.0 ) THEN * * Update A12 * CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', $ JB, J2, ONE, AB( KV+1, J ), LDAB-1, $ AB( KV+1-JB, J+JB ), LDAB-1 ) * IF( I2.GT.0 ) THEN * * Update A22 * CALL ZGEMM( 'No transpose', 'No transpose', I2, J2, $ JB, -ONE, AB( KV+1+JB, J ), LDAB-1, $ AB( KV+1-JB, J+JB ), LDAB-1, ONE, $ AB( KV+1, J+JB ), LDAB-1 ) END IF * IF( I3.GT.0 ) THEN * * Update A32 * CALL ZGEMM( 'No transpose', 'No transpose', I3, J2, $ JB, -ONE, WORK31, LDWORK, $ AB( KV+1-JB, J+JB ), LDAB-1, ONE, $ AB( KV+KL+1-JB, J+JB ), LDAB-1 ) END IF END IF * IF( J3.GT.0 ) THEN * * Copy the lower triangle of A13 into the work array * WORK13 * DO 130 JJ = 1, J3 DO 120 II = JJ, JB WORK13( II, JJ ) = AB( II-JJ+1, JJ+J+KV-1 ) 120 CONTINUE 130 CONTINUE * * Update A13 in the work array * CALL ZTRSM( 'Left', 'Lower', 'No transpose', 'Unit', $ JB, J3, ONE, AB( KV+1, J ), LDAB-1, $ WORK13, LDWORK ) * IF( I2.GT.0 ) THEN * * Update A23 * CALL ZGEMM( 'No transpose', 'No transpose', I2, J3, $ JB, -ONE, AB( KV+1+JB, J ), LDAB-1, $ WORK13, LDWORK, ONE, AB( 1+JB, J+KV ), $ LDAB-1 ) END IF * IF( I3.GT.0 ) THEN * * Update A33 * CALL ZGEMM( 'No transpose', 'No transpose', I3, J3, $ JB, -ONE, WORK31, LDWORK, WORK13, $ LDWORK, ONE, AB( 1+KL, J+KV ), LDAB-1 ) END IF * * Copy the lower triangle of A13 back into place * DO 150 JJ = 1, J3 DO 140 II = JJ, JB AB( II-JJ+1, JJ+J+KV-1 ) = WORK13( II, JJ ) 140 CONTINUE 150 CONTINUE END IF ELSE * * Adjust the pivot indices. * DO 160 I = J, J + JB - 1 IPIV( I ) = IPIV( I ) + J - 1 160 CONTINUE END IF * * Partially undo the interchanges in the current block to * restore the upper triangular form of A31 and copy the upper * triangle of A31 back into place * DO 170 JJ = J + JB - 1, J, -1 JP = IPIV( JJ ) - JJ + 1 IF( JP.NE.1 ) THEN * * Apply interchange to columns J to JJ-1 * IF( JP+JJ-1.LT.J+KL ) THEN * * The interchange does not affect A31 * CALL ZSWAP( JJ-J, AB( KV+1+JJ-J, J ), LDAB-1, $ AB( KV+JP+JJ-J, J ), LDAB-1 ) ELSE * * The interchange does affect A31 * CALL ZSWAP( JJ-J, AB( KV+1+JJ-J, J ), LDAB-1, $ WORK31( JP+JJ-J-KL, 1 ), LDWORK ) END IF END IF * * Copy the current column of A31 back into place * NW = MIN( I3, JJ-J+1 ) IF( NW.GT.0 ) $ CALL ZCOPY( NW, WORK31( 1, JJ-J+1 ), 1, $ AB( KV+KL+1-JJ+J, JJ ), 1 ) 170 CONTINUE 180 CONTINUE END IF * RETURN * * End of ZGBTRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgbtrs.f0000644000000000000000000000013213543334727015245 xustar0030 mtime=1569569239.383645295 30 atime=1569569239.381645297 30 ctime=1569569239.383645295 elk-6.3.2/src/LAPACK/zgbtrs.f0000644002504400250440000002034713543334727017322 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGBTRS * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGBTRS + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGBTRS( TRANS, N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, * INFO ) * * .. Scalar Arguments .. * CHARACTER TRANS * INTEGER INFO, KL, KU, LDAB, LDB, N, NRHS * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 AB( LDAB, * ), B( LDB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGBTRS solves a system of linear equations *> A * X = B, A**T * X = B, or A**H * X = B *> with a general band matrix A using the LU factorization computed *> by ZGBTRF. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> Specifies the form of the system of equations. *> = 'N': A * X = B (No transpose) *> = 'T': A**T * X = B (Transpose) *> = 'C': A**H * X = B (Conjugate transpose) *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] KL *> \verbatim *> KL is INTEGER *> The number of subdiagonals within the band of A. KL >= 0. *> \endverbatim *> *> \param[in] KU *> \verbatim *> KU is INTEGER *> The number of superdiagonals within the band of A. KU >= 0. *> \endverbatim *> *> \param[in] NRHS *> \verbatim *> NRHS is INTEGER *> The number of right hand sides, i.e., the number of columns *> of the matrix B. NRHS >= 0. *> \endverbatim *> *> \param[in] AB *> \verbatim *> AB is COMPLEX*16 array, dimension (LDAB,N) *> Details of the LU factorization of the band matrix A, as *> computed by ZGBTRF. U is stored as an upper triangular band *> matrix with KL+KU superdiagonals in rows 1 to KL+KU+1, and *> the multipliers used during the factorization are stored in *> rows KL+KU+2 to 2*KL+KU+1. *> \endverbatim *> *> \param[in] LDAB *> \verbatim *> LDAB is INTEGER *> The leading dimension of the array AB. LDAB >= 2*KL+KU+1. *> \endverbatim *> *> \param[in] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (N) *> The pivot indices; for 1 <= i <= N, row i of the matrix was *> interchanged with row IPIV(i). *> \endverbatim *> *> \param[in,out] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,NRHS) *> On entry, the right hand side matrix B. *> On exit, the solution matrix X. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GBcomputational * * ===================================================================== SUBROUTINE ZGBTRS( TRANS, N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, $ INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER TRANS INTEGER INFO, KL, KU, LDAB, LDB, N, NRHS * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 AB( LDAB, * ), B( LDB, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LNOTI, NOTRAN INTEGER I, J, KD, L, LM * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGEMV, ZGERU, ZLACGV, ZSWAP, ZTBSV * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 NOTRAN = LSAME( TRANS, 'N' ) IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) .AND. .NOT. $ LSAME( TRANS, 'C' ) ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( KL.LT.0 ) THEN INFO = -3 ELSE IF( KU.LT.0 ) THEN INFO = -4 ELSE IF( NRHS.LT.0 ) THEN INFO = -5 ELSE IF( LDAB.LT.( 2*KL+KU+1 ) ) THEN INFO = -7 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGBTRS', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 .OR. NRHS.EQ.0 ) $ RETURN * KD = KU + KL + 1 LNOTI = KL.GT.0 * IF( NOTRAN ) THEN * * Solve A*X = B. * * Solve L*X = B, overwriting B with X. * * L is represented as a product of permutations and unit lower * triangular matrices L = P(1) * L(1) * ... * P(n-1) * L(n-1), * where each transformation L(i) is a rank-one modification of * the identity matrix. * IF( LNOTI ) THEN DO 10 J = 1, N - 1 LM = MIN( KL, N-J ) L = IPIV( J ) IF( L.NE.J ) $ CALL ZSWAP( NRHS, B( L, 1 ), LDB, B( J, 1 ), LDB ) CALL ZGERU( LM, NRHS, -ONE, AB( KD+1, J ), 1, B( J, 1 ), $ LDB, B( J+1, 1 ), LDB ) 10 CONTINUE END IF * DO 20 I = 1, NRHS * * Solve U*X = B, overwriting B with X. * CALL ZTBSV( 'Upper', 'No transpose', 'Non-unit', N, KL+KU, $ AB, LDAB, B( 1, I ), 1 ) 20 CONTINUE * ELSE IF( LSAME( TRANS, 'T' ) ) THEN * * Solve A**T * X = B. * DO 30 I = 1, NRHS * * Solve U**T * X = B, overwriting B with X. * CALL ZTBSV( 'Upper', 'Transpose', 'Non-unit', N, KL+KU, AB, $ LDAB, B( 1, I ), 1 ) 30 CONTINUE * * Solve L**T * X = B, overwriting B with X. * IF( LNOTI ) THEN DO 40 J = N - 1, 1, -1 LM = MIN( KL, N-J ) CALL ZGEMV( 'Transpose', LM, NRHS, -ONE, B( J+1, 1 ), $ LDB, AB( KD+1, J ), 1, ONE, B( J, 1 ), LDB ) L = IPIV( J ) IF( L.NE.J ) $ CALL ZSWAP( NRHS, B( L, 1 ), LDB, B( J, 1 ), LDB ) 40 CONTINUE END IF * ELSE * * Solve A**H * X = B. * DO 50 I = 1, NRHS * * Solve U**H * X = B, overwriting B with X. * CALL ZTBSV( 'Upper', 'Conjugate transpose', 'Non-unit', N, $ KL+KU, AB, LDAB, B( 1, I ), 1 ) 50 CONTINUE * * Solve L**H * X = B, overwriting B with X. * IF( LNOTI ) THEN DO 60 J = N - 1, 1, -1 LM = MIN( KL, N-J ) CALL ZLACGV( NRHS, B( J, 1 ), LDB ) CALL ZGEMV( 'Conjugate transpose', LM, NRHS, -ONE, $ B( J+1, 1 ), LDB, AB( KD+1, J ), 1, ONE, $ B( J, 1 ), LDB ) CALL ZLACGV( NRHS, B( J, 1 ), LDB ) L = IPIV( J ) IF( L.NE.J ) $ CALL ZSWAP( NRHS, B( L, 1 ), LDB, B( J, 1 ), LDB ) 60 CONTINUE END IF END IF RETURN * * End of ZGBTRS * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ztrsen.f0000644000000000000000000000013213543334727015257 xustar0030 mtime=1569569239.388645292 30 atime=1569569239.386645294 30 ctime=1569569239.388645292 elk-6.3.2/src/LAPACK/ztrsen.f0000644002504400250440000003310313543334727017326 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRSEN * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZTRSEN + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZTRSEN( JOB, COMPQ, SELECT, N, T, LDT, Q, LDQ, W, M, S, * SEP, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER COMPQ, JOB * INTEGER INFO, LDQ, LDT, LWORK, M, N * DOUBLE PRECISION S, SEP * .. * .. Array Arguments .. * LOGICAL SELECT( * ) * COMPLEX*16 Q( LDQ, * ), T( LDT, * ), W( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRSEN reorders the Schur factorization of a complex matrix *> A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in *> the leading positions on the diagonal of the upper triangular matrix *> T, and the leading columns of Q form an orthonormal basis of the *> corresponding right invariant subspace. *> *> Optionally the routine computes the reciprocal condition numbers of *> the cluster of eigenvalues and/or the invariant subspace. *> \endverbatim * * Arguments: * ========== * *> \param[in] JOB *> \verbatim *> JOB is CHARACTER*1 *> Specifies whether condition numbers are required for the *> cluster of eigenvalues (S) or the invariant subspace (SEP): *> = 'N': none; *> = 'E': for eigenvalues only (S); *> = 'V': for invariant subspace only (SEP); *> = 'B': for both eigenvalues and invariant subspace (S and *> SEP). *> \endverbatim *> *> \param[in] COMPQ *> \verbatim *> COMPQ is CHARACTER*1 *> = 'V': update the matrix Q of Schur vectors; *> = 'N': do not update Q. *> \endverbatim *> *> \param[in] SELECT *> \verbatim *> SELECT is LOGICAL array, dimension (N) *> SELECT specifies the eigenvalues in the selected cluster. To *> select the j-th eigenvalue, SELECT(j) must be set to .TRUE.. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix T. N >= 0. *> \endverbatim *> *> \param[in,out] T *> \verbatim *> T is COMPLEX*16 array, dimension (LDT,N) *> On entry, the upper triangular matrix T. *> On exit, T is overwritten by the reordered matrix T, with the *> selected eigenvalues as the leading diagonal elements. *> \endverbatim *> *> \param[in] LDT *> \verbatim *> LDT is INTEGER *> The leading dimension of the array T. LDT >= max(1,N). *> \endverbatim *> *> \param[in,out] Q *> \verbatim *> Q is COMPLEX*16 array, dimension (LDQ,N) *> On entry, if COMPQ = 'V', the matrix Q of Schur vectors. *> On exit, if COMPQ = 'V', Q has been postmultiplied by the *> unitary transformation matrix which reorders T; the leading M *> columns of Q form an orthonormal basis for the specified *> invariant subspace. *> If COMPQ = 'N', Q is not referenced. *> \endverbatim *> *> \param[in] LDQ *> \verbatim *> LDQ is INTEGER *> The leading dimension of the array Q. *> LDQ >= 1; and if COMPQ = 'V', LDQ >= N. *> \endverbatim *> *> \param[out] W *> \verbatim *> W is COMPLEX*16 array, dimension (N) *> The reordered eigenvalues of T, in the same order as they *> appear on the diagonal of T. *> \endverbatim *> *> \param[out] M *> \verbatim *> M is INTEGER *> The dimension of the specified invariant subspace. *> 0 <= M <= N. *> \endverbatim *> *> \param[out] S *> \verbatim *> S is DOUBLE PRECISION *> If JOB = 'E' or 'B', S is a lower bound on the reciprocal *> condition number for the selected cluster of eigenvalues. *> S cannot underestimate the true reciprocal condition number *> by more than a factor of sqrt(N). If M = 0 or N, S = 1. *> If JOB = 'N' or 'V', S is not referenced. *> \endverbatim *> *> \param[out] SEP *> \verbatim *> SEP is DOUBLE PRECISION *> If JOB = 'V' or 'B', SEP is the estimated reciprocal *> condition number of the specified invariant subspace. If *> M = 0 or N, SEP = norm(T). *> If JOB = 'N' or 'E', SEP is not referenced. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If JOB = 'N', LWORK >= 1; *> if JOB = 'E', LWORK = max(1,M*(N-M)); *> if JOB = 'V' or 'B', LWORK >= max(1,2*M*(N-M)). *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> ZTRSEN first collects the selected eigenvalues by computing a unitary *> transformation Z to move them to the top left corner of T. In other *> words, the selected eigenvalues are the eigenvalues of T11 in: *> *> Z**H * T * Z = ( T11 T12 ) n1 *> ( 0 T22 ) n2 *> n1 n2 *> *> where N = n1+n2. The first *> n1 columns of Z span the specified invariant subspace of T. *> *> If T has been obtained from the Schur factorization of a matrix *> A = Q*T*Q**H, then the reordered Schur factorization of A is given by *> A = (Q*Z)*(Z**H*T*Z)*(Q*Z)**H, and the first n1 columns of Q*Z span the *> corresponding invariant subspace of A. *> *> The reciprocal condition number of the average of the eigenvalues of *> T11 may be returned in S. S lies between 0 (very badly conditioned) *> and 1 (very well conditioned). It is computed as follows. First we *> compute R so that *> *> P = ( I R ) n1 *> ( 0 0 ) n2 *> n1 n2 *> *> is the projector on the invariant subspace associated with T11. *> R is the solution of the Sylvester equation: *> *> T11*R - R*T22 = T12. *> *> Let F-norm(M) denote the Frobenius-norm of M and 2-norm(M) denote *> the two-norm of M. Then S is computed as the lower bound *> *> (1 + F-norm(R)**2)**(-1/2) *> *> on the reciprocal of 2-norm(P), the true reciprocal condition number. *> S cannot underestimate 1 / 2-norm(P) by more than a factor of *> sqrt(N). *> *> An approximate error bound for the computed average of the *> eigenvalues of T11 is *> *> EPS * norm(T) / S *> *> where EPS is the machine precision. *> *> The reciprocal condition number of the right invariant subspace *> spanned by the first n1 columns of Z (or of Q*Z) is returned in SEP. *> SEP is defined as the separation of T11 and T22: *> *> sep( T11, T22 ) = sigma-min( C ) *> *> where sigma-min(C) is the smallest singular value of the *> n1*n2-by-n1*n2 matrix *> *> C = kprod( I(n2), T11 ) - kprod( transpose(T22), I(n1) ) *> *> I(m) is an m by m identity matrix, and kprod denotes the Kronecker *> product. We estimate sigma-min(C) by the reciprocal of an estimate of *> the 1-norm of inverse(C). The true reciprocal 1-norm of inverse(C) *> cannot differ from sigma-min(C) by more than a factor of sqrt(n1*n2). *> *> When SEP is small, small changes in T can cause large changes in *> the invariant subspace. An approximate bound on the maximum angular *> error in the computed right invariant subspace is *> *> EPS * norm(T) / SEP *> \endverbatim *> * ===================================================================== SUBROUTINE ZTRSEN( JOB, COMPQ, SELECT, N, T, LDT, Q, LDQ, W, M, S, $ SEP, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER COMPQ, JOB INTEGER INFO, LDQ, LDT, LWORK, M, N DOUBLE PRECISION S, SEP * .. * .. Array Arguments .. LOGICAL SELECT( * ) COMPLEX*16 Q( LDQ, * ), T( LDT, * ), W( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LQUERY, WANTBH, WANTQ, WANTS, WANTSP INTEGER IERR, K, KASE, KS, LWMIN, N1, N2, NN DOUBLE PRECISION EST, RNORM, SCALE * .. * .. Local Arrays .. INTEGER ISAVE( 3 ) DOUBLE PRECISION RWORK( 1 ) * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION ZLANGE EXTERNAL LSAME, ZLANGE * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACN2, ZLACPY, ZTREXC, ZTRSYL * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Decode and test the input parameters. * WANTBH = LSAME( JOB, 'B' ) WANTS = LSAME( JOB, 'E' ) .OR. WANTBH WANTSP = LSAME( JOB, 'V' ) .OR. WANTBH WANTQ = LSAME( COMPQ, 'V' ) * * Set M to the number of selected eigenvalues. * M = 0 DO 10 K = 1, N IF( SELECT( K ) ) $ M = M + 1 10 CONTINUE * N1 = M N2 = N - M NN = N1*N2 * INFO = 0 LQUERY = ( LWORK.EQ.-1 ) * IF( WANTSP ) THEN LWMIN = MAX( 1, 2*NN ) ELSE IF( LSAME( JOB, 'N' ) ) THEN LWMIN = 1 ELSE IF( LSAME( JOB, 'E' ) ) THEN LWMIN = MAX( 1, NN ) END IF * IF( .NOT.LSAME( JOB, 'N' ) .AND. .NOT.WANTS .AND. .NOT.WANTSP ) $ THEN INFO = -1 ELSE IF( .NOT.LSAME( COMPQ, 'N' ) .AND. .NOT.WANTQ ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDT.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( LDQ.LT.1 .OR. ( WANTQ .AND. LDQ.LT.N ) ) THEN INFO = -8 ELSE IF( LWORK.LT.LWMIN .AND. .NOT.LQUERY ) THEN INFO = -14 END IF * IF( INFO.EQ.0 ) THEN WORK( 1 ) = LWMIN END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZTRSEN', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.N .OR. M.EQ.0 ) THEN IF( WANTS ) $ S = ONE IF( WANTSP ) $ SEP = ZLANGE( '1', N, N, T, LDT, RWORK ) GO TO 40 END IF * * Collect the selected eigenvalues at the top left corner of T. * KS = 0 DO 20 K = 1, N IF( SELECT( K ) ) THEN KS = KS + 1 * * Swap the K-th eigenvalue to position KS. * IF( K.NE.KS ) $ CALL ZTREXC( COMPQ, N, T, LDT, Q, LDQ, K, KS, IERR ) END IF 20 CONTINUE * IF( WANTS ) THEN * * Solve the Sylvester equation for R: * * T11*R - R*T22 = scale*T12 * CALL ZLACPY( 'F', N1, N2, T( 1, N1+1 ), LDT, WORK, N1 ) CALL ZTRSYL( 'N', 'N', -1, N1, N2, T, LDT, T( N1+1, N1+1 ), $ LDT, WORK, N1, SCALE, IERR ) * * Estimate the reciprocal of the condition number of the cluster * of eigenvalues. * RNORM = ZLANGE( 'F', N1, N2, WORK, N1, RWORK ) IF( RNORM.EQ.ZERO ) THEN S = ONE ELSE S = SCALE / ( SQRT( SCALE*SCALE / RNORM+RNORM )* $ SQRT( RNORM ) ) END IF END IF * IF( WANTSP ) THEN * * Estimate sep(T11,T22). * EST = ZERO KASE = 0 30 CONTINUE CALL ZLACN2( NN, WORK( NN+1 ), WORK, EST, KASE, ISAVE ) IF( KASE.NE.0 ) THEN IF( KASE.EQ.1 ) THEN * * Solve T11*R - R*T22 = scale*X. * CALL ZTRSYL( 'N', 'N', -1, N1, N2, T, LDT, $ T( N1+1, N1+1 ), LDT, WORK, N1, SCALE, $ IERR ) ELSE * * Solve T11**H*R - R*T22**H = scale*X. * CALL ZTRSYL( 'C', 'C', -1, N1, N2, T, LDT, $ T( N1+1, N1+1 ), LDT, WORK, N1, SCALE, $ IERR ) END IF GO TO 30 END IF * SEP = SCALE / EST END IF * 40 CONTINUE * * Copy reordered eigenvalues to W. * DO 50 K = 1, N W( K ) = T( K, K ) 50 CONTINUE * WORK( 1 ) = LWMIN * RETURN * * End of ZTRSEN * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgeqrf.f0000644000000000000000000000012713543334727015234 xustar0029 mtime=1569569239.39264529 29 atime=1569569239.39164529 29 ctime=1569569239.39264529 elk-6.3.2/src/LAPACK/zgeqrf.f0000644002504400250440000001663513543334727017312 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEQRF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEQRF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEQRF computes a QR factorization of a complex M-by-N matrix A: *> A = Q * R. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the M-by-N matrix A. *> On exit, the elements on and above the diagonal of the array *> contain the min(M,N)-by-N upper trapezoidal matrix R (R is *> upper triangular if m >= n); the elements below the diagonal, *> with the array TAU, represent the unitary matrix Q as a *> product of min(m,n) elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,N). *> For optimum performance LWORK >= N*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(1) H(2) . . . H(k), where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), *> and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, K, LDWORK, LWKOPT, NB, $ NBMIN, NX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGEQR2, ZLARFB, ZLARFT * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'ZGEQRF', ' ', M, N, -1, -1 ) LWKOPT = N*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEQRF', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * K = MIN( M, N ) IF( K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = N IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'ZGEQRF', ' ', M, N, -1, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = N IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZGEQRF', ' ', M, N, -1, $ -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code initially * DO 10 I = 1, K - NX, NB IB = MIN( K-I+1, NB ) * * Compute the QR factorization of the current block * A(i:m,i:i+ib-1) * CALL ZGEQR2( M-I+1, IB, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) IF( I+IB.LE.N ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL ZLARFT( 'Forward', 'Columnwise', M-I+1, IB, $ A( I, I ), LDA, TAU( I ), WORK, LDWORK ) * * Apply H**H to A(i:m,i+ib:n) from the left * CALL ZLARFB( 'Left', 'Conjugate transpose', 'Forward', $ 'Columnwise', M-I+1, N-I-IB+1, IB, $ A( I, I ), LDA, WORK, LDWORK, A( I, I+IB ), $ LDA, WORK( IB+1 ), LDWORK ) END IF 10 CONTINUE ELSE I = 1 END IF * * Use unblocked code to factor the last or only block. * IF( I.LE.K ) $ CALL ZGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * WORK( 1 ) = IWS RETURN * * End of ZGEQRF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgebrd.f0000644000000000000000000000013213543334727015207 xustar0030 mtime=1569569239.397645286 30 atime=1569569239.396645287 30 ctime=1569569239.397645286 elk-6.3.2/src/LAPACK/zgebrd.f0000644002504400250440000002574013543334727017266 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEBRD * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEBRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, * INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEBRD reduces a general complex M-by-N matrix A to upper or lower *> bidiagonal form B by a unitary transformation: Q**H * A * P = B. *> *> If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows in the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns in the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the M-by-N general matrix to be reduced. *> On exit, *> if m >= n, the diagonal and the first superdiagonal are *> overwritten with the upper bidiagonal matrix B; the *> elements below the diagonal, with the array TAUQ, represent *> the unitary matrix Q as a product of elementary *> reflectors, and the elements above the first superdiagonal, *> with the array TAUP, represent the unitary matrix P as *> a product of elementary reflectors; *> if m < n, the diagonal and the first subdiagonal are *> overwritten with the lower bidiagonal matrix B; the *> elements below the first subdiagonal, with the array TAUQ, *> represent the unitary matrix Q as a product of *> elementary reflectors, and the elements above the diagonal, *> with the array TAUP, represent the unitary matrix P as *> a product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (min(M,N)) *> The diagonal elements of the bidiagonal matrix B: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (min(M,N)-1) *> The off-diagonal elements of the bidiagonal matrix B: *> if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1; *> if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1. *> \endverbatim *> *> \param[out] TAUQ *> \verbatim *> TAUQ is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the unitary matrix Q. See Further Details. *> \endverbatim *> *> \param[out] TAUP *> \verbatim *> TAUP is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the unitary matrix P. See Further Details. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The length of the array WORK. LWORK >= max(1,M,N). *> For optimum performance LWORK >= (M+N)*NB, where NB *> is the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date November 2017 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrices Q and P are represented as products of elementary *> reflectors: *> *> If m >= n, *> *> Q = H(1) H(2) . . . H(n) and P = G(1) G(2) . . . G(n-1) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H *> *> where tauq and taup are complex scalars, and v and u are complex *> vectors; v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit in *> A(i+1:m,i); u(1:i) = 0, u(i+1) = 1, and u(i+2:n) is stored on exit in *> A(i,i+2:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> If m < n, *> *> Q = H(1) H(2) . . . H(m-1) and P = G(1) G(2) . . . G(m) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H *> *> where tauq and taup are complex scalars, and v and u are complex *> vectors; v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit in *> A(i+2:m,i); u(1:i-1) = 0, u(i) = 1, and u(i+1:n) is stored on exit in *> A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> The contents of A on exit are illustrated by the following examples: *> *> m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n): *> *> ( d e u1 u1 u1 ) ( d u1 u1 u1 u1 u1 ) *> ( v1 d e u2 u2 ) ( e d u2 u2 u2 u2 ) *> ( v1 v2 d e u3 ) ( v1 e d u3 u3 u3 ) *> ( v1 v2 v3 d e ) ( v1 v2 e d u4 u4 ) *> ( v1 v2 v3 v4 d ) ( v1 v2 v3 e d u5 ) *> ( v1 v2 v3 v4 v5 ) *> *> where d and e denote diagonal and off-diagonal elements of B, vi *> denotes an element of the vector defining H(i), and ui an element of *> the vector defining G(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEBRD( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, $ INFO ) * * -- LAPACK computational routine (version 3.8.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * November 2017 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IINFO, J, LDWRKX, LDWRKY, LWKOPT, MINMN, NB, $ NBMIN, NX, WS * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGEBD2, ZGEMM, ZLABRD * .. * .. Intrinsic Functions .. INTRINSIC DBLE, MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 NB = MAX( 1, ILAENV( 1, 'ZGEBRD', ' ', M, N, -1, -1 ) ) LWKOPT = ( M+N )*NB WORK( 1 ) = DBLE( LWKOPT ) LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, M, N ) .AND. .NOT.LQUERY ) THEN INFO = -10 END IF IF( INFO.LT.0 ) THEN CALL XERBLA( 'ZGEBRD', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * MINMN = MIN( M, N ) IF( MINMN.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * WS = MAX( M, N ) LDWRKX = M LDWRKY = N * IF( NB.GT.1 .AND. NB.LT.MINMN ) THEN * * Set the crossover point NX. * NX = MAX( NB, ILAENV( 3, 'ZGEBRD', ' ', M, N, -1, -1 ) ) * * Determine when to switch from blocked to unblocked code. * IF( NX.LT.MINMN ) THEN WS = ( M+N )*NB IF( LWORK.LT.WS ) THEN * * Not enough work space for the optimal NB, consider using * a smaller block size. * NBMIN = ILAENV( 2, 'ZGEBRD', ' ', M, N, -1, -1 ) IF( LWORK.GE.( M+N )*NBMIN ) THEN NB = LWORK / ( M+N ) ELSE NB = 1 NX = MINMN END IF END IF END IF ELSE NX = MINMN END IF * DO 30 I = 1, MINMN - NX, NB * * Reduce rows and columns i:i+ib-1 to bidiagonal form and return * the matrices X and Y which are needed to update the unreduced * part of the matrix * CALL ZLABRD( M-I+1, N-I+1, NB, A( I, I ), LDA, D( I ), E( I ), $ TAUQ( I ), TAUP( I ), WORK, LDWRKX, $ WORK( LDWRKX*NB+1 ), LDWRKY ) * * Update the trailing submatrix A(i+ib:m,i+ib:n), using * an update of the form A := A - V*Y**H - X*U**H * CALL ZGEMM( 'No transpose', 'Conjugate transpose', M-I-NB+1, $ N-I-NB+1, NB, -ONE, A( I+NB, I ), LDA, $ WORK( LDWRKX*NB+NB+1 ), LDWRKY, ONE, $ A( I+NB, I+NB ), LDA ) CALL ZGEMM( 'No transpose', 'No transpose', M-I-NB+1, N-I-NB+1, $ NB, -ONE, WORK( NB+1 ), LDWRKX, A( I, I+NB ), LDA, $ ONE, A( I+NB, I+NB ), LDA ) * * Copy diagonal and off-diagonal elements of B back into A * IF( M.GE.N ) THEN DO 10 J = I, I + NB - 1 A( J, J ) = D( J ) A( J, J+1 ) = E( J ) 10 CONTINUE ELSE DO 20 J = I, I + NB - 1 A( J, J ) = D( J ) A( J+1, J ) = E( J ) 20 CONTINUE END IF 30 CONTINUE * * Use unblocked code to reduce the remainder of the matrix * CALL ZGEBD2( M-I+1, N-I+1, A( I, I ), LDA, D( I ), E( I ), $ TAUQ( I ), TAUP( I ), WORK, IINFO ) WORK( 1 ) = WS RETURN * * End of ZGEBRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zungbr.f0000644000000000000000000000013213543334727015241 xustar0030 mtime=1569569239.402645283 30 atime=1569569239.400645285 30 ctime=1569569239.402645283 elk-6.3.2/src/LAPACK/zungbr.f0000644002504400250440000002326613543334727017321 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGBR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGBR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER VECT * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGBR generates one of the complex unitary matrices Q or P**H *> determined by ZGEBRD when reducing a complex matrix A to bidiagonal *> form: A = Q * B * P**H. Q and P**H are defined as products of *> elementary reflectors H(i) or G(i) respectively. *> *> If VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q *> is of order M: *> if m >= k, Q = H(1) H(2) . . . H(k) and ZUNGBR returns the first n *> columns of Q, where m >= n >= k; *> if m < k, Q = H(1) H(2) . . . H(m-1) and ZUNGBR returns Q as an *> M-by-M matrix. *> *> If VECT = 'P', A is assumed to have been a K-by-N matrix, and P**H *> is of order N: *> if k < n, P**H = G(k) . . . G(2) G(1) and ZUNGBR returns the first m *> rows of P**H, where n >= m >= k; *> if k >= n, P**H = G(n-1) . . . G(2) G(1) and ZUNGBR returns P**H as *> an N-by-N matrix. *> \endverbatim * * Arguments: * ========== * *> \param[in] VECT *> \verbatim *> VECT is CHARACTER*1 *> Specifies whether the matrix Q or the matrix P**H is *> required, as defined in the transformation applied by ZGEBRD: *> = 'Q': generate Q; *> = 'P': generate P**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q or P**H to be returned. *> M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q or P**H to be returned. *> N >= 0. *> If VECT = 'Q', M >= N >= min(M,K); *> if VECT = 'P', N >= M >= min(N,K). *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> If VECT = 'Q', the number of columns in the original M-by-K *> matrix reduced by ZGEBRD. *> If VECT = 'P', the number of rows in the original K-by-N *> matrix reduced by ZGEBRD. *> K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the vectors which define the elementary reflectors, *> as returned by ZGEBRD. *> On exit, the M-by-N matrix Q or P**H. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= M. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension *> (min(M,K)) if VECT = 'Q' *> (min(N,K)) if VECT = 'P' *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i) or G(i), which determines Q or P**H, as *> returned by ZGEBRD in its array argument TAUQ or TAUP. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,min(M,N)). *> For optimum performance LWORK >= min(M,N)*NB, where NB *> is the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date April 2012 * *> \ingroup complex16GBcomputational * * ===================================================================== SUBROUTINE ZUNGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * April 2012 * * .. Scalar Arguments .. CHARACTER VECT INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY, WANTQ INTEGER I, IINFO, J, LWKOPT, MN * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNGLQ, ZUNGQR * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 WANTQ = LSAME( VECT, 'Q' ) MN = MIN( M, N ) LQUERY = ( LWORK.EQ.-1 ) IF( .NOT.WANTQ .AND. .NOT.LSAME( VECT, 'P' ) ) THEN INFO = -1 ELSE IF( M.LT.0 ) THEN INFO = -2 ELSE IF( N.LT.0 .OR. ( WANTQ .AND. ( N.GT.M .OR. N.LT.MIN( M, $ K ) ) ) .OR. ( .NOT.WANTQ .AND. ( M.GT.N .OR. M.LT. $ MIN( N, K ) ) ) ) THEN INFO = -3 ELSE IF( K.LT.0 ) THEN INFO = -4 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -6 ELSE IF( LWORK.LT.MAX( 1, MN ) .AND. .NOT.LQUERY ) THEN INFO = -9 END IF * IF( INFO.EQ.0 ) THEN WORK( 1 ) = 1 IF( WANTQ ) THEN IF( M.GE.K ) THEN CALL ZUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO ) ELSE IF( M.GT.1 ) THEN CALL ZUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK, $ -1, IINFO ) END IF END IF ELSE IF( K.LT.N ) THEN CALL ZUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO ) ELSE IF( N.GT.1 ) THEN CALL ZUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK, $ -1, IINFO ) END IF END IF END IF LWKOPT = WORK( 1 ) LWKOPT = MAX (LWKOPT, MN) END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGBR', -INFO ) RETURN ELSE IF( LQUERY ) THEN WORK( 1 ) = LWKOPT RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * IF( WANTQ ) THEN * * Form Q, determined by a call to ZGEBRD to reduce an m-by-k * matrix * IF( M.GE.K ) THEN * * If m >= k, assume m >= n >= k * CALL ZUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, IINFO ) * ELSE * * If m < k, assume m = n * * Shift the vectors which define the elementary reflectors one * column to the right, and set the first row and column of Q * to those of the unit matrix * DO 20 J = M, 2, -1 A( 1, J ) = ZERO DO 10 I = J + 1, M A( I, J ) = A( I, J-1 ) 10 CONTINUE 20 CONTINUE A( 1, 1 ) = ONE DO 30 I = 2, M A( I, 1 ) = ZERO 30 CONTINUE IF( M.GT.1 ) THEN * * Form Q(2:m,2:m) * CALL ZUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK, $ LWORK, IINFO ) END IF END IF ELSE * * Form P**H, determined by a call to ZGEBRD to reduce a k-by-n * matrix * IF( K.LT.N ) THEN * * If k < n, assume k <= m <= n * CALL ZUNGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, IINFO ) * ELSE * * If k >= n, assume m = n * * Shift the vectors which define the elementary reflectors one * row downward, and set the first row and column of P**H to * those of the unit matrix * A( 1, 1 ) = ONE DO 40 I = 2, N A( I, 1 ) = ZERO 40 CONTINUE DO 60 J = 2, N DO 50 I = J - 1, 2, -1 A( I, J ) = A( I-1, J ) 50 CONTINUE A( 1, J ) = ZERO 60 CONTINUE IF( N.GT.1 ) THEN * * Form P**H(2:n,2:n) * CALL ZUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK, $ LWORK, IINFO ) END IF END IF END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNGBR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgelqf.f0000644000000000000000000000013213543334727015222 xustar0030 mtime=1569569239.406645281 30 atime=1569569239.405645281 30 ctime=1569569239.406645281 elk-6.3.2/src/LAPACK/zgelqf.f0000644002504400250440000001661313543334727017300 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGELQF * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGELQF + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGELQF computes an LQ factorization of a complex M-by-N matrix A: *> A = L * Q. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the M-by-N matrix A. *> On exit, the elements on and below the diagonal of the array *> contain the m-by-min(m,n) lower trapezoidal matrix L (L is *> lower triangular if m <= n); the elements above the diagonal, *> with the array TAU, represent the unitary matrix Q as a *> product of elementary reflectors (see Further Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,M). *> For optimum performance LWORK >= M*NB, where NB is the *> optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(k)**H . . . H(2)**H H(1)**H, where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i-1) = 0 and v(i) = 1; conjg(v(i+1:n)) is stored on exit in *> A(i,i+1:n), and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, K, LDWORK, LWKOPT, NB, $ NBMIN, NX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGELQ2, ZLARFB, ZLARFT * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'ZGELQF', ' ', M, N, -1, -1 ) LWKOPT = M*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 ELSE IF( LWORK.LT.MAX( 1, M ) .AND. .NOT.LQUERY ) THEN INFO = -7 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGELQF', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * K = MIN( M, N ) IF( K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = M IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'ZGELQF', ' ', M, N, -1, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = M IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZGELQF', ' ', M, N, -1, $ -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code initially * DO 10 I = 1, K - NX, NB IB = MIN( K-I+1, NB ) * * Compute the LQ factorization of the current block * A(i:i+ib-1,i:n) * CALL ZGELQ2( IB, N-I+1, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) IF( I+IB.LE.M ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL ZLARFT( 'Forward', 'Rowwise', N-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK, LDWORK ) * * Apply H to A(i+ib:m,i:n) from the right * CALL ZLARFB( 'Right', 'No transpose', 'Forward', $ 'Rowwise', M-I-IB+1, N-I+1, IB, A( I, I ), $ LDA, WORK, LDWORK, A( I+IB, I ), LDA, $ WORK( IB+1 ), LDWORK ) END IF 10 CONTINUE ELSE I = 1 END IF * * Use unblocked code to factor the last or only block. * IF( I.LE.K ) $ CALL ZGELQ2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * WORK( 1 ) = IWS RETURN * * End of ZGELQF * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunglq.f0000644000000000000000000000013213543334727015252 xustar0030 mtime=1569569239.411645278 30 atime=1569569239.410645278 30 ctime=1569569239.411645278 elk-6.3.2/src/LAPACK/zunglq.f0000644002504400250440000001756513543334727017337 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGLQ * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGLQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGLQ generates an M-by-N complex matrix Q with orthonormal rows, *> which is defined as the first M rows of a product of K elementary *> reflectors of order N *> *> Q = H(k)**H . . . H(2)**H H(1)**H *> *> as returned by ZGELQF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. N >= M. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. M >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the i-th row must contain the vector which defines *> the elementary reflector H(i), for i = 1,2,...,k, as returned *> by ZGELQF in the first k rows of its array argument A. *> On exit, the M-by-N matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGELQF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. LWORK >= max(1,M). *> For optimum performance LWORK >= M*NB, where NB is *> the optimal blocksize. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit; *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LQUERY INTEGER I, IB, IINFO, IWS, J, KI, KK, L, LDWORK, $ LWKOPT, NB, NBMIN, NX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARFB, ZLARFT, ZUNGL2 * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. External Functions .. INTEGER ILAENV EXTERNAL ILAENV * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 NB = ILAENV( 1, 'ZUNGLQ', ' ', M, N, K, -1 ) LWKOPT = MAX( 1, M )*NB WORK( 1 ) = LWKOPT LQUERY = ( LWORK.EQ.-1 ) IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.M ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 ELSE IF( LWORK.LT.MAX( 1, M ) .AND. .NOT.LQUERY ) THEN INFO = -8 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGLQ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.LE.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 NX = 0 IWS = M IF( NB.GT.1 .AND. NB.LT.K ) THEN * * Determine when to cross over from blocked to unblocked code. * NX = MAX( 0, ILAENV( 3, 'ZUNGLQ', ' ', M, N, K, -1 ) ) IF( NX.LT.K ) THEN * * Determine if workspace is large enough for blocked code. * LDWORK = M IWS = LDWORK*NB IF( LWORK.LT.IWS ) THEN * * Not enough workspace to use optimal NB: reduce NB and * determine the minimum value of NB. * NB = LWORK / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZUNGLQ', ' ', M, N, K, -1 ) ) END IF END IF END IF * IF( NB.GE.NBMIN .AND. NB.LT.K .AND. NX.LT.K ) THEN * * Use blocked code after the last block. * The first kk rows are handled by the block method. * KI = ( ( K-NX-1 ) / NB )*NB KK = MIN( K, KI+NB ) * * Set A(kk+1:m,1:kk) to zero. * DO 20 J = 1, KK DO 10 I = KK + 1, M A( I, J ) = ZERO 10 CONTINUE 20 CONTINUE ELSE KK = 0 END IF * * Use unblocked code for the last or only block. * IF( KK.LT.M ) $ CALL ZUNGL2( M-KK, N-KK, K-KK, A( KK+1, KK+1 ), LDA, $ TAU( KK+1 ), WORK, IINFO ) * IF( KK.GT.0 ) THEN * * Use blocked code * DO 50 I = KI + 1, 1, -NB IB = MIN( NB, K-I+1 ) IF( I+IB.LE.M ) THEN * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL ZLARFT( 'Forward', 'Rowwise', N-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK, LDWORK ) * * Apply H**H to A(i+ib:m,i:n) from the right * CALL ZLARFB( 'Right', 'Conjugate transpose', 'Forward', $ 'Rowwise', M-I-IB+1, N-I+1, IB, A( I, I ), $ LDA, WORK, LDWORK, A( I+IB, I ), LDA, $ WORK( IB+1 ), LDWORK ) END IF * * Apply H**H to columns i:n of current block * CALL ZUNGL2( IB, N-I+1, IB, A( I, I ), LDA, TAU( I ), WORK, $ IINFO ) * * Set columns 1:i-1 of current block to zero * DO 40 J = 1, I - 1 DO 30 L = I, I + IB - 1 A( L, J ) = ZERO 30 CONTINUE 40 CONTINUE 50 CONTINUE END IF * WORK( 1 ) = IWS RETURN * * End of ZUNGLQ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zbdsqr.f0000644000000000000000000000013213543334727015237 xustar0030 mtime=1569569239.417645274 30 atime=1569569239.414645276 30 ctime=1569569239.417645274 elk-6.3.2/src/LAPACK/zbdsqr.f0000644002504400250440000006251713543334727017321 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZBDSQR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZBDSQR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, * LDU, C, LDC, RWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ), RWORK( * ) * COMPLEX*16 C( LDC, * ), U( LDU, * ), VT( LDVT, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZBDSQR computes the singular values and, optionally, the right and/or *> left singular vectors from the singular value decomposition (SVD) of *> a real N-by-N (upper or lower) bidiagonal matrix B using the implicit *> zero-shift QR algorithm. The SVD of B has the form *> *> B = Q * S * P**H *> *> where S is the diagonal matrix of singular values, Q is an orthogonal *> matrix of left singular vectors, and P is an orthogonal matrix of *> right singular vectors. If left singular vectors are requested, this *> subroutine actually returns U*Q instead of Q, and, if right singular *> vectors are requested, this subroutine returns P**H*VT instead of *> P**H, for given complex input matrices U and VT. When U and VT are *> the unitary matrices that reduce a general matrix A to bidiagonal *> form: A = U*B*VT, as computed by ZGEBRD, then *> *> A = (U*Q) * S * (P**H*VT) *> *> is the SVD of A. Optionally, the subroutine may also compute Q**H*C *> for a given complex input matrix C. *> *> See "Computing Small Singular Values of Bidiagonal Matrices With *> Guaranteed High Relative Accuracy," by J. Demmel and W. Kahan, *> LAPACK Working Note #3 (or SIAM J. Sci. Statist. Comput. vol. 11, *> no. 5, pp. 873-912, Sept 1990) and *> "Accurate singular values and differential qd algorithms," by *> B. Parlett and V. Fernando, Technical Report CPAM-554, Mathematics *> Department, University of California at Berkeley, July 1992 *> for a detailed description of the algorithm. *> \endverbatim * * Arguments: * ========== * *> \param[in] UPLO *> \verbatim *> UPLO is CHARACTER*1 *> = 'U': B is upper bidiagonal; *> = 'L': B is lower bidiagonal. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix B. N >= 0. *> \endverbatim *> *> \param[in] NCVT *> \verbatim *> NCVT is INTEGER *> The number of columns of the matrix VT. NCVT >= 0. *> \endverbatim *> *> \param[in] NRU *> \verbatim *> NRU is INTEGER *> The number of rows of the matrix U. NRU >= 0. *> \endverbatim *> *> \param[in] NCC *> \verbatim *> NCC is INTEGER *> The number of columns of the matrix C. NCC >= 0. *> \endverbatim *> *> \param[in,out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (N) *> On entry, the n diagonal elements of the bidiagonal matrix B. *> On exit, if INFO=0, the singular values of B in decreasing *> order. *> \endverbatim *> *> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (N-1) *> On entry, the N-1 offdiagonal elements of the bidiagonal *> matrix B. *> On exit, if INFO = 0, E is destroyed; if INFO > 0, D and E *> will contain the diagonal and superdiagonal elements of a *> bidiagonal matrix orthogonally equivalent to the one given *> as input. *> \endverbatim *> *> \param[in,out] VT *> \verbatim *> VT is COMPLEX*16 array, dimension (LDVT, NCVT) *> On entry, an N-by-NCVT matrix VT. *> On exit, VT is overwritten by P**H * VT. *> Not referenced if NCVT = 0. *> \endverbatim *> *> \param[in] LDVT *> \verbatim *> LDVT is INTEGER *> The leading dimension of the array VT. *> LDVT >= max(1,N) if NCVT > 0; LDVT >= 1 if NCVT = 0. *> \endverbatim *> *> \param[in,out] U *> \verbatim *> U is COMPLEX*16 array, dimension (LDU, N) *> On entry, an NRU-by-N matrix U. *> On exit, U is overwritten by U * Q. *> Not referenced if NRU = 0. *> \endverbatim *> *> \param[in] LDU *> \verbatim *> LDU is INTEGER *> The leading dimension of the array U. LDU >= max(1,NRU). *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC, NCC) *> On entry, an N-by-NCC matrix C. *> On exit, C is overwritten by Q**H * C. *> Not referenced if NCC = 0. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. *> LDC >= max(1,N) if NCC > 0; LDC >=1 if NCC = 0. *> \endverbatim *> *> \param[out] RWORK *> \verbatim *> RWORK is DOUBLE PRECISION array, dimension (4*N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: If INFO = -i, the i-th argument had an illegal value *> > 0: the algorithm did not converge; D and E contain the *> elements of a bidiagonal matrix which is orthogonally *> similar to the input matrix B; if INFO = i, i *> elements of E have not converged to zero. *> \endverbatim * *> \par Internal Parameters: * ========================= *> *> \verbatim *> TOLMUL DOUBLE PRECISION, default = max(10,min(100,EPS**(-1/8))) *> TOLMUL controls the convergence criterion of the QR loop. *> If it is positive, TOLMUL*EPS is the desired relative *> precision in the computed singular values. *> If it is negative, abs(TOLMUL*EPS*sigma_max) is the *> desired absolute accuracy in the computed singular *> values (corresponds to relative accuracy *> abs(TOLMUL*EPS) in the largest singular value. *> abs(TOLMUL) should be between 1 and 1/EPS, and preferably *> between 10 (for fast convergence) and .1/EPS *> (for there to be some accuracy in the results). *> Default is to lose at either one eighth or 2 of the *> available decimal digits in each computed singular value *> (whichever is smaller). *> *> MAXITR INTEGER, default = 6 *> MAXITR controls the maximum number of passes of the *> algorithm through its inner loop. The algorithms stops *> (and so fails to converge) if the number of passes *> through the inner loop exceeds MAXITR*N**2. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, $ LDU, C, LDC, RWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER UPLO INTEGER INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ), RWORK( * ) COMPLEX*16 C( LDC, * ), U( LDU, * ), VT( LDVT, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION NEGONE PARAMETER ( NEGONE = -1.0D0 ) DOUBLE PRECISION HNDRTH PARAMETER ( HNDRTH = 0.01D0 ) DOUBLE PRECISION TEN PARAMETER ( TEN = 10.0D0 ) DOUBLE PRECISION HNDRD PARAMETER ( HNDRD = 100.0D0 ) DOUBLE PRECISION MEIGTH PARAMETER ( MEIGTH = -0.125D0 ) INTEGER MAXITR PARAMETER ( MAXITR = 6 ) * .. * .. Local Scalars .. LOGICAL LOWER, ROTATE INTEGER I, IDIR, ISUB, ITER, J, LL, LLL, M, MAXIT, NM1, $ NM12, NM13, OLDLL, OLDM DOUBLE PRECISION ABSE, ABSS, COSL, COSR, CS, EPS, F, G, H, MU, $ OLDCS, OLDSN, R, SHIFT, SIGMN, SIGMX, SINL, $ SINR, SLL, SMAX, SMIN, SMINL, SMINOA, $ SN, THRESH, TOL, TOLMUL, UNFL * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH EXTERNAL LSAME, DLAMCH * .. * .. External Subroutines .. EXTERNAL DLARTG, DLAS2, DLASQ1, DLASV2, XERBLA, ZDROT, $ ZDSCAL, ZLASR, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, MAX, MIN, SIGN, SQRT * .. * .. Executable Statements .. * * Test the input parameters. * INFO = 0 LOWER = LSAME( UPLO, 'L' ) IF( .NOT.LSAME( UPLO, 'U' ) .AND. .NOT.LOWER ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( NCVT.LT.0 ) THEN INFO = -3 ELSE IF( NRU.LT.0 ) THEN INFO = -4 ELSE IF( NCC.LT.0 ) THEN INFO = -5 ELSE IF( ( NCVT.EQ.0 .AND. LDVT.LT.1 ) .OR. $ ( NCVT.GT.0 .AND. LDVT.LT.MAX( 1, N ) ) ) THEN INFO = -9 ELSE IF( LDU.LT.MAX( 1, NRU ) ) THEN INFO = -11 ELSE IF( ( NCC.EQ.0 .AND. LDC.LT.1 ) .OR. $ ( NCC.GT.0 .AND. LDC.LT.MAX( 1, N ) ) ) THEN INFO = -13 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZBDSQR', -INFO ) RETURN END IF IF( N.EQ.0 ) $ RETURN IF( N.EQ.1 ) $ GO TO 160 * * ROTATE is true if any singular vectors desired, false otherwise * ROTATE = ( NCVT.GT.0 ) .OR. ( NRU.GT.0 ) .OR. ( NCC.GT.0 ) * * If no singular vectors desired, use qd algorithm * IF( .NOT.ROTATE ) THEN CALL DLASQ1( N, D, E, RWORK, INFO ) * * If INFO equals 2, dqds didn't finish, try to finish * IF( INFO .NE. 2 ) RETURN INFO = 0 END IF * NM1 = N - 1 NM12 = NM1 + NM1 NM13 = NM12 + NM1 IDIR = 0 * * Get machine constants * EPS = DLAMCH( 'Epsilon' ) UNFL = DLAMCH( 'Safe minimum' ) * * If matrix lower bidiagonal, rotate to be upper bidiagonal * by applying Givens rotations on the left * IF( LOWER ) THEN DO 10 I = 1, N - 1 CALL DLARTG( D( I ), E( I ), CS, SN, R ) D( I ) = R E( I ) = SN*D( I+1 ) D( I+1 ) = CS*D( I+1 ) RWORK( I ) = CS RWORK( NM1+I ) = SN 10 CONTINUE * * Update singular vectors if desired * IF( NRU.GT.0 ) $ CALL ZLASR( 'R', 'V', 'F', NRU, N, RWORK( 1 ), RWORK( N ), $ U, LDU ) IF( NCC.GT.0 ) $ CALL ZLASR( 'L', 'V', 'F', N, NCC, RWORK( 1 ), RWORK( N ), $ C, LDC ) END IF * * Compute singular values to relative accuracy TOL * (By setting TOL to be negative, algorithm will compute * singular values to absolute accuracy ABS(TOL)*norm(input matrix)) * TOLMUL = MAX( TEN, MIN( HNDRD, EPS**MEIGTH ) ) TOL = TOLMUL*EPS * * Compute approximate maximum, minimum singular values * SMAX = ZERO DO 20 I = 1, N SMAX = MAX( SMAX, ABS( D( I ) ) ) 20 CONTINUE DO 30 I = 1, N - 1 SMAX = MAX( SMAX, ABS( E( I ) ) ) 30 CONTINUE SMINL = ZERO IF( TOL.GE.ZERO ) THEN * * Relative accuracy desired * SMINOA = ABS( D( 1 ) ) IF( SMINOA.EQ.ZERO ) $ GO TO 50 MU = SMINOA DO 40 I = 2, N MU = ABS( D( I ) )*( MU / ( MU+ABS( E( I-1 ) ) ) ) SMINOA = MIN( SMINOA, MU ) IF( SMINOA.EQ.ZERO ) $ GO TO 50 40 CONTINUE 50 CONTINUE SMINOA = SMINOA / SQRT( DBLE( N ) ) THRESH = MAX( TOL*SMINOA, MAXITR*N*N*UNFL ) ELSE * * Absolute accuracy desired * THRESH = MAX( ABS( TOL )*SMAX, MAXITR*N*N*UNFL ) END IF * * Prepare for main iteration loop for the singular values * (MAXIT is the maximum number of passes through the inner * loop permitted before nonconvergence signalled.) * MAXIT = MAXITR*N*N ITER = 0 OLDLL = -1 OLDM = -1 * * M points to last element of unconverged part of matrix * M = N * * Begin main iteration loop * 60 CONTINUE * * Check for convergence or exceeding iteration count * IF( M.LE.1 ) $ GO TO 160 IF( ITER.GT.MAXIT ) $ GO TO 200 * * Find diagonal block of matrix to work on * IF( TOL.LT.ZERO .AND. ABS( D( M ) ).LE.THRESH ) $ D( M ) = ZERO SMAX = ABS( D( M ) ) SMIN = SMAX DO 70 LLL = 1, M - 1 LL = M - LLL ABSS = ABS( D( LL ) ) ABSE = ABS( E( LL ) ) IF( TOL.LT.ZERO .AND. ABSS.LE.THRESH ) $ D( LL ) = ZERO IF( ABSE.LE.THRESH ) $ GO TO 80 SMIN = MIN( SMIN, ABSS ) SMAX = MAX( SMAX, ABSS, ABSE ) 70 CONTINUE LL = 0 GO TO 90 80 CONTINUE E( LL ) = ZERO * * Matrix splits since E(LL) = 0 * IF( LL.EQ.M-1 ) THEN * * Convergence of bottom singular value, return to top of loop * M = M - 1 GO TO 60 END IF 90 CONTINUE LL = LL + 1 * * E(LL) through E(M-1) are nonzero, E(LL-1) is zero * IF( LL.EQ.M-1 ) THEN * * 2 by 2 block, handle separately * CALL DLASV2( D( M-1 ), E( M-1 ), D( M ), SIGMN, SIGMX, SINR, $ COSR, SINL, COSL ) D( M-1 ) = SIGMX E( M-1 ) = ZERO D( M ) = SIGMN * * Compute singular vectors, if desired * IF( NCVT.GT.0 ) $ CALL ZDROT( NCVT, VT( M-1, 1 ), LDVT, VT( M, 1 ), LDVT, $ COSR, SINR ) IF( NRU.GT.0 ) $ CALL ZDROT( NRU, U( 1, M-1 ), 1, U( 1, M ), 1, COSL, SINL ) IF( NCC.GT.0 ) $ CALL ZDROT( NCC, C( M-1, 1 ), LDC, C( M, 1 ), LDC, COSL, $ SINL ) M = M - 2 GO TO 60 END IF * * If working on new submatrix, choose shift direction * (from larger end diagonal element towards smaller) * IF( LL.GT.OLDM .OR. M.LT.OLDLL ) THEN IF( ABS( D( LL ) ).GE.ABS( D( M ) ) ) THEN * * Chase bulge from top (big end) to bottom (small end) * IDIR = 1 ELSE * * Chase bulge from bottom (big end) to top (small end) * IDIR = 2 END IF END IF * * Apply convergence tests * IF( IDIR.EQ.1 ) THEN * * Run convergence test in forward direction * First apply standard test to bottom of matrix * IF( ABS( E( M-1 ) ).LE.ABS( TOL )*ABS( D( M ) ) .OR. $ ( TOL.LT.ZERO .AND. ABS( E( M-1 ) ).LE.THRESH ) ) THEN E( M-1 ) = ZERO GO TO 60 END IF * IF( TOL.GE.ZERO ) THEN * * If relative accuracy desired, * apply convergence criterion forward * MU = ABS( D( LL ) ) SMINL = MU DO 100 LLL = LL, M - 1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL+1 ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) SMINL = MIN( SMINL, MU ) 100 CONTINUE END IF * ELSE * * Run convergence test in backward direction * First apply standard test to top of matrix * IF( ABS( E( LL ) ).LE.ABS( TOL )*ABS( D( LL ) ) .OR. $ ( TOL.LT.ZERO .AND. ABS( E( LL ) ).LE.THRESH ) ) THEN E( LL ) = ZERO GO TO 60 END IF * IF( TOL.GE.ZERO ) THEN * * If relative accuracy desired, * apply convergence criterion backward * MU = ABS( D( M ) ) SMINL = MU DO 110 LLL = M - 1, LL, -1 IF( ABS( E( LLL ) ).LE.TOL*MU ) THEN E( LLL ) = ZERO GO TO 60 END IF MU = ABS( D( LLL ) )*( MU / ( MU+ABS( E( LLL ) ) ) ) SMINL = MIN( SMINL, MU ) 110 CONTINUE END IF END IF OLDLL = LL OLDM = M * * Compute shift. First, test if shifting would ruin relative * accuracy, and if so set the shift to zero. * IF( TOL.GE.ZERO .AND. N*TOL*( SMINL / SMAX ).LE. $ MAX( EPS, HNDRTH*TOL ) ) THEN * * Use a zero shift to avoid loss of relative accuracy * SHIFT = ZERO ELSE * * Compute the shift from 2-by-2 block at end of matrix * IF( IDIR.EQ.1 ) THEN SLL = ABS( D( LL ) ) CALL DLAS2( D( M-1 ), E( M-1 ), D( M ), SHIFT, R ) ELSE SLL = ABS( D( M ) ) CALL DLAS2( D( LL ), E( LL ), D( LL+1 ), SHIFT, R ) END IF * * Test if shift negligible, and if so set to zero * IF( SLL.GT.ZERO ) THEN IF( ( SHIFT / SLL )**2.LT.EPS ) $ SHIFT = ZERO END IF END IF * * Increment iteration count * ITER = ITER + M - LL * * If SHIFT = 0, do simplified QR iteration * IF( SHIFT.EQ.ZERO ) THEN IF( IDIR.EQ.1 ) THEN * * Chase bulge from top to bottom * Save cosines and sines for later singular vector updates * CS = ONE OLDCS = ONE DO 120 I = LL, M - 1 CALL DLARTG( D( I )*CS, E( I ), CS, SN, R ) IF( I.GT.LL ) $ E( I-1 ) = OLDSN*R CALL DLARTG( OLDCS*R, D( I+1 )*SN, OLDCS, OLDSN, D( I ) ) RWORK( I-LL+1 ) = CS RWORK( I-LL+1+NM1 ) = SN RWORK( I-LL+1+NM12 ) = OLDCS RWORK( I-LL+1+NM13 ) = OLDSN 120 CONTINUE H = D( M )*CS D( M ) = H*OLDCS E( M-1 ) = H*OLDSN * * Update singular vectors * IF( NCVT.GT.0 ) $ CALL ZLASR( 'L', 'V', 'F', M-LL+1, NCVT, RWORK( 1 ), $ RWORK( N ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL ZLASR( 'R', 'V', 'F', NRU, M-LL+1, RWORK( NM12+1 ), $ RWORK( NM13+1 ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL ZLASR( 'L', 'V', 'F', M-LL+1, NCC, RWORK( NM12+1 ), $ RWORK( NM13+1 ), C( LL, 1 ), LDC ) * * Test convergence * IF( ABS( E( M-1 ) ).LE.THRESH ) $ E( M-1 ) = ZERO * ELSE * * Chase bulge from bottom to top * Save cosines and sines for later singular vector updates * CS = ONE OLDCS = ONE DO 130 I = M, LL + 1, -1 CALL DLARTG( D( I )*CS, E( I-1 ), CS, SN, R ) IF( I.LT.M ) $ E( I ) = OLDSN*R CALL DLARTG( OLDCS*R, D( I-1 )*SN, OLDCS, OLDSN, D( I ) ) RWORK( I-LL ) = CS RWORK( I-LL+NM1 ) = -SN RWORK( I-LL+NM12 ) = OLDCS RWORK( I-LL+NM13 ) = -OLDSN 130 CONTINUE H = D( LL )*CS D( LL ) = H*OLDCS E( LL ) = H*OLDSN * * Update singular vectors * IF( NCVT.GT.0 ) $ CALL ZLASR( 'L', 'V', 'B', M-LL+1, NCVT, RWORK( NM12+1 ), $ RWORK( NM13+1 ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL ZLASR( 'R', 'V', 'B', NRU, M-LL+1, RWORK( 1 ), $ RWORK( N ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL ZLASR( 'L', 'V', 'B', M-LL+1, NCC, RWORK( 1 ), $ RWORK( N ), C( LL, 1 ), LDC ) * * Test convergence * IF( ABS( E( LL ) ).LE.THRESH ) $ E( LL ) = ZERO END IF ELSE * * Use nonzero shift * IF( IDIR.EQ.1 ) THEN * * Chase bulge from top to bottom * Save cosines and sines for later singular vector updates * F = ( ABS( D( LL ) )-SHIFT )* $ ( SIGN( ONE, D( LL ) )+SHIFT / D( LL ) ) G = E( LL ) DO 140 I = LL, M - 1 CALL DLARTG( F, G, COSR, SINR, R ) IF( I.GT.LL ) $ E( I-1 ) = R F = COSR*D( I ) + SINR*E( I ) E( I ) = COSR*E( I ) - SINR*D( I ) G = SINR*D( I+1 ) D( I+1 ) = COSR*D( I+1 ) CALL DLARTG( F, G, COSL, SINL, R ) D( I ) = R F = COSL*E( I ) + SINL*D( I+1 ) D( I+1 ) = COSL*D( I+1 ) - SINL*E( I ) IF( I.LT.M-1 ) THEN G = SINL*E( I+1 ) E( I+1 ) = COSL*E( I+1 ) END IF RWORK( I-LL+1 ) = COSR RWORK( I-LL+1+NM1 ) = SINR RWORK( I-LL+1+NM12 ) = COSL RWORK( I-LL+1+NM13 ) = SINL 140 CONTINUE E( M-1 ) = F * * Update singular vectors * IF( NCVT.GT.0 ) $ CALL ZLASR( 'L', 'V', 'F', M-LL+1, NCVT, RWORK( 1 ), $ RWORK( N ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL ZLASR( 'R', 'V', 'F', NRU, M-LL+1, RWORK( NM12+1 ), $ RWORK( NM13+1 ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL ZLASR( 'L', 'V', 'F', M-LL+1, NCC, RWORK( NM12+1 ), $ RWORK( NM13+1 ), C( LL, 1 ), LDC ) * * Test convergence * IF( ABS( E( M-1 ) ).LE.THRESH ) $ E( M-1 ) = ZERO * ELSE * * Chase bulge from bottom to top * Save cosines and sines for later singular vector updates * F = ( ABS( D( M ) )-SHIFT )*( SIGN( ONE, D( M ) )+SHIFT / $ D( M ) ) G = E( M-1 ) DO 150 I = M, LL + 1, -1 CALL DLARTG( F, G, COSR, SINR, R ) IF( I.LT.M ) $ E( I ) = R F = COSR*D( I ) + SINR*E( I-1 ) E( I-1 ) = COSR*E( I-1 ) - SINR*D( I ) G = SINR*D( I-1 ) D( I-1 ) = COSR*D( I-1 ) CALL DLARTG( F, G, COSL, SINL, R ) D( I ) = R F = COSL*E( I-1 ) + SINL*D( I-1 ) D( I-1 ) = COSL*D( I-1 ) - SINL*E( I-1 ) IF( I.GT.LL+1 ) THEN G = SINL*E( I-2 ) E( I-2 ) = COSL*E( I-2 ) END IF RWORK( I-LL ) = COSR RWORK( I-LL+NM1 ) = -SINR RWORK( I-LL+NM12 ) = COSL RWORK( I-LL+NM13 ) = -SINL 150 CONTINUE E( LL ) = F * * Test convergence * IF( ABS( E( LL ) ).LE.THRESH ) $ E( LL ) = ZERO * * Update singular vectors if desired * IF( NCVT.GT.0 ) $ CALL ZLASR( 'L', 'V', 'B', M-LL+1, NCVT, RWORK( NM12+1 ), $ RWORK( NM13+1 ), VT( LL, 1 ), LDVT ) IF( NRU.GT.0 ) $ CALL ZLASR( 'R', 'V', 'B', NRU, M-LL+1, RWORK( 1 ), $ RWORK( N ), U( 1, LL ), LDU ) IF( NCC.GT.0 ) $ CALL ZLASR( 'L', 'V', 'B', M-LL+1, NCC, RWORK( 1 ), $ RWORK( N ), C( LL, 1 ), LDC ) END IF END IF * * QR iteration finished, go back and check convergence * GO TO 60 * * All singular values converged, so make them positive * 160 CONTINUE DO 170 I = 1, N IF( D( I ).LT.ZERO ) THEN D( I ) = -D( I ) * * Change sign of singular vectors, if desired * IF( NCVT.GT.0 ) $ CALL ZDSCAL( NCVT, NEGONE, VT( I, 1 ), LDVT ) END IF 170 CONTINUE * * Sort the singular values into decreasing order (insertion sort on * singular values, but only one transposition per singular vector) * DO 190 I = 1, N - 1 * * Scan for smallest D(I) * ISUB = 1 SMIN = D( 1 ) DO 180 J = 2, N + 1 - I IF( D( J ).LE.SMIN ) THEN ISUB = J SMIN = D( J ) END IF 180 CONTINUE IF( ISUB.NE.N+1-I ) THEN * * Swap singular values and vectors * D( ISUB ) = D( N+1-I ) D( N+1-I ) = SMIN IF( NCVT.GT.0 ) $ CALL ZSWAP( NCVT, VT( ISUB, 1 ), LDVT, VT( N+1-I, 1 ), $ LDVT ) IF( NRU.GT.0 ) $ CALL ZSWAP( NRU, U( 1, ISUB ), 1, U( 1, N+1-I ), 1 ) IF( NCC.GT.0 ) $ CALL ZSWAP( NCC, C( ISUB, 1 ), LDC, C( N+1-I, 1 ), LDC ) END IF 190 CONTINUE GO TO 220 * * Maximum number of iterations exceeded, failure to converge * 200 CONTINUE INFO = 0 DO 210 I = 1, N - 1 IF( E( I ).NE.ZERO ) $ INFO = INFO + 1 210 CONTINUE 220 CONTINUE RETURN * * End of ZBDSQR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunmbr.f0000644000000000000000000000013213543334727015247 xustar0030 mtime=1569569239.422645271 30 atime=1569569239.420645272 30 ctime=1569569239.422645271 elk-6.3.2/src/LAPACK/zunmbr.f0000644002504400250440000002555313543334727017330 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNMBR * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNMBR + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNMBR( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, * LDC, WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS, VECT * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> If VECT = 'Q', ZUNMBR overwrites the general complex M-by-N matrix C *> with *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> If VECT = 'P', ZUNMBR overwrites the general complex M-by-N matrix C *> with *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': P * C C * P *> TRANS = 'C': P**H * C C * P**H *> *> Here Q and P**H are the unitary matrices determined by ZGEBRD when *> reducing a complex matrix A to bidiagonal form: A = Q * B * P**H. Q *> and P**H are defined as products of elementary reflectors H(i) and *> G(i) respectively. *> *> Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Thus nq is the *> order of the unitary matrix Q or P**H that is applied. *> *> If VECT = 'Q', A is assumed to have been an NQ-by-K matrix: *> if nq >= k, Q = H(1) H(2) . . . H(k); *> if nq < k, Q = H(1) H(2) . . . H(nq-1). *> *> If VECT = 'P', A is assumed to have been a K-by-NQ matrix: *> if k < nq, P = G(1) G(2) . . . G(k); *> if k >= nq, P = G(1) G(2) . . . G(nq-1). *> \endverbatim * * Arguments: * ========== * *> \param[in] VECT *> \verbatim *> VECT is CHARACTER*1 *> = 'Q': apply Q or Q**H; *> = 'P': apply P or P**H. *> \endverbatim *> *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q, Q**H, P or P**H from the Left; *> = 'R': apply Q, Q**H, P or P**H from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q or P; *> = 'C': Conjugate transpose, apply Q**H or P**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> If VECT = 'Q', the number of columns in the original *> matrix reduced by ZGEBRD. *> If VECT = 'P', the number of rows in the original *> matrix reduced by ZGEBRD. *> K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension *> (LDA,min(nq,K)) if VECT = 'Q' *> (LDA,nq) if VECT = 'P' *> The vectors which define the elementary reflectors H(i) and *> G(i), whose products determine the matrices Q and P, as *> returned by ZGEBRD. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. *> If VECT = 'Q', LDA >= max(1,nq); *> if VECT = 'P', LDA >= max(1,min(nq,K)). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (min(nq,K)) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i) or G(i) which determines Q or P, as returned *> by ZGEBRD in the array argument TAUQ or TAUP. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q *> or P*C or P**H*C or C*P or C*P**H. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M); *> if N = 0 or M = 0, LWORK >= 1. *> For optimum performance LWORK >= max(1,N*NB) if SIDE = 'L', *> and LWORK >= max(1,M*NB) if SIDE = 'R', where NB is the *> optimal blocksize. (NB = 0 if M = 0 or N = 0.) *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNMBR( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, $ LDC, WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS, VECT INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Local Scalars .. LOGICAL APPLYQ, LEFT, LQUERY, NOTRAN CHARACTER TRANST INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZUNMLQ, ZUNMQR * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 APPLYQ = LSAME( VECT, 'Q' ) LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q or P and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( M.EQ.0 .OR. N.EQ.0 ) THEN NW = 0 END IF IF( .NOT.APPLYQ .AND. .NOT.LSAME( VECT, 'P' ) ) THEN INFO = -1 ELSE IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -2 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( K.LT.0 ) THEN INFO = -6 ELSE IF( ( APPLYQ .AND. LDA.LT.MAX( 1, NQ ) ) .OR. $ ( .NOT.APPLYQ .AND. LDA.LT.MAX( 1, MIN( NQ, K ) ) ) ) $ THEN INFO = -8 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -11 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -13 END IF * IF( INFO.EQ.0 ) THEN IF( NW.GT.0 ) THEN IF( APPLYQ ) THEN IF( LEFT ) THEN NB = ILAENV( 1, 'ZUNMQR', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'ZUNMQR', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF ELSE IF( LEFT ) THEN NB = ILAENV( 1, 'ZUNMLQ', SIDE // TRANS, M-1, N, M-1, $ -1 ) ELSE NB = ILAENV( 1, 'ZUNMLQ', SIDE // TRANS, M, N-1, N-1, $ -1 ) END IF END IF LWKOPT = MAX( 1, NW*NB ) ELSE LWKOPT = 1 END IF WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNMBR', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * IF( APPLYQ ) THEN * * Apply Q * IF( NQ.GE.K ) THEN * * Q was determined by a call to ZGEBRD with nq >= k * CALL ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, IINFO ) ELSE IF( NQ.GT.1 ) THEN * * Q was determined by a call to ZGEBRD with nq < k * IF( LEFT ) THEN MI = M - 1 NI = N I1 = 2 I2 = 1 ELSE MI = M NI = N - 1 I1 = 1 I2 = 2 END IF CALL ZUNMQR( SIDE, TRANS, MI, NI, NQ-1, A( 2, 1 ), LDA, TAU, $ C( I1, I2 ), LDC, WORK, LWORK, IINFO ) END IF ELSE * * Apply P * IF( NOTRAN ) THEN TRANST = 'C' ELSE TRANST = 'N' END IF IF( NQ.GT.K ) THEN * * P was determined by a call to ZGEBRD with nq > k * CALL ZUNMLQ( SIDE, TRANST, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, IINFO ) ELSE IF( NQ.GT.1 ) THEN * * P was determined by a call to ZGEBRD with nq <= k * IF( LEFT ) THEN MI = M - 1 NI = N I1 = 2 I2 = 1 ELSE MI = M NI = N - 1 I1 = 1 I2 = 2 END IF CALL ZUNMLQ( SIDE, TRANST, MI, NI, NQ-1, A( 1, 2 ), LDA, $ TAU, C( I1, I2 ), LDC, WORK, LWORK, IINFO ) END IF END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNMBR * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasv2.f0000644000000000000000000000013213543334727015125 xustar0030 mtime=1569569239.426645268 30 atime=1569569239.425645269 30 ctime=1569569239.426645268 elk-6.3.2/src/LAPACK/dlasv2.f0000644002504400250440000002045113543334727017176 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASV2 computes the singular value decomposition of a 2-by-2 triangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASV2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASV2( F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL ) * * .. Scalar Arguments .. * DOUBLE PRECISION CSL, CSR, F, G, H, SNL, SNR, SSMAX, SSMIN * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASV2 computes the singular value decomposition of a 2-by-2 *> triangular matrix *> [ F G ] *> [ 0 H ]. *> On return, abs(SSMAX) is the larger singular value, abs(SSMIN) is the *> smaller singular value, and (CSL,SNL) and (CSR,SNR) are the left and *> right singular vectors for abs(SSMAX), giving the decomposition *> *> [ CSL SNL ] [ F G ] [ CSR -SNR ] = [ SSMAX 0 ] *> [-SNL CSL ] [ 0 H ] [ SNR CSR ] [ 0 SSMIN ]. *> \endverbatim * * Arguments: * ========== * *> \param[in] F *> \verbatim *> F is DOUBLE PRECISION *> The (1,1) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] G *> \verbatim *> G is DOUBLE PRECISION *> The (1,2) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] H *> \verbatim *> H is DOUBLE PRECISION *> The (2,2) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[out] SSMIN *> \verbatim *> SSMIN is DOUBLE PRECISION *> abs(SSMIN) is the smaller singular value. *> \endverbatim *> *> \param[out] SSMAX *> \verbatim *> SSMAX is DOUBLE PRECISION *> abs(SSMAX) is the larger singular value. *> \endverbatim *> *> \param[out] SNL *> \verbatim *> SNL is DOUBLE PRECISION *> \endverbatim *> *> \param[out] CSL *> \verbatim *> CSL is DOUBLE PRECISION *> The vector (CSL, SNL) is a unit left singular vector for the *> singular value abs(SSMAX). *> \endverbatim *> *> \param[out] SNR *> \verbatim *> SNR is DOUBLE PRECISION *> \endverbatim *> *> \param[out] CSR *> \verbatim *> CSR is DOUBLE PRECISION *> The vector (CSR, SNR) is a unit right singular vector for the *> singular value abs(SSMAX). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Any input parameter may be aliased with any output parameter. *> *> Barring over/underflow and assuming a guard digit in subtraction, all *> output quantities are correct to within a few units in the last *> place (ulps). *> *> In IEEE arithmetic, the code works correctly if one matrix element is *> infinite. *> *> Overflow will not occur unless the largest singular value itself *> overflows or is within a few ulps of overflow. (On machines with *> partial overflow, like the Cray, overflow may occur if the largest *> singular value is within a factor of 2 of overflow.) *> *> Underflow is harmless if underflow is gradual. Otherwise, results *> may correspond to a matrix modified by perturbations of size near *> the underflow threshold. *> \endverbatim *> * ===================================================================== SUBROUTINE DLASV2( F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION CSL, CSR, F, G, H, SNL, SNR, SSMAX, SSMIN * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION HALF PARAMETER ( HALF = 0.5D0 ) DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0D0 ) DOUBLE PRECISION FOUR PARAMETER ( FOUR = 4.0D0 ) * .. * .. Local Scalars .. LOGICAL GASMAL, SWAP INTEGER PMAX DOUBLE PRECISION A, CLT, CRT, D, FA, FT, GA, GT, HA, HT, L, M, $ MM, R, S, SLT, SRT, T, TEMP, TSIGN, TT * .. * .. Intrinsic Functions .. INTRINSIC ABS, SIGN, SQRT * .. * .. External Functions .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. Executable Statements .. * FT = F FA = ABS( FT ) HT = H HA = ABS( H ) * * PMAX points to the maximum absolute element of matrix * PMAX = 1 if F largest in absolute values * PMAX = 2 if G largest in absolute values * PMAX = 3 if H largest in absolute values * PMAX = 1 SWAP = ( HA.GT.FA ) IF( SWAP ) THEN PMAX = 3 TEMP = FT FT = HT HT = TEMP TEMP = FA FA = HA HA = TEMP * * Now FA .ge. HA * END IF GT = G GA = ABS( GT ) IF( GA.EQ.ZERO ) THEN * * Diagonal matrix * SSMIN = HA SSMAX = FA CLT = ONE CRT = ONE SLT = ZERO SRT = ZERO ELSE GASMAL = .TRUE. IF( GA.GT.FA ) THEN PMAX = 2 IF( ( FA / GA ).LT.DLAMCH( 'EPS' ) ) THEN * * Case of very large GA * GASMAL = .FALSE. SSMAX = GA IF( HA.GT.ONE ) THEN SSMIN = FA / ( GA / HA ) ELSE SSMIN = ( FA / GA )*HA END IF CLT = ONE SLT = HT / GT SRT = ONE CRT = FT / GT END IF END IF IF( GASMAL ) THEN * * Normal case * D = FA - HA IF( D.EQ.FA ) THEN * * Copes with infinite F or H * L = ONE ELSE L = D / FA END IF * * Note that 0 .le. L .le. 1 * M = GT / FT * * Note that abs(M) .le. 1/macheps * T = TWO - L * * Note that T .ge. 1 * MM = M*M TT = T*T S = SQRT( TT+MM ) * * Note that 1 .le. S .le. 1 + 1/macheps * IF( L.EQ.ZERO ) THEN R = ABS( M ) ELSE R = SQRT( L*L+MM ) END IF * * Note that 0 .le. R .le. 1 + 1/macheps * A = HALF*( S+R ) * * Note that 1 .le. A .le. 1 + abs(M) * SSMIN = HA / A SSMAX = FA*A IF( MM.EQ.ZERO ) THEN * * Note that M is very tiny * IF( L.EQ.ZERO ) THEN T = SIGN( TWO, FT )*SIGN( ONE, GT ) ELSE T = GT / SIGN( D, FT ) + M / T END IF ELSE T = ( M / ( S+T )+M / ( R+L ) )*( ONE+A ) END IF L = SQRT( T*T+FOUR ) CRT = TWO / L SRT = T / L CLT = ( CRT+SRT*M ) / A SLT = ( HT / FT )*SRT / A END IF END IF IF( SWAP ) THEN CSL = SRT SNL = CRT CSR = SLT SNR = CLT ELSE CSL = CLT SNL = SLT CSR = CRT SNR = SRT END IF * * Correct signs of SSMAX and SSMIN * IF( PMAX.EQ.1 ) $ TSIGN = SIGN( ONE, CSR )*SIGN( ONE, CSL )*SIGN( ONE, F ) IF( PMAX.EQ.2 ) $ TSIGN = SIGN( ONE, SNR )*SIGN( ONE, CSL )*SIGN( ONE, G ) IF( PMAX.EQ.3 ) $ TSIGN = SIGN( ONE, SNR )*SIGN( ONE, SNL )*SIGN( ONE, H ) SSMAX = SIGN( SSMAX, TSIGN ) SSMIN = SIGN( SSMIN, TSIGN*SIGN( ONE, F )*SIGN( ONE, H ) ) RETURN * * End of DLASV2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlas2.f0000644000000000000000000000013213543334727014737 xustar0030 mtime=1569569239.430645265 30 atime=1569569239.429645266 30 ctime=1569569239.430645265 elk-6.3.2/src/LAPACK/dlas2.f0000644002504400250440000001175313543334727017015 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLAS2 computes singular values of a 2-by-2 triangular matrix. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLAS2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLAS2( F, G, H, SSMIN, SSMAX ) * * .. Scalar Arguments .. * DOUBLE PRECISION F, G, H, SSMAX, SSMIN * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLAS2 computes the singular values of the 2-by-2 matrix *> [ F G ] *> [ 0 H ]. *> On return, SSMIN is the smaller singular value and SSMAX is the *> larger singular value. *> \endverbatim * * Arguments: * ========== * *> \param[in] F *> \verbatim *> F is DOUBLE PRECISION *> The (1,1) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] G *> \verbatim *> G is DOUBLE PRECISION *> The (1,2) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[in] H *> \verbatim *> H is DOUBLE PRECISION *> The (2,2) element of the 2-by-2 matrix. *> \endverbatim *> *> \param[out] SSMIN *> \verbatim *> SSMIN is DOUBLE PRECISION *> The smaller singular value. *> \endverbatim *> *> \param[out] SSMAX *> \verbatim *> SSMAX is DOUBLE PRECISION *> The larger singular value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Barring over/underflow, all output quantities are correct to within *> a few units in the last place (ulps), even in the absence of a guard *> digit in addition/subtraction. *> *> In IEEE arithmetic, the code works correctly if one matrix element is *> infinite. *> *> Overflow will not occur unless the largest singular value itself *> overflows, or is within a few ulps of overflow. (On machines with *> partial overflow, like the Cray, overflow may occur if the largest *> singular value is within a factor of 2 of overflow.) *> *> Underflow is harmless if underflow is gradual. Otherwise, results *> may correspond to a matrix modified by perturbations of size near *> the underflow threshold. *> \endverbatim *> * ===================================================================== SUBROUTINE DLAS2( F, G, H, SSMIN, SSMAX ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. DOUBLE PRECISION F, G, H, SSMAX, SSMIN * .. * * ==================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D0 ) DOUBLE PRECISION TWO PARAMETER ( TWO = 2.0D0 ) * .. * .. Local Scalars .. DOUBLE PRECISION AS, AT, AU, C, FA, FHMN, FHMX, GA, HA * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, MIN, SQRT * .. * .. Executable Statements .. * FA = ABS( F ) GA = ABS( G ) HA = ABS( H ) FHMN = MIN( FA, HA ) FHMX = MAX( FA, HA ) IF( FHMN.EQ.ZERO ) THEN SSMIN = ZERO IF( FHMX.EQ.ZERO ) THEN SSMAX = GA ELSE SSMAX = MAX( FHMX, GA )*SQRT( ONE+ $ ( MIN( FHMX, GA ) / MAX( FHMX, GA ) )**2 ) END IF ELSE IF( GA.LT.FHMX ) THEN AS = ONE + FHMN / FHMX AT = ( FHMX-FHMN ) / FHMX AU = ( GA / FHMX )**2 C = TWO / ( SQRT( AS*AS+AU )+SQRT( AT*AT+AU ) ) SSMIN = FHMN*C SSMAX = FHMX / C ELSE AU = FHMX / GA IF( AU.EQ.ZERO ) THEN * * Avoid possible harmful underflow if exponent range * asymmetric (true SSMIN may not underflow even if * AU underflows) * SSMIN = ( FHMN*FHMX ) / GA SSMAX = GA ELSE AS = ONE + FHMN / FHMX AT = ( FHMX-FHMN ) / FHMX C = ONE / ( SQRT( ONE+( AS*AU )**2 )+ $ SQRT( ONE+( AT*AU )**2 ) ) SSMIN = ( FHMN*C )*AU SSMIN = SSMIN + SSMIN SSMAX = GA / ( C+C ) END IF END IF END IF RETURN * * End of DLAS2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlabrd.f0000644000000000000000000000013213543334727015162 xustar0030 mtime=1569569239.435645262 30 atime=1569569239.433645264 30 ctime=1569569239.435645262 elk-6.3.2/src/LAPACK/dlabrd.f0000644002504400250440000003304313543334727017234 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLABRD reduces the first nb rows and columns of a general matrix to a bidiagonal form. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLABRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, * LDY ) * * .. Scalar Arguments .. * INTEGER LDA, LDX, LDY, M, N, NB * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ), * $ TAUQ( * ), X( LDX, * ), Y( LDY, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLABRD reduces the first NB rows and columns of a real general *> m by n matrix A to upper or lower bidiagonal form by an orthogonal *> transformation Q**T * A * P, and returns the matrices X and Y which *> are needed to apply the transformation to the unreduced part of A. *> *> If m >= n, A is reduced to upper bidiagonal form; if m < n, to lower *> bidiagonal form. *> *> This is an auxiliary routine called by DGEBRD *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows in the matrix A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns in the matrix A. *> \endverbatim *> *> \param[in] NB *> \verbatim *> NB is INTEGER *> The number of leading rows and columns of A to be reduced. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the m by n general matrix to be reduced. *> On exit, the first NB rows and columns of the matrix are *> overwritten; the rest of the array is unchanged. *> If m >= n, elements on and below the diagonal in the first NB *> columns, with the array TAUQ, represent the orthogonal *> matrix Q as a product of elementary reflectors; and *> elements above the diagonal in the first NB rows, with the *> array TAUP, represent the orthogonal matrix P as a product *> of elementary reflectors. *> If m < n, elements below the diagonal in the first NB *> columns, with the array TAUQ, represent the orthogonal *> matrix Q as a product of elementary reflectors, and *> elements on and above the diagonal in the first NB rows, *> with the array TAUP, represent the orthogonal matrix P as *> a product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (NB) *> The diagonal elements of the first NB rows and columns of *> the reduced matrix. D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (NB) *> The off-diagonal elements of the first NB rows and columns of *> the reduced matrix. *> \endverbatim *> *> \param[out] TAUQ *> \verbatim *> TAUQ is DOUBLE PRECISION array, dimension (NB) *> The scalar factors of the elementary reflectors which *> represent the orthogonal matrix Q. See Further Details. *> \endverbatim *> *> \param[out] TAUP *> \verbatim *> TAUP is DOUBLE PRECISION array, dimension (NB) *> The scalar factors of the elementary reflectors which *> represent the orthogonal matrix P. See Further Details. *> \endverbatim *> *> \param[out] X *> \verbatim *> X is DOUBLE PRECISION array, dimension (LDX,NB) *> The m-by-nb matrix X required to update the unreduced part *> of A. *> \endverbatim *> *> \param[in] LDX *> \verbatim *> LDX is INTEGER *> The leading dimension of the array X. LDX >= max(1,M). *> \endverbatim *> *> \param[out] Y *> \verbatim *> Y is DOUBLE PRECISION array, dimension (LDY,NB) *> The n-by-nb matrix Y required to update the unreduced part *> of A. *> \endverbatim *> *> \param[in] LDY *> \verbatim *> LDY is INTEGER *> The leading dimension of the array Y. LDY >= max(1,N). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup doubleOTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrices Q and P are represented as products of elementary *> reflectors: *> *> Q = H(1) H(2) . . . H(nb) and P = G(1) G(2) . . . G(nb) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**T and G(i) = I - taup * u * u**T *> *> where tauq and taup are real scalars, and v and u are real vectors. *> *> If m >= n, v(1:i-1) = 0, v(i) = 1, and v(i:m) is stored on exit in *> A(i:m,i); u(1:i) = 0, u(i+1) = 1, and u(i+1:n) is stored on exit in *> A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> If m < n, v(1:i) = 0, v(i+1) = 1, and v(i+1:m) is stored on exit in *> A(i+2:m,i); u(1:i-1) = 0, u(i) = 1, and u(i:n) is stored on exit in *> A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> The elements of the vectors v and u together form the m-by-nb matrix *> V and the nb-by-n matrix U**T which are needed, with X and Y, to apply *> the transformation to the unreduced part of the matrix, using a block *> update of the form: A := A - V*Y**T - X*U**T. *> *> The contents of A on exit are illustrated by the following examples *> with nb = 2: *> *> m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n): *> *> ( 1 1 u1 u1 u1 ) ( 1 u1 u1 u1 u1 u1 ) *> ( v1 1 1 u2 u2 ) ( 1 1 u2 u2 u2 u2 ) *> ( v1 v2 a a a ) ( v1 1 a a a a ) *> ( v1 v2 a a a ) ( v1 v2 a a a a ) *> ( v1 v2 a a a ) ( v1 v2 a a a a ) *> ( v1 v2 a a a ) *> *> where a denotes an element of the original matrix which is unchanged, *> vi denotes an element of the vector defining H(i), and ui an element *> of the vector defining G(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, $ LDY ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER LDA, LDX, LDY, M, N, NB * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ), $ TAUQ( * ), X( LDX, * ), Y( LDY, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 ) * .. * .. Local Scalars .. INTEGER I * .. * .. External Subroutines .. EXTERNAL DGEMV, DLARFG, DSCAL * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * * Quick return if possible * IF( M.LE.0 .OR. N.LE.0 ) $ RETURN * IF( M.GE.N ) THEN * * Reduce to upper bidiagonal form * DO 10 I = 1, NB * * Update A(i:m,i) * CALL DGEMV( 'No transpose', M-I+1, I-1, -ONE, A( I, 1 ), $ LDA, Y( I, 1 ), LDY, ONE, A( I, I ), 1 ) CALL DGEMV( 'No transpose', M-I+1, I-1, -ONE, X( I, 1 ), $ LDX, A( 1, I ), 1, ONE, A( I, I ), 1 ) * * Generate reflection Q(i) to annihilate A(i+1:m,i) * CALL DLARFG( M-I+1, A( I, I ), A( MIN( I+1, M ), I ), 1, $ TAUQ( I ) ) D( I ) = A( I, I ) IF( I.LT.N ) THEN A( I, I ) = ONE * * Compute Y(i+1:n,i) * CALL DGEMV( 'Transpose', M-I+1, N-I, ONE, A( I, I+1 ), $ LDA, A( I, I ), 1, ZERO, Y( I+1, I ), 1 ) CALL DGEMV( 'Transpose', M-I+1, I-1, ONE, A( I, 1 ), LDA, $ A( I, I ), 1, ZERO, Y( 1, I ), 1 ) CALL DGEMV( 'No transpose', N-I, I-1, -ONE, Y( I+1, 1 ), $ LDY, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 ) CALL DGEMV( 'Transpose', M-I+1, I-1, ONE, X( I, 1 ), LDX, $ A( I, I ), 1, ZERO, Y( 1, I ), 1 ) CALL DGEMV( 'Transpose', I-1, N-I, -ONE, A( 1, I+1 ), $ LDA, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 ) CALL DSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 ) * * Update A(i,i+1:n) * CALL DGEMV( 'No transpose', N-I, I, -ONE, Y( I+1, 1 ), $ LDY, A( I, 1 ), LDA, ONE, A( I, I+1 ), LDA ) CALL DGEMV( 'Transpose', I-1, N-I, -ONE, A( 1, I+1 ), $ LDA, X( I, 1 ), LDX, ONE, A( I, I+1 ), LDA ) * * Generate reflection P(i) to annihilate A(i,i+2:n) * CALL DLARFG( N-I, A( I, I+1 ), A( I, MIN( I+2, N ) ), $ LDA, TAUP( I ) ) E( I ) = A( I, I+1 ) A( I, I+1 ) = ONE * * Compute X(i+1:m,i) * CALL DGEMV( 'No transpose', M-I, N-I, ONE, A( I+1, I+1 ), $ LDA, A( I, I+1 ), LDA, ZERO, X( I+1, I ), 1 ) CALL DGEMV( 'Transpose', N-I, I, ONE, Y( I+1, 1 ), LDY, $ A( I, I+1 ), LDA, ZERO, X( 1, I ), 1 ) CALL DGEMV( 'No transpose', M-I, I, -ONE, A( I+1, 1 ), $ LDA, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL DGEMV( 'No transpose', I-1, N-I, ONE, A( 1, I+1 ), $ LDA, A( I, I+1 ), LDA, ZERO, X( 1, I ), 1 ) CALL DGEMV( 'No transpose', M-I, I-1, -ONE, X( I+1, 1 ), $ LDX, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL DSCAL( M-I, TAUP( I ), X( I+1, I ), 1 ) END IF 10 CONTINUE ELSE * * Reduce to lower bidiagonal form * DO 20 I = 1, NB * * Update A(i,i:n) * CALL DGEMV( 'No transpose', N-I+1, I-1, -ONE, Y( I, 1 ), $ LDY, A( I, 1 ), LDA, ONE, A( I, I ), LDA ) CALL DGEMV( 'Transpose', I-1, N-I+1, -ONE, A( 1, I ), LDA, $ X( I, 1 ), LDX, ONE, A( I, I ), LDA ) * * Generate reflection P(i) to annihilate A(i,i+1:n) * CALL DLARFG( N-I+1, A( I, I ), A( I, MIN( I+1, N ) ), LDA, $ TAUP( I ) ) D( I ) = A( I, I ) IF( I.LT.M ) THEN A( I, I ) = ONE * * Compute X(i+1:m,i) * CALL DGEMV( 'No transpose', M-I, N-I+1, ONE, A( I+1, I ), $ LDA, A( I, I ), LDA, ZERO, X( I+1, I ), 1 ) CALL DGEMV( 'Transpose', N-I+1, I-1, ONE, Y( I, 1 ), LDY, $ A( I, I ), LDA, ZERO, X( 1, I ), 1 ) CALL DGEMV( 'No transpose', M-I, I-1, -ONE, A( I+1, 1 ), $ LDA, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL DGEMV( 'No transpose', I-1, N-I+1, ONE, A( 1, I ), $ LDA, A( I, I ), LDA, ZERO, X( 1, I ), 1 ) CALL DGEMV( 'No transpose', M-I, I-1, -ONE, X( I+1, 1 ), $ LDX, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL DSCAL( M-I, TAUP( I ), X( I+1, I ), 1 ) * * Update A(i+1:m,i) * CALL DGEMV( 'No transpose', M-I, I-1, -ONE, A( I+1, 1 ), $ LDA, Y( I, 1 ), LDY, ONE, A( I+1, I ), 1 ) CALL DGEMV( 'No transpose', M-I, I, -ONE, X( I+1, 1 ), $ LDX, A( 1, I ), 1, ONE, A( I+1, I ), 1 ) * * Generate reflection Q(i) to annihilate A(i+2:m,i) * CALL DLARFG( M-I, A( I+1, I ), A( MIN( I+2, M ), I ), 1, $ TAUQ( I ) ) E( I ) = A( I+1, I ) A( I+1, I ) = ONE * * Compute Y(i+1:n,i) * CALL DGEMV( 'Transpose', M-I, N-I, ONE, A( I+1, I+1 ), $ LDA, A( I+1, I ), 1, ZERO, Y( I+1, I ), 1 ) CALL DGEMV( 'Transpose', M-I, I-1, ONE, A( I+1, 1 ), LDA, $ A( I+1, I ), 1, ZERO, Y( 1, I ), 1 ) CALL DGEMV( 'No transpose', N-I, I-1, -ONE, Y( I+1, 1 ), $ LDY, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 ) CALL DGEMV( 'Transpose', M-I, I, ONE, X( I+1, 1 ), LDX, $ A( I+1, I ), 1, ZERO, Y( 1, I ), 1 ) CALL DGEMV( 'Transpose', I, N-I, -ONE, A( 1, I+1 ), LDA, $ Y( 1, I ), 1, ONE, Y( I+1, I ), 1 ) CALL DSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 ) END IF 20 CONTINUE END IF RETURN * * End of DLABRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgebd2.f0000644000000000000000000000013113543334727015060 xustar0030 mtime=1569569239.440645259 29 atime=1569569239.43964526 30 ctime=1569569239.440645259 elk-6.3.2/src/LAPACK/dgebd2.f0000644002504400250440000002345013543334727017134 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGEBD2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ), * $ TAUQ( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGEBD2 reduces a real general m by n matrix A to upper or lower *> bidiagonal form B by an orthogonal transformation: Q**T * A * P = B. *> *> If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows in the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns in the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the m by n general matrix to be reduced. *> On exit, *> if m >= n, the diagonal and the first superdiagonal are *> overwritten with the upper bidiagonal matrix B; the *> elements below the diagonal, with the array TAUQ, represent *> the orthogonal matrix Q as a product of elementary *> reflectors, and the elements above the first superdiagonal, *> with the array TAUP, represent the orthogonal matrix P as *> a product of elementary reflectors; *> if m < n, the diagonal and the first subdiagonal are *> overwritten with the lower bidiagonal matrix B; the *> elements below the first subdiagonal, with the array TAUQ, *> represent the orthogonal matrix Q as a product of *> elementary reflectors, and the elements above the diagonal, *> with the array TAUP, represent the orthogonal matrix P as *> a product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (min(M,N)) *> The diagonal elements of the bidiagonal matrix B: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (min(M,N)-1) *> The off-diagonal elements of the bidiagonal matrix B: *> if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1; *> if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1. *> \endverbatim *> *> \param[out] TAUQ *> \verbatim *> TAUQ is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the orthogonal matrix Q. See Further Details. *> \endverbatim *> *> \param[out] TAUP *> \verbatim *> TAUP is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the orthogonal matrix P. See Further Details. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (max(M,N)) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit. *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup doubleGEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrices Q and P are represented as products of elementary *> reflectors: *> *> If m >= n, *> *> Q = H(1) H(2) . . . H(n) and P = G(1) G(2) . . . G(n-1) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**T and G(i) = I - taup * u * u**T *> *> where tauq and taup are real scalars, and v and u are real vectors; *> v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit in A(i+1:m,i); *> u(1:i) = 0, u(i+1) = 1, and u(i+2:n) is stored on exit in A(i,i+2:n); *> tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> If m < n, *> *> Q = H(1) H(2) . . . H(m-1) and P = G(1) G(2) . . . G(m) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**T and G(i) = I - taup * u * u**T *> *> where tauq and taup are real scalars, and v and u are real vectors; *> v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit in A(i+2:m,i); *> u(1:i-1) = 0, u(i) = 1, and u(i+1:n) is stored on exit in A(i,i+1:n); *> tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> The contents of A on exit are illustrated by the following examples: *> *> m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n): *> *> ( d e u1 u1 u1 ) ( d u1 u1 u1 u1 u1 ) *> ( v1 d e u2 u2 ) ( e d u2 u2 u2 u2 ) *> ( v1 v2 d e u3 ) ( v1 e d u3 u3 u3 ) *> ( v1 v2 v3 d e ) ( v1 v2 e d u4 u4 ) *> ( v1 v2 v3 v4 d ) ( v1 v2 v3 e d u5 ) *> ( v1 v2 v3 v4 v5 ) *> *> where d and e denote diagonal and off-diagonal elements of B, vi *> denotes an element of the vector defining H(i), and ui an element of *> the vector defining G(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ), $ TAUQ( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) * .. * .. Local Scalars .. INTEGER I * .. * .. External Subroutines .. EXTERNAL DLARF, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.LT.0 ) THEN CALL XERBLA( 'DGEBD2', -INFO ) RETURN END IF * IF( M.GE.N ) THEN * * Reduce to upper bidiagonal form * DO 10 I = 1, N * * Generate elementary reflector H(i) to annihilate A(i+1:m,i) * CALL DLARFG( M-I+1, A( I, I ), A( MIN( I+1, M ), I ), 1, $ TAUQ( I ) ) D( I ) = A( I, I ) A( I, I ) = ONE * * Apply H(i) to A(i:m,i+1:n) from the left * IF( I.LT.N ) $ CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAUQ( I ), $ A( I, I+1 ), LDA, WORK ) A( I, I ) = D( I ) * IF( I.LT.N ) THEN * * Generate elementary reflector G(i) to annihilate * A(i,i+2:n) * CALL DLARFG( N-I, A( I, I+1 ), A( I, MIN( I+2, N ) ), $ LDA, TAUP( I ) ) E( I ) = A( I, I+1 ) A( I, I+1 ) = ONE * * Apply G(i) to A(i+1:m,i+1:n) from the right * CALL DLARF( 'Right', M-I, N-I, A( I, I+1 ), LDA, $ TAUP( I ), A( I+1, I+1 ), LDA, WORK ) A( I, I+1 ) = E( I ) ELSE TAUP( I ) = ZERO END IF 10 CONTINUE ELSE * * Reduce to lower bidiagonal form * DO 20 I = 1, M * * Generate elementary reflector G(i) to annihilate A(i,i+1:n) * CALL DLARFG( N-I+1, A( I, I ), A( I, MIN( I+1, N ) ), LDA, $ TAUP( I ) ) D( I ) = A( I, I ) A( I, I ) = ONE * * Apply G(i) to A(i+1:m,i:n) from the right * IF( I.LT.M ) $ CALL DLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAUP( I ), A( I+1, I ), LDA, WORK ) A( I, I ) = D( I ) * IF( I.LT.M ) THEN * * Generate elementary reflector H(i) to annihilate * A(i+2:m,i) * CALL DLARFG( M-I, A( I+1, I ), A( MIN( I+2, M ), I ), 1, $ TAUQ( I ) ) E( I ) = A( I+1, I ) A( I+1, I ) = ONE * * Apply H(i) to A(i+1:m,i+1:n) from the left * CALL DLARF( 'Left', M-I, N-I, A( I+1, I ), 1, TAUQ( I ), $ A( I+1, I+1 ), LDA, WORK ) A( I+1, I ) = E( I ) ELSE TAUQ( I ) = ZERO END IF 20 CONTINUE END IF RETURN * * End of DGEBD2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgelq2.f0000644000000000000000000000013213543334727015110 xustar0030 mtime=1569569239.444645257 30 atime=1569569239.443645257 30 ctime=1569569239.444645257 elk-6.3.2/src/LAPACK/dgelq2.f0000644002504400250440000001202113543334727017153 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGELQ2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGELQ2 computes an LQ factorization of a real m by n matrix A: *> A = L * Q. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the m by n matrix A. *> On exit, the elements on and below the diagonal of the array *> contain the m by min(m,n) lower trapezoidal matrix L (L is *> lower triangular if m <= n); the elements above the diagonal, *> with the array TAU, represent the orthogonal matrix Q as a *> product of elementary reflectors (see Further Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (M) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(k) . . . H(2) H(1), where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i-1) = 0 and v(i) = 1; v(i+1:n) is stored on exit in A(i,i+1:n), *> and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. INTEGER I, K DOUBLE PRECISION AII * .. * .. External Subroutines .. EXTERNAL DLARF, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGELQ2', -INFO ) RETURN END IF * K = MIN( M, N ) * DO 10 I = 1, K * * Generate elementary reflector H(i) to annihilate A(i,i+1:n) * CALL DLARFG( N-I+1, A( I, I ), A( I, MIN( I+1, N ) ), LDA, $ TAU( I ) ) IF( I.LT.M ) THEN * * Apply H(i) to A(i+1:m,i:n) from the right * AII = A( I, I ) A( I, I ) = ONE CALL DLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, TAU( I ), $ A( I+1, I ), LDA, WORK ) A( I, I ) = AII END IF 10 CONTINUE RETURN * * End of DGELQ2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dgeqr2.f0000644000000000000000000000013213543334727015116 xustar0030 mtime=1569569239.449645253 30 atime=1569569239.448645254 30 ctime=1569569239.449645253 elk-6.3.2/src/LAPACK/dgeqr2.f0000644002504400250440000001201213543334727017161 0ustar00dewhurstdewhurst00000000000000*> \brief \b DGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DGEQR2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DGEQR2 computes a QR factorization of a real m by n matrix A: *> A = Q * R. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the m by n matrix A. *> On exit, the elements on and above the diagonal of the array *> contain the min(m,n) by n upper trapezoidal matrix R (R is *> upper triangular if m >= n); the elements below the diagonal, *> with the array TAU, represent the orthogonal matrix Q as a *> product of elementary reflectors (see Further Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleGEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(1) H(2) . . . H(k), where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**T *> *> where tau is a real scalar, and v is a real vector with *> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), *> and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE DGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. INTEGER I, K DOUBLE PRECISION AII * .. * .. External Subroutines .. EXTERNAL DLARF, DLARFG, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DGEQR2', -INFO ) RETURN END IF * K = MIN( M, N ) * DO 10 I = 1, K * * Generate elementary reflector H(i) to annihilate A(i+1:m,i) * CALL DLARFG( M-I+1, A( I, I ), A( MIN( I+1, M ), I ), 1, $ TAU( I ) ) IF( I.LT.N ) THEN * * Apply H(i) to A(i:m,i+1:n) from the left * AII = A( I, I ) A( I, I ) = ONE CALL DLARF( 'Left', M-I+1, N-I, A( I, I ), 1, TAU( I ), $ A( I, I+1 ), LDA, WORK ) A( I, I ) = AII END IF 10 CONTINUE RETURN * * End of DGEQR2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorgl2.f0000644000000000000000000000013213543334727015123 xustar0030 mtime=1569569239.453645251 30 atime=1569569239.452645251 30 ctime=1569569239.453645251 elk-6.3.2/src/LAPACK/dorgl2.f0000644002504400250440000001217313543334727017176 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORGL2 * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORGL2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORGL2( M, N, K, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORGL2 generates an m by n real matrix Q with orthonormal rows, *> which is defined as the first m rows of a product of k elementary *> reflectors of order n *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGELQF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. N >= M. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. M >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is DOUBLE PRECISION array, dimension (LDA,N) *> On entry, the i-th row must contain the vector which defines *> the elementary reflector H(i), for i = 1,2,...,k, as returned *> by DGELQF in the first k rows of its array argument A. *> On exit, the m-by-n matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGELQF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (M) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORGL2( M, N, K, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE, ZERO PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) * .. * .. Local Scalars .. INTEGER I, J, L * .. * .. External Subroutines .. EXTERNAL DLARF, DSCAL, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.M ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORGL2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.LE.0 ) $ RETURN * IF( K.LT.M ) THEN * * Initialise rows k+1:m to rows of the unit matrix * DO 20 J = 1, N DO 10 L = K + 1, M A( L, J ) = ZERO 10 CONTINUE IF( J.GT.K .AND. J.LE.M ) $ A( J, J ) = ONE 20 CONTINUE END IF * DO 40 I = K, 1, -1 * * Apply H(i) to A(i:m,i:n) from the right * IF( I.LT.N ) THEN IF( I.LT.M ) THEN A( I, I ) = ONE CALL DLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAU( I ), A( I+1, I ), LDA, WORK ) END IF CALL DSCAL( N-I, -TAU( I ), A( I, I+1 ), LDA ) END IF A( I, I ) = ONE - TAU( I ) * * Set A(i,1:i-1) to zero * DO 30 L = 1, I - 1 A( I, L ) = ZERO 30 CONTINUE 40 CONTINUE RETURN * * End of DORGL2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dormlq.f0000644000000000000000000000013213543334727015230 xustar0030 mtime=1569569239.458645248 30 atime=1569569239.456645249 30 ctime=1569569239.458645248 elk-6.3.2/src/LAPACK/dormlq.f0000644002504400250440000002250213543334727017300 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORMLQ * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORMLQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORMLQ overwrites the general real M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'T': Q**T * C C * Q**T *> *> where Q is a real orthogonal matrix defined as the product of k *> elementary reflectors *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGELQF. Q is of order M if SIDE = 'L' and of order N *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left; *> = 'R': apply Q or Q**T from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'T': Transpose, apply Q**T. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension *> (LDA,M) if SIDE = 'L', *> (LDA,N) if SIDE = 'R' *> The i-th row must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGELQF in the first k rows of its array argument A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,K). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGELQF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) * .. * .. Local Scalars .. LOGICAL LEFT, LQUERY, NOTRAN CHARACTER TRANST INTEGER I, I1, I2, I3, IB, IC, IINFO, IWT, JC, LDWORK, $ LWKOPT, MI, NB, NBMIN, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL DLARFB, DLARFT, DORML2, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, K ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * NB = MIN( NBMAX, ILAENV( 1, 'DORMLQ', SIDE // TRANS, M, N, K, $ -1 ) ) LWKOPT = MAX( 1, NW )*NB + TSIZE WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORMLQ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 LDWORK = NW IF( NB.GT.1 .AND. NB.LT.K ) THEN IF( LWORK.LT.NW*NB+TSIZE ) THEN NB = (LWORK-TSIZE) / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'DORMLQ', SIDE // TRANS, M, N, K, $ -1 ) ) END IF END IF * IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL DORML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, $ IINFO ) ELSE * * Use blocked code * IWT = 1 + NW*NB IF( ( LEFT .AND. NOTRAN ) .OR. $ ( .NOT.LEFT .AND. .NOT.NOTRAN ) ) THEN I1 = 1 I2 = K I3 = NB ELSE I1 = ( ( K-1 ) / NB )*NB + 1 I2 = 1 I3 = -NB END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * IF( NOTRAN ) THEN TRANST = 'T' ELSE TRANST = 'N' END IF * DO 10 I = I1, I2, I3 IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL DLARFT( 'Forward', 'Rowwise', NQ-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK( IWT ), LDT ) IF( LEFT ) THEN * * H or H**T is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H or H**T is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H or H**T * CALL DLARFB( SIDE, TRANST, 'Forward', 'Rowwise', MI, NI, IB, $ A( I, I ), LDA, WORK( IWT ), LDT, $ C( IC, JC ), LDC, WORK, LDWORK ) 10 CONTINUE END IF WORK( 1 ) = LWKOPT RETURN * * End of DORMLQ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgbtf2.f0000644000000000000000000000013213543334727015130 xustar0030 mtime=1569569239.462645245 30 atime=1569569239.461645246 30 ctime=1569569239.462645245 elk-6.3.2/src/LAPACK/zgbtf2.f0000644002504400250440000001767413543334727017216 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGBTF2 computes the LU factorization of a general band matrix using the unblocked version of the algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGBTF2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGBTF2( M, N, KL, KU, AB, LDAB, IPIV, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, KL, KU, LDAB, M, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) * COMPLEX*16 AB( LDAB, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGBTF2 computes an LU factorization of a complex m-by-n band matrix *> A using partial pivoting with row interchanges. *> *> This is the unblocked version of the algorithm, calling Level 2 BLAS. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in] KL *> \verbatim *> KL is INTEGER *> The number of subdiagonals within the band of A. KL >= 0. *> \endverbatim *> *> \param[in] KU *> \verbatim *> KU is INTEGER *> The number of superdiagonals within the band of A. KU >= 0. *> \endverbatim *> *> \param[in,out] AB *> \verbatim *> AB is COMPLEX*16 array, dimension (LDAB,N) *> On entry, the matrix A in band storage, in rows KL+1 to *> 2*KL+KU+1; rows 1 to KL of the array need not be set. *> The j-th column of A is stored in the j-th column of the *> array AB as follows: *> AB(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl) *> *> On exit, details of the factorization: U is stored as an *> upper triangular band matrix with KL+KU superdiagonals in *> rows 1 to KL+KU+1, and the multipliers used during the *> factorization are stored in rows KL+KU+2 to 2*KL+KU+1. *> See below for further details. *> \endverbatim *> *> \param[in] LDAB *> \verbatim *> LDAB is INTEGER *> The leading dimension of the array AB. LDAB >= 2*KL+KU+1. *> \endverbatim *> *> \param[out] IPIV *> \verbatim *> IPIV is INTEGER array, dimension (min(M,N)) *> The pivot indices; for 1 <= i <= min(M,N), row i of the *> matrix was interchanged with row IPIV(i). *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> > 0: if INFO = +i, U(i,i) is exactly zero. The factorization *> has been completed, but the factor U is exactly *> singular, and division by zero will occur if it is used *> to solve a system of equations. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GBcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The band storage scheme is illustrated by the following example, when *> M = N = 6, KL = 2, KU = 1: *> *> On entry: On exit: *> *> * * * + + + * * * u14 u25 u36 *> * * + + + + * * u13 u24 u35 u46 *> * a12 a23 a34 a45 a56 * u12 u23 u34 u45 u56 *> a11 a22 a33 a44 a55 a66 u11 u22 u33 u44 u55 u66 *> a21 a32 a43 a54 a65 * m21 m32 m43 m54 m65 * *> a31 a42 a53 a64 * * m31 m42 m53 m64 * * *> *> Array elements marked * are not used by the routine; elements marked *> + need not be set on entry, but are required by the routine to store *> elements of U, because of fill-in resulting from the row *> interchanges. *> \endverbatim *> * ===================================================================== SUBROUTINE ZGBTF2( M, N, KL, KU, AB, LDAB, IPIV, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, KL, KU, LDAB, M, N * .. * .. Array Arguments .. INTEGER IPIV( * ) COMPLEX*16 AB( LDAB, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, J, JP, JU, KM, KV * .. * .. External Functions .. INTEGER IZAMAX EXTERNAL IZAMAX * .. * .. External Subroutines .. EXTERNAL XERBLA, ZGERU, ZSCAL, ZSWAP * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * KV is the number of superdiagonals in the factor U, allowing for * fill-in. * KV = KU + KL * * Test the input parameters. * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( KL.LT.0 ) THEN INFO = -3 ELSE IF( KU.LT.0 ) THEN INFO = -4 ELSE IF( LDAB.LT.KL+KV+1 ) THEN INFO = -6 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGBTF2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * * Gaussian elimination with partial pivoting * * Set fill-in elements in columns KU+2 to KV to zero. * DO 20 J = KU + 2, MIN( KV, N ) DO 10 I = KV - J + 2, KL AB( I, J ) = ZERO 10 CONTINUE 20 CONTINUE * * JU is the index of the last column affected by the current stage * of the factorization. * JU = 1 * DO 40 J = 1, MIN( M, N ) * * Set fill-in elements in column J+KV to zero. * IF( J+KV.LE.N ) THEN DO 30 I = 1, KL AB( I, J+KV ) = ZERO 30 CONTINUE END IF * * Find pivot and test for singularity. KM is the number of * subdiagonal elements in the current column. * KM = MIN( KL, M-J ) JP = IZAMAX( KM+1, AB( KV+1, J ), 1 ) IPIV( J ) = JP + J - 1 IF( AB( KV+JP, J ).NE.ZERO ) THEN JU = MAX( JU, MIN( J+KU+JP-1, N ) ) * * Apply interchange to columns J to JU. * IF( JP.NE.1 ) $ CALL ZSWAP( JU-J+1, AB( KV+JP, J ), LDAB-1, $ AB( KV+1, J ), LDAB-1 ) IF( KM.GT.0 ) THEN * * Compute multipliers. * CALL ZSCAL( KM, ONE / AB( KV+1, J ), AB( KV+2, J ), 1 ) * * Update trailing submatrix within the band. * IF( JU.GT.J ) $ CALL ZGERU( KM, JU-J, -ONE, AB( KV+2, J ), 1, $ AB( KV, J+1 ), LDAB-1, AB( KV+1, J+1 ), $ LDAB-1 ) END IF ELSE * * If pivot is zero, set INFO to the index of the pivot * unless a zero pivot has already been found. * IF( INFO.EQ.0 ) $ INFO = J END IF 40 CONTINUE RETURN * * End of ZGBTF2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlabrd.f0000644000000000000000000000013213543334727015210 xustar0030 mtime=1569569239.467645242 30 atime=1569569239.465645243 30 ctime=1569569239.467645242 elk-6.3.2/src/LAPACK/zlabrd.f0000644002504400250440000003576713543334727017301 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLABRD reduces the first nb rows and columns of a general matrix to a bidiagonal form. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLABRD + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, * LDY ) * * .. Scalar Arguments .. * INTEGER LDA, LDX, LDY, M, N, NB * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), X( LDX, * ), * $ Y( LDY, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLABRD reduces the first NB rows and columns of a complex general *> m by n matrix A to upper or lower real bidiagonal form by a unitary *> transformation Q**H * A * P, and returns the matrices X and Y which *> are needed to apply the transformation to the unreduced part of A. *> *> If m >= n, A is reduced to upper bidiagonal form; if m < n, to lower *> bidiagonal form. *> *> This is an auxiliary routine called by ZGEBRD *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows in the matrix A. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns in the matrix A. *> \endverbatim *> *> \param[in] NB *> \verbatim *> NB is INTEGER *> The number of leading rows and columns of A to be reduced. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the m by n general matrix to be reduced. *> On exit, the first NB rows and columns of the matrix are *> overwritten; the rest of the array is unchanged. *> If m >= n, elements on and below the diagonal in the first NB *> columns, with the array TAUQ, represent the unitary *> matrix Q as a product of elementary reflectors; and *> elements above the diagonal in the first NB rows, with the *> array TAUP, represent the unitary matrix P as a product *> of elementary reflectors. *> If m < n, elements below the diagonal in the first NB *> columns, with the array TAUQ, represent the unitary *> matrix Q as a product of elementary reflectors, and *> elements on and above the diagonal in the first NB rows, *> with the array TAUP, represent the unitary matrix P as *> a product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (NB) *> The diagonal elements of the first NB rows and columns of *> the reduced matrix. D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (NB) *> The off-diagonal elements of the first NB rows and columns of *> the reduced matrix. *> \endverbatim *> *> \param[out] TAUQ *> \verbatim *> TAUQ is COMPLEX*16 array, dimension (NB) *> The scalar factors of the elementary reflectors which *> represent the unitary matrix Q. See Further Details. *> \endverbatim *> *> \param[out] TAUP *> \verbatim *> TAUP is COMPLEX*16 array, dimension (NB) *> The scalar factors of the elementary reflectors which *> represent the unitary matrix P. See Further Details. *> \endverbatim *> *> \param[out] X *> \verbatim *> X is COMPLEX*16 array, dimension (LDX,NB) *> The m-by-nb matrix X required to update the unreduced part *> of A. *> \endverbatim *> *> \param[in] LDX *> \verbatim *> LDX is INTEGER *> The leading dimension of the array X. LDX >= max(1,M). *> \endverbatim *> *> \param[out] Y *> \verbatim *> Y is COMPLEX*16 array, dimension (LDY,NB) *> The n-by-nb matrix Y required to update the unreduced part *> of A. *> \endverbatim *> *> \param[in] LDY *> \verbatim *> LDY is INTEGER *> The leading dimension of the array Y. LDY >= max(1,N). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrices Q and P are represented as products of elementary *> reflectors: *> *> Q = H(1) H(2) . . . H(nb) and P = G(1) G(2) . . . G(nb) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H *> *> where tauq and taup are complex scalars, and v and u are complex *> vectors. *> *> If m >= n, v(1:i-1) = 0, v(i) = 1, and v(i:m) is stored on exit in *> A(i:m,i); u(1:i) = 0, u(i+1) = 1, and u(i+1:n) is stored on exit in *> A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> If m < n, v(1:i) = 0, v(i+1) = 1, and v(i+1:m) is stored on exit in *> A(i+2:m,i); u(1:i-1) = 0, u(i) = 1, and u(i:n) is stored on exit in *> A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> The elements of the vectors v and u together form the m-by-nb matrix *> V and the nb-by-n matrix U**H which are needed, with X and Y, to apply *> the transformation to the unreduced part of the matrix, using a block *> update of the form: A := A - V*Y**H - X*U**H. *> *> The contents of A on exit are illustrated by the following examples *> with nb = 2: *> *> m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n): *> *> ( 1 1 u1 u1 u1 ) ( 1 u1 u1 u1 u1 u1 ) *> ( v1 1 1 u2 u2 ) ( 1 1 u2 u2 u2 u2 ) *> ( v1 v2 a a a ) ( v1 1 a a a a ) *> ( v1 v2 a a a ) ( v1 v2 a a a a ) *> ( v1 v2 a a a ) ( v1 v2 a a a a ) *> ( v1 v2 a a a ) *> *> where a denotes an element of the original matrix which is unchanged, *> vi denotes an element of the vector defining H(i), and ui an element *> of the vector defining G(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, $ LDY ) * * -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER LDA, LDX, LDY, M, N, NB * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), X( LDX, * ), $ Y( LDY, * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL ZGEMV, ZLACGV, ZLARFG, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * * Quick return if possible * IF( M.LE.0 .OR. N.LE.0 ) $ RETURN * IF( M.GE.N ) THEN * * Reduce to upper bidiagonal form * DO 10 I = 1, NB * * Update A(i:m,i) * CALL ZLACGV( I-1, Y( I, 1 ), LDY ) CALL ZGEMV( 'No transpose', M-I+1, I-1, -ONE, A( I, 1 ), $ LDA, Y( I, 1 ), LDY, ONE, A( I, I ), 1 ) CALL ZLACGV( I-1, Y( I, 1 ), LDY ) CALL ZGEMV( 'No transpose', M-I+1, I-1, -ONE, X( I, 1 ), $ LDX, A( 1, I ), 1, ONE, A( I, I ), 1 ) * * Generate reflection Q(i) to annihilate A(i+1:m,i) * ALPHA = A( I, I ) CALL ZLARFG( M-I+1, ALPHA, A( MIN( I+1, M ), I ), 1, $ TAUQ( I ) ) D( I ) = ALPHA IF( I.LT.N ) THEN A( I, I ) = ONE * * Compute Y(i+1:n,i) * CALL ZGEMV( 'Conjugate transpose', M-I+1, N-I, ONE, $ A( I, I+1 ), LDA, A( I, I ), 1, ZERO, $ Y( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', M-I+1, I-1, ONE, $ A( I, 1 ), LDA, A( I, I ), 1, ZERO, $ Y( 1, I ), 1 ) CALL ZGEMV( 'No transpose', N-I, I-1, -ONE, Y( I+1, 1 ), $ LDY, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', M-I+1, I-1, ONE, $ X( I, 1 ), LDX, A( I, I ), 1, ZERO, $ Y( 1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', I-1, N-I, -ONE, $ A( 1, I+1 ), LDA, Y( 1, I ), 1, ONE, $ Y( I+1, I ), 1 ) CALL ZSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 ) * * Update A(i,i+1:n) * CALL ZLACGV( N-I, A( I, I+1 ), LDA ) CALL ZLACGV( I, A( I, 1 ), LDA ) CALL ZGEMV( 'No transpose', N-I, I, -ONE, Y( I+1, 1 ), $ LDY, A( I, 1 ), LDA, ONE, A( I, I+1 ), LDA ) CALL ZLACGV( I, A( I, 1 ), LDA ) CALL ZLACGV( I-1, X( I, 1 ), LDX ) CALL ZGEMV( 'Conjugate transpose', I-1, N-I, -ONE, $ A( 1, I+1 ), LDA, X( I, 1 ), LDX, ONE, $ A( I, I+1 ), LDA ) CALL ZLACGV( I-1, X( I, 1 ), LDX ) * * Generate reflection P(i) to annihilate A(i,i+2:n) * ALPHA = A( I, I+1 ) CALL ZLARFG( N-I, ALPHA, A( I, MIN( I+2, N ) ), LDA, $ TAUP( I ) ) E( I ) = ALPHA A( I, I+1 ) = ONE * * Compute X(i+1:m,i) * CALL ZGEMV( 'No transpose', M-I, N-I, ONE, A( I+1, I+1 ), $ LDA, A( I, I+1 ), LDA, ZERO, X( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', N-I, I, ONE, $ Y( I+1, 1 ), LDY, A( I, I+1 ), LDA, ZERO, $ X( 1, I ), 1 ) CALL ZGEMV( 'No transpose', M-I, I, -ONE, A( I+1, 1 ), $ LDA, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL ZGEMV( 'No transpose', I-1, N-I, ONE, A( 1, I+1 ), $ LDA, A( I, I+1 ), LDA, ZERO, X( 1, I ), 1 ) CALL ZGEMV( 'No transpose', M-I, I-1, -ONE, X( I+1, 1 ), $ LDX, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL ZSCAL( M-I, TAUP( I ), X( I+1, I ), 1 ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) END IF 10 CONTINUE ELSE * * Reduce to lower bidiagonal form * DO 20 I = 1, NB * * Update A(i,i:n) * CALL ZLACGV( N-I+1, A( I, I ), LDA ) CALL ZLACGV( I-1, A( I, 1 ), LDA ) CALL ZGEMV( 'No transpose', N-I+1, I-1, -ONE, Y( I, 1 ), $ LDY, A( I, 1 ), LDA, ONE, A( I, I ), LDA ) CALL ZLACGV( I-1, A( I, 1 ), LDA ) CALL ZLACGV( I-1, X( I, 1 ), LDX ) CALL ZGEMV( 'Conjugate transpose', I-1, N-I+1, -ONE, $ A( 1, I ), LDA, X( I, 1 ), LDX, ONE, A( I, I ), $ LDA ) CALL ZLACGV( I-1, X( I, 1 ), LDX ) * * Generate reflection P(i) to annihilate A(i,i+1:n) * ALPHA = A( I, I ) CALL ZLARFG( N-I+1, ALPHA, A( I, MIN( I+1, N ) ), LDA, $ TAUP( I ) ) D( I ) = ALPHA IF( I.LT.M ) THEN A( I, I ) = ONE * * Compute X(i+1:m,i) * CALL ZGEMV( 'No transpose', M-I, N-I+1, ONE, A( I+1, I ), $ LDA, A( I, I ), LDA, ZERO, X( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', N-I+1, I-1, ONE, $ Y( I, 1 ), LDY, A( I, I ), LDA, ZERO, $ X( 1, I ), 1 ) CALL ZGEMV( 'No transpose', M-I, I-1, -ONE, A( I+1, 1 ), $ LDA, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL ZGEMV( 'No transpose', I-1, N-I+1, ONE, A( 1, I ), $ LDA, A( I, I ), LDA, ZERO, X( 1, I ), 1 ) CALL ZGEMV( 'No transpose', M-I, I-1, -ONE, X( I+1, 1 ), $ LDX, X( 1, I ), 1, ONE, X( I+1, I ), 1 ) CALL ZSCAL( M-I, TAUP( I ), X( I+1, I ), 1 ) CALL ZLACGV( N-I+1, A( I, I ), LDA ) * * Update A(i+1:m,i) * CALL ZLACGV( I-1, Y( I, 1 ), LDY ) CALL ZGEMV( 'No transpose', M-I, I-1, -ONE, A( I+1, 1 ), $ LDA, Y( I, 1 ), LDY, ONE, A( I+1, I ), 1 ) CALL ZLACGV( I-1, Y( I, 1 ), LDY ) CALL ZGEMV( 'No transpose', M-I, I, -ONE, X( I+1, 1 ), $ LDX, A( 1, I ), 1, ONE, A( I+1, I ), 1 ) * * Generate reflection Q(i) to annihilate A(i+2:m,i) * ALPHA = A( I+1, I ) CALL ZLARFG( M-I, ALPHA, A( MIN( I+2, M ), I ), 1, $ TAUQ( I ) ) E( I ) = ALPHA A( I+1, I ) = ONE * * Compute Y(i+1:n,i) * CALL ZGEMV( 'Conjugate transpose', M-I, N-I, ONE, $ A( I+1, I+1 ), LDA, A( I+1, I ), 1, ZERO, $ Y( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', M-I, I-1, ONE, $ A( I+1, 1 ), LDA, A( I+1, I ), 1, ZERO, $ Y( 1, I ), 1 ) CALL ZGEMV( 'No transpose', N-I, I-1, -ONE, Y( I+1, 1 ), $ LDY, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', M-I, I, ONE, $ X( I+1, 1 ), LDX, A( I+1, I ), 1, ZERO, $ Y( 1, I ), 1 ) CALL ZGEMV( 'Conjugate transpose', I, N-I, -ONE, $ A( 1, I+1 ), LDA, Y( 1, I ), 1, ONE, $ Y( I+1, I ), 1 ) CALL ZSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 ) ELSE CALL ZLACGV( N-I+1, A( I, I ), LDA ) END IF 20 CONTINUE END IF RETURN * * End of ZLABRD * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgebd2.f0000644000000000000000000000013213543334727015107 xustar0030 mtime=1569569239.472645239 30 atime=1569569239.471645239 30 ctime=1569569239.472645239 elk-6.3.2/src/LAPACK/zgebd2.f0000644002504400250440000002430313543334727017160 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEBD2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION D( * ), E( * ) * COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEBD2 reduces a complex general m by n matrix A to upper or lower *> real bidiagonal form B by a unitary transformation: Q**H * A * P = B. *> *> If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows in the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns in the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the m by n general matrix to be reduced. *> On exit, *> if m >= n, the diagonal and the first superdiagonal are *> overwritten with the upper bidiagonal matrix B; the *> elements below the diagonal, with the array TAUQ, represent *> the unitary matrix Q as a product of elementary *> reflectors, and the elements above the first superdiagonal, *> with the array TAUP, represent the unitary matrix P as *> a product of elementary reflectors; *> if m < n, the diagonal and the first subdiagonal are *> overwritten with the lower bidiagonal matrix B; the *> elements below the first subdiagonal, with the array TAUQ, *> represent the unitary matrix Q as a product of *> elementary reflectors, and the elements above the diagonal, *> with the array TAUP, represent the unitary matrix P as *> a product of elementary reflectors. *> See Further Details. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] D *> \verbatim *> D is DOUBLE PRECISION array, dimension (min(M,N)) *> The diagonal elements of the bidiagonal matrix B: *> D(i) = A(i,i). *> \endverbatim *> *> \param[out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (min(M,N)-1) *> The off-diagonal elements of the bidiagonal matrix B: *> if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1; *> if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1. *> \endverbatim *> *> \param[out] TAUQ *> \verbatim *> TAUQ is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the unitary matrix Q. See Further Details. *> \endverbatim *> *> \param[out] TAUP *> \verbatim *> TAUP is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors which *> represent the unitary matrix P. See Further Details. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (max(M,N)) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrices Q and P are represented as products of elementary *> reflectors: *> *> If m >= n, *> *> Q = H(1) H(2) . . . H(n) and P = G(1) G(2) . . . G(n-1) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H *> *> where tauq and taup are complex scalars, and v and u are complex *> vectors; v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit in *> A(i+1:m,i); u(1:i) = 0, u(i+1) = 1, and u(i+2:n) is stored on exit in *> A(i,i+2:n); tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> If m < n, *> *> Q = H(1) H(2) . . . H(m-1) and P = G(1) G(2) . . . G(m) *> *> Each H(i) and G(i) has the form: *> *> H(i) = I - tauq * v * v**H and G(i) = I - taup * u * u**H *> *> where tauq and taup are complex scalars, v and u are complex vectors; *> v(1:i) = 0, v(i+1) = 1, and v(i+2:m) is stored on exit in A(i+2:m,i); *> u(1:i-1) = 0, u(i) = 1, and u(i+1:n) is stored on exit in A(i,i+1:n); *> tauq is stored in TAUQ(i) and taup in TAUP(i). *> *> The contents of A on exit are illustrated by the following examples: *> *> m = 6 and n = 5 (m > n): m = 5 and n = 6 (m < n): *> *> ( d e u1 u1 u1 ) ( d u1 u1 u1 u1 u1 ) *> ( v1 d e u2 u2 ) ( e d u2 u2 u2 u2 ) *> ( v1 v2 d e u3 ) ( v1 e d u3 u3 u3 ) *> ( v1 v2 v3 d e ) ( v1 v2 e d u4 u4 ) *> ( v1 v2 v3 v4 d ) ( v1 v2 v3 e d u5 ) *> ( v1 v2 v3 v4 v5 ) *> *> where d and e denote diagonal and off-diagonal elements of B, vi *> denotes an element of the vector defining H(i), and ui an element of *> the vector defining G(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. DOUBLE PRECISION D( * ), E( * ) COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ZERO, ONE PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ), $ ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACGV, ZLARF, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN * .. * .. Executable Statements .. * * Test the input parameters * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.LT.0 ) THEN CALL XERBLA( 'ZGEBD2', -INFO ) RETURN END IF * IF( M.GE.N ) THEN * * Reduce to upper bidiagonal form * DO 10 I = 1, N * * Generate elementary reflector H(i) to annihilate A(i+1:m,i) * ALPHA = A( I, I ) CALL ZLARFG( M-I+1, ALPHA, A( MIN( I+1, M ), I ), 1, $ TAUQ( I ) ) D( I ) = ALPHA A( I, I ) = ONE * * Apply H(i)**H to A(i:m,i+1:n) from the left * IF( I.LT.N ) $ CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, $ DCONJG( TAUQ( I ) ), A( I, I+1 ), LDA, WORK ) A( I, I ) = D( I ) * IF( I.LT.N ) THEN * * Generate elementary reflector G(i) to annihilate * A(i,i+2:n) * CALL ZLACGV( N-I, A( I, I+1 ), LDA ) ALPHA = A( I, I+1 ) CALL ZLARFG( N-I, ALPHA, A( I, MIN( I+2, N ) ), LDA, $ TAUP( I ) ) E( I ) = ALPHA A( I, I+1 ) = ONE * * Apply G(i) to A(i+1:m,i+1:n) from the right * CALL ZLARF( 'Right', M-I, N-I, A( I, I+1 ), LDA, $ TAUP( I ), A( I+1, I+1 ), LDA, WORK ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) A( I, I+1 ) = E( I ) ELSE TAUP( I ) = ZERO END IF 10 CONTINUE ELSE * * Reduce to lower bidiagonal form * DO 20 I = 1, M * * Generate elementary reflector G(i) to annihilate A(i,i+1:n) * CALL ZLACGV( N-I+1, A( I, I ), LDA ) ALPHA = A( I, I ) CALL ZLARFG( N-I+1, ALPHA, A( I, MIN( I+1, N ) ), LDA, $ TAUP( I ) ) D( I ) = ALPHA A( I, I ) = ONE * * Apply G(i) to A(i+1:m,i:n) from the right * IF( I.LT.M ) $ CALL ZLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, $ TAUP( I ), A( I+1, I ), LDA, WORK ) CALL ZLACGV( N-I+1, A( I, I ), LDA ) A( I, I ) = D( I ) * IF( I.LT.M ) THEN * * Generate elementary reflector H(i) to annihilate * A(i+2:m,i) * ALPHA = A( I+1, I ) CALL ZLARFG( M-I, ALPHA, A( MIN( I+2, M ), I ), 1, $ TAUQ( I ) ) E( I ) = ALPHA A( I+1, I ) = ONE * * Apply H(i)**H to A(i+1:m,i+1:n) from the left * CALL ZLARF( 'Left', M-I, N-I, A( I+1, I ), 1, $ DCONJG( TAUQ( I ) ), A( I+1, I+1 ), LDA, $ WORK ) A( I+1, I ) = E( I ) ELSE TAUQ( I ) = ZERO END IF 20 CONTINUE END IF RETURN * * End of ZGEBD2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgelq2.f0000644000000000000000000000013213543334727015136 xustar0030 mtime=1569569239.476645236 30 atime=1569569239.475645237 30 ctime=1569569239.476645236 elk-6.3.2/src/LAPACK/zgelq2.f0000644002504400250440000001220413543334727017204 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGELQ2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGELQ2 computes an LQ factorization of a complex m by n matrix A: *> A = L * Q. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the m by n matrix A. *> On exit, the elements on and below the diagonal of the array *> contain the m by min(m,n) lower trapezoidal matrix L (L is *> lower triangular if m <= n); the elements above the diagonal, *> with the array TAU, represent the unitary matrix Q as a *> product of elementary reflectors (see Further Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (M) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(k)**H . . . H(2)**H H(1)**H, where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i-1) = 0 and v(i) = 1; conjg(v(i+1:n)) is stored on exit in *> A(i,i+1:n), and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGELQ2( M, N, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, K COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACGV, ZLARF, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGELQ2', -INFO ) RETURN END IF * K = MIN( M, N ) * DO 10 I = 1, K * * Generate elementary reflector H(i) to annihilate A(i,i+1:n) * CALL ZLACGV( N-I+1, A( I, I ), LDA ) ALPHA = A( I, I ) CALL ZLARFG( N-I+1, ALPHA, A( I, MIN( I+1, N ) ), LDA, $ TAU( I ) ) IF( I.LT.M ) THEN * * Apply H(i) to A(i+1:m,i:n) from the right * A( I, I ) = ONE CALL ZLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, TAU( I ), $ A( I+1, I ), LDA, WORK ) END IF A( I, I ) = ALPHA CALL ZLACGV( N-I+1, A( I, I ), LDA ) 10 CONTINUE RETURN * * End of ZGELQ2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zgeqr2.f0000644000000000000000000000013213543334727015144 xustar0030 mtime=1569569239.481645233 30 atime=1569569239.480645234 30 ctime=1569569239.481645233 elk-6.3.2/src/LAPACK/zgeqr2.f0000644002504400250440000001205013543334727017211 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZGEQR2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZGEQR2 computes a QR factorization of a complex m by n matrix A: *> A = Q * R. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix A. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix A. N >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the m by n matrix A. *> On exit, the elements on and above the diagonal of the array *> contain the min(m,n) by n upper trapezoidal matrix R (R is *> upper triangular if m >= n); the elements below the diagonal, *> with the array TAU, represent the unitary matrix Q as a *> product of elementary reflectors (see Further Details). *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[out] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (min(M,N)) *> The scalar factors of the elementary reflectors (see Further *> Details). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (N) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16GEcomputational * *> \par Further Details: * ===================== *> *> \verbatim *> *> The matrix Q is represented as a product of elementary reflectors *> *> Q = H(1) H(2) . . . H(k), where k = min(m,n). *> *> Each H(i) has the form *> *> H(i) = I - tau * v * v**H *> *> where tau is a complex scalar, and v is a complex vector with *> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), *> and tau in TAU(i). *> \endverbatim *> * ===================================================================== SUBROUTINE ZGEQR2( M, N, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, K COMPLEX*16 ALPHA * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARF, ZLARFG * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.0 ) THEN INFO = -2 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -4 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZGEQR2', -INFO ) RETURN END IF * K = MIN( M, N ) * DO 10 I = 1, K * * Generate elementary reflector H(i) to annihilate A(i+1:m,i) * CALL ZLARFG( M-I+1, A( I, I ), A( MIN( I+1, M ), I ), 1, $ TAU( I ) ) IF( I.LT.N ) THEN * * Apply H(i)**H to A(i:m,i+1:n) from the left * ALPHA = A( I, I ) A( I, I ) = ONE CALL ZLARF( 'Left', M-I+1, N-I, A( I, I ), 1, $ DCONJG( TAU( I ) ), A( I, I+1 ), LDA, WORK ) A( I, I ) = ALPHA END IF 10 CONTINUE RETURN * * End of ZGEQR2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/ztrsyl.f0000644000000000000000000000013013543334727015277 xustar0029 mtime=1569569239.48664523 30 atime=1569569239.484645231 29 ctime=1569569239.48664523 elk-6.3.2/src/LAPACK/ztrsyl.f0000644002504400250440000003256713543334727017365 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZTRSYL * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZTRSYL + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZTRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, * LDC, SCALE, INFO ) * * .. Scalar Arguments .. * CHARACTER TRANA, TRANB * INTEGER INFO, ISGN, LDA, LDB, LDC, M, N * DOUBLE PRECISION SCALE * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), B( LDB, * ), C( LDC, * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZTRSYL solves the complex Sylvester matrix equation: *> *> op(A)*X + X*op(B) = scale*C or *> op(A)*X - X*op(B) = scale*C, *> *> where op(A) = A or A**H, and A and B are both upper triangular. A is *> M-by-M and B is N-by-N; the right hand side C and the solution X are *> M-by-N; and scale is an output scale factor, set <= 1 to avoid *> overflow in X. *> \endverbatim * * Arguments: * ========== * *> \param[in] TRANA *> \verbatim *> TRANA is CHARACTER*1 *> Specifies the option op(A): *> = 'N': op(A) = A (No transpose) *> = 'C': op(A) = A**H (Conjugate transpose) *> \endverbatim *> *> \param[in] TRANB *> \verbatim *> TRANB is CHARACTER*1 *> Specifies the option op(B): *> = 'N': op(B) = B (No transpose) *> = 'C': op(B) = B**H (Conjugate transpose) *> \endverbatim *> *> \param[in] ISGN *> \verbatim *> ISGN is INTEGER *> Specifies the sign in the equation: *> = +1: solve op(A)*X + X*op(B) = scale*C *> = -1: solve op(A)*X - X*op(B) = scale*C *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The order of the matrix A, and the number of rows in the *> matrices X and C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix B, and the number of columns in the *> matrices X and C. N >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,M) *> The upper triangular matrix A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] B *> \verbatim *> B is COMPLEX*16 array, dimension (LDB,N) *> The upper triangular matrix B. *> \endverbatim *> *> \param[in] LDB *> \verbatim *> LDB is INTEGER *> The leading dimension of the array B. LDB >= max(1,N). *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N right hand side matrix C. *> On exit, C is overwritten by the solution matrix X. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M) *> \endverbatim *> *> \param[out] SCALE *> \verbatim *> SCALE is DOUBLE PRECISION *> The scale factor, scale, set <= 1 to avoid overflow in X. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> = 1: A and B have common or very close eigenvalues; perturbed *> values were used to solve the equation (but the matrices *> A and B are unchanged). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16SYcomputational * * ===================================================================== SUBROUTINE ZTRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, $ LDC, SCALE, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER TRANA, TRANB INTEGER INFO, ISGN, LDA, LDB, LDC, M, N DOUBLE PRECISION SCALE * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), B( LDB, * ), C( LDC, * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL NOTRNA, NOTRNB INTEGER J, K, L DOUBLE PRECISION BIGNUM, DA11, DB, EPS, SCALOC, SGN, SMIN, $ SMLNUM COMPLEX*16 A11, SUML, SUMR, VEC, X11 * .. * .. Local Arrays .. DOUBLE PRECISION DUM( 1 ) * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DLAMCH, ZLANGE COMPLEX*16 ZDOTC, ZDOTU, ZLADIV EXTERNAL LSAME, DLAMCH, ZLANGE, ZDOTC, ZDOTU, ZLADIV * .. * .. External Subroutines .. EXTERNAL DLABAD, XERBLA, ZDSCAL * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DCONJG, DIMAG, MAX, MIN * .. * .. Executable Statements .. * * Decode and Test input parameters * NOTRNA = LSAME( TRANA, 'N' ) NOTRNB = LSAME( TRANB, 'N' ) * INFO = 0 IF( .NOT.NOTRNA .AND. .NOT.LSAME( TRANA, 'C' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRNB .AND. .NOT.LSAME( TRANB, 'C' ) ) THEN INFO = -2 ELSE IF( ISGN.NE.1 .AND. ISGN.NE.-1 ) THEN INFO = -3 ELSE IF( M.LT.0 ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -7 ELSE IF( LDB.LT.MAX( 1, N ) ) THEN INFO = -9 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -11 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZTRSYL', -INFO ) RETURN END IF * * Quick return if possible * SCALE = ONE IF( M.EQ.0 .OR. N.EQ.0 ) $ RETURN * * Set constants to control overflow * EPS = DLAMCH( 'P' ) SMLNUM = DLAMCH( 'S' ) BIGNUM = ONE / SMLNUM CALL DLABAD( SMLNUM, BIGNUM ) SMLNUM = SMLNUM*DBLE( M*N ) / EPS BIGNUM = ONE / SMLNUM SMIN = MAX( SMLNUM, EPS*ZLANGE( 'M', M, M, A, LDA, DUM ), $ EPS*ZLANGE( 'M', N, N, B, LDB, DUM ) ) SGN = ISGN * IF( NOTRNA .AND. NOTRNB ) THEN * * Solve A*X + ISGN*X*B = scale*C. * * The (K,L)th block of X is determined starting from * bottom-left corner column by column by * * A(K,K)*X(K,L) + ISGN*X(K,L)*B(L,L) = C(K,L) - R(K,L) * * Where * M L-1 * R(K,L) = SUM [A(K,I)*X(I,L)] +ISGN*SUM [X(K,J)*B(J,L)]. * I=K+1 J=1 * DO 30 L = 1, N DO 20 K = M, 1, -1 * SUML = ZDOTU( M-K, A( K, MIN( K+1, M ) ), LDA, $ C( MIN( K+1, M ), L ), 1 ) SUMR = ZDOTU( L-1, C( K, 1 ), LDC, B( 1, L ), 1 ) VEC = C( K, L ) - ( SUML+SGN*SUMR ) * SCALOC = ONE A11 = A( K, K ) + SGN*B( L, L ) DA11 = ABS( DBLE( A11 ) ) + ABS( DIMAG( A11 ) ) IF( DA11.LE.SMIN ) THEN A11 = SMIN DA11 = SMIN INFO = 1 END IF DB = ABS( DBLE( VEC ) ) + ABS( DIMAG( VEC ) ) IF( DA11.LT.ONE .AND. DB.GT.ONE ) THEN IF( DB.GT.BIGNUM*DA11 ) $ SCALOC = ONE / DB END IF X11 = ZLADIV( VEC*DCMPLX( SCALOC ), A11 ) * IF( SCALOC.NE.ONE ) THEN DO 10 J = 1, N CALL ZDSCAL( M, SCALOC, C( 1, J ), 1 ) 10 CONTINUE SCALE = SCALE*SCALOC END IF C( K, L ) = X11 * 20 CONTINUE 30 CONTINUE * ELSE IF( .NOT.NOTRNA .AND. NOTRNB ) THEN * * Solve A**H *X + ISGN*X*B = scale*C. * * The (K,L)th block of X is determined starting from * upper-left corner column by column by * * A**H(K,K)*X(K,L) + ISGN*X(K,L)*B(L,L) = C(K,L) - R(K,L) * * Where * K-1 L-1 * R(K,L) = SUM [A**H(I,K)*X(I,L)] + ISGN*SUM [X(K,J)*B(J,L)] * I=1 J=1 * DO 60 L = 1, N DO 50 K = 1, M * SUML = ZDOTC( K-1, A( 1, K ), 1, C( 1, L ), 1 ) SUMR = ZDOTU( L-1, C( K, 1 ), LDC, B( 1, L ), 1 ) VEC = C( K, L ) - ( SUML+SGN*SUMR ) * SCALOC = ONE A11 = DCONJG( A( K, K ) ) + SGN*B( L, L ) DA11 = ABS( DBLE( A11 ) ) + ABS( DIMAG( A11 ) ) IF( DA11.LE.SMIN ) THEN A11 = SMIN DA11 = SMIN INFO = 1 END IF DB = ABS( DBLE( VEC ) ) + ABS( DIMAG( VEC ) ) IF( DA11.LT.ONE .AND. DB.GT.ONE ) THEN IF( DB.GT.BIGNUM*DA11 ) $ SCALOC = ONE / DB END IF * X11 = ZLADIV( VEC*DCMPLX( SCALOC ), A11 ) * IF( SCALOC.NE.ONE ) THEN DO 40 J = 1, N CALL ZDSCAL( M, SCALOC, C( 1, J ), 1 ) 40 CONTINUE SCALE = SCALE*SCALOC END IF C( K, L ) = X11 * 50 CONTINUE 60 CONTINUE * ELSE IF( .NOT.NOTRNA .AND. .NOT.NOTRNB ) THEN * * Solve A**H*X + ISGN*X*B**H = C. * * The (K,L)th block of X is determined starting from * upper-right corner column by column by * * A**H(K,K)*X(K,L) + ISGN*X(K,L)*B**H(L,L) = C(K,L) - R(K,L) * * Where * K-1 * R(K,L) = SUM [A**H(I,K)*X(I,L)] + * I=1 * N * ISGN*SUM [X(K,J)*B**H(L,J)]. * J=L+1 * DO 90 L = N, 1, -1 DO 80 K = 1, M * SUML = ZDOTC( K-1, A( 1, K ), 1, C( 1, L ), 1 ) SUMR = ZDOTC( N-L, C( K, MIN( L+1, N ) ), LDC, $ B( L, MIN( L+1, N ) ), LDB ) VEC = C( K, L ) - ( SUML+SGN*DCONJG( SUMR ) ) * SCALOC = ONE A11 = DCONJG( A( K, K )+SGN*B( L, L ) ) DA11 = ABS( DBLE( A11 ) ) + ABS( DIMAG( A11 ) ) IF( DA11.LE.SMIN ) THEN A11 = SMIN DA11 = SMIN INFO = 1 END IF DB = ABS( DBLE( VEC ) ) + ABS( DIMAG( VEC ) ) IF( DA11.LT.ONE .AND. DB.GT.ONE ) THEN IF( DB.GT.BIGNUM*DA11 ) $ SCALOC = ONE / DB END IF * X11 = ZLADIV( VEC*DCMPLX( SCALOC ), A11 ) * IF( SCALOC.NE.ONE ) THEN DO 70 J = 1, N CALL ZDSCAL( M, SCALOC, C( 1, J ), 1 ) 70 CONTINUE SCALE = SCALE*SCALOC END IF C( K, L ) = X11 * 80 CONTINUE 90 CONTINUE * ELSE IF( NOTRNA .AND. .NOT.NOTRNB ) THEN * * Solve A*X + ISGN*X*B**H = C. * * The (K,L)th block of X is determined starting from * bottom-left corner column by column by * * A(K,K)*X(K,L) + ISGN*X(K,L)*B**H(L,L) = C(K,L) - R(K,L) * * Where * M N * R(K,L) = SUM [A(K,I)*X(I,L)] + ISGN*SUM [X(K,J)*B**H(L,J)] * I=K+1 J=L+1 * DO 120 L = N, 1, -1 DO 110 K = M, 1, -1 * SUML = ZDOTU( M-K, A( K, MIN( K+1, M ) ), LDA, $ C( MIN( K+1, M ), L ), 1 ) SUMR = ZDOTC( N-L, C( K, MIN( L+1, N ) ), LDC, $ B( L, MIN( L+1, N ) ), LDB ) VEC = C( K, L ) - ( SUML+SGN*DCONJG( SUMR ) ) * SCALOC = ONE A11 = A( K, K ) + SGN*DCONJG( B( L, L ) ) DA11 = ABS( DBLE( A11 ) ) + ABS( DIMAG( A11 ) ) IF( DA11.LE.SMIN ) THEN A11 = SMIN DA11 = SMIN INFO = 1 END IF DB = ABS( DBLE( VEC ) ) + ABS( DIMAG( VEC ) ) IF( DA11.LT.ONE .AND. DB.GT.ONE ) THEN IF( DB.GT.BIGNUM*DA11 ) $ SCALOC = ONE / DB END IF * X11 = ZLADIV( VEC*DCMPLX( SCALOC ), A11 ) * IF( SCALOC.NE.ONE ) THEN DO 100 J = 1, N CALL ZDSCAL( M, SCALOC, C( 1, J ), 1 ) 100 CONTINUE SCALE = SCALE*SCALOC END IF C( K, L ) = X11 * 110 CONTINUE 120 CONTINUE * END IF * RETURN * * End of ZTRSYL * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zlacn2.f0000644000000000000000000000013213543334727015123 xustar0030 mtime=1569569239.490645227 30 atime=1569569239.489645228 30 ctime=1569569239.490645227 elk-6.3.2/src/LAPACK/zlacn2.f0000644002504400250440000001745413543334727017205 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vector products. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZLACN2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZLACN2( N, V, X, EST, KASE, ISAVE ) * * .. Scalar Arguments .. * INTEGER KASE, N * DOUBLE PRECISION EST * .. * .. Array Arguments .. * INTEGER ISAVE( 3 ) * COMPLEX*16 V( * ), X( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZLACN2 estimates the 1-norm of a square, complex matrix A. *> Reverse communication is used for evaluating matrix-vector products. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The order of the matrix. N >= 1. *> \endverbatim *> *> \param[out] V *> \verbatim *> V is COMPLEX*16 array, dimension (N) *> On the final return, V = A*W, where EST = norm(V)/norm(W) *> (W is not returned). *> \endverbatim *> *> \param[in,out] X *> \verbatim *> X is COMPLEX*16 array, dimension (N) *> On an intermediate return, X should be overwritten by *> A * X, if KASE=1, *> A**H * X, if KASE=2, *> where A**H is the conjugate transpose of A, and ZLACN2 must be *> re-called with all the other parameters unchanged. *> \endverbatim *> *> \param[in,out] EST *> \verbatim *> EST is DOUBLE PRECISION *> On entry with KASE = 1 or 2 and ISAVE(1) = 3, EST should be *> unchanged from the previous call to ZLACN2. *> On exit, EST is an estimate (a lower bound) for norm(A). *> \endverbatim *> *> \param[in,out] KASE *> \verbatim *> KASE is INTEGER *> On the initial call to ZLACN2, KASE should be 0. *> On an intermediate return, KASE will be 1 or 2, indicating *> whether X should be overwritten by A * X or A**H * X. *> On the final return from ZLACN2, KASE will again be 0. *> \endverbatim *> *> \param[in,out] ISAVE *> \verbatim *> ISAVE is INTEGER array, dimension (3) *> ISAVE is used to save variables between calls to ZLACN2 *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Further Details: * ===================== *> *> \verbatim *> *> Originally named CONEST, dated March 16, 1988. *> *> Last modified: April, 1999 *> *> This is a thread safe version of ZLACON, which uses the array ISAVE *> in place of a SAVE statement, as follows: *> *> ZLACON ZLACN2 *> JUMP ISAVE(1) *> J ISAVE(2) *> ITER ISAVE(3) *> \endverbatim * *> \par Contributors: * ================== *> *> Nick Higham, University of Manchester * *> \par References: * ================ *> *> N.J. Higham, "FORTRAN codes for estimating the one-norm of *> a real or complex matrix, with applications to condition estimation", *> ACM Trans. Math. Soft., vol. 14, no. 4, pp. 381-396, December 1988. *> * ===================================================================== SUBROUTINE ZLACN2( N, V, X, EST, KASE, ISAVE ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER KASE, N DOUBLE PRECISION EST * .. * .. Array Arguments .. INTEGER ISAVE( 3 ) COMPLEX*16 V( * ), X( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER ITMAX PARAMETER ( ITMAX = 5 ) DOUBLE PRECISION ONE, TWO PARAMETER ( ONE = 1.0D0, TWO = 2.0D0 ) COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D0, 0.0D0 ), $ CONE = ( 1.0D0, 0.0D0 ) ) * .. * .. Local Scalars .. INTEGER I, JLAST DOUBLE PRECISION ABSXI, ALTSGN, ESTOLD, SAFMIN, TEMP * .. * .. External Functions .. INTEGER IZMAX1 DOUBLE PRECISION DLAMCH, DZSUM1 EXTERNAL IZMAX1, DLAMCH, DZSUM1 * .. * .. External Subroutines .. EXTERNAL ZCOPY * .. * .. Intrinsic Functions .. INTRINSIC ABS, DBLE, DCMPLX, DIMAG * .. * .. Executable Statements .. * SAFMIN = DLAMCH( 'Safe minimum' ) IF( KASE.EQ.0 ) THEN DO 10 I = 1, N X( I ) = DCMPLX( ONE / DBLE( N ) ) 10 CONTINUE KASE = 1 ISAVE( 1 ) = 1 RETURN END IF * GO TO ( 20, 40, 70, 90, 120 )ISAVE( 1 ) * * ................ ENTRY (ISAVE( 1 ) = 1) * FIRST ITERATION. X HAS BEEN OVERWRITTEN BY A*X. * 20 CONTINUE IF( N.EQ.1 ) THEN V( 1 ) = X( 1 ) EST = ABS( V( 1 ) ) * ... QUIT GO TO 130 END IF EST = DZSUM1( N, X, 1 ) * DO 30 I = 1, N ABSXI = ABS( X( I ) ) IF( ABSXI.GT.SAFMIN ) THEN X( I ) = DCMPLX( DBLE( X( I ) ) / ABSXI, $ DIMAG( X( I ) ) / ABSXI ) ELSE X( I ) = CONE END IF 30 CONTINUE KASE = 2 ISAVE( 1 ) = 2 RETURN * * ................ ENTRY (ISAVE( 1 ) = 2) * FIRST ITERATION. X HAS BEEN OVERWRITTEN BY CTRANS(A)*X. * 40 CONTINUE ISAVE( 2 ) = IZMAX1( N, X, 1 ) ISAVE( 3 ) = 2 * * MAIN LOOP - ITERATIONS 2,3,...,ITMAX. * 50 CONTINUE DO 60 I = 1, N X( I ) = CZERO 60 CONTINUE X( ISAVE( 2 ) ) = CONE KASE = 1 ISAVE( 1 ) = 3 RETURN * * ................ ENTRY (ISAVE( 1 ) = 3) * X HAS BEEN OVERWRITTEN BY A*X. * 70 CONTINUE CALL ZCOPY( N, X, 1, V, 1 ) ESTOLD = EST EST = DZSUM1( N, V, 1 ) * * TEST FOR CYCLING. IF( EST.LE.ESTOLD ) $ GO TO 100 * DO 80 I = 1, N ABSXI = ABS( X( I ) ) IF( ABSXI.GT.SAFMIN ) THEN X( I ) = DCMPLX( DBLE( X( I ) ) / ABSXI, $ DIMAG( X( I ) ) / ABSXI ) ELSE X( I ) = CONE END IF 80 CONTINUE KASE = 2 ISAVE( 1 ) = 4 RETURN * * ................ ENTRY (ISAVE( 1 ) = 4) * X HAS BEEN OVERWRITTEN BY CTRANS(A)*X. * 90 CONTINUE JLAST = ISAVE( 2 ) ISAVE( 2 ) = IZMAX1( N, X, 1 ) IF( ( ABS( X( JLAST ) ).NE.ABS( X( ISAVE( 2 ) ) ) ) .AND. $ ( ISAVE( 3 ).LT.ITMAX ) ) THEN ISAVE( 3 ) = ISAVE( 3 ) + 1 GO TO 50 END IF * * ITERATION COMPLETE. FINAL STAGE. * 100 CONTINUE ALTSGN = ONE DO 110 I = 1, N X( I ) = DCMPLX( ALTSGN*( ONE+DBLE( I-1 ) / DBLE( N-1 ) ) ) ALTSGN = -ALTSGN 110 CONTINUE KASE = 1 ISAVE( 1 ) = 5 RETURN * * ................ ENTRY (ISAVE( 1 ) = 5) * X HAS BEEN OVERWRITTEN BY A*X. * 120 CONTINUE TEMP = TWO*( DZSUM1( N, X, 1 ) / DBLE( 3*N ) ) IF( TEMP.GT.EST ) THEN CALL ZCOPY( N, X, 1, V, 1 ) EST = TEMP END IF * 130 CONTINUE KASE = 0 RETURN * * End of ZLACN2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zungl2.f0000644000000000000000000000013213543334727015153 xustar0030 mtime=1569569239.495645224 30 atime=1569569239.494645225 30 ctime=1569569239.495645224 elk-6.3.2/src/LAPACK/zungl2.f0000644002504400250440000001264513543334727017232 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNGL2 generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNGL2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNGL2( M, N, K, A, LDA, TAU, WORK, INFO ) * * .. Scalar Arguments .. * INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNGL2 generates an m-by-n complex matrix Q with orthonormal rows, *> which is defined as the first m rows of a product of k elementary *> reflectors of order n *> *> Q = H(k)**H . . . H(2)**H H(1)**H *> *> as returned by ZGELQF. *> \endverbatim * * Arguments: * ========== * *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix Q. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix Q. N >= M. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines the *> matrix Q. M >= K >= 0. *> \endverbatim *> *> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> On entry, the i-th row must contain the vector which defines *> the elementary reflector H(i), for i = 1,2,...,k, as returned *> by ZGELQF in the first k rows of its array argument A. *> On exit, the m by n matrix Q. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The first dimension of the array A. LDA >= max(1,M). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGELQF. *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (M) *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument has an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNGL2( M, N, K, A, LDA, TAU, WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INFO, K, LDA, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE, ZERO PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ), $ ZERO = ( 0.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. INTEGER I, J, L * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACGV, ZLARF, ZSCAL * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 IF( M.LT.0 ) THEN INFO = -1 ELSE IF( N.LT.M ) THEN INFO = -2 ELSE IF( K.LT.0 .OR. K.GT.M ) THEN INFO = -3 ELSE IF( LDA.LT.MAX( 1, M ) ) THEN INFO = -5 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNGL2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.LE.0 ) $ RETURN * IF( K.LT.M ) THEN * * Initialise rows k+1:m to rows of the unit matrix * DO 20 J = 1, N DO 10 L = K + 1, M A( L, J ) = ZERO 10 CONTINUE IF( J.GT.K .AND. J.LE.M ) $ A( J, J ) = ONE 20 CONTINUE END IF * DO 40 I = K, 1, -1 * * Apply H(i)**H to A(i:m,i:n) from the right * IF( I.LT.N ) THEN CALL ZLACGV( N-I, A( I, I+1 ), LDA ) IF( I.LT.M ) THEN A( I, I ) = ONE CALL ZLARF( 'Right', M-I, N-I+1, A( I, I ), LDA, $ DCONJG( TAU( I ) ), A( I+1, I ), LDA, WORK ) END IF CALL ZSCAL( N-I, -TAU( I ), A( I, I+1 ), LDA ) CALL ZLACGV( N-I, A( I, I+1 ), LDA ) END IF A( I, I ) = ONE - DCONJG( TAU( I ) ) * * Set A(i,1:i-1) to zero * DO 30 L = 1, I - 1 A( I, L ) = ZERO 30 CONTINUE 40 CONTINUE RETURN * * End of ZUNGL2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunmlq.f0000644000000000000000000000013213543334727015260 xustar0030 mtime=1569569239.499645221 30 atime=1569569239.498645222 30 ctime=1569569239.499645221 elk-6.3.2/src/LAPACK/zunmlq.f0000644002504400250440000002250313543334727017331 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNMLQ * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNMLQ + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, LWORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNMLQ overwrites the general complex M-by-N matrix C with *> *> SIDE = 'L' SIDE = 'R' *> TRANS = 'N': Q * C C * Q *> TRANS = 'C': Q**H * C C * Q**H *> *> where Q is a complex unitary matrix defined as the product of k *> elementary reflectors *> *> Q = H(k)**H . . . H(2)**H H(1)**H *> *> as returned by ZGELQF. Q is of order M if SIDE = 'L' and of order N *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left; *> = 'R': apply Q or Q**H from the Right. *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': No transpose, apply Q; *> = 'C': Conjugate transpose, apply Q**H. *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension *> (LDA,M) if SIDE = 'L', *> (LDA,N) if SIDE = 'R' *> The i-th row must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> ZGELQF in the first k rows of its array argument A. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,K). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGELQF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the M-by-N matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)) *> On exit, if INFO = 0, WORK(1) returns the optimal LWORK. *> \endverbatim *> *> \param[in] LWORK *> \verbatim *> LWORK is INTEGER *> The dimension of the array WORK. *> If SIDE = 'L', LWORK >= max(1,N); *> if SIDE = 'R', LWORK >= max(1,M). *> For good performance, LWORK should generally be larger. *> *> If LWORK = -1, then a workspace query is assumed; the routine *> only calculates the optimal size of the WORK array, returns *> this value as the first entry of the WORK array, and no error *> message related to LWORK is issued by XERBLA. *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, LWORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, LWORK, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. INTEGER NBMAX, LDT, TSIZE PARAMETER ( NBMAX = 64, LDT = NBMAX+1, $ TSIZE = LDT*NBMAX ) * .. * .. Local Scalars .. LOGICAL LEFT, LQUERY, NOTRAN CHARACTER TRANST INTEGER I, I1, I2, I3, IB, IC, IINFO, IWT, JC, LDWORK, $ LWKOPT, MI, NB, NBMIN, NI, NQ, NW * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV EXTERNAL LSAME, ILAENV * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLARFB, ZLARFT, ZUNML2 * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) LQUERY = ( LWORK.EQ.-1 ) * * NQ is the order of Q and NW is the minimum dimension of WORK * IF( LEFT ) THEN NQ = M NW = N ELSE NQ = N NW = M END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, K ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 ELSE IF( LWORK.LT.MAX( 1, NW ) .AND. .NOT.LQUERY ) THEN INFO = -12 END IF * IF( INFO.EQ.0 ) THEN * * Compute the workspace requirements * NB = MIN( NBMAX, ILAENV( 1, 'ZUNMLQ', SIDE // TRANS, M, N, K, $ -1 ) ) LWKOPT = MAX( 1, NW )*NB + TSIZE WORK( 1 ) = LWKOPT END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNMLQ', -INFO ) RETURN ELSE IF( LQUERY ) THEN RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) THEN WORK( 1 ) = 1 RETURN END IF * NBMIN = 2 LDWORK = NW IF( NB.GT.1 .AND. NB.LT.K ) THEN IF( LWORK.LT.NW*NB+TSIZE ) THEN NB = (LWORK-TSIZE) / LDWORK NBMIN = MAX( 2, ILAENV( 2, 'ZUNMLQ', SIDE // TRANS, M, N, K, $ -1 ) ) END IF END IF * IF( NB.LT.NBMIN .OR. NB.GE.K ) THEN * * Use unblocked code * CALL ZUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, $ IINFO ) ELSE * * Use blocked code * IWT = 1 + NW*NB IF( ( LEFT .AND. NOTRAN ) .OR. $ ( .NOT.LEFT .AND. .NOT.NOTRAN ) ) THEN I1 = 1 I2 = K I3 = NB ELSE I1 = ( ( K-1 ) / NB )*NB + 1 I2 = 1 I3 = -NB END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * IF( NOTRAN ) THEN TRANST = 'C' ELSE TRANST = 'N' END IF * DO 10 I = I1, I2, I3 IB = MIN( NB, K-I+1 ) * * Form the triangular factor of the block reflector * H = H(i) H(i+1) . . . H(i+ib-1) * CALL ZLARFT( 'Forward', 'Rowwise', NQ-I+1, IB, A( I, I ), $ LDA, TAU( I ), WORK( IWT ), LDT ) IF( LEFT ) THEN * * H or H**H is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H or H**H is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H or H**H * CALL ZLARFB( SIDE, TRANST, 'Forward', 'Rowwise', MI, NI, IB, $ A( I, I ), LDA, WORK( IWT ), LDT, $ C( IC, JC ), LDC, WORK, LDWORK ) 10 CONTINUE END IF WORK( 1 ) = LWKOPT RETURN * * End of ZUNMLQ * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dorml2.f0000644000000000000000000000013213543334727015131 xustar0030 mtime=1569569239.504645218 30 atime=1569569239.502645219 30 ctime=1569569239.504645218 elk-6.3.2/src/LAPACK/dorml2.f0000644002504400250440000001635513543334727017212 0ustar00dewhurstdewhurst00000000000000*> \brief \b DORML2 multiplies a general matrix by the orthogonal matrix from a LQ factorization determined by sgelqf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DORML2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DORML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. * DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DORML2 overwrites the general real m by n matrix C with *> *> Q * C if SIDE = 'L' and TRANS = 'N', or *> *> Q**T* C if SIDE = 'L' and TRANS = 'T', or *> *> C * Q if SIDE = 'R' and TRANS = 'N', or *> *> C * Q**T if SIDE = 'R' and TRANS = 'T', *> *> where Q is a real orthogonal matrix defined as the product of k *> elementary reflectors *> *> Q = H(k) . . . H(2) H(1) *> *> as returned by DGELQF. Q is of order m if SIDE = 'L' and of order n *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**T from the Left *> = 'R': apply Q or Q**T from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'T': apply Q**T (Transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is DOUBLE PRECISION array, dimension *> (LDA,M) if SIDE = 'L', *> (LDA,N) if SIDE = 'R' *> The i-th row must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> DGELQF in the first k rows of its array argument A. *> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,K). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by DGELQF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is DOUBLE PRECISION array, dimension (LDC,N) *> On entry, the m by n matrix C. *> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is DOUBLE PRECISION array, dimension *> (N) if SIDE = 'L', *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup doubleOTHERcomputational * * ===================================================================== SUBROUTINE DORML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. DOUBLE PRECISION A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ONE PARAMETER ( ONE = 1.0D+0 ) * .. * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ DOUBLE PRECISION AII * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL DLARF, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'T' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, K ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DORML2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) $ RETURN * IF( ( LEFT .AND. NOTRAN ) .OR. ( .NOT.LEFT .AND. .NOT.NOTRAN ) ) $ THEN I1 = 1 I2 = K I3 = 1 ELSE I1 = K I2 = 1 I3 = -1 END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H(i) is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H(i) * AII = A( I, I ) A( I, I ) = ONE CALL DLARF( SIDE, MI, NI, A( I, I ), LDA, TAU( I ), $ C( IC, JC ), LDC, WORK ) A( I, I ) = AII 10 CONTINUE RETURN * * End of DORML2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dzsum1.f0000644000000000000000000000013213543334727015155 xustar0030 mtime=1569569239.508645216 30 atime=1569569239.507645216 30 ctime=1569569239.508645216 elk-6.3.2/src/LAPACK/dzsum1.f0000644002504400250440000000634213543334727017231 0ustar00dewhurstdewhurst00000000000000*> \brief \b DZSUM1 forms the 1-norm of the complex vector using the true absolute value. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DZSUM1 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * DOUBLE PRECISION FUNCTION DZSUM1( N, CX, INCX ) * * .. Scalar Arguments .. * INTEGER INCX, N * .. * .. Array Arguments .. * COMPLEX*16 CX( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DZSUM1 takes the sum of the absolute values of a complex *> vector and returns a double precision result. *> *> Based on DZASUM from the Level 1 BLAS. *> The change is to use the 'genuine' absolute value. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of elements in the vector CX. *> \endverbatim *> *> \param[in] CX *> \verbatim *> CX is COMPLEX*16 array, dimension (N) *> The vector whose elements will be summed. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The spacing between successive values of CX. INCX > 0. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERauxiliary * *> \par Contributors: * ================== *> *> Nick Higham for use with ZLACON. * * ===================================================================== DOUBLE PRECISION FUNCTION DZSUM1( N, CX, INCX ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER INCX, N * .. * .. Array Arguments .. COMPLEX*16 CX( * ) * .. * * ===================================================================== * * .. Local Scalars .. INTEGER I, NINCX DOUBLE PRECISION STEMP * .. * .. Intrinsic Functions .. INTRINSIC ABS * .. * .. Executable Statements .. * DZSUM1 = 0.0D0 STEMP = 0.0D0 IF( N.LE.0 ) $ RETURN IF( INCX.EQ.1 ) $ GO TO 20 * * CODE FOR INCREMENT NOT EQUAL TO 1 * NINCX = N*INCX DO 10 I = 1, NINCX, INCX * * NEXT LINE MODIFIED. * STEMP = STEMP + ABS( CX( I ) ) 10 CONTINUE DZSUM1 = STEMP RETURN * * CODE FOR INCREMENT EQUAL TO 1 * 20 CONTINUE DO 30 I = 1, N * * NEXT LINE MODIFIED. * STEMP = STEMP + ABS( CX( I ) ) 30 CONTINUE DZSUM1 = STEMP RETURN * * End of DZSUM1 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/izmax1.f0000644000000000000000000000013213543334727015143 xustar0030 mtime=1569569239.512645213 30 atime=1569569239.511645214 30 ctime=1569569239.512645213 elk-6.3.2/src/LAPACK/izmax1.f0000644002504400250440000000662313543334727017221 0ustar00dewhurstdewhurst00000000000000*> \brief \b IZMAX1 finds the index of the first vector element of maximum absolute value. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download IZMAX1 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * INTEGER FUNCTION IZMAX1( N, ZX, INCX ) * * .. Scalar Arguments .. * INTEGER INCX, N * .. * .. Array Arguments .. * COMPLEX*16 ZX( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> IZMAX1 finds the index of the first vector element of maximum absolute value. *> *> Based on IZAMAX from Level 1 BLAS. *> The change is to use the 'genuine' absolute value. *> \endverbatim * * Arguments: * ========== * *> \param[in] N *> \verbatim *> N is INTEGER *> The number of elements in the vector ZX. *> \endverbatim *> *> \param[in] ZX *> \verbatim *> ZX is COMPLEX*16 array, dimension (N) *> The vector ZX. The IZMAX1 function returns the index of its first *> element of maximum absolute value. *> \endverbatim *> *> \param[in] INCX *> \verbatim *> INCX is INTEGER *> The spacing between successive values of ZX. INCX >= 1. *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date February 2014 * *> \ingroup complexOTHERauxiliary * *> \par Contributors: * ================== *> *> Nick Higham for use with ZLACON. * * ===================================================================== INTEGER FUNCTION IZMAX1( N, ZX, INCX ) * * -- LAPACK auxiliary routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * February 2014 * * .. Scalar Arguments .. INTEGER INCX, N * .. * .. Array Arguments .. COMPLEX*16 ZX(*) * .. * * ===================================================================== * * .. Local Scalars .. DOUBLE PRECISION DMAX INTEGER I, IX * .. * .. Intrinsic Functions .. INTRINSIC ABS * .. * .. Executable Statements .. * IZMAX1 = 0 IF (N.LT.1 .OR. INCX.LE.0) RETURN IZMAX1 = 1 IF (N.EQ.1) RETURN IF (INCX.EQ.1) THEN * * code for increment equal to 1 * DMAX = ABS(ZX(1)) DO I = 2,N IF (ABS(ZX(I)).GT.DMAX) THEN IZMAX1 = I DMAX = ABS(ZX(I)) END IF END DO ELSE * * code for increment not equal to 1 * IX = 1 DMAX = ABS(ZX(1)) IX = IX + INCX DO I = 2,N IF (ABS(ZX(IX)).GT.DMAX) THEN IZMAX1 = I DMAX = ABS(ZX(IX)) END IF IX = IX + INCX END DO END IF RETURN * * End of IZMAX1 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/zunml2.f0000644000000000000000000000013213543334727015161 xustar0030 mtime=1569569239.516645211 30 atime=1569569239.515645211 30 ctime=1569569239.516645211 elk-6.3.2/src/LAPACK/zunml2.f0000644002504400250440000001705013543334727017233 0ustar00dewhurstdewhurst00000000000000*> \brief \b ZUNML2 multiplies a general matrix by the unitary matrix from a LQ factorization determined by cgelqf (unblocked algorithm). * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download ZUNML2 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, * WORK, INFO ) * * .. Scalar Arguments .. * CHARACTER SIDE, TRANS * INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. * COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> ZUNML2 overwrites the general complex m-by-n matrix C with *> *> Q * C if SIDE = 'L' and TRANS = 'N', or *> *> Q**H* C if SIDE = 'L' and TRANS = 'C', or *> *> C * Q if SIDE = 'R' and TRANS = 'N', or *> *> C * Q**H if SIDE = 'R' and TRANS = 'C', *> *> where Q is a complex unitary matrix defined as the product of k *> elementary reflectors *> *> Q = H(k)**H . . . H(2)**H H(1)**H *> *> as returned by ZGELQF. Q is of order m if SIDE = 'L' and of order n *> if SIDE = 'R'. *> \endverbatim * * Arguments: * ========== * *> \param[in] SIDE *> \verbatim *> SIDE is CHARACTER*1 *> = 'L': apply Q or Q**H from the Left *> = 'R': apply Q or Q**H from the Right *> \endverbatim *> *> \param[in] TRANS *> \verbatim *> TRANS is CHARACTER*1 *> = 'N': apply Q (No transpose) *> = 'C': apply Q**H (Conjugate transpose) *> \endverbatim *> *> \param[in] M *> \verbatim *> M is INTEGER *> The number of rows of the matrix C. M >= 0. *> \endverbatim *> *> \param[in] N *> \verbatim *> N is INTEGER *> The number of columns of the matrix C. N >= 0. *> \endverbatim *> *> \param[in] K *> \verbatim *> K is INTEGER *> The number of elementary reflectors whose product defines *> the matrix Q. *> If SIDE = 'L', M >= K >= 0; *> if SIDE = 'R', N >= K >= 0. *> \endverbatim *> *> \param[in] A *> \verbatim *> A is COMPLEX*16 array, dimension *> (LDA,M) if SIDE = 'L', *> (LDA,N) if SIDE = 'R' *> The i-th row must contain the vector which defines the *> elementary reflector H(i), for i = 1,2,...,k, as returned by *> ZGELQF in the first k rows of its array argument A. *> A is modified by the routine but restored on exit. *> \endverbatim *> *> \param[in] LDA *> \verbatim *> LDA is INTEGER *> The leading dimension of the array A. LDA >= max(1,K). *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is COMPLEX*16 array, dimension (K) *> TAU(i) must contain the scalar factor of the elementary *> reflector H(i), as returned by ZGELQF. *> \endverbatim *> *> \param[in,out] C *> \verbatim *> C is COMPLEX*16 array, dimension (LDC,N) *> On entry, the m-by-n matrix C. *> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. *> \endverbatim *> *> \param[in] LDC *> \verbatim *> LDC is INTEGER *> The leading dimension of the array C. LDC >= max(1,M). *> \endverbatim *> *> \param[out] WORK *> \verbatim *> WORK is COMPLEX*16 array, dimension *> (N) if SIDE = 'L', *> (M) if SIDE = 'R' *> \endverbatim *> *> \param[out] INFO *> \verbatim *> INFO is INTEGER *> = 0: successful exit *> < 0: if INFO = -i, the i-th argument had an illegal value *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup complex16OTHERcomputational * * ===================================================================== SUBROUTINE ZUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, $ WORK, INFO ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. CHARACTER SIDE, TRANS INTEGER INFO, K, LDA, LDC, M, N * .. * .. Array Arguments .. COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * ) * .. * * ===================================================================== * * .. Parameters .. COMPLEX*16 ONE PARAMETER ( ONE = ( 1.0D+0, 0.0D+0 ) ) * .. * .. Local Scalars .. LOGICAL LEFT, NOTRAN INTEGER I, I1, I2, I3, IC, JC, MI, NI, NQ COMPLEX*16 AII, TAUI * .. * .. External Functions .. LOGICAL LSAME EXTERNAL LSAME * .. * .. External Subroutines .. EXTERNAL XERBLA, ZLACGV, ZLARF * .. * .. Intrinsic Functions .. INTRINSIC DCONJG, MAX * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 LEFT = LSAME( SIDE, 'L' ) NOTRAN = LSAME( TRANS, 'N' ) * * NQ is the order of Q * IF( LEFT ) THEN NQ = M ELSE NQ = N END IF IF( .NOT.LEFT .AND. .NOT.LSAME( SIDE, 'R' ) ) THEN INFO = -1 ELSE IF( .NOT.NOTRAN .AND. .NOT.LSAME( TRANS, 'C' ) ) THEN INFO = -2 ELSE IF( M.LT.0 ) THEN INFO = -3 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( K.LT.0 .OR. K.GT.NQ ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, K ) ) THEN INFO = -7 ELSE IF( LDC.LT.MAX( 1, M ) ) THEN INFO = -10 END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'ZUNML2', -INFO ) RETURN END IF * * Quick return if possible * IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) $ RETURN * IF( ( LEFT .AND. NOTRAN .OR. .NOT.LEFT .AND. .NOT.NOTRAN ) ) THEN I1 = 1 I2 = K I3 = 1 ELSE I1 = K I2 = 1 I3 = -1 END IF * IF( LEFT ) THEN NI = N JC = 1 ELSE MI = M IC = 1 END IF * DO 10 I = I1, I2, I3 IF( LEFT ) THEN * * H(i) or H(i)**H is applied to C(i:m,1:n) * MI = M - I + 1 IC = I ELSE * * H(i) or H(i)**H is applied to C(1:m,i:n) * NI = N - I + 1 JC = I END IF * * Apply H(i) or H(i)**H * IF( NOTRAN ) THEN TAUI = DCONJG( TAU( I ) ) ELSE TAUI = TAU( I ) END IF IF( I.LT.NQ ) $ CALL ZLACGV( NQ-I, A( I, I+1 ), LDA ) AII = A( I, I ) A( I, I ) = ONE CALL ZLARF( SIDE, MI, NI, A( I, I ), LDA, TAUI, C( IC, JC ), $ LDC, WORK ) A( I, I ) = AII IF( I.LT.NQ ) $ CALL ZLACGV( NQ-I, A( I, I+1 ), LDA ) 10 CONTINUE RETURN * * End of ZUNML2 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasq5.f0000644000000000000000000000013213543334727015123 xustar0030 mtime=1569569239.521645207 30 atime=1569569239.519645209 30 ctime=1569569239.521645207 elk-6.3.2/src/LAPACK/dlasq5.f0000644002504400250440000002625513543334727017204 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASQ5 computes one dqds transform in ping-pong form. Used by sbdsqr and sstegr. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASQ5 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, DN, * DNM1, DNM2, IEEE, EPS ) * * .. Scalar Arguments .. * LOGICAL IEEE * INTEGER I0, N0, PP * DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2, TAU, SIGMA, EPS * .. * .. Array Arguments .. * DOUBLE PRECISION Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASQ5 computes one dqds transform in ping-pong form, one *> version for IEEE machines another for non IEEE machines. *> \endverbatim * * Arguments: * ========== * *> \param[in] I0 *> \verbatim *> I0 is INTEGER *> First index. *> \endverbatim *> *> \param[in] N0 *> \verbatim *> N0 is INTEGER *> Last index. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension ( 4*N ) *> Z holds the qd array. EMIN is stored in Z(4*N0) to avoid *> an extra argument. *> \endverbatim *> *> \param[in] PP *> \verbatim *> PP is INTEGER *> PP=0 for ping, PP=1 for pong. *> \endverbatim *> *> \param[in] TAU *> \verbatim *> TAU is DOUBLE PRECISION *> This is the shift. *> \endverbatim *> *> \param[in] SIGMA *> \verbatim *> SIGMA is DOUBLE PRECISION *> This is the accumulated shift up to this step. *> \endverbatim *> *> \param[out] DMIN *> \verbatim *> DMIN is DOUBLE PRECISION *> Minimum value of d. *> \endverbatim *> *> \param[out] DMIN1 *> \verbatim *> DMIN1 is DOUBLE PRECISION *> Minimum value of d, excluding D( N0 ). *> \endverbatim *> *> \param[out] DMIN2 *> \verbatim *> DMIN2 is DOUBLE PRECISION *> Minimum value of d, excluding D( N0 ) and D( N0-1 ). *> \endverbatim *> *> \param[out] DN *> \verbatim *> DN is DOUBLE PRECISION *> d(N0), the last value of d. *> \endverbatim *> *> \param[out] DNM1 *> \verbatim *> DNM1 is DOUBLE PRECISION *> d(N0-1). *> \endverbatim *> *> \param[out] DNM2 *> \verbatim *> DNM2 is DOUBLE PRECISION *> d(N0-2). *> \endverbatim *> *> \param[in] IEEE *> \verbatim *> IEEE is LOGICAL *> Flag for IEEE or non IEEE arithmetic. *> \endverbatim *> *> \param[in] EPS *> \verbatim *> EPS is DOUBLE PRECISION *> This is the value of epsilon used. *> \endverbatim *> * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date June 2017 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, $ DN, DNM1, DNM2, IEEE, EPS ) * * -- LAPACK computational routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * June 2017 * * .. Scalar Arguments .. LOGICAL IEEE INTEGER I0, N0, PP DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2, TAU, $ SIGMA, EPS * .. * .. Array Arguments .. DOUBLE PRECISION Z( * ) * .. * * ===================================================================== * * .. Parameter .. DOUBLE PRECISION ZERO, HALF PARAMETER ( ZERO = 0.0D0, HALF = 0.5 ) * .. * .. Local Scalars .. INTEGER J4, J4P2 DOUBLE PRECISION D, EMIN, TEMP, DTHRESH * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * IF( ( N0-I0-1 ).LE.0 ) $ RETURN * DTHRESH = EPS*(SIGMA+TAU) IF( TAU.LT.DTHRESH*HALF ) TAU = ZERO IF( TAU.NE.ZERO ) THEN J4 = 4*I0 + PP - 3 EMIN = Z( J4+4 ) D = Z( J4 ) - TAU DMIN = D DMIN1 = -Z( J4 ) * IF( IEEE ) THEN * * Code for IEEE arithmetic. * IF( PP.EQ.0 ) THEN DO 10 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-2 ) = D + Z( J4-1 ) TEMP = Z( J4+1 ) / Z( J4-2 ) D = D*TEMP - TAU DMIN = MIN( DMIN, D ) Z( J4 ) = Z( J4-1 )*TEMP EMIN = MIN( Z( J4 ), EMIN ) 10 CONTINUE ELSE DO 20 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-3 ) = D + Z( J4 ) TEMP = Z( J4+2 ) / Z( J4-3 ) D = D*TEMP - TAU DMIN = MIN( DMIN, D ) Z( J4-1 ) = Z( J4 )*TEMP EMIN = MIN( Z( J4-1 ), EMIN ) 20 CONTINUE END IF * * Unroll last two steps. * DNM2 = D DMIN2 = DMIN J4 = 4*( N0-2 ) - PP J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM2 + Z( J4P2 ) Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) - TAU DMIN = MIN( DMIN, DNM1 ) * DMIN1 = DMIN J4 = J4 + 4 J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM1 + Z( J4P2 ) Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) - TAU DMIN = MIN( DMIN, DN ) * ELSE * * Code for non IEEE arithmetic. * IF( PP.EQ.0 ) THEN DO 30 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-2 ) = D + Z( J4-1 ) IF( D.LT.ZERO ) THEN RETURN ELSE Z( J4 ) = Z( J4+1 )*( Z( J4-1 ) / Z( J4-2 ) ) D = Z( J4+1 )*( D / Z( J4-2 ) ) - TAU END IF DMIN = MIN( DMIN, D ) EMIN = MIN( EMIN, Z( J4 ) ) 30 CONTINUE ELSE DO 40 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-3 ) = D + Z( J4 ) IF( D.LT.ZERO ) THEN RETURN ELSE Z( J4-1 ) = Z( J4+2 )*( Z( J4 ) / Z( J4-3 ) ) D = Z( J4+2 )*( D / Z( J4-3 ) ) - TAU END IF DMIN = MIN( DMIN, D ) EMIN = MIN( EMIN, Z( J4-1 ) ) 40 CONTINUE END IF * * Unroll last two steps. * DNM2 = D DMIN2 = DMIN J4 = 4*( N0-2 ) - PP J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM2 + Z( J4P2 ) IF( DNM2.LT.ZERO ) THEN RETURN ELSE Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) - TAU END IF DMIN = MIN( DMIN, DNM1 ) * DMIN1 = DMIN J4 = J4 + 4 J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM1 + Z( J4P2 ) IF( DNM1.LT.ZERO ) THEN RETURN ELSE Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) - TAU END IF DMIN = MIN( DMIN, DN ) * END IF ELSE * This is the version that sets d's to zero if they are small enough J4 = 4*I0 + PP - 3 EMIN = Z( J4+4 ) D = Z( J4 ) - TAU DMIN = D DMIN1 = -Z( J4 ) IF( IEEE ) THEN * * Code for IEEE arithmetic. * IF( PP.EQ.0 ) THEN DO 50 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-2 ) = D + Z( J4-1 ) TEMP = Z( J4+1 ) / Z( J4-2 ) D = D*TEMP - TAU IF( D.LT.DTHRESH ) D = ZERO DMIN = MIN( DMIN, D ) Z( J4 ) = Z( J4-1 )*TEMP EMIN = MIN( Z( J4 ), EMIN ) 50 CONTINUE ELSE DO 60 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-3 ) = D + Z( J4 ) TEMP = Z( J4+2 ) / Z( J4-3 ) D = D*TEMP - TAU IF( D.LT.DTHRESH ) D = ZERO DMIN = MIN( DMIN, D ) Z( J4-1 ) = Z( J4 )*TEMP EMIN = MIN( Z( J4-1 ), EMIN ) 60 CONTINUE END IF * * Unroll last two steps. * DNM2 = D DMIN2 = DMIN J4 = 4*( N0-2 ) - PP J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM2 + Z( J4P2 ) Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) - TAU DMIN = MIN( DMIN, DNM1 ) * DMIN1 = DMIN J4 = J4 + 4 J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM1 + Z( J4P2 ) Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) - TAU DMIN = MIN( DMIN, DN ) * ELSE * * Code for non IEEE arithmetic. * IF( PP.EQ.0 ) THEN DO 70 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-2 ) = D + Z( J4-1 ) IF( D.LT.ZERO ) THEN RETURN ELSE Z( J4 ) = Z( J4+1 )*( Z( J4-1 ) / Z( J4-2 ) ) D = Z( J4+1 )*( D / Z( J4-2 ) ) - TAU END IF IF( D.LT.DTHRESH) D = ZERO DMIN = MIN( DMIN, D ) EMIN = MIN( EMIN, Z( J4 ) ) 70 CONTINUE ELSE DO 80 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-3 ) = D + Z( J4 ) IF( D.LT.ZERO ) THEN RETURN ELSE Z( J4-1 ) = Z( J4+2 )*( Z( J4 ) / Z( J4-3 ) ) D = Z( J4+2 )*( D / Z( J4-3 ) ) - TAU END IF IF( D.LT.DTHRESH) D = ZERO DMIN = MIN( DMIN, D ) EMIN = MIN( EMIN, Z( J4-1 ) ) 80 CONTINUE END IF * * Unroll last two steps. * DNM2 = D DMIN2 = DMIN J4 = 4*( N0-2 ) - PP J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM2 + Z( J4P2 ) IF( DNM2.LT.ZERO ) THEN RETURN ELSE Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) - TAU END IF DMIN = MIN( DMIN, DNM1 ) * DMIN1 = DMIN J4 = J4 + 4 J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM1 + Z( J4P2 ) IF( DNM1.LT.ZERO ) THEN RETURN ELSE Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) - TAU END IF DMIN = MIN( DMIN, DN ) * END IF END IF * Z( J4+2 ) = DN Z( 4*N0-PP ) = EMIN RETURN * * End of DLASQ5 * END elk-6.3.2/src/LAPACK/PaxHeaders.21352/dlasq6.f0000644000000000000000000000013213543334727015124 xustar0030 mtime=1569569239.525645205 30 atime=1569569239.524645205 30 ctime=1569569239.525645205 elk-6.3.2/src/LAPACK/dlasq6.f0000644002504400250440000001521413543334727017176 0ustar00dewhurstdewhurst00000000000000*> \brief \b DLASQ6 computes one dqd transform in ping-pong form. Used by sbdsqr and sstegr. * * =========== DOCUMENTATION =========== * * Online html documentation available at * http://www.netlib.org/lapack/explore-html/ * *> \htmlonly *> Download DLASQ6 + dependencies *> *> [TGZ] *> *> [ZIP] *> *> [TXT] *> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, * DNM1, DNM2 ) * * .. Scalar Arguments .. * INTEGER I0, N0, PP * DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 * .. * .. Array Arguments .. * DOUBLE PRECISION Z( * ) * .. * * *> \par Purpose: * ============= *> *> \verbatim *> *> DLASQ6 computes one dqd (shift equal to zero) transform in *> ping-pong form, with protection against underflow and overflow. *> \endverbatim * * Arguments: * ========== * *> \param[in] I0 *> \verbatim *> I0 is INTEGER *> First index. *> \endverbatim *> *> \param[in] N0 *> \verbatim *> N0 is INTEGER *> Last index. *> \endverbatim *> *> \param[in] Z *> \verbatim *> Z is DOUBLE PRECISION array, dimension ( 4*N ) *> Z holds the qd array. EMIN is stored in Z(4*N0) to avoid *> an extra argument. *> \endverbatim *> *> \param[in] PP *> \verbatim *> PP is INTEGER *> PP=0 for ping, PP=1 for pong. *> \endverbatim *> *> \param[out] DMIN *> \verbatim *> DMIN is DOUBLE PRECISION *> Minimum value of d. *> \endverbatim *> *> \param[out] DMIN1 *> \verbatim *> DMIN1 is DOUBLE PRECISION *> Minimum value of d, excluding D( N0 ). *> \endverbatim *> *> \param[out] DMIN2 *> \verbatim *> DMIN2 is DOUBLE PRECISION *> Minimum value of d, excluding D( N0 ) and D( N0-1 ). *> \endverbatim *> *> \param[out] DN *> \verbatim *> DN is DOUBLE PRECISION *> d(N0), the last value of d. *> \endverbatim *> *> \param[out] DNM1 *> \verbatim *> DNM1 is DOUBLE PRECISION *> d(N0-1). *> \endverbatim *> *> \param[out] DNM2 *> \verbatim *> DNM2 is DOUBLE PRECISION *> d(N0-2). *> \endverbatim * * Authors: * ======== * *> \author Univ. of Tennessee *> \author Univ. of California Berkeley *> \author Univ. of Colorado Denver *> \author NAG Ltd. * *> \date December 2016 * *> \ingroup auxOTHERcomputational * * ===================================================================== SUBROUTINE DLASQ6( I0, N0, Z, PP, DMIN, DMIN1, DMIN2, DN, $ DNM1, DNM2 ) * * -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- * December 2016 * * .. Scalar Arguments .. INTEGER I0, N0, PP DOUBLE PRECISION DMIN, DMIN1, DMIN2, DN, DNM1, DNM2 * .. * .. Array Arguments .. DOUBLE PRECISION Z( * ) * .. * * ===================================================================== * * .. Parameter .. DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D0 ) * .. * .. Local Scalars .. INTEGER J4, J4P2 DOUBLE PRECISION D, EMIN, SAFMIN, TEMP * .. * .. External Function .. DOUBLE PRECISION DLAMCH EXTERNAL DLAMCH * .. * .. Intrinsic Functions .. INTRINSIC MIN * .. * .. Executable Statements .. * IF( ( N0-I0-1 ).LE.0 ) $ RETURN * SAFMIN = DLAMCH( 'Safe minimum' ) J4 = 4*I0 + PP - 3 EMIN = Z( J4+4 ) D = Z( J4 ) DMIN = D * IF( PP.EQ.0 ) THEN DO 10 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-2 ) = D + Z( J4-1 ) IF( Z( J4-2 ).EQ.ZERO ) THEN Z( J4 ) = ZERO D = Z( J4+1 ) DMIN = D EMIN = ZERO ELSE IF( SAFMIN*Z( J4+1 ).LT.Z( J4-2 ) .AND. $ SAFMIN*Z( J4-2 ).LT.Z( J4+1 ) ) THEN TEMP = Z( J4+1 ) / Z( J4-2 ) Z( J4 ) = Z( J4-1 )*TEMP D = D*TEMP ELSE Z( J4 ) = Z( J4+1 )*( Z( J4-1 ) / Z( J4-2 ) ) D = Z( J4+1 )*( D / Z( J4-2 ) ) END IF DMIN = MIN( DMIN, D ) EMIN = MIN( EMIN, Z( J4 ) ) 10 CONTINUE ELSE DO 20 J4 = 4*I0, 4*( N0-3 ), 4 Z( J4-3 ) = D + Z( J4 ) IF( Z( J4-3 ).EQ.ZERO ) THEN Z( J4-1 ) = ZERO D = Z( J4+2 ) DMIN = D EMIN = ZERO ELSE IF( SAFMIN*Z( J4+2 ).LT.Z( J4-3 ) .AND. $ SAFMIN*Z( J4-3 ).LT.Z( J4+2 ) ) THEN TEMP = Z( J4+2 ) / Z( J4-3 ) Z( J4-1 ) = Z( J4 )*TEMP D = D*TEMP ELSE Z( J4-1 ) = Z( J4+2 )*( Z( J4 ) / Z( J4-3 ) ) D = Z( J4+2 )*( D / Z( J4-3 ) ) END IF DMIN = MIN( DMIN, D ) EMIN = MIN( EMIN, Z( J4-1 ) ) 20 CONTINUE END IF * * Unroll last two steps. * DNM2 = D DMIN2 = DMIN J4 = 4*( N0-2 ) - PP J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM2 + Z( J4P2 ) IF( Z( J4-2 ).EQ.ZERO ) THEN Z( J4 ) = ZERO DNM1 = Z( J4P2+2 ) DMIN = DNM1 EMIN = ZERO ELSE IF( SAFMIN*Z( J4P2+2 ).LT.Z( J4-2 ) .AND. $ SAFMIN*Z( J4-2 ).LT.Z( J4P2+2 ) ) THEN TEMP = Z( J4P2+2 ) / Z( J4-2 ) Z( J4 ) = Z( J4P2 )*TEMP DNM1 = DNM2*TEMP ELSE Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DNM1 = Z( J4P2+2 )*( DNM2 / Z( J4-2 ) ) END IF DMIN = MIN( DMIN, DNM1 ) * DMIN1 = DMIN J4 = J4 + 4 J4P2 = J4 + 2*PP - 1 Z( J4-2 ) = DNM1 + Z( J4P2 ) IF( Z( J4-2 ).EQ.ZERO ) THEN Z( J4 ) = ZERO DN = Z( J4P2+2 ) DMIN = DN EMIN = ZERO ELSE IF( SAFMIN*Z( J4P2+2 ).LT.Z( J4-2 ) .AND. $ SAFMIN*Z( J4-2 ).LT.Z( J4P2+2 ) ) THEN TEMP = Z( J4P2+2 ) / Z( J4-2 ) Z( J4 ) = Z( J4P2 )*TEMP DN = DNM1*TEMP ELSE Z( J4 ) = Z( J4P2+2 )*( Z( J4P2 ) / Z( J4-2 ) ) DN = Z( J4P2+2 )*( DNM1 / Z( J4-2 ) ) END IF DMIN = MIN( DMIN, DN ) * Z( J4+2 ) = DN Z( 4*N0-PP ) = EMIN RETURN * * End of DLASQ6 * END elk-6.3.2/src/PaxHeaders.21352/fftlib0000644000000000000000000000013213543334727014021 xustar0030 mtime=1569569239.539645196 30 atime=1569569239.535645198 30 ctime=1569569239.539645196 elk-6.3.2/src/fftlib/0000755002504400250440000000000013543334727016145 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/src/fftlib/PaxHeaders.21352/Makefile0000644000000000000000000000013213543334727015536 xustar0030 mtime=1569569239.537645197 30 atime=1569569239.536645198 30 ctime=1569569239.537645197 elk-6.3.2/src/fftlib/Makefile0000644002504400250440000000107513543334727017610 0ustar00dewhurstdewhurst00000000000000 AR = ar include ../../make.inc #------------------------------------------------------------------------------- # Suffix Rules #------------------------------------------------------------------------------- .SUFFIXES: .o .f90 .f90.o: $(F90) $(F90_OPTS) -c $< #------------------------------------------------------------------------------- # File dependencies #------------------------------------------------------------------------------- SRC = cfftnd.f90 OBJ = $(SRC:.f90=.o) fftlib: $(OBJ) $(AR) -rc fftlib.a $(OBJ) clean: rm -f *.o *.mod *~ *.a ifc* *.gcno elk-6.3.2/src/fftlib/PaxHeaders.21352/cfftnd.f900000644000000000000000000000013213543334727015662 xustar0030 mtime=1569569239.546645191 30 atime=1569569239.540645195 30 ctime=1569569239.546645191 elk-6.3.2/src/fftlib/cfftnd.f900000644002504400250440000016417413543334727017746 0ustar00dewhurstdewhurst00000000000000module fftpack5 integer, parameter :: prec=kind(1.d0) end module subroutine cfftnd(nd,n,sgn,c) ! ! DESCRIPTION: ! In-place fast Fourier transform for complex arrays in $n_d$ dimensions. The ! forward transform is scaled by one over the size of the array. Uses a ! modified version of the FFTPACK5 library. ! ! INPUT/OUTPUT PARAMETERS: ! nd : number of dimensions (in,integer) ! n : mesh size (in,integer(nd)) ! sgn : FFT direction, -1: forward, 1: backward (in,integer) ! c : array to transform (inout,complex(n(1)*n(2)*...*n(nd))) ! ! Copyright (C) 2005 J. K. Dewhurst ! Distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! use fftpack5 implicit none ! arguments integer, intent(in) :: nd integer, intent(in) :: n(nd) integer, intent(in) :: sgn complex(prec), intent(inout) :: c(*) ! local variables integer i,j,k,l,p,q,iw,iw1,ni integer lensav,lenwrk ! allocatable arrays real(prec), allocatable :: wsave(:) real(prec), allocatable :: work(:) if (nd.le.0) then write(*,*) write(*,'("Error(cfftnd): invalid number of dimensions : ",I8)') nd write(*,*) stop end if p=1 lensav=1 do i=1,nd if (n(i).le.0) then write(*,*) write(*,'("Error(cfftnd): invalid n : ",I8)') n(i) write(*,'(" for dimension ",I4)') i write(*,*) stop end if p=p*n(i) lensav=max(lensav,2*n(i)+int(log(real(n(i),prec)))+4) end do lenwrk=2*p allocate(wsave(lensav)) allocate(work(lenwrk)) if (sgn.gt.0) then q=1 do i=1,nd ni=n(i) if (ni.gt.1) then iw=ni+ni+1 iw1=iw+1 p=p/ni call cfftmi(ni,wsave,lensav) j=1 k=q*ni do l=1,p call cmfm1b(q,1,ni,q,c(j),work,wsave,wsave(iw),wsave(iw1)) j=j+k end do q=k end if end do else q=1 do i=1,nd ni=n(i) if (ni.gt.1) then iw=ni+ni+1 iw1=iw+1 p=p/ni call cfftmi(ni,wsave,lensav) j=1 k=q*ni do l=1,p call cmfm1f(q,1,ni,q,c(j),work,wsave,wsave(iw),wsave(iw1)) j=j+k end do q=k end if end do end if deallocate(wsave,work) return end subroutine subroutine cfftmi ( n, wsave, lensav ) !******************************************************************************* ! !! CFFTMI: initialization for CFFTMB and CFFTMF. ! ! Discussion: ! ! CFFTMI initializes array WSAVE for use in its companion routines ! CFFTMB and CFFTMF. CFFTMI must be called before the first call ! to CFFTMB or CFFTMF, and after whenever the value of integer N changes. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Modified: ! ! 24 March 2005 ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! ! Input, integer N, the length of each sequence to be transformed. ! The transform is most efficient when N is a product of small primes. ! ! Input, integer LENSAV, the dimension of the WSAVE array. LENSAV must be ! at least 2*N + INT(LOG(REAL(N))) + 4. ! ! Output, real WSAVE(LENSAV), containing the prime factors of N and ! also containing certain trigonometric values which will be used in ! routines CFFTMB or CFFTMF. ! ! use fftpack5 implicit none integer lensav integer iw1 integer n real(prec) wsave(lensav) if ( n == 1 ) then return end if iw1 = n + n + 1 call mcfti1 ( n, wsave, wsave(iw1), wsave(iw1+1) ) return end subroutine mcfti1 ( n, wa, fnf, fac ) !******************************************************************************* ! !! MCFTI1 is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none real(prec) fac(*) real(prec) fnf integer ido integer ip integer iw integer k1 integer l1 integer l2 integer n integer nf real(prec) wa(*) ! ! Get the factorization of N. ! call factor ( n, nf, fac ) fnf = real ( nf, prec ) iw = 1 l1 = 1 ! ! Set up the trigonometric tables. ! do k1 = 1, nf ip = int ( fac(k1) ) l2 = l1 * ip ido = n / l2 call tables ( ido, ip, wa(iw) ) iw = iw + ( ip - 1 ) * ( ido + ido ) l1 = l2 end do return end subroutine factor ( n, nf, fac ) !******************************************************************************* ! !! FACTOR determines the factors of an integer. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Modified: ! ! 28 March 2005 ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! ! Input, integer N, the number for which factorization and other information ! is needed. ! ! Output, integer NF, the number of factors. ! ! Output, real FAC(*), a list of factors of N. ! use fftpack5 implicit none real(prec) fac(*) integer j integer n integer nf integer nl integer nq integer nr integer ntry nl = n nf = 0 j = 0 do while ( 1 < nl ) j = j + 1 if ( j == 1 ) then ntry = 4 else if ( j == 2 ) then ntry = 2 else if ( j == 3 ) then ntry = 3 else if ( j == 4 ) then ntry = 5 else ntry = ntry + 2 end if do nq = nl / ntry nr = nl - ntry * nq if ( nr /= 0 ) then exit end if nf = nf + 1 fac(nf) = ntry nl = nq end do end do return end subroutine tables ( ido, ip, wa ) !******************************************************************************* ! !! TABLES computes trigonometric tables needed by the FFT routines. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer ip real(prec) arg1 real(prec) arg2 real(prec) arg3 real(prec) arg4 real(prec) argz integer i integer j real(prec) tpi real(prec) wa(ido,ip-1,2) tpi = 8.0E+00_prec * atan ( 1.0E+00_prec ) argz = tpi / real ( ip, prec ) arg1 = tpi / real ( ido * ip, prec ) do j = 2, ip arg2 = real ( j - 1, prec ) * arg1 do i = 1, ido arg3 = real ( i - 1, prec ) * arg2 wa(i,j-1,1) = cos ( arg3 ) wa(i,j-1,2) = sin ( arg3 ) end do if ( 5 < ip ) then arg4 = real ( j - 1, prec ) * argz wa(1,j-1,1) = cos ( arg4 ) wa(1,j-1,2) = sin ( arg4 ) end if end do return end subroutine cmfm1b ( lot, jump, n, inc, c, ch, wa, fnf, fac ) !******************************************************************************* ! !! CMFM1B is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none complex(prec) c(*) real(prec) ch(*) real(prec) fac(*) real(prec) fnf integer ido integer inc integer ip integer iw integer jump integer k1 integer l1 integer l2 integer lid integer lot integer n integer na integer nbr integer nf real(prec) wa(*) nf = int ( fnf ) na = 0 l1 = 1 iw = 1 do k1 = 1, nf ip = int ( fac(k1) ) l2 = ip * l1 ido = n / l2 lid = l1 * ido nbr = 1 + na + 2 * min ( ip - 2, 4 ) if ( nbr == 1 ) then call cmf2kb ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 2 ) then call cmf2kb ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 3 ) then call cmf3kb ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 4 ) then call cmf3kb ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 5 ) then call cmf4kb ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 6 ) then call cmf4kb ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 7 ) then call cmf5kb ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 8 ) then call cmf5kb ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 9 ) then call cmfgkb ( lot, ido, ip, l1, lid, na, c, c, jump, inc, ch, ch, & 1, lot, wa(iw) ) else if ( nbr == 10 ) then call cmfgkb ( lot, ido, ip, l1, lid, na, ch, ch, 1, lot, c, c, & jump, inc, wa(iw) ) end if l1 = l2 iw = iw + ( ip - 1 ) * ( ido + ido ) if ( ip <= 5 ) then na = 1 - na end if end do return end subroutine cmfm1f ( lot, jump, n, inc, c, ch, wa, fnf, fac ) !******************************************************************************* ! !! CMFM1F is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none complex(prec) c(*) real(prec) ch(*) real(prec) fac(*) real(prec) fnf integer ido integer inc integer ip integer iw integer jump integer k1 integer l1 integer l2 integer lid integer lot integer n integer na integer nbr integer nf real(prec) wa(*) nf = int ( fnf ) na = 0 l1 = 1 iw = 1 do k1 = 1, nf ip = int ( fac(k1) ) l2 = ip * l1 ido = n / l2 lid = l1 * ido nbr = 1 + na + 2 * min ( ip - 2, 4 ) if ( nbr == 1 ) then call cmf2kf ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 2 ) then call cmf2kf ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 3 ) then call cmf3kf ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 4 ) then call cmf3kf ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 5 ) then call cmf4kf ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 6 ) then call cmf4kf ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 7 ) then call cmf5kf ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) ) else if ( nbr == 8 ) then call cmf5kf ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) ) else if ( nbr == 9 ) then call cmfgkf ( lot, ido, ip, l1, lid, na, c, c, jump, inc, ch, ch, & 1, lot, wa(iw) ) else if ( nbr == 10 ) then call cmfgkf ( lot, ido, ip, l1, lid, na, ch, ch, 1, lot, c, c, & jump, inc, wa(iw) ) end if l1 = l2 iw = iw + ( ip - 1 ) * ( ido + ido ) if ( ip <= 5 ) then na = 1 - na end if end do return end subroutine cmf2kb ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF2KB is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,2) real(prec) ch(2,in2,l1,2,ido) real(prec) chold1 real(prec) chold2 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) ti2 real(prec) tr2 real(prec) wa(ido,1,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido .or. na == 1 ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch(1,m2,k,1,1) = cc(1,m1,k,1,1) + cc(1,m1,k,1,2) ch(1,m2,k,2,1) = cc(1,m1,k,1,1) - cc(1,m1,k,1,2) ch(2,m2,k,1,1) = cc(2,m1,k,1,1) + cc(2,m1,k,1,2) ch(2,m2,k,2,1) = cc(2,m1,k,1,1) - cc(2,m1,k,1,2) end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch(1,m2,k,1,i) = cc(1,m1,k,i,1)+cc(1,m1,k,i,2) tr2 = cc(1,m1,k,i,1)-cc(1,m1,k,i,2) ch(2,m2,k,1,i) = cc(2,m1,k,i,1)+cc(2,m1,k,i,2) ti2 = cc(2,m1,k,i,1)-cc(2,m1,k,i,2) ch(2,m2,k,2,i) = wa(i,1,1)*ti2+wa(i,1,2)*tr2 ch(1,m2,k,2,i) = wa(i,1,1)*tr2-wa(i,1,2)*ti2 end do end do end do else do k = 1, l1 do m1 = 1, m1d, im1 chold1 = cc(1,m1,k,1,1) + cc(1,m1,k,1,2) cc(1,m1,k,1,2) = cc(1,m1,k,1,1) - cc(1,m1,k,1,2) cc(1,m1,k,1,1) = chold1 chold2 = cc(2,m1,k,1,1) + cc(2,m1,k,1,2) cc(2,m1,k,1,2) = cc(2,m1,k,1,1) - cc(2,m1,k,1,2) cc(2,m1,k,1,1) = chold2 end do end do end if return end subroutine cmf2kf ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF2KF is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,2) real(prec) ch(2,in2,l1,2,ido) real(prec) chold1 real(prec) chold2 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) sn real(prec) ti2 real(prec) tr2 real(prec) wa(ido,1,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch(1,m2,k,1,1) = cc(1,m1,k,1,1)+cc(1,m1,k,1,2) ch(1,m2,k,2,1) = cc(1,m1,k,1,1)-cc(1,m1,k,1,2) ch(2,m2,k,1,1) = cc(2,m1,k,1,1)+cc(2,m1,k,1,2) ch(2,m2,k,2,1) = cc(2,m1,k,1,1)-cc(2,m1,k,1,2) end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch(1,m2,k,1,i) = cc(1,m1,k,i,1)+cc(1,m1,k,i,2) tr2 = cc(1,m1,k,i,1)-cc(1,m1,k,i,2) ch(2,m2,k,1,i) = cc(2,m1,k,i,1)+cc(2,m1,k,i,2) ti2 = cc(2,m1,k,i,1)-cc(2,m1,k,i,2) ch(2,m2,k,2,i) = wa(i,1,1)*ti2-wa(i,1,2)*tr2 ch(1,m2,k,2,i) = wa(i,1,1)*tr2+wa(i,1,2)*ti2 end do end do end do else if ( na == 1 ) then sn = 1.0E+00_prec / real ( 2 * l1, prec ) do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch(1,m2,k,1,1) = sn * ( cc(1,m1,k,1,1) + cc(1,m1,k,1,2) ) ch(1,m2,k,2,1) = sn * ( cc(1,m1,k,1,1) - cc(1,m1,k,1,2) ) ch(2,m2,k,1,1) = sn * ( cc(2,m1,k,1,1) + cc(2,m1,k,1,2) ) ch(2,m2,k,2,1) = sn * ( cc(2,m1,k,1,1) - cc(2,m1,k,1,2) ) end do end do else sn = 1.0E+00_prec / real ( 2 * l1, prec ) do k = 1, l1 do m1 = 1, m1d, im1 chold1 = sn * ( cc(1,m1,k,1,1) + cc(1,m1,k,1,2) ) cc(1,m1,k,1,2) = sn * ( cc(1,m1,k,1,1) - cc(1,m1,k,1,2) ) cc(1,m1,k,1,1) = chold1 chold2 = sn * ( cc(2,m1,k,1,1) + cc(2,m1,k,1,2) ) cc(2,m1,k,1,2) = sn * ( cc(2,m1,k,1,1) - cc(2,m1,k,1,2) ) cc(2,m1,k,1,1) = chold2 end do end do end if return end subroutine cmf3kb ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF3KB is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,3) real(prec) ch(2,in2,l1,3,ido) real(prec) ci2 real(prec) ci3 real(prec) cr2 real(prec) cr3 real(prec) di2 real(prec) di3 real(prec) dr2 real(prec) dr3 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec), parameter :: taui = 0.866025403784439E+00_prec real(prec), parameter :: taur = -0.5E+00_prec real(prec) ti2 real(prec) tr2 real(prec) wa(ido,2,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido .or. na == 1 ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,3) cr2 = cc(1,m1,k,1,1)+taur*tr2 ch(1,m2,k,1,1) = cc(1,m1,k,1,1)+tr2 ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,3) ci2 = cc(2,m1,k,1,1)+taur*ti2 ch(2,m2,k,1,1) = cc(2,m1,k,1,1)+ti2 cr3 = taui * (cc(1,m1,k,1,2)-cc(1,m1,k,1,3)) ci3 = taui * (cc(2,m1,k,1,2)-cc(2,m1,k,1,3)) ch(1,m2,k,2,1) = cr2-ci3 ch(1,m2,k,3,1) = cr2+ci3 ch(2,m2,k,2,1) = ci2+cr3 ch(2,m2,k,3,1) = ci2-cr3 end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 tr2 = cc(1,m1,k,i,2)+cc(1,m1,k,i,3) cr2 = cc(1,m1,k,i,1)+taur*tr2 ch(1,m2,k,1,i) = cc(1,m1,k,i,1)+tr2 ti2 = cc(2,m1,k,i,2)+cc(2,m1,k,i,3) ci2 = cc(2,m1,k,i,1)+taur*ti2 ch(2,m2,k,1,i) = cc(2,m1,k,i,1)+ti2 cr3 = taui*(cc(1,m1,k,i,2)-cc(1,m1,k,i,3)) ci3 = taui*(cc(2,m1,k,i,2)-cc(2,m1,k,i,3)) dr2 = cr2-ci3 dr3 = cr2+ci3 di2 = ci2+cr3 di3 = ci2-cr3 ch(2,m2,k,2,i) = wa(i,1,1)*di2+wa(i,1,2)*dr2 ch(1,m2,k,2,i) = wa(i,1,1)*dr2-wa(i,1,2)*di2 ch(2,m2,k,3,i) = wa(i,2,1)*di3+wa(i,2,2)*dr3 ch(1,m2,k,3,i) = wa(i,2,1)*dr3-wa(i,2,2)*di3 end do end do end do else do k = 1, l1 do m1 = 1, m1d, im1 tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,3) cr2 = cc(1,m1,k,1,1)+taur*tr2 cc(1,m1,k,1,1) = cc(1,m1,k,1,1)+tr2 ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,3) ci2 = cc(2,m1,k,1,1)+taur*ti2 cc(2,m1,k,1,1) = cc(2,m1,k,1,1)+ti2 cr3 = taui*(cc(1,m1,k,1,2)-cc(1,m1,k,1,3)) ci3 = taui*(cc(2,m1,k,1,2)-cc(2,m1,k,1,3)) cc(1,m1,k,1,2) = cr2-ci3 cc(1,m1,k,1,3) = cr2+ci3 cc(2,m1,k,1,2) = ci2+cr3 cc(2,m1,k,1,3) = ci2-cr3 end do end do end if return end subroutine cmf3kf ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF3KF is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,3) real(prec) ch(2,in2,l1,3,ido) real(prec) ci2 real(prec) ci3 real(prec) cr2 real(prec) cr3 real(prec) di2 real(prec) di3 real(prec) dr2 real(prec) dr3 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) sn real(prec), parameter :: taui = -0.866025403784439E+00_prec real(prec), parameter :: taur = -0.5E+00_prec real(prec) ti2 real(prec) tr2 real(prec) wa(ido,2,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,3) cr2 = cc(1,m1,k,1,1)+taur*tr2 ch(1,m2,k,1,1) = cc(1,m1,k,1,1)+tr2 ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,3) ci2 = cc(2,m1,k,1,1)+taur*ti2 ch(2,m2,k,1,1) = cc(2,m1,k,1,1)+ti2 cr3 = taui*(cc(1,m1,k,1,2)-cc(1,m1,k,1,3)) ci3 = taui*(cc(2,m1,k,1,2)-cc(2,m1,k,1,3)) ch(1,m2,k,2,1) = cr2-ci3 ch(1,m2,k,3,1) = cr2+ci3 ch(2,m2,k,2,1) = ci2+cr3 ch(2,m2,k,3,1) = ci2-cr3 end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 tr2 = cc(1,m1,k,i,2)+cc(1,m1,k,i,3) cr2 = cc(1,m1,k,i,1)+taur*tr2 ch(1,m2,k,1,i) = cc(1,m1,k,i,1)+tr2 ti2 = cc(2,m1,k,i,2)+cc(2,m1,k,i,3) ci2 = cc(2,m1,k,i,1)+taur*ti2 ch(2,m2,k,1,i) = cc(2,m1,k,i,1)+ti2 cr3 = taui*(cc(1,m1,k,i,2)-cc(1,m1,k,i,3)) ci3 = taui*(cc(2,m1,k,i,2)-cc(2,m1,k,i,3)) dr2 = cr2-ci3 dr3 = cr2+ci3 di2 = ci2+cr3 di3 = ci2-cr3 ch(2,m2,k,2,i) = wa(i,1,1)*di2-wa(i,1,2)*dr2 ch(1,m2,k,2,i) = wa(i,1,1)*dr2+wa(i,1,2)*di2 ch(2,m2,k,3,i) = wa(i,2,1)*di3-wa(i,2,2)*dr3 ch(1,m2,k,3,i) = wa(i,2,1)*dr3+wa(i,2,2)*di3 end do end do end do else if ( na == 1 ) then sn = 1.0E+00_prec / real ( 3 * l1, prec ) do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,3) cr2 = cc(1,m1,k,1,1)+taur*tr2 ch(1,m2,k,1,1) = sn*(cc(1,m1,k,1,1)+tr2) ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,3) ci2 = cc(2,m1,k,1,1)+taur*ti2 ch(2,m2,k,1,1) = sn*(cc(2,m1,k,1,1)+ti2) cr3 = taui*(cc(1,m1,k,1,2)-cc(1,m1,k,1,3)) ci3 = taui*(cc(2,m1,k,1,2)-cc(2,m1,k,1,3)) ch(1,m2,k,2,1) = sn*(cr2-ci3) ch(1,m2,k,3,1) = sn*(cr2+ci3) ch(2,m2,k,2,1) = sn*(ci2+cr3) ch(2,m2,k,3,1) = sn*(ci2-cr3) end do end do else sn = 1.0E+00_prec / real ( 3 * l1, prec ) do k = 1, l1 do m1 = 1, m1d, im1 tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,3) cr2 = cc(1,m1,k,1,1)+taur*tr2 cc(1,m1,k,1,1) = sn*(cc(1,m1,k,1,1)+tr2) ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,3) ci2 = cc(2,m1,k,1,1)+taur*ti2 cc(2,m1,k,1,1) = sn*(cc(2,m1,k,1,1)+ti2) cr3 = taui*(cc(1,m1,k,1,2)-cc(1,m1,k,1,3)) ci3 = taui*(cc(2,m1,k,1,2)-cc(2,m1,k,1,3)) cc(1,m1,k,1,2) = sn*(cr2-ci3) cc(1,m1,k,1,3) = sn*(cr2+ci3) cc(2,m1,k,1,2) = sn*(ci2+cr3) cc(2,m1,k,1,3) = sn*(ci2-cr3) end do end do end if return end subroutine cmf4kb ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF4KB is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,4) real(prec) ch(2,in2,l1,4,ido) real(prec) ci2 real(prec) ci3 real(prec) ci4 real(prec) cr2 real(prec) cr3 real(prec) cr4 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) ti1 real(prec) ti2 real(prec) ti3 real(prec) ti4 real(prec) tr1 real(prec) tr2 real(prec) tr3 real(prec) tr4 real(prec) wa(ido,3,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido .or. na == 1 ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti1 = cc(2,m1,k,1,1)-cc(2,m1,k,1,3) ti2 = cc(2,m1,k,1,1)+cc(2,m1,k,1,3) tr4 = cc(2,m1,k,1,4)-cc(2,m1,k,1,2) ti3 = cc(2,m1,k,1,2)+cc(2,m1,k,1,4) tr1 = cc(1,m1,k,1,1)-cc(1,m1,k,1,3) tr2 = cc(1,m1,k,1,1)+cc(1,m1,k,1,3) ti4 = cc(1,m1,k,1,2)-cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,2)+cc(1,m1,k,1,4) ch(1,m2,k,1,1) = tr2+tr3 ch(1,m2,k,3,1) = tr2-tr3 ch(2,m2,k,1,1) = ti2+ti3 ch(2,m2,k,3,1) = ti2-ti3 ch(1,m2,k,2,1) = tr1+tr4 ch(1,m2,k,4,1) = tr1-tr4 ch(2,m2,k,2,1) = ti1+ti4 ch(2,m2,k,4,1) = ti1-ti4 end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti1 = cc(2,m1,k,i,1)-cc(2,m1,k,i,3) ti2 = cc(2,m1,k,i,1)+cc(2,m1,k,i,3) ti3 = cc(2,m1,k,i,2)+cc(2,m1,k,i,4) tr4 = cc(2,m1,k,i,4)-cc(2,m1,k,i,2) tr1 = cc(1,m1,k,i,1)-cc(1,m1,k,i,3) tr2 = cc(1,m1,k,i,1)+cc(1,m1,k,i,3) ti4 = cc(1,m1,k,i,2)-cc(1,m1,k,i,4) tr3 = cc(1,m1,k,i,2)+cc(1,m1,k,i,4) ch(1,m2,k,1,i) = tr2+tr3 cr3 = tr2-tr3 ch(2,m2,k,1,i) = ti2+ti3 ci3 = ti2-ti3 cr2 = tr1+tr4 cr4 = tr1-tr4 ci2 = ti1+ti4 ci4 = ti1-ti4 ch(1,m2,k,2,i) = wa(i,1,1)*cr2-wa(i,1,2)*ci2 ch(2,m2,k,2,i) = wa(i,1,1)*ci2+wa(i,1,2)*cr2 ch(1,m2,k,3,i) = wa(i,2,1)*cr3-wa(i,2,2)*ci3 ch(2,m2,k,3,i) = wa(i,2,1)*ci3+wa(i,2,2)*cr3 ch(1,m2,k,4,i) = wa(i,3,1)*cr4-wa(i,3,2)*ci4 ch(2,m2,k,4,i) = wa(i,3,1)*ci4+wa(i,3,2)*cr4 end do end do end do else do k = 1, l1 do m1 = 1, m1d, im1 ti1 = cc(2,m1,k,1,1)-cc(2,m1,k,1,3) ti2 = cc(2,m1,k,1,1)+cc(2,m1,k,1,3) tr4 = cc(2,m1,k,1,4)-cc(2,m1,k,1,2) ti3 = cc(2,m1,k,1,2)+cc(2,m1,k,1,4) tr1 = cc(1,m1,k,1,1)-cc(1,m1,k,1,3) tr2 = cc(1,m1,k,1,1)+cc(1,m1,k,1,3) ti4 = cc(1,m1,k,1,2)-cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,2)+cc(1,m1,k,1,4) cc(1,m1,k,1,1) = tr2+tr3 cc(1,m1,k,1,3) = tr2-tr3 cc(2,m1,k,1,1) = ti2+ti3 cc(2,m1,k,1,3) = ti2-ti3 cc(1,m1,k,1,2) = tr1+tr4 cc(1,m1,k,1,4) = tr1-tr4 cc(2,m1,k,1,2) = ti1+ti4 cc(2,m1,k,1,4) = ti1-ti4 end do end do end if return end subroutine cmf4kf ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF4KF is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,4) real(prec) ch(2,in2,l1,4,ido) real(prec) ci2 real(prec) ci3 real(prec) ci4 real(prec) cr2 real(prec) cr3 real(prec) cr4 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) sn real(prec) ti1 real(prec) ti2 real(prec) ti3 real(prec) ti4 real(prec) tr1 real(prec) tr2 real(prec) tr3 real(prec) tr4 real(prec) wa(ido,3,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti1 = cc(2,m1,k,1,1)-cc(2,m1,k,1,3) ti2 = cc(2,m1,k,1,1)+cc(2,m1,k,1,3) tr4 = cc(2,m1,k,1,2)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,2)+cc(2,m1,k,1,4) tr1 = cc(1,m1,k,1,1)-cc(1,m1,k,1,3) tr2 = cc(1,m1,k,1,1)+cc(1,m1,k,1,3) ti4 = cc(1,m1,k,1,4)-cc(1,m1,k,1,2) tr3 = cc(1,m1,k,1,2)+cc(1,m1,k,1,4) ch(1,m2,k,1,1) = tr2+tr3 ch(1,m2,k,3,1) = tr2-tr3 ch(2,m2,k,1,1) = ti2+ti3 ch(2,m2,k,3,1) = ti2-ti3 ch(1,m2,k,2,1) = tr1+tr4 ch(1,m2,k,4,1) = tr1-tr4 ch(2,m2,k,2,1) = ti1+ti4 ch(2,m2,k,4,1) = ti1-ti4 end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti1 = cc(2,m1,k,i,1)-cc(2,m1,k,i,3) ti2 = cc(2,m1,k,i,1)+cc(2,m1,k,i,3) ti3 = cc(2,m1,k,i,2)+cc(2,m1,k,i,4) tr4 = cc(2,m1,k,i,2)-cc(2,m1,k,i,4) tr1 = cc(1,m1,k,i,1)-cc(1,m1,k,i,3) tr2 = cc(1,m1,k,i,1)+cc(1,m1,k,i,3) ti4 = cc(1,m1,k,i,4)-cc(1,m1,k,i,2) tr3 = cc(1,m1,k,i,2)+cc(1,m1,k,i,4) ch(1,m2,k,1,i) = tr2+tr3 cr3 = tr2-tr3 ch(2,m2,k,1,i) = ti2+ti3 ci3 = ti2-ti3 cr2 = tr1+tr4 cr4 = tr1-tr4 ci2 = ti1+ti4 ci4 = ti1-ti4 ch(1,m2,k,2,i) = wa(i,1,1)*cr2+wa(i,1,2)*ci2 ch(2,m2,k,2,i) = wa(i,1,1)*ci2-wa(i,1,2)*cr2 ch(1,m2,k,3,i) = wa(i,2,1)*cr3+wa(i,2,2)*ci3 ch(2,m2,k,3,i) = wa(i,2,1)*ci3-wa(i,2,2)*cr3 ch(1,m2,k,4,i) = wa(i,3,1)*cr4+wa(i,3,2)*ci4 ch(2,m2,k,4,i) = wa(i,3,1)*ci4-wa(i,3,2)*cr4 end do end do end do else if ( na == 1 ) then sn = 1.0E+00_prec / real ( 4 * l1, prec ) do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti1 = cc(2,m1,k,1,1)-cc(2,m1,k,1,3) ti2 = cc(2,m1,k,1,1)+cc(2,m1,k,1,3) tr4 = cc(2,m1,k,1,2)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,2)+cc(2,m1,k,1,4) tr1 = cc(1,m1,k,1,1)-cc(1,m1,k,1,3) tr2 = cc(1,m1,k,1,1)+cc(1,m1,k,1,3) ti4 = cc(1,m1,k,1,4)-cc(1,m1,k,1,2) tr3 = cc(1,m1,k,1,2)+cc(1,m1,k,1,4) ch(1,m2,k,1,1) = sn*(tr2+tr3) ch(1,m2,k,3,1) = sn*(tr2-tr3) ch(2,m2,k,1,1) = sn*(ti2+ti3) ch(2,m2,k,3,1) = sn*(ti2-ti3) ch(1,m2,k,2,1) = sn*(tr1+tr4) ch(1,m2,k,4,1) = sn*(tr1-tr4) ch(2,m2,k,2,1) = sn*(ti1+ti4) ch(2,m2,k,4,1) = sn*(ti1-ti4) end do end do else sn = 1.0E+00_prec / real ( 4 * l1, prec ) do k = 1, l1 do m1 = 1, m1d, im1 ti1 = cc(2,m1,k,1,1)-cc(2,m1,k,1,3) ti2 = cc(2,m1,k,1,1)+cc(2,m1,k,1,3) tr4 = cc(2,m1,k,1,2)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,2)+cc(2,m1,k,1,4) tr1 = cc(1,m1,k,1,1)-cc(1,m1,k,1,3) tr2 = cc(1,m1,k,1,1)+cc(1,m1,k,1,3) ti4 = cc(1,m1,k,1,4)-cc(1,m1,k,1,2) tr3 = cc(1,m1,k,1,2)+cc(1,m1,k,1,4) cc(1,m1,k,1,1) = sn*(tr2+tr3) cc(1,m1,k,1,3) = sn*(tr2-tr3) cc(2,m1,k,1,1) = sn*(ti2+ti3) cc(2,m1,k,1,3) = sn*(ti2-ti3) cc(1,m1,k,1,2) = sn*(tr1+tr4) cc(1,m1,k,1,4) = sn*(tr1-tr4) cc(2,m1,k,1,2) = sn*(ti1+ti4) cc(2,m1,k,1,4) = sn*(ti1-ti4) end do end do end if return end subroutine cmf5kb ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF5KB is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,5) real(prec) ch(2,in2,l1,5,ido) real(prec) chold1 real(prec) chold2 real(prec) ci2 real(prec) ci3 real(prec) ci4 real(prec) ci5 real(prec) cr2 real(prec) cr3 real(prec) cr4 real(prec) cr5 real(prec) di2 real(prec) di3 real(prec) di4 real(prec) di5 real(prec) dr2 real(prec) dr3 real(prec) dr4 real(prec) dr5 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) ti2 real(prec) ti3 real(prec) ti4 real(prec) ti5 real(prec), parameter :: ti11 = 0.9510565162951536E+00_prec real(prec), parameter :: ti12 = 0.5877852522924731E+00_prec real(prec) tr2 real(prec) tr3 real(prec) tr4 real(prec) tr5 real(prec), parameter :: tr11 = 0.3090169943749474E+00_prec real(prec), parameter :: tr12 = -0.8090169943749474E+00_prec real(prec) wa(ido,4,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido .or. na == 1 ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti5 = cc(2,m1,k,1,2)-cc(2,m1,k,1,5) ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,5) ti4 = cc(2,m1,k,1,3)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,3)+cc(2,m1,k,1,4) tr5 = cc(1,m1,k,1,2)-cc(1,m1,k,1,5) tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,5) tr4 = cc(1,m1,k,1,3)-cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,3)+cc(1,m1,k,1,4) ch(1,m2,k,1,1) = cc(1,m1,k,1,1)+tr2+tr3 ch(2,m2,k,1,1) = cc(2,m1,k,1,1)+ti2+ti3 cr2 = cc(1,m1,k,1,1)+tr11*tr2+tr12*tr3 ci2 = cc(2,m1,k,1,1)+tr11*ti2+tr12*ti3 cr3 = cc(1,m1,k,1,1)+tr12*tr2+tr11*tr3 ci3 = cc(2,m1,k,1,1)+tr12*ti2+tr11*ti3 cr5 = ti11*tr5+ti12*tr4 ci5 = ti11*ti5+ti12*ti4 cr4 = ti12*tr5-ti11*tr4 ci4 = ti12*ti5-ti11*ti4 ch(1,m2,k,2,1) = cr2-ci5 ch(1,m2,k,5,1) = cr2+ci5 ch(2,m2,k,2,1) = ci2+cr5 ch(2,m2,k,3,1) = ci3+cr4 ch(1,m2,k,3,1) = cr3-ci4 ch(1,m2,k,4,1) = cr3+ci4 ch(2,m2,k,4,1) = ci3-cr4 ch(2,m2,k,5,1) = ci2-cr5 end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti5 = cc(2,m1,k,i,2)-cc(2,m1,k,i,5) ti2 = cc(2,m1,k,i,2)+cc(2,m1,k,i,5) ti4 = cc(2,m1,k,i,3)-cc(2,m1,k,i,4) ti3 = cc(2,m1,k,i,3)+cc(2,m1,k,i,4) tr5 = cc(1,m1,k,i,2)-cc(1,m1,k,i,5) tr2 = cc(1,m1,k,i,2)+cc(1,m1,k,i,5) tr4 = cc(1,m1,k,i,3)-cc(1,m1,k,i,4) tr3 = cc(1,m1,k,i,3)+cc(1,m1,k,i,4) ch(1,m2,k,1,i) = cc(1,m1,k,i,1)+tr2+tr3 ch(2,m2,k,1,i) = cc(2,m1,k,i,1)+ti2+ti3 cr2 = cc(1,m1,k,i,1)+tr11*tr2+tr12*tr3 ci2 = cc(2,m1,k,i,1)+tr11*ti2+tr12*ti3 cr3 = cc(1,m1,k,i,1)+tr12*tr2+tr11*tr3 ci3 = cc(2,m1,k,i,1)+tr12*ti2+tr11*ti3 cr5 = ti11*tr5+ti12*tr4 ci5 = ti11*ti5+ti12*ti4 cr4 = ti12*tr5-ti11*tr4 ci4 = ti12*ti5-ti11*ti4 dr3 = cr3-ci4 dr4 = cr3+ci4 di3 = ci3+cr4 di4 = ci3-cr4 dr5 = cr2+ci5 dr2 = cr2-ci5 di5 = ci2-cr5 di2 = ci2+cr5 ch(1,m2,k,2,i) = wa(i,1,1) * dr2 - wa(i,1,2) * di2 ch(2,m2,k,2,i) = wa(i,1,1) * di2 + wa(i,1,2) * dr2 ch(1,m2,k,3,i) = wa(i,2,1) * dr3 - wa(i,2,2) * di3 ch(2,m2,k,3,i) = wa(i,2,1) * di3 + wa(i,2,2) * dr3 ch(1,m2,k,4,i) = wa(i,3,1) * dr4 - wa(i,3,2) * di4 ch(2,m2,k,4,i) = wa(i,3,1) * di4 + wa(i,3,2) * dr4 ch(1,m2,k,5,i) = wa(i,4,1) * dr5 - wa(i,4,2) * di5 ch(2,m2,k,5,i) = wa(i,4,1) * di5 + wa(i,4,2) * dr5 end do end do end do else do k = 1, l1 do m1 = 1, m1d, im1 ti5 = cc(2,m1,k,1,2)-cc(2,m1,k,1,5) ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,5) ti4 = cc(2,m1,k,1,3)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,3)+cc(2,m1,k,1,4) tr5 = cc(1,m1,k,1,2)-cc(1,m1,k,1,5) tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,5) tr4 = cc(1,m1,k,1,3)-cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,3)+cc(1,m1,k,1,4) chold1 = cc(1,m1,k,1,1) + tr2 + tr3 chold2 = cc(2,m1,k,1,1) + ti2 + ti3 cr2 = cc(1,m1,k,1,1) + tr11 * tr2 + tr12 * tr3 ci2 = cc(2,m1,k,1,1) + tr11 * ti2 + tr12 * ti3 cr3 = cc(1,m1,k,1,1) + tr12 * tr2 + tr11 * tr3 ci3 = cc(2,m1,k,1,1) + tr12 * ti2 + tr11 * ti3 cc(1,m1,k,1,1) = chold1 cc(2,m1,k,1,1) = chold2 cr5 = ti11*tr5 + ti12*tr4 ci5 = ti11*ti5 + ti12*ti4 cr4 = ti12*tr5 - ti11*tr4 ci4 = ti12*ti5 - ti11*ti4 cc(1,m1,k,1,2) = cr2-ci5 cc(1,m1,k,1,5) = cr2+ci5 cc(2,m1,k,1,2) = ci2+cr5 cc(2,m1,k,1,3) = ci3+cr4 cc(1,m1,k,1,3) = cr3-ci4 cc(1,m1,k,1,4) = cr3+ci4 cc(2,m1,k,1,4) = ci3-cr4 cc(2,m1,k,1,5) = ci2-cr5 end do end do end if return end subroutine cmf5kf ( lot, ido, l1, na, cc, im1, in1, ch, im2, in2, wa ) !******************************************************************************* ! !! CMF5KF is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer l1 real(prec) cc(2,in1,l1,ido,5) real(prec) ch(2,in2,l1,5,ido) real(prec) chold1 real(prec) chold2 real(prec) ci2 real(prec) ci3 real(prec) ci4 real(prec) ci5 real(prec) cr2 real(prec) cr3 real(prec) cr4 real(prec) cr5 real(prec) di2 real(prec) di3 real(prec) di4 real(prec) di5 real(prec) dr2 real(prec) dr3 real(prec) dr4 real(prec) dr5 integer i integer im1 integer im2 integer k integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) sn real(prec) ti2 real(prec) ti3 real(prec) ti4 real(prec) ti5 real(prec), parameter :: ti11 = -0.9510565162951536E+00_prec real(prec), parameter :: ti12 = -0.5877852522924731E+00_prec real(prec) tr2 real(prec) tr3 real(prec) tr4 real(prec) tr5 real(prec), parameter :: tr11 = 0.3090169943749474E+00_prec real(prec), parameter :: tr12 = -0.8090169943749474E+00_prec real(prec) wa(ido,4,2) m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 if ( 1 < ido ) then do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti5 = cc(2,m1,k,1,2)-cc(2,m1,k,1,5) ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,5) ti4 = cc(2,m1,k,1,3)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,3)+cc(2,m1,k,1,4) tr5 = cc(1,m1,k,1,2)-cc(1,m1,k,1,5) tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,5) tr4 = cc(1,m1,k,1,3)-cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,3)+cc(1,m1,k,1,4) ch(1,m2,k,1,1) = cc(1,m1,k,1,1)+tr2+tr3 ch(2,m2,k,1,1) = cc(2,m1,k,1,1)+ti2+ti3 cr2 = cc(1,m1,k,1,1)+tr11*tr2+tr12*tr3 ci2 = cc(2,m1,k,1,1)+tr11*ti2+tr12*ti3 cr3 = cc(1,m1,k,1,1)+tr12*tr2+tr11*tr3 ci3 = cc(2,m1,k,1,1)+tr12*ti2+tr11*ti3 cr5 = ti11*tr5+ti12*tr4 ci5 = ti11*ti5+ti12*ti4 cr4 = ti12*tr5-ti11*tr4 ci4 = ti12*ti5-ti11*ti4 ch(1,m2,k,2,1) = cr2-ci5 ch(1,m2,k,5,1) = cr2+ci5 ch(2,m2,k,2,1) = ci2+cr5 ch(2,m2,k,3,1) = ci3+cr4 ch(1,m2,k,3,1) = cr3-ci4 ch(1,m2,k,4,1) = cr3+ci4 ch(2,m2,k,4,1) = ci3-cr4 ch(2,m2,k,5,1) = ci2-cr5 end do end do do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti5 = cc(2,m1,k,i,2)-cc(2,m1,k,i,5) ti2 = cc(2,m1,k,i,2)+cc(2,m1,k,i,5) ti4 = cc(2,m1,k,i,3)-cc(2,m1,k,i,4) ti3 = cc(2,m1,k,i,3)+cc(2,m1,k,i,4) tr5 = cc(1,m1,k,i,2)-cc(1,m1,k,i,5) tr2 = cc(1,m1,k,i,2)+cc(1,m1,k,i,5) tr4 = cc(1,m1,k,i,3)-cc(1,m1,k,i,4) tr3 = cc(1,m1,k,i,3)+cc(1,m1,k,i,4) ch(1,m2,k,1,i) = cc(1,m1,k,i,1)+tr2+tr3 ch(2,m2,k,1,i) = cc(2,m1,k,i,1)+ti2+ti3 cr2 = cc(1,m1,k,i,1)+tr11*tr2+tr12*tr3 ci2 = cc(2,m1,k,i,1)+tr11*ti2+tr12*ti3 cr3 = cc(1,m1,k,i,1)+tr12*tr2+tr11*tr3 ci3 = cc(2,m1,k,i,1)+tr12*ti2+tr11*ti3 cr5 = ti11*tr5+ti12*tr4 ci5 = ti11*ti5+ti12*ti4 cr4 = ti12*tr5-ti11*tr4 ci4 = ti12*ti5-ti11*ti4 dr3 = cr3-ci4 dr4 = cr3+ci4 di3 = ci3+cr4 di4 = ci3-cr4 dr5 = cr2+ci5 dr2 = cr2-ci5 di5 = ci2-cr5 di2 = ci2+cr5 ch(1,m2,k,2,i) = wa(i,1,1)*dr2+wa(i,1,2)*di2 ch(2,m2,k,2,i) = wa(i,1,1)*di2-wa(i,1,2)*dr2 ch(1,m2,k,3,i) = wa(i,2,1)*dr3+wa(i,2,2)*di3 ch(2,m2,k,3,i) = wa(i,2,1)*di3-wa(i,2,2)*dr3 ch(1,m2,k,4,i) = wa(i,3,1)*dr4+wa(i,3,2)*di4 ch(2,m2,k,4,i) = wa(i,3,1)*di4-wa(i,3,2)*dr4 ch(1,m2,k,5,i) = wa(i,4,1)*dr5+wa(i,4,2)*di5 ch(2,m2,k,5,i) = wa(i,4,1)*di5-wa(i,4,2)*dr5 end do end do end do else if ( na == 1 ) then sn = 1.0E+00_prec / real ( 5 * l1, prec ) do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ti5 = cc(2,m1,k,1,2)-cc(2,m1,k,1,5) ti2 = cc(2,m1,k,1,2)+cc(2,m1,k,1,5) ti4 = cc(2,m1,k,1,3)-cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,3)+cc(2,m1,k,1,4) tr5 = cc(1,m1,k,1,2)-cc(1,m1,k,1,5) tr2 = cc(1,m1,k,1,2)+cc(1,m1,k,1,5) tr4 = cc(1,m1,k,1,3)-cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,3)+cc(1,m1,k,1,4) ch(1,m2,k,1,1) = sn*(cc(1,m1,k,1,1)+tr2+tr3) ch(2,m2,k,1,1) = sn*(cc(2,m1,k,1,1)+ti2+ti3) cr2 = cc(1,m1,k,1,1)+tr11*tr2+tr12*tr3 ci2 = cc(2,m1,k,1,1)+tr11*ti2+tr12*ti3 cr3 = cc(1,m1,k,1,1)+tr12*tr2+tr11*tr3 ci3 = cc(2,m1,k,1,1)+tr12*ti2+tr11*ti3 cr5 = ti11*tr5+ti12*tr4 ci5 = ti11*ti5+ti12*ti4 cr4 = ti12*tr5-ti11*tr4 ci4 = ti12*ti5-ti11*ti4 ch(1,m2,k,2,1) = sn*(cr2-ci5) ch(1,m2,k,5,1) = sn*(cr2+ci5) ch(2,m2,k,2,1) = sn*(ci2+cr5) ch(2,m2,k,3,1) = sn*(ci3+cr4) ch(1,m2,k,3,1) = sn*(cr3-ci4) ch(1,m2,k,4,1) = sn*(cr3+ci4) ch(2,m2,k,4,1) = sn*(ci3-cr4) ch(2,m2,k,5,1) = sn*(ci2-cr5) end do end do else sn = 1.0E+00_prec / real ( 5 * l1, prec ) do k = 1, l1 do m1 = 1, m1d, im1 ti5 = cc(2,m1,k,1,2) - cc(2,m1,k,1,5) ti2 = cc(2,m1,k,1,2) + cc(2,m1,k,1,5) ti4 = cc(2,m1,k,1,3) - cc(2,m1,k,1,4) ti3 = cc(2,m1,k,1,3) + cc(2,m1,k,1,4) tr5 = cc(1,m1,k,1,2) - cc(1,m1,k,1,5) tr2 = cc(1,m1,k,1,2) + cc(1,m1,k,1,5) tr4 = cc(1,m1,k,1,3) - cc(1,m1,k,1,4) tr3 = cc(1,m1,k,1,3) + cc(1,m1,k,1,4) chold1 = sn * ( cc(1,m1,k,1,1) + tr2 + tr3 ) chold2 = sn * ( cc(2,m1,k,1,1) + ti2 + ti3 ) cr2 = cc(1,m1,k,1,1) + tr11 * tr2 + tr12 * tr3 ci2 = cc(2,m1,k,1,1) + tr11 * ti2 + tr12 * ti3 cr3 = cc(1,m1,k,1,1) + tr12 * tr2 + tr11 * tr3 ci3 = cc(2,m1,k,1,1) + tr12 * ti2 + tr11 * ti3 cc(1,m1,k,1,1) = chold1 cc(2,m1,k,1,1) = chold2 cr5 = ti11 * tr5 + ti12 * tr4 ci5 = ti11 * ti5 + ti12 * ti4 cr4 = ti12 * tr5 - ti11 * tr4 ci4 = ti12 * ti5 - ti11 * ti4 cc(1,m1,k,1,2) = sn * ( cr2 - ci5 ) cc(1,m1,k,1,5) = sn * ( cr2 + ci5 ) cc(2,m1,k,1,2) = sn * ( ci2 + cr5 ) cc(2,m1,k,1,3) = sn * ( ci3 + cr4 ) cc(1,m1,k,1,3) = sn * ( cr3 - ci4 ) cc(1,m1,k,1,4) = sn * ( cr3 + ci4 ) cc(2,m1,k,1,4) = sn * ( ci3 - cr4 ) cc(2,m1,k,1,5) = sn * ( ci2 - cr5 ) end do end do end if return end subroutine cmfgkb ( lot, ido, ip, l1, lid, na, cc, cc1, im1, in1, & ch, ch1, im2, in2, wa ) !******************************************************************************* ! !! CMFGKB is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer ip integer l1 integer lid real(prec) cc(2,in1,l1,ip,ido) real(prec) cc1(2,in1,lid,ip) real(prec) ch(2,in2,l1,ido,ip) real(prec) ch1(2,in2,lid,ip) real(prec) chold1 real(prec) chold2 integer i integer idlj integer im1 integer im2 integer ipp2 integer ipph integer j integer jc integer k integer ki integer l integer lc integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) wa(ido,ip-1,2) real(prec) wai real(prec) war m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 ipp2 = ip + 2 ipph = ( ip + 1 ) / 2 do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,1) = cc1(1,m1,ki,1) ch1(2,m2,ki,1) = cc1(2,m1,ki,1) end do end do do j = 2, ipph jc = ipp2 - j do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,j) = cc1(1,m1,ki,j) + cc1(1,m1,ki,jc) ch1(1,m2,ki,jc) = cc1(1,m1,ki,j) - cc1(1,m1,ki,jc) ch1(2,m2,ki,j) = cc1(2,m1,ki,j) + cc1(2,m1,ki,jc) ch1(2,m2,ki,jc) = cc1(2,m1,ki,j) - cc1(2,m1,ki,jc) end do end do end do do j = 2, ipph do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,1) = cc1(1,m1,ki,1) + ch1(1,m2,ki,j) cc1(2,m1,ki,1) = cc1(2,m1,ki,1) + ch1(2,m2,ki,j) end do end do end do do l = 2, ipph lc = ipp2 - l do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,l) = ch1(1,m2,ki,1) + wa(1,l-1,1) * ch1(1,m2,ki,2) cc1(1,m1,ki,lc) = wa(1,l-1,2) * ch1(1,m2,ki,ip) cc1(2,m1,ki,l) = ch1(2,m2,ki,1) + wa(1,l-1,1) * ch1(2,m2,ki,2) cc1(2,m1,ki,lc) = wa(1,l-1,2) * ch1(2,m2,ki,ip) end do end do do j = 3, ipph jc = ipp2 - j idlj = mod ( ( l - 1 ) * ( j - 1 ), ip ) war = wa(1,idlj,1) wai = wa(1,idlj,2) do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,l) = cc1(1,m1,ki,l) + war * ch1(1,m2,ki,j) cc1(1,m1,ki,lc) = cc1(1,m1,ki,lc) + wai * ch1(1,m2,ki,jc) cc1(2,m1,ki,l) = cc1(2,m1,ki,l) + war * ch1(2,m2,ki,j) cc1(2,m1,ki,lc) = cc1(2,m1,ki,lc) + wai * ch1(2,m2,ki,jc) end do end do end do end do if( 1 < ido .or. na == 1 ) then do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,1) = cc1(1,m1,ki,1) ch1(2,m2,ki,1) = cc1(2,m1,ki,1) end do end do do j = 2, ipph jc = ipp2 - j do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,j) = cc1(1,m1,ki,j) - cc1(2,m1,ki,jc) ch1(1,m2,ki,jc) = cc1(1,m1,ki,j) + cc1(2,m1,ki,jc) ch1(2,m2,ki,jc) = cc1(2,m1,ki,j) - cc1(1,m1,ki,jc) ch1(2,m2,ki,j) = cc1(2,m1,ki,j) + cc1(1,m1,ki,jc) end do end do end do if ( ido == 1 ) then return end if do i = 1, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc(1,m1,k,1,i) = ch(1,m2,k,i,1) cc(2,m1,k,1,i) = ch(2,m2,k,i,1) end do end do end do do j = 2, ip do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc(1,m1,k,j,1) = ch(1,m2,k,1,j) cc(2,m1,k,j,1) = ch(2,m2,k,1,j) end do end do end do do j = 2, ip do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc(1,m1,k,j,i) = wa(i,j-1,1) * ch(1,m2,k,i,j) & - wa(i,j-1,2) * ch(2,m2,k,i,j) cc(2,m1,k,j,i) = wa(i,j-1,1) * ch(2,m2,k,i,j) & + wa(i,j-1,2) * ch(1,m2,k,i,j) end do end do end do end do else do j = 2, ipph jc = ipp2 - j do ki = 1, lid do m1 = 1, m1d, im1 chold1 = cc1(1,m1,ki,j) - cc1(2,m1,ki,jc) chold2 = cc1(1,m1,ki,j) + cc1(2,m1,ki,jc) cc1(1,m1,ki,j) = chold1 cc1(2,m1,ki,jc) = cc1(2,m1,ki,j) - cc1(1,m1,ki,jc) cc1(2,m1,ki,j) = cc1(2,m1,ki,j) + cc1(1,m1,ki,jc) cc1(1,m1,ki,jc) = chold2 end do end do end do end if return end subroutine cmfgkf ( lot, ido, ip, l1, lid, na, cc, cc1, im1, in1, & ch, ch1, im2, in2, wa ) !******************************************************************************* ! !! CMFGKF is an FFTPACK5 auxiliary routine. ! ! License: ! ! Licensed under the GNU General Public License (GPL). ! Copyright (C) 1995-2004, Scientific Computing Division, ! University Corporation for Atmospheric Research ! ! Author: ! ! Paul Swarztrauber ! Richard Valent ! ! Reference: ! ! Paul Swarztrauber, ! Vectorizing the Fast Fourier Transforms, ! in Parallel Computations, ! edited by G. Rodrigue, ! Academic Press, 1982. ! ! Paul Swarztrauber, ! Fast Fourier Transform Algorithms for Vector Computers, ! Parallel Computing, pages 45-63, 1984. ! ! Parameters: ! use fftpack5 implicit none integer ido integer in1 integer in2 integer ip integer l1 integer lid real(prec) cc(2,in1,l1,ip,ido) real(prec) cc1(2,in1,lid,ip) real(prec) ch(2,in2,l1,ido,ip) real(prec) ch1(2,in2,lid,ip) real(prec) chold1 real(prec) chold2 integer i integer idlj integer im1 integer im2 integer ipp2 integer ipph integer j integer jc integer k integer ki integer l integer lc integer lot integer m1 integer m1d integer m2 integer m2s integer na real(prec) sn real(prec) wa(ido,ip-1,2) real(prec) wai real(prec) war m1d = ( lot - 1 ) * im1 + 1 m2s = 1 - im2 ipp2 = ip + 2 ipph = ( ip + 1 ) / 2 do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,1) = cc1(1,m1,ki,1) ch1(2,m2,ki,1) = cc1(2,m1,ki,1) end do end do do j = 2, ipph jc = ipp2 - j do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,j) = cc1(1,m1,ki,j) + cc1(1,m1,ki,jc) ch1(1,m2,ki,jc) = cc1(1,m1,ki,j) - cc1(1,m1,ki,jc) ch1(2,m2,ki,j) = cc1(2,m1,ki,j) + cc1(2,m1,ki,jc) ch1(2,m2,ki,jc) = cc1(2,m1,ki,j) - cc1(2,m1,ki,jc) end do end do end do do j = 2, ipph do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,1) = cc1(1,m1,ki,1) + ch1(1,m2,ki,j) cc1(2,m1,ki,1) = cc1(2,m1,ki,1) + ch1(2,m2,ki,j) end do end do end do do l = 2, ipph lc = ipp2 - l do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,l) = ch1(1,m2,ki,1) + wa(1,l-1,1) * ch1(1,m2,ki,2) cc1(1,m1,ki,lc) = - wa(1,l-1,2) * ch1(1,m2,ki,ip) cc1(2,m1,ki,l) = ch1(2,m2,ki,1) + wa(1,l-1,1) * ch1(2,m2,ki,2) cc1(2,m1,ki,lc) = - wa(1,l-1,2) * ch1(2,m2,ki,ip) end do end do do j = 3, ipph jc = ipp2 - j idlj = mod ( ( l - 1 ) * ( j - 1 ), ip ) war = wa(1,idlj,1) wai = -wa(1,idlj,2) do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,l) = cc1(1,m1,ki,l) + war * ch1(1,m2,ki,j) cc1(1,m1,ki,lc) = cc1(1,m1,ki,lc) + wai * ch1(1,m2,ki,jc) cc1(2,m1,ki,l) = cc1(2,m1,ki,l) + war * ch1(2,m2,ki,j) cc1(2,m1,ki,lc) = cc1(2,m1,ki,lc) + wai * ch1(2,m2,ki,jc) end do end do end do end do if ( 1 < ido ) then do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,1) = cc1(1,m1,ki,1) ch1(2,m2,ki,1) = cc1(2,m1,ki,1) end do end do do j = 2, ipph jc = ipp2 - j do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,j) = cc1(1,m1,ki,j) - cc1(2,m1,ki,jc) ch1(2,m2,ki,j) = cc1(2,m1,ki,j) + cc1(1,m1,ki,jc) ch1(1,m2,ki,jc) = cc1(1,m1,ki,j) + cc1(2,m1,ki,jc) ch1(2,m2,ki,jc) = cc1(2,m1,ki,j) - cc1(1,m1,ki,jc) end do end do end do do i = 1, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc(1,m1,k,1,i) = ch(1,m2,k,i,1) cc(2,m1,k,1,i) = ch(2,m2,k,i,1) end do end do end do do j = 2, ip do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc(1,m1,k,j,1) = ch(1,m2,k,1,j) cc(2,m1,k,j,1) = ch(2,m2,k,1,j) end do end do end do do j = 2, ip do i = 2, ido do k = 1, l1 m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc(1,m1,k,j,i) = wa(i,j-1,1) * ch(1,m2,k,i,j) & + wa(i,j-1,2) * ch(2,m2,k,i,j) cc(2,m1,k,j,i) = wa(i,j-1,1) * ch(2,m2,k,i,j) & - wa(i,j-1,2) * ch(1,m2,k,i,j) end do end do end do end do else if ( na == 1 ) then sn = 1.0E+00_prec / real ( ip * l1, prec ) do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,1) = sn * cc1(1,m1,ki,1) ch1(2,m2,ki,1) = sn * cc1(2,m1,ki,1) end do end do do j = 2, ipph jc = ipp2 - j do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 ch1(1,m2,ki,j) = sn * ( cc1(1,m1,ki,j) - cc1(2,m1,ki,jc) ) ch1(2,m2,ki,j) = sn * ( cc1(2,m1,ki,j) + cc1(1,m1,ki,jc) ) ch1(1,m2,ki,jc) = sn * ( cc1(1,m1,ki,j) + cc1(2,m1,ki,jc) ) ch1(2,m2,ki,jc) = sn * ( cc1(2,m1,ki,j) - cc1(1,m1,ki,jc) ) end do end do end do else sn = 1.0E+00_prec / real ( ip * l1, prec ) do ki = 1, lid m2 = m2s do m1 = 1, m1d, im1 m2 = m2 + im2 cc1(1,m1,ki,1) = sn * cc1(1,m1,ki,1) cc1(2,m1,ki,1) = sn * cc1(2,m1,ki,1) end do end do do j = 2, ipph jc = ipp2 - j do ki = 1, lid do m1 = 1, m1d, im1 chold1 = sn * ( cc1(1,m1,ki,j) - cc1(2,m1,ki,jc) ) chold2 = sn * ( cc1(1,m1,ki,j) + cc1(2,m1,ki,jc) ) cc1(1,m1,ki,j) = chold1 cc1(2,m1,ki,jc) = sn * ( cc1(2,m1,ki,j) - cc1(1,m1,ki,jc) ) cc1(2,m1,ki,j) = sn * ( cc1(2,m1,ki,j) + cc1(1,m1,ki,jc) ) cc1(1,m1,ki,jc) = chold2 end do end do end do end if return end elk-6.3.2/src/PaxHeaders.21352/eos0000644000000000000000000000013213543334727013341 xustar0030 mtime=1569569239.613645149 30 atime=1569569239.556645185 30 ctime=1569569239.613645149 elk-6.3.2/src/eos/0000755002504400250440000000000013543334727015465 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/src/eos/PaxHeaders.21352/Makefile0000644000000000000000000000013213543334727015056 xustar0030 mtime=1569569239.558645184 30 atime=1569569239.557645184 30 ctime=1569569239.558645184 elk-6.3.2/src/eos/Makefile0000644002504400250440000000134613543334727017131 0ustar00dewhurstdewhurst00000000000000 include ../../make.inc #------------------------------------------------------------------------------- # Suffix rules #------------------------------------------------------------------------------- .SUFFIXES: .o .f90 .f90.o: $(F90) $(F90_OPTS) -c $< #------------------------------------------------------------------------------- # Source files #------------------------------------------------------------------------------- SRC = modmain.f90 eos.f90 eveos.f90 pveos.f90 readinput.f90 getedata.f90 \ fitdata.f90 output.f90 minf_nm.f90 fmin_nm.f90 OBJ = $(SRC:.f90=.o) EXE = eos eos: $(OBJ) $(F90) $(F90_OPTS) -o $(EXE) $(OBJ) clean: rm -f *.o *.mod *~ fort.* ifc* *.gcno *.OUT gmon.out $(EXE) spaces: ../rmspaces $(SRC) elk-6.3.2/src/eos/PaxHeaders.21352/README0000644000000000000000000000013213543334727014276 xustar0030 mtime=1569569239.569645177 30 atime=1569569239.561645182 30 ctime=1569569239.569645177 elk-6.3.2/src/eos/README0000644002504400250440000000254413543334727016352 0ustar00dewhurstdewhurst00000000000000 +---------------------------+ | EOS Version 1.4.0 | +---------------------------+ Equation of state (EOS) program for fitting energy-volume data. The following variables are set in the file eos.in: cname : name of crystal up to 256 characters natoms : number of atoms in unit cell etype : equation of state type (see below) vplt1, vplt2, nvplt : volume interval over which to plot energy, pressure etc. as well as the number of points in the plot nevpt : number of energy-volume points to be inputted vpt(i) ept(i) : energy-volume points (atomic units) Note that the input units are atomic - Bohr and Hartree (NOT Rydbergs). The equations of state currently implemented are: 1. Universal EOS (Vinet P et al., J. Phys.: Condens. Matter 1, p1941 (1989)) 2. Murnaghan EOS (Murnaghan F D, Am. J. Math. 49, p235 (1937)) 3. Birch-Murnaghan 3rd-order EOS (Birch F, Phys. Rev. 71, p809 (1947)) 4. Birch-Murnaghan 4th-order EOS 5. Natural strain 3rd-order EOS (Poirier J-P and Tarantola A, Phys. Earth Planet Int. 109, p1 (1998)) 6. Natural strain 4th-order EOS 7. Cubic polynomial in (V-V0) -------------------------------------------------------------------------------- J. K. Dewhurst August 2005 elk-6.3.2/src/eos/PaxHeaders.21352/eos.f900000644000000000000000000000013213543334727014524 xustar0030 mtime=1569569239.573645174 30 atime=1569569239.572645175 30 ctime=1569569239.573645174 elk-6.3.2/src/eos/eos.f900000644002504400250440000000051713543334727016576 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. program eos use modmain implicit none call readinput call getedata(etype,nparam,ename,pname) call fitdata call output stop end program elk-6.3.2/src/eos/PaxHeaders.21352/eos.in0000644000000000000000000000013213543334727014534 xustar0030 mtime=1569569239.581645169 30 atime=1569569239.576645172 30 ctime=1569569239.581645169 elk-6.3.2/src/eos/eos.in0000644002504400250440000000063513543334727016607 0ustar00dewhurstdewhurst00000000000000 "Silicon" : cname 2 : natoms 1 : etype 140.0 450.0 1000 : vplt1, vplt2, nvplt 8 : nevpt 165.8207473 -578.0660968 196.8383062 -578.1728409 231.5010189 -578.2305598 270.0113940 -578.2548962 312.5719400 -578.2566194 359.3851654 -578.2453281 410.6535788 -578.2253154 466.5796888 -578.2028836 elk-6.3.2/src/eos/PaxHeaders.21352/eveos.f900000644000000000000000000000013213543334727015057 xustar0030 mtime=1569569239.585645167 30 atime=1569569239.584645167 30 ctime=1569569239.585645167 elk-6.3.2/src/eos/eveos.f900000644002504400250440000000455613543334727017140 0ustar00dewhurstdewhurst00000000000000real(8) function eveos(etype,param,v) implicit none ! arguments integer, intent(in) :: etype real(8), intent(in) :: param(*) real(8), intent(in) :: v ! local variables real(8) v0,e0,b0,b0p,b0pp real(8) t1,t2,t3,t4,t5,t6,t7 eveos=0.d0 select case(etype) case(1) ! Universal equation of state v0=param(1) e0=param(2) b0=param(3) b0p=param(4) if (v0.lt.1.d-5) v0=1.d-5 if (abs(b0p-1.d0).lt.1.d-5) b0p=b0p+1.d-5 t1=b0*v0 t2=b0p-1.d0 t3=(v/v0)**(1.d0/3.d0) t4=exp(-3.d0/2.d0*t2*(-1.d0+t3)) t5=t2**2 t6=1.d0/t5 eveos=-2.d0*t1*t4*(3.d0*t3*b0p-3.d0*t3+5.d0-3.d0*b0p)*t6+4.d0*t1*t6+e0 case(2) ! Murnaghan equation of state v0=param(1) e0=param(2) b0=param(3) b0p=param(4) if (v0.lt.1.d-5) v0=1.d-5 if (abs(b0p).lt.1.d-5) b0p=1.d-5 if (abs(b0p-1.d0).lt.1.d-5) b0p=b0p+1.d-5 t1=(v0/v)**b0p t2=1.d0/(b0p-1.d0) eveos=b0*(b0p-1.d0+t1)/b0p*t2*v-b0*v0*t2+e0 case(3) ! Birch-Murnaghan third-order equation of state v0=param(1) e0=param(2) b0=param(3) b0p=param(4) if (v0.lt.1.d-5) v0=1.d-5 t1=(v0/v)**(1.d0/3.d0) t2=t1**2 t3=t2-1.d0 eveos=9.d0/8.d0*b0*v0*t3**2*(b0p*t3/2.d0-2.d0*t2+3.d0)+e0 case(4) ! Birch-Murnaghan fourth-order equation of state v0=param(1) e0=param(2) b0=param(3) b0p=param(4) b0pp=param(5) if (v0.lt.1.d-5) v0=1.d-5 t1=(v0/v)**(1.d0/3.d0) t2=t1**2 t3=t2-1.d0 t4=t3**2/4.d0 t5=b0p**2 eveos=3.d0/8.d0*b0*v0*t4*(9.d0*t4*b0*b0pp+9.d0*t4*t5-63.d0*t4*b0p+143.d0*t4 & +6.d0*b0p*t3-24.d0*t2+36.d0)+e0 case(5) ! Natural strain third-order equation of state v0=param(1) e0=param(2) b0=param(3) b0p=param(4) if (v0.lt.1.d-5) v0=1.d-5 t1=b0*v0 t2=log(v0/v) t3=t2**2 t4=t3*t2 eveos=t1*t3/2.d0+t1*t4*b0p/6.d0-t1*t4/3.d0+e0 case(6) ! Natural strain fourth-order equation of state v0=param(1) e0=param(2) b0=param(3) b0p=param(4) b0pp=param(5) if (v0.lt.1.d-5) v0=1.d-5 t1=b0*v0 t2=log(v0/v) t3=t2**2 t4=t3**2 t5=b0**2 t6=b0p**2 t7=t3*t2 eveos=t1*t4/8.d0+t5*v0*t4*b0pp/24.d0-t1*t4*b0p/8.d0+t1*t4*t6/24.d0 & +t1*t7*b0p/6.d0-t1*t7/3.d0+t1*t3/2.d0+e0 case(7) ! cubic polynomial v0=param(1) e0=param(2) b0=param(3) b0p=param(4) if (v0.lt.1.d-5) v0=1.d-5 t1=v0**2 t2=v0-v t3=t2**2 eveos=(1.d0+b0p)*b0/t1*t3*t2/6.d0+b0/v0*t3/2.d0+e0 case default write(*,*) write(*,'("Error(eveos): etype not defined : ",I4)') etype write(*,*) stop end select return end function elk-6.3.2/src/eos/PaxHeaders.21352/fitdata.f900000644000000000000000000000013213543334727015352 xustar0030 mtime=1569569239.588645165 30 atime=1569569239.587645165 30 ctime=1569569239.588645165 elk-6.3.2/src/eos/fitdata.f900000644002504400250440000000173213543334727017424 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine fitdata use modmain implicit none ! local variables integer, parameter :: maxit=1000000 integer i,iter real(8), parameter :: eps=1.d-14 ! automatic arrays real(8) x(nparam,nparam+1) ! initial guess: it is assumed that param(1)=V0, param(2)=E0 and param(3)=B0 x(:,1)=0.d0 x(1,1)=vpt(1) x(2,1)=ept(1) x(3,1)=0.003d0 ! fit V0 and E0 do i=1,nparam x(:,i+1)=x(:,1) end do x(1,2)=x(1,2)+1.d0 x(2,3)=x(2,3)+0.1d0 call minf_nm(nparam,x,maxit,iter,eps) ! fit V0, E0 and B0 do i=1,nparam x(:,i+1)=x(:,1) end do x(1,2)=x(1,2)+1.d0 x(2,3)=x(2,3)+0.1d0 x(3,4)=x(3,4)+0.001d0 call minf_nm(nparam,x,maxit,iter,eps) ! fit everything do i=1,nparam x(:,i+1)=x(:,1) x(i,i+1)=x(i,i+1)+0.1d0 end do call minf_nm(nparam,x,maxit,iter,eps) popt(1:nparam)=x(1:nparam,1) return end subroutine elk-6.3.2/src/eos/PaxHeaders.21352/fmin_nm.f900000644000000000000000000000013213543334727015361 xustar0030 mtime=1569569239.592645162 30 atime=1569569239.591645163 30 ctime=1569569239.592645162 elk-6.3.2/src/eos/fmin_nm.f900000644002504400250440000000074613543334727017437 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function fmin_nm(x) use modmain implicit none ! arguments real(8), intent(in) :: x ! local variables integer i real(8) sum ! external functions real(8) eveos external eveos sum=0.d0 do i=1,nevpt sum=sum+(eveos(etype,x,vpt(i))-ept(i))**2 end do fmin_nm=sum return end function elk-6.3.2/src/eos/PaxHeaders.21352/getedata.f900000644000000000000000000000012713543334727015520 xustar0029 mtime=1569569239.59664516 29 atime=1569569239.59564516 29 ctime=1569569239.59664516 elk-6.3.2/src/eos/getedata.f900000644002504400250440000000325113543334727017564 0ustar00dewhurstdewhurst00000000000000subroutine getedata(etype,nparam,ename,pname) ! get eos name and number of parameters implicit none ! arguments integer, intent(in) :: etype integer, intent(out) :: nparam character(256), intent(out) :: ename(2) character(256), intent(out) :: pname(*) select case(etype) case(1) ename(1)="Universal EOS" ename(2)="Vinet P et al., J. Phys.: Condens. Matter 1, p1941 (1989)" nparam=4 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" case(2) ename(1)="Murnaghan EOS" ename(2)="Murnaghan F D, Am. J. Math. 49, p235 (1937)" nparam=4 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" case(3) ename(1)="Birch-Murnaghan 3rd-order EOS" ename(2)="Birch F, Phys. Rev. 71, p809 (1947)" nparam=4 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" case(4) ename(1)="Birch-Murnaghan 4th-order EOS" ename(2)="Birch F, Phys. Rev. 71, p809 (1947)" nparam=5 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" pname(5)="B0''" case(5) ename(1)="Natural strain 3rd-order EOS" ename(2)="Poirier J-P and Tarantola A, Phys. Earth Planet Int. 109, p1 (1998)" nparam=4 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" case(6) ename(1)="Natural strain 4th-order EOS" ename(2)="Poirier J-P and Tarantola A, Phys. Earth Planet Int. 109, p1 (1998)" nparam=5 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" pname(5)="B0''" case(7) ename(1)="Cubic polynomial in (V-V0)" ename(2)="" nparam=4 pname(1)="V0" pname(2)="E0" pname(3)="B0" pname(4)="B0'" case default write(*,*) write(*,'("Error(getedata): etype not defined : ",I4)') etype write(*,*) stop end select return end subroutine elk-6.3.2/src/eos/PaxHeaders.21352/minf_nm.f900000644000000000000000000000013213543334727015361 xustar0030 mtime=1569569239.599645158 30 atime=1569569239.599645158 30 ctime=1569569239.599645158 elk-6.3.2/src/eos/minf_nm.f900000644002504400250440000000371213543334727017433 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst and D. W. H. Rankin. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine minf_nm(n,x,maxit,iter,eps) implicit none ! arguments integer, intent(in) :: n real(8), intent(inout) :: x(n,n+1) integer, intent(in) :: maxit integer, intent(out) :: iter real(8), intent(in) :: eps ! local variables integer i,j,il,iu ! Nelder-Mead parmeters real(8), parameter :: alpha=1.d0,gamma=2.d0 real(8), parameter :: beta=0.5d0,sigma=0.5d0 real(8) fr,fe,fc,sum,t1 ! automatic arrays real(8) f(n+1),xm(n),xr(n),xe(n),xc(n) ! external functions real(8) fmin_nm external fmin_nm if (n.lt.0) then write(*,*) write(*,'("Error(minf_nm): n <= 0 : ",I8)') n write(*,*) stop end if ! evaluate the function at each vertex do i=1,n+1 f(i)=fmin_nm(x(:,i)) end do iter=0 10 continue iter=iter+1 if (iter.ge.maxit) return ! find the lowest and highest vertex il=1 iu=1 do i=2,n+1 if (f(i).lt.f(il)) il=i if (f(i).gt.f(iu)) iu=i end do ! check for convergence if ((f(iu)-f(il)).lt.eps) return ! compute the mean of the n lowest vertices t1=1.d0/dble(n) do i=1,n sum=0.d0 do j=1,iu-1 sum=sum+x(i,j) end do do j=iu+1,n+1 sum=sum+x(i,j) end do xm(i)=t1*sum end do xr(:)=xm(:)+alpha*(xm(:)-x(:,iu)) fr=fmin_nm(xr) if (f(il).gt.fr) goto 30 if ((f(il).le.fr).and.(fr.lt.f(iu))) then ! reflection x(:,iu)=xr(:) f(iu)=fr goto 10 else goto 40 end if 30 continue xe(:)=xm(:)+gamma*(xr(:)-xm(:)) fe=fmin_nm(xe) if (fr.gt.fe) then ! expansion x(:,iu)=xe(:) f(iu)=fe else ! reflection x(:,iu)=xr(:) f(iu)=fr end if goto 10 40 continue xc(:)=xm(:)+beta*(x(:,iu)-xm(:)) fc=fmin_nm(xc) if (fc.lt.f(iu)) then ! contraction x(:,iu)=xc(:) f(iu)=fc goto 10 end if ! shrinkage do j=1,il-1 x(:,j)=x(:,il)+sigma*(x(:,j)-x(:,il)) f(j)=fmin_nm(x(1,j)) end do do j=il+1,n+1 x(:,j)=x(:,il)+sigma*(x(:,j)-x(:,il)) f(j)=fmin_nm(x(1,j)) end do goto 10 return end subroutine elk-6.3.2/src/eos/PaxHeaders.21352/modmain.f900000644000000000000000000000013213543334727015362 xustar0030 mtime=1569569239.603645155 30 atime=1569569239.602645156 30 ctime=1569569239.603645155 elk-6.3.2/src/eos/modmain.f900000644002504400250440000000276213543334727017440 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modmain ! crystal name character(256) cname ! number of atoms integer natoms ! EOS type integer etype ! number of volume points to plot integer nvplt ! volume plot range real(8) vplt1,vplt2 ! number of energy data points to fit integer nevpt ! volume and energy data point sets real(8), allocatable :: vpt(:) real(8), allocatable :: ept(:) ! maximum number of parameters for an EOS integer, parameter :: maxparam=100 ! number of parameters integer nparam ! EOS name character(256) ename(2) ! optimized parameter set real(8) popt(maxparam) ! parameter names character(256) pname(maxparam) !-----------------------------! ! numerical constants ! !-----------------------------! real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: twopi=6.2831853071795864769d0 ! CODATA 2006 constants ! Bohr in SI units real(8), parameter :: bohr_si=0.52917720859d-10 ! electron mass in SI units real(8), parameter :: emass_si=9.10938215d-31 ! atomic unit of time in SI units real(8), parameter :: autime_si=2.418884326505d-17 ! atomic pressure unit in GPa real(8), parameter :: aupress_gpa=1.d-9*emass_si/(bohr_si*autime_si**2) !---------------------------------! ! miscellaneous variables ! !---------------------------------! ! code version integer version(3) data version /1,4,0/ end module elk-6.3.2/src/eos/PaxHeaders.21352/output.f900000644000000000000000000000013213543334727015276 xustar0030 mtime=1569569239.607645153 30 atime=1569569239.606645153 30 ctime=1569569239.607645153 elk-6.3.2/src/eos/output.f900000644002504400250440000000505613543334727017353 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine output use modmain implicit none ! local variables integer ip,ipt,iplt real(8) v ! external functions real(8) eveos,pveos external eveos,pveos ! output parameters open(60,file='PARAM.OUT') write(60,*) write(60,'(A)') trim(cname) write(60,*) write(60,'(A)') trim(ename(1)) write(60,'(A)') trim(ename(2)) write(60,*) write(60,'("(Default units are atomic: Hartree, Bohr etc.) ")') write(60,*) do ip=1,nparam write(60,'(" ",A,T20,"=",T30,G18.10)') trim(pname(ip)),popt(ip) end do write(60,*) do ip=1,nparam if (trim(pname(ip)).eq."B0") then write(60,'(" B0 (GPa)",T20,"=",T30,G18.10)') popt(ip)*aupress_gpa end if if (trim(pname(ip)).eq."B0''") then write(60,'(A4," (/GPa)",T20,"=",T30,G18.10)') "B0''",popt(ip)/aupress_gpa end if end do write(60,*) close(60) ! output energy vs volume per atom at data points open(60,file='EVPAP.OUT') do ipt=1,nevpt write(60,*) vpt(ipt)/dble(natoms),ept(ipt)/dble(natoms) end do close(60) ! output energy vs volume per atom over volume interval open(60,file='EVPAI.OUT') do iplt=1,nvplt v=(vplt2-vplt1)*dble(iplt)/dble(nvplt)+vplt1 write(60,*) v/dble(natoms),eveos(etype,popt,v)/dble(natoms) end do close(60) ! output pressure vs volume per atom at data points open(60,file='PVPAP.OUT') do ipt=1,nevpt write(60,*) vpt(ipt)/dble(natoms),pveos(etype,popt,vpt(ipt))*aupress_gpa end do close(60) ! output pressure vs volume per atom over volume interval open(60,file='PVPAI.OUT') do iplt=1,nvplt v=(vplt2-vplt1)*dble(iplt)/dble(nvplt)+vplt1 write(60,*) v/dble(natoms),pveos(etype,popt,v)*aupress_gpa end do close(60) ! output enthalpy vs pressure per atom over volume interval open(60,file='HPPAI.OUT') do iplt=1,nvplt v=(vplt2-vplt1)*dble(iplt)/dble(nvplt)+vplt1 write(60,*) pveos(etype,popt,v)*aupress_gpa, & (eveos(etype,popt,v)+pveos(etype,popt,v)*v)/dble(natoms) end do close(60) write(*,*) write(*,'("All units are atomic unless otherwise stated")') write(*,'("EOS parameters written to PARAM.OUT")') write(*,'("Energy-volume per atom at data points written to EVPAP.OUT")') write(*,'("Energy-volume per atom over interval written to EVPAI.OUT")') write(*,'("Pressure(GPa)-volume per atom at data points written to PVPAP.OUT")') write(*,'("Pressure(GPa)-volume per atom over interval written to PVPAI.OUT")') write(*,'("Enthalpy-pressure(GPa) per atom over interval written to HPPAI.OUT")') write(*,*) return end subroutine elk-6.3.2/src/eos/PaxHeaders.21352/pveos.f900000644000000000000000000000013013543334727015070 xustar0029 mtime=1569569239.61164515 30 atime=1569569239.610645151 29 ctime=1569569239.61164515 elk-6.3.2/src/eos/pveos.f900000644002504400250440000000066113543334727017144 0ustar00dewhurstdewhurst00000000000000real(8) function pveos(etype,param,v) ! pressure-volume equation of state function implicit none ! arguments integer, intent(in) :: etype real(8), intent(in) :: param(*) real(8), intent(in) :: v ! local variables real(8) vm,vp,pm,pp,dv ! external functions real(8) eveos external eveos ! use central differences dv=1.d-3 vm=v-dv vp=v+dv pm=eveos(etype,param,vm) pp=eveos(etype,param,vp) pveos=-(pp-pm)/(2.d0*dv) return end function elk-6.3.2/src/eos/PaxHeaders.21352/readinput.f900000644000000000000000000000013213543334727015731 xustar0030 mtime=1569569239.614645148 30 atime=1569569239.614645148 30 ctime=1569569239.614645148 elk-6.3.2/src/eos/readinput.f900000644002504400250440000000144013543334727017777 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readinput use modmain implicit none ! local variables integer ipt open(50,file='eos.in',action='READ',status='OLD',form='FORMATTED') read(50,*) cname read(50,*) natoms if (natoms.le.0) then write(*,*) write(*,'("Error(readinput): natoms <= 0 : ",I8)') natoms write(*,*) stop end if read(50,*) etype read(50,*) vplt1,vplt2,nvplt read(50,*) nevpt if (nevpt.le.0) then write(*,*) write(*,'("Error(readinput): nevpt <= 0 : ",I8)') nevpt write(*,*) stop end if allocate(vpt(nevpt),ept(nevpt)) do ipt=1,nevpt read(50,*) vpt(ipt),ept(ipt) end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/spacegroup0000644000000000000000000000013213543334730014715 xustar0030 mtime=1569569240.052644868 30 atime=1569569239.625645141 30 ctime=1569569240.052644868 elk-6.3.2/src/spacegroup/0000755002504400250440000000000013543334730017041 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/src/spacegroup/PaxHeaders.21352/Makefile0000644000000000000000000000012713543334727016444 xustar0029 mtime=1569569239.62764514 29 atime=1569569239.62664514 29 ctime=1569569239.62764514 elk-6.3.2/src/spacegroup/Makefile0000644002504400250440000000216113543334727020507 0ustar00dewhurstdewhurst00000000000000 include ../../make.inc #------------------------------------------------------------------------------- # Suffix rules #------------------------------------------------------------------------------- .SUFFIXES: .o .f90 .f90.o: $(F90) $(F90_OPTS) -c $< #------------------------------------------------------------------------------- # Source files #------------------------------------------------------------------------------- SRC_modules = modmain.f90 SRC_main = main.f90 SRC_routines = readinput.f90 gencrystal.f90 sgsymb.f90 seitzgen.f90 \ gengroup.f90 seitzeq.f90 seitzmul.f90 writegeom.f90 geomplot.f90 \ findprimcell.f90 r3frac.f90 r3mv.f90 r3cross.f90 r3minv.f90 r3mm.f90 SRC = $(SRC_modules) $(SRC_main) $(SRC_routines) OBJ = $(SRC:.f90=.o) EXE = spacegroup spacegroup: $(OBJ) $(F90) $(F90_OPTS) -o $(EXE) $(OBJ) clean: rm -f *.o *.mod *~ fort.* ifc* *.gcno *.OUT *.xsf *.ascii gmon.out \ *.aux *.dvi *.log *.pdf *.tex *.toc $(EXE) doc: ../protex -s $(SRC_main) $(SRC_modules) $(SRC_routines) > spacegroup.tex pdflatex spacegroup;pdflatex spacegroup;pdflatex spacegroup spaces: ../rmspaces $(SRC) elk-6.3.2/src/spacegroup/PaxHeaders.21352/findprimcell.f900000644000000000000000000000013213543334727017770 xustar0030 mtime=1569569239.631645137 30 atime=1569569239.630645138 30 ctime=1569569239.631645137 elk-6.3.2/src/spacegroup/findprimcell.f900000644002504400250440000000735613543334727022052 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: findprimcell ! !INTERFACE: subroutine findprimcell ! !USES: use modmain ! !DESCRIPTION: ! This routine finds the smallest primitive cell which produces the same ! crystal structure as the conventional cell. This is done by searching ! through all the vectors which connect atomic positions and finding those ! which leave the crystal structure invariant. Of these, the three shortest ! which produce a non-zero unit cell volume are chosen. ! ! !REVISION HISTORY: ! Created April 2007 (JKD) !EOP !BOC implicit none ! local variables integer is,js,ia,ja,ka,na integer i1,i2,i3,i,j,n real(8) v1(3),v2(3),v3(3) real(8) t1,t2 ! allocatable arrays real(8), allocatable :: dp(:) real(8), allocatable :: vp(:,:) do is=1,nspecies do ia=1,natoms(is) ! make sure all atomic coordinates are in [0,1) call r3frac(epslat,atposl(:,ia,is)) ! determine atomic Cartesian coordinates call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do ! find the smallest set of atoms is=1 do js=1,nspecies ! if a species has only one atom the cell must be primitive if (natoms(js).eq.1) return if (natoms(js).lt.natoms(is)) is=js end do n=27*natoms(is) allocate(dp(n),vp(3,n)) ! generate set of possible lattice vectors n=0 do ia=1,natoms(is) v1(:)=atposl(:,ia,is)-atposl(:,1,is) do i1=-1,1 v2(1)=v1(1)+dble(i1) do i2=-1,1 v2(2)=v1(2)+dble(i2) do i3=-1,1 v2(3)=v1(3)+dble(i3) t1=abs(v2(1))+abs(v2(2))+abs(v2(3)) if (t1.lt.epslat) goto 20 ! check if vector v2 leaves conventional cell invariant do js=1,nspecies do ja=1,natoms(js) v3(:)=atposl(:,ja,js)+v2(:) call r3frac(epslat,v3) do ka=1,natoms(js) ! check both positions and magnetic fields are the same t1=sum(abs(atposl(:,ka,js)-v3(:))) t2=sum(abs(bfcmt0(:,ja,js)-bfcmt0(:,ka,js))) if ((t1.lt.epslat).and.(t2.lt.epslat)) goto 10 end do ! atom ja has no equivalent under translation by v2 goto 20 10 continue end do end do ! cell invariant under translation by v2, so add to list n=n+1 call r3mv(avec,v2,vp(:,n)) dp(n)=sqrt(vp(1,n)**2+vp(2,n)**2+vp(3,n)**2) 20 continue end do end do end do end do if (n.eq.0) then write(*,*) write(*,'("Error(findprimcell): cannot find any lattice vectors")') write(*,*) stop end if ! find the shortest lattice vector j=1 t1=1.d8 do i=1,n if (dp(i).lt.t1+epslat) then j=i t1=dp(i) end if end do avec(:,1)=vp(:,j) ! find the next shortest lattice vector not parallel to the first j=1 t1=1.d8 do i=1,n call r3cross(avec(:,1),vp(:,i),v1) t2=sqrt(v1(1)**2+v1(2)**2+v1(3)**2) if (t2.gt.epslat) then if (dp(i).lt.t1+epslat) then j=i t1=dp(i) end if end if end do avec(:,2)=vp(:,j) ! find the next shortest lattice vector which gives non-zero unit cell volume call r3cross(avec(:,1),avec(:,2),v1) j=1 t1=1.d8 do i=1,n t2=dot_product(vp(:,i),v1(:)) if (abs(t2).gt.epslat) then if (dp(i).lt.t1+epslat) then j=i t1=dp(i) end if end if end do avec(:,3)=vp(:,j) call r3minv(avec,ainv) ! remove redundant atoms do is=1,nspecies na=0 do ia=1,natoms(is) call r3mv(ainv,atposc(:,ia,is),v1) call r3frac(epslat,v1) do ja=1,na t1=sum(abs(atposl(:,ja,is)-v1(:))) if (t1.lt.epslat) goto 30 end do na=na+1 atposl(:,na,is)=v1(:) call r3mv(avec,atposl(:,na,is),atposc(:,na,is)) bfcmt0(:,na,is)=bfcmt0(:,ia,is) 30 continue end do natoms(is)=na end do deallocate(dp,vp) return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/gencrystal.f900000644000000000000000000000013213543334727017473 xustar0030 mtime=1569569239.635645135 30 atime=1569569239.634645135 30 ctime=1569569239.635645135 elk-6.3.2/src/spacegroup/gencrystal.f900000644002504400250440000000577313543334727021556 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gencrystal use modmain implicit none ! local variables integer is,ia,ip,i,j integer i1,i2,i3 integer ngen,ngrp real(8) abr,acr,bcr real(8) sab,cab,cac,cbc real(8) v1(3),v2(3),t1 ! space group generator Seitz matrices real(8) srgen(3,3,12),stgen(3,12) ! space group Seitz matrices real(8) srgrp(3,3,192),stgrp(3,192) ! convert angles from degrees to radians abr=ab*(pi/180.d0) acr=ac*(pi/180.d0) bcr=bc*(pi/180.d0) ! setup lattice vectors sab=sin(abr) if (abs(sab).lt.epslat) then write(*,*) write(*,'("Error(gencrystal): degenerate lattice vectors")') write(*,*) stop end if cab=cos(abr) cac=cos(acr) cbc=cos(bcr) avec(1,1)=a avec(2,1)=0.d0 avec(3,1)=0.d0 avec(1,2)=b*cab avec(2,2)=b*sab avec(3,2)=0.d0 avec(1,3)=c*cac avec(2,3)=c*(cbc-cab*cac)/sab avec(3,3)=c*sqrt(sab**2-cac**2+2.d0*cab*cac*cbc-cbc**2)/sab do i=1,3 do j=1,3 if (abs(avec(i,j)).lt.epslat) avec(i,j)=0.d0 end do end do ! scale lattice vectors by the number of unit cells do i=1,3 avec(:,i)=avec(:,i)*dble(ncell(i)) end do ! determine the Hall symbol from the Hermann-Mauguin symbol call sgsymb(hrmg,num,schn,hall) ! determine the space group generators call seitzgen(hall,ngen,srgen,stgen) ! compute the space group operations call gengroup(ngen,srgen,stgen,ngrp,srgrp,stgrp) ! compute the equivalent atomic positions do is=1,nspecies natoms(is)=0 do ip=1,nwpos(is) do j=1,ngrp ! apply the space group operation call r3mv(srgrp(:,1,j),wpos(:,ip,is),v1) v1(:)=v1(:)+stgrp(:,j) do i1=0,ncell(1)-1 do i2=0,ncell(2)-1 do i3=0,ncell(3)-1 v2(1)=(v1(1)+dble(i1))/dble(ncell(1)) v2(2)=(v1(2)+dble(i2))/dble(ncell(2)) v2(3)=(v1(3)+dble(i3))/dble(ncell(3)) call r3frac(epslat,v2) ! check if new position already exists do ia=1,natoms(is) t1=sum(abs(v2(:)-atposl(:,ia,is))) if (t1.lt.epslat) goto 30 end do ! add new position to list natoms(is)=natoms(is)+1 if (natoms(is).gt.maxatoms) then write(*,*) write(*,'("Error(gencrystal): natoms too large")') write(*,'(" for species ",I4)') is write(*,'("Adjust maxatoms and recompile code")') write(*,*) stop end if atposl(:,natoms(is),is)=v2(:) end do end do end do 30 continue end do end do natmtot=natmtot+natoms(is) end do ! set magnetic fields to zero bfcmt0(:,:,:)=0.d0 ! reduce conventional cell to primitive cell if required if (primcell) call findprimcell ! find the total number of atoms natmtot=0 do is=1,nspecies natmtot=natmtot+natoms(is) end do ! determine the Cartesian atomic coordinates do is=1,nspecies do ia=1,natoms(is) call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do return end subroutine elk-6.3.2/src/spacegroup/PaxHeaders.21352/gengroup.f900000644000000000000000000000013213543334727017146 xustar0030 mtime=1569569239.638645133 30 atime=1569569239.637645133 30 ctime=1569569239.638645133 elk-6.3.2/src/spacegroup/gengroup.f900000644002504400250440000000331713543334727021221 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengroup(ngen,srgen,stgen,ngrp,srgrp,stgrp) implicit none ! arguments integer, intent(in) :: ngen real(8), intent(in) :: srgen(3,3,ngen) real(8), intent(in) :: stgen(3,ngen) integer, intent(out) :: ngrp real(8), intent(out) :: srgrp(3,3,192) real(8), intent(out) :: stgrp(3,192) ! local variables integer i,j,k real(8), parameter :: eps=1.d-6 real(8) sr(3,3),st(3) ! external functions logical seitzeq external seitzeq ! store the identity ngrp=1 srgrp(1,1,1)=1.d0; srgrp(1,2,1)=0.d0; srgrp(1,3,1)=0.d0 srgrp(2,1,1)=0.d0; srgrp(2,2,1)=1.d0; srgrp(2,3,1)=0.d0 srgrp(3,1,1)=0.d0; srgrp(3,2,1)=0.d0; srgrp(3,3,1)=1.d0 stgrp(:,1)=0.d0 10 continue ! right multiply by the generators do i=1,ngen do j=1,ngrp call seitzmul(eps,srgrp(:,:,j),stgrp(:,j),srgen(:,:,i),stgen(:,i),sr,st) ! check if the new element already exists do k=1,ngrp if (seitzeq(eps,srgrp(:,:,k),stgrp(:,k),sr,st)) goto 20 end do goto 40 20 continue end do end do ! left multiply by the generators do i=1,ngen do j=1,ngrp call seitzmul(eps,srgen(:,:,i),stgen(:,i),srgrp(:,:,j),stgrp(:,j),sr,st) ! check if the new element already exists do k=1,ngrp if (seitzeq(eps,srgrp(:,:,k),stgrp(:,k),sr,st)) goto 30 end do goto 40 30 continue end do end do ! all elements accounted for return 40 continue ! add new element ngrp=ngrp+1 if (ngrp.gt.192) then write(*,*) write(*,'("Error(gengroup): more than 192 group elements")') write(*,*) stop end if srgrp(:,:,ngrp)=sr(:,:) stgrp(:,ngrp)=st(:) goto 10 return end subroutine elk-6.3.2/src/spacegroup/PaxHeaders.21352/geomplot.f900000644000000000000000000000013013543334727017144 xustar0029 mtime=1569569239.64264513 30 atime=1569569239.641645131 29 ctime=1569569239.64264513 elk-6.3.2/src/spacegroup/geomplot.f900000644002504400250440000000445313543334727021223 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine geomplot use modmain implicit none ! local variables integer is,ia ! Bohr to Angstroms (CODATA 2002) real(8), parameter :: au_to_ang=0.5291772108d0 real(8) v1(3),v2(3),v3(3),v4(3),t1 real(8) dxx,dyx,dyy,dzx,dzy,dzz !------------------------------------------------! ! write the XCrysden file to crystal.xsf ! !------------------------------------------------! open(50,file='crystal.xsf',action='WRITE',form='FORMATTED') write(50,*) write(50,'("CRYSTAL")') write(50,*) write(50,'("PRIMVEC")') write(50,'(3G18.10)') avec(:,1)*au_to_ang write(50,'(3G18.10)') avec(:,2)*au_to_ang write(50,'(3G18.10)') avec(:,3)*au_to_ang write(50,*) write(50,'("PRIMCOORD")') write(50,'(2I8)') natmtot,1 do is=1,nspecies do ia=1,natoms(is) call r3mv(avec,atposl(:,ia,is),v1) write(50,'(A,3G18.10)') trim(spsymb(is)),v1(:)*au_to_ang end do end do close(50) write(*,*) write(*,'("Info(writexsf):")') write(*,'(" XCrysDen file written to crystal.xsf")') !-----------------------------------------------! ! write the V_Sim file to crystal.ascii ! !-----------------------------------------------! ! determine coordinate system vectors t1=sqrt(avec(1,1)**2+avec(2,1)**2+avec(3,1)**2) v1(:)=avec(:,1)/t1 t1=sqrt(avec(1,2)**2+avec(2,2)**2+avec(3,2)**2) v2(:)=avec(:,2)/t1 call r3cross(v1,v2,v3) t1=sqrt(v3(1)**2+v3(2)**2+v3(3)**2) v3(:)=v3(:)/t1 call r3cross(v3,v1,v2) t1=sqrt(v2(1)**2+v2(2)**2+v2(3)**2) v2(:)=v2(:)/t1 dxx=dot_product(avec(:,1),v1(:)) dyx=dot_product(avec(:,2),v1(:)) dyy=dot_product(avec(:,2),v2(:)) dzx=dot_product(avec(:,3),v1(:)) dzy=dot_product(avec(:,3),v2(:)) dzz=dot_product(avec(:,3),v3(:)) open(50,file='crystal.ascii',action='WRITE',form='FORMATTED') write(50,*) write(50,'(3G18.10)') dxx,dyx,dyy write(50,'(3G18.10)') dzx,dzy,dzz write(50,*) do is=1,nspecies do ia=1,natoms(is) v4(1)=dot_product(atposc(:,ia,is),v1(:)) v4(2)=dot_product(atposc(:,ia,is),v2(:)) v4(3)=dot_product(atposc(:,ia,is),v3(:)) write(50,'(3G18.10," ",A)') v4,trim(spsymb(is)) end do end do close(50) write(*,*) write(*,'("Info(writevsim):")') write(*,'(" V_Sim file written to crystal.ascii")') return end subroutine elk-6.3.2/src/spacegroup/PaxHeaders.21352/main.f900000644000000000000000000000013213543334727016244 xustar0030 mtime=1569569239.649645126 30 atime=1569569239.645645128 30 ctime=1569569239.649645126 elk-6.3.2/src/spacegroup/main.f900000644002504400250440000013267613543334727020332 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. program main implicit none ! read the input parameters from spacegroup.in call readinput ! generate the lattice and atomic basis call gencrystal ! write the structural data to GEOMETRY.OUT call writegeom ! write the XCrySDen and V_Sim files for plotting call geomplot stop end program !BOI ! !TITLE: {\huge{\sc The Spacegroup Manual}}\\ \Large{\sc Version 1.2.1} ! !AUTHORS: {\sc J. K. Dewhurst, S. Sharma and L. Nordstr\"{o}m} ! !AFFILIATION: ! !INTRODUCTION: Introduction ! Spacegroup is a utility which produces crystal geometry for use with the Elk ! code, from the space group defined by its Hermann-Mauguin symbol and lattice ! vector lengths and angles. Spacegroup recognises all 230 space groups in ! various coordinate settings giving a total of 530 possible symbols, which are ! tabulated below. The code also provides output compatible with the XCrysDen or ! V\_Sim packages for visualisation of the crystal structure. ! \section{Usage} ! Only one input file, {\tt spacegroup.in}, is required. The structure of this ! file is illustrated by the following example for the high $T_c$ superconductor ! La$_2$CuO$_4$: ! \begin{verbatim} ! 'Bmab' : hrmg ! 10.0605232 10.0605232 24.972729 : a, b, c ! 90.0 90.0 90.0 : bc, ac, ab ! 1 1 1 : ncell ! .true. : primcell ! 3 : nspecies ! 'La' : spsymb ! 1 : nwpos ! 0.0000 0.0000 0.3608 : wpos ! 'Cu' ! 1 ! 0.0000 0.0000 0.0000 ! 'O' ! 2 ! 0.2500 0.2500 0.0000 ! 0.0000 0.0000 0.1820 ! \end{verbatim} ! The input parameters are defined as follows: ! \vskip 6pt ! {\tt hrmg}\\ ! The Hermann-Mauguin symbol of a space group listed in the table below. ! (case-sensitive) ! \vskip 6pt ! {\tt a}, {\tt b}, {\tt c}\\ ! Lattice vector lengths in Bohr (i.e. atomic units, {\bf NOT} \AA ngstroms). ! \vskip 6pt ! {\tt bc}, {\tt ac}, {\tt ab}\\ ! Angles in degrees between lattice vectors ${\bf b}$ and ${\bf c}$ ($\alpha$); ! ${\bf a}$ and ${\bf c}$ ($\beta$); and ${\bf a}$ and ${\bf b}$ ($\gamma$). ! \vskip 6pt ! {\tt ncell}\\ ! The number of unit cells required in each direction. ! \vskip 6pt ! {\tt primcell}\\ ! Set to {\tt .true.} if the primitive unit cell should be found. ! \vskip 6pt ! {\tt nspecies}\\ ! Number of atomic species. ! \vskip 6pt ! {\tt spsymb}\\ ! The atomic species symbol. ! \vskip 6pt ! {\tt nwpos}\\ ! The number of Wyckoff positional coordinates. ! \vskip 6pt ! {\tt wpos}\\ ! Wyckoff positional coordinates in fractions of the lattice vectors. ! \vskip 6pt ! Note that {\tt nwpos} and {\tt wpos} are repeated as many times as there are ! species. After creating the input file, the {\tt spacegroup} command is run ! and the files {\tt GEOMETRY.OUT} and {\tt crystal.xsf} should be produced. ! The {\tt GEOMETRY.OUT} file can simply be appended to an {\tt elk.in} file. If ! XCrysDen is available, then use the command ! \vskip 6pt ! \hskip 24pt {\tt xcrysden --xsf crystal.xsf} ! \vskip 6pt ! to render the unit cell. ! \section{Table of space group symbols} ! We acknowledge Ralf W. Grosse-Kunstleve ({\tt http://cci.lbl.gov/sginfo/}) ! for the following table which associates space group numbers, Sch\"{o}nflies ! symbols, Hermann-Mauguin symbols, and Hall symbols. ! \newpage ! \begin{center} ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 1 & C$_{1}^{1}$ & P1 & P 1 \\ ! 2 & C$_{i}^{1}$ & P-1 & -P 1 \\ ! 3:b & C$_{2}^{1}$ & P2:b = P121 & P 2y \\ ! 3:c & C$_{2}^{1}$ & P2:c = P112 & P 2 \\ ! 3:a & C$_{2}^{1}$ & P2:a = P211 & P 2x \\ ! 4:b & C$_{2}^{2}$ & P21:b = P1211 & P 2yb \\ ! 4:c & C$_{2}^{2}$ & P21:c = P1121 & P 2c \\ ! 4:a & C$_{2}^{2}$ & P21:a = P2111 & P 2xa \\ ! 5:b1 & C$_{2}^{3}$ & C2:b1 = C121 & C 2y \\ ! 5:b2 & C$_{2}^{3}$ & C2:b2 = A121 & A 2y \\ ! 5:b3 & C$_{2}^{3}$ & C2:b3 = I121 & I 2y \\ ! 5:c1 & C$_{2}^{3}$ & C2:c1 = A112 & A 2 \\ ! 5:c2 & C$_{2}^{3}$ & C2:c2 = B112 = B2 & B 2 \\ ! 5:c3 & C$_{2}^{3}$ & C2:c3 = I112 & I 2 \\ ! 5:a1 & C$_{2}^{3}$ & C2:a1 = B211 & B 2x \\ ! 5:a2 & C$_{2}^{3}$ & C2:a2 = C211 & C 2x \\ ! 5:a3 & C$_{2}^{3}$ & C2:a3 = I211 & I 2x \\ ! 6:b & C$_{s}^{1}$ & Pm:b = P1m1 & P -2y \\ ! 6:c & C$_{s}^{1}$ & Pm:c = P11m & P -2 \\ ! 6:a & C$_{s}^{1}$ & Pm:a = Pm11 & P -2x \\ ! 7:b1 & C$_{s}^{2}$ & Pc:b1 = P1c1 & P -2yc \\ ! 7:b2 & C$_{s}^{2}$ & Pc:b2 = P1n1 & P -2yac \\ ! 7:b3 & C$_{s}^{2}$ & Pc:b3 = P1a1 & P -2ya \\ ! 7:c1 & C$_{s}^{2}$ & Pc:c1 = P11a & P -2a \\ ! 7:c2 & C$_{s}^{2}$ & Pc:c2 = P11n & P -2ab \\ ! 7:c3 & C$_{s}^{2}$ & Pc:c3 = P11b = Pb & P -2b \\ ! 7:a1 & C$_{s}^{2}$ & Pc:a1 = Pb11 & P -2xb \\ ! 7:a2 & C$_{s}^{2}$ & Pc:a2 = Pn11 & P -2xbc \\ ! 7:a3 & C$_{s}^{2}$ & Pc:a3 = Pc11 & P -2xc \\ ! 8:b1 & C$_{s}^{3}$ & Cm:b1 = C1m1 & C -2y \\ ! 8:b2 & C$_{s}^{3}$ & Cm:b2 = A1m1 & A -2y \\ ! 8:b3 & C$_{s}^{3}$ & Cm:b3 = I1m1 & I -2y \\ ! 8:c1 & C$_{s}^{3}$ & Cm:c1 = A11m & A -2 \\ ! 8:c2 & C$_{s}^{3}$ & Cm:c2 = B11m = Bm & B -2 \\ ! 8:c3 & C$_{s}^{3}$ & Cm:c3 = I11m & I -2 \\ ! 8:a1 & C$_{s}^{3}$ & Cm:a1 = Bm11 & B -2x \\ ! 8:a2 & C$_{s}^{3}$ & Cm:a2 = Cm11 & C -2x \\ ! 8:a3 & C$_{s}^{3}$ & Cm:a3 = Im11 & I -2x \\ ! 9:b1 & C$_{s}^{4}$ & Cc:b1 = C1c1 & C -2yc \\ ! 9:b2 & C$_{s}^{4}$ & Cc:b2 = A1n1 & A -2yac \\ ! 9:b3 & C$_{s}^{4}$ & Cc:b3 = I1a1 & I -2ya \\ ! 9:-b1 & C$_{s}^{4}$ & Cc:-b1 = A1a1 & A -2ya \\ ! 9:-b2 & C$_{s}^{4}$ & Cc:-b2 = C1n1 & C -2ybc \\ ! 9:-b3 & C$_{s}^{4}$ & Cc:-b3 = I1c1 & I -2yc \\ ! 9:c1 & C$_{s}^{4}$ & Cc:c1 = A11a & A -2a \\ ! 9:c2 & C$_{s}^{4}$ & Cc:c2 = B11n & B -2bc \\ ! 9:c3 & C$_{s}^{4}$ & Cc:c3 = I11b & I -2b \\ ! 9:-c1 & C$_{s}^{4}$ & Cc:-c1 = B11b = Bb & B -2b \\ ! 9:-c2 & C$_{s}^{4}$ & Cc:-c2 = A11n & A -2ac \\ ! 9:-c3 & C$_{s}^{4}$ & Cc:-c3 = I11a & I -2a \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 9:a1 & C$_{s}^{4}$ & Cc:a1 = Bb11 & B -2xb \\ ! 9:a2 & C$_{s}^{4}$ & Cc:a2 = Cn11 & C -2xbc \\ ! 9:a3 & C$_{s}^{4}$ & Cc:a3 = Ic11 & I -2xc \\ ! 9:-a1 & C$_{s}^{4}$ & Cc:-a1 = Cc11 & C -2xc \\ ! 9:-a2 & C$_{s}^{4}$ & Cc:-a2 = Bn11 & B -2xbc \\ ! 9:-a3 & C$_{s}^{4}$ & Cc:-a3 = Ib11 & I -2xb \\ ! 10:b & C$_{2h}^{1}$ & P2/m:b = P12/m1 & -P 2y \\ ! 10:c & C$_{2h}^{1}$ & P2/m:c = P112/m & -P 2 \\ ! 10:a & C$_{2h}^{1}$ & P2/m:a = P2/m11 & -P 2x \\ ! 11:b & C$_{2h}^{2}$ & P21/m:b = P121/m1 & -P 2yb \\ ! 11:c & C$_{2h}^{2}$ & P21/m:c = P1121/m & -P 2c \\ ! 11:a & C$_{2h}^{2}$ & P21/m:a = P21/m11 & -P 2xa \\ ! 12:b1 & C$_{2h}^{3}$ & C2/m:b1 = C12/m1 & -C 2y \\ ! 12:b2 & C$_{2h}^{3}$ & C2/m:b2 = A12/m1 & -A 2y \\ ! 12:b3 & C$_{2h}^{3}$ & C2/m:b3 = I12/m1 & -I 2y \\ ! 12:c1 & C$_{2h}^{3}$ & C2/m:c1 = A112/m & -A 2 \\ ! 12:c2 & C$_{2h}^{3}$ & C2/m:c2 = B112/m = B2/m & -B 2 \\ ! 12:c3 & C$_{2h}^{3}$ & C2/m:c3 = I112/m & -I 2 \\ ! 12:a1 & C$_{2h}^{3}$ & C2/m:a1 = B2/m11 & -B 2x \\ ! 12:a2 & C$_{2h}^{3}$ & C2/m:a2 = C2/m11 & -C 2x \\ ! 12:a3 & C$_{2h}^{3}$ & C2/m:a3 = I2/m11 & -I 2x \\ ! 13:b1 & C$_{2h}^{4}$ & P2/c:b1 = P12/c1 & -P 2yc \\ ! 13:b2 & C$_{2h}^{4}$ & P2/c:b2 = P12/n1 & -P 2yac \\ ! 13:b3 & C$_{2h}^{4}$ & P2/c:b3 = P12/a1 & -P 2ya \\ ! 13:c1 & C$_{2h}^{4}$ & P2/c:c1 = P112/a & -P 2a \\ ! 13:c2 & C$_{2h}^{4}$ & P2/c:c2 = P112/n & -P 2ab \\ ! 13:c3 & C$_{2h}^{4}$ & P2/c:c3 = P112/b = P2/b & -P 2b \\ ! 13:a1 & C$_{2h}^{4}$ & P2/c:a1 = P2/b11 & -P 2xb \\ ! 13:a2 & C$_{2h}^{4}$ & P2/c:a2 = P2/n11 & -P 2xbc \\ ! 13:a3 & C$_{2h}^{4}$ & P2/c:a3 = P2/c11 & -P 2xc \\ ! 14:b1 & C$_{2h}^{5}$ & P21/c:b1 = P121/c1 & -P 2ybc \\ ! 14:b2 & C$_{2h}^{5}$ & P21/c:b2 = P121/n1 & -P 2yn \\ ! 14:b3 & C$_{2h}^{5}$ & P21/c:b3 = P121/a1 & -P 2yab \\ ! 14:c1 & C$_{2h}^{5}$ & P21/c:c1 = P1121/a & -P 2ac \\ ! 14:c2 & C$_{2h}^{5}$ & P21/c:c2 = P1121/n & -P 2n \\ ! 14:c3 & C$_{2h}^{5}$ & P21/c:c3 = P1121/b = P21/b & -P 2bc \\ ! 14:a1 & C$_{2h}^{5}$ & P21/c:a1 = P21/b11 & -P 2xab \\ ! 14:a2 & C$_{2h}^{5}$ & P21/c:a2 = P21/n11 & -P 2xn \\ ! 14:a3 & C$_{2h}^{5}$ & P21/c:a3 = P21/c11 & -P 2xac \\ ! 15:b1 & C$_{2h}^{6}$ & C2/c:b1 = C12/c1 & -C 2yc \\ ! 15:b2 & C$_{2h}^{6}$ & C2/c:b2 = A12/n1 & -A 2yac \\ ! 15:b3 & C$_{2h}^{6}$ & C2/c:b3 = I12/a1 & -I 2ya \\ ! 15:-b1 & C$_{2h}^{6}$ & C2/c:-b1 = A12/a1 & -A 2ya \\ ! 15:-b2 & C$_{2h}^{6}$ & C2/c:-b2 = C12/n1 & -C 2ybc \\ ! 15:-b3 & C$_{2h}^{6}$ & C2/c:-b3 = I12/c1 & -I 2yc \\ ! 15:c1 & C$_{2h}^{6}$ & C2/c:c1 = A112/a & -A 2a \\ ! 15:c2 & C$_{2h}^{6}$ & C2/c:c2 = B112/n & -B 2bc \\ ! 15:c3 & C$_{2h}^{6}$ & C2/c:c3 = I112/b & -I 2b \\ ! 15:-c1 & C$_{2h}^{6}$ & C2/c:-c1 = B112/b = B2/b & -B 2b \\ ! 15:-c2 & C$_{2h}^{6}$ & C2/c:-c2 = A112/n & -A 2ac \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 15:-c3 & C$_{2h}^{6}$ & C2/c:-c3 = I112/a & -I 2a \\ ! 15:a1 & C$_{2h}^{6}$ & C2/c:a1 = B2/b11 & -B 2xb \\ ! 15:a2 & C$_{2h}^{6}$ & C2/c:a2 = C2/n11 & -C 2xbc \\ ! 15:a3 & C$_{2h}^{6}$ & C2/c:a3 = I2/c11 & -I 2xc \\ ! 15:-a1 & C$_{2h}^{6}$ & C2/c:-a1 = C2/c11 & -C 2xc \\ ! 15:-a2 & C$_{2h}^{6}$ & C2/c:-a2 = B2/n11 & -B 2xbc \\ ! 15:-a3 & C$_{2h}^{6}$ & C2/c:-a3 = I2/b11 & -I 2xb \\ ! 16 & D$_{2}^{1}$ & P222 & P 2 2 \\ ! 17 & D$_{2}^{2}$ & P2221 & P 2c 2 \\ ! 17:cab & D$_{2}^{2}$ & P2122 & P 2a 2a \\ ! 17:bca & D$_{2}^{2}$ & P2212 & P 2 2b \\ ! 18 & D$_{2}^{3}$ & P21212 & P 2 2ab \\ ! 18:cab & D$_{2}^{3}$ & P22121 & P 2bc 2 \\ ! 18:bca & D$_{2}^{3}$ & P21221 & P 2ac 2ac \\ ! 19 & D$_{2}^{4}$ & P212121 & P 2ac 2ab \\ ! 20 & D$_{2}^{5}$ & C2221 & C 2c 2 \\ ! 20:cab & D$_{2}^{5}$ & A2122 & A 2a 2a \\ ! 20:bca & D$_{2}^{5}$ & B2212 & B 2 2b \\ ! 21 & D$_{2}^{6}$ & C222 & C 2 2 \\ ! 21:cab & D$_{2}^{6}$ & A222 & A 2 2 \\ ! 21:bca & D$_{2}^{6}$ & B222 & B 2 2 \\ ! 22 & D$_{2}^{7}$ & F222 & F 2 2 \\ ! 23 & D$_{2}^{8}$ & I222 & I 2 2 \\ ! 24 & D$_{2}^{9}$ & I212121 & I 2b 2c \\ ! 25 & C$_{2v}^{1}$ & Pmm2 & P 2 -2 \\ ! 25:cab & C$_{2v}^{1}$ & P2mm & P -2 2 \\ ! 25:bca & C$_{2v}^{1}$ & Pm2m & P -2 -2 \\ ! 26 & C$_{2v}^{2}$ & Pmc21 & P 2c -2 \\ ! 26:ba-c & C$_{2v}^{2}$ & Pcm21 & P 2c -2c \\ ! 26:cab & C$_{2v}^{2}$ & P21ma & P -2a 2a \\ ! 26:-cba & C$_{2v}^{2}$ & P21am & P -2 2a \\ ! 26:bca & C$_{2v}^{2}$ & Pb21m & P -2 -2b \\ ! 26:a-cb & C$_{2v}^{2}$ & Pm21b & P -2b -2 \\ ! 27 & C$_{2v}^{3}$ & Pcc2 & P 2 -2c \\ ! 27:cab & C$_{2v}^{3}$ & P2aa & P -2a 2 \\ ! 27:bca & C$_{2v}^{3}$ & Pb2b & P -2b -2b \\ ! 28 & C$_{2v}^{4}$ & Pma2 & P 2 -2a \\ ! 28:ba-c & C$_{2v}^{4}$ & Pbm2 & P 2 -2b \\ ! 28:cab & C$_{2v}^{4}$ & P2mb & P -2b 2 \\ ! 28:-cba & C$_{2v}^{4}$ & P2cm & P -2c 2 \\ ! 28:bca & C$_{2v}^{4}$ & Pc2m & P -2c -2c \\ ! 28:a-cb & C$_{2v}^{4}$ & Pm2a & P -2a -2a \\ ! 29 & C$_{2v}^{5}$ & Pca21 & P 2c -2ac \\ ! 29:ba-c & C$_{2v}^{5}$ & Pbc21 & P 2c -2b \\ ! 29:cab & C$_{2v}^{5}$ & P21ab & P -2b 2a \\ ! 29:-cba & C$_{2v}^{5}$ & P21ca & P -2ac 2a \\ ! 29:bca & C$_{2v}^{5}$ & Pc21b & P -2bc -2c \\ ! 29:a-cb & C$_{2v}^{5}$ & Pb21a & P -2a -2ab \\ ! 30 & C$_{2v}^{6}$ & Pnc2 & P 2 -2bc \\ ! 30:ba-c & C$_{2v}^{6}$ & Pcn2 & P 2 -2ac \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 30:cab & C$_{2v}^{6}$ & P2na & P -2ac 2 \\ ! 30:-cba & C$_{2v}^{6}$ & P2an & P -2ab 2 \\ ! 30:bca & C$_{2v}^{6}$ & Pb2n & P -2ab -2ab \\ ! 30:a-cb & C$_{2v}^{6}$ & Pn2b & P -2bc -2bc \\ ! 31 & C$_{2v}^{7}$ & Pmn21 & P 2ac -2 \\ ! 31:ba-c & C$_{2v}^{7}$ & Pnm21 & P 2bc -2bc \\ ! 31:cab & C$_{2v}^{7}$ & P21mn & P -2ab 2ab \\ ! 31:-cba & C$_{2v}^{7}$ & P21nm & P -2 2ac \\ ! 31:bca & C$_{2v}^{7}$ & Pn21m & P -2 -2bc \\ ! 31:a-cb & C$_{2v}^{7}$ & Pm21n & P -2ab -2 \\ ! 32 & C$_{2v}^{8}$ & Pba2 & P 2 -2ab \\ ! 32:cab & C$_{2v}^{8}$ & P2cb & P -2bc 2 \\ ! 32:bca & C$_{2v}^{8}$ & Pc2a & P -2ac -2ac \\ ! 33 & C$_{2v}^{9}$ & Pna21 & P 2c -2n \\ ! 33:ba-c & C$_{2v}^{9}$ & Pbn21 & P 2c -2ab \\ ! 33:cab & C$_{2v}^{9}$ & P21nb & P -2bc 2a \\ ! 33:-cba & C$_{2v}^{9}$ & P21cn & P -2n 2a \\ ! 33:bca & C$_{2v}^{9}$ & Pc21n & P -2n -2ac \\ ! 33:a-cb & C$_{2v}^{9}$ & Pn21a & P -2ac -2n \\ ! 34 & C$_{2v}^{10}$ & Pnn2 & P 2 -2n \\ ! 34:cab & C$_{2v}^{10}$ & P2nn & P -2n 2 \\ ! 34:bca & C$_{2v}^{10}$ & Pn2n & P -2n -2n \\ ! 35 & C$_{2v}^{11}$ & Cmm2 & C 2 -2 \\ ! 35:cab & C$_{2v}^{11}$ & A2mm & A -2 2 \\ ! 35:bca & C$_{2v}^{11}$ & Bm2m & B -2 -2 \\ ! 36 & C$_{2v}^{12}$ & Cmc21 & C 2c -2 \\ ! 36:ba-c & C$_{2v}^{12}$ & Ccm21 & C 2c -2c \\ ! 36:cab & C$_{2v}^{12}$ & A21ma & A -2a 2a \\ ! 36:-cba & C$_{2v}^{12}$ & A21am & A -2 2a \\ ! 36:bca & C$_{2v}^{12}$ & Bb21m & B -2 -2b \\ ! 36:a-cb & C$_{2v}^{12}$ & Bm21b & B -2b -2 \\ ! 37 & C$_{2v}^{13}$ & Ccc2 & C 2 -2c \\ ! 37:cab & C$_{2v}^{13}$ & A2aa & A -2a 2 \\ ! 37:bca & C$_{2v}^{13}$ & Bb2b & B -2b -2b \\ ! 38 & C$_{2v}^{14}$ & Amm2 & A 2 -2 \\ ! 38:ba-c & C$_{2v}^{14}$ & Bmm2 & B 2 -2 \\ ! 38:cab & C$_{2v}^{14}$ & B2mm & B -2 2 \\ ! 38:-cba & C$_{2v}^{14}$ & C2mm & C -2 2 \\ ! 38:bca & C$_{2v}^{14}$ & Cm2m & C -2 -2 \\ ! 38:a-cb & C$_{2v}^{14}$ & Am2m & A -2 -2 \\ ! 39 & C$_{2v}^{15}$ & Abm2 & A 2 -2c \\ ! 39:ba-c & C$_{2v}^{15}$ & Bma2 & B 2 -2c \\ ! 39:cab & C$_{2v}^{15}$ & B2cm & B -2c 2 \\ ! 39:-cba & C$_{2v}^{15}$ & C2mb & C -2b 2 \\ ! 39:bca & C$_{2v}^{15}$ & Cm2a & C -2b -2b \\ ! 39:a-cb & C$_{2v}^{15}$ & Ac2m & A -2c -2c \\ ! 40 & C$_{2v}^{16}$ & Ama2 & A 2 -2a \\ ! 40:ba-c & C$_{2v}^{16}$ & Bbm2 & B 2 -2b \\ ! 40:cab & C$_{2v}^{16}$ & B2mb & B -2b 2 \\ ! 40:-cba & C$_{2v}^{16}$ & C2cm & C -2c 2 \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 40:bca & C$_{2v}^{16}$ & Cc2m & C -2c -2c \\ ! 40:a-cb & C$_{2v}^{16}$ & Am2a & A -2a -2a \\ ! 41 & C$_{2v}^{17}$ & Aba2 & A 2 -2ac \\ ! 41:ba-c & C$_{2v}^{17}$ & Bba2 & B 2 -2bc \\ ! 41:cab & C$_{2v}^{17}$ & B2cb & B -2bc 2 \\ ! 41:-cba & C$_{2v}^{17}$ & C2cb & C -2bc 2 \\ ! 41:bca & C$_{2v}^{17}$ & Cc2a & C -2bc -2bc \\ ! 41:a-cb & C$_{2v}^{17}$ & Ac2a & A -2ac -2ac \\ ! 42 & C$_{2v}^{18}$ & Fmm2 & F 2 -2 \\ ! 42:cab & C$_{2v}^{18}$ & F2mm & F -2 2 \\ ! 42:bca & C$_{2v}^{18}$ & Fm2m & F -2 -2 \\ ! 43 & C$_{2v}^{19}$ & Fdd2 & F 2 -2d \\ ! 43:cab & C$_{2v}^{19}$ & F2dd & F -2d 2 \\ ! 43:bca & C$_{2v}^{19}$ & Fd2d & F -2d -2d \\ ! 44 & C$_{2v}^{20}$ & Imm2 & I 2 -2 \\ ! 44:cab & C$_{2v}^{20}$ & I2mm & I -2 2 \\ ! 44:bca & C$_{2v}^{20}$ & Im2m & I -2 -2 \\ ! 45 & C$_{2v}^{21}$ & Iba2 & I 2 -2c \\ ! 45:cab & C$_{2v}^{21}$ & I2cb & I -2a 2 \\ ! 45:bca & C$_{2v}^{21}$ & Ic2a & I -2b -2b \\ ! 46 & C$_{2v}^{22}$ & Ima2 & I 2 -2a \\ ! 46:ba-c & C$_{2v}^{22}$ & Ibm2 & I 2 -2b \\ ! 46:cab & C$_{2v}^{22}$ & I2mb & I -2b 2 \\ ! 46:-cba & C$_{2v}^{22}$ & I2cm & I -2c 2 \\ ! 46:bca & C$_{2v}^{22}$ & Ic2m & I -2c -2c \\ ! 46:a-cb & C$_{2v}^{22}$ & Im2a & I -2a -2a \\ ! 47 & D$_{2h}^{1}$ & Pmmm & -P 2 2 \\ ! 48:1 & D$_{2h}^{2}$ & Pnnn:1 & P 2 2 -1n \\ ! 48:2 & D$_{2h}^{2}$ & Pnnn:2 & -P 2ab 2bc \\ ! 49 & D$_{2h}^{3}$ & Pccm & -P 2 2c \\ ! 49:cab & D$_{2h}^{3}$ & Pmaa & -P 2a 2 \\ ! 49:bca & D$_{2h}^{3}$ & Pbmb & -P 2b 2b \\ ! 50:1 & D$_{2h}^{4}$ & Pban:1 & P 2 2 -1ab \\ ! 50:2 & D$_{2h}^{4}$ & Pban:2 & -P 2ab 2b \\ ! 50:1cab & D$_{2h}^{4}$ & Pncb:1 & P 2 2 -1bc \\ ! 50:2cab & D$_{2h}^{4}$ & Pncb:2 & -P 2b 2bc \\ ! 50:1bca & D$_{2h}^{4}$ & Pcna:1 & P 2 2 -1ac \\ ! 50:2bca & D$_{2h}^{4}$ & Pcna:2 & -P 2a 2c \\ ! 51 & D$_{2h}^{5}$ & Pmma & -P 2a 2a \\ ! 51:ba-c & D$_{2h}^{5}$ & Pmmb & -P 2b 2 \\ ! 51:cab & D$_{2h}^{5}$ & Pbmm & -P 2 2b \\ ! 51:-cba & D$_{2h}^{5}$ & Pcmm & -P 2c 2c \\ ! 51:bca & D$_{2h}^{5}$ & Pmcm & -P 2c 2 \\ ! 51:a-cb & D$_{2h}^{5}$ & Pmam & -P 2 2a \\ ! 52 & D$_{2h}^{6}$ & Pnna & -P 2a 2bc \\ ! 52:ba-c & D$_{2h}^{6}$ & Pnnb & -P 2b 2n \\ ! 52:cab & D$_{2h}^{6}$ & Pbnn & -P 2n 2b \\ ! 52:-cba & D$_{2h}^{6}$ & Pcnn & -P 2ab 2c \\ ! 52:bca & D$_{2h}^{6}$ & Pncn & -P 2ab 2n \\ ! 52:a-cb & D$_{2h}^{6}$ & Pnan & -P 2n 2bc \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 53 & D$_{2h}^{7}$ & Pmna & -P 2ac 2 \\ ! 53:ba-c & D$_{2h}^{7}$ & Pnmb & -P 2bc 2bc \\ ! 53:cab & D$_{2h}^{7}$ & Pbmn & -P 2ab 2ab \\ ! 53:-cba & D$_{2h}^{7}$ & Pcnm & -P 2 2ac \\ ! 53:bca & D$_{2h}^{7}$ & Pncm & -P 2 2bc \\ ! 53:a-cb & D$_{2h}^{7}$ & Pman & -P 2ab 2 \\ ! 54 & D$_{2h}^{8}$ & Pcca & -P 2a 2ac \\ ! 54:ba-c & D$_{2h}^{8}$ & Pccb & -P 2b 2c \\ ! 54:cab & D$_{2h}^{8}$ & Pbaa & -P 2a 2b \\ ! 54:-cba & D$_{2h}^{8}$ & Pcaa & -P 2ac 2c \\ ! 54:bca & D$_{2h}^{8}$ & Pbcb & -P 2bc 2b \\ ! 54:a-cb & D$_{2h}^{8}$ & Pbab & -P 2b 2ab \\ ! 55 & D$_{2h}^{9}$ & Pbam & -P 2 2ab \\ ! 55:cab & D$_{2h}^{9}$ & Pmcb & -P 2bc 2 \\ ! 55:bca & D$_{2h}^{9}$ & Pcma & -P 2ac 2ac \\ ! 56 & D$_{2h}^{10}$ & Pccn & -P 2ab 2ac \\ ! 56:cab & D$_{2h}^{10}$ & Pnaa & -P 2ac 2bc \\ ! 56:bca & D$_{2h}^{10}$ & Pbnb & -P 2bc 2ab \\ ! 57 & D$_{2h}^{11}$ & Pbcm & -P 2c 2b \\ ! 57:ba-c & D$_{2h}^{11}$ & Pcam & -P 2c 2ac \\ ! 57:cab & D$_{2h}^{11}$ & Pmca & -P 2ac 2a \\ ! 57:-cba & D$_{2h}^{11}$ & Pmab & -P 2b 2a \\ ! 57:bca & D$_{2h}^{11}$ & Pbma & -P 2a 2ab \\ ! 57:a-cb & D$_{2h}^{11}$ & Pcmb & -P 2bc 2c \\ ! 58 & D$_{2h}^{12}$ & Pnnm & -P 2 2n \\ ! 58:cab & D$_{2h}^{12}$ & Pmnn & -P 2n 2 \\ ! 58:bca & D$_{2h}^{12}$ & Pnmn & -P 2n 2n \\ ! 59:1 & D$_{2h}^{13}$ & Pmmn:1 & P 2 2ab -1ab \\ ! 59:2 & D$_{2h}^{13}$ & Pmmn:2 & -P 2ab 2a \\ ! 59:1cab & D$_{2h}^{13}$ & Pnmm:1 & P 2bc 2 -1bc \\ ! 59:2cab & D$_{2h}^{13}$ & Pnmm:2 & -P 2c 2bc \\ ! 59:1bca & D$_{2h}^{13}$ & Pmnm:1 & P 2ac 2ac -1ac \\ ! 59:2bca & D$_{2h}^{13}$ & Pmnm:2 & -P 2c 2a \\ ! 60 & D$_{2h}^{14}$ & Pbcn & -P 2n 2ab \\ ! 60:ba-c & D$_{2h}^{14}$ & Pcan & -P 2n 2c \\ ! 60:cab & D$_{2h}^{14}$ & Pnca & -P 2a 2n \\ ! 60:-cba & D$_{2h}^{14}$ & Pnab & -P 2bc 2n \\ ! 60:bca & D$_{2h}^{14}$ & Pbna & -P 2ac 2b \\ ! 60:a-cb & D$_{2h}^{14}$ & Pcnb & -P 2b 2ac \\ ! 61 & D$_{2h}^{15}$ & Pbca & -P 2ac 2ab \\ ! 61:ba-c & D$_{2h}^{15}$ & Pcab & -P 2bc 2ac \\ ! 62 & D$_{2h}^{16}$ & Pnma & -P 2ac 2n \\ ! 62:ba-c & D$_{2h}^{16}$ & Pmnb & -P 2bc 2a \\ ! 62:cab & D$_{2h}^{16}$ & Pbnm & -P 2c 2ab \\ ! 62:-cba & D$_{2h}^{16}$ & Pcmn & -P 2n 2ac \\ ! 62:bca & D$_{2h}^{16}$ & Pmcn & -P 2n 2a \\ ! 62:a-cb & D$_{2h}^{16}$ & Pnam & -P 2c 2n \\ ! 63 & D$_{2h}^{17}$ & Cmcm & -C 2c 2 \\ ! 63:ba-c & D$_{2h}^{17}$ & Ccmm & -C 2c 2c \\ ! 63:cab & D$_{2h}^{17}$ & Amma & -A 2a 2a \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 63:-cba & D$_{2h}^{17}$ & Amam & -A 2 2a \\ ! 63:bca & D$_{2h}^{17}$ & Bbmm & -B 2 2b \\ ! 63:a-cb & D$_{2h}^{17}$ & Bmmb & -B 2b 2 \\ ! 64 & D$_{2h}^{18}$ & Cmca & -C 2bc 2 \\ ! 64:ba-c & D$_{2h}^{18}$ & Ccmb & -C 2bc 2bc \\ ! 64:cab & D$_{2h}^{18}$ & Abma & -A 2ac 2ac \\ ! 64:-cba & D$_{2h}^{18}$ & Acam & -A 2 2ac \\ ! 64:bca & D$_{2h}^{18}$ & Bbcm & -B 2 2bc \\ ! 64:a-cb & D$_{2h}^{18}$ & Bmab & -B 2bc 2 \\ ! 65 & D$_{2h}^{19}$ & Cmmm & -C 2 2 \\ ! 65:cab & D$_{2h}^{19}$ & Ammm & -A 2 2 \\ ! 65:bca & D$_{2h}^{19}$ & Bmmm & -B 2 2 \\ ! 66 & D$_{2h}^{20}$ & Cccm & -C 2 2c \\ ! 66:cab & D$_{2h}^{20}$ & Amaa & -A 2a 2 \\ ! 66:bca & D$_{2h}^{20}$ & Bbmb & -B 2b 2b \\ ! 67 & D$_{2h}^{21}$ & Cmma & -C 2b 2 \\ ! 67:ba-c & D$_{2h}^{21}$ & Cmmb & -C 2b 2b \\ ! 67:cab & D$_{2h}^{21}$ & Abmm & -A 2c 2c \\ ! 67:-cba & D$_{2h}^{21}$ & Acmm & -A 2 2c \\ ! 67:bca & D$_{2h}^{21}$ & Bmcm & -B 2 2c \\ ! 67:a-cb & D$_{2h}^{21}$ & Bmam & -B 2c 2 \\ ! 68:1 & D$_{2h}^{22}$ & Ccca:1 & C 2 2 -1bc \\ ! 68:2 & D$_{2h}^{22}$ & Ccca:2 & -C 2b 2bc \\ ! 68:1ba-c & D$_{2h}^{22}$ & Cccb:1 & C 2 2 -1bc \\ ! 68:2ba-c & D$_{2h}^{22}$ & Cccb:2 & -C 2b 2c \\ ! 68:1cab & D$_{2h}^{22}$ & Abaa:1 & A 2 2 -1ac \\ ! 68:2cab & D$_{2h}^{22}$ & Abaa:2 & -A 2a 2c \\ ! 68:1-cba & D$_{2h}^{22}$ & Acaa:1 & A 2 2 -1ac \\ ! 68:2-cba & D$_{2h}^{22}$ & Acaa:2 & -A 2ac 2c \\ ! 68:1bca & D$_{2h}^{22}$ & Bbcb:1 & B 2 2 -1bc \\ ! 68:2bca & D$_{2h}^{22}$ & Bbcb:2 & -B 2bc 2b \\ ! 68:1a-cb & D$_{2h}^{22}$ & Bbab:1 & B 2 2 -1bc \\ ! 68:2a-cb & D$_{2h}^{22}$ & Bbab:2 & -B 2b 2bc \\ ! 69 & D$_{2h}^{23}$ & Fmmm & -F 2 2 \\ ! 70:1 & D$_{2h}^{24}$ & Fddd:1 & F 2 2 -1d \\ ! 70:2 & D$_{2h}^{24}$ & Fddd:2 & -F 2uv 2vw \\ ! 71 & D$_{2h}^{25}$ & Immm & -I 2 2 \\ ! 72 & D$_{2h}^{26}$ & Ibam & -I 2 2c \\ ! 72:cab & D$_{2h}^{26}$ & Imcb & -I 2a 2 \\ ! 72:bca & D$_{2h}^{26}$ & Icma & -I 2b 2b \\ ! 73 & D$_{2h}^{27}$ & Ibca & -I 2b 2c \\ ! 73:ba-c & D$_{2h}^{27}$ & Icab & -I 2a 2b \\ ! 74 & D$_{2h}^{28}$ & Imma & -I 2b 2 \\ ! 74:ba-c & D$_{2h}^{28}$ & Immb & -I 2a 2a \\ ! 74:cab & D$_{2h}^{28}$ & Ibmm & -I 2c 2c \\ ! 74:-cba & D$_{2h}^{28}$ & Icmm & -I 2 2b \\ ! 74:bca & D$_{2h}^{28}$ & Imcm & -I 2 2a \\ ! 74:a-cb & D$_{2h}^{28}$ & Imam & -I 2c 2 \\ ! 75 & C$_{4}^{1}$ & P4 & P 4 \\ ! 76 & C$_{4}^{2}$ & P41 & P 4w \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 77 & C$_{4}^{3}$ & P42 & P 4c \\ ! 78 & C$_{4}^{4}$ & P43 & P 4cw \\ ! 79 & C$_{4}^{5}$ & I4 & I 4 \\ ! 80 & C$_{4}^{6}$ & I41 & I 4bw \\ ! 81 & S$_{4}^{1}$ & P-4 & P -4 \\ ! 82 & S$_{4}^{2}$ & I-4 & I -4 \\ ! 83 & C$_{4h}^{1}$ & P4/m & -P 4 \\ ! 84 & C$_{4h}^{2}$ & P42/m & -P 4c \\ ! 85:1 & C$_{4h}^{3}$ & P4/n:1 & P 4ab -1ab \\ ! 85:2 & C$_{4h}^{3}$ & P4/n:2 & -P 4a \\ ! 86:1 & C$_{4h}^{4}$ & P42/n:1 & P 4n -1n \\ ! 86:2 & C$_{4h}^{4}$ & P42/n:2 & -P 4bc \\ ! 87 & C$_{4h}^{5}$ & I4/m & -I 4 \\ ! 88:1 & C$_{4h}^{6}$ & I41/a:1 & I 4bw -1bw \\ ! 88:2 & C$_{4h}^{6}$ & I41/a:2 & -I 4ad \\ ! 89 & D$_{4}^{1}$ & P422 & P 4 2 \\ ! 90 & D$_{4}^{2}$ & P4212 & P 4ab 2ab \\ ! 91 & D$_{4}^{3}$ & P4122 & P 4w 2c \\ ! 92 & D$_{4}^{4}$ & P41212 & P 4abw 2nw \\ ! 93 & D$_{4}^{5}$ & P4222 & P 4c 2 \\ ! 94 & D$_{4}^{6}$ & P42212 & P 4n 2n \\ ! 95 & D$_{4}^{7}$ & P4322 & P 4cw 2c \\ ! 96 & D$_{4}^{8}$ & P43212 & P 4nw 2abw \\ ! 97 & D$_{4}^{9}$ & I422 & I 4 2 \\ ! 98 & D$_{4}^{10}$ & I4122 & I 4bw 2bw \\ ! 99 & C$_{4v}^{1}$ & P4mm & P 4 -2 \\ ! 100 & C$_{4v}^{2}$ & P4bm & P 4 -2ab \\ ! 101 & C$_{4v}^{3}$ & P42cm & P 4c -2c \\ ! 102 & C$_{4v}^{4}$ & P42nm & P 4n -2n \\ ! 103 & C$_{4v}^{5}$ & P4cc & P 4 -2c \\ ! 104 & C$_{4v}^{6}$ & P4nc & P 4 -2n \\ ! 105 & C$_{4v}^{7}$ & P42mc & P 4c -2 \\ ! 106 & C$_{4v}^{8}$ & P42bc & P 4c -2ab \\ ! 107 & C$_{4v}^{9}$ & I4mm & I 4 -2 \\ ! 108 & C$_{4v}^{10}$ & I4cm & I 4 -2c \\ ! 109 & C$_{4v}^{11}$ & I41md & I 4bw -2 \\ ! 110 & C$_{4v}^{12}$ & I41cd & I 4bw -2c \\ ! 111 & D$_{2d}^{1}$ & P-42m & P -4 2 \\ ! 112 & D$_{2d}^{2}$ & P-42c & P -4 2c \\ ! 113 & D$_{2d}^{3}$ & P-421m & P -4 2ab \\ ! 114 & D$_{2d}^{4}$ & P-421c & P -4 2n \\ ! 115 & D$_{2d}^{5}$ & P-4m2 & P -4 -2 \\ ! 116 & D$_{2d}^{6}$ & P-4c2 & P -4 -2c \\ ! 117 & D$_{2d}^{7}$ & P-4b2 & P -4 -2ab \\ ! 118 & D$_{2d}^{8}$ & P-4n2 & P -4 -2n \\ ! 119 & D$_{2d}^{9}$ & I-4m2 & I -4 -2 \\ ! 120 & D$_{2d}^{10}$ & I-4c2 & I -4 -2c \\ ! 121 & D$_{2d}^{11}$ & I-42m & I -4 2 \\ ! 122 & D$_{2d}^{12}$ & I-42d & I -4 2bw \\ ! 123 & D$_{4h}^{1}$ & P4/mmm & -P 4 2 \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 124 & D$_{4h}^{2}$ & P4/mcc & -P 4 2c \\ ! 125:1 & D$_{4h}^{3}$ & P4/nbm:1 & P 4 2 -1ab \\ ! 125:2 & D$_{4h}^{3}$ & P4/nbm:2 & -P 4a 2b \\ ! 126:1 & D$_{4h}^{4}$ & P4/nnc:1 & P 4 2 -1n \\ ! 126:2 & D$_{4h}^{4}$ & P4/nnc:2 & -P 4a 2bc \\ ! 127 & D$_{4h}^{5}$ & P4/mbm & -P 4 2ab \\ ! 128 & D$_{4h}^{6}$ & P4/mnc & -P 4 2n \\ ! 129:1 & D$_{4h}^{7}$ & P4/nmm:1 & P 4ab 2ab -1ab \\ ! 129:2 & D$_{4h}^{7}$ & P4/nmm:2 & -P 4a 2a \\ ! 130:1 & D$_{4h}^{8}$ & P4/ncc:1 & P 4ab 2n -1ab \\ ! 130:2 & D$_{4h}^{8}$ & P4/ncc:2 & -P 4a 2ac \\ ! 131 & D$_{4h}^{9}$ & P42/mmc & -P 4c 2 \\ ! 132 & D$_{4h}^{10}$ & P42/mcm & -P 4c 2c \\ ! 133:1 & D$_{4h}^{11}$ & P42/nbc:1 & P 4n 2c -1n \\ ! 133:2 & D$_{4h}^{11}$ & P42/nbc:2 & -P 4ac 2b \\ ! 134:1 & D$_{4h}^{12}$ & P42/nnm:1 & P 4n 2 -1n \\ ! 134:2 & D$_{4h}^{12}$ & P42/nnm:2 & -P 4ac 2bc \\ ! 135 & D$_{4h}^{13}$ & P42/mbc & -P 4c 2ab \\ ! 136 & D$_{4h}^{14}$ & P42/mnm & -P 4n 2n \\ ! 137:1 & D$_{4h}^{15}$ & P42/nmc:1 & P 4n 2n -1n \\ ! 137:2 & D$_{4h}^{15}$ & P42/nmc:2 & -P 4ac 2a \\ ! 138:1 & D$_{4h}^{16}$ & P42/ncm:1 & P 4n 2ab -1n \\ ! 138:2 & D$_{4h}^{16}$ & P42/ncm:2 & -P 4ac 2ac \\ ! 139 & D$_{4h}^{17}$ & I4/mmm & -I 4 2 \\ ! 140 & D$_{4h}^{18}$ & I4/mcm & -I 4 2c \\ ! 141:1 & D$_{4h}^{19}$ & I41/amd:1 & I 4bw 2bw -1bw \\ ! 141:2 & D$_{4h}^{19}$ & I41/amd:2 & -I 4bd 2 \\ ! 142:1 & D$_{4h}^{20}$ & I41/acd:1 & I 4bw 2aw -1bw \\ ! 142:2 & D$_{4h}^{20}$ & I41/acd:2 & -I 4bd 2c \\ ! 143 & C$_{3}^{1}$ & P3 & P 3 \\ ! 144 & C$_{3}^{2}$ & P31 & P 31 \\ ! 145 & C$_{3}^{3}$ & P32 & P 32 \\ ! 146:H & C$_{3}^{4}$ & R3:H & R 3 \\ ! 146:R & C$_{3}^{4}$ & R3:R & P 3* \\ ! 147 & C$_{3i}^{1}$ & P-3 & -P 3 \\ ! 148:H & C$_{3i}^{2}$ & R-3:H & -R 3 \\ ! 148:R & C$_{3i}^{2}$ & R-3:R & -P 3* \\ ! 149 & D$_{3}^{1}$ & P312 & P 3 2 \\ ! 150 & D$_{3}^{2}$ & P321 & P 3 2$''$ \\ ! 151 & D$_{3}^{3}$ & P3112 & P 31 2c (0 0 1) \\ ! 152 & D$_{3}^{4}$ & P3121 & P 31 2$''$ \\ ! 153 & D$_{3}^{5}$ & P3212 & P 32 2c (0 0 -1) \\ ! 154 & D$_{3}^{6}$ & P3221 & P 32 2$''$ \\ ! 155:H & D$_{3}^{7}$ & R32:H & R 3 2$''$ \\ ! 155:R & D$_{3}^{7}$ & R32:R & P 3* 2 \\ ! 156 & C$_{3v}^{1}$ & P3m1 & P 3 -2$''$ \\ ! 157 & C$_{3v}^{2}$ & P31m & P 3 -2 \\ ! 158 & C$_{3v}^{3}$ & P3c1 & P 3 -2$''$c \\ ! 159 & C$_{3v}^{4}$ & P31c & P 3 -2c \\ ! 160:H & C$_{3v}^{5}$ & R3m:H & R 3 -2$''$ \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 160:R & C$_{3v}^{5}$ & R3m:R & P 3* -2 \\ ! 161:H & C$_{3v}^{6}$ & R3c:H & R 3 -2$''$c \\ ! 161:R & C$_{3v}^{6}$ & R3c:R & P 3* -2n \\ ! 162 & D$_{3d}^{1}$ & P-31m & -P 3 2 \\ ! 163 & D$_{3d}^{2}$ & P-31c & -P 3 2c \\ ! 164 & D$_{3d}^{3}$ & P-3m1 & -P 3 2$''$ \\ ! 165 & D$_{3d}^{4}$ & P-3c1 & -P 3 2$''$c \\ ! 166:H & D$_{3d}^{5}$ & R-3m:H & -R 3 2$''$ \\ ! 166:R & D$_{3d}^{5}$ & R-3m:R & -P 3* 2 \\ ! 167:H & D$_{3d}^{6}$ & R-3c:H & -R 3 2$''$c \\ ! 167:R & D$_{3d}^{6}$ & R-3c:R & -P 3* 2n \\ ! 168 & C$_{6}^{1}$ & P6 & P 6 \\ ! 169 & C$_{6}^{2}$ & P61 & P 61 \\ ! 170 & C$_{6}^{3}$ & P65 & P 65 \\ ! 171 & C$_{6}^{4}$ & P62 & P 62 \\ ! 172 & C$_{6}^{5}$ & P64 & P 64 \\ ! 173 & C$_{6}^{6}$ & P63 & P 6c \\ ! 174 & C$_{3h}^{1}$ & P-6 & P -6 \\ ! 175 & C$_{6h}^{1}$ & P6/m & -P 6 \\ ! 176 & C$_{6h}^{2}$ & P63/m & -P 6c \\ ! 177 & D$_{6}^{1}$ & P622 & P 6 2 \\ ! 178 & D$_{6}^{2}$ & P6122 & P 61 2 (0 0 -1) \\ ! 179 & D$_{6}^{3}$ & P6522 & P 65 2 (0 0 1) \\ ! 180 & D$_{6}^{4}$ & P6222 & P 62 2c (0 0 1) \\ ! 181 & D$_{6}^{5}$ & P6422 & P 64 2c (0 0 -1) \\ ! 182 & D$_{6}^{6}$ & P6322 & P 6c 2c \\ ! 183 & C$_{6v}^{1}$ & P6mm & P 6 -2 \\ ! 184 & C$_{6v}^{2}$ & P6cc & P 6 -2c \\ ! 185 & C$_{6v}^{3}$ & P63cm & P 6c -2 \\ ! 186 & C$_{6v}^{4}$ & P63mc & P 6c -2c \\ ! 187 & D$_{3h}^{1}$ & P-6m2 & P -6 2 \\ ! 188 & D$_{3h}^{2}$ & P-6c2 & P -6c 2 \\ ! 189 & D$_{3h}^{3}$ & P-62m & P -6 -2 \\ ! 190 & D$_{3h}^{4}$ & P-62c & P -6c -2c \\ ! 191 & D$_{6h}^{1}$ & P6/mmm & -P 6 2 \\ ! 192 & D$_{6h}^{2}$ & P6/mcc & -P 6 2c \\ ! 193 & D$_{6h}^{3}$ & P63/mcm & -P 6c 2 \\ ! 194 & D$_{6h}^{4}$ & P63/mmc & -P 6c 2c \\ ! 195 & T$_{}^{1}$ & P23 & P 2 2 3 \\ ! 196 & T$_{}^{2}$ & F23 & F 2 2 3 \\ ! 197 & T$_{}^{3}$ & I23 & I 2 2 3 \\ ! 198 & T$_{}^{4}$ & P213 & P 2ac 2ab 3 \\ ! 199 & T$_{}^{5}$ & I213 & I 2b 2c 3 \\ ! 200 & T$_{h}^{1}$ & Pm-3 & -P 2 2 3 \\ ! 201:1 & T$_{h}^{2}$ & Pn-3:1 & P 2 2 3 -1n \\ ! 201:2 & T$_{h}^{2}$ & Pn-3:2 & -P 2ab 2bc 3 \\ ! 202 & T$_{h}^{3}$ & Fm-3 & -F 2 2 3 \\ ! 203:1 & T$_{h}^{4}$ & Fd-3:1 & F 2 2 3 -1d \\ ! 203:2 & T$_{h}^{4}$ & Fd-3:2 & -F 2uv 2vw 3 \\ ! 204 & T$_{h}^{5}$ & Im-3 & -I 2 2 3 \\ ! \hline ! \end{tabular} ! \newpage ! \begin{tabular}{|l|l|l|l|} ! \hline ! Number & Schoenflies & Hermann-Mauguin & Hall \\ ! \hline ! 205 & T$_{h}^{6}$ & Pa-3 & -P 2ac 2ab 3 \\ ! 206 & T$_{h}^{7}$ & Ia-3 & -I 2b 2c 3 \\ ! 207 & O$^{1}$ & P432 & P 4 2 3 \\ ! 208 & O$^{2}$ & P4232 & P 4n 2 3 \\ ! 209 & O$^{3}$ & F432 & F 4 2 3 \\ ! 210 & O$^{4}$ & F4132 & F 4d 2 3 \\ ! 211 & O$^{5}$ & I432 & I 4 2 3 \\ ! 212 & O$^{6}$ & P4332 & P 4acd 2ab 3 \\ ! 213 & O$^{7}$ & P4132 & P 4bd 2ab 3 \\ ! 214 & O$^{8}$ & I4132 & I 4bd 2c 3 \\ ! 215 & T$_{d}^{1}$ & P-43m & P -4 2 3 \\ ! 216 & T$_{d}^{2}$ & F-43m & F -4 2 3 \\ ! 217 & T$_{d}^{3}$ & I-43m & I -4 2 3 \\ ! 218 & T$_{d}^{4}$ & P-43n & P -4n 2 3 \\ ! 219 & T$_{d}^{5}$ & F-43c & F -4c 2 3 \\ ! 220 & T$_{d}^{6}$ & I-43d & I -4bd 2c 3 \\ ! 221 & O$_{h}^{1}$ & Pm-3m & -P 4 2 3 \\ ! 222:1 & O$_{h}^{2}$ & Pn-3n:1 & P 4 2 3 -1n \\ ! 222:2 & O$_{h}^{2}$ & Pn-3n:2 & -P 4a 2bc 3 \\ ! 223 & O$_{h}^{3}$ & Pm-3n & -P 4n 2 3 \\ ! 224:1 & O$_{h}^{4}$ & Pn-3m:1 & P 4n 2 3 -1n \\ ! 224:2 & O$_{h}^{4}$ & Pn-3m:2 & -P 4bc 2bc 3 \\ ! 225 & O$_{h}^{5}$ & Fm-3m & -F 4 2 3 \\ ! 226 & O$_{h}^{6}$ & Fm-3c & -F 4c 2 3 \\ ! 227:1 & O$_{h}^{7}$ & Fd-3m:1 & F 4d 2 3 -1d \\ ! 227:2 & O$_{h}^{7}$ & Fd-3m:2 & -F 4vw 2vw 3 \\ ! 228:1 & O$_{h}^{8}$ & Fd-3c:1 & F 4d 2 3 -1cd \\ ! 228:2 & O$_{h}^{8}$ & Fd-3c:2 & -F 4cvw 2vw 3 \\ ! 229 & O$_{h}^{9}$ & Im-3m & -I 4 2 3 \\ ! 230 & O$_{h}^{10}$ & Ia-3d & -I 4bd 2c 3 \\ ! \hline ! \end{tabular} ! \end{center} ! !EOI elk-6.3.2/src/spacegroup/PaxHeaders.21352/modmain.f900000644000000000000000000000013213543334727016744 xustar0030 mtime=1569569239.653645123 30 atime=1569569239.652645124 30 ctime=1569569239.653645123 elk-6.3.2/src/spacegroup/modmain.f900000644002504400250440000000454313543334727021021 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !MODULE: modmain ! !DESCRIPTION: ! Contains all the global variables required by the spacegroup code. ! ! !REVISION HISTORY: ! Created October 2006 (JKD) !EOP !BOC module modmain !-------------------------------! ! space group variables ! !-------------------------------! ! Hermann-Mauguin symbol character(20) hrmg ! space-group number character(20) num ! Schoenflies symbol character(20) schn ! Hall symbol character(20) hall !----------------------------! ! lattice parameters ! !----------------------------! ! number of unit cells integer ncell(3) ! lattice vector lengths real(8) a,b,c ! lattice vector angles real(8) ab,ac,bc ! lattice vectors stored column-wise real(8) avec(3,3) ! inverse of lattice vector matrix real(8) ainv(3,3) ! any vector with length less than epslat is considered zero real(8), parameter :: epslat=1.d-6 !--------------------------! ! atomic variables ! !--------------------------! ! maximum allowed species integer, parameter :: maxspecies=8 ! maximum allowed atoms per species integer, parameter :: maxatoms=1000 ! number of species integer nspecies ! number of atoms for each species integer natoms(maxspecies) ! total number of atoms integer natmtot ! primcell is .true. if primitive unit cell is to be found automatically logical primcell ! maximum allowed Wyckoff positions integer, parameter :: maxwpos=100 ! number of Wyckoff positions integer nwpos(maxspecies) ! Wyckoff positions real(8) wpos(3,maxwpos,maxspecies) ! atomic positions in lattice coordinates real(8) atposl(3,maxatoms,maxspecies) ! atomic positions in Cartesian coordinates real(8) atposc(3,maxatoms,maxspecies) ! magnetic fields real(8) bfcmt0(3,maxatoms,maxspecies) !----------------------------------! ! atomic species variables ! !----------------------------------! ! species symbol character(256) spsymb(maxspecies) !-----------------------------! ! numerical constants ! !-----------------------------! real(8), parameter :: pi=3.1415926535897932385d0 !---------------------------------! ! miscellaneous variables ! !---------------------------------! ! code version integer version(3) data version / 1,2,1 / end module !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/r3cross.f900000644000000000000000000000013213543334727016716 xustar0030 mtime=1569569239.657645121 30 atime=1569569239.656645121 30 ctime=1569569239.657645121 elk-6.3.2/src/spacegroup/r3cross.f900000644002504400250440000000137313543334727020771 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3cross ! !INTERFACE: subroutine r3cross(x,y,z) ! !INPUT/OUTPUT PARAMETERS: ! x : input vector 1 (in,real(3)) ! y : input vector 2 (in,real(3)) ! z : output cross-product (out,real(3)) ! !DESCRIPTION: ! Returns the cross product of two real 3-vectors. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: x(3) real(8), intent(in) :: y(3) real(8), intent(out) :: z(3) z(1)=x(2)*y(3)-x(3)*y(2) z(2)=x(3)*y(1)-x(1)*y(3) z(3)=x(1)*y(2)-x(2)*y(1) return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/r3frac.f900000644000000000000000000000013213543334727016500 xustar0030 mtime=1569569239.661645118 30 atime=1569569239.660645119 30 ctime=1569569239.661645118 elk-6.3.2/src/spacegroup/r3frac.f900000644002504400250440000000176013543334727020553 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3frac ! !INTERFACE: subroutine r3frac(eps,v) ! !INPUT/OUTPUT PARAMETERS: ! eps : zero component tolerance (in,real) ! v : input vector (inout,real(3)) ! !DESCRIPTION: ! Finds the fractional part of each component of a real 3-vector using the ! function ${\rm frac}\,(x)=x-\lfloor x\rfloor$. A component is taken to be ! zero if it lies within the intervals $[0,\epsilon)$ or $(1-\epsilon,1]$. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) ! Removed iv, September 2011 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: eps real(8), intent(inout) :: v(3) ! local variables integer i do i=1,3 v(i)=v(i)-int(v(i)) if (v(i).lt.0.d0) v(i)=v(i)+1.d0 if ((1.d0-v(i)).lt.eps) v(i)=0.d0 if (v(i).lt.eps) v(i)=0.d0 end do return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/r3minv.f900000644000000000000000000000013213543334727016536 xustar0030 mtime=1569569239.664645116 30 atime=1569569239.663645117 30 ctime=1569569239.664645116 elk-6.3.2/src/spacegroup/r3minv.f900000644002504400250440000000236213543334727020610 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3minv ! !INTERFACE: subroutine r3minv(a,b) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,real(3,3)) ! b : output matrix (in,real(3,3)) ! !DESCRIPTION: ! Computes the inverse of a real $3\times 3$ matrix. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3) real(8), intent(out) :: b(3,3) ! local variables real(8) t1 t1=a(1,2)*a(2,3)*a(3,1)-a(1,3)*a(2,2)*a(3,1)+a(1,3)*a(2,1)*a(3,2) & -a(1,1)*a(2,3)*a(3,2)+a(1,1)*a(2,2)*a(3,3)-a(1,2)*a(2,1)*a(3,3) if (abs(t1).lt.1.d-40) then write(*,*) write(*,'("Error(r3minv): singular matrix")') write(*,*) stop end if t1=1.d0/t1 b(1,1)=(a(2,2)*a(3,3)-a(2,3)*a(3,2))*t1 b(1,2)=(a(1,3)*a(3,2)-a(1,2)*a(3,3))*t1 b(1,3)=(a(1,2)*a(2,3)-a(1,3)*a(2,2))*t1 b(2,1)=(a(2,3)*a(3,1)-a(2,1)*a(3,3))*t1 b(2,2)=(a(1,1)*a(3,3)-a(1,3)*a(3,1))*t1 b(2,3)=(a(1,3)*a(2,1)-a(1,1)*a(2,3))*t1 b(3,1)=(a(2,1)*a(3,2)-a(2,2)*a(3,1))*t1 b(3,2)=(a(1,2)*a(3,1)-a(1,1)*a(3,2))*t1 b(3,3)=(a(1,1)*a(2,2)-a(1,2)*a(2,1))*t1 return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/r3mm.f900000644000000000000000000000013213543334727016176 xustar0030 mtime=1569569239.668645114 30 atime=1569569239.667645114 30 ctime=1569569239.668645114 elk-6.3.2/src/spacegroup/r3mm.f900000644002504400250440000000213513543334727020246 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mm ! !INTERFACE: subroutine r3mm(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,real(3,3)) ! b : input matrix 2 (in,real(3,3)) ! c : output matrix (out,real(3,3)) ! !DESCRIPTION: ! Multiplies two real $3\times 3$ matrices. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3) real(8), intent(in) :: b(3,3) real(8), intent(out) :: c(3,3) c(1,1)=a(1,1)*b(1,1)+a(1,2)*b(2,1)+a(1,3)*b(3,1) c(2,1)=a(2,1)*b(1,1)+a(2,2)*b(2,1)+a(2,3)*b(3,1) c(3,1)=a(3,1)*b(1,1)+a(3,2)*b(2,1)+a(3,3)*b(3,1) c(1,2)=a(1,1)*b(1,2)+a(1,2)*b(2,2)+a(1,3)*b(3,2) c(2,2)=a(2,1)*b(1,2)+a(2,2)*b(2,2)+a(2,3)*b(3,2) c(3,2)=a(3,1)*b(1,2)+a(3,2)*b(2,2)+a(3,3)*b(3,2) c(1,3)=a(1,1)*b(1,3)+a(1,2)*b(2,3)+a(1,3)*b(3,3) c(2,3)=a(2,1)*b(1,3)+a(2,2)*b(2,3)+a(2,3)*b(3,3) c(3,3)=a(3,1)*b(1,3)+a(3,2)*b(2,3)+a(3,3)*b(3,3) return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/r3mv.f900000644000000000000000000000013213543334727016207 xustar0030 mtime=1569569239.672645111 30 atime=1569569239.671645112 30 ctime=1569569239.672645111 elk-6.3.2/src/spacegroup/r3mv.f900000644002504400250440000000143713543334727020263 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mv ! !INTERFACE: subroutine r3mv(a,x,y) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,real(3,3)) ! x : input vector (in,real(3)) ! y : output vector (out,real(3)) ! !DESCRIPTION: ! Multiplies a real $3\times 3$ matrix with a vector. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3) real(8), intent(in) :: x(3) real(8), intent(out) :: y(3) y(1)=a(1,1)*x(1)+a(1,2)*x(2)+a(1,3)*x(3) y(2)=a(2,1)*x(1)+a(2,2)*x(2)+a(2,3)*x(3) y(3)=a(3,1)*x(1)+a(3,2)*x(2)+a(3,3)*x(3) return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/readinput.f900000644000000000000000000000013213543334727017313 xustar0030 mtime=1569569239.675645109 30 atime=1569569239.675645109 30 ctime=1569569239.675645109 elk-6.3.2/src/spacegroup/readinput.f900000644002504400250440000000300313543334727021356 0ustar00dewhurstdewhurst00000000000000subroutine readinput use modmain implicit none ! local variables integer is,ip open(50,file='spacegroup.in',action='READ',status='OLD',form='FORMATTED') ! read the Hermann-Mauguin symbol read(50,*) hrmg hrmg=adjustl(hrmg) ! read lattice vector lengths read(50,*) a,b,c ! read angles between lattice vectors: alpha, beta, gamma ! (convention fixed by F. Cricchio) read(50,*) bc,ac,ab ! read number of unit cells read(50,*) ncell if ((ncell(1).lt.1).or.(ncell(2).lt.1).or.(ncell(3).lt.1)) then write(*,*) write(*,'("Error(readinput): invalid ncell : ",3I8)') ncell write(*,*) stop end if read(50,*) primcell read(50,*) nspecies if (nspecies.le.0) then write(*,*) write(*,'("Error(readinput): nspecies <= 0 : ",I8)') nspecies write(*,*) stop end if if (nspecies.gt.maxspecies) then write(*,*) write(*,'("Error(readinput): nspecies too large : ",I8)') nspecies write(*,'("Adjust maxspecies and recompile code")') write(*,*) stop end if do is=1,nspecies read(50,*) spsymb(is) read(50,*) nwpos(is) if (nwpos(is).le.0) then write(*,*) write(*,'("Error(readinput): nwpos <= 0 : ",I8)') nwpos(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (nwpos(is).gt.maxwpos) then write(*,*) write(*,'("Error(readinput): nwpos too large : ",I8)') nwpos(is) write(*,'(" for species ",I4)') is write(*,'("Adjust maxwpos and reompile code")') write(*,*) stop end if do ip=1,nwpos(is) read(50,*) wpos(:,ip,is) end do end do close(50) return end subroutine elk-6.3.2/src/spacegroup/PaxHeaders.21352/seitzeq.f900000644000000000000000000000013213543334727017004 xustar0030 mtime=1569569239.679645107 30 atime=1569569239.678645107 30 ctime=1569569239.679645107 elk-6.3.2/src/spacegroup/seitzeq.f900000644002504400250440000000127113543334727021054 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. logical function seitzeq(eps,sr1,st1,sr2,st2) implicit none ! arguments real(8), intent(in) :: eps real(8), intent(in) :: sr1(3,3) real(8), intent(in) :: st1(3) real(8), intent(in) :: sr2(3,3) real(8), intent(in) :: st2(3) ! local variables integer j real(8) v1(3),v2(3) seitzeq=.false. do j=1,3 v1(:)=sr1(:,j)+st1(:) v2(:)=sr2(:,j)+st2(:) if ((abs(v1(1)-v2(1)).gt.eps).or. & (abs(v1(2)-v2(2)).gt.eps).or. & (abs(v1(3)-v2(3)).gt.eps)) return end do seitzeq=.true. return end function elk-6.3.2/src/spacegroup/PaxHeaders.21352/seitzgen.f900000644000000000000000000000013213543334727017150 xustar0030 mtime=1569569239.684645103 30 atime=1569569239.682645105 30 ctime=1569569239.684645103 elk-6.3.2/src/spacegroup/seitzgen.f900000644002504400250440000002566713543334727021237 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine seitzgen(hall,ngen,srgen,stgen) implicit none character(20), intent(in) :: hall integer, intent(out) :: ngen real(8), intent(out) :: srgen(3,3,12) real(8), intent(out) :: stgen(3,12) ! local variables logical pr integer i,m,n,no,nop,axis ! zero vector tolerance real(8), parameter :: eps=1.d-6 real(8) av(3),r(3,3),t1 real(8) v1(3),v2(3),v3(3) character(20) str1,str2,str3 str1=trim(adjustl(hall))//' ' no=0 nop=0 axis=0 n=0 10 continue ! check for origin shift vector if (scan(str1,'(').eq.1) then if (index(str1,'(0 0 1)').ne.0) then v1(1)=0.d0; v1(2)=0.d0; v1(3)=1.d0 else if (index(str1,'(0 0 -1)').ne.0) then v1(1)=0.d0; v1(2)=0.d0; v1(3)=-1.d0 else write(*,*) write(*,'("Error(seitzgen): origin-shift not available : ",A)') trim(str1) write(*,*) stop end if v1(:)=v1(:)/12.d0 ! apply vector shift to all Seitz matrices do i=1,ngen v3(:)=-v1(:) call r3mv(srgen(:,:,i),v3,v2) v2(:)=v2(:)+stgen(:,i) stgen(:,i)=v2(:)+v1(:) end do goto 20 end if m=scan(str1,' ') if (m.le.1) goto 20 str2=str1(1:m-1) n=n+1 !------------------------------! ! lattice translations ! !------------------------------! if (n.eq.1) then stgen(:,1)=0.d0 if (scan(str2,'P').ne.0) then ngen=1 else if (scan(str2,'A').ne.0) then stgen(1,2)=0.d0 stgen(2,2)=0.5d0 stgen(3,2)=0.5d0 ngen=2 else if (scan(str2,'B').ne.0) then stgen(1,2)=0.5d0 stgen(2,2)=0.d0 stgen(3,2)=0.5d0 ngen=2 else if (scan(str2,'C').ne.0) then stgen(1,2)=0.5d0 stgen(2,2)=0.5d0 stgen(3,2)=0.d0 ngen=2 else if (scan(str2,'I').ne.0) then stgen(:,2)=0.5d0 ngen=2 else if (scan(str2,'R').ne.0) then stgen(1,2)=0.6666666666666666667d0 stgen(2,2)=0.3333333333333333333d0 stgen(3,2)=0.3333333333333333333d0 stgen(1,3)=0.3333333333333333333d0 stgen(2,3)=0.6666666666666666667d0 stgen(3,3)=0.6666666666666666667d0 ngen=3 else if (scan(str2,'S').ne.0) then stgen(1,2)=0.3333333333333333333d0 stgen(2,2)=0.3333333333333333333d0 stgen(3,2)=0.6666666666666666667d0 stgen(1,3)=0.6666666666666666667d0 stgen(2,3)=0.6666666666666666667d0 stgen(3,3)=0.3333333333333333333d0 ngen=3 else if (scan(str2,'T').ne.0) then stgen(1,2)=0.3333333333333333333d0 stgen(2,2)=0.6666666666666666667d0 stgen(3,2)=0.3333333333333333333d0 stgen(1,3)=0.6666666666666666667d0 stgen(2,3)=0.3333333333333333333d0 stgen(3,3)=0.6666666666666666667d0 ngen=3 else if (scan(str2,'F').ne.0) then stgen(1,2)=0.d0 stgen(2,2)=0.5d0 stgen(3,2)=0.5d0 stgen(1,3)=0.5d0 stgen(2,3)=0.d0 stgen(3,3)=0.5d0 stgen(1,4)=0.5d0 stgen(2,4)=0.5d0 stgen(3,4)=0.d0 ngen=4 else write(*,*) write(*,'("Error(seitzgen): Lattice symbol ''",A,"'' not found")') & trim(str2) write(*,*) stop end if ! set the rotations to the identity do i=1,ngen srgen(1,1,i)=1.d0; srgen(1,2,i)=0.d0; srgen(1,3,i)=0.d0 srgen(2,1,i)=0.d0; srgen(2,2,i)=1.d0; srgen(2,3,i)=0.d0 srgen(3,1,i)=0.d0; srgen(3,2,i)=0.d0; srgen(3,3,i)=1.d0 end do ! check if lattice is centrosymmetric if (scan(str2,'-').ne.0) then do i=ngen+1,2*ngen srgen(:,:,i)=-srgen(:,:,i-ngen) stgen(:,i)=stgen(:,i-ngen) end do ngen=2*ngen end if end if !-------------------------------! ! rotation-translations ! !-------------------------------! if (n.ge.2) then ! determine if rotation is proper or improper if (scan(str2,'-').eq.1) then pr=.false. ! remove the minus sign str3=str2(2:) str2=str3 else pr=.true. end if ! determine the order of rotation if (scan(str2,'1').eq.1) then no=1 else if (scan(str2,'2').eq.1) then no=2 else if (scan(str2,'3').eq.1) then no=3 else if (scan(str2,'4').eq.1) then no=4 else if (scan(str2,'6').eq.1) then no=6 else write(*,*) write(*,'("Error(seitzgen): invalid rotation order for Hall symbol ''",A,& &"''")') trim(hall) write(*,*) stop end if ! determine the axis of rotation if (scan(str2,'x').ne.0) then ! a axis axis=1 else if (scan(str2,'y').ne.0) then ! b axis axis=2 else if (scan(str2,'z').ne.0) then ! c axis axis=3 else if (scan(str2,'"').ne.0) then ! a+b axis=5 else if (scan(str2,'*').ne.0) then ! a+b+c axis axis=6 else if (n.eq.2) then ! default first rotation is along c axis=3 else if ((n.eq.3).and.(no.eq.2)) then ! default second rotation if ((nop.eq.2).or.(nop.eq.4)) then ! a axis axis=1 else if ((nop.eq.3).or.(nop.eq.6)) then ! a-b axis axis=4 else write(*,*) write(*,'("Error(seitzgen): malformed Hall symbol ''",A,"''")') trim(hall) write(*,'(" for default second rotation")') write(*,*) stop end if else if ((n.eq.4).and.(no.eq.3)) then ! third rotation around a+b+c axis axis=6 else if (no.eq.1) then ! arbitrary axis for identity axis=1 else write(*,*) write(*,'("Error(seitzgen): malformed Hall symbol ''",A,"''")') trim(hall) write(*,*) stop end if ! determine axis vector av(:)=0.d0 if (axis.eq.1) then ! a axis av(1)=1.d0 else if (axis.eq.2) then ! b axis av(2)=1.d0 else if (axis.eq.3) then ! c axis av(3)=1.d0 else if (axis.eq.4) then ! a-b axis av(1)=1.d0 av(2)=-1.d0 else if (axis.eq.5) then ! a+b axis av(1)=1.d0 av(2)=1.d0 else if (axis.eq.6) then ! a+b+c axis av(:)=1.d0 end if ! compute the rotation part of the Seitz matrix if (axis.eq.1) then ! a axis if (no.eq.1) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 else if (no.eq.2) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)=-1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)=-1.d0 else if (no.eq.3) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 0.d0; r(2,3)=-1.d0 r(3,1)= 0.d0; r(3,2)= 1.d0; r(3,3)=-1.d0 else if (no.eq.4) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 0.d0; r(2,3)=-1.d0 r(3,1)= 0.d0; r(3,2)= 1.d0; r(3,3)= 0.d0 else if (no.eq.6) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)=-1.d0 r(3,1)= 0.d0; r(3,2)= 1.d0; r(3,3)= 0.d0 end if else if (axis.eq.2) then ! b axis if (no.eq.1) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 else if (no.eq.2) then r(1,1)=-1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)=-1.d0 else if (no.eq.3) then r(1,1)=-1.d0; r(1,2)= 0.d0; r(1,3)= 1.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)=-1.d0; r(3,2)= 0.d0; r(3,3)= 0.d0 else if (no.eq.4) then r(1,1)= 0.d0; r(1,2)= 0.d0; r(1,3)= 1.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)=-1.d0; r(3,2)= 0.d0; r(3,3)= 0.d0 else if (no.eq.6) then r(1,1)= 0.d0; r(1,2)= 0.d0; r(1,3)= 1.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)=-1.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 end if else if (axis.eq.3) then ! c axis if (no.eq.1) then r(1,1)= 1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)= 1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 else if (no.eq.2) then r(1,1)=-1.d0; r(1,2)= 0.d0; r(1,3)= 0.d0 r(2,1)= 0.d0; r(2,2)=-1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 else if (no.eq.3) then r(1,1)= 0.d0; r(1,2)=-1.d0; r(1,3)= 0.d0 r(2,1)= 1.d0; r(2,2)=-1.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 else if (no.eq.4) then r(1,1)= 0.d0; r(1,2)=-1.d0; r(1,3)= 0.d0 r(2,1)= 1.d0; r(2,2)= 0.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 else if (no.eq.6) then r(1,1)= 1.d0; r(1,2)=-1.d0; r(1,3)= 0.d0 r(2,1)= 1.d0; r(2,2)= 0.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)= 1.d0 end if else if (axis.eq.4) then ! a-b axis r(1,1)= 0.d0; r(1,2)=-1.d0; r(1,3)= 0.d0 r(2,1)=-1.d0; r(2,2)= 0.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)=-1.d0 else if (axis.eq.5) then ! a+b axis r(1,1)= 0.d0; r(1,2)= 1.d0; r(1,3)= 0.d0 r(2,1)= 1.d0; r(2,2)= 0.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 0.d0; r(3,3)=-1.d0 else if (axis.eq.6) then ! a+b+c axis r(1,1)= 0.d0; r(1,2)= 0.d0; r(1,3)= 1.d0 r(2,1)= 1.d0; r(2,2)= 0.d0; r(2,3)= 0.d0 r(3,1)= 0.d0; r(3,2)= 1.d0; r(3,3)= 0.d0 end if ! check if axis is invariant with respect to rotation call r3mv(r,av,v1) t1=sum(abs(av(:)-v1(:))) if (t1.gt.eps) then write(*,*) write(*,'("Error(seitzgen): axis not invariant with respect to rotation")') write(*,'(" for Hall symbol ''",A,"''")') trim(hall) write(*,*) stop end if ! apply inverse for improper rotation if (.not.pr) r(:,:)=-r(:,:) ! increment Seitz matrix count ngen=ngen+1 ! store rotation in main array srgen(:,:,ngen)=r(:,:) ! remove rotation symbol str3=str2(2:) str2=str3 ! determine translations stgen(:,ngen)=0.d0 if (scan(str2,'a').ne.0) then stgen(1,ngen)=stgen(1,ngen)+0.5d0 end if if (scan(str2,'b').ne.0) then stgen(2,ngen)=stgen(2,ngen)+0.5d0 end if if (scan(str2,'c').ne.0) then stgen(3,ngen)=stgen(3,ngen)+0.5d0 end if if (scan(str2,'n').ne.0) then stgen(:,ngen)=stgen(:,ngen)+0.5d0 end if if (scan(str2,'u').ne.0) then stgen(1,ngen)=stgen(1,ngen)+0.25d0 end if if (scan(str2,'v').ne.0) then stgen(2,ngen)=stgen(2,ngen)+0.25d0 end if if (scan(str2,'w').ne.0) then stgen(3,ngen)=stgen(3,ngen)+0.25d0 end if if (scan(str2,'d').ne.0) then stgen(:,ngen)=stgen(:,ngen)+0.25d0 end if if (scan(str2,'1').ne.0) then if (no.eq.3) then stgen(:,ngen)=stgen(:,ngen)+0.3333333333333333333d0*av(:) else if (no.eq.4) then stgen(:,ngen)=stgen(:,ngen)+0.25d0*av(:) else if (no.eq.6) then stgen(:,ngen)=stgen(:,ngen)+0.1666666666666666667d0*av(:) end if else if (scan(str2,'2').ne.0) then if (no.eq.3) then stgen(:,ngen)=stgen(:,ngen)+0.6666666666666666667d0*av(:) else if (no.eq.6) then stgen(:,ngen)=stgen(:,ngen)+0.3333333333333333333d0*av(:) end if else if (scan(str2,'3').ne.0) then if (no.eq.4) then stgen(:,ngen)=stgen(:,ngen)+0.75d0*av(:) end if else if (scan(str2,'4').ne.0) then if (no.eq.6) then stgen(:,ngen)=stgen(:,ngen)+0.6666666666666666667d0*av(:) end if else if (scan(str2,'5').ne.0) then if (no.eq.6) then stgen(:,ngen)=stgen(:,ngen)+0.8333333333333333333d0*av(:) end if end if end if str3=adjustl(str1(m:)) str1=str3 nop=no goto 10 20 continue ! map translations to [0,1) do i=1,ngen call r3frac(eps,stgen(:,i)) end do return end subroutine elk-6.3.2/src/spacegroup/PaxHeaders.21352/seitzmul.f900000644000000000000000000000013213543334727017174 xustar0030 mtime=1569569239.687645101 30 atime=1569569239.687645101 30 ctime=1569569239.687645101 elk-6.3.2/src/spacegroup/seitzmul.f900000644002504400250440000000112313543334727021240 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine seitzmul(eps,sr1,st1,sr2,st2,sr3,st3) implicit none ! arguments real(8), intent(in) :: eps real(8), intent(in) :: sr1(3,3) real(8), intent(in) :: st1(3) real(8), intent(in) :: sr2(3,3) real(8), intent(in) :: st2(3) real(8), intent(out) :: sr3(3,3) real(8), intent(out) :: st3(3) call r3mv(sr1,st2,st3) st3(:)=st3(:)+st1(:) call r3frac(eps,st3) call r3mm(sr1,sr2,sr3) return end subroutine elk-6.3.2/src/spacegroup/PaxHeaders.21352/sgsymb.f900000644000000000000000000000013213543334727016624 xustar0030 mtime=1569569239.694645097 30 atime=1569569239.690645099 30 ctime=1569569239.694645097 elk-6.3.2/src/spacegroup/sgsymb.f900000644002504400250440000010040013543334727020666 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: sgsymb ! !INTERFACE: subroutine sgsymb(hrmg,num,schn,hall) ! !INPUT/OUTPUT PARAMETERS: ! hrmg : Hermann-Mauguin symbol (in,character(20)) ! num : space group number (out,character(20)) ! schn : Schoenflies symbol (out,character(20)) ! hall : Hall symbol (out,character(20)) ! !DESCRIPTION: ! Returns the space group number, Schoenflies and Hall symbols given the ! Hermann-Mauguin symbol. The routine is case-sensitive. With acknowledgements ! to Ralf W. Grosse-Kunstleve and the tables available at ! {\tt http://cci.lbl.gov/sginfo/}. ! ! !REVISION HISTORY: ! Created October 2006 (JKD) !EOP !BOC implicit none ! arguments character(20), intent(in) :: hrmg character(20), intent(out) :: num character(20), intent(out) :: schn character(20), intent(out) :: hall select case(trim(adjustl(hrmg))) case('P1') num='1' schn='C1^1' hall='P 1' case('P-1') num='2' schn='Ci^1' hall='-P 1' case('P2:b') num='3:b' schn='C2^1' hall='P 2y' case('P2:c') num='3:c' schn='C2^1' hall='P 2' case('P2:a') num='3:a' schn='C2^1' hall='P 2x' case('P21:b') num='4:b' schn='C2^2' hall='P 2yb' case('P21:c') num='4:c' schn='C2^2' hall='P 2c' case('P21:a') num='4:a' schn='C2^2' hall='P 2xa' case('C2:b1') num='5:b1' schn='C2^3' hall='C 2y' case('C2:b2') num='5:b2' schn='C2^3' hall='A 2y' case('C2:b3') num='5:b3' schn='C2^3' hall='I 2y' case('C2:c1') num='5:c1' schn='C2^3' hall='A 2' case('C2:c2') num='5:c2' schn='C2^3' hall='B 2' case('C2:c3') num='5:c3' schn='C2^3' hall='I 2' case('C2:a1') num='5:a1' schn='C2^3' hall='B 2x' case('C2:a2') num='5:a2' schn='C2^3' hall='C 2x' case('C2:a3') num='5:a3' schn='C2^3' hall='I 2x' case('Pm:b') num='6:b' schn='Cs^1' hall='P -2y' case('Pm:c') num='6:c' schn='Cs^1' hall='P -2' case('Pm:a') num='6:a' schn='Cs^1' hall='P -2x' case('Pc:b1') num='7:b1' schn='Cs^2' hall='P -2yc' case('Pc:b2') num='7:b2' schn='Cs^2' hall='P -2yac' case('Pc:b3') num='7:b3' schn='Cs^2' hall='P -2ya' case('Pc:c1') num='7:c1' schn='Cs^2' hall='P -2a' case('Pc:c2') num='7:c2' schn='Cs^2' hall='P -2ab' case('Pc:c3') num='7:c3' schn='Cs^2' hall='P -2b' case('Pc:a1') num='7:a1' schn='Cs^2' hall='P -2xb' case('Pc:a2') num='7:a2' schn='Cs^2' hall='P -2xbc' case('Pc:a3') num='7:a3' schn='Cs^2' hall='P -2xc' case('Cm:b1') num='8:b1' schn='Cs^3' hall='C -2y' case('Cm:b2') num='8:b2' schn='Cs^3' hall='A -2y' case('Cm:b3') num='8:b3' schn='Cs^3' hall='I -2y' case('Cm:c1') num='8:c1' schn='Cs^3' hall='A -2' case('Cm:c2') num='8:c2' schn='Cs^3' hall='B -2' case('Cm:c3') num='8:c3' schn='Cs^3' hall='I -2' case('Cm:a1') num='8:a1' schn='Cs^3' hall='B -2x' case('Cm:a2') num='8:a2' schn='Cs^3' hall='C -2x' case('Cm:a3') num='8:a3' schn='Cs^3' hall='I -2x' case('Cc:b1') num='9:b1' schn='Cs^4' hall='C -2yc' case('Cc:b2') num='9:b2' schn='Cs^4' hall='A -2yac' case('Cc:b3') num='9:b3' schn='Cs^4' hall='I -2ya' case('Cc:-b1') num='9:-b1' schn='Cs^4' hall='A -2ya' case('Cc:-b2') num='9:-b2' schn='Cs^4' hall='C -2ybc' case('Cc:-b3') num='9:-b3' schn='Cs^4' hall='I -2yc' case('Cc:c1') num='9:c1' schn='Cs^4' hall='A -2a' case('Cc:c2') num='9:c2' schn='Cs^4' hall='B -2bc' case('Cc:c3') num='9:c3' schn='Cs^4' hall='I -2b' case('Cc:-c1') num='9:-c1' schn='Cs^4' hall='B -2b' case('Cc:-c2') num='9:-c2' schn='Cs^4' hall='A -2ac' case('Cc:-c3') num='9:-c3' schn='Cs^4' hall='I -2a' case('Cc:a1') num='9:a1' schn='Cs^4' hall='B -2xb' case('Cc:a2') num='9:a2' schn='Cs^4' hall='C -2xbc' case('Cc:a3') num='9:a3' schn='Cs^4' hall='I -2xc' case('Cc:-a1') num='9:-a1' schn='Cs^4' hall='C -2xc' case('Cc:-a2') num='9:-a2' schn='Cs^4' hall='B -2xbc' case('Cc:-a3') num='9:-a3' schn='Cs^4' hall='I -2xb' case('P2/m:b') num='10:b' schn='C2h^1' hall='-P 2y' case('P2/m:c') num='10:c' schn='C2h^1' hall='-P 2' case('P2/m:a') num='10:a' schn='C2h^1' hall='-P 2x' case('P21/m:b') num='11:b' schn='C2h^2' hall='-P 2yb' case('P21/m:c') num='11:c' schn='C2h^2' hall='-P 2c' case('P21/m:a') num='11:a' schn='C2h^2' hall='-P 2xa' case('C2/m:b1') num='12:b1' schn='C2h^3' hall='-C 2y' case('C2/m:b2') num='12:b2' schn='C2h^3' hall='-A 2y' case('C2/m:b3') num='12:b3' schn='C2h^3' hall='-I 2y' case('C2/m:c1') num='12:c1' schn='C2h^3' hall='-A 2' case('C2/m:c2') num='12:c2' schn='C2h^3' hall='-B 2' case('C2/m:c3') num='12:c3' schn='C2h^3' hall='-I 2' case('C2/m:a1') num='12:a1' schn='C2h^3' hall='-B 2x' case('C2/m:a2') num='12:a2' schn='C2h^3' hall='-C 2x' case('C2/m:a3') num='12:a3' schn='C2h^3' hall='-I 2x' case('P2/c:b1') num='13:b1' schn='C2h^4' hall='-P 2yc' case('P2/c:b2') num='13:b2' schn='C2h^4' hall='-P 2yac' case('P2/c:b3') num='13:b3' schn='C2h^4' hall='-P 2ya' case('P2/c:c1') num='13:c1' schn='C2h^4' hall='-P 2a' case('P2/c:c2') num='13:c2' schn='C2h^4' hall='-P 2ab' case('P2/c:c3') num='13:c3' schn='C2h^4' hall='-P 2b' case('P2/c:a1') num='13:a1' schn='C2h^4' hall='-P 2xb' case('P2/c:a2') num='13:a2' schn='C2h^4' hall='-P 2xbc' case('P2/c:a3') num='13:a3' schn='C2h^4' hall='-P 2xc' case('P21/c:b1') num='14:b1' schn='C2h^5' hall='-P 2ybc' case('P21/c:b2') num='14:b2' schn='C2h^5' hall='-P 2yn' case('P21/c:b3') num='14:b3' schn='C2h^5' hall='-P 2yab' case('P21/c:c1') num='14:c1' schn='C2h^5' hall='-P 2ac' case('P21/c:c2') num='14:c2' schn='C2h^5' hall='-P 2n' case('P21/c:c3') num='14:c3' schn='C2h^5' hall='-P 2bc' case('P21/c:a1') num='14:a1' schn='C2h^5' hall='-P 2xab' case('P21/c:a2') num='14:a2' schn='C2h^5' hall='-P 2xn' case('P21/c:a3') num='14:a3' schn='C2h^5' hall='-P 2xac' case('C2/c:b1') num='15:b1' schn='C2h^6' hall='-C 2yc' case('C2/c:b2') num='15:b2' schn='C2h^6' hall='-A 2yac' case('C2/c:b3') num='15:b3' schn='C2h^6' hall='-I 2ya' case('C2/c:-b1') num='15:-b1' schn='C2h^6' hall='-A 2ya' case('C2/c:-b2') num='15:-b2' schn='C2h^6' hall='-C 2ybc' case('C2/c:-b3') num='15:-b3' schn='C2h^6' hall='-I 2yc' case('C2/c:c1') num='15:c1' schn='C2h^6' hall='-A 2a' case('C2/c:c2') num='15:c2' schn='C2h^6' hall='-B 2bc' case('C2/c:c3') num='15:c3' schn='C2h^6' hall='-I 2b' case('C2/c:-c1') num='15:-c1' schn='C2h^6' hall='-B 2b' case('C2/c:-c2') num='15:-c2' schn='C2h^6' hall='-A 2ac' case('C2/c:-c3') num='15:-c3' schn='C2h^6' hall='-I 2a' case('C2/c:a1') num='15:a1' schn='C2h^6' hall='-B 2xb' case('C2/c:a2') num='15:a2' schn='C2h^6' hall='-C 2xbc' case('C2/c:a3') num='15:a3' schn='C2h^6' hall='-I 2xc' case('C2/c:-a1') num='15:-a1' schn='C2h^6' hall='-C 2xc' case('C2/c:-a2') num='15:-a2' schn='C2h^6' hall='-B 2xbc' case('C2/c:-a3') num='15:-a3' schn='C2h^6' hall='-I 2xb' case('P222') num='16' schn='D2^1' hall='P 2 2' case('P2221') num='17' schn='D2^2' hall='P 2c 2' case('P2122') num='17:cab' schn='D2^2' hall='P 2a 2a' case('P2212') num='17:bca' schn='D2^2' hall='P 2 2b' case('P21212') num='18' schn='D2^3' hall='P 2 2ab' case('P22121') num='18:cab' schn='D2^3' hall='P 2bc 2' case('P21221') num='18:bca' schn='D2^3' hall='P 2ac 2ac' case('P212121') num='19' schn='D2^4' hall='P 2ac 2ab' case('C2221') num='20' schn='D2^5' hall='C 2c 2' case('A2122') num='20:cab' schn='D2^5' hall='A 2a 2a' case('B2212') num='20:bca' schn='D2^5' hall='B 2 2b' case('C222') num='21' schn='D2^6' hall='C 2 2' case('A222') num='21:cab' schn='D2^6' hall='A 2 2' case('B222') num='21:bca' schn='D2^6' hall='B 2 2' case('F222') num='22' schn='D2^7' hall='F 2 2' case('I222') num='23' schn='D2^8' hall='I 2 2' case('I212121') num='24' schn='D2^9' hall='I 2b 2c' case('Pmm2') num='25' schn='C2v^1' hall='P 2 -2' case('P2mm') num='25:cab' schn='C2v^1' hall='P -2 2' case('Pm2m') num='25:bca' schn='C2v^1' hall='P -2 -2' case('Pmc21') num='26' schn='C2v^2' hall='P 2c -2' case('Pcm21') num='26:ba-c' schn='C2v^2' hall='P 2c -2c' case('P21ma') num='26:cab' schn='C2v^2' hall='P -2a 2a' case('P21am') num='26:-cba' schn='C2v^2' hall='P -2 2a' case('Pb21m') num='26:bca' schn='C2v^2' hall='P -2 -2b' case('Pm21b') num='26:a-cb' schn='C2v^2' hall='P -2b -2' case('Pcc2') num='27' schn='C2v^3' hall='P 2 -2c' case('P2aa') num='27:cab' schn='C2v^3' hall='P -2a 2' case('Pb2b') num='27:bca' schn='C2v^3' hall='P -2b -2b' case('Pma2') num='28' schn='C2v^4' hall='P 2 -2a' case('Pbm2') num='28:ba-c' schn='C2v^4' hall='P 2 -2b' case('P2mb') num='28:cab' schn='C2v^4' hall='P -2b 2' case('P2cm') num='28:-cba' schn='C2v^4' hall='P -2c 2' case('Pc2m') num='28:bca' schn='C2v^4' hall='P -2c -2c' case('Pm2a') num='28:a-cb' schn='C2v^4' hall='P -2a -2a' case('Pca21') num='29' schn='C2v^5' hall='P 2c -2ac' case('Pbc21') num='29:ba-c' schn='C2v^5' hall='P 2c -2b' case('P21ab') num='29:cab' schn='C2v^5' hall='P -2b 2a' case('P21ca') num='29:-cba' schn='C2v^5' hall='P -2ac 2a' case('Pc21b') num='29:bca' schn='C2v^5' hall='P -2bc -2c' case('Pb21a') num='29:a-cb' schn='C2v^5' hall='P -2a -2ab' case('Pnc2') num='30' schn='C2v^6' hall='P 2 -2bc' case('Pcn2') num='30:ba-c' schn='C2v^6' hall='P 2 -2ac' case('P2na') num='30:cab' schn='C2v^6' hall='P -2ac 2' case('P2an') num='30:-cba' schn='C2v^6' hall='P -2ab 2' case('Pb2n') num='30:bca' schn='C2v^6' hall='P -2ab -2ab' case('Pn2b') num='30:a-cb' schn='C2v^6' hall='P -2bc -2bc' case('Pmn21') num='31' schn='C2v^7' hall='P 2ac -2' case('Pnm21') num='31:ba-c' schn='C2v^7' hall='P 2bc -2bc' case('P21mn') num='31:cab' schn='C2v^7' hall='P -2ab 2ab' case('P21nm') num='31:-cba' schn='C2v^7' hall='P -2 2ac' case('Pn21m') num='31:bca' schn='C2v^7' hall='P -2 -2bc' case('Pm21n') num='31:a-cb' schn='C2v^7' hall='P -2ab -2' case('Pba2') num='32' schn='C2v^8' hall='P 2 -2ab' case('P2cb') num='32:cab' schn='C2v^8' hall='P -2bc 2' case('Pc2a') num='32:bca' schn='C2v^8' hall='P -2ac -2ac' case('Pna21') num='33' schn='C2v^9' hall='P 2c -2n' case('Pbn21') num='33:ba-c' schn='C2v^9' hall='P 2c -2ab' case('P21nb') num='33:cab' schn='C2v^9' hall='P -2bc 2a' case('P21cn') num='33:-cba' schn='C2v^9' hall='P -2n 2a' case('Pc21n') num='33:bca' schn='C2v^9' hall='P -2n -2ac' case('Pn21a') num='33:a-cb' schn='C2v^9' hall='P -2ac -2n' case('Pnn2') num='34' schn='C2v^10' hall='P 2 -2n' case('P2nn') num='34:cab' schn='C2v^10' hall='P -2n 2' case('Pn2n') num='34:bca' schn='C2v^10' hall='P -2n -2n' case('Cmm2') num='35' schn='C2v^11' hall='C 2 -2' case('A2mm') num='35:cab' schn='C2v^11' hall='A -2 2' case('Bm2m') num='35:bca' schn='C2v^11' hall='B -2 -2' case('Cmc21') num='36' schn='C2v^12' hall='C 2c -2' case('Ccm21') num='36:ba-c' schn='C2v^12' hall='C 2c -2c' case('A21ma') num='36:cab' schn='C2v^12' hall='A -2a 2a' case('A21am') num='36:-cba' schn='C2v^12' hall='A -2 2a' case('Bb21m') num='36:bca' schn='C2v^12' hall='B -2 -2b' case('Bm21b') num='36:a-cb' schn='C2v^12' hall='B -2b -2' case('Ccc2') num='37' schn='C2v^13' hall='C 2 -2c' case('A2aa') num='37:cab' schn='C2v^13' hall='A -2a 2' case('Bb2b') num='37:bca' schn='C2v^13' hall='B -2b -2b' case('Amm2') num='38' schn='C2v^14' hall='A 2 -2' case('Bmm2') num='38:ba-c' schn='C2v^14' hall='B 2 -2' case('B2mm') num='38:cab' schn='C2v^14' hall='B -2 2' case('C2mm') num='38:-cba' schn='C2v^14' hall='C -2 2' case('Cm2m') num='38:bca' schn='C2v^14' hall='C -2 -2' case('Am2m') num='38:a-cb' schn='C2v^14' hall='A -2 -2' case('Abm2') num='39' schn='C2v^15' hall='A 2 -2c' case('Bma2') num='39:ba-c' schn='C2v^15' hall='B 2 -2c' case('B2cm') num='39:cab' schn='C2v^15' hall='B -2c 2' case('C2mb') num='39:-cba' schn='C2v^15' hall='C -2b 2' case('Cm2a') num='39:bca' schn='C2v^15' hall='C -2b -2b' case('Ac2m') num='39:a-cb' schn='C2v^15' hall='A -2c -2c' case('Ama2') num='40' schn='C2v^16' hall='A 2 -2a' case('Bbm2') num='40:ba-c' schn='C2v^16' hall='B 2 -2b' case('B2mb') num='40:cab' schn='C2v^16' hall='B -2b 2' case('C2cm') num='40:-cba' schn='C2v^16' hall='C -2c 2' case('Cc2m') num='40:bca' schn='C2v^16' hall='C -2c -2c' case('Am2a') num='40:a-cb' schn='C2v^16' hall='A -2a -2a' case('Aba2') num='41' schn='C2v^17' hall='A 2 -2ac' case('Bba2') num='41:ba-c' schn='C2v^17' hall='B 2 -2bc' case('B2cb') num='41:cab' schn='C2v^17' hall='B -2bc 2' case('C2cb') num='41:-cba' schn='C2v^17' hall='C -2bc 2' case('Cc2a') num='41:bca' schn='C2v^17' hall='C -2bc -2bc' case('Ac2a') num='41:a-cb' schn='C2v^17' hall='A -2ac -2ac' case('Fmm2') num='42' schn='C2v^18' hall='F 2 -2' case('F2mm') num='42:cab' schn='C2v^18' hall='F -2 2' case('Fm2m') num='42:bca' schn='C2v^18' hall='F -2 -2' case('Fdd2') num='43' schn='C2v^19' hall='F 2 -2d' case('F2dd') num='43:cab' schn='C2v^19' hall='F -2d 2' case('Fd2d') num='43:bca' schn='C2v^19' hall='F -2d -2d' case('Imm2') num='44' schn='C2v^20' hall='I 2 -2' case('I2mm') num='44:cab' schn='C2v^20' hall='I -2 2' case('Im2m') num='44:bca' schn='C2v^20' hall='I -2 -2' case('Iba2') num='45' schn='C2v^21' hall='I 2 -2c' case('I2cb') num='45:cab' schn='C2v^21' hall='I -2a 2' case('Ic2a') num='45:bca' schn='C2v^21' hall='I -2b -2b' case('Ima2') num='46' schn='C2v^22' hall='I 2 -2a' case('Ibm2') num='46:ba-c' schn='C2v^22' hall='I 2 -2b' case('I2mb') num='46:cab' schn='C2v^22' hall='I -2b 2' case('I2cm') num='46:-cba' schn='C2v^22' hall='I -2c 2' case('Ic2m') num='46:bca' schn='C2v^22' hall='I -2c -2c' case('Im2a') num='46:a-cb' schn='C2v^22' hall='I -2a -2a' case('Pmmm') num='47' schn='D2h^1' hall='-P 2 2' case('Pnnn:1') num='48:1' schn='D2h^2' hall='P 2 2 -1n' case('Pnnn:2') num='48:2' schn='D2h^2' hall='-P 2ab 2bc' case('Pccm') num='49' schn='D2h^3' hall='-P 2 2c' case('Pmaa') num='49:cab' schn='D2h^3' hall='-P 2a 2' case('Pbmb') num='49:bca' schn='D2h^3' hall='-P 2b 2b' case('Pban:1') num='50:1' schn='D2h^4' hall='P 2 2 -1ab' case('Pban:2') num='50:2' schn='D2h^4' hall='-P 2ab 2b' case('Pncb:1') num='50:1cab' schn='D2h^4' hall='P 2 2 -1bc' case('Pncb:2') num='50:2cab' schn='D2h^4' hall='-P 2b 2bc' case('Pcna:1') num='50:1bca' schn='D2h^4' hall='P 2 2 -1ac' case('Pcna:2') num='50:2bca' schn='D2h^4' hall='-P 2a 2c' case('Pmma') num='51' schn='D2h^5' hall='-P 2a 2a' case('Pmmb') num='51:ba-c' schn='D2h^5' hall='-P 2b 2' case('Pbmm') num='51:cab' schn='D2h^5' hall='-P 2 2b' case('Pcmm') num='51:-cba' schn='D2h^5' hall='-P 2c 2c' case('Pmcm') num='51:bca' schn='D2h^5' hall='-P 2c 2' case('Pmam') num='51:a-cb' schn='D2h^5' hall='-P 2 2a' case('Pnna') num='52' schn='D2h^6' hall='-P 2a 2bc' case('Pnnb') num='52:ba-c' schn='D2h^6' hall='-P 2b 2n' case('Pbnn') num='52:cab' schn='D2h^6' hall='-P 2n 2b' case('Pcnn') num='52:-cba' schn='D2h^6' hall='-P 2ab 2c' case('Pncn') num='52:bca' schn='D2h^6' hall='-P 2ab 2n' case('Pnan') num='52:a-cb' schn='D2h^6' hall='-P 2n 2bc' case('Pmna') num='53' schn='D2h^7' hall='-P 2ac 2' case('Pnmb') num='53:ba-c' schn='D2h^7' hall='-P 2bc 2bc' case('Pbmn') num='53:cab' schn='D2h^7' hall='-P 2ab 2ab' case('Pcnm') num='53:-cba' schn='D2h^7' hall='-P 2 2ac' case('Pncm') num='53:bca' schn='D2h^7' hall='-P 2 2bc' case('Pman') num='53:a-cb' schn='D2h^7' hall='-P 2ab 2' case('Pcca') num='54' schn='D2h^8' hall='-P 2a 2ac' case('Pccb') num='54:ba-c' schn='D2h^8' hall='-P 2b 2c' case('Pbaa') num='54:cab' schn='D2h^8' hall='-P 2a 2b' case('Pcaa') num='54:-cba' schn='D2h^8' hall='-P 2ac 2c' case('Pbcb') num='54:bca' schn='D2h^8' hall='-P 2bc 2b' case('Pbab') num='54:a-cb' schn='D2h^8' hall='-P 2b 2ab' case('Pbam') num='55' schn='D2h^9' hall='-P 2 2ab' case('Pmcb') num='55:cab' schn='D2h^9' hall='-P 2bc 2' case('Pcma') num='55:bca' schn='D2h^9' hall='-P 2ac 2ac' case('Pccn') num='56' schn='D2h^10' hall='-P 2ab 2ac' case('Pnaa') num='56:cab' schn='D2h^10' hall='-P 2ac 2bc' case('Pbnb') num='56:bca' schn='D2h^10' hall='-P 2bc 2ab' case('Pbcm') num='57' schn='D2h^11' hall='-P 2c 2b' case('Pcam') num='57:ba-c' schn='D2h^11' hall='-P 2c 2ac' case('Pmca') num='57:cab' schn='D2h^11' hall='-P 2ac 2a' case('Pmab') num='57:-cba' schn='D2h^11' hall='-P 2b 2a' case('Pbma') num='57:bca' schn='D2h^11' hall='-P 2a 2ab' case('Pcmb') num='57:a-cb' schn='D2h^11' hall='-P 2bc 2c' case('Pnnm') num='58' schn='D2h^12' hall='-P 2 2n' case('Pmnn') num='58:cab' schn='D2h^12' hall='-P 2n 2' case('Pnmn') num='58:bca' schn='D2h^12' hall='-P 2n 2n' case('Pmmn:1') num='59:1' schn='D2h^13' hall='P 2 2ab -1ab' case('Pmmn:2') num='59:2' schn='D2h^13' hall='-P 2ab 2a' case('Pnmm:1') num='59:1cab' schn='D2h^13' hall='P 2bc 2 -1bc' case('Pnmm:2') num='59:2cab' schn='D2h^13' hall='-P 2c 2bc' case('Pmnm:1') num='59:1bca' schn='D2h^13' hall='P 2ac 2ac -1ac' case('Pmnm:2') num='59:2bca' schn='D2h^13' hall='-P 2c 2a' case('Pbcn') num='60' schn='D2h^14' hall='-P 2n 2ab' case('Pcan') num='60:ba-c' schn='D2h^14' hall='-P 2n 2c' case('Pnca') num='60:cab' schn='D2h^14' hall='-P 2a 2n' case('Pnab') num='60:-cba' schn='D2h^14' hall='-P 2bc 2n' case('Pbna') num='60:bca' schn='D2h^14' hall='-P 2ac 2b' case('Pcnb') num='60:a-cb' schn='D2h^14' hall='-P 2b 2ac' case('Pbca') num='61' schn='D2h^15' hall='-P 2ac 2ab' case('Pcab') num='61:ba-c' schn='D2h^15' hall='-P 2bc 2ac' case('Pnma') num='62' schn='D2h^16' hall='-P 2ac 2n' case('Pmnb') num='62:ba-c' schn='D2h^16' hall='-P 2bc 2a' case('Pbnm') num='62:cab' schn='D2h^16' hall='-P 2c 2ab' case('Pcmn') num='62:-cba' schn='D2h^16' hall='-P 2n 2ac' case('Pmcn') num='62:bca' schn='D2h^16' hall='-P 2n 2a' case('Pnam') num='62:a-cb' schn='D2h^16' hall='-P 2c 2n' case('Cmcm') num='63' schn='D2h^17' hall='-C 2c 2' case('Ccmm') num='63:ba-c' schn='D2h^17' hall='-C 2c 2c' case('Amma') num='63:cab' schn='D2h^17' hall='-A 2a 2a' case('Amam') num='63:-cba' schn='D2h^17' hall='-A 2 2a' case('Bbmm') num='63:bca' schn='D2h^17' hall='-B 2 2b' case('Bmmb') num='63:a-cb' schn='D2h^17' hall='-B 2b 2' case('Cmca') num='64' schn='D2h^18' hall='-C 2bc 2' case('Ccmb') num='64:ba-c' schn='D2h^18' hall='-C 2bc 2bc' case('Abma') num='64:cab' schn='D2h^18' hall='-A 2ac 2ac' case('Acam') num='64:-cba' schn='D2h^18' hall='-A 2 2ac' case('Bbcm') num='64:bca' schn='D2h^18' hall='-B 2 2bc' case('Bmab') num='64:a-cb' schn='D2h^18' hall='-B 2bc 2' case('Cmmm') num='65' schn='D2h^19' hall='-C 2 2' case('Ammm') num='65:cab' schn='D2h^19' hall='-A 2 2' case('Bmmm') num='65:bca' schn='D2h^19' hall='-B 2 2' case('Cccm') num='66' schn='D2h^20' hall='-C 2 2c' case('Amaa') num='66:cab' schn='D2h^20' hall='-A 2a 2' case('Bbmb') num='66:bca' schn='D2h^20' hall='-B 2b 2b' case('Cmma') num='67' schn='D2h^21' hall='-C 2b 2' case('Cmmb') num='67:ba-c' schn='D2h^21' hall='-C 2b 2b' case('Abmm') num='67:cab' schn='D2h^21' hall='-A 2c 2c' case('Acmm') num='67:-cba' schn='D2h^21' hall='-A 2 2c' case('Bmcm') num='67:bca' schn='D2h^21' hall='-B 2 2c' case('Bmam') num='67:a-cb' schn='D2h^21' hall='-B 2c 2' case('Ccca:1') num='68:1' schn='D2h^22' hall='C 2 2 -1bc' case('Ccca:2') num='68:2' schn='D2h^22' hall='-C 2b 2bc' case('Cccb:1') num='68:1ba-c' schn='D2h^22' hall='C 2 2 -1bc' case('Cccb:2') num='68:2ba-c' schn='D2h^22' hall='-C 2b 2c' case('Abaa:1') num='68:1cab' schn='D2h^22' hall='A 2 2 -1ac' case('Abaa:2') num='68:2cab' schn='D2h^22' hall='-A 2a 2c' case('Acaa:1') num='68:1-cba' schn='D2h^22' hall='A 2 2 -1ac' case('Acaa:2') num='68:2-cba' schn='D2h^22' hall='-A 2ac 2c' case('Bbcb:1') num='68:1bca' schn='D2h^22' hall='B 2 2 -1bc' case('Bbcb:2') num='68:2bca' schn='D2h^22' hall='-B 2bc 2b' case('Bbab:1') num='68:1a-cb' schn='D2h^22' hall='B 2 2 -1bc' case('Bbab:2') num='68:2a-cb' schn='D2h^22' hall='-B 2b 2bc' case('Fmmm') num='69' schn='D2h^23' hall='-F 2 2' case('Fddd:1') num='70:1' schn='D2h^24' hall='F 2 2 -1d' case('Fddd:2') num='70:2' schn='D2h^24' hall='-F 2uv 2vw' case('Immm') num='71' schn='D2h^25' hall='-I 2 2' case('Ibam') num='72' schn='D2h^26' hall='-I 2 2c' case('Imcb') num='72:cab' schn='D2h^26' hall='-I 2a 2' case('Icma') num='72:bca' schn='D2h^26' hall='-I 2b 2b' case('Ibca') num='73' schn='D2h^27' hall='-I 2b 2c' case('Icab') num='73:ba-c' schn='D2h^27' hall='-I 2a 2b' case('Imma') num='74' schn='D2h^28' hall='-I 2b 2' case('Immb') num='74:ba-c' schn='D2h^28' hall='-I 2a 2a' case('Ibmm') num='74:cab' schn='D2h^28' hall='-I 2c 2c' case('Icmm') num='74:-cba' schn='D2h^28' hall='-I 2 2b' case('Imcm') num='74:bca' schn='D2h^28' hall='-I 2 2a' case('Imam') num='74:a-cb' schn='D2h^28' hall='-I 2c 2' case('P4') num='75' schn='C4^1' hall='P 4' case('P41') num='76' schn='C4^2' hall='P 4w' case('P42') num='77' schn='C4^3' hall='P 4c' case('P43') num='78' schn='C4^4' hall='P 4cw' case('I4') num='79' schn='C4^5' hall='I 4' case('I41') num='80' schn='C4^6' hall='I 4bw' case('P-4') num='81' schn='S4^1' hall='P -4' case('I-4') num='82' schn='S4^2' hall='I -4' case('P4/m') num='83' schn='C4h^1' hall='-P 4' case('P42/m') num='84' schn='C4h^2' hall='-P 4c' case('P4/n:1') num='85:1' schn='C4h^3' hall='P 4ab -1ab' case('P4/n:2') num='85:2' schn='C4h^3' hall='-P 4a' case('P42/n:1') num='86:1' schn='C4h^4' hall='P 4n -1n' case('P42/n:2') num='86:2' schn='C4h^4' hall='-P 4bc' case('I4/m') num='87' schn='C4h^5' hall='-I 4' case('I41/a:1') num='88:1' schn='C4h^6' hall='I 4bw -1bw' case('I41/a:2') num='88:2' schn='C4h^6' hall='-I 4ad' case('P422') num='89' schn='D4^1' hall='P 4 2' case('P4212') num='90' schn='D4^2' hall='P 4ab 2ab' case('P4122') num='91' schn='D4^3' hall='P 4w 2c' case('P41212') num='92' schn='D4^4' hall='P 4abw 2nw' case('P4222') num='93' schn='D4^5' hall='P 4c 2' case('P42212') num='94' schn='D4^6' hall='P 4n 2n' case('P4322') num='95' schn='D4^7' hall='P 4cw 2c' case('P43212') num='96' schn='D4^8' hall='P 4nw 2abw' case('I422') num='97' schn='D4^9' hall='I 4 2' case('I4122') num='98' schn='D4^10' hall='I 4bw 2bw' case('P4mm') num='99' schn='C4v^1' hall='P 4 -2' case('P4bm') num='100' schn='C4v^2' hall='P 4 -2ab' case('P42cm') num='101' schn='C4v^3' hall='P 4c -2c' case('P42nm') num='102' schn='C4v^4' hall='P 4n -2n' case('P4cc') num='103' schn='C4v^5' hall='P 4 -2c' case('P4nc') num='104' schn='C4v^6' hall='P 4 -2n' case('P42mc') num='105' schn='C4v^7' hall='P 4c -2' case('P42bc') num='106' schn='C4v^8' hall='P 4c -2ab' case('I4mm') num='107' schn='C4v^9' hall='I 4 -2' case('I4cm') num='108' schn='C4v^10' hall='I 4 -2c' case('I41md') num='109' schn='C4v^11' hall='I 4bw -2' case('I41cd') num='110' schn='C4v^12' hall='I 4bw -2c' case('P-42m') num='111' schn='D2d^1' hall='P -4 2' case('P-42c') num='112' schn='D2d^2' hall='P -4 2c' case('P-421m') num='113' schn='D2d^3' hall='P -4 2ab' case('P-421c') num='114' schn='D2d^4' hall='P -4 2n' case('P-4m2') num='115' schn='D2d^5' hall='P -4 -2' case('P-4c2') num='116' schn='D2d^6' hall='P -4 -2c' case('P-4b2') num='117' schn='D2d^7' hall='P -4 -2ab' case('P-4n2') num='118' schn='D2d^8' hall='P -4 -2n' case('I-4m2') num='119' schn='D2d^9' hall='I -4 -2' case('I-4c2') num='120' schn='D2d^10' hall='I -4 -2c' case('I-42m') num='121' schn='D2d^11' hall='I -4 2' case('I-42d') num='122' schn='D2d^12' hall='I -4 2bw' case('P4/mmm') num='123' schn='D4h^1' hall='-P 4 2' case('P4/mcc') num='124' schn='D4h^2' hall='-P 4 2c' case('P4/nbm:1') num='125:1' schn='D4h^3' hall='P 4 2 -1ab' case('P4/nbm:2') num='125:2' schn='D4h^3' hall='-P 4a 2b' case('P4/nnc:1') num='126:1' schn='D4h^4' hall='P 4 2 -1n' case('P4/nnc:2') num='126:2' schn='D4h^4' hall='-P 4a 2bc' case('P4/mbm') num='127' schn='D4h^5' hall='-P 4 2ab' case('P4/mnc') num='128' schn='D4h^6' hall='-P 4 2n' case('P4/nmm:1') num='129:1' schn='D4h^7' hall='P 4ab 2ab -1ab' case('P4/nmm:2') num='129:2' schn='D4h^7' hall='-P 4a 2a' case('P4/ncc:1') num='130:1' schn='D4h^8' hall='P 4ab 2n -1ab' case('P4/ncc:2') num='130:2' schn='D4h^8' hall='-P 4a 2ac' case('P42/mmc') num='131' schn='D4h^9' hall='-P 4c 2' case('P42/mcm') num='132' schn='D4h^10' hall='-P 4c 2c' case('P42/nbc:1') num='133:1' schn='D4h^11' hall='P 4n 2c -1n' case('P42/nbc:2') num='133:2' schn='D4h^11' hall='-P 4ac 2b' case('P42/nnm:1') num='134:1' schn='D4h^12' hall='P 4n 2 -1n' case('P42/nnm:2') num='134:2' schn='D4h^12' hall='-P 4ac 2bc' case('P42/mbc') num='135' schn='D4h^13' hall='-P 4c 2ab' case('P42/mnm') num='136' schn='D4h^14' hall='-P 4n 2n' case('P42/nmc:1') num='137:1' schn='D4h^15' hall='P 4n 2n -1n' case('P42/nmc:2') num='137:2' schn='D4h^15' hall='-P 4ac 2a' case('P42/ncm:1') num='138:1' schn='D4h^16' hall='P 4n 2ab -1n' case('P42/ncm:2') num='138:2' schn='D4h^16' hall='-P 4ac 2ac' case('I4/mmm') num='139' schn='D4h^17' hall='-I 4 2' case('I4/mcm') num='140' schn='D4h^18' hall='-I 4 2c' case('I41/amd:1') num='141:1' schn='D4h^19' hall='I 4bw 2bw -1bw' case('I41/amd:2') num='141:2' schn='D4h^19' hall='-I 4bd 2' case('I41/acd:1') num='142:1' schn='D4h^20' hall='I 4bw 2aw -1bw' case('I41/acd:2') num='142:2' schn='D4h^20' hall='-I 4bd 2c' case('P3') num='143' schn='C3^1' hall='P 3' case('P31') num='144' schn='C3^2' hall='P 31' case('P32') num='145' schn='C3^3' hall='P 32' case('R3:H') num='146:H' schn='C3^4' hall='R 3' case('R3:R') num='146:R' schn='C3^4' hall='P 3*' case('P-3') num='147' schn='C3i^1' hall='-P 3' case('R-3:H') num='148:H' schn='C3i^2' hall='-R 3' case('R-3:R') num='148:R' schn='C3i^2' hall='-P 3*' case('P312') num='149' schn='D3^1' hall='P 3 2' case('P321') num='150' schn='D3^2' hall='P 3 2"' case('P3112') num='151' schn='D3^3' hall='P 31 2c (0 0 1)' case('P3121') num='152' schn='D3^4' hall='P 31 2"' case('P3212') num='153' schn='D3^5' hall='P 32 2c (0 0 -1)' case('P3221') num='154' schn='D3^6' hall='P 32 2"' case('R32:H') num='155:H' schn='D3^7' hall='R 3 2"' case('R32:R') num='155:R' schn='D3^7' hall='P 3* 2' case('P3m1') num='156' schn='C3v^1' hall='P 3 -2"' case('P31m') num='157' schn='C3v^2' hall='P 3 -2' case('P3c1') num='158' schn='C3v^3' hall='P 3 -2"c' case('P31c') num='159' schn='C3v^4' hall='P 3 -2c' case('R3m:H') num='160:H' schn='C3v^5' hall='R 3 -2"' case('R3m:R') num='160:R' schn='C3v^5' hall='P 3* -2' case('R3c:H') num='161:H' schn='C3v^6' hall='R 3 -2"c' case('R3c:R') num='161:R' schn='C3v^6' hall='P 3* -2n' case('P-31m') num='162' schn='D3d^1' hall='-P 3 2' case('P-31c') num='163' schn='D3d^2' hall='-P 3 2c' case('P-3m1') num='164' schn='D3d^3' hall='-P 3 2"' case('P-3c1') num='165' schn='D3d^4' hall='-P 3 2"c' case('R-3m:H') num='166:H' schn='D3d^5' hall='-R 3 2"' case('R-3m:R') num='166:R' schn='D3d^5' hall='-P 3* 2' case('R-3c:H') num='167:H' schn='D3d^6' hall='-R 3 2"c' case('R-3c:R') num='167:R' schn='D3d^6' hall='-P 3* 2n' case('P6') num='168' schn='C6^1' hall='P 6' case('P61') num='169' schn='C6^2' hall='P 61' case('P65') num='170' schn='C6^3' hall='P 65' case('P62') num='171' schn='C6^4' hall='P 62' case('P64') num='172' schn='C6^5' hall='P 64' case('P63') num='173' schn='C6^6' hall='P 6c' case('P-6') num='174' schn='C3h^1' hall='P -6' case('P6/m') num='175' schn='C6h^1' hall='-P 6' case('P63/m') num='176' schn='C6h^2' hall='-P 6c' case('P622') num='177' schn='D6^1' hall='P 6 2' case('P6122') num='178' schn='D6^2' hall='P 61 2 (0 0 -1)' case('P6522') num='179' schn='D6^3' hall='P 65 2 (0 0 1)' case('P6222') num='180' schn='D6^4' hall='P 62 2c (0 0 1)' case('P6422') num='181' schn='D6^5' hall='P 64 2c (0 0 -1)' case('P6322') num='182' schn='D6^6' hall='P 6c 2c' case('P6mm') num='183' schn='C6v^1' hall='P 6 -2' case('P6cc') num='184' schn='C6v^2' hall='P 6 -2c' case('P63cm') num='185' schn='C6v^3' hall='P 6c -2' case('P63mc') num='186' schn='C6v^4' hall='P 6c -2c' case('P-6m2') num='187' schn='D3h^1' hall='P -6 2' case('P-6c2') num='188' schn='D3h^2' hall='P -6c 2' case('P-62m') num='189' schn='D3h^3' hall='P -6 -2' case('P-62c') num='190' schn='D3h^4' hall='P -6c -2c' case('P6/mmm') num='191' schn='D6h^1' hall='-P 6 2' case('P6/mcc') num='192' schn='D6h^2' hall='-P 6 2c' case('P63/mcm') num='193' schn='D6h^3' hall='-P 6c 2' case('P63/mmc') num='194' schn='D6h^4' hall='-P 6c 2c' case('P23') num='195' schn='T^1' hall='P 2 2 3' case('F23') num='196' schn='T^2' hall='F 2 2 3' case('I23') num='197' schn='T^3' hall='I 2 2 3' case('P213') num='198' schn='T^4' hall='P 2ac 2ab 3' case('I213') num='199' schn='T^5' hall='I 2b 2c 3' case('Pm-3') num='200' schn='Th^1' hall='-P 2 2 3' case('Pn-3:1') num='201:1' schn='Th^2' hall='P 2 2 3 -1n' case('Pn-3:2') num='201:2' schn='Th^2' hall='-P 2ab 2bc 3' case('Fm-3') num='202' schn='Th^3' hall='-F 2 2 3' case('Fd-3:1') num='203:1' schn='Th^4' hall='F 2 2 3 -1d' case('Fd-3:2') num='203:2' schn='Th^4' hall='-F 2uv 2vw 3' case('Im-3') num='204' schn='Th^5' hall='-I 2 2 3' case('Pa-3') num='205' schn='Th^6' hall='-P 2ac 2ab 3' case('Ia-3') num='206' schn='Th^7' hall='-I 2b 2c 3' case('P432') num='207' schn='O^1' hall='P 4 2 3' case('P4232') num='208' schn='O^2' hall='P 4n 2 3' case('F432') num='209' schn='O^3' hall='F 4 2 3' case('F4132') num='210' schn='O^4' hall='F 4d 2 3' case('I432') num='211' schn='O^5' hall='I 4 2 3' case('P4332') num='212' schn='O^6' hall='P 4acd 2ab 3' case('P4132') num='213' schn='O^7' hall='P 4bd 2ab 3' case('I4132') num='214' schn='O^8' hall='I 4bd 2c 3' case('P-43m') num='215' schn='Td^1' hall='P -4 2 3' case('F-43m') num='216' schn='Td^2' hall='F -4 2 3' case('I-43m') num='217' schn='Td^3' hall='I -4 2 3' case('P-43n') num='218' schn='Td^4' hall='P -4n 2 3' case('F-43c') num='219' schn='Td^5' hall='F -4c 2 3' case('I-43d') num='220' schn='Td^6' hall='I -4bd 2c 3' case('Pm-3m') num='221' schn='Oh^1' hall='-P 4 2 3' case('Pn-3n:1') num='222:1' schn='Oh^2' hall='P 4 2 3 -1n' case('Pn-3n:2') num='222:2' schn='Oh^2' hall='-P 4a 2bc 3' case('Pm-3n') num='223' schn='Oh^3' hall='-P 4n 2 3' case('Pn-3m:1') num='224:1' schn='Oh^4' hall='P 4n 2 3 -1n' case('Pn-3m:2') num='224:2' schn='Oh^4' hall='-P 4bc 2bc 3' case('Fm-3m') num='225' schn='Oh^5' hall='-F 4 2 3' case('Fm-3c') num='226' schn='Oh^6' hall='-F 4c 2 3' case('Fd-3m:1') num='227:1' schn='Oh^7' hall='F 4d 2 3 -1d' case('Fd-3m:2') num='227:2' schn='Oh^7' hall='-F 4vw 2vw 3' case('Fd-3c:1') num='228:1' schn='Oh^8' hall='F 4d 2 3 -1cd' case('Fd-3c:2') num='228:2' schn='Oh^8' hall='-F 4cvw 2vw 3' case('Im-3m') num='229' schn='Oh^9' hall='-I 4 2 3' case('Ia-3d') num='230' schn='Oh^10' hall='-I 4bd 2c 3' case default write(*,*) write(*,'("Error(sgsymb): Hermann-Mauguin symbol ''",A,"'' not found")') & trim(adjustl(hrmg)) write(*,*) stop end select return end subroutine !EOC elk-6.3.2/src/spacegroup/PaxHeaders.21352/spacegroup.in0000644000000000000000000000013213543334730017472 xustar0030 mtime=1569569240.045644873 30 atime=1569569239.697645095 30 ctime=1569569240.045644873 elk-6.3.2/src/spacegroup/spacegroup.in0000644002504400250440000000103013543334730021533 0ustar00dewhurstdewhurst00000000000000 'Bmab' : hrmg 10.0605232 10.0605232 24.972729 : a, b, c 90.0 90.0 90.0 : bc, ac, ab 1 1 1 : ncell .true. : primcell 3 : nspecies 'La' : spsymb, spfname 1 : nwpos 0.0000 0.0000 0.3608 : wpos 'Cu' 1 0.0000 0.0000 0.0000 'O' 2 0.2500 0.2500 0.0000 0.0000 0.0000 0.1820 elk-6.3.2/src/spacegroup/PaxHeaders.21352/spacegroup.out0000644000000000000000000000013013543334730017671 xustar0029 mtime=1569569240.04964487 30 atime=1569569240.048644871 29 ctime=1569569240.04964487 elk-6.3.2/src/spacegroup/spacegroup.out0000644002504400250440000000162013543334730021741 0ustar00dewhurstdewhurst00000000000000\BOOKMARK [1][-]{section.1}{Introduction}{}% 1 \BOOKMARK [1][-]{section.2}{Usage}{}% 2 \BOOKMARK [1][-]{section.3}{Table of space group symbols}{}% 3 \BOOKMARK [1][-]{section.4}{Routine/Function Prologues}{}% 4 \BOOKMARK [2][-]{subsection.4.1}{Fortran: Module Interface modmain \(Source File: modmain.f90\)}{section.4}% 5 \BOOKMARK [2][-]{subsection.4.2}{sgsymb \(Source File: sgsymb.f90\)}{section.4}% 6 \BOOKMARK [2][-]{subsection.4.3}{findprimcell \(Source File: findprimcell.f90\)}{section.4}% 7 \BOOKMARK [2][-]{subsection.4.4}{r3frac \(Source File: r3frac.f90\)}{section.4}% 8 \BOOKMARK [2][-]{subsection.4.5}{r3mv \(Source File: r3mv.f90\)}{section.4}% 9 \BOOKMARK [2][-]{subsection.4.6}{r3cross \(Source File: r3cross.f90\)}{section.4}% 10 \BOOKMARK [2][-]{subsection.4.7}{r3minv \(Source File: r3minv.f90\)}{section.4}% 11 \BOOKMARK [2][-]{subsection.4.8}{r3mm \(Source File: r3mm.f90\)}{section.4}% 12 elk-6.3.2/src/spacegroup/PaxHeaders.21352/writegeom.f900000644000000000000000000000013213543334730017314 xustar0030 mtime=1569569240.053644868 30 atime=1569569240.053644868 30 ctime=1569569240.053644868 elk-6.3.2/src/spacegroup/writegeom.f900000644002504400250440000000334613543334730021371 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writegeom use modmain implicit none ! local variables integer is,ia,ip open(50,file='GEOMETRY.OUT',action='WRITE',form='FORMATTED') write(50,*) write(50,'("! Atomic positions generated by spacegroup version ",& &I1.1,".",I1.1,".",I2.2)') version write(50,'("! Hermann-Mauguin symbol : ",A)') trim(hrmg) write(50,'("! Hall symbol : ",A)') trim(hall) write(50,'("! Schoenflies symbol : ",A)') trim(schn) write(50,'("! space group number : ",A)') trim(num) write(50,'("! lattice constants (a,b,c) : ",3G18.10)') a,b,c write(50,'("! angles in degrees (bc,ac,ab) : ",3G18.10)') bc,ac,ab write(50,'("! number of conventional unit cells : ",3I4)') ncell write(50,'("! reduction to primitive cell : ",L1)') primcell write(50,'("! Wyckoff positions :")') do is=1,nspecies write(50,'("! species : ",I4,", ",A)') is,trim(spsymb(is)) do ip=1,nwpos(is) write(50,'("! ",3G18.10)') wpos(:,ip,is) end do end do write(50,*) write(50,'("avec")') write(50,'(3G18.10)') avec(:,1) write(50,'(3G18.10)') avec(:,2) write(50,'(3G18.10)') avec(:,3) write(50,*) write(50,'("atoms")') write(50,'(I4,T40," : nspecies")') nspecies do is=1,nspecies write(50,'("''",A,"''",T40," : spfname")') trim(spsymb(is))//'.in' write(50,'(I4,T40," : natoms; atposl, bfcmt below")') natoms(is) do ia=1,natoms(is) write(50,'(3F14.8," ",3F12.8)') atposl(:,ia,is),bfcmt0(:,ia,is) end do end do close(50) write(*,*) write(*,'("Info(writegeom):")') write(*,'(" Elk lattice vectors and atomic positions written to GEOMETRY.OUT")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/modmain.f900000644000000000000000000000013113543334734014571 xustar0030 mtime=1569569244.199642219 29 atime=1569569240.06564486 30 ctime=1569569244.199642219 elk-6.3.2/src/modmain.f900000644002504400250440000012016713543334734016650 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2009 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modmain !----------------------------! ! lattice parameters ! !----------------------------! ! lattice vectors stored column-wise real(8) avec(3,3) ! magnitude of random displacements added to lattice vectors real(8) rndavec ! inverse of lattice vector matrix real(8) ainv(3,3) ! reciprocal lattice vectors real(8) bvec(3,3) ! inverse of reciprocal lattice vector matrix real(8) binv(3,3) ! unit cell volume real(8) omega ! Brillouin zone volume real(8) omegabz ! any vector with length less than epslat is considered zero real(8) epslat !--------------------------! ! atomic variables ! !--------------------------! ! maximum allowed species integer, parameter :: maxspecies=8 ! maximum allowed atoms per species integer, parameter :: maxatoms=200 ! number of species integer nspecies ! number of atoms for each species integer natoms(maxspecies) ! maximum number of atoms over all the species integer natmmax ! total number of atoms integer natmtot ! index to atoms and species integer idxas(maxatoms,maxspecies) ! inverse atoms and species indices integer idxis(maxatoms*maxspecies) integer idxia(maxatoms*maxspecies) ! molecule is .true. is the system is an isolated molecule logical molecule ! primcell is .true. if primitive unit cell is to be found automatically logical primcell ! atomic positions in lattice coordinates real(8) atposl(3,maxatoms,maxspecies) ! atomic positions in Cartesian coordinates real(8) atposc(3,maxatoms,maxspecies) ! magnitude of random displacements added to the atomic positions real(8) rndatposc !----------------------------------! ! atomic species variables ! !----------------------------------! ! species files path character(256) sppath ! species filenames character(256) spfname(maxspecies) ! species name character(256) spname(maxspecies) ! species symbol character(256) spsymb(maxspecies) ! species nuclear charge real(8) spzn(maxspecies) ! ptnucl is .true. if the nuclei are to be treated as point charges, if .false. ! the nuclei have a finite spherical distribution logical ptnucl ! nuclear radius real(8) rnucl(maxspecies) ! nuclear volume real(8) volnucl(maxspecies) ! number of radial mesh points to nuclear radius integer nrnucl(maxspecies) ! number of coarse radial mesh points to nuclear radius integer nrcnucl(maxspecies) ! nuclear Coulomb potential real(8), allocatable :: vcln(:,:) ! species electronic charge real(8) spze(maxspecies) ! species mass real(8) spmass(maxspecies) ! smallest radial point for each species real(8) rminsp(maxspecies) ! effective infinity for species real(8) rmaxsp(maxspecies) ! number of radial points to effective infinity for each species integer nrsp(maxspecies) ! maximum nrsp over all the species integer nrspmax ! maximum allowed states for each species integer, parameter :: maxstsp=40 ! number of states for each species integer nstsp(maxspecies) ! maximum nstsp over all the species integer nstspmax ! core-valence cut-off energy for species file generation real(8) ecvcut ! semi-core-valence cut-off energy for species file generation real(8) esccut ! state principle quantum number for each species integer nsp(maxstsp,maxspecies) ! state l value for each species integer lsp(maxstsp,maxspecies) ! state k value for each species integer ksp(maxstsp,maxspecies) ! spcore is .true. if species state is core logical spcore(maxstsp,maxspecies) ! total number of core states integer nstcr ! state eigenvalue for each species real(8) evalsp(maxstsp,maxspecies) ! state occupancy for each species real(8) occsp(maxstsp,maxspecies) ! species radial mesh to effective infinity real(8), allocatable :: rsp(:,:) ! r^l on radial mesh to muffin-tin radius real(8), allocatable :: rlsp(:,:,:) ! species charge density real(8), allocatable :: rhosp(:,:) ! species self-consistent potential real(8), allocatable :: vrsp(:,:) ! exchange-correlation type for atomic species (the converged ground-state of ! the crystal does not depend on this choice) integer xctsp(3) !---------------------------------------------------------------! ! muffin-tin radial mesh and angular momentum variables ! !---------------------------------------------------------------! ! scale factor for number of muffin-tin points real(8) nrmtscf ! number of muffin-tin radial points for each species integer nrmt(maxspecies) ! maximum nrmt over all the species integer nrmtmax ! optional default muffin-tin radius for all atoms real(8) rmtall ! minimum allowed distance between muffin-tin surfaces real(8) rmtdelta ! muffin-tin radii real(8) rmt(maxspecies) ! total muffin-tin volume real(8) omegamt ! radial step length for coarse mesh integer lradstp ! number of coarse radial mesh points integer nrcmt(maxspecies) ! maximum nrcmt over all the species integer nrcmtmax ! coarse muffin-tin radial mesh real(8), allocatable :: rcmt(:,:) ! r^l on fine radial mesh real(8), allocatable :: rlmt(:,:,:) ! r^l on coarse radial mesh real(8), allocatable :: rlcmt(:,:,:) ! weights for spline integration on fine radial mesh real(8), allocatable :: wrmt(:,:) ! weights for spline partial integration on fine radial mesh real(8), allocatable :: wprmt(:,:,:) ! weights for spline integration on coarse radial mesh real(8), allocatable :: wrcmt(:,:) ! weights for spline partial integration on coarse radial mesh real(8), allocatable :: wprcmt(:,:,:) ! maximum allowable angular momentum for augmented plane waves integer, parameter :: maxlapw=50 ! maximum angular momentum for augmented plane waves integer lmaxapw ! (lmaxapw+1)^2 integer lmmaxapw ! maximum angular momentum on the outer part of the muffin-tin integer lmaxo ! (lmaxo+1)^2 integer lmmaxo ! maximum angular momentum on the inner part of the muffin-tin integer lmaxi ! (lmaxi+1)^2 integer lmmaxi ! fraction of muffin-tin radius which constitutes the inner part real(8) fracinr ! number of fine/coarse radial points on the inner part of the muffin-tin integer nrmti(maxspecies),nrcmti(maxspecies) ! index to (l,m) pairs integer, allocatable :: idxlm(:,:) ! inverse index to (l,m) pairs integer, allocatable :: idxil(:),idxim(:) ! number of fine/coarse points in packed muffin-tins integer npmti(maxspecies),npmt(maxspecies) integer npcmti(maxspecies),npcmt(maxspecies) ! maximum number of points over all packed muffin-tins integer npmtmax,npcmtmax !--------------------------------! ! spin related variables ! !--------------------------------! ! spinpol is .true. for spin-polarised calculations logical spinpol ! spinorb is .true. for spin-orbit coupling logical spinorb ! scale factor of spin-orbit coupling term in Hamiltonian real(8) socscf ! dimension of magnetisation and magnetic vector fields (1 or 3) integer ndmag ! ncmag is .true. if the magnetisation is non-collinear, i.e. when ndmag = 3 logical ncmag ! if cmagz is .true. then collinear magnetism along the z-axis is enforced logical cmagz ! spcpl is .true. if the up and down spins are coupled logical spcpl ! fixed spin moment type ! 0 : none ! 1 (-1) : total moment (direction) ! 2 (-2) : individual muffin-tin moments (direction) ! 3 (-3) : total and muffin-tin moments (direction) integer fsmtype ! fixed total spin magnetic moment real(8) momfix(3) ! fixed spin moment global effective field in Cartesian coordinates real(8) bfsmc(3) ! muffin-tin fixed spin moments real(8) mommtfix(3,maxatoms,maxspecies) ! muffin-tin fixed spin moment effective fields in Cartesian coordinates real(8), allocatable :: bfsmcmt(:,:) ! fixed spin moment field step size real(8) taufsm ! second-variational spinor dimension (1 or 2) integer nspinor ! global external magnetic field in Cartesian coordinates real(8) bfieldc(3) ! initial field real(8) bfieldc0(3) ! external magnetic field in each muffin-tin in Cartesian coordinates real(8) bfcmt(3,maxatoms,maxspecies) ! initial field as read in from input file real(8) bfcmt0(3,maxatoms,maxspecies) ! magnitude of random vectors added to muffin-tin fields real(8) rndbfcmt ! external magnetic fields are multiplied by reducebf after each s.c. loop real(8) reducebf ! spinsprl is .true. if a spin-spiral is to be calculated logical spinsprl ! ssdph is .true. if the muffin-tin spin-spiral magnetisation is de-phased logical ssdph ! number of spin-dependent first-variational functions per state integer nspnfv ! map from second- to first-variational spin index integer jspnfv(2) ! spin-spiral q-vector in lattice coordinates real(8) vqlss(3) ! spin-spiral q-vector in Cartesian coordinates real(8) vqcss(3) ! current q-point in spin-spiral supercell calculation integer iqss ! number of primitive unit cells in spin-spiral supercell integer nscss ! number of fixed spin direction points on the sphere for finding the magnetic ! anisotropy energy (MAE) integer npmae0,npmae ! (theta,phi) coordinates for each MAE direction real(8), allocatable :: tpmae(:,:) !---------------------------------------------! ! electric field and vector potential ! !---------------------------------------------! ! tefield is .true. if a polarising constant electric field is applied logical tefield ! electric field vector in Cartesian coordinates real(8) efieldc(3) ! electric field vector in lattice coordinates real(8) efieldl(3) ! tafield is .true. if a constant vector potential is applied logical tafield ! vector potential A-field which couples to paramagnetic current real(8) afieldc(3) ! A-field in lattice coordinates real(8) afieldl(3) !----------------------------! ! symmetry variables ! !----------------------------! ! type of symmetry allowed for the crystal ! 0 : only the identity element is used ! 1 : full symmetry group is used ! 2 : only symmorphic symmetries are allowed integer symtype ! number of Bravais lattice point group symmetries integer nsymlat ! Bravais lattice point group symmetries integer symlat(3,3,48) ! determinants of lattice symmetry matrices (1 or -1) integer symlatd(48) ! index to inverses of the lattice symmetries integer isymlat(48) ! lattice point group symmetries in Cartesian coordinates real(8) symlatc(3,3,48) ! tshift is .true. if atomic basis is allowed to be shifted logical tshift ! tsyminv is .true. if the crystal has inversion symmetry logical tsyminv ! maximum of symmetries allowed integer, parameter :: maxsymcrys=192 ! number of crystal symmetries integer nsymcrys ! crystal symmetry translation vector in lattice and Cartesian coordinates real(8) vtlsymc(3,maxsymcrys) real(8) vtcsymc(3,maxsymcrys) ! tv0symc is .true. if the translation vector is zero logical tv0symc(maxsymcrys) ! spatial rotation element in lattice point group for each crystal symmetry integer lsplsymc(maxsymcrys) ! global spin rotation element in lattice point group for each crystal symmetry integer lspnsymc(maxsymcrys) ! equivalent atom index for each crystal symmetry integer, allocatable :: ieqatom(:,:,:) ! eqatoms(ia,ja,is) is .true. if atoms ia and ja are equivalent logical, allocatable :: eqatoms(:,:,:) ! number of site symmetries integer, allocatable :: nsymsite(:) ! site symmetry spatial rotation element in lattice point group integer, allocatable :: lsplsyms(:,:) ! site symmetry global spin rotation element in lattice point group integer, allocatable :: lspnsyms(:,:) !----------------------------! ! G-vector variables ! !----------------------------! ! G-vector cut-off for interstitial potential and density real(8) gmaxvr ! G-vector grid sizes integer ngridg(3) ! G-vector grid sizes for coarse grid (G < 2*gkmax) integer ngdc(3) ! total number of G-vectors integer ngtot ! total number of G-vectors for coarse grid (G < 2*gkmax) integer ngtc ! integer grid intervals for each direction integer intgv(2,3) ! number of G-vectors with G < gmaxvr integer ngvec ! number of G-vectors for coarse grid (G < 2*gkmax) integer ngvc ! G-vector integer coordinates (i1,i2,i3) integer, allocatable :: ivg(:,:) ! map from (i1,i2,i3) to G-vector index integer, allocatable :: ivgig(:,:,:) ! map from G-vector index to FFT array integer, allocatable :: igfft(:) ! map from G-vector index to FFT array for coarse grid (G < 2*gkmax) integer, allocatable :: igfc(:) ! G-vectors in Cartesian coordinates real(8), allocatable :: vgc(:,:) ! length of G-vectors real(8), allocatable :: gc(:) ! Coulomb Green's function in G-space = 4 pi / G^2 real(8), allocatable :: gclg(:) ! spherical Bessel functions j_l(|G|R_mt) real(8), allocatable :: jlgrmt(:,:,:) ! spherical harmonics of the G-vectors complex(8), allocatable :: ylmg(:,:) ! structure factors for the G-vectors complex(8), allocatable :: sfacg(:,:) ! smooth step function form factors for all species and G-vectors real(8), allocatable :: ffacg(:,:) ! characteristic function in G-space: 0 inside the muffin-tins and 1 outside complex(8), allocatable :: cfunig(:) ! characteristic function in real-space: 0 inside the muffin-tins and 1 outside real(8), allocatable :: cfunir(:) ! characteristic function in real-space for coarse grid (G < 2*gkmax) real(8), allocatable :: cfrc(:) !---------------------------! ! k-point variables ! !---------------------------! ! autokpt is .true. if the k-point set is determined automatically logical autokpt ! radius of sphere used to determine k-point density when autokpt is .true. real(8) radkpt ! k-point grid sizes integer ngridk(3) ! k-point offset real(8) vkloff(3) ! corners of box in lattice coordinates containing the k-points, the zeroth ! vector is the origin real(8) kptboxl(3,0:3) ! type of reduction to perform on k-point set ! 0 : no reduction ! 1 : reduce with full crystal symmetry group ! 2 : reduce with symmorphic symmetries only integer reducek ! number of point group symmetries used for k-point reduction integer nsymkpt ! point group symmetry matrices used for k-point reduction integer symkpt(3,3,48) ! total number of reduced k-points integer nkpt ! total number of non-reduced k-points integer nkptnr ! locations of k-points on integer grid integer, allocatable :: ivk(:,:) ! map from (i1,i2,i3) to reduced k-point index integer, allocatable :: ivkik(:,:,:) ! map from (i1,i2,i3) to non-reduced k-point index integer, allocatable :: ivkiknr(:,:,:) ! k-points in lattice coordinates real(8), allocatable :: vkl(:,:) ! k-points in Cartesian coordinates real(8), allocatable :: vkc(:,:) ! reduced k-point weights real(8), allocatable :: wkpt(:) ! weight of each non-reduced k-point real(8) wkptnr ! k-point at which to determine effective mass tensor real(8) vklem(3) ! displacement size for computing the effective mass tensor real(8) deltaem ! number of displacements in each direction integer ndspem !------------------------------! ! G+k-vector variables ! !------------------------------! ! species for which the muffin-tin radius will be used for calculating gkmax integer isgkmax ! smallest muffin-tin radius times gkmax real(8) rgkmax ! maximum |G+k| cut-off for APW functions real(8) gkmax ! number of G+k-vectors for augmented plane waves integer, allocatable :: ngk(:,:) ! maximum number of G+k-vectors over all k-points integer ngkmax ! index from G+k-vectors to G-vectors integer, allocatable :: igkig(:,:,:) ! G+k-vectors in lattice coordinates real(8), allocatable :: vgkl(:,:,:,:) ! G+k-vectors in Cartesian coordinates real(8), allocatable :: vgkc(:,:,:,:) ! length of G+k-vectors real(8), allocatable :: gkc(:,:,:) ! structure factors for the G+k-vectors complex(8), allocatable :: sfacgk(:,:,:,:) !---------------------------! ! q-point variables ! !---------------------------! ! q-point grid sizes integer ngridq(3) ! integer grid intervals for the q-points integer intq(2,3) ! type of reduction to perform on q-point set (see reducek) integer reduceq ! number of point group symmetries used for q-point reduction integer nsymqpt ! point group symmetry matrices used for q-point reduction integer symqpt(3,3,48) ! total number of reduced q-points integer nqpt ! total number of non-reduced q-points integer nqptnr ! map from non-reduced grid to reduced index integer, allocatable :: iqmap(:,:,:) ! map from non-reduced grid to non-reduced index integer, allocatable :: iqmapnr(:,:,:) ! locations of q-points on integer grid integer, allocatable :: ivq(:,:) ! map from (i1,i2,i3) to q-vector index integer, allocatable :: ivqiq(:,:,:) ! map from q-vector index to complex-complex FFT array integer, allocatable :: iqfft(:) ! number of complex FFT elements for real-complex transforms integer nfqrz ! map from q-point index to real-complex FFT index integer, allocatable :: ifqrz(:) ! map from real-complex FFT index to q-point index integer, allocatable :: iqrzf(:) ! q-points in lattice coordinates real(8), allocatable :: vql(:,:) ! q-points in Cartesian coordinates real(8), allocatable :: vqc(:,:) ! q-point weights real(8), allocatable :: wqpt(:) ! weight for each non-reduced q-point real(8) wqptnr ! index of q = 0 point integer iq0 ! regularised Coulomb Green's function in q-space real(8), allocatable :: gclq(:) !-----------------------------------------------------! ! spherical harmonic transform (SHT) matrices ! !-----------------------------------------------------! ! trotsht is .true. if the spherical cover used for the SHT is to be rotated logical trotsht data trotsht / .false. / ! spherical cover rotation matrix real(8) rotsht(3,3) ! real backward SHT matrix for lmaxi real(8), allocatable :: rbshti(:,:) ! real forward SHT matrix for lmaxi real(8), allocatable :: rfshti(:,:) ! real backward SHT matrix for lmaxo real(8), allocatable :: rbshto(:,:) ! real forward SHT matrix for lmaxo real(8), allocatable :: rfshto(:,:) ! complex backward SHT matrix for lmaxi complex(8), allocatable :: zbshti(:,:) ! complex forward SHT matrix for lmaxi complex(8), allocatable :: zfshti(:,:) ! complex backward SHT matrix for lmaxo complex(8), allocatable :: zbshto(:,:) ! complex forward SHT matrix for lmaxo complex(8), allocatable :: zfshto(:,:) !---------------------------------------------------------------! ! density, potential and exchange-correlation variables ! !---------------------------------------------------------------! ! exchange-correlation functional type integer xctype(3) ! exchange-correlation functional description character(512) xcdescr ! exchange-correlation functional spin requirement integer xcspin ! exchange-correlation functional density gradient requirement integer xcgrad ! small constant used to stabilise non-collinear GGA real(8) dncgga ! muffin-tin and interstitial charge density real(8), allocatable :: rhomt(:,:),rhoir(:) ! trhonorm is .true. if the density is to be normalised after every iteration logical trhonorm ! muffin-tin and interstitial magnetisation vector field real(8), allocatable :: magmt(:,:,:),magir(:,:) ! tcden is .true. if the current density is to be calculated logical tcden ! muffin-tin and interstitial current density vector field real(8), allocatable :: cdmt(:,:,:),cdir(:,:) ! amount of smoothing to be applied to the exchange-correlation potentials and ! magnetic field integer msmooth ! muffin-tin and interstitial Coulomb potential real(8), allocatable :: vclmt(:,:),vclir(:) ! Poisson solver pseudocharge density constant integer npsd ! lmaxo+npsd+1 integer lnpsd ! muffin-tin and interstitial exchange energy density real(8), allocatable :: exmt(:,:),exir(:) ! muffin-tin and interstitial correlation energy density real(8), allocatable :: ecmt(:,:),ecir(:) ! muffin-tin and interstitial exchange-correlation potential real(8), allocatable :: vxcmt(:,:),vxcir(:) ! constant part of exchange-correlation potential real(8) vxc0 ! muffin-tin and interstitial Kohn-Sham effective potential real(8), allocatable :: vsmt(:,:),vsir(:) ! G-space interstitial Kohn-Sham effective potential complex(8), allocatable :: vsig(:) ! muffin-tin and interstitial exchange-correlation magnetic field real(8), allocatable :: bxcmt(:,:,:),bxcir(:,:) ! muffin-tin and interstitial magnetic dipole field real(8), allocatable :: bdmt(:,:,:),bdir(:,:) ! tbdip is .true. if the spin and current dipole fields are to be added to the ! Kohn-Sham magnetic field logical tbdip ! muffin-tin Kohn-Sham effective magnetic field in spherical coordinates and on ! a coarse radial mesh real(8), allocatable :: bsmt(:,:,:) ! interstitial Kohn-Sham effective magnetic field real(8), allocatable :: bsir(:,:) ! nosource is .true. if the field is to be made source-free logical nosource ! tssxc is .true. if scaled spin exchange-correlation (SSXC) is to be used logical tssxc ! SSXC scaling factor real(8) ssxc ! spin-orbit coupling radial function real(8), allocatable :: socfr(:,:) ! kinetic energy density real(8), allocatable :: taumt(:,:,:),tauir(:,:) ! core kinetic energy density real(8), allocatable :: taucr(:,:,:) ! taudft is .true. if meta-GGA is to be treated as a tau-DFT functional logical taudft ! tau-DFT exchange-correlation potential real(8), allocatable :: wxcmt(:,:),wxcir(:) ! tau-DFT Kohn-Sham potential real(8), allocatable :: wsmt(:,:),wsir(:) ! Tran-Blaha '09 constant c [Phys. Rev. Lett. 102, 226401 (2009)] real(8) c_tb09 ! tc_tb09 is .true. if the Tran-Blaha constant has been read in logical tc_tb09 ! if trdstate is .true. the density and potential can be read from STATE.OUT logical trdstate ! temperature in degrees Kelvin real(8) tempk ! maximum number of iterations used for inverting the Kohn-Sham equations integer maxitksi ! step size used for inverting the Kohn-Sham equations real(8) tauksi !--------------------------! ! mixing variables ! !--------------------------! ! type of mixing to use for the potential integer mixtype ! mixing type description character(256) mixdescr ! adaptive mixing parameters (formerly beta0 and betamax) real(8) amixpm(2) ! subspace dimension for Broyden mixing integer mixsdb ! Broyden mixing parameters alpha and w0 real(8) broydpm(2) !----------------------------------------------! ! charge, moment and current variables ! !----------------------------------------------! ! tolerance for error in total charge real(8) epschg ! total nuclear charge real(8) chgzn ! core charges real(8) chgcr(maxspecies) ! total core charge real(8) chgcrtot ! core leakage charge real(8), allocatable :: chgcrlk(:) ! total valence charge real(8) chgval ! excess charge real(8) chgexs ! total charge real(8) chgtot ! calculated total charge real(8) chgcalc ! interstitial region charge real(8) chgir ! muffin-tin charges real(8), allocatable :: chgmt(:) ! total muffin-tin charge real(8) chgmttot ! effective Wigner radius real(8) rwigner ! total moment real(8) momtot(3) ! total moment magnitude real(8) momtotm ! interstitial region moment real(8) momir(3) ! muffin-tin moments real(8), allocatable :: mommt(:,:) ! total muffin-tin moment real(8) mommttot(3) ! total current real(8) curtot(3) ! total current magnitude real(8) curtotm !-----------------------------------------! ! APW and local-orbital variables ! !-----------------------------------------! ! energy step used for numerical calculation of energy derivatives real(8) deapwlo ! maximum allowable APW order integer, parameter :: maxapword=4 ! APW order integer apword(0:maxlapw,maxspecies) ! maximum of apword over all angular momenta and species integer apwordmax ! total number of APW coefficients (l, m and order) for each species integer lmoapw(maxspecies) ! polynomial order used for APW radial derivatives integer npapw ! APW initial linearisation energies real(8) apwe0(maxapword,0:maxlapw,maxspecies) ! APW linearisation energies real(8), allocatable :: apwe(:,:,:) ! APW derivative order integer apwdm(maxapword,0:maxlapw,maxspecies) ! apwve is .true. if the linearisation energies are allowed to vary logical apwve(maxapword,0:maxlapw,maxspecies) ! APW radial functions real(8), allocatable :: apwfr(:,:,:,:,:) ! derivate of radial functions at the muffin-tin surface real(8), allocatable :: apwdfr(:,:,:) ! maximum number of local-orbitals integer, parameter :: maxlorb=200 ! maximum allowable local-orbital order integer, parameter :: maxlorbord=5 ! number of local-orbitals integer nlorb(maxspecies) ! maximum nlorb over all species integer nlomax ! total number of local-orbitals integer nlotot ! local-orbital order integer lorbord(maxlorb,maxspecies) ! maximum lorbord over all species integer lorbordmax ! polynomial order used for local-orbital radial derivatives integer nplorb ! local-orbital angular momentum integer lorbl(maxlorb,maxspecies) ! maximum lorbl over all species integer lolmax ! (lolmax+1)^2 integer lolmmax ! local-orbital initial energies real(8) lorbe0(maxlorbord,maxlorb,maxspecies) ! local-orbital energies real(8), allocatable :: lorbe(:,:,:) ! local-orbital derivative order integer lorbdm(maxlorbord,maxlorb,maxspecies) ! lorbve is .true. if the linearisation energies are allowed to vary logical lorbve(maxlorbord,maxlorb,maxspecies) ! local-orbital radial functions real(8), allocatable :: lofr(:,:,:,:) ! band energy search tolerance real(8) epsband ! maximum allowed change in energy during band energy search; enforced only if ! default energy is less than zero real(8) demaxbnd ! minimum default linearisation energy over all APWs and local-orbitals real(8) e0min ! if autolinengy is .true. then the fixed linearisation energies are set to the ! Fermi energy minus dlefe logical autolinengy ! difference between linearisation and Fermi energies when autolinengy is .true. real(8) dlefe ! lorbcnd is .true. if conduction state local-orbitals should be added logical lorbcnd ! conduction state local-orbital order integer lorbordc ! excess order of the APW and local-orbital functions integer nxoapwlo ! excess local orbitals integer nxlo !-------------------------------------------! ! overlap and Hamiltonian variables ! !-------------------------------------------! ! overlap and Hamiltonian matrices sizes at each k-point integer, allocatable :: nmat(:,:) ! maximum nmat over all k-points integer nmatmax ! index to the position of the local-orbitals in the H and O matrices integer, allocatable :: idxlo(:,:,:) ! APW-local-orbital overlap integrals real(8), allocatable :: oalo(:,:,:) ! local-orbital-local-orbital overlap integrals real(8), allocatable :: ololo(:,:,:) ! APW-APW Hamiltonian integrals real(8), allocatable :: haa(:,:,:,:,:,:) ! local-orbital-APW Hamiltonian integrals real(8), allocatable :: hloa(:,:,:,:,:) ! local-orbital-local-orbital Hamiltonian integrals real(8), allocatable :: hlolo(:,:,:,:) ! complex Gaunt coefficient array complex(8), allocatable :: gntyry(:,:,:) ! tefvr is .true. if the first-variational eigenvalue equation is to be solved ! as a real symmetric problem logical tefvr ! tefvit is .true. if the first-variational eigenvalue equation is to be solved ! iteratively logical tefvit ! minimum and maximum allowed number of eigenvalue equation iterations integer minitefv,maxitefv ! eigenvalue mixing parameter for iterative solver real(8) befvit ! iterative solver convergence tolerance real(8) epsefvit ! type of eigenvalue solver to be used integer evtype !--------------------------------------------! ! eigenvalue and occupancy variables ! !--------------------------------------------! ! number of empty states per atom and spin real(8) nempty0 ! number of empty states integer nempty ! number of first-variational states integer nstfv ! number of second-variational states integer nstsv ! smearing type integer stype ! smearing function description character(256) sdescr ! smearing width real(8) swidth ! autoswidth is .true. if the smearing width is to be determined automatically logical autoswidth ! effective mass used in smearing width formula real(8) mstar ! maximum allowed occupancy (1 or 2) real(8) occmax ! convergence tolerance for occupancies real(8) epsocc ! second-variational occupation numbers real(8), allocatable :: occsv(:,:) ! Fermi energy for second-variational states real(8) efermi ! scissor correction applied when computing response functions real(8) scissor ! density of states at the Fermi energy real(8) fermidos ! estimated indirect and direct band gaps real(8) bandgap(2) ! k-points of indirect and direct gaps integer ikgap(3) ! error tolerance for the first-variational eigenvalues real(8) evaltol ! second-variational eigenvalues real(8), allocatable :: evalsv(:,:) ! tevecsv is .true. if second-variational eigenvectors are calculated logical tevecsv ! maximum number of k-point and states indices in user-defined list integer, parameter :: maxkst=20 ! number of k-point and states indices in user-defined list integer nkstlist ! user-defined list of k-point and state indices integer kstlist(2,maxkst) !------------------------------! ! core state variables ! !------------------------------! ! occupancies for core states real(8), allocatable :: occcr(:,:) ! eigenvalues for core states real(8), allocatable :: evalcr(:,:) ! radial wavefunctions for core states real(8), allocatable :: rwfcr(:,:,:,:) ! radial charge density for core states real(8), allocatable :: rhocr(:,:,:) ! spincore is .true. if the core is to be treated as spin-polarised logical spincore ! number of core spin-channels integer nspncr !--------------------------! ! energy variables ! !--------------------------! ! eigenvalue sum real(8) evalsum ! electron kinetic energy real(8) engykn ! core electron kinetic energy real(8) engykncr ! nuclear-nuclear energy real(8) engynn ! electron-nuclear energy real(8) engyen ! Hartree energy real(8) engyhar ! Coulomb energy (E_nn + E_en + E_H) real(8) engycl ! electronic Coulomb potential energy real(8) engyvcl ! Madelung term real(8) engymad ! exchange-correlation potential energy real(8) engyvxc ! exchange-correlation effective field energy real(8) engybxc ! energy of external global magnetic field real(8) engybext ! exchange energy real(8) engyx ! correlation energy real(8) engyc ! electronic entropy real(8) entrpy ! entropic contribution to free energy real(8) engyts ! total energy real(8) engytot !------------------------------------! ! force and stress variables ! !------------------------------------! ! tforce is .true. if force should be calculated logical tforce ! Hellmann-Feynman force on each atom real(8), allocatable :: forcehf(:,:) ! incomplete basis set (IBS) force on each atom real(8), allocatable :: forceibs(:,:) ! total force on each atom real(8), allocatable :: forcetot(:,:) ! previous total force on each atom real(8), allocatable :: forcetotp(:,:) ! maximum force magnitude over all atoms real(8) forcemax ! tfav0 is .true. if the average force should be zero in order to prevent ! translation of the atomic basis logical tfav0 ! average force real(8) forceav(3) ! atomic position optimisation type ! 0 : no optimisation ! 1 : unconstrained optimisation integer atpopt ! maximum number of atomic position optimisation steps integer maxatpstp ! default step size parameter for atomic position optimisation real(8) tau0atp ! step size parameters for each atom real(8), allocatable :: tauatp(:) ! number of strain tensors integer nstrain ! current strain tensor integer istrain data istrain / 0 / ! strain tensors real(8) strain(3,3,9) ! infinitesimal displacement parameter multiplied by the strain tensor for ! computing the stress tensor real(8) deltast ! symmetry reduced stress tensor components real(8) stress(9) ! previous stress tensor real(8) stressp(9) ! stress tensor component magnitude maximum real(8) stressmax ! lattice vector optimisation type ! 0 : no optimisation ! 1 : unconstrained optimisation ! 2 : iso-volumetric optimisation integer latvopt ! maximum number of lattice vector optimisation steps integer maxlatvstp ! default step size parameter for lattice vector optimisation real(8) tau0latv ! step size for each stress tensor component acting on the lattice vectors real(8) taulatv(9) !-------------------------------! ! convergence variables ! !-------------------------------! ! maximum number of self-consistent loops integer maxscl ! current self-consistent loop number integer iscl ! Kohn-Sham potential convergence tolerance real(8) epspot ! energy convergence tolerance real(8) epsengy ! force convergence tolerance real(8) epsforce ! stress tensor convergence tolerance real(8) epsstress !----------------------------------------------------------! ! density of states, optics and response variables ! !----------------------------------------------------------! ! number of energy intervals in the DOS/optics function plot integer nwplot ! fine k-point grid size for integration of functions in the Brillouin zone integer ngrkf ! smoothing level for DOS/optics function plot integer nswplot ! energy interval for DOS/optics function plot real(8) wplot(2) ! maximum angular momentum for the partial DOS plot integer lmaxdos ! dosocc is .true. if the DOS is to be weighted by the occupancy logical dosocc ! dosmsum is .true. if the partial DOS is to be summed over m logical dosmsum ! dosssum is .true. if the partial DOS is to be summed over spin logical dosssum ! number of optical matrix components required integer noptcomp ! required optical matrix components integer optcomp(3,27) ! intraband is .true. if the intraband term is to be added to the optical matrix logical intraband ! lmirep is .true. if the (l,m) band characters should correspond to the ! irreducible representations of the site symmetries logical lmirep ! spin-quantisation axis in Cartesian coordinates used when plotting the ! spin-resolved DOS (z-axis by default) real(8) sqados(3) ! q-vector in lattice and Cartesian coordinates for calculating the matrix ! elements < i,k+q | exp(iq.r) | j,k > real(8) vecql(3),vecqc(3) ! maximum initial-state energy allowed in ELNES transitions real(8) emaxelnes ! structure factor energy window real(8) wsfac(2) !-------------------------------------! ! 1D/2D/3D plotting variables ! !-------------------------------------! ! number of vertices in 1D plot integer nvp1d ! total number of points in 1D plot integer npp1d ! vertices in lattice coordinates for 1D plot real(8), allocatable :: vvlp1d(:,:) ! distance to vertices in 1D plot real(8), allocatable :: dvp1d(:) ! plot vectors in lattice coordinates for 1D plot real(8), allocatable :: vplp1d(:,:) ! distance to points in 1D plot real(8), allocatable :: dpp1d(:) ! corner vectors of 2D plot in lattice coordinates real(8) vclp2d(3,0:2) ! grid sizes of 2D plot integer np2d(2) ! corner vectors of 3D plot in lattice coordinates real(8) vclp3d(3,0:3) ! grid sizes of 3D plot integer np3d(3) !----------------------------------------! ! OEP and Hartree-Fock variables ! !----------------------------------------! ! maximum number of core states over all species integer ncrmax ! maximum number of OEP iterations integer maxitoep ! OEP step size real(8) tauoep ! magnitude of the OEP residual real(8) resoep ! exchange potential and magnetic field real(8), allocatable :: vxmt(:,:),vxir(:) real(8), allocatable :: bxmt(:,:,:),bxir(:,:) ! hybrid is .true. if a hybrid functional is to be used logical hybrid ! hybrid functional mixing coefficient real(8) hybridc !-------------------------------------------------------------! ! response function and perturbation theory variables ! !-------------------------------------------------------------! ! |G| cut-off for response functions real(8) gmaxrf ! energy cut-off for response functions real(8) emaxrf ! number of G-vectors for response functions integer ngrf ! number of response function frequencies integer nwrf ! complex response function frequencies complex(8), allocatable :: wrf(:) ! maximum number of spherical Bessel functions on the coarse radial mesh over ! all species integer njcmax !-------------------------------------------------! ! Bethe-Salpeter equation (BSE) variables ! !-------------------------------------------------! ! number of valence and conduction states for transitions integer nvbse,ncbse ! default number of valence and conduction states integer nvbse0,ncbse0 ! maximum number of extra valence and conduction states integer, parameter :: maxxbse=20 ! number of extra valence and conduction states integer nvxbse,ncxbse ! extra valence and conduction states integer istxbse(maxxbse),jstxbse(maxxbse) ! total number of transitions integer nvcbse ! size of blocks in BSE Hamiltonian matrix integer nbbse ! size of BSE matrix (= 2*nbbse) integer nmbse ! index from BSE valence states to second-variational states integer, allocatable :: istbse(:,:) ! index from BSE conduction states to second-variational states integer, allocatable :: jstbse(:,:) ! index from BSE valence-conduction pair and k-point to location in BSE matrix integer, allocatable :: ijkbse(:,:,:) ! BSE Hamiltonian complex(8), allocatable :: hmlbse(:,:) ! BSE Hamiltonian eigenvalues real(8), allocatable :: evalbse(:) ! if bsefull is .true. then the full BSE Hamiltonian is calculated, otherwise ! only the Hermitian block logical bsefull ! if hxbse/hdbse is .true. then the exchange/direct term is included in the BSE ! Hamiltonian logical hxbse,hdbse !--------------------------! ! timing variables ! !--------------------------! ! initialisation real(8) timeinit ! Hamiltonian and overlap matrix set up real(8) timemat ! first-variational calculation real(8) timefv ! second-variational calculation real(8) timesv ! charge density calculation real(8) timerho ! potential calculation real(8) timepot ! force calculation real(8) timefor !-----------------------------! ! numerical constants ! !-----------------------------! real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: twopi=6.2831853071795864769d0 real(8), parameter :: fourpi=12.566370614359172954d0 ! spherical harmonic for l=m=0 real(8), parameter :: y00=0.28209479177387814347d0 ! complex constants complex(8), parameter :: zzero=(0.d0,0.d0) complex(8), parameter :: zone=(1.d0,0.d0) complex(8), parameter :: zi=(0.d0,1.d0) ! array of i^l and (-i)^l values complex(8), allocatable :: zil(:),zilc(:) ! Pauli spin matrices: ! sigma_x = ( 0 1 ) sigma_y = ( 0 -i ) sigma_z = ( 1 0 ) ! ( 1 0 ) ( i 0 ) ( 0 -1 ) complex(8) sigmat(2,2,3) data sigmat / (0.d0,0.d0), (1.d0,0.d0), (1.d0,0.d0), (0.d0,0.d0), & (0.d0,0.d0), (0.d0,1.d0),(0.d0,-1.d0), (0.d0,0.d0), & (1.d0,0.d0), (0.d0,0.d0), (0.d0,0.d0),(-1.d0,0.d0) / ! Planck constant in SI units (exact, CODATA 2018) real(8), parameter :: h_si=6.62607015d-34 ! reduced Planck constant in SI units real(8), parameter :: hbar_si=h_si/twopi ! speed of light in SI units (exact, CODATA 2018) real(8), parameter :: sol_si=299792458d0 ! speed of light in atomic units (=1/alpha) (CODATA 2018) real(8), parameter :: sol=137.035999084d0 ! scaled speed of light real(8) solsc ! Hartree in SI units (CODATA 2018) real(8), parameter :: ha_si=4.3597447222071d-18 ! Hartree in eV (CODATA 2018) real(8), parameter :: ha_ev=27.211386245988d0 ! Hartree in inverse meters real(8), parameter :: ha_im=ha_si/(h_si*sol_si) ! Boltzmann constant in SI units (exact, CODATA 2018) real(8), parameter :: kb_si=1.380649d-23 ! Boltzmann constant in Hartree/kelvin real(8), parameter :: kboltz=kb_si/ha_si ! electron charge in SI units (exact, CODATA 2018) real(8), parameter :: e_si=1.602176634d-19 ! Bohr radius in SI units (CODATA 2018) real(8), parameter :: br_si=0.529177210903d-10 ! Bohr radius in Angstroms real(8), parameter :: br_ang=br_si*1.d10 ! atomic unit of magnetic flux density in SI real(8), parameter :: b_si=hbar_si/(e_si*br_si**2) ! atomic unit of electric field in SI real(8), parameter :: ef_si=ha_si/(e_si*br_si) ! atomic unit of time in SI real(8), parameter :: t_si=hbar_si/ha_si ! electron g-factor (CODATA 2018) real(8), parameter :: gfacte=2.00231930436256d0 ! electron mass in SI (CODATA 2018) real(8), parameter :: em_si=9.1093837015d-31 ! atomic mass unit in SI (CODATA 2018) real(8), parameter :: amu_si=1.66053906660d-27 ! atomic mass unit in electron masses real(8), parameter :: amu=amu_si/em_si !---------------------------------! ! miscellaneous variables ! !---------------------------------! ! code version integer version(3) data version / 6,3,2 / ! maximum number of tasks integer, parameter :: maxtasks=40 ! number of tasks integer ntasks ! task array integer tasks(maxtasks) ! current task integer task ! tlast is .true. if the calculation is on the last self-consistent loop logical tlast ! tstop is .true. if the STOP file exists logical tstop ! number of self-consistent loops after which STATE.OUT is written integer nwrite ! if wrtvars is .true. then variables are written to VARIABLES.OUT logical wrtvars ! filename extension for files generated by gndstate character(256) filext ! default file extension data filext / '.OUT' / ! scratch space path character(256) scrpath ! number of note lines integer notelns ! notes to include in INFO.OUT character(256), allocatable :: notes(:) end module elk-6.3.2/src/PaxHeaders.21352/mpi_stub.f900000644000000000000000000000013213543334737014773 xustar0030 mtime=1569569247.241640276 30 atime=1569569240.073644855 30 ctime=1569569247.241640276 elk-6.3.2/src/mpi_stub.f900000644002504400250440000000362013543334737017043 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for MPI. module mpi integer mpi_comm_world integer mpi_in_place integer mpi_sum integer mpi_logical integer mpi_integer integer mpi_double_precision integer mpi_double_complex end module subroutine mpi_init(ierror) implicit none integer, intent(out) :: ierror ierror=0 return end subroutine subroutine mpi_finalize(ierror) implicit none integer, intent(out) :: ierror ierror=0 return end subroutine subroutine mpi_comm_dup(comm,newcomm,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: newcomm integer, intent(out) :: ierror newcomm=comm ierror=0 return end subroutine subroutine mpi_comm_size(comm,size,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: size integer, intent(out) :: ierror size=1 ierror=0 return end subroutine subroutine mpi_comm_rank(comm,rank,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: rank integer, intent(out) :: ierror rank=0 ierror=0 return end subroutine subroutine mpi_barrier(comm,ierror) implicit none integer, intent(in) :: comm integer, intent(out) :: ierror ierror=0 return end subroutine subroutine mpi_bcast(buffer,count,datatype,root,comm,ierror) implicit none real(8), intent(in) :: buffer(*) integer, intent(in) :: count integer, intent(in) :: datatype integer, intent(in) :: root integer, intent(in) :: comm integer, intent(out) :: ierror ierror=0 return end subroutine subroutine mpi_allreduce(sendbuf,recvbuf,count,datatype,op,comm,ierror) implicit none real(8), intent(in) :: sendbuf(*) real(8), intent(in) :: recvbuf(*) integer, intent(in) :: count integer, intent(in) :: datatype integer, intent(in) :: op integer, intent(in) :: comm integer, intent(out) :: ierror ierror=0 return end subroutine elk-6.3.2/src/PaxHeaders.21352/modmpi.f900000644000000000000000000000013213543334734014433 xustar0030 mtime=1569569244.208642214 30 atime=1569569240.077644852 30 ctime=1569569244.208642214 elk-6.3.2/src/modmpi.f900000644002504400250440000000074213543334734016505 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modmpi use mpi ! MPI communicator for main code integer mpicom ! number of MPI processes integer np_mpi ! local MPI process number integer lp_mpi ! mp_mpi is .true. if the local MPI process is the master (0) logical mp_mpi ! commonly used error variable integer ierror end module elk-6.3.2/src/PaxHeaders.21352/libxcifc_stub.f900000644000000000000000000000013113543334737015770 xustar0030 mtime=1569569247.287640247 29 atime=1569569240.08164485 30 ctime=1569569247.287640247 elk-6.3.2/src/libxcifc_stub.f900000644002504400250440000000416313543334737020044 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for libxc. See Elk manual for libxc installation instructions. module libxcifc integer libxcv(3) integer, parameter :: XC_MGGA_X_TB09=208 contains subroutine xcifc_libxc(xctype,n,c_tb09,tempa,rho,rhoup,rhodn,g2rho,g2up,g2dn, & grho2,gup2,gdn2,gupdn,tau,tauup,taudn,ex,ec,vx,vc,vxup,vxdn,vcup,vcdn,dxdgr2, & dxdgu2,dxdgd2,dxdgud,dcdgr2,dcdgu2,dcdgd2,dcdgud,dxdg2r,dxdg2u,dxdg2d,dcdg2r, & dcdg2u,dcdg2d,wx,wxup,wxdn,wc,wcup,wcdn) implicit none ! mandatory arguments integer, intent(in) :: xctype(3),n ! optional arguments real(8), optional :: c_tb09,tempa real(8), optional :: rho(n),rhoup(n),rhodn(n) real(8), optional :: g2rho(n),g2up(n),g2dn(n) real(8), optional :: grho2(n),gup2(n),gdn2(n),gupdn(n) real(8), optional :: tau(n),tauup(n),taudn(n) real(8), optional :: ex(n),ec(n),vx(n),vc(n) real(8), optional :: vxup(n),vxdn(n),vcup(n),vcdn(n) real(8), optional :: dxdgr2(n),dxdgu2(n),dxdgd2(n),dxdgud(n) real(8), optional :: dcdgr2(n),dcdgu2(n),dcdgd2(n),dcdgud(n) real(8), optional :: dxdg2r(n),dxdg2u(n),dxdg2d(n) real(8), optional :: dcdg2r(n),dcdg2u(n),dcdg2d(n) real(8), optional :: wx(n),wxup(n),wxdn(n) real(8), optional :: wc(n),wcup(n),wcdn(n) write(*,*) write(*,'("Error(libxcifc): libxc not or improperly installed")') write(*,*) stop end subroutine subroutine fxcifc_libxc(fxctype,n,rho,rhoup,rhodn,fxc,fxcuu,fxcud,fxcdd) implicit none ! mandatory arguments integer, intent(in) :: fxctype(3),n ! optional arguments real(8), optional :: rho(n),rhoup(n),rhodn(n) real(8), optional :: fxc(n),fxcuu(n),fxcud(n),fxcdd(n) write(*,*) write(*,'("Error(libxcifc): libxc not or improperly installed")') write(*,*) stop end subroutine subroutine xcdata_libxc(xctype,xcdescr,xcspin,xcgrad,hybrid,hybridc) implicit none ! arguments integer xctype(3) character(512) xcdescr integer xcspin integer xcgrad logical hybrid real(8) hybridc write(*,*) write(*,'("Error(libxcifc): libxc not or improperly installed")') write(*,*) stop end subroutine !EOC end module elk-6.3.2/src/PaxHeaders.21352/modxcifc.f900000644000000000000000000000013213543334734014742 xustar0030 mtime=1569569244.218642207 30 atime=1569569240.085644847 30 ctime=1569569244.218642207 elk-6.3.2/src/modxcifc.f900000644002504400250440000004102013543334734017006 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modxcifc use libxcifc contains !BOP ! !ROUTINE: xcifc ! !INTERFACE: subroutine xcifc(xctype,n,c_tb09,tempa,rho,rhoup,rhodn,grho,gup,gdn,g2rho, & g2up,g2dn,g3rho,g3up,g3dn,grho2,gup2,gdn2,gupdn,tau,tauup,taudn,ex,ec,vx,vc, & vxup,vxdn,vcup,vcdn,dxdgr2,dxdgu2,dxdgd2,dxdgud,dcdgr2,dcdgu2,dcdgd2,dcdgud, & dxdg2r,dxdg2u,dxdg2d,dcdg2r,dcdg2u,dcdg2d,wx,wxup,wxdn,wc,wcup,wcdn) ! !INPUT/OUTPUT PARAMETERS: ! xctype : type of exchange-correlation functional (in,integer(3)) ! n : number of density points (in,integer) ! c_tb09 : Tran-Blaha '09 constant c (in,real,optional) ! tempa : temperature in atomic units (in,real,optional) ! rho : spin-unpolarised charge density (in,real(n),optional) ! rhoup : spin-up charge density (in,real(n),optional) ! rhodn : spin-down charge density (in,real(n),optional) ! grho : |grad rho| (in,real(n),optional) ! gup : |grad rhoup| (in,real(n),optional) ! gdn : |grad rhodn| (in,real(n),optional) ! g2rho : grad^2 rho (in,real(n),optional) ! g2up : grad^2 rhoup (in,real(n),optional) ! g2dn : grad^2 rhodn (in,real(n),optional) ! g3rho : (grad rho).(grad |grad rho|) (in,real(n),optional) ! g3up : (grad rhoup).(grad |grad rhoup|) (in,real(n),optional) ! g3dn : (grad rhodn).(grad |grad rhodn|) (in,real(n),optional) ! grho2 : |grad rho|^2 (in,real(n),optional) ! gup2 : |grad rhoup|^2 (in,real(n),optional) ! gdn2 : |grad rhodn|^2 (in,real(n),optional) ! gupdn : (grad rhoup).(grad rhodn) (in,real(n),optional) ! tau : kinetic energy density (in,real(n),optional) ! tauup : spin-up kinetic energy density (in,real(n),optional) ! taudn : spin-down kinetic energy density (in,real(n),optional) ! ex : exchange energy density (out,real(n),optional) ! ec : correlation energy density (out,real(n),optional) ! vx : spin-unpolarised exchange potential (out,real(n),optional) ! vc : spin-unpolarised correlation potential (out,real(n),optional) ! vxup : spin-up exchange potential (out,real(n),optional) ! vxdn : spin-down exchange potential (out,real(n),optional) ! vcup : spin-up correlation potential (out,real(n),optional) ! vcdn : spin-down correlation potential (out,real(n),optional) ! dxdgr2 : de_x/d(|grad rho|^2) (out,real(n),optional) ! dxdgu2 : de_x/d(|grad rhoup|^2) (out,real(n),optional) ! dxdgd2 : de_x/d(|grad rhodn|^2) (out,real(n),optional) ! dxdgud : de_x/d((grad rhoup).(grad rhodn)) (out,real(n),optional) ! dcdgr2 : de_c/d(|grad rho|^2) (out,real(n),optional) ! dcdgu2 : de_c/d(|grad rhoup|^2) (out,real(n),optional) ! dcdgd2 : de_c/d(|grad rhodn|^2) (out,real(n),optional) ! dcdgud : de_c/d((grad rhoup).(grad rhodn)) (out,real(n),optional) ! dxdg2r : de_x/d(grad^2 rho) (out,real(n),optional) ! dxdg2u : de_x/d(grad^2 rhoup) (out,real(n),optional) ! dxdg2d : de_x/d(grad^2 rhodn) (out,real(n),optional) ! dcdg2r : de_c/d(grad^2 rho) (out,real(n),optional) ! dcdg2u : de_c/d(grad^2 rhoup) (out,real(n),optional) ! dcdg2d : de_c/d(grad^2 rhodn) (out,real(n),optional) ! wx : de_x/dtau (out,real(n),optional) ! wxup : de_x/dtauup (out,real(n),optional) ! wxdn : de_x/dtaudn (out,real(n),optional) ! wc : de_c/dtau (out,real(n),optional) ! wcup : de_c/dtauup (out,real(n),optional) ! wcdn : de_c/dtaudn (out,real(n),optional) ! !DESCRIPTION: ! Interface to the exchange-correlation routines. In the most general case ! (meta-GGA), the exchange-correlation energy is given by ! $$ E_{xc}[\rho^{\uparrow},\rho^{\downarrow}]=\int d^3r\, ! \rho({\bf r})\,\varepsilon_{xc}(\rho^{\uparrow},\rho^{\downarrow}, ! |\nabla\rho|,|\nabla\rho^{\uparrow}|,|\nabla\rho^{\downarrow}|, ! \nabla^2\rho^{\uparrow},\nabla^2\rho^{\downarrow},\tau), $$ ! where $\rho({\bf r})=\rho^{\uparrow}({\bf r})+\rho^{\downarrow}({\bf r})$ is ! the density; ! $$ \tau({\bf r})\equiv\sum_{i\;{\rm occ}}\nabla\psi({\bf r})\cdot ! \nabla\psi({\bf r}) $$ ! is twice the spin-contracted kinetic energy density; and $\varepsilon_{xc}$ ! is the exchange-correlation energy per electron. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! mandatory arguments integer, intent(in) :: xctype(3) integer, intent(in) :: n ! optional arguments real(8), optional, intent(in) :: c_tb09,tempa real(8), optional, intent(in) :: rho(n),rhoup(n),rhodn(n) real(8), optional, intent(in) :: grho(n),gup(n),gdn(n) real(8), optional, intent(in) :: g2rho(n),g2up(n),g2dn(n) real(8), optional, intent(in) :: g3rho(n),g3up(n),g3dn(n) real(8), optional, intent(in) :: grho2(n),gup2(n),gdn2(n),gupdn(n) real(8), optional, intent(in) :: tau(n),tauup(n),taudn(n) real(8), optional, intent(out) :: ex(n),ec(n),vx(n),vc(n) real(8), optional, intent(out) :: vxup(n),vxdn(n),vcup(n),vcdn(n) real(8), optional, intent(out) :: dxdgr2(n),dxdgu2(n),dxdgd2(n),dxdgud(n) real(8), optional, intent(out) :: dxdg2r(n),dxdg2u(n),dxdg2d(n) real(8), optional, intent(out) :: wx(n),wxup(n),wxdn(n) real(8), optional, intent(out) :: dcdgr2(n),dcdgu2(n),dcdgd2(n),dcdgud(n) real(8), optional, intent(out) :: dcdg2r(n),dcdg2u(n),dcdg2d(n) real(8), optional, intent(out) :: wc(n),wcup(n),wcdn(n) ! local variables real(8) kappa,mu,beta ! allocatable arrays real(8), allocatable :: ra(:,:) if (n.le.0) then write(*,*) write(*,'("Error(xcifc): n <= 0 : ",I8)') n write(*,*) stop end if select case(abs(xctype(1))) case(1) ! No density-derived exchange-correlation energy or potential if (present(ex)) ex(:)=0.d0 if (present(ec)) ec(:)=0.d0 if (present(vx)) vx(:)=0.d0 if (present(vc)) vc(:)=0.d0 if (present(vxup)) vxup(:)=0.d0 if (present(vxdn)) vxdn(:)=0.d0 if (present(vcup)) vcup(:)=0.d0 if (present(vcdn)) vcdn(:)=0.d0 case(2) ! Perdew-Zunger parameterisation of Ceperley-Alder electron gas ! J. Perdew and A. Zunger, Phys. Rev. B 23, 5048 (1981) ! D. M. Ceperly and B. J. Alder, Phys. Rev. Lett. 45, 566 (1980) if (present(rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then call xc_pzca(n,rho,ex,ec,vx,vc) else goto 10 end if case(3) ! Perdew-Wang parameterisation of the spin-polarised Ceperley-Alder electron gas ! J. Perdew and Y. Wang, Phys. Rev. B 45, 13244 (1992) ! D. M. Ceperly and B. J. Alder, Phys. Rev. Lett. 45, 566 (1980) if (present(rhoup).and.present(rhodn).and.present(ex).and.present(ec) & .and.present(vxup).and.present(vxdn).and.present(vcup) & .and.present(vcdn)) then ! spin-polarised density call xc_pwca(n,rhoup,rhodn,ex,ec,vxup,vxdn,vcup,vcdn) else if (present(rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then ! divide spin-unpolarised density into up and down allocate(ra(n,1)) ra(:,1)=0.5d0*rho(:) call xc_pwca(n,ra(:,1),ra(:,1),ex,ec,vx,vx,vc,vc) deallocate(ra) else goto 10 end if case(4) ! X-alpha approximation ! J. C. Slater, Phys. Rev. 81, 385 (1951) if (present(rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then call xc_xalpha(n,rho,ex,vx) ! set correlation energy and potential to zero ec(:)=0.d0 vc(:)=0.d0 else goto 10 end if case(5) ! U. von Barth and L. Hedin parameterisation of LSDA ! J. Phys. C, 5, 1629 (1972) if (present(rhoup).and.present(rhodn).and.present(ex).and.present(ec) & .and.present(vxup).and.present(vxdn).and.present(vcup) & .and.present(vcdn)) then ! spin-polarised density call xc_vbh(n,rhoup,rhodn,ex,ec,vxup,vxdn,vcup,vcdn) else if (present(rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then ! divide spin-unpolarised density into up and down allocate(ra(n,1)) ra(:,1)=0.5d0*rho(:) call xc_vbh(n,ra(:,1),ra(:,1),ex,ec,vx,vx,vc,vc) deallocate(ra) else goto 10 end if case(20,21,22) ! original PBE kappa kappa=0.804d0 if (xctype(1).eq.21) then ! Zhang-Yang kappa kappa=1.245d0 end if ! original PBE mu and beta mu=0.2195149727645171d0 beta=0.06672455060314922d0 if (xctype(1).eq.22) then ! PBEsol parameters mu=10.d0/81.d0 beta=0.046d0 end if ! Perdew-Burke-Ernzerhof generalised gradient approximation ! Phys. Rev. Lett. 77, 3865 (1996); 78, 1396(E) (1997) ! Revised PBE, Zhang-Yang, Phys. Rev. Lett. 80, 890 (1998) if (present(rhoup).and.present(rhodn).and.present(grho).and.present(gup) & .and.present(gdn).and.present(g2up).and.present(g2dn).and.present(g3rho) & .and.present(g3up).and.present(g3dn).and.present(ex).and.present(ec) & .and.present(vxup).and.present(vxdn).and.present(vcup) & .and.present(vcdn)) then call xc_pbe(n,kappa,mu,beta,rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up, & g3dn,ex,ec,vxup,vxdn,vcup,vcdn) else if (present(rho).and.present(grho).and.present(g2rho) & .and.present(g3rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then allocate(ra(n,6)) ra(:,1)=0.5d0*rho(:) ra(:,2)=0.5d0*grho(:) ra(:,3)=0.5d0*g2rho(:) ra(:,4)=0.25d0*g3rho(:) call xc_pbe(n,kappa,mu,beta,ra(:,1),ra(:,1),grho,ra(:,2),ra(:,2),ra(:,3), & ra(:,3),g3rho,ra(:,4),ra(:,4),ex,ec,vx,ra(:,5),vc,ra(:,6)) deallocate(ra) else goto 10 end if case(26) ! Wu-Cohen exchange with PBE correlation generalised gradient functional ! Zhigang Wu and R. E. Cohen, Phys. Rev. B 73, 235116 (2006) if (present(rho).and.present(grho).and.present(g2rho).and.present(g3rho) & .and.present(ex).and.present(ec).and.present(vx).and.present(vc)) then call xc_wc06(n,rho,grho,g2rho,g3rho,ex,ec,vx,vc) else goto 10 end if case(30) ! Armiento-Mattsson generalised gradient functional ! R. Armiento and A. E. Mattsson, Phys. Rev. B 72, 085108 (2005) if (present(rho).and.present(grho).and.present(g2rho).and.present(g3rho) & .and.present(ex).and.present(ec).and.present(vx).and.present(vc)) then call xc_am05(n,rho,grho,g2rho,g3rho,ex,ec,vx,vc) else goto 10 end if case(100) ! libxc library functionals if (present(rhoup).and.present(rhodn).and.present(g2up).and.present(g2dn) & .and.present(gup2).and.present(gdn2).and.present(gupdn).and.present(tauup) & .and.present(taudn).and.present(ex).and.present(ec).and.present(vxup) & .and.present(vxdn).and.present(vcup).and.present(vcdn).and.present(dxdgu2) & .and.present(dxdgd2).and.present(dxdgud).and.present(dcdgu2) & .and.present(dcdgd2).and.present(dcdgud).and.present(dxdg2u) & .and.present(dxdg2d).and.present(dcdg2u).and.present(dcdg2d) & .and.present(wxup).and.present(wxdn).and.present(wcup) & .and.present(wcdn)) then ! spin-polarised energy meta-GGA call xcifc_libxc(xctype,n,rhoup=rhoup,rhodn=rhodn,g2up=g2up,g2dn=g2dn, & gup2=gup2,gdn2=gdn2,gupdn=gupdn,tauup=tauup,taudn=taudn,ex=ex,ec=ec, & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn,dxdgu2=dxdgu2,dxdgd2=dxdgd2, & dxdgud=dxdgud,dcdgu2=dcdgu2,dcdgd2=dcdgd2,dcdgud=dcdgud,dxdg2u=dxdg2u, & dxdg2d=dxdg2d,dcdg2u=dcdg2u,dcdg2d=dcdg2d,wxup=wxup,wxdn=wxdn,wcup=wcup, & wcdn=wcdn) else if (present(rhoup).and.present(rhodn).and.present(g2up) & .and.present(g2dn).and.present(gup2).and.present(gdn2).and.present(gupdn) & .and.present(tauup).and.present(taudn).and.present(vxup).and.present(vxdn) & .and.present(vcup).and.present(vcdn)) then ! spin-polarised potential-only meta-GGA call xcifc_libxc(xctype,n,c_tb09=c_tb09,rhoup=rhoup,rhodn=rhodn,g2up=g2up, & g2dn=g2dn,gup2=gup2,gdn2=gdn2,gupdn=gupdn,tauup=tauup,taudn=taudn, & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (present(rhoup).and.present(rhodn).and.present(gup2) & .and.present(gdn2).and.present(gupdn).and.present(ex).and.present(ec) & .and.present(vxup).and.present(vxdn).and.present(vcup).and.present(vcdn) & .and.present(dxdgu2).and.present(dxdgd2).and.present(dxdgud) & .and.present(dcdgu2).and.present(dcdgd2).and.present(dcdgud)) then ! spin-polarised GGA call xcifc_libxc(xctype,n,rhoup=rhoup,rhodn=rhodn,gup2=gup2,gdn2=gdn2, & gupdn=gupdn,ex=ex,ec=ec,vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn, & dxdgu2=dxdgu2,dxdgd2=dxdgd2,dxdgud=dxdgud,dcdgu2=dcdgu2,dcdgd2=dcdgd2, & dcdgud=dcdgud) else if (present(rhoup).and.present(rhodn).and.present(ex).and.present(ec) & .and.present(vxup).and.present(vxdn).and.present(vcup) & .and.present(vcdn)) then ! LSDA call xcifc_libxc(xctype,n,tempa=tempa,rhoup=rhoup,rhodn=rhodn,ex=ex,ec=ec, & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (present(rho).and.present(g2rho).and.present(grho2).and.present(tau) & .and.present(ex).and.present(ec).and.present(vx).and.present(vc) & .and.present(dxdgr2).and.present(dcdgr2).and.present(dxdg2r) & .and.present(dcdg2r).and.present(wx).and.present(wc)) then ! spin-unpolarised energy meta-GGA call xcifc_libxc(xctype,n,rho=rho,g2rho=g2rho,grho2=grho2,tau=tau,ex=ex, & ec=ec,vx=vx,vc=vc,dxdgr2=dxdgr2,dcdgr2=dcdgr2,dxdg2r=dxdg2r, & dcdg2r=dcdg2r,wx=wx,wc=wc) else if (present(rho).and.present(g2rho).and.present(grho2).and.present(tau) & .and.present(vx).and.present(vc)) then ! spin-unpolarised potential-only meta-GGA call xcifc_libxc(xctype,n,c_tb09=c_tb09,rho=rho,g2rho=g2rho,grho2=grho2, & tau=tau,vx=vx,vc=vc) else if (present(rho).and.present(grho2).and.present(ex).and.present(ec) & .and.present(vx).and.present(vc).and.present(dxdgr2) & .and.present(dcdgr2)) then ! spin-unpolarised GGA call xcifc_libxc(xctype,n,rho=rho,grho2=grho2,ex=ex,ec=ec,vx=vx,vc=vc, & dxdgr2=dxdgr2,dcdgr2=dcdgr2) else if (present(rho).and.present(ex).and.present(ec).and.present(vx) & .and.present(vc)) then ! LDA call xcifc_libxc(xctype,n,tempa=tempa,rho=rho,ex=ex,ec=ec,vx=vx,vc=vc) else goto 10 end if case default write(*,*) write(*,'("Error(xcifc): xctype not defined : ",I8)') xctype(1) write(*,*) stop end select ! set exchange potential to zero for EXX if (xctype(1).le.-2) then if (present(vx)) vx(:)=0.d0 if (present(vxup)) vxup(:)=0.d0 if (present(vxdn)) vxdn(:)=0.d0 end if return 10 continue write(*,*) write(*,'("Error(xcifc): missing arguments for exchange-correlation type ",& &3I6)') xctype(:) write(*,*) stop end subroutine !EOC !BOP ! !ROUTINE: getxcdata ! !INTERFACE: subroutine getxcdata(xctype,xcdescr,xcspin,xcgrad,hybrid,hybridc) ! !INPUT/OUTPUT PARAMETERS: ! xctype : type of exchange-correlation functional (in,integer(3)) ! xcdescr : description of functional (out,character(512)) ! xcspin : spin treatment (out,integer) ! xcgrad : gradient treatment (out,integer) ! hybrid : .true. if functional a hybrid (out,logical) ! hybridc : hybrid exact exchange mixing coefficient (out,real(8)) ! !DESCRIPTION: ! Returns data on the exchange-correlation functional labeled by {\tt xctype}. ! The character array {\tt xcdescr} contains a short description of the ! functional including journal references. The variable {\tt xcspin} is set to ! 1 or 0 for spin-polarised or -unpolarised functionals, respectively. For ! functionals which require the gradients of the density {\tt xcgrad} is set ! to 1, otherwise it is set to 0. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: xctype(3) character(512), intent(out) :: xcdescr integer, intent(out) :: xcspin,xcgrad logical, intent(out) :: hybrid real(8), intent(out) :: hybridc select case(abs(xctype(1))) case(1) xcdescr='No density-derived exchange-correlation energy or potential' ! spin-polarisation or gradient status not required xcspin=-1 xcgrad=-1 return case(2) xcdescr='Perdew-Zunger/Ceperley-Alder, Phys. Rev. B 23, 5048 (1981)' xcspin=0 xcgrad=0 return case(3) xcdescr='Perdew-Wang/Ceperley-Alder, Phys. Rev. B 45, 13244 (1992)' xcspin=1 xcgrad=0 case(4) xcdescr='X-alpha approximation, J. C. Slater, Phys. Rev. 81, 385 (1951)' xcspin=0 xcgrad=0 case(5) xcdescr='von Barth-Hedin, J. Phys. C 5, 1629 (1972)' xcspin=1 xcgrad=0 case(20) xcdescr='Perdew-Burke-Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)' xcspin=1 xcgrad=1 case(21) xcdescr='Revised PBE, Zhang-Yang, Phys. Rev. Lett. 80, 890 (1998)' xcspin=1 xcgrad=1 case(22) xcdescr='PBEsol, Phys. Rev. Lett. 100, 136406 (2008)' xcspin=1 xcgrad=1 case(26) xcdescr='Wu-Cohen exchange + PBE correlation, Phys. Rev. B 73, 235116 (2006)' xcspin=0 xcgrad=1 case(30) xcdescr='Armiento-Mattsson functional, Phys. Rev. B 72, 85108 (2005)' xcspin=0 xcgrad=1 case(100) ! libxc library functionals call xcdata_libxc(xctype,xcdescr,xcspin,xcgrad,hybrid,hybridc) case default write(*,*) write(*,'("Error(getxcdata): xctype not defined : ",I8)') xctype(1) write(*,*) stop end select return end subroutine !EOC end module elk-6.3.2/src/PaxHeaders.21352/modfxcifc.f900000644000000000000000000000013213543334734015110 xustar0030 mtime=1569569244.222642205 30 atime=1569569240.343644682 30 ctime=1569569244.222642205 elk-6.3.2/src/modfxcifc.f900000644002504400250440000000412713543334734017163 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modfxcifc use libxcifc contains subroutine fxcifc(fxctype,n,rho,rhoup,rhodn,fxc,fxcuu,fxcud,fxcdd) implicit none ! mandatory arguments integer, intent(in) :: fxctype(3),n ! optional arguments real(8), optional, intent(in) :: rho(n),rhoup(n),rhodn(n) real(8), optional, intent(out) :: fxc(n),fxcuu(n),fxcud(n),fxcdd(n) ! allocatable arrays real(8), allocatable :: ra(:,:) if (n.le.0) then write(*,*) write(*,'("Error(fxcifc): n <= 0 : ",I8)') n write(*,*) stop end if select case(abs(fxctype(1))) case(0,1) ! f_xc = 0 if (present(fxcuu).and.present(fxcud).and.present(fxcdd)) then fxcuu(:)=0.d0 fxcud(:)=0.d0 fxcdd(:)=0.d0 else if (present(fxc)) then fxc(:)=0.d0 else goto 10 end if case(3) ! Perdew-Wang-Ceperley-Alder if (present(rhoup).and.present(rhodn).and.present(fxcuu).and.present(fxcud) & .and.present(fxcdd)) then ! spin-polarised density call fxc_pwca(n,rhoup,rhodn,fxcuu,fxcud,fxcdd) else if (present(rho).and.present(fxc)) then ! divide spin-unpolarised density into up and down allocate(ra(n,4)) ra(:,1)=0.5d0*rho(:) call fxc_pwca(n,ra(:,1),ra(:,1),ra(:,2),ra(:,3),ra(:,4)) fxc(:)=0.5d0*(ra(:,2)+ra(:,3)) deallocate(ra) else goto 10 end if case(100) ! libxc library functionals if (present(rhoup).and.present(rhodn).and.present(fxcuu).and.present(fxcud) & .and.present(fxcdd)) then ! LSDA call fxcifc_libxc(fxctype,n,rhoup=rhoup,rhodn=rhodn,fxcuu=fxcuu, & fxcud=fxcud,fxcdd=fxcdd) else if (present(rho).and.present(fxc)) then ! LDA call fxcifc_libxc(fxctype,n,rho=rho,fxc=fxc) else goto 10 end if case default write(*,*) write(*,'("Error(fxcifc): response function unavailable for fxctype ",3I8)') & fxctype write(*,*) stop end select return 10 continue write(*,*) write(*,'("Error(fxcifc): missing arguments for exchange-correlation type ",& &3I6)') fxctype(:) write(*,*) stop end subroutine end module elk-6.3.2/src/PaxHeaders.21352/moddftu.f900000644000000000000000000000013113543334734014607 xustar0030 mtime=1569569244.226642202 29 atime=1569569240.34764468 30 ctime=1569569244.226642202 elk-6.3.2/src/moddftu.f900000644002504400250440000000627713543334734016673 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module moddftu use modmain !-----------------------------------------------------------! ! muffin-tin density and potential matrix variables ! !-----------------------------------------------------------! ! maximum angular momentum for muffin-tin density matrix integer, parameter :: lmaxdm=3 integer, parameter :: lmmaxdm=(lmaxdm+1)**2 ! density matrix in each muffin-tin complex(8), allocatable :: dmatmt(:,:,:,:,:) ! potential matrix in each muffin-tin complex(8), allocatable :: vmatmt(:,:,:,:,:) ! tvmatmt is .true. if the potential matrices are calculated logical tvmatmt ! tvmmt is .true. if the potential matrix for that l and atom is non-zero logical, allocatable :: tvmmt(:,:) !-------------------------! ! DFT+U variables ! !-------------------------! ! type of DFT+U to use (0 = none) integer dftu ! input type for DFT+U calculation (1:5) integer inpdftu ! maximum number of DFT+U entries integer, parameter :: maxdftu=40 ! number of DFT+U entries integer ndftu ! species and angular momentum for each entry integer idftu(2,maxdftu) ! U and J values for each entry real(8) ujdu(2,maxdftu) ! interpolation constant alpha for each atom and entry [PRB 67, 153106 (2003)] real(8), allocatable :: alphadu(:,:) ! readadu is .true. if alphadu is to be read from file logical readadu ! DFT+U energy for each atom and entry real(8), allocatable :: engyadu(:,:) ! energy from the DFT+U correction real(8) engydu ! Slater parameters real(8) fdu(0:2*lmaxdm,maxdftu) ! Racah parameters real(8) edu(0:lmaxdm,maxdftu) ! screening length of Yukawa potential to calculate Slater integrals real(8) lambdadu(maxdftu) ! energies to calculate radial functions for Slater integrals real(8), allocatable :: fdue(:,:) ! radial functions to calculate Slater integrals real(8), allocatable :: fdufr(:,:,:) ! fixed value of U for which screening length has to be determined real(8) udufix(maxdftu) ! initial values of screening length if U is fixed real(8) lambdadu0(maxdftu) !---------------------------------! ! tensor moment variables ! !---------------------------------! ! tmwrite is .true. if tensor moments are written out at every s.c. loop logical tmwrite ! fixed tensor moment type ! 0 : none ! 2 (-2) : fixed 2-index tensor moment (or just lowering the symmetry) ! 3 (-3) : fixed 3-index tensor moment (or just lowering the symmetry) integer ftmtype ! number of fixed tensor moment entries integer ntmfix ! tensor moment indices for each entry: is, ia, l, n and k, p, x, y for the ! 2-index tensor or k, p, r, t for the 3-index tensor integer, allocatable :: itmfix(:,:) ! tensor component complex(8), allocatable :: tmfix(:) ! spatial and spin rotation matrices of tensor real(8), allocatable :: rtmfix(:,:,:,:) ! density matrices corresponding to the fixed tensor moments complex(8), allocatable :: dmftm(:,:,:,:,:) ! fixed tensor moment potential matrix complex(8), allocatable :: vmftm(:,:,:,:,:) ! fixed tensor moment step size real(8) tauftm ! number of self-consistent loops after which FTM field is updated integer ftmstep end module elk-6.3.2/src/PaxHeaders.21352/modrdm.f900000644000000000000000000000012613543334734014433 xustar0028 mtime=1569569244.2306422 30 atime=1569569240.352644677 28 ctime=1569569244.2306422 elk-6.3.2/src/modrdm.f900000644002504400250440000000213213543334734016475 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modrdm use modmain !--------------------------------------------------------------------! ! reduced density matrix functional theory (RDMFT) variables ! !--------------------------------------------------------------------! ! Coulomb potential matrix elements complex(8), allocatable :: vclmat(:,:,:) ! derivative of kinetic energy w.r.t. natural orbital coefficients complex(8), allocatable :: dkdc(:,:,:) ! step size for occupation numbers real(8) taurdmn ! step size for natural orbital coefficients real(8) taurdmc ! xc functional integer rdmxctype ! maximum number of self-consistent loops integer rdmmaxscl ! maximum number of iterations for occupation number optimisation integer maxitn ! maximum number of iteration for natural orbital optimisation integer maxitc ! exponent for the power and hybrid functional real(8) rdmalpha ! temperature real(8) rdmtemp ! entropy real(8) rdmentrpy end module elk-6.3.2/src/PaxHeaders.21352/modphonon.f900000644000000000000000000000013213543334734015147 xustar0030 mtime=1569569244.235642196 30 atime=1569569240.356644674 30 ctime=1569569244.235642196 elk-6.3.2/src/modphonon.f900000644002504400250440000001070213543334734017216 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modphonon use modmain !--------------------------! ! phonon variables ! !--------------------------! ! number of phonon branches (3*natmtot) integer nbph ! current phonon q-point, species, atom and polarisation index integer iqph,isph,iaph,iasph,ipph ! tphq0 is .true. if q = 0 logical tphq0 ! number of vectors for writing out frequencies and eigenvectors integer nphwrt ! vectors in lattice coordinates for writing out frequencies and eigenvectors real(8), allocatable :: vqlwrt(:,:) ! Coulomb pseudopotential real(8) mustar ! number of temperatures for the Eliashberg equations and thermal properties integer ntemp !-----------------------------! ! supercell variables ! !-----------------------------! ! number of primitive unit cells in phonon supercell integer nscph ! Cartesian offset vectors for each primitive cell in the supercell real(8), allocatable :: vscph(:,:) ! phonon displacement distance real(8) deltaph !---------------------! ! k+q-vectors ! !---------------------! ! k+q-vectors in lattice coordinates real(8), allocatable :: vkql(:,:) ! k+q-vectors in Cartesian coordinates real(8), allocatable :: vkqc(:,:) !------------------------------! ! G+q-vector variables ! !------------------------------! ! G+q-vectors in Cartesian coordinates real(8), allocatable :: vgqc(:,:) ! G+q-vector lengths real(8), allocatable :: gqc(:) ! regularised Coulomb Green's function in G+q-space real(8), allocatable :: gclgq(:) ! spherical Bessel functions j_l(|G+q|R_mt) real(8), allocatable :: jlgqrmt(:,:,:) ! spherical harmonics for G+q-vectors complex(8), allocatable :: ylmgq(:,:) ! structure factors for G+q-vectors complex(8), allocatable :: sfacgq(:,:) ! smooth step function form factors for all species and G+q-vectors real(8), allocatable :: ffacgq(:,:) ! characteristic function derivative in G- and G+q-space complex(8), allocatable :: dcfunig(:) ! characteristic function derivative in real-space complex(8), allocatable :: dcfunir(:) !--------------------------------! ! G+k+q-vector variables ! !--------------------------------! ! number of G+k+q-vector for each k-point integer, allocatable :: ngkq(:,:) ! index from G+k+q-vectors to G-vectors integer, allocatable :: igkqig(:,:,:) ! G+k+q-vectors in lattice and Cartesian coordinates real(8), allocatable :: vgkql(:,:,:,:),vgkqc(:,:,:,:) ! G+k+q-vector lengths real(8), allocatable :: gkqc(:,:,:) ! structure factors for the G+k+q-vectors complex(8), allocatable :: sfacgkq(:,:,:,:) !----------------------------------------------------------! ! density functional perturbation theory variables ! !----------------------------------------------------------! ! density derivative complex(8), allocatable :: drhomt(:,:),drhoir(:) ! magnetisation derivative complex(8), allocatable :: dmagmt(:,:,:),dmagir(:,:) ! Coulomb potential derivative complex(8), allocatable :: dvclmt(:,:),dvclir(:) ! if tphdyn is .true. then the phonon dynamical matrix is being calculated logical tphdyn data tphdyn / .false. / ! nuclear potential without the self-term; used for the phonon dynamical matrix complex(8), allocatable :: zvnmt(:) ! Kohn-Sham potential derivative complex(8), allocatable :: dvsmt(:,:),dvsir(:) ! gradient of vsmt for the displaced muffin-tin complex(8), allocatable :: gvsmt(:) ! G+q-space interstitial Kohn-Sham potential derivative complex(8), allocatable :: dvsig(:) ! Kohn-Sham effective magnetic field derivative complex(8), allocatable :: dbsmt(:,:,:),dbsir(:,:) ! spin-orbit coupling radial function derivative complex(8), allocatable :: dsocfr(:,:) ! APW-APW Hamiltonian integral derivatives complex(8), allocatable :: dhaa(:,:,:,:,:,:) ! local-orbital-APW Hamiltonian integral derivatives complex(8), allocatable :: dhloa(:,:,:,:,:) ! local-orbital-local-orbital Hamiltonian integral derivatives complex(8), allocatable :: dhlolo(:,:,:,:) ! real Gaunt coefficient array real(8), allocatable :: gntyyy(:,:,:) ! smallest allowed perturbation theory denominator for eigenvector derivatives real(8) epsdev ! Fermi energy derivative real(8) defermi ! first-variational eigenvalue derivatives real(8), allocatable :: devalfv(:,:,:) ! second-variational eigenvalue derivatives real(8), allocatable :: devalsv(:,:) ! second-variational occupation number derivatives real(8), allocatable :: doccsv(:,:) end module elk-6.3.2/src/PaxHeaders.21352/modscdft.f900000644000000000000000000000013213543334734014751 xustar0030 mtime=1569569244.239642194 30 atime=1569569240.360644671 30 ctime=1569569244.239642194 elk-6.3.2/src/modscdft.f900000644002504400250440000000135513543334734017024 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modscdft ! number of normal Kohn-Sham states to use in the BdG equations integer nbdg ! size of the BdG matrix (2*nbdg) integer nmbdg ! maximum energy around the Fermi energy containing the BdG states real(8) emaxbdg ! index from the BdG states to the normal second-variational states integer, allocatable :: idxbdg(:,:) ! eigenvalues of the BdG Hamiltonian real(8), allocatable :: evalbdg(:) ! BdG inversion algorithm mixing parameter real(8) taubdg ! magnitude of random numbers used to initialise the anomalous density real(8) rndachi end module elk-6.3.2/src/PaxHeaders.21352/modtest.f900000644000000000000000000000013213543334734014625 xustar0030 mtime=1569569244.243642191 30 atime=1569569240.364644669 30 ctime=1569569244.243642191 elk-6.3.2/src/modtest.f900000644002504400250440000000467213543334734016705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modtest use modmpi ! if test is .true. then the test variables are written to file logical test contains subroutine writetest(id,descr,nv,iv,iva,tol,rv,rva,zv,zva) implicit none ! arguments integer, intent(in) :: id character(*), intent(in) :: descr integer, optional, intent(in) :: nv integer, optional, intent(in) :: iv integer, optional, intent(in) :: iva(*) real(8), optional, intent(in) :: tol real(8), optional, intent(in) :: rv real(8), optional, intent(in) :: rva(*) complex(8), optional, intent(in) :: zv complex(8), optional, intent(in) :: zva(*) ! local variables integer j character(256) fname if (.not.test) return if (.not.mp_mpi) return if ((id.lt.0).or.(id.gt.999)) then write(*,*) write(*,'("Error(writetest): id out of range : ",I8)') id write(*,*) stop end if if ((present(iva)).or.(present(rva)).or.(present(zva))) then if (.not.present(nv)) then write(*,*) write(*,'("Error(writetest): missing argument nv")') write(*,*) stop else if (nv.le.0) then write(*,*) write(*,'("Error(writetest): nv <= 0 : ",I8)') nv write(*,*) stop end if end if end if if ((present(rv)).or.(present(rva)).or.(present(zv)).or.(present(zva))) then if (.not.present(tol)) then write(*,*) write(*,'("Error(writetest): missing argument tol")') write(*,*) stop end if end if write(fname,'("TEST_",I3.3,".OUT")') id !$OMP CRITICAL(writetest_) open(90,file=trim(fname),form='FORMATTED') write(90,'("''",A,"''")') trim(descr) if (present(iv)) then write(90,'(2I8)') 1,1 write(90,'(2I8)') 1,iv else if (present(rv)) then write(90,'(2I8)') 2,1 write(90,'(G22.12)') tol write(90,'(I8,G22.12)') 1,rv else if (present(zv)) then write(90,'(2I8)') 3,1 write(90,'(G22.12)') tol write(90,'(I8,2G22.12)') 1,dble(zv),aimag(zv) else if (present(iva)) then write(90,'(2I8)') 1,nv do j=1,nv write(90,'(2I8)') j,iva(j) end do else if (present(rva)) then write(90,'(2I8)') 2,nv write(90,'(G22.12)') tol do j=1,nv write(90,'(I8,G22.12)') j,rva(j) end do else if (present(zva)) then write(90,'(2I8)') 3,nv write(90,'(G22.12)') tol do j=1,nv write(90,'(I8,2G22.12)') j,dble(zva(j)),aimag(zva(j)) end do end if close(90) !$OMP END CRITICAL(writetest_) return end subroutine end module elk-6.3.2/src/PaxHeaders.21352/modrandom.f900000644000000000000000000000013213543334734015126 xustar0030 mtime=1569569244.248642188 30 atime=1569569240.369644666 30 ctime=1569569244.248642188 elk-6.3.2/src/modrandom.f900000644002504400250440000000254613543334734017204 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modrandom ! random number generator state integer(8) rndstate(0:5) data rndstate / 799047353, 1322018920, 1014372120, 1198189977, 832907020, & 5678910 / contains !BOP ! !ROUTINE: randomu ! !INTERFACE: real(8) function randomu() ! !DESCRIPTION: ! Generates random numbers with a uniform distribution in the interval $[0,1]$ ! using the fifth-order multiple recursive generator of P. L'Ecuyer, ! F. Blouin, and R. Coutre, {\it ACM Trans. Modeling Comput. Simulation} ! {\bf 3}, 87 (1993). The sequence of numbers $r_i$ is produced from ! $$ x_i=(a_1 x_{i-1}+a_5 x_{i-5})\mod m $$ ! with $r_i=x_i/m$. The period is about $2^{155}$. ! ! !REVISION HISTORY: ! Created January 2012 (JKD) ! Changed initial state, April 2017 (JKD) !EOP !BOC implicit none ! local variables ! parameters taken from the GNU Scientific Library (GSL) integer(8), parameter :: a1=107374182, a5=104480, m=2147483647 integer(8) i,i1,i5 data i / 0 / !$OMP CRITICAL(randomu_) i=modulo(i+1,6_8) i1=modulo(i-1,6_8) i5=modulo(i-5,6_8) rndstate(i)=int(mod(a1*rndstate(i1)+a5*rndstate(i5),m)) randomu=dble(rndstate(i))/dble(m) !$OMP END CRITICAL(randomu_) end function !EOC end module elk-6.3.2/src/PaxHeaders.21352/modstore.f900000644000000000000000000000013213543334734015002 xustar0030 mtime=1569569244.252642186 30 atime=1569569240.373644663 30 ctime=1569569244.252642186 elk-6.3.2/src/modstore.f900000644002504400250440000000210413543334734017046 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !---------------------------------------------------------! ! variables for storing original input parameters ! !---------------------------------------------------------! module modstore use modmain real(8) avec_(3,3) real(8) bvec_(3,3),binv_(3,3) real(8) omega_ logical tshift_ logical primcell_ integer natoms_(maxspecies) integer natmtot_ integer idxis_(maxatoms*maxspecies) real(8) atposl_(3,maxatoms,maxspecies) real(8) atposc_(3,maxatoms,maxspecies) integer ngridg_(3),ngtot_ integer, allocatable :: ivg_(:,:),igfft_(:) logical spinpol_,spinorb_,cmagz_,spinsprl_ real(8) bfieldc0_(3) real(8) bfcmt0_(3,maxatoms,maxspecies) real(8) reducebf_ integer fsmtype_ real(8) momfix_(3) real(8) mommtfix_(3,maxatoms,maxspecies) logical tforce_ logical autokpt_ integer ngridk_(3) real(8) vkloff_(3) integer lmaxi_ logical tfav0_ real(8) vqlss_(3) integer msmooth_ integer reducek_ end module elk-6.3.2/src/PaxHeaders.21352/modpw.f900000644000000000000000000000013213543334734014274 xustar0030 mtime=1569569244.256642183 30 atime=1569569240.377644661 30 ctime=1569569244.256642183 elk-6.3.2/src/modpw.f900000644002504400250440000000320213543334734016340 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modpw !----------------------------! ! H-vector variables ! !----------------------------! ! reduceh is .true. if the H-vectors are reduced with the crystal symmetries logical reduceh ! H-vector cut-off for interstitial potential and density real(8) hmaxvr ! H-vector grid sizes integer ngridh(3) ! total number of H-vectors integer nhtot ! integer grid intervals for each direction integer inthv(2,3) ! number of H-vectors with |H| < hmaxvr integer nhvec ! H-vector integer coordinates (i1,i2,i3) integer, allocatable :: ivh(:,:) ! H-vector multiplicity after symmetry reduction integer, allocatable :: mulh(:) ! H-vectors in Cartesian coordinates real(8), allocatable :: vhc(:,:) ! length of H-vectors real(8), allocatable :: hc(:) ! H-vector transformation matrix real(8) vhmat(3,3) !------------------------------! ! H+k-vector variables ! !------------------------------! ! maximum |H+k| cut-off for plane wave real(8) hkmax ! number of H+k-vectors for plane waves integer, allocatable :: nhk(:,:) ! maximum number of H+k-vectors over all k-points integer nhkmax ! index from H+k-vectors to G-vectors integer, allocatable :: ihkig(:,:,:) ! H+k-vectors in lattice coordinates real(8), allocatable :: vhkl(:,:,:,:) ! H+k-vectors in Cartesian coordinates real(8), allocatable :: vhkc(:,:,:,:) ! length of H+k-vectors real(8), allocatable :: hkc(:,:,:) ! structure factors for the H+k-vectors complex(8), allocatable :: sfachk(:,:,:,:) end module elk-6.3.2/src/PaxHeaders.21352/modvars.f900000644000000000000000000000013013543334734014617 xustar0029 mtime=1569569244.26164218 30 atime=1569569240.382644657 29 ctime=1569569244.26164218 elk-6.3.2/src/modvars.f900000644002504400250440000000453713543334734016701 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modvars use modmain use modmpi contains subroutine delvars implicit none if (.not.mp_mpi) return ! delete existing variables file open(95,file='VARIABLES.OUT') close(95,status='DELETE') return end subroutine subroutine writevars(vname,l,m,nv,iv,iva,rv,rva,zv,zva,sv,sva) implicit none ! arguments character(*), intent(in) :: vname integer, optional, intent(in) :: l,m integer, optional, intent(in) :: nv integer, optional, intent(in) :: iv integer, optional, intent(in) :: iva(*) real(8), optional, intent(in) :: rv real(8), optional, intent(in) :: rva(*) complex(8), optional, intent(in) :: zv complex(8), optional, intent(in) :: zva(*) character(*), optional, intent(in) :: sv character(*), optional, intent(in) :: sva(*) ! local variables integer i if (.not.wrtvars) return if (.not.mp_mpi) return if ((present(iva)).or.(present(rva)).or.(present(zva)).or.(present(sva))) then if (.not.present(nv)) then write(*,*) write(*,'("Error(writevars): missing argument nv")') write(*,*) stop else if (nv.lt.0) then write(*,*) write(*,'("Error(writevars): nv < 0 : ",I8)') nv write(*,*) stop end if end if end if open(95,file='VARIABLES.OUT',position='APPEND',form='FORMATTED') write(95,*) write(95,'(A)',advance='NO') trim(vname) if (present(l)) write(95,'(I8)',advance='NO') l if (present(m)) write(95,'(I8)',advance='NO') m write(95,*) if (present(iv)) then write(95,'(2I8)') 1,1 write(95,'(I8)') iv else if (present(rv)) then write(95,'(2I8)') 2,1 write(95,'(G22.12)') rv else if (present(zv)) then write(95,'(2I8)') 3,1 write(95,'(2G22.12)') dble(zv),aimag(zv) else if (present(sv)) then write(95,'(2I8)') 4,1 write(95,'(A)') trim(sv) else if (present(iva)) then write(95,'(2I8)') 1,nv do i=1,nv write(95,'(I8)') iva(i) end do else if (present(rva)) then write(95,'(2I8)') 2,nv do i=1,nv write(95,'(G22.12)') rva(i) end do else if (present(zva)) then write(95,'(2I8)') 3,nv do i=1,nv write(95,'(2G22.12)') dble(zva(i)),aimag(zva(i)) end do else if (present(sva)) then write(95,'(2I8)') 4,nv do i=1,nv write(95,'(A)') trim(sva(i)) end do end if close(95) return end subroutine end module elk-6.3.2/src/PaxHeaders.21352/modtddft.f900000644000000000000000000000013213543334734014753 xustar0030 mtime=1569569244.265642177 30 atime=1569569240.386644655 30 ctime=1569569244.265642177 elk-6.3.2/src/modtddft.f900000644002504400250440000000424213543334734017024 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modtddft !-----------------------------------------! ! TDDFT linear response variables ! !-----------------------------------------! ! exchange-correlation kernel type integer fxctype(3) ! parameters for long-range correction (LRC) kernel real(8) fxclrc(2) ! number of independent spin components of the f_xc spin tensor integer nscfxc ! magnetic linear dichroism (MLD) angle between the electric and magnetic fields real(8) thetamld !---------------------------------------------! ! TDDFT real-time evolution variables ! !---------------------------------------------! ! number of laser pulses defining the time-dependent A-field integer npulse ! laser pulse parameters: vector amplitude, peak time, full-width at ! half-maximum, frequency and phase real(8), allocatable :: pulse(:,:) ! number of A-field ramps integer nramp ! ramp parameters: vector amplitude, ramp start time, linear and quadratic ! coefficients real(8), allocatable :: ramp(:,:) ! total simulation time real(8) tstime ! time step length real(8) dtimes ! number of time-steps integer ntimes ! current time-step integer itimes ! time steps real(8), allocatable :: times(:) ! phase defining complex direction of time evolution real(8) tdphi ! number of time steps after which the time-dependent eigenvectors are backed up integer ntsbackup ! tafieldt is .true. if a time-dependent vector potential is applied logical tafieldt ! time-dependent A-field real(8), allocatable :: afieldt(:,:) ! number of time steps after which observables are written to file integer ntswrite ! the following variables are .true. if the corresponding quantities are to be ! written every ntswrite time steps logical tdrho1d,tdrho2d,tdrho3d logical tdmag2d,tdmag3d logical tdcd2d,tdcd3d logical tddos,tdlsj ! magnitude of complex numbers added to initial eigenvectors real(8) rndevt0 ! starting time for the Fourier transform when calculating the linear response ! dielectric function from the real-time evolved current real(8) t0tdlr end module elk-6.3.2/src/PaxHeaders.21352/modgw.f900000644000000000000000000000013213543334734014263 xustar0030 mtime=1569569244.269642175 30 atime=1569569240.391644652 30 ctime=1569569244.269642175 elk-6.3.2/src/modgw.f900000644002504400250440000000242713543334734016337 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. module modgw ! maximum Matsubara frequency for the GW calculation real(8) wmaxgw ! maximum number of Matsubara frequencies integer nwgw ! integer grid intervals for Matsubara frequencies integer intwgw(2) ! map from frequency index to FFT array integer, allocatable :: iwfft(:) ! maximum fermionic Matsubara frequency index to be used for the GW calculation integer nwfm ! maximum bosonic frequency index integer nwbs ! imaginary frequencies used for the GW calculation real(8), allocatable :: wgw(:) ! complex fermionic frequencies complex(8), allocatable :: wfm(:) ! twdiag is .true. if the screened interaction W is taken to be diagonal logical twdiag ! tsediag is .true. if the GW self-energy is taken to be diagonal logical tsediag ! type of analytic continuation to be used for determining the self-energy on ! the real axis integer actype ! number of poles used for fitting the self-energy matrix elements integer npole ! number of complex shifts used in averaging the Pade approximant for the ! analytic continuation of the self-energy to the real axis integer nspade end module elk-6.3.2/src/PaxHeaders.21352/modulr.f900000644000000000000000000000013213543334734014450 xustar0030 mtime=1569569244.273642172 30 atime=1569569240.395644649 30 ctime=1569569244.273642172 elk-6.3.2/src/modulr.f900000644002504400250440000000606213543334734016523 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modulr !-----------------------------! ! ultracell variables ! !-----------------------------! ! ultracell lattice vectors stored column-wise real(8) avecu(3,3) ! ultracell reciprocal lattice vectors real(8) bvecu(3,3) ! ultracell volume and Brillouin zone volume real(8) omegau,omegabzu ! original number of k-points integer nkpt0 ! kappa-point grid sizes integer ngridkpa(3) ! integer grid intervals for the kappa-points integer intkpa(2,3) ! number of kappa-points integer nkpa ! R-vectors in Cartesian coordinates spanning the ultracell real(8), allocatable :: vrcu(:,:) !------------------------------! ! G+Q-vector variables ! !------------------------------! ! small Q cut-off for non-zero Q-vectors real(8) q0cut ! G+Q-vectors in Cartesian coordinates real(8), allocatable :: vgqc(:,:,:) ! |G+Q| for all G+Q-vectors real(8), allocatable :: gqc(:,:) ! Coulomb Green's function in G+Q-space = 4 pi / |G+Q|^2 real(8), allocatable :: gclgq(:,:) ! spherical Bessel functions j_l(|G+Q|R_mt) real(8), allocatable :: jlgqrmt(:,:,:,:) ! spherical harmonics of the G+Q-vectors complex(8), allocatable :: ylmgq(:,:,:) ! structure factors for the G+Q-vectors complex(8), allocatable :: sfacgq(:,:,:) !---------------------------------------------------! ! ultra long-range densities and potentials ! !---------------------------------------------------! ! trdvclr is .true. if the real-space external Coulomb potential should be read ! in from file logical trdvclr ! Q-dependent external Coulomb potential (FFT ordering) complex(8), allocatable :: vclq(:) ! Q-dependent external magnetic field complex(8), allocatable :: bfcq(:,:) ! Q-dependent external muffin-tin magnetic fields complex(8), allocatable :: bfcmtq(:,:,:) ! electric field vector in Cartesian coordinates real(8) efielduc(3) ! R-dependent density and magnetisation real(8), allocatable :: rhormt(:,:,:),rhorir(:,:) real(8), allocatable :: magrmt(:,:,:,:),magrir(:,:,:) ! muffin-tin charges and moments for each R-vector real(8), allocatable :: chgmtru(:,:) real(8), allocatable :: mommtru(:,:,:) ! Q-dependent density and magnetisation complex(8), allocatable :: rhoqmt(:,:,:),rhoqir(:,:) complex(8), allocatable :: magqmt(:,:,:,:),magqir(:,:,:) ! Q-dependent Kohn-Sham potential and magnetic field complex(8), allocatable :: vsqmt(:,:,:),vsqir(:,:) complex(8), allocatable :: bsqmt(:,:,:,:),bsqir(:,:,:) ! random amplitude used for initialising the long-range magnetic field real(8) rndbfcu ! if tplotq0 is .true. then the Q=0 term is included when generating plots logical tplotq0 !----------------------------------------------! ! eigenvalue and eigenvector variables ! !----------------------------------------------! ! number of ultra long-range states integer nstulr ! long-range eigenvalues real(8), allocatable :: evalu(:,:) ! long-range occupation numbers real(8), allocatable :: occulr(:,:) end module elk-6.3.2/src/PaxHeaders.21352/modjx.f900000644000000000000000000000013013543334734014265 xustar0029 mtime=1569569244.27764217 30 atime=1569569240.400644646 29 ctime=1569569244.27764217 elk-6.3.2/src/modjx.f900000644002504400250440000000061313543334734016336 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Jakobsson. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modjx ! number of spin-spiral q-vectors for calculating the exchange coefficients integer nqssjx ! range of cone angles for spin-spiral calculations real(8) thssjx(2) !**** add to manual, mention thssjx in degrees end module elk-6.3.2/src/PaxHeaders.21352/modomp.f900000644000000000000000000000013213543334734014441 xustar0030 mtime=1569569244.282642166 30 atime=1569569240.404644643 30 ctime=1569569244.282642166 elk-6.3.2/src/modomp.f900000644002504400250440000000663713543334734016524 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module modomp ! maximum number of OpenMP threads available integer maxthd ! maximum number of OpenMP threads for the first nesting level integer maxthd1 ! maximum number of threads available to MKL integer maxthdmkl ! maximum OpenMP nesting level integer maxlvl ! number of active OpenMP threads for each nesting level integer, allocatable :: nathd(:) interface integer function omp_get_num_procs() end function integer function omp_get_max_threads() end function integer function omp_get_num_threads() end function integer function omp_get_thread_num() end function logical function omp_get_nested() end function integer function omp_get_max_active_levels() end function logical function omp_get_dynamic() end function integer function omp_get_level() end function subroutine omp_set_num_threads(num_threads) integer, intent(in) :: num_threads end subroutine subroutine omp_set_nested(nested) logical, intent(in) :: nested end subroutine subroutine omp_set_max_active_levels(max_levels) integer, intent(in) :: max_levels end subroutine subroutine omp_set_dynamic(dynamic_threads) logical, intent(in) :: dynamic_threads end subroutine end interface contains subroutine omp_init implicit none if (maxthd.lt.0) then ! set the number of threads equal to the number of processors maxthd=omp_get_num_procs() call omp_set_num_threads(maxthd) else if (maxthd.eq.0) then ! use the system default number of threads maxthd=omp_get_max_threads() else ! use the number of threads specified in the input file call omp_set_num_threads(maxthd) end if if (maxthd1.le.0) then maxthd1=maxthd else maxthd1=min(maxthd1,maxthd) end if ! switch off dynamic allocation of threads call omp_set_dynamic(.false.) ! allow nested parallelism call omp_set_nested(.true.) ! set the maximum nesting level call omp_set_max_active_levels(maxlvl) ! allocate the number of active threads array if (allocated(nathd)) deallocate(nathd) allocate(nathd(0:maxlvl)) ! initialise the number of active threads call omp_reset return end subroutine subroutine omp_reset implicit none ! number of active threads at each nesting level nathd(0)=1 nathd(1:)=0 return end subroutine subroutine holdthd(nloop,nthd) implicit none ! arguments integer, intent(in) :: nloop integer, intent(out) :: nthd ! local variables integer lvl,na,n ! current nesting level lvl=omp_get_level() if ((lvl.lt.0).or.(lvl.ge.maxlvl)) then nthd=1 return end if !$OMP CRITICAL(holdthd_) ! determine number of active threads at the current nesting level na=nathd(lvl) na=max(min(na,maxthd),1) ! number of threads allowed for this loop nthd=maxthd/na if (mod(maxthd,na).gt.0) nthd=nthd+1 if (lvl.eq.0) nthd=min(nthd,maxthd1) nthd=max(min(nthd,maxthd,nloop),1) ! add to number of active threads in next nesting level n=nathd(lvl+1)+nthd n=max(min(n,maxthd),0) nathd(lvl+1)=n !$OMP END CRITICAL(holdthd_) return end subroutine subroutine freethd(nthd) implicit none ! arguments integer, intent(in) :: nthd ! local variables integer lvl,n ! current nesting level lvl=omp_get_level() if ((lvl.lt.0).or.(lvl.ge.maxlvl)) return !$OMP CRITICAL(freethd_) ! subtract from the number of active threads in next nesting level n=nathd(lvl+1)-nthd n=max(min(n,maxthd),0) nathd(lvl+1)=n !$OMP END CRITICAL(freethd_) return end subroutine end module elk-6.3.2/src/PaxHeaders.21352/mkl_stub.f900000644000000000000000000000013213543334737014771 xustar0030 mtime=1569569247.248640272 30 atime=1569569240.408644641 30 ctime=1569569247.248640272 elk-6.3.2/src/mkl_stub.f900000644002504400250440000000067213543334737017045 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for Intel MKL subroutine mkl_set_num_threads(num_threads) implicit none integer, intent(in) :: num_threads return end subroutine subroutine mkl_set_dynamic(dynamic) implicit none logical, intent(in) :: dynamic return end subroutine elk-6.3.2/src/PaxHeaders.21352/mkl_init.f900000644000000000000000000000013213543334734014754 xustar0030 mtime=1569569244.290642161 30 atime=1569569240.413644638 30 ctime=1569569244.290642161 elk-6.3.2/src/mkl_init.f900000644002504400250440000000075613543334734017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine mkl_init use modomp implicit none ! set the initial number of MKL threads equal to one call mkl_set_num_threads(1) ! set the maximum number of threads available to MKL if (maxthdmkl.le.0) maxthdmkl=maxthd ! enable dynamic thread allocation call mkl_set_dynamic(.true.) return end subroutine elk-6.3.2/src/PaxHeaders.21352/oblas_stub.f900000644000000000000000000000013213543334737015306 xustar0030 mtime=1569569247.252640269 30 atime=1569569240.417644635 30 ctime=1569569247.252640269 elk-6.3.2/src/oblas_stub.f900000644002504400250440000000052613543334737017360 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for OpenBLAS subroutine openblas_set_num_threads(num_threads) implicit none integer, intent(in) :: num_threads return end subroutine elk-6.3.2/src/PaxHeaders.21352/oblas_init.f900000644000000000000000000000013213543334734015271 xustar0030 mtime=1569569244.298642156 30 atime=1569569240.422644632 30 ctime=1569569244.298642156 elk-6.3.2/src/oblas_init.f900000644002504400250440000000052513543334734017342 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine oblas_init implicit none ! set the initial number of OpenBLAS threads equal to one call openblas_set_num_threads(1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/blis_stub.f900000644000000000000000000000013213543334737015137 xustar0030 mtime=1569569247.255640268 30 atime=1569569240.426644629 30 ctime=1569569247.255640268 elk-6.3.2/src/blis_stub.f900000644002504400250440000000052413543334737017207 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for BLIS subroutine bli_thread_set_num_threads(num_threads) implicit none integer, intent(in) :: num_threads return end subroutine elk-6.3.2/src/PaxHeaders.21352/blis_init.f900000644000000000000000000000013213543334734015122 xustar0030 mtime=1569569244.306642151 30 atime=1569569240.431644626 30 ctime=1569569244.306642151 elk-6.3.2/src/blis_init.f900000644002504400250440000000052213543334734017170 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine blis_init implicit none ! set the initial number of BLIS threads equal to one call bli_thread_set_num_threads(1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/w90_stub.f900000644000000000000000000000013213543334737014625 xustar0030 mtime=1569569247.258640266 30 atime=1569569240.436644623 30 ctime=1569569247.258640266 elk-6.3.2/src/w90_stub.f900000644002504400250440000000321313543334737016673 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin and Lars Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for Wannier90 library. subroutine wannier_setup(seed__name,mp_grid_loc,num_kpts_loc, & real_lattice_loc,recip_lattice_loc,kpt_latt_loc,num_bands_tot, & num_atoms_loc,atom_symbols_loc,atoms_cart_loc, gamma_only_loc,spinors_loc, & nntot_loc,nnlist_loc,nncell_loc,num_bands_loc,num_wann_loc, & proj_site_loc,proj_l_loc,proj_m_loc,proj_radial_loc,proj_z_loc, & proj_x_loc,proj_zona_loc,exclude_bands_loc,proj_s_loc,proj_s_qaxis_loc) implicit none ! arguments character(*) seed__name integer mp_grid_loc(3) integer num_kpts_loc real(8) real_lattice_loc(3,3) real(8) recip_lattice_loc(3,3) real(8) kpt_latt_loc(3,num_kpts_loc) integer num_bands_tot integer num_atoms_loc character(*) atom_symbols_loc(num_atoms_loc) real(8) atoms_cart_loc(3,num_atoms_loc) logical gamma_only_loc logical spinors_loc integer nntot_loc integer nnlist_loc(num_kpts_loc,*) integer nncell_loc(3,num_kpts_loc,*) integer num_bands_loc integer num_wann_loc real(8) proj_site_loc(3,num_bands_tot) integer proj_l_loc(num_bands_tot) integer proj_m_loc(num_bands_tot) integer proj_radial_loc(num_bands_tot) real(8) proj_z_loc(3,num_bands_tot) real(8) proj_x_loc(3,num_bands_tot) real(8) proj_zona_loc(num_bands_tot) integer exclude_bands_loc(num_bands_tot) integer, optional :: proj_s_loc(num_bands_tot) real(8), optional :: proj_s_qaxis_loc(3,num_bands_tot) write(*,*) write(*,'("Error(wannier_setup): libwannier not or improperly installed")') write(*,*) stop end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/modw90.f900000644000000000000000000000013113543334734014264 xustar0030 mtime=1569569244.315642145 29 atime=1569569240.44064462 30 ctime=1569569244.315642145 elk-6.3.2/src/modw90.f900000644002504400250440000000217313543334734016337 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Jon Lafuente and Manh Duc Le; 2017-18 Arsenii Gerasimov, ! Yaroslav Kvashnin and Lars Nordstrom. This file is distributed under the terms ! of the GNU General Public License. See the file COPYING for license details. module modw90 !---------------------------------------! ! Wannier90 interface variables ! !---------------------------------------! ! seedname for all Wannier90 files character(256) seedname ! number of extra lines to write to .win file integer nxlwin ! extra lines to write to .win file character(256), allocatable :: xlwin(:) ! number of Wannier functions to calculate integer num_wann ! number of bands to pass to Wannier90 integer num_bands ! index to bands integer, allocatable :: idxw90(:) ! number of iterations for the minimisation of omega integer num_iter ! maximum number of nearest neighbours per k-point integer, parameter :: num_nnmax=12 ! total number of nearest neighbours for each k-point integer nntot ! list of nearest neighbours for each k-point integer, allocatable :: nnlist(:,:) ! G-vector offset for each nearest neighbour integer, allocatable :: nncell(:,:,:) end module elk-6.3.2/src/PaxHeaders.21352/zfftifc.f900000644000000000000000000000013213543334737014604 xustar0030 mtime=1569569247.296640241 30 atime=1569569240.445644617 30 ctime=1569569247.296640241 elk-6.3.2/src/zfftifc.f900000644002504400250440000000240113543334737016650 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zfftifc ! !INTERFACE: subroutine zfftifc(nd,n,sgn,z) ! !INPUT/OUTPUT PARAMETERS: ! nd : number of dimensions (in,integer) ! n : grid sizes (in,integer(nd)) ! sgn : FFT direction, -1: forward; 1: backward (in,integer) ! z : array to transform (inout,complex(n(1)*n(2)*...*n(nd))) ! !DESCRIPTION: ! Interface to the double-precision complex fast Fourier transform routine. ! This is to allow machine-optimised routines to be used without affecting the ! rest of the code. See routine {\tt nfftifc}. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn complex(8), intent(inout) :: z(*) ! interface to modified FFTPACK5 call cfftnd(nd,n,sgn,z) return end subroutine !EOC subroutine rzfftifc(nd,n,sgn,r,z) implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn real(8), intent(inout) :: r(*) complex(8), intent(inout) :: z(*) write(*,*) write(*,'("Error(rzfftifc): FFTW or MKL library required for real to complex & &FFT")') write(*,*) stop return end subroutine elk-6.3.2/src/PaxHeaders.21352/elk.f900000644000000000000000000000013213543334734013721 xustar0030 mtime=1569569244.330642136 30 atime=1569569240.449644615 30 ctime=1569569244.330642136 elk-6.3.2/src/elk.f900000644002504400250440000024175113543334734016002 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2011 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! main routine for the Elk code program elk use modmain use modmpi use modomp use modvars implicit none ! local variables logical exist integer itask ! initialise MPI execution environment call mpi_init(ierror) ! duplicate mpi_comm_world call mpi_comm_dup(mpi_comm_world,mpicom,ierror) ! determine the number of MPI processes call mpi_comm_size(mpicom,np_mpi,ierror) ! determine the local MPI process number call mpi_comm_rank(mpicom,lp_mpi,ierror) ! determine if the local process is the master if (lp_mpi.eq.0) then mp_mpi=.true. write(*,*) write(*,'("Elk code version ",I1.1,".",I1.1,".",I2.2," started")') version else mp_mpi=.false. end if ! read input files call readinput ! initialise OpenMP variables call omp_init ! initialise the MKL library call mkl_init ! initialise the OpenBLAS library call oblas_init ! initialise the BLIS library call blis_init if (mp_mpi) then write(*,*) write(*,'("Number of MPI processes : ",I6)') np_mpi write(*,'("Number of OpenMP threads per MPI process : ",I4)') maxthd write(*,'("Total number of threads : ",I6)') np_mpi*maxthd write(*,'("Maximum OpenMP nesting level : ",I4)') maxlvl end if ! delete the VARIABLES.OUT file call delvars ! write version number to VARIABLES.OUT call writevars('version',nv=3,iva=version) ! check if Elk is already running in this directory if (mp_mpi) then inquire(file='RUNNING',exist=exist) if (exist) then write(*,*) write(*,'("Info(elk): several copies of Elk may be running in this path")') write(*,'("(this could be intentional, or result from a previous crash,")') write(*,'(" or arise from an incorrect MPI compilation)")') else open(50,file='RUNNING') close(50) end if end if ! perform the tasks do itask=1,ntasks task=tasks(itask) if (mp_mpi) then write(*,*) write(*,'("Info(elk): current task : ",I6)') task end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! check if task can be run with MPI if (lp_mpi.gt.0) then if (any(task.eq.[0,1,2,3,5,15,16,28,29,61,62,63,110,120,135,136,162,170, & 180,185,188,200,201,205,240,241,270,300,320,330,331,350,351,360,371,372, & 373,440,460,461,600,610,620,630,640,700,701])) then continue else write(*,'("Info(elk): MPI process ",I6," idle for task ",I6)') lp_mpi,task cycle end if end if ! write task to VARIABLES.OUT call writevars('task',iv=task) select case(task) case(0,1) call gndstate case(2,3) call geomopt case(5) call hartfock case(10) call writedos case(14) call writesf case(15,16) call writelsj case(20,21,22,23) call bandstr case(25) call effmass case(28,29) call mae case(31,32,33) call rhoplot case(41,42,43) call potplot case(51,52,53) call elfplot case(61,62,63,162) call wfplot case(65) call wfcrplot case(71,72,73,81,82,83,141,142,143,151,152,153) call vecplot case(91,92,93) call dbxcplot case(100,101) call fermisurf case(102) call fermisurfbxsf case(105) call nesting case(110) call mossbauer case(115) call writeefg case(120) call writepmat case(121) call dielectric case(122) call moke case(125) call nonlinopt case(130) call writeexpmat case(135) call writewfpw case(140) call elnes case(150) call writeevsp case(160) call torque case(170) call writeemd case(171,172,173) call emdplot case(180) call writeepsinv case(185) call writehmlbse case(186) call writeevbse case(187) call dielectric_bse case(190) call geomplot case(195) call sfacrho case(196) call sfacmag case(200,201,202) call phononsc case(205) call phonon case(210) call phdos case(220) call phdisp case(230) call writephn case(240,241) call ephcouple case(245) call phlwidth case(250) call alpha2f case(260) call eliashberg case(270) !************** case(300) call rdmft case(320) call tddftlr case(330,331) call tddftsplr case(341,342,343) call wxcplot case(350,351,352) call spiralsc case(360) call ssfsmjx case(371,372,373) call curdenplot case(400) call writetmdu case(430) call writestrain case(440) call writestress case(450) call genafieldt case(460,461) call tddft case(480,481) call dielectric_tdrt case(500) call testcheck case(550) call writew90 case(600) call gwsefm case(610) call gwspecf case(620) call gwbandstr case(630) call gwscrho case(640) call gwdmat case(700,701) call gndstulr case(731,732,733) call rhouplot case(741,742,743) call potuplot case(771,772,773) call maguplot case default write(*,*) write(*,'("Error(elk): task not defined : ",I8)') task write(*,*) stop end select ! reset the OpenMP thread variables call omp_reset ! close all opened files call closefiles end do if (mp_mpi) then open(50,file='RUNNING') close(50,status='DELETE') write(*,*) write(*,'("Elk code stopped")') end if ! terminate MPI execution environment call mpi_finalize(ierror) end program !BOI ! !TITLE: {\huge{\sc The Elk Code Manual}}\\ \Large{\sc Version 6.3.2}\\ \vskip 20pt \includegraphics[height=1cm]{elk_silhouette.pdf} ! !AUTHORS: {\sc J. K. Dewhurst, S. Sharma} \\ {\sc L. Nordstr\"{o}m, F. Cricchio, O. Gr\aa n\"{a}s} \\ {\sc E. K. U. Gross} ! !AFFILIATION: ! !INTRODUCTION: Introduction ! Welcome to the Elk Code! Elk is an all-electron full-potential linearised ! augmented-plane-wave (FP-LAPW) code for determining the properties of ! crystalline solids. It was developed originally at the ! Karl-Franzens-Universit\"{a}t Graz as part of the EXCITING EU Research and ! Training Network project\footnote{EXCITING code developed under the Research ! and Training Network EXCITING funded by the EU, contract No. ! HPRN-CT-2002-00317}. The guiding philosophy during the implementation of the ! code was to keep it as simple as possible for both users and developers ! without compromising on its capabilities. All the routines are released ! under either the GNU General Public License (GPL) or the GNU Lesser General ! Public License (LGPL) in the hope that they may inspire other scientists to ! implement new developments in the field of density functional theory and ! beyond. ! ! \section{Acknowledgments} ! Lots of people contributed to the Elk code with ideas, checking and testing, ! writing code or documentation and general encouragement. They include ! Claudia Ambrosch-Draxl, Clas Persson, Fredrik Bultmark, Christian Brouder, ! Rickard Armiento, Andrew Chizmeshya, Per Anderson, Igor Nekrasov, Sushil ! Auluck, Frank Wagner, Fateh Kalarasse, J\"{u}rgen Spitaler, Stefano ! Pittalis, Nektarios Lathiotakis, Tobias Burnus, Stephan Sagmeister, ! Christian Meisenbichler, S\'{e}bastien Leb\`{e}gue, Yigang Zhang, Fritz ! K\"{o}rmann, Alexey Baranov, Anton Kozhevnikov, Shigeru Suehara, Frank ! Essenberger, Antonio Sanna, Tyrel McQueen, Tim Baldsiefen, Marty Blaber, ! Anton Filanovich, Torbj\"{o}rn Bj\"{o}rkman, Martin Stankovski, Jerzy ! Goraus, Markus Meinert, Daniel Rohr, Vladimir Nazarov, Kevin Krieger, Pink ! Floyd, Arkardy Davydov, Florian Eich, Aldo Romero Castro, Koichi Kitahara, ! James Glasbrenner, Konrad Bussmann, Igor Mazin, Matthieu Verstraete, David ! Ernsting, Stephen Dugdale, Peter Elliott, Marcin Dulak, Jos\'{e} A. Flores ! Livas, Stefaan Cottenier, Yasushi Shinohara, Michael Fechner, Yaroslav ! Kvashnin, Tristan M\"uller, Arsenii Gerasimov, Manh Duc Le, Jon Lafuente ! Bartolom\'{e}, Ren\'{e} Wirnata and Jagdish Kumar. Special mention of David ! Singh's very useful book on the LAPW method\footnote{D. J. Singh, ! {\it Planewaves, Pseudopotentials and the LAPW Method} (Kluwer Academic ! Publishers, Boston, 1994).} must also be made. Finally we would like to ! acknowledge the generous support of Karl-Franzens-Universit\"{a}t Graz, the ! EU Marie-Curie Research Training Networks initiative, the Max Born Institute ! and the Max Planck Society. ! ! \vspace{24pt} ! Kay Dewhurst\newline ! Sangeeta Sharma\newline ! Lars Nordstr\"{o}m\newline ! Francesco Cricchio\newline ! Oscar Gr\aa n\"{a}s\newline ! Hardy Gross ! ! \vspace{12pt} ! Berlin, Halle, Jerusalem and Uppsala, September 2019 ! \newpage ! ! \section{Units} ! Unless explicitly stated otherwise, Elk uses atomic units. In this system ! $\hbar=1$, the electron mass $m=1$, the Bohr radius $a_0=1$ and the electron ! charge $e=1$ (note that the electron charge is positive, so that the atomic ! numbers $Z$ are negative). Thus, the atomic unit of length is ! 0.52917721092(17) \AA, and the atomic unit of energy is the Hartree which ! equals 27.21138505(60) eV. The unit of the external magnetic fields is ! defined such that one unit of magnetic field in {\tt elk.in} equals ! 1715.255541 Tesla. ! ! \section{Compiling and running Elk} ! \subsection{Compiling the code} ! Unpack the code from the archive file. Run the command ! \begin{verbatim} ! setup ! \end{verbatim} ! in the {\tt elk} directory and select the appropriate system and compiler. ! We highly recommend that you edit the file {\tt make.inc} and tune the ! compiler options for your computer system. In particular, use of ! machine-optimised BLAS/LAPACK libraries can result in significant increase ! in performance, but make sure they are of version $3.x$. Following this, run ! \begin{verbatim} ! make ! \end{verbatim} ! This will hopefully compile the entire code and all the libraries into one ! executable, {\tt elk}, located in the {\tt elk/src} directory. It will also ! compile two useful auxiliary programs, namely {\tt spacegroup} for producing ! crystal geometries from spacegroup data and {\tt eos} for fitting equations ! of state to energy-volume data. If you want to compile everything all over ! again, then run {\tt make clean} from the {\tt elk} directory, followed by ! {\tt make}. ! \subsubsection{Parallelism in Elk} ! Three forms of parallelism are implemented in Elk, and all can be used in ! combination with each other, with efficiency depending on the particular ! task, crystal structure and computer system. You may need to contact your ! system administrator for assistance with running Elk in parallel. ! \begin{enumerate} ! \item ! OpenMP works for symmetric multiprocessors, i.e. computers that have many ! cores with the same unified memory accessible to each. It is enabled by ! setting the appropriate command-line options (e.g. {\tt -qopenmp} for the ! Intel compiler) before compiling, and also at runtime by the environment ! variable ! \begin{verbatim} ! export OMP_NUM_THREADS=x ! \end{verbatim} ! where x is the number of cores available on a particular node. In addition, ! some vendor-supplied BLAS/LAPACK libraries use OpenMP internally, ! for example MKL from Intel and ACML from AMD; refer to their documentation ! for usage. ! \item ! The message passing interface (MPI) is particularly suitable for running ! Elk across multiple nodes of a cluster, with scaling to hundreds of ! processors possible. To enable MPI, comment out the lines indicated in ! {\tt elk/make.inc}. Then run {\tt make clean} followed by {\tt make}. If ! $y$ is the number of nodes and $x$ is the number of cores per node, then at ! runtime envoke ! \begin{verbatim} ! mpirun -np z ./elk ! \end{verbatim} ! where $z=x y$ is the total number of cores available on the machine. ! Highest efficiency is obtained by using hybrid parallelism with OpenMP on ! each node and MPI across nodes. This can be done by compiling the code ! using the MPI Fortran compiler in combination with the OpenMP command-line ! option. At runtime set {\tt export OMP\_NUM\_THREADS=x} and start the MPI ! run with {\em one process per node} as follows ! \begin{verbatim} ! mpirun -pernode -np y ./elk ! \end{verbatim} ! The number of MPI processes is reported in the file {\tt INFO.OUT} which ! serves as a check that MPI is running correctly. Note that version 2 of the ! MPI libraries is required to run Elk. ! \item ! Phonon calculations use a simple form of parallelism by just examining the ! run directory for dynamical matrix files. These files are of the form ! \begin{verbatim} ! DYN_Qqqqq_qqqq_qqqq_Sss_Aaa_Pp.OUT ! \end{verbatim} ! and contain a single row of a particular dynamical matrix. Elk simply finds ! which {\tt DYN} files do not exist, chooses one and runs it. This way many ! independent runs of Elk can be started in the same directory on a networked ! file system (NFS), and will run until all the dynamical matrices files are ! completed. Should a particular run crash, then delete the associated empty ! {\tt DYN} file and rerun Elk. ! \end{enumerate} ! ! \subsection{Linking with the Libxc functional library} ! Libxc is the ETSF library of exchange-correlation functionals. Elk can use ! the complete set of LDA and GGA functionals available in Libxc as well as ! the potential-only metaGGA's. In order to enable this, first download and ! compile Libxc version 4. This should have produced the files {\tt libxc.a} ! and {\tt libxcf90.a}. Copy these files to the {\tt elk/src} directory and ! then uncomment the lines indicated for Libxc in the file {\tt elk/make.inc}. ! Once this is done, run {\tt make clean} followed by {\tt make}. To select a ! particular functional of Libxc, use the block ! \begin{verbatim} ! xctype ! 100 nx nc ! \end{verbatim} ! where {\tt nx} and {\tt nc} are, respectively, the numbers of the exchange ! and correlation functionals in the Libxc library. See the file ! {\tt elk/src/libxc\_funcs.f90} for a list of the functionals and their ! associated numbers. ! ! \subsection{Running the code} ! As a rule, all input files for the code are in lower case and end with the ! extension {\tt .in}. All output files are uppercase and have the extension ! {\tt .OUT}. For most cases, the user will only need to modify the file ! {\tt elk.in}. In this file input parameters are arranged in blocks. ! Each block consists of a block name on one line and the block variables on ! subsequent lines. Almost all blocks are optional: the code uses reasonable ! default values in cases where they are absent. Blocks can appear in any ! order, if a block is repeated then the second instance is used. Comment ! lines can be included in the input file and begin with the {\tt !} ! character. ! ! \subsubsection{Species files} ! The only other input files are those describing the atomic species which go ! into the crystal. These files are found in the {\tt species} directory and ! are named with the element symbol and the extension {\tt .in}, for example ! {\tt Sb.in}. They contain parameters like the atomic charge, mass, ! muffin-tin radius, occupied atomic states and the type of linearisation ! required. Here as an example is the copper species file {\tt Cu.in}: ! \begin{verbatim} ! 'Cu' : spsymb ! 'copper' : spname ! -29.0000 : spzn ! 115837.2716 : spmass ! 0.371391E-06 2.0000 34.8965 500 : rminsp, rmt, rmaxsp, nrmt ! 10 : nstsp ! 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore ! 2 0 1 2.00000 T ! 2 1 1 2.00000 T ! 2 1 2 4.00000 T ! 3 0 1 2.00000 T ! 3 1 1 2.00000 F ! 3 1 2 4.00000 F ! 3 2 2 4.00000 F ! 3 2 3 6.00000 F ! 4 0 1 1.00000 F ! 1 : apword ! 0.1500 0 F : apwe0, apwdm, apwve ! 1 : nlx ! 2 2 : lx, apword ! 0.1500 0 T : apwe0, apwdm, apwve ! 0.1500 1 T ! 4 : nlorb ! 0 2 : lorbl, lorbord ! 0.1500 0 F : lorbe0, lorbdm, lorbve ! 0.1500 1 F ! 1 2 ! 0.1500 0 F ! 0.1500 1 F ! 2 2 ! 0.1500 0 F ! 0.1500 1 F ! 1 3 ! 0.1500 0 F ! 0.1500 1 F ! -2.8652 0 T ! \end{verbatim} ! The input parameters are defined as follows: ! \vskip 6pt ! {\tt spsymb} \\ ! The symbol of the element. ! \vskip 6pt ! {\tt spname} \\ ! The name of the element. ! \vskip 6pt ! {\tt spzn} \\ ! Nuclear charge: should be negative since the electron charge is taken to be ! postive in the code; it can also be fractional for purposes of doping. ! \vskip 6pt ! {\tt spmass} \\ ! Nuclear mass in atomic units. ! \vskip 6pt ! {\tt rminsp}, {\tt rmt}, {\tt rmaxsp}, {\tt nrmt} \\ ! Respectively, the minimum radius on logarithmic radial mesh; muffin-tin ! radius; effective infinity for atomic radial mesh; and number of radial mesh ! points to muffin-tin radius. ! \vskip 6pt ! {\tt nstsp} \\ ! Number of atomic states. ! \vskip 6pt ! {\tt nsp}, {\tt lsp}, {\tt ksp}, {\tt occsp}, {\tt spcore} \\ ! Respectively, the principal quantum number of the radial Dirac equation; ! quantum number $l$; quantum number $k$ ($l$ or $l+1$); occupancy of atomic ! state (can be fractional); {\tt .T.} if state is in the core and therefore ! treated with the Dirac equation in the spherical part of the muffin-tin ! Kohn-Sham potential. ! \vskip 6pt ! {\tt apword} \\ ! Default APW function order, i.e. the number of radial functions and ! therefore the order of the radial derivative matching at the muffin-tin ! surface. ! \vskip 6pt ! {\tt apwe0}, {\tt apwdm}, {\tt apwve} \\ ! Respectively, the default APW linearisation energy; the order of the energy ! derivative of the APW radial function $\partial^m u(r)/\partial E^m$; and ! {\tt .T.} if the linearisation energy is allowed to vary. ! \vskip 6pt ! {\tt nlx} \\ ! The number of exceptions to the default APW configuration. These should be ! listed on subsequent lines for particular angular momenta. In this example, ! the fixed energy APW with angular momentum $d$ ({\tt lx} $=2$) is replaced ! with a LAPW, which has variable linearisation energy. ! \vskip 6pt ! {\tt nlorb} \\ ! Number of local-orbitals. ! \vskip 6pt ! {\tt lorbl}, {\tt lorbord} \\ ! Respectively, the angular momentum $l$ of the local-orbital; and the order ! of the radial derivative which goes to zero at the muffin-tin surface. ! \vskip 6pt ! {\tt lorbe0}, {\tt lorbdm}, {\tt lorbve} \\ ! Respectively, the default local-orbital linearisation energy; the order of ! the energy derivative of the local-orbital radial function; and {\tt .T.} if ! the linearisation energy is allowed to vary. ! ! \subsubsection{Examples} ! The best way to learn to use Elk is to run the examples included with the ! package. These can be found in the {\tt examples} directory and use many of ! the code's capabilities. The following section which describes all the input ! parameters will be of invaluable assistance. ! ! \section{Input blocks} ! This section lists all the input blocks available. It is arranged with the ! name of the block followed by a table which lists each parameter name, what ! the parameter does, its type and default value. A horizontal line in the ! table indicates a new line in {\tt elk.in}. Below the table is a brief ! overview of the block's function. ! ! \block{atoms}{ ! {\tt nspecies} & number of species & integer & 0 \\ ! \hline ! {\tt spfname(i)} & species filename for species $i$ & string & - \\ ! \hline ! {\tt natoms(i)} & number of atoms for species $i$ & integer & - \\ ! \hline ! {\tt atposl(j,i)} & atomic position in lattice coordinates for atom $j$ ! & real(3) & - \\ ! {\tt bfcmt(j,i)} & muffin-tin external magnetic field in Cartesian ! coordinates for atom $j$ & real(3) & -} ! Defines the atomic species as well as their positions in the unit cell and ! the external magnetic field applied throughout the muffin-tin. These fields ! are used to break spin symmetry and should be considered infinitesimal as ! they do not contribute directly to the total energy. Collinear calculations ! are more efficient if the field is applied in the $z$-direction. One could, ! for example, set up an anti-ferromagnetic crystal by pointing the field on ! one atom in the positive $z$-direction and in the opposite direction on ! another atom. If {\tt molecule} is {\tt .true.} then the atomic positions ! are assumed to be in Cartesian coordinates. See also {\tt sppath}, ! {\tt bfieldc} and {\tt molecule}. ! ! \block{autokpt}{ ! {\tt autokpt} & {\tt .true.} if the $k$-point set is to be determined ! automatically & logical & {\tt .false.}} ! See {\tt radkpt} for details. ! ! \block{autolinengy}{ ! {\tt autolinengy} & {\tt .true.} if the fixed linearisation energies are ! to be determined automatically & logical & {\tt .false.}} ! See {\tt dlefe} for details. ! ! \block{autoswidth}{ ! {\tt autoswidth} & {\tt .true.} if the smearing parameter {\tt swidth} ! should be determined automatically & logical & {\tt .false.}} ! Calculates the smearing width from the $k$-point density, $V_{\rm BZ}/n_k$; ! the valence band width, $W$; and an effective mass parameter, $m^{*}$; ! according to ! $$ \sigma=\frac{\sqrt{2W}}{m^{*}}\left(\frac{3}{4\pi} ! \frac{V_{\rm BZ}}{n_k}\right)^{1/3}. $$ ! The variable {\tt mstar} then replaces {\tt swidth} as the control parameter ! of the smearing width. A large value of $m^{*}$ gives a narrower smearing ! function. Since {\tt swidth} is adjusted according to the fineness of the ! ${\bf k}$-mesh, the smearing parameter can then be eliminated. It is not ! recommended that {\tt autoswidth} be used in conjunction with the ! Fermi-Dirac smearing function, since the electronic temperature will then be ! a function of the $k$-point mesh. See T. Bj\"orkman and O. Gr\aa n\"as, ! {\it Int. J. Quant. Chem.} DOI: 10.1002/qua.22476 (2010) for details. See ! also {\tt stype} and {\tt swidth}. ! ! \block{avec}{ ! {\tt avec(1)} & first lattice vector & real(3) & $(1.0,0.0,0.0)$ \\ ! \hline ! {\tt avec(2)} & second lattice vector & real(3) & $(0.0,1.0,0.0)$ \\ ! \hline ! {\tt avec(3)} & third lattice vector & real(3) & $(0.0,0.0,1.0)$} ! Lattice vectors of the crystal in atomic units (Bohr). ! ! \block{beta0}{ ! {\tt beta0} & adaptive mixing parameter & real & $0.05$} ! This determines how much of the potential from the previous self-consistent ! loop is mixed with the potential from the current loop. It should be made ! smaller if the calculation is unstable. See {\tt betamax} and also the ! routine {\tt mixadapt}. ! ! \block{betamax}{ ! {\tt betamax} & maximum adaptive mixing parameter & real & $0.5$} ! Maximum allowed mixing parameter used in routine {\tt mixadapt}. ! ! \block{bfieldc}{ ! {\tt bfieldc} & global external magnetic field in Cartesian coordinates & ! real(3) & $(0.0,0.0,0.0)$} ! This is a constant magnetic field applied throughout the entire unit cell ! and enters the second-variational Hamiltonian as ! $$ \frac{g_e}{4c}\,\vec{\sigma}\cdot{\bf B}_{\rm ext}, $$ ! where $g_e$ is the electron $g$-factor. This field is normally used to break ! spin symmetry for spin-polarised calculations and considered to be ! infinitesimal with no direct contribution to the total energy. In cases ! where the magnetic field is finite (for example when computing magnetic ! response) the external ${\bf B}$-field energy reported in {\tt INFO.OUT} ! should be added to the total by hand. This field is applied throughout the ! entire unit cell. To apply magnetic fields in particular muffin-tins use the ! {\tt bfcmt} vectors in the {\tt atoms} block. Collinear calculations are ! more efficient if the field is applied in the $z$-direction. ! ! \block{broydpm}{ ! {\tt broydpm} & Broyden mixing parameters $\alpha$ and $w_0$ & real & ! $(0.4,0.15)$} ! See {\tt mixtype} and {\tt mixsdb}. ! ! \block{c\_tb09}{ ! {\tt c\_tb09} & Tran-Blaha constant $c$ & real & -} ! Sets the constant $c$ in the Tran-Blaha '09 functional. Normally this is ! calculated from the density, but there may be situations where this needs to ! be adjusted by hand. See {\it Phys. Rev. Lett.} {\bf 102}, 226401 (2009). ! ! \block{chgexs}{ ! {\tt chgexs} & excess electronic charge & real & $0.0$} ! This controls the amount of charge in the unit cell beyond that required to ! maintain neutrality. It can be set positive or negative depending on whether ! electron or hole doping is required. ! ! \block{cmagz}{ ! {\tt cmagz} & .true. if $z$-axis collinear magnetism is to be enforced & ! logical & {\tt .false.}} ! This variable can be set to .true. in cases where the magnetism is ! predominantly collinear in the $z$-direction, for example a ferromagnet with ! spin-orbit coupling. This will make the calculation considerably faster at ! the slight expense of precision. ! ! \block{deltaem}{ ! {\tt deltaem} & the size of the ${\bf k}$-vector displacement used when ! calculating numerical derivatives for the effective mass tensor & real & ! $0.025$} ! See {\tt ndspem} and {\tt vklem}. ! ! \block{deltaph}{ ! {\tt deltaph} & size of the atomic displacement used for calculating ! dynamical matrices & real & $0.01$} ! Phonon calculations are performed by constructing a supercell corresponding ! to a particular ${\bf q}$-vector and making a small periodic displacement of ! the atoms. The magnitude of this displacement is given by {\tt deltaph}. ! This should not be made too large, as anharmonic terms could then become ! significant, neither should it be too small as this can introduce numerical ! error. ! ! \block{deltast}{ ! {\tt deltast} & size of the change in lattice vectors used for calculating ! the stress tensor & real & $0.001$} ! The stress tensor is computed by changing the lattice vector matrix $A$ by ! $$ A\rightarrow (1+\delta t\,e_i)A, $$ ! where $dt$ is an infinitesimal equal in practice to {\tt deltast} and $e_i$ ! is the $i^{\rm th}$ strain tensor. Numerical finite differences are used to ! compute the stress tensor as the derivative of the total energy $dE_i/dt$. ! ! \block{dft+u}{ ! {\tt dftu} & type of DFT+$U$ calculation & integer & 0 \\ ! {\tt inpdftu} & type of input for DFT+U calculation & integer & 1 \\ ! \hline ! {\tt is} & species number & integer & - \\ ! {\tt l} & angular momentum value & integer & -1 \\ ! {\tt u} & the desired $U$ value & real & $0.0$ \\ ! {\tt j} & the desired $J$ value & real & $0.0$} ! This block contains the parameters required for an DFT+$U$ calculation, with ! the list of parameters for each species terminated with a blank line. The ! type of double counting required is set with the parameter {\tt dftu}. ! Currently implemented are: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! 0 & No DFT+$U$ calculation \\ ! 1 & Fully localised limit (FLL) \\ ! 2 & Around mean field (AFM) \\ ! 3 & An interpolation between FLL and AFM \\ ! \end{tabularx} ! \vskip 6pt ! The type of input parameters is set with the parameter {\tt inpdftu}. ! The current possibilities are: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! 1 & U and J \\ ! 2 & Slater parameters \\ ! 3 & Racah parameters \\ ! 4 & Yukawa screening length \\ ! 5 & U and determination of corresponding Yukawa screening length ! \end{tabularx} ! \vskip 6pt ! See (amongst others) {\it Phys. Rev. B} {\bf 67}, 153106 (2003), ! {\it Phys. Rev. B} {\bf 52}, R5467 (1995), {\it Phys. Rev. B} {\bf 60}, ! 10763 (1999), and {\it Phys. Rev. B} {\bf 80}, 035121 (2009). ! ! \block{dlefe}{ ! {\tt dlefe} & difference between the fixed linearisation energy and the ! Fermi energy & real & $-0.1$} ! When {\tt autolinengy} is {\tt .true.} then the fixed linearisation energies ! are set to the Fermi energy plus {\tt dlefe}. ! ! \block{dncgga}{ ! {\tt dncgga} & small constant used to stabilise non-collinear GGA & ! real & $1\times 10^{-8}$} ! This small constant, $d$, is required in order to remove the infinite ! gradients obtained when using `Kubler's trick' in conjunction with GGA and ! non-collinear magnetism. It is applied by calculating the up and down ! densities as ! $$ \rho^{\uparrow}({\bf r})=\rho({\bf r})+\widetilde{m}({\bf r}) ! \qquad \rho^{\downarrow}({\bf r})=\rho({\bf r})-\widetilde{m}({\bf r}), $$ ! where $\widetilde{m}({\bf r})=\sqrt{{\bf m}^2({\bf r})+d}$, ! and should be taken as the smallest value for which the exchange-correlation ! magnetic field ${\bf B}_{\rm xc}$ is smooth. ! ! \block{dosmsum}{ ! {\tt dosmsum} & {\tt .true.} if the partial DOS is to be summed over $m$ & ! logical & {\tt .false.}} ! By default, the partial density of states is resolved over $(l,m)$ quantum ! numbers. If {\tt dosmsum} is set to {\tt .true.} then the partial DOS is ! summed over $m$, and thus depends only on $l$. ! ! \block{dosssum}{ ! {\tt dosssum} & {\tt .true.} if the partial DOS is to be summed over spin & ! logical & {\tt .false.}} ! By default, the partial density of states for spin-polarised systems is spin ! resolved. ! ! \block{dtimes}{ ! {\tt dtimes} & time step used in time evolution run & real & $0.1$} ! See also {\tt tstime}. ! ! \block{epsband}{ ! {\tt epsband} & convergence tolerance for determining band energies & real & ! $1\times 10^{-12}$} ! APW and local-orbital linearisation energies are determined from the band ! energies. This is done by first searching upwards in energy until the radial ! wavefunction at the muffin-tin radius is zero. This is the energy at the top ! of the band, denoted $E_{\rm t}$. A downward search is now performed from ! $E_{\rm t}$ until the slope of the radial wavefunction at the muffin-tin ! radius is zero. This energy, $E_{\rm b}$, is at the bottom of the band. The ! band energy is taken as $(E_{\rm t}+E_{\rm b})/2$. If either $E_{\rm t}$ or ! $E_{\rm b}$ is not found, then the band energy is set to the default value. ! ! \block{epschg}{ ! {\tt epschg} & maximum allowed error in the calculated total charge beyond ! which a warning message will be issued & real & $1\times 10^{-3}$} ! ! \block{epsengy}{ ! {\tt epsengy} & convergence criterion for the total energy & real & ! $1\times 10^{-4}$} ! See {\tt epspot}. ! ! \block{epsforce}{ ! {\tt epsforce} & convergence tolerance for the forces during a geometry ! optimisation run & real & $2\times 10^{-3}$} ! If the mean absolute value of the atomic forces is less than {\tt epsforce} ! then the geometry optimisation run is ended. See also {\tt tasks} and ! {\tt latvopt}. ! ! \block{epslat}{ ! {\tt epslat } & vectors with lengths less than this are considered zero & ! real & $10^{-6}$} ! Sets the tolerance for determining if a vector or its components are zero. ! This is to account for any numerical error in real or reciprocal space ! vectors. ! ! \block{epsocc}{ ! {\tt epsocc} & smallest occupancy for which a state will contribute to the ! density & real & $1\times 10^{-8}$} ! ! \block{epspot}{ ! {\tt epspot} & convergence criterion for the Kohn-Sham potential and field & ! real & $1\times 10^{-6}$} ! If the RMS change in the Kohn-Sham potential and magnetic field is smaller ! than {\tt epspot} and the absolute change in the total energy is less than ! {\tt epsengy}, then the self-consistent loop is considered converged ! and exited. For geometry optimisation runs this results in the forces being ! calculated, the atomic positions updated and the loop restarted. See also ! {\tt epsengy} and {\tt maxscl}. ! ! \block{epsstress}{ ! {\tt epsstress} & convergence tolerance for the stress tensor during a ! geometry optimisation run with lattice vector relaxation & real & ! $5\times 10^{-4}$} ! See also {\tt epsforce} and {\tt latvopt}. ! ! \block{emaxelnes}{ ! {\tt emaxelnes} & maximum allowed initial-state eigenvalue for ELNES ! calculations & real & $-1.2$} ! ! \block{emaxrf}{ ! {\tt emaxrf} & energy cut-off used when calculating Kohn-Sham response ! functions & real & $10^6$} ! A typical Kohn-Sham response function is of the form ! \begin{align*} ! \chi_s({\bf r},{\bf r}',\omega) ! \equiv\frac{\delta\rho({\bf r},\omega)}{\delta v_s({\bf r}',\omega)} ! =\frac{1}{N_k}\sum_{i{\bf k},j{\bf k}'}(f_{i{\bf k}}-f_{j{\bf k}'}) ! \frac{\langle i{\bf k}|\hat{\rho}({\bf r})|j{\bf k}'\rangle ! \langle j{\bf k}'|\hat{\rho}({\bf r}')|i{\bf k}\rangle} ! {w+(\varepsilon_{i{\bf k}}-\varepsilon_{j{\bf k}'})+i\eta}, ! \end{align*} ! where $\hat{\rho}$ is the density operator; $N_k$ is the number of ! $k$-points; $\varepsilon_{i{\bf k}}$ and $f_{i{\bf k}}$ are the eigenvalues ! and occupation numbers, respectively. The variable {\tt emaxrf} is an energy ! window which limits the summation over states in the formula above so that ! $|\varepsilon_{i{\bf k}}-\varepsilon_{\rm Fermi}|<{\tt emaxrf}$. Reducing ! this can result in a faster calculation at the expense of accuracy. ! ! \block{fracinr}{ ! {\tt fracinr} & fraction of the muffin-tin radius up to which {\tt lmaxi} ! is used as the angular momentum cut-off & real & $0.01$} ! If {\tt fracinr} is negative then the fraction is determined from ! $f=\sqrt{({\tt lmaxi}+1)^2/({\tt lmaxo}+1)^2}$ in order to ! maintain a minimum density of points throughout the muffin-tin. See ! {\tt lmaxi} and {\tt lmaxo}. ! ! \block{fsmtype}{ ! {\tt fsmtype} & 0 for no fixed spin moment (FSM), 1 for total FSM, 2 for ! local muffin-tin FSM, and 3 for both total and local FSM & integer & 0} ! Set to 1, 2 or 3 for fixed spin moment calculations. To fix only the ! direction and not the magnitude set to $-1$, $-2$ or $-3$. See also ! {\tt momfix}, {\tt mommtfix}, {\tt taufsm} and {\tt spinpol}. ! ! \block{ftmtype}{ ! {\tt ftmtype} & 1 to enable a fixed tensor moment (FTM) calculation, ! 0 otherwise & integer & 0} ! If {\tt ftmtype} is $-1$ then the symmetry corresponding to the tensor ! moment is broken but no FTM calculation is performed. See {\it Phys. Rev. ! Lett.} {\bf 103}, 107202 (2009) and also {\tt tmomfix}. ! ! \block{fxclrc}{ ! {\tt fxclrc} & parameters for the dynamical long-range contribution (LRC) to ! the TDDFT exchange-correlation kernel & real(2) & $(0.0,0.0)$} ! These are the parameters $\alpha$ and $\beta$ for the kernel proposed in ! {\it Phys. Rev. B} {\bf 72}, 125203 (2005), namely ! $$ f_{xc}({\bf G},{\bf G}',{\bf q},\omega)=-\frac{\alpha+\beta\omega^2}{q^2} ! \delta_{{\bf G},{\bf G}'}\delta_{{\bf G},{\bf 0}}. $$ ! ! \block{fxctype}{ ! {\tt fxctype} & integer defining the type of exchange-correlation kernel ! $f_{\rm xc}$ & integer & $-1$} ! The acceptable values are: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! $-1$ & $f_{\rm xc}$ defined by {\tt xctype} \\ ! 0,1 & RPA ($f_{\rm xc}=0$) \\ ! 200 & Long-range contribution (LRC) kernel, S. Botti {\it et al.}, ! {\it Phys. Rev. B} {\bf 72}, 125203 (2005); see {\tt fxclrc} \\ ! 210 & `Bootstrap' kernel, S. Sharma, J. K. Dewhurst, A. Sanna and ! E. K. U. Gross, {\it Phys. Rev. Lett.} {\bf 107}, 186401 (2011) \\ ! 211 & Single iteration bootstrap ! \end{tabularx} ! ! \block{gmaxrf}{ ! {\tt gmaxrf} & maximum length of $|{\bf G}|$ for computing response ! functions & real & $3.0$} ! ! \block{gmaxvr}{ ! {\tt gmaxvr} & maximum length of $|{\bf G}|$ for expanding the interstitial ! density and potential & real & $12.0$} ! This variable has a lower bound which is enforced by the code as follows: ! $$ {\rm gmaxvr}\rightarrow\max\,({\rm gmaxvr},2\times{\rm gkmax} ! +{\rm epslat}) $$ ! See {\tt rgkmax}. ! ! \block{hdbse}{ ! {\tt hdbse} & {\tt .true.} if the direct term is to be included in the BSE ! Hamiltonian & logical & {\tt .true.}} ! ! \block{highq}{ ! {\tt highq} & {\tt .true.} if a high quality parameter set should be used & ! logical & {\tt .false.}} ! Setting this to {\tt .true.} results in some default parameters being ! changed to ensure good convergence in most situations. These changes can be ! overruled by subsequent blocks in the input file. See also {\tt vhighq}. ! ! \block{hmaxvr}{ ! {\tt hmaxvr} & maximum length of ${\bf H}$-vectors & real & $6.0$} ! The ${\bf H}$-vectors are used for calculating X-ray and magnetic structure ! factors. They are also used in linear response phonon calculations for ! expanding the density and potential in plane waves. See also {\tt gmaxvr}, ! {\tt vhmat}, {\tt reduceh}, {\tt wsfac} and {\tt hkmax}. ! ! \block{hxbse}{ ! {\tt hxbse} & {\tt .true.} if the exchange term is to be included in the BSE ! Hamiltonian & {\tt .true.}} ! ! \block{hybrid}{ ! {\tt hybrid} & {\tt .true} if a hybrid functional is to be used when running ! a Hartree-Fock calculation & logical & {\tt .false}} ! See also {\tt hybridc} and {\tt xctype}. ! ! \block{hybridc}{ ! {\tt hybridc} & hybrid functional mixing coefficient & real & $1.0$} ! ! \block{intraband}{ ! {\tt intraband} & {\tt .true.} if the intraband (Drude-like) contribution is ! to be added to the dieletric tensor & logical & {\tt .false.}} ! ! \block{isgkmax}{ ! {\tt isgkmax} & species for which the muffin-tin radius will be used for ! calculating {\tt gkmax} & integer & $-1$} ! The APW cut-off is determined from ${\tt gkmax}={\tt rgkmax}/R$. The ! variable {\tt isgkmax} determines which muffin-tin radius is to be used for ! $R$. These are the options: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! -4 & Use the largest radius \\ ! -3 & Use the smallest radius \\ ! -2 & Use the fixed value $R=2.0$ \\ ! -1 & Use the average of the muffin-tin radii \\ ! $n\ge 1$ & Use the radius of species $n$ ! \end{tabularx} ! ! \block{kstlist}{ ! {\tt kstlist(i)} & $i$th $k$-point and state pair & integer(2) & $(1,1)$} ! This is a user-defined list of $k$-point and state index pairs which are ! those used for plotting wavefunctions and writing ${\bf L}$, ${\bf S}$ and ! ${\bf J}$ expectation values. Only the first pair is used by the ! aforementioned tasks. The list should be terminated by a blank line. ! ! \block{latvopt}{ ! {\tt latvopt} & type of lattice vector optimisation to be performed during ! structural relaxation & integer & 0} ! Optimisation of the lattice vectors will be performed with ${\tt task}=2,3$ ! when ${\tt latvopt}\ne 0$. When ${\tt latvopt}=1$ the lattice vector ! optimisation will be constrained only by symmetry. Optimisation over all ! symmetry-preserving strains except isotropic scaling is performed when ! ${\tt latvopt}=2$. If ${\tt latvopt}<0$ then the optimisation will be over ! strain number $|{\tt latvopt}|$. The list of symmetric strain tensors can be ! produced with ${\tt task}=430$. By default (${\tt latvopt}=0$) no lattice ! vector optimisation is performed during structural relaxation. See also ! {\tt tau0latv} and {\tt atpopt}. ! ! \block{lmaxapw}{ ! {\tt lmaxapw} & angular momentum cut-off for the APW functions & integer & ! $8$} ! ! \block{lmaxdos}{ ! {\tt lmaxdos} & angular momentum cut-off for the partial DOS plot & ! integer & $3$} ! ! \block{lmaxi}{ ! {\tt lmaxi} & angular momentum cut-off for the muffin-tin density and ! potential on the inner part of the muffin-tin & integer & 2} ! Close to the nucleus, the density and potential is almost spherical and ! therefore the spherical harmonic expansion can be truncated a low angular ! momentum. See also {\tt fracinr}. ! ! \block{lmaxo}{ ! {\tt lmaxo} & angular momentum cut-off for the muffin-tin density and ! potential & integer & 6} ! ! \block{lmirep}{ ! {\tt lmirep} & {\tt .true.} if the $Y_{lm}$ basis is to be transformed ! into the basis of irreducible representations of the site symmetries for ! DOS plotting & logical & {\tt .true.}} ! When lmirep is set to .true., the spherical harmonic basis is transformed ! into one in which the site symmetries are block diagonal. Band characters ! determined from the density matrix expressed in this basis correspond to ! irreducible representations, and allow the partial DOS to be resolved into ! physically relevant contributions, for example $e_g$ and $t_{2g}$. ! ! \block{lorbcnd}{ ! {\tt lorbcnd} & {\tt .true.} if conduction state local-orbitals are to be ! automatically added to the basis & logical & {\tt .false.}} ! Adding these higher energy local-orbitals can improve calculations which ! rely on accurate unoccupied states, such as the response function. See also ! {\tt lorbordc}. ! ! \block{lorbordc}{ ! {\tt lorbordc} & the order of the conduction state local-orbitals & ! integer & 2} ! See {\tt lorbcnd}. ! ! \block{lradstp}{ ! {\tt lradstp} & radial step length for determining coarse radial mesh & ! integer & 4} ! Some muffin-tin functions (such as the density) are calculated on a coarse ! radial mesh and then interpolated onto a fine mesh. This is done for the ! sake of efficiency. {\tt lradstp} defines the step size in going from the ! fine to the coarse radial mesh. If it is too large, loss of precision may ! occur. ! ! \block{maxitoep}{ ! {\tt maxitoep} & maximum number of iterations when solving the exact ! exchange integral equations & integer & 200} ! See {\tt tau0oep}. ! ! \block{maxscl}{ ! {\tt maxscl } & maximum number of self-consistent loops allowed & integer & ! 200} ! This determines after how many loops the self-consistent cycle will ! terminate if the convergence criterion is not met. If {\tt maxscl} is $1$ ! then the density and potential file, {\tt STATE.OUT}, will {\bf not} be ! written to disk at the end of the loop. See {\tt epspot}. ! ! \block{mixtype}{ ! {\tt mixtype } & type of mixing required for the potential & integer & 1} ! Currently implemented are: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! 0 & Linear mixing \\ ! 1 & Adaptive linear mixing \\ ! 3 & Broyden mixing, {\it J. Phys. A: Math. Gen.} {\bf 17}, L317 (1984) ! \end{tabularx} ! ! \block{mixsdb}{ ! {\tt mixsdb} & subspace dimension for Broyden mixing & integer & 5} ! This is the number of mixing vectors which define the subspace in which the ! Hessian matrix is calculated. See {\tt mixtype} and {\tt broydpm}. ! ! \block{molecule}{ ! {\tt molecule} & {\tt .true.} if the system is an isolated molecule & ! logical & {\tt .false.}} ! If {\tt molecule} is {\tt .true.}, then the atomic positions, ${\bf a}$, ! given in the {\tt atoms} block are assumed to be in Cartesian coordinates. ! ! \block{momfix}{ ! {\tt momfix} & the desired total moment for a FSM calculation & ! real(3) & $(0.0,0.0,0.0)$} ! Note that all three components must be specified (even for collinear ! calculations). See {\tt fsmtype}, {\tt taufsm} and {\tt spinpol}. ! ! \block{mommtfix}{ ! {\tt is} & species number & integer & 0 \\ ! {\tt ia} & atom number & integer & 0 \\ ! {\tt mommtfix} & the desired muffin-tin moment for a FSM calculation & ! real(3) & $(0.0,0.0,0.0)$} ! The local muffin-tin moments are specified for a subset of atoms, with the ! list terminated with a blank line. Note that all three components must be ! specified (even for collinear calculations). See {\tt fsmtype}, {\tt taufsm} ! and {\tt spinpol}. ! ! \block{msmooth}{ ! {\tt msmooth} & amount of smoothing to be applied to the ! exchange-correlation potentials and magnetic field & integer & 0} ! Smoothing operations can be applied to the exchange-correlation potentials ! $v_{xc}$, $w_{xc}$ and the magnetic field ${\bf B}_{xc}$ in order to improve ! convergence. In the muffin-tin, this smoothing takes the form of $m$ ! successive three-point running averages applied to the radial component. In ! the interstitial region, the potential is first Fourier transformed to ! $G$-space, then a low-pass filter of the form $\exp[-2m(G/G_{\rm max})^8]$ ! is applied and the function is transformed back to real-space. ! ! \block{mstar}{ ! {\tt mstar} & value of the effective mass parameter used for adaptive ! determination of {\tt swidth} & real & $10.0$} ! See {\tt autoswidth}. ! ! \block{mustar}{ ! {\tt mustar} & Coulomb pseudopotential, $\mu^*$, used in the ! McMillan-Allen-Dynes equation & real & $0.15$} ! This is used when calculating the superconducting critical temperature with ! the formula {\it Phys. Rev. B 12, 905 (1975)} ! $$ T_c=\frac{\omega_{\rm log}}{1.2 k_B}\exp\left[\frac{-1.04(1+\lambda)} ! {\lambda-\mu^*(1+0.62\lambda)}\right], $$ ! where $\omega_{\rm log}$ is the logarithmic average frequency and $\lambda$ ! is the electron-phonon coupling constant. ! ! \block{ncbse}{ ! {\tt ncbse} & number of conduction states to be used for BSE calculations & ! integer & 3} ! See also {\tt nvbse}. ! ! \block{ndspem}{ ! {\tt ndspem} & the number of {\bf k}-vector displacements in each direction ! around {\tt vklem} when computing the numerical derivatives for the ! effective mass tensor & integer & 1} ! See {\tt deltaem} and {\tt vklem}. ! ! \block{nempty}{ ! {\tt nempty} & the number of empty states per atom and spin & real & $4.0$ } ! Defines the number of eigenstates beyond that required for charge ! neutrality. When running metals it is not known {\it a priori} how many ! states will be below the Fermi energy for each $k$-point. Setting ! {\tt nempty} greater than zero allows the additional states to act as a ! buffer in such cases. Furthermore, magnetic calculations use the ! first-variational eigenstates as a basis for setting up the ! second-variational Hamiltonian, and thus {\tt nempty} will determine the ! size of this basis set. Convergence with respect to this quantity should be ! checked. ! ! \block{ngridk}{ ! {\tt ngridk } & the $k$-point mesh sizes & integer(3) & $(1,1,1)$} ! The ${\bf k}$-vectors are generated using ! $$ {\bf k}=(\frac{i_1+v_1}{n_1},\frac{i_2+v_2}{n_2},\frac{i_3+v_3}{n_3}), $$ ! where $i_j$ runs from 0 to $n_j-1$ and $0\le v_j<1$ for $j=1,2,3$. The ! vector ${\bf v}$ is given by the variable {\tt vkloff}. See also ! {\tt reducek}. ! ! \block{ngridq}{ ! {\tt ngridq } & the phonon $q$-point mesh sizes & integer(3) & $(1,1,1)$} ! Same as {\tt ngridk}, except that this mesh is for the phonon $q$-points ! and other tasks. See also {\tt reduceq}. ! ! \block{nosource}{ ! {\tt nosource} & when set to {\tt .true.}, source fields are projected out ! of the exchange-correlation magnetic field & logical & {\tt .false.}} ! Experimental feature. ! ! \block{notes}{ ! {\tt notes(i)} & the $i$th line of the notes & string & -} ! This block allows users to add their own notes to the file {\tt INFO.OUT}. ! The block should be terminated with a blank line, and no line should exceed ! 80 characters. ! ! \block{npmae}{ ! {\tt npmae } & number or distribution of directions for MAE calculations & ! integer & $-1$} ! Automatic determination of the magnetic anisotropy energy (MAE) requires ! that the total energy is determined for a set of directions of the total ! magnetic moment. This variable controls the number or distribution of these ! directions. The convention is: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! $-4,-3,-2,-1$ & Cardinal directions given by the primitive translation ! vectors $n_1{\bf A}_1+n_2{\bf A}_2+n_3{\bf A}_3$, where ! $1\le n_i\le|{\tt npmae}|$ \\ ! 2 & Cartesian $x$ and $z$ directions \\ ! 3 & Cartesian $x$, $y$ and $z$ directions \\ ! $4,5,\ldots$ & Even distribution of {\tt npmae} directions ! \end{tabularx} ! ! \block{ntemp}{ ! {\tt ntemp} & number of temperature steps & integer & 40} ! This is the number of temperature steps to be used in the Eliashberg gap ! and thermodynamic properties calculations. ! ! \block{nvbse}{ ! {\tt nvbse} & number of valence states to be used for BSE calculations & ! integer & 2} ! See also {\tt ncbse}. ! ! \block{nwrite}{ ! {\tt nwrite} & number of self-consistent loops after which {\tt STATE.OUT} ! is to be written & integer & 0} ! Normally, the density and potentials are written to the file {\tt STATE.OUT} ! only after completion of the self-consistent loop. By setting {\tt nwrite} ! to a positive integer the file will instead be written every {\tt nwrite} ! loops. ! ! \block{nxoapwlo}{ ! {\tt nxoapwlo} & extra order of radial functions to be added to the existing ! APW and local-orbital set & integer & 0} ! Setting this variable will result in the APWs and local-orbitals for all ! species becoming higher order with corresponding increase in derivative ! matching at the muffin-tin surface. For example, setting {\tt nxoapwlo}=1 ! turns all APWs into LAPWs. ! ! \block{optcomp}{ ! {\tt optcomp} & the components of the first- or second-order optical tensor ! to be calculated & integer(3) & $(1,1,1)$} ! This selects which components of the optical tensor you would like to plot. ! Only the first two are used for the first-order tensor. Several components ! can be listed one after the other with a blank line terminating the list. ! ! \block{phwrite}{ ! {\tt nphwrt} & number of $q$-points for which phonon modes are to be found & ! integer & 1 \\ ! \hline ! {\tt vqlwrt(i)} & the $i$th $q$-point in lattice coordinates & real(3) & ! $(0.0,0.0,0.0)$} ! This is used in conjunction with {\tt task}=230. The code will write the ! phonon frequencies and eigenvectors to the file {\tt PHONON.OUT} for all the ! $q$-points in the list. The $q$-points can be anywhere in the Brillouin zone ! and do not have to lie on the mesh defined by {\tt ngridq}. Obviously, all ! the dynamical matrices have to be computed first using {\tt task}=200. ! ! \block{plot1d}{ ! {\tt nvp1d} & number of vertices & integer & 2 \\ ! {\tt npp1d} & number of plotting points & integer & 200 \\ ! \hline ! {\tt vvlp1d(i)} & lattice coordinates for vertex $i$ & real(3) & ! $(0.0,0.0,0.0)\rightarrow(1.0,1.0,1.0)$} ! Defines the path in either real or reciprocal space along which the 1D plot ! is to be produced. The user should provide {\tt nvp1d} vertices in lattice ! coordinates. ! ! \block{plot2d}{ ! {\tt vclp2d(0)} & zeroth corner (origin) & real(3) & $(0.0,0.0,0.0)$ \\ ! \hline ! {\tt vclp2d(1)} & first corner & real(3) & $(1.0,0.0,0.0)$ \\ ! \hline ! {\tt vclp2d(2)} & second corner & real(3) & $(0.0,1.0,0.0)$ \\ ! \hline ! {\tt np2d} & number of plotting points in both directions & integer(2) & ! $(40,40)$} ! Defines the corners of a parallelogram and the grid size used for producing ! 2D plots. ! ! \block{plot3d}{ ! {\tt vclp3d(0)} & zeroth corner (origin) & real(3) & $(0.0,0.0,0.0)$ \\ ! \hline ! {\tt vclp3d(1)} & first corner & real(3) & $(1.0,0.0,0.0)$ \\ ! \hline ! {\tt vclp3d(2)} & second corner & real(3) & $(0.0,1.0,0.0)$ \\ ! \hline ! {\tt vclp3d(3)} & third corner & real(3) & $(0.0,0.0,1.0)$ \\ ! \hline ! {\tt np3d} & number of plotting points each direction & integer(3) & ! $(20,20,20)$} ! Defines the corners of a box and the grid size used for producing 3D plots. ! ! \block{primcell}{ ! {\tt primcell} & {\tt .true.} if the primitive unit cell should be found ! & logical & {\tt .false.}} ! Allows the primitive unit cell to be determined automatically from the ! conventional cell. This is done by searching for lattice vectors among all ! those which connect atomic sites, and using the three shortest which produce ! a unit cell with non-zero volume. ! ! \block{pulse}{ ! {\tt n} & number of pulses & integer & - \\ ! \hline ! {\tt a0(i)} & polarisation vector (including amplitude) & real(3) & - \\ ! {\tt w(i)} & frequency & real & - \\ ! {\tt phi(i)} & phase in degrees & real & - \\ ! {\tt rc(i)} & chirp rate & real & - \\ ! {\tt t0(i)} & peak time & real & - \\ ! {\tt d(i)} & full-width at half-maximum & real & -} ! Parameters used to generate a time-dependent vector potential ${\bf A}(t)$ ! representing a laser pulse. The total vector potential is the sum of ! individual pulses and is given by the formula ! $$ {\bf A}(t)=\sum_{i=1}^n {\bf A}_0^i\exp ! \left[-(t-t_0^i)^2/2\sigma_i^2\right] ! \sin\left[w_i(t-t_0^i)+\phi_i+r_{\rm c}^i t^2/2\right], $$ ! where $\sigma=d/2\sqrt{2\ln 2}$. See also {\tt ramp}. ! ! \block{radkpt}{ ! {\tt radkpt } & radius of sphere used to determine $k$-point density & ! real & $40.0$} ! Used for the automatic determination of the $k$-point mesh. If {\tt autokpt} ! is set to {\tt .true.} then the mesh sizes will be determined by ! $n_i=R_k|{\bf B}_i|+1$, where ${\bf B}_i$ are the primitive reciprocal ! lattice vectors. ! ! \block{ramp}{ ! {\tt n} & number of ramps & integer & - \\ ! \hline ! {\tt a0(i)} & polarisation vector (including amplitude) & real(3) & - \\ ! {\tt t0(i)} & ramp start time & real & - \\ ! {\tt c1(i)} & linear coefficient of ${\bf A}(t)$ & real & - \\ ! {\tt c2(i)} & quadratic coefficient & real & -} ! Parameters used to generate a time-dependent vector potential ${\bf A}(t)$ ! representing a constant or linearly increasing electric field ! ${\bf E}(t)=-\partial{\bf A}(t)/\partial t$. The vector potential is given ! by ! $$ {\bf A}(t)=\sum_{i=1}^n {\bf A}_0^i ! \left[c_1(t-t_0)+c_2(t-t_0)^2\right]\Theta(t-t_0). $$ ! ! \block{readadu}{ ! {\tt readadu} & set to {\tt .true.} if the interpolation constant for ! DFT+$U$ should be read from file rather than calculated & logical & ! {\tt .false.}} ! When {\tt dftu}=3, the DFT+$U$ energy and potential are interpolated ! between FLL and AFM. The interpolation constant, $\alpha$, is normally ! calculated from the density matrix, but can also be read in from the file ! {\tt ALPHADU.OUT}. This allows the user to fix $\alpha$, but is also ! necessary when calculating forces, since the contribution of the potential ! of the variation of $\alpha$ with respect to the density matrix is not ! computed. See {\tt dft+u}. ! ! \block{reducebf}{ ! {\tt reducebf} & reduction factor for the external magnetic fields & real & ! $1.0$} ! After each self-consistent loop, the external magnetic fields are multiplied ! with {\tt reducebf}. This allows for a large external magnetic field at the ! start of the self-consistent loop to break spin symmetry, while at the end ! of the loop the field will be effectively zero, i.e. infinitesimal. See ! {\tt bfieldc} and {\tt atoms}. ! ! \block{reduceh}{ ! {\tt reduceh} & set to {\tt .true.} if the reciprocal ${\bf H}$-vectors ! should be reduced by the symmorphic crystal symmetries & logical & .true.} ! See {\tt hmaxvr} and {\tt vmat}. ! ! \block{reducek}{ ! {\tt reducek} & type of reduction of the $k$-point set & integer & 1} ! Types of reduction are defined by the symmetry group used: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! 0 & no reduction \\ ! 1 & reduce with full crystal symmetry group (including non-symmorphic ! symmetries) \\ ! 2 & reduce with symmorphic symmetries only ! \end{tabularx} ! \vskip 6pt ! See also {\tt ngridk} and {\tt vkloff}. ! ! \block{reduceq}{ ! {\tt reduceq} & type of reduction of the $q$-point set & integer & 1} ! See {\tt reducek} and {\tt ngridq}. ! ! \block{rgkmax}{ ! {\tt rgkmax} & $R^{\rm MT}_{\rm min}\times\max\{|{\bf G}+{\bf k}|\}$ & ! real & $7.0$} ! This sets the maximum length for the ${\bf G}+{\bf k}$ vectors, defined as ! {\tt rgkmax} divided by the average muffin-tin radius. See {\tt isgkmax}. ! ! \block{rotavec}{ ! {\tt axang} & axis-angle representation of lattice vector rotation & ! real(4) & $(0.0,0.0,0.0,0.0)$} ! This determines the rotation matrix which is applied to the lattice vectors ! prior to any calculation. The first three components specify the axis and ! the last component is the angle in degrees. The `right-hand rule' convention ! is followed. ! ! \block{scale}{ ! {\tt scale } & lattice vector scaling factor & real & $1.0$} ! Scaling factor for all three lattice vectors. Applied in conjunction with ! {\tt scale1}, {\tt scale2} and {\tt scale3}. ! ! \block{scale1/2/3}{ ! {\tt scale1/2/3 } & separate scaling factors for each lattice vector & ! real & $1.0$} ! ! \block{scissor}{ ! {\tt scissor} & the scissor correction & real & $0.0$} ! This is the scissor shift applied to states above the Fermi energy ! {\it Phys. Rev. B} {\bf 43}, 4187 (1991). Affects optics calculations only. ! ! \block{scrpath}{ ! {\tt scrpath} & scratch space path & string & null} ! This is the scratch space path where the eigenvector files {\tt EVALFV.OUT} ! and {\tt EVALSV.OUT} will be written. If the run directory is accessed via a ! network then {\tt scrpath} can be set to a directory on the local disk, for ! example {\tt /tmp/}. Note that the forward slash {\tt /} at the end of the ! path must be included. ! ! \block{socscf}{ ! {\tt socscf} & scaling factor for the spin-orbit coupling term in the ! Hamiltonian & real & $1.0$} ! This can be used to enhance the effect of spin-orbit coupling in order to ! accurately determine the magnetic anisotropy energy (MAE). ! ! \block{spincore}{ ! {\tt spincore} & set to {\tt .true.} if the core should be spin-polarised ! & logical & {\tt .false.}} ! ! \block{spinorb}{ ! {\tt spinorb} & set to {\tt .true.} if a spin-orbit coupling is required ! & logical & {\tt .false.}} ! If {\tt spinorb} is {\tt .true.}, then a $\boldsymbol\sigma\cdot{\bf L}$ ! term is added to the second-variational Hamiltonian. See {\tt spinpol}. ! ! \block{spinpol}{ ! {\tt spinpol} & set to {\tt .true.} if a spin-polarised calculation is ! required & logical & {\tt .false.}} ! If {\tt spinpol} is {\tt .true.}, then the spin-polarised Hamiltonian is ! solved as a second-variational step using two-component spinors in the ! Kohn-Sham magnetic field. The first variational scalar wavefunctions are ! used as a basis for setting this Hamiltonian. ! ! \block{spinsprl}{ ! {\tt spinsprl} & set to {\tt .true.} if a spin-spiral calculation is ! required & logical & {\tt .false.}} ! Experimental feature for the calculation of spin-spiral states. See ! {\tt vqlss} for details. ! ! \block{sppath}{ ! {\tt sppath} & path where the species files can be found & string & null} ! Note that the forward slash {\tt /} at the end of the path must be included. ! ! \block{ssdph}{ ! {\tt ssdph} & set to {\tt .true.} if a complex de-phasing factor is to be ! used in spin-spiral calculations & logical & {\tt .true.}} ! If this is {\tt .true.} then spin-spiral wavefunctions in each muffin-tin at ! position ${\bf r}_{\alpha}$ are de-phased by the matrix ! $$ \begin{pmatrix} e^{-i{\bf q}\cdot{\bf r}_{\alpha}/2} & 0 \\ ! 0 & e^{i{\bf q}\cdot{\bf r}_{\alpha}/2} \end{pmatrix}. $$ ! In simple situations, this has the advantage of producing magnon dynamical ! matrices which are already in diagonal form. This option should be used with ! care, and a full understanding of the spin-spiral configuration is required. ! See {\tt spinsprl}. ! ! \block{stype}{ ! {\tt stype} & integer defining the type of smearing to be used & integer & ! $3$} ! A smooth approximation to the Dirac delta function is needed to compute the ! occupancies of the Kohn-Sham states. The variable {\tt swidth} determines ! the width of the approximate delta function. Currently implemented are ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! 0 & Gaussian \\ ! 1 & Methfessel-Paxton order 1, Phys. Rev. B {\bf 40}, 3616 (1989) \\ ! 2 & Methfessel-Paxton order 2 \\ ! 3 & Fermi-Dirac ! \end{tabularx} ! \vskip 6pt ! See also {\tt autoswidth}, {\tt swidth} and {\tt tempk}. ! ! \block{swidth}{ ! {\tt swidth} & width of the smooth approximation to the Dirac delta ! function & real & $0.001$} ! See {\tt stype} for details and the variable {\tt tempk}. ! ! \newpage ! \block{tasks}{ ! {\tt task(i) } & the $i$th task & integer & $-1$} ! A list of tasks for the code to perform sequentially. The list should be ! terminated with a blank line. Each task has an associated integer as ! follows: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! -1 & Write out the version number of the code. \\ ! 0 & Ground state run starting from the atomic densities. \\ ! 1 & Resumption of ground-state run using density in {\tt STATE.OUT}. \\ ! 2 & Geometry optimisation run starting from the atomic densities, with ! atomic positions written to {\tt GEOMETRY.OUT}. \\ ! 3 & Resumption of geometry optimisation run using density in {\tt STATE.OUT} ! but with positions from {\tt elk.in}. \\ ! 5 & Ground state Hartree-Fock run. \\ ! 10 & Total, partial and interstitial density of states (DOS). \\ ! 14 & Plots the smooth Dirac delta and Heaviside step functions used by the ! code to calculate occupancies. \\ ! 15 & Output ${\bf L}$, ${\bf S}$ and ${\bf J}$ total expectation values. \\ ! 16 & Output ${\bf L}$, ${\bf S}$ and ${\bf J}$ expectation values for each ! $k$-point and state in {\tt kstlist}. \\ ! 20 & Band structure plot. \\ ! 21 & Band structure plot which includes total and angular momentum ! characters for every atom. \\ ! 22 & Band structure plot which includes $(l,m)$ character for every atom. \\ ! 23 & Band structure plot which includes spin character for every atom. \\ ! 25 & Compute the effective mass tensor at the $k$-point given by ! {\tt vklem}. \\ ! 31, 32, 33 & 1/2/3D charge density plot. \\ ! 41, 42, 43 & 1/2/3D exchange-correlation and Coulomb potential plots. \\ ! 51, 52, 53 & 1/2/3D electron localisation function (ELF) plot. \\ ! 61, 62, 63 & 1/2/3D wavefunction plot: ! $\left|\Psi_{i{\bf k}}({\bf r})\right|^2$. \\ ! 65 & Write the core wavefunctions to file for plotting. \\ ! 71, 72, 73 & 1/2/3D plot of magnetisation vector field, ! ${\bf m}({\bf r})$. \\ ! 81, 82, 83 & 1/2/3D plot of exchange-correlation magnetic vector field, ! ${\bf B}_{\rm xc}({\bf r})$. \\ ! 91, 92, 93 & 1/2/3D plot of $\nabla\cdot{\bf B}_{\rm xc}({\bf r})$. \\ ! 100 & 3D Fermi surface plot using the scalar product ! $p({\bf k})=\Pi_i(\epsilon_{i{\bf k}}-\epsilon_{\rm F})$. \\ ! 101 & 3D Fermi surface plot using separate bands (minus the Fermi ! energy). \\ ! 102 & 3D Fermi surface which can be plotted with XCrysDen. \\ ! 105 & 3D nesting function plot. \\ ! 110 & Calculation of M\"{o}ssbauer contact charge densities and magnetic ! fields at the nuclear sites. \\ ! 115 & Calculation of the electric field gradient (EFG) at the nuclear ! sites. \\ ! 120 & Output of the momentum matrix elements ! $\langle\Psi_{i{\bf k}}|-i\nabla|\Psi_{j{\bf k}}\rangle$. \\ ! 121 & Linear optical dielectric response tensor calculated within the random ! phase approximation (RPA) and in the $q\rightarrow 0$ limit, with no ! microscopic contributions. \\ ! 122 & Magneto optical Kerr effect (MOKE) angle. \\ ! 125 & Non-linear optical second harmonic generation. ! \end{tabularx} ! ! \begin{tabularx}{\textwidth}[h]{lX} ! 130 & Output matrix elements of the type ! $\langle\Psi_{i{\bf k+q}}|\exp[i({\bf G+q})\cdot{\bf r}]| ! \Psi_{j{\bf k}}\rangle$. \\ ! 135 & Output all wavefunctions expanded in the plane wave basis up to a ! cut-off defined by {\tt rgkmax}. \\ ! 140 & Energy loss near edge structure (ELNES). \\ ! 141, 142, 143 & 1/2/3D plot of the electric field ! ${\bf E}({\bf r})\equiv\nabla V_{\rm C}({\bf r})$. \\ ! 151, 152, 153 & 1/2/3D plot of ! ${\bf m}({\bf r})\times{\bf B}_{\rm xc}({\bf r})$. \\ ! 162 & Scanning-tunneling microscopy (STM) image. \\ ! 180 & Generate the RPA inverse dielectric function with local contributions ! and write it to file. \\ ! 185 & Write the Bethe-Salpeter equation (BSE) Hamiltonian to file. \\ ! 186 & Diagonalise the BSE Hamiltonian and write the eigenvectors and ! eigenvalues to file. \\ ! 187 & Output the BSE dielectric response function. \\ ! 190 & Write the atomic geometry to file for plotting with XCrySDen and ! V\_Sim. \\ ! 195 & Calculation of X-ray density structure factors. \\ ! 196 & Calculation of magnetic structure factors. \\ ! 200 & Calculation of phonon dynamical matrices on a $q$-point set defined by ! {\tt ngridq} using the supercell method. \\ ! 202 & Phonon dry run: just produce a set of empty DYN files. \\ ! 205 & Calculation of phonon dynamical matrices using density functional ! perturbation theory (DFPT). \\ ! 210 & Phonon density of states. \\ ! 220 & Phonon dispersion plot. \\ ! 230 & Phonon frequencies and eigenvectors for an arbitrary $q$-point. \\ ! 240, 241 & Generate the ${\bf q}$-dependent phonon linewidths and ! electron-phonon coupling constants and write them to file. \\ ! 245 & Phonon linewidths plot. \\ ! 250 & Eliashberg function $\alpha^2F(\omega)$, electron-phonon coupling ! constant $\lambda$, and the McMillan-Allen-Dynes critical temperature ! $T_c$. \\ ! 300 & Reduced density matrix functional theory (RDMFT) calculation. \\ ! 320 & Time-dependent density functional theory (TDDFT) calculation of the ! dielectric response function including microscopic contributions. \\ ! 330, 331 & TDDFT calculation of the spin-polarised response function for ! arbitrary ${\bf q}$-vectors. Task 331 writes the entire response function ! $\overleftrightarrow{\chi}({\bf G},{\bf G}',q,\omega)$ to file. \\ ! 400 & Calculation of tensor moments and corresponding DFT+$U$ Hartree-Fock ! energy contributions. \\ ! 450 & Generates a laser pulse in the form of a time-dependent vector ! potential ${\bf A}(t)$ and writes it to AFIELDT.OUT. \\ ! 460 & Time evolution run using TDDFT under the influence of ${\bf A}(t)$. ! \end{tabularx} ! ! \block{tau0atp}{ ! {\tt tau0atp} & the step size to be used for atomic position optimisation & ! real & $0.25$} ! The position of atom $\alpha$ is updated on step $m$ of a geometry ! optimisation run using ! $$ {\bf r}_{\alpha}^{m+1}={\bf r}_{\alpha}^m+\tau_{\alpha}^m ! \left({\bf F}_{\alpha}^m+{\bf F}_{\alpha}^{m-1}\right), $$ ! where $\tau_{\alpha}$ is set to {\tt tau0atp} for $m=0$, and incremented by ! the same amount if the atom is moving in the same direction between steps. ! If the direction changes then $\tau_{\alpha}$ is reset to {\tt tau0atp}. ! ! \block{tau0latv}{ ! {\tt tau0latv} & the step size to be used for lattice vector optimisation & ! real & $0.25$} ! This parameter is used for lattice vector optimisation in a procedure ! identical to that for atomic position optimisation. See {\tt tau0atp} and ! {\tt latvopt}. ! ! \block{tauoep}{ ! {\tt tauoep} & step length for the OEP iterative solver & real & $0.01$} ! The optimised effective potential is determined using an interative method ! [Phys. Rev. Lett. 98, 196405 (2007)]. This variable sets the step length ! descibed in the article. See also {\tt maxitoep}. ! ! \block{taufsm}{ ! {\tt taufsm} & the step size to be used when finding the effective magnetic ! field in fixed spin moment calculations & real & $0.01$} ! An effective magnetic field, ${\bf B}_{\rm FSM}$, is required for fixing the ! spin moment to a given value, ${\bf M}_{\rm FSM}$. This is found by adding a ! vector to the field which is proportional to the difference between the ! moment calculated in the $i$th self-consistent loop and the required moment: ! $$ {\bf B}_{\rm FSM}^{i+1}={\bf B}_{\rm FSM}^i+\lambda\left({\bf M}^i ! -{\bf M}_{\rm FSM}\right), $$ ! where $\lambda$ is proportional to {\tt taufsm}. See also {\tt fsmtype}, ! {\tt momfix} and {\tt spinpol}. ! ! \block{tempk}{ ! {\tt tempk} & temperature $T$ of the electronic system in kelvin & real & -} ! Assigning a value to this variable sets {\tt stype} to 3 (Fermi-Dirac) and ! the smearing width to $k_{\rm B}T$. ! ! \block{tforce}{ ! {\tt tforce} & set to {\tt .true.} if the force should be calculated at the ! end of the self-consistent cycle & logical & {\tt .false.}} ! This variable is automatically set to {\tt .true.} when performing geometry ! optimisation. ! ! \block{tefvit}{ ! {\tt tefvit} & set to {\tt .true.} if the first-variational eigenvalue ! equation should be solved iteratively & logical & {\tt .false.}} ! ! \block{tefvr}{ ! {\tt tefvr} & set to {\tt .true.} if a real symmetric eigenvalue solver ! should be used for crystals which have inversion symmetry & logical & ! {\tt .true.}} ! For crystals with inversion symmetry, the first-variational Hamiltonian and ! overlap matrices can be made real by using appropriate transformations. In ! this case, a real symmetric (instead of complex Hermitian) eigenvalue solver ! can be used. This makes the calculation about three times faster. ! ! \block{tmomfix}{ ! {\tt ntmfix} & number of tensor moments (TM) to be fixed & integer & 0 \\ ! \hline ! {\tt is(i)} & species number for entry $i$ & integer & - \\ ! {\tt ia(i)} & atom number & integer & - \\ ! {\tt (l, n)(i)} & $l$ and $n$ indices of TM & integer & - \\ ! \hline ! {\tt (k, p, x, y)(i)} or & & & \\ ! {\tt (k, p, r, t)(i)} & indices for the 2-index or 3-index TM, ! respectively & integer & - \\ ! \hline ! {\tt z(i)} & complex TM value & complex & - \\ ! \hline ! {\tt p(i)} & parity of spatial rotation & integer & - \\ ! {\tt aspl(i)} & Euler angles of spatial rotation & real(3) & - \\ ! {\tt aspn(i)} & Euler angles of spin rotation & real(3) & - } ! This block sets up the fixed tensor moment (FTM). There should be as many ! TM entries as {\tt ntmfix}. See {\it Phys. Rev. Lett.} {\bf 103}, 107202 ! (2009) for the tensor moment indexing convention. This is a highly ! complicated feature of the code, and should only be attempted with a full ! understanding of tensor moments. ! ! \block{tmwrite}{ ! {\tt tmwrite} & set to {\tt .true.} if the tensor moments and the ! corresponding decomposition of DFT+$U$ energy should be calculated ! at every loop of the self-consistent cycle & logical & {\tt .false.}} ! This variable is useful to check the convergence of the tensor moments in ! DFT+$U$ caculations. Alternatively, with {\tt task} equal to 400, one can ! calculate the tensor moments and corresponding DFT+$U$ energy contributions ! from a given density matrix and set of Slater parameters at the end of the ! self-consistent cycle. ! ! \block{tsediag}{ ! {\tt tsediag} & set to {\tt .true.} if the self-energy matrix should be ! treated as diagonal & logical & {\tt .true.}} ! When this variable is {\tt .true.}, the self-energy used in a $GW$ ! calculation $\Sigma_{ij}({\bf k},\omega)$ is taken to be diagonal in the ! Kohn-Sham state indices $i$ and $j$. When {\tt tsediag} is {\tt .false.}, ! the entire matrix is used. See also {\tt twdiag}. ! ! \block{tshift}{ ! {\tt tshift} & set to {\tt .true.} if the crystal can be shifted so that the ! atom closest to the origin is exactly at the origin & ! logical & {\tt .true.}} ! ! \block{tstime}{ ! {\tt tstime} & total simulation time of time evolution run & real & ! $1000.0$} ! See also {\tt dtimes}. ! ! \block{twdiag}{ ! {\tt twdiag} & set to {\tt .true.} if the screened interaction matrix should ! be treated as diagonal & logical & {\tt .false.}} ! When this variable is {\tt .true.}, the screened interaction used in a $GW$ ! calculation $W({\bf G},{\bf G}',{\bf q},\omega)$ is taken to be diagonal in ! the plane wave indices ${\bf G}$ and ${\bf G}'$. See also {\tt tsediag}. ! ! \block{vhmat}{ ! {\tt vhmat(1)} & matrix row 1 & real(3) & $(1.0,0.0,0.0)$ \\ ! \hline ! {\tt vhmat(2)} & matrix row 2 & real(3) & $(0.0,1.0,0.0)$ \\ ! \hline ! {\tt vhmat(3)} & matrix row 3 & real(3) & $(0.0,0.0,1.0)$} ! This is the transformation matrix $M$ applied to every vector $\bf H$ in the ! structure factor output files {\tt SFACRHO.OUT} and {\tt SFACMAG.OUT}. It is ! stored in the usual row-column setting and applied directly as ! ${\bf H}'=M{\bf H}$ to every vector but {\em only} when writing the output ! files. See also {\tt hmaxvr} and {\tt reduceh}. ! ! \block{vhighq}{ ! {\tt vhighq} & {\tt .true.} if a very high quality parameter set should be ! used & logical & {\tt .false.}} ! Setting this to {\tt .true.} results in some default parameters being ! changed to ensure excellent convergence in most situations. See also ! {\tt highq}. ! ! \block{vklem}{ ! {\tt vklem} & the $k$-point in lattice coordinates at which to compute the ! effective mass tensors & real(3) & $(0.0,0.0,0.0)$} ! See {\tt deltaem} and {\tt ndspem}. ! ! \block{vkloff}{ ! {\tt vkloff } & the $k$-point offset vector in lattice coordinates & ! real(3) & $(0.0,0.0,0.0)$} ! See {\tt ngridk}. ! ! \block{vqlss}{ ! {\tt vqlss} & the ${\bf q}$-vector of the spin-spiral state in lattice ! coordinates & real(3) & $(0.0,0.0,0.0)$} ! Spin-spirals arise from spinor states assumed to be of the form ! $$ \Psi^{\bf q}_{\bf k}({\bf r})= ! \left( \begin{array}{c} ! U^{{\bf q}\uparrow}_{\bf k}({\bf r})e^{i({\bf k+q/2})\cdot{\bf r}} \\ ! U^{{\bf q}\downarrow}_{\bf k}({\bf r})e^{i({\bf k-q/2})\cdot{\bf r}} \\ ! \end{array} \right). $$ ! These are determined using a second-variational approach, and give rise to a ! magnetisation density of the form ! $$ {\bf m}^{\bf q}({\bf r})=(m_x({\bf r})\cos({\bf q \cdot r}), ! m_y({\bf r})\sin({\bf q \cdot r}),m_z({\bf r})), $$ ! where $m_x$, $m_y$ and $m_z$ are lattice periodic. See also {\tt spinsprl}. ! ! \block{wmaxgw}{ ! {\tt wmaxgw} & maximum Matsubara frequency for $GW$ calculations & real & ! $-5.0$} ! This defines the cut-off of the Matsubara frequencies on the imaginary ! axis for calculating the $GW$ self-energy and solving the Dyson equation. ! If this number is negative then the cut-off is taken to be ! $|{\tt wmaxgw}|\times\Delta\epsilon$, where $\Delta\epsilon$ is the ! difference between the largest and smallest Kohn-Sham valence eigenvalues. ! ! \block{wplot}{ ! {\tt nwplot} & number of frequency/energy points in the DOS or optics plot & ! integer & $500$ \\ ! {\tt ngrkf} & fine $k$-point grid size used for integrating functions in the ! Brillouin zone & integer & $100$ \\ ! {\tt nswplot} & level of smoothing applied to DOS/optics output & integer & ! $1$ \\ ! \hline ! {\tt wplot} & frequency/energy window for the DOS or optics plot & real(2) & ! $(-0.5,0.5)$} ! DOS and optics plots require integrals of the kind ! $$ g(\omega_i)=\frac{\Omega}{(2\pi)^3}\int_{\rm BZ} f({\bf k}) ! \delta(\omega_i-e({\bf k}))d{\bf k}. $$ ! These are calculated by first interpolating the functions $e({\bf k})$ and ! $f({\bf k})$ with the trilinear method on a much finer mesh whose size is ! determined by {\tt ngrkf}. Then the $\omega$-dependent histogram of the ! integrand is accumulated over the fine mesh. If the output function is noisy ! then either {\tt ngrkf} should be increased or {\tt nwplot} decreased. ! Alternatively, the output function can be artificially smoothed up to a ! level given by {\tt nswplot}. This is the number of successive 3-point ! averages to be applied to the function $g$. ! ! \block{wsfac}{ ! {\tt wsfac} & energy window to be used when calculating density or magnetic ! structure factors & real(2) & $(-10^6,10^6)$} ! Only those states with eigenvalues within this window will contribute to the ! density or magnetisation. See also {\tt hmaxvr} and {\tt vhmat}. ! ! \block{xctype}{ ! {\tt xctype} & integers defining the type of exchange-correlation functional ! to be used & integer(3) & $(3,0,0)$} ! Normally only the first value is used to define the functional type. The ! other value may be used for external libraries. Currently implemented are: ! \vskip 6pt ! \begin{tabularx}{\textwidth}[h]{lX} ! $-n$ & Exact-exchange optimised effective potential (EXX-OEP) method with ! correlation energy and potential given by functional number $n$ \\ ! 1 & No exchange-correlation funtional ($E_{\rm xc}\equiv 0$) \\ ! 2 & LDA, Perdew-Zunger/Ceperley-Alder, {\it Phys. Rev. B} {\bf 23}, 5048 ! (1981) \\ ! 3 & LSDA, Perdew-Wang/Ceperley-Alder, {\it Phys. Rev. B} {\bf 45}, 13244 ! (1992) \\ ! 4 & LDA, X-alpha approximation, J. C. Slater, {\it Phys. Rev.} {\bf 81}, 385 ! (1951) \\ ! 5 & LSDA, von Barth-Hedin, {\it J. Phys. C} {\bf 5}, 1629 (1972) \\ ! 20 & GGA, Perdew-Burke-Ernzerhof, {\it Phys. Rev. Lett.} {\bf 77}, 3865 ! (1996) \\ ! 21 & GGA, Revised PBE, Zhang-Yang, {\it Phys. Rev. Lett.} {\bf 80}, 890 ! (1998) \\ ! 22 & GGA, PBEsol, Phys. Rev. Lett. 100, 136406 (2008) \\ ! 26 & GGA, Wu-Cohen exchange (WC06) with PBE correlation, {\it Phys. Rev. B} ! {\bf 73}, 235116 (2006) \\ ! 30 & GGA, Armiento-Mattsson (AM05) spin-unpolarised functional, ! {\it Phys. Rev. B} {\bf 72}, 085108 (2005) \\ ! 100 & Libxc functionals; the second and third values of {\tt xctype} define ! the exchange and correlation functionals in the Libxc library, ! respectively \\ ! \end{tabularx} ! ! \section{Contributing to Elk} ! Please bear in mind when writing code for the Elk project that it should be ! an exercise in physics and not software engineering. All code should ! therefore be kept as simple and concise as possible, and above all it should ! be easy for anyone to locate and follow the Fortran representation of the ! original mathematics. We would also appreciate the following conventions ! being adhered to: ! \begin{itemize} ! \item Strict Fortran 2003 should be used. Features which are marked as ! obsolescent in Fortran 2003 should be avoided. These include assigned ! format specifiers, labeled do-loops, computed goto statements and statement ! functions. ! \item Modules should be used in place of common blocks for declaring ! global variables. Use the existing modules to declare new global variables. ! \item Any code should be written in lower-case free form style, starting ! from column one. Try and keep the length of each line to fewer than 80 ! characters using the \& character for line continuation. ! \item Every function or subroutine, no matter how small, should be in its ! own file named {\tt routine.f90}, where {\tt routine} is the function or ! subroutine name. It is recommended that the routines are named so as to ! make their purpose apparent from the name alone. ! \item Use of {\tt implicit none} is mandatory. Remember also to define the ! {\tt intent} of any passed arguments. ! \item Local allocatable arrays must be deallocated on exit of the routine to ! prevent memory leakage. Use of automatic arrays should be limited to arrays ! of small size. ! \item Every function or subroutine must be documented with the Protex source ! code documentation system. This should include a short \LaTeX\ description ! of the algorithms and methods involved. Equations which need to be ! referenced should be labeled with {\tt routine\_1}, {\tt routine\_2}, etc. ! The authorship of each new piece of code or modification should be ! indicated in the {\tt REVISION HISTORY} part of the header. See the Protex ! documentation for details. ! \item Ensure as much as possible that a routine will terminate the program ! when given improper input instead of continuing with erroneous results. ! Specifically, functions should have a well-defined domain for which they ! return accurate results. Input outside that domain should result in an ! error message and termination. ! \item Report errors prior to termination with a short description, for ! example: ! \begin{verbatim} ! write(*,*) ! write(*,'("Error(readinput): natoms <= 0 : ",I8)') natoms(is) ! write(*,'(" for species ",I4)') is ! write(*,*) ! stop ! \end{verbatim} ! \item Wherever possible, real numbers outputted as ASCII data should be ! formatted with the {\tt G18.10} specifier. ! \item Avoid redundant or repeated code: check to see if the routine you need ! already exists, before writing a new one. ! \item All reading in of ASCII data should be done in the subroutine ! {\tt readinput}. For binary data, separate routines for reading and writing ! should be used (for example {\tt writestate} and {\tt readstate}). ! \item Input filenames should be in lowercase and have the extension ! {\tt .in} . All output filenames should be in uppercase with the extension ! {\tt .OUT} . ! \item All internal units should be atomic. Input and output units should be ! atomic by default and clearly stated otherwise. Rydbergs should not be used ! under any circumstances. ! \end{itemize} ! \subsection{Licensing} ! Routines which constitute the main part of the code are released under the ! GNU General Public License (GPL). Library routines are released under the ! less restrictive GNU Lesser General Public License (LGPL). Both licenses ! are contained in the file {\tt COPYING}. Any contribution to the code must ! be licensed at the authors' discretion under either the GPL or LGPL. ! Author(s) of the code retain the copyrights. Copyright and (L)GPL ! information must be included at the beginning of every file, and no code ! will be accepted without this. ! !EOI elk-6.3.2/src/PaxHeaders.21352/zbsht.f900000644000000000000000000000013213543334734014300 xustar0030 mtime=1569569244.334642133 30 atime=1569569240.461644607 30 ctime=1569569244.334642133 elk-6.3.2/src/zbsht.f900000644002504400250440000000262113543334734016350 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zbsht ! !INTERFACE: subroutine zbsht(nr,nri,zfmt1,zfmt2) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of points on the inner part of the muffin-tin (in,integer) ! zfmt1 : input complex muffin-tin function in spherical harmonics ! (in,complex(*)) ! zfmt2 : output complex muffin-tin function in spherical coordinates ! (out,complex(*)) ! !DESCRIPTION: ! Performs a backward spherical harmonic transform (SHT) on a complex ! muffin-tin function expressed in spherical harmonics to obtain a function in ! spherical coordinates. See also {\tt genshtmat}. ! ! !REVISION HISTORY: ! Created October 2013 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri complex(8), intent(in) :: zfmt1(*) complex(8), intent(out) :: zfmt2(*) ! local variables integer nro,i ! transform the inner part of the muffin-tin call zgemm('N','N',lmmaxi,nri,lmmaxi,zone,zbshti,lmmaxi,zfmt1,lmmaxi,zzero, & zfmt2,lmmaxi) ! transform the outer part of the muffin-tin nro=nr-nri i=lmmaxi*nri+1 call zgemm('N','N',lmmaxo,nro,lmmaxo,zone,zbshto,lmmaxo,zfmt1(i),lmmaxo,zzero, & zfmt2(i),lmmaxo) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zfsht.f900000644000000000000000000000013013543334734014302 xustar0029 mtime=1569569244.33964213 30 atime=1569569240.466644604 29 ctime=1569569244.33964213 elk-6.3.2/src/zfsht.f900000644002504400250440000000261713543334734016361 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zfsht ! !INTERFACE: subroutine zfsht(nr,nri,zfmt1,zfmt2) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of points on the inner part of the muffin-tin (in,integer) ! zfmt1 : input complex muffin-tin function in spherical coordinates ! (in,complex(*)) ! zfmt2 : output complex muffin-tin function in spherical harmonics ! (out,complex(*)) ! !DESCRIPTION: ! Performs a forward spherical harmonic transform (SHT) on a complex ! muffin-tin function in spherical coordinates to obtain a function expressed ! in spherical harmonics. See also {\tt genshtmat}. ! !REVISION HISTORY: ! Created October 2013 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri complex(8), intent(in) :: zfmt1(*) complex(8), intent(out) :: zfmt2(*) ! local variables integer nro,i ! transform the inner part of the muffin-tin call zgemm('N','N',lmmaxi,nri,lmmaxi,zone,zfshti,lmmaxi,zfmt1,lmmaxi,zzero, & zfmt2,lmmaxi) ! transform the outer part of the muffin-tin nro=nr-nri i=lmmaxi*nri+1 call zgemm('N','N',lmmaxo,nro,lmmaxo,zone,zfshto,lmmaxo,zfmt1(i),lmmaxo,zzero, & zfmt2(i),lmmaxo) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rbsht.f900000644000000000000000000000013213543334734014270 xustar0030 mtime=1569569244.343642127 30 atime=1569569240.470644601 30 ctime=1569569244.343642127 elk-6.3.2/src/rbsht.f900000644002504400250440000000132213543334734016335 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rbsht(nr,nri,rfmt1,rfmt2) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: rfmt1(*) real(8), intent(out) :: rfmt2(*) ! local variables integer nro,i ! transform the inner part of the muffin-tin call dgemm('N','N',lmmaxi,nri,lmmaxi,1.d0,rbshti,lmmaxi,rfmt1,lmmaxi,0.d0, & rfmt2,lmmaxi) ! transform the outer part of the muffin-tin nro=nr-nri i=lmmaxi*nri+1 call dgemm('N','N',lmmaxo,nro,lmmaxo,1.d0,rbshto,lmmaxo,rfmt1(i),lmmaxo,0.d0, & rfmt2(i),lmmaxo) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfsht.f900000644000000000000000000000013213543334734014274 xustar0030 mtime=1569569244.347642125 30 atime=1569569240.474644599 30 ctime=1569569244.347642125 elk-6.3.2/src/rfsht.f900000644002504400250440000000132213543334734016341 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfsht(nr,nri,rfmt1,rfmt2) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: rfmt1(*) real(8), intent(out) :: rfmt2(*) ! local variables integer nro,i ! transform the inner part of the muffin-tin call dgemm('N','N',lmmaxi,nri,lmmaxi,1.d0,rfshti,lmmaxi,rfmt1,lmmaxi,0.d0, & rfmt2,lmmaxi) ! transform the outer part of the muffin-tin nro=nr-nri i=lmmaxi*nri+1 call dgemm('N','N',lmmaxo,nro,lmmaxo,1.d0,rfshto,lmmaxo,rfmt1(i),lmmaxo,0.d0, & rfmt2(i),lmmaxo) return end subroutine elk-6.3.2/src/PaxHeaders.21352/projsbf.f900000644000000000000000000000013213543334734014613 xustar0030 mtime=1569569244.352642122 30 atime=1569569240.479644595 30 ctime=1569569244.352642122 elk-6.3.2/src/projsbf.f900000644002504400250440000000372713543334734016673 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine projsbf use modmain implicit none ! local variables integer idm,is,ias,np real(8) t1 ! allocatable arrays real(8), allocatable :: rfmt(:,:),rfir(:) real(8), allocatable :: grfmt(:,:,:),grfir(:,:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) allocate(rfmt(npmtmax,natmtot),rfir(ngtot)) allocate(grfmt(npmtmax,natmtot,3),grfir(ngtot,3)) allocate(zrhomt(npmtmax,natmtot),zrhoir(ngtot)) allocate(zvclmt(npmtmax,natmtot),zvclir(ngtot)) ! compute the divergence of B_xc rfmt(:,:)=0.d0 rfir(:)=0.d0 do idm=1,3 call gradrf(bxcmt(:,:,idm),bxcir(:,idm),grfmt,grfir) do ias=1,natmtot is=idxis(ias) np=npmt(is) rfmt(1:np,ias)=rfmt(1:np,ias)+grfmt(1:np,ias,idm) end do rfir(:)=rfir(:)+grfir(:,idm) end do ! convert real muffin-tin divergence to complex spherical harmonic expansion do ias=1,natmtot is=idxis(ias) call rtozfmt(nrmt(is),nrmti(is),rfmt(:,ias),zrhomt(:,ias)) end do ! store real interstitial divergence in a complex array zrhoir(:)=rfir(:) ! solve the complex Poisson's equation call genzvclmt(nrmt,nrmti,nrmtmax,rlmt,wprmt,npmtmax,zrhomt,zvclmt) call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gc,gclg, & ngvec,jlgrmt,ylmg,sfacg,zrhoir,npmtmax,zvclmt,zvclir) ! convert complex muffin-tin potential to real spherical harmonic expansion do ias=1,natmtot is=idxis(ias) call ztorfmt(nrmt(is),nrmti(is),zvclmt(:,ias),rfmt(:,ias)) end do ! store complex interstitial potential in real array rfir(:)=dble(zvclir(:)) ! compute the gradient call gradrf(rfmt,rfir,grfmt,grfir) ! add gradient over 4*pi to existing B_xc t1=1.d0/fourpi bxcmt(:,:,:)=bxcmt(:,:,:)+t1*grfmt(:,:,:) bxcir(:,:)=bxcir(:,:)+t1*grfir(:,:) deallocate(rfmt,rfir,grfmt,grfir) deallocate(zrhomt,zrhoir,zvclmt,zvclir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/fsmooth.f900000644000000000000000000000013213543334734014625 xustar0030 mtime=1569569244.356642119 30 atime=1569569240.483644593 30 ctime=1569569244.356642119 elk-6.3.2/src/fsmooth.f900000644002504400250440000000165213543334734016700 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2005 J. K. Dewhurst and S. Sharma. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: fsmooth ! !INTERFACE: pure subroutine fsmooth(m,n,f) ! !INPUT/OUTPUT PARAMETERS: ! m : number of 3-point running averages to perform (in,integer) ! n : number of point (in,integer) ! f : function array (inout,real(n)) ! !DESCRIPTION: ! Removes numerical noise from a function by performing $m$ successive ! 3-point running averages on the data. The endpoints are kept fixed. ! ! !REVISION HISTORY: ! Created December 2005 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: m,n real(8), intent(inout) :: f(n) ! local variables integer i,j ! automatic arrays real(8) g(n) do i=1,m do j=2,n-1 g(j)=0.3333333333333333333d0*(f(j-1)+f(j)+f(j+1)) end do f(2:n-1)=g(2:n-1) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/nfftifc.f900000644000000000000000000000013113543334734014564 xustar0030 mtime=1569569244.360642117 29 atime=1569569240.48764459 30 ctime=1569569244.360642117 elk-6.3.2/src/nfftifc.f900000644002504400250440000000206213543334734016634 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: nfftifc ! !INTERFACE: subroutine nfftifc(n) ! !INPUT/OUTPUT PARAMETERS: ! n : required/avalable grid size (inout,integer) ! !DESCRIPTION: ! Interface to the grid requirements of the fast Fourier transform routine. ! Most routines restrict $n$ to specific prime factorisations. This routine ! returns the next largest grid size allowed by the FFT routine. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(inout) :: n ! local variables integer i,j ! currently we use primes 2, 3 and 5 integer, parameter :: np=3 integer p(np) data p / 2,3,5 / if (n.le.0) then write(*,*) write(*,'("Error(nfftifc): n <= 0 : ",I8)') n write(*,*) stop end if 10 continue i=n do j=1,np do while(mod(i,p(j)).eq.0) i=i/p(j) end do end do if (i.ne.1) then n=n+1 goto 10 end if end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfinp.f900000644000000000000000000000013213543334734014264 xustar0030 mtime=1569569244.365642113 30 atime=1569569240.491644588 30 ctime=1569569244.365642113 elk-6.3.2/src/rfinp.f900000644002504400250440000000356513543334734016344 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rfinp ! !INTERFACE: real(8) function rfinp(rfmt1,rfir1,rfmt2,rfir2) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! rfmt1 : first function in real spherical harmonics for all muffin-tins ! (in,real(npmtmax,natmtot)) ! rfir1 : first real interstitial function in real-space (in,real(ngtot)) ! rfmt2 : second function in real spherical harmonics for all muffin-tins ! (in,real(npmtmax,natmtot)) ! rfir2 : second real interstitial function in real-space (in,real(ngtot)) ! !DESCRIPTION: ! Calculates the inner product of two real functions over the entire unit ! cell. The input muffin-tin functions should have angular momentum cut-off ! {\tt lmaxo}. In the interstitial region, the integrand is multiplied with ! the characteristic function, $\tilde{\Theta}({\bf r})$, to remove the ! contribution from the muffin-tin. See routines {\tt rfmtinp} and ! {\tt gencfun}. ! ! !REVISION HISTORY: ! Created July 2004 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rfmt1(npmtmax,natmtot),rfir1(ngtot) real(8), intent(in) :: rfmt2(npmtmax,natmtot),rfir2(ngtot) ! local variables integer is,ias,ir,nthd ! external functions real(8) rfmtinp external rfmtinp ! interstitial contribution rfinp=0.d0 do ir=1,ngtot rfinp=rfinp+rfir1(ir)*rfir2(ir)*cfunir(ir) end do rfinp=rfinp*omega/dble(ngtot) ! muffin-tin contribution call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) REDUCTION(+:rfinp) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) rfinp=rfinp+rfmtinp(nrmt(is),nrmti(is),wrmt(:,is),rfmt1(:,ias),rfmt2(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/splint.f900000644000000000000000000000013213543334734014457 xustar0030 mtime=1569569244.369642111 30 atime=1569569240.496644585 30 ctime=1569569244.369642111 elk-6.3.2/src/splint.f900000644002504400250440000000341713543334734016533 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function splint(n,x,f) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n),f(n) ! local variables integer i real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) t0,t1,t2,t3,t4,t5,t6,t7 ! external functions real(8) polynm external polynm if (n.le.4) then splint=polynm(-1,n,x,f,x(n)) return end if ! fit piecewise cubic spline to data and integrate x0=x(1) x1=x(2)-x0; x2=x(3)-x0; x3=x(4)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3 y0=f(1) y1=f(2)-y0; y2=f(3)-y0; y3=f(4)-y0 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=0.5d0/(t3*t4*t5*t6) t3=t3*y2 t7=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 y1=t3*t6-t1*t5; y3=t2*t5-t3*t4; y2=t1*t4-t2*t6 t1=x1*y1+x2*y2+x3*y3 t2=y1+y2+y3 splint=x2*(y0+t0*(t1+x2*(0.5d0*t7*x2-0.6666666666666666667d0*t2))) do i=3,n-3 x0=x(i) x1=x(i-1)-x0; x2=x(i+1)-x0; x3=x(i+2)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3; t3=x1*x3 y0=f(i) y1=f(i-1)-y0; y2=f(i+1)-y0; y3=f(i+2)-y0 t1=x1*x2*y3; t2=x2*x3*y1 t0=0.5d0/(t3*t4*t5*t6) t3=t3*y2 t7=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 y1=t3*t6-t1*t5; y2=t1*t4-t2*t6; y3=t2*t5-t3*t4 t1=x1*y1+x2*y2+x3*y3 t2=y1+y2+y3 splint=splint+x2*(y0+t0*(t1+x2*(0.5d0*t7*x2-0.6666666666666666667d0*t2))) end do x0=x(n-2) x1=x(n-3)-x0; x2=x(n-1)-x0; x3=x(n)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3 y0=f(n-2) y1=f(n-3)-y0; y2=f(n-1)-y0; y3=f(n)-y0 t1=x1*x2; t2=x2*x3*y1; t3=x1*x3*y2 t0=0.5d0/(t1*t4*t5*t6) t1=t1*y3 t7=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 y1=t3*t6-t1*t5; y2=t1*t4-t2*t6; y3=t2*t5-t3*t4 t1=x1*y1+x2*y2+x3*y3 t2=y1+y2+y3 splint=splint+x3*(y0+t0*(t1+x3*(0.5d0*t7*x3-0.6666666666666666667d0*t2))) return end function elk-6.3.2/src/PaxHeaders.21352/spline.f900000644000000000000000000000013213543334734014440 xustar0030 mtime=1569569244.373642108 30 atime=1569569240.500644582 30 ctime=1569569244.373642108 elk-6.3.2/src/spline.f900000644002504400250440000000565513543334734016522 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: spline ! !INTERFACE: subroutine spline(n,x,f,cf) ! !INPUT/OUTPUT PARAMETERS: ! n : number of points (in,integer) ! x : abscissa array (in,real(n)) ! f : input data array (in,real(n)) ! cf : cubic spline coefficients (out,real(3,n)) ! !DESCRIPTION: ! Calculates the coefficients of a cubic spline fitted to input data. In other ! words, given a set of data points $f_i$ defined at $x_i$, where ! $i=1\ldots n$, the coefficients $c_j^i$ are determined such that ! $$ y_i(x)=f_i+c_1^i(x-x_i)+c_2^i(x-x_i)^2+c_3^i(x-x_i)^3, $$ ! is the interpolating function for $x\in[x_i,x_{i+1})$. The coefficients are ! determined piecewise by fitting a cubic polynomial to adjacent points. ! ! !REVISION HISTORY: ! Created November 2011 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n),f(n) real(8), intent(out) :: cf(3,n) ! local variables integer i real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) t0,t1,t2,t3,t4,t5,t6,t7 if (n.le.0) then write(*,*) write(*,'("Error(spline): n <= 0 : ",I8)') n write(*,*) stop end if if (n.eq.1) then cf(:,1)=0.d0 return end if if (n.eq.2) then cf(1,1)=(f(2)-f(1))/(x(2)-x(1)) cf(2:3,1)=0.d0 cf(1,2)=cf(1,1) cf(2:3,2)=0.d0 return end if if (n.eq.3) then x0=x(1) x1=x(2)-x0; x2=x(3)-x0 y0=f(1) y1=f(2)-y0; y2=f(3)-y0 t0=1.d0/(x1*x2*(x2-x1)) t3=x1*y2; t4=x2*y1 t1=t0*(x2*t4-x1*t3) t2=t0*(t3-t4) cf(1,1)=t1 cf(2,1)=t2 cf(3,1)=0.d0 t3=2.d0*t2 cf(1,2)=t1+t3*x1 cf(2,2)=t2 cf(3,2)=0.d0 cf(1,3)=t1+t3*x2 cf(2,3)=t2 cf(3,3)=0.d0 return end if x0=x(1) x1=x(2)-x0; x2=x(3)-x0; x3=x(4)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3 y0=f(1) y1=f(2)-y0; y2=f(3)-y0; y3=f(4)-y0 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 t7=t0*(t1*t4+t2*t6-t3*t5) t4=x1**2; t5=x2**2; t6=x3**2 y1=t3*t6-t1*t5; y3=t2*t5-t3*t4; y2=t1*t4-t2*t6 t1=t0*(x1*y1+x2*y2+x3*y3) t2=-t0*(y1+y2+y3) cf(1,1)=t1; cf(2,1)=t2; cf(3,1)=t7 cf(1,2)=t1+2.d0*t2*x1+3.d0*t7*t4 cf(2,2)=t2+3.d0*t7*x1 cf(3,2)=t7 if (n.eq.4) then cf(1,3)=t1+2.d0*t2*x2+3.d0*t7*t5 cf(2,3)=t2+3.d0*t7*x2 cf(3,3)=t7 cf(1,4)=t1+2.d0*t2*x3+3.d0*t7*t6 cf(2,4)=t2+3.d0*t7*x3 cf(3,4)=t7 return end if do i=3,n-2 x0=x(i) x1=x(i-1)-x0; x2=x(i+1)-x0; x3=x(i+2)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3 y0=f(i) y1=f(i-1)-y0; y2=f(i+1)-y0; y3=f(i+2)-y0 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 t7=t0*(t1*t4+t2*t6-t3*t5) t4=x1**2; t5=x2**2; t6=x3**2 y1=t3*t6-t1*t5; y2=t1*t4-t2*t6; y3=t2*t5-t3*t4 t1=t0*(x1*y1+x2*y2+x3*y3) t2=-t0*(y1+y2+y3) cf(1,i)=t1; cf(2,i)=t2; cf(3,i)=t7 end do cf(1,n-1)=t1+2.d0*t2*x2+3.d0*t7*t5 cf(2,n-1)=t2+3.d0*t7*x2 cf(3,n-1)=t7 cf(1,n)=t1+2.d0*t2*x3+3.d0*t7*t6 cf(2,n)=t2+3.d0*t7*x3 cf(3,n)=t7 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/wsplint.f900000644000000000000000000000013213543334734014646 xustar0030 mtime=1569569244.377642106 30 atime=1569569240.505644579 30 ctime=1569569244.377642106 elk-6.3.2/src/wsplint.f900000644002504400250440000000137113543334734016717 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wsplint(n,x,w) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n) real(8), intent(out) :: w(n) ! local variables integer i ! automatic arrays real(8) f(9) ! external functions real(8) splint external splint if (n.le.9) then do i=1,n f(:)=0.d0 f(i)=1.d0 w(i)=splint(n,x,f) end do return end if do i=1,4 f(:)=0.d0 f(i)=1.d0 w(i)=splint(9,x,f) end do f(:)=0.d0 f(5)=1.d0 do i=5,n-4 w(i)=splint(9,x(i-4),f) end do do i=1,4 f(:)=0.d0 f(i+5)=1.d0 w(n-4+i)=splint(9,x(n-8),f) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/wsplintp.f900000644000000000000000000000013213543334734015026 xustar0030 mtime=1569569244.383642102 30 atime=1569569240.509644576 30 ctime=1569569244.383642102 elk-6.3.2/src/wsplintp.f900000644002504400250440000000305513543334734017100 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wsplintp(n,x,w) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n) real(8), intent(out) :: w(4,n) ! local variables integer i real(8) f(4),t1,t2 ! external functions real(8) polynm external polynm if (n.lt.4) then write(*,*) write(*,'("Error(wsplintp): n < 4 : ",I8)') n write(*,*) stop end if w(:,1)=0.d0 f(:)=0.d0 f(1)=1.d0 w(1,2)=polynm(-1,4,x,f,x(2)) f(1)=0.d0 f(2)=1.d0 w(2,2)=polynm(-1,4,x,f,x(2)) f(2)=0.d0 f(3)=1.d0 w(3,2)=polynm(-1,4,x,f,x(2)) f(3)=0.d0 f(4)=1.d0 w(4,2)=polynm(-1,4,x,f,x(2)) do i=3,n-1 f(:)=0.d0 f(1)=1.d0 t1=polynm(-1,4,x(i-2),f,x(i-1)) t2=polynm(-1,4,x(i-2),f,x(i)) w(1,i)=t2-t1 f(1)=0.d0 f(2)=1.d0 t1=polynm(-1,4,x(i-2),f,x(i-1)) t2=polynm(-1,4,x(i-2),f,x(i)) w(2,i)=t2-t1 f(2)=0.d0 f(3)=1.d0 t1=polynm(-1,4,x(i-2),f,x(i-1)) t2=polynm(-1,4,x(i-2),f,x(i)) w(3,i)=t2-t1 f(3)=0.d0 f(4)=1.d0 t1=polynm(-1,4,x(i-2),f,x(i-1)) t2=polynm(-1,4,x(i-2),f,x(i)) w(4,i)=t2-t1 end do f(:)=0.d0 f(1)=1.d0 t1=polynm(-1,4,x(n-3),f,x(n-1)) t2=polynm(-1,4,x(n-3),f,x(n)) w(1,n)=t2-t1 f(1)=0.d0 f(2)=1.d0 t1=polynm(-1,4,x(n-3),f,x(n-1)) t2=polynm(-1,4,x(n-3),f,x(n)) w(2,n)=t2-t1 f(2)=0.d0 f(3)=1.d0 t1=polynm(-1,4,x(n-3),f,x(n-1)) t2=polynm(-1,4,x(n-3),f,x(n)) w(3,n)=t2-t1 f(3)=0.d0 f(4)=1.d0 t1=polynm(-1,4,x(n-3),f,x(n-1)) t2=polynm(-1,4,x(n-3),f,x(n)) w(4,n)=t2-t1 return end subroutine elk-6.3.2/src/PaxHeaders.21352/splintwp.f900000644000000000000000000000013213543334734015026 xustar0030 mtime=1569569244.387642099 30 atime=1569569240.514644573 30 ctime=1569569244.387642099 elk-6.3.2/src/splintwp.f900000644002504400250440000000115413543334734017076 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. pure subroutine splintwp(n,wp,f,g) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wp(4,n),f(n) real(8), intent(out) :: g(n) ! local variables integer i g(1)=0.d0 g(2)=wp(1,2)*f(1)+wp(2,2)*f(2)+wp(3,2)*f(3)+wp(4,2)*f(4) do i=3,n-1 g(i)=g(i-1)+wp(1,i)*f(i-2)+wp(2,i)*f(i-1)+wp(3,i)*f(i)+wp(4,i)*f(i+1) end do g(n)=g(n-1)+wp(1,n)*f(n-3)+wp(2,n)*f(n-2)+wp(3,n)*f(n-1)+wp(4,n)*f(n) return end subroutine elk-6.3.2/src/PaxHeaders.21352/sphcover.f900000644000000000000000000000013113543334734014776 xustar0030 mtime=1569569244.390642097 29 atime=1569569240.51964457 30 ctime=1569569244.390642097 elk-6.3.2/src/sphcover.f900000644002504400250440000000255513543334734017055 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sphcover ! !INTERFACE: subroutine sphcover(n,tp) ! !INPUT/OUTPUT PARAMETERS: ! n : number of required points (in,integer) ! tp : (theta, phi) coordinates (out,real(2,n)) ! !DESCRIPTION: ! Produces a set of $N$ points which cover the unit sphere nearly optimally. ! The points in spherical $(\theta,\phi)$ coordinates are generated using the ! explicit `golden section' formula: ! \begin{align*} ! \theta_k&=\arccos\left[1-\left(k-\tfrac{1}{2}\right)\delta z\right] \\ ! \phi_k&=(k-1)\delta\phi, ! \end{align*} ! where $\delta z=2/n$ and $\delta\phi=\pi(1-\sqrt{5})$. ! ! !REVISION HISTORY: ! Created April 2008 (JKD) ! Improved covering, October 2009 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(out) :: tp(2,n) ! local variables integer k real(8), parameter :: pi=3.1415926535897932385d0 real(8) z,dz,p,dp if (n.le.0) then write(*,*) write(*,'("Error(sphcover): n <= 0 : ",I8)') n write(*,*) stop end if dz=2.d0/dble(n) z=1.d0-dz/2.d0 tp(1,1)=acos(z) dp=pi*(1.d0-sqrt(5.d0)) p=0.d0 tp(2,1)=p do k=2,n z=z-dz tp(1,k)=acos(z) p=p+dp tp(2,k)=mod(p,2.d0*pi) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3frac.f900000644000000000000000000000013213543334734014326 xustar0030 mtime=1569569244.394642095 30 atime=1569569240.523644567 30 ctime=1569569244.394642095 elk-6.3.2/src/r3frac.f900000644002504400250440000000224513543334734016400 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3frac ! !INTERFACE: pure subroutine r3frac(eps,v) ! !INPUT/OUTPUT PARAMETERS: ! eps : zero component tolerance (in,real) ! v : input vector (inout,real(3)) ! !DESCRIPTION: ! Finds the fractional part of each component of a real 3-vector using the ! function ${\rm frac}\,(x)=x-\lfloor x\rfloor$. A component is taken to be ! zero if it lies within the intervals $[0,\epsilon)$ or $(1-\epsilon,1]$. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) ! Removed iv, September 2011 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: eps real(8), intent(inout) :: v(3) v(1)=v(1)-int(v(1)) if (v(1).lt.0.d0) v(1)=v(1)+1.d0 if ((1.d0-v(1)).lt.eps) v(1)=0.d0 if (v(1).lt.eps) v(1)=0.d0 v(2)=v(2)-int(v(2)) if (v(2).lt.0.d0) v(2)=v(2)+1.d0 if ((1.d0-v(2)).lt.eps) v(2)=0.d0 if (v(2).lt.eps) v(2)=0.d0 v(3)=v(3)-int(v(3)) if (v(3).lt.0.d0) v(3)=v(3)+1.d0 if ((1.d0-v(3)).lt.eps) v(3)=0.d0 if (v(3).lt.eps) v(3)=0.d0 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genvsig.f900000644000000000000000000000013213543334734014610 xustar0030 mtime=1569569244.399642092 30 atime=1569569240.527644565 30 ctime=1569569244.399642092 elk-6.3.2/src/genvsig.f900000644002504400250440000000165413543334734016665 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genvsig ! !INTERFACE: subroutine genvsig ! !USES: use modmain ! !DESCRIPTION: ! Generates the Fourier transform of the Kohn-Sham effective potential in the ! interstitial region. The potential is first multiplied by the characteristic ! function which zeros it in the muffin-tins. See routine {\tt gencfun}. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) !EOP !BOC implicit none ! allocatable arrays complex(8), allocatable :: zfft(:) allocate(zfft(ngtot)) ! multiply potential by characteristic function in real-space zfft(:)=vsir(:)*cfunir(:) ! Fourier transform to G-space call zfftifc(3,ngridg,-1,zfft) ! store in global array vsig(1:ngvec)=zfft(igfft(1:ngvec)) deallocate(zfft) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gencfun.f900000644000000000000000000000013213543334734014573 xustar0030 mtime=1569569244.403642089 30 atime=1569569240.532644562 30 ctime=1569569244.403642089 elk-6.3.2/src/gencfun.f900000644002504400250440000000403713543334734016646 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: gencfun ! !INTERFACE: subroutine gencfun ! !USES: use modmain ! !DESCRIPTION: ! Generates the smooth characteristic function. This is the function which is ! 0 within the muffin-tins and 1 in the intersitial region and is constructed ! from radial step function form factors with $GG_{\rm max}\end{cases} $$ ! where $R_i$ is the muffin-tin radius of the $i$th species and $\Omega$ is ! the unit cell volume. Therefore the characteristic function in $G$-space is ! $$ \tilde{\Theta}({\bf G})=\delta_{G,0}-\sum_{ij}\exp(-i{\bf G}\cdot ! {\bf r}_{ij})\tilde{\Theta}_i(G), $$ ! where ${\bf r}_{ij}$ is the position of the $j$th atom of the $i$th species. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ig real(8) v1,v2,v3,t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: zfft(:) ! allocate global characteristic function arrays if (allocated(cfunig)) deallocate(cfunig) allocate(cfunig(ngtot)) if (allocated(cfunir)) deallocate(cfunir) allocate(cfunir(ngtot)) cfunig(1)=1.d0 cfunig(2:)=0.d0 ! begin loop over species do is=1,nspecies ! loop over atoms do ia=1,natoms(is) v1=atposc(1,ia,is); v2=atposc(2,ia,is); v3=atposc(3,ia,is) do ig=1,ngtot ! structure factor t1=vgc(1,ig)*v1+vgc(2,ig)*v2+vgc(3,ig)*v3 z1=cmplx(cos(t1),-sin(t1),8) ! add to characteristic function in G-space cfunig(ig)=cfunig(ig)-ffacg(ig,is)*z1 end do end do end do allocate(zfft(ngtot)) zfft(igfft(:))=cfunig(:) ! Fourier transform to real-space call zfftifc(3,ngridg,1,zfft) cfunir(:)=dble(zfft(:)) deallocate(zfft) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zfpack.f900000644000000000000000000000013213543334734014424 xustar0030 mtime=1569569244.407642087 30 atime=1569569240.536644559 30 ctime=1569569244.407642087 elk-6.3.2/src/zfpack.f900000644002504400250440000000165013543334734016475 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfpack(tpack,n,np,ld,zfmt,zfir,v) use modmain implicit none ! arguments logical, intent(in) :: tpack integer, intent(inout) :: n integer, intent(in) :: np(nspecies) integer, intent(in) :: ld complex(8), intent(inout) :: zfmt(ld,natmtot),zfir(ngtot) real(8), intent(out) :: v(*) ! local variables integer is,ias,k if (tpack) then ! pack the function do ias=1,natmtot is=idxis(ias) k=2*np(is) call dcopy(k,zfmt(:,ias),1,v(n+1),1) n=n+k end do k=2*ngtot call dcopy(k,zfir,1,v(n+1),1) n=n+k else ! unpack the function do ias=1,natmtot is=idxis(ias) k=2*np(is) call dcopy(k,v(n+1),1,zfmt(:,ias),1) n=n+k end do k=2*ngtot call dcopy(k,v(n+1),1,zfir,1) n=n+k end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/addlorbcnd.f900000644000000000000000000000013213543334734015242 xustar0030 mtime=1569569244.411642084 30 atime=1569569240.541644556 30 ctime=1569569244.411642084 elk-6.3.2/src/addlorbcnd.f900000644002504400250440000000160113543334734017307 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine addlorbcnd use modmain implicit none ! local variables integer is,nlo,l,io if (.not.lorbcnd) return ! add conduction local-orbitals to each species do is=1,nspecies nlo=nlorb(is) do l=0,lmaxo nlo=nlo+1 if (nlo.gt.maxlorb) then write(*,*) write(*,'("Error(addlorbcnd): nlorb too large : ",I8)') nlo write(*,'(" for species ",I4)') is write(*,'("Adjust maxlorb in modmain and recompile code")') write(*,*) stop end if lorbl(nlo,is)=l lorbord(nlo,is)=lorbordc do io=1,lorbordc lorbe0(io,nlo,is)=0.15d0 lorbdm(io,nlo,is)=io-1 lorbve(io,nlo,is)=.true. end do end do nlorb(is)=nlo end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfint.f900000644000000000000000000000013213543334734014270 xustar0030 mtime=1569569244.416642081 30 atime=1569569240.545644553 30 ctime=1569569244.416642081 elk-6.3.2/src/rfint.f900000644002504400250440000000144013543334734016336 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function rfint(rfmt,rfir) use modmain implicit none ! arguments real(8), intent(in) :: rfmt(npmtmax,natmtot),rfir(ngtot) ! local variables integer is,ias,nr,nri real(8) t1 ! automatic arrays real(8) fr(nrmtmax) ! interstitial contribution rfint=dot_product(rfir(:),cfunir(:)) rfint=rfint*omega/dble(ngtot) ! muffin-tin contribution do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) ! extract the l=m=0 component call rfmtlm(1,nr,nri,rfmt(:,ias),fr) ! integrate to the muffin-tin radius t1=dot_product(wrmt(1:nr,is),fr(1:nr)) rfint=rfint+fourpi*y00*t1 end do return end function elk-6.3.2/src/PaxHeaders.21352/sortidx.f900000644000000000000000000000013213543334734014642 xustar0030 mtime=1569569244.420642078 30 atime=1569569240.549644551 30 ctime=1569569244.420642078 elk-6.3.2/src/sortidx.f900000644002504400250440000000302713543334734016713 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sortidx ! !INTERFACE: subroutine sortidx(n,x,idx) ! !INPUT/OUTPUT PARAMETERS: ! n : number of elements in array (in,integer) ! x : real array (in,real(n)) ! idx : permutation index (out,integer(n)) ! !DESCRIPTION: ! Finds the permutation index {\tt idx} which sorts the real array {\tt x} ! into ascending order. No sorting of the array {\tt x} itself is performed. ! Uses the heapsort algorthim. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) ! Included tolerance eps, April 2006 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x(n) integer, intent(out) :: idx(n) ! local variables integer i,j,k,l,m ! tolerance for deciding if one number is smaller than another real(8), parameter :: eps=1.d-14 if (n.le.0) then write(*,*) write(*,'("Error(sortidx): n <= 0 : ",I8)') n write(*,*) stop end if do i=1,n idx(i)=i end do if (n.eq.1) return l=n/2+1 k=n 10 continue if (l.gt.1) then l=l-1 m=idx(l) else m=idx(k) idx(k)=idx(1) k=k-1 if (k.eq.1) then idx(1)=m return end if end if i=l j=l+l 20 continue if (j.le.k) then if (j.lt.k) then if (x(idx(j)).lt.x(idx(j+1))+eps) j=j+1 end if if (x(m).lt.x(idx(j))+eps) then idx(i)=idx(j) i=j j=j+j else j=k+1 end if goto 20 end if idx(i)=m goto 10 end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gengkvec.f900000644000000000000000000000013213543334734014737 xustar0030 mtime=1569569244.424642076 30 atime=1569569240.554644548 30 ctime=1569569244.424642076 elk-6.3.2/src/gengkvec.f900000644002504400250440000000425613543334734017015 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2012 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: gengkvec ! !INTERFACE: subroutine gengkvec(ngvec,ivg,vgc,vkl,vkc,gkmax,ngkmax,ngk,igkig,vgkl,vgkc,gkc) ! !INPUT/OUTPUT PARAMETERS: ! ngvec : number of G-vectors (in,integer) ! ivg : G-vector integer coordinates (in,integer(3,ngvec)) ! vgc : G-vectors in Cartesian coordinates (in,real(3,ngvec)) ! vkl : k-point vector in lattice coordinates (in,real(3)) ! vkc : k-point vector in Cartesian coordinates (in,real(3)) ! gkmax : G+k-vector cut-off (in,real) ! ngkmax : maximum number of G+k-vectors (in,integer) ! ngk : number of G+k-vectors returned (out,integer) ! igkig : index from G+k-vectors to G-vectors (out,integer(ngkmax)) ! vgkl : G+k-vectors in lattice coordinates (out,real(3,ngkmax)) ! vgkc : G+k-vectors in Cartesian coordinates (out,real(3,ngkmax)) ! gkc : length of G+k-vectors (out,real(ngkmax)) ! !DESCRIPTION: ! Generates a set of ${\bf G+k}$-vectors for the input $k$-point with length ! less than {\tt gkmax}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Removed spherical coordinate generation, May 2010 (JKD) ! Removed modmain and added arguments, September 2012 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngvec,ivg(3,ngvec) real(8), intent(in) :: vgc(3,ngvec) real(8), intent(in) :: vkl(3),vkc(3) real(8), intent(in) :: gkmax integer, intent(in) :: ngkmax integer, intent(out) :: ngk,igkig(ngkmax) real(8), intent(out) :: vgkl(3,ngkmax),vgkc(3,ngkmax),gkc(ngkmax) ! local variables integer ig real(8) v1,v2,v3,t0,t1 t0=gkmax**2 ngk=0 do ig=1,ngvec v1=vgc(1,ig)+vkc(1) v2=vgc(2,ig)+vkc(2) v3=vgc(3,ig)+vkc(3) t1=v1**2+v2**2+v3**2 if (t1.lt.t0) then ngk=ngk+1 ! index to G-vector igkig(ngk)=ig ! G+k-vector in lattice coordinates vgkl(:,ngk)=dble(ivg(:,ig))+vkl(:) ! G+k-vector in Cartesian coordinates vgkc(1,ngk)=v1 vgkc(2,ngk)=v2 vgkc(3,ngk)=v3 ! length of G+k-vector gkc(ngk)=sqrt(t1) if (ngk.eq.ngkmax) exit end if end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/pade.f900000644000000000000000000000013213543334734014057 xustar0030 mtime=1569569244.428642073 30 atime=1569569240.558644545 30 ctime=1569569244.428642073 elk-6.3.2/src/pade.f900000644002504400250440000000465713543334734016142 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) A. Sanna and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: pade ! !INTERFACE: subroutine pade(ni,zi,ui,no,zo,uo) ! !INPUT/OUTPUT PARAMETERS: ! ni : number of input points (in,integer) ! zi : input points (in,complex(ni)) ! ui : input function values (in,complex(ni)) ! no : number of output points (in,integer) ! zo : output points (in,complex(no)) ! uo : output function values (out,complex(no)) ! !DESCRIPTION: ! Calculates a Pad\'{e} approximant of a function, given the function ! evaluated on a set of points in the complex plane. The function is returned ! for a set of complex output points. The algorithm from H. J. Vidberg and ! J. W. Serene {\it J. Low Temp. Phys.} {\bf 29}, 179 (1977) is used. ! ! !REVISION HISTORY: ! Created December 2010 (Antonio Sanna) !EOP !BOC implicit none ! arguments integer, intent(in) :: ni complex(8), intent(in) :: zi(ni) complex(8), intent(in) :: ui(ni) integer, intent(in) :: no complex(8), intent(in) :: zo(no) complex(8), intent(out) :: uo(no) ! local variables integer i,j real(8) t1 complex(8) a0,a1,b0,b1,z1,z2 ! allocatable arrays complex(8), allocatable :: g(:,:) if ((ni.le.0).or.(no.le.0)) then write(*,*) write(*,'("Error(pade): invalid number of input or output points : ",2I8)') & ni,no write(*,*) stop end if allocate(g(ni,ni)) ! define the g functions using Eq. (A2) g(1,:)=ui(:) do i=2,ni do j=i,ni z1=(zi(j)-zi(i-1))*g(i-1,j) t1=abs(dble(z1))+abs(aimag(z1)) if (t1.gt.1.d-14) then g(i,j)=(g(i-1,i-1)-g(i-1,j))/z1 else g(i,j)=0.d0 end if end do end do ! loop over output points do i=1,no ! use recursive algorithm in Eq. (A3) to evaluate function a0=0.d0 a1=g(1,1) b0=1.d0 b1=1.d0 do j=2,ni z1=(zo(i)-zi(j-1))*g(j,j) z2=a1+z1*a0 a0=a1 a1=z2 z2=b1+z1*b0 b0=b1 b1=z2 ! check for overflow and rescale if ((abs(dble(a1)).gt.1.d100).or.(abs(aimag(a1)).gt.1.d100)) then t1=1.d0/abs(a1) a0=a0*t1 b0=b0*t1 a1=a1*t1 b1=b1*t1 end if if ((abs(dble(b1)).gt.1.d100).or.(abs(aimag(b1)).gt.1.d100)) then t1=1.d0/abs(b1) a0=a0*t1 b0=b0*t1 a1=a1*t1 b1=b1*t1 end if end do t1=abs(dble(b1))+abs(aimag(b1)) if (t1.ne.0.d0) then uo(i)=a1/b1 else uo(i)=0.d0 end if end do deallocate(g) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/pades.f900000644000000000000000000000013013543334734014240 xustar0029 mtime=1569569244.43364207 30 atime=1569569240.563644542 29 ctime=1569569244.43364207 elk-6.3.2/src/pades.f900000644002504400250440000000211513543334734016310 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine pades(ns,r,ni,zi,ui,no,zo,uo) implicit none ! arguments integer, intent(in) :: ns real(8), intent(in) :: r integer, intent(in) :: ni complex(8), intent(in) :: zi(ni) complex(8), intent(in) :: ui(ni) integer, intent(in) :: no complex(8), intent(in) :: zo(no) complex(8), intent(out) :: uo(no) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8) t1,t2 complex(8) z1 ! allocatable arrays complex(8), allocatable :: u1(:),u2(:) if (ns.le.0) then write(*,*) write(*,'("Error(pades): ns <= 0 : ",I8)') ns write(*,*) stop end if if (ns.eq.1) then call pade(ni,zi,ui,no,zo,uo) return end if allocate(u1(ni),u2(no)) uo(:)=0.d0 do i=1,ns t1=dble(i-1)/dble(ns) t2=6.d0*pi*t1 z1=r*t1*cmplx(cos(t2),sin(t2),8) u1(:)=ui(:)+z1 call pade(ni,zi,u1,no,zo,u2) uo(:)=uo(:)+u2(:)-z1 end do t1=1.d0/dble(ns) uo(:)=t1*uo(:) deallocate(u1,u2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfint0.f900000644000000000000000000000013213543334734014350 xustar0030 mtime=1569569244.437642067 30 atime=1569569240.568644539 30 ctime=1569569244.437642067 elk-6.3.2/src/rfint0.f900000644002504400250440000000140013543334734016412 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfint0(rf0,rfmt,rfir) use modmain implicit none ! arguments real(8), intent(in) :: rf0 real(8), intent(inout) :: rfmt(npmtmax,natmtot),rfir(ngtot) ! local variables integer is,ias integer nr,nri,ir,i real(8) t1 ! external functions real(8) rfint external rfint t1=rfint(rfmt,rfir) t1=rf0-t1/omega rfir(:)=rfir(:)+t1 t1=t1/y00 do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) i=1 do ir=1,nri rfmt(i,ias)=rfmt(i,ias)+t1 i=i+lmmaxi end do do ir=nri+1,nr rfmt(i,ias)=rfmt(i,ias)+t1 i=i+lmmaxo end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/zfinp.f900000644000000000000000000000013213543334734014274 xustar0030 mtime=1569569244.442642064 30 atime=1569569240.573644535 30 ctime=1569569244.442642064 elk-6.3.2/src/zfinp.f900000644002504400250440000000366013543334734016350 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zfinp ! !INTERFACE: complex(8) function zfinp(zfmt1,zfir1,zfmt2,zfir2) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! zfmt1 : first complex function in spherical harmonics/coordinates for all ! muffin-tins (in,complex(npcmtmax,natmtot)) ! zfir1 : first complex interstitial function in real-space ! (in,complex(ngtc)) ! zfmt2 : second complex function in spherical harmonics/coordinates for all ! muffin-tins (in,complex(npcmtmax,natmtot)) ! zfir2 : second complex interstitial function in real-space ! (in,complex(ngtc)) ! !DESCRIPTION: ! Calculates the inner product of two complex fuctions over the entire unit ! cell. The muffin-tin functions should be stored on the coarse radial grid. ! In the interstitial region, the integrand is multiplied with the ! characteristic function to remove the contribution from the muffin-tin. See ! routines {\tt zfmtinp} and {\tt gencfun}. ! ! !REVISION HISTORY: ! Created July 2004 (Sharma) !EOP !BOC implicit none ! arguments complex(8), intent(in) :: zfmt1(npcmtmax,natmtot),zfir1(ngtc) complex(8), intent(in) :: zfmt2(npcmtmax,natmtot),zfir2(ngtc) ! local variables integer is,ias,ir,nthd ! external functions complex(8) zfmtinp external zfmtinp ! interstitial contribution zfinp=0.d0 do ir=1,ngtc zfinp=zfinp+cfrc(ir)*conjg(zfir1(ir))*zfir2(ir) end do zfinp=zfinp*(omega/dble(ngtc)) ! muffin-tin contribution call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) REDUCTION(+:zfinp) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) zfinp=zfinp+zfmtinp(nrcmt(is),nrcmti(is),wrcmt(:,is),zfmt1(:,ias), & zfmt2(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/symrvf.f900000644000000000000000000000013213543334734014474 xustar0030 mtime=1569569244.446642062 30 atime=1569569240.578644532 30 ctime=1569569244.446642062 elk-6.3.2/src/symrvf.f900000644002504400250440000000433213543334734016545 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: symrvf ! !INTERFACE: subroutine symrvf(tspin,tnc,nr,nri,np,ld,rvfmt,rvfir) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! tspin : .true. if spin rotations should be used (in,logical) ! tnc : .true. if the vector field is non-collinear, otherwise it is ! collinear along the z-axis (in,logical) ! nr : number of radial points for each species (in,integer(nspecies)) ! nri : number of radial points on the inner part (in,integer(nspecies)) ! np : total number of points in each muffin-tin (in,integer(nspecies)) ! ld : leading dimension (in,integer) ! rvfmt : real muffin-tin vector field (in,real(ld,natmtot,*)) ! rvfir : real interstitial vector field (in,real(ngtot,*)) ! !DESCRIPTION: ! Symmetrises a vector field defined over the entire unit cell using the full ! set of crystal symmetries. If a particular symmetry involves rotating atom ! 1 into atom 2, then the spatial and spin rotations of that symmetry are ! applied to the vector field in atom 2 (expressed in spherical harmonic ! coefficients), which is then added to the field in atom 1. This is repeated ! for all symmetry operations. The fully symmetrised field in atom 1 is then ! rotated and copied to atom 2. Symmetrisation of the interstitial part of the ! field is performed by {\tt symrvfir}. See also {\tt symrfmt} and ! {\tt findsym}. ! ! !REVISION HISTORY: ! Created May 2007 (JKD) ! Fixed problem with improper rotations, February 2008 (L. Nordstrom, ! F. Bultmark and F. Cricchio) !EOP !BOC implicit none ! arguments logical, intent(in) :: tspin,tnc integer, intent(in) :: nr(nspecies),nri(nspecies),np(nspecies) integer, intent(in) :: ld real(8), intent(inout) :: rvfmt(ld,natmtot,*),rvfir(ngtot,*) ! local variables integer nthd call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION call symrvfmt(tspin,tnc,nr,nri,np,ld,rvfmt) !$OMP SECTION call symrvfir(tspin,tnc,rvfir) !$OMP END PARALLEL SECTIONS call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genapwfr.f900000644000000000000000000000013213543334734014757 xustar0030 mtime=1569569244.451642058 30 atime=1569569240.583644529 30 ctime=1569569244.451642058 elk-6.3.2/src/genapwfr.f900000644002504400250440000001002213543334734017021 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genapwfr ! !INTERFACE: subroutine genapwfr ! !USES: use modmain ! !DESCRIPTION: ! Generates the APW radial functions. This is done by integrating the scalar ! relativistic Schr\"{o}dinger equation (or its energy deriatives) at the ! current linearisation energies using the spherical part of the Kohn-Sham ! potential. The number of radial functions at each $l$-value is given by the ! variable {\tt apword} (at the muffin-tin boundary, the APW functions have ! continuous derivatives up to order ${\tt apword}-1$). Within each $l$, these ! functions are orthonormalised with the Gram-Schmidt method. The radial ! Hamiltonian is applied to the orthonormalised functions and the results are ! stored in the global array {\tt apwfr}. ! ! !REVISION HISTORY: ! Created March 2003 (JKD) ! Copied to equivalent atoms, February 2010 (A. Kozhevnikov and JKD) !EOP !BOC implicit none ! local variables integer is,ia,ja,ias,jas integer nr,nri,ir,i integer nn,l,io,jo real(8) e,t1 ! automatic arrays logical done(natmmax) real(8) vr(nrmtmax),fr(nrmtmax) real(8) p0(nrmtmax,apwordmax),p1(nrmtmax),p1s(apwordmax) real(8) q0(nrmtmax),q1(nrmtmax),ep0(nrmtmax,apwordmax) ! external functions real(8) splint external splint do is=1,nspecies nr=nrmt(is) nri=nrmti(is) done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) ! use spherical part of potential i=1 do ir=1,nri vr(ir)=vsmt(i,ias)*y00 i=i+lmmaxi end do do ir=nri+1,nr vr(ir)=vsmt(i,ias)*y00 i=i+lmmaxo end do do l=0,lmaxapw do io=1,apword(l,is) ! linearisation energy accounting for energy derivative e=apwe(io,l,ias)+dble(apwdm(io,l,is))*deapwlo ! integrate the radial Schrodinger equation call rschrodint(solsc,l,e,nr,rlmt(:,1,is),vr,nn,p0(:,io),p1,q0,q1) ! multiply by the linearisation energy ep0(1:nr,io)=e*p0(1:nr,io) ! normalise radial functions fr(1:nr)=p0(1:nr,io)**2 t1=splint(nr,rlmt(:,1,is),fr) t1=1.d0/sqrt(abs(t1)) call dscal(nr,t1,p0(:,io),1) p1s(io)=t1*p1(nr) call dscal(nr,t1,ep0(:,io),1) ! subtract linear combination of previous vectors do jo=1,io-1 fr(1:nr)=p0(1:nr,io)*p0(1:nr,jo) t1=-splint(nr,rlmt(:,1,is),fr) call daxpy(nr,t1,p0(:,jo),1,p0(:,io),1) p1s(io)=p1s(io)+t1*p1s(jo) call daxpy(nr,t1,ep0(:,jo),1,ep0(:,io),1) end do ! normalise radial functions again fr(1:nr)=p0(1:nr,io)**2 t1=splint(nr,rlmt(:,1,is),fr) t1=abs(t1) if (t1.lt.1.d-25) then write(*,*) write(*,'("Error(genapwfr): degenerate APW radial functions")') write(*,'(" for species ",I4)') is write(*,'(" atom ",I4)') ia write(*,'(" angular momentum ",I4)') l write(*,'(" and order ",I4)') io write(*,*) stop end if t1=1.d0/sqrt(t1) call dscal(nr,t1,p0(:,io),1) p1s(io)=t1*p1s(io) call dscal(nr,t1,ep0(:,io),1) ! divide by r and store in global array do ir=1,nr t1=rlmt(ir,-1,is) apwfr(ir,1,io,l,ias)=t1*p0(ir,io) apwfr(ir,2,io,l,ias)=t1*ep0(ir,io) end do ! derivative at the muffin-tin surface apwdfr(io,l,ias)=(p1s(io)-p0(nr,io)*t1)*t1 end do end do done(ia)=.true. ! copy to equivalent atoms do ja=1,natoms(is) if ((.not.done(ja)).and.(eqatoms(ia,ja,is))) then jas=idxas(ja,is) do l=0,lmaxapw do io=1,apword(l,is) call dcopy(nr,apwfr(:,1,io,l,ias),1,apwfr(:,1,io,l,jas),1) call dcopy(nr,apwfr(:,2,io,l,ias),1,apwfr(:,2,io,l,jas),1) apwdfr(io,l,jas)=apwdfr(io,l,ias) end do end do done(ja)=.true. end if end do ! end loop over atoms and species end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfcopy.f900000644000000000000000000000013213543334734014450 xustar0030 mtime=1569569244.455642056 30 atime=1569569240.589644525 30 ctime=1569569244.455642056 elk-6.3.2/src/rfcopy.f900000644002504400250440000000104713543334734016521 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfcopy(rfmt1,rfir1,rfmt2,rfir2) use modmain implicit none ! arguments real(8), intent(in) :: rfmt1(npmtmax,natmtot),rfir1(ngtot) real(8), intent(out) :: rfmt2(npmtmax,natmtot),rfir2(ngtot) ! local variables integer is,ias do ias=1,natmtot is=idxis(ias) rfmt2(1:npmt(is),ias)=rfmt1(1:npmt(is),ias) end do rfir2(:)=rfir1(:) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhomagsh.f900000644000000000000000000000013213543334734014756 xustar0030 mtime=1569569244.459642053 30 atime=1569569240.594644522 30 ctime=1569569244.459642053 elk-6.3.2/src/rhomagsh.f900000644002504400250440000000237413543334734017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rhomagsh ! !INTERFACE: subroutine rhomagsh ! !USES: use modmain use modomp ! !DESCRIPTION: ! Converts the muffin-tin density and magnetisation from spherical coordinates ! to a spherical harmonic expansion. See {\tt rhomagk}. ! ! !REVISION HISTORY: ! Created January 2009 (JKD) !EOP !BOC implicit none ! local variables integer idm,is,ias,nthd integer nrc,nrci,npc ! allocatable arrays real(8), allocatable :: rfmt(:) call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,is,nrc,nrci,npc,idm) & !$OMP NUM_THREADS(nthd) allocate(rfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! convert the density to spherical harmonics call dcopy(npc,rhomt(:,ias),1,rfmt,1) call rfsht(nrc,nrci,rfmt,rhomt(:,ias)) ! convert magnetisation to spherical harmonics do idm=1,ndmag call dcopy(npc,magmt(:,ias,idm),1,rfmt,1) call rfsht(nrc,nrci,rfmt,magmt(:,ias,idm)) end do end do !$OMP END DO deallocate(rfmt) !$OMP END PARALLEL call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genylmg.f900000644000000000000000000000013213543334734014610 xustar0030 mtime=1569569244.463642051 30 atime=1569569240.598644519 30 ctime=1569569244.463642051 elk-6.3.2/src/genylmg.f900000644002504400250440000000136113543334734016660 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genylmg ! !INTERFACE: subroutine genylmg ! !USES: use modmain ! !DESCRIPTION: ! Generates a set of spherical harmonics, $Y_{lm}(\hat{\bf G})$, with angular ! momenta up to {\tt lmaxo} for the set of ${\bf G}$-vectors. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! local variables integer ig ! allocate global G-vector spherical harmonic array if (allocated(ylmg)) deallocate(ylmg) allocate(ylmg(lmmaxo,ngvec)) do ig=1,ngvec call genylmv(lmaxo,vgc(:,ig),ylmg(:,ig)) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/olpaa.f900000644000000000000000000000013213543334734014242 xustar0030 mtime=1569569244.468642048 30 atime=1569569240.603644516 30 ctime=1569569244.468642048 elk-6.3.2/src/olpaa.f900000644002504400250440000000150313543334734016310 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine olpaa(tor,ias,ngp,apwalm,ld,o) use modmain implicit none ! arguments logical, intent(in) :: tor integer, intent(in) :: ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: o(*) ! local variables integer is,lmo,io integer l,m,lm,i ! allocatable arrays complex(8), allocatable :: a(:,:) is=idxis(ias) lmo=lmoapw(is) allocate(a(lmo,ngp)) i=0 lm=0 do l=0,lmaxapw do m=-l,l lm=lm+1 do io=1,apword(l,is) i=i+1 a(i,1:ngp)=apwalm(1:ngp,io,lm) end do end do end do call zmctmu(tor,lmo,ngp,a,a,ld,o) deallocate(a) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readfermi.f900000644000000000000000000000013213543334734015104 xustar0030 mtime=1569569244.472642045 30 atime=1569569240.608644513 30 ctime=1569569244.472642045 elk-6.3.2/src/readfermi.f900000644002504400250440000000155713543334734017163 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: readfermi ! !INTERFACE: subroutine readfermi ! !USES: use modmain ! !DESCRIPTION: ! Reads the Fermi energy from the file {\tt EFERMI.OUT}. ! ! !REVISION HISTORY: ! Created March 2005 (JKD) !EOP !BOC implicit none ! local variables integer ios open(50,file='EFERMI'//trim(filext),form='FORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readfermi): error opening ",A)') 'EFERMI'//trim(filext) write(*,*) stop end if read(50,*,iostat=ios) efermi if (ios.ne.0) then write(*,*) write(*,'("Error(readfermi): error reading Fermi energy from EFERMI.OUT")') write(*,*) stop end if close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/factr.f900000644000000000000000000000013113543334734014244 xustar0030 mtime=1569569244.476642043 29 atime=1569569240.61364451 30 ctime=1569569244.476642043 elk-6.3.2/src/factr.f900000644002504400250440000000221113543334734016310 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: factr ! !INTERFACE: real(8) function factr(n,d) ! !INPUT/OUTPUT PARAMETERS: ! n : numerator (in,integer) ! d : denominator (in,integer) ! !DESCRIPTION: ! Returns the ratio $n!/d!$ for $n,d\ge 0$. Performs no under- or overflow ! checking. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n,d ! local variables integer i ! external functions real(8) factnm external factnm if (d.eq.1) then factr=factnm(n,1) return end if if (n.lt.0) then write(*,*) write(*,'("Error(factr): n < 0 : ",I8)') n write(*,*) stop end if if (d.lt.0) then write(*,*) write(*,'("Error(factr): d < 0 : ",I8)') d write(*,*) stop end if if (n.lt.d) then factr=dble(n+1) do i=n+2,d factr=factr*dble(i) end do factr=1.d0/factr else if (n.eq.d) then factr=1.d0 else factr=dble(d+1) do i=d+2,n factr=factr*dble(i) end do end if return end function !EOC elk-6.3.2/src/PaxHeaders.21352/writechg.f900000644000000000000000000000013213543334734014762 xustar0030 mtime=1569569244.481642039 30 atime=1569569240.618644507 30 ctime=1569569244.481642039 elk-6.3.2/src/writechg.f900000644002504400250440000000226013543334734017031 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine writechg(fnum) use modmain implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,ia,ias ! write charges write(fnum,*) write(fnum,'("Charges :")') write(fnum,'(" core",T30,": ",G18.10)') chgcrtot write(fnum,'(" valence",T30,": ",G18.10)') chgval write(fnum,'(" interstitial",T30,": ",G18.10)') chgir write(fnum,'(" muffin-tins (core leakage)")') do is=1,nspecies write(fnum,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) write(fnum,'(" atom ",I4,T30,": ",G18.10," (",G18.10,")")') ia, & chgmt(ias),chgcrlk(ias) end do end do write(fnum,'(" total in muffin-tins",T30,": ",G18.10)') chgmttot if (chgexs.ne.0.d0) then write(fnum,'(" excess",T30,": ",G18.10)') chgexs end if write(fnum,'(" total calculated charge",T30,": ",G18.10)') chgcalc write(fnum,'(" total charge",T30,": ",G18.10)') chgtot write(fnum,'(" error",T30,": ",G18.10)') abs(chgtot-chgcalc) flush(fnum) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zflmconj.f900000644000000000000000000000013213543334734014770 xustar0030 mtime=1569569244.485642037 30 atime=1569569240.623644503 30 ctime=1569569244.485642037 elk-6.3.2/src/zflmconj.f900000644002504400250440000000300313543334734017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: zflmconj ! !INTERFACE: pure subroutine zflmconj(lmax,zflm1,zflm2) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! zflm1 : coefficients of input complex spherical harmonic expansion ! (in,complex((lmax+1)**2))) ! zflm2 : coefficients of output complex spherical harmonic expansion ! (out,complex((lmax+1)**2))) ! !DESCRIPTION: ! Returns the complex conjugate of a function expanded in spherical harmonics. ! In other words, given the input function coefficients $z_{lm}$, the routine ! returns $z'_{lm}=(-1)^m z^*_{l-m}$ so that ! $$ \sum_{lm}z'_{lm}Y_{lm}(\theta,\phi)=\left(\sum_{lm}z_{lm}Y_{lm} ! (\theta,\phi)\right)^* $$ ! for all $(\theta,\phi)$. ! ! !REVISION HISTORY: ! Created April 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax complex(8), intent(in) :: zflm1(*) complex(8), intent(out) :: zflm2(*) ! local variables integer l,m,lm1,lm2 do l=0,lmax lm1=l**2 lm2=(l+1)**2+1 do m=-l,-1 lm1=lm1+1 lm2=lm2-1 if (mod(m,2).eq.0) then zflm2(lm1)=conjg(zflm1(lm2)) zflm2(lm2)=conjg(zflm1(lm1)) else zflm2(lm1)=-conjg(zflm1(lm2)) zflm2(lm2)=-conjg(zflm1(lm1)) end if end do ! m=0 case lm1=lm1+1 zflm2(lm1)=conjg(zflm1(lm1)) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rminv.f900000644000000000000000000000013013543334734014277 xustar0030 mtime=1569569244.489642034 28 atime=1569569240.6286445 30 ctime=1569569244.489642034 elk-6.3.2/src/rminv.f900000644002504400250440000000143713543334734016355 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rminv(n,a) implicit none ! arguments integer, intent(in) :: n real(8), intent(inout) :: a(n,n) ! local variables integer info ! automatic arrays integer ipiv(n) real(8) work(n) call dgetrf(n,n,a,n,ipiv,info) if (info.ne.0) then write(*,*) write(*,'("Error(rminv): unable to invert matrix")') write(*,'(" DGETRF returned INFO = ",I8)') info write(*,*) stop end if call dgetri(n,a,n,ipiv,work,n,info) if (info.ne.0) then write(*,*) write(*,'("Error(rminv): unable to invert matrix")') write(*,'(" DGETRI returned INFO = ",I8)') info write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/zminv.f900000644000000000000000000000013213543334734014311 xustar0030 mtime=1569569244.494642031 30 atime=1569569240.634644496 30 ctime=1569569244.494642031 elk-6.3.2/src/zminv.f900000644002504400250440000000167113543334734016365 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zminv(n,a) use modomp implicit none ! arguments integer, intent(in) :: n complex(8), intent(inout) :: a(n,n) ! local variables integer info,nthd ! automatic arrays integer ipiv(n) complex(8) work(n) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) call mkl_set_num_threads(nthd) call zgetrf(n,n,a,n,ipiv,info) if (info.ne.0) then write(*,*) write(*,'("Error(zminv): unable to invert matrix")') write(*,'(" ZGETRF returned INFO = ",I8)') info write(*,*) stop end if call zgetri(n,a,n,ipiv,work,n,info) if (info.ne.0) then write(*,*) write(*,'("Error(zminv): unable to invert matrix")') write(*,'(" ZGETRI returned INFO = ",I8)') info write(*,*) stop end if call freethd(nthd) call mkl_set_num_threads(1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rlmrot.f900000644000000000000000000000013213543334734014465 xustar0030 mtime=1569569244.498642028 30 atime=1569569240.639644493 30 ctime=1569569244.498642028 elk-6.3.2/src/rlmrot.f900000644002504400250440000000747713543334734016553 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rlmrot ! !INTERFACE: subroutine rlmrot(p,ang,lmax,ld,d) ! !INPUT/OUTPUT PARAMETERS: ! p : if p=-1 then the rotation matrix is improper (in,integer) ! ang : Euler angles; alpha, beta, gamma (in,real(3)) ! lmax : maximum angular momentum (in,integer) ! ld : leading dimension (in,integer) ! d : real spherical harmonic rotation matrix (out,real(ld,*)) ! !DESCRIPTION: ! Returns the rotation matrix in the basis of real spherical harmonics given ! the three Euler angles, $(\alpha,\beta,\gamma)$, and the parity, $p$, of the ! rotation. The matrix is determined using the formula of V. V. Nechaev, ! [{\it J. Struct. Chem.} {\bf 35}, 115 (1994)], suitably modified for our ! definition of the real spherical harmonics ($m_1>0$, $m_2>0$): ! \begin{align*} ! &\Delta^l_{00}=d^l_{00}, \\ ! &\Delta^l_{m_10}=\sqrt{2}\,(-1)^{m_1}d^l_{0m_1}\cos(m_1\alpha), \\ ! &\Delta^l_{0m_2}=\sqrt{2}\,(-1)^{m_2}d^l_{m_20}\cos(m_2\gamma), \\ ! &\Delta^l_{-m_10}=-\sqrt{2}\,d^l_{0m_1}\sin(m_1\alpha), \\ ! &\Delta^l_{0-m_2}=\sqrt{2}\,d^l_{m_20}\sin(m_2\gamma), \\ ! &\Delta^l_{m_1m_2}=(-1)^{m_1}(-1)^{m_2}\{\cos(m_1\alpha)\cos(m_2\gamma) ! [d_A+d_B]-\sin(m_1\alpha)\sin(m_2\gamma)[d_A-d_B]\}, \\ ! &\Delta^l_{m_1-m_2}=(-1)^{m_1}\{\sin(m_1\alpha)\cos(m_2\gamma) ! [d_A-d_B]+\cos(m_1\alpha)\sin(m_2\gamma)[d_A+d_B]\}, \\ ! &\Delta^l_{-m_1m_2}=-(-1)^{m_2}\{\sin(m_1\alpha)\cos(m_2\gamma) ! [d_A+d_B]+\cos(m_1\alpha)\sin(m_2\gamma)[d_A-d_B]\}, \\ ! &\Delta^l_{-m_1-m_2}=\cos(m_1\alpha)\cos(m_2\gamma) ! [d_A-d_B]-\sin(m_1\alpha)\sin(m_2\gamma)[d_A+d_B], ! \end{align*} ! where $d_A\equiv d^l_{-m_1-m_2}$, $d_B\equiv(-1)^{m_1}d^l_{m_1-m_2}$ and ! $d$ is the rotation matrix about the $y$-axis for complex spherical ! harmonics. See the routines {\tt genrlm}, {\tt roteuler} and {\tt ylmroty}. ! ! !REVISION HISTORY: ! Created December 2008 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: p real(8), intent(in) :: ang(3) integer, intent(in) :: lmax,ld real(8), intent(out) :: d(ld,*) ! local variables integer l,m1,m2,lm0,lm1,lm2 real(8), parameter :: sqtwo=1.4142135623730950488d0 real(8) s1,s2,t1,t2,t3,t4,t5,t6,t7,t8 ! automatic arrays integer lmi(-lmax:lmax) real(8) ca(lmax),sa(lmax) real(8) cg(lmax),sg(lmax) real(8) dy(ld,ld) if (lmax.lt.0) then write(*,*) write(*,'("Error(rlmrot): lmax < 0 : ",I8)') lmax write(*,*) stop end if ! generate the complex spherical harmonic rotation matrix about the y-axis call ylmroty(ang(2),lmax,ld,dy) do m1=1,lmax ca(m1)=cos(m1*ang(1)) sa(m1)=sin(m1*ang(1)) cg(m1)=cos(m1*ang(3)) sg(m1)=sin(m1*ang(3)) end do lm1=0 do l=0,lmax do m1=-l,l lm1=lm1+1 lmi(m1)=lm1 end do lm0=lmi(0) d(lm0,lm0)=dy(lm0,lm0) do m1=1,l if (mod(m1,2).eq.0) then s1=1.d0 else s1=-1.d0 end if t1=sqtwo*dy(lm0,lmi(m1)) t2=sqtwo*dy(lmi(m1),lm0) d(lmi(m1),lm0)=s1*t1*ca(m1) d(lm0,lmi(m1))=s1*t2*cg(m1) d(lmi(-m1),lm0)=-t1*sa(m1) d(lm0,lmi(-m1))=t2*sg(m1) do m2=1,l if (mod(m2,2).eq.0) then s2=1.d0 else s2=-1.d0 end if t1=ca(m1)*cg(m2) t2=sa(m1)*sg(m2) t3=sa(m1)*cg(m2) t4=ca(m1)*sg(m2) t5=dy(lmi(-m1),lmi(-m2)) t6=s1*dy(lmi(m1),lmi(-m2)) t7=t5+t6 t8=t5-t6 d(lmi(m1),lmi(m2))=s1*s2*(t1*t7-t2*t8) d(lmi(m1),lmi(-m2))=s1*(t3*t8+t4*t7) d(lmi(-m1),lmi(m2))=-s2*(t3*t7+t4*t8) d(lmi(-m1),lmi(-m2))=t1*t8-t2*t7 end do end do end do ! apply inversion if required if (p.eq.-1) then do l=1,lmax,2 lm1=l**2+1 lm2=lm1+2*l d(lm1:lm2,lm1:lm2)=-d(lm1:lm2,lm1:lm2) end do end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rotrflm.f900000644000000000000000000000013213543334734014633 xustar0030 mtime=1569569244.502642026 30 atime=1569569240.643644491 30 ctime=1569569244.502642026 elk-6.3.2/src/rotrflm.f900000644002504400250440000000457613543334734016716 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rotrflm ! !INTERFACE: subroutine rotrflm(rot,lmax,n,ld,rflm1,rflm2) ! !INPUT/OUTPUT PARAMETERS: ! rot : rotation matrix (in,real(3,3)) ! lmax : maximum angular momentum (in,integer) ! n : number of functions to rotate (in,integer) ! ld : leading dimension (in,integer) ! rflm1 : coefficients of the real spherical harmonic expansion for each ! function (in,real(ld,n)) ! rflm2 : coefficients of rotated functions (out,complex(ld,n)) ! !DESCRIPTION: ! Rotates a set of real functions ! $$ f_i({\bf r})=\sum_{lm}f_{lm}^iR_{lm}(\hat{\bf r}) $$ ! for all $i$, given the coefficients $f_{lm}^i$ and a rotation matrix $R$. ! This is done by first the computing the Euler angles $(\alpha,\beta,\gamma)$ ! of $R^{-1}$ (see routine {\tt roteuler}) and then applying the spherical ! harmonic rotation matrix generated by the routine {\tt rlmrot}. ! ! !REVISION HISTORY: ! Created December 2008 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rot(3,3) integer, intent(in) :: lmax,n,ld real(8), intent(in) :: rflm1(ld,*) real(8), intent(out) :: rflm2(ld,*) ! local variables integer l,lm,nm,p real(8) det,rotp(3,3) real(8) ang(3),angi(3) ! automatic arrays real(8) d(ld,ld) if (lmax.lt.0) then write(*,*) write(*,'("Error(rotrflm): lmax < 0 : ",I8)') lmax write(*,*) stop end if if (n.eq.0) return if (n.lt.0) then write(*,*) write(*,'("Error(rotrflm): n < 0 : ",I8)') n write(*,*) stop end if ! find the determinant det=rot(1,2)*rot(2,3)*rot(3,1)-rot(1,3)*rot(2,2)*rot(3,1) & +rot(1,3)*rot(2,1)*rot(3,2)-rot(1,1)*rot(2,3)*rot(3,2) & +rot(1,1)*rot(2,2)*rot(3,3)-rot(1,2)*rot(2,1)*rot(3,3) ! make the rotation proper p=1 if (det.lt.0.d0) p=-1 rotp(:,:)=dble(p)*rot(:,:) ! compute the Euler angles of the rotation matrix call roteuler(rotp,ang) ! inverse rotation: the function is to be rotated, not the spherical harmonics angi(1)=-ang(3) angi(2)=-ang(2) angi(3)=-ang(1) ! determine the rotation matrix for real spherical harmonics call rlmrot(p,angi,lmax,ld,d) ! apply rotation matrix do l=0,lmax nm=2*l+1 lm=l**2+1 call dgemm('N','N',nm,n,nm,1.d0,d(lm,lm),ld,rflm1(lm,1),ld,0.d0,rflm2(lm,1), & ld) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ztorflm.f900000644000000000000000000000013213543334734014643 xustar0030 mtime=1569569244.507642023 30 atime=1569569240.648644488 30 ctime=1569569244.507642023 elk-6.3.2/src/ztorflm.f900000644002504400250440000000334313543334734016715 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: ztorflm ! !INTERFACE: pure subroutine ztorflm(lmax,zflm,rflm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! zflm : coefficients of complex spherical harmonic expansion ! (in,complex((lmax+1)**2))) ! rflm : coefficients of real spherical harmonic expansion ! (out,real((lmax+1)**2))) ! !DESCRIPTION: ! Converts a real function, $z_{lm}$, expanded in terms of complex spherical ! harmonics into a real spherical harmonic expansion, $r_{lm}$: ! $$ r_{lm}=\begin{cases}\frac{1}{\sqrt{2}}\Re(z_{lm}+(-1)^m z_{l-m}) & m>0 \\ ! \frac{1}{\sqrt{2}}\Im(-z_{lm}+(-1)^m z_{l-m}) & m<0 \\ ! \Re(z_{lm}) & m=0 \end{cases}\;. $$ ! See routine {\tt genrlm}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax complex(8), intent(in) :: zflm(*) real(8), intent(out) :: rflm(*) ! local variables integer l,m,lm1,lm2 ! real constant 1/sqrt(2) real(8), parameter :: c1=0.7071067811865475244d0 lm1=0 do l=0,lmax lm2=lm1+2*(l+1) do m=-l,-1 lm1=lm1+1 lm2=lm2-1 if (mod(m,2).ne.0) then rflm(lm1)=-c1*(aimag(zflm(lm1))+aimag(zflm(lm2))) else rflm(lm1)=c1*(aimag(zflm(lm2))-aimag(zflm(lm1))) end if end do lm1=lm1+1 lm2=lm2-1 rflm(lm1)=dble(zflm(lm1)) do m=1,l lm1=lm1+1 lm2=lm2-1 if (mod(m,2).ne.0) then rflm(lm1)=c1*(dble(zflm(lm1))-dble(zflm(lm2))) else rflm(lm1)=c1*(dble(zflm(lm1))+dble(zflm(lm2))) end if end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rotzflm.f900000644000000000000000000000013013543334734014641 xustar0029 mtime=1569569244.51164202 30 atime=1569569240.653644484 29 ctime=1569569244.51164202 elk-6.3.2/src/rotzflm.f900000644002504400250440000000552613543334734016722 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rotzflm ! !INTERFACE: subroutine rotzflm(rot,lmin,lmax,lmmax,n,ld,zflm1,zflm2) ! !INPUT/OUTPUT PARAMETERS: ! rot : rotation matrix (in,real(3,3)) ! lmin : minimum angular momentum (in,integer) ! lmax : maximum angular momentum (in,integer) ! lmmax : (lmax+1)^2 or larger (in,integer) ! n : number of functions to rotate (in,integer) ! ld : leading dimension (in,integer) ! zflm1 : coefficients of the complex spherical harmonic expansion for each ! function (in,complex(ld,n)) ! zflm2 : coefficients of rotated functions (out,complex(ld,n)) ! !DESCRIPTION: ! Rotates a set of complex functions ! $$ f_i({\bf r})=\sum_{lm}f_{lm}^iY_{lm}(\hat{\bf r}) $$ ! for all $i$, given the coefficients $f_{lm}^i$ and a rotation matrix $R$. ! This is done by first the computing the Euler angles $(\alpha,\beta,\gamma)$ ! of $R^{-1}$ (see routine {\tt roteuler}) and then applying the spherical ! harmonic rotation matrix generated by the routine {\tt ylmrot}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Modified, December 2008 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rot(3,3) integer, intent(in) :: lmin,lmax,lmmax,n,ld complex(8), intent(in) :: zflm1(ld,n) complex(8), intent(out) :: zflm2(ld,n) ! local variables integer l,lm1,lm2,nm,p real(8) det,rotp(3,3) real(8) ang(3),angi(3) complex(8), parameter :: zzero=(0.d0,0.d0),zone=(1.d0,0.d0) ! automatic arrays complex(8) d(lmmax,lmmax) if (lmin.lt.0) then write(*,*) write(*,'("Error(rotzflm): lmin < 0 : ",I8)') lmin write(*,*) stop end if if (lmin.gt.lmax) then write(*,*) write(*,'("Error(rotzflm): lmin > lmax : ",2I8)') lmin,lmax write(*,*) stop end if if (n.eq.0) return if (n.lt.0) then write(*,*) write(*,'("Error(rotzflm): n < 0 : ",I8)') n write(*,*) stop end if ! find the determinant det=rot(1,2)*rot(2,3)*rot(3,1)-rot(1,3)*rot(2,2)*rot(3,1) & +rot(1,3)*rot(2,1)*rot(3,2)-rot(1,1)*rot(2,3)*rot(3,2) & +rot(1,1)*rot(2,2)*rot(3,3)-rot(1,2)*rot(2,1)*rot(3,3) ! make the rotation proper p=1 if (det.lt.0.d0) p=-1 rotp(:,:)=dble(p)*rot(:,:) ! compute the Euler angles of the rotation matrix call roteuler(rotp,ang) ! inverse rotation: the function is to be rotated, not the spherical harmonics angi(1)=-ang(3) angi(2)=-ang(2) angi(3)=-ang(1) ! determine the rotation matrix for complex spherical harmonics call ylmrot(p,angi,lmax,lmmax,d) ! apply rotation matrix (d and zflm may have different starting indices) lm1=lmin**2+1 lm2=1 do l=lmin,lmax nm=2*l+1 call zgemm('N','N',nm,n,nm,zone,d(lm1,lm1),lmmax,zflm1(lm2,1),ld,zzero, & zflm2(lm2,1),ld) lm1=lm1+nm lm2=lm2+nm end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfmtlm.f900000644000000000000000000000013213543334734014447 xustar0030 mtime=1569569244.515642018 30 atime=1569569240.658644481 30 ctime=1569569244.515642018 elk-6.3.2/src/rfmtlm.f900000644002504400250440000000125513543334734016521 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfmtlm(lm,nr,nri,rfmt,fr) use modmain implicit none ! arguments integer, intent(in) :: lm,nr,nri real(8), intent(in) :: rfmt(npmtmax) real(8), intent(out) :: fr(nrmtmax) ! local variables integer iro,ir,i if (lm.gt.lmmaxi) then fr(1:nri)=0.d0 else i=lm do ir=1,nri fr(ir)=rfmt(i) i=i+lmmaxi end do end if iro=nri+1 if (lm.gt.lmmaxo) then fr(iro:nr)=0.d0 else i=lmmaxi*nri+lm do ir=iro,nr fr(ir)=rfmt(i) i=i+lmmaxo end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genzrm.f900000644000000000000000000000013213543334734014450 xustar0030 mtime=1569569244.520642014 30 atime=1569569240.663644478 30 ctime=1569569244.520642014 elk-6.3.2/src/genzrm.f900000644002504400250440000000224213543334734016517 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. pure subroutine genzrm(n,wf11,wf12,wf21,wf22,zrho,ld,zmag) use modmain implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: wf11(n),wf12(n),wf21(n),wf22(n) complex(8), intent(out) :: zrho(n) integer, intent(in) :: ld complex(8), intent(out) :: zmag(ld,ndmag) ! local variables integer i complex(8) z11,z12,z21,z22,z1,z2 if (ncmag) then ! non-collinear case do i=1,n z11=wf11(i) z12=wf12(i) z21=wf21(i) z22=wf22(i) ! up-dn spin density z1=conjg(z11)*z22 ! dn-up spin density z2=conjg(z12)*z21 ! x-component: up-dn + dn-up zmag(i,1)=z1+z2 ! y-component: i*(dn-up - up-dn) z1=z2-z1 zmag(i,2)=cmplx(-aimag(z1),dble(z1),8) z1=conjg(z11)*z21 z2=conjg(z12)*z22 ! z-component: up-up - dn-dn zmag(i,3)=z1-z2 ! density: up-up + dn-dn zrho(i)=z1+z2 end do else ! collinear case do i=1,n z1=conjg(wf11(i))*wf21(i) z2=conjg(wf12(i))*wf22(i) zmag(i,1)=z1-z2 zrho(i)=z1+z2 end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/gensfacgp.f900000644000000000000000000000013213543334734015103 xustar0030 mtime=1569569244.524642012 30 atime=1569569240.668644475 30 ctime=1569569244.524642012 elk-6.3.2/src/gensfacgp.f900000644002504400250440000000301213543334734017146 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: gensfacgp ! !INTERFACE: subroutine gensfacgp(ngp,vgpc,ld,sfacgp) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! ngp : number of G+p-vectors (in,integer) ! vgpc : G+p-vectors in Cartesian coordinates (in,real(3,*)) ! ld : leading dimension (in,integer) ! sfacgp : structure factors of G+p-vectors (out,complex(ld,natmtot)) ! !DESCRIPTION: ! Generates the atomic structure factors for a set of ${\bf G+p}$-vectors: ! $$ S_{\alpha}({\bf G+p})=\exp(i({\bf G+p})\cdot{\bf r}_{\alpha}), $$ ! where ${\bf r}_{\alpha}$ is the position of atom $\alpha$. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngp real(8), intent(in) :: vgpc(3,ngp) integer, intent(in) :: ld complex(8), intent(out) :: sfacgp(ld,natmtot) ! local variables integer is,ia,ias integer igp,nthd real(8) v1,v2,v3,t1 call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is,ia,v1,v2,v3) & !$OMP PRIVATE(igp,t1) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) ia=idxia(ias) v1=atposc(1,ia,is); v2=atposc(2,ia,is); v3=atposc(3,ia,is) do igp=1,ngp t1=vgpc(1,igp)*v1+vgpc(2,igp)*v2+vgpc(3,igp)*v3 sfacgp(igp,ias)=cmplx(cos(t1),sin(t1),8) end do end do !$OMP END PARALLEL DO call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zmctmu.f900000644000000000000000000000013213543334734014465 xustar0030 mtime=1569569244.528642009 30 atime=1569569240.673644472 30 ctime=1569569244.528642009 elk-6.3.2/src/zmctmu.f900000644002504400250440000000221213543334734016531 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zmctmu(tcr,l,n,a,b,ld,c) use modomp implicit none ! arguments logical, intent(in) :: tcr integer, intent(in) :: l,n complex(8), intent(in) :: a(l,n),b(l,n) integer, intent(in) :: ld complex(8), intent(out) :: c(*) ! local variables integer l2,i,j,k,nthd ! external functions real(8) ddot complex(8) zdotc external ddot,zdotc if (tcr) then ! matrix c is real valued l2=2*l call holdthd(n,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(k,i) & !$OMP NUM_THREADS(nthd) do j=1,n k=(j-1)*ld do i=1,j k=k+1 c(k)=c(k)+ddot(l2,a(:,i),1,b(:,j),1) end do end do !$OMP END PARALLEL DO call freethd(nthd) else ! matrix c is complex valued call holdthd(n,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(k,i) & !$OMP NUM_THREADS(nthd) do j=1,n k=(j-1)*ld do i=1,j k=k+1 c(k)=c(k)+zdotc(l,a(:,i),1,b(:,j),1) end do end do !$OMP END PARALLEL DO call freethd(nthd) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/zmctm.f900000644000000000000000000000013213543334734014300 xustar0030 mtime=1569569244.533642006 30 atime=1569569240.679644468 30 ctime=1569569244.533642006 elk-6.3.2/src/zmctm.f900000644002504400250440000000135013543334734016346 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zmctm(l,m,n,a,b,ld,c) use modomp implicit none ! arguments integer, intent(in) :: l,m,n complex(8), intent(in) :: a(l,m),b(l,n) integer, intent(in) :: ld complex(8), intent(out) :: c(*) ! local variables integer i,j,k,nthd ! external functions complex(8) zdotc external zdotc call holdthd(n,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(k,i) & !$OMP NUM_THREADS(nthd) do j=1,n k=(j-1)*ld do i=1,m k=k+1 c(k)=c(k)+zdotc(l,a(:,i),1,b(:,j),1) end do end do !$OMP END PARALLEL DO call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlfv.f900000644000000000000000000000013213543334734014262 xustar0030 mtime=1569569244.537642004 30 atime=1569569240.684644465 30 ctime=1569569244.537642004 elk-6.3.2/src/hmlfv.f900000644002504400250440000000223213543334734016330 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmlfv(nmatp,ngp,igpig,vgpc,apwalm,h) use modmain use modomp implicit none ! arguments integer, intent(in) :: nmatp,ngp,igpig(ngkmax) real(8), intent(in) :: vgpc(3,ngkmax) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) complex(8), intent(out) :: h(nmatp,nmatp) ! local variables integer ias,i integer nthd1,nthd2 ! zero the upper triangular part of the matrix do i=1,nmatp h(1:i,i)=0.d0 end do call holdthd(2,nthd1) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP PRIVATE(ias) & !$OMP NUM_THREADS(nthd1) !$OMP SECTION do ias=1,natmtot call hmlaa(tefvr,ias,ngp,apwalm(:,:,:,ias),nmatp,h) end do call hmlistl(ngp,igpig,vgpc,nmatp,h) !$OMP SECTION call holdthd(natmtot,nthd2) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd2) do ias=1,natmtot call hmlalo(ias,ngp,apwalm(:,:,:,ias),nmatp,h) call hmllolo(ias,ngp,nmatp,h) end do !$OMP END PARALLEL DO call freethd(nthd2) !$OMP END PARALLEL SECTIONS call freethd(nthd1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/olpfv.f900000644000000000000000000000013213543334734014274 xustar0030 mtime=1569569244.541642001 30 atime=1569569240.689644461 30 ctime=1569569244.541642001 elk-6.3.2/src/olpfv.f900000644002504400250440000000215213543334734016343 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine olpfv(nmatp,ngp,igpig,apwalm,o) use modmain use modomp implicit none ! arguments integer, intent(in) :: nmatp,ngp,igpig(ngkmax) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) complex(8), intent(out) :: o(nmatp,nmatp) ! local variables integer ias,i integer nthd1,nthd2 ! zero the upper triangular part of the matrix do i=1,nmatp o(1:i,i)=0.d0 end do call holdthd(2,nthd1) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP PRIVATE(ias) & !$OMP NUM_THREADS(nthd1) !$OMP SECTION do ias=1,natmtot call olpaa(tefvr,ias,ngp,apwalm(:,:,:,ias),nmatp,o) end do call olpistl(ngp,igpig,nmatp,o) !$OMP SECTION call holdthd(natmtot,nthd2) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd2) do ias=1,natmtot call olpalo(ias,ngp,apwalm(:,:,:,ias),nmatp,o) call olplolo(ias,ngp,nmatp,o) end do !$OMP END PARALLEL DO call freethd(nthd2) !$OMP END PARALLEL SECTIONS call freethd(nthd1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/axangsu2.f900000644000000000000000000000013213543334734014676 xustar0030 mtime=1569569244.546641998 30 atime=1569569240.694644458 30 ctime=1569569244.546641998 elk-6.3.2/src/axangsu2.f900000644002504400250440000000247113543334734016751 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: axangsu2 subroutine axangsu2(v,th,su2) ! !INPUT/OUTPUT PARAMETERS: ! v : rotation axis vector (in,real(3)) ! th : rotation angle (in,real) ! su2 : SU(2) representation of rotation (out,complex(2,2)) ! !DESCRIPTION: ! Finds the complex ${\rm SU}(2)$ representation of a rotation defined by an ! axis vector $\hat{\bf v}$ and angle $\theta$. The spinor rotation matrix is ! given explicitly by ! $$ R^{1/2}(\hat{\bf v},\theta)=I\cos\frac{\theta}{2} ! -i(\hat{\bf v}\cdot\vec{\sigma})\sin\frac{\theta}{2}. $$ ! ! !REVISION HISTORY: ! Created August 2007 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: v(3),th complex(8), intent(out) :: su2(2,2) ! local variables real(8) x,y,z,cs,sn,t1 x=v(1); y=v(2); z=v(3) t1=sqrt(x**2+y**2+z**2) if (t1.lt.1.d-8) then write(*,*) write(*,'("Error(axangsu2): zero length axis vector")') write(*,*) stop end if ! normalise the vector t1=1.d0/t1 x=x*t1; y=y*t1; z=z*t1 cs=cos(0.5d0*th) sn=sin(0.5d0*th) su2(1,1)=cmplx(cs,-z*sn,8) su2(2,1)=cmplx(y*sn,-x*sn,8) su2(1,2)=cmplx(-y*sn,-x*sn,8) su2(2,2)=cmplx(cs,z*sn,8) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/checkmt.f900000644000000000000000000000013213543334734014564 xustar0030 mtime=1569569244.550641995 30 atime=1569569240.698644456 30 ctime=1569569244.550641995 elk-6.3.2/src/checkmt.f900000644002504400250440000000325213543334734016635 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: checkmt ! !INTERFACE: subroutine checkmt ! !USES: use modmain use modmpi use modvars ! !DESCRIPTION: ! Checks for muffin-tins which are too close together or intersecting. If any ! such muffin-tins are found then the radii of their associated atomic species ! are adjusted so that the minimum distance between their surfaces is ! {\tt rmtdelta}. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) ! Modified, October 2011 (JKD) !EOP !BOC implicit none ! local variables integer is,js real(8) dmin,t1,t2 ! automatic arrays real(8) rmt0(nspecies) rmt0(1:nspecies)=rmt(1:nspecies) 10 continue ! find the minimum distance between muffin-tin surfaces call mtdmin(is,js,dmin) ! adjust muffin-tin radii if required if (dmin.lt.rmtdelta-epslat) then t1=rmt(is)+rmt(js) t2=(t1+dmin-rmtdelta)/t1 rmt(is)=rmt(is)*t2 if (is.ne.js) rmt(js)=rmt(js)*t2 goto 10 end if do is=1,nspecies if (rmt(is).lt.0.25d0) then write(*,*) write(*,'("Error(checkmt): muffin-tin radius too small for species ",I4,& &" (",A,")")') is,trim(spsymb(is)) write(*,'(" Radius : ",G18.10)') rmt(is) write(*,*) stop end if if (rmt(is).lt.rmt0(is)) then if (mp_mpi) then write(*,*) write(*,'("Info(checkmt): reduced muffin-tin radius of species ",I3,& &" (",A,") from ",F8.4," to ",F8.4)') is,trim(spsymb(is)),rmt0(is), & rmt(is) end if end if end do ! write to VARIABLES.OUT call writevars('rmt',nv=nspecies,rva=rmt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/symrf.f900000644000000000000000000000013213543334734014306 xustar0030 mtime=1569569244.555641992 30 atime=1569569240.704644452 30 ctime=1569569244.555641992 elk-6.3.2/src/symrf.f900000644002504400250440000000331213543334734016354 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: symrf ! !INTERFACE: subroutine symrf(nr,nri,np,ld,rfmt,rfir) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial points for each species (in,integer(nspecies)) ! nri : number of radial points on the inner part (in,integer(nspecies)) ! np : total number of points in each muffin-tin (in,integer(nspecies)) ! ld : leading dimension (in,integer) ! rfmt : real muffin-tin function (inout,real(ld,natmtot)) ! rfir : real intersitial function (inout,real(ngtot)) ! !DESCRIPTION: ! Symmetrises a real scalar function defined over the entire unit cell using ! the full set of crystal symmetries. In the muffin-tin of a particular atom ! the spherical harmonic coefficients of every equivlent atom are rotated and ! averaged. The interstitial part of the function is first Fourier transformed ! to $G$-space, and then averaged over each symmetry by rotating the Fourier ! coefficients and multiplying them by a phase factor corresponding to the ! symmetry translation. ! ! !REVISION HISTORY: ! Created May 2007 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr(nspecies),nri(nspecies),np(nspecies) integer, intent(in) :: ld real(8), intent(inout) :: rfmt(ld,natmtot),rfir(ngtot) ! local variables integer nthd call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION call symrfmt(nr,nri,np,ld,rfmt) !$OMP SECTION call symrfir(rfir) !$OMP END PARALLEL SECTIONS call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/z2mm.f900000644000000000000000000000013013543334734014031 xustar0029 mtime=1569569244.55964199 30 atime=1569569240.709644449 29 ctime=1569569244.55964199 elk-6.3.2/src/z2mm.f900000644002504400250440000000156213543334734016106 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: z2mm ! !INTERFACE: pure subroutine z2mm(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,complex(2,2)) ! b : input matrix 2 (in,complex(2,2)) ! c : output matrix (out,complex(2,2)) ! !DESCRIPTION: ! Multiplies two complex $2\times 2$ matrices. Note that the output matrix ! cannot be one of the input matrices. ! ! !REVISION HISTORY: ! Created October 2007 (JKD) !EOP !BOC implicit none ! arguments complex(8), intent(in) :: a(2,2),b(2,2) complex(8), intent(out) :: c(2,2) c(1,1)=a(1,1)*b(1,1)+a(1,2)*b(2,1) c(2,1)=a(2,1)*b(1,1)+a(2,2)*b(2,1) c(1,2)=a(1,1)*b(1,2)+a(1,2)*b(2,2) c(2,2)=a(2,1)*b(1,2)+a(2,2)*b(2,2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/z2mctm.f900000644000000000000000000000013213543334734014362 xustar0030 mtime=1569569244.563641987 30 atime=1569569240.715644445 30 ctime=1569569244.563641987 elk-6.3.2/src/z2mctm.f900000644002504400250440000000172413543334734016435 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: z2mctm ! !INTERFACE: pure subroutine z2mctm(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,complex(2,2)) ! b : input matrix 2 (in,complex(2,2)) ! c : output matrix (out,complex(2,2)) ! !DESCRIPTION: ! Multiplies the conjugate transpose of one complex $2\times 2$ matrix with ! another. Note that the output matrix cannot be one of the input matrices. ! ! !REVISION HISTORY: ! Created October 2007 (JKD) !EOP !BOC implicit none ! arguments complex(8), intent(in) :: a(2,2),b(2,2) complex(8), intent(out) :: c(2,2) c(1,1)=conjg(a(1,1))*b(1,1)+conjg(a(2,1))*b(2,1) c(2,1)=conjg(a(1,2))*b(1,1)+conjg(a(2,2))*b(2,1) c(1,2)=conjg(a(1,1))*b(1,2)+conjg(a(2,1))*b(2,2) c(2,2)=conjg(a(1,2))*b(1,2)+conjg(a(2,2))*b(2,2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/z2mmct.f900000644000000000000000000000013213543334734014362 xustar0030 mtime=1569569244.567641984 30 atime=1569569240.720644442 30 ctime=1569569244.567641984 elk-6.3.2/src/z2mmct.f900000644002504400250440000000171213543334734016432 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: z2mmct ! !INTERFACE: pure subroutine z2mmct(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,complex(2,2)) ! b : input matrix 2 (in,complex(2,2)) ! c : output matrix (out,complex(2,2)) ! !DESCRIPTION: ! Multiplies a $2\times 2$ matrix with the conjugate transpose of another. ! Note that the output matrix cannot be one of the input matrices. ! ! !REVISION HISTORY: ! Created October 2007 (JKD) !EOP !BOC implicit none ! arguments complex(8), intent(in) :: a(2,2),b(2,2) complex(8), intent(out) :: c(2,2) c(1,1)=a(1,1)*conjg(b(1,1))+a(1,2)*conjg(b(1,2)) c(2,1)=a(2,1)*conjg(b(1,1))+a(2,2)*conjg(b(1,2)) c(1,2)=a(1,1)*conjg(b(2,1))+a(1,2)*conjg(b(2,2)) c(2,2)=a(2,1)*conjg(b(2,1))+a(2,2)*conjg(b(2,2)) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writefermi.f900000644000000000000000000000013213543334734015323 xustar0030 mtime=1569569244.571641982 30 atime=1569569240.726644438 30 ctime=1569569244.571641982 elk-6.3.2/src/writefermi.f900000644002504400250440000000105213543334734017370 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writefermi ! !INTERFACE: subroutine writefermi ! !USES: use modmain ! !DESCRIPTION: ! Writes the Fermi energy to the file {\tt EFERMI.OUT}. ! ! !REVISION HISTORY: ! Created March 2005 (JKD) !EOP !BOC implicit none open(50,file='EFERMI'//trim(filext),form='FORMATTED') write(50,'(G18.10)') efermi close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/findnjcmax.f900000644000000000000000000000013213543334734015267 xustar0030 mtime=1569569244.576641979 30 atime=1569569240.730644435 30 ctime=1569569244.576641979 elk-6.3.2/src/findnjcmax.f900000644002504400250440000000075413543334734017344 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine findnjcmax use modmain implicit none ! local variables integer is,n ! find the maximum size of the spherical Bessel function array over all species njcmax=1 do is=1,nspecies n=(lmaxi+1)*nrcmti(is)+(lmaxo+1)*(nrcmt(is)-nrcmti(is)) if (n.gt.njcmax) njcmax=n end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/findscq.f900000644000000000000000000000013213543334734014575 xustar0030 mtime=1569569244.580641976 30 atime=1569569240.735644432 30 ctime=1569569244.580641976 elk-6.3.2/src/findscq.f900000644002504400250440000000705313543334734016651 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine findscq(iq,avec0,nsc,vsc) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq real(8), intent(in) :: avec0(3,3) integer, intent(out) :: nsc real(8), intent(out) :: vsc(3,nqptnr) ! local variables integer i1,i2,i3 integer scl(3,3),i,n real(8) dmin,t1 real(8) v1(3),v2(3) ! check for Gamma-point phonon if (tphq0) then scl(:,:)=0 scl(1,1)=1 scl(2,2)=1 scl(3,3)=1 nsc=1 goto 10 end if ! find the first lattice vector dmin=1.d8 do i1=-ngridq(1),ngridq(1) do i2=-ngridq(2),ngridq(2) do i3=-ngridq(3),ngridq(3) t1=dble(i1)*vql(1,iq)+dble(i2)*vql(2,iq)+dble(i3)*vql(3,iq) if (abs(t1-nint(t1)).lt.epslat) then v1(:)=dble(i1)*avec0(:,1)+dble(i2)*avec0(:,2)+dble(i3)*avec0(:,3) t1=sqrt(v1(1)**2+v1(2)**2+v1(3)**2) if ((t1.lt.dmin).and.(t1.gt.epslat)) then scl(1,1)=i1 scl(2,1)=i2 scl(3,1)=i3 dmin=t1 end if end if end do end do end do ! find the second lattice vector dmin=1.d8 do i1=-ngridq(1),ngridq(1) do i2=-ngridq(2),ngridq(2) do i3=-ngridq(3),ngridq(3) t1=dble(i1)*vql(1,iq)+dble(i2)*vql(2,iq)+dble(i3)*vql(3,iq) if (abs(t1-nint(t1)).lt.epslat) then ! area defined by first two lattice vectors n=(i2*scl(3,1)-i3*scl(2,1))**2 & +(i3*scl(1,1)-i1*scl(3,1))**2 & +(i1*scl(2,1)-i2*scl(1,1))**2 if (n.ne.0) then v1(:)=dble(i1)*avec0(:,1)+dble(i2)*avec0(:,2)+dble(i3)*avec0(:,3) t1=v1(1)**2+v1(2)**2+v1(3)**2 if (t1.lt.dmin) then scl(1,2)=i1 scl(2,2)=i2 scl(3,2)=i3 dmin=t1 end if end if end if end do end do end do ! find the third lattice vector nsc=0 dmin=1.d8 do i1=-ngridq(1),ngridq(1) do i2=-ngridq(2),ngridq(2) do i3=-ngridq(3),ngridq(3) t1=dble(i1)*vql(1,iq)+dble(i2)*vql(2,iq)+dble(i3)*vql(3,iq) if (abs(t1-nint(t1)).lt.epslat) then ! number of primitive unit cells in supercell n=scl(1,2)*(i2*scl(3,1)-i3*scl(2,1)) & +scl(2,2)*(i3*scl(1,1)-i1*scl(3,1)) & +scl(3,2)*(i1*scl(2,1)-i2*scl(1,1)) if (n.ne.0) then v1(:)=dble(i1)*avec0(:,1)+dble(i2)*avec0(:,2)+dble(i3)*avec0(:,3) t1=v1(1)**2+v1(2)**2+v1(3)**2 if (t1.lt.dmin) then nsc=abs(n) scl(1,3)=i1 scl(2,3)=i2 scl(3,3)=i3 dmin=t1 end if end if end if end do end do end do if (nsc.eq.0) goto 30 10 continue ! new lattice vectors do i=1,3 avec(:,i)=dble(scl(1,i))*avec0(:,1) & +dble(scl(2,i))*avec0(:,2) & +dble(scl(3,i))*avec0(:,3) end do ! inverse of lattice vector matrix call r3minv(avec,ainv) ! generate offset vectors for each primitive cell in the supercell n=1 vsc(:,1)=0.d0 do i1=-ngridq(1),ngridq(1) do i2=-ngridq(2),ngridq(2) do i3=-ngridq(3),ngridq(3) if (n.eq.nsc) return v1(:)=dble(i1)*avec0(:,1)+dble(i2)*avec0(:,2)+dble(i3)*avec0(:,3) call r3mv(ainv,v1,v2) call r3frac(epslat,v2) call r3mv(avec,v2,v1) do i=1,n t1=abs(v1(1)-vsc(1,i))+abs(v1(2)-vsc(2,i))+abs(v1(3)-vsc(3,i)) if (t1.lt.epslat) goto 20 end do n=n+1 vsc(:,n)=v1(:) 20 continue end do end do end do 30 continue write(*,*) write(*,'("Error(findscq): unable to generate supercell")') write(*,*) stop end subroutine elk-6.3.2/src/PaxHeaders.21352/plot1d.f900000644000000000000000000000013213543334734014351 xustar0030 mtime=1569569244.584641974 30 atime=1569569240.740644429 30 ctime=1569569244.584641974 elk-6.3.2/src/plot1d.f900000644002504400250440000000353313543334734016424 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: plot1d ! !INTERFACE: subroutine plot1d(fnum1,fnum2,nf,rfmt,rfir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! fnum1 : plot file number (in,integer) ! fnum2 : vertex location file number (in,integer) ! nf : number of functions (in,integer) ! rfmt : real muffin-tin function (in,real(npmtmax,natmtot,nf)) ! rfir : real intersitial function (in,real(ngtot,nf)) ! !DESCRIPTION: ! Produces a 1D plot of the real functions contained in arrays {\tt rfmt} and ! {\tt rfir} along the lines connecting the vertices in the global array ! {\tt vvlp1d}. See routine {\tt rfplot}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: fnum1,fnum2,nf real(8), intent(in) :: rfmt(npmtmax,natmtot,nf),rfir(ngtot,nf) ! local variables integer jf,ip,iv real(8) fmin,fmax,t1 ! allocatable arrays real(8), allocatable :: fp(:,:) if ((nf.lt.1).or.(nf.gt.4)) then write(*,*) write(*,'("Error(plot1d): invalid number of functions : ",I8)') nf write(*,*) stop end if allocate(fp(npp1d,nf)) ! connect the 1D plotting vertices call plotpt1d(avec,nvp1d,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) do jf=1,nf ! evaluate function at each point call rfplot(npp1d,vplp1d,rfmt(:,:,jf),rfir(:,jf),fp(:,jf)) end do do ip=1,npp1d ! write the point distances and function to file write(fnum1,'(5G18.10)') dpp1d(ip),(fp(ip,jf),jf=1,nf) end do ! write the vertex location lines fmin=minval(fp(:,:)) fmax=maxval(fp(:,:)) t1=0.5d0*(fmax-fmin) do iv=1,nvp1d write(fnum2,'(2G18.10)') dvp1d(iv),fmax+t1 write(fnum2,'(2G18.10)') dvp1d(iv),fmin-t1 write(fnum2,'(" ")') end do deallocate(fp) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/plot2d.f900000644000000000000000000000013013543334734014350 xustar0029 mtime=1569569244.58964197 30 atime=1569569240.745644426 29 ctime=1569569244.58964197 elk-6.3.2/src/plot2d.f900000644002504400250440000000370413543334734016425 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: plot2d ! !INTERFACE: subroutine plot2d(tproj,fnum,nf,rfmt,rfir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! tproj : .true. if nf=3 and the vector function should be projected onto the ! 2D plotting plane axes (in,logical) ! fnum : plot file number (in,integer) ! nf : number of functions (in,integer) ! rfmt : real muffin-tin function (in,real(npmtmax,natmtot,nf)) ! rfir : real intersitial function (in,real(ngtot,nf)) ! !DESCRIPTION: ! Produces a 2D plot of the real functions contained in arrays {\tt rfmt} and ! {\tt rfir} on the parallelogram defined by the corner vertices in the global ! array {\tt vclp2d}. See routine {\tt rfplot}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tproj integer, intent(in) :: fnum,nf real(8), intent(in) :: rfmt(npmtmax,natmtot,nf),rfir(ngtot,nf) ! local variables integer np,jf,ip real(8) vpnl(3) ! allocatable arrays real(8), allocatable :: vpl(:,:),vppc(:,:),fp(:,:) if ((nf.lt.1).or.(nf.gt.4)) then write(*,*) write(*,'("Error(plot2d): invalid number of functions : ",I8)') nf write(*,*) stop end if ! allocate local arrays np=np2d(1)*np2d(2) allocate(vpl(3,np),vppc(2,np),fp(np,nf)) ! generate the 2D plotting points call plotpt2d(avec,ainv,vpnl,vpl,vppc) ! evaluate the functions at the grid points do jf=1,nf call rfplot(np,vpl,rfmt(:,:,jf),rfir(:,jf),fp(:,jf)) end do ! project the vector function onto the 2D plotting plane axes if required if (tproj.and.(nf.eq.3)) then call proj2d(np,fp) end if ! write the functions to file write(fnum,'(2I6," : grid size")') np2d(:) do ip=1,np write(fnum,'(6G18.10)') vppc(1,ip),vppc(2,ip),(fp(ip,jf),jf=1,nf) end do deallocate(vpl,vppc,fp) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/plot3d.f900000644000000000000000000000013213543334734014353 xustar0030 mtime=1569569244.593641968 30 atime=1569569240.750644422 30 ctime=1569569244.593641968 elk-6.3.2/src/plot3d.f900000644002504400250440000000334013543334734016422 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: plot3d ! !INTERFACE: subroutine plot3d(fnum,nf,rfmt,rfir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! fnum : plot file number (in,integer) ! nf : number of functions (in,integer) ! rfmt : real muffin-tin function (in,real(npmtmax,natmtot,nf)) ! rfir : real intersitial function (in,real(ngtot,nf)) ! !DESCRIPTION: ! Produces a 3D plot of the real functions contained in arrays {\tt rfmt} and ! {\tt rfir} in the parallelepiped defined by the corner vertices in the ! global array {\tt vclp3d}. See routine {\tt rfarray}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) ! Modified, October 2008 (F. Bultmark, F. Cricchio, L. Nordstrom) !EOP !BOC implicit none ! arguments integer, intent(in) :: fnum,nf real(8), intent(in) :: rfmt(npmtmax,natmtot,nf),rfir(ngtot,nf) ! local variables integer np,jf,ip real(8) v1(3) ! allocatable arrays real(8), allocatable :: vpl(:,:),fp(:,:) if ((nf.lt.1).or.(nf.gt.4)) then write(*,*) write(*,'("Error(plot3d): invalid number of functions : ",I8)') nf write(*,*) stop end if ! total number of plot points np=np3d(1)*np3d(2)*np3d(3) ! allocate local arrays allocate(vpl(3,np),fp(np,nf)) ! generate the 3D plotting points call plotpt3d(vpl) ! evaluate the functions at the grid points do jf=1,nf call rfplot(np,vpl,rfmt(:,:,jf),rfir(:,jf),fp(:,jf)) end do ! write functions to file write(fnum,'(3I6," : grid size")') np3d(:) do ip=1,np call r3mv(avec,vpl(:,ip),v1) write(fnum,'(7G18.10)') v1(:),(fp(ip,jf),jf=1,nf) end do deallocate(vpl,fp) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/hmllolo.f900000644000000000000000000000013113543334734014613 xustar0030 mtime=1569569244.597641965 29 atime=1569569240.75464442 30 ctime=1569569244.597641965 elk-6.3.2/src/hmllolo.f900000644002504400250440000000206713543334734016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmllolo(ias,ngp,ld,h) use modmain implicit none ! arguments integer, intent(in) :: ias,ngp,ld complex(8), intent(inout) :: h(ld,*) ! local variables integer is,ilo,jlo integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3,i,j complex(8) z1 is=idxis(ias) do jlo=1,nlorb(is) l3=lorbl(jlo,is) do m3=-l3,l3 lm3=idxlm(l3,m3) j=ngp+idxlo(lm3,jlo,ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) do m1=-l1,l1 lm1=idxlm(l1,m1) i=ngp+idxlo(lm1,ilo,ias) if (i.le.j) then z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*hlolo(lm2,jlo,ilo,ias) end do end if end do h(i,j)=h(i,j)+z1 end if end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/olprad.f900000644000000000000000000000013213543334734014427 xustar0030 mtime=1569569244.602641962 30 atime=1569569240.759644417 30 ctime=1569569244.602641962 elk-6.3.2/src/olprad.f900000644002504400250440000000343713543334734016505 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: olprad ! !INTERFACE: subroutine olprad ! !USES: use modmain ! !DESCRIPTION: ! Calculates the radial overlap integrals of the APW and local-orbital basis ! functions. In other words, for atom $\alpha$, it computes integrals of the ! form ! $$ o^{\alpha}_{qp}=\int_0^{R_i}u^{\alpha}_{q;l_p}(r)v^{\alpha}_p(r)r^2dr $$ ! and ! $$ o^{\alpha}_{pp'}=\int_0^{R_i}v^{\alpha}_p(r)v^{\alpha}_{p'}(r)r^2dr, ! \quad l_p=l_{p'} $$ ! where $u^{\alpha}_{q;l}$ is the $q$th APW radial function for angular ! momentum $l$; and $v^{\alpha}_p$ is the $p$th local-orbital radial function ! and has angular momentum $l_p$. ! ! !REVISION HISTORY: ! Created November 2003 (JKD) !EOP !BOC implicit none ! local variables integer is,ias,nr integer ilo,jlo,l,io ! automatic arrays real(8) fr(nrmtmax) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) !-------------------------------------! ! APW-local-orbital integrals ! !-------------------------------------! do ilo=1,nlorb(is) l=lorbl(ilo,is) do io=1,apword(l,is) fr(1:nr)=apwfr(1:nr,1,io,l,ias)*lofr(1:nr,1,ilo,ias) oalo(io,ilo,ias)=dot_product(wrmt(1:nr,is),fr(1:nr)) end do end do !-----------------------------------------------! ! local-orbital-local-orbital integrals ! !-----------------------------------------------! do ilo=1,nlorb(is) l=lorbl(ilo,is) do jlo=1,nlorb(is) if (lorbl(jlo,is).eq.l) then fr(1:nr)=lofr(1:nr,1,ilo,ias)*lofr(1:nr,1,jlo,ias) ololo(ilo,jlo,ias)=dot_product(wrmt(1:nr,is),fr(1:nr)) end if end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/occupy.f900000644000000000000000000000013013543334734014446 xustar0029 mtime=1569569244.60664196 30 atime=1569569240.764644414 29 ctime=1569569244.60664196 elk-6.3.2/src/occupy.f900000644002504400250440000000633513543334734016526 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: occupy ! !INTERFACE: subroutine occupy ! !USES: use modmain use modtest ! !DESCRIPTION: ! Finds the Fermi energy and sets the occupation numbers for the ! second-variational states using the routine {\tt fermi}. ! ! !REVISION HISTORY: ! Created February 2004 (JKD) ! Added gap estimation, November 2009 (F. Cricchio) ! Added adaptive smearing width, April 2010 (T. Bjorkman) !EOP !BOC implicit none ! local variables integer, parameter :: maxit=1000 integer ik,ist,it real(8) e0,e1,e real(8) chg,x,t1 ! external functions real(8) sdelta,stheta external sdelta,stheta ! determine the smearing width automatically if required if ((autoswidth).and.(iscl.gt.1)) call findswidth ! find minimum and maximum eigenvalues e0=evalsv(1,1) e1=e0 do ik=1,nkpt do ist=1,nstsv e=evalsv(ist,ik) if (e.lt.e0) e0=e if (e.gt.e1) e1=e end do end do if (e0.lt.e0min) then write(*,*) write(*,'("Warning(occupy): minimum eigenvalue less than minimum & &linearisation energy : ",2G18.10)') e0,e0min write(*,'(" for s.c. loop ",I5)') iscl end if t1=1.d0/swidth ! determine the Fermi energy using the bisection method do it=1,maxit efermi=0.5d0*(e0+e1) chg=0.d0 do ik=1,nkpt do ist=1,nstsv e=evalsv(ist,ik) if (e.lt.e0min) then occsv(ist,ik)=0.d0 else x=(efermi-e)*t1 occsv(ist,ik)=occmax*stheta(stype,x) chg=chg+wkpt(ik)*occsv(ist,ik) end if end do end do if (chg.lt.chgval) then e0=efermi else e1=efermi end if if ((e1-e0).lt.1.d-12) goto 10 end do write(*,*) write(*,'("Warning(occupy): could not find Fermi energy")') 10 continue ! find the density of states at the Fermi surface in units of ! states/Hartree/unit cell fermidos=0.d0 do ik=1,nkpt do ist=1,nstsv x=(evalsv(ist,ik)-efermi)*t1 fermidos=fermidos+wkpt(ik)*sdelta(stype,x)*t1 end do if (abs(occsv(nstsv,ik)).gt.epsocc) then write(*,*) write(*,'("Warning(occupy): not enough empty states for k-point ",I6)') ik write(*,'(" and s.c. loop ",I5)') iscl end if end do fermidos=fermidos*occmax ! write Fermi density of states to test file call writetest(500,'DOS at Fermi energy',tol=5.d-3,rv=fermidos) ! estimate the indirect band gap (FC) e0=-1.d8 e1=1.d8 ikgap(1)=1 ikgap(2)=1 ! these loops are incorrectly ordered to fix a bug in versions 17 and 18 of the ! Intel compiler do ist=1,nstsv do ik=1,nkpt e=evalsv(ist,ik) if (e.lt.efermi) then if (e.gt.e0) then e0=e ikgap(1)=ik end if else if (e.lt.e1) then e1=e ikgap(2)=ik end if end if end do end do bandgap(1)=e1-e0 ! write band gap to test file call writetest(510,'estimated indirect band gap',tol=2.d-2,rv=bandgap(1)) ! estimate the direct band gap e=1.d8 ikgap(3)=1 do ik=1,nkpt e0=-1.d8 e1=1.d8 do ist=1,nstsv t1=evalsv(ist,ik) if (t1.le.efermi) then if (t1.gt.e0) e0=t1 else if (t1.lt.e1) e1=t1 end if end do t1=e1-e0 if (t1.lt.e) then e=t1 ikgap(3)=ik end if end do bandgap(2)=e return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/findkpt.f900000644000000000000000000000013113543334734014604 xustar0030 mtime=1569569244.611641956 29 atime=1569569240.76964441 30 ctime=1569569244.611641956 elk-6.3.2/src/findkpt.f900000644002504400250440000000207513543334734016660 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine findkpt(vpl,isym,ik) use modmain implicit none ! arguments real(8), intent(in) :: vpl(3) integer, intent(out) :: isym,ik ! local variables integer ivp(3),lspl real(8) v1(3),v2(3),t1 v1(:)=vpl(:)-vkloff(:)/dble(ngridk(:)) ivp(:)=nint(v1(:)*ngridk(:)) ivp(:)=modulo(ivp(:),ngridk(:)) ik=ivkik(ivp(1),ivp(2),ivp(3)) v1(:)=vkl(:,ik) call r3frac(epslat,v1) ! find the symmetry which rotates vkl to vpl do isym=1,nsymcrys lspl=lsplsymc(isym) ! multiply vpl by the transpose of the symmetry matrix (i.e. the inverse) v2(:)=symlat(1,:,lspl)*vpl(1) & +symlat(2,:,lspl)*vpl(2) & +symlat(3,:,lspl)*vpl(3) call r3frac(epslat,v2) t1=abs(v1(1)-v2(1))+abs(v1(2)-v2(2))+abs(v1(3)-v2(3)) if (t1.lt.epslat) return end do write(*,*) write(*,'("Error(findkpt): equivalent k-point not in set")') write(*,'(" Requested k-point : ",3G18.10)') vpl write(*,*) stop end subroutine elk-6.3.2/src/PaxHeaders.21352/zfmtint.f900000644000000000000000000000013213543334734014641 xustar0030 mtime=1569569244.615641954 30 atime=1569569240.775644406 30 ctime=1569569244.615641954 elk-6.3.2/src/zfmtint.f900000644002504400250440000000136213543334734016712 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. complex(8) function zfmtint(nr,nri,wr,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(8), intent(in) :: zfmt(*) ! local variables integer ir,i complex(8) z1 ! automatic arrays real(8) fr1(nr),fr2(nr) i=1 do ir=1,nri z1=zfmt(i) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxi end do do ir=nri+1,nr z1=zfmt(i) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxo end do ! integrate over r z1=cmplx(dot_product(wr(:),fr1(:)),dot_product(wr(:),fr2(:)),8) zfmtint=fourpi*y00*z1 return end function elk-6.3.2/src/PaxHeaders.21352/rotrfmt.f900000644000000000000000000000013213543334734014643 xustar0030 mtime=1569569244.619641951 30 atime=1569569240.780644403 30 ctime=1569569244.619641951 elk-6.3.2/src/rotrfmt.f900000644002504400250440000000117213543334734016713 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rotrfmt(rot,nr,nri,rfmt1,rfmt2) use modmain implicit none ! arguments real(8), intent(in) :: rot(3,3) integer, intent(in) :: nr,nri real(8), intent(in) :: rfmt1(*) real(8), intent(out) :: rfmt2(*) ! local variables integer nro,i ! inner part of muffin-tin call rotrflm(rot,lmaxi,nri,lmmaxi,rfmt1,rfmt2) ! outer part of muffin-tin nro=nr-nri i=lmmaxi*nri+1 call rotrflm(rot,lmaxo,nro,lmmaxo,rfmt1(i),rfmt2(i)) return end subroutine elk-6.3.2/src/PaxHeaders.21352/forcek.f900000644000000000000000000000013013543334734014415 xustar0030 mtime=1569569244.624641948 28 atime=1569569240.7856444 30 ctime=1569569244.624641948 elk-6.3.2/src/forcek.f900000644002504400250440000001136013543334734016467 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: forcek ! !INTERFACE: subroutine forcek(ik) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ik : reduced k-point number (in,integer) ! !DESCRIPTION: ! Computes the {\bf k}-dependent contribution to the incomplete basis set ! (IBS) force. See the calling routine {\tt force} for a full description. ! ! !REVISION HISTORY: ! Created June 2006 (JKD) ! Updated for spin-spiral case, May 2007 (Francesco Cricchio and JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ik ! local variables integer ispn0,ispn1,ispn,jspn integer n,nm,nm2,is,ias,ist,jst integer iv(3),jv(3),ig,i,j,k,l real(8) vj(3),sum,t1 complex(8) z1,z2 ! allocatable arrays integer, allocatable :: ijg(:) real(8), allocatable :: dp(:),evalfv(:,:) complex(8), allocatable :: apwalm(:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: h(:),o(:),dlh(:),dlo(:) complex(8), allocatable :: vh(:),vo(:),ffv(:,:),y(:) ! external functions complex(8) zdotc external zdotc nm2=nmatmax**2 ! allocate local arrays allocate(ijg(nm2),dp(nm2)) allocate(evalfv(nstfv,nspnfv)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv,nspnfv)) allocate(h(nm2),o(nm2),dlh(nm2),dlo(nm2)) allocate(vh(nmatmax),vo(nmatmax)) allocate(ffv(nstfv,nstfv),y(nstfv)) ! get the eigenvalues/vectors from file call getevalfv(filext,ik,vkl(:,ik),evalfv) call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) if (tevecsv) then allocate(evecsv(nstsv,nstsv)) call getevecsv(filext,ik,vkl(:,ik),evecsv) end if ! loop over first-variational spin components do jspn=1,nspnfv if (spinsprl) then ispn0=jspn; ispn1=jspn else ispn0=1; ispn1=nspinor end if n=ngk(jspn,ik) nm=nmat(jspn,ik) do j=1,n k=(j-1)*nm jv(:)=ivg(:,igkig(j,jspn,ik)) vj(:)=0.5d0*vgkc(:,j,jspn,ik) do i=1,j k=k+1 iv(:)=ivg(:,igkig(i,jspn,ik))-jv(:) ijg(k)=ivgig(iv(1),iv(2),iv(3)) dp(k)=dot_product(vgkc(:,i,jspn,ik),vj(:)) end do end do ! find the matching coefficients call match(n,vgkc(:,:,jspn,ik),gkc(:,jspn,ik),sfacgk(:,:,jspn,ik),apwalm) ! loop over species and atoms do ias=1,natmtot is=idxis(ias) ! Hamiltonian and overlap matrices h(:)=0.d0 call hmlaa(.false.,ias,n,apwalm(:,:,:,ias),nm,h) call hmlalo(ias,n,apwalm(:,:,:,ias),nm,h) o(:)=0.d0 call olpaa(.false.,ias,n,apwalm(:,:,:,ias),nm,o) call olpalo(ias,n,apwalm(:,:,:,ias),nm,o) ! loop over Cartesian directions do l=1,3 ! APW-APW contribution do j=1,n k=(j-1)*nm do i=1,j k=k+1 ig=ijg(k) t1=vgc(l,ig) z1=-ffacg(ig,is)*conjg(sfacg(ig,ias)) z2=t1*(dp(k)*z1+h(k)) dlh(k)=cmplx(-aimag(z2),dble(z2),8) z2=t1*(z1+o(k)) dlo(k)=cmplx(-aimag(z2),dble(z2),8) end do end do do j=n+1,nm k=(j-1)*nm ! APW-local-orbital contribution do i=1,n k=k+1 t1=vgkc(l,i,jspn,ik) z1=t1*h(k) dlh(k)=cmplx(-aimag(z1),dble(z1),8) z1=t1*o(k) dlo(k)=cmplx(-aimag(z1),dble(z1),8) end do ! zero the local-orbital-local-orbital contribution do i=n+1,j k=k+1 dlh(k)=0.d0 dlo(k)=0.d0 end do end do ! compute the force matrix elements in the first-variational basis do jst=1,nstfv call zhemv('U',nm,zone,dlh,nm,evecfv(:,jst,jspn),1,zzero,vh,1) call zhemv('U',nm,zone,dlo,nm,evecfv(:,jst,jspn),1,zzero,vo,1) t1=evalfv(jst,jspn) do ist=1,nstfv z1=zdotc(nm,evecfv(:,ist,jspn),1,vh,1) z2=zdotc(nm,evecfv(:,ist,jspn),1,vo,1) ffv(ist,jst)=z1-t1*z2 end do end do ! compute the force using the second-variational coefficients if required sum=0.d0 if (tevecsv) then ! spin-polarised case do j=1,nstsv do ispn=ispn0,ispn1 i=(ispn-1)*nstfv+1 call zgemv('N',nstfv,nstfv,zone,ffv,nstfv,evecsv(i,j),1,zzero,y,1) z1=zdotc(nstfv,evecsv(i,j),1,y,1) sum=sum+occsv(j,ik)*dble(z1) end do end do else ! spin-unpolarised case do j=1,nstsv sum=sum+occsv(j,ik)*dble(ffv(j,j)) end do end if !$OMP CRITICAL(forcek_) forceibs(l,ias)=forceibs(l,ias)+wkpt(ik)*sum !$OMP END CRITICAL(forcek_) ! end loop over Cartesian components end do ! end loop over atoms and species end do ! end loop over first-variational spins end do deallocate(ijg,dp,evalfv,apwalm,evecfv) if (tevecsv) deallocate(evecsv) deallocate(h,o,dlh,dlo,vh,vo,ffv,y) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/eveqnfvr.f900000644000000000000000000000013213543334734015002 xustar0030 mtime=1569569244.629641945 30 atime=1569569240.790644397 30 ctime=1569569244.629641945 elk-6.3.2/src/eveqnfvr.f900000644002504400250440000001720113543334734017052 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: eveqnfvr ! !INTERFACE: subroutine eveqnfvr(nmatp,ngp,vpc,h,o,evalfv,evecfv) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! nmatp : order of overlap and Hamiltonian matrices (in,integer) ! ngp : number of G+p-vectors (in,integer) ! vpc : p-vector in Cartesian coordinates (in,real(3)) ! h,o : Hamiltonian and overlap matrices in packed or upper triangular ! form (in,complex(*)) ! evalfv : first-variational eigenvalues (out,real(nstfv)) ! evecfv : first-variational eigenvectors (out,complex(nmatmax,nstfv)) ! !DESCRIPTION: ! This routine solves the first-variational eigenvalue equation for the ! special case when inversion symmetry is present. In this case the ! Hamiltonian and overlap matrices can be made real by using appropriate ! linear combinations of the local-orbitals for atoms related by inversion ! symmetry. These are derived from the effect of parity and complex ! conjugation on the spherical harmonics: $P Y_{lm}=(-1)^l Y_{lm}$ and ! $(Y_{lm})^*=(-1)^mY_{l-m}$. ! ! !REVISION HISTORY: ! Created May 2011 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nmatp,ngp real(8), intent(in) :: vpc(3) complex(8), intent(in) :: h(*),o(*) real(8), intent(out) :: evalfv(nstfv) complex(8), intent(out) :: evecfv(nmatmax,nstfv) ! local variables integer is,ia,ja,jas integer ilo,i,j,k,l,m integer i1,i2,j1,j2 integer k1,k2,k3,k4 integer l1,l2,m1,m2 integer lwork,info,nthd real(8) v(3),vl,vu real(8) t1,t2,t3,t4 real(8) ts0,ts1 complex(8) h1,h2,o1,o2,z1 ! allocatable arrays logical, allocatable :: tr(:),tp(:) integer, allocatable :: idx(:),s(:),map(:,:) integer, allocatable :: iwork(:),ifail(:) real(8), allocatable :: rh(:),ro(:),w(:) real(8), allocatable :: rv(:,:),work(:) complex(8), allocatable :: zp(:) call timesec(ts0) allocate(tr(nlotot),tp(nlotot)) allocate(idx(nlotot),s(nlotot)) allocate(map(nlotot,nlotot)) allocate(zp(nlotot)) tp(:)=.false. i=0 do is=1,nspecies do ia=1,natoms(is) ! symmetry equivalent atom, mapped with inversion ja=ieqatom(ia,is,2) jas=idxas(ja,is) ! residual phase factor v(:)=atposc(:,ia,is)+atposc(:,ja,is) t1=0.5d0*dot_product(vpc(:),v(:)) z1=cmplx(cos(t1),sin(t1),8) do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l i=i+1 ! index to conjugate local-orbital in symmetry equivalent atom idx(i)=idxlo(idxlm(l,-m),ilo,jas) if (ia.ne.ja) then ! sign of parity and conjugation operators if (mod(l+m,2).eq.0) then s(i)=1 else s(i)=-1 end if if (ia.lt.ja) then ! if ia < ja use the real part of the sum of matrix elements tr(i)=.true. else if (ia.gt.ja) then ! if ia > ja use the imaginary part of the difference of matrix elements s(i)=-s(i) tr(i)=.false. end if else ! if ia = ja then use real function when l even and imaginary when l is odd if (mod(m,2).eq.0) then s(i)=1 else s(i)=-1 end if ! new function should be real if symmetric or imaginary if antisymmetric if (mod(l,2).eq.0) then ! l even if (m.ge.0) then tr(i)=.true. else s(i)=-s(i) tr(i)=.false. end if else ! l odd if (m.ge.0) then tr(i)=.false. else s(i)=-s(i) tr(i)=.true. end if end if end if ! phase factors if required if (abs(t1).gt.1.d-8) then zp(i)=z1 tp(i)=.true. end if end do end do end do end do ! map from local-orbital indices to position in matrix do m=1,nlotot j=ngp+m do l=1,m i=ngp+l map(l,m)=i+(j-1)*nmatp map(m,l)=map(l,m) end do end do !---------------------------------! ! real Hamiltonian matrix ! !---------------------------------! allocate(rh(nmatp**2)) ! do j=1,ngp k=(j-1)*nmatp+1 call dcopy(j,h(k),2,rh(k),1) end do ! do m1=1,nlotot j1=ngp+m1 j2=ngp+idx(m1) do i=1,ngp k1=i+(j1-1)*nmatp k2=i+(j2-1)*nmatp h1=h(k1); h2=h(k2) if (tp(m1)) then h1=h1*zp(m1); h2=h2*zp(m1) end if if (tr(m1)) then rh(k1)=dble(h1)+s(m1)*dble(h2) else rh(k1)=aimag(h1)+s(m1)*aimag(h2) end if end do end do ! do m1=1,nlotot m2=idx(m1) do l1=1,m1 l2=idx(l1) k1=map(l1,m1); k2=map(l1,m2); k3=map(l2,m1); k4=map(l2,m2) if ((tr(l1).and.tr(m1)).or.((.not.tr(l1)).and.(.not.tr(m1)))) then rh(k1)=dble(h(k1))+s(m1)*dble(h(k2))+s(l1)*(dble(h(k3))+s(m1)*dble(h(k4))) else t2=aimag(h(k2)) if (l1.gt.m2) t2=-t2 t3=aimag(h(k3)) if (l2.gt.m1) t3=-t3 t4=aimag(h(k4)) if (l2.gt.m2) t4=-t4 rh(k1)=aimag(h(k1))+s(m1)*t2+s(l1)*(t3+s(m1)*t4) if (.not.tr(l1)) rh(k1)=-rh(k1) end if end do end do !-----------------------------! ! real overlap matrix ! !-----------------------------! allocate(ro(nmatp**2)) ! do j=1,ngp k=(j-1)*nmatp+1 call dcopy(j,o(k),2,ro(k),1) end do ! do m1=1,nlotot j1=ngp+m1 j2=ngp+idx(m1) do i=1,ngp k1=i+(j1-1)*nmatp k2=i+(j2-1)*nmatp o1=o(k1); o2=o(k2) if (tp(m1)) then o1=o1*zp(m1); o2=o2*zp(m1) end if if (tr(m1)) then ro(k1)=dble(o1)+s(m1)*dble(o2) else ro(k1)=aimag(o1)+s(m1)*aimag(o2) end if end do end do ! do m1=1,nlotot m2=idx(m1) do l1=1,m1 l2=idx(l1) k1=map(l1,m1); k2=map(l1,m2); k3=map(l2,m1); k4=map(l2,m2) if ((tr(l1).and.tr(m1)).or.((.not.tr(l1)).and.(.not.tr(m1)))) then ro(k1)=dble(o(k1))+s(m1)*dble(o(k2))+s(l1)*(dble(o(k3))+s(m1)*dble(o(k4))) else t2=aimag(o(k2)) if (l1.gt.m2) t2=-t2 t3=aimag(o(k3)) if (l2.gt.m1) t3=-t3 t4=aimag(o(k4)) if (l2.gt.m2) t4=-t4 ro(k1)=aimag(o(k1))+s(m1)*t2+s(l1)*(t3+s(m1)*t4) if (.not.tr(l1)) ro(k1)=-ro(k1) end if end do end do ! solve the generalised eigenvalue problem for real symmetric matrices allocate(iwork(5*nmatp),ifail(nmatp)) allocate(w(nmatp),rv(nmatp,nstfv)) lwork=8*nmatp allocate(work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) call mkl_set_num_threads(nthd) ! diagonalise the matrix call dsygvx(1,'V','I','U',nmatp,rh,nmatp,ro,nmatp,vl,vu,1,nstfv,evaltol,m,w, & rv,nmatp,work,lwork,iwork,ifail,info) call freethd(nthd) call mkl_set_num_threads(1) if (info.ne.0) then write(*,*) write(*,'("Error(eveqnfvr): diagonalisation failed")') write(*,'(" DSYGVX returned INFO = ",I8)') info if (info.gt.nmatp) then i=info-nmatp write(*,'(" The leading minor of the overlap matrix of order ",I8)') i write(*,'(" is not positive definite")') write(*,'(" Order of overlap matrix : ",I8)') nmatp end if write(*,*) stop end if evalfv(1:nstfv)=w(1:nstfv) ! reconstruct the complex eigenvectors do j=1,nstfv evecfv(1:ngp,j)=rv(1:ngp,j) evecfv(ngp+1:nmatp,j)=0.d0 do l1=1,nlotot i1=ngp+l1 i2=ngp+idx(l1) t1=rv(i1,j) if (tr(l1)) then evecfv(i1,j)=evecfv(i1,j)+t1 evecfv(i2,j)=evecfv(i2,j)+s(l1)*t1 else evecfv(i1,j)=evecfv(i1,j)-cmplx(0.d0,t1,8) evecfv(i2,j)=evecfv(i2,j)-cmplx(0.d0,s(l1)*t1,8) end if end do do l1=1,nlotot if (tp(l1)) then i1=ngp+l1 evecfv(i1,j)=evecfv(i1,j)*zp(l1) end if end do end do deallocate(iwork,ifail,w,rv,work) deallocate(tr,tp,idx,s,map,rh,ro,zp) call timesec(ts1) !$OMP ATOMIC timefv=timefv+ts1-ts0 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/findsym.f900000644000000000000000000000013213543334734014617 xustar0030 mtime=1569569244.633641942 30 atime=1569569240.796644393 30 ctime=1569569244.633641942 elk-6.3.2/src/findsym.f900000644002504400250440000001316313543334734016672 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: findsym ! !INTERFACE: subroutine findsym(apl1,apl2,nsym,lspl,lspn,iea) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! apl1 : first set of atomic positions in lattice coordinates ! (in,real(3,maxatoms,maxspecies)) ! apl2 : second set of atomic positions in lattice coordinates ! (in,real(3,maxatoms,maxspecies)) ! nsym : number of symmetries (out,integer) ! lspl : spatial rotation element in lattice point group for each symmetry ! (out,integer(48)) ! lspn : spin rotation element in lattice point group for each symmetry ! (out,integer(48)) ! iea : equivalent atom index for each symmetry ! (out,integer(iea(natmmax,nspecies,48)) ! !DESCRIPTION: ! Finds the symmetries which rotate one set of atomic positions into another. ! Both sets of positions differ only by a translation vector and have the same ! muffin-tin magnetic fields (stored in the global array {\tt bfcmt}). Any ! symmetry element consists of a spatial rotation of the atomic position ! vectors followed by a global magnetic rotation: $\{\alpha_S|\alpha_R\}$. In ! the case of spin-orbit coupling $\alpha_S=\alpha_R$. The symmetries are ! returned as indices of elements in the Bravais lattice point group. An ! index to equivalent atoms is stored in the array {\tt iea}. ! ! !REVISION HISTORY: ! Created April 2007 (JKD) ! Fixed use of proper rotations for spin, February 2008 (L. Nordstrom) !EOP !BOC implicit none ! arguments real(8), intent(in) :: apl1(3,maxatoms,maxspecies) real(8), intent(in) :: apl2(3,maxatoms,maxspecies) integer, intent(out) :: nsym integer, intent(out) :: lspl(48) integer, intent(out) :: lspn(48) integer, intent(out) :: iea(natmmax,nspecies,48) ! local variables integer isym,jsym,jsym0,jsym1 integer is,ia,ias,ja,jas,md,n real(8) sl(3,3),sc(3,3),v(3),t1 ! automatic arrays integer jea(natmmax,nspecies) real(8) apl3(3,natmmax) ! allocatable arrays complex(8), allocatable :: dmat(:,:,:,:) ! external functions real(8) dnrm2 external dnrm2 nsym=0 ! loop over lattice symmetries (spatial rotations) do isym=1,nsymlat ! make real copy of lattice rotation symmetry sl(:,:)=dble(symlat(:,:,isym)) ! loop over species do is=1,nspecies ! map apl1 coordinates to [0,1) and store in apl3 do ia=1,natoms(is) apl3(:,ia)=apl1(:,ia,is) call r3frac(epslat,apl3(:,ia)) end do do ja=1,natoms(is) ! apply lattice symmetry to atomic positions v(:)=sl(:,1)*apl2(1,ja,is)+sl(:,2)*apl2(2,ja,is)+sl(:,3)*apl2(3,ja,is) ! map coordinates to [0,1) call r3frac(epslat,v) ! check if atomic positions are invariant do ia=1,natoms(is) t1=abs(apl3(1,ia)-v(1))+abs(apl3(2,ia)-v(2))+abs(apl3(3,ia)-v(3)) if (t1.lt.epslat) then ! equivalent atom index jea(ia,is)=ja goto 10 end if end do ! not invariant so try new spatial rotation goto 40 10 continue end do end do ! all atomic positions invariant at this point jsym=1 ! spin polarised case if (spinpol) then ! check invariance of magnetic fields under global spin rotation if (spinorb) then ! with spin-orbit coupling spin rotation equals spatial rotation jsym0=isym jsym1=isym else ! without spin-orbit coupling spin rotation independent of spatial rotation jsym0=1 jsym1=nsymlat end if do jsym=jsym0,jsym1 ! determinant of the symmetry matrix md=symlatd(jsym) sc(:,:)=dble(md)*symlatc(:,:,jsym) ! rotate global field and check invariance using proper part of symmetry matrix v(:)=sc(:,1)*bfieldc0(1)+sc(:,2)*bfieldc0(2)+sc(:,3)*bfieldc0(3) t1=abs(bfieldc0(1)-v(1))+abs(bfieldc0(2)-v(2))+abs(bfieldc0(3)-v(3)) ! if not invariant try a different global spin rotation if (t1.gt.epslat) goto 20 ! rotate muffin-tin magnetic fields and check invariance do is=1,nspecies do ia=1,natoms(is) ! equivalent atom ja=jea(ia,is) v(:)=sc(:,1)*bfcmt0(1,ja,is) & +sc(:,2)*bfcmt0(2,ja,is) & +sc(:,3)*bfcmt0(3,ja,is) t1=abs(bfcmt0(1,ia,is)-v(1)) & +abs(bfcmt0(2,ia,is)-v(2)) & +abs(bfcmt0(3,ia,is)-v(3)) ! if not invariant try a different global spin rotation if (t1.gt.epslat) goto 20 end do end do ! all fields invariant goto 30 20 continue ! end loop over global spin rotations end do ! magnetic fields not invariant so try different spatial rotation goto 40 end if 30 continue ! check invariance of density matrices for fixed tensor moment calculations if (ftmtype.ne.0) then allocate(dmat(lmmaxdm,nspinor,lmmaxdm,nspinor)) n=2*(lmmaxdm*nspinor)**2 do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! equivalent atom ja=jea(ia,is) jas=idxas(ja,is) ! rotate the fixed tensor moment density matrix dmat(:,:,:,:)=0.d0 call rotdmat(symlatc(:,:,isym),symlatc(:,:,jsym),lmaxdm,nspinor, & lmmaxdm,dmftm(:,:,:,:,jas),dmat) ! check invariance call daxpy(n,-1.d0,dmftm(:,:,:,:,ias),1,dmat,1) t1=dnrm2(n,dmat,1)/dble(n) if (t1.gt.epslat) then deallocate(dmat) goto 40 end if end do end do deallocate(dmat) end if ! everything invariant so add symmetry to set nsym=nsym+1 lspl(nsym)=isym lspn(nsym)=jsym do is=1,nspecies do ia=1,natoms(is) iea(ia,is,nsym)=jea(ia,is) end do end do 40 continue ! end loop over spatial rotations end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genvbmatk.f900000644000000000000000000000013113543334734015123 xustar0030 mtime=1569569244.638641939 29 atime=1569569240.80164439 30 ctime=1569569244.638641939 elk-6.3.2/src/genvbmatk.f900000644002504400250440000001000313543334734017165 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvbmatk(vmt,vir,bmt,bir,ngp,igpig,wfmt,ld,wfgp,vbmat) use modmain use modomp implicit none ! arguments real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(in) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) integer, intent(in) :: ld complex(8), intent(in) :: wfgp(ld,nspinor,nstsv) complex(8), intent(out) :: vbmat(nstsv,nstsv) ! local variables integer ist,jst,ispn,jspn integer is,ias,nrc,nrci integer npc,igp,nthd ! allocatable arrays complex(8), allocatable :: wfmt1(:,:),wfir(:,:),z(:) ! external functions complex(8) zfcmtinp,zdotc external zfcmtinp,zdotc ! zero the matrix elements vbmat(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ias,is,nrc) & !$OMP PRIVATE(nrci,npc,ispn,ist) & !$OMP NUM_THREADS(nthd) allocate(wfmt1(npcmtmax,nspinor)) !$OMP DO do jst=1,nstsv do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ispn=1,nspinor call zcopy(npc,wfmt(:,ias,ispn,jst),1,wfmt1(:,ispn),1) end do ! apply local potential and magnetic field to spinor wavefunction if (ncmag) then ! non-collinear case call vbmk1(npc,vmt(:,ias),bmt(:,ias,1),bmt(:,ias,2),bmt(:,ias,3),wfmt1, & wfmt1(:,2)) else ! collinear case call vbmk2(npc,vmt(:,ias),bmt(:,ias,1),wfmt1,wfmt1(:,2)) end if do ist=1,jst do ispn=1,nspinor ! compute inner product (functions are in spherical coordinates) vbmat(ist,jst)=vbmat(ist,jst)+zfcmtinp(nrc,nrci,wrcmt(:,is), & wfmt(:,ias,ispn,ist),wfmt1(:,ispn)) end do end do end do end do !$OMP END DO deallocate(wfmt1) !$OMP END PARALLEL call freethd(nthd) !---------------------------! ! interstitial part ! !---------------------------! call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir,z,ispn,jspn) & !$OMP PRIVATE(igp,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir(ngtot,nspinor),z(ngkmax)) !$OMP DO do jst=1,nstsv ! Fourier transform wavefunction to real-space do ispn=1,nspinor jspn=jspnfv(ispn) wfir(:,ispn)=0.d0 do igp=1,ngp(jspn) wfir(igfft(igpig(igp,jspn)),ispn)=wfgp(igp,ispn,jst) end do call zfftifc(3,ngridg,1,wfir(:,ispn)) end do ! apply local potential and magnetic field to spinor wavefunction if (ncmag) then ! non-collinear case call vbmk1(ngtot,vir,bir,bir(:,2),bir(:,3),wfir,wfir(:,2)) else ! collinear case call vbmk2(ngtot,vir,bir,wfir,wfir(:,2)) end if do ispn=1,nspinor jspn=jspnfv(ispn) ! Fourier transform to G+p-space call zfftifc(3,ngridg,-1,wfir(:,ispn)) do igp=1,ngp(jspn) z(igp)=wfir(igfft(igpig(igp,jspn)),ispn) end do do ist=1,jst vbmat(ist,jst)=vbmat(ist,jst)+zdotc(ngp(jspn),wfgp(:,ispn,ist),1,z,1) end do end do end do !$OMP END DO deallocate(wfir,z) !$OMP END PARALLEL call freethd(nthd) ! lower triangular part do ist=1,nstsv do jst=1,ist-1 vbmat(ist,jst)=conjg(vbmat(jst,ist)) end do end do return contains pure subroutine vbmk1(n,v,b1,b2,b3,wf1,wf2) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: v(n),b1(n),b2(n),b3(n) complex(8), intent(inout) :: wf1(n),wf2(n) ! local variables integer i real(8) t1 complex(8) z1,z2 do i=1,n z2=cmplx(b1(i),b2(i),8) t1=b3(i) z1=(v(i)+t1)*wf1(i)+conjg(z2)*wf2(i) wf2(i)=(v(i)-t1)*wf2(i)+z2*wf1(i) wf1(i)=z1 end do return end subroutine pure subroutine vbmk2(n,v,b,wf1,wf2) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: v(n),b(n) complex(8), intent(inout) :: wf1(n),wf2(n) ! local variables integer i do i=1,n wf1(i)=(v(i)+b(i))*wf1(i) wf2(i)=(v(i)-b(i))*wf2(i) end do return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/wigner3jf.f900000644000000000000000000000013213543334734015044 xustar0030 mtime=1569569244.642641937 30 atime=1569569240.806644387 30 ctime=1569569244.642641937 elk-6.3.2/src/wigner3jf.f900000644002504400250440000000525513543334734017122 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: wigner3jf ! !INTERFACE: real(8) function wigner3jf(j12,j22,j32,m12,m22,m32) ! !INPUT/OUTPUT PARAMETERS: ! j12, j22, j32 : angular momentum quantum numbers times 2 (in,integer) ! m12, m22, m32 : magnetic quantum numbers times 2 (in,integer) ! !DESCRIPTION: ! Returns the Wigner $3j$-symbol for the case where the arguments may be ! fractional, i.e. multiples of $\frac{1}{2}$. The input parameters to this ! function are taken to be twice their actual values, which allows them to ! remain integers. The formula used is identical to that in {\tt wigner3j}. ! ! !REVISION HISTORY: ! Created January 2014 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: j12,j22,j32 integer, intent(in) :: m12,m22,m32 ! local variables integer jm1,jm2,jm3,n1,n2 integer l12,l22,l32,l42 integer k,k1,k2,l1,l2,l3 real(8) sgn,sum,t1 ! external functions real(8) factnm,factr external factnm,factr ! check input variables if ((j12.lt.0).or.(j22.lt.0).or.(j32.lt.0).or.(abs(m12).gt.j12).or. & (abs(m22).gt.j22).or.(abs(m32).gt.j32)) then write(*,*) write(*,'("Error(wigner3jf): invalid arguments :")') write(*,'("j12 = ",I8," j22 = ",I8," j32 = ",I8)') j12,j22,j32 write(*,'("m12 = ",I8," m22 = ",I8," m32 = ",I8)') m12,m22,m32 write(*,*) stop end if if ((j12.eq.0).and.(j22.eq.0).and.(j32.eq.0)) then wigner3jf=1.d0 return end if if ((j12.gt.100).or.(j22.gt.100).or.(j32.gt.100)) then write(*,*) write(*,'("Error(wigner3jf): angular momenta out of range : ",3I8)') j12, & j22,j32 write(*,*) stop end if jm1=j12+m12 jm2=j22+m22 jm3=j32+m32 if ((mod(jm1,2).ne.0).or.(mod(jm2,2).ne.0).or.(mod(jm3,2).ne.0)) then wigner3jf=0.d0 return end if l12=j22-j12+j32 l22=j12-j22+j32 l32=j12+j22-j32 l42=j12+j22+j32 if ((mod(l12,2).ne.0).or.(mod(l22,2).ne.0).or.(mod(l32,2).ne.0).or. & (mod(l42,2).ne.0)) then wigner3jf=0.d0 return end if l1=l12/2 l2=l22/2 l3=l32/2 if ((m12+m22+m32.ne.0).or.(l1.lt.0).or.(l2.lt.0).or.(l3.lt.0)) then wigner3jf=0.d0 return end if n1=(j12-m12)/2 n2=(j22+m22)/2 k1=max(0,n1-l2,n2-l1) k2=min(l3,n1,n2) k=k1+(j22-j12+m32)/2 if (mod(k,2).ne.0) then sgn=-1.d0 else sgn=1.d0 end if sum=0.d0 do k=k1,k2 t1=sgn*factr(l1,l1-n2+k)*factr(l2,l2-n1+k)*factr(l3,l3-k) sum=sum+t1/(factnm(k,1)*factnm(n1-k,1)*factnm(n2-k,1)) sgn=-sgn end do jm1=jm1/2 jm2=jm2/2 jm3=jm3/2 t1=factr(jm1,l1)*factr(jm2,l2)*factr(jm3,l3) jm1=(j12-m12)/2 jm2=(j22-m22)/2 jm3=(j32-m32)/2 t1=t1*factr(jm3,1+l42/2)*factnm(jm1,1)*factnm(jm2,1) wigner3jf=sum*sqrt(t1) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/wigner6j.f900000644000000000000000000000013213543334734014701 xustar0030 mtime=1569569244.647641933 30 atime=1569569240.812644383 30 ctime=1569569244.647641933 elk-6.3.2/src/wigner6j.f900000644002504400250440000000615413543334734016756 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: wigner6j ! !INTERFACE: real(8) function wigner6j(j1,j2,j3,k1,k2,k3) ! !INPUT/OUTPUT PARAMETERS: ! j1, j2, j3 : angular momentum quantum numbers (in,integer) ! k1, k2, k3 : angular momentum quantum numbers (in,integer) ! !DESCRIPTION: ! Returns the Wigner $6j$-symbol for integer arguments. This is computed using ! the Racah formula: ! \begin{align*} ! &\left\{\begin{matrix} j_1 & j_2 & j_3 \\ k_1 & k_2 & k_3 \end{matrix} ! \right\}=\sqrt{\Delta(j_1\,j_2\,j_3)\Delta(j_1\,k_2\,k_3) ! \Delta(k_1\,j_2\,k_3)\Delta(k_1\,k_2\,j_3)}\, ! \sum_n\frac{(-1)^n(n+1)!}{f(n)}, ! \end{align*} ! where ! \begin{align*} ! f(n)=&(n-j_1-j_2-j_3)!\,(n-j_1-k_2-k_3)!\,(n-k_1-j_2-k_3)!\, ! (n-k_1-k_2-j_3)! \\ ! &\times(j_1+j_2+k_1+k_2-n)!\,(j_2+j_3+k_2+k_3-n)!\,(j_1+j_3+k_1+k_3-n)! ! \end{align*} ! and ! $$ \Delta(a,b,c)=\frac{(a+b-c)!\,(a-b+c)!\,(-a+b+c)!}{(a+b+c+1)!} $$ ! is the triangle coefficient, and where the sum is over all integers $n$ for ! which the factorials in $f(n)$ have non-negative arguments. The Wigner-$6j$ ! function is zero unless each triad, $(j_1\,j_2\,j_3)$, $(j_1\,k_2\,k_3)$, ! $(k_1\,j_2\,k_3)$ and $(k_1\,k_2\,j_3)$, satifies the triangle inequalities: ! $$ |x-y|\le z \le x+y, $$ ! for triad $(x,y,z)$. See, for example, A. Messiah, {\it Quantum Mechanics}, ! Vol. 2., 1061-1066 (1962). ! ! !REVISION HISTORY: ! Created August 2009 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: j1,j2,j3 integer, intent(in) :: k1,k2,k3 ! local variables integer n0,n1,n real(8) sum,t1,t2 ! external functions real(8) triangle,factnm,factr external triangle,factnm,factr wigner6j=0.d0 if ((abs(j1-j2).gt.j3).or.((j1+j2).lt.j3)) return if ((abs(j1-k2).gt.k3).or.((j1+k2).lt.k3)) return if ((abs(k1-j2).gt.k3).or.((k1+j2).lt.k3)) return if ((abs(k1-k2).gt.j3).or.((k1+k2).lt.j3)) return if ((abs(j1).gt.50).or.(abs(j2).gt.50).or.(abs(j3).gt.50).or. & (abs(k1).gt.50).or.(abs(k2).gt.50).or.(abs(k3).gt.50)) then write(*,*) write(*,'("Error(wigner6j): arguments out of range :")') write(*,'(" j1, j2, j3 = ",3I8)') j1,j2,j3 write(*,'(" k1, k2, k3 = ",3I8)') k1,k2,k3 write(*,*) stop end if ! range for summation n0=max(j1+j2+j3,j1+k2+k3,k1+j2+k3,k1+k2+j3) n1=min(j1+j2+k1+k2,j2+j3+k2+k3,j1+j3+k1+k3) ! Racah formula summation sum=0.d0 do n=n0,n1 t1=dble((-1)**n)*factr(n+1,n-(j1+j2+j3)) t2=factnm(n-(j1+k2+k3),1)*factnm(n-(k1+j2+k3),1)*factnm(n-(k1+k2+j3),1) t2=t2*factnm(j1+j2+k1+k2-n,1)*factnm(j2+j3+k2+k3-n,1)*factnm(j1+j3+k1+k3-n,1) sum=sum+t1/t2 end do ! multiply by prefactor wigner6j=sqrt(triangle(j1,j2,j3)*triangle(j1,k2,k3) & *triangle(k1,j2,k3)*triangle(k1,k2,j3))*sum return end function real(8) function triangle(a,b,c) implicit none ! arguments integer, intent(in) :: a,b,c ! external functions real(8) factnm,factr external factnm,factr triangle=factr(a+b-c,a+b+c+1)*factnm(a-b+c,1)*factnm(-a+b+c,1) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/mixbroyden.f900000644000000000000000000000013113543334734015325 xustar0030 mtime=1569569244.651641931 29 atime=1569569240.81664438 30 ctime=1569569244.651641931 elk-6.3.2/src/mixbroyden.f900000644002504400250440000000447013543334734017402 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine mixbroyden(iscl,n,msd,alpha,w0,nu,mu,f,df,u,a,d) use modomp implicit none ! arguments integer, intent(in) :: iscl,n,msd real(8), intent(in) :: alpha,w0 real(8), intent(inout) :: nu(n),mu(n,2) real(8), intent(inout) :: f(n,2),df(n,msd) real(8), intent(inout) :: u(n,msd) real(8), intent(inout) :: a(msd,msd) real(8), intent(out) :: d ! local variables integer jc,kp,kc integer k,l,m integer info,nthd real(8) t1 ! automatic arrays integer ipiv(msd) real(8) c(msd),beta(msd,msd),gamma(msd) real(8) work(msd) ! external functions real(8) dnrm2 external dnrm2 if (n.lt.1) then write(*,*) write(*,'("Error(mixbroyden): n < 1 : ",I8)') n write(*,*) stop end if if (msd.lt.2) then write(*,*) write(*,'("Error(mixbroyden): msd < 2 : ",I8)') msd write(*,*) stop end if ! initialise mixer if (iscl.le.0) then call dcopy(n,nu,1,mu(:,1),1) call dcopy(n,nu,1,mu(:,2),1) f(:,1)=0.d0 df(:,1)=0.d0 u(:,1)=0.d0 a(:,:)=0.d0 d=1.d0 return end if ! current subspace dimension m=min(iscl+1,msd) ! current index modulo m jc=mod(iscl,m)+1 ! previous index modulo 2 kp=mod(iscl-1,2)+1 ! current index modulo 2 kc=mod(iscl,2)+1 f(:,kc)=nu(:)-mu(:,kp) d=sum(f(:,kc)**2) d=sqrt(d/dble(n)) df(:,jc)=f(:,kc)-f(:,kp) t1=dnrm2(n,df(:,jc),1) if (t1.gt.1.d-8) t1=1.d0/t1 call dscal(n,t1,df(:,jc),1) u(:,jc)=alpha*df(:,jc)+t1*(mu(:,kp)-mu(:,kc)) call holdthd(m,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do k=1,m c(k)=dot_product(df(:,k),f(:,kc)) end do !$OMP END DO NOWAIT !$OMP DO do k=1,m a(k,jc)=dot_product(df(:,jc),df(:,k)) a(jc,k)=a(k,jc) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) beta(:,:)=a(:,:) do k=1,m beta(k,k)=beta(k,k)+w0**2 end do ! invert beta call dgetrf(m,m,beta,msd,ipiv,info) if (info.eq.0) call dgetri(m,beta,msd,ipiv,work,m,info) if (info.ne.0) then write(*,*) write(*,'("Error(mixbroyden): could not invert matrix")') write(*,*) stop end if do l=1,m gamma(l)=0.d0 do k=1,m gamma(l)=gamma(l)+c(k)*beta(k,l) end do end do nu(:)=mu(:,kp)+alpha*f(:,kc) do l=1,m call daxpy(n,-gamma(l),u(:,l),1,nu,1) end do call dcopy(n,nu,1,mu(:,kc),1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zftrf.f900000644000000000000000000000013213543334734014301 xustar0030 mtime=1569569244.656641928 30 atime=1569569240.822644376 30 ctime=1569569244.656641928 elk-6.3.2/src/zftrf.f900000644002504400250440000001240313543334734016350 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 Alexey I. Baranov. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zftrf ! !INTERFACE: subroutine zftrf(npv,ivp,vpc,rfmt,rfir,zfp) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! npv : number of P-vectors (in,integer) ! ivp : integer coordinates of the P-vectors (in,integer(3,npv)) ! vpc : P-vectors in Cartesian coordinates (in,real(3,npv)) ! rfmt : real muffin-tin function (in,real(npmtmax,natmtot)) ! rfir : real interstitial function (in,real(ngtot)) ! zfp : Fourier expansion coefficients of the real-space function ! (out,complex(npv)) ! !DESCRIPTION: ! Given a real function periodic in the unit cell, $f({\bf r})$, this routine ! calculates its complex Fourier expansion coefficients: ! $$ f({\bf P})=\frac{1}{\Omega}\int d^3r\,f({\bf r})\tilde{\Theta}({\bf r}) ! e^{-i{\bf P}\cdot{\bf r}} ! +\frac{4\pi}{\Omega}\sum_{\alpha}e^{-i{\bf P}\cdot{\bf R}_{\alpha}} ! \sum_{lm}(-i)^l Y_{lm}(\hat{\bf P}) ! \int_{0}^{R_{\alpha}}dr\,r^2 j_{l}(|{\bf P}|r)f_{lm}^{\alpha}(r), $$ ! where $\tilde{\Theta}$ is the smooth characteristic function of the ! interstitial region, $\Omega$ is the unit cell volume and $R_{\alpha}$ is ! the muffin-tin radius of atom $\alpha$. ! ! !REVISION HISTORY: ! Created July 2010 (Alexey I. Baranov) ! Modified, November 2010 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: npv,ivp(3,npv) real(8), intent(in) :: vpc(3,npv) real(8), intent(in) :: rfmt(npmtmax,natmtot),rfir(ngtot) complex(8), intent(out) :: zfp(npv) ! local variables integer is,ia,ias integer nrc,nrci,irco,irc integer lmax,l,m,lm,npci,i integer ip,ig,ifg real(8) p,t0,t1,t2,t3 complex(8) z1,z2,z3 ! automatic arrays real(8) jl(0:lmaxo,nrcmtmax) real(8) fr1(nrcmtmax),fr2(nrcmtmax),rfmt1(npcmtmax) complex(8) ylm(lmmaxo) ! allocatable arrays complex(8), allocatable :: zfft(:),zfmt(:,:) allocate(zfft(ngtot),zfmt(npcmtmax,natmtot)) ! zero the coefficients zfp(:)=0.d0 !---------------------------! ! interstitial part ! !---------------------------! ! Fourier transform to G-space zfft(:)=rfir(:) call zfftifc(3,ngridg,-1,zfft) ! find coefficients for all required input vectors do ip=1,npv if ((ivp(1,ip).ge.intgv(1,1)).and.(ivp(1,ip).le.intgv(2,1)).and. & (ivp(2,ip).ge.intgv(1,2)).and.(ivp(2,ip).le.intgv(2,2)).and. & (ivp(3,ip).ge.intgv(1,3)).and.(ivp(3,ip).le.intgv(2,3))) then ig=ivgig(ivp(1,ip),ivp(2,ip),ivp(3,ip)) zfp(ip)=zfft(igfft(ig)) end if end do !-------------------------! ! muffin-tin part ! !-------------------------! ! convert function from real to complex spherical harmonic expansion on coarse ! radial mesh do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,rfmt(:,ias),rfmt1) call rtozfmt(nrc,nrci,rfmt1,zfmt(:,ias)) end do ! remove continuation of interstitial function into muffin-tin do ig=1,ngtot ifg=igfft(ig) ! conjugate spherical harmonics Y_lm*(G) call genylmv(lmaxo,vgc(:,ig),ylm) ylm(:)=conjg(ylm(:)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 npci=npcmti(is) ! generate spherical Bessel functions lmax=lmaxi do irc=1,nrc t1=gc(ig)*rcmt(irc,is) call sbessel(lmax,t1,jl(:,irc)) if (irc.eq.nrci) lmax=lmaxo end do do ia=1,natoms(is) ias=idxas(ia,is) ! structure factor t1=dot_product(vgc(:,ig),atposc(:,ia,is)) z1=fourpi*zfft(ifg)*cmplx(cos(t1),sin(t1),8) lm=0 do l=0,lmaxi z2=z1*zil(l) do m=-l,l lm=lm+1 z3=z2*ylm(lm) i=lm do irc=1,nrci zfmt(i,ias)=zfmt(i,ias)-z3*jl(l,irc) i=i+lmmaxi end do end do end do lm=0 do l=0,lmaxo z2=z1*zil(l) do m=-l,l lm=lm+1 z3=z2*ylm(lm) i=npci+lm do irc=irco,nrc zfmt(i,ias)=zfmt(i,ias)-z3*jl(l,irc) i=i+lmmaxo end do end do end do end do end do end do t0=fourpi/omega ! loop over input P-vectors do ip=1,npv ! length of P-vector p=sqrt(vpc(1,ip)**2+vpc(2,ip)**2+vpc(3,ip)**2) ! spherical harmonics Y_lm(P) call genylmv(lmaxo,vpc(:,ip),ylm) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) ! generate spherical Bessel functions lmax=lmaxi do irc=1,nrc t1=p*rcmt(irc,is) call sbessel(lmax,t1,jl(:,irc)) if (irc.eq.nrci) lmax=lmaxo end do do ia=1,natoms(is) ias=idxas(ia,is) lmax=lmaxi i=0 do irc=1,nrc i=i+1 z1=jl(0,irc)*zfmt(i,ias)*ylm(1) lm=1 do l=1,lmax lm=lm+1 i=i+1 z2=zfmt(i,ias)*ylm(lm) do m=1-l,l lm=lm+1 i=i+1 z2=z2+zfmt(i,ias)*ylm(lm) end do z1=z1+jl(l,irc)*zilc(l)*z2 end do fr1(irc)=dble(z1); fr2(irc)=aimag(z1) if (irc.eq.nrci) lmax=lmaxo end do t1=dot_product(wrcmt(1:nrc,is),fr1(1:nrc)) t2=dot_product(wrcmt(1:nrc,is),fr2(1:nrc)) ! conjugate structure factor t3=-dot_product(vpc(:,ip),atposc(:,ia,is)) z1=t0*cmplx(cos(t3),sin(t3),8) zfp(ip)=zfp(ip)+z1*cmplx(t1,t2,8) end do end do end do deallocate(zfft,zfmt) return end subroutine ! EOC elk-6.3.2/src/PaxHeaders.21352/gensocfr.f900000644000000000000000000000013213543334734014754 xustar0030 mtime=1569569244.660641925 30 atime=1569569240.827644373 30 ctime=1569569244.660641925 elk-6.3.2/src/gensocfr.f900000644002504400250440000000215213543334734017023 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine gensocfr use modmain use modomp implicit none ! local variables integer is,ias,nthd integer nr,nri,ir,irc real(8) cso,rm ! allocatable arrays real(8), allocatable :: vr(:),dvr(:) if (.not.spinorb) return ! coefficient of spin-orbit coupling cso=socscf/(4.d0*solsc**2) call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vr,dvr,is,nr,nri) & !$OMP PRIVATE(irc,ir,rm) & !$OMP NUM_THREADS(nthd) allocate(vr(nrmtmax),dvr(nrmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) ! radial derivative of the spherical part of the Kohn-Sham potential call rfmtlm(1,nr,nri,vsmt(:,ias),vr) vr(1:nr)=vr(1:nr)*y00 call fderiv(1,nr,rlmt(:,1,is),vr,dvr) irc=0 do ir=1,nr,lradstp irc=irc+1 rm=1.d0-2.d0*cso*vr(ir) socfr(irc,ias)=cso*dvr(ir)/(rsp(ir,is)*rm**2) end do end do !$OMP END DO deallocate(vr,dvr) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getcfgq.f900000644000000000000000000000013113543334734014565 xustar0030 mtime=1569569244.664641923 29 atime=1569569240.83264437 30 ctime=1569569244.664641923 elk-6.3.2/src/getcfgq.f900000644002504400250440000000711413543334734016640 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getcfgq(fname,vpl,ng,m,cf) use modmain implicit none ! arguments character(*), intent(in) :: fname real(8), intent(in) :: vpl(3) integer, intent(in) :: ng,m complex(8), intent(out) :: cf(ng,ng,m) ! local variables integer isym,iq,i integer igq,jgq,igp,jgp integer lspl,ilspl integer recl,ng_,m_ real(8) vql_(3),si(3,3) real(8) vgql(3),v(3),t1 complex(8) z1 ! automatic arrays logical done(ng) ! allocatable arrays integer, allocatable :: map(:) real(8), allocatable :: vgpl(:,:) complex(8), allocatable :: cf_(:,:,:),x(:) ! find the equivalent reduced q-point and symmetry which rotates vql to vpl call findqpt(vpl,isym,iq) ! find the record length inquire(iolength=recl) vql(:,1),ng,m,cf !$OMP CRITICAL(u180) do i=1,2 open(180,file=trim(fname),form='UNFORMATTED',access='DIRECT',recl=recl,err=10) read(180,rec=iq,err=10) vql_,ng_,m_,cf exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(getcfgq): unable to read from ",A)') trim(fname) write(*,*) stop end if close(180) end do !$OMP END CRITICAL(u180) t1=abs(vql(1,iq)-vql_(1))+abs(vql(2,iq)-vql_(2))+abs(vql(3,iq)-vql_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getcfgq): differing vectors for q-point ",I8)') iq write(*,'(" current : ",3G18.10)') vql(:,iq) write(*,'(" file : ",3G18.10)') vql_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if if (ng.ne.ng_) then write(*,*) write(*,'("Error(getcfgq): differing ng for q-point ",I8)') iq write(*,'(" current : ",I8)') ng write(*,'(" file : ",I8)') ng_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if if (m.ne.m_) then write(*,*) write(*,'("Error(getcfgq): differing m for q-point ",I8)') iq write(*,'(" current : ",I8)') m write(*,'(" file : ",I8)') m_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if ! if p = q then return t1=abs(vpl(1)-vql(1,iq))+abs(vpl(2)-vql(2,iq))+abs(vpl(3)-vql(3,iq)) if (t1.lt.epslat) return ! allocate local arrays allocate(map(ng),vgpl(3,ng)) allocate(cf_(ng,ng,m),x(ng)) ! perform translation operation and store in temporary array if (tv0symc(isym)) then ! translation vector is zero cf_(:,:,:)=cf(:,:,:) else ! non-zero translation vector gives a phase factor v(:)=vtcsymc(:,isym) do igq=1,ng t1=-(vgc(1,igq)*v(1)+vgc(2,igq)*v(2)+vgc(3,igq)*v(3)) x(igq)=cmplx(cos(t1),sin(t1),8) end do do jgq=1,ng z1=conjg(x(jgq)) do igq=1,ng cf_(igq,jgq,:)=z1*x(igq)*cf(igq,jgq,:) end do end do end if ! index to spatial rotation in lattice point group lspl=lsplsymc(isym) ! the inverse of the spatial symmetry ilspl=isymlat(lspl) si(:,:)=dble(symlat(:,:,ilspl)) ! find the map from {G+q} to {G+p} map(:)=0 do igp=1,ng vgpl(:,igp)=dble(ivg(:,igp))+vpl(:) end do done(:)=.false. i=1 do igq=1,ng vgql(:)=dble(ivg(:,igq))+vql(:,iq) call r3mtv(si,vgql,v) do igp=i,ng if (done(igp)) cycle t1=abs(v(1)-vgpl(1,igp))+abs(v(2)-vgpl(2,igp))+abs(v(3)-vgpl(3,igp)) if (t1.lt.epslat) then map(igp)=igq done(igp)=.true. exit end if end do do igp=i,ng if (.not.done(igp)) then i=igp exit end if end do end do ! rotate correlation function (passive transformation) do jgp=1,ng jgq=map(jgp) do igp=1,ng igq=map(igp) if ((igq.eq.0).or.(jgq.eq.0)) then cf(igp,jgp,:)=0.d0 else cf(igp,jgp,:)=cf_(igq,jgq,:) end if end do end do deallocate(map,vgpl,cf_,x) return end subroutine elk-6.3.2/src/PaxHeaders.21352/wigner3j.f900000644000000000000000000000013213543334734014676 xustar0030 mtime=1569569244.669641919 30 atime=1569569240.837644367 30 ctime=1569569244.669641919 elk-6.3.2/src/wigner3j.f900000644002504400250440000000510013543334734016741 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: wigner3j ! !INTERFACE: real(8) function wigner3j(j1,j2,j3,m1,m2,m3) ! !INPUT/OUTPUT PARAMETERS: ! j1, j2, j3 : angular momentum quantum numbers (in,integer) ! m1, m2, m3 : magnetic quantum numbers (in,integer) ! !DESCRIPTION: ! Returns the Wigner $3j$-symbol. There are many equivalent formulae for ! the $3j$-symbols, the following provides high accuracy for $j\le 50$ ! \begin{align*} ! &\begin{pmatrix} j_1 & j_2 & j_3 \\ m_1 & m_2 & m_3 \end{pmatrix}= \\ ! &(-1)^{j1+j2+m3}\sqrt{\frac{(j_1+m_1)!\,(j_2+m_2)!\,(j_3+m_3)!\, ! (j_3-m_3)!\,(j_1-m_1)!\,(j_2-m_2)!}{(j_2-j_1+j_3)!\,(j_1-j_2+j_3)!\, ! (j_1+j_2-j_3)!\,(1+j_1+j_2+j_3)!}}\,\sum_k(-1)^k \\ ! &\frac{(j_2-j_1+j_3)!\,(j_1-j_2+j_3)!\,(j_1+j_2-j_3)!}{(j_3-j_1-m_2+k)!\, ! (j_3-j_2+m_1+k)!\,(j_1+j_2-j_3-k)!\,k!\,(j_1-m_1-k)!\,(j_2+m_2-k)!}, ! \end{align*} ! where the sum is over all integers $k$ for which the factorials in the ! summand are non-negative. ! ! !REVISION HISTORY: ! Created November 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: j1,j2,j3 integer, intent(in) :: m1,m2,m3 ! local variables integer k,k1,k2,l1,l2,l3,n1,n2 real(8) sgn,sum,t1 ! external functions real(8) factnm,factr external factnm,factr ! check input variables if ((j1.lt.0).or.(j2.lt.0).or.(j3.lt.0).or.(abs(m1).gt.j1).or.(abs(m2).gt.j2) & .or.(abs(m3).gt.j3)) then write(*,*) write(*,'("Error(wigner3j): invalid arguments :")') write(*,'("j1 = ",I8," j2 = ",I8," j3 = ",I8)') j1,j2,j3 write(*,'("m1 = ",I8," m2 = ",I8," m3 = ",I8)') m1,m2,m3 write(*,*) stop end if if ((j1.eq.0).and.(j2.eq.0).and.(j3.eq.0)) then wigner3j=1.d0 return end if if ((j1.gt.50).or.(j2.gt.50).or.(j3.gt.50)) then write(*,*) write(*,'("Error(wigner3j): angular momenta out of range : ",3I8)') j1,j2,j3 write(*,*) stop end if l1=j2-j1+j3 l2=j1-j2+j3 l3=j1+j2-j3 if ((m1+m2+m3.ne.0).or.(l1.lt.0).or.(l2.lt.0).or.(l3.lt.0)) then wigner3j=0.d0 return end if n1=j1-m1 n2=j2+m2 k1=max(0,n1-l2,n2-l1) k2=min(l3,n1,n2) if (mod(k1-j1+j2+m3,2).ne.0) then sgn=-1.d0 else sgn=1.d0 end if sum=0.d0 do k=k1,k2 t1=sgn*factr(l1,l1-n2+k)*factr(l2,l2-n1+k)*factr(l3,l3-k) sum=sum+t1/(factnm(k,1)*factnm(n1-k,1)*factnm(n2-k,1)) sgn=-sgn end do t1=factr(j1+m1,l1)*factr(j2+m2,l2)*factr(j3+m3,l3) t1=t1*factr(j3-m3,1+j1+j2+j3)*factnm(j1-m1,1)*factnm(j2-m2,1) wigner3j=sum*sqrt(t1) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/moke.f900000644000000000000000000000013213543334734014101 xustar0030 mtime=1569569244.673641917 30 atime=1569569240.842644364 30 ctime=1569569244.673641917 elk-6.3.2/src/moke.f900000644002504400250440000000413113543334734016147 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 S. Sharma, J. K. Dewhurst and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine moke use modmain implicit none ! local variables integer iw,ios complex(8) z1,z2,z3 ! allocatable arrays real(8), allocatable :: w(:),sig1(:,:),sig2(:,:) complex(8), allocatable :: kerr(:) ! calculate dielectric function for the 11 and 12 components noptcomp=2 optcomp(1,1)=1 optcomp(2,1)=1 optcomp(1,2)=1 optcomp(2,2)=2 call dielectric ! allocate local arrays allocate(w(nwplot)) allocate(sig1(nwplot,2),sig2(nwplot,2)) allocate(kerr(nwplot)) ! read diagonal contribution to optical conductivity open(50,file='SIGMA_11.OUT',status='OLD',form='FORMATTED',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(moke): error opening SIGMA_11.OUT")') write(*,*) stop end if do iw=1,nwplot read(50,'(2G18.10)') w(iw),sig1(iw,1) end do read(50,*) do iw=1,nwplot read(50,'(2G18.10)') w(iw),sig2(iw,1) end do close(50) ! read off-diagonal contribution to optical conductivity open(50,file='SIGMA_12.OUT',status='OLD',form='FORMATTED',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(moke): error opening SIGMA_12.OUT")') write(*,*) stop end if do iw=1,nwplot read(50,'(2G18.10)') w(iw),sig1(iw,2) end do read(50,*) do iw=1,nwplot read(50,'(2G18.10)') w(iw),sig2(iw,2) end do close(50) ! calculate the complex Kerr angle do iw=1,nwplot if (w(iw).gt.0.d0) then z1=cmplx(sig1(iw,1),sig2(iw,1),8) z2=cmplx(sig1(iw,2),sig2(iw,2),8) z3=z1*sqrt(1.d0+fourpi*zi*z1/w(iw)) if (abs(z3).gt.1.d-8) then kerr(iw)=-z2/z3 else kerr(iw)=0.d0 end if else kerr(iw)=0.d0 end if end do open(50,file='KERR.OUT',form='FORMATTED') do iw=1,nwplot write(50,'(2G18.10)') w(iw),dble(kerr(iw))*180.d0/pi end do write(50,'(" ")') do iw=1,nwplot write(50,'(2G18.10)') w(iw),aimag(kerr(iw))*180.d0/pi end do close(50) write(*,*) write(*,'("Info(moke):")') write(*,'(" complex Kerr angle in degrees written to KERR.OUT")') deallocate(w,sig1,sig2,kerr) return end subroutine elk-6.3.2/src/PaxHeaders.21352/sfacinit.f900000644000000000000000000000013113543334734014745 xustar0030 mtime=1569569244.678641914 29 atime=1569569240.84764436 30 ctime=1569569244.678641914 elk-6.3.2/src/sfacinit.f900000644002504400250440000000353713543334734017025 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 A. I. Baranov and F. Wagner. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine sfacinit use modmain use modpw implicit none ! local variables logical trhonorm0 integer ik,ist,is,ias ! allocatable arrays real(8), allocatable :: occcr0(:,:) ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! use existing density if wsfac is default if ((wsfac(1).le.-1.d6).or.(wsfac(2).ge.1.d6)) goto 10 ! make a copy of the core state occupancies allocate(occcr0(nstspmax,natmtot)) occcr0(:,:)=occcr(:,:) ! zero the core state occupancies for eigenvalues not in energy window do ias=1,natmtot is=idxis(ias) do ist=1,nstsp(is) if (spcore(ist,is)) then if ((evalcr(ist,ias).lt.wsfac(1)).or.(evalcr(ist,ias).gt.wsfac(2))) then occcr(ist,ias)=0.d0 end if end if end do end do ! generate the core wavefunctions and densities call gencore ! restore the core state occupancies occcr(:,:)=occcr0(:,:) deallocate(occcr0) ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr do ik=1,nkpt ! get the eigenvalues and occupancies from file call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) ! zero occupancies for eigenvalues not in energy window do ist=1,nstsv if ((evalsv(ist,ik).lt.wsfac(1)).or.(evalsv(ist,ik).gt.wsfac(2))) then occsv(ist,ik)=0.d0 end if end do end do ! computed density should not be normalised trhonorm0=trhonorm trhonorm=.false. ! generate the density and magnetisation call rhomag trhonorm=trhonorm0 10 continue ! generate the H-vectors call genhvec return end subroutine elk-6.3.2/src/PaxHeaders.21352/sfacrho.f900000644000000000000000000000013213543334734014573 xustar0030 mtime=1569569244.682641911 30 atime=1569569240.853644357 30 ctime=1569569244.682641911 elk-6.3.2/src/sfacrho.f900000644002504400250440000000511213543334734016641 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 A. I. Baranov and F. Wagner. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: sfacrho ! !INTERFACE: subroutine sfacrho ! !USES: use modmain use modpw use modtest ! !DESCRIPTION: ! Outputs X-ray structure factors, i.e. the Fourier transform coefficients of ! the total electron density ! $$ F({\bf H})=\int_{\Omega}d^3r\,\rho({\bf r})e^{i{\bf H}\cdot{\bf r}}, $$ ! to the file {\tt SFACRHO.OUT}. The lattice coordinates $(h,k,l)$ of the ! $\bf H$-vectors in this file are transformed by the matrix {\tt vhmat}. If ! and energy window is set using the variable {\tt wsfac}, then only those ! states within the window are used to compute the density. See also routines ! {\tt zftrf} and {\tt genhvec}. ! ! !REVISION HISTORY: ! Created July 2010 (Alexey I. Baranov) ! Added multiplicity of the H-vectors, Oct. 2010 (Alexey I. Baranov) !EOP !BOC implicit none ! local variables integer ih,iv(3) real(8) v(3),a,b,r ! allocatable arrays complex(8), allocatable :: zrhoh(:) ! initialise the structure factor specific variables call sfacinit ! calculate the density structure factors allocate(zrhoh(nhvec)) call zftrf(nhvec,ivh,vhc,rhomt,rhoir,zrhoh) open(50,file='SFACRHO.OUT',form='FORMATTED') write(50,*) write(50,'("h k l indices transformed by vhmat matrix:")') write(50,'(3G18.10)') vhmat(:,1) write(50,'(3G18.10)') vhmat(:,2) write(50,'(3G18.10)') vhmat(:,3) write(50,*) write(50,'(" h k l multipl. |H| Re(F)& & Im(F) |F|")') write(50,*) do ih=1,nhvec ! apply transformation matrix v(:)=vhmat(:,1)*dble(ivh(1,ih)) & +vhmat(:,2)*dble(ivh(2,ih)) & +vhmat(:,3)*dble(ivh(3,ih)) ! in crystallography the forward Fourier transform of real-space density is ! usually done with positive phase and without 1/omega prefactor a=dble(zrhoh(ih))*omega b=-aimag(zrhoh(ih))*omega r=abs(zrhoh(ih))*omega iv(:)=nint(v(:)) if ((abs(v(1)-iv(1)).le.epslat).and. & (abs(v(2)-iv(2)).le.epslat).and. & (abs(v(3)-iv(3)).le.epslat)) then ! integer hkl write(50,'(4I7,4G16.8)') iv(:),mulh(ih),hc(ih),a,b,r else ! non-integer hkl write(50,'(3F7.2,I7,4G16.8)') v(:),mulh(ih),hc(ih),a,b,r end if end do close(50) write(*,*) write(*,'("Info(sfacrho): density structure factors written to SFACRHO.OUT")') write(*,*) write(*,'(" Energy window : ",2G18.10)') wsfac(:) ! write the structure factors to test file call writetest(195,'density structure factors',nv=nhvec,tol=1.d-5,zva=zrhoh(:)) deallocate(zrhoh) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/sfacmag.f900000644000000000000000000000013213543334734014547 xustar0030 mtime=1569569244.687641908 30 atime=1569569240.858644353 30 ctime=1569569244.687641908 elk-6.3.2/src/sfacmag.f900000644002504400250440000000551513543334734016624 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 A. I. Baranov and F. Wagner. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: sfacmag ! !INTERFACE: subroutine sfacmag ! !USES: use modmain use modpw use modtest ! !DESCRIPTION: ! Outputs magnetic structure factors, i.e. the Fourier transform coefficients ! of each component $j$ of magnetization ${\bf m}({\bf r})$, ! $$ F_j({\bf H})=\int_{\Omega}d^3r\,m_j({\bf r})e^{i{\bf H}\cdot{\bf r}}, $$ ! to the files {\tt SFACMAG\_j.OUT}. The lattice coordinates $(h,k,l)$ of ! $\bf H$-vectors in this file are transformed by the matrix {\tt vhmat}. See ! also routines {\tt zftrf} and {\tt genhvec}. ! ! !REVISION HISTORY: ! Created July 2010 (Alexey I. Baranov) ! Added multiplicity of the H-vectors, Oct. 2010 (Alexey I. Baranov) !EOP !BOC implicit none ! local variables integer idm,ih,iv(3) real(8) v(3),a,b,r character(256) fname ! allocatable arrays complex(8), allocatable :: zmagh(:) if (.not.spinpol) return ! initialise the structure factor specific variables call sfacinit ! generate the magnetic structure factors allocate(zmagh(nhvec)) do idm=1,ndmag call zftrf(nhvec,ivh,vhc,magmt(:,:,idm),magir(:,idm),zmagh) write(fname,'("SFACMAG_",I1.1,".OUT")') idm open(50,file=trim(fname),form='FORMATTED') write(50,*) write(50,'("h k l indices transformed by vhmat matrix:")') write(50,'(3G18.10)') vhmat(:,1) write(50,'(3G18.10)') vhmat(:,2) write(50,'(3G18.10)') vhmat(:,3) write(50,*) write(50,'(" h k l multipl. |H| Re(F)& & Im(F) |F|")') write(50,*) do ih=1,nhvec ! apply transformation matrix v(:)=vhmat(:,1)*dble(ivh(1,ih)) & +vhmat(:,2)*dble(ivh(2,ih)) & +vhmat(:,3)*dble(ivh(3,ih)) ! in crystallography the forward Fourier transform of real-space density is ! usually done with positive phase and without 1/omega prefactor a=dble(zmagh(ih))*omega b=-aimag(zmagh(ih))*omega r=abs(zmagh(ih))*omega iv(:)=nint(v(:)) if ((abs(v(1)-iv(1)).le.epslat).and. & (abs(v(2)-iv(2)).le.epslat).and. & (abs(v(3)-iv(3)).le.epslat)) then ! integer hkl write(50,'(4I7,4G16.8)') iv(:),mulh(ih),hc(ih),a,b,r else ! non-integer hkl write(50,'(3F7.2,I7,4G16.8)') v(:),mulh(ih),hc(ih),a,b,r end if end do close(50) end do write(*,*) write(*,'("Info(sfacmag): magnetic structure factors written to & &SFACMAG_j.OUT")') write(*,'(" for magnetic components j = ",3I2)') (idm,idm=1,ndmag) if (ndmag.eq.1) then write(*,'(" (this corresponds to the z-component of the magnetisation)")') end if write(*,*) write(*,'(" Energy window : ",2G18.10)') wsfac(:) ! write the structure factors to test file call writetest(196,'magnetic structure factors',nv=nhvec,tol=1.d-4,zva=zmagh(:)) deallocate(zmagh) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gradwfcr2.f900000644000000000000000000000013213543334734015027 xustar0030 mtime=1569569244.691641905 30 atime=1569569240.862644351 30 ctime=1569569244.691641905 elk-6.3.2/src/gradwfcr2.f900000644002504400250440000000257213543334734017104 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gradwfcr2(gwf2mt) use modmain implicit none ! arguments real(8), intent(inout) :: gwf2mt(npmtmax,natmtot) ! local variables integer ist,is,ias integer nr,nri,iro,ir integer np,l,m,lm,i ! allocatable arrays complex(8), allocatable :: wfmt(:),gwfmt(:,:),zfmt(:) allocate(wfmt(npmtmax),gwfmt(npmtmax,3),zfmt(npmtmax)) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 np=npmt(is) do ist=1,nstsp(is) if (spcore(ist,is).and.(ksp(ist,is).eq.lsp(ist,is)+1)) then l=lsp(ist,is) do m=-l,l lm=idxlm(l,m) wfmt(1:np)=0.d0 i=lm do ir=1,nri wfmt(i)=rwfcr(ir,1,ist,ias)/rsp(ir,is) i=i+lmmaxi end do do ir=iro,nr wfmt(i)=rwfcr(ir,1,ist,ias)/rsp(ir,is) i=i+lmmaxo end do call gradzfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),wfmt,npmtmax,gwfmt) do i=1,3 call zbsht(nr,nri,gwfmt(:,i),zfmt) ! factor of 2 from spin gwf2mt(1:np,ias)=gwf2mt(1:np,ias) & +2.d0*(dble(zfmt(1:np))**2+aimag(zfmt(1:np))**2) end do end do end if end do ! end loops over atoms end do deallocate(wfmt,gwfmt,zfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/symrvfmt.f900000644000000000000000000000013213543334734015035 xustar0030 mtime=1569569244.695641903 30 atime=1569569240.868644347 30 ctime=1569569244.695641903 elk-6.3.2/src/symrvfmt.f900000644002504400250440000000704413543334734017111 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine symrvfmt(tspin,tnc,nr,nri,np,ld,rvfmt) use modmain implicit none ! arguments logical, intent(in) :: tspin,tnc integer, intent(in) :: nr(nspecies),nri(nspecies),np(nspecies) integer, intent(in) :: ld real(8), intent(inout) :: rvfmt(ld,natmtot,*) ! local variables integer is,ia,ja,ias,jas integer nd,isym,lspl,lspn,i real(8) sc(3,3),v1(3),v2(3),t0 ! automatic arrays logical done(natmmax) ! allocatable arrays real(8), allocatable :: rvfmt1(:,:,:),rvfmt2(:,:) ! dimension of the vector field if (tnc) then nd=3 else nd=1 end if allocate(rvfmt1(npmtmax,natmmax,nd),rvfmt2(npmtmax,nd)) t0=1.d0/dble(nsymcrys) do is=1,nspecies ! make copy of vector field for all atoms of current species do i=1,nd do ia=1,natoms(is) ias=idxas(ia,is) call dcopy(np(is),rvfmt(:,ias,i),1,rvfmt1(:,ia,i),1) end do end do done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) rvfmt(1:np(is),ias,1:nd)=0.d0 ! begin loop over crystal symmetries do isym=1,nsymcrys ! equivalent atom ja=ieqatom(ia,is,isym) ! parallel transport of vector field lspl=lsplsymc(isym) do i=1,nd call rotrfmt(symlatc(:,:,lspl),nr(is),nri(is),rvfmt1(:,ja,i), & rvfmt2(:,i)) end do if (tspin) then ! global spin proper rotation matrix in Cartesian coordinates lspn=lspnsymc(isym) sc(:,:)=symlatd(lspn)*symlatc(:,:,lspn) else ! set spin rotation equal to spatial rotation lspn=lspl sc(:,:)=symlatc(:,:,lspl) end if ! global spin rotation of vector field if (tnc) then ! non-collinear case do i=1,np(is) v1(:)=rvfmt2(i,:) v2(1)=sc(1,1)*v1(1)+sc(1,2)*v1(2)+sc(1,3)*v1(3) v2(2)=sc(2,1)*v1(1)+sc(2,2)*v1(2)+sc(2,3)*v1(3) v2(3)=sc(3,1)*v1(1)+sc(3,2)*v1(2)+sc(3,3)*v1(3) rvfmt(i,ias,1:3)=rvfmt(i,ias,1:3)+v2(1:3) end do else ! collinear case call daxpy(np(is),sc(3,3),rvfmt2,1,rvfmt(:,ias,1),1) end if ! end loop over crystal symmetries end do ! normalise do i=1,nd call dscal(np(is),t0,rvfmt(:,ias,i),1) end do ! mark atom as done done(ia)=.true. ! rotate into equivalent atoms do isym=1,nsymcrys ja=ieqatom(ia,is,isym) if (done(ja)) cycle jas=idxas(ja,is) ! parallel transport of vector field (using operation inverse) lspl=isymlat(lsplsymc(isym)) do i=1,nd call rotrfmt(symlatc(:,:,lspl),nr(is),nri(is),rvfmt(:,ias,i), & rvfmt(:,jas,i)) end do if (tspin) then ! inverse of global proper rotation matrix in Cartesian coordinates lspn=isymlat(lspnsymc(isym)) sc(:,:)=symlatd(lspn)*symlatc(:,:,lspn) else ! set spin rotation equal to spatial rotation lspn=lspl sc(:,:)=symlatc(:,:,lspl) end if ! global spin rotation of vector field if (tnc) then ! non-collinear case do i=1,np(is) v1(1:3)=rvfmt(i,jas,1:3) v2(1)=sc(1,1)*v1(1)+sc(1,2)*v1(2)+sc(1,3)*v1(3) v2(2)=sc(2,1)*v1(1)+sc(2,2)*v1(2)+sc(2,3)*v1(3) v2(3)=sc(3,1)*v1(1)+sc(3,2)*v1(2)+sc(3,3)*v1(3) rvfmt(i,jas,1:3)=v2(1:3) end do else ! collinear case call dscal(np(is),sc(3,3),rvfmt(:,jas,1),1) end if ! mark atom as done done(ja)=.true. end do ! end loop over atoms and species end do end do deallocate(rvfmt1,rvfmt2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/oepmain.f900000644000000000000000000000012613543334734014601 xustar0028 mtime=1569569244.7006419 30 atime=1569569240.873644344 28 ctime=1569569244.7006419 elk-6.3.2/src/oepmain.f900000644002504400250440000001270213543334734016647 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine oepmain use modmain use modmpi use modomp implicit none ! local variables integer ik,idm,is,ias integer nrc,nrci,np,npc integer n,nthd,it real(8) t1 ! allocatable arrays real(8), allocatable :: dvxmt(:,:),dvxir(:) real(8), allocatable :: dbxmt(:,:,:),dbxir(:,:) real(8), allocatable :: rfmt1(:,:),rfmt2(:),rfir(:) real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) complex(8), allocatable :: vclcv(:,:,:,:),vclvv(:,:,:) ! external functions real(8) rfinpc external rfinpc ! initialise the OEP exchange potential if (iscl.le.0) then call initoep return end if ! calculate Coulomb matrix elements allocate(vclcv(ncrmax,natmtot,nstsv,nkpt),vclvv(nstsv,nstsv,nkpt)) call oepvcl(vclcv,vclvv) ! allocate local arrays allocate(dvxmt(npcmtmax,natmtot),dvxir(ngtot)) allocate(rfmt1(npmtmax,natmtot),rfir(ngtot)) if (spinpol) then allocate(dbxmt(npcmtmax,natmtot,ndmag),dbxir(ngtot,ndmag)) allocate(rvfmt(npmtmax,natmtot,ndmag),rvfir(ngtot,ndmag)) end if !------------------------------! ! start iteration loop ! !------------------------------! do it=1,maxitoep if (mp_mpi.and.(mod(it,10).eq.0)) then write(*,'("Info(oepmain): done ",I4," iterations of ",I4)') it,maxitoep end if ! zero the residuals dvxmt(:,:)=0.d0 dvxir(:)=0.d0 if (spinpol) then dbxmt(:,:,:)=0.d0 dbxir(:,:)=0.d0 end if ! calculate the k-dependent residuals call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call oepresk(ik,vclcv,vclvv,dvxmt,dvxir,dbxmt,dbxir) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! add residuals from each process and redistribute if (np_mpi.gt.1) then n=npcmtmax*natmtot call mpi_allreduce(mpi_in_place,dvxmt,n,mpi_double_precision,mpi_sum, & mpicom,ierror) call mpi_allreduce(mpi_in_place,dvxir,ngtot,mpi_double_precision, & mpi_sum,mpicom,ierror) if (spinpol) then n=n*ndmag call mpi_allreduce(mpi_in_place,dbxmt,n,mpi_double_precision,mpi_sum, & mpicom,ierror) n=ngtot*ndmag call mpi_allreduce(mpi_in_place,dbxir,n,mpi_double_precision,mpi_sum, & mpicom,ierror) end if end if ! convert muffin-tin residuals to spherical harmonics call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(is,nrc,nrci,idm) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfsht(nrc,nrci,dvxmt(:,ias),rfmt1(:,ias)) do idm=1,ndmag call rfsht(nrc,nrci,dbxmt(:,ias,idm),rvfmt(:,ias,idm)) end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! symmetrise the residuals call symrf(nrcmt,nrcmti,npcmt,npmtmax,rfmt1,dvxir) if (spinpol) call symrvf(.true.,ncmag,nrcmt,nrcmti,npcmt,npmtmax,rvfmt,dbxir) ! magnitude of residuals resoep=sqrt(abs(rfinpc(npmtmax,rfmt1,dvxir,rfmt1,dvxir))) do idm=1,ndmag t1=rfinpc(npmtmax,rvfmt(:,:,idm),dbxir(:,idm),rvfmt(:,:,idm),dbxir(:,idm)) resoep=resoep+sqrt(abs(t1)) end do resoep=resoep/omega ! update exchange potential and magnetic field call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt2,is,nrc,nrci,npc,idm) & !$OMP NUM_THREADS(nthd) allocate(rfmt2(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! convert residual to spherical coordinates call rbsht(nrc,nrci,rfmt1(:,ias),rfmt2) ! subtract from exchange potential vxmt(1:npc,ias)=vxmt(1:npc,ias)-tauoep*rfmt2(1:npc) ! repeat for exchange magnetic field do idm=1,ndmag call rbsht(nrc,nrci,rvfmt(:,ias,idm),rfmt2) bxmt(1:npc,ias,idm)=bxmt(1:npc,ias,idm)-tauoep*rfmt2(1:npc) end do end do !$OMP END DO deallocate(rfmt2) !$OMP END PARALLEL call freethd(nthd) vxir(:)=vxir(:)-tauoep*dvxir(:) do idm=1,ndmag bxir(:,idm)=bxir(:,idm)-tauoep*dbxir(:,idm) end do ! end iteration loop end do ! convert the exchange potential and field to spherical harmonics call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(is,nrc,nrci,idm) & !$OMP NUM_THREADS(nthd) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfsht(nrc,nrci,vxmt(:,ias),rfmt1(:,ias)) do idm=1,ndmag call rfsht(nrc,nrci,bxmt(:,ias,idm),rvfmt(:,ias,idm)) end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! convert potential and field from a coarse to a fine radial mesh call rfmtctof(rfmt1) do idm=1,ndmag call rfmtctof(rvfmt(:,:,idm)) end do ! add to existing (density derived) correlation potential and field do ias=1,natmtot is=idxis(ias) np=npmt(is) vxcmt(1:np,ias)=vxcmt(1:np,ias)+rfmt1(1:np,ias) do idm=1,ndmag bxcmt(1:np,ias,idm)=bxcmt(1:np,ias,idm)+rvfmt(1:np,ias,idm) end do end do vxcir(:)=vxcir(:)+vxir(:) do idm=1,ndmag bxcir(:,idm)=bxcir(:,idm)+bxir(:,idm) end do ! symmetrise the exchange potential and field call symrf(nrmt,nrmti,npmt,npmtmax,vxcmt,vxcir) if (spinpol) call symrvf(.true.,ncmag,nrmt,nrmti,npmt,npmtmax,bxcmt,bxcir) deallocate(rfmt1,rfir,vclcv,vclvv) deallocate(dvxmt,dvxir) if (spinpol) then deallocate(rvfmt,rvfir) deallocate(dbxmt,dbxir) end if ! set the constant part of the exchange potential equal to that of LDA/GGA call rfint0(vxc0,vxcmt,vxcir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/oepresk.f900000644000000000000000000000013213543334734014616 xustar0030 mtime=1569569244.705641896 30 atime=1569569240.878644341 30 ctime=1569569244.705641896 elk-6.3.2/src/oepresk.f900000644002504400250440000001407013543334734016667 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine oepresk(ik,vclcv,vclvv,dvxmt,dvxir,dbxmt,dbxir) use modmain implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: vclcv(ncrmax,natmtot,nstsv,nkpt) complex(8), intent(in) :: vclvv(nstsv,nstsv,nkpt) real(8), intent(inout) :: dvxmt(npcmtmax,natmtot),dvxir(ngtot) real(8), intent(inout) :: dbxmt(npcmtmax,natmtot,ndmag),dbxir(ngtot,ndmag) ! local variables integer ist,jst,idm integer is,ia,ias,ic,m integer nrc,nrci,npc real(8) de complex(8) z1,z2 ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:),wfcr(:,:) complex(8), allocatable :: zfmt1(:),zvfmt1(:,:) complex(8), allocatable :: zfmt2(:,:),zfir2(:) complex(8), allocatable :: zvfmt2(:,:,:),zvfir2(:,:) ! external functions complex(8) rzfinp,rzfmtinp external rzfinp,rzfmtinp ! get the eigenvalues/vectors from file for input k-point allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! index to all states do ist=1,nstsv idx(ist)=ist end do ! calculate the wavefunctions for all states allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfir(ngtot,nspinor,nstsv)) call genwfsv(.false.,.false.,nstsv,idx,ngridg,igfft,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt,ngtot,wfir) deallocate(apwalm,evecfv,evecsv) !-----------------------------------------------------------! ! core-conduction overlap density and magnetisation ! !-----------------------------------------------------------! allocate(wfcr(npcmtmax,2),zfmt1(npcmtmax)) if (spinpol) allocate(zvfmt1(npcmtmax,ndmag)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) ic=0 do ist=1,nstsp(is) if (spcore(ist,is)) then do m=-ksp(ist,is),ksp(ist,is)-1 ic=ic+1 ! pass in m-1/2 to wavefcr call wavefcr(.false.,lradstp,is,ia,ist,m,npcmtmax,wfcr) do jst=1,nstsv if (evalsv(jst,ik).gt.efermi) then if (spinpol) then ! compute the complex density and magnetisation call genzrm(npc,wfcr,wfcr(:,2),wfmt(:,ias,1,jst), & wfmt(:,ias,2,jst),zfmt1,npcmtmax,zvfmt1) else ! compute the complex density zfmt1(1:npc)=conjg(wfcr(1:npc,1))*wfmt(1:npc,ias,1,jst) end if z1=conjg(vclcv(ic,ias,jst,ik)) z2=rzfmtinp(nrc,nrci,wrcmt(:,is),vxmt(:,ias),zfmt1) z1=z1-conjg(z2) do idm=1,ndmag z2=rzfmtinp(nrc,nrci,wrcmt(:,is),bxmt(:,ias,idm),zvfmt1(:,idm)) z1=z1-conjg(z2) end do de=evalcr(ist,ias)-evalsv(jst,ik) z1=z1*occmax*wkpt(ik)/(de+zi*swidth) ! residuals for exchange potential and field !$OMP CRITICAL(oepresk_) call rzadd(npc,z1,zfmt1,dvxmt(:,ias)) do idm=1,ndmag call rzadd(npc,z1,zvfmt1(:,idm),dbxmt(:,ias,idm)) end do !$OMP END CRITICAL(oepresk_) ! end loop over jst end if end do end do ! end loop over ist end if end do ! end loops over atoms and species end do end do deallocate(wfcr,zfmt1) if (spinpol) deallocate(zvfmt1) !--------------------------------------------------------------! ! valence-conduction overlap density and magnetisation ! !--------------------------------------------------------------! allocate(zfmt2(npcmtmax,natmtot),zfir2(ngtot)) if (spinpol) then allocate(zvfmt2(npcmtmax,natmtot,ndmag),zvfir2(ngtot,ndmag)) end if do ist=1,nstsv if (evalsv(ist,ik).lt.efermi) then do jst=1,nstsv if (evalsv(jst,ik).gt.efermi) then if (spinpol) then ! compute the complex density and magnetisation call genzfrm(wfmt(:,:,1,ist),wfmt(:,:,2,ist),wfir(:,1,ist), & wfir(:,2,ist),wfmt(:,:,1,jst),wfmt(:,:,2,jst),wfir(:,1,jst), & wfir(:,2,jst),zfmt2,zfir2,zvfmt2,zvfir2) else ! compute the complex density call genzrho(.false.,.true.,ngtot,wfmt(:,:,:,ist),wfir(:,:,ist), & wfmt(:,:,:,jst),wfir(:,:,jst),zfmt2,zfir2) end if z1=conjg(vclvv(ist,jst,ik)) z2=rzfinp(vxmt,vxir,zfmt2,zfir2) z1=z1-conjg(z2) do idm=1,ndmag z2=rzfinp(bxmt(:,:,idm),bxir(:,idm),zvfmt2(:,:,idm),zvfir2(:,idm)) z1=z1-conjg(z2) end do de=evalsv(ist,ik)-evalsv(jst,ik) z1=z1*occmax*wkpt(ik)/(de+zi*swidth) ! add to residuals for exchange potential and field !$OMP CRITICAL(oepresk_) call rzfadd(z1,zfmt2,zfir2,dvxmt,dvxir) do idm=1,ndmag call rzfadd(z1,zvfmt2(:,:,idm),zvfir2(:,idm),dbxmt(:,:,idm), & dbxir(:,idm)) end do !$OMP END CRITICAL(oepresk_) ! end loop over jst end if end do ! end loop over ist end if end do deallocate(wfmt,wfir,zfmt2,zfir2) if (spinpol) deallocate(zvfmt2,zvfir2) return end subroutine subroutine rzadd(n,za,zv,rv) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: za real(8), intent(in) :: zv(2*n) real(8), intent(out) :: rv(n) ! local variables real(8) t1 t1=dble(za) if (abs(t1).gt.1.d-12) call daxpy(n,t1,zv,2,rv,1) t1=-aimag(za) if (abs(t1).gt.1.d-12) call daxpy(n,t1,zv(2),2,rv,1) return end subroutine subroutine rzfadd(za,zfmt,zfir,rfmt,rfir) use modmain implicit none ! arguments complex(8), intent(in) :: za complex(8), intent(in) :: zfmt(npcmtmax,natmtot),zfir(ngtot) real(8), intent(inout) :: rfmt(npcmtmax,natmtot),rfir(ngtot) ! local variables integer is,ias do ias=1,natmtot is=idxis(ias) call rzadd(npcmt(is),za,zfmt(:,ias),rfmt(:,ias)) end do call rzadd(ngtot,za,zfir,rfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/oepvcl.f900000644000000000000000000000013213543334734014436 xustar0030 mtime=1569569244.709641894 30 atime=1569569240.883644337 30 ctime=1569569244.709641894 elk-6.3.2/src/oepvcl.f900000644002504400250440000000221413543334734016504 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine oepvcl(vclcv,vclvv) use modmain use modmpi use modomp implicit none ! arguments complex(8), intent(out) :: vclcv(ncrmax,natmtot,nstsv,nkpt) complex(8), intent(out) :: vclvv(nstsv,nstsv,nkpt) ! local variables integer ik,ncv,nvv integer lp,nthd call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(oepvcl_) write(*,'("Info(oepvcl): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(oepvcl_) call oepvclk(ik,vclcv(:,:,:,ik),vclvv(:,:,ik)) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! broadcast matrix elements to all other processes ncv=ncrmax*natmtot*nstsv nvv=nstsv*nstsv do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(vclcv(:,:,:,ik),ncv,mpi_double_complex,lp,mpicom,ierror) call mpi_bcast(vclvv(:,:,ik),nvv,mpi_double_complex,lp,mpicom,ierror) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/oepvclk.f900000644000000000000000000000013213543334734014611 xustar0030 mtime=1569569244.714641891 30 atime=1569569240.889644334 30 ctime=1569569244.714641891 elk-6.3.2/src/oepvclk.f900000644002504400250440000002336613543334734016672 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine oepvclk(ikp,vclcv,vclvv) use modmain implicit none ! arguments integer, intent(in) :: ikp complex(8), intent(out) :: vclcv(ncrmax,natmtot,nstsv) complex(8), intent(out) :: vclvv(nstsv,nstsv) ! local variables integer ik,jk,nst,ist1,ist2,ist3 integer is,ia,ias,nrc,nrci,npc integer iv(3),ig,iq,i integer ic,jc,m1,m2 real(8) vc(3) complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfmt2(:,:,:,:) complex(8), allocatable :: wfir1(:,:,:),wfir2(:,:,:) complex(8), allocatable :: wfcr1(:,:),wfcr2(:,:) complex(8), allocatable :: zrhomt1(:,:,:),zrhomt2(:,:),zrhoir1(:,:) complex(8), allocatable :: zvclmt(:,:),zvclir(:),zfmt(:) ! external functions complex(8) zfinp,zfmtinp external zfinp,zfmtinp ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv)) allocate(wfir1(ngtc,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(wfcr1(npcmtmax,2),wfcr2(npcmtmax,2)) allocate(zrhomt1(npcmtmax,natmtot,nstsv),zrhoir1(ngtc,nstsv)) allocate(zrhomt2(npcmtmax,nstcr),zfmt(npcmtmax)) allocate(zvclmt(npcmtmax,natmtot),zvclir(ngtc)) ! zero the Coulomb matrix elements vclcv(:,:,:)=0.d0 vclvv(:,:)=0.d0 ! get the eigenvectors from file for input reduced k-point call getevecfv(filext,ikp,vkl(:,ikp),vgkl(:,:,:,ikp),evecfv) call getevecsv(filext,ikp,vkl(:,ikp),evecsv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! calculate the wavefunctions for all states of the input k-point call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsv,wfmt1,ngtc,wfir1) ! loop over non-reduced k-point set do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! determine q-vector iv(:)=ivk(:,ikp)-ivk(:,ik) iv(:)=modulo(iv(:),ngridk(:)) ! check if the q-point is in user-defined set iv(:)=iv(:)*ngridq(:) do i=1,3 if (modulo(iv(i),ngridk(i)).ne.0) goto 10 end do iv(:)=iv(:)/ngridk(:) iq=iqmap(iv(1),iv(2),iv(3)) vc(:)=vkc(:,ikp)-vkc(:,ik) do ig=1,ngvc ! determine the G+q-vectors vgqc(:,ig)=vgc(:,ig)+vc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! structure factors for G+q call gensfacgp(ngvc,vgqc,ngvc,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngvc,gqc,gclgq) ! compute the required spherical Bessel functions call genjlgprmt(lnpsd,ngvc,gqc,ngvc,jlgqrmt) ! find the matching coefficients call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! get the eigenvectors from file for non-reduced k-points call getevecfv(filext,0,vkl(:,ik),vgkl(:,:,1,ik),evecfv) call getevecsv(filext,0,vkl(:,ik),evecsv) ! count and index occupied states nst=0 do ist3=1,nstsv if (evalsv(ist3,jk).lt.efermi) then nst=nst+1 idx(nst)=ist3 end if end do ! calculate the wavefunctions for occupied states call genwfsv(.false.,.false.,nst,idx,ngdc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) do ist3=1,nst ! compute the complex overlap densities for all valence-valence states do ist1=1,nstsv call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist3),wfir2(:,:,ist3), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt1(:,:,ist1),zrhoir1(:,ist1)) end do ! compute the complex overlap densities for all valence-core states jc=0 do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do ist1=1,nstsp(is) if (spcore(ist1,is)) then do m1=-ksp(ist1,is),ksp(ist1,is)-1 jc=jc+1 ! generate the core wavefunction in spherical coordinates (pass in m-1/2) call wavefcr(.false.,lradstp,is,ia,ist1,m1,npcmtmax,wfcr1) if (spinpol) then call zrho2(npc,wfmt2(:,ias,1,ist3),wfmt2(:,ias,2,ist3),wfcr1, & wfcr1(:,2),zfmt) else call zrho1(npc,wfmt2(:,ias,1,ist3),wfcr1,zfmt) end if ! convert to spherical harmonics call zfsht(nrc,nrci,zfmt,zrhomt2(:,jc)) end do end if end do end do end do do ist2=1,nstsv if (evalsv(ist2,ikp).gt.efermi) then ! calculate the Coulomb potential call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & zrhomt1(:,:,ist2),zvclmt) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc, & gqc,gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,zrhoir1(:,ist2),npcmtmax,zvclmt, & zvclir) !----------------------------------------------! ! valence-valence-valence contribution ! !----------------------------------------------! do ist1=1,nstsv if (evalsv(ist1,ikp).lt.efermi) then z1=zfinp(zrhomt1(:,:,ist1),zrhoir1(:,ist1),zvclmt,zvclir) vclvv(ist1,ist2)=vclvv(ist1,ist2)-wqptnr*z1 end if end do !-------------------------------------------! ! core-valence-valence contribution ! !-------------------------------------------! jc=0 do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) do ia=1,natoms(is) ias=idxas(ia,is) ic=0 do ist1=1,nstsp(is) if (spcore(ist1,is)) then do m1=-ksp(ist1,is),ksp(ist1,is)-1 ic=ic+1 jc=jc+1 z1=zfmtinp(nrc,nrci,wrcmt(:,is),zrhomt2(:,jc),zvclmt(:,ias)) vclcv(ic,ias,ist2)=vclcv(ic,ias,ist2)-wqptnr*z1 end do ! end loop over ist1 end if end do ! end loops over atoms and species end do end do ! end loop over ist2 end if end do ! end loop over ist3 end do 10 continue ! end loop over non-reduced k-point set end do ! begin loops over atoms and species do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do ist3=1,nstsp(is) if (spcore(ist3,is)) then do m1=-ksp(ist3,is),ksp(ist3,is)-1 ! generate the core wavefunction in spherical coordinates (pass in m-1/2) call wavefcr(.false.,lradstp,is,ia,ist3,m1,npcmtmax,wfcr1) ! compute the complex overlap densities for the core-valence states do ist1=1,nstsv if (spinpol) then call zrho2(npc,wfcr1,wfcr1(:,2),wfmt1(:,ias,1,ist1), & wfmt1(:,ias,2,ist1),zfmt) else call zrho1(npc,wfcr1,wfmt1(:,ias,1,ist1),zfmt) end if call zfsht(nrc,nrci,zfmt,zrhomt1(:,ias,ist1)) end do ! compute the complex overlap densities for the core-core states ic=0 do ist1=1,nstsp(is) if (spcore(ist1,is)) then do m2=-ksp(ist1,is),ksp(ist1,is)-1 ic=ic+1 call wavefcr(.false.,lradstp,is,ia,ist1,m2,npcmtmax,wfcr2) call zrho2(npc,wfcr1,wfcr1(:,2),wfcr2,wfcr2(:,2),zfmt) call zfsht(nrc,nrci,zfmt,zrhomt2(:,ic)) end do end if end do do ist2=1,nstsv if (evalsv(ist2,ikp).gt.efermi) then ! calculate the Coulomb potential call zpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & zrhomt1(:,ias,ist2),zvclmt) !-------------------------------------------! ! valence-core-valence contribution ! !-------------------------------------------! do ist1=1,nstsv if (evalsv(ist1,ikp).lt.efermi) then z1=zfmtinp(nrc,nrci,wrcmt(:,is),zrhomt1(:,ias,ist1),zvclmt) vclvv(ist1,ist2)=vclvv(ist1,ist2)-z1 end if end do !----------------------------------------! ! core-core-valence contribution ! !----------------------------------------! ic=0 do ist1=1,nstsp(is) if (spcore(ist1,is)) then do m2=-ksp(ist1,is),ksp(ist1,is)-1 ic=ic+1 z1=zfmtinp(nrc,nrci,wrcmt(:,is),zrhomt2(:,ic),zvclmt) vclcv(ic,ias,ist2)=vclcv(ic,ias,ist2)-z1 end do ! end loop over ist1 end if end do ! end loop over ist2 end if end do ! end loops over ist3 and m1 end do end if end do ! end loops over atoms and species end do end do deallocate(vgqc,gqc,gclgq,jlgqrmt) deallocate(apwalm,evecfv,evecsv,ylmgq,sfacgq) deallocate(wfmt1,wfmt2,wfir1,wfir2,wfcr1,wfcr2) deallocate(zrhomt1,zrhomt2,zrhoir1) deallocate(zvclmt,zvclir,zfmt) return contains subroutine zrho1(n,x,y,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x(n),y(n) complex(8), intent(out) :: z(n) z(:)=conjg(x(:))*y(:) return end subroutine subroutine zrho2(n,x1,x2,y1,y2,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x1(n),x2(n),y1(n),y2(n) complex(8), intent(out) :: z(n) z(:)=conjg(x1(:))*y1(:)+conjg(x2(:))*y2(:) return end subroutine end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/dbxcplot.f900000644000000000000000000000013113543334734014764 xustar0030 mtime=1569569244.718641888 29 atime=1569569240.89464433 30 ctime=1569569244.718641888 elk-6.3.2/src/dbxcplot.f900000644002504400250440000000417013543334734017036 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dbxcplot use modmain implicit none ! local variables integer idm,is,ias,np ! allocatable arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) real(8), allocatable :: rfmt(:,:),rfir(:) real(8), allocatable :: grfmt(:,:,:),grfir(:,:) ! initialise universal variables call init0 if (.not.spinpol) then write(*,*) write(*,'("Error(dbxcplot): spin-unpolarised magnetic field is zero")') write(*,*) stop end if ! read magnetisation from file call readstate allocate(rvfmt(npmtmax,natmtot,3),rvfir(ngtot,3)) allocate(rfmt(npmtmax,natmtot),rfir(ngtot)) allocate(grfmt(npmtmax,natmtot,3),grfir(ngtot,3)) if (ncmag) then ! non-collinear rvfmt(:,:,:)=bxcmt(:,:,:) rvfir(:,:)=bxcir(:,:) else ! collinear rvfmt(:,:,1:2)=0.d0 rvfir(:,1:2)=0.d0 rvfmt(:,:,3)=bxcmt(:,:,1) rvfir(:,3)=bxcir(:,1) end if rfmt(:,:)=0.d0 rfir(:)=0.d0 do idm=1,3 call gradrf(rvfmt(:,:,idm),rvfir(:,idm),grfmt,grfir) do ias=1,natmtot is=idxis(ias) np=npmt(is) rfmt(1:np,ias)=rfmt(1:np,ias)+grfmt(1:np,ias,idm) end do rfir(:)=rfir(:)+grfir(:,idm) end do select case(task) case(91) open(50,file='DBXC1D.OUT',form='FORMATTED') open(51,file='DBXCLINES.OUT',form='FORMATTED') call plot1d(50,51,1,rfmt,rfir) close(50) close(51) write(*,*) write(*,'("Info(dbxcplot):")') write(*,'(" 1D divergence of exchange-correlation field written to & &DBXC1D.OUT")') write(*,'(" vertex location lines written to DBXCLINES.OUT")') case(92) open(50,file='DBXC2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,rfmt,rfir) close(50) write(*,'("Info(dbxcplot):")') write(*,'(" 2D divergence of exchange-correlation field written to & &DBXC2D.OUT")') case(93) open(50,file='DBXC3D.OUT',form='FORMATTED') call plot3d(50,1,rfmt,rfir) close(50) write(*,'("Info(dbxcplot):")') write(*,'(" 3D divergence of exchange-correlation field written to & &DBXC3D.OUT")') end select deallocate(rvfmt,rvfir,rfmt,rfir,grfmt,grfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writehmlbse.f900000644000000000000000000000013213543334734015473 xustar0030 mtime=1569569244.722641885 30 atime=1569569240.900644327 30 ctime=1569569244.722641885 elk-6.3.2/src/writehmlbse.f900000644002504400250440000000476613543334734017557 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writehmlbse use modmain use modmpi ! sets up the BSE matrix and writes it to file implicit none ! local variables integer ik,jk,a,b integer ist,jst,i,j real(8) t1 ! initialise global variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate ! read Fermi energy from a file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! check if system is metallic t1=minval(abs(0.5d0-occsv(:,:)/occmax)) if (abs(t1-0.5d0).gt.0.01d0) then write(*,*) write(*,'("Warning(writehmlbse): system is metallic, the BSE may fail")') write(*,'("Try using a different vkloff or reducing swidth")') end if ! generate the BSE state index arrays call genidxbse if (allocated(hmlbse)) deallocate(hmlbse) allocate(hmlbse(nmbse,nmbse)) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) then write(*,*) write(*,'("Info(writehmlbse): setting up BSE Hamiltonian matrix")') end if ! zero the BSE Hamiltonian hmlbse(:,:)=0.d0 ! compute diagonal matrix elements do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) do i=1,nvbse ist=istbse(i,ik) do j=1,ncbse jst=jstbse(j,ik) a=ijkbse(i,j,ik) hmlbse(a,a)=(evalsv(jst,jk)+scissor)-evalsv(ist,jk) if (bsefull) then b=a+nbbse hmlbse(b,b)=-hmlbse(a,a) end if end do end do end do ! add the exchange matrix elements if (hxbse) call hmlxbse ! add the direct matrix elements if (hdbse) call hmldbse ! add matrices from all processes and redistribute if (np_mpi.gt.1) then call mpi_allreduce(mpi_in_place,hmlbse,nmbse*nmbse,mpi_double_complex, & mpi_sum,mpicom,ierror) end if ! write the BSE matrix to HMLBSE.OUT if (mp_mpi) then open(50,file='HMLBSE.OUT',form='UNFORMATTED') write(50) nmbse write(50) hmlbse close(50) write(*,*) write(*,'("Info(writehmlbse): BSE Hamiltonian matrix written to HMLBSE.OUT")') end if ! deallocate global BSE arrays deallocate(istbse,jstbse,ijkbse,hmlbse) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmldbse.f900000644000000000000000000000013213543334734014564 xustar0030 mtime=1569569244.726641883 30 atime=1569569240.905644323 30 ctime=1569569244.726641883 elk-6.3.2/src/hmldbse.f900000644002504400250440000000130313543334734016630 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmldbse use modmain use modmpi use modomp implicit none ! local variables integer ik2,nthd call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik2=1,nkptnr ! distribute among MPI processes if (mod(ik2-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(hmldbse_) write(*,'("Info(hmldbse): ",I6," of ",I6," k-points")') ik2,nkptnr !$OMP END CRITICAL(hmldbse_) call hmldbsek(ik2) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmldbsek.f900000644000000000000000000000012713543334734014743 xustar0029 mtime=1569569244.73164188 29 atime=1569569240.91064432 29 ctime=1569569244.73164188 elk-6.3.2/src/hmldbsek.f900000644002504400250440000001434713543334734017017 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmldbsek(ik2) use modmain use modomp implicit none ! arguments integer, intent(in) :: ik2 ! local variables integer ik1,ist1,ist2,jst1,jst2 integer i1,i2,j1,j2,a1,a2,b1,b2 integer iv(3),iq,ig,jg,nthd real(8) vl(3),vc(3),t0,t1,t2 complex(8) z1 ! automatic arrays integer idx(nstsv),ngp(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:) real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqr(:,:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvv(:,:,:),zcc(:,:,:) complex(8), allocatable :: zvc(:,:,:),zcv(:,:,:) complex(8), allocatable :: epsi(:,:,:) allocate(igpig(ngkmax,nspnfv)) allocate(vgqc(3,ngrf),gqc(ngrf),gclgq(ngrf)) allocate(jlgqr(njcmax,nspecies,ngrf)) allocate(ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(zvv(ngrf,nvbse,nvbse),zcc(ngrf,ncbse,ncbse)) allocate(epsi(ngrf,ngrf,nwrf)) if (bsefull) then allocate(zvc(ngrf,nvbse,ncbse)) allocate(zcv(ngrf,ncbse,nvbse)) end if ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! generate the wavefunctions for all states of k-point ik2 call genwfsvp(.false.,.false.,nstsv,idx,ngdc,igfc,vkl(:,ik2),ngp,igpig,wfmt2, & ngtc,wfir2) ! begin loop over ik1 do ik1=1,nkptnr ! generate the wavefunctions for all states of k-point ik1 call genwfsvp(.false.,.false.,nstsv,idx,ngdc,igfc,vkl(:,ik1),ngp,igpig, & wfmt1,ngtc,wfir1) ! determine equivalent q-vector in first Brillouin zone iv(:)=ivk(:,ik1)-ivk(:,ik2) iv(:)=modulo(iv(:),ngridk(:)) iq=iqmap(iv(1),iv(2),iv(3)) ! q-vector in lattice and Cartesian coordinates vl(:)=vkl(:,ik1)-vkl(:,ik2) vc(:)=vkc(:,ik1)-vkc(:,ik2) ! generate the G+q-vectors and related quantities call gengqrf(vc,vgqc,gqc,jlgqr,ylmgq,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngrf,gqc,gclgq) ! symmetrise the Coulomb Green's function gclgq(:)=sqrt(gclgq(:)) ! compute the matrix elements call holdthd(nvbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,ist1,ist2,i2) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) !$OMP DO do i1=1,nvbse ist1=istbse(i1,ik1) do i2=1,nvbse ist2=istbse(i2,ik2) call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt,zrhoir) call zftzf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,zrhomt,zrhoir,zvv(:,i1,i2)) end do end do !$OMP END DO deallocate(zrhomt,zrhoir) !$OMP END PARALLEL call freethd(nthd) ! compute the matrix elements call holdthd(ncbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,jst1,jst2,j2) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) !$OMP DO do j1=1,ncbse jst1=jstbse(j1,ik1) do j2=1,ncbse jst2=jstbse(j2,ik2) call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,jst2),wfir2(:,:,jst2), & wfmt1(:,:,:,jst1),wfir1(:,:,jst1),zrhomt,zrhoir) call zftzf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,zrhomt,zrhoir,zcc(:,j1,j2)) end do end do !$OMP END DO deallocate(zrhomt,zrhoir) !$OMP END PARALLEL call freethd(nthd) ! matrix elements for full BSE kernel if required if (bsefull) then ! compute the matrix elements call holdthd(nvbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,ist1,jst2,j2) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) !$OMP DO do i1=1,nvbse ist1=istbse(i1,ik1) do j2=1,ncbse jst2=jstbse(j2,ik2) call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,jst2),wfir2(:,:,jst2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt,zrhoir) call zftzf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,zrhomt,zrhoir,zvc(:,i1,j2)) end do end do !$OMP END DO deallocate(zrhomt,zrhoir) !$OMP END PARALLEL call freethd(nthd) ! compute the matrix elements call holdthd(ncbse,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,jst1,ist2,i2) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) !$OMP DO do j1=1,ncbse jst1=jstbse(j1,ik1) do i2=1,nvbse ist2=istbse(i2,ik2) call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,jst1),wfir1(:,:,jst1),zrhomt,zrhoir) call zftzf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,zrhomt,zrhoir,zcv(:,j1,i2)) end do end do !$OMP END DO deallocate(zrhomt,zrhoir) !$OMP END PARALLEL call freethd(nthd) end if ! get RPA inverse epsilon from file call getcfgq('EPSINV.OUT',vl,ngrf,nwrf,epsi) t0=wkptnr*omega do i1=1,nvbse do j1=1,ncbse a1=ijkbse(i1,j1,ik1) do i2=1,nvbse do j2=1,ncbse a2=ijkbse(i2,j2,ik2) z1=0.d0 do ig=1,ngrf t1=t0*gclgq(ig) do jg=1,ngrf t2=t1*gclgq(jg) z1=z1+t2*epsi(ig,jg,1)*conjg(zcc(ig,j1,j2))*zvv(jg,i1,i2) end do end do hmlbse(a1,a2)=hmlbse(a1,a2)-z1 ! compute off-diagonal blocks if required if (bsefull) then b1=a1+nbbse b2=a2+nbbse hmlbse(b1,b2)=hmlbse(b1,b2)+conjg(z1) z1=0.d0 do ig=1,ngrf t1=t0*gclgq(ig) do jg=1,ngrf t2=t1*gclgq(jg) z1=z1+t2*epsi(ig,jg,1)*conjg(zcv(ig,j1,i2))*zvc(jg,i1,j2) end do end do hmlbse(a1,b2)=hmlbse(a1,b2)-z1 hmlbse(b1,a2)=hmlbse(b1,a2)+conjg(z1) end if ! end loop over i2 and j2 end do end do ! end loop over i1 and j1 end do end do ! end loop over ik1 end do deallocate(igpig,vgqc,gqc,gclgq,jlgqr) deallocate(ylmgq,sfacgq) deallocate(wfmt1,wfmt2,wfir1,wfir2) deallocate(zvv,zcc,epsi) if (bsefull) deallocate(zvc,zcv) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dielectric_bse.f900000644000000000000000000000013213543334734016106 xustar0030 mtime=1569569244.736641877 30 atime=1569569240.915644317 30 ctime=1569569244.736641877 elk-6.3.2/src/dielectric_bse.f900000644002504400250440000000652513543334734020165 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dielectric_bse use modmain use modtest implicit none ! local variables integer a1,a2,ik1,jk1 integer i1,j1,ist1,jst1 integer iw,i,j,l integer ios,nmbse_ real(8) e,eji,t1,t2 complex(8) eta,zv(3),z1 character(256) fname ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: pmat(:,:,:),sigma(:,:,:) ! initialise global variables call init0 call init1 ! read Fermi energy from a file call readfermi ! get the eigenvalues from file do ik1=1,nkpt call getevalsv(filext,ik1,vkl(:,ik1),evalsv(:,ik1)) end do ! generate the BSE state index arrays call genidxbse ! allocate global BSE arrays if (allocated(evalbse)) deallocate(evalbse) allocate(evalbse(nmbse)) if (allocated(hmlbse)) deallocate(hmlbse) allocate(hmlbse(nmbse,nmbse)) ! read in the BSE eigenvectors and eigenvalues open(50,file='EVBSE.OUT',form='UNFORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(dielectric_bse): error opening EVBSE.OUT")') write(*,*) stop end if read(50) nmbse_ if (nmbse.ne.nmbse_) then write(*,*) write(*,'("Error(dielectric_bse): differing nmbse")') write(*,'(" current : ",I6)') nmbse write(*,'(" EVBSE.OUT : ",I6)') nmbse_ stop end if read(50) evalbse read(50) hmlbse close(50) ! allocate local arrays allocate(w(nwplot)) allocate(pmat(nstsv,nstsv,3)) allocate(sigma(3,3,nwplot)) ! set up the frequency grid (starting from zero) t1=wplot(2)/dble(nwplot) do iw=1,nwplot w(iw)=t1*dble(iw-1) end do ! i divided by the complex relaxation time eta=cmplx(0.d0,swidth,8) sigma(:,:,:)=0.d0 do a2=1,nmbse e=evalbse(a2) zv(:)=0.d0 ! loop over non-reduced k-points do ik1=1,nkptnr ! equivalent reduced k-point jk1=ivkik(ivk(1,ik1),ivk(2,ik1),ivk(3,ik1)) ! read the momentum matrix elements from file call getpmat(vkl(:,ik1),pmat) do i1=1,nvbse ist1=istbse(i1,ik1) do j1=1,ncbse jst1=jstbse(j1,ik1) a1=ijkbse(i1,j1,ik1) eji=evalsv(jst1,jk1)-evalsv(ist1,jk1) z1=(e/eji)*hmlbse(a1,a2) zv(:)=zv(:)+z1*pmat(ist1,jst1,:) end do end do end do if (abs(e).gt.1.d-8) then do i=1,3 do j=1,3 z1=zv(i)*conjg(zv(j))/e sigma(i,j,:)=sigma(i,j,:)+z1/(w(:)-e+eta)+conjg(z1)/(w(:)+e+eta) end do end do end if end do z1=zi*occmax*wkptnr/omega sigma(:,:,:)=z1*sigma(:,:,:) ! loop over tensor components do l=1,noptcomp i=optcomp(1,l) j=optcomp(2,l) t1=0.d0 if (i.eq.j) t1=1.d0 write(fname,'("EPSILON_BSE_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') do iw=1,nwplot t2=t1-fourpi*aimag(sigma(i,j,iw)/(w(iw)+eta)) write(50,'(2G18.10)') w(iw),t2 end do write(50,*) do iw=1,nwplot t2=fourpi*dble(sigma(i,j,iw)/(w(iw)+eta)) write(50,'(2G18.10)') w(iw),t2 end do close(50) end do write(*,*) write(*,'("Info(dielectric_bse):")') write(*,'(" dielectric tensor written to EPSILON_BSE_ij.OUT")') write(*,'(" for components")') do l=1,noptcomp write(*,'(" i = ",I1,", j = ",I1)') optcomp(1:2,l) end do ! write sigma to test file call writetest(187,'BSE optical conductivity',nv=nwplot,tol=1.d-3,zva=sigma) deallocate(w,pmat,sigma) ! deallocate global BSE arrays deallocate(evalbse,hmlbse) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genidxbse.f900000644000000000000000000000013213543334734015116 xustar0030 mtime=1569569244.740641874 30 atime=1569569240.920644314 30 ctime=1569569244.740641874 elk-6.3.2/src/genidxbse.f900000644002504400250440000000766113543334734017177 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genidxbse use modmain implicit none integer ik,jk,a,ntop integer ist,jst,i,j,k ! allocatable arrays integer, allocatable :: idx(:) ! check if the BSE extra valence or conduction states are in range do i=1,nvxbse ist=istxbse(i) if ((ist.lt.1).or.(ist.gt.nstsv)) then write(*,*) write(*,'("Error(genidxbse): extra valence state out of range : ",I8)') ist write(*,*) stop end if end do do j=1,ncxbse jst=jstxbse(j) if ((jst.lt.1).or.(jst.gt.nstsv)) then write(*,*) write(*,'("Error(genidxbse): extra conduction state out of range : ",I8)') & jst write(*,*) stop end if end do ! number of valence states for transitions nvbse=nvbse0+nvxbse ! number of conduction states for transitions ncbse=ncbse0+ncxbse if ((nvbse.le.0).or.(ncbse.le.0)) then write(*,*) write(*,'("Error(genidxbse): invalid number of valence or conduction & &transition states : ",2I8)') nvbse,ncbse write(*,*) stop end if ! total number of transitions nvcbse=nvbse*ncbse ! block size in BSE matrix nbbse=nvcbse*nkptnr ! BSE matrix size if (bsefull) then nmbse=2*nbbse else nmbse=nbbse end if allocate(idx(nstsv)) ! allocate global BSE index arrays if (allocated(istbse)) deallocate(istbse) allocate(istbse(nvbse,nkptnr)) if (allocated(jstbse)) deallocate(jstbse) allocate(jstbse(ncbse,nkptnr)) if (allocated(ijkbse)) deallocate(ijkbse) allocate(ijkbse(nvbse,ncbse,nkptnr)) a=0 ! loop over non-reduced k-points do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! index for sorting the eigenvalues into ascending order call sortidx(nstsv,evalsv(:,jk),idx) ! find the topmost occupied band ntop=nstsv do ist=nstsv,1,-1 if (evalsv(idx(ist),jk).lt.efermi) then ntop=ist exit end if end do if ((ntop-nvbse0+1).lt.1) then write(*,*) write(*,'("Error(genidxbse): not enough valence states, reduce nvbse")') write(*,*) stop end if if ((ntop+ncbse0).gt.nstsv) then write(*,*) write(*,'("Error(genidxbse): not enough conduction states")') write(*,'(" reduce ncbse or increase nempty")') write(*,*) stop end if ! index from BSE valence states to second-variational state numbers do i=1,nvbse0 istbse(i,ik)=idx(ntop-nvbse0+i) end do ! index from BSE conduction states to second-variational state numbers do j=1,ncbse0 jstbse(j,ik)=idx(ntop+j) end do ! add extra states to the list do i=1,nvxbse ist=istxbse(i) if (evalsv(ist,jk).gt.efermi) then write(*,*) write(*,'("Error(genidxbse): extra valence state above Fermi energy : ",& &I6)') ist write(*,'(" for k-point ",I8)') jk write(*,*) stop end if do k=1,nvbse0+i-1 if (ist.eq.istbse(k,ik)) then write(*,*) write(*,'("Error(genidxbse): redundant extra valence state : ",I6)') ist write(*,'(" for k-point ",I8)') jk write(*,*) stop end if end do istbse(nvbse0+i,ik)=ist end do do j=1,ncxbse jst=jstxbse(j) if (evalsv(jst,jk).lt.efermi) then write(*,*) write(*,'("Error(genidxbse): extra conduction state below Fermi & &energy : ",I6)') jst write(*,'(" for k-point ",I8)') jk write(*,*) stop end if do k=1,ncbse0+j-1 if (jst.eq.jstbse(k,ik)) then write(*,*) write(*,'("Error(genidxbse): redundant extra conduction state : ",& &I6)') jst write(*,'(" for k-point ",I8)') jk write(*,*) stop end if end do jstbse(ncbse0+j,ik)=jst end do ! index from BSE valence-conduction pair and k-point to location in BSE matrix do i=1,nvbse do j=1,ncbse a=a+1 ijkbse(i,j,ik)=a end do end do ! end loop over non-reduced k-points end do deallocate(idx) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeevbse.f900000644000000000000000000000013113543334734015324 xustar0030 mtime=1569569244.745641871 29 atime=1569569240.92664431 30 ctime=1569569244.745641871 elk-6.3.2/src/writeevbse.f900000644002504400250440000000547513543334734017407 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeevbse use modmain use modomp implicit none ! local variables integer ik,a,nthd integer ios,nmbse_ integer lwork,info ! allocatable arrays real(8), allocatable :: rwork(:) complex(8), allocatable :: w(:),vl(:,:),vr(:,:) complex(8), allocatable :: work(:) ! initialise global variables call init0 call init1 ! read Fermi energy from a file call readfermi ! get the eigenvalues from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) end do ! generate the BSE state index arrays call genidxbse ! allocate global BSE arrays if (allocated(evalbse)) deallocate(evalbse) allocate(evalbse(nmbse)) if (allocated(hmlbse)) deallocate(hmlbse) allocate(hmlbse(nmbse,nmbse)) ! read in BSE Hamiltonian matrix open(50,file='HMLBSE.OUT',form='UNFORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(writeevbse): error opening HMLBSE.OUT")') write(*,*) stop end if read(50) nmbse_ if (nmbse.ne.nmbse_) then write(*,*) write(*,'("Error(writeevbse): differing nmbse")') write(*,'(" current : ",I6)') nmbse write(*,'(" HMLBSE.OUT : ",I6)') nmbse_ write(*,*) stop end if read(50) hmlbse close(50) write(*,*) write(*,'("Info(writeevbse): diagonalising the BSE Hamiltonian matrix")') if (bsefull) then ! full non-Hermitian matrix allocate(w(nmbse)) allocate(vl(1,1),vr(nmbse,nmbse)) lwork=2*nmbse allocate(rwork(lwork),work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) call mkl_set_num_threads(nthd) call zgeev('N','V',nmbse,hmlbse,nmbse,w,vl,1,vr,nmbse,work,lwork,rwork,info) call freethd(nthd) call mkl_set_num_threads(1) if (info.ne.0) then write(*,*) write(*,'("Error(writeevbse): diagonalisation failed")') write(*,'(" ZGEEV returned INFO = ",I8)') info write(*,*) stop end if evalbse(:)=dble(w(:)) hmlbse(:,:)=vr(:,:) deallocate(vl,vr,rwork,work) else ! Hermitian block only call eveqnz(nmbse,nmbse,hmlbse,evalbse) end if ! write the BSE eigenvectors and eigenvalues to file open(50,file='EVBSE.OUT',form='UNFORMATTED') write(50) nmbse write(50) evalbse write(50) hmlbse close(50) ! write the BSE eigenvalues to file open(50,file='EIGVAL_BSE.OUT',form='FORMATTED') write(50,'(I6," : nmbse")') nmbse if (bsefull) then do a=1,nmbse write(50,'(I6,2G18.10)') a,dble(w(a)),aimag(w(a)) end do deallocate(w) else do a=1,nmbse write(50,'(I6,G18.10)') a,evalbse(a) end do end if close(50) write(*,*) write(*,'("Info(writeevbse):")') write(*,'(" BSE eigenvectors and eigenvalues written to EVBSE.OUT")') write(*,'(" BSE eigenvalues written to EIGVAL_BSE.OUT")') ! deallocate global BSE arrays deallocate(evalbse,hmlbse) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genwfpw.f900000644000000000000000000000013213543334734014623 xustar0030 mtime=1569569244.749641868 30 atime=1569569240.931644307 30 ctime=1569569244.749641868 elk-6.3.2/src/genwfpw.f900000644002504400250440000001377513543334734016707 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genwfpw(vpl,ngp,igpig,vgpl,vgpc,gpc,sfacgp,nhp,vhpc,hpc,sfachp,wfpw) use modmain use modpw implicit none ! arguments real(8), intent(in) :: vpl(3) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) real(8), intent(in) :: vgpl(3,ngkmax,nspnfv),vgpc(3,ngkmax,nspnfv) real(8), intent(in) :: gpc(ngkmax,nspnfv) complex(8), intent(in) :: sfacgp(ngkmax,natmtot,nspnfv) integer, intent(in) :: nhp(nspnfv) real(8), intent(in) :: vhpc(3,nhkmax,nspnfv),hpc(nhkmax,nspnfv) complex(8), intent(in) :: sfachp(nhkmax,natmtot,nspnfv) complex(8), intent(out) :: wfpw(nhkmax,nspinor,nstsv) ! local variables integer ispn0,ispn1,ispn,jspn integer ist,is,ia,ias integer nrc,nrci,irco,irc integer lmax,l,m,lm integer npci,i,igp,ihp real(8) t0,t1,t2 complex(8) z1,z2,z3,z4 ! automatic arrays integer idx(nstsv) real(8) fr1(nrcmtmax),fr2(nrcmtmax) complex(8) ylm(lmmaxo) ! allocatable arrays real(8), allocatable :: jl(:,:) complex(8), allocatable :: apwalm(:,:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv)) allocate(wfir(ngkmax,nspinor,nstsv)) ! get the eigenvectors from file call getevecfv(filext,0,vpl,vgpl,evecfv) call getevecsv(filext,0,vpl,evecsv) ! find the matching coefficients do ispn=1,nspnfv call match(ngp(ispn),vgpc(:,:,ispn),gpc(:,ispn),sfacgp(:,:,ispn), & apwalm(:,:,:,:,ispn)) end do ! index to all states do ist=1,nstsv idx(ist)=ist end do ! calculate the second-variational wavefunctions for all states call genwfsv(.true.,.true.,nstsv,idx,ngridg,igfft,ngp,igpig,apwalm,evecfv, & evecsv,wfmt,ngkmax,wfir) deallocate(apwalm,evecfv,evecsv) ! zero the plane wave coefficients wfpw(:,:,:)=0.d0 !---------------------------! ! interstitial part ! !---------------------------! do jspn=1,nspnfv if (spinsprl) then ispn0=jspn; ispn1=jspn else ispn0=1; ispn1=nspinor end if i=1 do ihp=1,nhp(jspn) do igp=i,ngp(jspn) t1=abs(vhpc(1,ihp,jspn)-vgpc(1,igp,jspn)) & +abs(vhpc(2,ihp,jspn)-vgpc(2,igp,jspn)) & +abs(vhpc(3,ihp,jspn)-vgpc(3,igp,jspn)) if (t1.lt.epslat) then do ist=1,nstsv do ispn=ispn0,ispn1 wfpw(ihp,ispn,ist)=wfir(igp,ispn,ist) end do end do if (igp.eq.i) i=i+1 exit end if end do end do end do !-------------------------! ! muffin-tin part ! !-------------------------! allocate(jl(0:lmaxo,nrcmtmax)) t0=fourpi/sqrt(omega) ! remove continuation of interstitial function into muffin-tin do jspn=1,nspnfv if (spinsprl) then ispn0=jspn; ispn1=jspn else ispn0=1; ispn1=nspinor end if ! loop over G+p-vectors do igp=1,ngp(jspn) ! generate the conjugate spherical harmonics Y_lm*(G+p) call genylmv(lmaxo,vgpc(:,igp,jspn),ylm) ylm(:)=conjg(ylm(:)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 npci=npcmti(is) ! generate spherical Bessel functions lmax=lmaxi do irc=1,nrc t1=gpc(igp,jspn)*rcmt(irc,is) call sbessel(lmax,t1,jl(:,irc)) if (irc.eq.nrci) lmax=lmaxo end do ! loop over atoms do ia=1,natoms(is) ias=idxas(ia,is) z1=t0*sfacgp(igp,ias,jspn) do ist=1,nstsv do ispn=ispn0,ispn1 z2=z1*wfir(igp,ispn,ist) lm=0 do l=0,lmaxi z3=z2*zil(l) do m=-l,l lm=lm+1 z4=z3*ylm(lm) i=lm do irc=1,nrci wfmt(i,ias,ispn,ist)=wfmt(i,ias,ispn,ist)-z4*jl(l,irc) i=i+lmmaxi end do end do end do lm=0 do l=0,lmaxo z3=z2*zil(l) do m=-l,l lm=lm+1 z4=z3*ylm(lm) i=npci+lm do irc=irco,nrc wfmt(i,ias,ispn,ist)=wfmt(i,ias,ispn,ist)-z4*jl(l,irc) i=i+lmmaxo end do end do end do end do end do end do end do end do end do ! Fourier transform the muffin-tin wavefunctions do jspn=1,nspnfv if (spinsprl) then ispn0=jspn; ispn1=jspn else ispn0=1; ispn1=nspinor end if ! loop over H+p-vectors do ihp=1,nhp(jspn) ! generate the spherical harmonics Y_lm(H+p) call genylmv(lmaxo,vhpc(:,ihp,jspn),ylm) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) ! generate spherical Bessel functions lmax=lmaxi do irc=1,nrc t1=hpc(ihp,jspn)*rcmt(irc,is) call sbessel(lmax,t1,jl(:,irc)) if (irc.eq.nrci) lmax=lmaxo end do do ia=1,natoms(is) ias=idxas(ia,is) ! conjugate structure factor z3=t0*conjg(sfachp(ihp,ias,jspn)) ! loop over states do ist=1,nstsv do ispn=ispn0,ispn1 lmax=lmaxi i=0 do irc=1,nrc i=i+1 z1=jl(0,irc)*wfmt(i,ias,ispn,ist)*ylm(1) lm=1 do l=1,lmax lm=lm+1 i=i+1 z2=wfmt(i,ias,ispn,ist)*ylm(lm) do m=1-l,l lm=lm+1 i=i+1 z2=z2+wfmt(i,ias,ispn,ist)*ylm(lm) end do z1=z1+jl(l,irc)*zilc(l)*z2 end do fr1(irc)=dble(z1); fr2(irc)=aimag(z1) if (irc.eq.nrci) lmax=lmaxo end do t1=dot_product(wrcmt(1:nrc,is),fr1(1:nrc)) t2=dot_product(wrcmt(1:nrc,is),fr2(1:nrc)) ! add to the H+p wavefunction wfpw(ihp,ispn,ist)=wfpw(ihp,ispn,ist)+z3*cmplx(t1,t2,8) end do end do end do end do end do end do deallocate(jl,wfmt,wfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writewfpw.f900000644000000000000000000000013213543334734015204 xustar0030 mtime=1569569244.753641866 30 atime=1569569240.937644303 30 ctime=1569569244.753641866 elk-6.3.2/src/writewfpw.f900000644002504400250440000000416013543334734017254 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writewfpw use modmain use modpw use modmpi use modomp implicit none ! local variables integer ik,recl,nthd ! allocatable arrays complex(8), allocatable :: wfpw(:,:,:) ! initialise global variables call init0 call init1 call init4 ! read density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! delete existing WFPW.OUT if (mp_mpi) then open(170,file='WFPW.OUT') close(170,status='DELETE') end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! determine the record length and open WFPW.OUT allocate(wfpw(nhkmax,nspinor,nstsv)) inquire(iolength=recl) vkl(:,1),nhkmax,nspinor,nstsv,wfpw deallocate(wfpw) open(170,file='WFPW.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) ! begin parallel loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfpw) & !$OMP NUM_THREADS(nthd) allocate(wfpw(nhkmax,nspinor,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(writewfpw_) write(*,'("Info(writewfpw): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(writewfpw_) ! generate the plane wave wavefunctions call genwfpw(vkl(:,ik),ngk(:,ik),igkig(:,:,ik),vgkl(:,:,:,ik), & vgkc(:,:,:,ik),gkc(:,:,ik),sfacgk(:,:,:,ik),nhk(:,ik),vhkc(:,:,:,ik), & hkc(:,:,ik),sfachk(:,:,:,ik),wfpw) !$OMP CRITICAL(u170) write(170,rec=ik) vkl(:,ik),nhkmax,nspinor,nstsv,wfpw !$OMP END CRITICAL(u170) end do !$OMP END DO deallocate(wfpw) !$OMP END PARALLEL call freethd(nthd) close(170) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) then write(*,*) write(*,'("Info(writewfpw): plane wave wavefunctions written to WFPW.OUT")') write(*,'(" for all H+k-vectors up to |H+k| < hkmax")') end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/getwfpw.f900000644000000000000000000000013013543334734014627 xustar0030 mtime=1569569244.758641862 28 atime=1569569240.9416443 30 ctime=1569569244.758641862 elk-6.3.2/src/getwfpw.f900000644002504400250440000001201213543334734016674 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getwfpw(vpl,vhpl,wfpw) use modmain use modpw implicit none ! arguments real(8), intent(in) :: vpl(3) real(8), intent(in) :: vhpl(3,nhkmax,nspnfv) complex(8), intent(out) :: wfpw(nhkmax,nspinor,nstsv) ! local variables integer isym,lspl,ilspl,lspn integer ik,ist,ihk,ihp,jhp,ig integer ispn0,ispn1,jspn,i integer recl,nhkmax_,nspinor_,nstsv_ real(8) vkl_(3),si(3,3) real(8) v(3),det,th,t1 complex(8) su2(2,2),z1,z2 ! automatic arrays logical done(nhkmax) ! allocatable arrays complex(8), allocatable :: wfpw_(:,:,:) ! find the equivalent k-point number and symmetry which rotates vkl to vpl call findkpt(vpl,isym,ik) ! index to spatial rotation in lattice point group lspl=lsplsymc(isym) ! find the record length inquire(iolength=recl) vkl_,nhkmax_,nspinor_,nstsv_,wfpw !$OMP CRITICAL(u170) open(170,file='WFPW.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(170,rec=ik) vkl_,nhkmax_,nspinor_,nstsv_,wfpw close(170) !$OMP END CRITICAL(u170) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getwfpw): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" WFPW.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nhkmax.ne.nhkmax_) then write(*,*) write(*,'("Error(getwfpw): differing nhkmax for k-point ",I8)') ik write(*,'(" current : ",I8)') nhkmax write(*,'(" WFPW.OUT : ",I8)') nhkmax_ write(*,*) stop end if if (nspinor.ne.nspinor_) then write(*,*) write(*,'("Error(getwfpw): differing nspinor for k-point ",I8)') ik write(*,'(" current : ",I8)') nspinor write(*,'(" WFPW.OUT : ",I8)') nspinor_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getwfpw): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" WFPW.OUT : ",I8)') nstsv_ write(*,*) stop end if ! if p = k then return t1=abs(vpl(1)-vkl(1,ik))+abs(vpl(2)-vkl(2,ik))+abs(vpl(3)-vkl(3,ik)) if (t1.lt.epslat) return !--------------------------------------------------------! ! translate and rotate wavefunction coefficients ! !--------------------------------------------------------! ! allocate temporary copy of wavefunction allocate(wfpw_(nhkmax,nspinor,nstsv)) ! the inverse of the spatial symmetry ilspl=isymlat(lspl) si(:,:)=dble(symlat(:,:,ilspl)) ! loop over first-variational spins do jspn=1,nspnfv if (spinsprl) then ispn0=jspn; ispn1=jspn else ispn0=1; ispn1=nspinor end if ! apply translation operation if required if (tv0symc(isym)) then ! translation vector is zero do ihk=1,nhk(jspn,ik) wfpw_(ihk,ispn0:ispn1,:)=wfpw(ihk,ispn0:ispn1,:) end do else ! non-zero translation vector gives a phase factor v(:)=vtcsymc(:,isym) do ihk=1,nhk(jspn,ik) ig=ihkig(ihk,jspn,ik) t1=-(vgc(1,ig)*v(1)+vgc(2,ig)*v(2)+vgc(3,ig)*v(3)) z1=cmplx(cos(t1),sin(t1),8) wfpw_(ihk,ispn0:ispn1,:)=z1*wfpw(ihk,ispn0:ispn1,:) end do end if ! apply spatial rotation operation (passive transformation) done(1:nhk(jspn,ik))=.false. i=1 do ihk=1,nhk(jspn,ik) call r3mtv(si,vhkl(:,ihk,jspn,ik),v) do ihp=i,nhk(jspn,ik) if (done(ihp)) cycle t1=abs(v(1)-vhpl(1,ihp,jspn)) & +abs(v(2)-vhpl(2,ihp,jspn)) & +abs(v(3)-vhpl(3,ihp,jspn)) if (t1.lt.epslat) then wfpw(ihp,ispn0:ispn1,:)=wfpw_(ihk,ispn0:ispn1,:) done(ihp)=.true. exit end if end do do ihp=i,nhk(jspn,ik) if (.not.done(ihp)) then i=ihp exit end if end do end do end do ! apply spin rotation if required if (spinpol) then ! index to global spin rotation in lattice point group lspn=lspnsymc(isym) ! if symmetry element is the identity return if (lspn.eq.1) return ! find the SU(2) representation of the spin rotation matrix call rotaxang(epslat,symlatc(:,:,lspn),det,v,th) call axangsu2(v,th,su2) ! apply SU(2) matrix to spinor wavefunctions (active transformation) if (spinsprl) then ! spin-spiral case wfpw(:,2,:)=0.d0 i=1 do ihp=1,nhk(1,ik) v(:)=vhpl(:,ihp,1)-vqlss(:) do jhp=i,nhk(2,ik) t1=abs(v(1)-vhpl(1,jhp,2)) & +abs(v(2)-vhpl(2,jhp,2)) & +abs(v(3)-vhpl(3,jhp,2)) if (t1.lt.epslat) then do ist=1,nstsv z1=wfpw(ihp,1,ist) z2=wfpw(jhp,2,ist) wfpw(ihp,1,ist)=su2(1,1)*z1+su2(1,2)*z2 wfpw(jhp,2,ist)=su2(2,1)*z1+su2(2,2)*z2 end do if (jhp.eq.i) i=i+1 goto 10 end if end do wfpw(ihp,1,:)=0.d0 10 continue end do else ! normal spin case do ist=1,nstsv do ihp=1,nhk(1,ik) z1=wfpw(ihp,1,ist) z2=wfpw(ihp,2,ist) wfpw(ihp,1,ist)=su2(1,1)*z1+su2(1,2)*z2 wfpw(ihp,2,ist)=su2(2,1)*z1+su2(2,2)*z2 end do end do end if end if deallocate(wfpw_) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genexpmat.f900000644000000000000000000000013213543334734015136 xustar0030 mtime=1569569244.763641859 30 atime=1569569240.947644297 30 ctime=1569569244.763641859 elk-6.3.2/src/genexpmat.f900000644002504400250440000001252513543334734017212 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genexpmat(vpl,expmt,emat) use modmain implicit none ! arguments real(8), intent(in) :: vpl(3) complex(8), intent(in) :: expmt(npcmtmax,natmtot) complex(8), intent(out) :: emat(nstsv,nstsv) ! local variables integer ist,jst,ispn,i,j,k,l integer is,ia,ias,nrc,nrci integer npc,ngp,ngpq,igp,ifg real(8) vpc(3),vpql(3),vpqc(3),t1 complex(8) z1 ! allocatable arrays integer, allocatable :: igpig(:),igpqig(:) real(8), allocatable :: vgpl(:,:),vgpc(:,:),gpc(:) real(8), allocatable :: vgpql(:,:),vgpqc(:,:),gpqc(:) complex(8), allocatable :: sfacgp(:,:),sfacgpq(:,:) complex(8), allocatable :: apwalm1(:,:,:,:),apwalm2(:,:,:,:) complex(8), allocatable :: evecfv1(:,:),evecfv2(:,:) complex(8), allocatable :: evecsv1(:,:),evecsv2(:,:) complex(8), allocatable :: wfmt1(:),wfmt2(:,:) complex(8), allocatable :: zfir(:),x(:),em(:,:) ! external functions complex(8) zfmtinp,zdotc external zfmtinp,zdotc ! check if q-vector is zero t1=abs(vecql(1))+abs(vecql(2))+abs(vecql(3)) if (t1.lt.epslat) then emat(:,:)=0.d0 do i=1,nstsv emat(i,i)=1.d0 end do return end if ! allocate local arrays allocate(igpig(ngkmax),igpqig(ngkmax)) allocate(vgpl(3,ngkmax),vgpc(3,ngkmax),gpc(ngkmax)) allocate(vgpql(3,ngkmax),vgpqc(3,ngkmax),gpqc(ngkmax)) allocate(sfacgp(ngkmax,natmtot),sfacgpq(ngkmax,natmtot)) allocate(apwalm1(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(apwalm2(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv1(nmatmax,nstfv),evecfv2(nmatmax,nstfv)) if (tevecsv) then allocate(evecsv1(nstsv,nstsv),evecsv2(nstsv,nstsv)) end if allocate(wfmt1(npcmtmax),wfmt2(npcmtmax,nstfv)) allocate(zfir(ngtot),x(ngkmax),em(nstfv,nstfv)) ! p-vector in Cartesian coordinates call r3mv(bvec,vpl,vpc) ! generate the G+p-vectors call gengkvec(ngvec,ivg,vgc,vpl,vpc,gkmax,ngkmax,ngp,igpig,vgpl,vgpc,gpc) ! generate the structure factors call gensfacgp(ngp,vgpc,ngkmax,sfacgp) ! find the matching coefficients for k-point p call match(ngp,vgpc,gpc,sfacgp,apwalm1) ! get the eigenvectors for k-point p call getevecfv(filext,0,vpl,vgpl,evecfv1) ! p+q-vector in lattice coordinates vpql(:)=vpl(:)+vecql(:) ! p+q-vector in Cartesian coordinates call r3mv(bvec,vpql,vpqc) ! generate the G+p+q-vectors call gengkvec(ngvec,ivg,vgc,vpql,vpqc,gkmax,ngkmax,ngpq,igpqig,vgpql,vgpqc,gpqc) ! generate the structure factors call gensfacgp(ngpq,vgpqc,ngkmax,sfacgpq) ! find the matching coefficients for k-point p+q call match(ngpq,vgpqc,gpqc,sfacgpq,apwalm2) ! get the eigenvectors for k-point p+q call getevecfv(filext,0,vpql,vgpql,evecfv2) ! set the first-variational matrix element array to zero em(:,:)=0.d0 !------------------------------------! ! muffin-tin matrix elements ! !------------------------------------! do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do ist=1,nstfv ! calculate the wavefunction for k-point p+q call wavefmt(lradstp,ias,ngpq,apwalm2(:,:,:,ias),evecfv2(:,ist),wfmt1) ! convert from spherical harmonics to spherical coordinates call zbsht(nrc,nrci,wfmt1,wfmt2(:,ist)) ! multiply by exp(-iq.r) (conjugate because zfmtinp conjugates first function) wfmt1(1:npc)=conjg(expmt(1:npc,ias))*wfmt2(1:npc,ist) ! convert from spherical coordinates to spherical harmonics call zfsht(nrc,nrci,wfmt1,wfmt2(:,ist)) end do do jst=1,nstfv ! calculate the wavefunction for k-point p call wavefmt(lradstp,ias,ngp,apwalm1(:,:,:,ias),evecfv1(:,jst),wfmt1) do ist=1,nstfv em(ist,jst)=em(ist,jst)+zfmtinp(nrc,nrci,wrcmt(:,is),wfmt2(:,ist),wfmt1) end do end do ! end loops over atoms and species end do end do !--------------------------------------! ! interstitial matrix elements ! !--------------------------------------! ! compute interstitial wavefunctions for k-point p do jst=1,nstfv zfir(:)=0.d0 do igp=1,ngp ifg=igfft(igpig(igp)) zfir(ifg)=evecfv1(igp,jst) end do ! Fourier transform wavefunction to real-space call zfftifc(3,ngridg,1,zfir) ! multiply with the characteristic function zfir(:)=zfir(:)*cfunir(:) ! Fourier transform back to G-space call zfftifc(3,ngridg,-1,zfir) ! store as wavefunction with G+p+q index do igp=1,ngpq ifg=igfft(igpqig(igp)) x(igp)=zfir(ifg) end do ! add to the first-variational matrix elements do ist=1,nstfv em(ist,jst)=em(ist,jst)+zdotc(ngpq,evecfv2(:,ist),1,x,1) end do end do !-------------------------------------------! ! second-variational matrix elements ! !-------------------------------------------! if (tevecsv) then ! get the second-variational eigenvectors call getevecsv(filext,0,vpl,evecsv1) call getevecsv(filext,0,vpql,evecsv2) do i=1,nstsv do j=1,nstsv z1=0.d0 k=0 do ispn=1,nspinor do ist=1,nstfv k=k+1 l=(ispn-1)*nstfv do jst=1,nstfv l=l+1 z1=z1+em(ist,jst)*conjg(evecsv2(k,i))*evecsv1(l,j) end do end do end do emat(i,j)=z1 end do end do else emat(:,:)=em(:,:) end if deallocate(igpig,igpqig,vgpl,vgpc,gpc) deallocate(vgpql,vgpqc,gpqc,sfacgp,sfacgpq) deallocate(apwalm1,apwalm2,evecfv1,evecfv2) if (tevecsv) deallocate(evecsv1,evecsv2) deallocate(wfmt1,wfmt2,zfir,x,em) return end subroutine elk-6.3.2/src/PaxHeaders.21352/elnes.f900000644000000000000000000000013213543334734014254 xustar0030 mtime=1569569244.767641857 30 atime=1569569240.952644293 30 ctime=1569569244.767641857 elk-6.3.2/src/elnes.f900000644002504400250440000000721013543334734016323 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine elnes use modmain use modomp use modtest implicit none ! local variables integer ik,jk,ikq,isym,nsk(3) integer ist,jst,iw,n,nthd real(8) vgqc(3),gqc real(8) vkql(3),v(3) real(8) q,wd,dw,w,t1 ! allocatable arrays real(8), allocatable :: jlgqr(:,:),ddcs(:) real(8), allocatable :: e(:,:,:),f(:,:,:) complex(8), allocatable :: ylmgq(:),sfacgq(:) complex(8), allocatable :: expmt(:,:),emat(:,:) ! initialise universal variables call init0 call init1 call init2 ! check q-vector is commensurate with k-point grid v(:)=dble(ngridk(:))*vecql(:) v(:)=abs(v(:)-nint(v(:))) if ((v(1).gt.epslat).or.(v(2).gt.epslat).or.(v(3).gt.epslat)) then write(*,*) write(*,'("Error(elnes): q-vector incommensurate with k-point grid")') write(*,'(" ngridk : ",3I6)') ngridk write(*,'(" vecql : ",3G18.10)') vecql write(*,*) stop end if ! read in the density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the second-variational eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate the phase factor function exp(iq.r) in the muffin-tins allocate(jlgqr(njcmax,nspecies)) allocate(ylmgq(lmmaxo),sfacgq(natmtot)) allocate(expmt(npcmtmax,natmtot)) ngrf=1 call gengqrf(vecqc,vgqc,gqc,jlgqr,ylmgq,sfacgq) call genexpmt(1,jlgqr,ylmgq,1,sfacgq,expmt) deallocate(jlgqr,ylmgq,sfacgq) allocate(e(nstsv,nstsv,nkptnr),f(nstsv,nstsv,nkptnr)) e(:,:,:)=0.d0 f(:,:,:)=0.d0 ! begin parallel loop over non-reduced k-points call holdthd(nkptnr,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(emat,jk,vkql,isym) & !$OMP PRIVATE(ikq,ist,jst,t1) & !$OMP NUM_THREADS(nthd) allocate(emat(nstsv,nstsv)) !$OMP DO do ik=1,nkptnr !$OMP CRITICAL(elnes_) write(*,'("Info(elnes): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(elnes_) ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! k+q-vector in lattice coordinates vkql(:)=vkl(:,ik)+vecql(:) ! index to k+q-vector call findkpt(vkql,isym,ikq) ! compute < i,k+q | exp(iq.r) | j,k > matrix elements call genexpmat(vkl(:,ik),expmt,emat) ! add to the double differential scattering cross-section do jst=1,nstsv if (evalsv(jst,jk).lt.emaxelnes) then do ist=1,nstsv e(ist,jst,ik)=evalsv(ist,ikq)-evalsv(jst,jk) t1=dble(emat(ist,jst))**2+aimag(emat(ist,jst))**2 f(ist,jst,ik)=t1*occsv(jst,jk)*(occmax-occsv(ist,ikq)) end do end if end do end do !$OMP END DO deallocate(emat) !$OMP END PARALLEL call freethd(nthd) ! number of subdivisions used for interpolation nsk(:)=max(ngrkf/ngridk(:),1) n=nstsv*nstsv ! integrate over the Brillouin zone allocate(ddcs(nwplot)) call brzint(nswplot,ngridk,nsk,ivkiknr,nwplot,wplot,n,n,e,f,ddcs) q=sqrt(vecqc(1)**2+vecqc(2)**2+vecqc(3)**2) t1=2.d0/(omega*occmax) if (q.gt.epslat) t1=t1/q**4 ddcs(:)=t1*ddcs(:) open(50,file='ELNES.OUT',form='FORMATTED') wd=wplot(2)-wplot(1) dw=wd/dble(nwplot) do iw=1,nwplot w=dw*dble(iw-1)+wplot(1) write(50,'(2G18.10)') w,ddcs(iw) end do close(50) write(*,*) write(*,'("Info(elnes):")') write(*,'(" ELNES double differential cross-section written to ELNES.OUT")') ! write ELNES distribution to test file call writetest(140,'ELNES cross-section',nv=nwplot,tol=1.d-2,rva=ddcs) deallocate(e,f,ddcs,expmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/potefield.f900000644000000000000000000000013113543334734015120 xustar0030 mtime=1569569244.771641854 29 atime=1569569240.95764429 30 ctime=1569569244.771641854 elk-6.3.2/src/potefield.f900000644002504400250440000000321213543334734017166 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potefield use modmain implicit none ! local variables integer is,ia,ias integer nr,nri,ir integer i,i1,i2,i3 real(8) e,tp(2),r,t1 real(8) v0,e00,elm(-1:1) real(8) v1(3),v2(3) ! constant added to potential so that it is zero at the unit cell center v1(:)=0.5d0*(avec(:,1)+avec(:,2)+avec(:,3)) v0=dot_product(efieldc(:),v1(:)) ! determine the electric field vector in spherical coordinates call sphcrd(efieldc,e,tp) ! coefficients for real spherical harmonics R_1-1, R_10 and R_11 t1=e*sqrt(fourpi/3.d0) elm(-1)=t1*sin(tp(1))*sin(tp(2)) elm(0)=-t1*cos(tp(1)) elm(1)=t1*sin(tp(1))*cos(tp(2)) ! muffin-tin potential do is=1,nspecies nr=nrmt(is) nri=nrmti(is) do ia=1,natoms(is) ias=idxas(ia,is) ! coefficient for R_00 e00=v0-dot_product(efieldc(:),atposc(:,ia,is)) e00=e00/y00 i=1 do ir=1,nr r=rsp(ir,is) vclmt(i,ias)=vclmt(i,ias)+e00 vclmt(i+1,ias)=vclmt(i+1,ias)+elm(-1)*r vclmt(i+2,ias)=vclmt(i+2,ias)+elm(0)*r vclmt(i+3,ias)=vclmt(i+3,ias)+elm(1)*r if (ir.le.nri) then i=i+lmmaxi else i=i+lmmaxo end if end do end do end do ! interstitial potential ir=0 do i3=0,ngridg(3)-1 v1(3)=dble(i3)/dble(ngridg(3)) do i2=0,ngridg(2)-1 v1(2)=dble(i2)/dble(ngridg(2)) do i1=0,ngridg(1)-1 v1(1)=dble(i1)/dble(ngridg(1)) ir=ir+1 call r3mv(avec,v1,v2) vclir(ir)=vclir(ir)+v0-dot_product(efieldc(:),v2(:)) end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/eulerrot.f900000644000000000000000000000013213543334734015007 xustar0030 mtime=1569569244.776641851 30 atime=1569569240.962644287 30 ctime=1569569244.776641851 elk-6.3.2/src/eulerrot.f900000644002504400250440000000216213543334734017057 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: eulerrot ! !INTERFACE: subroutine eulerrot(ang,rot) ! !INPUT/OUTPUT PARAMETERS: ! ang : Euler angles (alpha, beta, gamma) (in,real(3)) ! rot : rotation matrix (out,real(3,3)) ! !DESCRIPTION: ! Given a set of Euler angles, $(\alpha,\beta,\gamma)$, this routine ! determines the corresponding $3\times 3$ rotation matrix. The so-called ! `y-convention' is taken for the Euler angles. See the routine {\tt roteuler} ! for details. ! ! !REVISION HISTORY: ! Created January 2014 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: ang(3) real(8), intent(out) :: rot(3,3) ! local variables real(8) sa,sb,sg,ca,cb,cg sa=sin(ang(1)); sb=sin(ang(2)); sg=sin(ang(3)) ca=cos(ang(1)); cb=cos(ang(2)); cg=cos(ang(3)) rot(1,1)=cg*cb*ca-sg*sa rot(1,2)=cg*cb*sa+sg*ca rot(1,3)=-cg*sb rot(2,1)=-sg*cb*ca-cg*sa rot(2,2)=-sg*cb*sa+cg*ca rot(2,3)=sg*sb rot(3,1)=sb*ca rot(3,2)=sb*sa rot(3,3)=cb return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/fermisurfbxsf.f900000644000000000000000000000013213543334734016033 xustar0030 mtime=1569569244.780641848 30 atime=1569569240.967644284 30 ctime=1569569244.780641848 elk-6.3.2/src/fermisurfbxsf.f900000644002504400250440000001027413543334734020106 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 F. Cricchio, F. Bultmark and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine fermisurfbxsf use modmain use modomp implicit none ! local variables integer ik,nst,ist integer ist0,ist1,jst0,jst1 integer i1,i2,i3,j1,j2,j3 integer nf,f,i,nthd real(8) vc(3,0:3),e0,e1 ! allocatable arrays integer, allocatable :: idx(:) real(8), allocatable :: evalfv(:,:),e(:) complex(8), allocatable :: evecfv(:,:,:) complex(8), allocatable :: evecsv(:,:) ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! generate the spin-orbit coupling radial functions call gensocfr ! begin parallel loop over reduced k-points set call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evalfv,evecfv,evecsv) & !$OMP NUM_THREADS(nthd) allocate(evalfv(nstfv,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv)) allocate(evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt !$OMP CRITICAL(fermisurfbxsf_) write(*,'("Info(fermisurfbxsf): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(fermisurfbxsf_) ! solve the first- and second-variational eigenvalue equations call eveqn(ik,evalfv,evecfv,evecsv) ! end loop over reduced k-points set end do !$OMP END DO deallocate(evalfv,evecfv,evecsv) !$OMP END PARALLEL call freethd(nthd) ! if iterative diagonalisation is used the eigenvalues must be reordered if (tefvit.and.(.not.spinpol)) then allocate(idx(nstsv),e(nstsv)) do ik=1,nkpt e(:)=evalsv(:,ik) call sortidx(nstsv,e,idx) do ist=1,nstsv evalsv(ist,ik)=e(idx(ist)) end do end do deallocate(idx,e) end if ! plotting box in Cartesian coordinates do i=0,3 vc(:,i)=bvec(:,1)*kptboxl(1,i)+bvec(:,2)*kptboxl(2,i)+bvec(:,3)*kptboxl(3,i) end do ! number of files to plot (2 for collinear magnetism, 1 otherwise) if (ndmag.eq.1) then nf=2 else nf=1 end if do f=1,nf if (nf.eq.2) then if (f.eq.1) then open(50,file='FERMISURF_UP.bxsf',form='FORMATTED') jst0=1; jst1=nstfv else open(50,file='FERMISURF_DN.bxsf',form='FORMATTED') jst0=nstfv+1; jst1=2*nstfv end if else open(50,file='FERMISURF.bxsf',form='FORMATTED') jst0=1; jst1=nstsv end if ! find the range of eigenvalues which contribute to the Fermi surface (Lars) ist0=jst1; ist1=jst0 do ist=jst0,jst1 e0=minval(evalsv(ist,:)); e1=maxval(evalsv(ist,:)) ! determine if the band crosses the Fermi energy if ((e0.lt.efermi).and.(e1.gt.efermi)) then ist0=min(ist0,ist); ist1=max(ist1,ist) end if end do nst=ist1-ist0+1 write(50,'(" BEGIN_INFO")') write(50,'(" # Band-XCRYSDEN-Structure-File for Fermi surface plotting")') write(50,'(" # created by Elk version ",I1.1,".",I1.1,".",I2.2)') version write(50,'(" # Launch as: xcrysden --bxsf FERMISURF(_UP/_DN).bxsf")') write(50,'(" Fermi Energy: ",G18.10)') 0.d0 write(50,'(" END_INFO")') write(50,'(" BEGIN_BLOCK_BANDGRID_3D")') write(50, '(" band_energies")') write(50,'(" BANDGRID_3D_BANDS")') write(50,'(I4)') nst write(50,'(3I6)') ngridk(:)+1 do i=0,3 write(50,'(3G18.10)') vc(:,i) end do do ist=ist0,ist1 write(50,'(" BAND: ",I4)') ist do i1=0,ngridk(1) j1=mod(i1,ngridk(1)) do i2=0,ngridk(2) j2=mod(i2,ngridk(2)) do i3=0,ngridk(3) j3=mod(i3,ngridk(3)) ik=ivkik(j1,j2,j3) write(50,'(G18.10)') evalsv(ist,ik)-efermi end do end do end do end do write(50,'(" END_BANDGRID_3D")') write(50,'(" END_BLOCK_BANDGRID_3D")') close(50) end do write(*,*) write(*,'("Info(fermisurfbxsf):")') if (ndmag.eq.1) then write(*,'(" 3D Fermi surface data written to FERMISURF_UP.bxsf and & &FERMISURF_DN.bxsf")') else write(*,'(" 3D Fermi surface data written to FERMISURF.bxsf")') end if write(*,'(" for plotting with XCrysDen (Fermi energy set to zero)")') write(*,*) write(*,'(" Launch as: xcrysden --bxsf FERMISURF(_UP/_DN).bxsf")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/symmetry.f900000644000000000000000000000013213543334734015037 xustar0030 mtime=1569569244.784641846 30 atime=1569569240.972644281 30 ctime=1569569244.784641846 elk-6.3.2/src/symmetry.f900000644002504400250440000000205413543334734017107 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine symmetry use modmain use modvars implicit none ! inverse of the lattice vector matrix call r3minv(avec,ainv) ! find Bravais lattice symmetries call findsymlat ! use only the identity if required if (symtype.eq.0) nsymlat=1 ! find the crystal symmetries and shift atomic positions if required call findsymcrys ! find the site symmetries call findsymsite ! check if fixed spin moments are invariant under the symmetry group call checkfsm ! check if real symmetric first-variational eigen solver can be used if (.not.tsyminv) tefvr=.false. ! write to VARIABLES.OUT call writevars('nsymlat',iv=nsymlat) call writevars('symlat',nv=9*nsymlat,iva=symlat) call writevars('nsymcrys',iv=nsymcrys) call writevars('vtlsymc',nv=3*nsymcrys,rva=vtlsymc) call writevars('lsplsymc',nv=nsymcrys,iva=lsplsymc) call writevars('lspnsymc',nv=nsymcrys,iva=lspnsymc) return end subroutine elk-6.3.2/src/PaxHeaders.21352/findsymcrys.f900000644000000000000000000000013213543334734015520 xustar0030 mtime=1569569244.789641843 30 atime=1569569240.977644277 30 ctime=1569569244.789641843 elk-6.3.2/src/findsymcrys.f900000644002504400250440000001520113543334734017566 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: findsymcrys ! !INTERFACE: subroutine findsymcrys ! !USES: use modmain use modmpi use modtest ! !DESCRIPTION: ! Finds the complete set of symmetries which leave the crystal structure ! (including the magnetic fields) invariant. A crystal symmetry is of the form ! $\{\alpha_S|\alpha_R|{\bf t}\}$, where ${\bf t}$ is a translation vector, ! $\alpha_R$ is a spatial rotation operation and $\alpha_S$ is a global spin ! rotation. Note that the order of operations is important and defined to be ! from right to left, i.e. translation followed by spatial rotation followed ! by spin rotation. In the case of spin-orbit coupling $\alpha_S=\alpha_R$. In ! order to determine the translation vectors, the entire atomic basis is ! shifted so that the first atom in the smallest set of atoms of the same ! species is at the origin. Then all displacement vectors between atoms in ! this set are checked as possible symmetry translations. If the global ! variable {\tt tshift} is set to {\tt .false.} then the shift is not ! performed. See L. M. Sandratskii and P. G. Guletskii, {\it J. Phys. F: Met. ! Phys.} {\bf 16}, L43 (1986) and the routine {\tt findsym}. ! ! !REVISION HISTORY: ! Created April 2007 (JKD) !EOP !BOC implicit none ! local variables integer ia,ja,is,js integer isym,nsym,i,n integer lspl(48),lspn(48),ilspl real(8) v0(3),v1(3),v2(3),t1 real(8) apl(3,maxatoms,maxspecies) ! allocatable arrays integer, allocatable :: iea(:,:,:) real(8), allocatable :: vtl(:,:) ! allocate local array allocate(iea(natmmax,nspecies,48)) ! allocate equivalent atom arrays if (allocated(ieqatom)) deallocate(ieqatom) allocate(ieqatom(natmmax,nspecies,maxsymcrys)) if (allocated(eqatoms)) deallocate(eqatoms) allocate(eqatoms(natmmax,natmmax,nspecies)) ! store position of first atom if (natmtot.gt.0) v0(:)=atposl(:,1,1) ! find the smallest set of atoms is=1 do js=1,nspecies if (natoms(js).lt.natoms(is)) is=js end do if ((tshift).and.(natmtot.gt.0)) then ! shift basis so that the first atom in the smallest atom set is at the origin v1(:)=atposl(:,1,is) do js=1,nspecies do ia=1,natoms(js) ! shift atom atposl(:,ia,js)=atposl(:,ia,js)-v1(:) ! map lattice coordinates back to [0,1) call r3frac(epslat,atposl(:,ia,js)) ! determine the new Cartesian coordinates call r3mv(avec,atposl(:,ia,js),atposc(:,ia,js)) end do end do end if ! determine possible translation vectors from smallest set of atoms n=max(natoms(is)*natoms(is),1) allocate(vtl(3,n)) n=1 vtl(:,1)=0.d0 do ia=1,natoms(is) do ja=2,natoms(is) ! compute difference between two atom vectors v1(:)=atposl(:,ia,is)-atposl(:,ja,is) ! map lattice coordinates to [0,1) call r3frac(epslat,v1) ! check if vector has any component along electric field if (tefield) then call r3mv(avec,v1,v2) t1=efieldc(1)*v2(1)+efieldc(2)*v2(2)+efieldc(3)*v2(3) if (abs(t1).gt.epslat) goto 10 end if do i=1,n t1=abs(vtl(1,i)-v1(1))+abs(vtl(2,i)-v1(2))+abs(vtl(3,i)-v1(3)) if (t1.lt.epslat) goto 10 end do n=n+1 vtl(:,n)=v1(:) 10 continue end do end do ! no translations required when symtype=0,2 (F. Cricchio) if (symtype.ne.1) n=1 eqatoms(:,:,:)=.false. nsymcrys=0 ! loop over all possible translations do i=1,n ! construct new array with translated positions do is=1,nspecies do ia=1,natoms(is) apl(:,ia,is)=atposl(:,ia,is)+vtl(:,i) end do end do ! find the symmetries for current translation call findsym(atposl,apl,nsym,lspl,lspn,iea) do isym=1,nsym nsymcrys=nsymcrys+1 if (nsymcrys.gt.maxsymcrys) then write(*,*) write(*,'("Error(findsymcrys): too many crystal symmetries")') write(*,'(" Adjust maxsymcrys in modmain and recompile code")') write(*,*) stop end if vtlsymc(:,nsymcrys)=vtl(:,i) lsplsymc(nsymcrys)=lspl(isym) lspnsymc(nsymcrys)=lspn(isym) do is=1,nspecies do ia=1,natoms(is) ja=iea(ia,is,isym) ieqatom(ia,is,nsymcrys)=ja eqatoms(ia,ja,is)=.true. eqatoms(ja,ia,is)=.true. end do end do end do end do tsyminv=.false. do isym=1,nsymcrys ! check if inversion symmetry is present i=lsplsymc(isym) if (all(symlat(:,:,i).eq.-symlat(:,:,1))) then tsyminv=.true. ! make inversion the second symmetry element (the identity is the first) v1(:)=vtlsymc(:,isym); vtlsymc(:,isym)=vtlsymc(:,2); vtlsymc(:,2)=v1(:) i=lsplsymc(isym); lsplsymc(isym)=lsplsymc(2); lsplsymc(2)=i i=lspnsymc(isym); lspnsymc(isym)=lspnsymc(2); lspnsymc(2)=i do is=1,nspecies do ia=1,natoms(is) i=ieqatom(ia,is,isym) ieqatom(ia,is,isym)=ieqatom(ia,is,2) ieqatom(ia,is,2)=i end do end do goto 20 end if end do 20 continue ! if inversion exists then shift basis so that inversion center is at origin if (tsyminv.and.tshift) then v1(:)=v1(:)/2.d0 do is=1,nspecies do ia=1,natoms(is) ! shift atom atposl(:,ia,is)=atposl(:,ia,is)+v1(:) ! map lattice coordinates back to [0,1) call r3frac(epslat,atposl(:,ia,is)) ! map lattice coordinates to [-0.5,0.5) do i=1,3 if (atposl(i,ia,is).gt.0.5d0) atposl(i,ia,is)=atposl(i,ia,is)-1.d0 end do ! determine the new Cartesian coordinates call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do ! recalculate crystal symmetry translation vectors do isym=1,nsymcrys ilspl=isymlat(lsplsymc(isym)) v2(:)=symlat(:,1,ilspl)*v1(1) & +symlat(:,2,ilspl)*v1(2) & +symlat(:,3,ilspl)*v1(3) vtlsymc(:,isym)=vtlsymc(:,isym)-v1(:)+v2(:) call r3frac(epslat,vtlsymc(:,isym)) end do end if ! translation vector in Cartesian coordinates do isym=1,nsymcrys call r3mv(avec,vtlsymc(:,isym),vtcsymc(:,isym)) end do ! set flag for zero translation vector do isym=1,nsymcrys t1=abs(vtlsymc(1,isym))+abs(vtlsymc(2,isym))+abs(vtlsymc(3,isym)) if (t1.lt.epslat) then tv0symc(isym)=.true. else tv0symc(isym)=.false. end if end do ! check inversion does not include a translation if (tsyminv) then if (.not.tv0symc(2)) tsyminv=.false. end if if (natmtot.gt.0) then v1(:)=atposl(:,1,1)-v0(:) t1=abs(v1(1))+abs(v1(2))+abs(v1(3)) if (mp_mpi.and.(t1.gt.epslat)) then write(*,*) write(*,'("Info(findsymcrys): atomic basis shift (lattice) :")') write(*,'(3G18.10)') v1(:) write(*,'("See GEOMETRY.OUT for new atomic positions")') end if end if ! write number of crystal symmetries to test file call writetest(705,'number of crystal symmetries',iv=nsymcrys) deallocate(iea,vtl) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/findsymsite.f900000644000000000000000000000013213543334734015504 xustar0030 mtime=1569569244.792641841 30 atime=1569569240.983644274 30 ctime=1569569244.792641841 elk-6.3.2/src/findsymsite.f900000644002504400250440000000164513543334734017561 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine findsymsite use modmain implicit none ! local variables integer is,js,ia,ja,ias real(8) apl(3,maxatoms,maxspecies) ! automatic arrays real(8) iea(natmmax,nspecies,48) ! allocate the site symmetry arrays if (allocated(nsymsite)) deallocate(nsymsite) allocate(nsymsite(natmtot)) if (allocated(lsplsyms)) deallocate(lsplsyms) allocate(lsplsyms(48,natmtot)) if (allocated(lspnsyms)) deallocate(lspnsyms) allocate(lspnsyms(48,natmtot)) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) do js=1,nspecies do ja=1,natoms(js) apl(:,ja,js)=atposl(:,ja,js)-atposl(:,ia,is) end do end do call findsym(apl,apl,nsymsite(ias),lsplsyms(:,ias),lspnsyms(:,ias),iea) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotpt1d.f900000644000000000000000000000013113543334734014714 xustar0030 mtime=1569569244.797641838 29 atime=1569569240.98864427 30 ctime=1569569244.797641838 elk-6.3.2/src/plotpt1d.f900000644002504400250440000000524313543334734016770 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: plotpt1d ! !INTERFACE: subroutine plotpt1d(cvec,nv,np,vvl,vpl,dv,dp) ! !INPUT/OUTPUT PARAMETERS: ! cvec : matrix of (reciprocal) lattice vectors stored column-wise ! (in,real(3,3)) ! nv : number of vertices (in,integer) ! np : number of connecting points (in,integer) ! vvl : vertex vectors in lattice coordinates (in,real(3,nv)) ! vpl : connecting point vectors in lattice coordinates (out,real(3,np)) ! dv : cummulative distance to each vertex (out,real(nv)) ! dp : cummulative distance to each connecting point (out,real(np)) ! !DESCRIPTION: ! Generates a set of points which interpolate between a given set of vertices. ! Vertex points are supplied in lattice coordinates in the array {\tt vvl} and ! converted to Cartesian coordinates with the matrix {\tt cvec}. Interpolating ! points are stored in the array {\tt vpl}. The cummulative distances to the ! vertices and points along the path are stored in arrays {\tt dv} and ! {\tt dp}, respectively. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) ! Improved September 2007 (JKD) ! Improved again, July 2010 (T. McQueen and JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: cvec(3,3) integer, intent(in) :: nv,np real(8), intent(in) :: vvl(3,nv) real(8), intent(out) :: vpl(3,np),dv(nv),dp(np) ! local variables integer i,j,k,m,n real(8) vl(3),vc(3) real(8) dt,f,t1 ! alloctable arrays real(8), allocatable :: seg(:) if (nv.lt.1) then write(*,*) write(*,'("Error(plotpt1d): nv < 1 : ",I8)') nv write(*,*) stop end if if (np.lt.nv) then write(*,*) write(*,'("Error(plotpt1d): np < nv : ",2I8)') np,nv write(*,*) stop end if ! special case of 1 vertex if (nv.eq.1) then dv(1)=0.d0 dp(:)=0.d0 do i=1,np vpl(:,i)=vvl(:,1) end do return end if allocate(seg(nv)) ! find the length of each segment and total distance dt=0.d0 do i=1,nv-1 dv(i)=dt vl(:)=vvl(:,i+1)-vvl(:,i) call r3mv(cvec,vl,vc) seg(i)=sqrt(vc(1)**2+vc(2)**2+vc(3)**2) dt=dt+seg(i) end do dv(nv)=dt ! add small amount to total distance to avoid 0/0 condition dt=dt+1.d-8 ! number of points to use between vertices n=np-nv ! construct the interpolating path k=0 do i=1,nv-1 t1=dble(n)*seg(i)/dt m=nint(t1) if ((m.gt.n).or.(i.eq.(nv-1))) m=n do j=1,m+1 k=k+1 f=dble(j-1)/dble(m+1) dp(k)=dv(i)+f*seg(i) vpl(:,k)=vvl(:,i)*(1.d0-f)+vvl(:,i+1)*f end do dt=dt-seg(i) n=n-m end do dp(np)=dv(nv) vpl(:,np)=vvl(:,nv) deallocate(seg) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writedos.f900000644000000000000000000000013213543334734015006 xustar0030 mtime=1569569244.801641835 30 atime=1569569240.994644267 30 ctime=1569569244.801641835 elk-6.3.2/src/writedos.f900000644002504400250440000000345513543334734017064 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writedos use modmain implicit none ! local variables integer ik ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) if (dosocc) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate the partial and total DOS and write to file call dos('.OUT',dosocc,occsv) write(*,*) write(*,'("Info(writedos):")') write(*,'(" Total density of states written to TDOS.OUT")') write(*,*) write(*,'(" Partial density of states written to PDOS_Sss_Aaaaa.OUT")') write(*,'(" for all species and atoms")') if (dosmsum) then write(*,'(" PDOS summed over m")') end if if (dosssum) then write(*,'(" PDOS summed over spin")') end if write(*,*) write(*,'(" Spin-quantisation axis : ",3G18.10)') sqados(:) if (lmirep) then write(*,*) write(*,'(" Eigenvalues of a random matrix in the (l,m) basis symmetrised")') write(*,'(" with the site symmetries written to ELMIREP.OUT for all")') write(*,'(" species and atoms. Degenerate eigenvalues correspond to")') write(*,'(" irreducible representations of each site symmetry group")') end if write(*,*) write(*,'(" Interstitial density of states written to IDOS.OUT")') write(*,*) write(*,'(" Fermi energy is at zero in plots")') write(*,*) write(*,'(" DOS units are states/Hartree/unit cell")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/findprimcell.f900000644000000000000000000000013213543334734015616 xustar0030 mtime=1569569244.806641832 30 atime=1569569240.999644263 30 ctime=1569569244.806641832 elk-6.3.2/src/findprimcell.f900000644002504400250440000000750713543334734017676 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: findprimcell ! !INTERFACE: subroutine findprimcell ! !USES: use modmain ! !DESCRIPTION: ! This routine finds the smallest primitive cell which produces the same ! crystal structure as the conventional cell. This is done by searching ! through all the vectors which connect atomic positions and finding those ! which leave the crystal structure invariant. Of these, the three shortest ! which produce a non-zero unit cell volume are chosen. ! ! !REVISION HISTORY: ! Created April 2007 (JKD) !EOP !BOC implicit none ! local variables integer is,js,ia,ja,ka,na integer i1,i2,i3,i,j,n real(8) v1(3),v2(3),v3(3) real(8) t1,t2 ! allocatable arrays real(8), allocatable :: dp(:),vp(:,:) do is=1,nspecies do ia=1,natoms(is) ! make sure all atomic coordinates are in [0,1) call r3frac(epslat,atposl(:,ia,is)) ! determine atomic Cartesian coordinates call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do ! find the smallest set of atoms is=1 do js=1,nspecies ! if a species has only one atom the cell must be primitive if (natoms(js).eq.1) return if (natoms(js).lt.natoms(is)) is=js end do n=27*natoms(is) allocate(dp(n),vp(3,n)) ! generate set of possible lattice vectors n=0 do ia=1,natoms(is) v1(:)=atposl(:,ia,is)-atposl(:,1,is) do i1=-1,1 v2(1)=v1(1)+dble(i1) do i2=-1,1 v2(2)=v1(2)+dble(i2) do i3=-1,1 v2(3)=v1(3)+dble(i3) t1=abs(v2(1))+abs(v2(2))+abs(v2(3)) if (t1.lt.epslat) goto 20 ! check if vector v2 leaves conventional cell invariant do js=1,nspecies do ja=1,natoms(js) v3(:)=atposl(:,ja,js)+v2(:) call r3frac(epslat,v3) do ka=1,natoms(js) ! check both positions and magnetic fields are the same t1=sum(abs(atposl(:,ka,js)-v3(:))) t2=sum(abs(bfcmt0(:,ja,js)-bfcmt0(:,ka,js))) if ((t1.lt.epslat).and.(t2.lt.epslat)) goto 10 end do ! atom ja has no equivalent under translation by v2 goto 20 10 continue end do end do ! cell invariant under translation by v2, so add to list n=n+1 call r3mv(avec,v2,vp(:,n)) dp(n)=sqrt(vp(1,n)**2+vp(2,n)**2+vp(3,n)**2) 20 continue end do end do end do end do if (n.eq.0) then write(*,*) write(*,'("Error(findprimcell): cannot find any lattice vectors")') write(*,*) stop end if ! find the shortest lattice vector j=1 t1=1.d8 do i=1,n if (dp(i).lt.t1+epslat) then j=i t1=dp(i) end if end do avec(:,1)=vp(:,j) ! find the next shortest lattice vector not parallel to the first j=1 t1=1.d8 do i=1,n call r3cross(avec(:,1),vp(:,i),v1) t2=sqrt(v1(1)**2+v1(2)**2+v1(3)**2) if (t2.gt.epslat) then if (dp(i).lt.t1+epslat) then j=i t1=dp(i) end if end if end do avec(:,2)=vp(:,j) ! find the next shortest lattice vector which gives non-zero unit cell volume call r3cross(avec(:,1),avec(:,2),v1) j=1 t1=1.d8 do i=1,n t2=dot_product(vp(:,i),v1(:)) if (abs(t2).gt.epslat) then if (dp(i).lt.t1+epslat) then j=i t1=dp(i) end if end if end do avec(:,3)=vp(:,j) call r3minv(avec,ainv) ! remove redundant atoms do is=1,nspecies na=0 do ia=1,natoms(is) call r3mv(ainv,atposc(:,ia,is),v1) call r3frac(epslat,v1) do ja=1,na t1=sum(abs(atposl(:,ja,is)-v1(:))) if (t1.lt.epslat) goto 30 end do na=na+1 atposl(:,na,is)=v1(:) call r3mv(avec,atposl(:,na,is),atposc(:,na,is)) ! re-index external magnetic fields bfcmt0(:,na,is)=bfcmt0(:,ia,is) ! re-index fixed spin moment vectors mommtfix(:,na,is)=mommtfix(:,ia,is) 30 continue end do natoms(is)=na end do deallocate(dp,vp) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/proj2d.f900000644000000000000000000000013113543334734014345 xustar0030 mtime=1569569244.810641829 29 atime=1569569241.00464426 30 ctime=1569569244.810641829 elk-6.3.2/src/proj2d.f900000644002504400250440000000255413543334734016423 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine proj2d(np,fp) use modmain implicit none ! arguments integer, intent(in) :: np real(8), intent(inout) :: fp(np,3) ! local variables integer i real(8) vl1(3),vl2(3),t1,t2,t3 real(8) vc1(3),vc2(3),vc3(3),vc4(3) ! determine the 2D plotting plane vectors in Cartesian coordinates vl1(:)=vclp2d(:,1)-vclp2d(:,0) vl2(:)=vclp2d(:,2)-vclp2d(:,0) call r3mv(avec,vl1,vc1) call r3mv(avec,vl2,vc2) ! the z axis is orthogonal to the plotting plane vectors call r3cross(vc1,vc2,vc3) t1=sqrt(vc1(1)**2+vc1(2)**2+vc1(3)**2) t2=sqrt(vc2(1)**2+vc2(2)**2+vc2(3)**2) t3=sqrt(vc3(1)**2+vc3(2)**2+vc3(3)**2) if ((t1.lt.epslat).or.(t2.lt.epslat).or.(t3.lt.epslat)) then write(*,*) write(*,'("Error(proj2d): degenerate 2D plotting directions")') write(*,*) stop end if ! normalise the x and z axes vc1(:)=vc1(:)/t1 vc3(:)=vc3(:)/t3 ! create new y axis orthogonal to x and z axes call r3cross(vc3,vc1,vc2) t1=sqrt(vc2(1)**2+vc2(2)**2+vc2(3)**2) vc2(:)=vc2(:)/t1 ! project the vector function onto the orthogonalised plotting plane axes do i=1,np vc4(:)=fp(i,:) fp(i,1)=dot_product(vc4(:),vc1(:)) fp(i,2)=dot_product(vc4(:),vc2(:)) fp(i,3)=dot_product(vc4(:),vc3(:)) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/nonlinopt.f900000644000000000000000000000013213543334734015166 xustar0030 mtime=1569569244.815641826 30 atime=1569569241.009644257 30 ctime=1569569244.815641826 elk-6.3.2/src/nonlinopt.f900000644002504400250440000002043113543334734017235 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: nonlinopt ! !INTERFACE: subroutine nonlinopt ! !USES: use modmain use modomp ! !DESCRIPTION: ! Calculates susceptibility tensor for non-linear optical second-harmonic ! generation (SHG). The terms (ztm) are numbered according to Eqs. (49)-(51) ! of the article {\it Physica Scripta} {\bf T109}, 128 (2004). Other good ! references are {\it Phys. Rev. B} {\bf 48}, 11705 (1993) and ! {\it Phys. Rev. B} {\bf 53}, 10751 (1996). ! ! !REVISION HISTORY: ! Rewrote earlier version, June 2010 (Sharma) !EOP !BOC implicit none ! local variables integer ik,jk,ist,jst,kst integer iw,a,b,c,l,nthd ! smallest eigenvalue difference allowed in denominator real(8), parameter :: etol=1.d-4 real(8) eji,eki,ekj,t1 complex(8) pii(3),dji(3),vji(3),vik(3),vkj(3) complex(8) eta,ztm(3,3),z1 character(256) fname ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: pmat(:,:,:) complex(8), allocatable :: chiw(:,:),chi2w(:,:) ! initialise universal variables call init0 call init1 ! read Fermi energy from file call readfermi ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate energy grid (starting from zero) allocate(w(nwplot)) t1=wplot(2)/dble(nwplot) do iw=1,nwplot w(iw)=t1*dble(iw-1) end do ! allocate response function arrays allocate(chiw(nwplot,3)) allocate(chi2w(nwplot,2)) ! i divided by the complex relaxation time eta=cmplx(0.d0,swidth,8) ! begin loop over components do l=1,noptcomp a=optcomp(1,l) b=optcomp(2,l) c=optcomp(3,l) chiw(:,:)=0.d0 chi2w(:,:)=0.d0 ! parallel loop over non-reduced k-points call holdthd(nkptnr,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(pmat,jk,ist,jst,kst) & !$OMP PRIVATE(eji,eki,ekj,t1,z1,pii) & !$OMP PRIVATE(dji,vji,vik,vkj,ztm,iw) & !$OMP NUM_THREADS(nthd) allocate(pmat(nstsv,nstsv,3)) !$OMP DO do ik=1,nkptnr !$OMP CRITICAL(nonlinopt_1) write(*,'("Info(nonlinopt): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(nonlinopt_1) ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! read momentum matrix elements from file call getpmat(vkl(:,ik),pmat) ! scissor correct the matrix elements do ist=1,nstsv if (evalsv(ist,jk).lt.efermi) then do jst=1,nstsv if (evalsv(jst,jk).gt.efermi) then eji=evalsv(jst,jk)-evalsv(ist,jk) t1=(eji+scissor)/eji pmat(ist,jst,:)=t1*pmat(ist,jst,:) end if end do end if end do z1=(wkptnr*occmax/omega)*zi ! loop over valence states do ist=1,nstsv if (evalsv(ist,jk).lt.efermi) then pii(:)=pmat(ist,ist,:) ! loop over conduction states do jst=1,nstsv if (evalsv(jst,jk).gt.efermi) then eji=evalsv(jst,jk)-evalsv(ist,jk)+scissor dji(:)=pmat(jst,jst,:)-pii(:) vji(:)=pmat(jst,ist,:) ! loop over intermediate states do kst=1,nstsv if ((kst.ne.ist).and.(kst.ne.jst)) then eki=evalsv(kst,jk)-evalsv(ist,jk) ekj=evalsv(kst,jk)-evalsv(jst,jk) if (evalsv(kst,jk).gt.efermi) then eki=eki+scissor else ekj=ekj-scissor end if vik(:)=pmat(ist,kst,:) vkj(:)=pmat(kst,jst,:) ! interband terms t1=-eji*eki*(-ekj)*(eki+ekj) if (abs(t1).gt.etol) then t1=1.d0/t1 else t1=0.d0 end if ztm(1,1)=z1*conjg(vji(a))*(conjg(vkj(b))*conjg(vik(c)) & +conjg(vik(b))*conjg(vkj(c)))*t1 t1=eji*(-eki)*ekj*(-eki-eji) if (abs(t1).gt.etol) then t1=1.d0/t1 else t1=0.d0 end if ztm(1,2)=0.5d0*z1*vkj(c)*(vji(a)*vik(b)+vik(a)*vji(b))*t1 t1=eji*(-eki)*ekj*(ekj-eji) if (abs(t1).gt.etol) then t1=1.d0/t1 else t1=0.d0 end if ztm(1,3)=0.5d0*z1*vik(b)*(vkj(c)*vji(a)+vji(c)*vkj(a))*t1 ! intraband terms t1=(-eki)*ekj*eji**3 if (abs(t1).gt.etol) then t1=1.d0/t1 else t1=0.d0 end if ztm(2,1)=0.5d0*z1*(eki*vik(b)*(vkj(c)*vji(a)+vji(c)*vkj(a)) & +ekj*vkj(c)*(vji(a)*vik(b)+vik(a)*vji(b)))*t1 t1=((-eji)*eki*(-ekj)*eji**2)/(-ekj-eki) if (abs(t1).gt.etol) then t1=1.d0/t1 else t1=0.d0 end if ztm(2,3)=z1*conjg(vji(a))*(conjg(vkj(b))*conjg(vik(c)) & +conjg(vik(b))*conjg(vkj(c)))*t1 ! modulation terms t1=ekj*(-eki)*eji**3 if (abs(t1).gt.etol) then t1=1.d0/t1 else t1=0.d0 end if ztm(3,1)=0.25d0*z1*(-eki)*vkj(a)*(vji(b)*vik(c)+vik(b)*vji(c))*t1 ztm(3,2)=0.25d0*z1*ekj*vik(a)*(vkj(b)*vji(c)+vji(b)*vkj(c))*t1 !$OMP CRITICAL(nonlinopt_2) do iw=1,nwplot ! 2w interband chi2w(iw,1)=chi2w(iw,1)+ztm(1,1)/(eji-2.d0*w(iw)+eta) ! 2w intraband chi2w(iw,2)=chi2w(iw,2)+ztm(2,3)/(eji-2.d0*w(iw)+eta) ! w interband chiw(iw,1)=chiw(iw,1)-(ztm(1,2)-ztm(1,3))/(eji-w(iw)+eta) ! w intraband chiw(iw,2)=chiw(iw,2)+ztm(2,1)/(eji-w(iw)+eta) ! w modulation chiw(iw,3)=chiw(iw,3)+(ztm(3,1)-ztm(3,2))/(eji-w(iw)+eta) end do !$OMP END CRITICAL(nonlinopt_2) end if ! end loop over kst end do ztm(2,2)=4.d0*z1*conjg(vji(a))*(dji(b)*vji(c)+vji(b)*dji(c))/eji**4 ztm(3,3)=0.25d0*z1*vji(a)*(vji(b)*dji(c)+dji(b)*vji(c))/eji**4 !$OMP CRITICAL(nonlinopt_2) do iw=1,nwplot ! 2w intraband chi2w(iw,2)=chi2w(iw,2)+ztm(2,2)/(eji-2.d0*w(iw)+eta) ! w modulation chiw(iw,3)=chiw(iw,3)+ztm(3,3)/(eji-w(iw)+eta) end do !$OMP END CRITICAL(nonlinopt_2) ! end loop over jst end if end do ! end loop over ist end if end do ! end loop over k-points end do !$OMP END DO deallocate(pmat) !$OMP END PARALLEL call freethd(nthd) ! write to files write(fname,'("CHI_INTER2w_",3I1,".OUT")') a,b,c open(51,file=trim(fname),form='FORMATTED') write(fname,'("CHI_INTRA2w_",3I1,".OUT")') a,b,c open(52,file=trim(fname),form='FORMATTED') write(fname,'("CHI_INTERw_",3I1,".OUT")') a,b,c open(53,file=trim(fname),form='FORMATTED') write(fname,'("CHI_INTRAw_",3I1,".OUT")') a,b,c open(54,file=trim(fname),form='FORMATTED') write(fname,'("CHI_",3I1,".OUT")') a,b,c open(55,file=trim(fname),form='FORMATTED') do iw=1,nwplot write(51,'(2G18.10)') w(iw),dble(chi2w(iw,1)) write(52,'(2G18.10)') w(iw),dble(chi2w(iw,2)) write(53,'(2G18.10)') w(iw),dble(chiw(iw,1)) write(54,'(2G18.10)') w(iw),dble(chiw(iw,2)) t1=dble(chi2w(iw,1)+chi2w(iw,2)+chiw(iw,1)+chiw(iw,2)+chiw(iw,3)) write(55,'(2G18.10)') w(iw),t1 end do write(51,'(" ")') write(52,'(" ")') write(53,'(" ")') write(54,'(" ")') write(55,'(" ")') do iw=1,nwplot write(51,'(2G18.10)') w(iw),aimag(chi2w(iw,1)) write(52,'(2G18.10)') w(iw),aimag(chi2w(iw,2)) write(53,'(2G18.10)') w(iw),aimag(chiw(iw,1)) write(54,'(2G18.10)') w(iw),aimag(chiw(iw,2)) t1=aimag(chi2w(iw,1)+chi2w(iw,2)+chiw(iw,1)+chiw(iw,2)+chiw(iw,3)) write(55,'(2G18.10)') w(iw),t1 end do close(51); close(52); close(53); close(54); close(55) ! end loop over components end do write(*,*) write(*,'("Info(nonlinopt):")') write(*,'(" susceptibility tensor written to CHI_abc.OUT")') write(*,'(" interband contributions written to CHI_INTERx_abc.OUT")') write(*,'(" intraband contributions written to CHI_INTRAx_abc.OUT")') write(*,'(" for components")') do l=1,noptcomp write(*,'(" a = ",I1,", b = ",I1,", c = ",I1)') optcomp(1:3,l) end do deallocate(w,chiw,chi2w) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/vecplot.f900000644000000000000000000000013213543334734014622 xustar0030 mtime=1569569244.819641823 30 atime=1569569241.015644253 30 ctime=1569569244.819641823 elk-6.3.2/src/vecplot.f900000644002504400250440000001242413543334734016674 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: vecplot ! !INTERFACE: subroutine vecplot ! !DESCRIPTION: ! Outputs a 2D or 3D vector field for plotting. The vector field can be the ! magnetisation vector field, ${\bf m}$; the exchange-correlation magnetic ! field, ${\bf B}_{\rm xc}$; or the electric field ! ${\bf E}\equiv-\nabla V_{\rm C}$. The magnetisation is obtained from the ! spin density matrix, $\rho_{\alpha\beta}$, by solving ! $$ \rho_{\alpha\beta}({\bf r})=\frac{1}{2}\left(n({\bf r}) ! \delta_{\alpha\beta}+\sigma\cdot {\bf m}({\bf r})\right), $$ ! where $n\equiv\tr\rho_{\alpha\beta}$ is the total density. In the case of 2D ! plots, the magnetisation vectors are still 3D, but are in the coordinate ! system of the plane. ! ! !REVISION HISTORY: ! Created August 2004 (JKD) ! Included electric field plots, August 2006 (JKD) !EOP !BOC use modmain implicit none ! allocatable arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) ! initialise universal variables call init0 if ((task.eq.72).or.(task.eq.73).or.(task.eq.82).or.(task.eq.83)) then if (.not.spinpol) then write(*,*) write(*,'("Error(vecplot): spin-unpolarised magnetisation/field is zero")') write(*,*) stop end if end if ! read magnetisation and exchange-correlation magnetic field from file call readstate allocate(rvfmt(npmtmax,natmtot,3),rvfir(ngtot,3)) select case(task) case(71,72,73) ! magnetisation if (ncmag) then ! non-collinear rvfmt(:,:,:)=magmt(:,:,:) rvfir(:,:)=magir(:,:) else ! collinear rvfmt(:,:,1:2)=0.d0 rvfir(:,1:2)=0.d0 rvfmt(:,:,3)=magmt(:,:,1) rvfir(:,3)=magir(:,1) end if case(81,82,83) ! exchange-correlation magnetic field if (ncmag) then ! non-collinear rvfmt(:,:,:)=bxcmt(:,:,:) rvfir(:,:)=bxcir(:,:) else ! collinear rvfmt(:,:,1:2)=0.d0 rvfir(:,1:2)=0.d0 rvfmt(:,:,3)=bxcmt(:,:,1) rvfir(:,3)=bxcir(:,1) end if case(141,142,143) ! electric field call gradrf(vclmt,vclir,rvfmt,rvfir) ! use the negative of the gradient rvfmt(:,:,:)=-rvfmt(:,:,:) rvfir(:,:)=-rvfir(:,:) case(151,152,153) if (.not.ncmag) then write(*,*) write(*,'("Error(vecplot): collinear m(r) x B_xc(r) is zero")') write(*,*) stop end if call rvfcross(magmt,magir,bxcmt,bxcir,rvfmt,rvfir) end select select case(task) case(71,81,141,151) if (task.eq.71) then open(50,file='MAG1D.OUT',form='FORMATTED') open(51,file='MAGLINES.OUT',form='FORMATTED') else if (task.eq.81) then open(50,file='BXC1D.OUT',form='FORMATTED') open(51,file='BXCLINES.OUT',form='FORMATTED') else if (task.eq.141) then open(50,file='EF1D.OUT',form='FORMATTED') open(51,file='EFLINES.OUT',form='FORMATTED') else open(50,file='MCBXC1D.OUT',form='FORMATTED') open(51,file='MCBXCLINES.OUT',form='FORMATTED') end if call plot1d(50,51,3,rvfmt,rvfir) close(50) write(*,*) write(*,'("Info(vecplot):")') if (task.eq.71) then write(*,'(" 1D magnetisation density written to MAG1D.OUT")') write(*,'(" vertex location lines written to MAGLINES.OUT")') else if (task.eq.81) then write(*,'(" 1D exchange-correlation field written to BXC1D.OUT")') write(*,'(" vertex location lines written to BXCLINES.OUT")') else if (task.eq.141) then write(*,'(" 1D electric field written to EF1D.OUT")') write(*,'(" vertex location lines written to EFLINES.OUT")') else write(*,'(" 1D m(r) x B_xc(r) written to MCBXC1D.OUT")') write(*,'(" vertex location lines written to MCBXCLINES.OUT")') end if case(72,82,142,152) if (task.eq.72) then open(50,file='MAG2D.OUT',form='FORMATTED') else if (task.eq.82) then open(50,file='BXC2D.OUT',form='FORMATTED') else if (task.eq.142) then open(50,file='EF2D.OUT',form='FORMATTED') else open(50,file='MCBXC2D.OUT',form='FORMATTED') end if call plot2d(.true.,50,3,rvfmt,rvfir) close(50) write(*,*) write(*,'("Info(vecplot):")') if (task.eq.72) then write(*,'(" 2D magnetisation density written to MAG2D.OUT")') else if (task.eq.82) then write(*,'(" 2D exchange-correlation field written to BXC2D.OUT")') else if (task.eq.142) then write(*,'(" 2D electric field written to EF2D.OUT")') else write(*,'(" 2D m(r) x B_xc(r) written to MCBXC2D.OUT")') end if write(*,'(" Note that the 3D vector field has been locally projected")') write(*,'(" onto the 2D plotting plane axes")') case(73,83,143,153) if (task.eq.73) then open(50,file='MAG3D.OUT',form='FORMATTED') else if (task.eq.83) then open(50,file='BXC3D.OUT',form='FORMATTED') else if (task.eq.143) then open(50,file='EF3D.OUT',form='FORMATTED') else open(50,file='MCBXC3D.OUT',form='FORMATTED') end if call plot3d(50,3,rvfmt,rvfir) close(50) write(*,*) write(*,'("Info(vecplot):")') if (task.eq.73) then write(*,'(" 3D magnetisation density written to MAG3D.OUT")') else if (task.eq.83) then write(*,'(" 3D exchange-correlation field written to BXC3D.OUT")') else if (task.eq.143) then write(*,'(" 3D electric field written to EF3D.OUT")') else write(*,'(" 3D m(r) x B_xc(r) written to MCBXC3D.OUT")') end if end select deallocate(rvfmt,rvfir) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/wfcrplot.f900000644000000000000000000000013013543334734015004 xustar0029 mtime=1569569244.82464182 30 atime=1569569241.022644249 29 ctime=1569569244.82464182 elk-6.3.2/src/wfcrplot.f900000644002504400250440000000201213543334734017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wfcrplot use modmain implicit none ! local variables integer ist,is,ia,ias,ir character(256) fname ! initialise universal variables call init0 ! read density and potentials from file call readstate ! generate the core wavefunctions call gencore do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(fname,'("WFCORE_S",I2.2,"_A",I4.4,".OUT")') is,ia open(50,file=trim(fname),form='FORMATTED') do ist=1,nstsp(is) if (spcore(ist,is)) then do ir=1,nrsp(is) write(50,'(2G18.10)') rsp(ir,is),rwfcr(ir,1,ist,ias) end do write(50,'(" ")') end if end do close(50) end do end do write(*,*) write(*,'("Info(wfcrplot):")') write(*,'(" Core state wavefunctions written to WFCORE_Sss_Aaaaa.OUT")') write(*,'(" for all species and atoms")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/energykncr.f900000644000000000000000000000013213543334734015315 xustar0030 mtime=1569569244.828641818 30 atime=1569569241.027644245 30 ctime=1569569244.828641818 elk-6.3.2/src/energykncr.f900000644002504400250440000000240713543334734017367 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine energykncr use modmain implicit none integer ist,is,ias integer nr,nri,ir,i ! allocatable local arrays real(8), allocatable :: rfmt(:) ! external functions real(8) rfmtinp external rfmtinp ! allocate local arrays allocate(rfmt(npmtmax)) ! calculate the kinetic energy for core states engykncr=0.d0 do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) ! sum of core eigenvalues do ist=1,nstsp(is) if (spcore(ist,is)) engykncr=engykncr+occcr(ist,ias)*evalcr(ist,ias) end do ! core density rfmt(1:npmt(is))=0.d0 if (spincore) then ! spin-polarised core i=1 do ir=1,nri rfmt(i)=rhocr(ir,ias,1)+rhocr(ir,ias,2) i=i+lmmaxi end do do ir=nri+1,nr rfmt(i)=rhocr(ir,ias,1)+rhocr(ir,ias,2) i=i+lmmaxo end do else ! spin-unpolarised core i=1 do ir=1,nri rfmt(i)=rhocr(ir,ias,1) i=i+lmmaxi end do do ir=nri+1,nr rfmt(i)=rhocr(ir,ias,1) i=i+lmmaxo end do end if engykncr=engykncr-rfmtinp(nr,nri,wrmt(:,is),rfmt,vsmt(:,ias)) end do deallocate(rfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/eveqnss.f900000644000000000000000000000013213543334734014632 xustar0030 mtime=1569569244.833641815 30 atime=1569569241.032644242 30 ctime=1569569244.833641815 elk-6.3.2/src/eveqnss.f900000644002504400250440000001422213543334734016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine eveqnss(ngp,igpig,apwalm,evalfv,evecfv,evalsvp,evecsv) use modmain use moddftu use modomp implicit none ! arguments integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) real(8), intent(in) :: evalfv(nstfv,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv) real(8), intent(out) :: evalsvp(nstsv) complex(8), intent(out) :: evecsv(nstsv,nstsv) ! local variables integer ist,jst,ispn,jspn integer is,ia,ias,i,j,k integer nrc,nrci,nrco integer l,lm,nm,npc,npci integer igp,ld,nthd real(8) t1 real(8) ts0,ts1 complex(8) zq,z1 ! allocatable arrays complex(8), allocatable :: wfmt1(:,:,:),wfmt2(:,:),wfmt3(:),wfmt4(:,:) complex(8), allocatable :: wfir1(:,:),wfir2(:),wfgp(:,:) ! external functions complex(8) zdotc,zfmtinp external zdotc,zfmtinp if (.not.spinpol) then write(*,*) write(*,'("Error(eveqnss): spin-unpolarised calculation")') write(*,*) stop end if call timesec(ts0) ld=lmmaxdm*nspinor ! zero the second-variational Hamiltonian (stored in the eigenvector array) evecsv(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! allocate(wfmt1(npcmtmax,nstfv,nspnfv)) call holdthd(nstfv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt2,wfmt3,wfmt4) & !$OMP PRIVATE(ias,is,ia,nrc,nrci,nrco) & !$OMP PRIVATE(npc,npci,t1,zq,ispn,jspn) & !$OMP PRIVATE(ist,jst,l,nm,lm,i,j,k,z1) & !$OMP NUM_THREADS(nthd) allocate(wfmt2(npcmtmax,nspnfv),wfmt3(npcmtmax),wfmt4(npcmtmax,3)) do ias=1,natmtot is=idxis(ias) ia=idxia(ias) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci npc=npcmt(is) npci=npcmti(is) ! de-phasing factor (FC, FB & LN) t1=-0.5d0*dot_product(vqcss(:),atposc(:,ia,is)) zq=cmplx(cos(t1),sin(t1),8) ! compute the first-variational wavefunctions do ispn=1,nspnfv if (ispn.eq.2) zq=conjg(zq) !$OMP DO do ist=1,nstfv call wavefmt(lradstp,ias,ngp(ispn),apwalm(:,:,:,ias,ispn), & evecfv(:,ist,ispn),wfmt1(:,ist,ispn)) ! de-phase if required if (ssdph) wfmt1(1:npc,ist,ispn)=zq*wfmt1(1:npc,ist,ispn) end do !$OMP END DO end do !$OMP DO do jst=1,nstfv ! convert wavefunction to spherical coordinates do ispn=1,nspnfv call zbsht(nrc,nrci,wfmt1(:,jst,ispn),wfmt2(:,ispn)) end do ! apply effective magnetic field and convert to spherical harmonics wfmt3(1:npc)=bsmt(1:npc,ias,3)*wfmt2(1:npc,1) call zfsht(nrc,nrci,wfmt3,wfmt4) wfmt3(1:npc)=-bsmt(1:npc,ias,3)*wfmt2(1:npc,2) call zfsht(nrc,nrci,wfmt3,wfmt4(:,2)) wfmt3(1:npc)=cmplx(bsmt(1:npc,ias,1),-bsmt(1:npc,ias,2),8)*wfmt2(1:npc,2) call zfsht(nrc,nrci,wfmt3,wfmt4(:,3)) ! apply muffin-tin potential matrix if required if (tvmatmt) then do l=0,lmaxdm if (tvmmt(l,ias)) then nm=2*l+1 lm=idxlm(l,-l) do k=1,3 if (k.eq.1) then ispn=1 jspn=1 else if (k.eq.2) then ispn=2 jspn=2 else ispn=1 jspn=2 end if if (l.le.lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,ispn,lm,jspn,ias), & ld,wfmt1(lm,jst,jspn),lmmaxi,zone,wfmt4(lm,k),lmmaxi) end if i=npci+lm call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,ispn,lm,jspn,ias),ld, & wfmt1(i,jst,jspn),lmmaxo,zone,wfmt4(i,k),lmmaxo) end do end if end do end if ! add to second-variational Hamiltonian matrix ! upper diagonal block do ist=1,jst z1=zfmtinp(nrc,nrci,wrcmt(:,is),wfmt1(:,ist,1),wfmt4) evecsv(ist,jst)=evecsv(ist,jst)+z1 end do ! lower diagonal block j=jst+nstfv do ist=1,jst i=ist+nstfv z1=zfmtinp(nrc,nrci,wrcmt(:,is),wfmt1(:,ist,2),wfmt4(:,2)) evecsv(i,j)=evecsv(i,j)+z1 end do ! off-diagonal block do ist=1,nstfv z1=zfmtinp(nrc,nrci,wrcmt(:,is),wfmt1(:,ist,1),wfmt4(:,3)) evecsv(ist,j)=evecsv(ist,j)+z1 end do end do !$OMP END DO ! end loop over atoms end do deallocate(wfmt2,wfmt3,wfmt4) !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt1) !---------------------------! ! interstitial part ! !---------------------------! call holdthd(nstfv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,wfir2,wfgp) & !$OMP PRIVATE(ispn,igp,ist,i,j) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot,nspnfv),wfir2(ngtot),wfgp(ngkmax,3)) ! begin loop over states !$OMP DO do jst=1,nstfv do ispn=1,nspnfv wfir1(:,ispn)=0.d0 do igp=1,ngp(ispn) wfir1(igfft(igpig(igp,ispn)),ispn)=evecfv(igp,jst,ispn) end do ! Fourier transform wavefunction to real-space call zfftifc(3,ngridg,1,wfir1(:,ispn)) end do ! multiply with magnetic field and transform to G-space wfir2(:)=bsir(:,3)*wfir1(:,1) call zfftifc(3,ngridg,-1,wfir2) do igp=1,ngp(1) wfgp(igp,1)=wfir2(igfft(igpig(igp,1))) end do wfir2(:)=-bsir(:,3)*wfir1(:,2) call zfftifc(3,ngridg,-1,wfir2) do igp=1,ngp(2) wfgp(igp,2)=wfir2(igfft(igpig(igp,2))) end do wfir2(:)=cmplx(bsir(:,1),-bsir(:,2),8)*wfir1(:,2) call zfftifc(3,ngridg,-1,wfir2) do igp=1,ngp(1) wfgp(igp,3)=wfir2(igfft(igpig(igp,1))) end do ! add to second-variational Hamiltonian matrix ! upper diagonal block do ist=1,jst evecsv(ist,jst)=evecsv(ist,jst)+zdotc(ngp(1),evecfv(:,ist,1),1,wfgp(:,1),1) end do ! lower diagonal block j=jst+nstfv do ist=1,jst i=ist+nstfv evecsv(i,j)=evecsv(i,j)+zdotc(ngp(2),evecfv(:,ist,2),1,wfgp(:,2),1) end do ! off-diagonal block do ist=1,nstfv evecsv(ist,j)=evecsv(ist,j)+zdotc(ngp(1),evecfv(:,ist,1),1,wfgp(:,3),1) end do end do !$OMP END DO deallocate(wfir1,wfir2,wfgp) !$OMP END PARALLEL call freethd(nthd) ! add the diagonal first-variational part i=0 do ispn=1,nspinor do ist=1,nstfv i=i+1 evecsv(i,i)=evecsv(i,i)+evalfv(ist,ispn) end do end do ! diagonalise the second-variational Hamiltonian call eveqnz(nstsv,nstsv,evecsv,evalsvp) call timesec(ts1) !$OMP ATOMIC timesv=timesv+ts1-ts0 return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendmatk.f900000644000000000000000000000013213543334734014740 xustar0030 mtime=1569569244.837641812 30 atime=1569569241.037644239 30 ctime=1569569244.837641812 elk-6.3.2/src/gendmatk.f900000644002504400250440000000764413543334734017022 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendmatk(tspndg,tlmdg,lmin,lmax,ias,ngp,apwalm,evecfv,evecsv,ld,dmat) use modmain implicit none ! arguments logical, intent(in) :: tspndg,tlmdg integer, intent(in) :: lmin,lmax integer, intent(in) :: ias integer, intent(in) :: ngp(nspnfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv) complex(8), intent(in) :: evecsv(nstsv,nstsv) integer, intent(in) :: ld complex(8), intent(out) :: dmat(ld,nspinor,ld,nspinor,nstsv) ! local variables integer ist,ispn,jspn,is,ia integer nrc,nrci,irco,irc integer l,m1,m2,lm1,lm2 integer npc,npci,i1,i2,i,j real(8) a,b,t1 complex(8) zq(2),z1 ! automatic arrays logical done(nstfv,nspnfv) real(8) fr1(nrcmtmax),fr2(nrcmtmax) ! allocatable arrays complex(8), allocatable :: wfmt1(:,:,:),wfmt2(:,:) if (lmin.lt.0) then write(*,*) write(*,'("Error(gendmatk): lmin < 0 : ",I8)') lmin write(*,*) stop end if if (lmax.gt.lmaxo) then write(*,*) write(*,'("Error(gendmatk): lmax > lmaxo : ",2I8)') lmax,lmaxo write(*,*) stop end if ! allocate local arrays allocate(wfmt1(npcmtmax,nstfv,nspnfv),wfmt2(npcmtmax,nspinor)) ! species and atom numbers is=idxis(ias) ia=idxia(ias) nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 npc=npcmt(is) npci=npcmti(is) ! de-phasing factor for spin-spirals if (ssdph) then t1=-0.5d0*dot_product(vqcss(:),atposc(:,ia,is)) zq(1)=cmplx(cos(t1),sin(t1),8) zq(2)=conjg(zq(1)) end if ! zero the density matrix dmat(:,:,:,:,:)=0.d0 done(:,:)=.false. ! begin loop over second-variational states do j=1,nstsv if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors wfmt2(1:npc,:)=0.d0 i=0 do ispn=1,nspinor jspn=jspnfv(ispn) do ist=1,nstfv i=i+1 z1=evecsv(i,j) if (ssdph) z1=z1*zq(ispn) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (.not.done(ist,jspn)) then call wavefmt(lradstp,ias,ngp(jspn),apwalm(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt1(:,ist,jspn)) done(ist,jspn)=.true. end if ! add to spinor wavefunction wfmt2(1:npc,ispn)=wfmt2(1:npc,ispn)+z1*wfmt1(1:npc,ist,jspn) end if end do end do else ! spin-unpolarised wavefunction call wavefmt(lradstp,ias,ngp,apwalm(:,:,:,ias,1),evecfv(:,j,1),wfmt2) end if do ispn=1,nspinor do jspn=1,nspinor if (tspndg.and.(ispn.ne.jspn)) cycle do l=lmin,lmax do m1=-l,l lm1=idxlm(l,m1) do m2=-l,l lm2=idxlm(l,m2) if (tlmdg.and.(lm1.ne.lm2)) cycle if (l.le.lmaxi) then i1=lm1; i2=lm2 do irc=1,nrci z1=wfmt2(i1,ispn)*conjg(wfmt2(i2,jspn)) fr1(irc)=dble(z1); fr2(irc)=aimag(z1) i1=i1+lmmaxi; i2=i2+lmmaxi end do do irc=irco,nrc z1=wfmt2(i1,ispn)*conjg(wfmt2(i2,jspn)) fr1(irc)=dble(z1); fr2(irc)=aimag(z1) i1=i1+lmmaxo; i2=i2+lmmaxo end do a=dot_product(wrcmt(1:nrc,is),fr1(1:nrc)) b=dot_product(wrcmt(1:nrc,is),fr2(1:nrc)) else i1=npci+lm1; i2=npci+lm2 do irc=irco,nrc z1=wfmt2(i1,ispn)*conjg(wfmt2(i2,jspn)) fr1(irc)=dble(z1); fr2(irc)=aimag(z1) i1=i1+lmmaxo; i2=i2+lmmaxo end do a=dot_product(wrcmt(irco:nrc,is),fr1(irco:nrc)) b=dot_product(wrcmt(irco:nrc,is),fr2(irco:nrc)) end if dmat(lm1,ispn,lm2,jspn,j)=cmplx(a,b,8) end do end do end do end do end do ! end loop over second-variational states end do deallocate(wfmt1,wfmt2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gensdmat.f900000644000000000000000000000013213543334734014750 xustar0030 mtime=1569569244.841641809 30 atime=1569569241.042644236 30 ctime=1569569244.841641809 elk-6.3.2/src/gensdmat.f900000644002504400250440000000212513543334734017017 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: gensdmat ! !INTERFACE: subroutine gensdmat(evecsv,sdmat) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! evecsv : second-variational eigenvectors (in,complex(nstsv,nstsv)) ! sdmat : spin density matrices (out,complex(nspinor,nspinor,nstsv)) ! !DESCRIPTION: ! Computes the spin density matrices for a set of second-variational states. ! ! !REVISION HISTORY: ! Created September 2008 (JKD) !EOP !BOC implicit none ! arguments complex(8), intent(in) :: evecsv(nstsv,nstsv) complex(8), intent(out) :: sdmat(nspinor,nspinor,nstsv) ! local variables integer ispn,jspn,ist,j complex(8) z1,z2 sdmat(:,:,:)=0.d0 do j=1,nstsv do ispn=1,nspinor do jspn=1,nspinor do ist=1,nstfv z1=evecsv(ist+nstfv*(ispn-1),j) z2=evecsv(ist+nstfv*(jspn-1),j) sdmat(ispn,jspn,j)=sdmat(ispn,jspn,j)+z1*conjg(z2) end do end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggamt_1.f900000644000000000000000000000013213543334734014465 xustar0030 mtime=1569569244.845641807 30 atime=1569569241.048644232 30 ctime=1569569244.845641807 elk-6.3.2/src/ggamt_1.f900000644002504400250440000000327713543334734016545 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggamt_1 ! !INTERFACE: subroutine ggamt_1(tsh,is,np,rho,grho,g2rho,g3rho) ! !USES: use modmain ! !DESCRIPTION: ! Spin-unpolarised version of {\tt ggamt\_sp\_1}. ! ! !REVISION HISTORY: ! Created November 2009 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: is,np real(8), intent(in) :: rho(np) real(8), intent(out) :: grho(np),g2rho(np),g3rho(np) ! local variables integer nr,nri,i ! allocatable arrays real(8), allocatable :: grfmt(:,:),gvrho(:,:),rfmt1(:),rfmt2(:) allocate(grfmt(np,3),gvrho(np,3),rfmt2(np)) nr=nrmt(is) nri=nrmti(is) ! |grad rho| if (tsh) then call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rho,np,grfmt) else allocate(rfmt1(np)) call rfsht(nr,nri,rho,rfmt1) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) end if do i=1,3 call rbsht(nr,nri,grfmt(:,i),gvrho(:,i)) end do grho(1:np)=sqrt(gvrho(1:np,1)**2+gvrho(1:np,2)**2+gvrho(1:np,3)**2) ! grad^2 rho in spherical coordinates if (tsh) then call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rho,rfmt2) else call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rfmt1,rfmt2) end if call rbsht(nr,nri,rfmt2,g2rho) ! (grad rho).(grad |grad rho|) call rfsht(nr,nri,grho,rfmt2) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt2,np,grfmt) g3rho(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) g3rho(1:np)=g3rho(1:np)+gvrho(1:np,i)*rfmt2(1:np) end do deallocate(grfmt,gvrho,rfmt2) if (.not.tsh) deallocate(rfmt1) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggair_1.f900000644000000000000000000000013213543334734014457 xustar0030 mtime=1569569244.850641804 30 atime=1569569241.053644229 30 ctime=1569569244.850641804 elk-6.3.2/src/ggair_1.f900000644002504400250440000000307713543334734016535 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggair_1 ! !INTERFACE: subroutine ggair_1(rho,grho,g2rho,g3rho) ! !USES: use modmain ! !DESCRIPTION: ! Spin-unpolarised version of {\tt ggair\_sp\_1}. ! ! !REVISION HISTORY: ! Created November 2009 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rho(ngtot) real(8), intent(out) :: grho(ngtot),g2rho(ngtot),g3rho(ngtot) ! local variables integer i,ig,ifg ! allocatable arrays real(8), allocatable :: gvrho(:,:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(gvrho(ngtot,3)) allocate(zfft1(ngtot),zfft2(ngtot)) zfft1(:)=rho(:) call zfftifc(3,ngridg,-1,zfft1) ! |grad rho| do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) gvrho(:,i)=dble(zfft2(:)) end do grho(:)=sqrt(gvrho(:,1)**2+gvrho(:,2)**2+gvrho(:,3)**2) ! grad^2 rho zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) end do call zfftifc(3,ngridg,1,zfft2) g2rho(:)=dble(zfft2(:)) ! (grad rho).(grad |grad rho|) zfft1(:)=grho(:) call zfftifc(3,ngridg,-1,zfft1) g3rho(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) g3rho(:)=g3rho(:)+gvrho(:,i)*dble(zfft2(:)) end do deallocate(gvrho,zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggamt_sp_1.f900000644000000000000000000000013213543334734015167 xustar0030 mtime=1569569244.854641801 30 atime=1569569241.058644226 30 ctime=1569569244.854641801 elk-6.3.2/src/ggamt_sp_1.f900000644002504400250440000001017213543334734017237 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggamt_sp_1 ! !INTERFACE: subroutine ggamt_sp_1(is,np,rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! is : species number (in,integer) ! np : number of muffin-tin points (in,integer) ! rhoup : spin-up density in spherical coordinates (in,real(np)) ! rhodn : spin-down density (in,real(np)) ! grho : |grad rho| (out,real(np)) ! gup : |grad rhoup| (out,real(np)) ! gdn : |grad rhodn| (out,real(np)) ! g2up : grad^2 rhoup (out,real(np)) ! g2dn : grad^2 rhodn (out,real(np)) ! g3rho : (grad rho).(grad |grad rho|) (out,real(np)) ! g3up : (grad rhoup).(grad |grad rhoup|) (out,real(np)) ! g3dn : (grad rhodn).(grad |grad rhodn|) (out,real(np)) ! !DESCRIPTION: ! Computes $|\nabla\rho|$, $|\nabla\rho^{\uparrow}|$, ! $|\nabla\rho^{\downarrow}|$, $\nabla^2\rho^{\uparrow}$, ! $\nabla^2\rho^{\downarrow}$, $\nabla\rho\cdot(\nabla|\nabla\rho|)$, ! $\nabla\rho^{\uparrow}\cdot(\nabla|\nabla\rho^{\uparrow}|)$ and ! $\nabla\rho^{\downarrow}\cdot(\nabla|\nabla\rho^{\downarrow}|)$ ! for a muffin-tin charge density, as required by the generalised gradient ! approximation functionals of type 1 for spin-polarised densities. The input ! densities and output gradients are in terms of spherical coordinates. See ! routines {\tt potxc} and {\tt modxcifc}. ! ! !REVISION HISTORY: ! Created April 2004 (JKD) ! Simplified and improved, October 2009 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: is,np real(8), intent(in) :: rhoup(np),rhodn(np) real(8), intent(out) :: grho(np),gup(np),gdn(np) real(8), intent(out) :: g2up(np),g2dn(np) real(8), intent(out) :: g3rho(np),g3up(np),g3dn(np) ! local variables integer nr,nri,i ! allocatable arrays real(8), allocatable :: gvup(:,:),gvdn(:,:),grfmt(:,:) real(8), allocatable :: rfmt1(:),rfmt2(:) allocate(grfmt(np,3),gvup(np,3),gvdn(np,3)) allocate(rfmt1(np),rfmt2(np)) nr=nrmt(is) nri=nrmti(is) !----------------! ! rho up ! !----------------! ! convert rhoup to spherical harmonics call rfsht(nr,nri,rhoup,rfmt1) ! grad rhoup in spherical coordinates call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) do i=1,3 call rbsht(nr,nri,grfmt(:,i),gvup(:,i)) end do ! |grad rhoup| gup(1:np)=sqrt(gvup(1:np,1)**2+gvup(1:np,2)**2+gvup(1:np,3)**2) ! grad^2 rhoup in spherical coordinates call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rfmt1,rfmt2) call rbsht(nr,nri,rfmt2,g2up) ! (grad rhoup).(grad |grad rhoup|) call rfsht(nr,nri,gup,rfmt1) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) g3up(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt1) g3up(1:np)=g3up(1:np)+gvup(1:np,i)*rfmt1(1:np) end do !------------------! ! rho down ! !------------------! ! convert rhodn to spherical harmonics call rfsht(nr,nri,rhodn,rfmt1) ! grad rhodn in spherical coordinates call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) do i=1,3 call rbsht(nr,nri,grfmt(:,i),gvdn(:,i)) end do gdn(1:np)=sqrt(gvdn(1:np,1)**2+gvdn(1:np,2)**2+gvdn(1:np,3)**2) ! grad^2 rhodn in spherical coordinates call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rfmt1,rfmt2) call rbsht(nr,nri,rfmt2,g2dn) ! (grad rhodn).(grad |grad rhodn|) call rfsht(nr,nri,gdn,rfmt1) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) g3dn(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt1) g3dn(1:np)=g3dn(1:np)+gvdn(1:np,i)*rfmt1(1:np) end do !-------------! ! rho ! !-------------! ! |grad rho| grho(1:np)=sqrt((gvup(1:np,1)+gvdn(1:np,1))**2 & +(gvup(1:np,2)+gvdn(1:np,2))**2 & +(gvup(1:np,3)+gvdn(1:np,3))**2) ! (grad rho).(grad |grad rho|) call rfsht(nr,nri,grho,rfmt1) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) g3rho(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt1) g3rho(1:np)=g3rho(1:np)+(gvup(1:np,i)+gvdn(1:np,i))*rfmt1(1:np) end do deallocate(rfmt1,rfmt2,grfmt,gvup,gvdn) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggair_sp_1.f900000644000000000000000000000013213543334734015161 xustar0030 mtime=1569569244.858641799 30 atime=1569569241.063644222 30 ctime=1569569244.858641799 elk-6.3.2/src/ggair_sp_1.f900000644002504400250440000001022113543334734017224 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggair_sp_1 ! !INTERFACE: subroutine ggair_sp_1(rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) ! !INPUT/OUTPUT PARAMETERS: ! rhoup : spin-up density (in,real(ngtot)) ! rhodn : spin-down density (in,real(ngtot)) ! grho : |grad rho| (out,real(ngtot)) ! gup : |grad rhoup| (out,real(ngtot)) ! gdn : |grad rhodn| (out,real(ngtot)) ! g2up : grad^2 rhoup (out,real(ngtot)) ! g2dn : grad^2 rhodn (out,real(ngtot)) ! g3rho : (grad rho).(grad |grad rho|) (out,real(ngtot)) ! g3up : (grad rhoup).(grad |grad rhoup|) (out,real(ngtot)) ! g3dn : (grad rhodn).(grad |grad rhodn|) (out,real(ngtot)) ! !DESCRIPTION: ! Computes $|\nabla\rho|$, $|\nabla\rho^{\uparrow}|$, ! $|\nabla\rho^{\downarrow}|$, $\nabla^2\rho^{\uparrow}$, ! $\nabla^2\rho^{\downarrow}$, $\nabla\rho\cdot(\nabla|\nabla\rho|)$, ! $\nabla\rho^{\uparrow}\cdot(\nabla|\nabla\rho^{\uparrow}|)$ and ! $\nabla\rho^{\downarrow}\cdot(\nabla|\nabla\rho^{\downarrow}|)$ for the ! interstitial charge density, as required by the generalised gradient ! approximation functionals of type 1 for spin-polarised densities. See ! routines {\tt potxc} and {\tt modxcifc}. ! ! !REVISION HISTORY: ! Created October 2004 (JKD) ! Simplified and improved, October 2009 (JKD) !EOP !BOC use modmain implicit none ! arguments real(8), intent(in) :: rhoup(ngtot),rhodn(ngtot) real(8), intent(out) :: grho(ngtot),gup(ngtot),gdn(ngtot) real(8), intent(out) :: g2up(ngtot),g2dn(ngtot) real(8), intent(out) :: g3rho(ngtot),g3up(ngtot),g3dn(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays real(8), allocatable :: gvup(:,:),gvdn(:,:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(gvup(ngtot,3),gvdn(ngtot,3)) allocate(zfft1(ngtot),zfft2(ngtot)) !----------------! ! rho up ! !----------------! zfft1(:)=rhoup(:) call zfftifc(3,ngridg,-1,zfft1) ! |grad rhoup| do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) gvup(:,i)=dble(zfft2(:)) end do gup(:)=sqrt(gvup(:,1)**2+gvup(:,2)**2+gvup(:,3)**2) ! grad^2 rhoup zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) end do call zfftifc(3,ngridg,1,zfft2) g2up(:)=dble(zfft2(:)) ! (grad rhoup).(grad |grad rhoup|) zfft1(:)=gup(:) call zfftifc(3,ngridg,-1,zfft1) g3up(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) g3up(:)=g3up(:)+gvup(:,i)*dble(zfft2(:)) end do !------------------! ! rho down ! !------------------! zfft1(:)=rhodn(:) call zfftifc(3,ngridg,-1,zfft1) ! |grad rhodn| do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) gvdn(:,i)=dble(zfft2(:)) end do gdn(:)=sqrt(gvdn(:,1)**2+gvdn(:,2)**2+gvdn(:,3)**2) ! grad^2 rhodn zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) end do call zfftifc(3,ngridg,1,zfft2) g2dn(:)=dble(zfft2(:)) ! (grad rhodn).(grad |grad rhodn|) zfft1(:)=gdn(:) call zfftifc(3,ngridg,-1,zfft1) g3dn(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) g3dn(:)=g3dn(:)+gvdn(:,i)*dble(zfft2(:)) end do !-------------! ! rho ! !-------------! ! |grad rho| grho(:)=sqrt((gvup(:,1)+gvdn(:,1))**2 & +(gvup(:,2)+gvdn(:,2))**2 & +(gvup(:,3)+gvdn(:,3))**2) ! (grad rho).(grad |grad rho|) zfft1(:)=grho(:) call zfftifc(3,ngridg,-1,zfft1) g3rho(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) g3rho(:)=g3rho(:)+(gvup(:,i)+gvdn(:,i))*dble(zfft2(:)) end do deallocate(gvup,gvdn,zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggamt_2a.f900000644000000000000000000000013213543334734014627 xustar0030 mtime=1569569244.862641796 30 atime=1569569241.068644219 30 ctime=1569569244.862641796 elk-6.3.2/src/ggamt_2a.f900000644002504400250440000000273413543334734016704 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggamt_2a ! !INTERFACE: subroutine ggamt_2a(tsh,is,np,rho,g2rho,gvrho,grho2) ! !USES: use modmain ! !DESCRIPTION: ! Spin-unpolarised version of {\tt ggamt\_sp\_2a}. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: is,np real(8), intent(in) :: rho(np) real(8), intent(out) :: g2rho(np),gvrho(np,3),grho2(np) ! local variables integer nr,nri,i ! allocatable arrays real(8), allocatable :: grfmt(:,:),rfmt1(:),rfmt2(:) allocate(grfmt(np,3),rfmt2(np)) nr=nrmt(is) nri=nrmti(is) ! compute grad^2 rho in spherical coordinates if (tsh) then call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rho,rfmt2) else allocate(rfmt1(np)) call rfsht(nr,nri,rho,rfmt1) call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rfmt1,rfmt2) end if call rbsht(nr,nri,rfmt2,g2rho) ! compute grad rho in spherical coordinates if (tsh) then call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rho,np,grfmt) else call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) end if do i=1,3 call rbsht(nr,nri,grfmt(:,i),gvrho(:,i)) end do ! (grad rho)^2 grho2(1:np)=gvrho(1:np,1)**2+gvrho(1:np,2)**2+gvrho(1:np,3)**2 deallocate(rfmt2,grfmt) if (.not.tsh) deallocate(rfmt1) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggair_2a.f900000644000000000000000000000013213543334734014621 xustar0030 mtime=1569569244.866641793 30 atime=1569569241.073644216 30 ctime=1569569244.866641793 elk-6.3.2/src/ggair_2a.f900000644002504400250440000000235713543334734016677 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggair_2a ! !INTERFACE: subroutine ggair_2a(rho,g2rho,gvrho,grho2) ! !USES: use modmain ! !DESCRIPTION: ! Spin-unpolarised version of {\tt ggair\_sp\_2a}. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rho(ngtot) real(8), intent(out) :: g2rho(ngtot),gvrho(ngtot,3),grho2(ngtot) ! local variables integer i,ig,ifg ! allocatable arrays complex(8), allocatable :: zfft1(:),zfft2(:) allocate(zfft1(ngtot),zfft2(ngtot)) ! Fourier transform density to G-space zfft1(:)=rho(:) call zfftifc(3,ngridg,-1,zfft1) ! grad^2 rho zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) end do call zfftifc(3,ngridg,1,zfft2) g2rho(:)=dble(zfft2(:)) ! grad rho do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) gvrho(:,i)=dble(zfft2(:)) end do ! (grad rho)^2 grho2(:)=gvrho(:,1)**2+gvrho(:,2)**2+gvrho(:,3)**2 deallocate(zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggamt_2b.f900000644000000000000000000000013013543334734014626 xustar0029 mtime=1569569244.87164179 30 atime=1569569241.079644212 29 ctime=1569569244.87164179 elk-6.3.2/src/ggamt_2b.f900000644002504400250440000000337013543334734016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggamt_2b ! !INTERFACE: subroutine ggamt_2b(is,np,g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) ! !USES: use modmain ! !DESCRIPTION: ! Spin-unpolarised version of {\tt ggamt\_sp\_2b}. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments integer, intent(in) :: is,np real(8), intent(in) :: g2rho(np),gvrho(np,3) real(8), intent(inout) :: vx(np),vc(np) real(8), intent(in) :: dxdgr2(np),dcdgr2(np) ! local variables integer nr,nri,i ! allocatable arrays real(8), allocatable :: rfmt1(:),rfmt2(:),grfmt(:,:) allocate(rfmt1(np),rfmt2(np),grfmt(np,3)) nr=nrmt(is) nri=nrmti(is) !------------------! ! exchange ! !------------------! ! convert dxdgr2 to spherical harmonics call rfsht(nr,nri,dxdgr2,rfmt1) ! compute grad dxdgr2 call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dxdgr2).(grad rho) in spherical coordinates rfmt1(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvrho(1:np,i) end do vx(1:np)=vx(1:np)-2.d0*(rfmt1(1:np)+dxdgr2(1:np)*g2rho(1:np)) !---------------------! ! correlation ! !---------------------! ! convert dcdgr2 to spherical harmonics call rfsht(nr,nri,dcdgr2,rfmt1) ! compute grad dcdgr2 call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dcdgr2).(grad rho) in spherical coordinates rfmt1(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvrho(1:np,i) end do vc(1:np)=vc(1:np)-2.d0*(rfmt1(1:np)+dcdgr2(1:np)*g2rho(1:np)) deallocate(rfmt1,rfmt2,grfmt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggair_2b.f900000644000000000000000000000013113543334734014621 xustar0030 mtime=1569569244.875641788 29 atime=1569569241.08364421 30 ctime=1569569244.875641788 elk-6.3.2/src/ggair_2b.f900000644002504400250440000000333013543334734016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggair_2b ! !INTERFACE: subroutine ggair_2b(g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) ! !USES: use modmain ! !DESCRIPTION: ! Spin-unpolarised version of {\tt ggair\_sp\_2b}. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments real(8), intent(in) :: g2rho(ngtot),gvrho(ngtot,3) real(8), intent(inout) :: vx(ngtot),vc(ngtot) real(8), intent(in) :: dxdgr2(ngtot),dcdgr2(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays real(8), allocatable :: rfir(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(rfir(ngtot)) allocate(zfft1(ngtot),zfft2(ngtot)) !------------------! ! exchange ! !------------------! ! compute grad dxdgr2 zfft1(:)=dxdgr2(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dxdgr2).(grad rho) rfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) rfir(:)=rfir(:)+dble(zfft2(:))*gvrho(:,i) end do vx(:)=vx(:)-2.d0*(rfir(:)+dxdgr2(:)*g2rho(:)) !---------------------! ! correlation ! !---------------------! ! compute grad dcdgr2 zfft1(:)=dcdgr2(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dcdgr2).(grad rho) rfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) rfir(:)=rfir(:)+dble(zfft2(:))*gvrho(:,i) end do vc(:)=vc(:)-2.d0*(rfir(:)+dcdgr2(:)*g2rho(:)) deallocate(rfir,zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggamt_sp_2a.f900000644000000000000000000000013213543334734015331 xustar0030 mtime=1569569244.880641785 30 atime=1569569241.089644206 30 ctime=1569569244.880641785 elk-6.3.2/src/ggamt_sp_2a.f900000644002504400250440000001032513543334734017401 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggamt_sp_2a ! !INTERFACE: subroutine ggamt_sp_2a(is,np,rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) ! !USES: use modmain ! !DESCRIPTION: ! Computes the muffin-tin gradients $\nabla^2\rho^{\uparrow}$, ! $\nabla^2\rho^{\downarrow}$, $\nabla\rho^{\uparrow}$, ! $\nabla\rho^{\downarrow}$, $(\nabla\rho^{\uparrow})^2$, ! $(\nabla\rho^{\downarrow})^2$ and ! $\nabla\rho^{\uparrow}\cdot\nabla\rho^{\downarrow}$, which are passed in to ! GGA functional subroutines of type 2. The exchange-correlation energy in ! these routines has the functional form ! $$ E_{xc}[\rho^{\uparrow},\rho^{\downarrow}]=\int d^3r\,\hat{\epsilon}_{xc} ! \bigl(\rho^{\uparrow}({\bf r}),\rho^{\downarrow}({\bf r}), ! (\nabla\rho^{\uparrow}({\bf r}))^2,(\nabla\rho^{\downarrow}({\bf r}))^2, ! \nabla\rho^{\uparrow}({\bf r}) ! \cdot\nabla\rho^{\downarrow}({\bf r})\bigr), $$ ! where $\hat{\epsilon}_{xc}({\bf r})=\epsilon_{xc}({\bf r})\rho({\bf r})$ is ! the xc energy per unit volume, with $\epsilon_{xc}$ being the xc energy per ! electron, and $\rho=\rho^{\uparrow}+\rho^{\downarrow}$. From the gradients ! above, type 2 GGA routines return $\epsilon_{xc}$, but not directly the xc ! potentials. Instead they generate the derivatives ! $\partial\hat{\epsilon}_{xc}/\partial\rho^{\uparrow}({\bf r})$, ! $\partial\hat{\epsilon}_{xc}/\partial(\nabla\rho^{\uparrow}({\bf r}))^2$, ! and the same for down spin, as well as ! $\partial\hat{\epsilon}_{xc}/\partial(\nabla\rho^{\uparrow}({\bf r}) ! \cdot\nabla\rho^{\downarrow}({\bf r}))$. In a post-processing step invoked ! by {\tt ggamt\_sp\_2b}, integration by parts is used to obtain the xc ! potential explicitly with ! \begin{align*} ! V_{xc}^{\uparrow}({\bf r})=&\frac{\partial\hat{\epsilon}_{xc}}{\partial ! \rho^{\uparrow}({\bf r})}-2\left(\nabla\frac{\partial\hat{\epsilon}_{xc}} ! {\partial(\nabla\rho^{\uparrow})^2}\right)\cdot\nabla\rho^{\uparrow} ! -2\frac{\hat{\epsilon}_{xc}}{\partial(\nabla\rho^{\uparrow})^2}\nabla^2 ! \rho^{\uparrow}\\ ! &-\left(\nabla\frac{\hat{\epsilon}_{xc}}{\partial(\nabla\rho^{\uparrow} ! \cdot\nabla\rho^{\downarrow})}\right)\cdot\nabla\rho^{\downarrow} ! -\frac{\partial\hat{\epsilon}_{xc}}{\partial(\nabla\rho^{\uparrow}\cdot ! \nabla\rho^{\downarrow})}\nabla^2\rho^{\downarrow}, ! \end{align*} ! and similarly for $V_{xc}^{\downarrow}$. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments integer, intent(in) :: is,np real(8), intent(in) :: rhoup(np),rhodn(np) real(8), intent(out) :: g2up(np),g2dn(np) real(8), intent(out) :: gvup(np,3),gvdn(np,3) real(8), intent(out) :: gup2(np),gdn2(np),gupdn(np) ! local variables integer nr,nri,i ! allocatable arrays real(8), allocatable :: rfmt1(:),rfmt2(:),grfmt(:,:) allocate(rfmt1(np),rfmt2(np),grfmt(np,3)) nr=nrmt(is) nri=nrmti(is) !----------------! ! rho up ! !----------------! ! convert rhoup to spherical harmonics call rfsht(nr,nri,rhoup,rfmt1) ! compute grad^2 rhoup in spherical coordinates call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rfmt1,rfmt2) call rbsht(nr,nri,rfmt2,g2up) ! grad rhoup in spherical coordinates call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) do i=1,3 call rbsht(nr,nri,grfmt(:,i),gvup(:,i)) end do ! (grad rhoup)^2 gup2(1:np)=gvup(1:np,1)**2+gvup(1:np,2)**2+gvup(1:np,3)**2 !------------------! ! rho down ! !------------------! ! convert rhodn to spherical harmonics call rfsht(nr,nri,rhodn,rfmt1) ! compute grad^2 rhodn in spherical coordinates call grad2rfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rlmt(:,-2,is),rfmt1,rfmt2) call rbsht(nr,nri,rfmt2,g2dn) ! grad rhodn in spherical coordinates call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) do i=1,3 call rbsht(nr,nri,grfmt(:,i),gvdn(:,i)) end do ! (grad rhodn)^2 gdn2(1:np)=gvdn(1:np,1)**2+gvdn(1:np,2)**2+gvdn(1:np,3)**2 ! (grad rhoup).(grad rhodn) gupdn(1:np)=gvup(1:np,1)*gvdn(1:np,1) & +gvup(1:np,2)*gvdn(1:np,2) & +gvup(1:np,3)*gvdn(1:np,3) deallocate(rfmt1,rfmt2,grfmt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggair_sp_2a.f900000644000000000000000000000013213543334734015323 xustar0030 mtime=1569569244.884641782 30 atime=1569569241.094644203 30 ctime=1569569244.884641782 elk-6.3.2/src/ggair_sp_2a.f900000644002504400250440000000475113543334734017401 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggair_sp_2a ! !INTERFACE: subroutine ggair_sp_2a(rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) ! !USES: use modmain ! !DESCRIPTION: ! Computes the interstitial gradients $\nabla^2\rho^{\uparrow}$, ! $\nabla^2\rho^{\downarrow}$, $\nabla\rho^{\uparrow}$, ! $\nabla\rho^{\downarrow}$, $(\nabla\rho^{\uparrow})^2$, ! $(\nabla\rho^{\downarrow})^2$ and ! $\nabla\rho^{\uparrow}\cdot\nabla\rho^{\downarrow}$. These are used for GGA ! functionals of type 2 and meta-GGA. See {\tt ggamt\_sp\_2a} for details. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rhoup(ngtot) real(8), intent(in) :: rhodn(ngtot) real(8), intent(out) :: g2up(ngtot) real(8), intent(out) :: g2dn(ngtot) real(8), intent(out) :: gvup(ngtot,3) real(8), intent(out) :: gvdn(ngtot,3) real(8), intent(out) :: gup2(ngtot) real(8), intent(out) :: gdn2(ngtot) real(8), intent(out) :: gupdn(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays complex(8), allocatable :: zfft1(:),zfft2(:) allocate(zfft1(ngtot),zfft2(ngtot)) !----------------! ! rho up ! !----------------! zfft1(:)=rhoup(:) call zfftifc(3,ngridg,-1,zfft1) ! compute grad^2 rhoup zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) end do call zfftifc(3,ngridg,1,zfft2) g2up(:)=dble(zfft2(:)) ! grad rhoup do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) gvup(:,i)=dble(zfft2(:)) end do ! (grad rhoup)^2 gup2(:)=gvup(:,1)**2+gvup(:,2)**2+gvup(:,3)**2 !------------------! ! rho down ! !------------------! zfft1(:)=rhodn(:) call zfftifc(3,ngridg,-1,zfft1) ! compute grad^2 rhodn zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=-(gc(ig)**2)*zfft1(ifg) end do call zfftifc(3,ngridg,1,zfft2) g2dn(:)=dble(zfft2(:)) ! grad rhodn do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) gvdn(:,i)=dble(zfft2(:)) end do ! (grad rhodn)^2 gdn2(:)=gvdn(:,1)**2+gvdn(:,2)**2+gvdn(:,3)**2 ! (grad rhoup).(grad rhodn) gupdn(:)=gvup(:,1)*gvdn(:,1)+gvup(:,2)*gvdn(:,2)+gvup(:,3)*gvdn(:,3) deallocate(zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggamt_sp_2b.f900000644000000000000000000000013213543334734015332 xustar0030 mtime=1569569244.888641779 30 atime=1569569241.100644199 30 ctime=1569569244.888641779 elk-6.3.2/src/ggamt_sp_2b.f900000644002504400250440000000721413543334734017405 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggamt_sp_2b ! !INTERFACE: subroutine ggamt_sp_2b(is,np,g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2, & dxdgd2,dxdgud,dcdgu2,dcdgd2,dcdgud) ! !USES: use modmain ! !DESCRIPTION: ! Post processing step of muffin-tin gradients for GGA type 2. See routine ! {\tt ggamt\_sp\_2a} for full details. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none ! arguments integer, intent(in) :: is,np real(8), intent(in) :: g2up(np),g2dn(np) real(8), intent(in) :: gvup(np,3),gvdn(np,3) real(8), intent(inout) :: vxup(np),vxdn(np) real(8), intent(inout) :: vcup(np),vcdn(np) real(8), intent(in) :: dxdgu2(np),dxdgd2(np),dxdgud(np) real(8), intent(in) :: dcdgu2(np),dcdgd2(np),dcdgud(np) ! local variables integer nr,nri,i ! allocatable arrays real(8), allocatable :: rfmt1(:),rfmt2(:),grfmt(:,:) allocate(rfmt1(np),rfmt2(np),grfmt(np,3)) nr=nrmt(is) nri=nrmti(is) !------------------! ! exchange ! !------------------! ! convert dxdgu2 to spherical harmonics call rfsht(nr,nri,dxdgu2,rfmt1) ! compute grad dxdgu2 call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dxdgu2).(grad rhoup) in spherical coordinates rfmt1(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvup(1:np,i) end do vxup(1:np)=vxup(1:np)-2.d0*(rfmt1(1:np)+dxdgu2(1:np)*g2up(1:np)) & -dxdgud(1:np)*g2dn(1:np) ! convert dxdgd2 to spherical harmonics call rfsht(nr,nri,dxdgd2,rfmt1) ! compute grad dxdgd2 call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dxdgd2).(grad rhodn) in spherical coordinates rfmt1(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvdn(1:np,i) end do vxdn(1:np)=vxdn(1:np)-2.d0*(rfmt1(1:np)+dxdgd2(1:np)*g2dn(1:np)) & -dxdgud(1:np)*g2up(1:np) ! convert dxdgud to spherical harmonics call rfsht(nr,nri,dxdgud,rfmt1) ! compute grad dxdgud call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dxdgud).(grad rhodn) and (grad dxdgud).(grad rhoup) do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt1) vxup(1:np)=vxup(1:np)-rfmt1(1:np)*gvdn(1:np,i) vxdn(1:np)=vxdn(1:np)-rfmt1(1:np)*gvup(1:np,i) end do !---------------------! ! correlation ! !---------------------! ! convert dcdgu2 to spherical harmonics call rfsht(nr,nri,dcdgu2,rfmt1) ! compute grad dcdgu2 call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dcdgu2).(grad rhoup) in spherical coordinates rfmt1(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvup(1:np,i) end do vcup(1:np)=vcup(1:np)-2.d0*(rfmt1(1:np)+dcdgu2(1:np)*g2up(1:np)) & -dcdgud(1:np)*g2dn(1:np) ! convert dcdgd2 to spherical harmonics call rfsht(nr,nri,dcdgd2,rfmt1) ! compute grad dcdgd2 call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dcdgd2).(grad rhodn) in spherical coordinates rfmt1(1:np)=0.d0 do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt2) rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvdn(1:np,i) end do vcdn(1:np)=vcdn(1:np)-2.d0*(rfmt1(1:np)+dcdgd2(1:np)*g2dn(1:np)) & -dcdgud(1:np)*g2up(1:np) ! convert dcdgud to spherical harmonics call rfsht(nr,nri,dcdgud,rfmt1) ! compute grad dcdgud call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt1,np,grfmt) ! (grad dcdgud).(grad rhodn) and (grad dcdgud).(grad rhoup) do i=1,3 call rbsht(nr,nri,grfmt(:,i),rfmt1) vcup(1:np)=vcup(1:np)-rfmt1(1:np)*gvdn(1:np,i) vcdn(1:np)=vcdn(1:np)-rfmt1(1:np)*gvup(1:np,i) end do deallocate(rfmt1,rfmt2,grfmt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ggair_sp_2b.f900000644000000000000000000000013213543334734015324 xustar0030 mtime=1569569244.893641776 30 atime=1569569241.105644196 30 ctime=1569569244.893641776 elk-6.3.2/src/ggair_sp_2b.f900000644002504400250440000000745213543334734017403 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: ggair_sp_2b ! !INTERFACE: subroutine ggair_sp_2b(g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2,dxdgd2, & dxdgud,dcdgu2,dcdgd2,dcdgud) ! !USES: use modmain ! !DESCRIPTION: ! Post processing step of interstitial gradients for GGA type 2. See routine ! {\tt ggamt\_sp\_2a} for full details. ! ! !REVISION HISTORY: ! Created November 2009 (JKD and TMcQ) !EOP !BOC implicit none real(8), intent(in) :: g2up(ngtot) real(8), intent(in) :: g2dn(ngtot) real(8), intent(in) :: gvup(ngtot,3) real(8), intent(in) :: gvdn(ngtot,3) real(8), intent(inout) :: vxup(ngtot) real(8), intent(inout) :: vxdn(ngtot) real(8), intent(inout) :: vcup(ngtot) real(8), intent(inout) :: vcdn(ngtot) real(8), intent(in) :: dxdgu2(ngtot) real(8), intent(in) :: dxdgd2(ngtot) real(8), intent(in) :: dxdgud(ngtot) real(8), intent(in) :: dcdgu2(ngtot) real(8), intent(in) :: dcdgd2(ngtot) real(8), intent(in) :: dcdgud(ngtot) ! local variables integer ig,ifg,i ! allocatable arrays real(8), allocatable :: rfir(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(rfir(ngtot)) allocate(zfft1(ngtot),zfft2(ngtot)) !------------------! ! exchange ! !------------------! ! compute grad dxdgu2 zfft1(:)=dxdgu2(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dxdgu2).(grad rhoup) rfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) rfir(:)=rfir(:)+dble(zfft2(:))*gvup(:,i) end do vxup(:)=vxup(:)-2.d0*(rfir(:)+dxdgu2(:)*g2up(:))-dxdgud(:)*g2dn(:) ! compute grad dxdgd2 zfft1(:)=dxdgd2(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dxdgd2).(grad rhodn) rfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) rfir(:)=rfir(:)+dble(zfft2(:))*gvdn(:,i) end do vxdn(:)=vxdn(:)-2.d0*(rfir(:)+dxdgd2(:)*g2dn(:))-dxdgud(:)*g2up(:) ! compute grad dxdgud zfft1(:)=dxdgud(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dxdgud).(grad rhodn) and (grad dxdgud).(grad rhoup) do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) vxup(:)=vxup(:)-dble(zfft2(:))*gvdn(:,i) vxdn(:)=vxdn(:)-dble(zfft2(:))*gvup(:,i) end do !---------------------! ! correlation ! !---------------------! ! compute grad dcdgu2 zfft1(:)=dcdgu2(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dcdgu2).(grad rhoup) rfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) rfir(:)=rfir(:)+dble(zfft2(:))*gvup(:,i) end do vcup(:)=vcup(:)-2.d0*(rfir(:)+dcdgu2(:)*g2up(:))-dcdgud(:)*g2dn(:) ! compute grad dcdgd2 zfft1(:)=dcdgd2(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dcdgd2).(grad rhodn) rfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) rfir(:)=rfir(:)+dble(zfft2(:))*gvdn(:,i) end do vcdn(:)=vcdn(:)-2.d0*(rfir(:)+dcdgd2(:)*g2dn(:))-dcdgud(:)*g2up(:) ! compute grad dcdgud zfft1(:)=dcdgud(:) call zfftifc(3,ngridg,-1,zfft1) ! (grad dcdgud).(grad rhodn) and (grad dcdgud).(grad rhoup) do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(zfft1(ifg)),dble(zfft1(ifg)),8) end do call zfftifc(3,ngridg,1,zfft2) vcup(:)=vcup(:)-dble(zfft2(:))*gvdn(:,i) vcdn(:)=vcdn(:)-dble(zfft2(:))*gvup(:,i) end do deallocate(rfir,zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genspecies.f900000644000000000000000000000013213543334734015273 xustar0030 mtime=1569569244.897641774 30 atime=1569569241.110644192 30 ctime=1569569244.897641774 elk-6.3.2/src/genspecies.f900000644002504400250440000000467513543334734017356 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genspecies(fnum) use modmain use modmpi implicit none ! arguments integer, intent(in) :: fnum ! local variables integer nz,nmax,nst,ist integer ne,nrm,nr,ir,it,i integer n(maxstsp),l(maxstsp),k(maxstsp) real(8) mass,zn,t1,t2,t3 real(8) rm,rmin,rmax real(8) occ(maxstsp),eval(maxstsp) character(256) symb,name ! allocatable arrays real(8), allocatable :: r(:),rho(:),vr(:),rwf(:,:,:) read(fnum,*,err=20) nz if (nz.le.0) then write(*,*) write(*,'("Error(genspecies): atomic number negative : ",I8)') nz write(*,*) stop end if read(fnum,*,err=20) symb,name read(fnum,*,err=20) mass ! convert from 'atomic mass units' to atomic units mass=mass*amu read(fnum,*,err=20) rm read(fnum,*,err=20) nst if ((nst.le.0).or.(nst.gt.maxstsp)) then write(*,*) write(*,'("Error(genspecies): nst out of range : ",I8)') nst write(*,'(" for species ",A)') trim(name) write(*,*) stop end if ne=0 nmax=1 do ist=1,nst read(fnum,*,err=20) n(ist),l(ist),k(ist),i ne=ne+i occ(ist)=i nmax=max(nmax,n(ist)) end do if (mp_mpi) then write(*,'("Info(genspecies): running Z = ",I4,", (",A,")")') nz,trim(name) if (ne.ne.nz) then write(*,*) write(*,'("Warning(genspecies): atom not neutral, electron number : ",& &I4)') ne end if end if ! nuclear charge in units of e zn=-dble(nz) ! minimum radial mesh point proportional to 1/sqrt(Z) rmin=2.d-6/sqrt(dble(nz)) ! default effective infinity rmax=100.d0 ! set the number of radial mesh points proportional to number of nodes nrm=100*(nmax+1) do it=1,2 ! number of points to effective infinity t1=log(rm/rmin) t2=log(rmax/rmin) t3=dble(nrm)*t2/t1 nr=int(t3) allocate(r(nr),rho(nr),vr(nr),rwf(nr,2,nst)) ! generate logarithmic radial mesh t2=t1/dble(nrm-1) do ir=1,nr r(ir)=rmin*exp(dble(ir-1)*t2) end do ! solve the Kohn-Sham-Dirac equation for the atom call atom(sol,.true.,zn,nst,n,l,k,occ,3,0,nr,r,eval,rho,vr,rwf) ! recompute the effective infinity do ir=nr,1,-1 if (rho(ir).gt.1.d-20) then rmax=1.75d0*r(ir) exit end if end do deallocate(r,rho,vr,rwf) end do ! write the species file call writespecies(symb,name,zn,mass,rmin,rm,rmax,nrm,nst,n,l,k,occ,eval) return 20 continue write(*,*) write(*,'("Error(genspecies): error reading species data")') write(*,*) stop end subroutine elk-6.3.2/src/PaxHeaders.21352/writeemd.f900000644000000000000000000000013213543334734014766 xustar0030 mtime=1569569244.901641771 30 atime=1569569241.116644189 30 ctime=1569569244.901641771 elk-6.3.2/src/writeemd.f900000644002504400250440000000525613543334734017045 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Dugdale, D. Ernsting and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeemd use modmain use modpw use modmpi use modomp implicit none ! local variables integer ik,ihk,recl integer ist,ispn,nthd real(8) sum,t1 complex(8) z1 ! allocatable arrays real(8), allocatable :: emd(:) complex(8), allocatable :: wfpw(:,:,:) if (spinsprl) then write(*,*) write(*,'("Error(writeemd): electron momentum density not available for & &spin-spirals")') write(*,*) stop end if ! initialise universal variables call init0 call init1 call init4 ! read density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the occupancies from file do ik=1,nkpt call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! delete existing EMD.OUT if (mp_mpi) then open(160,file='EMD.OUT') close(160,status='DELETE') end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) allocate(emd(nhkmax)) inquire(iolength=recl) vkl(:,1),nhkmax,emd deallocate(emd) open(160,file='EMD.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) ! loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(emd,wfpw,ihk,sum) & !$OMP PRIVATE(ist,ispn,z1,t1) & !$OMP NUM_THREADS(nthd) allocate(emd(nhkmax),wfpw(nhkmax,nspinor,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(writeemd_) write(*,'("Info(writeemd): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(writeemd_) ! Fourier transform the wavefunctions call genwfpw(vkl(:,ik),ngk(1,ik),igkig(:,1,ik),vgkl(:,:,1,ik), & vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),nhk(1,ik),vhkc(:,:,1,ik), & hkc(:,1,ik),sfachk(:,:,1,ik),wfpw) ! loop over all H+k-vectors do ihk=1,nhk(1,ik) ! sum over occupied states and spins sum=0.d0 do ist=1,nstsv do ispn=1,nspinor z1=wfpw(ihk,ispn,ist) t1=dble(z1)**2+aimag(z1)**2 sum=sum+occsv(ist,ik)*t1 end do end do emd(ihk)=sum end do !$OMP CRITICAL(u160) write(160,rec=ik) vkl(:,ik),nhk(1,ik),emd !$OMP END CRITICAL(u160) end do !$OMP END DO deallocate(emd,wfpw) !$OMP END PARALLEL call freethd(nthd) close(160) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) then write(*,*) write(*,'("Info(writeemd): electron momentum density written to EMD.OUT")') write(*,'(" for all H+k-vectors up to |H+k| < hkmax")') end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeexpmat.f900000644000000000000000000000013213543334734015517 xustar0030 mtime=1569569244.906641768 30 atime=1569569241.121644185 30 ctime=1569569244.906641768 elk-6.3.2/src/writeexpmat.f900000644002504400250440000000502613543334734017571 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeexpmat use modmain implicit none ! local variables integer nk,ik,jk,i,j real(8) vgqc(3),gqc real(8) a,b ! allocatable arrays real(8), allocatable :: jlgqr(:,:) complex(8), allocatable :: ylmgq(:),sfacgq(:) complex(8), allocatable :: expmt(:,:),emat(:,:) ! initialise universal variables call init0 call init1 call init2 ! read in the density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! generate the phase factor function exp(iq.r) in the muffin-tins allocate(jlgqr(njcmax,nspecies)) allocate(ylmgq(lmmaxo),sfacgq(natmtot)) allocate(expmt(npcmtmax,natmtot)) ngrf=1 call gengqrf(vecqc,vgqc,gqc,jlgqr,ylmgq,sfacgq) call genexpmt(1,jlgqr,ylmgq,1,sfacgq,expmt) expmt(:,:)=omega*expmt(:,:) deallocate(jlgqr,ylmgq,sfacgq) ! number of k-points to write out if (kstlist(1,1).le.0) then nk=nkpt else nk=nkstlist end if open(50,file='EXPIQR.OUT',form='FORMATTED') write(50,*) write(50,'("q-vector (lattice coordinates) :")') write(50,'(3G18.10)') vecql write(50,'("q-vector (Cartesian coordinates) :")') write(50,'(3G18.10)') vecqc write(50,*) write(50,'(I8," : number of k-points")') nk write(50,'(I6," : number of states per k-point")') nstsv allocate(emat(nstsv,nstsv)) do jk=1,nk if (kstlist(1,1).le.0) then ik=jk else ik=kstlist(1,jk) end if if ((ik.le.0).or.(ik.gt.nkpt)) then write(*,*) write(*,'("Error(writeexpiqr): k-point out of range : ",I8)') ik write(*,*) stop end if write(50,*) write(50,'(" k-point (lattice coordinates) :")') write(50,'(3G18.10)') vkl(:,ik) write(50,*) write(50,'(" k-point (Cartesian coordinates) :")') write(50,'(3G18.10)') vkc(:,ik) call genexpmat(vkl(:,ik),expmt,emat) do i=1,nstsv write(50,*) write(50,'(I6," : state i; state j, <...>, |<...>|^2 below")') i do j=1,nstsv a=dble(emat(i,j)) b=aimag(emat(i,j)) write(50,'(I6,3G18.10)') j,a,b,a**2+b**2 end do end do ! end loop over k-points end do close(50) write(*,*) write(*,'("Info(writeexpmat)")') write(*,'(" < i,k+q | exp(iq.r) | j,k > matrix elements written to & &EXPIQR.OUT")') write(*,'(" for the q-vector in vecql and all k-points in kstlist")') deallocate(expmt,emat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rotdmat.f900000644000000000000000000000013213543334734014620 xustar0030 mtime=1569569244.911641765 30 atime=1569569241.127644182 30 ctime=1569569244.911641765 elk-6.3.2/src/rotdmat.f900000644002504400250440000000473613543334734016701 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rotdmat(rspl,rspn,lmax,nspinor,ld,dmat1,dmat2) implicit none ! arguments real(8), intent(in) :: rspl(3,3),rspn(3,3) integer, intent(in) :: lmax,nspinor integer, intent(in) :: ld complex(8), intent(in) :: dmat1(ld,nspinor,ld,nspinor) complex(8), intent(inout) :: dmat2(ld,nspinor,ld,nspinor) ! local variables integer lds,ispn,jspn,p integer lmmax,l,lm1,lm2,nm real(8), parameter :: eps=1.d-8 real(8) ang(3),angi(3) real(8) rot(3,3),det,v(3),th complex(8), parameter :: zzero=(0.d0,0.d0),zone=(1.d0,0.d0) complex(8) su2(2,2),a(2,2),b(2,2) ! allocatable arrays complex(8), allocatable :: dm(:,:,:,:),c(:,:),d(:,:) ! external functions real(8) r3mdet external r3mdet lmmax=(lmax+1)**2 allocate(dm(ld,nspinor,ld,nspinor)) allocate(c(lmmax,lmmax),d(lmmax,lmmax)) ! find the determinant of the spatial rotation matrix det=r3mdet(rspl) if (det.gt.0.d0) then p=1 else p=-1 end if ! make the rotation matrix proper rot(:,:)=dble(p)*rspl(:,:) ! compute the Euler angles of the spatial rotation call roteuler(rot,ang) ! inverse rotation: the matrix is to be rotated, not the spherical harmonics angi(1)=-ang(3) angi(2)=-ang(2) angi(3)=-ang(1) ! determine the rotation matrix for complex spherical harmonics call ylmrot(p,angi,lmax,lmmax,d) ! apply (l,m) rotation matrix as U*D*conjg(U') lds=ld*nspinor do ispn=1,nspinor do jspn=1,nspinor lm1=1 do l=0,lmax nm=2*l+1 call zgemm('N','N',nm,lmmax,nm,zone,d(lm1,lm1),lmmax, & dmat1(lm1,ispn,1,jspn),lds,zzero,c(lm1,1),lmmax) lm1=lm1+nm end do lm1=1 do l=0,lmax nm=2*l+1 call zgemm('N','C',lmmax,nm,nm,zone,c(1,lm1),lmmax,d(lm1,lm1),lmmax, & zzero,dm(1,ispn,lm1,jspn),lds) lm1=lm1+nm end do end do end do ! spin rotation if required if (nspinor.eq.2) then ! convert spin rotation matrix to axis-angle form call rotaxang(eps,rspn,det,v,th) ! find the SU(2) representation of the rotation matrix call axangsu2(v,th,su2) ! apply SU(2) symmetry matrix as U*D*conjg(U*) andd add to dmat2 do lm1=1,lmmax do lm2=1,lmmax a(:,:)=dm(lm1,:,lm2,:) call z2mm(su2,a,b) call z2mmct(b,su2,a) dmat2(lm1,:,lm2,:)=dmat2(lm1,:,lm2,:)+a(:,:) end do end do else dmat2(1:lmmax,1,1:lmmax,1)=dmat2(1:lmmax,1,1:lmmax,1)+dm(1:lmmax,1,1:lmmax,1) end if deallocate(dm,c,d) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hrmdmat.f900000644000000000000000000000013213543334734014602 xustar0030 mtime=1569569244.915641762 30 atime=1569569241.132644178 30 ctime=1569569244.915641762 elk-6.3.2/src/hrmdmat.f900000644002504400250440000000100413543334734016644 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hrmdmat(n,dmat) implicit none ! arguments integer, intent(in) :: n complex(8), intent(inout) :: dmat(n,n) ! local variables integer i,j complex(8) z1 do i=1,n do j=1,i-1 z1=dmat(i,j)+conjg(dmat(j,i)) dmat(i,j)=z1 dmat(j,i)=conjg(z1) end do dmat(i,i)=dble(dmat(i,i)) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/reademd.f900000644000000000000000000000013013543334734014545 xustar0029 mtime=1569569244.91964176 30 atime=1569569241.137644175 29 ctime=1569569244.91964176 elk-6.3.2/src/reademd.f900000644002504400250440000000241713543334734016622 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 D. Ernsting, S. Dugdale and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine reademd(emds) use modmain use modpw implicit none ! arguments real(4), intent(out) :: emds(nhkmax,nkpt) ! local variables integer ik,recl,nhk_ real(8) vkl_(3),t1 ! allocatable arrays real(8), allocatable :: emd(:) allocate(emd(nhkmax)) ! find the record length inquire(iolength=recl) vkl(:,1),nhkmax,emd open(160,file='EMD.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) do ik=1,nkpt read(160,rec=ik) vkl_,nhk_,emd t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(reademd): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EMD.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nhk(1,ik).ne.nhk_) then write(*,*) write(*,'("Error(getpmat): differing nhk for k-point ",I8)') ik write(*,'(" current : ",I8)') nhk(1,ik) write(*,'(" EMD.OUT : ",I8)') nhk_ write(*,*) stop end if ! store momentum density in single precision array emds(:,ik)=real(emd(:)) end do close(160) deallocate(emd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/emdplot.f900000644000000000000000000000013213543334734014612 xustar0030 mtime=1569569244.923641757 30 atime=1569569241.142644172 30 ctime=1569569244.923641757 elk-6.3.2/src/emdplot.f900000644002504400250440000000217013543334734016661 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 D. Ernsting, S. Dugdale and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine emdplot use modmain use modpw implicit none ! local variables real(8) t1 ! allocatable arrays real(4), allocatable :: emds(:,:) t1=sum(abs(vkloff(:))) if (t1.gt.epslat) then write(*,*) write(*,'("Error(emdplot): use vkloff = 0 for the ground-state run")') write(*,*) stop end if ! initialise universal variables call init0 call init1 call init4 ! read in the electron momentum density allocate(emds(nhkmax,nkpt)) call reademd(emds) ! write the density plot to file select case(task) case(171) call emdplot1d(emds) write(*,*) write(*,'("Info(emdplot): 1D electron momentum density written to & &EMD1D.OUT")') case(172) call emdplot2d(emds) write(*,*) write(*,'("Info(emdplot): 2D electron momentum density written to & &EMD2D.OUT")') case(173) call emdplot3d(emds) write(*,*) write(*,'("Info(emdplot): 3D electron momentum density written to & &EMD3D.OUT")') end select deallocate(emds) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfhkintp.f900000644000000000000000000000013213543334734014773 xustar0030 mtime=1569569244.928641754 30 atime=1569569241.147644169 30 ctime=1569569244.928641754 elk-6.3.2/src/rfhkintp.f900000644002504400250440000000473213543334734017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 D. Ernsting, S. Dugdale and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function rfhkintp(vhpl,rfhk) use modmain use modpw implicit none ! arguments real(8), intent(in) :: vhpl(3) real(4), intent(in) :: rfhk(nhkmax,nkpt) ! local variables integer ivh0(3),ivk0(3),ihk integer ivhb(3,0:1,0:1,0:1) integer ivkb(3,0:1,0:1,0:1) integer isym,lspl,ik,jk,i,j,k real(8) vpl(3),fb(0:1,0:1,0:1) real(8) f00,f01,f10,f11,f0,f1 real(8) v0(3),v1(3),v2(3),t1,t2 ! find the H-vector and k-vector corresponding to the input H+p-vector ivh0(:)=floor(vhpl(:)) vpl(:)=vhpl(:)-dble(ivh0(:)) v1(:)=vpl(:)*dble(ngridk(:)) ivk0(:)=floor(v1(:)) ! determine the corners of the box containing the input point do i=0,1; do j=0,1; do k=0,1 ivhb(:,i,j,k)=ivh0(:) ivkb(:,i,j,k)=ivk0(:) ivkb(1,i,j,k)=ivkb(1,i,j,k)+i ivkb(2,i,j,k)=ivkb(2,i,j,k)+j ivkb(3,i,j,k)=ivkb(3,i,j,k)+k ivhb(:,i,j,k)=ivhb(:,i,j,k)+ivkb(:,i,j,k)/ngridk(:) ivkb(:,i,j,k)=modulo(ivkb(:,i,j,k),ngridk(:)) end do; end do; end do ! determine the function at each corner of the box do i=0,1; do j=0,1; do k=0,1 fb(i,j,k)=0.d0 ! non-reduced k-point index jk=ivkiknr(ivkb(1,i,j,k),ivkb(2,i,j,k),ivkb(3,i,j,k)) ! H+k-vector at corner of box v1(:)=dble(ivhb(:,i,j,k))+vkl(:,jk) ! store the origin of the box if ((i.eq.0).and.(j.eq.0).and.(k.eq.0)) v0(:)=v1(:) ! vector in Cartesian coordinates v2(:)=bvec(:,1)*v1(1)+bvec(:,2)*v1(2)+bvec(:,3)*v1(3) ! check length is within range t1=sqrt(v2(1)**2+v2(2)**2+v2(3)**2) if (t1.gt.hkmax) cycle ! find the lattice symmetry which maps the non-reduced to reduced k-point call findkpt(vkl(:,jk),isym,ik) ! index to spatial rotation in lattice point group lspl=lsplsymc(isym) v2(:)=symlat(1,:,lspl)*v1(1)+symlat(2,:,lspl)*v1(2)+symlat(3,:,lspl)*v1(3) ! find the H+k-vector for the reduced k-point do ihk=1,nhk(1,ik) t1=abs(v2(1)-vhkl(1,ihk,1,ik)) & +abs(v2(2)-vhkl(2,ihk,1,ik)) & +abs(v2(3)-vhkl(3,ihk,1,ik)) if (t1.lt.epslat) then fb(i,j,k)=rfhk(ihk,ik) exit end if end do end do; end do; end do ! interpolate function t2=(vhpl(1)-v0(1))*dble(ngridk(1)) t1=1.d0-t2 f00=fb(0,0,0)*t1+fb(1,0,0)*t2 f01=fb(0,0,1)*t1+fb(1,0,1)*t2 f10=fb(0,1,0)*t1+fb(1,1,0)*t2 f11=fb(0,1,1)*t1+fb(1,1,1)*t2 t2=(vhpl(2)-v0(2))*dble(ngridk(2)) t1=1.d0-t2 f0=f00*t1+f10*t2 f1=f01*t1+f11*t2 t2=(vhpl(3)-v0(3))*dble(ngridk(3)) t1=1.d0-t2 rfhkintp=f0*t1+f1*t2 return end function elk-6.3.2/src/PaxHeaders.21352/emdplot3d.f900000644000000000000000000000013213543334734015041 xustar0030 mtime=1569569244.932641751 30 atime=1569569241.153644165 30 ctime=1569569244.932641751 elk-6.3.2/src/emdplot3d.f900000644002504400250440000000204113543334734017105 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 D. Ernsting, S. Dugdale and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine emdplot3d(emds) use modmain use modpw use modomp implicit none ! arguments real(4), intent(in) :: emds(nhkmax,nkpt) ! local variables integer np,ip,nthd real(8) v1(3),t1 ! allocatable arrays real(8), allocatable :: vpl(:,:) ! external functions real(8) rfhkintp external rfhkintp ! total number of plot points np=np3d(1)*np3d(2)*np3d(3) ! generate the 3D plotting points allocate(vpl(3,np)) call plotpt3d(vpl) open(50,file='EMD3D.OUT',form='FORMATTED') write(50,'(3I6," : grid size")') np3d(:) call holdthd(np,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(t1,v1) & !$OMP NUM_THREADS(nthd) !$OMP DO ORDERED do ip=1,np t1=rfhkintp(vpl(:,ip),emds) call r3mv(bvec,vpl(:,ip),v1) !$OMP ORDERED write(50,'(4G18.10)') v1(:),t1 !$OMP END ORDERED end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) close(50) deallocate(vpl) return end subroutine elk-6.3.2/src/PaxHeaders.21352/emdplot2d.f900000644000000000000000000000013213543334734015040 xustar0030 mtime=1569569244.936641749 30 atime=1569569241.158644162 30 ctime=1569569244.936641749 elk-6.3.2/src/emdplot2d.f900000644002504400250440000000312713543334734017112 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 D. Ernsting, S. Dugdale and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine emdplot2d(emds) use modmain use modpw use modomp implicit none ! arguments real(4), intent(in) :: emds(nhkmax,nkpt) ! local variables integer nh(3),np,ip,n,i,nthd real(8) vpnl(3),v1(3),t1 ! allocatable arrays real(8), allocatable :: vpl(:,:),vppc(:,:) real(8), allocatable :: x(:),wx(:),f(:) ! external functions real(8) rfhkintp external rfhkintp ! allocate local arrays np=np2d(1)*np2d(2) allocate(vpl(3,np),vppc(2,np)) ! generate the 2D plotting points call plotpt2d(bvec,binv,vpnl,vpl,vppc) ! determine the number of integration points nh(:)=int(hkmax*sqrt(avec(1,:)**2+avec(2,:)**2+avec(3,:)**2)/pi)+1 n=2*maxval(nh(:)*ngridk(:)) allocate(x(n),wx(n)) do i=1,n t1=2.d0*dble(i-1)/dble(n-1)-1.d0 x(i)=t1*hkmax end do ! determine the weights for spline integration call wsplint(n,x,wx) open(50,file='EMD2D.OUT',form='FORMATTED') write(50,'(2I6," : grid size")') np2d(:) ! loop over plotting points in the 2D plane call holdthd(np,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(f,i,v1,t1) & !$OMP NUM_THREADS(nthd) allocate(f(n)) !$OMP DO ORDERED do ip=1,np ! integrate along normal to plane do i=1,n v1(:)=vpl(:,ip)+x(i)*vpnl(:) f(i)=rfhkintp(v1,emds) end do t1=dot_product(wx(:),f(:)) !$OMP ORDERED write(50,'(3G18.10)') vppc(1,ip),vppc(2,ip),t1 !$OMP END ORDERED end do !$OMP END DO deallocate(f) !$OMP END PARALLEL call freethd(nthd) close(50) deallocate(vpl,vppc,x,wx) return end subroutine elk-6.3.2/src/PaxHeaders.21352/emdplot1d.f900000644000000000000000000000013213543334734015037 xustar0030 mtime=1569569244.941641746 30 atime=1569569241.162644159 30 ctime=1569569244.941641746 elk-6.3.2/src/emdplot1d.f900000644002504400250440000000447413543334734017117 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 D. Ernsting, S. Dugdale and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine emdplot1d(emds) use modmain use modpw use modomp implicit none ! arguments real(4), intent(in) :: emds(nhkmax,nkpt) ! local variables integer nh(3),ip,n,i,j,nthd real(8) vl1(3),vl2(3),vl3(3) real(8) vc1(3),vc2(3),vc3(3),t1 ! allocatable arrays real(8), allocatable :: x(:),wx(:),f1(:),f2(:) ! external functions real(8) rfhkintp external rfhkintp ! generate the 1D plotting points: use only the first segment call plotpt1d(bvec,2,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) ! compute two vectors orthogonal to each other and the plotting vector; these ! are the directions to be used for integration vl1(:)=vvlp1d(:,2)-vvlp1d(:,1) call r3mv(bvec,vl1,vc1) t1=sqrt(vc1(1)**2+vc1(2)**2+vc1(3)**2) if (t1.lt.epslat) then write(*,*) write(*,'("Error(emdplot1d): zero length plotting vector")') write(*,*) stop end if vc1(:)=vc1(:)/t1 i=1 do j=2,3 if (abs(vc1(j)).lt.abs(vc1(i))) i=j end do vc2(:)=0.d0 vc2(i)=1.d0 t1=dot_product(vc1,vc2) vc2(:)=vc2(:)-t1*vc1(:) t1=sqrt(vc2(1)**2+vc2(2)**2+vc2(3)**2) vc2(:)=vc2(:)/t1 call r3cross(vc1,vc2,vc3) ! integration directions in lattice coordinates call r3mv(binv,vc2,vl2) call r3mv(binv,vc3,vl3) ! determine the number of integration points nh(:)=int(hkmax*sqrt(avec(1,:)**2+avec(2,:)**2+avec(3,:)**2)/pi)+1 n=2*maxval(nh(:)*ngridk(:)) allocate(x(n),wx(n)) do i=1,n t1=2.d0*dble(i-1)/dble(n-1)-1.d0 x(i)=t1*hkmax end do ! determine the weights for spline integration call wsplint(n,x,wx) open(50,file='EMD1D.OUT',form='FORMATTED') write(*,*) ! loop over plotting points along 1D line call holdthd(npp1d,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(f1,f2,i,j,vl1,t1) & !$OMP NUM_THREADS(nthd) allocate(f1(n),f2(n)) !$OMP DO ORDERED do ip=1,npp1d do i=1,n do j=1,n vl1(:)=vplp1d(:,ip)+x(i)*vl2(:)+x(j)*vl3(:) f1(j)=rfhkintp(vl1,emds) end do f2(i)=dot_product(wx(:),f1(:)) end do t1=dot_product(wx(:),f2(:)) !$OMP ORDERED write(*,'("Info(emdplot1d): done ",I6," of ",I6," points")') ip,npp1d write(50,'(2G18.10)') dpp1d(ip),t1 flush(50) !$OMP END ORDERED end do !$OMP END DO deallocate(f1,f2) !$OMP END PARALLEL call freethd(nthd) close(50) deallocate(x,wx) return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotpt3d.f900000644000000000000000000000013213543334734014717 xustar0030 mtime=1569569244.945641743 30 atime=1569569241.167644156 30 ctime=1569569244.945641743 elk-6.3.2/src/plotpt3d.f900000644002504400250440000000143113543334734016765 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine plotpt3d(vpl) use modmain implicit none ! arguments real(8), intent(out) :: vpl(3,np3d(1)*np3d(2)*np3d(3)) ! local variables integer ip,i1,i2,i3 real(8) v1(3),v2(3),v3(3) real(8) t1,t2,t3 ! generate 3D grid from corner vectors v1(:)=vclp3d(:,1)-vclp3d(:,0) v2(:)=vclp3d(:,2)-vclp3d(:,0) v3(:)=vclp3d(:,3)-vclp3d(:,0) ip=0 do i3=0,np3d(3)-1 t3=dble(i3)/dble(np3d(3)) do i2=0,np3d(2)-1 t2=dble(i2)/dble(np3d(2)) do i1=0,np3d(1)-1 t1=dble(i1)/dble(np3d(1)) ip=ip+1 vpl(:,ip)=t1*v1(:)+t2*v2(:)+t3*v3(:)+vclp3d(:,0) end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotpt2d.f900000644000000000000000000000013013543334734014714 xustar0029 mtime=1569569244.94964174 30 atime=1569569241.172644153 29 ctime=1569569244.94964174 elk-6.3.2/src/plotpt2d.f900000644002504400250440000000300513543334734016763 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine plotpt2d(cvec,cinv,vpnl,vpl,vppc) use modmain implicit none ! arguments real(8), intent(in) :: cvec(3,3),cinv(3,3) real(8), intent(out) :: vpnl(3) real(8), intent(out) :: vpl(3,np2d(1)*np2d(2)) real(8), intent(out) :: vppc(2,np2d(1)*np2d(2)) ! local variables integer ip,i1,i2 real(8) vl1(3),vl2(3) real(8) vc1(3),vc2(3),vc3(3) real(8) d1,d2,d12,t1,t2 vl1(:)=vclp2d(:,1)-vclp2d(:,0) vl2(:)=vclp2d(:,2)-vclp2d(:,0) call r3mv(cvec,vl1,vc1) call r3mv(cvec,vl2,vc2) d1=sqrt(vc1(1)**2+vc1(2)**2+vc1(3)**2) d2=sqrt(vc2(1)**2+vc2(2)**2+vc2(3)**2) if ((d1.lt.epslat).or.(d2.lt.epslat)) then write(*,*) write(*,'("Error(plotpt2d): zero length plotting vectors")') write(*,*) stop end if d12=(vc1(1)*vc2(1)+vc1(2)*vc2(2)+vc1(3)*vc2(3))/(d1*d2) ! vector normal to plane call r3cross(vc1,vc2,vc3) t1=sqrt(vc3(1)**2+vc3(2)**2+vc3(3)**2) if (t1.lt.epslat) then write(*,*) write(*,'("Error(plotpt2d): 2D plotting plane vectors are collinear")') write(*,*) stop end if vc3(:)=vc3(:)/t1 call r3mv(cinv,vc3,vpnl) ip=0 do i2=0,np2d(2)-1 do i1=0,np2d(1)-1 ip=ip+1 t1=dble(i1)/dble(np2d(1)) t2=dble(i2)/dble(np2d(2)) ! plot points in 3D space vpl(:,ip)=t1*vl1(:)+t2*vl2(:)+vclp2d(:,0) ! plot points on the plane vppc(1,ip)=t1*d1+t2*d2*d12 vppc(2,ip)=t2*d2*sqrt(abs(1.d0-d12**2)) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeevsp.f900000644000000000000000000000013213543334734015176 xustar0030 mtime=1569569244.954641737 30 atime=1569569241.178644149 30 ctime=1569569244.954641737 elk-6.3.2/src/writeevsp.f900000644002504400250440000000200013543334734017235 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeevsp use modmain implicit none ! local variables integer is,ist ! solve the atomic Dirac-Kohn-Sham ground state for all species call init0 ! write out the atomic eigenvalues for each species open(50,file='EVALSP.OUT',form='FORMATTED') write(50,*) write(50,'("Kohn-Sham-Dirac eigenvalues for all atomic species")') write(50,*) write(50,'("Exchange-correlation functional : ",3I6)') xctsp(:) do is=1,nspecies write(50,*) write(50,'("Species : ",I4," (",A,")",I4)') is,trim(spsymb(is)) do ist=1,nstsp(is) write(50,'(" n = ",I2,", l = ",I2,", k = ",I2," : ",G18.10)') nsp(ist,is), & lsp(ist,is),ksp(ist,is),evalsp(ist,is) end do end do close(50) write(*,*) write(*,'("Info(writeevsp)")') write(*,'(" Kohn-Sham-Dirac eigenvalues written to EVALSP.OUT for all atomic & &species")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/torque.f900000644000000000000000000000013213543334734014465 xustar0030 mtime=1569569244.958641735 30 atime=1569569241.184644145 30 ctime=1569569244.958641735 elk-6.3.2/src/torque.f900000644002504400250440000000173013543334734016535 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine torque use modmain implicit none ! local variables integer idm real(8) torq(3) ! allocatable arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) ! external functions real(8) rfint external rfint ! initialise universal variables call init0 if (.not.ncmag) then torq(:)=0.d0 goto 10 end if ! read magnetisation and exchange-correlation magnetic field from file call readstate ! compute m(r) x B_xc(r) allocate(rvfmt(npmtmax,natmtot,3),rvfir(ngtot,3)) call rvfcross(magmt,magir,bxcmt,bxcir,rvfmt,rvfir) ! integrate to find the total torque do idm=1,ndmag torq(idm)=rfint(rvfmt(:,:,idm),rvfir(:,idm)) end do 10 continue write(*,*) write(*,'("Info(torque):")') write(*,'(" Total torque exerted by B_xc on the magnetisation :")') write(*,'(3G18.10)') torq return end subroutine elk-6.3.2/src/PaxHeaders.21352/ssfsmjx.f900000644000000000000000000000013213543334734014643 xustar0030 mtime=1569569244.962641732 30 atime=1569569241.189644142 30 ctime=1569569244.962641732 elk-6.3.2/src/ssfsmjx.f900000644002504400250440000000404613543334734016716 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Jakobsson. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ssfsmjx use modmain use modjx use modrandom use modstore use modmpi implicit none ! local variables integer iq,i integer is,ia,ias real(8) tp(2),t1 ! initialise universal variables call init0 ! store original variables bfcmt0_(:,:,:)=bfcmt0(:,:,:) spinsprl_=spinsprl vqlss_(:)=vqlss(:) ! enable spin-spirals spinsprl=.true. ! enable fixed spin direction fsmtype=-2 ! open SSFSMJX.OUT if (mp_mpi) then open(71,file='SSFSMJX.OUT',form='FORMATTED') end if ! loop over spin-spiral q-vectors do iq=1,nqssjx if (mp_mpi) then write(*,'("Info(ssfsmjx): spin-spiral q-vector ",I6," of ",I6)') iq,nqssjx end if ! generate random q-vector do i=1,3 vqlss(i)=2.d0*randomu()-1.d0 end do ! generate random fixed spin moment directions for those atoms with non-zero ! external magnetic fields do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) tp(1)=thssjx(1)+(thssjx(2)-thssjx(1))*randomu() tp(2)=twopi*randomu() t1=bfcmt0_(3,ia,is) mommtfix(1,ia,is)=t1*sin(tp(1))*cos(tp(2)) mommtfix(2,ia,is)=t1*sin(tp(1))*sin(tp(2)) mommtfix(3,ia,is)=t1*cos(tp(1)) bfcmt0(:,ia,is)=-mommtfix(:,ia,is) end do end do ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! run the ground-state spin-spiral calculation call gndstate ! write data to file if (mp_mpi) then write(71,*) write(71,'(3G18.10)') vqlss(:) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) t1=sqrt(sum(mommt(:,ias)**2)) t1=-sign(t1,bfcmt0(3,ia,is)) write(71,'(6G18.10)') tp(:),bfsmcmt(:,ias),t1 end do end do flush(71) end if end do close(71) if (mp_mpi) then write(*,*) write(*,'("Info(ssfsmjx):")') write(*,'(" Spin-spiral fixed spin moment data written to SSFSMJX.OUT")') end if ! restore original input parameters bfcmt0(:,:,:)=bfcmt0_(:,:,:) spinsprl=spinsprl_ vqlss(:)=vqlss_(:) return end subroutine elk-6.3.2/src/PaxHeaders.21352/wxcplot.f900000644000000000000000000000013213543334734014646 xustar0030 mtime=1569569244.967641729 30 atime=1569569241.195644138 30 ctime=1569569244.967641729 elk-6.3.2/src/wxcplot.f900000644002504400250440000000250213543334734016714 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wxcplot use modmain implicit none ! initialise universal variables call init0 if (xcgrad.ne.4) then write(*,*) write(*,'("Error(wxcplot): tau-DFT not in use")') write(*,*) stop end if ! read the density and potentials from file call readstate ! write the potential plots to file select case(task) case(341) open(50,file='WXC1D.OUT',form='FORMATTED') open(51,file='WLINES.OUT',form='FORMATTED') call plot1d(50,51,1,wxcmt,wxcir) close(50) close(51) write(*,*) write(*,'("Info(wxcplot):")') write(*,'(" 1D tau-DFT exchange-correlation potential written to WXC1D.OUT")') write(*,'(" vertex location lines written to WLINES.OUT")') case(342) open(50,file='WXC2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,wxcmt,wxcir) close(50) write(*,*) write(*,'("Info(wxcplot):")') write(*,'(" 2D tau-DFT exchange-correlation potential written to WXC2D.OUT")') case(343) open(50,file='WXC3D.OUT',form='FORMATTED') call plot3d(50,1,wxcmt,wxcir) close(50) write(*,*) write(*,'("Info(wxcplot):")') write(*,'(" 3D tau-DFTexchange-correlation potential written to WXC3D.OUT")') end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/effmass.f900000644000000000000000000000013213543334734014572 xustar0030 mtime=1569569244.971641726 30 atime=1569569241.200644135 30 ctime=1569569244.971641726 elk-6.3.2/src/effmass.f900000644002504400250440000001134013543334734016640 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst and S. Sharma. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine effmass use modmain use modomp use modtest implicit none ! local variables integer ik0,ik,ist,info integer i,j,k,l,m,n,nthd integer i1,i2,i3,j1,j2,j3 real(8) d(3,3),em(3,3) real(8) v1(3),v2(3) real(8) w(3),work(9) ! allocatable arrays integer, allocatable :: ipiv(:) real(8), allocatable :: a(:,:),b(:,:,:,:),c(:,:,:) real(8), allocatable :: evalfv(:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) ! initialise universal variables call init0 call init1 allocate(ipiv(nkpt)) allocate(a(nkpt,nkpt)) n=2*ndspem+1 allocate(b(0:n-1,0:n-1,0:n-1,nstsv)) allocate(c(0:n-1,0:n-1,0:n-1)) ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! generate the spin-orbit coupling radial functions call gensocfr ik0=0 ! begin parallel loop over k-points call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evalfv,evecfv,evecsv) & !$OMP PRIVATE(i1,i2,i3,j1,j2,j3,ist) & !$OMP NUM_THREADS(nthd) allocate(evalfv(nstfv,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv)) allocate(evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt i1=ivk(1,ik); i2=ivk(2,ik); i3=ivk(3,ik) if ((i1.eq.0).and.(i2.eq.0).and.(i3.eq.0)) ik0=ik ! solve the first- and second-variational eigenvalue equations call eveqn(ik,evalfv,evecfv,evecsv) ! copy eigenvalues to new array j1=i1+ndspem; j2=i2+ndspem; j3=i3+ndspem do ist=1,nstsv b(j1,j2,j3,ist)=evalsv(ist,ik) end do end do !$OMP END DO deallocate(evalfv,evecfv,evecsv) !$OMP END PARALLEL call freethd(nthd) ! set up polynomial matrix i=0 do i3=-ndspem,ndspem do i2=-ndspem,ndspem do i1=-ndspem,ndspem i=i+1 v1(1)=dble(i1); v1(2)=dble(i2); v1(3)=dble(i3) v1(:)=v1(:)*deltaem j=0 v2(3)=1.d0 do j3=0,n-1 v2(2)=1.d0 do j2=0,n-1 v2(1)=1.d0 do j1=0,n-1 j=j+1 a(i,j)=v2(1)*v2(2)*v2(3) v2(1)=v2(1)*v1(1) end do v2(2)=v2(2)*v1(2) end do v2(3)=v2(3)*v1(3) end do end do end do end do ! solve for the polynomial coefficients call dgesv(nkpt,nstsv,a,nkpt,ipiv,b,nkpt,info) if (info.ne.0) then write(*,*) write(*,'("Error(effmass): could not determine polynomial coefficients")') write(*,'(" DGESV returned INFO = ",I8)') info write(*,*) stop end if open(50,file='EFFMASS.OUT',form='FORMATTED') write(50,*) write(50,'("(effective mass matrices are in Cartesian coordinates)")') write(50,*) write(50,'("k-point (lattice coordinates) :")') write(50,'(3G18.10)') vklem write(50,*) write(50,'("k-point (Cartesian coordinates) :")') call r3mv(bvec,vklem,v1) write(50,'(3G18.10)') v1 ! begin loop over states do ist=1,nstsv ! compute matrix of derivatives with respect to k-vector do k=1,3 do l=1,3 c(:,:,:)=b(:,:,:,ist) do i=1,2 if (i.eq.1) then m=k else m=l end if if (m.eq.1) then do j=0,n-2 c(j,:,:)=dble(j+1)*c(j+1,:,:) end do c(n-1,:,:)=0.d0 else if (m.eq.2) then do j=0,n-2 c(:,j,:)=dble(j+1)*c(:,j+1,:) end do c(:,n-1,:)=0.d0 else if (m.eq.3) then do j=0,n-2 c(:,:,j)=dble(j+1)*c(:,:,j+1) end do c(:,:,n-1)=0.d0 end if end do ! derivative evaluated at zero d(k,l)=c(0,0,0) end do end do write(50,*) write(50,*) write(50,'("State, eigenvalue : ",I6,G18.10)') ist,evalsv(ist,ik0) write(50,*) write(50,'(" matrix of eigenvalue derivatives with respect to k :")') do i=1,3 write(50,'(3G18.10)') (d(i,j),j=1,3) end do write(50,'(" trace : ",G18.10)') d(1,1)+d(2,2)+d(3,3) ! invert derivative matrix call r3minv(d,em) write(50,*) write(50,'(" effective mass tensor (inverse of derivative matrix) :")') do i=1,3 write(50,'(3G18.10)') (em(i,j),j=1,3) end do write(50,'(" trace : ",G18.10)') em(1,1)+em(2,2)+em(3,3) ! find the eigenvalues call dsyev('N','U',3,em,3,w,work,9,info) write(50,'(" eigenvalues :")') write(50,'(3G18.10)') w ! end loop over states end do close(50) write(*,*) write(*,'("Info(effmass):")') write(*,'(" Effective mass tensor for each state written to EFFMASS.OUT")') write(*,'(" for k-point (lattice) ",3G18.10)') vklem ! write the effective mass eigenvalues of the last state to test file call writetest(25,'effective mass',nv=3,tol=1.d-6,rva=w) deallocate(ipiv,a,b,c) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genlmirep.f900000644000000000000000000000013213543334734015130 xustar0030 mtime=1569569244.976641723 30 atime=1569569241.205644132 30 ctime=1569569244.976641723 elk-6.3.2/src/genlmirep.f900000644002504400250440000000434613543334734017206 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genlmirep(lmax,ld,elm,ulm) use modmain implicit none ! arguments integer, intent(in) :: lmax integer, intent(in) :: ld real(8), intent(out) :: elm(ld,natmtot) complex(8), intent(out) :: ulm(ld,ld,natmtot) ! local variables integer isym,lspl,is,ia,ias integer lmmax,i,j,l,lm,n,p integer info,lwork ! allocatable arrays real(8), allocatable :: rwork(:) complex(8), allocatable :: ulat(:,:,:) complex(8), allocatable :: a(:,:),b(:,:) complex(8), allocatable :: h(:,:) complex(8), allocatable :: work(:) lmmax=(lmax+1)**2 allocate(rwork(3*lmmax)) allocate(ulat(lmmax,lmmax,nsymlat)) allocate(a(lmmax,lmmax),b(lmmax,lmmax)) allocate(h(lmmax,lmmax)) lwork=2*lmmax allocate(work(lwork)) ! construct (l,m) rotation matrix for each lattice symmetry a(:,:)=0.d0 do i=1,lmmax a(i,i)=1.d0 end do do isym=1,nsymlat call rotzflm(symlatc(:,:,isym),0,lmax,lmmax,lmmax,lmmax,a,ulat(:,:,isym)) end do ! set up pseudorandom symmetric matrix H h(:,:)=0.d0 p=1 do l=0,lmax n=2*l+1 lm=idxlm(l,-l) do i=lm,lm+n-1 do j=i,lm+n-1 ! Park and Miller linear congruential generator p=mod(p*171,30269) h(i,j)=mod(p,lmmax) h(j,i)=h(i,j) end do end do end do ! loop over species and atoms do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! symmetrise H with site symmetries b(:,:)=0.d0 do isym=1,nsymsite(ias) ! spatial rotation element in lattice point group lspl=lsplsyms(isym,ias) ! apply lattice symmetry as U*H*conjg(U') call zgemm('N','N',lmmax,lmmax,lmmax,zone,ulat(:,:,lspl),lmmax,h,lmmax, & zzero,a,lmmax) call zgemm('N','C',lmmax,lmmax,lmmax,zone,a,lmmax,ulat(:,:,lspl),lmmax, & zone,b,lmmax) end do ! block diagonalise symmetrised H do l=0,lmax n=2*l+1 lm=idxlm(l,-l) call zheev('V','U',n,b(lm,lm),lmmax,elm(lm,ias),work,lwork,rwork,info) end do ! the unitary matrix U is the transpose of the eigenvector array do i=1,lmmax do j=1,lmmax ulm(i,j,ias)=b(j,i) end do end do end do end do deallocate(rwork,ulat,a,b,h,work) return end subroutine elk-6.3.2/src/PaxHeaders.21352/ssfext.f900000644000000000000000000000013213543334734014462 xustar0030 mtime=1569569244.980641721 30 atime=1569569241.210644129 30 ctime=1569569244.980641721 elk-6.3.2/src/ssfext.f900000644002504400250440000000123313543334734016530 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ssfext(iq,fext) use modmain implicit none ! arguments integer, intent(in) :: iq character(*), intent(out) :: fext ! local variables integer i,j,m(3),n(3) ! external functions integer gcd external gcd do i=1,3 if (ivq(i,iq).ne.0) then j=gcd(ivq(i,iq),ngridq(i)) m(i)=ivq(i,iq)/j n(i)=ngridq(i)/j else m(i)=0 n(i)=0 end if end do write(fext,'("_Q",2I2.2,"_",2I2.2,"_",2I2.2,".OUT")') m(1),n(1),m(2),n(2), & m(3),n(3) return end subroutine elk-6.3.2/src/PaxHeaders.21352/sstask.f900000644000000000000000000000013213543334734014456 xustar0030 mtime=1569569244.984641718 30 atime=1569569241.215644125 30 ctime=1569569244.984641718 elk-6.3.2/src/sstask.f900000644002504400250440000000167513543334734016536 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine sstask(fnum,fext) use modmain use modmpi implicit none ! arguments integer, intent(in) :: fnum character(*), intent(out) :: fext ! local variables logical exist ! only master process should search for file if (.not.mp_mpi) goto 10 do iqss=1,nqpt ! construct the spin-spiral file extension call ssfext(iqss,fext) ! determine if the SS file exists inquire(file='SS'//trim(fext),exist=exist) if (.not.exist) then open(fnum,file='SS'//trim(fext),form='FORMATTED') return end if end do iqss=0 write(*,*) write(*,'("Info(sstask): nothing more to do")') 10 continue ! broadcast to all other processes call mpi_bcast(iqss,1,mpi_integer,0,mpicom,ierror) if (iqss.eq.0) then fext='.OUT' else call ssfext(iqss,fext) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/spiralsc.f900000644000000000000000000000013213543334734014766 xustar0030 mtime=1569569244.989641715 30 atime=1569569241.221644122 30 ctime=1569569244.989641715 elk-6.3.2/src/spiralsc.f900000644002504400250440000000460013543334734017035 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine spiralsc !****** check MPI use modmain use modmpi use modstore implicit none ! local variables integer nq,iq,jq real(8) q ! store original parameters natoms_(:)=natoms(:) avec_(:,:)=avec(:,:) atposl_(:,:,:)=atposl(:,:,:) bfcmt0_(:,:,:)=bfcmt0(:,:,:) mommtfix_(:,:,:)=mommtfix(:,:,:) autokpt_=autokpt ngridk_(:)=ngridk ! initialise universal variables call init0 ! initialise q-point dependent variables call init2 ! store original parameters atposc_(:,:,:)=atposc(:,:,:) 10 continue call sstask(80,filext) ! if nothing more to do then restore input parameters and return if (iqss.eq.0) then filext='.OUT' natoms(:)=natoms_(:) avec(:,:)=avec_(:,:) atposl(:,:,:)=atposl_(:,:,:) bfcmt0(:,:,:)=bfcmt0_(:,:,:) mommtfix(:,:,:)=mommtfix_(:,:,:) autokpt=autokpt_ ngridk(:)=ngridk_(:) return end if ! spiral dry run: just generate empty SS files if (task.eq.352) goto 10 if (mp_mpi) then write(*,'("Info(spiralsc): working on ",A)') 'SS'//trim(filext) end if ! determine k-point grid size from radkpt autokpt=.true. ! generate the spin-spiral supercell call genscss ! initialise or read the charge density and potentials from file if (task.eq.350) then trdstate=.false. else trdstate=.true. end if ! run the ground-state calculation call gndstate if (mp_mpi) then write(80,'(I6,T20," : number of unit cells in supercell")') nscss write(80,'(G18.10,T20," : total energy per unit cell")') engytot/dble(nscss) write(80,*) write(80,'("q-point in lattice and Cartesian coordinates :")') write(80,'(3G18.10)') vql(:,iqss) write(80,'(3G18.10)') vqc(:,iqss) q=sqrt(vqc(1,iqss)**2+vqc(2,iqss)**2+vqc(3,iqss)**2) write(80,'(G18.10,T20," : length of q-vector")') q write(80,*) nq=nint(dble(nqptnr)*wqpt(iqss)) write(80,'(I6,T20," : number of equivalent q-points")') nq write(80,'("Equivalent q-points in lattice and Cartesian coordinates :")') do iq=1,nqptnr jq=iqmap(ivq(1,iq),ivq(2,iq),ivq(3,iq)) if (jq.eq.iqss) then write(80,'(3G18.10)') vql(:,iq) write(80,'(3G18.10)') vqc(:,iq) write(80,*) end if end do close(80) ! delete the eigenvector files call delevec end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) goto 10 return end subroutine elk-6.3.2/src/PaxHeaders.21352/genscss.f900000644000000000000000000000013213543334734014613 xustar0030 mtime=1569569244.993641712 30 atime=1569569241.226644118 30 ctime=1569569244.993641712 elk-6.3.2/src/genscss.f900000644002504400250440000000276713543334734016676 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genscss use modmain use modstore implicit none ! local variables integer is,ia,na,i real(8) vc(3),cs,sn,t1 ! automatic arrays real(8) vsc(3,nqptnr) ! find the smallest supercell which contains q-vector call findscq(iqss,avec_,nscss,vsc) ! construct supercell atomic positions and magnetic fields do is=1,nspecies na=0 do ia=1,natoms_(is) do i=1,nscss na=na+1 if (na.gt.maxatoms) then write(*,*) write(*,'("Error(genscss): too many atoms in supercell : ",I8)') na write(*,'(" for species ",I4)') is write(*,'("Adjust maxatoms in modmain and recompile code")') write(*,*) stop end if vc(:)=vsc(:,i)+atposc_(:,ia,is) ! new atomic position in lattice coordinates call r3mv(ainv,vc,atposl(:,na,is)) ! rotate external B-field and fixed spin moment vector by angle q.r t1=dot_product(vqc(:,iqss),vc(:)) cs=cos(t1); sn=sin(t1) bfcmt0(1,na,is)=cs*bfcmt0_(1,ia,is)-sn*bfcmt0_(2,ia,is) bfcmt0(2,na,is)=sn*bfcmt0_(1,ia,is)+cs*bfcmt0_(2,ia,is) bfcmt0(3,na,is)=bfcmt0_(3,ia,is) mommtfix(1,na,is)=cs*mommtfix_(1,ia,is)-sn*mommtfix_(2,ia,is) mommtfix(2,na,is)=sn*mommtfix_(1,ia,is)+cs*mommtfix_(2,ia,is) mommtfix(3,na,is)=mommtfix_(3,ia,is) end do end do natoms(is)=na end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/genfspecies.f900000644000000000000000000000013013543334734015437 xustar0029 mtime=1569569244.99764171 30 atime=1569569241.231644115 29 ctime=1569569244.99764171 elk-6.3.2/src/genfspecies.f900000644002504400250440000000646613543334734017524 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genfspecies(zn,symb) use modmain use modmpi implicit none ! arguments real(8), intent(in) :: zn character(*), intent(in) :: symb ! local variables integer, parameter :: nit=4 integer nst,ist,jst integer nmax,in,il,ik integer nrm,nr,ir,it integer n(maxstsp),l(maxstsp),k(maxstsp) integer idx(maxstsp),iv(maxstsp) real(8) rm,rmin,rmax real(8) mass,t1,t2,t3 real(8) occ(maxstsp),eval(maxstsp),rv(maxstsp) character(256) name ! allocatable arrays real(8), allocatable :: r(:),rho(:),vr(:),rwf(:,:,:) ! external functions real(8) massnucl external massnucl name='Fractional species' ! set up the initial occupancies occ(:)=0.d0 t1=abs(zn) nmax=1 ist=0 do in=1,maxstsp do il=0,in-1 do ik=max(il,1),il+1 t2=dble(2*ik) t2=min(t2,t1) ist=ist+1 n(ist)=in l(ist)=il k(ist)=ik occ(ist)=t2 if (t2.gt.epsocc) nmax=in t1=t1-t2 if (ist.eq.maxstsp) then if (t1.gt.epsocc) then write(*,*) write(*,'("Error(genfspecies): too many states for fractional & &species ",A)') trim(symb) write(*,*) stop else goto 10 end if end if end do end do end do 10 continue ! minimum radius rmin=2.d-6/sqrt(abs(zn)) ! initial maximum radius rmax=100.d0 ! initial muffin-tin radius rm=2.d0 ! number of points to muffin-tin radius nrm=100*(nmax+1) ! iterate the solution but not to self-consistency do it=1,nit ! number of points to effective infinity t1=log(rm/rmin) t2=log(rmax/rmin) t3=dble(nrm)*t2/t1 nr=int(t3) allocate(r(nr),rho(nr),vr(nr),rwf(nr,2,maxstsp)) ! generate logarithmic radial mesh t2=t1/dble(nrm-1) do ir=1,nr r(ir)=rmin*exp(dble(ir-1)*t2) end do ! solve the Kohn-Sham-Dirac equation for the atom call atom(sol,.true.,zn,maxstsp,n,l,k,occ,3,0,nr,r,eval,rho,vr,rwf) ! check for spurious eigenvalues do ist=2,maxstsp if (eval(ist).lt.eval(1)) eval(ist)=1.d6 end do ! recompute the effective infinity do ir=nr,1,-1 if (rho(ir).gt.1.d-20) then rmax=1.75d0*r(ir) exit end if end do ! estimate the muffin-tin radius do ir=nr,1,-1 if (rho(ir).gt.2.d-2) then rm=r(ir) exit end if end do if (rm.lt.1.d0) rm=1.d0 if (rm.gt.3.2d0) rm=3.2d0 ! sort the eigenvalues call sortidx(maxstsp,eval,idx) ! recompute the occupancies occ(:)=0.d0 t1=abs(zn) do ist=1,maxstsp jst=idx(ist) ik=k(jst) t2=dble(2*ik) t2=min(t2,t1) occ(jst)=t2 t1=t1-t2 end do deallocate(r,rho,vr,rwf) end do ! rearrange the arrays iv(:)=n(:) n(:)=iv(idx(:)) iv(:)=l(:) l(:)=iv(idx(:)) iv(:)=k(:) k(:)=iv(idx(:)) rv(:)=occ(:) occ(:)=rv(idx(:)) rv(:)=eval(:) eval(:)=rv(idx(:)) ! find the number of occupied states nst=0 do ist=1,maxstsp if (occ(ist).lt.epsocc) then nst=ist exit end if end do ! estimate the nuclear mass mass=massnucl(zn) ! convert from 'atomic mass units' to atomic units mass=mass*amu ! write the species file call writespecies(symb,name,zn,mass,rmin,rm,rmax,nrm,nst,n,l,k,occ,eval) if (mp_mpi) then write(*,*) write(*,'("Info(genfspecies): wrote fractional species file ",A,".in")') & trim(symb) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/writespecies.f900000644000000000000000000000013213543334735015655 xustar0030 mtime=1569569245.002641707 30 atime=1569569241.237644111 30 ctime=1569569245.002641707 elk-6.3.2/src/writespecies.f900000644002504400250440000000527313543334735017733 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writespecies(symb,name,zn,mass,rmin,rm,rmax,nrm,nst,n,l,k,occ,eval) use modmain use modmpi implicit none ! arguments character(*), intent(in) :: symb,name real(8), intent(in) :: zn,mass real(8), intent(in) :: rmin,rm,rmax integer, intent(in) :: nrm,nst integer, intent(in) :: n(nst),l(nst),k(nst) real(8), intent(in) :: occ(nst) real(8), intent(in) :: eval(nst) ! local variables integer lmax,nlo integer ist,jst,i logical core(maxstsp),lorb(maxstsp) ! default APW band energy real(8), parameter :: e0=0.15d0 ! find which states belong to core do ist=1,nst if (eval(ist).lt.ecvcut) then core(ist)=.true. else core(ist)=.false. end if end do ! check that the state for same n and l but different k is also core do ist=1,nst if (core(ist)) then do jst=1,nst if ((n(ist).eq.n(jst)).and.(l(ist).eq.l(jst))) core(jst)=.true. end do end if end do lmax=1 do ist=1,nst if (.not.core(ist)) lmax=max(lmax,l(ist)) end do ! determine the local orbitals nlo=lmax+1 lorb(:)=.false. do ist=1,nst if (.not.core(ist)) then if ((l(ist).eq.0).or.(l(ist).lt.k(ist))) then if ((eval(ist).lt.esccut).or.(l(ist).ge.2)) then lorb(ist)=.true. nlo=nlo+1 end if end if end if end do if (mp_mpi) then open(55,file=trim(symb)//'.in',form='FORMATTED') write(55,'(" ''",A,"''",T45,": spsymb")') trim(symb) write(55,'(" ''",A,"''",T45,": spname")') trim(name) write(55,'(G14.6,T45,": spzn")') zn write(55,'(G18.10,T45,": spmass")') mass write(55,'(G14.6,2F10.4,I6,T45,": rminsp, rmt, rmaxsp, nrmt")') rmin,rm, & rmax,nrm write(55,'(I4,T45,": nstsp")') nst write(55,'(3I4,G14.6,L1,T45,": nsp, lsp, ksp, occsp, spcore")') n(1),l(1), & k(1),occ(1),core(1) do ist=2,nst write(55,'(3I4,G14.6,L1)') n(ist),l(ist),k(ist),occ(ist),core(ist) end do write(55,'(I4,T45,": apword")') 1 write(55,'(F10.4,I4," ",L1,T45,": apwe0, apwdm, apwve")') e0,0,.false. write(55,'(I4,T45,": nlx")') 0 write(55,'(I4,T45,": nlorb")') nlo do i=0,lmax write(55,'(2I4,T45,": lorbl, lorbord")') i,2 write(55,'(F10.4,I4," ",L1,T45,": lorbe0, lorbdm, lorbve")') e0,0,.false. write(55,'(F10.4,I4," ",L1)') e0,1,.false. end do do ist=1,nst if (lorb(ist)) then write(55,'(2I4,T45,": lorbl, lorbord")') l(ist),2 write(55,'(F10.4,I4," ",L1,T45,": lorbe0, lorbdm, lorbve")') e0,0,.false. write(55,'(F10.4,I4," ",L1)') eval(ist),0,.true. end if end do close(55) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/exxengy.f900000644000000000000000000000013213543334735014636 xustar0030 mtime=1569569245.006641704 30 atime=1569569241.242644108 30 ctime=1569569245.006641704 elk-6.3.2/src/exxengy.f900000644002504400250440000000555613543334735016720 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine exxengy use modmain use modmpi use modomp implicit none ! local variables integer ik,ist,jst,is,ia integer nrc,nrci,npc integer m1,m2,nthd complex(8) z1 ! allocatable arrays complex(8), allocatable :: wfcr1(:,:),wfcr2(:,:) complex(8), allocatable :: zrhomt(:),zvclmt(:),zfmt(:) ! external functions complex(8) zfmtinp external zfmtinp allocate(wfcr1(npcmtmax,2),wfcr2(npcmtmax,2)) allocate(zrhomt(npcmtmax),zvclmt(npcmtmax),zfmt(npcmtmax)) ! zero the exchange energy engyx=0.d0 !--------------------------------------------------! ! val-val-val and val-cr-val contributions ! !--------------------------------------------------! call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(exxengy_) write(*,'("Info(exxengy): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(exxengy_) call exxengyk(ik) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! add energies from each process and redistribute call mpi_allreduce(mpi_in_place,engyx,1,mpi_double_precision,mpi_sum,mpicom, & ierror) !-----------------------------------! ! core-core-core contribution ! !-----------------------------------! ! begin loops over atoms and species do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) do jst=1,nstsp(is) if (spcore(jst,is)) then do m2=-ksp(jst,is),ksp(jst,is)-1 ! generate the core wavefunction in spherical coordinates (pass in m-1/2) call wavefcr(.false.,lradstp,is,ia,jst,m2,npcmtmax,wfcr2) do ist=1,nstsp(is) if (spcore(ist,is)) then do m1=-ksp(ist,is),ksp(ist,is)-1 call wavefcr(.false.,lradstp,is,ia,ist,m1,npcmtmax,wfcr1) ! calculate the complex overlap density call zrho2(npc,wfcr1,wfcr1(:,2),wfcr2,wfcr2(:,2),zfmt) call zfsht(nrc,nrci,zfmt,zrhomt) ! calculate the Coulomb potential call zpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & zrhomt,zvclmt) z1=zfmtinp(nrc,nrci,wrcmt(:,is),zrhomt,zvclmt) engyx=engyx-0.5d0*dble(z1) end do ! end loop over ist end if end do end do ! end loop over jst end if end do ! end loops over atoms and species end do end do deallocate(wfcr1,wfcr2,zrhomt,zvclmt,zfmt) return contains subroutine zrho2(n,x1,x2,y1,y2,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x1(n),x2(n),y1(n),y2(n) complex(8), intent(out) :: z(n) z(:)=conjg(x1(:))*y1(:)+conjg(x2(:))*y2(:) return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/exxengyk.f900000644000000000000000000000013213543334735015011 xustar0030 mtime=1569569245.011641701 30 atime=1569569241.247644105 30 ctime=1569569245.011641701 elk-6.3.2/src/exxengyk.f900000644002504400250440000001466413543334735017073 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine exxengyk(ikp) use modmain implicit none ! arguments integer, intent(in) :: ikp ! local variables integer iq,ik,jk,i,m integer nst1,nst2,ist,jst integer is,ia,ias integer nrc,nrci,npc integer iv(3),ig real(8) ex,vc(3) complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: wfcr(:,:),zfmt(:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) ! external functions complex(8) zfinp,zfmtinp external zfinp,zfmtinp ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv)) allocate(wfir2(ngtc,nspinor,nstsv)) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) allocate(zvclmt(npcmtmax,natmtot),zvclir(ngtc)) ! get the eigenvectors from file for input reduced k-point call getevecfv(filext,ikp,vkl(:,ikp),vgkl(:,:,:,ikp),evecfv) call getevecsv(filext,ikp,vkl(:,ikp),evecsv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! count and index the occupied states nst1=0 do ist=1,nstsv if (evalsv(ist,ikp).lt.efermi) then nst1=nst1+1 idx(nst1)=ist end if end do ! calculate the wavefunctions for occupied states of the input k-point allocate(wfmt1(npcmtmax,natmtot,nspinor,nst1),wfir1(ngtc,nspinor,nst1)) call genwfsv(.false.,.false.,nst1,idx,ngdc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsv,wfmt1,ngtc,wfir1) ! zero the local exchange energy variable ex=0.d0 ! start loop over non-reduced k-point set do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! determine the q-vector iv(:)=ivk(:,ikp)-ivk(:,ik) iv(:)=modulo(iv(:),ngridk(:)) ! check if the q-point is in user-defined set iv(:)=iv(:)*ngridq(:) do i=1,3 if (modulo(iv(i),ngridk(i)).ne.0) goto 10 end do iv(:)=iv(:)/ngridk(:) iq=iqmap(iv(1),iv(2),iv(3)) vc(:)=vkc(:,ikp)-vkc(:,ik) do ig=1,ngvc ! determine the G+q-vectors vgqc(:,ig)=vgc(:,ig)+vc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! structure factors for G+q call gensfacgp(ngvc,vgqc,ngvc,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngvc,gqc,gclgq) ! compute the required spherical Bessel functions call genjlgprmt(lnpsd,ngvc,gqc,ngvc,jlgqrmt) ! find the matching coefficients call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! get the eigenvectors from file for non-reduced k-point call getevecfv(filext,0,vkl(:,ik),vgkl(:,:,1,ik),evecfv) call getevecsv(filext,0,vkl(:,ik),evecsv) ! count and index the occupied states nst2=0 do jst=1,nstsv if (evalsv(jst,jk).lt.efermi) then nst2=nst2+1 idx(nst2)=jst end if end do ! calculate the wavefunctions for occupied states call genwfsv(.false.,.false.,nst2,idx,ngdc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) !--------------------------------------------! ! valence-valence-valence contribution ! !--------------------------------------------! do jst=1,nst2 do ist=1,nst1 ! calculate the complex overlap density call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,jst),wfir2(:,:,jst), & wfmt1(:,:,:,ist),wfir1(:,:,ist),zrhomt,zrhoir) ! calculate the Coulomb potential call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax,zrhomt,zvclmt) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc, & gqc,gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,zrhoir,npcmtmax,zvclmt,zvclir) z1=zfinp(zrhomt,zrhoir,zvclmt,zvclir) ex=ex-0.5d0*occmax*wkpt(ikp)*wqptnr*dble(z1) end do end do 10 continue ! end loop over non-reduced k-point set end do deallocate(vgqc,gqc,gclgq,jlgqrmt) deallocate(evecfv,evecsv) deallocate(apwalm,ylmgq,sfacgq) deallocate(wfmt2,wfir2) !-----------------------------------------! ! valence-core-valence contribution ! !-----------------------------------------! allocate(wfcr(npcmtmax,2),zfmt(npcmtmax)) ! begin loops over atoms and species do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do jst=1,nstsp(is) if (spcore(jst,is)) then do m=-ksp(jst,is),ksp(jst,is)-1 ! generate the core wavefunction in spherical coordinates (pass in m-1/2) call wavefcr(.false.,lradstp,is,ia,jst,m,npcmtmax,wfcr) do ist=1,nst1 ! calculate the complex overlap density in spherical harmonics if (spinpol) then call zrho2(npc,wfcr,wfcr(:,2),wfmt1(:,ias,1,ist), & wfmt1(:,ias,2,ist),zfmt) else call zrho1(npc,wfcr,wfmt1(:,ias,1,ist),zfmt) end if call zfsht(nrc,nrci,zfmt,zrhomt(:,ias)) ! calculate the Coulomb potential call zpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & zrhomt(:,ias),zvclmt(:,ias)) z1=zfmtinp(nrc,nrci,wrcmt(:,is),zrhomt(:,ias),zvclmt(:,ias)) ex=ex-occmax*wkpt(ikp)*dble(z1) end do ! end loop over m end do ! end loop over jst end if end do ! end loops over atoms and species end do end do ! add to global exchange energy !$OMP CRITICAL(exxengyk_) engyx=engyx+ex !$OMP END CRITICAL(exxengyk_) deallocate(wfmt1,wfir1,wfcr,zfmt) deallocate(zrhomt,zrhoir,zvclmt,zvclir) return contains subroutine zrho1(n,x,y,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x(n),y(n) complex(8), intent(out) :: z(n) z(:)=conjg(x(:))*y(:) return end subroutine subroutine zrho2(n,x1,x2,y1,y2,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x1(n),x2(n),y1(n),y2(n) complex(8), intent(out) :: z(n) z(:)=conjg(x1(:))*y1(:)+conjg(x2(:))*y2(:) return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/xc_c_tb09.f900000644000000000000000000000013213543334735014721 xustar0030 mtime=1569569245.015641698 30 atime=1569569241.252644102 30 ctime=1569569245.015641698 elk-6.3.2/src/xc_c_tb09.f900000644002504400250440000000335113543334735016772 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine xc_c_tb09 use modmain use libxcifc implicit none ! local variables integer is,ias,i integer nr,nri,ir real(8), parameter :: alpha=-0.012d0, beta=1.023d0 real(8) t1 ! allocatable arrays real(8), allocatable :: grfmt(:,:,:),grfir(:,:) real(8), allocatable :: rfmt(:,:),rfir(:) real(8), allocatable :: rfmt1(:),rfmt2(:,:) ! external functions real(8) rfint external rfint ! check that the Tran-Blaha functional is being used (A. Shyichuk) if (xctype(2).ne.XC_MGGA_X_TB09) return ! if Tran-Blaha constant has been read in return if (tc_tb09) return ! compute the gradient of the density allocate(grfmt(npmtmax,natmtot,3),grfir(ngtot,3)) call gradrf(rhomt,rhoir,grfmt,grfir) allocate(rfmt(npmtmax,natmtot),rfmt1(npmtmax),rfmt2(npmtmax,3)) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) ! convert muffin-tin density to spherical coordinates call rbsht(nr,nri,rhomt(:,ias),rfmt1) ! convert muffin-tin gradient to spherical coordinates do i=1,3 call rbsht(nr,nri,grfmt(:,ias,i),rfmt2(:,i)) end do ! integrand in muffin-tin do i=1,npmt(is) t1=sqrt(rfmt2(i,1)**2+rfmt2(i,2)**2+rfmt2(i,3)**2) rfmt1(i)=t1/rfmt1(i) end do ! convert to spherical harmonics call rfsht(nr,nri,rfmt1,rfmt(:,ias)) end do deallocate(grfmt,rfmt1,rfmt2) ! integrand in interstitial allocate(rfir(ngtot)) do ir=1,ngtot t1=sqrt(grfir(ir,1)**2+grfir(ir,2)**2+grfir(ir,3)**2) rfir(ir)=t1/rhoir(ir) end do ! integrate over the unit cell t1=rfint(rfmt,rfir) ! set the constant c_tb09=alpha+beta*sqrt(abs(t1)/omega) deallocate(grfir,rfmt,rfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/elfplot.f900000644000000000000000000000013213543334735014614 xustar0030 mtime=1569569245.020641695 30 atime=1569569241.257644099 30 ctime=1569569245.020641695 elk-6.3.2/src/elfplot.f900000644002504400250440000001251013543334735016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: elfplot ! !INTERFACE: subroutine elfplot ! !USES: use modmain ! !DESCRIPTION: ! Outputs the electron localisation function (ELF) for 1D, 2D or 3D plotting. ! The spin-averaged ELF is given by ! $$ f_{\rm ELF}({\bf r})=\frac{1}{1+[D({\bf r})/D^0({\bf r})]^2}, $$ ! where ! $$ D({\bf r})=\frac{1}{2}\left(\tau({\bf r})-\frac{1}{4} ! \frac{[\nabla n({\bf r})]^2}{n({\bf r})}\right) $$ ! and ! $$ \tau({\bf r})=\sum_{i=1}^N \left|\nabla\Psi_i({\bf r}) ! \right|^2 $$ ! is the spin-averaged kinetic energy density from the spinor wavefunctions. ! The function $D^0$ is the kinetic energy density for the homogeneous ! electron gas evaluated for $n({\bf r})$: ! $$ D^0({\bf r})=\frac{3}{5}(6\pi^2)^{2/3}\left(\frac{n({\bf r})}{2} ! \right)^{5/3}. $$ ! The ELF is useful for the topological classification of bonding. See for ! example T. Burnus, M. A. L. Marques and E. K. U. Gross [Phys. Rev. A 71, ! 10501 (2005)]. ! ! !REVISION HISTORY: ! Created September 2003 (JKD) ! Fixed bug found by F. Wagner (JKD) !EOP !BOC implicit none ! local variables integer ik,is,ias integer nr,nri,ir integer ig,ifg,i real(8) r,t1,t2,t3 ! allocatable arrays real(8), allocatable :: gwf2mt(:,:),gwf2ir(:) real(8), allocatable :: rfmt1(:),rfmt2(:),grfir(:) real(8), allocatable :: grfmt1(:,:),grfmt2(:,:) real(8), allocatable :: elfmt(:,:),elfir(:) complex(8), allocatable :: evecfv(:,:),evecsv(:,:) complex(8), allocatable :: zfft1(:),zfft2(:) ! initialise universal variables call init0 call init1 ! allocate local arrays allocate(gwf2mt(npmtmax,natmtot),gwf2ir(ngtot)) allocate(rfmt1(npmtmax),rfmt2(npmtmax),grfir(ngtot)) allocate(grfmt1(npmtmax,3),grfmt2(npmtmax,3)) allocate(elfmt(npmtmax,natmtot),elfir(ngtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(zfft1(ngtot),zfft2(ngtot)) ! read density and potentials from file call readstate ! generate the core wavefunctions and densities call gencore ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! set the gradient squared to zero gwf2mt(:,:)=0.d0 gwf2ir(:)=0.d0 do ik=1,nkpt ! get the eigenvectors and occupancies from file call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! add the valence wavefunction gradient squared call gradwf2(ik,evecfv,evecsv,gwf2mt,gwf2ir) end do ! add core wavefunction gradient squared call gradwfcr2(gwf2mt) !------------------------! ! muffin-tin ELF ! !------------------------! do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) ! convert rho from spherical harmonics to spherical coordinates call rbsht(nr,nri,rhomt(:,ias),rfmt1) ! compute the gradient of the density call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rhomt(:,ias),npmtmax,grfmt1) ! convert gradient to spherical coordinates do i=1,3 call rbsht(nr,nri,grfmt1(:,i),grfmt2(:,i)) end do do i=1,npmt(is) r=abs(rfmt1(i)) ! square of gradient of rho t1=grfmt2(i,1)**2+grfmt2(i,2)**2+grfmt2(i,3)**2 ! D for inhomogeneous density t2=(1.d0/2.d0)*(gwf2mt(i,ias)-(1.d0/4.d0)*t1/r) ! D0 for uniform electron gas t3=(3.d0/5.d0)*((6.d0*pi**2)**(2.d0/3.d0))*(r/2.d0)**(5.d0/3.d0) ! ELF function rfmt2(i)=1.d0/(1.d0+(t2/t3)**2) end do ! convert ELF from spherical coordinates to spherical harmonics call rfsht(nr,nri,rfmt2,elfmt(:,ias)) end do !--------------------------! ! interstitial ELF ! !--------------------------! ! Fourier transform density to G-space zfft1(:)=rhoir(:) call zfftifc(3,ngridg,-1,zfft1) grfir(:)=0.d0 do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) ! take the gradient zfft2(ifg)=zi*vgc(i,ig)*zfft1(ifg) end do ! Fourier transform gradient to real-space call zfftifc(3,ngridg,1,zfft2) do ir=1,ngtot grfir(ir)=grfir(ir)+dble(zfft2(ir))**2 end do end do do ir=1,ngtot r=abs(rhoir(ir)) ! D for inhomogeneous density t1=(1.d0/2.d0)*(gwf2ir(ir)-(1.d0/4.d0)*grfir(ir)/r) ! D0 for homogeneous electron gas t2=(3.d0/5.d0)*((6.d0*pi**2)**(2.d0/3.d0))*(r/2.d0)**(5.d0/3.d0) ! ELF function elfir(ir)=1.d0/(1.d0+(t1/t2)**2) end do ! symmetrise the ELF call symrf(nrmt,nrmti,npmt,npmtmax,elfmt,elfir) ! plot the ELF to file select case(task) case(51) open(50,file='ELF1D.OUT',form='FORMATTED') open(51,file='ELFLINES.OUT',form='FORMATTED') call plot1d(50,51,1,elfmt,elfir) close(50) close(51) write(*,*) write(*,'("Info(elfplot):")') write(*,'(" 1D ELF plot written to ELF1D.OUT")') write(*,'(" vertex location lines written to ELFLINES.OUT")') case(52) open(50,file='ELF2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,elfmt,elfir) close(50) write(*,*) write(*,'("Info(elfplot): 2D ELF plot written to ELF2D.OUT")') case(53) open(50,file='ELF3D.OUT',form='FORMATTED') call plot3d(50,1,elfmt,elfir) close(50) write(*,*) write(*,'("Info(elfplot): 3D ELF plot written to ELF3D.OUT")') end select deallocate(gwf2mt,gwf2ir,rfmt1,rfmt2,grfir) deallocate(grfmt1,grfmt2,elfmt,elfir) deallocate(evecfv,evecsv,zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/potplot.f900000644000000000000000000000013213543334735014650 xustar0030 mtime=1569569245.024641692 30 atime=1569569241.262644095 30 ctime=1569569245.024641692 elk-6.3.2/src/potplot.f900000644002504400250440000000373513543334735016727 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: potplot ! !INTERFACE: subroutine potplot ! !USES: use modmain ! !DESCRIPTION: ! Outputs the exchange, correlation and Coulomb potentials, read in from ! {\tt STATE.OUT}, for 1D, 2D or 3D plotting. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! initialise universal variables call init0 ! read the density and potentials from file call readstate ! write the potential plots to file select case(task) case(41) open(50,file='VCL1D.OUT',form='FORMATTED') open(51,file='VLINES.OUT',form='FORMATTED') call plot1d(50,51,1,vclmt,vclir) close(50) close(51) open(50,file='VXC1D.OUT',form='FORMATTED') open(51,file='VLINES.OUT',form='FORMATTED') call plot1d(50,51,1,vxcmt,vxcir) close(50) close(51) write(*,*) write(*,'("Info(potplot):")') write(*,'(" 1D Coulomb potential plot written to VCL1D.OUT")') write(*,'(" 1D exchange-correlation potential plot written to VXC1D.OUT")') write(*,'(" vertex location lines written to VLINES.OUT")') case(42) open(50,file='VCL2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,vclmt,vclir) close(50) open(50,file='VXC2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,vxcmt,vxcir) close(50) write(*,*) write(*,'("Info(potplot):")') write(*,'(" 2D Coulomb potential plot written to VCL2D.OUT")') write(*,'(" 2D exchange-correlation potential plot written to VXC2D.OUT")') case(43) open(50,file='VCL3D.OUT',form='FORMATTED') call plot3d(50,1,vclmt,vclir) close(50) open(50,file='VXC3D.OUT',form='FORMATTED') call plot3d(50,1,vxcmt,vxcir) close(50) write(*,*) write(*,'("Info(potplot):")') write(*,'(" 3D Coulomb potential plot written to VCL3D.OUT")') write(*,'(" 3D exchange-correlation potential plot written to VXC3D.OUT")') end select return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/mae.f900000644000000000000000000000013213543334735013711 xustar0030 mtime=1569569245.029641689 30 atime=1569569241.267644092 30 ctime=1569569245.029641689 elk-6.3.2/src/mae.f900000644002504400250440000001006113543334735015756 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine mae use modmain use modmpi use modstore implicit none ! local variables integer i,j,im(2) real(8) em(2),de real(8) v1(3),v2(3),th real(8) a(3,3),b(3,3) ! initialise global variables call init0 ! store original parameters avec_(:,:)=avec(:,:) spinpol_=spinpol spinorb_=spinorb cmagz_=cmagz bfieldc0_(:)=bfieldc0(:) reducebf_=reducebf fsmtype_=fsmtype vkloff_(:)=vkloff(:) ! enable spin-orbit coupling spinorb=.true. ! enforce collinear magnetism in the z-direction cmagz=.true. ! no fixed spin moment calculation: the crystal is rotated instead fsmtype=0 ! if task=28 then start from atomic densities; if task=29 read STATE.OUT if (task.eq.28) then trdstate=.false. else trdstate=.true. end if ! zero k-point offset vkloff(:)=0.d0 ! start with large magnetic field bfieldc0(1:2)=0.d0 bfieldc0(3)=-2.d0 ! reduce the external magnetic field after each s.c. loop reducebf=0.75d0 ! generate the spin moment directions in (theta,phi) coordinates call gentpmae ! open MAE_INFO.OUT if (mp_mpi) then open(71,file='MAE_INFO.OUT',form='FORMATTED') write(71,*) write(71,'("Scale factor of spin-orbit coupling term : ",G18.10)') socscf end if im(:)=1 em(1)=1.d8 em(2)=-1.d8 ! loop over points on sphere do i=1,npmae if (mp_mpi) then write(*,'("Info(mae): fixed spin moment direction ",I6," of ",I6)') i,npmae end if ! rotate lattice vectors instead of moment (thanks to J. Glasbrenner, ! K. Bussmann and I. Mazin) ! first by -phi around the z-axis v1(:)=0.d0 v1(3)=1.d0 th=-tpmae(2,i) call axangrot(v1,th,a) ! then by -theta around the y-axis v1(:)=0.d0 v1(2)=1.d0 th=-tpmae(1,i) call axangrot(v1,th,b) call r3mm(b,a,rotsht) call r3mm(rotsht,avec_,avec) ! find the corresponding moment direction vector call r3minv(rotsht,a) v1(:)=0.d0 v1(3)=1.d0 call r3mv(a,v1,v2) do j=1,3 if (abs(v2(j)).lt.epslat) v2(j)=0.d0 end do ! rotate the spherical cover used for the spherical harmonic transform trotsht=.true. ! run the ground-state calculation call gndstate ! subsequent calculations should read the previous density trdstate=.true. ! make external magnetic field small bfieldc0(3)=-0.01d0 if (mp_mpi) then write(71,*) write(71,'("Fixed spin moment direction point ",I6," of ",I6)') i,npmae write(71,'("Spherical coordinates of direction : ",2G18.10)') tpmae(:,i) write(71,'("Direction vector (Cartesian coordinates) : ",3G18.10)') v2 write(71,'("Calculated total moment magnitude : ",G18.10)') momtotm write(71,'("Total energy : ",G22.12)') engytot flush(71) end if ! check for minimum and maximum total energy if (engytot.lt.em(1)) then em(1)=engytot im(1)=i end if if (engytot.gt.em(2)) then em(2)=engytot im(2)=i end if ! delete the eigenvector files if (mp_mpi) call delevec ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end do ! magnetic anisotropy energy de=em(2)-em(1) if (mp_mpi) then write(71,*) write(71,'("Minimum energy point : ",I6)') im(1) write(71,'("Maximum energy point : ",I6)') im(2) write(71,*) write(71,'("Estimated magnetic anisotropy energy (MAE) : ",G18.10)') de write(71,*) write(71,'("MAE per unit volume : ",G18.10)') de/omega close(71) open(50,file='MAE.OUT',form='FORMATTED') write(50,'(G18.10)') de close(50) open(50,file='MAEPUV.OUT',form='FORMATTED') write(50,'(G18.10)') de/omega close(50) write(*,*) write(*,'("Info(mae):")') write(*,'(" Estimated magnetic anisotropy energy written to MAE.OUT")') write(*,'(" MAE per unit volume written to MAEPUV.OUT")') write(*,*) write(*,'(" Number of fixed spin moment directions used : ",I6)') npmae write(*,*) write(*,'(" Additional information written to MAE_INFO.OUT")') end if ! restore original input parameters avec(:,:)=avec_(:,:) spinpol=spinpol_ spinorb=spinorb_ cmagz=cmagz_ fsmtype=fsmtype_ bfieldc0(:)=bfieldc0_(:) reducebf=reducebf_ vkloff(:)=vkloff_(:) trotsht=.false. return end subroutine elk-6.3.2/src/PaxHeaders.21352/writestate.f900000644000000000000000000000013213543334735015342 xustar0030 mtime=1569569245.033641687 30 atime=1569569241.272644089 30 ctime=1569569245.033641687 elk-6.3.2/src/writestate.f900000644002504400250440000000654113543334735017417 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writestate ! !INTERFACE: subroutine writestate ! !USES: use modmain use moddftu ! !DESCRIPTION: ! Writes the charge density, potentials and other relevant variables to the ! file {\tt STATE.OUT}. Note to developers: changes to the way the variables ! are written should be mirrored in {\tt readstate}. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) !EOP !BOC implicit none ! local variables integer idm,is,ias ! allocatable arrays real(8), allocatable :: rfmt(:,:,:),rvfmt(:,:,:,:),rvfcmt(:,:,:,:) open(40,file='STATE'//trim(filext),form='UNFORMATTED') write(40) version write(40) spinpol write(40) nspecies write(40) lmmaxo write(40) nrmtmax write(40) nrcmtmax do is=1,nspecies write(40) natoms(is) write(40) nrmt(is) write(40) rsp(1:nrmt(is),is) write(40) nrcmt(is) write(40) rcmt(1:nrcmt(is),is) end do write(40) ngridg write(40) ngvec write(40) ndmag write(40) nspinor write(40) fsmtype write(40) ftmtype write(40) dftu write(40) lmmaxdm write(40) xcgrad ! muffin-tin functions are unpacked to maintain backward compatibility allocate(rfmt(lmmaxo,nrmtmax,natmtot)) if (spinpol) then allocate(rvfmt(lmmaxo,nrmtmax,natmtot,ndmag)) allocate(rvfcmt(lmmaxo,nrcmtmax,natmtot,ndmag)) end if ! write the density do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),rhomt(:,ias),rfmt(:,:,ias)) end do write(40) rfmt,rhoir ! write the Coulomb potential do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),vclmt(:,ias),rfmt(:,:,ias)) end do write(40) rfmt,vclir ! write the exchange-correlation potential do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),vxcmt(:,ias),rfmt(:,:,ias)) end do write(40) rfmt,vxcir ! write the Kohn-Sham effective potential do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),vsmt(:,ias),rfmt(:,:,ias)) end do write(40) rfmt,vsir if (spinpol) then ! write the magnetisation, exchange-correlation and effective magnetic fields do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),magmt(:,ias,idm), & rvfmt(:,:,ias,idm)) end do end do write(40) rvfmt,magir do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),bxcmt(:,ias,idm), & rvfmt(:,:,ias,idm)) end do end do write(40) rvfmt,bxcir do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrcmt(is),nrcmti(is),bsmt(:,ias,idm), & rvfcmt(:,:,ias,idm)) end do end do write(40) rvfcmt,bsir ! write fixed spin moment magnetic fields if (fsmtype.ne.0) then write(40) bfsmc write(40) bfsmcmt end if end if ! write the tau-DFT exchange-correlation potential if (xcgrad.eq.4) then do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),wxcmt(:,ias),rfmt(:,:,ias)) end do write(40) rfmt,wxcir end if ! write the potential matrix in each muffin-tin if ((dftu.ne.0).or.(ftmtype.ne.0)) then write(40) vmatmt end if ! write the fixed tensor moment potential matrix if (ftmtype.ne.0) then write(40) vmftm end if close(40) deallocate(rfmt) if (spinpol) deallocate(rvfmt,rvfcmt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/readstate.f900000644000000000000000000000013213543334735015123 xustar0030 mtime=1569569245.038641684 30 atime=1569569241.276644086 30 ctime=1569569245.038641684 elk-6.3.2/src/readstate.f900000644002504400250440000002241213543334735017173 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: readstate ! !INTERFACE: subroutine readstate ! !USES: use modmain use moddftu ! !DESCRIPTION: ! Reads in the charge density and other relevant variables from the file ! {\tt STATE.OUT}. Checks for version and parameter compatibility. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) !EOP !BOC implicit none ! local variables logical spinpol_ integer is,ia,ias,lmmax,lm,ir,jr integer idm,jdm,mapidm(3),ios integer i1,i2,i3,j1,j2,j3,n integer version_(3) integer nspecies_,natoms_,lmmaxo_ integer nrmt_(maxspecies),nrmtmax_ integer nrcmt_(maxspecies),nrcmtmax_ integer ngridg_(3),ngtot_,ngvec_ integer ndmag_,nspinor_,fsmtype_,ftmtype_ integer dftu_,lmmaxdm_,xcgrad_ real(8) t1 ! allocatable arrays integer, allocatable :: mapir(:) real(8), allocatable :: rsp_(:,:),rcmt_(:,:) real(8), allocatable :: rfmt_(:,:,:),rfir_(:) real(8), allocatable :: rvfmt_(:,:,:,:),rvfir_(:,:) real(8), allocatable :: rvfcmt_(:,:,:,:),rfmt(:,:) real(8), allocatable :: bfsmcmt_(:,:),fi(:),fo(:) complex(8), allocatable :: vsig_(:) complex(8), allocatable :: vmatmt_(:,:,:,:,:),vmftm_(:,:,:,:,:) open(40,file='STATE'//trim(filext),form='UNFORMATTED',status='OLD', & iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readstate): error opening ",A)') 'STATE'//trim(filext) write(*,*) stop end if read(40) version_ if (version_(1).lt.2) then write(*,*) write(*,'("Error(readstate): unable to read STATE.OUT from versions earlier & &than 2.0.0")') write(*,*) stop end if if (any(version(:).ne.version_(:))) then write(*,*) write(*,'("Warning(readstate): different versions")') write(*,'(" current : ",I3.3,".",I3.3,".",I3.3)') version write(*,'(" STATE.OUT : ",I3.3,".",I3.3,".",I3.3)') version_ end if read(40) spinpol_ read(40) nspecies_ if (nspecies.ne.nspecies_) then write(*,*) write(*,'("Error(readstate): differing nspecies")') write(*,'(" current : ",I4)') nspecies write(*,'(" STATE.OUT : ",I4)') nspecies_ write(*,*) stop end if read(40) lmmaxo_ lmmax=min(lmmaxo,lmmaxo_) read(40) nrmtmax_ read(40) nrcmtmax_ allocate(rsp_(nrmtmax_,nspecies)) allocate(rcmt_(nrcmtmax_,nspecies)) do is=1,nspecies read(40) natoms_ if (natoms(is).ne.natoms_) then write(*,*) write(*,'("Error(readstate): differing natoms for species ",I4)') is write(*,'(" current : ",I4)') natoms(is) write(*,'(" STATE.OUT : ",I4)') natoms_ write(*,*) stop end if read(40) nrmt_(is) read(40) rsp_(1:nrmt_(is),is) read(40) nrcmt_(is) read(40) rcmt_(1:nrcmt_(is),is) end do read(40) ngridg_ read(40) ngvec_ read(40) ndmag_ if ((spinpol_).and.(ndmag_.ne.1).and.(ndmag_.ne.3)) then write(*,*) write(*,'("Error(readstate): invalid ndmag in STATE.OUT : ",I8)') ndmag_ write(*,*) stop end if read(40) nspinor_ read(40) fsmtype_ if ((version_(1).gt.2).or.(version_(2).ge.3)) then read(40) ftmtype_ else ftmtype_=0 end if read(40) dftu_ read(40) lmmaxdm_ if ((version_(1).gt.5).or.((version_(1).eq.5).and.(version_(2).ge.1))) then read(40) xcgrad_ else xcgrad_=0 end if ngtot_=ngridg_(1)*ngridg_(2)*ngridg_(3) ! map from old interstitial grid to new allocate(mapir(ngtot)) ir=0 do i3=0,ngridg(3)-1 t1=dble(i3*ngridg_(3))/dble(ngridg(3)) j3=modulo(nint(t1),ngridg_(3)) do i2=0,ngridg(2)-1 t1=dble(i2*ngridg_(2))/dble(ngridg(2)) j2=modulo(nint(t1),ngridg_(2)) do i1=0,ngridg(1)-1 t1=dble(i1*ngridg_(1))/dble(ngridg(1)) j1=modulo(nint(t1),ngridg_(1)) ir=ir+1 jr=j3*ngridg_(2)*ngridg_(1)+j2*ngridg_(1)+j1+1 mapir(ir)=jr end do end do end do allocate(rfmt_(lmmaxo_,nrmtmax_,natmtot),rfir_(ngtot_)) allocate(rfmt(lmmaxo,nrmtmax)) n=max(nrmtmax,nrmtmax_) allocate(fi(n),fo(n)) ! read the muffin-tin density read(40) rfmt_,rfir_ ! regrid and pack the muffin-tin function call rgfmt(rhomt) ! regrid the interstitial function rhoir(:)=rfir_(mapir(:)) ! read the Coulomb potential, regrid and pack read(40) rfmt_,rfir_ call rgfmt(vclmt) vclir(:)=rfir_(mapir(:)) ! read the exchange-correlation potential, regrid and pack read(40) rfmt_,rfir_ call rgfmt(vxcmt) vxcir(:)=rfir_(mapir(:)) ! read the Kohn-Sham effective potential, regrid and pack if ((version_(1).gt.2).or.(version_(2).ge.2)) then read(40) rfmt_,rfir_ else allocate(vsig_(ngvec_)) read(40) rfmt_,rfir_,vsig_ deallocate(vsig_) end if call rgfmt(vsmt) vsir(:)=rfir_(mapir(:)) ! read the magnetisation, exchange-correlation and effective magnetic fields if (spinpol_) then ! component map for spin-polarised case mapidm(:)=0 if (ndmag.eq.ndmag_) then do idm=1,ndmag mapidm(idm)=idm end do else mapidm(ndmag)=ndmag_ end if allocate(rvfmt_(lmmaxo_,nrmtmax_,natmtot,ndmag_)) allocate(rvfir_(ngtot_,ndmag_)) allocate(rvfcmt_(lmmaxo_,nrcmtmax_,natmtot,ndmag_)) read(40) rvfmt_,rvfir_ call rgvfmt(magmt) call rgvir(magir) read(40) rvfmt_,rvfir_ call rgvfmt(bxcmt) call rgvir(bxcir) read(40) rvfcmt_,rvfir_ call rgvfcmt(bsmt) call rgvir(bsir) deallocate(rvfmt_,rvfir_,rvfcmt_) ! read fixed spin moment effective fields if (fsmtype_.ne.0) then allocate(bfsmcmt_(3,natmtot)) read(40) bfsmc read(40) bfsmcmt_ if (fsmtype.ne.0) bfsmcmt(:,:)=bfsmcmt_(:,:) ! make sure that the constraining fields are perpendicular to the fixed moments ! for fixed direction calculations (Y. Kvashnin and LN) if (fsmtype.lt.0) then if (ncmag) then call r3vo(momfix,bfsmc) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) call r3vo(mommtfix(:,ia,is),bfsmcmt(:,ias)) end do end do else bfsmc(:)=0.d0 bfsmcmt(:,:)=0.d0 end if end if deallocate(bfsmcmt_) end if end if if (xcgrad.eq.4) then if (xcgrad_.eq.4) then read(40) rfmt_,rfir_ call rgfmt(wxcmt) wxcir(:)=rfir_(mapir(:)) else wxcmt(:,:)=0.d0 wxcir(:)=0.d0 end if call genws end if deallocate(rfmt_,rfir_,rfmt,fi,fo) ! read DFT+U potential matrix in each muffin-tin if (((dftu.ne.0).and.(dftu_.ne.0)).or. & ((ftmtype.ne.0).and.(ftmtype_.ne.0))) then allocate(vmatmt_(lmmaxdm_,nspinor_,lmmaxdm_,nspinor_,natmtot)) read(40) vmatmt_ lmmax=min(lmmaxdm,lmmaxdm_) vmatmt(:,:,:,:,:)=0.d0 if (nspinor.eq.nspinor_) then vmatmt(1:lmmax,:,1:lmmax,:,:)=vmatmt_(1:lmmax,:,1:lmmax,:,:) else if ((nspinor.eq.1).and.(nspinor_.eq.2)) then vmatmt(1:lmmax,1,1:lmmax,1,:)=0.5d0*(vmatmt_(1:lmmax,1,1:lmmax,1,:) & +vmatmt_(1:lmmax,2,1:lmmax,2,:)) else vmatmt(1:lmmax,1,1:lmmax,1,:)=vmatmt_(1:lmmax,1,1:lmmax,1,:) vmatmt(1:lmmax,2,1:lmmax,2,:)=vmatmt_(1:lmmax,1,1:lmmax,1,:) end if deallocate(vmatmt_) end if ! read fixed tensor moment potential matrix elements if ((ftmtype.ne.0).and.(ftmtype_.ne.0)) then allocate(vmftm_(lmmaxdm_,nspinor_,lmmaxdm_,nspinor_,natmtot)) read(40) vmftm_ lmmax=min(lmmaxdm,lmmaxdm_) vmftm_(:,:,:,:,:)=0.d0 if (nspinor.eq.nspinor_) then vmftm(1:lmmax,:,1:lmmax,:,:)=vmftm_(1:lmmax,:,1:lmmax,:,:) else if ((nspinor.eq.1).and.(nspinor_.eq.2)) then vmftm(1:lmmax,1,1:lmmax,1,:)=0.5d0*(vmftm_(1:lmmax,1,1:lmmax,1,:) & +vmftm_(1:lmmax,2,1:lmmax,2,:)) else vmftm(1:lmmax,1,1:lmmax,1,:)=vmftm_(1:lmmax,1,1:lmmax,1,:) vmftm(1:lmmax,2,1:lmmax,2,:)=vmftm_(1:lmmax,1,1:lmmax,1,:) end if deallocate(vmftm_) end if close(40) return contains subroutine rgfmt(rfmtp) implicit none ! arguments real(8), intent(out) :: rfmtp(npmtmax,natmtot) do ias=1,natmtot is=idxis(ias) ! regrid the muffin-tin function do lm=1,lmmax fi(1:nrmt_(is))=rfmt_(lm,1:nrmt_(is),ias) call rfinterp(nrmt_(is),rsp_(:,is),fi,nrmt(is),rsp(:,is),fo) rfmt(lm,1:nrmt(is))=fo(1:nrmt(is)) end do rfmt(lmmax+1:lmmaxo,1:nrmt(is))=0.d0 ! pack the muffin-tin function call rfmtpack(.true.,nrmt(is),nrmti(is),rfmt,rfmtp(:,ias)) end do return end subroutine subroutine rgvfmt(rvfmt) implicit none ! arguments real(8), intent(out) :: rvfmt(npmtmax,natmtot,ndmag) do idm=1,ndmag jdm=mapidm(idm) if (jdm.eq.0) then rvfmt(:,:,idm)=0.d0 cycle end if do ias=1,natmtot is=idxis(ias) do lm=1,lmmax fi(1:nrmt_(is))=rvfmt_(lm,1:nrmt_(is),ias,jdm) call rfinterp(nrmt_(is),rsp_(:,is),fi,nrmt(is),rsp(:,is),fo) rfmt(lm,1:nrmt(is))=fo(1:nrmt(is)) end do rfmt(lmmax+1:lmmaxo,1:nrmt(is))=0.d0 call rfmtpack(.true.,nrmt(is),nrmti(is),rfmt,rvfmt(:,ias,idm)) end do end do return end subroutine subroutine rgvfcmt(rvfcmt) implicit none ! arguments real(8), intent(out) :: rvfcmt(npcmtmax,natmtot,ndmag) do idm=1,ndmag jdm=mapidm(idm) if (jdm.eq.0) then rvfcmt(:,:,idm)=0.d0 cycle end if do ias=1,natmtot is=idxis(ias) do lm=1,lmmax fi(1:nrcmt_(is))=rvfcmt_(lm,1:nrcmt_(is),ias,jdm) call rfinterp(nrcmt_(is),rcmt_(:,is),fi,nrcmt(is),rcmt(:,is),fo) rfmt(lm,1:nrcmt(is))=fo(1:nrcmt(is)) end do rfmt(lmmax+1:lmmaxo,1:nrcmt(is))=0.d0 call rfmtpack(.true.,nrcmt(is),nrcmti(is),rfmt,rvfcmt(:,ias,idm)) end do end do return end subroutine subroutine rgvir(rvfir) implicit none ! arguments real(8), intent(out) :: rvfir(ngtot,ndmag) do idm=1,ndmag jdm=mapidm(idm) if (jdm.eq.0) then rvfir(:,idm)=0.d0 cycle end if rvfir(:,idm)=rvfir_(mapir(:),jdm) end do return end subroutine end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rotaxang.f900000644000000000000000000000013213543334735014772 xustar0030 mtime=1569569245.042641681 30 atime=1569569241.281644083 30 ctime=1569569245.042641681 elk-6.3.2/src/rotaxang.f900000644002504400250440000000627213543334735017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rotaxang ! !INTERFACE: subroutine rotaxang(eps,rot,det,v,th) ! !INPUT/OUTPUT PARAMETERS: ! eps : zero vector tolerance (in,real) ! rot : rotation matrix (in,real(3,3)) ! det : matrix determinant (out,real) ! v : normalised axis vector (out,real(3)) ! th : rotation angle (out,real) ! !DESCRIPTION: ! Given a rotation matrix ! $$ R(\hat{\bf v},\theta)= ! \left(\begin{matrix} ! \cos\theta+x^2(1-\cos\theta) & ! xy(1-\cos\theta)+z\sin\theta & ! xz(1-\cos\theta)-y\sin\theta \\ ! xy(1-\cos\theta)-z\sin\theta & ! \cos\theta+y^2(1-\cos\theta) & ! yz(1-\cos\theta)+x\sin\theta \\ ! xz(1-\cos\theta)+y\sin\theta & ! yz(1-\cos\theta)-x\sin\theta & ! \cos\theta+z^2(1-\cos\theta) ! \end{matrix}\right), $$ ! this routine determines the axis of rotation $\hat{\bf v}$ and the angle of ! rotation $\theta$. If $R$ corresponds to an improper rotation then only the ! proper part is used and {\tt det} is set to $-1$. The rotation convention ! follows the `right-hand rule'. ! ! !REVISION HISTORY: ! Created December 2006 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: eps real(8), intent(in) :: rot(3,3) real(8), intent(out) :: det real(8), intent(out) :: v(3),th ! local variables real(8), parameter :: pi=3.1415926535897932385d0 real(8) rotp(3,3),t1,t2 ! find the determinant det=rot(1,2)*rot(2,3)*rot(3,1)-rot(1,3)*rot(2,2)*rot(3,1) & +rot(1,3)*rot(2,1)*rot(3,2)-rot(1,1)*rot(2,3)*rot(3,2) & +rot(1,1)*rot(2,2)*rot(3,3)-rot(1,2)*rot(2,1)*rot(3,3) if (abs(det-1.d0).lt.eps) then det=1.d0 else if (abs(det+1.d0).lt.eps) then det=-1.d0 else goto 10 end if ! proper rotation matrix rotp(:,:)=det*rot(:,:) v(1)=(rotp(2,3)-rotp(3,2))/2.d0 v(2)=(rotp(3,1)-rotp(1,3))/2.d0 v(3)=(rotp(1,2)-rotp(2,1))/2.d0 t1=sqrt(v(1)**2+v(2)**2+v(3)**2) t2=(rotp(1,1)+rotp(2,2)+rotp(3,3)-1.d0)/2.d0 if (abs(abs(t2)-1.d0).gt.eps) then ! theta not equal to 0 or pi th=-atan2(t1,t2) v(:)=v(:)/t1 else ! special case of sin(th)=0 if (t2.gt.0.d0) then ! zero angle: axis arbitrary th=0.d0 v(:)=1.d0/sqrt(3.d0) else ! rotation by pi th=pi if ((rotp(1,1).ge.rotp(2,2)).and.(rotp(1,1).ge.rotp(3,3))) then if (rotp(1,1).lt.(-1.d0+eps)) goto 10 v(1)=sqrt(abs(rotp(1,1)+1.d0)/2.d0) v(2)=(rotp(2,1)+rotp(1,2))/(4.d0*v(1)) v(3)=(rotp(3,1)+rotp(1,3))/(4.d0*v(1)) else if ((rotp(2,2).ge.rotp(1,1)).and.(rotp(2,2).ge.rotp(3,3))) then if (rotp(2,2).lt.(-1.d0+eps)) goto 10 v(2)=sqrt(abs(rotp(2,2)+1.d0)/2.d0) v(3)=(rotp(3,2)+rotp(2,3))/(4.d0*v(2)) v(1)=(rotp(1,2)+rotp(2,1))/(4.d0*v(2)) else if (rotp(3,3).lt.(-1.d0+eps)) goto 10 v(3)=sqrt(abs(rotp(3,3)+1.d0)/2.d0) v(1)=(rotp(1,3)+rotp(3,1))/(4.d0*v(3)) v(2)=(rotp(2,3)+rotp(3,2))/(4.d0*v(3)) end if end if end if return 10 continue write(*,*) write(*,'("Error(rotaxang): invalid rotation matrix:")') write(*,'(3G18.10)') rot(1,:) write(*,'(3G18.10)') rot(2,:) write(*,'(3G18.10)') rot(3,:) write(*,*) stop end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/axangrot.f900000644000000000000000000000013213543334735014772 xustar0030 mtime=1569569245.046641678 30 atime=1569569241.285644081 30 ctime=1569569245.046641678 elk-6.3.2/src/axangrot.f900000644002504400250440000000252613543334735017046 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: axangrot ! !INTERFACE: subroutine axangrot(v,th,rot) ! !INPUT/OUTPUT PARAMETERS: ! v : axis vector (in,real) ! th : rotation angle (in,real) ! rot : rotation matrix (out,real(3,3)) ! !DESCRIPTION: ! Determines the $3\times 3$ rotation matrix of a rotation specified by an ! axis-angle pair following the `right-hand rule'. The axis vector need not be ! normalised. See {\tt rotaxang} for details. ! ! !REVISION HISTORY: ! Created February 2014 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: v(3),th real(8), intent(out) :: rot(3,3) ! local variables real(8) x,y,z,x2,y2,z2 real(8) xy,xz,yz,cs,sn,t1 x=v(1); y=v(2); z=v(3) t1=sqrt(x**2+y**2+z**2) ! if the axis has zero length then assume the identity if (t1.lt.1.d-14) then rot(:,:)=0.d0 rot(1,1)=1.d0 rot(2,2)=1.d0 rot(3,3)=1.d0 return end if t1=1.d0/t1 x=x*t1; y=y*t1; z=z*t1 x2=x**2; y2=y**2; z2=z**2 xy=x*y; xz=x*z; yz=y*z cs=cos(th); sn=sin(th) t1=1.d0-cs rot(1,1)=cs+x2*t1 rot(2,1)=xy*t1+z*sn rot(3,1)=xz*t1-y*sn rot(1,2)=xy*t1-z*sn rot(2,2)=cs+y2*t1 rot(3,2)=yz*t1+x*sn rot(1,3)=xz*t1+y*sn rot(2,3)=yz*t1-x*sn rot(3,3)=cs+z2*t1 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/dmatls.f900000644000000000000000000000013213543334735014433 xustar0030 mtime=1569569245.051641675 30 atime=1569569241.290644077 30 ctime=1569569245.051641675 elk-6.3.2/src/dmatls.f900000644002504400250440000000163013543334735016502 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dmatls(dmat,xl,xs) use modmain implicit none ! arguments complex(8), intent(in) :: dmat(lmmaxo,nspinor,lmmaxo,nspinor) real(8), intent(out) :: xl(3),xs(3) ! local variables integer ispn,lm ! automatic arrays complex(8) zlflm(lmmaxo,3) ! compute tr(LD) xl(:)=0.d0 do ispn=1,nspinor do lm=1,lmmaxo call lopzflm(lmaxo,dmat(:,ispn,lm,ispn),lmmaxo,zlflm) xl(:)=xl(:)+dble(zlflm(lm,:)) end do end do ! compute tr(sigma D) xs(:)=0.d0 if (spinpol) then do lm=1,lmmaxo xs(1)=xs(1)+dble(dmat(lm,2,lm,1)+dmat(lm,1,lm,2)) xs(2)=xs(2)+dble(-zi*dmat(lm,2,lm,1)+zi*dmat(lm,1,lm,2)) xs(3)=xs(3)+dble(dmat(lm,1,lm,1)-dmat(lm,2,lm,2)) end do ! S = 1/2 sigma xs(:)=0.5d0*xs(:) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendmat.f900000644000000000000000000000013213543334735014566 xustar0030 mtime=1569569245.055641673 30 atime=1569569241.294644075 30 ctime=1569569245.055641673 elk-6.3.2/src/gendmat.f900000644002504400250440000000433613543334735016643 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendmat(tspndg,tlmdg,lmin,lmax,ld,dmat) use modmain use modmpi use modomp implicit none ! arguments logical, intent(in) :: tspndg,tlmdg integer, intent(in) :: lmin,lmax,ld complex(8), intent(out) :: dmat(ld,nspinor,ld,nspinor,natmtot) ! local variables integer ik,ispn,ist integer ias,n,nthd real(8) wo ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: dmatk(:,:,:,:,:) ! zero the density matrix dmat(:,:,:,:,:)=0.d0 ! begin parallel loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(apwalm,evecfv,evecsv,dmatk) & !$OMP PRIVATE(ispn,ias,ist,wo) & !$OMP NUM_THREADS(nthd) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) allocate(dmatk(ld,nspinor,ld,nspinor,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! find the matching coefficients do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! begin loop over atoms and species do ias=1,natmtot call gendmatk(tspndg,tlmdg,lmin,lmax,ias,ngk(:,ik),apwalm,evecfv,evecsv, & ld,dmatk) do ist=1,nstsv wo=wkpt(ik)*occsv(ist,ik) if (wo.lt.epsocc) cycle !$OMP CRITICAL(gendmat_) dmat(:,:,:,:,ias)=dmat(:,:,:,:,ias)+wo*dmatk(:,:,:,:,ist) !$OMP END CRITICAL(gendmat_) end do end do end do !$OMP END DO deallocate(apwalm,evecfv,evecsv,dmatk) !$OMP END PARALLEL call freethd(nthd) ! add density matrices from each process and redistribute if (np_mpi.gt.1) then n=((ld*nspinor)**2)*natmtot call mpi_allreduce(mpi_in_place,dmat,n,mpi_double_complex,mpi_sum,mpicom, & ierror) end if ! symmetrise the density matrix call symdmat(lmax,ld,dmat) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/numlist.f900000644000000000000000000000013013543334735014640 xustar0029 mtime=1569569245.05964167 30 atime=1569569241.300644071 29 ctime=1569569245.05964167 elk-6.3.2/src/numlist.f900000644002504400250440000000157413543334735016720 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin, ! Lars Nordstrom and J. K. Dewhurst. This file is distributed under the terms of ! the GNU General Public License. See the file COPYING for license details. subroutine numlist(str,n,list) implicit none ! arguments character(256), intent(in) :: str integer, intent(inout) :: n integer, intent(out) :: list(n) ! local variables integer i0,i1,i,j,m,ios ! automatic arrays integer l(n) i=0 i0=1 do m=index(str(i0:),'-') if (m.eq.0) then i1=256 else i1=i0+m-2 end if l(:)=0 read(str(i0:i1),*,iostat=ios) l if (i.gt.0) then do j=list(i)+1,l(1)-1 if (i.eq.n) goto 10 i=i+1 list(i)=j end do end if do j=1,n if (l(j).eq.0) exit if (i.eq.n) goto 10 i=i+1 list(i)=l(j) end do if (m.eq.0) exit i0=i0+m end do 10 continue n=i return end subroutine elk-6.3.2/src/PaxHeaders.21352/sbesseldm.f900000644000000000000000000000013213543334735015130 xustar0030 mtime=1569569245.064641667 30 atime=1569569241.304644068 30 ctime=1569569245.064641667 elk-6.3.2/src/sbesseldm.f900000644002504400250440000000610613543334735017202 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sbesseldm ! !INTERFACE: subroutine sbesseldm(m,lmax,x,djl) ! !INPUT/OUTPUT PARAMETERS: ! m : order of derivatve (in,integer) ! lmax : maximum order of Bessel function (in,integer) ! x : real argument (in,real) ! djl : array of returned values (out,real(0:lmax)) ! !DESCRIPTION: ! Computes the $m$th derivative of the spherical Bessel function of the first ! kind, $j_l(x)$, for argument $x$ and $l=0,1,\ldots,l_{\rm max}$. For ! $x\ge 1$ this is done by repeatedly using the relations ! \begin{align*} ! \frac{d}{dx}j_l(x)&=\frac{l}{x}j_l(x)-j_{l+1}(x) \\ ! j_{l+1}(x)&=\frac{2l+1}{x}j_l(x)-j_{l-1}(x). ! \end{align*} ! While for $x<1$ the series expansion of the Bessel function is used ! $$ \frac{d^m}{dx^m}j_l(x)=\sum_{i=0}^{\infty} ! \frac{(2i+l)!}{(-2)^ii!(2i+l-m)!(2i+2l+1)!!}x^{2i+l-m}. $$ ! This procedure is numerically stable and accurate to near machine precision ! for $l\le 30$ and $m\le 6$. ! ! !REVISION HISTORY: ! Created March 2003 (JKD) ! Modified to return an array of values, October 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: m,lmax real(8), intent(in) :: x real(8), intent(out) :: djl(0:lmax) ! local variables integer, parameter :: maxm=6,maxns=20 integer i,j,l,i0 real(8) t1,sum,x2 integer a(0:maxm+1),a1(0:maxm+1) integer b(0:maxm+1),b1(0:maxm+1) ! automatic arrays real(8) jl(0:lmax+1) ! external functions real(8) factnm,factr external factnm,factr if ((m.lt.0).or.(m.gt.maxm)) then write(*,*) write(*,'("Error(sbesseldm): m out of range : ",I8)') m write(*,*) stop end if if ((lmax.lt.0).or.(lmax.gt.30)) then write(*,*) write(*,'("Error(sbesseldm): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x.lt.0.d0).or.(x.gt.1.d5)) then write(*,*) write(*,'("Error(sbesseldm): x out of range : ",G18.10)') x write(*,*) stop end if if (m.eq.0) then call sbessel(lmax,x,djl) return end if if (x.gt.1.d0) then call sbessel(lmax+1,x,jl) do l=0,lmax a(1:m+1)=0 a(0)=1 a1(0:m+1)=0 do i=1,m b(0)=0 b1(0)=0 do j=0,i b(j+1)=a(j)*(l-j) b1(j+1)=-a1(j)*(j+l+2) end do do j=0,i b1(j)=b1(j)-a(j) b(j)=b(j)+a1(j) end do a(0:i+1)=b(0:i+1) a1(0:i+1)=b1(0:i+1) end do t1=1.d0 sum=dble(a(0))*jl(l)+dble(a1(0))*jl(l+1) do i=1,m+1 t1=t1*x sum=sum+(dble(a(i))*jl(l)+dble(a1(i))*jl(l+1))/t1 end do djl(l)=sum end do else x2=x**2 do l=0,lmax i0=max((m-l+1)/2,0) j=2*i0+l-m if (j.eq.0) then t1=1.d0 else t1=x**j end if t1=factr(j+m,j)*t1/(factnm(i0,1)*factnm(j+l+m+1,2)*dble((-2)**i0)) sum=t1 do i=i0+1,maxns j=2*i+l t1=-t1*dble((j-1)*j)*x2/dble((j-l)*(j-m-1)*(j-m)*(j+l+1)) if (abs(t1).le.1.d-40) goto 10 sum=sum+t1 end do 10 continue djl(l)=sum end do end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genvchi0.f900000644000000000000000000000013213543334735014652 xustar0030 mtime=1569569245.068641664 30 atime=1569569241.309644065 30 ctime=1569569245.068641664 elk-6.3.2/src/genvchi0.f900000644002504400250440000001237013543334735016724 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvchi0(t3hw,ik,lock,scsr,vqpl,gclgq,jlgqr,ylmgq,sfacgq,nm,vchi0) use modmain use modomp implicit none ! local variables logical, intent(in) :: t3hw integer, intent(in) :: ik integer(8), intent(in) :: lock(nwrf) real(8), intent(in) :: scsr,vqpl(3),gclgq(ngrf) real(8), intent(in) :: jlgqr(njcmax,nspecies,ngrf) complex(8), intent(in) :: ylmgq(lmmaxo,ngrf) complex(8), intent(in) :: sfacgq(ngrf,natmtot) integer, intent(in) :: nm complex(8), intent(inout) :: vchi0(nm,nm,nwrf) ! local variables logical tq0 integer isym,jk,jkq,iw integer nst,nstq,ist,jst,kst,lst integer nm2,ig,jg,i,j,nthd real(8) vkql(3),eij,t1,t2 complex(8) a(3,3),z1 ! automatic arrays integer idx(nstsv),idxq(nstsv) integer ngp(nspnfv),ngpq(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:),igpqig(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(8), allocatable :: wfmtq(:,:,:,:),wfirq(:,:,:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:),zrhoig(:) complex(8), allocatable :: pmat(:,:,:),zw(:),b(:,:) ! check if q=0 tq0=.false. if (sum(abs(vqpl(:))).lt.epslat) tq0=.true. ! k+q-vector in lattice coordinates vkql(:)=vkl(:,ik)+vqpl(:) ! equivalent reduced k-points for k and k+q jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) call findkpt(vkql,isym,jkq) ! count and index states at k and k+q in energy window nst=0 do ist=1,nstsv if (abs(evalsv(ist,jk)-efermi).lt.emaxrf) then nst=nst+1 idx(nst)=ist end if end do nstq=0 do jst=1,nstsv if (abs(evalsv(jst,jkq)-efermi).lt.emaxrf) then nstq=nstq+1 idxq(nstq)=jst end if end do ! generate the wavefunctions for all states at k and k+q in energy window allocate(igpig(ngkmax,nspnfv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfir(ngtc,nspinor,nst)) call genwfsvp(.false.,.false.,nst,idx,ngdc,igfc,vkl(:,ik),ngp,igpig,wfmt,ngtc, & wfir) deallocate(igpig) allocate(igpqig(ngkmax,nspnfv)) allocate(wfmtq(npcmtmax,natmtot,nspinor,nstq),wfirq(ngtc,nspinor,nstq)) call genwfsvp(.false.,.false.,nstq,idxq,ngdc,igfc,vkql,ngpq,igpqig,wfmtq,ngtc, & wfirq) deallocate(igpqig) ! read the momentum matrix elements from file for q=0 if (tq0) then allocate(pmat(nstsv,nstsv,3)) call getpmat(vkl(:,ik),pmat) ! divide by unit cell volume t1=1.d0/omega pmat(:,:,:)=t1*pmat(:,:,:) end if nm2=nm**2 call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,zrhoig,zw,b) & !$OMP PRIVATE(jst,kst,lst,t1,t2,eij) & !$OMP PRIVATE(iw,ig,jg,z1,i,j,a) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) allocate(zrhoig(ngrf),zw(nwrf)) if (tq0.and.t3hw) then allocate(b(-1:ngrf,-1:ngrf)) else allocate(b(ngrf,ngrf)) end if !$OMP DO do ist=1,nst kst=idx(ist) do jst=1,nstq lst=idxq(jst) t1=wkptnr*omega*(occsv(kst,jk)-occsv(lst,jkq)) if (abs(t1).lt.1.d-8) cycle eij=evalsv(kst,jk)-evalsv(lst,jkq) ! scissor operator if (abs(scsr).gt.1.d-8) then t2=eij if (eij.gt.0.d0) then eij=eij+scsr else eij=eij-scsr end if t2=eij/t2 ! scale the momentum matrix elements for q=0 if (tq0) pmat(kst,lst,:)=t2*pmat(kst,lst,:) end if ! frequency-dependent part in response function formula for all frequencies do iw=1,nwrf zw(iw)=t1/(eij+wrf(iw)) end do ! compute the complex density in G+q-space call genzrho(.true.,.true.,ngtc,wfmt(:,:,:,ist),wfir(:,:,ist), & wfmtq(:,:,:,jst),wfirq(:,:,jst),zrhomt,zrhoir) call zftzf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,zrhomt,zrhoir,zrhoig) ! Hermitian part of body do jg=1,ngrf do ig=1,jg-1 b(ig,jg)=conjg(b(jg,ig)) end do z1=gclgq(jg)*conjg(zrhoig(jg)) do ig=jg,ngrf b(ig,jg)=gclgq(ig)*zrhoig(ig)*z1 end do end do ! case of q=0 if (tq0) then if (t3hw) then b(-1:1,-1:1)=0.d0 ! calculate 3 x ngrf wings of matrix t1=-sqrt(fourpi)/eij do i=-1,1 z1=t1*pmat(kst,lst,i+2) b(i,2:)=z1*conjg(zrhoig(2:))*gclgq(2:) b(2:,i)=conjg(b(i,2:)) end do else ! use trace of 3 x 3 head of matrix t1=sum(dble(pmat(kst,lst,:))**2+aimag(pmat(kst,lst,:))**2)/3.d0 b(1,1)=(fourpi/eij**2)*t1 ! wings of matrix t1=-sqrt(fourpi)/eij z1=(t1/3.d0)*(pmat(kst,lst,1)+pmat(kst,lst,2)+pmat(kst,lst,3)) b(1,2:)=z1*conjg(zrhoig(2:))*gclgq(2:) b(2:,1)=conjg(b(1,2:)) end if end if ! add to body of response function do iw=1,nwrf call omp_set_lock(lock(iw)) call zaxpy(nm2,zw(iw),b,1,vchi0(1,1,iw),1) call omp_unset_lock(lock(iw)) end do ! calculate 3 x 3 head if (tq0.and.t3hw) then t1=-fourpi/eij zw(:)=zw(:)/wrf(:) do j=1,3 do i=1,3 a(i,j)=t1*pmat(kst,lst,i)*conjg(pmat(kst,lst,j)) end do end do do iw=1,nwrf call omp_set_lock(lock(iw)) vchi0(1:3,1:3,iw)=vchi0(1:3,1:3,iw)+a(1:3,1:3)*zw(iw) call omp_unset_lock(lock(iw)) end do end if ! end loop over jst end do ! end loop over ist end do !$OMP END DO deallocate(zrhomt,zrhoir,zrhoig,zw,b) !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt,wfir,wfmtq,wfirq) if (tq0) deallocate(pmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genspchi0.f900000644000000000000000000000013213543334735015027 xustar0030 mtime=1569569245.077641659 30 atime=1569569241.313644063 30 ctime=1569569245.077641659 elk-6.3.2/src/genspchi0.f900000644002504400250440000001564413543334735017110 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genspchi0 ! !INTERFACE: subroutine genspchi0(ik,lock,scsr,vqpl,jlgqr,ylmgq,sfacgq,chi0) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! ik : k-point from non-reduced set (in,integer) ! lock : OpenMP locks for frequency index of chi0 (in,integer(nwrf)) ! scsr : scissor correction (in,real) ! vqpl : input q-point in lattice coordinates (in,real(3)) ! jlgqr : spherical Bessel functions evaluated on the coarse radial mesh for ! all species and G+q-vectors (in,real(njcmax,nspecies,ngrf)) ! ylmgq : spherical harmonics of the G+q-vectors (in,complex(lmmaxo,ngrf)) ! sfacgq : structure factors of G+q-vectors (in,complex(ngrf,natmtot)) ! chi0 : spin-dependent Kohn-Sham response function in G-space ! (out,complex(ngrf,4,ngrf,4,nwrf)) ! !DESCRIPTION: ! Computes the spin-dependent Kohn-Sham response function: ! \begin{align*} ! \chi_{\alpha\beta,\alpha'\beta'}({\bf r},{\bf r}',\omega) ! & \equiv\frac{\delta\rho_{\alpha\beta}({\bf r},\omega)} ! {\delta v_{\alpha'\beta'}({\bf r}',\omega)} \\ ! & =\frac{1}{N_k}\sum_{i{\bf k},j{\bf k}'}(f_{i{\bf k}}-f_{j{\bf k}'}) ! \frac{\langle i{\bf k}|\hat{\rho}_{\beta\alpha}({\bf r})|j{\bf k}'\rangle ! \langle j{\bf k}'|\hat{\rho}_{\alpha'\beta'}({\bf r}')|i{\bf k}\rangle} ! {w+(\varepsilon_{i{\bf k}}-\varepsilon_{j{\bf k}'})+i\eta}, ! \end{align*} ! where $\alpha$ and $\beta$ are spin-coordinates, $N_k$ is the number of ! $k$-points, $f_{i{\bf k}}$ are the occupancies, $v$ is the Kohn-Sham ! potential and $\hat{\rho}$ is the spin-density operator. With translational ! symmetry in mind, we adopt the following convention for its Fourier ! transform: ! $$ \chi_{\alpha\beta,\alpha'\beta'}({\bf G},{\bf G}',{\bf q},\omega)= ! \frac{1}{\Omega}\int d^3r\,d^3r'\,e^{-i({\bf G}+{\bf q})\cdot{\bf r}} ! e^{i({\bf G}'+{\bf q})\cdot{\bf r}'} ! \chi_{\alpha\beta,\alpha'\beta'}({\bf r},{\bf r}',\omega). $$ ! Let ! $$ Z_{i{\bf k},j{\bf k}+{\bf q}}^{\alpha\beta}({\bf G})\equiv ! \int d^3r\,e^{i({\bf G}+{\bf q})\cdot{\bf r}} ! \varphi_{j{\bf k}+{\bf q},\alpha}^*({\bf r}) ! \varphi_{i{\bf k},\beta}({\bf r}) $$ ! then the response function in $G$-space can be written ! $$ \chi_{\alpha\beta,\alpha'\beta'}({\bf G},{\bf G}',{\bf q},\omega)= ! \frac{1}{N_k\Omega}\sum_{i{\bf k},j{\bf k}+{\bf q}} ! (f_{i{\bf k}}-f_{j{\bf k}}) ! \frac{\left[Z_{i{\bf k},j{\bf k}+{\bf q}}^{\alpha\beta}({\bf G})\right]^* ! Z_{i{\bf k},j{\bf k}+{\bf q}}^{\alpha'\beta'}({\bf G}')} ! {w+(\varepsilon_{i{\bf k}}-\varepsilon_{j{\bf k}+{\bf q}})+i\eta}. $$ ! ! !REVISION HISTORY: ! Created March 2012 (SS and JKD) !EOP !BOC implicit none ! local variables integer, intent(in) :: ik integer(8), intent(in) :: lock(nwrf) real(8), intent(in) :: scsr,vqpl(3),jlgqr(njcmax,nspecies,ngrf) complex(8), intent(in) :: ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot) complex(8), intent(inout) :: chi0(ngrf,4,ngrf,4,nwrf) ! local variables logical tz(4) integer isym,jk,jkq,iw integer nst,nstq,ist,jst,kst,lst integer ig,jg,a,b,i,j,nthd real(8) vkql(3),eij,t1 complex(8) z1 ! automatic arrays integer idx(nstsv),idxq(nstsv) integer ngp(nspnfv),ngpq(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:),igpqig(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(8), allocatable :: wfmtq(:,:,:,:),wfirq(:,:,:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:),zrhoig(:,:) complex(8), allocatable :: zw(:),c(:,:,:,:) if (.not.spinpol) then write(*,*) write(*,'("Error(genspchi0): spin-unpolarised calculation")') write(*,*) stop end if ! k+q-vector in lattice coordinates vkql(:)=vkl(:,ik)+vqpl(:) ! equivalent reduced k-points for k and k+q jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) call findkpt(vkql,isym,jkq) ! count and index states at k and k+q in energy window nst=0 do ist=1,nstsv if (abs(evalsv(ist,jk)-efermi).lt.emaxrf) then nst=nst+1 idx(nst)=ist end if end do nstq=0 do jst=1,nstsv if (abs(evalsv(jst,jkq)-efermi).lt.emaxrf) then nstq=nstq+1 idxq(nstq)=jst end if end do ! generate the wavefunctions for all states at k and k+q in energy window allocate(igpig(ngkmax,nspnfv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfir(ngtc,nspinor,nst)) call genwfsvp(.false.,.false.,nst,idx,ngdc,igfc,vkl(:,ik),ngp,igpig,wfmt,ngtc, & wfir) deallocate(igpig) allocate(igpqig(ngkmax,nspnfv)) allocate(wfmtq(npcmtmax,natmtot,nspinor,nstq),wfirq(ngtc,nspinor,nstq)) call genwfsvp(.false.,.false.,nstq,idxq,ngdc,igfc,vkql,ngpq,igpqig,wfmtq,ngtc, & wfirq) deallocate(igpqig) call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zrhoir,zrhoig,zw,c) & !$OMP PRIVATE(jst,kst,lst,t1,eij,iw,i,j) & !$OMP PRIVATE(a,b,tz,ig,jg,z1) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) allocate(zrhoig(ngrf,4),zw(nwrf),c(ngrf,4,ngrf,4)) !$OMP DO do ist=1,nst kst=idx(ist) do jst=1,nstq lst=idxq(jst) t1=wkptnr*omega*(occsv(kst,jk)-occsv(lst,jkq)) if (abs(t1).lt.1.d-8) cycle eij=evalsv(kst,jk)-evalsv(lst,jkq) ! scissor operator if (abs(scsr).gt.1.d-8) then if (eij.gt.0.d0) then eij=eij+scsr else eij=eij-scsr end if end if ! frequency-dependent part in response function formula for all frequencies do iw=1,nwrf zw(iw)=t1/(eij+wrf(iw)) end do ! compute the complex density in G+q-space i=0 do a=1,2 do b=1,2 i=i+1 ! find which contributions are zero for collinear case tz(i)=.false. if (.not.ncmag) then if (((a.eq.1).and.(kst.gt.nstfv)).or. & ((a.eq.2).and.(kst.le.nstfv)).or. & ((b.eq.1).and.(lst.gt.nstfv)).or. & ((b.eq.2).and.(lst.le.nstfv))) then tz(i)=.true. cycle end if end if call genzrho(.true.,.false.,ngtc,wfmt(:,:,a,ist),wfir(:,a,ist), & wfmtq(:,:,b,jst),wfirq(:,b,jst),zrhomt,zrhoir) call zftzf(ngrf,jlgqr,ylmgq,ngrf,sfacgq,zrhomt,zrhoir,zrhoig(:,i)) end do end do ! Hermitian part of matrix do j=1,4 if (tz(j)) cycle do jg=1,ngrf z1=conjg(zrhoig(jg,j)) do i=1,4 if (tz(i)) cycle do ig=1,ngrf c(ig,i,jg,j)=zrhoig(ig,i)*z1 end do end do end do end do do iw=1,nwrf z1=zw(iw) call omp_set_lock(lock(iw)) do j=1,4 if (tz(j)) cycle do jg=1,ngrf do i=1,4 if (tz(i)) cycle call zaxpy(ngrf,z1,c(:,i,jg,j),1,chi0(:,i,jg,j,iw),1) end do end do end do call omp_unset_lock(lock(iw)) end do ! end loop over jst end do ! end loop over ist end do !$OMP END DO deallocate(zrhomt,zrhoir,zrhoig,zw,c) !$OMP END PARALLEL call freethd(nthd) deallocate(wfmt,wfmtq,wfir,wfirq) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/vclcore.f900000644000000000000000000000013113543334735014603 xustar0030 mtime=1569569245.081641656 29 atime=1569569241.31864406 30 ctime=1569569245.081641656 elk-6.3.2/src/vclcore.f900000644002504400250440000000564613543334735016666 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine vclcore(wfmt,vmat) use modmain use modomp implicit none ! arguments complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) complex(8), intent(inout) :: vmat(nstsv,nstsv) ! local variables integer ist1,ist2,ist3 integer is,ia,ias,m,nthd integer nrc,nrci,npc complex(8) z1 ! allocatable arrays complex(8), allocatable :: zrhomt(:,:),wfcr(:,:),zfmt(:) ! external functions complex(8) zfmtinp external zfmtinp allocate(zrhomt(npcmtmax,nstsv),wfcr(npcmtmax,2)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do ist3=1,nstsp(is) if (spcore(ist3,is)) then do m=-ksp(ist3,is),ksp(ist3,is)-1 ! generate the core wavefunction in spherical coordinates (pass in m-1/2) call wavefcr(.false.,lradstp,is,ia,ist3,m,npcmtmax,wfcr) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npcmtmax)) !$OMP DO do ist1=1,nstsv ! calculate the complex overlap density in spherical harmonics if (spinpol) then call zrho2(npc,wfcr,wfcr(:,2),wfmt(:,ias,1,ist1), & wfmt(:,ias,2,ist1),zfmt) else call zrho1(npc,wfcr,wfmt(:,ias,1,ist1),zfmt) end if call zfsht(nrc,nrci,zfmt,zrhomt(:,ist1)) end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt,ist1,z1) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npcmtmax)) !$OMP DO do ist2=1,nstsv call zpotclmt(nrc,nrci,nrcmtmax,rlcmt(:,:,is),wprcmt(:,:,is), & zrhomt(:,ist2),zfmt) do ist1=1,ist2 z1=zfmtinp(nrc,nrci,wrcmt(:,is),zrhomt(:,ist1),zfmt) vmat(ist1,ist2)=vmat(ist1,ist2)-z1 end do end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) end do end if end do end do end do ! set the lower triangular part of the matrix do ist1=1,nstsv do ist2=1,ist1-1 vmat(ist1,ist2)=conjg(vmat(ist2,ist1)) end do end do ! scale the Coulomb matrix elements in the case of a hybrid functional if (hybrid) vmat(:,:)=hybridc*vmat(:,:) deallocate(zrhomt,wfcr) return contains subroutine zrho1(n,x,y,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x(n),y(n) complex(8), intent(out) :: z(n) z(:)=conjg(x(:))*y(:) return end subroutine subroutine zrho2(n,x1,x2,y1,y2,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x1(n),x2(n),y1(n),y2(n) complex(8), intent(out) :: z(n) z(:)=conjg(x1(:))*y1(:)+conjg(x2(:))*y2(:) return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlxbse.f900000644000000000000000000000013213543334735014611 xustar0030 mtime=1569569245.085641654 30 atime=1569569241.323644056 30 ctime=1569569245.085641654 elk-6.3.2/src/hmlxbse.f900000644002504400250440000000130313543334735016655 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmlxbse use modmain use modmpi use modomp implicit none ! local variables integer ik2,nthd call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik2=1,nkptnr ! distribute among MPI processes if (mod(ik2-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(hmlxbse_) write(*,'("Info(hmlxbse): ",I6," of ",I6," k-points")') ik2,nkptnr !$OMP END CRITICAL(hmlxbse_) call hmlxbsek(ik2) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlxbsek.f900000644000000000000000000000013013543334735014762 xustar0029 mtime=1569569245.09064165 30 atime=1569569241.327644054 29 ctime=1569569245.09064165 elk-6.3.2/src/hmlxbsek.f900000644002504400250440000000666013543334735017043 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmlxbsek(ik2) use modmain implicit none ! arguments integer, intent(in) :: ik2 ! local variables integer ik1,ist1,ist2,jst1,jst2 integer i1,i2,j1,j2,a1,a2,b1,b2 integer is,ias,l real(8) t0 complex(8) z1 ! automatic arrays integer idx(nstsv),ngp(nspnfv) ! allocatable arrays integer, allocatable :: igpig(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvclmt(:,:,:),zvclir(:,:) complex(8), allocatable :: zfmt(:) ! external functions complex(8) zfinp external zfinp ! allocate local arrays allocate(igpig(ngkmax,nspnfv)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) allocate(zvclmt(npcmtmax,natmtot,nvcbse),zvclir(ngtc,nvcbse)) allocate(zfmt(npcmtmax)) ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! calculate the wavefunctions for all states of k-point ik2 call genwfsvp(.false.,.false.,nstsv,idx,ngdc,igfc,vkl(:,ik2),ngp,igpig,wfmt2, & ngtc,wfir2) l=0 do i2=1,nvbse ist2=istbse(i2,ik2) do j2=1,ncbse jst2=jstbse(j2,ik2) a2=ijkbse(i2,j2,ik2) l=l+1 ! calculate the complex overlap density call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt2(:,:,:,jst2),wfir2(:,:,jst2),zrhomt,zrhoir) ! compute the Coulomb potential call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax,zrhomt, & zvclmt(:,:,l)) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc,gc, & gclg,ngvec,jlgrmt,ylmg,sfacg,zrhoir,npcmtmax,zvclmt(:,:,l),zvclir(:,l)) end do end do t0=occmax*wkptnr ! start loop over ik1 do ik1=1,nkptnr if (ik1.eq.ik2) then wfmt1(:,:,:,:)=wfmt2(:,:,:,:) wfir1(:,:,:)=wfir2(:,:,:) else call genwfsvp(.false.,.false.,nstsv,idx,ngdc,igfc,vkl(:,ik1),ngp,igpig, & wfmt1,ngtc,wfir1) end if do i1=1,nvbse ist1=istbse(i1,ik1) do j1=1,ncbse jst1=jstbse(j1,ik1) a1=ijkbse(i1,j1,ik1) ! calculate the complex overlap density call genzrho(.true.,.true.,ngtc,wfmt1(:,:,:,ist1),wfir1(:,:,ist1), & wfmt1(:,:,:,jst1),wfir1(:,:,jst1),zrhomt,zrhoir) l=0 do i2=1,nvbse ist2=istbse(i2,ik2) do j2=1,ncbse jst2=jstbse(j2,ik2) a2=ijkbse(i2,j2,ik2) l=l+1 ! compute the matrix element z1=t0*zfinp(zrhomt,zrhoir,zvclmt(:,:,l),zvclir(:,l)) hmlbse(a1,a2)=hmlbse(a1,a2)+z1 ! compute off-diagonal blocks if required if (bsefull) then b1=a1+nbbse b2=a2+nbbse hmlbse(b1,b2)=hmlbse(b1,b2)-conjg(z1) ! conjugate the potential do ias=1,natmtot is=idxis(ias) call zfmtconj(nrcmt(is),nrcmti(is),npcmt(is),zvclmt(:,ias,l)) end do zvclir(:,l)=conjg(zvclir(:,l)) z1=t0*zfinp(zrhomt,zrhoir,zvclmt(:,:,l),zvclir(:,l)) hmlbse(a1,b2)=hmlbse(a1,b2)+z1 hmlbse(b1,a2)=hmlbse(b1,a2)-conjg(z1) end if end do end do end do end do end do deallocate(igpig,wfmt1,wfmt2,wfir1,wfir2) deallocate(zrhomt,zrhoir,zvclmt,zvclir,zfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genvmatk.f900000644000000000000000000000013213543334735014763 xustar0030 mtime=1569569245.094641648 30 atime=1569569241.332644051 30 ctime=1569569245.094641648 elk-6.3.2/src/genvmatk.f900000644002504400250440000000525513543334735017041 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvmatk(vmt,vir,ngp,igpig,wfmt,ld,wfgp,vmat) use modmain use modomp implicit none ! arguments real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) integer, intent(in) :: ld complex(8), intent(in) :: wfgp(ld,nspinor,nstsv) complex(8), intent(out) :: vmat(nstsv,nstsv) ! local variables integer ist,jst,ispn,jspn integer is,ias,nrc,nrci integer npc,igp,nthd ! allocatable arrays complex(8), allocatable :: wfmt1(:),wfir(:),z(:) ! external functions complex(8) zfcmtinp,zdotc external zfcmtinp,zdotc ! zero the matrix elements vmat(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ispn,ias,is) & !$OMP PRIVATE(nrc,nrci,npc,ist) & !$OMP NUM_THREADS(nthd) allocate(wfmt1(npcmtmax)) !$OMP DO do jst=1,nstsv do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! apply potential to wavefunction wfmt1(1:npc)=vmt(1:npc,ias)*wfmt(1:npc,ias,ispn,jst) do ist=1,jst ! compute inner product (functions are in spherical coordinates) vmat(ist,jst)=vmat(ist,jst)+zfcmtinp(nrc,nrci,wrcmt(:,is), & wfmt(:,ias,ispn,ist),wfmt1) end do end do end do end do !$OMP END DO deallocate(wfmt1) !$OMP END PARALLEL call freethd(nthd) !---------------------------! ! interstitial part ! !---------------------------! call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir,z,ispn,jspn) & !$OMP PRIVATE(igp,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir(ngtot),z(ngkmax)) !$OMP DO do jst=1,nstsv do ispn=1,nspinor jspn=jspnfv(ispn) ! Fourier transform wavefunction to real-space wfir(:)=0.d0 do igp=1,ngp(jspn) wfir(igfft(igpig(igp,jspn)))=wfgp(igp,ispn,jst) end do call zfftifc(3,ngridg,1,wfir) ! apply potential to wavefunction wfir(:)=vir(:)*wfir(:) ! Fourier transform to G+p-space call zfftifc(3,ngridg,-1,wfir) do igp=1,ngp(jspn) z(igp)=wfir(igfft(igpig(igp,jspn))) end do do ist=1,jst ! compute inner product vmat(ist,jst)=vmat(ist,jst)+zdotc(ngp(jspn),wfgp(:,ispn,ist),1,z,1) end do end do end do !$OMP END DO deallocate(wfir,z) !$OMP END PARALLEL call freethd(nthd) ! lower triangular part do ist=1,nstsv do jst=1,ist-1 vmat(ist,jst)=conjg(vmat(jst,ist)) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeepsinv.f900000644000000000000000000000013213543334735015526 xustar0030 mtime=1569569245.098641645 30 atime=1569569241.337644047 30 ctime=1569569245.098641645 elk-6.3.2/src/writeepsinv.f900000644002504400250440000000203313543334735017573 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeepsinv use modmain use modmpi implicit none ! local variables integer ik ! initialise global variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate the inverse dielectric function and write to file call epsinv if (mp_mpi) then write(*,*) write(*,'("Info(writeepsinv):")') write(*,'(" inverse RPA dielectric function, eps^(-1)(G,G'',q,w), written to & &EPSINV.OUT")') end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/putepsinv.f900000644000000000000000000000013213543334735015204 xustar0030 mtime=1569569245.103641642 30 atime=1569569241.342644044 30 ctime=1569569245.103641642 elk-6.3.2/src/putepsinv.f900000644002504400250440000000153613543334735017260 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putepsinv(iq,epsi) use modmain implicit none ! arguments integer, intent(in) :: iq complex(8), intent(in) :: epsi(ngrf,ngrf,nwrf) ! local variables integer recl,i ! determine the record length for EPSINV.OUT inquire(iolength=recl) vql(:,iq),ngrf,nwrf,epsi !$OMP CRITICAL(u180) do i=1,2 open(180,file='EPSINV.OUT',form='UNFORMATTED',access='DIRECT',recl=recl, & err=10) write(180,rec=iq,err=10) vql(:,iq),ngrf,nwrf,epsi close(180) exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(putepsinv): unable to write to EPSINV.OUT")') write(*,*) stop end if close(180) end do !$OMP END CRITICAL(u180) return end subroutine elk-6.3.2/src/PaxHeaders.21352/curden.f900000644000000000000000000000013213543334735014427 xustar0030 mtime=1569569245.107641639 30 atime=1569569241.347644041 30 ctime=1569569245.107641639 elk-6.3.2/src/curden.f900000644002504400250440000000643713543334735016510 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine curden(afield) use modmain use modmpi use modomp implicit none ! arguments real(8), intent(in) :: afield(3) ! local variables integer ik,is,ias,ispn integer nr,nri,iro,np integer nrc,nrci,npc integer ir,n,i,nthd real(8) ca,t1 ! allocatable arrays real(8), allocatable :: rfmt(:) ! external functions real(8) rfint external rfint ! coupling constant of the external A-field (1/c) ca=1.d0/solsc ! set the current density to zero do i=1,3 do ias=1,natmtot is=idxis(ias) cdmt(1:npcmt(is),ias,i)=0.d0 end do end do cdir(:,:)=0.d0 ! current density cannot be computed if wavefunctions do not exist if (iscl.le.0) return call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call curdenk(ik) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! convert muffin-tin current density to spherical harmonics call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,is,nrc,nrci,npc,i) & !$OMP NUM_THREADS(nthd) allocate(rfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do i=1,3 rfmt(1:npc)=cdmt(1:npc,ias,i) call rfsht(nrc,nrci,rfmt,cdmt(:,ias,i)) end do end do !$OMP END DO deallocate(rfmt) !$OMP END PARALLEL call freethd(nthd) ! symmetrise the current density call symrvf(.false.,.true.,nrcmt,nrcmti,npcmt,npmtmax,cdmt,cdir) ! convert the current density from a coarse to a fine radial mesh call holdthd(3,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do i=1,3 call rfmtctof(cdmt(:,:,i)) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! add current densities from each process and redistribute if (np_mpi.gt.1) then n=npmtmax*natmtot*3 call mpi_allreduce(mpi_in_place,cdmt,n,mpi_double_precision,mpi_sum,mpicom, & ierror) n=ngtot*3 call mpi_allreduce(mpi_in_place,cdir,n,mpi_double_precision,mpi_sum,mpicom, & ierror) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! add vector potential contribution to make current gauge invariant call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,is,nr,nri,np) & !$OMP PRIVATE(iro,ispn,i,ir,t1) & !$OMP NUM_THREADS(nthd) allocate(rfmt(npmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) iro=nri+1 ! remove the core density from the muffin-tin density call dcopy(np,rhomt(:,ias),1,rfmt,1) do ispn=1,nspncr i=1 do ir=1,nri rfmt(i)=rfmt(i)-rhocr(ir,ias,ispn) i=i+lmmaxi end do do ir=iro,nr rfmt(i)=rfmt(i)-rhocr(ir,ias,ispn) i=i+lmmaxo end do end do do i=1,3 t1=-ca*afield(i) call daxpy(np,t1,rfmt,1,cdmt(:,ias,i),1) end do end do !$OMP END DO deallocate(rfmt) !$OMP END PARALLEL call freethd(nthd) do i=1,3 t1=-ca*afield(i) call daxpy(ngtot,t1,rhoir,1,cdir(:,i),1) end do ! compute the total current in the unit cell do i=1,3 curtot(i)=rfint(cdmt(:,:,i),cdir(:,i)) end do ! total current magnitude curtotm=sqrt(curtot(1)**2+curtot(2)**2+curtot(3)**2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/curdenk.f900000644000000000000000000000013213543334735014602 xustar0030 mtime=1569569245.112641636 30 atime=1569569241.351644038 30 ctime=1569569245.112641636 elk-6.3.2/src/curdenk.f900000644002504400250440000000712613543334735016657 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine curdenk(ik) use modmain implicit none ! arguments integer, intent(in) :: ik ! local variables integer ispn,jspn,nst,ist,jst integer is,ia,ias,nrc,nrci,npc integer igk,ifg,i real(8) wo complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: rfmt(:) complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgp(:,:,:) complex(8), allocatable :: gzfmt(:,:),zfmt1(:),zfmt2(:) complex(8), allocatable :: zfft1(:),zfft2(:) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) ! find the matching coefficients do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! count and index the occupied states nst=0 do ist=1,nstsv if (abs(occsv(ist,ik)).lt.epsocc) cycle nst=nst+1 idx(nst)=ist end do ! calculate the second-variational wavefunctions for occupied states allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfgp(ngkmax,nspinor,nst)) call genwfsv(.true.,.true.,nst,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgp) deallocate(apwalm,evecfv,evecsv) !------------------------------------! ! muffin-tin current density ! !------------------------------------! allocate(rfmt(npcmtmax)) allocate(gzfmt(npcmtmax,3),zfmt1(npcmtmax),zfmt2(npcmtmax)) do ist=1,nst jst=idx(ist) wo=wkpt(ik)*occsv(jst,ik) do ispn=1,nspinor do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) ! compute the gradient of the wavefunction call gradzfmt(nrc,nrci,rlcmt(:,1,is),rlcmt(:,-1,is), & wfmt(:,ias,ispn,ist),npcmtmax,gzfmt) ! convert wavefunction to spherical coordinates and conjugate call zbsht(nrc,nrci,wfmt(:,ias,ispn,ist),zfmt1) zfmt1(1:npc)=conjg(zfmt1(1:npc)) do i=1,3 ! convert wavefunction gradient to spherical coordinates call zbsht(nrc,nrci,gzfmt(:,i),zfmt2) ! compute the partial current density rfmt(1:npc)=aimag(zfmt1(1:npc)*zfmt2(1:npc)) !$OMP CRITICAL(currentk_1) call daxpy(npc,wo,rfmt,1,cdmt(:,ias,i),1) !$OMP END CRITICAL(currentk_1) end do end do end do end do end do deallocate(wfmt,rfmt,gzfmt,zfmt1,zfmt2) !--------------------------------------! ! interstitial current density ! !--------------------------------------! allocate(zfft1(ngtot),zfft2(ngtot)) do ist=1,nst jst=idx(ist) wo=wkpt(ik)*occsv(jst,ik)/omega do ispn=1,nspinor jspn=jspnfv(ispn) ! Fourier transform to real-space and conjugate zfft1(:)=0.d0 do igk=1,ngk(jspn,ik) ifg=igfft(igkig(igk,jspn,ik)) zfft1(ifg)=wfgp(igk,ispn,ist) end do call zfftifc(3,ngridg,1,zfft1) zfft1(:)=conjg(zfft1(:)) do i=1,3 ! compute the gradient of the wavefunction zfft2(:)=0.d0 do igk=1,ngk(jspn,ik) ifg=igfft(igkig(igk,jspn,ik)) z1=wfgp(igk,ispn,ist) zfft2(ifg)=vgkc(i,igk,jspn,ik)*cmplx(-aimag(z1),dble(z1),8) end do call zfftifc(3,ngridg,1,zfft2) !$OMP CRITICAL(currentk_2) cdir(:,i)=cdir(:,i)+wo*aimag(zfft1(:)*zfft2(:)) !$OMP END CRITICAL(currentk_2) end do end do end do deallocate(wfgp,zfft1,zfft2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hflocal.f900000644000000000000000000000013213543334735014557 xustar0030 mtime=1569569245.116641634 30 atime=1569569241.356644035 30 ctime=1569569245.116641634 elk-6.3.2/src/hflocal.f900000644002504400250440000000316113543334735016627 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hflocal(hyb,vmt,vir,bmt,bir) use modmain implicit none ! arguments logical, intent(in) :: hyb real(8), intent(out) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(out) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) ! local variables integer idm,is,ias integer np,nrc,nrci ! automatic arrays real(8) rfmt1(npmtmax),rfmt2(npcmtmax) ! compute the Coulomb potential call potcoul ! convert to spherical coordinates and store in output arrays if (hyb) then ! hybrid functional case call potxc(.true.,xctype,rhomt,rhoir,magmt,magir,taumt,tauir,exmt,exir,ecmt, & ecir,vxcmt,vxcir,bxcmt,bxcir,wxcmt,wxcir) do ias=1,natmtot is=idxis(ias) np=npmt(is) nrc=nrcmt(is) nrci=nrcmti(is) rfmt1(1:np)=vclmt(1:np,ias)+vxcmt(1:np,ias) call rfmtftoc(nrc,nrci,rfmt1,rfmt2) call rbsht(nrc,nrci,rfmt2,vmt(:,ias)) end do vir(:)=(vclir(:)+vxcir(:))*cfunir(:) if (spinpol) then do idm=1,ndmag do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,bxcmt(:,ias,idm),rfmt1) call rbsht(nrc,nrci,rfmt1,bmt(:,ias,idm)) end do bir(:,idm)=bxcir(:,idm)*cfunir(:) end do end if else ! normal Hartree-Fock case do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,vclmt(:,ias),rfmt1) call rbsht(nrc,nrci,rfmt1,vmt(:,ias)) end do vir(:)=vclir(:)*cfunir(:) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/dielectric.f900000644000000000000000000000013213543334735015256 xustar0030 mtime=1569569245.120641631 30 atime=1569569241.360644033 30 ctime=1569569245.120641631 elk-6.3.2/src/dielectric.f900000644002504400250440000001165713543334735017337 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2009 S. Sharma, J. K. Dewhurst and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: dielectric ! !INTERFACE: subroutine dielectric ! !USES: use modmain use modtest use modomp ! !DESCRIPTION: ! Computes the dielectric tensor, optical conductivity and plasma frequency. ! The formulae are taken from {\it Physica Scripta} {\bf T109}, 170 (2004). ! ! !REVISION HISTORY: ! Created November 2005 (SS and JKD) ! Added plasma frequency and intraband contribution (S. Lebegue) ! Complete rewrite, 2008 (JKD) ! Fixed problem with plasma frequency, 2009 (Marty Blaber and JKD) ! Parallelised, 2009 (M. Blaber) !EOP !BOC implicit none ! local variables integer ik,jk,ist,jst integer iw,i,j,l,nthd real(8) w1,w2,wplas real(8) eji,x,t1,t2 complex(8) eta,z1 character(256) fname ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: pmat(:,:,:),sigma(:) ! external functions real(8) sdelta external sdelta ! initialise universal variables call init0 call init1 ! read Fermi energy from file call readfermi ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! allocate local arrays allocate(w(nwplot)) allocate(sigma(nwplot)) ! generate energy grid (always non-negative) w1=max(wplot(1),0.d0) w2=max(wplot(2),w1) t1=(w2-w1)/dble(nwplot) do iw=1,nwplot w(iw)=w1+t1*dble(iw-1) end do ! i divided by the complex relaxation time eta=cmplx(0.d0,swidth,8) ! loop over dielectric tensor components do l=1,noptcomp i=optcomp(1,l) j=optcomp(2,l) wplas=0.d0 sigma(:)=0.d0 ! parallel loop over non-reduced k-points call holdthd(nkptnr,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(pmat,jk,ist,jst) & !$OMP PRIVATE(z1,eji,t1,x) & !$OMP NUM_THREADS(nthd) allocate(pmat(nstsv,nstsv,3)) !$OMP DO do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! read in the momentum matrix elements call getpmat(vkl(:,ik),pmat) ! valance states do ist=1,nstsv ! conduction states do jst=1,nstsv z1=pmat(ist,jst,i)*conjg(pmat(ist,jst,j)) eji=evalsv(jst,jk)-evalsv(ist,jk) if ((evalsv(ist,jk).le.efermi).and.(evalsv(jst,jk).gt.efermi)) then ! scissor correction if (scissor.ne.0.d0) then t1=(eji+scissor)/eji z1=z1*t1**2 eji=eji+scissor end if end if if (abs(eji).gt.1.d-8) then t1=occsv(ist,jk)*(1.d0-occsv(jst,jk)/occmax)/eji !$OMP CRITICAL(dielectric_1) sigma(:)=sigma(:)+t1*(z1/(w(:)-eji+eta)+conjg(z1)/(w(:)+eji+eta)) !$OMP END CRITICAL(dielectric_1) end if ! add to the plasma frequency if (intraband) then if (i.eq.j) then if (ist.eq.jst) then x=(evalsv(ist,jk)-efermi)/swidth !$OMP CRITICAL(dielectric_2) wplas=wplas+wkptnr*dble(z1)*sdelta(stype,x)/swidth !$OMP END CRITICAL(dielectric_2) end if end if end if end do end do end do !$OMP END DO deallocate(pmat) !$OMP END PARALLEL call freethd(nthd) z1=zi*wkptnr/omega sigma(:)=z1*sigma(:) ! intraband contribution if (intraband) then if (i.eq.j) then wplas=sqrt(occmax*abs(wplas)*fourpi/omega) ! write the plasma frequency to file write(fname,'("PLASMA_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') write(50,'(G18.10," : plasma frequency")') wplas close(50) ! add the intraband contribution to sigma t1=wplas**2/fourpi do iw=1,nwplot sigma(iw)=sigma(iw)+t1/(swidth-zi*w(iw)) end do end if end if ! write the optical conductivity to file write(fname,'("SIGMA_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') do iw=1,nwplot write(50,'(2G18.10)') w(iw),dble(sigma(iw)) end do write(50,*) do iw=1,nwplot write(50,'(2G18.10)') w(iw),aimag(sigma(iw)) end do close(50) ! write the dielectric function to file write(fname,'("EPSILON_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') t1=0.d0 if (i.eq.j) t1=1.d0 do iw=1,nwplot t2=t1-fourpi*aimag(sigma(iw)/(w(iw)+eta)) write(50,'(2G18.10)') w(iw),t2 end do write(50,*) do iw=1,nwplot t2=fourpi*dble(sigma(iw)/(w(iw)+eta)) write(50,'(2G18.10)') w(iw),t2 end do close(50) ! write sigma to test file call writetest(121,'optical conductivity',nv=nwplot,tol=1.d-2,zva=sigma) ! end loop over tensor components end do write(*,*) write(*,'("Info(dielectric):")') write(*,'(" dielectric tensor written to EPSILON_ij.OUT")') write(*,'(" optical conductivity written to SIGMA_ij.OUT")') if (intraband) then write(*,'(" plasma frequency written to PLASMA_ij.OUT")') end if write(*,'(" for components")') do l=1,noptcomp write(*,'(" i = ",I1,", j = ",I1)') optcomp(1:2,l) end do deallocate(w,sigma) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/bdipole.f900000644000000000000000000000013113543334735014564 xustar0030 mtime=1569569245.125641628 29 atime=1569569241.36564403 30 ctime=1569569245.125641628 elk-6.3.2/src/bdipole.f900000644002504400250440000000537113543334735016642 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine bdipole use modmain implicit none ! local variables integer idm,is,ias integer nrc,nrci,npc real(8) cb,t1 ! automatic arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) real(8), allocatable :: rfmt1(:),rfmt2(:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) if (.not.ncmag) then write(*,*) write(*,'("Error(bdipole): non-collinear magnetism required for inclusion of & &the dipole field")') write(*,*) stop end if ! prefactor for the spin dipole magnetic field cb=gfacte/(4.d0*solsc) ! compute the gauge invariant current density if required if (tcden) call curden(afieldc) ! allocate local arrays allocate(rvfmt(npmtmax,natmtot,3),rvfir(ngtot,3)) allocate(zrhomt(npmtmax,natmtot),zrhoir(ngtot)) allocate(zvclmt(npmtmax,natmtot),zvclir(ngtot)) ! compute the curl of the magnetisation density, i.e. the magnetisation current call curlrvf(magmt,magir,rvfmt,rvfir) ! negate and multiply by prefactor rvfmt(:,:,:)=-cb*rvfmt(:,:,:) rvfir(:,:)=-cb*rvfir(:,:) ! add the current density if required if (tcden) then t1=1.d0/solsc rvfmt(:,:,:)=rvfmt(:,:,:)+t1*cdmt(:,:,:) rvfir(:,:)=rvfir(:,:)+t1*cdir(:,:) end if do idm=1,3 ! transform to complex spherical harmonics do ias=1,natmtot is=idxis(ias) call rtozfmt(nrmt(is),nrmti(is),rvfmt(:,ias,idm),zrhomt(:,ias)) end do ! solve Poisson's equation in the muffin-tin to find the A-field call genzvclmt(nrmt,nrmti,nrmtmax,rlmt,wprmt,npmtmax,zrhomt,zvclmt) zrhoir(:)=rvfir(:,idm) ! solve in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gc,gclg, & ngvec,jlgrmt,ylmg,sfacg,zrhoir,npmtmax,zvclmt,zvclir) ! convert muffin-tin A-field to real spherical harmonics do ias=1,natmtot is=idxis(ias) call ztorfmt(nrmt(is),nrmti(is),zvclmt(:,ias),rvfmt(:,ias,idm)) end do ! store the real part of the interstitial A-field rvfir(:,idm)=dble(zvclir(:)) end do ! compute the curl of A to obtain the dipole B-field call curlrvf(rvfmt,rvfir,bdmt,bdir) ! add to the Kohn-Sham field allocate(rfmt1(npcmtmax),rfmt2(npcmtmax)) do idm=1,3 do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! convert to coarse radial mesh call rfmtftoc(nrc,nrci,bdmt(:,ias,idm),rfmt1) ! convert to spherical coordinates call rbsht(nrc,nrci,rfmt1,rfmt2) bsmt(1:npc,ias,idm)=bsmt(1:npc,ias,idm)+cb*rfmt2(1:npc) end do end do do idm=1,3 bsir(:,idm)=bsir(:,idm)+cb*bdir(:,idm)*cfunir(:) end do deallocate(rvfmt,rvfir,rfmt1,rfmt2) deallocate(zrhomt,zrhoir,zvclmt,zvclir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/roteuler.f900000644000000000000000000000013213543334735015010 xustar0030 mtime=1569569245.129641625 30 atime=1569569241.369644027 30 ctime=1569569245.129641625 elk-6.3.2/src/roteuler.f900000644002504400250440000000542513543334735017065 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: roteuler ! !INTERFACE: subroutine roteuler(rot,ang) ! !INPUT/OUTPUT PARAMETERS: ! rot : rotation matrix (in,real(3,3)) ! ang : Euler angles (alpha, beta, gamma) (out,real(3)) ! !DESCRIPTION: ! Given a rotation matrix ! \begin{align*} ! &R(\alpha,\beta,\gamma)=\\ ! &\left(\begin{matrix} ! \cos\gamma\cos\beta\cos\alpha-\sin\gamma\sin\alpha & ! \cos\gamma\cos\beta\sin\alpha+\sin\gamma\cos\alpha & ! -\cos\gamma\sin\beta \\ ! -\sin\gamma\cos\beta\cos\alpha-\cos\gamma\sin\alpha & ! -\sin\gamma\cos\beta\sin\alpha+\cos\gamma\cos\alpha & ! \sin\gamma\sin\beta \\ ! \sin\beta\cos\alpha & ! \sin\beta\sin\alpha & ! \cos\beta ! \end{matrix}\right), ! \end{align*} ! this routine determines the Euler angles, $(\alpha,\beta,\gamma)$. This ! corresponds to the so-called `$y$-convention', which involves the following ! successive rotations of the coordinate system: ! \begin{itemize} ! \item[1.]{The $x_1$-, $x_2$-, $x_3$-axes are rotated anticlockwise through ! an angle $\alpha$ about the $x_3$ axis} ! \item[2.]{The $x_1'$-, $x_2'$-, $x_3'$-axes are rotated anticlockwise ! through an angle $\beta$ about the $x_2'$ axis} ! \item[3.]{The $x_1''$-, $x_2''$-, $x_3''$-axes are rotated anticlockwise ! through an angle $\gamma$ about the $x_3''$ axis} ! \end{itemize} ! Note that the Euler angles are not necessarily unique for a given rotation ! matrix. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) ! Fixed problem thanks to Frank Wagner, June 2013 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rot(3,3) real(8), intent(out) :: ang(3) ! local variables real(8), parameter :: eps=1.d-8 real(8), parameter :: pi=3.1415926535897932385d0 real(8) det ! find the determinant det=rot(1,2)*rot(2,3)*rot(3,1)-rot(1,3)*rot(2,2)*rot(3,1) & +rot(1,3)*rot(2,1)*rot(3,2)-rot(1,1)*rot(2,3)*rot(3,2) & +rot(1,1)*rot(2,2)*rot(3,3)-rot(1,2)*rot(2,1)*rot(3,3) if ((det.lt.1.d0-eps).or.(det.gt.1.d0+eps)) then write(*,*) write(*,'("Error(roteuler): matrix improper or not unitary")') write(*,'(" Determinant : ",G18.10)') det write(*,*) stop end if if ((abs(rot(3,1)).gt.eps).or.(abs(rot(3,2)).gt.eps)) then ang(1)=atan2(rot(3,2),rot(3,1)) if (abs(rot(3,1)).gt.abs(rot(3,2))) then ang(2)=atan2(rot(3,1)/cos(ang(1)),rot(3,3)) else ang(2)=atan2(rot(3,2)/sin(ang(1)),rot(3,3)) end if ang(3)=atan2(rot(2,3),-rot(1,3)) else ang(1)=atan2(rot(1,2),rot(1,1)) if (rot(3,3).gt.0.d0) then ang(2)=0.d0 ang(3)=0.d0 else ang(2)=pi ang(3)=pi end if end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/lopzflm.f900000644000000000000000000000013213543334735014632 xustar0030 mtime=1569569245.134641622 30 atime=1569569241.373644024 30 ctime=1569569245.134641622 elk-6.3.2/src/lopzflm.f900000644002504400250440000000360213543334735016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: lopzflm ! !INTERFACE: pure subroutine lopzflm(lmax,zflm,ld,zlflm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! zflm : coefficients of input spherical harmonic expansion ! (in,complex((lmax+1)**2)) ! ld : leading dimension (in,integer) ! zlflm : coefficients of output spherical harmonic expansion ! (out,complex(ld,3)) ! !DESCRIPTION: ! Applies the angular momentum operator $\hat{\bf L}$ to a function expanded ! in terms of complex spherical harmonics. This makes use of the identities ! \begin{align*} ! (L_x+iL_y)Y_{lm}(\theta,\phi)&=\sqrt{(l-m)(l+m+1)}Y_{lm+1}(\theta,\phi)\\ ! (L_x-iL_y)Y_{lm}(\theta,\phi)&=\sqrt{(l+m)(l-m+1)}Y_{lm-1}(\theta,\phi)\\ ! L_zY_{lm}(\theta,\phi)&=mY_{lm}(\theta,\phi). ! \end{align*} ! ! !REVISION HISTORY: ! Created March 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax complex(8), intent(in) :: zflm(*) integer, intent(in) :: ld complex(8), intent(out) :: zlflm(ld,3) ! local variables integer l,m,lm real(8) t1 complex(8) z1 lm=0 do l=0,lmax do m=-l,l lm=lm+1 if (m.eq.-l) then zlflm(lm,1)=0.d0 zlflm(lm,2)=0.d0 end if if (m.lt.l) then t1=0.5d0*sqrt(dble((l-m)*(l+m+1))) z1=t1*zflm(lm) zlflm(lm+1,1)=z1 zlflm(lm+1,2)=cmplx(aimag(z1),-dble(z1),8) end if if (m.gt.-l) then t1=0.5d0*sqrt(dble((l+m)*(l-m+1))) z1=t1*zflm(lm) zlflm(lm-1,1)=zlflm(lm-1,1)+z1 zlflm(lm-1,2)=zlflm(lm-1,2)+cmplx(-aimag(z1),dble(z1),8) end if if (m.ne.0) then zlflm(lm,3)=dble(m)*zflm(lm) else zlflm(lm,3)=0.d0 end if end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/eveqnfvz.f900000644000000000000000000000013013543334735015011 xustar0029 mtime=1569569245.13864162 30 atime=1569569241.378644021 29 ctime=1569569245.13864162 elk-6.3.2/src/eveqnfvz.f900000644002504400250440000000310313543334735017057 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine eveqnfvz(nmatp,h,o,evalfv,evecfv) use modmain use modomp implicit none ! arguments integer, intent(in) :: nmatp complex(8), intent(in) :: h(*),o(*) real(8), intent(out) :: evalfv(nstfv) complex(8), intent(out) :: evecfv(nmatmax,nstfv) ! local variables integer i,m,nthd integer lwork,info real(8) vl,vu real(8) ts0,ts1 ! allocatable arrays integer, allocatable :: iwork(:),ifail(:) real(8), allocatable :: w(:),rwork(:) complex(8), allocatable :: work(:) call timesec(ts0) allocate(iwork(5*nmatp),ifail(nmatp)) allocate(w(nmatp),rwork(7*nmatp)) lwork=2*nmatp allocate(work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) call mkl_set_num_threads(nthd) ! diagonalise the matrix call zhegvx(1,'V','I','U',nmatp,h,nmatp,o,nmatp,vl,vu,1,nstfv,evaltol,m,w, & evecfv,nmatmax,work,lwork,rwork,iwork,ifail,info) call freethd(nthd) call mkl_set_num_threads(1) if (info.ne.0) then write(*,*) write(*,'("Error(eveqnfvz): diagonalisation failed")') write(*,'(" ZHEGVX returned INFO = ",I8)') info if (info.gt.nmatp) then i=info-nmatp write(*,'(" The leading minor of the overlap matrix of order ",I8)') i write(*,'(" is not positive definite")') write(*,'(" Order of overlap matrix : ",I8)') nmatp end if write(*,*) stop end if evalfv(1:nstfv)=w(1:nstfv) deallocate(iwork,ifail,w,rwork,work) call timesec(ts1) !$OMP ATOMIC timefv=timefv+ts1-ts0 return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhomag.f900000644000000000000000000000013213543334735014424 xustar0030 mtime=1569569245.142641617 30 atime=1569569241.382644019 30 ctime=1569569245.142641617 elk-6.3.2/src/rhomag.f900000644002504400250440000000663613543334735016506 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rhomag use modmain use modmpi use modomp implicit none ! local variables integer ik,ispn,idm integer is,ias,n,nthd ! automatic arrays integer(8) lock(natmtot) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) ! initialise the OpenMP locks do ias=1,natmtot call omp_init_lock(lock(ias)) end do ! set the charge density and magnetisation to zero do ias=1,natmtot is=idxis(ias) rhomt(1:npcmt(is),ias)=0.d0 end do rhoir(:)=0.d0 do idm=1,ndmag do ias=1,natmtot is=idxis(ias) magmt(1:npcmt(is),ias,idm)=0.d0 end do magir(:,idm)=0.d0 end do call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(apwalm,evecfv,evecsv,ispn) & !$OMP NUM_THREADS(nthd) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! find the matching coefficients do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! add to the density and magnetisation call rhomagk(ngk(:,ik),igkig(:,:,ik),lock,wkpt(ik),occsv(:,ik),apwalm, & evecfv,evecsv) end do !$OMP END DO deallocate(apwalm,evecfv,evecsv) !$OMP END PARALLEL call freethd(nthd) ! destroy the OpenMP locks do ias=1,natmtot call omp_destroy_lock(lock(ias)) end do ! convert muffin-tin density/magnetisation to spherical harmonics call rhomagsh call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! symmetrise the density call symrf(nrcmt,nrcmti,npcmt,npmtmax,rhomt,rhoir) ! convert the density from a coarse to a fine radial mesh call rfmtctof(rhomt) !$OMP SECTION ! symmetrise the magnetisation if (spinpol) call symrvf(.true.,ncmag,nrcmt,nrcmti,npcmt,npmtmax,magmt,magir) !$OMP END PARALLEL SECTIONS call freethd(nthd) ! convert the magnetisation from a coarse to a fine radial mesh call holdthd(ndmag,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do idm=1,ndmag call rfmtctof(magmt(:,:,idm)) end do !$OMP END PARALLEL DO call freethd(nthd) ! add densities from each process and redistribute if (np_mpi.gt.1) then n=npmtmax*natmtot call mpi_allreduce(mpi_in_place,rhomt,n,mpi_double_precision,mpi_sum,mpicom, & ierror) call mpi_allreduce(mpi_in_place,rhoir,ngtot,mpi_double_precision,mpi_sum, & mpicom,ierror) if (spinpol) then n=n*ndmag call mpi_allreduce(mpi_in_place,magmt,n,mpi_double_precision,mpi_sum, & mpicom,ierror) n=ngtot*ndmag call mpi_allreduce(mpi_in_place,magir,n,mpi_double_precision,mpi_sum, & mpicom,ierror) end if end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! add the core density and magnetisation to the total call rhocore call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! calculate the charges call charge ! normalise the density call rhonorm !$OMP SECTION ! calculate the moments if (spinpol) call moment !$OMP END PARALLEL SECTIONS call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlaa.f900000644000000000000000000000013213543334735014231 xustar0030 mtime=1569569245.147641614 30 atime=1569569241.386644016 30 ctime=1569569245.147641614 elk-6.3.2/src/hmlaa.f900000644002504400250440000000440113543334735016277 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: hmlaa ! !INTERFACE: subroutine hmlaa(thr,ias,ngp,apwalm,ld,h) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! thr : .true. if the matrix h is real valued (in,logical) ! ias : joint atom and species number (in,integer) ! ngp : number of G+p-vectors (in,integer) ! apwalm : APW matching coefficients (in,complex(ngkmax,apwordmax,lmmaxapw)) ! ld : leading dimension of h (in,integer) ! h : Hamiltonian matrix (inout,complex(*)) ! !DESCRIPTION: ! Calculates the APW-APW contribution to the Hamiltonian matrix. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: thr integer, intent(in) :: ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: h(*) ! local variables integer is,lmo,io,jo,i integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3 real(8) t0 complex(8) z1 ! allocatable arrays complex(8), allocatable :: a(:,:),b(:,:) is=idxis(ias) lmo=lmoapw(is) allocate(a(lmo,ngp),b(lmo,ngp)) t0=0.5d0*rmt(is)**2 i=0 lm1=0 do l1=0,lmaxapw do m1=-l1,l1 lm1=lm1+1 do io=1,apword(l1,is) i=i+1 b(i,:)=0.d0 lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do jo=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*haa(lm2,jo,l3,io,l1,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,b(i,1),lmo) end if end do end do end do ! kinetic surface contribution do jo=1,apword(l1,is) z1=t0*apwfr(nrmt(is),1,io,l1,ias)*apwdfr(jo,l1,ias) call zaxpy(ngp,z1,apwalm(:,jo,lm1),1,b(i,1),lmo) end do a(i,1:ngp)=apwalm(1:ngp,io,lm1) end do end do end do call zmctmu(thr,lmo,ngp,a,b,ld,h) deallocate(a,b) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/hmlalo.f900000644000000000000000000000013213543334735014423 xustar0030 mtime=1569569245.151641611 30 atime=1569569241.391644013 30 ctime=1569569245.151641611 elk-6.3.2/src/hmlalo.f900000644002504400250440000000254413543334735016477 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmlalo(ias,ngp,apwalm,ld,h) use modmain implicit none ! arguments integer, intent(in) :: ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: h(*) ! local variables integer is,io,ilo integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3,i,j,k complex(8) z1 is=idxis(ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) do m1=-l1,l1 lm1=idxlm(l1,m1) j=ngp+idxlo(lm1,ilo,ias) lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do io=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*hloa(lm2,io,l3,ilo,ias) end do end if end do ! note that what is actually computed is the Hermitian conjugate of if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then k=(j-1)*ld do i=1,ngp k=k+1 h(k)=h(k)+conjg(z1*apwalm(i,io,lm3)) end do end if end do end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gencore.f900000644000000000000000000000013113543334735014570 xustar0030 mtime=1569569245.156641608 29 atime=1569569241.39564401 30 ctime=1569569245.156641608 elk-6.3.2/src/gencore.f900000644002504400250440000001056113543334735016643 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: gencore ! !INTERFACE: subroutine gencore ! !USES: use modmain use modomp ! !DESCRIPTION: ! Computes the core radial wavefunctions, eigenvalues and densities. The ! radial Dirac equation is solved in the spherical part of the Kohn-Sham ! potential to which the atomic potential has been appended for ! $r>R_{\rm MT}$. In the case of spin-polarised calculations, and when ! {\tt spincore} is set to {\tt .true.}, the Dirac equation is solved in the ! spin-up and -down potentials created from the Kohn-Sham scalar potential and ! magnetic field magnitude, with the occupancy divided equally between up and ! down. The up and down densities determined in this way are added to both the ! scalar density and the magnetisation in the routine {\tt rhocore}. Note ! that this procedure is a simple, but inexact, approach to solving the radial ! Dirac equation in a magnetic field. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Added polarised cores, November 2009 (JKD) !EOP !BOC implicit none ! local variables integer ist,ispn,idm integer is,ia,ja,ias,jas integer nr,nri,nrs,ir,nthd real(8) t1 ! automatic arrays logical done(natmmax) real(8) vr(nrspmax),eval(nstspmax) ! allocatable arrays real(8), allocatable :: br(:),fr(:,:) if (spincore) allocate(br(nrmtmax),fr(nrmtmax,ndmag)) ! loop over species and atoms do is=1,nspecies nr=nrmt(is) nri=nrmti(is) nrs=nrsp(is) done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) ! Kohn-Sham magnetic field for spin-polarised core if (spincore) then do idm=1,ndmag call rfmtlm(1,nr,nri,bxcmt(:,ias,idm),fr(:,idm)) end do if (ncmag) then do ir=1,nr br(ir)=sqrt(fr(ir,1)**2+fr(ir,2)**2+fr(ir,3)**2)*y00 end do else do ir=1,nr br(ir)=abs(fr(ir,1))*y00 end do end if end if ! loop over spin channels do ispn=1,nspncr ! use the spherical part of the crystal Kohn-Sham potential call rfmtlm(1,nr,nri,vsmt(:,ias),vr) vr(1:nr)=vr(1:nr)*y00 ! spin-up and -down potentials for polarised core if (spincore) then if (ispn.eq.1) then vr(1:nr)=vr(1:nr)+br(1:nr) else vr(1:nr)=vr(1:nr)-br(1:nr) end if end if ! append the Kohn-Sham potential from the atomic calculation for r > R_MT t1=vr(nr)-vrsp(nr,is) do ir=nr+1,nrs vr(ir)=vrsp(ir,is)+t1 end do rhocr(:,ias,ispn)=0.d0 call holdthd(nstsp(is),nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(t1,ir) SHARED(is) & !$OMP NUM_THREADS(nthd) do ist=1,nstsp(is) if (spcore(ist,is)) then ! solve the Dirac equation eval(ist)=evalcr(ist,ias) call rdirac(solsc,nsp(ist,is),lsp(ist,is),ksp(ist,is),nrs,rsp(:,is), & vr,eval(ist),rwfcr(:,1,ist,ias),rwfcr(:,2,ist,ias)) if (spincore) then ! use the spin-averaged eigenvalue for the polarised core if (ispn.eq.1) then evalcr(ist,ias)=eval(ist) else evalcr(ist,ias)=0.5d0*(evalcr(ist,ias)+eval(ist)) end if t1=0.5d0*occcr(ist,ias) else evalcr(ist,ias)=eval(ist) t1=occcr(ist,ias) end if ! add to the core density !$OMP CRITICAL(gencore_) do ir=1,nr rhocr(ir,ias,ispn)=rhocr(ir,ias,ispn) & +t1*(rwfcr(ir,1,ist,ias)**2+rwfcr(ir,2,ist,ias)**2) end do !$OMP END CRITICAL(gencore_) end if end do !$OMP END PARALLEL DO call freethd(nthd) do ir=1,nr rhocr(ir,ias,ispn)=rhocr(ir,ias,ispn)*rlmt(ir,-2,is)*y00 end do ! end loop over spin channels end do done(ia)=.true. ! copy to equivalent atoms do ja=1,natoms(is) if ((.not.done(ja)).and.(eqatoms(ia,ja,is))) then jas=idxas(ja,is) do ist=1,nstsp(is) if (spcore(ist,is)) then evalcr(ist,jas)=evalcr(ist,ias) rwfcr(1:nrs,:,ist,jas)=rwfcr(1:nrs,:,ist,ias) end if end do rhocr(1:nr,jas,:)=rhocr(1:nr,ias,:) done(ja)=.true. end if end do ! end loop over species and atoms end do end do if (spincore) deallocate(br,fr) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gentau.f900000644000000000000000000000013213543334735014432 xustar0030 mtime=1569569245.160641606 30 atime=1569569241.399644008 30 ctime=1569569245.160641606 elk-6.3.2/src/gentau.f900000644002504400250440000000553513543334735016511 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gentau use modmain use modmpi use modomp implicit none ! local variables integer ik,ispn,is,ias integer np,npc,n,nthd ! allocatable arrays real(8), allocatable :: rfmt(:,:),rfir(:) real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) ! set the kinetic energy density to zero taumt(:,:,:)=0.d0 tauir(:,:)=0.d0 ! tau cannot be computed if wavefunctions do not exist if (iscl.le.0) return call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call gentauk(ik) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) allocate(rfmt(npmtmax,natmtot)) ! convert taumt to spherical harmonics do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) call dcopy(npcmt(is),taumt(:,ias,ispn),1,rfmt,1) call rfsht(nrcmt(is),nrcmti(is),rfmt,taumt(:,ias,ispn)) end do end do ! symmetrise tau if (spinpol) then ! spin-polarised case: convert to scalar-vector form allocate(rfir(ngtot)) allocate(rvfmt(npmtmax,natmtot,ndmag)) allocate(rvfir(ngtot,ndmag)) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) rfmt(1:npc,ias)=taumt(1:npc,ias,1)+taumt(1:npc,ias,2) rvfmt(1:npc,ias,1:ndmag-1)=0.d0 rvfmt(1:npc,ias,ndmag)=taumt(1:npc,ias,1)-taumt(1:npc,ias,2) end do rfir(:)=tauir(:,1)+tauir(:,2) rvfir(:,1:ndmag-1)=0.d0 rvfir(:,ndmag)=tauir(:,1)-tauir(:,2) call symrf(nrcmt,nrcmti,npcmt,npmtmax,rfmt,rfir) call symrvf(.true.,ncmag,nrcmt,nrcmti,npcmt,npmtmax,rvfmt,rvfir) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) taumt(1:npc,ias,1)=0.5d0*(rfmt(1:npc,ias)+rvfmt(1:npc,ias,ndmag)) taumt(1:npc,ias,2)=0.5d0*(rfmt(1:npc,ias)-rvfmt(1:npc,ias,ndmag)) end do tauir(:,1)=0.5d0*(rfir(:)+rvfir(:,ndmag)) tauir(:,2)=0.5d0*(rfir(:)-rvfir(:,ndmag)) deallocate(rfir,rvfmt,rvfir) else ! spin-unpolarised case call symrf(nrcmt,nrcmti,npcmt,npmtmax,taumt,tauir) end if ! convert taumt from a coarse to a fine radial mesh do ispn=1,nspinor call rfmtctof(taumt(:,:,ispn)) end do ! add tau from each process and redistribute if (np_mpi.gt.1) then n=npmtmax*natmtot*nspinor call mpi_allreduce(mpi_in_place,taumt,n,mpi_double_precision,mpi_sum,mpicom, & ierror) n=ngtot*nspinor call mpi_allreduce(mpi_in_place,tauir,n,mpi_double_precision,mpi_sum,mpicom, & ierror) end if ! generate the core kinetic energy density call gentaucr do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) np=npmt(is) ! add the core contribution taumt(1:np,ias,ispn)=taumt(1:np,ias,ispn)+taucr(1:np,ias,ispn) ! zero tau on the inner part of the muffin-tin taumt(1:npmti(is),ias,ispn)=0.d0 end do end do deallocate(rfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gentauk.f900000644000000000000000000000013213543334735014605 xustar0030 mtime=1569569245.164641603 30 atime=1569569241.404644005 30 ctime=1569569245.164641603 elk-6.3.2/src/gentauk.f900000644002504400250440000000561713543334735016665 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gentauk(ik) use modmain implicit none ! arguments integer, intent(in) :: ik ! local variables integer ispn,jspn,nst,ist,jst integer is,ias,nrc,nrci integer npc,igk,ifg,i real(8) wo complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgp(:,:,:) complex(8), allocatable :: gzfmt(:,:),zfmt(:),zfft(:) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) ! find the matching coefficients do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! count and index the occupied states nst=0 do ist=1,nstsv if (abs(occsv(ist,ik)).lt.epsocc) cycle nst=nst+1 idx(nst)=ist end do ! calculate the second-variational wavefunctions for occupied states allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfgp(ngkmax,nspinor,nst)) call genwfsv(.true.,.true.,nst,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgp) deallocate(apwalm,evecfv,evecsv) !-------------------------! ! muffin-tin part ! !-------------------------! allocate(gzfmt(npcmtmax,3),zfmt(npcmtmax)) do ist=1,nst jst=idx(ist) wo=0.5d0*wkpt(ik)*occsv(jst,ik) do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! compute the gradient of the wavefunction call gradzfmt(nrc,nrci,rlcmt(:,1,is),rlcmt(:,-1,is),wfmt(:,ias,ispn,ist),& npcmtmax,gzfmt) do i=1,3 ! convert gradient to spherical coordinates call zbsht(nrc,nrci,gzfmt(:,i),zfmt) ! add to total in muffin-tin !$OMP CRITICAL(gentauk_1) taumt(1:npc,ias,ispn)=taumt(1:npc,ias,ispn) & +wo*(dble(zfmt(1:npc))**2+aimag(zfmt(1:npc))**2) !$OMP END CRITICAL(gentauk_1) end do end do end do end do deallocate(wfmt,gzfmt,zfmt) !---------------------------! ! interstitial part ! !---------------------------! allocate(zfft(ngtot)) do ist=1,nst jst=idx(ist) wo=0.5d0*wkpt(ik)*occsv(jst,ik)/omega do ispn=1,nspinor jspn=jspnfv(ispn) do i=1,3 zfft(:)=0.d0 do igk=1,ngk(jspn,ik) ifg=igfft(igkig(igk,jspn,ik)) z1=wfgp(igk,ispn,ist) zfft(ifg)=vgkc(i,igk,jspn,ik)*cmplx(-aimag(z1),dble(z1),8) end do call zfftifc(3,ngridg,1,zfft) !$OMP CRITICAL(gentauk_2) tauir(:,ispn)=tauir(:,ispn)+wo*(dble(zfft(:))**2+aimag(zfft(:))**2) !$OMP END CRITICAL(gentauk_2) end do end do end do deallocate(wfgp,zfft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlistl.f900000644000000000000000000000012613543334735014626 xustar0028 mtime=1569569245.1696416 30 atime=1569569241.408644002 28 ctime=1569569245.1696416 elk-6.3.2/src/hmlistl.f900000644002504400250440000000326013543334735016673 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: hmlistl ! !INTERFACE: subroutine hmlistl(ngp,igpig,vgpc,ld,h) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ngp : number of G+p-vectors (in,integer) ! igpig : index from G+p-vectors to G-vectors (in,integer(ngkmax)) ! vgpc : G+p-vectors in Cartesian coordinates (in,real(3,ngkmax)) ! ld : leading dimension of h (in,integer) ! h : Hamiltonian matrix (inout,complex(*)) ! !DESCRIPTION: ! Computes the interstitial contribution to the Hamiltonian matrix for the APW ! basis functions. The Hamiltonian is given by ! $$ H^{\rm I}({\bf G+k,G'+k})=\frac{1}{2}({\bf G+k})\cdot({\bf G'+k}) ! \tilde{\Theta}({\bf G-G'})+V_s({\bf G-G'}), $$ ! where $V_s$ is the interstitial Kohn-Sham potential and $\tilde{\Theta}$ is ! the characteristic function. See routine {\tt gencfun}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngp,igpig(ngkmax) real(8), intent(in) :: vgpc(3,ngkmax) integer, intent(in) :: ld complex(8), intent(inout) :: h(*) ! local variables integer i1,i2,i3,j1,j2,j3 integer ig,i,j,k real(8) v1,v2,v3,t1 do j=1,ngp k=(j-1)*ld ig=igpig(j) j1=ivg(1,ig); j2=ivg(2,ig); j3=ivg(3,ig) v1=0.5d0*vgpc(1,j); v2=0.5d0*vgpc(2,j); v3=0.5d0*vgpc(3,j) do i=1,j k=k+1 ig=igpig(i) i1=ivg(1,ig)-j1; i2=ivg(2,ig)-j2; i3=ivg(3,ig)-j3 ig=ivgig(i1,i2,i3) t1=vgpc(1,i)*v1+vgpc(2,i)*v2+vgpc(3,i)*v3 h(k)=h(k)+vsig(ig)+t1*cfunig(ig) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/olpistl.f900000644000000000000000000000012713543334735014641 xustar0030 mtime=1569569245.173641597 27 atime=1569569241.412644 30 ctime=1569569245.173641597 elk-6.3.2/src/olpistl.f900000644002504400250440000000246013543334735016706 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: olpistl ! !INTERFACE: subroutine olpistl(ngp,igpig,ld,o) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ngp : number of G+p-vectors (in,integer) ! igpig : index from G+p-vectors to G-vectors (in,integer(ngkmax)) ! ld : leading dimension of o (in,integer) ! o : overlap matrix (inout,complex(*)) ! !DESCRIPTION: ! Computes the interstitial contribution to the overlap matrix for the APW ! basis functions. The overlap is given by ! $$ O^{\rm I}({\bf G+k,G'+k})=\tilde{\Theta}({\bf G-G'}), $$ ! where $\tilde{\Theta}$ is the characteristic function. See routine ! {\tt gencfun}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngp,igpig(ngkmax) integer, intent(in) :: ld complex(8), intent(inout) :: o(*) ! local variables integer i1,i2,i3,j1,j2,j3 integer ig,i,j,k do j=1,ngp k=(j-1)*ld ig=igpig(j) j1=ivg(1,ig); j2=ivg(2,ig); j3=ivg(3,ig) do i=1,j k=k+1 ig=igpig(i) i1=ivg(1,ig)-j1; i2=ivg(2,ig)-j2; i3=ivg(3,ig)-j3 o(k)=o(k)+cfunig(ivgig(i1,i2,i3)) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gengclg.f900000644000000000000000000000013213543334735014555 xustar0030 mtime=1569569245.177641595 30 atime=1569569241.417643996 30 ctime=1569569245.177641595 elk-6.3.2/src/gengclg.f900000644002504400250440000000060213543334735016622 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengclg use modmain implicit none ! local variables if (allocated(gclg)) deallocate(gclg) allocate(gclg(ngvec)) gclg(1)=0.d0 gclg(2:ngvec)=fourpi/gc(2:ngvec)**2 return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlrad.f900000644000000000000000000000013213543334735014416 xustar0030 mtime=1569569245.182641592 30 atime=1569569241.421643994 30 ctime=1569569245.182641592 elk-6.3.2/src/hmlrad.f900000644002504400250440000001426013543334735016470 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2016 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: hmlrad ! !INTERFACE: subroutine hmlrad ! !USES: use modmain use modomp ! !DESCRIPTION: ! Calculates the radial Hamiltonian integrals of the APW and local-orbital ! basis functions. In other words, for atom $\alpha$, it computes integrals of ! the form ! $$ h^{\alpha}_{qq';ll'l''m''}=\begin{cases} ! \int_0^{R_i}u^{\alpha}_{q;l}(r)H u^{\alpha}_{q';l'}(r)r^2dr & l''=0 \\ ! \int_0^{R_i}u^{\alpha}_{q;l}(r)V^{\alpha}_{l''m''}(r) ! u^{\alpha}_{q';l'}(r)r^2dr & l''>0 \end{cases}, $$ ! where $u^{\alpha}_{q;l}$ is the $q$th APW radial function for angular ! momentum $l$; $H$ is the Hamiltonian of the radial Schr\"{o}dinger equation; ! and $V^{\alpha}_{l''m''}$ is the muffin-tin Kohn-Sham potential. Similar ! integrals are calculated for APW-local-orbital and ! local-orbital-local-orbital contributions. ! ! !REVISION HISTORY: ! Created December 2003 (JKD) ! Updated for compressed muffin-tin functions, March 2016 (JKD) !EOP !BOC implicit none ! local variables integer is,ias,nthd integer nr,nri,iro integer ir,npi,i integer l1,l2,l3,m2,lm2 integer io,jo,ilo,jlo real(8) t1 ! allocatable arrays real(8), allocatable :: fr(:) ! begin loops over atoms and species call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(fr,is,nr,nri,iro,npi) & !$OMP PRIVATE(l1,l2,l3,io,jo,ir,t1) & !$OMP PRIVATE(lm2,m2,i,ilo,jlo) & !$OMP NUM_THREADS(nthd) allocate(fr(nrmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 npi=npmti(is) !---------------------------! ! APW-APW integrals ! !---------------------------! do l1=0,lmaxapw do io=1,apword(l1,is) do l3=0,lmaxapw do jo=1,apword(l3,is) if (l1.eq.l3) then fr(1:nr)=apwfr(1:nr,1,io,l1,ias)*apwfr(1:nr,2,jo,l3,ias) t1=dot_product(wrmt(1:nr,is),fr(1:nr)) haa(1,jo,l3,io,l1,ias)=t1/y00 else haa(1,jo,l3,io,l1,ias)=0.d0 end if if (l1.ge.l3) then lm2=1 do l2=1,lmaxi do m2=-l2,l2 lm2=lm2+1 i=lm2 do ir=1,nri t1=apwfr(ir,1,io,l1,ias)*apwfr(ir,1,jo,l3,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxi end do do ir=iro,nr t1=apwfr(ir,1,io,l1,ias)*apwfr(ir,1,jo,l3,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxo end do t1=dot_product(wrmt(1:nr,is),fr(1:nr)) haa(lm2,jo,l3,io,l1,ias)=t1 haa(lm2,io,l1,jo,l3,ias)=t1 end do end do do l2=lmaxi+1,lmaxo do m2=-l2,l2 lm2=lm2+1 i=npi+lm2 do ir=iro,nr t1=apwfr(ir,1,io,l1,ias)*apwfr(ir,1,jo,l3,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxo end do t1=dot_product(wrmt(iro:nr,is),fr(iro:nr)) haa(lm2,jo,l3,io,l1,ias)=t1 haa(lm2,io,l1,jo,l3,ias)=t1 end do end do end if end do end do end do end do !-------------------------------------! ! local-orbital-APW integrals ! !-------------------------------------! do ilo=1,nlorb(is) l1=lorbl(ilo,is) do l3=0,lmaxapw do io=1,apword(l3,is) if (l1.eq.l3) then fr(1:nr)=lofr(1:nr,1,ilo,ias)*apwfr(1:nr,2,io,l3,ias) t1=dot_product(wrmt(1:nr,is),fr(1:nr)) hloa(1,io,l3,ilo,ias)=t1/y00 else hloa(1,io,l3,ilo,ias)=0.d0 end if lm2=1 do l2=1,lmaxi do m2=-l2,l2 lm2=lm2+1 i=lm2 do ir=1,nri t1=lofr(ir,1,ilo,ias)*apwfr(ir,1,io,l3,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxi end do do ir=nri+1,nr t1=lofr(ir,1,ilo,ias)*apwfr(ir,1,io,l3,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxo end do t1=dot_product(wrmt(1:nr,is),fr(1:nr)) hloa(lm2,io,l3,ilo,ias)=t1 end do end do do l2=lmaxi+1,lmaxo do m2=-l2,l2 lm2=lm2+1 i=npi+lm2 do ir=iro,nr t1=lofr(ir,1,ilo,ias)*apwfr(ir,1,io,l3,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxo end do t1=dot_product(wrmt(iro:nr,is),fr(iro:nr)) hloa(lm2,io,l3,ilo,ias)=t1 end do end do end do end do end do !-----------------------------------------------! ! local-orbital-local-orbital integrals ! !-----------------------------------------------! do ilo=1,nlorb(is) l1=lorbl(ilo,is) do jlo=1,nlorb(is) l3=lorbl(jlo,is) if (l1.eq.l3) then fr(1:nr)=lofr(1:nr,1,ilo,ias)*lofr(1:nr,2,jlo,ias) t1=dot_product(wrmt(1:nr,is),fr(1:nr)) hlolo(1,jlo,ilo,ias)=t1/y00 else hlolo(1,jlo,ilo,ias)=0.d0 end if lm2=1 do l2=1,lmaxi do m2=-l2,l2 lm2=lm2+1 i=lm2 do ir=1,nri t1=lofr(ir,1,ilo,ias)*lofr(ir,1,jlo,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxi end do do ir=iro,nr t1=lofr(ir,1,ilo,ias)*lofr(ir,1,jlo,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxo end do t1=dot_product(wrmt(1:nr,is),fr(1:nr)) hlolo(lm2,jlo,ilo,ias)=t1 end do end do do l2=lmaxi+1,lmaxo do m2=-l2,l2 lm2=lm2+1 i=npi+lm2 do ir=iro,nr t1=lofr(ir,1,ilo,ias)*lofr(ir,1,jlo,ias) fr(ir)=t1*vsmt(i,ias) i=i+lmmaxo end do t1=dot_product(wrmt(iro:nr,is),fr(iro:nr)) hlolo(lm2,jlo,ilo,ias)=t1 end do end do end do end do ! end loops over atoms and species end do !$OMP END DO deallocate(fr) !$OMP END PARALLEL call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rhonorm.f900000644000000000000000000000013213543334735014633 xustar0030 mtime=1569569245.186641589 30 atime=1569569241.426643991 30 ctime=1569569245.186641589 elk-6.3.2/src/rhonorm.f900000644002504400250440000000340413543334735016703 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rhonorm ! !INTERFACE: subroutine rhonorm ! !USES: use modmain ! !DESCRIPTION: ! Loss of precision of the calculated total charge can result because the ! muffin-tin density is computed on a set of $(\theta,\phi)$ points and then ! transformed to a spherical harmonic representation. This routine adds a ! constant to the density so that the total charge is correct. If the error in ! total charge exceeds a certain tolerance then a warning is issued. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Changed from rescaling to adding, September 2006 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ias integer nr,nri,ir,i real(8) t1,t2 if (.not.trhonorm) return ! check error in total charge t1=chgcalc/chgtot-1.d0 if (abs(t1).gt.epschg) then write(*,*) write(*,'("Warning(rhonorm): total charge density incorrect for s.c. & &loop ",I5)') iscl write(*,'(" Calculated : ",G18.10)') chgcalc write(*,'(" Required : ",G18.10)') chgtot end if ! error in average density t1=(chgtot-chgcalc)/omega ! add the constant difference to the density t2=t1/y00 do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) i=1 do ir=1,nri rhomt(i,ias)=rhomt(i,ias)+t2 i=i+lmmaxi end do do ir=nri+1,nr rhomt(i,ias)=rhomt(i,ias)+t2 i=i+lmmaxo end do end do rhoir(:)=rhoir(:)+t1 ! add the difference to the charges do is=1,nspecies t2=t1*(4.d0*pi/3.d0)*rmt(is)**3 do ia=1,natoms(is) ias=idxas(ia,is) chgmt(ias)=chgmt(ias)+t2 chgmttot=chgmttot+t2 end do end do chgir=chgtot-chgmttot return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfmtsm.f900000644000000000000000000000013213543334735014457 xustar0030 mtime=1569569245.191641586 30 atime=1569569241.430643988 30 ctime=1569569245.191641586 elk-6.3.2/src/rfmtsm.f900000644002504400250440000000172513543334735016533 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfmtsm(m,nr,nri,rfmt) use modmain implicit none ! arguments integer, intent(in) :: m,nr,nri real(8), intent(inout) :: rfmt(*) ! local variables integer nro,iro,ir integer lm,npi,i ! automatic arrays real(8) fr(nr) if (m.le.0) return nro=nr-nri iro=nri+1 npi=lmmaxi*nri do lm=1,lmmaxi i=lm do ir=1,nri fr(ir)=rfmt(i) i=i+lmmaxi end do do ir=iro,nr fr(ir)=rfmt(i) i=i+lmmaxo end do call fsmooth(m,nr,fr) i=lm do ir=1,nri rfmt(i)=fr(ir) i=i+lmmaxi end do do ir=iro,nr rfmt(i)=fr(ir) i=i+lmmaxo end do end do do lm=lmmaxi+1,lmmaxo i=npi+lm do ir=iro,nr fr(ir)=rfmt(i) i=i+lmmaxo end do call fsmooth(m,nro,fr(iro)) i=npi+lm do ir=iro,nr rfmt(i)=fr(ir) i=i+lmmaxo end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/olplolo.f900000644000000000000000000000013213543334735014627 xustar0030 mtime=1569569245.195641583 30 atime=1569569241.434643985 30 ctime=1569569245.195641583 elk-6.3.2/src/olplolo.f900000644002504400250440000000135613543334735016703 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine olplolo(ias,ngp,ld,o) use modmain implicit none ! arguments integer, intent(in) :: ias,ngp,ld complex(8), intent(inout) :: o(ld,*) ! local variables integer is,ilo,jlo integer l,m,lm,i,j is=idxis(ias) do ilo=1,nlorb(is) l=lorbl(ilo,is) do jlo=1,nlorb(is) if (lorbl(jlo,is).eq.l) then do m=-l,l lm=idxlm(l,m) i=ngp+idxlo(lm,ilo,ias) j=ngp+idxlo(lm,jlo,ias) if (i.le.j) then o(i,j)=o(i,j)+ololo(ilo,jlo,ias) end if end do end if end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/genshtmat.f900000644000000000000000000000013213543334735015141 xustar0030 mtime=1569569245.199641581 30 atime=1569569241.438643983 30 ctime=1569569245.199641581 elk-6.3.2/src/genshtmat.f900000644002504400250440000000622613543334735017216 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genshtmat ! !INTERFACE: subroutine genshtmat ! !USES: use modmain ! !DESCRIPTION: ! Generates the forward and backward spherical harmonic transformation (SHT) ! matrices using the spherical covering set produced by the routine ! {\tt sphcover}. These matrices are used to transform a function between its ! $(l,m)$-expansion coefficients and its values at the $(\theta,\phi)$ points ! on the sphere. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! local variables integer itp real(8) v(3) ! automatic arrays real(8) tp(2,lmmaxo),vtp(3,lmmaxo),rlm(lmmaxo) complex(8) ylm(lmmaxo) !--------------------------------! ! SHT matrices for lmaxo ! !--------------------------------! ! allocate real SHT matrices if (allocated(rbshto)) deallocate(rbshto) allocate(rbshto(lmmaxo,lmmaxo)) if (allocated(rfshto)) deallocate(rfshto) allocate(rfshto(lmmaxo,lmmaxo)) ! allocate complex SHT matrices if (allocated(zbshto)) deallocate(zbshto) allocate(zbshto(lmmaxo,lmmaxo)) if (allocated(zfshto)) deallocate(zfshto) allocate(zfshto(lmmaxo,lmmaxo)) ! generate spherical covering set call sphcover(lmmaxo,tp) ! convert (theta, phi) angles to vectors do itp=1,lmmaxo call sctovec(tp(:,itp),vtp(:,itp)) end do ! rotate the spherical covering set if required if (trotsht) then do itp=1,lmmaxo v(:)=vtp(:,itp) call r3mv(rotsht,v,vtp(:,itp)) end do end if ! generate real and complex spherical harmonics and set the backward SHT arrays do itp=1,lmmaxo call genrlmv(lmaxo,vtp(:,itp),rlm) rbshto(itp,1:lmmaxo)=rlm(1:lmmaxo) call genylmv(lmaxo,vtp(:,itp),ylm) zbshto(itp,1:lmmaxo)=ylm(1:lmmaxo) end do ! find the forward SHT arrays ! real rfshto(:,:)=rbshto(:,:) call rminv(lmmaxo,rfshto) ! complex zfshto(:,:)=zbshto(:,:) call zminv(lmmaxo,zfshto) !--------------------------------! ! SHT matrices for lmaxi ! !--------------------------------! ! allocate real SHT matrices if (allocated(rbshti)) deallocate(rbshti) allocate(rbshti(lmmaxi,lmmaxi)) if (allocated(rfshti)) deallocate(rfshti) allocate(rfshti(lmmaxi,lmmaxi)) ! allocate complex SHT matrices if (allocated(zbshti)) deallocate(zbshti) allocate(zbshti(lmmaxi,lmmaxi)) if (allocated(zfshti)) deallocate(zfshti) allocate(zfshti(lmmaxi,lmmaxi)) ! generate spherical covering set for lmaxi call sphcover(lmmaxi,tp) ! convert (theta, phi) angles to vectors do itp=1,lmmaxi call sctovec(tp(:,itp),vtp(:,itp)) end do ! rotate the spherical covering set if required if (trotsht) then do itp=1,lmmaxi v(:)=vtp(:,itp) call r3mv(rotsht,v,vtp(:,itp)) end do end if ! generate real and complex spherical harmonics and set the backward SHT arrays do itp=1,lmmaxi call genrlmv(lmaxi,vtp(:,itp),rlm) rbshti(itp,1:lmmaxi)=rlm(1:lmmaxi) call genylmv(lmaxi,vtp(:,itp),ylm) zbshti(itp,1:lmmaxi)=ylm(1:lmmaxi) end do ! find the forward SHT arrays ! real rfshti(:,:)=rbshti(:,:) call rminv(lmmaxi,rfshti) ! complex zfshti(:,:)=zbshti(:,:) call zminv(lmmaxi,zfshti) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/allatoms.f900000644000000000000000000000013113543334735014762 xustar0030 mtime=1569569245.204641577 29 atime=1569569241.44364398 30 ctime=1569569245.204641577 elk-6.3.2/src/allatoms.f900000644002504400250440000000357113543334735017040 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: allatoms ! !INTERFACE: subroutine allatoms ! !USES: use modmain use modxcifc use modomp ! !DESCRIPTION: ! Solves the Kohn-Sham-Dirac equations for each atom type in the solid and ! finds the self-consistent radial wavefunctions, eigenvalues, charge ! densities and potentials. The atomic densities can then be used to ! initialise the crystal densities, and the atomic self-consistent potentials ! can be appended to the muffin-tin potentials to solve for the core states. ! Note that, irrespective of the value of {\tt xctype}, exchange-correlation ! functional type 3 is used. See also {\tt atoms}, {\tt rhoinit}, ! {\tt gencore} and {\tt modxcifc}. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) ! Modified for GGA, June 2007 (JKD) !EOP !BOC implicit none logical hybrid_ integer xcspin_,xcgrad_ integer is,nthd real(8) hybridc_ character(512) xcdescr_ ! allocatable arrays real(8), allocatable :: rwf(:,:,:) ! allocate global species charge density and potential arrays if (allocated(rhosp)) deallocate(rhosp) allocate(rhosp(nrspmax,nspecies)) if (allocated(vrsp)) deallocate(vrsp) allocate(vrsp(nrspmax,nspecies)) ! get the exchange-correlation functional data call getxcdata(xctsp,xcdescr_,xcspin_,xcgrad_,hybrid_,hybridc_) call holdthd(nspecies,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rwf) & !$OMP NUM_THREADS(nthd) allocate(rwf(nrspmax,2,nstspmax)) !$OMP DO do is=1,nspecies call atom(solsc,ptnucl,spzn(is),nstsp(is),nsp(:,is),lsp(:,is),ksp(:,is), & occsp(:,is),xctsp,xcgrad_,nrsp(is),rsp(:,is),evalsp(:,is),rhosp(:,is), & vrsp(:,is),rwf) end do !$OMP END DO deallocate(rwf) !$OMP END PARALLEL call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rtozflm.f900000644000000000000000000000013213543334735014644 xustar0030 mtime=1569569245.208641575 30 atime=1569569241.447643977 30 ctime=1569569245.208641575 elk-6.3.2/src/rtozflm.f900000644002504400250440000000327513543334735016722 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rtozflm ! !INTERFACE: pure subroutine rtozflm(lmax,rflm,zflm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! rflm : coefficients of real spherical harmonic expansion ! (in,real((lmax+1)**2))) ! zflm : coefficients of complex spherical harmonic expansion ! (out,complex((lmax+1)**2))) ! !DESCRIPTION: ! Converts a real function, $r_{lm}$, expanded in terms of real spherical ! harmonics into a complex spherical harmonic expansion, $z_{lm}$: ! $$ z_{lm}=\begin{cases} \frac{1}{\sqrt{2}}(r_{lm}+i(-1)^mr_{l-m}) & m>0 \\ ! \frac{1}{\sqrt{2}}((-1)^mr_{l-m}-ir_{lm}) & m<0 \\ ! r_{lm} & m=0 \end{cases}\;. $$ ! See routine {\tt genrlm}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax real(8), intent(in) :: rflm(*) complex(8), intent(out) :: zflm(*) ! local variables integer l,m,lm1,lm2 ! real constant 1/sqrt(2) real(8), parameter :: c1=0.7071067811865475244d0 lm1=0 do l=0,lmax lm2=lm1+2*(l+1) do m=-l,-1 lm1=lm1+1 lm2=lm2-1 if (mod(m,2).ne.0) then zflm(lm1)=c1*cmplx(-rflm(lm2),-rflm(lm1),8) else zflm(lm1)=c1*cmplx(rflm(lm2),-rflm(lm1),8) end if end do lm1=lm1+1 lm2=lm2-1 zflm(lm1)=rflm(lm1) do m=1,l lm1=lm1+1 lm2=lm2-1 if (mod(m,2).ne.0) then zflm(lm1)=c1*cmplx(rflm(lm1),-rflm(lm2),8) else zflm(lm1)=c1*cmplx(rflm(lm1),rflm(lm2),8) end if end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rtozfmt.f900000644000000000000000000000013213543334735014654 xustar0030 mtime=1569569245.212641572 30 atime=1569569241.452643974 30 ctime=1569569245.212641572 elk-6.3.2/src/rtozfmt.f900000644002504400250440000000106313543334735016723 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rtozfmt(nr,nri,rfmt,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: rfmt(*) complex(8), intent(out) :: zfmt(*) ! local variables integer ir,i i=1 do ir=1,nri call rtozflm(lmaxi,rfmt(i),zfmt(i)) i=i+lmmaxi end do do ir=nri+1,nr call rtozflm(lmaxo,rfmt(i),zfmt(i)) i=i+lmmaxo end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gauntyry.f900000644000000000000000000000013013543334735015027 xustar0029 mtime=1569569245.21664157 30 atime=1569569241.456643971 29 ctime=1569569245.21664157 elk-6.3.2/src/gauntyry.f900000644002504400250440000000303413543334735017100 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gauntyry ! !INTERFACE: complex(8) function gauntyry(l1,l2,l3,m1,m2,m3) ! !INPUT/OUTPUT PARAMETERS: ! l1, l2, l3 : angular momentum quantum numbers (in,integer) ! m1, m2, m3 : magnetic quantum numbers (in,integer) ! !DESCRIPTION: ! Returns the complex Gaunt-like coefficient given by ! $\langle Y^{l_1}_{m_1}|R^{l_2}_{m_2}|Y^{l_3}_{m_3}\rangle$, where $Y_{lm}$ ! and $R_{lm}$ are the complex and real spherical harmonics, respectively. ! Suitable for $l_i$ less than 50. See routine {\tt genrlm}. ! ! !REVISION HISTORY: ! Created November 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: l1,l2,l3 integer, intent(in) :: m1,m2,m3 ! local variables ! real constant sqrt(2)/2 real(8), parameter :: c1=0.7071067811865475244d0 real(8) t1 ! external functions real(8) gaunt external gaunt if (m2.gt.0) then if (mod(m2,2).eq.0) then t1=c1*(gaunt(l1,l2,l3,m1,m2,m3)+gaunt(l1,l2,l3,m1,-m2,m3)) else t1=c1*(gaunt(l1,l2,l3,m1,m2,m3)-gaunt(l1,l2,l3,m1,-m2,m3)) end if gauntyry=cmplx(t1,0.d0,8) else if (m2.lt.0) then if (mod(m2,2).eq.0) then t1=c1*(gaunt(l1,l2,l3,m1,m2,m3)-gaunt(l1,l2,l3,m1,-m2,m3)) else t1=c1*(gaunt(l1,l2,l3,m1,m2,m3)+gaunt(l1,l2,l3,m1,-m2,m3)) end if gauntyry=cmplx(0.d0,-t1,8) else gauntyry=cmplx(gaunt(l1,l2,l3,m1,m2,m3),0.d0,8) end if return end function !EOC elk-6.3.2/src/PaxHeaders.21352/fderiv.f900000644000000000000000000000013213543334735014426 xustar0030 mtime=1569569245.221641567 30 atime=1569569241.460643969 30 ctime=1569569245.221641567 elk-6.3.2/src/fderiv.f900000644002504400250440000000327013543334735016477 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: fderiv ! !INTERFACE: subroutine fderiv(m,n,x,f,g) ! !INPUT/OUTPUT PARAMETERS: ! m : order of derivative (in,integer) ! n : number of points (in,integer) ! x : abscissa array (in,real(n)) ! f : function array (in,real(n)) ! g : (anti-)derivative of f (out,real(n)) ! !DESCRIPTION: ! Given function $f$ defined on a set of points $x_i$ then if $m\ge 0$ this ! routine computes the $m$th derivative of $f$ at each point. If $m=-1$ the ! anti-derivative of $f$ given by ! $$ g(x_i)=\int_{x_1}^{x_i} f(x)\,dx $$ ! is calculated. Both derivatives and integrals are computed by first fitting ! the function to a clamped cubic spline. ! ! !REVISION HISTORY: ! Created May 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: m,n real(8), intent(in) :: x(n),f(n) real(8), intent(out) :: g(n) ! local variables integer i real(8) sum,dx ! automatic arrays real(8) cf(3,n) if (n.le.0) then write(*,*) write(*,'("Error(fderiv): invalid number of points : ",I8)') n write(*,*) stop end if ! high accuracy integration/differentiation from spline interpolation call spline(n,x,f,cf) select case(m) case(:-1) sum=0.d0 g(1)=0.d0 do i=1,n-1 dx=x(i+1)-x(i) sum=sum+dx*(f(i) & +dx*(0.5d0*cf(1,i) & +dx*(0.3333333333333333333d0*cf(2,i) & +dx*0.25d0*cf(3,i)))) g(i+1)=sum end do case(1) g(:)=cf(1,:) case(2) g(:)=2.d0*cf(2,:) case(3) g(:)=6.d0*cf(3,:) case(4:) g(:)=0.d0 end select return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/moment.f900000644000000000000000000000013213543334735014446 xustar0030 mtime=1569569245.225641564 30 atime=1569569241.465643966 30 ctime=1569569245.225641564 elk-6.3.2/src/moment.f900000644002504400250440000000277513543334735016530 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: moment ! !INTERFACE: subroutine moment ! !USES: use modmain use modtest ! !DESCRIPTION: ! Computes the muffin-tin, interstitial and total moments by integrating the ! magnetisation. ! ! !REVISION HISTORY: ! Created January 2005 (JKD) !EOP !BOC implicit none ! local variables integer idm,is,ias,nr,nri real(8) t1 ! automatic arrays real(8) fr(nrmtmax) if (.not.spinpol) then mommt(:,:)=0.d0 mommttot(:)=0.d0 momir(:)=0.d0 momtot(:)=0.d0 return end if ! find the muffin-tin moments mommttot(:)=0.d0 do idm=1,ndmag do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) ! extract the l=m=0 component from the muffin-tin magnetisation call rfmtlm(1,nr,nri,magmt(:,ias,idm),fr) ! integrate to the muffin-tin radius t1=dot_product(wrmt(1:nr,is),fr(1:nr)) mommt(idm,ias)=fourpi*y00*t1 mommttot(idm)=mommttot(idm)+mommt(idm,ias) end do end do ! find the interstitial moments do idm=1,ndmag t1=dot_product(magir(:,idm),cfunir(:)) momir(idm)=t1*omega/dble(ngtot) end do momtot(:)=mommttot(:)+momir(:) ! total moment magnitude if (ncmag) then momtotm=sqrt(momtot(1)**2+momtot(2)**2+momtot(3)**2) else momtotm=abs(momtot(1)) end if ! write total moment magnitude to test file call writetest(450,'total moment magnitude',tol=1.d-3,rv=momtotm) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/sctovec.f900000644000000000000000000000013213543334735014615 xustar0030 mtime=1569569245.229641562 30 atime=1569569241.469643963 30 ctime=1569569245.229641562 elk-6.3.2/src/sctovec.f900000644002504400250440000000064413543334735016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine sctovec(tp,v) implicit none ! arguments real(8), intent(in) :: tp(2) real(8), intent(out) :: v(3) ! local variables real(8) t1 t1=sin(tp(1)) v(1)=t1*cos(tp(2)) v(2)=t1*sin(tp(2)) v(3)=cos(tp(1)) return end subroutine elk-6.3.2/src/PaxHeaders.21352/match.f900000644000000000000000000000013213543334735014243 xustar0030 mtime=1569569245.234641558 30 atime=1569569241.473643961 30 ctime=1569569245.234641558 elk-6.3.2/src/match.f900000644002504400250440000001227613543334735016322 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: match ! !INTERFACE: subroutine match(ngp,vgpc,gpc,sfacgp,apwalm) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ngp : number of G+p-vectors (in,integer) ! vgpc : G+p-vectors in Cartesian coordinates (in,real(3,ngkmax)) ! gpc : length of G+p-vectors (in,real(ngkmax)) ! sfacgp : structure factors of G+p-vectors (in,complex(ngkmax,natmtot)) ! apwalm : APW matching coefficients ! (out,complex(ngkmax,apwordmax,lmmaxapw,natmtot)) ! !DESCRIPTION: ! Computes the $({\bf G+p})$-dependent matching coefficients for the APW basis ! functions. Inside muffin-tin $\alpha$, the APW functions are given by ! $$ \phi^{\alpha}_{\bf G+p}({\bf r})=\sum_{l=0}^{l_{\rm max}} ! \sum_{m=-l}^{l}\sum_{j=1}^{M^{\alpha}_l}A^{\alpha}_{jlm}({\bf G+p}) ! u^{\alpha}_{jl}(r)Y_{lm}(\hat{{\bf r}}), $$ ! where $A^{\alpha}_{jlm}({\bf G+p})$ is the matching coefficient, ! $M^{\alpha}_l$ is the order of the APW and $u^{\alpha}_{jl}$ is the radial ! function. In the interstitial region, an APW function is a plane wave, ! $\exp(i({\bf G+p})\cdot{\bf r})/\sqrt{\Omega}$, where $\Omega$ is the unit ! cell volume. Ensuring continuity up to the $(M^{\alpha}_l-1)$th derivative ! across the muffin-tin boundary therefore requires that the matching ! coefficients satisfy ! $$ \sum_{j=1}^{M^{\alpha}_l}D_{ij}A^{\alpha}_{jlm}({\bf G+p})=b_i\;, $$ ! where ! $$ D_{ij}=\left.\frac{d^{i-1}u^{\alpha}_{jl}(r)}{dr^{i-1}} ! \right|_{r=R_{\alpha}} $$ ! and ! $$ b_i=\frac{4\pi i^l}{\sqrt{\Omega}}|{\bf G+p}|^{i-1}j^{(i-1)}_l ! (|{\bf G+p}|R_{\alpha})\exp(i({\bf G+p})\cdot{\bf r}_{\alpha})Y^*_{lm} ! (\widehat{{\bf G+p}}), $$ ! with ${\bf r}_{\alpha}$ the atomic position and $R_{\alpha}$ the muffin-tin ! radius. See routine {\tt wavefmt}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Fixed documentation, June 2006 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngp real(8), intent(in) :: vgpc(3,ngkmax),gpc(ngkmax) complex(8), intent(in) :: sfacgp(ngkmax,natmtot) complex(8), intent(out) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) ! local variables integer is,ia,ias,omax integer l,m,lm,io,jo,i integer nr,ir,igp,info real(8) t0,t1 complex(8) z1,z2,z3 ! automatic arrays integer ipiv(apwordmax) complex(8) a(apwordmax,apwordmax) ! allocatable arrays real(8), allocatable :: djl(:,:,:) complex(8), allocatable :: ylmgp(:,:),b(:,:) ! external functions real(8) polynm external polynm allocate(djl(0:lmaxapw,apwordmax,ngp),ylmgp(lmmaxapw,ngp)) if (apwordmax.gt.1) allocate(b(apwordmax,ngp*(2*lmaxapw+1))) ! compute the spherical harmonics of the G+p-vectors do igp=1,ngp call genylmv(lmaxapw,vgpc(:,igp),ylmgp(:,igp)) end do t0=fourpi/sqrt(omega) ! loop over species do is=1,nspecies nr=nrmt(is) ! maximum APW order for this species omax=maxval(apword(1:lmaxapw,is)) ! special case of omax=1 if (omax.eq.1) then do igp=1,ngp t1=gpc(igp)*rmt(is) call sbessel(lmaxapw,t1,djl(:,1,igp)) end do do ia=1,natoms(is) ias=idxas(ia,is) do l=0,lmaxapw z1=(t0/apwfr(nr,1,1,l,ias))*zil(l) do igp=1,ngp z2=djl(l,1,igp)*z1*sfacgp(igp,ias) do m=-l,l lm=idxlm(l,m) apwalm(igp,1,lm,ias)=z2*conjg(ylmgp(lm,igp)) end do end do end do end do cycle end if ! starting point on radial mesh for fitting polynomial of order npapw ir=nr-npapw+1 ! evaluate the spherical Bessel function derivatives for all G+p-vectors do igp=1,ngp t1=gpc(igp)*rmt(is) do io=1,omax call sbesseldm(io-1,lmaxapw,t1,djl(:,io,igp)) end do t1=1.d0 do io=2,omax t1=t1*gpc(igp) djl(:,io,igp)=t1*djl(:,io,igp) end do end do ! loop over atoms do ia=1,natoms(is) ias=idxas(ia,is) ! begin loop over l do l=0,lmaxapw z1=t0*zil(l) ! set up matrix of derivatives do jo=1,apword(l,is) do io=1,apword(l,is) a(io,jo)=polynm(io-1,npapw,rsp(ir,is),apwfr(ir,1,jo,l,ias),rmt(is)) end do end do ! set up target vectors i=0 do igp=1,ngp z2=z1*sfacgp(igp,ias) do m=-l,l lm=idxlm(l,m) i=i+1 z3=z2*conjg(ylmgp(lm,igp)) do io=1,apword(l,is) b(io,i)=djl(l,io,igp)*z3 end do end do end do ! solve the general complex linear systems call zgesv(apword(l,is),i,a,apwordmax,ipiv,b,apwordmax,info) if (info.ne.0) then write(*,*) write(*,'("Error(match): could not find APW matching coefficients")') write(*,'(" for species ",I4," and atom ",I4)') is,ia write(*,'(" ZGESV returned INFO = ",I8)') info write(*,*) stop end if i=0 do igp=1,ngp do m=-l,l lm=idxlm(l,m) i=i+1 do io=1,apword(l,is) apwalm(igp,io,lm,ias)=b(io,i) end do end do end do ! end loop over l end do ! end loops over atoms and species end do end do deallocate(djl,ylmgp) if (apwordmax.gt.1) deallocate(b) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writeinfo.f900000644000000000000000000000013213543334735015155 xustar0030 mtime=1569569245.239641555 30 atime=1569569241.478643957 30 ctime=1569569245.239641555 elk-6.3.2/src/writeinfo.f900000644002504400250440000003314113543334735017226 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2009 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writeinfo ! !INTERFACE: subroutine writeinfo(fnum) ! !USES: use modmain use moddftu use modrdm use modxcifc use modmpi ! !INPUT/OUTPUT PARAMETERS: ! fnum : unit specifier for INFO.OUT file (in,integer) ! !DESCRIPTION: ! Outputs basic information about the run to the file {\tt INFO.OUT}. Does not ! close the file afterwards. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) ! Updated with DFT+U quantities July 2009 (FC) !EOP !BOC implicit none ! arguments integer fnum ! local variables integer i,is,ia,k,l character(10) dat,tim write(fnum,'("+----------------------------+")') write(fnum,'("| Elk version ",I1.1,".",I1.1,".",I2.2," started |")') version write(fnum,'("+----------------------------+")') call date_and_time(date=dat,time=tim) write(fnum,*) write(fnum,'("Date (YYYY-MM-DD) : ",A4,"-",A2,"-",A2)') dat(1:4),dat(5:6), & dat(7:8) write(fnum,'("Time (hh:mm:ss) : ",A2,":",A2,":",A2)') tim(1:2),tim(3:4), & tim(5:6) if (np_mpi.gt.1) then write(fnum,*) write(fnum,'("Using MPI, number of processes : ",I8)') np_mpi end if if (notelns.gt.0) then write(fnum,*) write(fnum,'("Notes :")') do i=1,notelns write(fnum,'(A)') trim(notes(i)) end do end if write(fnum,*) write(fnum,'("All units are atomic (Hartree, Bohr, etc.)")') write(fnum,*) select case(task) case(0,1,28,29,200,201,350,351,360,440) if (trdstate) then write(fnum,'("+------------------------------------------+")') write(fnum,'("| Ground-state run resuming from STATE.OUT |")') write(fnum,'("+------------------------------------------+")') else write(fnum,'("+-------------------------------------------------+")') write(fnum,'("| Ground-state run starting from atomic densities |")') write(fnum,'("+-------------------------------------------------+")') end if case(2,3) if (trdstate) then write(fnum,'("+---------------------------------------------------+")') write(fnum,'("| Geometry optimisation run resuming from STATE.OUT |")') write(fnum,'("+---------------------------------------------------+")') else write(fnum,'("+------------------------------------------------------+")') write(fnum,'("| Geometry optimisation starting from atomic densities |")') write(fnum,'("+------------------------------------------------------+")') end if case(5) write(fnum,'("+-------------------------------+")') write(fnum,'("| Ground-state Hartree-Fock run |")') write(fnum,'("+-------------------------------+")') case(300) write(fnum,'("+----------------------------------------------+")') write(fnum,'("| Reduced density matrix functional theory run |")') write(fnum,'("+----------------------------------------------+")') case default write(*,*) write(*,'("Error(writeinfo): task not defined : ",I8)') task write(*,*) stop end select write(fnum,*) write(fnum,'("Lattice vectors :")') write(fnum,'(3G18.10)') avec(1,1),avec(2,1),avec(3,1) write(fnum,'(3G18.10)') avec(1,2),avec(2,2),avec(3,2) write(fnum,'(3G18.10)') avec(1,3),avec(2,3),avec(3,3) write(fnum,*) write(fnum,'("Reciprocal lattice vectors :")') write(fnum,'(3G18.10)') bvec(1,1),bvec(2,1),bvec(3,1) write(fnum,'(3G18.10)') bvec(1,2),bvec(2,2),bvec(3,2) write(fnum,'(3G18.10)') bvec(1,3),bvec(2,3),bvec(3,3) write(fnum,*) write(fnum,'("Unit cell volume : ",G18.10)') omega write(fnum,'("Brillouin zone volume : ",G18.10)') omegabz write(fnum,*) write(fnum,'("Muffin-tin inner radius fraction : ",G18.10)') fracinr do is=1,nspecies write(fnum,*) write(fnum,'("Species : ",I4," (",A,")")') is,trim(spsymb(is)) write(fnum,'(" parameters loaded from : ",A)') trim(spfname(is)) write(fnum,'(" name : ",A)') trim(spname(is)) write(fnum,'(" nuclear charge : ",G18.10)') spzn(is) write(fnum,'(" electronic charge : ",G18.10)') spze(is) write(fnum,'(" atomic mass : ",G18.10)') spmass(is) write(fnum,'(" muffin-tin radius : ",G18.10)') rmt(is) write(fnum,'(" number of radial points in muffin-tin : ",I6)') nrmt(is) write(fnum,'(" number on inner part of muffin-tin : ",I6)') nrmti(is) write(fnum,'(" atomic positions (lattice), magnetic fields (Cartesian) :")') do ia=1,natoms(is) write(fnum,'(I4," : ",3F12.8," ",3F12.8)') ia,atposl(:,ia,is), & bfcmt(:,ia,is) end do end do write(fnum,*) write(fnum,'("Total number of atoms per unit cell : ",I4)') natmtot write(fnum,*) write(fnum,'("Spin treatment :")') if (spinpol) then write(fnum,'(" spin-polarised")') else write(fnum,'(" spin-unpolarised")') end if if (spinorb) then write(fnum,'(" spin-orbit coupling")') end if if (spincore) then write(fnum,'(" spin-polarised core states")') end if if (spinpol) then write(fnum,'(" global magnetic field (Cartesian) : ",3G18.10)') bfieldc if (ncmag) then write(fnum,'(" non-collinear magnetisation")') else write(fnum,'(" collinear magnetisation in z-direction")') end if end if if (spinsprl) then write(fnum,'(" spin-spiral state assumed")') write(fnum,'(" q-vector (lattice) : ",3G18.10)') vqlss write(fnum,'(" q-vector (Cartesian) : ",3G18.10)') vqcss write(fnum,'(" q-vector length : ",G18.10)') sqrt(vqcss(1)**2 & +vqcss(2)**2+vqcss(3)**2) end if if (fsmtype.ne.0) then write(fnum,'(" fixed spin moment (FSM) calculation, type : ",I4)') fsmtype if (fsmtype.lt.0) then write(fnum,'(" only moment direction is fixed")') end if end if if ((abs(fsmtype).eq.1).or.(abs(fsmtype).eq.3)) then write(fnum,'(" fixing total moment to (Cartesian) :")') write(fnum,'(" ",3G18.10)') momfix end if if ((abs(fsmtype).eq.2).or.(abs(fsmtype).eq.3)) then write(fnum,'(" fixing local muffin-tin moments to (Cartesian) :")') do is=1,nspecies write(fnum,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) write(fnum,'(" ",I4,3G18.10)') ia,mommtfix(:,ia,is) end do end do end if if (tssxc) then write(fnum,'(" scaled spin exchange-correlation (SSXC) enabled")') write(fnum,'(" scaling factor : ",G18.10)') ssxc end if if (ftmtype.ne.0) then write(fnum,*) write(fnum,'(" fixed tensor moment (FTM) calculation, type : ",I4)') ftmtype end if if (tefield) then write(fnum,*) write(fnum,'("Constant electric field applied across unit cell")') write(fnum,'(" field strength : ",3G18.10)') efieldc end if if (tafield) then write(fnum,*) write(fnum,'("Constant A-field applied across unit cell")') write(fnum,'(" field strength : ",3G18.10)') afieldc end if write(fnum,*) write(fnum,'("Number of Bravais lattice symmetries : ",I4)') nsymlat write(fnum,'("Number of crystal symmetries : ",I4)') nsymcrys if (tsyminv) then write(fnum,'("Crystal has inversion symmetry")') else write(fnum,'("Crystal has no inversion symmetry")') end if if (tefvr) then write(fnum,'("Real symmetric eigensolver will be used")') else write(fnum,'("Complex Hermitian eigensolver will be used")') end if write(fnum,*) if (autokpt) then write(fnum,'("Radius of sphere used to determine k-point grid density : ",& &G18.10)') radkpt end if write(fnum,'("k-point grid : ",3I6)') ngridk write(fnum,'("k-point offset : ",3G18.10)') vkloff if (reducek.eq.0) then write(fnum,'("k-point set is not reduced")') else if (reducek.eq.1) then write(fnum,'("k-point set is reduced with full crystal symmetry group")') else if (reducek.eq.2) then write(fnum,'("k-point set is reduced with symmorphic symmetries only")') else write(*,*) write(*,'("Error(writeinfo): undefined k-point reduction type : ",I8)') & reducek write(*,*) stop end if write(fnum,'("Total number of k-points : ",I8)') nkpt write(fnum,*) write(fnum,'("Muffin-tin radius times maximum |G+k| : ",G18.10)') rgkmax select case(isgkmax) case(:-4) write(fnum,'(" using largest radius")') case(-3) write(fnum,'(" using smallest radius")') case(-2) write(fnum,'(" using gkmax = rgkmax / 2")') case(-1) write(fnum,'(" using average radius")') case(1:) if (isgkmax.le.nspecies) then write(fnum,'(" using radius of species ",I4," (",A,")")') isgkmax, & trim(spsymb(isgkmax)) else write(*,*) write(*,'("Error(writeinfo): isgkmax > nspecies : ",2I8)') isgkmax,nspecies write(*,*) stop end if end select write(fnum,'("Maximum |G+k| for APW functions : ",G18.10)') gkmax write(fnum,'("Maximum (1/2)|G+k|^2 : ",G18.10)') 0.5d0*gkmax**2 write(fnum,'("Maximum |G| for potential and density : ",G18.10)') gmaxvr write(fnum,'("Constant for pseudocharge density : ",I4)') npsd write(fnum,'("Radial integration step length : ",I4)') lradstp write(fnum,*) write(fnum,'("G-vector grid sizes : ",3I6)') ngridg(:) write(fnum,'("Number of G-vectors : ",I8)') ngvec write(fnum,*) write(fnum,'("Maximum angular momentum used for")') write(fnum,'(" APW functions : ",I4)') lmaxapw write(fnum,'(" outer part of muffin-tin : ",I4)') lmaxo write(fnum,'(" inner part of muffin-tin : ",I4)') lmaxi write(fnum,*) write(fnum,'("Total nuclear charge : ",G18.10)') chgzn write(fnum,'("Total core charge : ",G18.10)') chgcrtot write(fnum,'("Total valence charge : ",G18.10)') chgval write(fnum,'("Total excess charge : ",G18.10)') chgexs write(fnum,'("Total electronic charge : ",G18.10)') chgtot write(fnum,*) write(fnum,'("Effective Wigner radius, r_s : ",G18.10)') rwigner write(fnum,*) write(fnum,'("Number of empty states : ",I4)') nempty write(fnum,'("Total number of valence states : ",I4)') nstsv write(fnum,'("Total number of core states : ",I4)') nstcr write(fnum,*) if (lorbcnd) then write(fnum,'("Conduction state local-orbitals added automatically")') end if write(fnum,'("Total number of local-orbitals : ",I4)') nlotot if (tefvit) then write(fnum,*) write(fnum,'("Using iterative diagonalisation for the first-variational & &eigenvalue equation")') end if write(fnum,*) if (task.eq.5) then write(fnum,'("Hartree-Fock calculation using Kohn-Sham states")') if (hybrid) then write(fnum,'(" hybrid functional, coefficient : ",G18.10)') hybridc end if end if if (xctype(1).eq.100) then write(fnum,'("Using Libxc version ",I2.2,".",I2.2,".",I2.2)') libxcv(:) end if if (xctype(1).lt.0) then write(fnum,'("Optimised effective potential (OEP) and exact exchange (EXX)")') write(fnum,'(" Phys. Rev. B 53, 7024 (1996)")') write(fnum,'("Correlation functional : ",3I6)') abs(xctype(1)),xctype(2:3) write(fnum,'(" ",A)') trim(xcdescr) else write(fnum,'("Exchange-correlation functional : ",3I6)') xctype(:) write(fnum,'(" ",A)') trim(xcdescr) end if if (xcgrad.eq.0) then write(fnum,'(" Local density approximation (LDA)")') else if ((xcgrad.eq.1).or.(xcgrad.eq.2)) then write(fnum,'(" Generalised gradient approximation (GGA)")') else if (xcgrad.eq.3) then write(fnum,'(" meta-GGA; using kinetic energy density")') end if if (dftu.ne.0) then write(fnum,*) write(fnum,'("DFT+U calculation")') if (dftu.eq.1) then write(fnum,'(" fully localised limit (FLL)")') write(fnum,'(" see Phys. Rev. B 52, R5467 (1995)")') else if (dftu.eq.2) then write(fnum,'(" around mean field (AMF)")') write(fnum,'(" see Phys. Rev. B 49, 14211 (1994)")') else if (dftu.eq.3) then write(fnum,'(" interpolation between FLL and AMF")') write(fnum,'(" see Phys. Rev. B 67, 153106 (2003)")') else write(*,*) write(*,'("Error(writeinfo): dftu not defined : ",I8)') dftu write(*,*) stop end if do i=1,ndftu is=idftu(1,i) l=idftu(2,i) if (inpdftu.eq.1) then write(fnum,'(" species : ",I4," (",A,")",", l = ",I2,", U = ",F12.8, & &", J = ",F12.8)') is,trim(spsymb(is)),l,ujdu(1,i),ujdu(2,i) else if (inpdftu.eq.2) then write(fnum,'(" species : ",I4," (",A,")",", l = ",I2)') is, & trim(spsymb(is)),l write(fnum,'(" Slater integrals are provided as input")') do k=0,2*l,2 write(fnum,'(" F^(",I1,") = ",F12.8)') k,fdu(k,i) end do else if (inpdftu.eq.3) then write(fnum,'(" species : ",I4," (",A,")",", l = ",I2)') is, & trim(spsymb(is)),l write(fnum,'(" Racah parameters are provided as input")') do k=0,l write(fnum,'(" E^(",I1,") = ",F12.8)') k,edu(k,i) end do else if (inpdftu.eq.4) then write(fnum,'(" species : ",I4," (",A,")",", l = ",I2)') is, & trim(spsymb(is)),l write(fnum,'(" Slater integrals are calculated by means of Yukawa & &potential")') write(fnum,'(" Yukawa potential screening length (a.u^-1) : ",F12.8)') & lambdadu(i) else if(inpdftu.eq.5) then write(fnum,'(" species : ",I4," (",A,")",", l = ",I2)') is, & trim(spsymb(is)),l write(fnum,'(" Slater integrals are calculated by means of Yukawa & &potential")') write(fnum,'(" Yukawa potential screening length corresponds to U = ",& &F12.8)') udufix(i) end if end do end if if (task.eq.300) then write(fnum,*) write(fnum,'("RDMFT calculation")') write(fnum,'(" see arXiv:0801.3787v1 [cond-mat.mtrl-sci]")') write(fnum,'(" RDMFT exchange-correlation type : ",I4)') rdmxctype if (rdmxctype.eq.1) then write(fnum,'(" Hartree-Fock functional")') else if (rdmxctype.eq.2) then write(fnum,'(" Power functional, exponent : ",G18.10)') rdmalpha end if end if write(fnum,*) write(fnum,'("Smearing type : ",I4)') stype write(fnum,'(" ",A)') trim(sdescr) if (autoswidth) then write(fnum,'("Automatic determination of smearing width")') else write(fnum,'("Smearing width : ",G18.10)') swidth write(fnum,'("Effective electronic temperature (K) : ",G18.10)') tempk end if write(fnum,*) write(fnum,'("Mixing type : ",I4)') mixtype write(fnum,'(" ",A)') trim(mixdescr) flush(fnum) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfpack.f900000644000000000000000000000013213543334735014415 xustar0030 mtime=1569569245.244641552 30 atime=1569569241.483643954 30 ctime=1569569245.244641552 elk-6.3.2/src/rfpack.f900000644002504400250440000000162413543334735016467 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfpack(tpack,n,np,ld,rfmt,rfir,v) use modmain implicit none ! arguments logical, intent(in) :: tpack integer, intent(inout) :: n integer, intent(in) :: np(nspecies) integer, intent(in) :: ld real(8), intent(inout) :: rfmt(ld,natmtot),rfir(ngtot) real(8), intent(out) :: v(*) ! local variables integer is,ias if (tpack) then ! pack the function do ias=1,natmtot is=idxis(ias) call dcopy(np(is),rfmt(:,ias),1,v(n+1),1) n=n+np(is) end do call dcopy(ngtot,rfir,1,v(n+1),1) n=n+ngtot else ! unpack the function do ias=1,natmtot is=idxis(ias) call dcopy(np(is),v(n+1),1,rfmt(:,ias),1) n=n+np(is) end do call dcopy(ngtot,v(n+1),1,rfir,1) n=n+ngtot end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/gaunt.f900000644000000000000000000000013213543334735014265 xustar0030 mtime=1569569245.248641549 30 atime=1569569241.488643951 30 ctime=1569569245.248641549 elk-6.3.2/src/gaunt.f900000644002504400250440000000416113543334735016336 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gaunt ! !INTERFACE: real(8) function gaunt(l1,l2,l3,m1,m2,m3) ! !INPUT/OUTPUT PARAMETERS: ! l1, l2, l3 : angular momentum quantum numbers (in,integer) ! m1, m2, m3 : magnetic quantum numbers (in,integer) ! !DESCRIPTION: ! Returns the Gaunt coefficient given by ! $$ \langle Y^{l_1}_{m_1}|Y^{l_2}_{m_2}|Y^{l_3}_{m_3} \rangle ! = (-1)^{m_1}\left[\frac{(2l_1+1)(2l_2+1)(2l_3+1)}{4\pi} \right] ! ^{\frac{1}{2}} ! \begin{pmatrix} l_1 & l_2 & l_3 \\ 0 & 0 & 0 \end{pmatrix} ! \begin{pmatrix} l_1 & l_2 & l_3 \\ -m_1 & m_2 & m_3 \end{pmatrix}. $$ ! Suitable for $l_i$ less than 50. ! ! !REVISION HISTORY: ! Created November 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: l1,l2,l3 integer, intent(in) :: m1,m2,m3 ! local variables integer j,j1,j2,j3,jh real(8) t1 ! real constant 1/sqrt(4*pi) real(8), parameter :: c1=0.28209479177387814347d0 ! external functions real(8) wigner3j,factnm,factr external wigner3j,factnm,factr if ((l1.lt.0).or.(l2.lt.0).or.(l3.lt.0).or.(abs(m1).gt.l1).or.(abs(m2).gt.l2) & .or.(abs(m3).gt.l3)) then write(*,*) write(*,'("Error(gaunt): non-physical arguments :")') write(*,'("l1 = ",I8," l2 = ",I8," l3 = ",I8)') l1,l2,l3 write(*,'("m1 = ",I8," m2 = ",I8," m3 = ",I8)') m1,m2,m3 write(*,*) stop end if if ((l1.gt.50).or.(l2.gt.50).or.(l3.gt.50)) then write(*,*) write(*,'("Error(gaunt): angular momenta out of range : ",3I8)') l1,l2,l3 write(*,*) stop end if if (m1-m2-m3.ne.0) then gaunt=0.d0 return end if j1=l2-l1+l3 j2=l1-l2+l3 j3=l1+l2-l3 if ((j1.lt.0).or.(j2.lt.0).or.(j3.lt.0)) then gaunt=0.d0 return end if j=l1+l2+l3 if (mod(j,2).ne.0) then gaunt=0.d0 return end if jh=j/2 t1=sqrt(dble((2*l1+1)*(2*l2+1)*(2*l3+1))*factr(j1,j+1)*factnm(j2,1) & *factnm(j3,1)) t1=t1*factr(jh,jh-l1)/(factnm(jh-l2,1)*factnm(jh-l3,1)) gaunt=t1*c1*wigner3j(l1,l2,l3,-m1,m2,m3) if (mod(m1+jh,2).ne.0) gaunt=-gaunt return end function !EOC elk-6.3.2/src/PaxHeaders.21352/readinput.f900000644000000000000000000000013213543334735015142 xustar0030 mtime=1569569245.256641544 30 atime=1569569241.492643948 30 ctime=1569569245.256641544 elk-6.3.2/src/readinput.f900000644002504400250440000013475313543334735017226 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: readinput ! !INTERFACE: subroutine readinput ! !USES: use modmain use moddftu use modrdm use modphonon use modtest use modrandom use modscdft use modpw use modtddft use modulr use modvars use modgw use modjx use modw90 use modmpi use modomp ! !DESCRIPTION: ! Reads in the input parameters from the file {\tt elk.in}. Also sets default ! values for the input parameters. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) !EOP !BOC implicit none ! local variables logical lv integer is,ia,ias,ios integer i,j,k,l,n,p real(8) sc,sc1,sc2,sc3 real(8) scu,scu1,scu2,scu3 real(8) solscf,zn,a,b real(8) axang(4),rot(3,3) real(8) v1(3),v2(3),t1 character(256) block,symb,str !------------------------! ! default values ! !------------------------! ntasks=0 avec(:,:)=0.d0 avec(1,1)=1.d0 avec(2,2)=1.d0 avec(3,3)=1.d0 sc=1.d0 sc1=1.d0 sc2=1.d0 sc3=1.d0 epslat=1.d-6 primcell=.false. tshift=.true. ngridk(:)=1 vkloff(:)=0.d0 autokpt=.false. radkpt=40.d0 reducek=1 ngridq(:)=-1 reduceq=1 rgkmax=7.d0 gmaxvr=12.d0 lmaxapw=8 lmaxo=6 lmaxi=1 fracinr=0.01d0 trhonorm=.true. xctype(1)=3 xctype(2:3)=0 xctsp(1)=3 xctsp(2:3)=0 stype=3 swidth=0.001d0 autoswidth=.false. mstar=10.d0 epsocc=1.d-8 epschg=1.d-3 nempty0=4.d0 maxscl=200 mixtype=3 amixpm(1)=0.05d0 amixpm(2)=1.d0 ! Broyden parameters recommended by M. Meinert mixsdb=5 broydpm(1)=0.4d0 broydpm(2)=0.15d0 epspot=1.d-6 epsengy=1.d-4 epsforce=5.d-3 epsstress=1.d-3 molecule=.false. nspecies=0 natoms(:)=0 atposl(:,:,:)=0.d0 atposc(:,:,:)=0.d0 bfcmt0(:,:,:)=0.d0 sppath='' scrpath='' nvp1d=2 if (allocated(vvlp1d)) deallocate(vvlp1d) allocate(vvlp1d(3,nvp1d)) vvlp1d(:,1)=0.d0 vvlp1d(:,2)=1.d0 npp1d=200 vclp2d(:,:)=0.d0 vclp2d(1,1)=1.d0 vclp2d(2,2)=1.d0 np2d(:)=40 vclp3d(:,:)=0.d0 vclp3d(1,1)=1.d0 vclp3d(2,2)=1.d0 vclp3d(3,3)=1.d0 np3d(:)=20 nwplot=500 ngrkf=100 nswplot=1 wplot(1)=-0.5d0 wplot(2)=0.5d0 dosocc=.false. dosmsum=.false. dosssum=.false. lmirep=.true. spinpol=.false. spinorb=.false. socscf=1.d0 atpopt=1 maxatpstp=200 tau0atp=0.25d0 deltast=0.001d0 latvopt=0 maxlatvstp=30 tau0latv=0.2d0 lradstp=4 chgexs=0.d0 scissor=0.d0 noptcomp=1 optcomp(:,1)=1 intraband=.false. evaltol=-1.d0 epsband=1.d-12 demaxbnd=2.5d0 autolinengy=.false. dlefe=-0.1d0 deapwlo=0.05d0 bfieldc0(:)=0.d0 efieldc(:)=0.d0 afieldc(:)=0.d0 fsmtype=0 momfix(:)=0.d0 mommtfix(:,:,:)=1.d6 taufsm=0.01d0 rmtdelta=0.05d0 isgkmax=-1 symtype=1 deltaph=0.005d0 nphwrt=1 if (allocated(vqlwrt)) deallocate(vqlwrt) allocate(vqlwrt(3,nphwrt)) vqlwrt(:,:)=0.d0 notelns=0 tforce=.false. maxitoep=200 tauoep=1.d0 nkstlist=1 kstlist(:,1)=1 vklem(:)=0.d0 deltaem=0.025d0 ndspem=1 nosource=.false. spinsprl=.false. ssdph=.true. vqlss(:)=0.d0 nwrite=0 dftu=0 inpdftu=1 ndftu=0 ujdu(:,:)=0.d0 fdu(:,:)=0.d0 edu(:,:)=0.d0 lambdadu(:)=0.d0 udufix(:)=0.d0 lambdadu0(:)=0.d0 tmwrite=.false. readadu=.false. rdmxctype=2 rdmmaxscl=2 maxitn=200 maxitc=0 taurdmn=0.5d0 taurdmc=0.25d0 rdmalpha=0.565d0 rdmtemp=0.d0 reducebf=1.d0 ptnucl=.true. tefvr=.true. tefvit=.false. minitefv=6 maxitefv=4 befvit=0.25d0 epsefvit=1.d-5 vecql(:)=0.d0 mustar=0.15d0 sqados(1:2)=0.d0 sqados(3)=1.d0 test=.false. spincore=.false. solscf=1.d0 emaxelnes=-1.2d0 wsfac(1)=-1.d6; wsfac(2)=1.d6 vhmat(:,:)=0.d0 vhmat(1,1)=1.d0 vhmat(2,2)=1.d0 vhmat(3,3)=1.d0 reduceh=.true. hybrid=.false. hybridc=1.d0 ecvcut=-3.5d0 esccut=-0.4d0 gmaxrf=3.d0 emaxrf=1.d6 ntemp=40 taubdg=0.1d0 nvbse0=2 ncbse0=3 nvxbse=0 ncxbse=0 bsefull=.false. hxbse=.true. hdbse=.true. fxctype=-1 fxclrc(1)=0.d0 fxclrc(2)=0.d0 rndatposc=0.d0 rndbfcmt=0.d0 rndavec=0.d0 emaxbdg=0.5d0 c_tb09=0.d0 tc_tb09=.false. rndachi=0.1d0 hmaxvr=20.d0 hkmax=12.d0 lorbcnd=.false. lorbordc=3 nrmtscf=1.d0 lmaxdos=3 epsdev=0.005d0 msmooth=0 npmae0=-1 wrtvars=.false. ftmtype=0 ntmfix=0 tauftm=0.5d0 ftmstep=1 cmagz=.false. axang(:)=0.d0 dncgga=1.d-8 tstime=1000.d0 dtimes=0.1d0 npulse=0 nramp=0 ntswrite=10 nxoapwlo=0 nxlo=0 tdrho1d=.false. tdrho2d=.false. tdrho3d=.false. tdmag2d=.false. tdmag3d=.false. tdcd2d=.false. tdcd3d=.false. tddos=.false. tdlsj=.false. rndevt0=0.d0 ssxc=1.d0 avecu(:,:)=0.d0 avecu(1,1)=1.d0 avecu(2,2)=1.d0 avecu(3,3)=1.d0 scu=1.d0 scu1=1.d0 scu2=1.d0 scu3=1.d0 q0cut=0.d0 rndbfcu=0.d0 efielduc(:)=0.d0 tplotq0=.true. trdvclr=.false. evtype=1 wmaxgw=-10.d0 twdiag=.false. tsediag=.true. actype=10 npole=3 nspade=100 maxitksi=200 tauksi=0.002d0 tfav0=.true. nqssjx=1 thssjx(1)=0.d0 thssjx(2)=pi/6.d0 rmtall=-1.d0 maxthd=0 maxthd1=0 maxthdmkl=8 maxlvl=4 taudft=.false. t0tdlr=0.d0 tdphi=0.d0 thetamld=89.d0*pi/180.d0 ntsbackup=0 ! Wannier90 variables seedname='wannier' num_wann=0 num_bands=0 num_iter=1000 nxlwin=0 tbdip=.false. tcden=.false. !--------------------------! ! read from elk.in ! !--------------------------! open(50,file='elk.in',status='OLD',form='FORMATTED',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error opening elk.in")') write(*,*) stop end if 10 continue read(50,*,end=30) block ! check for a comment if ((scan(trim(block),'!').eq.1).or.(scan(trim(block),'#').eq.1)) goto 10 select case(trim(block)) case('tasks') do i=1,maxtasks read(50,'(A256)',err=20) str if (trim(str).eq.'') then if (i.eq.1) then write(*,*) write(*,'("Error(readinput): no tasks to perform")') write(*,*) stop end if ntasks=i-1 goto 10 end if read(str,*,iostat=ios) tasks(i) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading tasks")') write(*,'("(blank line required after tasks block)")') write(*,*) stop end if end do write(*,*) write(*,'("Error(readinput): too many tasks")') write(*,'("Adjust maxtasks in modmain and recompile code")') write(*,*) stop case('species') ! generate a species file call genspecies(50) case('fspecies') ! generate fractional species files do is=1,maxspecies read(50,'(A256)',err=20) str if (trim(str).eq.'') goto 10 read(str,*,iostat=ios) zn,symb if (zn.gt.-1.d0+epsocc) then write(*,*) write(*,'("Error(readinput): fractional nuclear Z > -1 : ",G18.10)') zn write(*,*) stop end if call genfspecies(zn,symb) end do write(*,*) write(*,'("Error(readinput): too many fractional nucleus species")') write(*,*) stop case('avec') read(50,*,err=20) avec(:,1) read(50,*,err=20) avec(:,2) read(50,*,err=20) avec(:,3) case('scale') read(50,*,err=20) sc case('scale1') read(50,*,err=20) sc1 case('scale2') read(50,*,err=20) sc2 case('scale3') read(50,*,err=20) sc3 case('epslat') read(50,*,err=20) epslat if (epslat.le.0.d0) then write(*,*) write(*,'("Error(readinput): epslat <= 0 : ",G18.10)') epslat write(*,*) stop end if case('primcell') read(50,*,err=20) primcell case('tshift') read(50,*,err=20) tshift case('autokpt') read(50,*,err=20) autokpt case('radkpt') read(50,*,err=20) radkpt if (radkpt.le.0.d0) then write(*,*) write(*,'("Error(readinput): radkpt <= 0 : ",G18.10)') radkpt write(*,*) stop end if case('ngridk') read(50,*,err=20) ngridk(:) if ((ngridk(1).le.0).or.(ngridk(2).le.0).or.(ngridk(3).le.0)) then write(*,*) write(*,'("Error(readinput): invalid ngridk : ",3I8)') ngridk write(*,*) stop end if autokpt=.false. case('vkloff') read(50,*,err=20) vkloff(:) case('reducek') read(50,*,err=20) reducek case('ngridq') read(50,*,err=20) ngridq(:) if ((ngridq(1).le.0).or.(ngridq(2).le.0).or.(ngridq(3).le.0)) then write(*,*) write(*,'("Error(readinput): invalid ngridq : ",3I8)') ngridq write(*,*) stop end if case('reduceq') read(50,*,err=20) reduceq case('rgkmax') read(50,*,err=20) rgkmax if (rgkmax.le.0.d0) then write(*,*) write(*,'("Error(readinput): rgkmax <= 0 : ",G18.10)') rgkmax write(*,*) stop end if case('gmaxvr') read(50,*,err=20) gmaxvr case('lmaxapw') read(50,*,err=20) lmaxapw if (lmaxapw.lt.0) then write(*,*) write(*,'("Error(readinput): lmaxapw < 0 : ",I8)') lmaxapw write(*,*) stop end if if (lmaxapw.ge.maxlapw) then write(*,*) write(*,'("Error(readinput): lmaxapw too large : ",I8)') lmaxapw write(*,'("Adjust maxlapw in modmain and recompile code")') write(*,*) stop end if case('lmaxo','lmaxvr') read(50,*,err=20) lmaxo if (lmaxo.lt.3) then write(*,*) write(*,'("Error(readinput): lmaxo < 3 : ",I8)') lmaxo write(*,*) stop end if case('lmaxi','lmaxinr') read(50,*,err=20) lmaxi if (lmaxi.lt.1) then write(*,*) write(*,'("Error(readinput): lmaxi < 1 : ",I8)') lmaxi write(*,*) stop end if case('lmaxmat') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''lmaxmat'' is no longer used")') case('fracinr') read(50,*,err=20) fracinr case('trhonorm') read(50,*,err=20) trhonorm case('spinpol') read(50,*,err=20) spinpol case('spinorb') read(50,*,err=20) spinorb case('socscf') read(50,*,err=20) socscf if (socscf.lt.0.d0) then write(*,*) write(*,'("Error(readinput): socscf < 0 : ",G18.10)') socscf write(*,*) stop end if case('xctype') read(50,'(A256)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) xctype case('xctsp') read(50,'(A256)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) xctsp case('stype') read(50,*,err=20) stype case('swidth') read(50,*,err=20) swidth if (swidth.lt.1.d-9) then write(*,*) write(*,'("Error(readinput): swidth too small or negative : ",G18.10)') & swidth write(*,*) stop end if case('autoswidth') read(50,*,err=20) autoswidth case('mstar') read(50,*,err=20) mstar if (mstar.le.0.d0) then write(*,*) write(*,'("Error(readinput): mstar <= 0 : ",G18.10)') mstar write(*,*) stop end if case('epsocc') read(50,*,err=20) epsocc if (epsocc.le.0.d0) then write(*,*) write(*,'("Error(readinput): epsocc <= 0 : ",G18.10)') epsocc write(*,*) stop end if case('epschg') read(50,*,err=20) epschg if (epschg.le.0.d0) then write(*,*) write(*,'("Error(readinput): epschg <= 0 : ",G18.10)') epschg write(*,*) stop end if case('nempty','nempty0') read(50,*,err=20) nempty0 if (nempty0.le.0.d0) then write(*,*) write(*,'("Error(readinput): nempty <= 0 : ",G18.10)') nempty0 write(*,*) stop end if case('mixtype') read(50,*,err=20) mixtype case('amixpm','beta0','betamax') if (trim(block).eq.'amixpm') then read(50,*,err=20) amixpm(:) else if (trim(block).eq.'beta0') then read(50,*,err=20) amixpm(1) else read(50,*,err=20) amixpm(2) end if if (amixpm(1).lt.0.d0) then write(*,*) write(*,'("Error(readinput): beta0 [amixpm(1)] < 0 : ",G18.10)') amixpm(1) write(*,*) stop end if if ((amixpm(2).lt.0.d0).or.(amixpm(2).gt.1.d0)) then write(*,*) write(*,'("Error(readinput): betamax [amixpm(2)] not in [0,1] : ",G18.10)')& amixpm(2) write(*,*) stop end if case('mixsdb') read(50,*,err=20) mixsdb if (mixsdb.lt.2) then write(*,*) write(*,'("Error(readinput): mixsdb < 2 : ",I8)') mixsdb write(*,*) stop end if case('broydpm') read(50,*,err=20) broydpm(:) if ((broydpm(1).lt.0.d0).or.(broydpm(1).gt.1.d0).or. & (broydpm(2).lt.0.d0).or.(broydpm(2).gt.1.d0)) then write(*,*) write(*,'("Error(readinput): invalid Broyden mixing parameters : ",& &2G18.10)') broydpm write(*,*) stop end if case('maxscl') read(50,*,err=20) maxscl if (maxscl.lt.0) then write(*,*) write(*,'("Error(readinput): maxscl < 0 : ",I8)') maxscl write(*,*) stop end if case('epspot') read(50,*,err=20) epspot case('epsengy') read(50,*,err=20) epsengy case('epsforce') read(50,*,err=20) epsforce case('epsstress') read(50,*,err=20) epsstress case('sppath') read(50,*,err=20) sppath sppath=adjustl(sppath) case('scrpath') read(50,*,err=20) scrpath case('molecule') read(50,*,err=20) molecule case('atoms') read(50,*,err=20) nspecies if (nspecies.le.0) then write(*,*) write(*,'("Error(readinput): nspecies <= 0 : ",I8)') nspecies write(*,*) stop end if if (nspecies.gt.maxspecies) then write(*,*) write(*,'("Error(readinput): nspecies too large : ",I8)') nspecies write(*,'("Adjust maxspecies in modmain and recompile code")') write(*,*) stop end if do is=1,nspecies read(50,*,err=20) spfname(is) spfname(is)=adjustl(spfname(is)) read(50,*,err=20) natoms(is) if (natoms(is).le.0) then write(*,*) write(*,'("Error(readinput): natoms <= 0 : ",I8)') natoms(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (natoms(is).gt.maxatoms) then write(*,*) write(*,'("Error(readinput): natoms too large : ",I8)') natoms(is) write(*,'(" for species ",I4)') is write(*,'("Adjust maxatoms in modmain and recompile code")') write(*,*) stop end if do ia=1,natoms(is) read(50,'(A256)',err=20) str str=trim(str)//' 0.0 0.0 0.0' read(str,*,err=20) atposl(:,ia,is),bfcmt0(:,ia,is) end do end do case('plot1d') read(50,*,err=20) nvp1d,npp1d if (nvp1d.lt.1) then write(*,*) write(*,'("Error(readinput): nvp1d < 1 : ",I8)') nvp1d write(*,*) stop end if if (npp1d.lt.nvp1d) then write(*,*) write(*,'("Error(readinput): npp1d < nvp1d : ",2I8)') npp1d,nvp1d write(*,*) stop end if if (allocated(vvlp1d)) deallocate(vvlp1d) allocate(vvlp1d(3,nvp1d)) do i=1,nvp1d read(50,*,err=20) vvlp1d(:,i) end do case('plot2d') read(50,*,err=20) vclp2d(:,0) read(50,*,err=20) vclp2d(:,1) read(50,*,err=20) vclp2d(:,2) read(50,*,err=20) np2d(:) if ((np2d(1).lt.1).or.(np2d(2).lt.1)) then write(*,*) write(*,'("Error(readinput): np2d < 1 : ",2I8)') np2d write(*,*) stop end if case('plot3d') read(50,*,err=20) vclp3d(:,0) read(50,*,err=20) vclp3d(:,1) read(50,*,err=20) vclp3d(:,2) read(50,*,err=20) vclp3d(:,3) read(50,*,err=20) np3d(:) if ((np3d(1).lt.1).or.(np3d(2).lt.1).or.(np3d(3).lt.1)) then write(*,*) write(*,'("Error(readinput): np3d < 1 : ",3I8)') np3d write(*,*) stop end if case('wplot','dos') read(50,*,err=20) nwplot,ngrkf,nswplot if (nwplot.lt.2) then write(*,*) write(*,'("Error(readinput): nwplot < 2 : ",I8)') nwplot write(*,*) stop end if if (ngrkf.lt.1) then write(*,*) write(*,'("Error(readinput): ngrkf < 1 : ",I8)') ngrkf write(*,*) stop end if if (nswplot.lt.0) then write(*,*) write(*,'("Error(readinput): nswplot < 0 : ",I8)') nswplot write(*,*) stop end if read(50,*,err=20) wplot(:) if (wplot(1).gt.wplot(2)) then write(*,*) write(*,'("Error(readinput): wplot(1) > wplot(2) : ",2G18.10)') wplot write(*,*) stop end if case('dosocc') read(50,*,err=20) dosocc case('dosmsum') read(50,*,err=20) dosmsum case('dosssum') read(50,*,err=20) dosssum case('lmirep') read(50,*,err=20) lmirep case('atpopt') read(50,*,err=20) atpopt case('maxatpstp','maxatmstp') read(50,*,err=20) maxatpstp if (maxatpstp.le.0) then write(*,*) write(*,'("Error(readinput): maxatpstp <= 0 : ",I8)') maxatpstp write(*,*) stop end if case('tau0atp','tau0atm') read(50,*,err=20) tau0atp case('deltast') read(50,*,err=20) deltast if (deltast.le.0.d0) then write(*,*) write(*,'("Error(readinput): deltast <= 0 : ",G18.10)') deltast write(*,*) stop end if case('latvopt') read(50,*,err=20) latvopt case('maxlatvstp') read(50,*,err=20) maxlatvstp if (maxlatvstp.le.0) then write(*,*) write(*,'("Error(readinput): maxlatvstp <= 0 : ",I8)') maxlatvstp write(*,*) stop end if case('tau0latv') read(50,*,err=20) tau0latv case('nstfsp') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''nstfsp'' is no longer used")') case('lradstp') read(50,*,err=20) lradstp if (lradstp.le.0) then write(*,*) write(*,'("Error(readinput): lradstp <= 0 : ",I8)') lradstp write(*,*) stop end if case('chgexs') read(50,*,err=20) chgexs case('nprad') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''nprad'' is no longer used")') case('scissor') read(50,*,err=20) scissor case('optcomp') do i=1,27 read(50,'(A256)',err=20) str if (trim(str).eq.'') then if (i.eq.1) then write(*,*) write(*,'("Error(readinput): empty optical component list")') write(*,*) stop end if noptcomp=i-1 goto 10 end if str=trim(str)//' 1 1' read(str,*,iostat=ios) optcomp(:,i) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading optical component list")') write(*,'("(blank line required after optcomp block)")') write(*,*) stop end if if ((optcomp(1,i).lt.1).or.(optcomp(1,i).gt.3).or. & (optcomp(2,i).lt.1).or.(optcomp(2,i).gt.3).or. & (optcomp(3,i).lt.1).or.(optcomp(3,i).gt.3)) then write(*,*) write(*,'("Error(readinput): invalid optcomp : ",3I8)') optcomp write(*,*) stop end if end do write(*,*) write(*,'("Error(readinput): optical component list too long")') write(*,*) stop case('intraband') read(50,*,err=20) intraband case('evaltol') read(50,*,err=20) evaltol case('deband') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''deband'' is no longer used")') case('epsband') read(50,*,err=20) epsband if (epsband.le.0.d0) then write(*,*) write(*,'("Error(readinput): epsband <= 0 : ",G18.10)') epsband write(*,*) stop end if case('demaxbnd') read(50,*,err=20) demaxbnd if (demaxbnd.le.0.d0) then write(*,*) write(*,'("Error(readinput): demaxbnd <= 0 : ",G18.10)') demaxbnd write(*,*) stop end if case('autolinengy') read(50,*,err=20) autolinengy case('dlefe') read(50,*,err=20) dlefe case('deapwlo') read(50,*,err=20) deapwlo if (abs(deapwlo).lt.1.d-8) then write(*,*) write(*,'("Error(readinput): invalid deapwlo : ",G18.10)') deapwlo write(*,*) stop end if case('bfieldc') read(50,*,err=20) bfieldc0 case('efieldc') read(50,*,err=20) efieldc case('afieldc') read(50,*,err=20) afieldc case('fsmtype','fixspin') read(50,*,err=20) fsmtype case('momfix') read(50,*,err=20) momfix case('mommtfix') do ias=1,maxspecies*maxatoms read(50,'(A256)',err=20) str if (trim(str).eq.'') goto 10 read(str,*,iostat=ios) is,ia,mommtfix(:,ia,is) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading muffin-tin fixed spin & &moments")') write(*,'("(blank line required after mommtfix block")') write(*,*) stop end if end do case('taufsm') read(50,*,err=20) taufsm if (taufsm.lt.0.d0) then write(*,*) write(*,'("Error(readinput): taufsm < 0 : ",G18.10)') taufsm write(*,*) stop end if case('autormt') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''autormt'' is no longer used")') case('rmtdelta') read(50,*,err=20) rmtdelta if (rmtdelta.lt.0.d0) then write(*,*) write(*,'("Warning(readinput): rmtdelta < 0 : ",G18.10)') rmtdelta end if case('isgkmax') read(50,*,err=20) isgkmax case('nosym') read(50,*,err=20) lv if (lv) symtype=0 case('symtype') read(50,*,err=20) symtype if ((symtype.lt.0).or.(symtype.gt.2)) then write(*,*) write(*,'("Error(readinput): symtype not defined : ",I8)') symtype write(*,*) stop end if case('deltaph') read(50,*,err=20) deltaph if (deltaph.le.0.d0) then write(*,*) write(*,'("Error(readinput): deltaph <= 0 : ",G18.10)') deltaph write(*,*) stop end if case('phwrite') read(50,*,err=20) nphwrt if (nphwrt.le.0) then write(*,*) write(*,'("Error(readinput): nphwrt <= 0 : ",I8)') nphwrt write(*,*) stop end if if (allocated(vqlwrt)) deallocate(vqlwrt) allocate(vqlwrt(3,nphwrt)) do i=1,nphwrt read(50,*,err=20) vqlwrt(:,i) end do case('notes') if (allocated(notes)) deallocate(notes) allocate(notes(0)) notelns=0 do read(50,'(A80)') str if (trim(str).eq.'') goto 10 notelns=notelns+1 call addstr(notes) end do case('tforce') read(50,*,err=20) tforce case('tfibs') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''tfibs'' is no longer used")') case('maxitoep') read(50,*,err=20) maxitoep if (maxitoep.lt.1) then write(*,*) write(*,'("Error(readinput): maxitoep < 1 : ",I8)') maxitoep write(*,*) stop end if case('tauoep') read(50,*,err=20) tauoep if (tauoep.lt.0.d0) then write(*,*) write(*,'("Error(readinput): tauoep < 0 : ",G18.10)') tauoep write(*,*) stop end if case('kstlist') do i=1,maxkst read(50,'(A256)',err=20) str if (trim(str).eq.'') then if (i.eq.1) then write(*,*) write(*,'("Error(readinput): empty k-point and state list")') write(*,*) stop end if nkstlist=i-1 goto 10 end if read(str,*,iostat=ios) kstlist(:,i) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading k-point and state list")') write(*,'("(blank line required after kstlist block)")') write(*,*) stop end if end do write(*,*) write(*,'("Error(readinput): k-point and state list too long")') write(*,*) stop case('vklem') read(50,*,err=20) vklem case('deltaem') read(50,*,err=20) deltaem case('ndspem') read(50,*,err=20) ndspem if ((ndspem.lt.1).or.(ndspem.gt.4)) then write(*,*) write(*,'("Error(readinput): ndspem out of range : ",I8)') ndspem write(*,*) stop end if case('nosource') read(50,*,err=20) nosource case('spinsprl') read(50,*,err=20) spinsprl case('ssdph') read(50,*,err=20) ssdph case('vqlss') read(50,*,err=20) vqlss case('nwrite') read(50,*,err=20) nwrite case('DFT+U','dft+u','lda+u') read(50,*,err=20) dftu,inpdftu do i=1,maxdftu read(50,'(A256)',err=20) str if (trim(str).eq.'') then ndftu=i-1 goto 10 end if select case(inpdftu) case(1) read(str,*,iostat=ios) is,l,ujdu(1:2,i) case(2) read(str,*,iostat=ios) is,l,(fdu(k,i),k=0,2*l,2) case(3) read(str,*,iostat=ios) is,l,(edu(k,i),k=0,l) case(4) read(str,*,iostat=ios) is,l,lambdadu(i) case(5) read(str,*,iostat=ios) is,l,udufix(i) case default write(*,*) write(*,'("Error(readinput): invalid inpdftu : ",I8)') inpdftu write(*,*) stop end select if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading DFT+U parameters")') write(*,'("(blank line required after dft+u block)")') write(*,*) stop end if if ((is.le.0).or.(is.ge.maxspecies)) then write(*,*) write(*,'("Error(readinput): invalid species number in dft+u block : ", & &I8)') is write(*,*) stop end if if (l.lt.0) then write(*,*) write(*,'("Error(readinput): l < 0 in dft+u block : ",I8)') l write(*,*) stop end if if (l.gt.lmaxdm) then write(*,*) write(*,'("Error(readinput): l > lmaxdm in dft+u block : ",2I8)') l,lmaxdm write(*,*) stop end if ! check for repeated entries do j=1,i-1 if ((is.eq.idftu(1,j)).and.(l.eq.idftu(2,j))) then write(*,*) write(*,'("Error(readinput): repeated entry in DFT+U block")') write(*,*) stop end if end do idftu(1,i)=is idftu(2,i)=l end do write(*,*) write(*,'("Error(readinput): too many DFT+U entries")') write(*,'("Adjust maxdftu in modmain and recompile code")') write(*,*) stop case('tmwrite','tmomlu') read(50,*,err=20) tmwrite case('readadu','readalu') read(50,*,err=20) readadu case('rdmxctype') read(50,*,err=20) rdmxctype case('rdmmaxscl') read(50,*,err=20) rdmmaxscl if (rdmmaxscl.lt.0) then write(*,*) write(*,'("Error(readinput): rdmmaxscl < 0 : ",I8)') rdmmaxscl write(*,*) end if case('maxitn') read(50,*,err=20) maxitn if (maxitn.lt.1) then write(*,*) write(*,'("Error(readinput): maxitn < 1 : ",I8)') maxitn write(*,*) stop end if case('maxitc') read(50,*,err=20) maxitc case('taurdmn') read(50,*,err=20) taurdmn if (taurdmn.lt.0.d0) then write(*,*) write(*,'("Error(readinput): taurdmn < 0 : ",G18.10)') taurdmn write(*,*) stop end if case('taurdmc') read(50,*,err=20) taurdmc if (taurdmc.lt.0.d0) then write(*,*) write(*,'("Error(readinput): taurdmc < 0 : ",G18.10)') taurdmc write(*,*) stop end if case('rdmalpha') read(50,*,err=20) rdmalpha if ((rdmalpha.le.0.d0).or.(rdmalpha.ge.1.d0)) then write(*,*) write(*,'("Error(readinput): rdmalpha not in (0,1) : ",G18.10)') rdmalpha write(*,*) stop end if case('rdmtemp') read(50,*,err=20) rdmtemp if (rdmtemp.lt.0.d0) then write(*,*) write(*,'("Error(readinput): rdmtemp < 0 : ",G18.10)') rdmtemp write(*,*) stop end if case('reducebf') read(50,*,err=20) reducebf if ((reducebf.lt.0.49d0).or.(reducebf.gt.1.d0)) then write(*,*) write(*,'("Error(readinput): reducebf not in [0.5,1] : ",G18.10)') reducebf write(*,*) stop end if case('ptnucl') read(50,*,err=20) ptnucl case('tefvr','tseqr') read(50,*,err=20) tefvr case('tefvit','tseqit') read(50,*,err=20) tefvit case('minitefv','minseqit') read(50,*,err=20) minitefv if (minitefv.lt.1) then write(*,*) write(*,'("Error(readinput): minitefv < 1 : ",I8)') minitefv write(*,*) stop end if case('maxitefv','maxseqit') read(50,*,err=20) maxitefv if (maxitefv.lt.1) then write(*,*) write(*,'("Error(readinput): maxitefv < 1 : ",I8)') maxitefv write(*,*) stop end if case('befvit','bseqit') read(50,*,err=20) befvit if (befvit.le.0.d0) then write(*,*) write(*,'("Error(readinput): befvit <= 0 : ",G18.10)') befvit write(*,*) stop end if case('epsefvit','epsseqit') read(50,*,err=20) epsefvit if (epsefvit.lt.0.d0) then write(*,*) write(*,'("Error(readinput): epsefvit < 0 : ",G18.10)') epsefvit write(*,*) stop end if case('nseqit') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''nseqit'' is no longer used")') case('tauseq') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''tauseq'' is no longer used")') case('vecql') read(50,*,err=20) vecql(:) case('mustar') read(50,*,err=20) mustar case('sqados') read(50,*,err=20) sqados(:) case('test') read(50,*,err=20) test case('frozencr') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''frozencr'' is no longer used")') case('spincore') read(50,*,err=20) spincore case('solscf') read(50,*,err=20) solscf if (solscf.lt.0.d0) then write(*,*) write(*,'("Error(readinput): solscf < 0 : ",G18.10)') solscf write(*,*) stop end if case('emaxelnes') read(50,*,err=20) emaxelnes case('wsfac') read(50,*,err=20) wsfac(:) case('vhmat') read(50,*,err=20) vhmat(1,:) read(50,*,err=20) vhmat(2,:) read(50,*,err=20) vhmat(3,:) case('reduceh') read(50,*,err=20) reduceh case('hybrid') read(50,*,err=20) hybrid case('hybridc','hybmix') read(50,*,err=20) hybridc if ((hybridc.lt.0.d0).or.(hybridc.gt.1.d0)) then write(*,*) write(*,'("Error(readinput): invalid hybridc : ",G18.10)') hybridc write(*,*) stop end if case('ecvcut') read(50,*,err=20) ecvcut case('esccut') read(50,*,err=20) esccut case('nvbse') read(50,*,err=20) nvbse0 if (nvbse0.lt.0) then write(*,*) write(*,'("Error(readinput): nvbse < 0 : ",I8)') nvbse0 write(*,*) stop end if case('ncbse') read(50,*,err=20) ncbse0 if (ncbse0.lt.0) then write(*,*) write(*,'("Error(readinput): ncbse < 0 : ",I8)') ncbse0 write(*,*) stop end if case('istxbse') do i=1,maxxbse read(50,'(A256)',err=20) str if (trim(str).eq.'') then if (i.eq.1) then write(*,*) write(*,'("Error(readinput): empty BSE extra valence state list")') write(*,*) stop end if nvxbse=i-1 goto 10 end if read(str,*,iostat=ios) istxbse(i) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading BSE valence state list")') write(*,'("(blank line required after istxbse block)")') write(*,*) stop end if end do write(*,*) write(*,'("Error(readinput): BSE extra valence state list too long")') write(*,*) stop case('jstxbse') do i=1,maxxbse read(50,'(A256)',err=20) str if (trim(str).eq.'') then if (i.eq.1) then write(*,*) write(*,'("Error(readinput): empty BSE extra conduction state list")') write(*,*) stop end if ncxbse=i-1 goto 10 end if read(str,*,iostat=ios) jstxbse(i) if (ios.ne.0) then write(*,*) write(*,'("Error(readinput): error reading BSE conduction state list")') write(*,'("(blank line required after jstxbse block)")') write(*,*) stop end if end do write(*,*) write(*,'("Error(readinput): BSE extra conduction state list too long")') write(*,*) stop case('bsefull') read(50,*,err=20) bsefull case('hxbse') read(50,*,err=20) hxbse case('hdbse') read(50,*,err=20) hdbse case('gmaxrf','gmaxrpa') read(50,*,err=20) gmaxrf if (gmaxrf.lt.0.d0) then write(*,*) write(*,'("Error(readinput): gmaxrf < 0 : ",G18.10)') gmaxrf write(*,*) stop end if case('emaxrf') read(50,*,err=20) emaxrf if (emaxrf.lt.0.d0) then write(*,*) write(*,'("Error(readinput): emaxrf < 0 : ",G18.10)') emaxrf write(*,*) stop end if case('fxctype') read(50,'(A256)',err=20) str str=trim(str)//' 0 0' read(str,*,err=20) fxctype case('fxclrc') read(50,'(A256)',err=20) str str=trim(str)//' 0.0' read(str,*,err=20) fxclrc(:) case('ntemp') read(50,*,err=20) ntemp if (ntemp.lt.1) then write(*,*) write(*,'("Error(readinput): ntemp < 1 : ",I8)') ntemp write(*,*) stop end if case('trimvg') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''trimvg'' is no longer used")') write(*,'(" setting msmooth=4 instead")') msmooth=4 case('rndstate','rndseed') read(50,*,err=20) rndstate(0) rndstate(0)=abs(rndstate(0)) case('taubdg') read(50,*,err=20) taubdg case('rndatposc') read(50,*,err=20) rndatposc case('rndbfcmt') read(50,*,err=20) rndbfcmt case('rndavec') read(50,*,err=20) rndavec case('emaxbdg') read(50,*,err=20) emaxbdg if (emaxbdg.le.0.d0) then write(*,*) write(*,'("Error(readinput): emaxbdg <= 0 : ",G18.10)') emaxbdg write(*,*) stop end if case('c_tb09') read(50,*,err=20) c_tb09 ! set flag to indicate Tran-Blaha constant has been read in tc_tb09=.true. case('rndachi') read(50,*,err=20) rndachi case('lowq','highq','vhighq','uhighq') read(50,*,err=20) lv if (lv) then if (trim(block).eq.'lowq') then rgkmax=6.5d0 gmaxvr=10.d0 lmaxapw=7 lmaxo=5 nxlo=2 lorbcnd=.true. radkpt=25.d0 autokpt=.true. vkloff(:)=0.5d0 nempty0=4.d0 epspot=1.d-5 epsengy=5.d-4 epsforce=1.d-2 autolinengy=.true. gmaxrf=2.5d0 lradstp=5 else if (trim(block).eq.'highq') then ! parameter set for high quality calculation rgkmax=max(rgkmax,8.d0) gmaxvr=max(gmaxvr,16.d0) msmooth=max(msmooth,4) lmaxapw=max(lmaxapw,9) lmaxo=max(lmaxo,7) nrmtscf=max(nrmtscf,1.5d0) nxlo=max(nxlo,2) lorbcnd=.true. radkpt=max(radkpt,50.d0) autokpt=.true. vkloff(:)=0.d0 nempty0=max(nempty0,10.d0) epspot=min(epspot,1.d-7) epsengy=min(epsengy,1.d-5) epsforce=min(epsforce,1.d-4) autolinengy=.true. gmaxrf=max(gmaxrf,4.d0) else if (trim(block).eq.'vhighq') then ! parameter set for very high quality calculation rgkmax=max(rgkmax,9.d0) gmaxvr=max(gmaxvr,18.d0) msmooth=max(msmooth,4) lmaxapw=max(lmaxapw,10) lmaxo=max(lmaxo,8) nrmtscf=max(nrmtscf,2.d0) nxlo=max(nxlo,3) lorbcnd=.true. radkpt=max(radkpt,90.d0) autokpt=.true. vkloff(:)=0.d0 nempty0=max(nempty0,20.d0) epspot=min(epspot,1.d-7) epsengy=min(epsengy,1.d-6) epsforce=min(epsforce,1.d-4) autolinengy=.true. gmaxrf=max(gmaxrf,5.d0) else ! parameter set for ultra high quality calculation rgkmax=max(rgkmax,10.d0) gmaxvr=max(gmaxvr,20.d0) msmooth=max(msmooth,4) lmaxapw=max(lmaxapw,11) lmaxo=max(lmaxo,9) nrmtscf=max(nrmtscf,4.d0) nxlo=max(nxlo,3) lorbcnd=.true. radkpt=max(radkpt,120.d0) autokpt=.true. vkloff(:)=0.d0 nempty0=max(nempty0,40.d0) epspot=min(epspot,1.d-7) epsengy=min(epsengy,1.d-6) epsforce=min(epsforce,1.d-4) autolinengy=.true. gmaxrf=max(gmaxrf,6.d0) end if if (mp_mpi) then write(*,*) write(*,'("Info(readinput): parameters set by ",A," option")') trim(block) write(*,'(" rgkmax : ",G18.10)') rgkmax write(*,'(" gmaxvr : ",G18.10)') gmaxvr write(*,'(" msmooth : ",I4)') msmooth write(*,'(" lmaxapw : ",I4)') lmaxapw write(*,'(" lmaxo : ",I4)') lmaxo write(*,'(" nrmtscf : ",G18.10)') nrmtscf write(*,'(" nxlo : ",I4)') nxlo write(*,'(" lorbcnd : ",L1)') lorbcnd write(*,'(" radkpt : ",G18.10)') radkpt write(*,'(" autokpt : ",L1)') autokpt write(*,'(" vkloff : ",3G18.10)') vkloff write(*,'(" nempty0 : ",G18.10)') nempty0 write(*,'(" epspot : ",G18.10)') epspot write(*,'(" epsengy : ",G18.10)') epsengy write(*,'(" epsforce : ",G18.10)') epsforce write(*,'(" autolinengy : ",L1)') autolinengy write(*,'(" gmaxrf : ",G18.10)') gmaxrf if (trim(block).eq.'lowq') then write(*,'(" lradstp : ",I4)') lradstp end if end if end if case('hmaxvr') read(50,*,err=20) hmaxvr if (hmaxvr.lt.0.d0) then write(*,*) write(*,'("Error(readinput): hmaxvr < 0 : ",G18.10)') hmaxvr write(*,*) stop end if case('hkmax') read(50,*,err=20) hkmax if (hkmax.le.0.d0) then write(*,*) write(*,'("Error(readinput): hkmax <= 0 : ",G18.10)') hkmax write(*,*) stop end if case('lorbcnd') read(50,*,err=20) lorbcnd case('lorbordc') read(50,*,err=20) lorbordc if (lorbordc.lt.2) then write(*,*) write(*,'("Error(readinput): lorbordc < 2 : ",I8)') lorbordc write(*,*) stop end if if (lorbordc.gt.maxlorbord) then write(*,*) write(*,'("Error(readinput): lorbordc too large : ",I8)') lorbordc write(*,'("Adjust maxlorbord in modmain and recompile code")') write(*,*) stop end if case('nrmtscf') read(50,*,err=20) nrmtscf if (nrmtscf.lt.0.5d0) then write(*,*) write(*,'("Error(readinput): nrmtscf < 0.5 : ",G18.10)') nrmtscf write(*,*) stop end if case('lmaxdos') read(50,*,err=20) lmaxdos if (lmaxdos.lt.0) then write(*,*) write(*,'("Error(readinput): lmaxdos < 0 : ",I8)') lmaxdos write(*,*) stop end if case('epsdev') read(50,*,err=20) epsdev if (epsdev.le.0.d0) then write(*,*) write(*,'("Error(readinput): epsdev <= 0 : ",G18.10)') epsdev write(*,*) stop end if case('msmooth') read(50,*,err=20) msmooth if (msmooth.lt.0) then write(*,*) write(*,'("Error(readinput): msmooth < 0 : ",I8)') msmooth write(*,*) stop end if case('npmae') read(50,*,err=20) npmae0 case('wrtvars') read(50,*,err=20) wrtvars case('ftmtype') read(50,*,err=20) ftmtype case('tmomfix') read(50,*,err=20) ntmfix if (ntmfix.le.0) then write(*,*) write(*,'("Error(readinput): ntmfix <= 0 : ",I8)') ntmfix write(*,*) stop end if if (allocated(itmfix)) deallocate(itmfix) allocate(itmfix(8,ntmfix)) if (allocated(tmfix)) deallocate(tmfix) allocate(tmfix(ntmfix)) if (allocated(rtmfix)) deallocate(rtmfix) allocate(rtmfix(3,3,2,ntmfix)) do i=1,ntmfix read(50,*,err=20) is,ia,l,n if ((is.le.0).or.(ia.le.0).or.(l.lt.0).or.((n.ne.2).and.(n.ne.3))) then write(*,*) write(*,'("Error(readinput): invalid is, ia, l or n in tmomfix block : ",& &4I8)') is,ia,l,n write(*,*) stop end if itmfix(1,i)=is itmfix(2,i)=ia itmfix(3,i)=l itmfix(4,i)=n ! read k, p, x, y for the 2-index tensor or k, p, r, t for the 3-index tensor read(50,*,err=20) itmfix(5:8,i) ! read tensor component read(50,*,err=20) a,b tmfix(i)=cmplx(a,b,8) ! read parity and Euler angles of spatial and spin rotation matrices read(50,'(A256)',err=20) str str=trim(str)//' 0.0 0.0 0.0' read(str,*,err=20) p,v1(:),v2(:) if (abs(p).ne.1) then write(*,*) write(*,'("Error(readinput): parity should be -1 or 1 in tmomfix & &block : ",I8)') p write(*,*) stop end if ! convert Euler angles from degrees to radians v1(:)=v1(:)*pi/180.d0 v2(:)=v2(:)*pi/180.d0 ! compute the spatial and spin 3x3 rotation matrices from the Euler angles call eulerrot(v1,rtmfix(:,:,1,i)) call eulerrot(v2,rtmfix(:,:,2,i)) ! multiply the spatial rotation matrix by the parity rtmfix(:,:,1,i)=dble(p)*rtmfix(:,:,1,i) end do case('tauftm') read(50,*,err=20) tauftm if (tauftm.lt.0.d0) then write(*,*) write(*,'("Error(readinput): tauftm < 0 : ",G18.10)') tauftm write(*,*) stop end if case('ftmstep') read(50,*,err=20) ftmstep if (ftmstep.lt.1) then write(*,*) write(*,'("Error(readinput): ftmstep < 1 : ",I8)') ftmstep write(*,*) stop end if case('cmagz','forcecmag') read(50,*,err=20) cmagz case('rotavec') read(50,*,err=20) axang(:) case('tstime') read(50,*,err=20) tstime if (tstime.lt.0.d0) then write(*,*) write(*,'("Error(readinput): tstime <= 0 : ",G18.10)') tstime write(*,*) stop end if case('dtimes') read(50,*,err=20) dtimes if (dtimes.le.0.d0) then write(*,*) write(*,'("Error(readinput): dtimes <= 0 : ",G18.10)') dtimes write(*,*) stop end if case('pulse') read(50,*,err=20) npulse if (npulse.lt.1) then write(*,*) write(*,'("Error(readinput): npulse < 1 : ",I8)') npulse write(*,*) stop end if if (allocated(pulse)) deallocate(pulse) allocate(pulse(8,npulse)) do i=1,npulse read(50,*,err=20) pulse(:,i) end do case('ramp') read(50,*,err=20) nramp if (nramp.lt.1) then write(*,*) write(*,'("Error(readinput): nramp < 1 : ",I8)') nramp write(*,*) stop end if if (allocated(ramp)) deallocate(ramp) allocate(ramp(6,nramp)) do i=1,nramp read(50,*,err=20) ramp(:,i) end do case('ncgga') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''ncgga'' is no longer used")') case('dncgga') read(50,*,err=20) dncgga if (dncgga.lt.0.d0) then write(*,*) write(*,'("Error(readinput): dncgga < 0 : ",G18.10)') dncgga write(*,*) stop end if case('ntswrite') read(50,*,err=20) ntswrite case('nxoapwlo','nxapwlo') read(50,*,err=20) nxoapwlo if (nxoapwlo.lt.0) then write(*,*) write(*,'("Error(readinput): nxoapwlo < 0 : ",I8)') nxoapwlo write(*,*) stop end if case('nxlo') read(50,*,err=20) nxlo if (nxlo.lt.0) then write(*,*) write(*,'("Error(readinput): nxlo < 0 : ",I8)') nxlo write(*,*) stop end if case('tdrho1d') read(50,*,err=20) tdrho1d case('tdrho2d') read(50,*,err=20) tdrho2d case('tdrho3d') read(50,*,err=20) tdrho3d case('tdmag2d') read(50,*,err=20) tdmag2d case('tdmag3d') read(50,*,err=20) tdmag3d case('tdcd2d') read(50,*,err=20) tdcd2d case('tdcd3d') read(50,*,err=20) tdcd3d case('tddos') read(50,*,err=20) tddos case('tdlsj') read(50,*,err=20) tdlsj case('epseph') read(50,*,err=20) write(*,*) write(*,'("Info(readinput): variable ''epseph'' is no longer used")') case('rndevt0') read(50,*,err=20) rndevt0 case('ssxc','rstsf') read(50,*,err=20) ssxc case('tempk') read(50,*,err=20) tempk if (tempk.le.0.d0) then write(*,*) write(*,'("Error(readinput): tempk <= 0 : ",G18.10)') tempk write(*,*) stop end if ! set Fermi-Dirac smearing stype=3 ! set the smearing width swidth=kboltz*tempk case('avecu') read(50,*,err=20) avecu(:,1) read(50,*,err=20) avecu(:,2) read(50,*,err=20) avecu(:,3) case('scaleu') read(50,*,err=20) scu case('scaleu1') read(50,*,err=20) scu1 case('scaleu2') read(50,*,err=20) scu2 case('scaleu3') read(50,*,err=20) scu3 case('q0cut') read(50,*,err=20) q0cut if (q0cut.lt.0.d0) then write(*,*) write(*,'("Error(readinput): q0cut < 0 : ",G18.10)') q0cut write(*,*) stop end if case('rndbfcu') read(50,*,err=20) rndbfcu case('efielduc') read(50,*,err=20) efielduc case('tplotq0') read(50,*,err=20) tplotq0 case('trdvclr') read(50,*,err=20) trdvclr case('evtype') read(50,*,err=20) evtype case('wmaxgw') read(50,*,err=20) wmaxgw case('twdiag') read(50,*,err=20) twdiag case('tsediag') read(50,*,err=20) tsediag case('actype') read(50,*,err=20) actype case('npole') read(50,*,err=20) npole if (npole.le.0) then write(*,*) write(*,'("Error(readinput): npole <= 0 : ",I8)') npole write(*,*) stop end if case('nspade') read(50,*,err=20) nspade if (nspade.le.0) then write(*,*) write(*,'("Error(readinput): nspade <= 0 : ",I8)') nspade write(*,*) stop end if case('maxitksi') read(50,*,err=20) maxitksi if (maxitksi.lt.1) then write(*,*) write(*,'("Error(readinput): maxitksi < 1 : ",I8)') maxitksi write(*,*) stop end if case('tauksi') read(50,*,err=20) tauksi if (tauksi.lt.0.d0) then write(*,*) write(*,'("Error(readinput): tauksi < 0 : ",G18.10)') tauksi write(*,*) stop end if case('tfav0') read(50,*,err=20) tfav0 case('nqssjx') read(50,*,err=20) nqssjx if (nqssjx.lt.1) then write(*,*) write(*,'("Error(readinput): nqssjx < 1 : ",I8)') nqssjx write(*,*) stop end if case('thssjx') read(50,*,err=20) thssjx(:) ! convert from radians to degrees thssjx(:)=thssjx(:)*pi/180.d0 case('rmtall') read(50,*,err=20) rmtall case('maxthd','omp_num_threads','OMP_NUM_THREADS') read(50,*,err=20) maxthd case('maxthd1') read(50,*,err=20) maxthd1 case('maxthdmkl') read(50,*,err=20) maxthdmkl case('maxlvl','omp_max_active_levels','OMP_MAX_ACTIVE_LEVELS') read(50,*,err=20) maxlvl if (maxlvl.lt.1) then write(*,*) write(*,'("Error(readinput): maxlvl < 1 : ",I8)') maxlvl write(*,*) stop end if case('stable') read(50,*,err=20) lv if (lv) then nxoapwlo=max(nxoapwlo,1) mixtype=3 broydpm(1)=min(broydpm(1),0.01d0) broydpm(2)=min(broydpm(2),0.04d0) msmooth=max(msmooth,8) if (mp_mpi) then write(*,*) write(*,'("Info(readinput): parameters set by stable option")') write(*,'(" nxoapwlo : ",I4)') nxoapwlo write(*,'(" mixtype : ",I4)') mixtype write(*,'(" broydpm : ",2G18.10)') broydpm write(*,'(" msmooth : ",I4)') msmooth end if end if case('metagga') read(50,*,err=20) lv if (lv) then nempty0=max(nempty0,10.d0) lradstp=1 nrmtscf=max(nrmtscf,2.d0) msmooth=max(msmooth,4) if (mp_mpi) then write(*,*) write(*,'("Info(readinput): parameters set by metagga option")') write(*,'(" nempty0 : ",G18.10)') nempty0 write(*,'(" lradstp : ",I4)') lradstp write(*,'(" nrmtscf : ",G18.10)') nrmtscf write(*,'(" msmooth : ",I4)') msmooth end if end if case('taudft') read(50,*,err=20) taudft case('t0tdlr') read(50,*,err=20) t0tdlr if (t0tdlr.le.0.d0) then write(*,*) write(*,'("Error(readinput): t0tdlr <= 0 : ",G18.10)') t0tdlr write(*,*) stop end if case('tdphi') read(50,*,err=20) tdphi ! convert phase from degrees to radians tdphi=tdphi*pi/180.d0 case('thetamld') read(50,*,err=20) thetamld ! convert MLD angle from degrees to radians thetamld=thetamld*pi/180.d0 case('ntsbackup') read(50,*,err=20) ntsbackup case('seedname') read(50,*,err=20) seedname seedname=adjustl(seedname) case('num_wann') read(50,*,err=20) num_wann case('idxw90','wann_bands') read(50,'(A256)',err=20) str num_bands=1024 if (allocated(idxw90)) deallocate(idxw90) allocate(idxw90(num_bands)) call numlist(str,num_bands,idxw90) case('num_iter') read(50,*,err=20) num_iter case('xlwin','wannierExtra') if (allocated(xlwin)) deallocate(xlwin) allocate(xlwin(0)) nxlwin=0 do read(50,'(A256)',err=20) str if (trim(str).eq.'') goto 10 nxlwin=nxlwin+1 call addstr(xlwin) end do case('tbdip') read(50,*,err=20) tbdip case('tcden') read(50,*,err=20) tcden case('') goto 10 case default write(*,*) write(*,'("Error(readinput): invalid block name : ",A)') trim(block) write(*,*) stop end select goto 10 20 continue write(*,*) write(*,'("Error(readinput): error reading from elk.in")') write(*,'("Problem occurred in ''",A,"'' block")') trim(block) write(*,'("Check input convention in manual")') write(*,*) stop 30 continue close(50) ! scale the speed of light solsc=sol*solscf ! scale and rotate the lattice vectors (not referenced again in code) avec(:,1)=sc1*avec(:,1) avec(:,2)=sc2*avec(:,2) avec(:,3)=sc3*avec(:,3) avec(:,:)=sc*avec(:,:) t1=axang(4) if (t1.ne.0.d0) then t1=t1*pi/180.d0 call axangrot(axang(:),t1,rot) do i=1,3 v1(:)=avec(:,i) call r3mv(rot,v1,avec(:,i)) end do end if ! randomise lattice vectors if required if (rndavec.gt.0.d0) then do i=1,3 do j=1,3 t1=rndavec*(randomu()-0.5d0) avec(i,j)=avec(i,j)+t1 end do end do end if ! case of isolated molecule if (molecule) then ! convert atomic positions from Cartesian to lattice coordinates call r3minv(avec,ainv) do is=1,nspecies do ia=1,natoms(is) call r3mv(ainv,atposl(:,ia,is),v1) atposl(:,ia,is)=v1(:) end do end do end if ! randomise atomic positions if required if (rndatposc.gt.0.d0) then call r3minv(avec,ainv) do is=1,nspecies do ia=1,natoms(is) call r3mv(avec,atposl(:,ia,is),v1) do i=1,3 t1=rndatposc*(randomu()-0.5d0) v1(i)=v1(i)+t1 end do call r3mv(ainv,v1,atposl(:,ia,is)) end do end do end if ! randomise the muffin-tin magnetic fields if required if (rndbfcmt.gt.0.d0) then do is=1,nspecies do ia=1,natoms(is) do i=1,3 t1=rndbfcmt*(randomu()-0.5d0) bfcmt0(i,ia,is)=bfcmt0(i,ia,is)+t1 end do end do end do end if ! set fxctype to fxctype if required if (fxctype(1).eq.-1) fxctype(:)=xctype(:) ! find primitive cell if required if (primcell) call findprimcell ! scale the ultracell vectors if required avecu(:,1)=scu1*avecu(:,1) avecu(:,2)=scu2*avecu(:,2) avecu(:,3)=scu3*avecu(:,3) avecu(:,:)=scu*avecu(:,:) ! read in atomic species data call readspecies return contains subroutine addstr(slist) implicit none ! arguments character(256), intent(inout), allocatable :: slist(:) ! allocatable arrays character(256), allocatable :: stmp(:) n=size(slist) allocate(stmp(n)) stmp(1:n)=slist(1:n) deallocate(slist) allocate(slist(n+1)) slist(1:n)=stmp(1:n) slist(n+1)=str deallocate(stmp) return end subroutine end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ztorfmt.f900000644000000000000000000000013213543334735014654 xustar0030 mtime=1569569245.261641541 30 atime=1569569241.501643943 30 ctime=1569569245.261641541 elk-6.3.2/src/ztorfmt.f900000644002504400250440000000106313543334735016723 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ztorfmt(nr,nri,zfmt,rfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri complex(8), intent(in) :: zfmt(*) real(8), intent(out) :: rfmt(*) ! local variables integer ir,i i=1 do ir=1,nri call ztorflm(lmaxi,zfmt(i),rfmt(i)) i=i+lmmaxi end do do ir=nri+1,nr call ztorflm(lmaxo,zfmt(i),rfmt(i)) i=i+lmmaxo end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/putevecfv.f900000644000000000000000000000013113543334735015155 xustar0030 mtime=1569569245.265641539 29 atime=1569569241.50564394 30 ctime=1569569245.265641539 elk-6.3.2/src/putevecfv.f900000644002504400250440000000172313543334735017230 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putevecfv(fext,ik,evecfv) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv) ! local variables integer recl,i character(256) fname ! find the record length inquire(iolength=recl) vkl(:,ik),nmatmax,nstfv,nspnfv,evecfv fname=trim(scrpath)//'EVECFV'//trim(fext) !$OMP CRITICAL(u122) do i=1,2 open(122,file=trim(fname),form='UNFORMATTED',access='DIRECT',recl=recl,err=10) write(122,rec=ik,err=10) vkl(:,ik),nmatmax,nstfv,nspnfv,evecfv close(122) exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(putevecfv): unable to write to ",A)') trim(fname) write(*,*) stop end if close(122) end do !$OMP END CRITICAL(u122) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zfmtinp.f900000644000000000000000000000013213543334735014636 xustar0030 mtime=1569569245.269641536 30 atime=1569569241.509643938 30 ctime=1569569245.269641536 elk-6.3.2/src/zfmtinp.f900000644002504400250440000000414113543334735016705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zfmtinp ! !INTERFACE: complex(8) function zfmtinp(nr,nri,wr,zfmt1,zfmt2) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of points on the inner part of the muffin-tin (in,integer) ! wr : weights for integration on radial mesh (in,real(nr)) ! zfmt1 : first complex muffin-tin function in spherical harmonics ! (in,complex(*)) ! zfmt2 : second complex muffin-tin function (in,complex(*)) ! !DESCRIPTION: ! Calculates the inner product of two complex fuctions in the muffin-tin. In ! other words, given two complex functions of the form ! $$ f({\bf r})=\sum_{l=0}^{l_{\rm max}}\sum_{m=-l}^{l}f_{lm}(r)Y_{lm} ! (\hat{\bf r}), $$ ! the function returns ! $$ I=\sum_{l=0}^{l_{\rm max}}\sum_{m=-l}^{l}\int f_{lm}^{1*}(r) ! f_{lm}^2(r)r^2\,dr\;. $$ ! ! !REVISION HISTORY: ! Created November 2003 (Sharma) ! Modified, September 2013 (JKD) ! Modified for packed functions, June 2016 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(8), intent(in) :: zfmt1(*),zfmt2(*) ! local variables integer ir,i complex(8) z1 ! automatic arrays real(8) fr1(nr),fr2(nr) ! external functions complex(8) zdotc external zdotc ! compute the dot-products for each radial point i=1 if (lmaxi.eq.1) then do ir=1,nri z1=conjg(zfmt1(i))*zfmt2(i) & +conjg(zfmt1(i+1))*zfmt2(i+1) & +conjg(zfmt1(i+2))*zfmt2(i+2) & +conjg(zfmt1(i+3))*zfmt2(i+3) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+4 end do else do ir=1,nri z1=zdotc(lmmaxi,zfmt1(i),1,zfmt2(i),1) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxi end do end if do ir=nri+1,nr z1=zdotc(lmmaxo,zfmt1(i),1,zfmt2(i),1) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxo end do ! integrate over r zfmtinp=cmplx(dot_product(wr(:),fr1(:)),dot_product(wr(:),fr2(:)),8) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/zfcmtinp.f900000644000000000000000000000013213543334735015001 xustar0030 mtime=1569569245.274641533 30 atime=1569569241.514643934 30 ctime=1569569245.274641533 elk-6.3.2/src/zfcmtinp.f900000644002504400250440000000233513543334735017053 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. complex(8) function zfcmtinp(nr,nri,wr,zfmt1,zfmt2) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) complex(8), intent(in) :: zfmt1(*),zfmt2(*) ! local variables integer ir,i real(8) t1 complex(8) z1 ! automatic arrays real(8) fr1(nr),fr2(nr) ! external functions complex(8) zdotc external zdotc ! compute the dot-products for each radial point i=1 if (lmaxi.eq.1) then do ir=1,nri z1=conjg(zfmt1(i))*zfmt2(i) & +conjg(zfmt1(i+1))*zfmt2(i+1) & +conjg(zfmt1(i+2))*zfmt2(i+2) & +conjg(zfmt1(i+3))*zfmt2(i+3) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+4 end do else do ir=1,nri z1=zdotc(lmmaxi,zfmt1(i),1,zfmt2(i),1) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxi end do end if t1=dble(lmmaxi)/dble(lmmaxo) do ir=nri+1,nr z1=t1*zdotc(lmmaxo,zfmt1(i),1,zfmt2(i),1) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxo end do ! integrate over r t1=fourpi/dble(lmmaxi) zfcmtinp=t1*cmplx(dot_product(wr(:),fr1(:)),dot_product(wr(:),fr2(:)),8) return end function elk-6.3.2/src/PaxHeaders.21352/writelinen.f900000644000000000000000000000013013543334735015325 xustar0029 mtime=1569569245.27864153 30 atime=1569569241.519643931 29 ctime=1569569245.27864153 elk-6.3.2/src/writelinen.f900000644002504400250440000000243313543334735017400 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writelinen ! !INTERFACE: subroutine writelinen ! !USES: use modmain ! !DESCRIPTION: ! Writes the linearisation energies for all APW and local-orbital functions to ! the file {\tt LINENGY.OUT}. ! ! !REVISION HISTORY: ! Created February 2004 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ias,l,io,ilo open(50,file='LINENGY'//trim(filext),form='FORMATTED') do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia write(50,'(" APW functions :")') do l=0,lmaxapw do io=1,apword(l,is) write(50,'(" l = ",I2,", energy derivative = ",I2," : ",G18.10)') l, & apwdm(io,l,is),apwe(io,l,ias) end do end do write(50,'(" local-orbital functions :")') do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) write(50,'(" l.o. = ",I2,", l = ",I2,", energy derivative = ",I2,& &" : ",G18.10)') ilo,lorbl(ilo,is),lorbdm(io,ilo,is),lorbe(io,ilo,ias) end do end do end do end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writekpts.f900000644000000000000000000000013213543334735015203 xustar0030 mtime=1569569245.282641528 30 atime=1569569241.524643928 30 ctime=1569569245.282641528 elk-6.3.2/src/writekpts.f900000644002504400250440000000140213543334735017247 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writekpts ! !INTERFACE: subroutine writekpts ! !USES: use modmain ! !DESCRIPTION: ! Writes the $k$-points in lattice coordinates, weights and number of ! ${\bf G+k}$-vectors to the file {\tt KPOINTS.OUT}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! local variables integer ik open(50,file='KPOINTS'//trim(filext),form='FORMATTED') write(50,'(I6," : nkpt; k-point, vkl, wkpt, nmat below")') nkpt do ik=1,nkpt write(50,'(I6,4G18.10,2I8)') ik,vkl(:,ik),wkpt(ik),nmat(:,ik) end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfmtinp.f900000644000000000000000000000013213543334735014626 xustar0030 mtime=1569569245.286641525 30 atime=1569569241.528643925 30 ctime=1569569245.286641525 elk-6.3.2/src/rfmtinp.f900000644002504400250440000000351713543334735016703 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2003-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rfmtinp ! !INTERFACE: real(8) function rfmtinp(nr,nri,wr,rfmt1,rfmt2) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of radial mesh points on the inner part of the muffin-tin ! (in,integer) ! wr : weights for integration on radial mesh (in,real(nr)) ! rfmt1 : first real function inside muffin-tin (in,real(*)) ! rfmt2 : second real function inside muffin-tin (in,real(*)) ! !DESCRIPTION: ! Calculates the inner product of two real functions in the muffin-tin. So ! given two real functions of the form ! $$ f({\bf r})=\sum_{l=0}^{l_{\rm max}}\sum_{m=-l}^{l}f_{lm}(r)R_{lm} ! (\hat{\bf r}) $$ ! where $R_{lm}$ are the real spherical harmonics, the function returns ! $$ I=\int\sum_{l=0}^{l_{\rm max}}\sum_{m=-l}^{l}f_{lm}^1(r)f_{lm}^2(r)r^2 ! dr\;. $$ ! ! !REVISION HISTORY: ! Created November 2003 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) real(8), intent(in) :: rfmt1(*),rfmt2(*) ! local variables integer n,ir,i ! automatic arrays real(8) fr(nr) i=1 ! inner part of muffin-tin if (lmaxi.eq.1) then do ir=1,nri fr(ir)=rfmt1(i)*rfmt2(i) & +rfmt1(i+1)*rfmt2(i+1) & +rfmt1(i+2)*rfmt2(i+2) & +rfmt1(i+3)*rfmt2(i+3) i=i+4 end do else n=lmmaxi-1 do ir=1,nri fr(ir)=dot_product(rfmt1(i:i+n),rfmt2(i:i+n)) i=i+lmmaxi end do end if ! outer part of muffin-tin n=lmmaxo-1 do ir=nri+1,nr fr(ir)=dot_product(rfmt1(i:i+n),rfmt2(i:i+n)) i=i+lmmaxo end do ! integrate rfmtinp=dot_product(wr(:),fr(:)) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/brzint.f900000644000000000000000000000013213543334735014457 xustar0030 mtime=1569569245.291641522 30 atime=1569569241.533643922 30 ctime=1569569245.291641522 elk-6.3.2/src/brzint.f900000644002504400250440000001113613543334735016530 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: brzint ! !INTERFACE: subroutine brzint(nsm,ngridk,nsk,ivkik,nw,wint,n,ld,e,f,g) ! !INPUT/OUTPUT PARAMETERS: ! nsm : level of smoothing for output function (in,integer) ! ngridk : k-point grid size (in,integer(3)) ! nsk : k-point subdivision grid size (in,integer(3)) ! ivkik : map from (i1,i2,i3) to k-point index ! (in,integer(0:ngridk(1)-1,0:ngridk(2)-1,0:ngridk(3)-1)) ! nw : number of energy divisions (in,integer) ! wint : energy interval (in,real(2)) ! n : number of functions to integrate (in,integer) ! ld : leading dimension (in,integer) ! e : array of energies as a function of k-points (in,real(ld,*)) ! f : array of weights as a function of k-points (in,real(ld,*)) ! g : output function (out,real(nw)) ! !DESCRIPTION: ! Given energy and weight functions, $e$ and $f$, on the Brillouin zone and a ! set of equidistant energies $\omega_i$, this routine computes the integrals ! $$ g(\omega_i)=\frac{\Omega}{(2\pi)^3}\int_{\rm BZ} f({\bf k}) ! \delta(\omega_i-e({\bf k}))d{\bf k}, $$ ! where $\Omega$ is the unit cell volume. This is done by first interpolating ! $e$ and $f$ on a finer $k$-point grid using the trilinear method. Then for ! each $e({\bf k})$ on the finer grid the nearest $\omega_i$ is found and ! $f({\bf k})$ is accumulated in $g(\omega_i)$. If the output function is ! noisy then either {\tt nsk} should be increased or {\tt nw} decreased. ! Alternatively, the output function can be artificially smoothed up to a ! level given by {\tt nsm}. See routine {\tt fsmooth}. ! ! !REVISION HISTORY: ! Created October 2003 (JKD) ! Improved efficiency May 2007 (Sebastian Lebegue) !EOP !BOC implicit none ! arguments integer, intent(in) :: nsm,ngridk(3),nsk(3) integer, intent(in) :: ivkik(0:ngridk(1)-1,0:ngridk(2)-1,0:ngridk(3)-1) integer, intent(in) :: nw real(8), intent(in) :: wint(2) integer, intent(in) :: n,ld real(8), intent(in) :: e(ld,*),f(ld,*) real(8), intent(out) :: g(nw) ! local variables integer i1,i2,i3,j1,j2,j3,k1,k2,k3,i,iw integer i000,i001,i010,i011,i100,i101,i110,i111 real(8) es,fs,wd,dw,dwi,w1,t1,t2 ! allocatable arrays real(8), allocatable :: f0(:),f1(:),e0(:),e1(:) real(8), allocatable :: f00(:),f01(:),f10(:),f11(:) real(8), allocatable :: e00(:),e01(:),e10(:),e11(:) if ((ngridk(1).lt.1).or.(ngridk(2).lt.1).or.(ngridk(3).lt.1)) then write(*,*) write(*,'("Error(brzint): ngridk < 1 : ",3I8)') ngridk write(*,*) stop end if if ((nsk(1).lt.1).or.(nsk(2).lt.1).or.(nsk(3).lt.1)) then write(*,*) write(*,'("Error(brzint): nsk < 1 : ",3I8)') nsk write(*,*) stop end if allocate(f0(n),f1(n),e0(n),e1(n)) allocate(f00(n),f01(n),f10(n),f11(n)) allocate(e00(n),e01(n),e10(n),e11(n)) ! length of interval wd=wint(2)-wint(1) ! energy step size dw=wd/dble(nw) dwi=1.d0/dw w1=wint(1) g(:)=0.d0 do j1=0,ngridk(1)-1 k1=mod(j1+1,ngridk(1)) do j2=0,ngridk(2)-1 k2=mod(j2+1,ngridk(2)) do j3=0,ngridk(3)-1 k3=mod(j3+1,ngridk(3)) i000=ivkik(j1,j2,j3); i001=ivkik(j1,j2,k3) i010=ivkik(j1,k2,j3); i011=ivkik(j1,k2,k3) i100=ivkik(k1,j2,j3); i101=ivkik(k1,j2,k3) i110=ivkik(k1,k2,j3); i111=ivkik(k1,k2,k3) do i1=0,nsk(1)-1 t2=dble(i1)/dble(nsk(1)) t1=1.d0-t2 f00(:)=f(:,i000)*t1+f(:,i100)*t2 f01(:)=f(:,i001)*t1+f(:,i101)*t2 f10(:)=f(:,i010)*t1+f(:,i110)*t2 f11(:)=f(:,i011)*t1+f(:,i111)*t2 e00(:)=e(:,i000)*t1+e(:,i100)*t2 e01(:)=e(:,i001)*t1+e(:,i101)*t2 e10(:)=e(:,i010)*t1+e(:,i110)*t2 e11(:)=e(:,i011)*t1+e(:,i111)*t2 do i2=0,nsk(2)-1 t2=dble(i2)/dble(nsk(2)) t1=1.d0-t2 f0(:)=f00(:)*t1+f10(:)*t2 f1(:)=f01(:)*t1+f11(:)*t2 e0(:)=e00(:)*t1+e10(:)*t2 e1(:)=e01(:)*t1+e11(:)*t2 do i3=0,nsk(3)-1 t2=dble(i3)/dble(nsk(3)) t1=1.d0-t2 do i=1,n fs=f0(i)*t1+f1(i)*t2 es=e0(i)*t1+e1(i)*t2 iw=nint((es-w1)*dwi)+1 if ((iw.ge.1).and.(iw.le.nw)) g(iw)=g(iw)+fs end do end do end do end do end do end do end do ! normalise function t1=dw*dble(ngridk(1)*ngridk(2)*ngridk(3))*dble(nsk(1)*nsk(2)*nsk(3)) t1=1.d0/t1 g(:)=t1*g(:) ! smooth output function if required if (nsm.gt.0) call fsmooth(nsm,nw,g) deallocate(f0,f1,e0,e1) deallocate(f00,f01,f10,f11) deallocate(e00,e01,e10,e11) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rhocore.f900000644000000000000000000000012713543334735014614 xustar0029 mtime=1569569245.29564152 29 atime=1569569241.53764392 29 ctime=1569569245.29564152 elk-6.3.2/src/rhocore.f900000644002504400250440000000405413543334735016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rhocore ! !INTERFACE: subroutine rhocore ! !USES: use modmain ! !DESCRIPTION: ! Adds the core density and magnetisation to the muffin-tin functions. Also ! computes the amount of leakage of core charge from the muffin-tin spheres ! into the interstitial. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Fixed core moment direction, October 2012 (M. Meinert) !EOP !BOC implicit none ! local variables integer ispn,idm,is,ias integer nr,nri,iro,ir,i real(8) v(ndmag),sum,t1 ! automatic arrays real(8) fr(nrmtmax) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 sum=0.d0 ! loop over spin channels do ispn=1,nspncr ! add the core density to the muffin-tin density i=1 do ir=1,nri rhomt(i,ias)=rhomt(i,ias)+rhocr(ir,ias,ispn) i=i+lmmaxi end do do ir=iro,nr rhomt(i,ias)=rhomt(i,ias)+rhocr(ir,ias,ispn) i=i+lmmaxo end do ! compute the core charge inside the muffin-tins t1=dot_product(wrmt(1:nr,is),rhocr(1:nr,ias,ispn)) sum=sum+fourpi*y00*t1 end do ! core leakage charge chgcrlk(ias)=chgcr(is)-sum ! add to the magnetisation in the case of a spin-polarised core if (spincore) then ! compute the moment in the muffin-tin do idm=1,ndmag call rfmtlm(1,nr,nri,magmt(:,ias,idm),fr) t1=dot_product(wrmt(1:nr,is),fr(1:nr)) v(idm)=fourpi*y00*t1 end do ! normalise if (ncmag) then t1=sqrt(v(1)**2+v(2)**2+v(3)**2) else t1=abs(v(1)) end if if (t1.gt.1.d-10) v(:)=v(:)/t1 ! add the core magnetisation to the total i=1 do ir=1,nri t1=abs(rhocr(ir,ias,1)-rhocr(ir,ias,2)) magmt(i,ias,:)=magmt(i,ias,:)+t1*v(:) i=i+lmmaxi end do do ir=iro,nr t1=abs(rhocr(ir,ias,1)-rhocr(ir,ias,2)) magmt(i,ias,:)=magmt(i,ias,:)+t1*v(:) i=i+lmmaxo end do end if end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writelat.f900000644000000000000000000000013213543334735015002 xustar0030 mtime=1569569245.299641517 30 atime=1569569241.542643917 30 ctime=1569569245.299641517 elk-6.3.2/src/writelat.f900000644002504400250440000000324513543334735017055 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writelat use modmain implicit none open(50,file='LATTICE'//trim(filext),form='FORMATTED') write(50,*) write(50,'("+----------------------------+")') write(50,'("| Real-space lattice vectors |")') write(50,'("+----------------------------+")') write(50,*) write(50,'("vector a1 : ",3G18.10)') avec(:,1) write(50,'("vector a2 : ",3G18.10)') avec(:,2) write(50,'("vector a3 : ",3G18.10)') avec(:,3) write(50,*) write(50,'("Stored column-wise as a matrix :")') write(50,'(3G18.10)') avec(1,:) write(50,'(3G18.10)') avec(2,:) write(50,'(3G18.10)') avec(3,:) write(50,*) write(50,'("Inverse of matrix :")') write(50,'(3G18.10)') ainv(1,:) write(50,'(3G18.10)') ainv(2,:) write(50,'(3G18.10)') ainv(3,:) write(50,*) write(50,'("Unit cell volume : ",G18.10)') omega write(50,*) write(50,*) write(50,'("+----------------------------------+")') write(50,'("| Reciprocal-space lattice vectors |")') write(50,'("+----------------------------------+")') write(50,*) write(50,'("vector b1 : ",3G18.10)') bvec(:,1) write(50,'("vector b2 : ",3G18.10)') bvec(:,2) write(50,'("vector b3 : ",3G18.10)') bvec(:,3) write(50,*) write(50,'("Stored column-wise as a matrix :")') write(50,'(3G18.10)') bvec(1,:) write(50,'(3G18.10)') bvec(2,:) write(50,'(3G18.10)') bvec(3,:) write(50,*) write(50,'("Inverse of matrix :")') write(50,'(3G18.10)') binv(1,:) write(50,'(3G18.10)') binv(2,:) write(50,'(3G18.10)') binv(3,:) write(50,*) write(50,'("Brillouin zone volume : ",G18.10)') omegabz close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/mtdmin.f900000644000000000000000000000013213543334735014437 xustar0030 mtime=1569569245.304641514 30 atime=1569569241.546643914 30 ctime=1569569245.304641514 elk-6.3.2/src/mtdmin.f900000644002504400250440000000325113543334735016507 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: mtdmin ! !INTERFACE: subroutine mtdmin(is,js,dmin) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! is, js : species numbers (out,integer) ! dmin : minimum distance between muffin-tin surfaces (out,real) ! !DESCRIPTION: ! Finds the atomic species pair for which the distance between the muffin-tin ! surfaces is a minimum. This distance may be negative if the muffin-tins ! overlap. ! ! !REVISION HISTORY: ! Created October 2011 (JKD) !EOP !BOC implicit none ! arguments integer, intent(out) :: is,js real(8), intent(out) :: dmin ! local variables integer i1,i2,i3,ks,ka,ls,la real(8) v1(3),v2(3),t1,t2,t3 is=1 js=1 dmin=1.d6 do i1=-1,1 do i2=-1,1 do i3=-1,1 v1(:)=dble(i1)*avec(:,1)+dble(i2)*avec(:,2)+dble(i3)*avec(:,3) do ks=1,nspecies do ka=1,natoms(ks) v2(:)=v1(:)+atposc(:,ka,ks) do ls=1,nspecies t1=rmt(ks)+rmt(ls) do la=1,natoms(ls) if ((i1.ne.0).or.(i2.ne.0).or.(i3.ne.0).or.(ks.ne.ls).or. & (ka.ne.la)) then t2=sqrt((v2(1)-atposc(1,la,ls))**2 & +(v2(2)-atposc(2,la,ls))**2 & +(v2(3)-atposc(3,la,ls))**2) t3=t2-t1 if (t3.lt.dmin-epslat) then is=ks js=ls dmin=t3 end if end if end do end do end do end do end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/atpstep.f900000644000000000000000000000013213543334735014627 xustar0030 mtime=1569569245.308641511 30 atime=1569569241.551643911 30 ctime=1569569245.308641511 elk-6.3.2/src/atpstep.f900000644002504400250440000000351713543334735016704 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: atpstep ! !INTERFACE: subroutine atpstep ! !USES: use modmain use modmpi ! !DESCRIPTION: ! Makes a geometry optimisation step and updates the current atomic positions ! according to the force on each atom. If ${\bf r}_{ij}^m$ is the position and ! ${\bf F}_{ij}^m$ is the force acting on it for atom $j$ of species $i$ and ! after time step $m$, then the new position is calculated by ! $$ {\bf r}_{ij}^{m+1}={\bf r}_{ij}^m+\tau_{ij}^m\left({\bf F}_{ij}^m ! +{\bf F}_{ij}^{m-1}\right), $$ ! where $\tau_{ij}^m$ is a parameter governing the size of the displacement. ! If ${\bf F}_{ij}^m\cdot{\bf F}_{ij}^{m-1}>0$ then $\tau_{ij}^m$ is ! increased, otherwise it is decreased. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ias,n real(8) t1 do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! compute the dot-product between the current and previous total force t1=dot_product(forcetot(:,ias),forcetotp(:,ias)) ! if the force is in the same direction then increase step size parameter if (t1.gt.0.d0) then tauatp(ias)=tauatp(ias)+tau0atp else tauatp(ias)=tau0atp end if ! make atomic position step atposc(:,ia,is)=atposc(:,ia,is)+tauatp(ias)*(forcetot(:,ias) & +forcetotp(:,ias)) end do end do ! each MPI process should have identical atomic positions n=3*maxatoms*maxspecies call mpi_bcast(atposc,n,mpi_double_precision,0,mpicom,ierror) do is=1,nspecies do ia=1,natoms(is) ! compute the lattice coordinates of the atomic positions call r3mv(ainv,atposc(:,ia,is),atposl(:,ia,is)) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/potcoul.f900000644000000000000000000000013213543334735014634 xustar0030 mtime=1569569245.313641508 30 atime=1569569241.555643908 30 ctime=1569569245.313641508 elk-6.3.2/src/potcoul.f900000644002504400250440000000467613543334735016720 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: potcoul ! !INTERFACE: subroutine potcoul ! !USES: use modmain use modomp ! !DESCRIPTION: ! Calculates the Coulomb potential of the real charge density stored in the ! global variables {\tt rhomt} and {\tt rhoir} by solving Poisson's equation. ! These variables are coverted to complex representations and passed to the ! routine {\tt zpotcoul}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! local variables integer is,ias,nthd integer nr,nri,ir,i ! allocatable arrays complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) allocate(zrhomt(npmtmax,natmtot)) ! convert real muffin-tin charge density to complex spherical harmonic expansion call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call rtozfmt(nrmt(is),nrmti(is),rhomt(:,ias),zrhomt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) ! solve the complex Poisson's equation in the muffin-tins allocate(zvclmt(npmtmax,natmtot)) call genzvclmt(nrmt,nrmti,nrmtmax,rlmt,wprmt,npmtmax,zrhomt,zvclmt) deallocate(zrhomt) ! add the nuclear monopole potentials do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) i=1 do ir=1,nri zvclmt(i,ias)=zvclmt(i,ias)+vcln(ir,is) i=i+lmmaxi end do do ir=nri+1,nr zvclmt(i,ias)=zvclmt(i,ias)+vcln(ir,is) i=i+lmmaxo end do end do ! store real interstitial charge density in complex array allocate(zrhoir(ngtot)) zrhoir(:)=rhoir(:) ! solve Poisson's equation in the entire unit cell allocate(zvclir(ngtot)) call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gc,gclg, & ngvec,jlgrmt,ylmg,sfacg,zrhoir,npmtmax,zvclmt,zvclir) ! convert complex muffin-tin potential to real spherical harmonic expansion call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call ztorfmt(nrmt(is),nrmti(is),zvclmt(:,ias),vclmt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) ! store complex interstitial potential in real array vclir(:)=dble(zvclir(:)) deallocate(zrhoir,zvclmt,zvclir) ! apply constant electric field if required if (tefield) call potefield return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zfmtconj.f900000644000000000000000000000013213543334735015001 xustar0030 mtime=1569569245.317641505 30 atime=1569569241.560643905 30 ctime=1569569245.317641505 elk-6.3.2/src/zfmtconj.f900000644002504400250440000000114313543334735017047 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfmtconj(nr,nri,np,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri,np complex(8), intent(inout) :: zfmt(np) ! local variables integer ir,i ! automatic arrays complex(8) zfmt1(np) call zcopy(np,zfmt,1,zfmt1,1) i=1 do ir=1,nri call zflmconj(lmaxi,zfmt1(i),zfmt(i)) i=i+lmmaxi end do do ir=nri+1,nr call zflmconj(lmaxo,zfmt1(i),zfmt(i)) i=i+lmmaxo end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/symrfmt.f900000644000000000000000000000013213543334735014650 xustar0030 mtime=1569569245.321641503 30 atime=1569569241.565643902 30 ctime=1569569245.321641503 elk-6.3.2/src/symrfmt.f900000644002504400250440000000355013543334735016722 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine symrfmt(nr,nri,np,ld,rfmt) use modmain implicit none ! arguments integer, intent(in) :: nr(nspecies),nri(nspecies),np(nspecies) integer, intent(in) :: ld real(8), intent(inout) :: rfmt(ld,natmtot) ! local variables integer is,ia,ja,ias,jas integer isym,lspl real(8) t0 ! automatic arrays logical done(natmmax) ! allocatable arrays real(8), allocatable :: rfmt1(:,:),rfmt2(:) allocate(rfmt1(ld,natmmax),rfmt2(ld)) t0=1.d0/dble(nsymcrys) do is=1,nspecies ! make a copy of the input function do ia=1,natoms(is) ias=idxas(ia,is) call dcopy(np(is),rfmt(:,ias),1,rfmt1(:,ia),1) end do done(:)=.false. ! loop over atoms do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) rfmt(1:np(is),ias)=0.d0 ! loop over crystal symmetries do isym=1,nsymcrys ! index to spatial rotation lattice symmetry lspl=lsplsymc(isym) ! equivalent atom index (symmetry rotates atom ja into atom ia) ja=ieqatom(ia,is,isym) ! apply the rotation to the muffin-tin function call rotrfmt(symlatc(:,:,lspl),nr(is),nri(is),rfmt1(:,ja),rfmt2) ! accumulate in original function array rfmt(1:np(is),ias)=rfmt(1:np(is),ias)+rfmt2(1:np(is)) end do ! normalise call dscal(np(is),t0,rfmt(:,ias),1) done(ia)=.true. ! rotate into equivalent atoms do isym=1,nsymcrys ja=ieqatom(ia,is,isym) if (done(ja)) cycle jas=idxas(ja,is) ! inverse symmetry (which rotates atom ia into atom ja) lspl=isymlat(lsplsymc(isym)) ! rotate symmetrised function into equivalent muffin-tin call rotrfmt(symlatc(:,:,lspl),nr(is),nri(is),rfmt(:,ias),rfmt(:,jas)) done(ja)=.true. end do end do end do deallocate(rfmt1,rfmt2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/putpmat.f900000644000000000000000000000012613543334735014644 xustar0028 mtime=1569569245.3266415 30 atime=1569569241.569643899 28 ctime=1569569245.3266415 elk-6.3.2/src/putpmat.f900000644002504400250440000000366213543334735016717 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putpmat(ik) use modmain use modmpi implicit none ! arguments integer, intent(in) :: ik ! local variables integer ist,ispn,recl,i ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:),pmat(:,:,:) ! index to all states do ist=1,nstsv idx(ist)=ist end do allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! calculate the wavefunctions for all states allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngkmax,nspinor,nstsv)) call genwfsv(.true.,.true.,nstsv,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(evecfv,evecsv,apwalm) ! calculate the momentum matrix elements allocate(pmat(nstsv,nstsv,3)) call genpmatk(ngk(:,ik),igkig(:,:,ik),vgkc(:,:,:,ik),wfmt,wfgk,pmat) deallocate(wfmt,wfgk) ! determine the record length inquire(iolength=recl) vkl(:,1),nstsv,pmat ! write the matrix elements in the second-variational basis !$OMP CRITICAL(u150) do i=1,2 open(150,file='PMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl,err=10) write(150,rec=ik,err=10) vkl(:,ik),nstsv,pmat close(150) exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(putpmat): unable to write to PMAT.OUT")') write(*,*) stop end if close(150) end do !$OMP END CRITICAL(u150) deallocate(pmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/eveqnz.f900000644000000000000000000000013213543334735014457 xustar0030 mtime=1569569245.330641497 30 atime=1569569241.574643896 30 ctime=1569569245.330641497 elk-6.3.2/src/eveqnz.f900000644002504400250440000000336713543334735016537 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine eveqnz(n,ld,a,w) use modmain use modomp implicit none ! arguments integer, intent(in) :: n,ld complex(8), intent(inout) :: a(ld,n) real(8), intent(out) :: w(n) ! local variables integer liwork,lrwork integer lwork,info,nthd ! allocatable arrays integer, allocatable :: iwork(:) real(8), allocatable :: rwork(:) complex(8), allocatable :: work(:) select case(evtype) case(0) ! use the LAPACK routine zheev lwork=2*n allocate(rwork(3*n),work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) call mkl_set_num_threads(nthd) call zheev('V','U',n,a,ld,w,work,lwork,rwork,info) call freethd(nthd) call mkl_set_num_threads(1) if (info.ne.0) then write(*,*) write(*,'("Error(eveqnz): diagonalisation failed")') write(*,'(" ZHEEV returned INFO = ",I8)') info write(*,*) stop end if deallocate(rwork,work) case(1) ! use the divide-and-conquer LAPACK routine zheevd liwork=5*n+3 lrwork=2*n**2+5*n+1 lwork=n**2+2*n allocate(iwork(liwork),rwork(lrwork),work(lwork)) ! enable MKL parallelism call holdthd(maxthdmkl,nthd) call mkl_set_num_threads(nthd) call zheevd('V','U',n,a,ld,w,work,lwork,rwork,lrwork,iwork,liwork,info) call freethd(nthd) call mkl_set_num_threads(1) if (info.ne.0) then write(*,*) write(*,'("Error(eveqnz): diagonalisation failed")') write(*,'(" ZHEEVD returned INFO = ",I8)') info write(*,*) stop end if deallocate(iwork,rwork,work) case default write(*,*) write(*,'("Error(eveqnz): evtype not defined : ",I8)') evtype write(*,*) stop end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/olpalo.f900000644000000000000000000000013213543334735014435 xustar0030 mtime=1569569245.334641495 30 atime=1569569241.578643894 30 ctime=1569569245.334641495 elk-6.3.2/src/olpalo.f900000644002504400250440000000141713543334735016507 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine olpalo(ias,ngp,apwalm,ld,o) use modmain implicit none ! arguments integer, intent(in) :: ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: o(*) ! local variables integer is,ilo,io integer l,m,lm,i,j,k is=idxis(ias) do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l lm=idxlm(l,m) j=ngp+idxlo(lm,ilo,ias) k=(j-1)*ld do i=1,ngp k=k+1 do io=1,apword(l,is) o(k)=o(k)+conjg(apwalm(i,io,lm))*oalo(io,ilo,ias) end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/checkfsm.f900000644000000000000000000000013213543334735014732 xustar0030 mtime=1569569245.339641491 30 atime=1569569241.582643891 30 ctime=1569569245.339641491 elk-6.3.2/src/checkfsm.f900000644002504400250440000000304713543334735017005 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine checkfsm use modmain implicit none ! local variables integer isym,lspn integer is,ia,ja real(8) sc(3,3),v(3),t1 if (fsmtype.eq.0) return do isym=1,nsymcrys lspn=lspnsymc(isym) ! proper rotation matrix in Cartesian coordinates sc(:,:)=dble(symlatd(lspn))*symlatc(:,:,lspn) ! check invariance of global moment if ((abs(fsmtype).eq.1).or.(abs(fsmtype).eq.3)) then call r3mv(sc,momfix,v) t1=sum(abs(momfix(:)-v(:))) if (t1.gt.epslat) then write(*,*) write(*,'("Error(checkfsm): momfix not invariant under symmetry group")') write(*,*) stop end if end if ! check invariance of muffin-tin moments if ((abs(fsmtype).eq.2).or.(abs(fsmtype).eq.3)) then do is=1,nspecies do ia=1,natoms(is) ! if any component is >= 1000 then do not fix the moment t1=sum(abs(mommtfix(:,ia,is))) if (t1.ge.1000.d0) cycle ! equivalent atom ja=ieqatom(ia,is,isym) call r3mv(sc,mommtfix(:,ja,is),v) t1=sum(abs(mommtfix(:,ia,is)-v(:))) if (t1.gt.epslat) then write(*,*) write(*,'("Error(checkfsm): mommtfix not invariant under symmetry & &group")') write(*,'(" for species ",I4)') is write(*,'(" and equivalent atoms ",2I4)') ia,ja write(*,*) stop end if end do end do end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhoplot.f900000644000000000000000000000013213543334735014636 xustar0030 mtime=1569569245.343641489 30 atime=1569569241.586643888 30 ctime=1569569245.343641489 elk-6.3.2/src/rhoplot.f900000644002504400250440000000246113543334735016710 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rhoplot ! !INTERFACE: subroutine rhoplot ! !USES: use modmain ! !DESCRIPTION: ! Outputs the charge density, read in from {\tt STATE.OUT}, for 1D, 2D or 3D ! plotting. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! initialise universal variables call init0 ! read density from file call readstate ! write the density plot to file select case(task) case(31) open(50,file='RHO1D.OUT',form='FORMATTED') open(51,file='RHOLINES.OUT',form='FORMATTED') call plot1d(50,51,1,rhomt,rhoir) close(50) close(51) write(*,*) write(*,'("Info(rhoplot):")') write(*,'(" 1D density plot written to RHO1D.OUT")') write(*,'(" vertex location lines written to RHOLINES.OUT")') case(32) open(50,file='RHO2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,rhomt,rhoir) close(50) write(*,*) write(*,'("Info(rhoplot): 2D density plot written to RHO2D.OUT")') case(33) open(50,file='RHO3D.OUT',form='FORMATTED') call plot3d(50,1,rhomt,rhoir) close(50) write(*,*) write(*,'("Info(rhoplot): 3D density plot written to RHO3D.OUT")') end select return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/potnucl.f900000644000000000000000000000013213543334735014633 xustar0030 mtime=1569569245.348641486 30 atime=1569569241.591643885 30 ctime=1569569245.348641486 elk-6.3.2/src/potnucl.f900000644002504400250440000000314513543334735016705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: potnucl ! !INTERFACE: subroutine potnucl(ptnucl,nr,r,zn,vn) ! !INPUT/OUTPUT PARAMETERS: ! ptnucl : .true. if the nucleus is a point charge (in,logical) ! nr : number of radial mesh points (in,integer) ! r : radial mesh (in,real(nr)) ! zn : nuclear charge (in,real) ! vn : potential on radial mesh (out,real(nr)) ! !DESCRIPTION: ! Computes the nuclear Coulomb potential on a radial mesh. The nuclear radius ! $R$ is estimated from the nuclear charge $Z$ and the potential is given by ! $$ V(r)=\begin{cases} ! Z(3R^2-r^2)/2R^3 & r0}}(n-im) $$ ! for $n,\,m \ge 0$. $n$ should be less than 150. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n,m ! local variables integer i,j real(8) f1(24),f2(38) data f1 / & 1.d0, 2.d0, & 6.d0, 24.d0, & 120.d0, 720.d0, & 5040.d0, 40320.d0, & 362880.d0, 3628800.d0, & 39916800.d0, 479001600.d0, & 6227020800.d0, 87178291200.d0, & 1307674368000.d0, 20922789888000.d0, & 355687428096000.d0, 6402373705728000.d0, & 121645100408832000.d0, 2432902008176640000.d0, & 51090942171709440000.d0, 1124000727777607680000.d0, & 25852016738884976640000.d0, 620448401733239439360000.d0 / data f2 / & 1.d0, 2.d0, & 3.d0, 8.d0, & 15.d0, 48.d0, & 105.d0, 384.d0, & 945.d0, 3840.d0, & 10395.d0, 46080.d0, & 135135.d0, 645120.d0, & 2027025.d0, 10321920.d0, & 34459425.d0, 185794560.d0, & 654729075.d0, 3715891200.d0, & 13749310575.d0, 81749606400.d0, & 316234143225.d0, 1961990553600.d0, & 7905853580625.d0, 51011754393600.d0, & 213458046676875.d0, 1428329123020800.d0, & 6190283353629375.d0, 42849873690624000.d0, & 191898783962510625.d0, 1371195958099968000.d0, & 6332659870762850625.d0, 46620662575398912000.d0, & 221643095476699771875.d0, 1678343852714360832000.d0, & 8200794532637891559375.d0, 63777066403145711616000.d0 / ! fast return if possible if (n.eq.0) then factnm=1.d0 return end if if (m.eq.1) then if ((n.ge.1).and.(n.le.24)) then factnm=f1(n) return end if end if if (m.eq.2) then if ((n.ge.1).and.(n.le.38)) then factnm=f2(n) return end if end if if (n.lt.0) then write(*,*) write(*,'("Error(factnm): n < 0 : ",I8)') n write(*,*) stop end if if (m.le.0) then write(*,*) write(*,'("Error(factnm): m <= 0 : ",I8)') m write(*,*) stop end if if (n.gt.150) then write(*,*) write(*,'("Error(factnm): n out of range : ",I8)') n write(*,*) stop end if if (m.eq.1) then factnm=f1(24) do i=25,n factnm=factnm*dble(i) end do else j=n/m if (mod(n,m).eq.0) j=j-1 factnm=dble(n) do i=1,j factnm=factnm*dble(n-i*m) end do end if return end function !EOC elk-6.3.2/src/PaxHeaders.21352/atom.f900000644000000000000000000000013213543334735014107 xustar0030 mtime=1569569245.410641446 30 atime=1569569241.654643845 30 ctime=1569569245.410641446 elk-6.3.2/src/atom.f900000644002504400250440000001315113543334735016157 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: atom ! !INTERFACE: subroutine atom(sol,ptnucl,zn,nst,n,l,k,occ,xctype,xcgrad,nr,r,eval,rho,vr,rwf) ! !USES: use modxcifc ! !INPUT/OUTPUT PARAMETERS: ! sol : speed of light in atomic units (in,real) ! ptnucl : .true. if the nucleus is a point particle (in,logical) ! zn : nuclear charge (in,real) ! nst : number of states to solve for (in,integer) ! n : priciple quantum number of each state (in,integer(nst)) ! l : quantum number l of each state (in,integer(nst)) ! k : quantum number k (l or l+1) of each state (in,integer(nst)) ! occ : occupancy of each state (inout,real(nst)) ! xctype : exchange-correlation type (in,integer(3)) ! xcgrad : 1 for GGA functional, 0 otherwise (in,integer) ! nr : number of radial mesh points (in,integer) ! r : radial mesh (in,real(nr)) ! eval : eigenvalue without rest-mass energy for each state (out,real(nst)) ! rho : charge density (out,real(nr)) ! vr : self-constistent potential (out,real(nr)) ! rwf : major and minor components of radial wavefunctions for each state ! (out,real(nr,2,nst)) ! !DESCRIPTION: ! Solves the Dirac-Kohn-Sham equations for an atom using the ! exchange-correlation functional {\tt xctype} and returns the self-consistent ! radial wavefunctions, eigenvalues, charge densities and potentials. Requires ! the exchange-correlation interface routine {\tt xcifc}. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) ! Fixed s.c. convergence problem, October 2003 (JKD) ! Added support for GGA functionals, June 2006 (JKD) ! !EOP !BOC implicit none ! arguments real(8), intent(in) :: sol logical, intent(in) :: ptnucl real(8), intent(in) :: zn integer, intent(in) :: nst integer, intent(in) :: n(nst),l(nst),k(nst) real(8), intent(inout) :: occ(nst) integer, intent(in) :: xctype(3),xcgrad integer, intent(in) :: nr real(8), intent(in) :: r(nr) real(8), intent(out) :: eval(nst) real(8), intent(out) :: rho(nr),vr(nr) real(8), intent(out) :: rwf(nr,2,nst) ! local variables integer, parameter :: maxscl=200 integer ir,ist,iscl real(8), parameter :: fourpi=12.566370614359172954d0 ! potential convergence tolerance real(8), parameter :: eps=1.d-6 real(8) sum,dv,dvp,ze,beta,t1 ! allocatable arrays real(8), allocatable :: vn(:),vh(:),ex(:),ec(:),vx(:),vc(:),vrp(:) real(8), allocatable :: ri(:),wpr(:,:),fr1(:),fr2(:),gr1(:),gr2(:) real(8), allocatable :: grho(:),g2rho(:),g3rho(:) if (nst.le.0) then write(*,*) write(*,'("Error(atom): invalid nst : ",I8)') nst write(*,*) stop end if ! allocate local arrays allocate(vn(nr),vh(nr),ex(nr),ec(nr),vx(nr),vc(nr),vrp(nr)) allocate(ri(nr),wpr(4,nr),fr1(nr),fr2(nr),gr1(nr),gr2(nr)) if (xcgrad.eq.1) then allocate(grho(nr),g2rho(nr),g3rho(nr)) end if ! find total electronic charge ze=0.d0 do ist=1,nst ze=ze+occ(ist) end do ! set up nuclear potential call potnucl(ptnucl,nr,r,zn,vn) do ir=1,nr ri(ir)=1.d0/r(ir) ! initialise the Kohn-Sham potential to the nuclear potential vr(ir)=vn(ir) end do ! determine the weights for radial integration call wsplintp(nr,r,wpr) dvp=0.d0 vrp(:)=0.d0 ! initialise mixing parameter beta=0.5d0 ! initialise eigenvalues to relativistic values (minus the rest mass energy) do ist=1,nst t1=sqrt(dble(k(ist)**2)-(zn/sol)**2) t1=(dble(n(ist)-abs(k(ist)))+t1)**2 t1=1.d0+((zn/sol)**2)/t1 eval(ist)=sol**2/sqrt(t1)-sol**2 end do ! start of self-consistent loop do iscl=1,maxscl ! solve the Dirac equation for each state !$OMP PARALLEL DO DEFAULT(SHARED) do ist=1,nst call rdirac(sol,n(ist),l(ist),k(ist),nr,r,vr,eval(ist),rwf(:,1,ist), & rwf(:,2,ist)) end do !$OMP END PARALLEL DO ! compute the charge density do ir=1,nr sum=0.d0 do ist=1,nst sum=sum+occ(ist)*(rwf(ir,1,ist)**2+rwf(ir,2,ist)**2) end do fr1(ir)=sum fr2(ir)=sum*ri(ir) rho(ir)=(1.d0/fourpi)*sum*ri(ir)**2 end do call splintwp(nr,wpr,fr1,gr1) call splintwp(nr,wpr,fr2,gr2) ! find the Hartree potential t1=gr2(nr) do ir=1,nr vh(ir)=gr1(ir)*ri(ir)+t1-gr2(ir) end do ! normalise charge density and potential t1=ze/gr1(nr) rho(:)=t1*rho(:) vh(:)=t1*vh(:) ! compute the exchange-correlation energy and potential if (xcgrad.eq.1) then ! GGA functional ! |grad rho| call fderiv(1,nr,r,rho,grho) ! grad^2 rho call fderiv(2,nr,r,rho,g2rho) do ir=1,nr g2rho(ir)=g2rho(ir)+2.d0*ri(ir)*grho(ir) end do ! approximate (grad rho).(grad |grad rho|) do ir=1,nr g3rho(ir)=grho(ir)*g2rho(ir) end do call xcifc(xctype,n=nr,rho=rho,grho=grho,g2rho=g2rho,g3rho=g3rho,ex=ex, & ec=ec,vx=vx,vc=vc) else ! LDA functional call xcifc(xctype,n=nr,rho=rho,ex=ex,ec=ec,vx=vx,vc=vc) end if ! self-consistent potential vr(:)=vh(:)+vx(:)+vc(:) ! determine change in potential sum=0.d0 do ir=1,nr sum=sum+(vr(ir)-vrp(ir))**2 end do dv=sqrt(sum)/dble(nr) if (iscl.gt.2) then ! reduce beta if change in potential is diverging if (dv.gt.dvp) beta=beta*0.8d0 beta=max(beta,0.01d0) end if dvp=dv do ir=1,nr ! mix old and new potentials vr(ir)=(1.d0-beta)*vrp(ir)+beta*vr(ir) vrp(ir)=vr(ir) ! add nuclear potential vr(ir)=vr(ir)+vn(ir) end do ! check for convergence if ((iscl.gt.2).and.(dv.lt.eps)) goto 10 ! end self-consistent loop end do write(*,*) write(*,'("Warning(atom): maximum iterations exceeded")') 10 continue deallocate(vn,vh,ex,ec,vx,vc,vrp) deallocate(ri,wpr,fr1,fr2,gr1,gr2) if (xcgrad.eq.1) deallocate(grho,g2rho,g3rho) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/radnucl.f900000644000000000000000000000013213543334735014577 xustar0030 mtime=1569569245.414641444 30 atime=1569569241.658643842 30 ctime=1569569245.414641444 elk-6.3.2/src/radnucl.f900000644002504400250440000000311713543334735016650 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: radnucl ! !INTERFACE: real(8) function radnucl(z) ! !INPUT/OUTPUT PARAMETERS: ! z : atomic number (in,real) ! !DESCRIPTION: ! Computes an approximate nuclear charge radius from the atomic number $Z$. ! The nuclear mass number, $A$, is estimated using ! $$ A=4.467\times 10^{-3}Z^2+2.163 Z-1.168, $$ ! [D. Andrae in {\it Relativistic Electronic Structure Theory - Fundamentals} ! {\bf 11}, 203 (2002)], and the nuclear charge radius can be determined from ! $$ r=\left(r_0+\frac{r_1}{A^{2/3}}+\frac{r_2}{A^{4/3}}\right)A^{1/3}, $$ ! where $r_0=0.9071$, $r_1=1.105$ and $r_2=-0.548$ [I. Angeli, {\it Atomic ! Data and Nuclear Data Tables} {\bf 87}, 185 (2004)]. ! ! !REVISION HISTORY: ! Created October 2011 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: z ! local variables ! coefficients for computing mass number real(8), parameter :: c2=4.467d-3, c1=2.163d0, c0=-1.168d0 ! coefficients for computing charge radius (fm) real(8), parameter :: r0=0.9071d0, r1=1.105d0, r2=-0.548d0 ! Bohr radius in SI units (CODATA 2018) real(8), parameter :: br_si=0.529177210903d-10 real(8) za,a,a13,a23,a43 za=abs(z) ! approximate nuclear mass number if (za.le.1.d0) then a=1.d0 else a=c2*za**2+c1*za+c0 end if ! approximate nuclear charge radius a13=a**(1.d0/3.d0) a23=a13**2 a43=a13*a radnucl=(r0+r1/a23+r2/a43)*a13 radnucl=radnucl*1.d-15/br_si return end function !EOC elk-6.3.2/src/PaxHeaders.21352/charge.f900000644000000000000000000000013013543334735014376 xustar0029 mtime=1569569245.41964144 30 atime=1569569241.663643839 29 ctime=1569569245.41964144 elk-6.3.2/src/charge.f900000644002504400250440000000147313543334735016454 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: charge ! !INTERFACE: subroutine charge ! !USES: use modmain use modtest ! !DESCRIPTION: ! Computes the muffin-tin, interstitial and total charges by integrating the ! density. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! local variables real(8) t1 ! find the muffin-tin charges call chargemt ! find the interstitial charge t1=dot_product(rhoir(:),cfunir(:)) chgir=t1*omega/dble(ngtot) ! total calculated charge chgcalc=chgmttot+chgir ! write total calculated charge to test file call writetest(400,'calculated total charge',tol=1.d-6,rv=chgcalc) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genrmesh.f900000644000000000000000000000013213543334735014757 xustar0030 mtime=1569569245.423641438 30 atime=1569569241.667643837 30 ctime=1569569245.423641438 elk-6.3.2/src/genrmesh.f900000644002504400250440000000723213543334735017032 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genrmesh ! !INTERFACE: subroutine genrmesh ! !USES: use modmain use modvars ! !DESCRIPTION: ! Generates the coarse and fine radial meshes for each atomic species in the ! crystal. Also determines which points are in the inner part of the ! muffin-tin using the value of {\tt fracinr}. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) !EOP !BOC implicit none ! local variables integer is,nr,nrc integer ir,irc,l real(8) t1,t2 ! estimate the number of radial mesh points to infinity nrspmax=1 do is=1,nspecies ! logarithmic mesh t1=log(rmaxsp(is)/rminsp(is))/log(rmt(is)/rminsp(is)) t2=dble(nrmt(is)-1)*t1 nrsp(is)=nint(t2)+1 nrspmax=max(nrspmax,nrsp(is)) end do ! generate the radial meshes if (allocated(rsp)) deallocate(rsp) allocate(rsp(nrspmax,nspecies)) if (allocated(rlmt)) deallocate(rlmt) allocate(rlmt(nrmtmax,-lmaxo-1:lmaxo+2,nspecies)) if (allocated(wrmt)) deallocate(wrmt) allocate(wrmt(nrmtmax,nspecies)) if (allocated(wprmt)) deallocate(wprmt) allocate(wprmt(4,nrmtmax,nspecies)) do is=1,nspecies t1=1.d0/dble(nrmt(is)-1) ! logarithmic mesh t2=log(rmt(is)/rminsp(is)) do ir=1,nrsp(is) rsp(ir,is)=rminsp(is)*exp(dble(ir-1)*t1*t2) end do ! calculate r^l on the fine radial mesh nr=nrmt(is) rlmt(1:nr,-1,is)=1.d0/rsp(1:nr,is) rlmt(1:nr,0,is)=1.d0 rlmt(1:nr,1,is)=rsp(1:nr,is) do l=-2,-lmaxo-1,-1 do ir=1,nr rlmt(ir,l,is)=rlmt(ir,l+1,is)/rsp(ir,is) end do end do do l=2,lmaxo+2 do ir=1,nr rlmt(ir,l,is)=rlmt(ir,l-1,is)*rsp(ir,is) end do end do ! determine the weights for spline integration on the fine radial mesh call wsplint(nr,rsp(:,is),wrmt(:,is)) ! multiply by r^2 wrmt(1:nr,is)=wrmt(1:nr,is)*rlmt(1:nr,2,is) ! determine the weights for partial integration on fine radial mesh call wsplintp(nr,rsp(:,is),wprmt(:,:,is)) end do ! determine the fraction of the muffin-tin radius which defines the inner part if (fracinr.lt.0.d0) fracinr=sqrt(dble(lmmaxi)/dble(lmmaxo)) ! set up the coarse radial meshes and find the inner part of the muffin-tin ! where rho is calculated with lmaxi if (allocated(rcmt)) deallocate(rcmt) allocate(rcmt(nrcmtmax,nspecies)) if (allocated(rlcmt)) deallocate(rlcmt) allocate(rlcmt(nrcmtmax,-lmaxo-1:lmaxo+2,nspecies)) if (allocated(wrcmt)) deallocate(wrcmt) allocate(wrcmt(nrcmtmax,nspecies)) if (allocated(wprcmt)) deallocate(wprcmt) allocate(wprcmt(4,nrcmtmax,nspecies)) do is=1,nspecies t1=fracinr*rmt(is) nrmti(is)=1 nrcmti(is)=1 irc=0 do ir=1,nrmt(is),lradstp irc=irc+1 rcmt(irc,is)=rsp(ir,is) if (rsp(ir,is).lt.t1) then nrmti(is)=ir nrcmti(is)=irc end if end do ! store r^l on the coarse radial mesh do l=-lmaxo-1,lmaxo+2 irc=0 do ir=1,nrmt(is),lradstp irc=irc+1 rlcmt(irc,l,is)=rlmt(ir,l,is) end do end do ! determine the weights for spline integration on the coarse radial mesh nrc=nrcmt(is) call wsplint(nrc,rcmt(:,is),wrcmt(:,is)) ! multiply by r^2 wrcmt(1:nrc,is)=wrcmt(1:nrc,is)*rlcmt(1:nrc,2,is) ! determine the weights for partial integration on coarse radial mesh call wsplintp(nrc,rcmt(:,is),wprcmt(:,:,is)) end do ! write to VARIABLES.OUT call writevars('nrsp',nv=nspecies,iva=nrsp) call writevars('nrmt',nv=nspecies,iva=nrmt) call writevars('nrmti',nv=nspecies,iva=nrmti) call writevars('lradstp',iv=lradstp) call writevars('nrcmt',nv=nspecies,iva=nrcmt) call writevars('nrcmti',nv=nspecies,iva=nrcmti) do is=1,nspecies call writevars('rsp',nv=nrmt(is),rva=rsp(:,is)) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genapwlofr.f900000644000000000000000000000013213543334735015313 xustar0030 mtime=1569569245.428641435 30 atime=1569569241.672643834 30 ctime=1569569245.428641435 elk-6.3.2/src/genapwlofr.f900000644002504400250440000000147713543334735017373 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genapwlofr use modomp implicit none ! local variables integer nthd call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! generate the APW radial functions call genapwfr !$OMP SECTION ! generate the local-orbital radial functions call genlofr !$OMP END PARALLEL SECTIONS call freethd(nthd) call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! compute the overlap radial integrals call olprad !$OMP SECTION ! compute the Hamiltonian radial integrals call hmlrad !$OMP END PARALLEL SECTIONS call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/wavefmt.f900000644000000000000000000000013113543334735014617 xustar0030 mtime=1569569245.432641432 29 atime=1569569241.67764383 30 ctime=1569569245.432641432 elk-6.3.2/src/wavefmt.f900000644002504400250440000001023213543334735016665 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: wavefmt ! !INTERFACE: subroutine wavefmt(lrstp,ias,ngp,apwalm,evecfv,wfmt) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! lrstp : radial step length (in,integer) ! ias : joint atom and species number (in,integer) ! ngp : number of G+p-vectors (in,integer) ! apwalm : APW matching coefficients (in,complex(ngkmax,apwordmax,lmmaxapw)) ! evecfv : first-variational eigenvector (in,complex(nmatmax)) ! wfmt : complex muffin-tin wavefunction passed in as real array ! (out,real(2,*)) ! !DESCRIPTION: ! Calculates the first-variational wavefunction in the muffin-tin in terms of ! a spherical harmonic expansion. For atom $\alpha$ and a particular $k$-point ! ${\bf p}$, the $r$-dependent $(l,m)$-coefficients of the wavefunction for ! the $i$th state are given by ! $$ \Phi^{i{\bf p}}_{\alpha lm}(r)=\sum_{\bf G}b^{i{\bf p}}_{\bf G} ! \sum_{j=1}^{M^{\alpha}_l}A^{\alpha}_{jlm}({\bf G+p})u^{\alpha}_{jl}(r) ! +\sum_{j=1}^{N^{\alpha}}b^{i{\bf p}}_{(\alpha,j,m)}v^{\alpha}_j(r) ! \delta_{l,l_j}, $$ ! where $b^{i{\bf p}}$ is the $i$th eigenvector returned from routine ! {\tt eveqn}; $A^{\alpha}_{jlm}({\bf G+p})$ is the matching coefficient; ! $M^{\alpha}_l$ is the order of the APW; $u^{\alpha}_{jl}$ is the APW radial ! function; $N^{\alpha}$ is the number of local-orbitals; $v^{\alpha}_j$ is ! the $j$th local-orbital radial function; and $(\alpha,j,m)$ is a compound ! index for the location of the local-orbital in the eigenvector. See routines ! {\tt genapwfr}, {\tt genlofr}, {\tt match} and {\tt eveqn}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) ! Fixed description, October 2004 (C. Brouder) ! Removed argument ist, November 2006 (JKD) ! Changed arguments and optimised, December 2014 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lrstp,ias,ngp complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: evecfv(nmatmax) real(8), intent(out) :: wfmt(2,*) ! local variables integer is,ldi,ldo,io,ilo integer nrc,nrci,nrco,iro integer l,m,lm,npc,npci,i complex(8) z1 ! external functions complex(8) zdotu external zdotu is=idxis(ias) ldi=2*lmmaxi ldo=2*lmmaxo iro=nrmti(is)+lrstp if (lrstp.eq.1) then nrc=nrmt(is) nrci=nrmti(is) npc=npmt(is) npci=npmti(is) else if (lrstp.eq.lradstp) then nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) npci=npcmti(is) else write(*,*) write(*,'("Error(wavefmt): invalid lrstp : ",I8)') lrstp write(*,*) stop end if nrco=nrc-nrci ! zero the wavefunction wfmt(:,1:npc)=0.d0 !-----------------------! ! APW functions ! !-----------------------! lm=0 do l=0,lmaxo do m=-l,l lm=lm+1 i=npci+lm do io=1,apword(l,is) z1=zdotu(ngp,evecfv,1,apwalm(:,io,lm),1) if (abs(dble(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,dble(z1),apwfr(1,1,io,l,ias),lrstp,wfmt(1,lm),ldi) end if call daxpy(nrco,dble(z1),apwfr(iro,1,io,l,ias),lrstp,wfmt(1,i),ldo) end if if (abs(aimag(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,aimag(z1),apwfr(1,1,io,l,ias),lrstp,wfmt(2,lm),ldi) end if call daxpy(nrco,aimag(z1),apwfr(iro,1,io,l,ias),lrstp,wfmt(2,i),ldo) end if end do end do end do !---------------------------------! ! local-orbital functions ! !---------------------------------! do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l lm=idxlm(l,m) i=npci+lm z1=evecfv(ngp+idxlo(lm,ilo,ias)) if (abs(dble(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,dble(z1),lofr(1,1,ilo,ias),lrstp,wfmt(1,lm),ldi) end if call daxpy(nrco,dble(z1),lofr(iro,1,ilo,ias),lrstp,wfmt(1,i),ldo) end if if (abs(aimag(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,aimag(z1),lofr(1,1,ilo,ias),lrstp,wfmt(2,lm),ldi) end if call daxpy(nrco,aimag(z1),lofr(iro,1,ilo,ias),lrstp,wfmt(2,i),ldo) end if end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genzrho.f900000644000000000000000000000013213543334735014623 xustar0030 mtime=1569569245.437641429 30 atime=1569569241.681643828 30 ctime=1569569245.437641429 elk-6.3.2/src/genzrho.f900000644002504400250440000000637613543334735016706 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genzrho ! !INTERFACE: subroutine genzrho(tsh,tspc,ngt,wfmt1,wfir1,wfmt2,wfir2,zrhomt,zrhoir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! tsh : .true. if the muffin-tin density is to be in spherical harmonics ! (in,logical) ! tspc : .true. if the density should be contracted over spin (in,logical) ! ngt : total number of grid points (in,integer) ! wfmt1 : muffin-tin part of wavefunction 1 in spherical coordinates ! (in,complex(npcmtmax,natmtot,*)) ! wfir1 : interstitial wavefunction 1 (in,complex(ngt,*)) ! wfmt2 : muffin-tin part of wavefunction 2 in spherical coordinates ! (in,complex(npcmtmax,natmtot,*)) ! wfir2 : interstitial wavefunction 2 (in,complex(ngt,*)) ! zrhomt : muffin-tin charge density in spherical harmonics/coordinates ! (out,complex(npcmtmax,natmtot)) ! zrhoir : interstitial charge density (out,complex(ngt)) ! !DESCRIPTION: ! Calculates the complex overlap charge density from two input wavefunctions: ! $$ \rho({\bf r})\equiv\Psi_1^{\dag}({\bf r})\cdot\Psi_2({\bf r}). $$ ! Note that the muffin-tin wavefunctions are provided in spherical coordinates ! and the returned density is either in terms of spherical harmonic ! coefficients or spherical coordinates when {\tt tsh} is {\tt .true.} or ! {\tt .false.}, respectively. ! ! !REVISION HISTORY: ! Created November 2004 (Sharma) !EOP !BOC implicit none ! arguments logical, intent(in) :: tsh,tspc integer, intent(in) :: ngt complex(8), intent(in) :: wfmt1(npcmtmax,natmtot,*),wfir1(ngt,*) complex(8), intent(in) :: wfmt2(npcmtmax,natmtot,*),wfir2(ngt,*) complex(8), intent(out) :: zrhomt(npcmtmax,natmtot),zrhoir(ngt) ! local variables integer is,ias ! allocatable arrays complex(8), allocatable :: zfmt(:) if (tsh) allocate(zfmt(npcmtmax)) ! muffin-tin part do ias=1,natmtot is=idxis(ias) if (tsh) then if (tspc.and.spinpol) then ! contract over spin call zrho2(npcmt(is),wfmt1(:,ias,1),wfmt1(:,ias,2),wfmt2(:,ias,1), & wfmt2(:,ias,2),zfmt) else ! no spin contraction call zrho1(npcmt(is),wfmt1(:,ias,1),wfmt2(:,ias,1),zfmt) end if ! convert to spherical harmonics call zfsht(nrcmt(is),nrcmti(is),zfmt,zrhomt(:,ias)) else if (tspc.and.spinpol) then call zrho2(npcmt(is),wfmt1(:,ias,1),wfmt1(:,ias,2),wfmt2(:,ias,1), & wfmt2(:,ias,2),zrhomt(:,ias)) else call zrho1(npcmt(is),wfmt1(:,ias,1),wfmt2(:,ias,1),zrhomt(:,ias)) end if end if end do if (tsh) deallocate(zfmt) ! interstitial part if (tspc.and.spinpol) then call zrho2(ngt,wfir1,wfir1(:,2),wfir2,wfir2(:,2),zrhoir) else call zrho1(ngt,wfir1,wfir2,zrhoir) end if return contains subroutine zrho1(n,x,y,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x(n),y(n) complex(8), intent(out) :: z(n) z(:)=conjg(x(:))*y(:) return end subroutine subroutine zrho2(n,x1,x2,y1,y2,z) implicit none integer, intent(in) :: n complex(8), intent(in) :: x1(n),x2(n),y1(n),y2(n) complex(8), intent(out) :: z(n) z(:)=conjg(x1(:))*y1(:)+conjg(x2(:))*y2(:) return end subroutine end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/potks.f900000644000000000000000000000013213543334735014307 xustar0030 mtime=1569569245.441641426 30 atime=1569569241.686643825 30 ctime=1569569245.441641426 elk-6.3.2/src/potks.f900000644002504400250440000000361213543334735016360 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: potks ! !INTERFACE: subroutine potks(txc) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! txc : .true. if the exchange-correlation energy density and potentials ! should be calculated (in,logical) ! !DESCRIPTION: ! Computes the Kohn-Sham effective potential by adding together the Coulomb ! and exchange-correlation potentials. Also computes the effective magnetic ! field. See routines {\tt potcoul} and {\tt potxc}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: txc ! local variables integer is,ias,np real(8) ts0,ts1 call timesec(ts0) ! compute the Coulomb potential call potcoul ! meta-GGA variables if required if ((xcgrad.eq.3).or.(xcgrad.eq.4)) then ! generate the kinetic energy density call gentau ! compute the Tran-Blaha '09 constant if required call xc_c_tb09 end if ! compute the exchange-correlation potential and fields if (txc) call potxc(.true.,xctype,rhomt,rhoir,magmt,magir,taumt,tauir,exmt, & exir,ecmt,ecir,vxcmt,vxcir,bxcmt,bxcir,wxcmt,wxcir) ! optimised effective potential exchange potential if (xctype(1).lt.0) call oepmain ! remove the source term of the exchange-correlation magnetic field if required if (spinpol.and.nosource) call projsbf ! effective potential from sum of Coulomb and exchange-correlation potentials do ias=1,natmtot is=idxis(ias) np=npmt(is) vsmt(1:np,ias)=vclmt(1:np,ias)+vxcmt(1:np,ias) end do vsir(:)=vclir(:)+vxcir(:) ! smooth the interstitial potential if required call rfirsm(msmooth,vsir) ! generate the effective magnetic fields call genbs ! generate the tau-DFT effective potential call genws call timesec(ts1) timepot=timepot+ts1-ts0 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/sbessel.f900000644000000000000000000000013213543334735014607 xustar0030 mtime=1569569245.445641424 30 atime=1569569241.690643822 30 ctime=1569569245.445641424 elk-6.3.2/src/sbessel.f900000644002504400250440000000534713543334735016667 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sbessel ! !INTERFACE: subroutine sbessel(lmax,x,jl) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum order of Bessel function (in,integer) ! x : real argument (in,real) ! jl : array of returned values (out,real(0:lmax)) ! !DESCRIPTION: ! Computes the spherical Bessel functions of the first kind, $j_l(x)$, for ! argument $x$ and $l=0,1,\ldots,l_{\rm max}$. The recursion relation ! $$ j_{l+1}(x)=\frac{2l+1}{x}j_l(x)-j_{l-1}(x) $$ ! is used either downwards for $x 1 if (maxscl.gt.1) then call writestate write(60,*) write(60,'("Wrote STATE.OUT")') end if end if ! compute forces if required if (tforce) then call force ! output forces to INFO.OUT if (mp_mpi) call writeforces(60) end if ! compute the current density and total current if required if (tcden) then call curden(afieldc) if (mp_mpi) then write(60,*) write(60,'("Total current per unit cell")') write(60,'(3G18.10)') curtot write(60,'(" magnitude : ",G18.10)') curtotm end if end if ! total time used timetot=timeinit+timemat+timefv+timesv+timerho+timepot+timefor if (mp_mpi) then ! output timing information write(60,*) write(60,'("Timings (CPU seconds) :")') write(60,'(" initialisation",T40,": ",F12.2)') timeinit write(60,'(" Hamiltonian and overlap matrix set up",T40,": ",F12.2)') timemat write(60,'(" first-variational eigenvalue equation",T40,": ",F12.2)') timefv if (tevecsv) then write(60,'(" second-variational calculation",T40,": ",F12.2)') timesv end if write(60,'(" charge density calculation",T40,": ",F12.2)') timerho write(60,'(" potential calculation",T40,": ",F12.2)') timepot if (tforce) then write(60,'(" force calculation",T40,": ",F12.2)') timefor end if write(60,'(" total",T40,": ",F12.2)') timetot write(60,*) write(60,'("+----------------------------+")') write(60,'("| Elk version ",I1.1,".",I1.1,".",I2.2," stopped |")') version write(60,'("+----------------------------+")') ! close the INFO.OUT file close(60) ! close the TOTENERGY.OUT file close(61) ! close the FERMIDOS.OUT file close(62) ! close the MOMENT.OUT and MOMENTM.OUT files if (spinpol) then close(63); close(68) end if ! close the GAP.OUT file close(64) ! close the RMSDVS.OUT file close(65) ! close the DTOTENERGY.OUT file close(66) ! close TMDFTU.OUT file if (tmwrite) close(67) ! close the RESIDUAL.OUT file if (xctype(1).lt.0) close(69) end if deallocate(v,work) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/addbfsm.f900000644000000000000000000000013213543334735014547 xustar0030 mtime=1569569245.486641398 30 atime=1569569241.730643796 30 ctime=1569569245.486641398 elk-6.3.2/src/addbfsm.f900000644002504400250440000000162013543334735016615 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine addbfsm use modmain implicit none ! local variables integer idm,is,ias,npc real(8) t1 ! add the global fixed spin moment B-field to the Kohn-Sham field if ((abs(fsmtype).eq.1).or.(abs(fsmtype).eq.3)) then do idm=1,ndmag t1=bfsmc(idm) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) bsmt(1:npc,ias,idm)=bsmt(1:npc,ias,idm)+t1 end do bsir(:,idm)=bsir(:,idm)+t1*cfunir(:) end do end if ! add the muffin-tin fields if ((abs(fsmtype).eq.2).or.(abs(fsmtype).eq.3)) then do idm=1,ndmag do ias=1,natmtot is=idxis(ias) npc=npcmt(is) t1=bfsmcmt(idm,ias) bsmt(1:npc,ias,idm)=bsmt(1:npc,ias,idm)+t1 end do end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/initoep.f900000644000000000000000000000013213543334735014616 xustar0030 mtime=1569569245.490641395 30 atime=1569569241.735643793 30 ctime=1569569245.490641395 elk-6.3.2/src/initoep.f900000644002504400250440000000276313543334735016675 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine initoep use modmain implicit none ! local variables integer ist,ic,m integer is,ias,nrc,nrci integer xctype_(3) ! allocatable arrays real(8), allocatable :: rfmt(:) ! external functions real(8) rfint external rfint ! find maximum core states over all species ncrmax=0 do is=1,nspecies ic=0 do ist=1,nstsp(is) if (spcore(ist,is)) then do m=-ksp(ist,is),ksp(ist,is)-1 ic=ic+1 end do end if end do ncrmax=max(ncrmax,ic) end do ! allocate the exchange potential and magnetic field if (allocated(vxmt)) deallocate(vxmt) allocate(vxmt(npcmtmax,natmtot)) if (allocated(vxir)) deallocate(vxir) allocate(vxir(ngtot)) if (spinpol) then if (allocated(bxmt)) deallocate(bxmt) allocate(bxmt(npcmtmax,natmtot,ndmag)) if (allocated(bxir)) deallocate(bxir) allocate(bxir(ngtot,ndmag)) end if ! initialise the exchange potential to LDA xctype_(1)=3 xctype_(2:)=0 call potxc(.true.,xctype_,rhomt,rhoir,magmt,magir,taumt,tauir,exmt,exir,ecmt, & ecir,vxcmt,vxcir,bxcmt,bxcir,wxcmt,wxcir) allocate(rfmt(npcmtmax)) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,vxcmt(:,ias),rfmt) call rbsht(nrc,nrci,rfmt,vxmt(:,ias)) end do deallocate(rfmt) vxir(:)=vxcir(:) ! determine the constant part of V_xc vxc0=rfint(vxcmt,vxcir)/omega return end subroutine elk-6.3.2/src/PaxHeaders.21352/orthevsv.f900000644000000000000000000000013213543334735015027 xustar0030 mtime=1569569245.494641392 30 atime=1569569241.739643791 30 ctime=1569569245.494641392 elk-6.3.2/src/orthevsv.f900000644002504400250440000000142513543334735017100 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine orthevsv(evecsv) use modmain implicit none ! arguments complex(8), intent(in) :: evecsv(nstsv,nstsv) ! local variables integer ist,jst real(8) t1 complex(8) z1 ! external functions complex(8) zdotc external zdotc ! perform Gram-Schmidt orthonormalisation do ist=1,nstsv do jst=1,ist-1 z1=-zdotc(nstsv,evecsv(:,jst),1,evecsv(:,ist),1) call zaxpy(nstsv,z1,evecsv(:,jst),1,evecsv(:,ist),1) end do t1=dble(zdotc(nstsv,evecsv(:,ist),1,evecsv(:,ist),1)) if (t1.gt.0.d0) then t1=1.d0/sqrt(t1) call zdscal(nstsv,t1,evecsv(:,ist),1) end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/fermisurf.f900000644000000000000000000000013213543334735015151 xustar0030 mtime=1569569245.499641389 30 atime=1569569241.743643788 30 ctime=1569569245.499641389 elk-6.3.2/src/fermisurf.f900000644002504400250440000000767413543334735017236 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine fermisurf use modmain use modomp implicit none ! local variables integer ik,jk,nst,ist integer ist0,ist1,jst0,jst1 integer i1,i2,i3,nf,f,nthd real(8) e0,e1,prd ! allocatable arrays integer, allocatable :: idx(:) real(8), allocatable :: evalfv(:,:),e(:) complex(8), allocatable :: evecfv(:,:,:) complex(8), allocatable :: evecsv(:,:) ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! generate the spin-orbit coupling radial functions call gensocfr ! begin parallel loop over reduced k-points set call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evalfv,evecfv,evecsv) & !$OMP NUM_THREADS(nthd) allocate(evalfv(nstfv,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv)) allocate(evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt !$OMP CRITICAL(fermisurf_) write(*,'("Info(fermisurf): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(fermisurf_) ! solve the first- and second-variational eigenvalue equations call eveqn(ik,evalfv,evecfv,evecsv) ! end loop over reduced k-points set end do !$OMP END DO deallocate(evalfv,evecfv,evecsv) !$OMP END PARALLEL call freethd(nthd) ! if iterative diagonalisation is used the eigenvalues must be reordered if (tefvit.and.(.not.spinpol)) then allocate(idx(nstsv),e(nstsv)) do ik=1,nkpt e(:)=evalsv(:,ik) call sortidx(nstsv,e,idx) do ist=1,nstsv evalsv(ist,ik)=e(idx(ist)) end do end do deallocate(idx,e) end if ! number of files to plot (2 for collinear magnetism, 1 otherwise) if (ndmag.eq.1) then nf=2 else nf=1 end if do f=1,nf if (nf.eq.2) then if (f.eq.1) then open(50,file='FERMISURF_UP.OUT',form='FORMATTED') jst0=1; jst1=nstfv else open(50,file='FERMISURF_DN.OUT',form='FORMATTED') jst0=nstfv+1; jst1=2*nstfv end if else open(50,file='FERMISURF.OUT',form='FORMATTED') jst0=1; jst1=nstsv end if ! find the range of eigenvalues which contribute to the Fermi surface (Lars) ist0=jst1; ist1=jst0 do ist=jst0,jst1 e0=minval(evalsv(ist,:)); e1=maxval(evalsv(ist,:)) ! determine if the band crosses the Fermi energy if ((e0.lt.efermi).and.(e1.gt.efermi)) then ist0=min(ist0,ist); ist1=max(ist1,ist) end if end do nst=ist1-ist0+1 if (task.eq.100) then ! write product of eigenstates minus the Fermi energy write(50,'(3I6," : grid size")') np3d(:) do i3=0,ngridk(3)-1 do i2=0,ngridk(2)-1 do i1=0,ngridk(1)-1 ik=ivkiknr(i1,i2,i3) jk=ivkik(i1,i2,i3) prd=1.d0 do ist=ist0,ist1 prd=prd*(evalsv(ist,jk)-efermi) end do write(50,'(4G18.10)') vkc(:,ik),prd end do end do end do else ! write the eigenvalues minus the Fermi energy separately write(50,'(4I6," : grid size, number of states")') np3d(:),nst do i3=0,ngridk(3)-1 do i2=0,ngridk(2)-1 do i1=0,ngridk(1)-1 ik=ivkiknr(i1,i2,i3) jk=ivkik(i1,i2,i3) write(50,'(3G18.10,40F14.8)') vkc(:,ik),evalsv(ist0:ist1,jk)-efermi end do end do end do end if close(50) end do write(*,*) write(*,'("Info(fermisurf):")') if (ndmag.eq.1) then write(*,'(" 3D Fermi surface data written to FERMISURF_UP.OUT and & &FERMISURF_DN.OUT")') else write(*,'(" 3D Fermi surface data written to FERMISURF.OUT")') end if if (task.eq.100) then write(*,'(" in terms of the product of eigenvalues minus the Fermi energy")') else write(*,'(" in terms of separate eigenvalues minus the Fermi energy")') end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/findswidth.f900000644000000000000000000000013213543334735015312 xustar0030 mtime=1569569245.503641387 30 atime=1569569241.748643785 30 ctime=1569569245.503641387 elk-6.3.2/src/findswidth.f900000644002504400250440000000340113543334735017357 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 T. Bjorkman and O. Granas. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: findswidth ! !INTERFACE: subroutine findswidth ! !USES: use modmain ! !DESCRIPTION: ! Calculates the smearing width from the $k$-point density, ! $V_{\rm BZ}/n_k$; the valence band width, $W$; and an effective mass ! parameter, $m^{*}$; according to ! $$ \sigma=\frac{\sqrt{2W}}{m^{*}}\left(\frac{3}{4\pi} ! \frac{V_{\rm BZ}}{n_k}\right)^{1/3}. $$ ! The valence bandwidth is determined by stepping down in energy from the ! Fermi level until a gap larger than a given tolerance is found. This method ! was presented in T. Bj\"{o}rkman and O. Gr\aa n\"{a}s, {\it Int. J. Quant. ! Chem.} DOI: 10.1002/qua.22476. ! ! !REVISION HISTORY: ! Created April 2010 (Torbjorn Bjorkman and JKD) !EOP !BOC implicit none ! local variables integer i,j,m,n,ik,ist real(8), parameter :: eps=0.05d0 real(8) e,vbw ! allocatable arrays integer, allocatable :: idx(:) n=nstsv*nkpt allocate(idx(n)) ! find the index which sorts the eigenvalues in ascending order call sortidx(n,evalsv,idx) ! find the highest eigenvalue < efermi m=n e=efermi do i=n,1,-1 j=idx(i) ik=(j-1)/nstsv+1 ist=mod(j-1,nstsv)+1 if (evalsv(ist,ik).lt.efermi) then m=i e=evalsv(ist,ik) goto 10 end if end do 10 continue ! search downwards until a gap larger than eps is found do i=m,1,-1 j=idx(i) ik=(j-1)/nstsv+1 ist=mod(j-1,nstsv)+1 if ((e-evalsv(ist,ik)).gt.eps) goto 20 e=evalsv(ist,ik) end do 20 continue ! valence band width vbw=efermi-e vbw=max(vbw,1.d-2) ! determine swidth swidth=(sqrt(2.d0*vbw)/mstar)*(6.d0*pi**2/(omega*dble(nkptnr)))**(1.d0/3.d0) deallocate(idx) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gradrf.f900000644000000000000000000000013213543334735014414 xustar0030 mtime=1569569245.507641384 30 atime=1569569241.752643782 30 ctime=1569569245.507641384 elk-6.3.2/src/gradrf.f900000644002504400250440000000232313543334735016463 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gradrf(rfmt,rfir,grfmt,grfir) use modmain use modomp implicit none ! arguments real(8), intent(in) :: rfmt(npmtmax,natmtot),rfir(ngtot) real(8), intent(out) :: grfmt(npmtmax,natmtot,3),grfir(ngtot,3) ! local variables integer is,ias,ld,i integer ig,ifg,nthd complex(8) z1 ! allocatable arrays complex(8), allocatable :: zfft1(:),zfft2(:) ! muffin-tin gradient ld=npmtmax*natmtot call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call gradrfmt(nrmt(is),nrmti(is),rlmt(:,1,is),rlmt(:,-1,is),rfmt(:,ias),ld, & grfmt(1,ias,1)) end do !$OMP END PARALLEL DO call freethd(nthd) ! interstitial gradient allocate(zfft1(ngtot),zfft2(ngtot)) zfft1(:)=rfir(:) call zfftifc(3,ngridg,-1,zfft1) do i=1,3 zfft2(:)=0.d0 do ig=1,ngvec ifg=igfft(ig) z1=zfft1(ifg) zfft2(ifg)=vgc(i,ig)*cmplx(-aimag(z1),dble(z1),8) end do call zfftifc(3,ngridg,1,zfft2) grfir(:,i)=dble(zfft2(:)) end do deallocate(zfft1,zfft2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dos.f900000644000000000000000000000012713543334735013740 xustar0029 mtime=1569569245.51364138 29 atime=1569569241.75664378 29 ctime=1569569245.51364138 elk-6.3.2/src/dos.f900000644002504400250440000002541213543334735016007 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: dos ! !INTERFACE: subroutine dos(fext,tocc,occsvp) ! !USES: use modmain use modomp use modtest ! !INPUT/OUTPUT PARAMETERS: ! fext : filename extension (in,character(*)) ! tocc : .true. if just the occupied orbitals should contribute to the DOS ! (in,logical) ! occsvp : occupation numbers of second-variational orbitals ! (in,real(nstsv,nkpt)) ! !DESCRIPTION: ! Produces a total and partial density of states (DOS) for plotting. The total ! DOS is written to the file {\tt TDOS.OUT} while the partial DOS is written ! to the file {\tt PDOS\_Sss\_Aaaaa.OUT} for atom {\tt aaaa} of species ! {\tt ss}. In the case of the partial DOS, each symmetrised ! $(l,m)$-projection is written consecutively and separated by blank lines. ! If the global variable {\tt lmirep} is {\tt .true.}, then the density matrix ! from which the $(l,m)$-projections are obtained is first rotated into a ! irreducible representation basis, i.e. one that block diagonalises all the ! site symmetry matrices in the $Y_{lm}$ basis. Eigenvalues of a quasi-random ! matrix in the $Y_{lm}$ basis which has been symmetrised with the site ! symmetries are written to {\tt ELMIREP.OUT}. This allows for identification ! of the irreducible representations of the site symmetries, for example $e_g$ ! or $t_{2g}$, by the degeneracies of the eigenvalues. In the plot, spin-up is ! made positive and spin-down negative. See the routines {\tt gendmatk} and ! {\tt brzint}. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) ! Parallelised and included sum over m, November 2009 (F. Cricchio) !EOP !BOC implicit none ! arguments character(*), intent(in) :: fext logical, intent(in) :: tocc real(8), intent(in) :: occsvp(nstsv,nkpt) ! local variables logical tsqaz integer nsk(3),ik,jk,ist,iw,ld integer nsd,ispn,jspn,is,ia,ias integer lmmax,l0,l1,l,m,lm,nthd real(8) dw,th,sps(2),vl(3),vc(3) real(8) v1(3),v2(3),v3(3),t1 complex(8) su2(2,2),b(2,2),c(2,2) character(256) fname ! low precision for band/spin character array saves memory real(4), allocatable :: bc(:,:,:,:,:),sc(:,:,:) real(8), allocatable :: w(:),e(:,:,:),f(:,:) real(8), allocatable :: g(:),dt(:,:),dp(:,:,:) real(8), allocatable :: elm(:,:) complex(8), allocatable :: ulm(:,:,:),a(:,:) complex(8), allocatable :: dmat(:,:,:,:,:),sdmat(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) lmmax=(lmaxdos+1)**2 ld=lmmax*nspinor if (dosssum) then nsd=1 else nsd=nspinor end if if (dosmsum) then l0=0; l1=lmaxdos else l0=1; l1=lmmax end if allocate(bc(lmmax,nspinor,natmtot,nstsv,nkptnr)) allocate(sc(nspinor,nstsv,nkptnr)) ! generate unitary matrices which convert the (l,m) basis into the irreducible ! representation basis of the symmetry group at each atomic site if (lmirep) then allocate(elm(lmmax,natmtot)) allocate(ulm(lmmax,lmmax,natmtot)) call genlmirep(lmaxdos,lmmax,elm,ulm) end if ! compute the SU(2) operator used for rotating the density matrix to the ! desired spin-quantisation axis v1(:)=sqados(:) t1=sqrt(v1(1)**2+v1(2)**2+v1(3)**2) if (t1.le.epslat) then write(*,*) write(*,'("Error(dos): spin-quantisation axis (sqados) has zero length")') write(*,*) stop end if v1(:)=v1(:)/t1 if (v1(3).ge.1.d0-epslat) then tsqaz=.true. else tsqaz=.false. v2(1:2)=0.d0 v2(3)=1.d0 call r3cross(v1,v2,v3) ! note that the spin-quantisation axis is rotated, so the density matrix should ! be rotated in the opposite direction th=-acos(v1(3)) call axangsu2(v3,th,su2) end if ! begin parallel loop over k-points call holdthd(nkptnr,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(apwalm,evecfv,evecsv,dmat,sdmat,a) & !$OMP PRIVATE(jk,ispn,jspn,vl,vc) & !$OMP PRIVATE(is,ia,ias,ist,lm,b,c,t1) & !$OMP NUM_THREADS(nthd) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) allocate(dmat(lmmax,nspinor,lmmax,nspinor,nstsv)) allocate(sdmat(nspinor,nspinor,nstsv),a(lmmax,lmmax)) !$OMP DO do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! loop over first-variational spins do ispn=1,nspnfv vl(:)=vkl(:,ik) vc(:)=vkc(:,ik) ! spin-spiral case if (spinsprl) then if (ispn.eq.1) then vl(:)=vl(:)+0.5d0*vqlss(:) vc(:)=vc(:)+0.5d0*vqcss(:) else vl(:)=vl(:)-0.5d0*vqlss(:) vc(:)=vc(:)-0.5d0*vqcss(:) end if end if ! find the matching coefficients call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! get the eigenvectors from file for non-reduced k-point call getevecfv('.OUT',0,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv('.OUT',0,vkl(:,ik),evecsv) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! generate the density matrix call gendmatk(.false.,.false.,0,lmaxdos,ias,ngk(:,ik),apwalm,evecfv, & evecsv,lmmax,dmat) ! convert (l,m) part to an irreducible representation if required if (lmirep) then do ist=1,nstsv do ispn=1,nspinor do jspn=1,nspinor call zgemm('N','N',lmmax,lmmax,lmmax,zone,ulm(:,:,ias),lmmax, & dmat(:,ispn,1,jspn,ist),ld,zzero,a,lmmax) call zgemm('N','C',lmmax,lmmax,lmmax,zone,a,lmmax,ulm(:,:,ias), & lmmax,zzero,dmat(:,ispn,1,jspn,ist),ld) end do end do end do end if ! spin rotate the density matrices to desired spin-quantisation axis if (spinpol.and.(.not.tsqaz)) then do ist=1,nstsv do lm=1,lmmax b(:,:)=dmat(lm,:,lm,:,ist) call z2mm(su2,b,c) call z2mmct(c,su2,b) dmat(lm,:,lm,:,ist)=b(:,:) end do end do end if ! determine the band characters from the density matrix do ist=1,nstsv do ispn=1,nspinor do lm=1,lmmax t1=dble(dmat(lm,ispn,lm,ispn,ist)) bc(lm,ispn,ias,ist,ik)=real(t1) end do end do end do end do end do ! compute the spin density matrices of the second-variational states call gensdmat(evecsv,sdmat) ! spin rotate the density matrices to desired spin-quantisation axis if (spinpol.and.(.not.tsqaz)) then do ist=1,nstsv call z2mm(su2,sdmat(:,:,ist),b) call z2mmct(b,su2,sdmat(:,:,ist)) end do end if do ist=1,nstsv do ispn=1,nspinor t1=dble(sdmat(ispn,ispn,ist)) sc(ispn,ist,ik)=real(t1) end do end do end do !$OMP END DO deallocate(apwalm,evecfv,evecsv,dmat,sdmat,a) !$OMP END PARALLEL call freethd(nthd) allocate(w(nwplot),e(nstsv,nkptnr,nspinor)) allocate(dt(nwplot,nsd),dp(nwplot,l0:l1,nsd)) ! generate frequency grid dw=(wplot(2)-wplot(1))/dble(nwplot) do iw=1,nwplot w(iw)=dw*dble(iw-1)+wplot(1) end do ! number of subdivisions used for interpolation in the Brillouin zone nsk(:)=max(ngrkf/ngridk(:),1) ! sign for spin in DOS sps(1)=1.d0 sps(2)=-1.d0 !-------------------! ! total DOS ! !-------------------! allocate(f(nstsv,nkptnr),g(nwplot)) dt(:,:)=0.d0 do ispn=1,nspinor do ik=1,nkptnr jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) do ist=1,nstsv ! subtract the Fermi energy e(ist,ik,ispn)=evalsv(ist,jk)-efermi ! use diagonal of spin density matrix for weight f(ist,ik)=sc(ispn,ist,ik) if (tocc) then f(ist,ik)=f(ist,ik)*occsvp(ist,jk) else f(ist,ik)=f(ist,ik)*occmax end if end do end do ! integrate over the Brillouin zone call brzint(nswplot,ngridk,nsk,ivkiknr,nwplot,wplot,nstsv,nstsv,e(:,:,ispn), & f,g) if (dosssum) then dt(:,1)=dt(:,1)+g(:) else dt(:,ispn)=g(:) end if end do deallocate(f,g) ! output to file open(50,file='TDOS'//trim(fext),form='FORMATTED') do ispn=1,nsd do iw=1,nwplot write(50,'(2G18.10)') w(iw),dt(iw,ispn)*sps(ispn) end do write(50,'(" ")') end do close(50) !---------------------! ! partial DOS ! !---------------------! do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) dp(:,:,:)=0.d0 do ispn=1,nspinor call holdthd(lmmax,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(f,g,l,ik,jk,ist) & !$OMP NUM_THREADS(nthd) allocate(f(nstsv,nkptnr),g(nwplot)) !$OMP DO do lm=1,lmmax l=idxil(lm) do ik=1,nkptnr jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) do ist=1,nstsv f(ist,ik)=bc(lm,ispn,ias,ist,ik) if (tocc) then f(ist,ik)=f(ist,ik)*occsvp(ist,jk) else f(ist,ik)=f(ist,ik)*occmax end if end do end do call brzint(nswplot,ngridk,nsk,ivkiknr,nwplot,wplot,nstsv,nstsv, & e(:,:,ispn),f,g) if (dosmsum) then if (dosssum) then dp(:,l,1)=dp(:,l,1)+g(:) else dp(:,l,ispn)=dp(:,l,ispn)+g(:) end if else if (dosssum) then dp(:,lm,1)=dp(:,lm,1)+g(:) else dp(:,lm,ispn)=g(:) end if end if ! subtract from interstitial DOS !$OMP CRITICAL(dos_) if (dosssum) then dt(:,1)=dt(:,1)-g(:) else dt(:,ispn)=dt(:,ispn)-g(:) end if !$OMP END CRITICAL(dos_) end do !$OMP END DO deallocate(f,g) !$OMP END PARALLEL call freethd(nthd) end do ! output to file write(fname,'("PDOS_S",I2.2,"_A",I4.4)') is,ia open(50,file=trim(fname)//trim(fext),form='FORMATTED') do ispn=1,nsd do l=l0,l1 do iw=1,nwplot write(50,'(2G18.10)') w(iw),dp(iw,l,ispn)*sps(ispn) end do write(50,'(" ")') end do end do close(50) end do end do !------------------------------------------! ! irreducible representations file ! !------------------------------------------! if (lmirep) then open(50,file='ELMIREP'//trim(fext),form='FORMATTED') do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is, & trim(spsymb(is)),ia do l=0,lmaxdos do m=-l,l lm=idxlm(l,m) write(50,'(" l = ",I2,", m = ",I2,", lm= ",I3," : ",G18.10)') l,m, & lm,elm(lm,ias) end do end do end do end do close(50) end if !--------------------------! ! interstitial DOS ! !--------------------------! open(50,file='IDOS'//trim(fext),form='FORMATTED') do ispn=1,nsd do iw=1,nwplot write(50,'(2G18.10)') w(iw),dt(iw,ispn)*sps(ispn) end do write(50,'(" ")') end do close(50) ! write the total DOS to test file call writetest(10,'total DOS',nv=nwplot*nsd,tol=2.d-2,rva=dt) deallocate(bc,sc,w,e,dt,dp) if (lmirep) deallocate(elm,ulm) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gradzfmt.f900000644000000000000000000000013213543334735014765 xustar0030 mtime=1569569245.517641378 30 atime=1569569241.761643777 30 ctime=1569569245.517641378 elk-6.3.2/src/gradzfmt.f900000644002504400250440000001367613543334735017051 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2009 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gradzfmt ! !INTERFACE: subroutine gradzfmt(nr,nri,r,ri,zfmt,ld,gzfmt) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of points on inner part of muffin-tin (in,integer) ! r : radial mesh (in,real(nr)) ! ri : 1/r on the radial mesh (in,real(nr)) ! zfmt : complex muffin-tin function (in,complex(*)) ! ld : leading dimension (in,integer) ! gzfmt : gradient of zfmt (out,complex(ld,3)) ! !DESCRIPTION: ! Calculates the gradient of a complex muffin-tin function. In other words, ! given the spherical harmonic expansion coefficients, $f_{lm}(r)$, of a ! function $f({\bf r})$, the routine returns ${\bf F}_{lm}$ where ! $$ \sum_{lm}{\bf F}_{lm}(r)Y_{lm}(\hat{\bf r})=\nabla f({\bf r}). $$ ! This is done using the formula (see, for example, V. Devanathan, ! {\em Angular Momentum Techniques In Quantum Mechanics}) ! \begin{align*} ! \nabla_{\mu}^s f_{lm}(r)Y_{lm}(\hat{\bf r})&=\sqrt{\frac{l+1}{2l+3}} ! C(l,1,l+1|m,\mu,m+\mu)Y_{l+1m+\mu}(\hat{\bf r})\left(\frac{d}{dr} ! -\frac{l}{r}\right)f_{lm}(r)\\ ! &-\sqrt{\frac{l}{2l-1}}C(l,1,l-1|m,\mu,m+\mu)Y_{l-1,m+\mu}(\hat{\bf r}) ! \left(\frac{d}{dr}+\frac{l+1}{r}\right)f_{lm}(r), ! \end{align*} ! where $C$ are Clebsch-Gordan coefficients and the gradient $\nabla_{\mu}^s$ ! is in terms of the spherical unit vectors $\hat{\bf e}_{\mu}$: ! $$ \hat{\bf e}_{+1}=-\frac{\hat{\bf x}+i\hat{\bf y}}{\sqrt{2}}, ! \qquad\hat{\bf e}_0=\hat{\bf z},\qquad ! \hat{\bf e}_{-1}=\frac{\hat{\bf x}-i\hat{\bf y}}{\sqrt{2}}. $$ ! Note that the gradient returned is in terms of the global ! $(\hat{\bf x},\hat{\bf y},\hat{\bf z})$ coordinate system. ! ! !REVISION HISTORY: ! Rewritten May 2009 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: r(nr),ri(nr) complex(8), intent(in) :: zfmt(*) integer, intent(in) :: ld complex(8), intent(out) :: gzfmt(ld,3) ! local variables integer nro,iro,ir,i,j integer np,npi,i1,i2 integer l,m,lm1,lm2 ! real constant 1/sqrt(2) real(8), parameter :: c1=0.7071067811865475244d0 real(8) t1,t2,t3 complex(8) z1 ! automatic arrays real(8) f1(nr),f2(nr),g1(nr),g2(nr) complex(8) drmt(ld) ! external functions real(8) clebgor external clebgor nro=nr-nri iro=nri+1 npi=lmmaxi*nri np=npi+lmmaxo*nro !----------------------------------------! ! compute the radial derivatives ! !----------------------------------------! do lm1=1,lmmaxi i1=lm1 do ir=1,nri f1(ir)=dble(zfmt(i1)) f2(ir)=aimag(zfmt(i1)) i1=i1+lmmaxi end do do ir=iro,nr f1(ir)=dble(zfmt(i1)) f2(ir)=aimag(zfmt(i1)) i1=i1+lmmaxo end do call fderiv(1,nr,r,f1,g1) call fderiv(1,nr,r,f2,g2) i1=lm1 do ir=1,nri drmt(i1)=cmplx(g1(ir),g2(ir),8) i1=i1+lmmaxi end do do ir=iro,nr drmt(i1)=cmplx(g1(ir),g2(ir),8) i1=i1+lmmaxo end do end do do lm1=lmmaxi+1,lmmaxo i1=npi+lm1 do ir=iro,nr f1(ir)=dble(zfmt(i1)) f2(ir)=aimag(zfmt(i1)) i1=i1+lmmaxo end do call fderiv(1,nro,r(iro),f1(iro),g1(iro)) call fderiv(1,nro,r(iro),f2(iro),g2(iro)) i1=npi+lm1 do ir=iro,nr drmt(i1)=cmplx(g1(ir),g2(ir),8) i1=i1+lmmaxo end do end do !-------------------------------------------------------! ! compute the gradient in spherical coordinates ! !-------------------------------------------------------! ! zero the gradient array gzfmt(1:np,:)=0.d0 ! inner part of muffin-tin lm1=0 do l=0,lmaxi t1=sqrt(dble(l+1)/dble(2*l+3)) if (l.gt.0) then t2=-sqrt(dble(l)/dble(2*l-1)) else t2=0.d0 end if do m=-l,l lm1=lm1+1 j=1 do i=-1,1 if (i.eq.0) j=3 if (i.eq.1) j=2 if ((l+1.le.lmaxi).and.(abs(m+i).le.l+1)) then ! index to (l,m) is l*(l+1)+m+1, therefore index to (l+1,m+i) is lm2=(l+1)*(l+2)+(m+i)+1 t3=t1*clebgor(l,1,l+1,m,i,m+i) i1=lm1; i2=lm2 do ir=1,nri gzfmt(i2,j)=gzfmt(i2,j)+t3*(drmt(i1)-dble(l)*ri(ir)*zfmt(i1)) i1=i1+lmmaxi; i2=i2+lmmaxi end do end if if (abs(m+i).le.l-1) then ! index to (l-1,m+i) lm2=(l-1)*l+(m+i)+1 t3=t2*clebgor(l,1,l-1,m,i,m+i) i1=lm1; i2=lm2 do ir=1,nri gzfmt(i2,j)=gzfmt(i2,j)+t3*(drmt(i1)+dble(l+1)*ri(ir)*zfmt(i1)) i1=i1+lmmaxi; i2=i2+lmmaxi end do end if end do end do end do ! outer part of muffin-tin lm1=0 do l=0,lmaxo t1=sqrt(dble(l+1)/dble(2*l+3)) if (l.gt.0) then t2=-sqrt(dble(l)/dble(2*l-1)) else t2=0.d0 end if do m=-l,l lm1=lm1+1 j=1 do i=-1,1 if (i.eq.0) j=3 if (i.eq.1) j=2 if ((l+1.le.lmaxo).and.(abs(m+i).le.l+1)) then lm2=(l+1)*(l+2)+(m+i)+1 t3=t1*clebgor(l,1,l+1,m,i,m+i) i1=npi+lm1; i2=npi+lm2 do ir=iro,nr gzfmt(i2,j)=gzfmt(i2,j)+t3*(drmt(i1)-dble(l)*ri(ir)*zfmt(i1)) i1=i1+lmmaxo; i2=i2+lmmaxo end do end if if (abs(m+i).le.l-1) then lm2=(l-1)*l+(m+i)+1 t3=t2*clebgor(l,1,l-1,m,i,m+i) i1=npi+lm1; i2=npi+lm2 do ir=iro,nr gzfmt(i2,j)=gzfmt(i2,j)+t3*(drmt(i1)+dble(l+1)*ri(ir)*zfmt(i1)) i1=i1+lmmaxo; i2=i2+lmmaxo end do end if end do end do end do !--------------------------------------------------------! ! convert from spherical components to Cartesian ! !--------------------------------------------------------! i1=0 do ir=1,nri do lm1=1,lmmaxi i1=i1+1 z1=gzfmt(i1,1) gzfmt(i1,1)=c1*(z1-gzfmt(i1,2)) z1=c1*(z1+gzfmt(i1,2)) gzfmt(i1,2)=cmplx(-aimag(z1),dble(z1),8) end do end do do ir=iro,nr do lm1=1,lmmaxo i1=i1+1 z1=gzfmt(i1,1) gzfmt(i1,1)=c1*(z1-gzfmt(i1,2)) z1=c1*(z1+gzfmt(i1,2)) gzfmt(i1,2)=cmplx(-aimag(z1),dble(z1),8) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/nuclei.f900000644000000000000000000000013213543334735014426 xustar0030 mtime=1569569245.522641375 30 atime=1569569241.766643773 30 ctime=1569569245.522641375 elk-6.3.2/src/nuclei.f900000644002504400250440000000152013543334735016473 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine nuclei use modmain implicit none ! local variables integer is,ir,irc ! external functions real(8) radnucl external radnucl do is=1,nspecies ! approximate nuclear radius rnucl(is)=radnucl(spzn(is)) ! nuclear volume volnucl(is)=(4.d0/3.d0)*pi*rnucl(is)**3 ! number of radial mesh points to nuclear radius nrnucl(is)=1 do ir=1,nrmt(is) if (rsp(ir,is).gt.rnucl(is)) then nrnucl(is)=ir exit end if end do ! number of coarse radial mesh points to nuclear radius nrcnucl(is)=1 do irc=1,nrcmt(is) if (rcmt(irc,is).gt.rnucl(is)) then nrcnucl(is)=irc exit end if end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/writesym.f900000644000000000000000000000013113543334735015031 xustar0030 mtime=1569569245.526641372 29 atime=1569569241.77164377 30 ctime=1569569245.526641372 elk-6.3.2/src/writesym.f900000644002504400250440000000561613543334735017111 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writesym ! !INTERFACE: subroutine writesym ! !USES: use modmain ! !DESCRIPTION: ! Outputs the Bravais, crystal and site symmetry matrices to files ! {\tt SYMLAT.OUT}, {\tt SYMCRYS.OUT} and {\tt SYMSITE.OUT}, respectively. ! Also writes out equivalent atoms and related crystal symmetries to ! {\tt EQATOMS.OUT}. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ja,ias,i integer isym,lspl,lspn ! output the Bravais lattice symmetries open(50,file='SYMLAT'//trim(filext),form='FORMATTED') write(50,'(I4," : nsymlat")') nsymlat do isym=1,nsymlat write(50,*) write(50,'(I4)') isym do i=1,3 write(50,'(3I4)') symlat(i,:,isym) end do end do close(50) ! output the crystal symmetries open(50,file='SYMCRYS'//trim(filext),form='FORMATTED') write(50,*) write(50,'("(translation vectors and rotation matrices are in lattice & &coordinates)")') write(50,*) write(50,'(I4," : nsymcrys")') nsymcrys do isym=1,nsymcrys write(50,*) write(50,'("Crystal symmetry : ",I4)') isym write(50,'(" spatial translation :")') write(50,'(3G18.10)') vtlsymc(:,isym) write(50,'(" spatial rotation :")') lspl=lsplsymc(isym) do i=1,3 write(50,'(3I4)') symlat(i,:,lspl) end do write(50,'(" global spin rotation :")') lspn=lspnsymc(isym) do i=1,3 write(50,'(3I4)') symlat(i,:,lspn) end do end do close(50) ! output the site symmetries open(50,file='SYMSITE'//trim(filext),form='FORMATTED') write(50,*) write(50,'("(rotation matrices are in lattice coordinates)")') do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia write(50,'(I4," : nsymsite")') nsymsite(ias) do isym=1,nsymsite(ias) write(50,*) write(50,'(" Site symmetry : ",I4)') isym write(50,'(" spatial rotation :")') lspl=lsplsyms(isym,ias) do i=1,3 write(50,'(3I4)') symlat(i,:,lspl) end do write(50,'(" global spin rotation :")') lspn=lspnsyms(isym,ias) do i=1,3 write(50,'(3I4)') symlat(i,:,lspn) end do end do end do end do close(50) ! output the equivalent atoms and related symmetries open(50,file='EQATOMS'//trim(filext),form='FORMATTED') do is=1,nspecies write(50,*) write(50,'("Species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) write(50,'(" atom ",I4," is equivalent to atom(s)")') ia i=0 do ja=1,natoms(is) if (eqatoms(ia,ja,is)) then if ((i.gt.0).and.(mod(i,20).eq.0)) write(50,*) write(50,'(I4)',advance='NO') ja i=i+1 end if end do write(50,*) end do end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zftzf.f900000644000000000000000000000013213543334735014312 xustar0030 mtime=1569569245.531641369 30 atime=1569569241.775643768 30 ctime=1569569245.531641369 elk-6.3.2/src/zftzf.f900000644002504400250440000000611013543334735016357 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zftzf(ngp,jlgpr,ylmgp,ld,sfacgp,zfmt,zfir,zfgp) use modmain implicit none ! arguments integer, intent(in) :: ngp real(8), intent(in) :: jlgpr(njcmax,nspecies,ngp) complex(8), intent(in) :: ylmgp(lmmaxo,ngp) integer, intent(in) :: ld complex(8), intent(in) :: sfacgp(ld,natmtot) complex(8), intent(in) :: zfmt(npcmtmax,natmtot),zfir(ngtc) complex(8), intent(out) :: zfgp(ngp) ! local variables integer is,ia,ias,ig integer nrc,nrci,irco,irc integer l,m,lm,i,j real(8) t0,t1,t2 complex(8) z1,z2 ! automatic arrays real(8) fr1(nrcmtmax),fr2(nrcmtmax) complex(8) ylm(lmmaxo) ! allocatable arrays complex(8), allocatable :: zfft(:) if ((ngp.lt.1).or.(ngp.gt.ngvc)) then write(*,*) write(*,'("Error(zftzf): ngp out of range : ",I8)') ngp write(*,*) stop end if !-----------------------------------! ! interstitial contribution ! !-----------------------------------! allocate(zfft(ngtc)) ! multiply by coarse characteristic function zfft(:)=zfir(:)*cfrc(:) ! Fourier transform to coarse G-grid call zfftifc(3,ngdc,-1,zfft) zfgp(1:ngp)=zfft(igfc(1:ngp)) deallocate(zfft) !---------------------------------! ! muffin-tin contribution ! !---------------------------------! t0=fourpi/omega do ig=1,ngp lm=1 do l=1,lmaxo z1=zilc(l) do m=-l,l lm=lm+1 ylm(lm)=z1*ylmgp(lm,ig) end do end do do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 do ia=1,natoms(is) ias=idxas(ia,is) i=1 j=1 ! inner part of muffin-tin if (lmaxi.eq.1) then do irc=1,nrci z1=jlgpr(j,is,ig)*zfmt(i,ias)*y00+jlgpr(j+1,is,ig) & *(zfmt(i+1,ias)*ylm(2)+zfmt(i+2,ias)*ylm(3)+zfmt(i+3,ias)*ylm(4)) fr1(irc)=dble(z1); fr2(irc)=aimag(z1) i=i+4 j=j+2 end do else do irc=1,nrci z1=jlgpr(j,is,ig)*zfmt(i,ias)*y00 i=i+1 j=j+1 lm=1 do l=1,lmaxi lm=lm+1 z2=zfmt(i,ias)*ylm(lm) i=i+1 do m=1-l,l lm=lm+1 z2=z2+zfmt(i,ias)*ylm(lm) i=i+1 end do z1=z1+jlgpr(j,is,ig)*z2 j=j+1 end do fr1(irc)=dble(z1); fr2(irc)=aimag(z1) end do end if ! outer part of muffin-tin do irc=irco,nrc z1=jlgpr(j,is,ig)*zfmt(i,ias)*y00 i=i+1 j=j+1 lm=1 do l=1,lmaxo lm=lm+1 z2=zfmt(i,ias)*ylm(lm) i=i+1 do m=1-l,l lm=lm+1 z2=z2+zfmt(i,ias)*ylm(lm) i=i+1 end do z1=z1+jlgpr(j,is,ig)*z2 j=j+1 end do fr1(irc)=dble(z1); fr2(irc)=aimag(z1) end do t1=dot_product(wrcmt(1:nrc,is),fr1(1:nrc)) t2=dot_product(wrcmt(1:nrc,is),fr2(1:nrc)) zfgp(ig)=zfgp(ig)+t0*conjg(sfacgp(ig,ias))*cmplx(t1,t2,8) end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/polynm.f900000644000000000000000000000013213543334735014465 xustar0030 mtime=1569569245.535641366 30 atime=1569569241.780643765 30 ctime=1569569245.535641366 elk-6.3.2/src/polynm.f900000644002504400250440000000704313543334735016540 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: polynm ! !INTERFACE: real(8) function polynm(m,np,xa,ya,x) ! !INPUT/OUTPUT PARAMETERS: ! m : order of derivative (in,integer) ! np : number of points to fit (in,integer) ! xa : abscissa array (in,real(np)) ! ya : ordinate array (in,real(np)) ! x : evaluation abscissa (in,real) ! !DESCRIPTION: ! Fits a polynomial of order $n_p-1$ to a set of $n_p$ points. If $m\ge 0$ the ! function returns the $m$th derviative of the polynomial at $x$, while for ! $m<0$ the integral of the polynomial from the first point in the array to ! $x$ is returned. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! argmuments integer, intent(in) :: m,np real(8), intent(in) :: xa(np),ya(np) real(8), intent(in) :: x ! local variables integer i,j,k real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) t0,t1,t2,t3,t4,t5,t6 real(8) c1,c2,c3,sum ! automatic arrays real(8) c(np) ! fast evaluations for small np select case(np) case(1) select case(m) case(:-1) polynm=ya(1)*(x-xa(1)) case(0) polynm=ya(1) case default polynm=0.d0 end select return case(2) c1=(ya(2)-ya(1))/(xa(2)-xa(1)) t1=x-xa(1) select case(m) case(:-1) polynm=t1*(ya(1)+0.5d0*c1*t1) case(0) polynm=c1*t1+ya(1) case(1) polynm=c1 case default polynm=0.d0 end select return case(3) x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0 t0=1.d0/(x1*x2*(x2-x1)) t1=x1*y2; t2=x2*y1 c1=x2*t2-x1*t1 c2=t1-t2 t1=x-x0 select case(m) case(:-1) polynm=t1*(y0+t0*t1*(0.5d0*c1+0.3333333333333333333d0*c2*t1)) case(0) polynm=y0+t0*t1*(c1+c2*t1) case(1) polynm=t0*(2.d0*c2*t1+c1) case(2) polynm=t0*2.d0*c2 case default polynm=0.d0 end select return case(4) x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0 t4=x1-x2; t5=x1-x3; t6=x2-x3 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 c3=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 y1=t3*t6-t1*t5; y2=t1*t4-t2*t6; y3=t2*t5-t3*t4 c2=y1+y2+y3 c1=x1*y1+x2*y2+x3*y3 t1=x-x0 select case(m) case(:-1) polynm=t1*(y0+t0*t1*(0.5d0*c1+t1*(0.25d0*c3*t1-0.3333333333333333333d0*c2))) case(0) polynm=y0+t0*t1*(c1+t1*(c3*t1-c2)) case(1) polynm=t0*(c1+t1*(3.d0*c3*t1-2.d0*c2)) case(2) polynm=t0*(6.d0*c3*t1-2.d0*c2) case(3) polynm=t0*6.d0*c3 case default polynm=0.d0 end select return end select if (np.le.0) then write(*,*) write(*,'("Error(polynm): np <= 0 : ",I8)') np write(*,*) stop end if if (m.ge.np) then polynm=0.d0 return end if ! find the polynomial coefficients in divided differences form c(:)=ya(:) do i=2,np do j=np,i,-1 c(j)=(c(j)-c(j-1))/(xa(j)-xa(j+1-i)) end do end do ! special case m=0 if (m.eq.0) then sum=c(1) t1=1.d0 do i=2,np t1=t1*(x-xa(i-1)) sum=sum+c(i)*t1 end do polynm=sum return end if x0=xa(1) ! convert to standard form do j=1,np-1 do i=1,np-j k=np-i c(k)=c(k)+(x0-xa(k-j+1))*c(k+1) end do end do if (m.gt.0) then ! take the m th derivative do j=1,m do i=m+1,np c(i)=c(i)*dble(i-j) end do end do t1=c(np) t2=x-x0 do i=np-1,m+1,-1 t1=t1*t2+c(i) end do polynm=t1 else ! find the integral t1=c(np)/dble(np) t2=x-x0 do i=np-1,1,-1 t1=t1*t2+c(i)/dble(i) end do polynm=t1*t2 end if return end function !EOC elk-6.3.2/src/PaxHeaders.21352/rdirac.f900000644000000000000000000000013213543334735014413 xustar0030 mtime=1569569245.540641363 30 atime=1569569241.784643762 30 ctime=1569569245.540641363 elk-6.3.2/src/rdirac.f900000644002504400250440000000713413543334735016467 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rdirac ! !INTERFACE: subroutine rdirac(sol,n,l,k,nr,r,vr,eval,g0,f0) ! !INPUT/OUTPUT PARAMETERS: ! sol : speed of light in atomic units (in,real) ! n : principal quantum number (in,integer) ! l : quantum number l (in,integer) ! k : quantum number k (l or l+1) (in,integer) ! nr : number of radial mesh points (in,integer) ! r : radial mesh (in,real(nr)) ! vr : potential on radial mesh (in,real(nr)) ! eval : eigenvalue without rest-mass energy (inout,real) ! g0 : major component of the radial wavefunction (out,real(nr)) ! f0 : minor component of the radial wavefunction (out,real(nr)) ! !DESCRIPTION: ! Finds the solution to the radial Dirac equation for a given potential $v(r)$ ! and quantum numbers $n$, $k$ and $l$. The method involves integrating the ! equation using the predictor-corrector method and adjusting $E$ until the ! number of nodes in the wavefunction equals $n-l-1$. The calling routine must ! provide an initial estimate for the eigenvalue. Note that the arrays ! {\tt g0} and {\tt f0} represent the radial functions multiplied by $r$. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: sol integer, intent(in) :: n,l,k,nr real(8), intent(in) :: r(nr),vr(nr) real(8), intent(inout) :: eval real(8), intent(out) :: g0(nr),f0(nr) ! local variables integer, parameter :: maxit=2000 integer kpa,it,ir,irm integer nn,nnd,nndp ! energy convergence tolerance real(8), parameter :: eps=1.d-12 real(8) t1,de ! automatic arrays real(8) g1(nr),f1(nr),fr(nr) ! external functions real(8) splint external splint if (k.le.0) then write(*,*) write(*,'("Error(rdirac): k <= 0 : ",I8)') k write(*,*) stop end if if (k.gt.n) then write(*,*) write(*,'("Error(rdirac): incompatible n and k : ",2I8)') n,k write(*,*) stop end if if ((k.eq.n).and.(l.ne.k-1)) then write(*,*) write(*,'("Error(rdirac): incompatible n, k and l : ",3I8)') n,k,l write(*,*) stop end if if (k.eq.l) then kpa=k else if (k.eq.l+1) then kpa=-k else write(*,*) write(*,'("Error(rdirac): incompatible l and k : ",2I8)') l,k write(*,*) stop end if if (nr.lt.4) then write(*,*) write(*,'("Error(rdirac): nr < 4 : ",I8)') nr write(*,*) stop end if de=1.d0 nndp=0 do it=1,maxit ! integrate the Dirac equation call rdiracint(sol,kpa,eval,nr,r,vr,nn,g0,g1,f0,f1) ! check the number of nodes nnd=nn-(n-l-1) if (nnd.gt.0) then eval=eval-de else eval=eval+de end if if (it.gt.1) then if ((nnd.ne.0).or.(nndp.ne.0)) then if (nnd*nndp.le.0) then de=de*0.5d0 else de=de*1.1d0 end if end if end if nndp=nnd if (de.lt.eps*(abs(eval)+1.d0)) goto 20 end do write(*,*) write(*,'("Warning(rdirac): maximum iterations exceeded")') 20 continue ! find effective infinity and set wavefunction to zero after that point ! major component irm=nr do ir=2,nr if ((g0(ir-1)*g0(ir).lt.0.d0).or.(g1(ir-1)*g1(ir).lt.0.d0)) irm=ir end do g0(irm:nr)=0.d0 ! minor component irm=nr do ir=2,nr if ((f0(ir-1)*f0(ir).lt.0.d0).or.(f1(ir-1)*f1(ir).lt.0.d0)) irm=ir end do f0(irm:nr)=0.d0 ! normalise do ir=1,nr fr(ir)=g0(ir)**2+f0(ir)**2 end do t1=splint(nr,r,fr) t1=sqrt(abs(t1)) if (t1.gt.0.d0) then t1=1.d0/t1 else write(*,*) write(*,'("Error(rdirac): zero wavefunction")') write(*,*) stop end if call dscal(nr,t1,g0,1) call dscal(nr,t1,f0,1) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zfmtftoc.f900000644000000000000000000000013013543334735015001 xustar0029 mtime=1569569245.54464136 30 atime=1569569241.789643759 29 ctime=1569569245.54464136 elk-6.3.2/src/zfmtftoc.f900000644002504400250440000000124513543334735017054 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfmtftoc(nrc,nrci,zfmt,zfcmt) use modmain implicit none ! arguments integer, intent(in) :: nrc,nrci complex(8), intent(in) :: zfmt(*) complex(8), intent(out) :: zfcmt(*) ! local variables integer irc,i,j,n i=1 j=1 n=lmmaxi*lradstp do irc=1,nrci call zcopy(lmmaxi,zfmt(i),1,zfcmt(j),1) i=i+n j=j+lmmaxi end do i=i+(lradstp-1)*(lmmaxo-lmmaxi) n=lmmaxo*lradstp do irc=nrci+1,nrc call zcopy(lmmaxo,zfmt(i),1,zfcmt(j),1) i=i+n j=j+lmmaxo end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfmtftoc.f900000644000000000000000000000013213543334735014773 xustar0030 mtime=1569569245.548641358 30 atime=1569569241.793643756 30 ctime=1569569245.548641358 elk-6.3.2/src/rfmtftoc.f900000644002504400250440000000123713543334735017045 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfmtftoc(nrc,nrci,rfmt,rfcmt) use modmain implicit none ! arguments integer, intent(in) :: nrc,nrci real(8), intent(in) :: rfmt(*) real(8), intent(out) :: rfcmt(*) ! local variables integer irc,i,j,n i=1 j=1 n=lmmaxi*lradstp do irc=1,nrci call dcopy(lmmaxi,rfmt(i),1,rfcmt(j),1) i=i+n j=j+lmmaxi end do i=i+(lradstp-1)*(lmmaxo-lmmaxi) n=lmmaxo*lradstp do irc=nrci+1,nrc call dcopy(lmmaxo,rfmt(i),1,rfcmt(j),1) i=i+n j=j+lmmaxo end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gradrfmt.f900000644000000000000000000000013213543334735014755 xustar0030 mtime=1569569245.553641355 30 atime=1569569241.798643753 30 ctime=1569569245.553641355 elk-6.3.2/src/gradrfmt.f900000644002504400250440000000370313543334735017027 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gradrfmt ! !INTERFACE: subroutine gradrfmt(nr,nri,r,ri,rfmt,ld,grfmt) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of points on inner part of muffin-tin (in,integer) ! r : radial mesh (in,real(nr)) ! ri : 1/r on the radial mesh (in,real(nr)) ! rfmt : real muffin-tin function (in,real(*)) ! ld : leading dimension (in,integer) ! grfmt : gradient of rfmt (out,real(ld,3)) ! !DESCRIPTION: ! Calculates the gradient of a real muffin-tin function. In other words, given ! the real spherical harmonic expansion coefficients, $f_{lm}(r)$, of a ! function $f({\bf r})$, the routine returns ${\bf F}_{lm}$ where ! $$ \sum_{lm}{\bf F}_{lm}(r)R_{lm}(\hat{\bf r})=\nabla f({\bf r}), $$ ! and $R_{lm}$ is a real spherical harmonic function. This is done by first ! converting the function to a complex spherical harmonic expansion and then ! using the routine {\tt gradzfmt}. See routine {\tt genrlm}. ! ! !REVISION HISTORY: ! Created August 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: r(nr),ri(nr) real(8), intent(in) :: rfmt(*) integer, intent(in) :: ld real(8), intent(out) :: grfmt(ld,3) ! local variables integer i ! allocatable arrays complex(8), allocatable :: zfmt(:),gzfmt(:,:) allocate(zfmt(ld),gzfmt(ld,3)) ! convert real to complex spherical harmonic expansion call rtozfmt(nr,nri,rfmt,zfmt) ! compute the gradient call gradzfmt(nr,nri,r,ri,zfmt,ld,gzfmt) ! convert complex to real spherical harmonic expansion do i=1,3 call ztorfmt(nr,nri,gzfmt(:,i),grfmt(:,i)) ! apply smoothing if required call rfmtsm(msmooth,nr,nri,grfmt(:,i)) end do deallocate(zfmt,gzfmt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genzvclmt.f900000644000000000000000000000013113543334735015157 xustar0030 mtime=1569569245.557641352 29 atime=1569569241.80264375 30 ctime=1569569245.557641352 elk-6.3.2/src/genzvclmt.f900000644002504400250440000000165113543334735017232 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genzvclmt(nr,nri,ld1,rl,wpr,ld2,zrhomt,zvclmt) use modmain use modomp implicit none ! arguments integer, intent(in) :: nr(nspecies),nri(nspecies) integer, intent(in) :: ld1 real(8), intent(in) :: rl(ld1,-lmaxo-1:lmaxo+2,nspecies) real(8), intent(in) :: wpr(4,ld1,nspecies) integer, intent(in) :: ld2 complex(8), intent(in) :: zrhomt(ld2,natmtot) complex(8), intent(out) :: zvclmt(ld2,natmtot) ! local variables integer is,ias,nthd call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call zpotclmt(nr(is),nri(is),ld1,rl(:,:,is),wpr(:,:,is),zrhomt(:,ias), & zvclmt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getevalfv.f900000644000000000000000000000013013543334735015130 xustar0029 mtime=1569569245.56164135 30 atime=1569569241.806643748 29 ctime=1569569245.56164135 elk-6.3.2/src/getevalfv.f900000644002504400250440000000313313543334735017201 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getevalfv(fext,ikp,vpl,evalfv) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ikp real(8), intent(in) :: vpl(3) real(8), intent(out) :: evalfv(nstfv,nspnfv) ! local variables integer isym,ik integer recl,nstfv_,nspnfv_ real(8) vkl_(3),t1 if (ikp.gt.0) then ik=ikp else ! find the k-point number call findkpt(vpl,isym,ik) end if ! find the record length inquire(iolength=recl) vkl_,nstfv_,nspnfv_,evalfv !$OMP CRITICAL(u120) open(120,file='EVALFV'//trim(fext),form='UNFORMATTED',access='DIRECT', & action='READ',recl=recl) read(120,rec=ik) vkl_,nstfv_,nspnfv_,evalfv close(120) !$OMP END CRITICAL(u120) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getevalfv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EVALFV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstfv.ne.nstfv_) then write(*,*) write(*,'("Error(getevalfv): differing nstfv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstfv write(*,'(" EVALFV.OUT : ",I8)') nstfv_ write(*,*) stop end if if (nspnfv.ne.nspnfv_) then write(*,*) write(*,'("Error(getevalfv): differing nspnfv for k-point ",I8)') ik write(*,'(" current : ",I8)') nspnfv write(*,'(" EVALFV.OUT : ",I8)') nspnfv_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/mixlinear.f900000644000000000000000000000013213543334735015137 xustar0030 mtime=1569569245.566641346 30 atime=1569569241.811643745 30 ctime=1569569245.566641346 elk-6.3.2/src/mixlinear.f900000644002504400250440000000126313543334735017210 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine mixlinear(iscl,beta,n,nu,mu,d) implicit none ! arguments integer, intent(in) :: iscl real(8), intent(in) :: beta integer, intent(in) :: n real(8), intent(inout) :: nu(n),mu(n) real(8), intent(out) :: d ! local variables integer i real(8) t0,t1 if (n.le.0) return ! initialise mixer if (iscl.le.0) then mu(:)=nu(:) d=1.d0 return end if t0=1.d0-beta d=0.d0 do i=1,n t1=nu(i)-mu(i) nu(i)=beta*nu(i)+t0*mu(i) d=d+t1**2 mu(i)=nu(i) end do d=sqrt(d/dble(n)) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gengvec.f900000644000000000000000000000013213543334735014565 xustar0030 mtime=1569569245.570641344 30 atime=1569569241.815643742 30 ctime=1569569245.570641344 elk-6.3.2/src/gengvec.f900000644002504400250440000000571613543334735016645 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2012 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gengvec ! !INTERFACE: subroutine gengvec ! !USES: use modmain ! !DESCRIPTION: ! Generates a set of ${\bf G}$-vectors used for the Fourier transform of the ! charge density and potential and sorts them according to length. Integers ! corresponding to the vectors in lattice coordinates are stored, as well as ! the map from these integer coordinates to the ${\bf G}$-vector index. A map ! from the ${\bf G}$-vector set to the standard FFT array structure is also ! generated. Finally, the number of ${\bf G}$-vectors with magnitude less than ! {\tt gmaxvr} is determined. ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! local variables integer ig,jg,i1,i2,i3,j1,j2,j3 real(8) v1(3),v2(3),v3(3) ! allocatable arrays integer, allocatable :: idx(:),ivg0(:,:) real(8), allocatable :: vgc0(:,:),gc0(:) if (gmaxvr.lt.0.d0) gmaxvr=abs(gmaxvr)*gkmax ! ensure |G| cut-off is at least twice |G+k| cut-off gmaxvr=max(gmaxvr,2.d0*gkmax+epslat) ! find the G-vector grid sizes call gridsize(avec,gmaxvr,ngridg,ngtot,intgv) ! allocate global G-vector arrays if (allocated(ivg)) deallocate(ivg) allocate(ivg(3,ngtot)) if (allocated(ivgig)) deallocate(ivgig) allocate(ivgig(intgv(1,1):intgv(2,1),intgv(1,2):intgv(2,2), & intgv(1,3):intgv(2,3))) if (allocated(igfft)) deallocate(igfft) allocate(igfft(ngtot)) if (allocated(vgc)) deallocate(vgc) allocate(vgc(3,ngtot)) if (allocated(gc)) deallocate(gc) allocate(gc(ngtot)) ! allocate local arrays allocate(idx(ngtot),ivg0(3,ngtot)) allocate(vgc0(3,ngtot),gc0(ngtot)) ig=0 do i1=intgv(1,1),intgv(2,1) v1(:)=dble(i1)*bvec(:,1) do i2=intgv(1,2),intgv(2,2) v2(:)=v1(:)+dble(i2)*bvec(:,2) do i3=intgv(1,3),intgv(2,3) v3(:)=v2(:)+dble(i3)*bvec(:,3) ig=ig+1 ! map from G-vector to (i1,i2,i3) index ivg0(1,ig)=i1 ivg0(2,ig)=i2 ivg0(3,ig)=i3 ! G-vector in Cartesian coordinates vgc0(:,ig)=v3(:) ! length of each G-vector gc0(ig)=sqrt(v3(1)**2+v3(2)**2+v3(3)**2) end do end do end do ! sort by vector length call sortidx(ngtot,gc0,idx) ! reorder arrays do ig=1,ngtot jg=idx(ig) ivg(:,ig)=ivg0(:,jg) gc(ig)=gc0(jg) vgc(:,ig)=vgc0(:,jg) end do ! find the number of vectors with G < gmaxvr ngvec=1 do ig=2,ngtot if (gc(ig).gt.gmaxvr) then ngvec=ig-1 exit end if end do ! generate index arrays do ig=1,ngtot i1=ivg(1,ig) i2=ivg(2,ig) i3=ivg(3,ig) ! map from (i1,i2,i3) to G-vector index ivgig(i1,i2,i3)=ig ! Fourier transform index if (i1.ge.0) then j1=i1 else j1=ngridg(1)+i1 end if if (i2.ge.0) then j2=i2 else j2=ngridg(2)+i2 end if if (i3.ge.0) then j3=i3 else j3=ngridg(3)+i3 end if igfft(ig)=j3*ngridg(2)*ngridg(1)+j2*ngridg(1)+j1+1 end do deallocate(idx,ivg0,gc0,vgc0) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/putevalfv.f900000644000000000000000000000013113543334735015162 xustar0030 mtime=1569569245.574641341 29 atime=1569569241.81964374 30 ctime=1569569245.574641341 elk-6.3.2/src/putevalfv.f900000644002504400250440000000130513543334735017231 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putevalfv(fext,ik,evalfv) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik real(8), intent(in) :: evalfv(nstfv,nspnfv) ! local variables integer recl ! find the record length inquire(iolength=recl) vkl(:,ik),nstfv,nspnfv,evalfv !$OMP CRITICAL(u120) open(120,file='EVALFV'//trim(fext),form='UNFORMATTED',access='DIRECT', & action='WRITE',recl=recl) write(120,rec=ik) vkl(:,ik),nstfv,nspnfv,evalfv close(120) !$OMP END CRITICAL(u120) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfmtpack.f900000644000000000000000000000013213543334735014756 xustar0030 mtime=1569569245.579641338 30 atime=1569569241.824643736 30 ctime=1569569245.579641338 elk-6.3.2/src/rfmtpack.f900000644002504400250440000000141413543334735017025 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfmtpack(tpack,nr,nri,rfmt1,rfmt2) use modmain implicit none ! arguments logical, intent(in) :: tpack integer, intent(in) :: nr,nri real(8), intent(in) :: rfmt1(*) real(8), intent(out) :: rfmt2(*) ! local variables integer ir,i,j,k i=1 j=1 if (tpack) then do ir=1,nri call dcopy(lmmaxi,rfmt1(i),1,rfmt2(j),1) i=i+lmmaxo j=j+lmmaxi end do else do ir=1,nri call dcopy(lmmaxi,rfmt1(i),1,rfmt2(j),1) i=i+lmmaxi k=j+lmmaxi j=j+lmmaxo rfmt2(k:j-1)=0.d0 end do end if k=lmmaxo*(nr-nri) call dcopy(k,rfmt1(i),1,rfmt2(j),1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zfmtpack.f900000644000000000000000000000013213543334735014766 xustar0030 mtime=1569569245.583641336 30 atime=1569569241.828643734 30 ctime=1569569245.583641336 elk-6.3.2/src/zfmtpack.f900000644002504400250440000000142213543334735017034 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfmtpack(tpack,nr,nri,zfmt1,zfmt2) use modmain implicit none ! arguments logical, intent(in) :: tpack integer, intent(in) :: nr,nri complex(8), intent(in) :: zfmt1(*) complex(8), intent(out) :: zfmt2(*) ! local variables integer ir,i,j,k i=1 j=1 if (tpack) then do ir=1,nri call zcopy(lmmaxi,zfmt1(i),1,zfmt2(j),1) i=i+lmmaxo j=j+lmmaxi end do else do ir=1,nri call zcopy(lmmaxi,zfmt1(i),1,zfmt2(j),1) i=i+lmmaxi k=j+lmmaxi j=j+lmmaxo zfmt2(k:j-1)=0.d0 end do end if k=lmmaxo*(nr-nri) call zcopy(k,zfmt1(i),1,zfmt2(j),1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writestrain.f900000644000000000000000000000013213543334735015522 xustar0030 mtime=1569569245.587641333 30 atime=1569569241.833643731 30 ctime=1569569245.587641333 elk-6.3.2/src/writestrain.f900000644002504400250440000000141313543334735017570 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writestrain use modmain implicit none ! local variables integer i,j,k ! initialise universal variables call init0 ! generate the strain tensors call genstrain ! write the strain tensors to file open(50,file='STRAIN.OUT',form='FORMATTED') do k=1,nstrain write(50,*) write(50,'("Strain tensor : ",I1)') k do j=1,3 write(50,'(3G18.10)') (strain(i,j,k),i=1,3) end do end do close(50) write(*,*) write(*,'("Info(writestrain)")') write(*,'(" Strain tensors written to STRAIN.OUT")') write(*,'(" (the first strain tensor is isotropic expansion)")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeforces.f900000644000000000000000000000013013543334735015501 xustar0029 mtime=1569569245.59264133 30 atime=1569569241.838643727 29 ctime=1569569245.59264133 elk-6.3.2/src/writeforces.f900000644002504400250440000000162413543334735017555 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2004-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeforces(fnum) use modmain implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,ia,ias real(8) t1 write(fnum,*) write(fnum,'("Forces :")') do is=1,nspecies write(fnum,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) write(fnum,'(" atom : ",I4)') ia write(fnum,'(" Hellmann-Feynman",T30,": ",3F14.8)') forcehf(:,ias) write(fnum,'(" IBS",T30,": ",3F14.8)') forceibs(:,ias) write(fnum,'(" total force",T30,": ",3F14.8)') forcetot(:,ias) t1=sqrt(forcetot(1,ias)**2+forcetot(2,ias)**2+forcetot(3,ias)**2) write(fnum,'(" total magnitude",T30,": ",F14.8)') t1 end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/r3mv.f900000644000000000000000000000013213543334735014036 xustar0030 mtime=1569569245.596641327 30 atime=1569569241.842643725 30 ctime=1569569245.596641327 elk-6.3.2/src/r3mv.f900000644002504400250440000000141513543334735016106 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mv ! !INTERFACE: pure subroutine r3mv(a,x,y) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,real(3,3)) ! x : input vector (in,real(3)) ! y : output vector (out,real(3)) ! !DESCRIPTION: ! Multiplies a real $3\times 3$ matrix with a vector. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3),x(3) real(8), intent(out) :: y(3) y(1)=a(1,1)*x(1)+a(1,2)*x(2)+a(1,3)*x(3) y(2)=a(2,1)*x(1)+a(2,2)*x(2)+a(2,3)*x(3) y(3)=a(3,1)*x(1)+a(3,2)*x(2)+a(3,3)*x(3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3mtv.f900000644000000000000000000000013213543334735014222 xustar0030 mtime=1569569245.600641325 30 atime=1569569241.847643722 30 ctime=1569569245.600641325 elk-6.3.2/src/r3mtv.f900000644002504400250440000000144013543334735016270 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mtv ! !INTERFACE: pure subroutine r3mtv(a,x,y) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,real(3,3)) ! x : input vector (in,real(3)) ! y : output vector (out,real(3)) ! !DESCRIPTION: ! Multiplies the transpose of a real $3\times 3$ matrix with a vector. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3),x(3) real(8), intent(out) :: y(3) y(1)=a(1,1)*x(1)+a(2,1)*x(2)+a(3,1)*x(3) y(2)=a(1,2)*x(1)+a(2,2)*x(2)+a(3,2)*x(3) y(3)=a(1,3)*x(1)+a(2,3)*x(2)+a(3,3)*x(3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3cross.f900000644000000000000000000000013213543334735014545 xustar0030 mtime=1569569245.604641322 30 atime=1569569241.851643719 30 ctime=1569569245.604641322 elk-6.3.2/src/r3cross.f900000644002504400250440000000135113543334735016614 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3cross ! !INTERFACE: pure subroutine r3cross(x,y,z) ! !INPUT/OUTPUT PARAMETERS: ! x : input vector 1 (in,real(3)) ! y : input vector 2 (in,real(3)) ! z : output cross-product (out,real(3)) ! !DESCRIPTION: ! Returns the cross product of two real 3-vectors. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: x(3),y(3) real(8), intent(out) :: z(3) z(1)=x(2)*y(3)-x(3)*y(2) z(2)=x(3)*y(1)-x(1)*y(3) z(3)=x(1)*y(2)-x(2)*y(1) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3minv.f900000644000000000000000000000013013543334735014363 xustar0029 mtime=1569569245.60864132 30 atime=1569569241.855643717 29 ctime=1569569245.60864132 elk-6.3.2/src/r3minv.f900000644002504400250440000000236313543334735016440 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3minv ! !INTERFACE: subroutine r3minv(a,b) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,real(3,3)) ! b : output matrix (out,real(3,3)) ! !DESCRIPTION: ! Computes the inverse of a real $3\times 3$ matrix. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3) real(8), intent(out) :: b(3,3) ! local variables real(8) t1 t1=a(1,2)*a(2,3)*a(3,1)-a(1,3)*a(2,2)*a(3,1)+a(1,3)*a(2,1)*a(3,2) & -a(1,1)*a(2,3)*a(3,2)+a(1,1)*a(2,2)*a(3,3)-a(1,2)*a(2,1)*a(3,3) if (abs(t1).lt.1.d-40) then write(*,*) write(*,'("Error(r3minv): singular matrix")') write(*,*) stop end if t1=1.d0/t1 b(1,1)=t1*(a(2,2)*a(3,3)-a(2,3)*a(3,2)) b(2,1)=t1*(a(2,3)*a(3,1)-a(2,1)*a(3,3)) b(3,1)=t1*(a(2,1)*a(3,2)-a(2,2)*a(3,1)) b(1,2)=t1*(a(1,3)*a(3,2)-a(1,2)*a(3,3)) b(2,2)=t1*(a(1,1)*a(3,3)-a(1,3)*a(3,1)) b(3,2)=t1*(a(1,2)*a(3,1)-a(1,1)*a(3,2)) b(1,3)=t1*(a(1,2)*a(2,3)-a(1,3)*a(2,2)) b(2,3)=t1*(a(1,3)*a(2,1)-a(1,1)*a(2,3)) b(3,3)=t1*(a(1,1)*a(2,2)-a(1,2)*a(2,1)) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3mdet.f900000644000000000000000000000013213543334735014345 xustar0030 mtime=1569569245.612641317 30 atime=1569569241.860643713 30 ctime=1569569245.612641317 elk-6.3.2/src/r3mdet.f900000644002504400250440000000127013543334735016414 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mdet ! !INTERFACE: pure real(8) function r3mdet(a) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,real(3,3)) ! !DESCRIPTION: ! Returns the determinant of a real $3\times 3$ matrix $A$. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3) r3mdet=a(1,1)*(a(2,2)*a(3,3)-a(3,2)*a(2,3)) & +a(2,1)*(a(3,2)*a(1,3)-a(1,2)*a(3,3)) & +a(3,1)*(a(1,2)*a(2,3)-a(2,2)*a(1,3)) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/r3mm.f900000644000000000000000000000013213543334735014025 xustar0030 mtime=1569569245.617641314 30 atime=1569569241.863643711 30 ctime=1569569245.617641314 elk-6.3.2/src/r3mm.f900000644002504400250440000000211313543334735016071 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mm ! !INTERFACE: pure subroutine r3mm(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,real(3,3)) ! b : input matrix 2 (in,real(3,3)) ! c : output matrix (out,real(3,3)) ! !DESCRIPTION: ! Multiplies two real $3\times 3$ matrices. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3),b(3,3) real(8), intent(out) :: c(3,3) c(1,1)=a(1,1)*b(1,1)+a(1,2)*b(2,1)+a(1,3)*b(3,1) c(2,1)=a(2,1)*b(1,1)+a(2,2)*b(2,1)+a(2,3)*b(3,1) c(3,1)=a(3,1)*b(1,1)+a(3,2)*b(2,1)+a(3,3)*b(3,1) c(1,2)=a(1,1)*b(1,2)+a(1,2)*b(2,2)+a(1,3)*b(3,2) c(2,2)=a(2,1)*b(1,2)+a(2,2)*b(2,2)+a(2,3)*b(3,2) c(3,2)=a(3,1)*b(1,2)+a(3,2)*b(2,2)+a(3,3)*b(3,2) c(1,3)=a(1,1)*b(1,3)+a(1,2)*b(2,3)+a(1,3)*b(3,3) c(2,3)=a(2,1)*b(1,3)+a(2,2)*b(2,3)+a(2,3)*b(3,3) c(3,3)=a(3,1)*b(1,3)+a(3,2)*b(2,3)+a(3,3)*b(3,3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3mtm.f900000644000000000000000000000013213543334735014211 xustar0030 mtime=1569569245.621641311 30 atime=1569569241.868643708 30 ctime=1569569245.621641311 elk-6.3.2/src/r3mtm.f900000644002504400250440000000215313543334735016261 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mtm ! !INTERFACE: pure subroutine r3mtm(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,real(3,3)) ! b : input matrix 2 (in,real(3,3)) ! c : output matrix (out,real(3,3)) ! !DESCRIPTION: ! Multiplies the transpose of one real $3\times 3$ matrix with another. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3),b(3,3) real(8), intent(out) :: c(3,3) c(1,1)=a(1,1)*b(1,1)+a(2,1)*b(2,1)+a(3,1)*b(3,1) c(2,1)=a(1,2)*b(1,1)+a(2,2)*b(2,1)+a(3,2)*b(3,1) c(3,1)=a(1,3)*b(1,1)+a(2,3)*b(2,1)+a(3,3)*b(3,1) c(1,2)=a(1,1)*b(1,2)+a(2,1)*b(2,2)+a(3,1)*b(3,2) c(2,2)=a(1,2)*b(1,2)+a(2,2)*b(2,2)+a(3,2)*b(3,2) c(3,2)=a(1,3)*b(1,2)+a(2,3)*b(2,2)+a(3,3)*b(3,2) c(1,3)=a(1,1)*b(1,3)+a(2,1)*b(2,3)+a(3,1)*b(3,3) c(2,3)=a(1,2)*b(1,3)+a(2,2)*b(2,3)+a(3,2)*b(3,3) c(3,3)=a(1,3)*b(1,3)+a(2,3)*b(2,3)+a(3,3)*b(3,3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3mmt.f900000644000000000000000000000013213543334735014211 xustar0030 mtime=1569569245.625641309 30 atime=1569569241.872643706 30 ctime=1569569245.625641309 elk-6.3.2/src/r3mmt.f900000644002504400250440000000213513543334735016261 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2003-2004 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: r3mmt ! !INTERFACE: pure subroutine r3mmt(a,b,c) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix 1 (in,real(3,3)) ! b : input matrix 2 (in,real(3,3)) ! c : output matrix (out,real(3,3)) ! !DESCRIPTION: ! Multiplies a real matrix with the transpose of another. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: a(3,3),b(3,3) real(8), intent(out) :: c(3,3) c(1,1)=a(1,1)*b(1,1)+a(1,2)*b(1,2)+a(1,3)*b(1,3) c(2,1)=a(2,1)*b(1,1)+a(2,2)*b(1,2)+a(2,3)*b(1,3) c(3,1)=a(3,1)*b(1,1)+a(3,2)*b(1,2)+a(3,3)*b(1,3) c(1,2)=a(1,1)*b(2,1)+a(1,2)*b(2,2)+a(1,3)*b(2,3) c(2,2)=a(2,1)*b(2,1)+a(2,2)*b(2,2)+a(2,3)*b(2,3) c(3,2)=a(3,1)*b(2,1)+a(3,2)*b(2,2)+a(3,3)*b(2,3) c(1,3)=a(1,1)*b(3,1)+a(1,2)*b(3,2)+a(1,3)*b(3,3) c(2,3)=a(2,1)*b(3,1)+a(2,2)*b(3,2)+a(2,3)*b(3,3) c(3,3)=a(3,1)*b(3,1)+a(3,2)*b(3,2)+a(3,3)*b(3,3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/r3vo.f900000644000000000000000000000013213543334735014040 xustar0030 mtime=1569569245.630641306 30 atime=1569569241.876643703 30 ctime=1569569245.630641306 elk-6.3.2/src/r3vo.f900000644002504400250440000000072013543334735016106 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. pure subroutine r3vo(x,y) implicit none ! arguments real(8), intent(in) :: x(3) real(8), intent(inout) :: y(3) ! local variables real(8) t1,t2 t1=x(1)**2+x(2)**2+x(3)**2 if (t1.lt.1.d-8) return t2=(x(1)*y(1)+x(2)*y(2)+x(3)*y(3))/t1 y(:)=y(:)-t2*x(:) return end subroutine elk-6.3.2/src/PaxHeaders.21352/symvec.f900000644000000000000000000000013013543334735014453 xustar0030 mtime=1569569245.634641303 28 atime=1569569241.8816437 30 ctime=1569569245.634641303 elk-6.3.2/src/symvec.f900000644002504400250440000000104313543334735016522 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine symvec(vc) use modmain implicit none ! arguments real(8), intent(inout) :: vc(3) ! local variables integer isym,ls real(8) vs(3),v(3),t1 ! make symmetric average vs(:)=0.d0 do isym=1,nsymcrys ls=lsplsymc(isym) call r3mv(symlatc(:,:,ls),vc,v) vs(:)=vs(:)+v(:) end do ! normalise t1=1.d0/dble(nsymcrys) vc(:)=t1*vs(:) return end subroutine elk-6.3.2/src/PaxHeaders.21352/curdenplot.f900000644000000000000000000000012613543334735015331 xustar0028 mtime=1569569245.6386413 30 atime=1569569241.885643697 28 ctime=1569569245.6386413 elk-6.3.2/src/curdenplot.f900000644002504400250440000000332613543334735017401 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine curdenplot use modmain use modmpi implicit none ! local variables integer ik ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! generate the core wavefunctions and densities call gencore ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the occupancies from file do ik=1,nkpt call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! compute the current density call curden(afieldc) ! plot the current density (master process only) if (mp_mpi) then write(*,*) write(*,'("Info(curdenplot):")') select case(task) case(371) open(50,file='CURDEN1D.OUT',form='FORMATTED') open(51,file='CDLINES.OUT',form='FORMATTED') call plot1d(50,51,3,cdmt,cdir) close(50) write(*,'(" 1D current density written to CURDEN1D.OUT")') write(*,'(" vertex location lines written to CDLINES.OUT")') case(372) open(50,file='CURDEN2D.OUT',form='FORMATTED') call plot2d(.true.,50,3,cdmt,cdir) close(50) write(*,'(" 2D current density written to CURDEN2D.OUT")') write(*,'(" Note that the 3D vector field has been locally projected")') write(*,'(" onto the 2D plotting plane axes")') case(373) open(50,file='CURDEN3D.OUT',form='FORMATTED') call plot3d(50,3,cdmt,cdir) close(50) write(*,'(" 3D current density written to CURDEN3D.OUT")') end select end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/hartfock.f900000644000000000000000000000013213543334735014750 xustar0030 mtime=1569569245.643641297 30 atime=1569569241.889643695 30 ctime=1569569245.643641297 elk-6.3.2/src/hartfock.f900000644002504400250440000001635513543334735017031 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hartfock use modmain use modmpi use modomp implicit none ! local variables logical exist integer ik,lp,nthd real(8) etp,de ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:) real(8), allocatable :: bmt(:,:,:),bir(:,:) complex(8), allocatable :: evecsv(:,:) ! initialise universal variables call init0 call init1 call init2 ! allocate local arrays allocate(vmt(npcmtmax,natmtot),vir(ngtot)) if (hybrid.and.spinpol) then allocate(bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag)) end if ! only the MPI master process should write files if (mp_mpi) then ! open INFO.OUT file open(60,file='INFO'//trim(filext),form='FORMATTED') ! open TOTENERGY.OUT open(61,file='TOTENERGY'//trim(filext),form='FORMATTED') ! open FERMIDOS.OUT open(62,file='FERMIDOS'//trim(filext),form='FORMATTED') ! open MOMENT.OUT if required if (spinpol) open(63,file='MOMENT'//trim(filext),form='FORMATTED') ! open GAP.OUT open(64,file='GAP'//trim(filext),form='FORMATTED') ! open DTOTENERGY.OUT open(66,file='DTOTENERGY'//trim(filext),form='FORMATTED') ! open MOMENTM.OUT if (spinpol) open(68,file='MOMENTM'//trim(filext),form='FORMATTED') ! write out general information to INFO.OUT call writeinfo(60) end if ! read the charge density from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! generate the core wavefunctions and densities call gencore ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! generate the spin-orbit coupling radial functions call gensocfr ! generate the first- and second-variational eigenvectors and eigenvalues call genevfsv ! find the occupation numbers and Fermi energy call occupy ! generate the kinetic matrix elements in the first-variational basis call genkmat(.true.,.true.) ! set last self-consistent loop flag tlast=.false. etp=0.d0 ! begin the self-consistent loop if (mp_mpi) then write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop started |")') write(60,'("+------------------------------+")') end if do iscl=1,maxscl if (mp_mpi) then write(60,*) write(60,'("+--------------------+")') write(60,'("| Loop number : ",I4," |")') iscl write(60,'("+--------------------+")') flush(60) write(*,*) write(*,'("Info(hartfock): self-consistent loop number : ",I4)') iscl end if if (iscl.ge.maxscl) then if (mp_mpi) then write(60,*) write(60,'("Reached self-consistent loops maximum")') end if tlast=.true. end if ! reset the OpenMP thread variables call omp_reset ! compute the Hartree-Fock local potentials call hflocal(hybrid,vmt,vir,bmt,bir) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call getevecsv(filext,ik,vkl(:,ik),evecsv) ! solve the Hartree-Fock eigenvalue equation call eveqnhf(ik,vmt,vir,bmt,bir,evecsv) ! write the eigenvalues/vectors to file call putevalsv(filext,ik,evalsv(:,ik)) call putevecsv(filext,ik,evecsv) end do !$OMP END DO deallocate(evecsv) !$OMP END PARALLEL call freethd(nthd) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! broadcast eigenvalue array to every process do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(evalsv(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) end do ! find the occupation numbers and Fermi energy call occupy if (mp_mpi) then ! write the occupation numbers to file do ik=1,nkpt call putoccsv(filext,ik,occsv(:,ik)) end do ! write out the eigenvalues and occupation numbers call writeeval ! write the Fermi energy to file call writefermi end if ! generate the density and magnetisation call rhomag ! compute the energy components call energy if (mp_mpi) then ! output energy components call writeengy(60) write(60,*) write(60,'("Density of states at Fermi energy : ",G18.10)') fermidos write(60,'(" (states/Hartree/unit cell)")') write(60,*) write(60,'("Estimated indirect band gap : ",G18.10)') bandgap(1) write(60,'(" from k-point ",I6," to k-point ",I6)') ikgap(1),ikgap(2) write(60,'("Estimated direct band gap : ",G18.10)') bandgap(2) write(60,'(" at k-point ",I6)') ikgap(3) ! write total energy to TOTENERGY.OUT write(61,'(G22.12)') engytot flush(61) ! write DOS at Fermi energy to FERMIDOS.OUT write(62,'(G18.10)') fermidos flush(62) ! output charges and moments call writechg(60) if (spinpol) then call writemom(60) ! write total moment to MOMENT.OUT write(63,'(3G18.10)') momtot(1:ndmag) flush(63) ! write total moment magnitude to MOMENTM.OUT write(68,'(G18.10)') momtotm flush(68) end if ! write estimated Hartree-Fock indirect band gap write(64,'(G22.12)') bandgap(1) flush(64) end if if (tlast) goto 10 ! compute the change in total energy and check for convergence if (iscl.ge.2) then de=abs(engytot-etp) if (mp_mpi) then write(60,*) write(60,'("Absolute change in total energy (target) : ",G18.10," (",& &G18.10,")")') de,epsengy end if if (de.lt.epsengy) then if (mp_mpi) then write(60,*) write(60,'("Energy convergence target achieved")') end if tlast=.true. end if if (mp_mpi) then write(66,'(G18.10)') de flush(66) end if end if etp=engytot ! check for STOP file (only master process) if (mp_mpi) then inquire(file='STOP',exist=exist) if (exist) then write(60,*) write(60,'("STOP file exists - stopping self-consistent loop")') tlast=.true. open(50,file='STOP') close(50,status='DELETE') end if end if ! broadcast tlast from master process to all other processes call mpi_bcast(tlast,1,mpi_logical,0,mpicom,ierror) end do 10 continue if (mp_mpi) then write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop stopped |")') write(60,'("+------------------------------+")') if (maxscl.gt.1) then call writestate write(60,*) write(60,'("Wrote STATE.OUT")') end if end if !-----------------------! ! compute forces ! !-----------------------! if (tforce) then call force ! output forces to INFO.OUT if (mp_mpi) call writeforces(60) end if if (mp_mpi) then write(60,*) write(60,'("+----------------------------+")') write(60,'("| Elk version ",I1.1,".",I1.1,".",I2.2," stopped |")') version write(60,'("+----------------------------+")') ! close the INFO.OUT file close(60) ! close the TOTENERGY.OUT file close(61) ! close the FERMIDOS.OUT file close(62) ! close the MOMENT.OUT and MOMENTM.OUT files if (spinpol) then close(63); close(68) end if ! close the GAP.OUT file close(64) ! close the DTOTENERGY.OUT file close(66) end if deallocate(vmt,vir) if (hybrid.and.spinpol) deallocate(bmt,bir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/eveqnhf.f900000644000000000000000000000013213543334735014603 xustar0030 mtime=1569569245.648641294 30 atime=1569569241.894643692 30 ctime=1569569245.648641294 elk-6.3.2/src/eveqnhf.f900000644002504400250440000001475713543334735016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst and S. Sharma. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine eveqnhf(ikp,vmt,vir,bmt,bir,evecsvp) use modmain use modomp implicit none ! arguments integer, intent(in) :: ikp real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(in) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) complex(8), intent(inout) :: evecsvp(nstsv,nstsv) ! local variables integer ik,jk,ist1,ist2,ist3 integer iv(3),iq,ig,i,nthd real(8) vc(3),t1 complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: h(:,:),v(:,:),kmat(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: zrhomt(:,:,:),zrhoir(:,:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) ! external functions complex(8) zfinp external zfinp !$OMP CRITICAL(eveqnhf_) write(*,'("Info(eveqnhf): ",I6," of ",I6," k-points")') ikp,nkpt !$OMP END CRITICAL(eveqnhf_) ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(h(nstsv,nstsv),v(nstsv,nstsv)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(zrhomt(npcmtmax,natmtot,nstsv),zrhoir(ngtc,nstsv)) ! get the eigenvectors from file for input reduced k-point call getevecfv(filext,ikp,vkl(:,ikp),vgkl(:,:,:,ikp),evecfv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! calculate the wavefunctions for all states of the input k-point call genwfsv(.false.,.true.,nstsv,idx,ngdc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsvp,wfmt1,ngtc,wfir1) !-----------------------------------------! ! local potential matrix elements ! !-----------------------------------------! if (hybrid.and.spinpol) then ! magnetic field matrix elements in hybrid case call genvbmatk(vmt,vir,bmt,bir,ngk(1,ikp),igkig(:,1,ikp),wfmt1,ngtc,wfir1,h) else call genvmatk(vmt,vir,ngk(1,ikp),igkig(:,1,ikp),wfmt1,ngtc,wfir1,h) end if ! Fourier transform wavefunctions to real-space call zftwfir(ngk(1,ikp),igkig(:,1,ikp),wfir1) !---------------------------------! ! kinetic matrix elements ! !---------------------------------! allocate(kmat(nstsv,nstsv)) call getkmat(ikp,kmat) call zgemm('N','N',nstsv,nstsv,nstsv,zone,kmat,nstsv,evecsvp,nstsv,zzero,v, & nstsv) call zgemm('C','N',nstsv,nstsv,nstsv,zone,evecsvp,nstsv,v,nstsv,zone,h,nstsv) deallocate(kmat) !------------------------------! ! Fock matrix elements ! !------------------------------! v(:,:)=0.d0 ! loop over non-reduced k-point set do ik=1,nkptnr ! find the equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! determine the q-vector iv(:)=ivk(:,ikp)-ivk(:,ik) iv(:)=modulo(iv(:),ngridk(:)) ! check if the q-point is in user-defined set iv(:)=iv(:)*ngridq(:) do i=1,3 if (modulo(iv(i),ngridk(i)).ne.0) goto 10 end do iv(:)=iv(:)/ngridk(:) iq=iqmap(iv(1),iv(2),iv(3)) vc(:)=vkc(:,ikp)-vkc(:,ik) do ig=1,ngvc ! determine the G+q-vectors vgqc(:,ig)=vgc(:,ig)+vc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! structure factors for G+q call gensfacgp(ngvc,vgqc,ngvc,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngvc,gqc,gclgq) ! compute the required spherical Bessel functions call genjlgprmt(lnpsd,ngvc,gqc,ngvc,jlgqrmt) ! find the matching coefficients call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! get the eigenvectors from file for non-reduced k-point call getevecfv(filext,0,vkl(:,ik),vgkl(:,:,1,ik),evecfv) call getevecsv(filext,0,vkl(:,ik),evecsv) ! calculate the wavefunctions for all states call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) do ist3=1,nstsv if (abs(occsv(ist3,jk)).lt.epsocc) cycle ! calculate the complex overlap densities for all states (T. McQueen) call holdthd(nstsv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ist1=1,nstsv call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist3),wfir2(:,:,ist3), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt(:,:,ist1),zrhoir(:,ist1)) end do !$OMP END PARALLEL DO call freethd(nthd) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zvclmt,zvclir) & !$OMP PRIVATE(ist1,z1,t1) & !$OMP NUM_THREADS(nthd) allocate(zvclmt(npcmtmax,natmtot),zvclir(ngtc)) !$OMP DO do ist2=1,nstsv ! calculate the Coulomb potential call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & zrhomt(:,:,ist2),zvclmt) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc, & gqc,gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,zrhoir(:,ist2),npcmtmax,zvclmt, & zvclir) do ist1=1,ist2 z1=zfinp(zrhomt(:,:,ist1),zrhoir(:,ist1),zvclmt,zvclir) t1=wqptnr*occsv(ist3,jk)/occmax v(ist1,ist2)=v(ist1,ist2)-t1*z1 end do end do !$OMP END DO deallocate(zvclmt,zvclir) !$OMP END PARALLEL call freethd(nthd) end do 10 continue ! end loop over non-reduced k-point set end do deallocate(vgqc,gqc,gclgq,jlgqrmt) deallocate(ylmgq,sfacgq,apwalm,evecfv) deallocate(wfmt1,wfmt2,wfir1,wfir2) deallocate(zrhomt,zrhoir) ! scale the Coulomb matrix elements in the case of a hybrid functional if (hybrid) v(:,:)=hybridc*v(:,:) ! add the Coulomb matrix elements to Hamiltonian h(:,:)=h(:,:)+v(:,:) !----------------------------------------------! ! diagonalise Hartree-Fock Hamiltonian ! !----------------------------------------------! call eveqnz(nstsv,nstsv,h,evalsv(:,ikp)) ! apply unitary transformation to the third-variational states so that they ! refer to the first-variational basis evecsv(:,:)=evecsvp(:,:) call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,h,nstsv,zzero,evecsvp, & nstsv) deallocate(evecsv,h,v) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zpotclmt.f900000644000000000000000000000013213543334735015023 xustar0030 mtime=1569569245.652641291 30 atime=1569569241.899643688 30 ctime=1569569245.652641291 elk-6.3.2/src/zpotclmt.f900000644002504400250440000000665513543334735017106 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zpotclmt ! !INTERFACE: subroutine zpotclmt(nr,nri,ld,rl,wpr,zrhomt,zvclmt) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial mesh points (in,integer) ! nri : number of points on inner part of muffin-tin (in,integer) ! ld : leading dimension (in,integer) ! rl : r^l on the radial mesh (in,real(ld,-lmaxo-1:lmaxo+2)) ! wpr : weights for partial integration on radial mesh (in,real(4,nr)) ! zrhomt : muffin-tin charge density (in,complex(*)) ! zvclmt : muffin-tin Coulomb potential (out,complex(*)) ! !DESCRIPTION: ! Solves the Poisson equation for the charge density contained in an isolated ! muffin-tin using the Green's function approach. In other words, the ! spherical harmonic expansion of the Coulomb potential, $V_{lm}$, is obtained ! from the density expansion, $\rho_{lm}$, by ! $$ V_{lm}(r)=\frac{4\pi}{2l+1}\left(\frac{1}{r^{l+1}}\int_0^r\rho_{lm}(r') ! {r'}^{l+2}dr'+r^l\int_r^R\frac{\rho_{lm}(r')}{{r'}^{l-1}}dr'\right) $$ ! where $R$ is the muffin-tin radius. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr,nri,ld real(8), intent(in) :: rl(ld,-lmaxo-1:lmaxo+2),wpr(4,nr) complex(8), intent(in) :: zrhomt(*) complex(8), intent(out) :: zvclmt(*) ! local variables integer nro,iro,ir integer l,l1,l2,l3 integer m,lm,npi,i real(8) r1,r2,t0,t1,t2,t3,t4 ! automatic arrays real(8) f1(nr),f2(nr),f3(nr),f4(nr),f5(nr) nro=nr-nri iro=nri+1 npi=lmmaxi*nri lm=0 do l=0,lmaxi l1=l+2 l2=-l+1 l3=-l-1 t0=fourpi/dble(2*l+1) do m=-l,l lm=lm+1 i=lm do ir=1,nri t1=dble(zrhomt(i)); t2=aimag(zrhomt(i)) r1=rl(ir,l1); r2=rl(ir,l2) f1(ir)=t1*r1; f2(ir)=t2*r1 f3(ir)=t1*r2; f4(ir)=t2*r2 i=i+lmmaxi end do do ir=iro,nr t1=dble(zrhomt(i)); t2=aimag(zrhomt(i)) r1=rl(ir,l1); r2=rl(ir,l2) f1(ir)=t1*r1; f2(ir)=t2*r1 f3(ir)=t1*r2; f4(ir)=t2*r2 i=i+lmmaxo end do call splintwp(nr,wpr,f1,f5) call splintwp(nr,wpr,f2,f1) call splintwp(nr,wpr,f3,f2) call splintwp(nr,wpr,f4,f3) t1=f2(nr); t2=f3(nr) i=lm do ir=1,nri r1=t0*rl(ir,l3); r2=t0*rl(ir,l) t3=r1*f5(ir)+r2*(t1-f2(ir)) t4=r1*f1(ir)+r2*(t2-f3(ir)) zvclmt(i)=cmplx(t3,t4,8) i=i+lmmaxi end do do ir=iro,nr r1=t0*rl(ir,l3); r2=t0*rl(ir,l) t3=r1*f5(ir)+r2*(t1-f2(ir)) t4=r1*f1(ir)+r2*(t2-f3(ir)) zvclmt(i)=cmplx(t3,t4,8) i=i+lmmaxo end do end do end do do l=lmaxi+1,lmaxo l1=l+2 l2=-l+1 l3=-l-1 t0=fourpi/dble(2*l+1) do m=-l,l lm=lm+1 i=npi+lm do ir=iro,nr t1=dble(zrhomt(i)); t2=aimag(zrhomt(i)) r1=rl(ir,l1); r2=rl(ir,l2) f1(ir)=t1*r1; f2(ir)=t2*r1 f3(ir)=t1*r2; f4(ir)=t2*r2 i=i+lmmaxo end do call splintwp(nro,wpr(1,iro),f1(iro),f5(iro)) call splintwp(nro,wpr(1,iro),f2(iro),f1(iro)) call splintwp(nro,wpr(1,iro),f3(iro),f2(iro)) call splintwp(nro,wpr(1,iro),f4(iro),f3(iro)) t1=f2(nr); t2=f3(nr) i=npi+lm do ir=iro,nr r1=t0*rl(ir,l3); r2=t0*rl(ir,l) t3=r1*f5(ir)+r2*(t1-f2(ir)) t4=r1*f1(ir)+r2*(t2-f3(ir)) zvclmt(i)=cmplx(t3,t4,8) i=i+lmmaxo end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genlofr.f900000644000000000000000000000013213543334735014603 xustar0030 mtime=1569569245.657641288 30 atime=1569569241.903643686 30 ctime=1569569245.657641288 elk-6.3.2/src/genlofr.f900000644002504400250440000001123513543334735016654 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genlofr ! !INTERFACE: subroutine genlofr ! !USES: use modmain ! !DESCRIPTION: ! Generates the local-orbital radial functions. This is done by integrating ! the scalar relativistic Schr\"{o}dinger equation (or its energy deriatives) ! at the current linearisation energies using the spherical part of the ! Kohn-Sham potential. For each local-orbital, a linear combination of ! {\tt lorbord} radial functions is constructed such that its radial ! derivatives up to order ${\tt lorbord}-1$ are zero at the muffin-tin radius. ! This function is normalised and the radial Hamiltonian applied to it. The ! results are stored in the global array {\tt lofr}. ! ! !REVISION HISTORY: ! Created March 2003 (JKD) ! Copied to equivalent atoms, February 2010 (A. Kozhevnikov and JKD) !EOP !BOC implicit none ! local variables integer is,ia,ja,ias,jas integer nr,nri,ir,i integer ilo,jlo,io,jo integer nn,l,info real(8) e,t1 ! automatic arrays logical done(natmmax) integer ipiv(nplorb) real(8) vr(nrmtmax),fr(nrmtmax) real(8) p0(nrmtmax,lorbordmax),p1(nrmtmax) real(8) q0(nrmtmax),q1(nrmtmax),ep0(nrmtmax,lorbordmax) real(8) p0s(nrmtmax,nlomax),ep0s(nrmtmax,nlomax) real(8) xa(nplorb),ya(nplorb) real(8) a(nplorb,nplorb),b(nplorb) ! external functions real(8) splint,polynm external splint,polynm do is=1,nspecies nr=nrmt(is) nri=nrmti(is) done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) ! use spherical part of potential i=1 do ir=1,nri vr(ir)=vsmt(i,ias)*y00 i=i+lmmaxi end do do ir=nri+1,nr vr(ir)=vsmt(i,ias)*y00 i=i+lmmaxo end do do ilo=1,nlorb(is) l=lorbl(ilo,is) do jo=1,lorbord(ilo,is) ! linearisation energy accounting for energy derivative e=lorbe(jo,ilo,ias)+dble(lorbdm(jo,ilo,is))*deapwlo ! integrate the radial Schrodinger equation call rschrodint(solsc,l,e,nr,rlmt(:,1,is),vr,nn,p0(:,jo),p1,q0,q1) ep0(1:nr,jo)=e*p0(1:nr,jo) ! normalise radial functions fr(1:nr)=p0(1:nr,jo)**2 t1=splint(nr,rlmt(:,1,is),fr) t1=1.d0/sqrt(abs(t1)) call dscal(nr,t1,p0(:,jo),1) call dscal(nr,t1,ep0(:,jo),1) ! set up the matrix of radial derivatives do i=1,nplorb ir=nr-nplorb+i xa(i)=rlmt(ir,1,is) ya(i)=p0(ir,jo)*rlmt(ir,-1,is) end do do io=1,lorbord(ilo,is) a(io,jo)=polynm(io-1,nplorb,xa,ya,rmt(is)) end do end do ! set up the target vector b(:)=0.d0 b(lorbord(ilo,is))=1.d0 call dgesv(lorbord(ilo,is),1,a,nplorb,ipiv,b,nplorb,info) if (info.ne.0) goto 10 ! generate linear superposition of radial functions p0s(:,ilo)=0.d0 ep0s(:,ilo)=0.d0 do io=1,lorbord(ilo,is) t1=b(io) call daxpy(nr,t1,p0(:,io),1,p0s(:,ilo),1) call daxpy(nr,t1,ep0(:,io),1,ep0s(:,ilo),1) end do ! normalise radial functions fr(1:nr)=p0s(1:nr,ilo)**2 t1=splint(nr,rlmt(:,1,is),fr) t1=1.d0/sqrt(abs(t1)) call dscal(nr,t1,p0s(:,ilo),1) call dscal(nr,t1,ep0s(:,ilo),1) ! subtract linear combination of previous local-orbitals with same l do jlo=1,ilo-1 if (lorbl(jlo,is).eq.l) then fr(1:nr)=p0s(1:nr,ilo)*p0s(1:nr,jlo) t1=-splint(nr,rlmt(:,1,is),fr) call daxpy(nr,t1,p0s(:,jlo),1,p0s(:,ilo),1) call daxpy(nr,t1,ep0s(:,jlo),1,ep0s(:,ilo),1) end if end do ! normalise radial functions again fr(1:nr)=p0s(1:nr,ilo)**2 t1=splint(nr,rlmt(:,1,is),fr) t1=abs(t1) if (t1.lt.1.d-25) goto 10 t1=1.d0/sqrt(t1) call dscal(nr,t1,p0s(:,ilo),1) call dscal(nr,t1,ep0s(:,ilo),1) ! divide by r and store in global array do ir=1,nr t1=rlmt(ir,-1,is) lofr(ir,1,ilo,ias)=t1*p0s(ir,ilo) lofr(ir,2,ilo,ias)=t1*ep0s(ir,ilo) end do end do done(ia)=.true. ! copy to equivalent atoms do ja=1,natoms(is) if ((.not.done(ja)).and.(eqatoms(ia,ja,is))) then jas=idxas(ja,is) do ilo=1,nlorb(is) call dcopy(nr,lofr(:,1,ilo,ias),1,lofr(:,1,ilo,jas),1) call dcopy(nr,lofr(:,2,ilo,ias),1,lofr(:,2,ilo,jas),1) end do done(ja)=.true. end if end do ! end loop over atoms and species end do end do return 10 continue write(*,*) write(*,'("Error(genlofr): degenerate local-orbital radial functions")') write(*,'(" for species ",I4)') is write(*,'(" atom ",I4)') ia write(*,'(" and local-orbital ",I4)') ilo write(*,*) stop end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfinpc.f900000644000000000000000000000013213543334735014430 xustar0030 mtime=1569569245.661641286 30 atime=1569569241.908643683 30 ctime=1569569245.661641286 elk-6.3.2/src/rfinpc.f900000644002504400250440000000174213543334735016503 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function rfinpc(ld,rfmt1,rfir1,rfmt2,rfir2) use modmain use modomp implicit none integer, intent(in) :: ld real(8), intent(in) :: rfmt1(ld,natmtot),rfir1(ngtot) real(8), intent(in) :: rfmt2(ld,natmtot),rfir2(ngtot) ! local variables integer is,ias,ir,nthd ! external functions real(8) rfmtinp external rfmtinp ! interstitial contribution rfinpc=0.d0 do ir=1,ngtot rfinpc=rfinpc+rfir1(ir)*rfir2(ir)*cfunir(ir) end do rfinpc=rfinpc*omega/dble(ngtot) ! muffin-tin contribution call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) REDUCTION(+:rfinpc) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) rfinpc=rfinpc+rfmtinp(nrcmt(is),nrcmti(is),wrcmt(:,is),rfmt1(:,ias), & rfmt2(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) return end function elk-6.3.2/src/PaxHeaders.21352/eveqnit.f900000644000000000000000000000013113543334735014621 xustar0030 mtime=1569569245.666641283 29 atime=1569569241.91264368 30 ctime=1569569245.666641283 elk-6.3.2/src/eveqnit.f900000644002504400250440000001343613543334735016700 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine eveqnit(nmatp,ngp,igpig,vpl,vgpl,vgpc,apwalm,evalfv,evecfv) use modmain use modomp implicit none ! arguments integer, intent(in) :: nmatp,ngp integer, intent(in) :: igpig(ngkmax) real(8), intent(in) :: vpl(3) real(8), intent(in) :: vgpl(3,ngkmax),vgpc(3,ngkmax) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) real(8), intent(out) :: evalfv(nstfv) complex(8), intent(out) :: evecfv(nmatmax,nstfv) ! local variables integer n2,ns,ist,ias integer it,i,nthd integer lwork,info real(8) rmax,t1 real(8) ts1,ts0 ! allocatable arrays real(8), allocatable :: w(:),rwork(:) complex(8), allocatable :: h(:,:),o(:,:),hv(:,:),ov(:,:) complex(8), allocatable :: u(:,:),hu(:,:),ou(:,:) complex(8), allocatable :: hs(:,:),os(:,:),work(:) ! external functions complex(8) zdotc external zdotc n2=2*nmatp ns=2*nstfv if (iscl.ge.2) then ! read in the eigenvalues/vectors from file call getevalfv(filext,0,vpl,evalfv) call getevecfv(filext,0,vpl,vgpl,evecfv) else ! initialise the eigenvectors to canonical basis vectors evecfv(1:nmatp,:)=0.d0 do ist=1,nstfv evecfv(ist,ist)=1.d0 end do end if ! compute Hamiltonian and overlap matrices call timesec(ts0) allocate(h(nmatp,nmatp),o(nmatp,nmatp)) call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP PRIVATE(i,ias) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! Hamiltonian do i=1,nmatp h(1:i,i)=0.d0 end do do ias=1,natmtot call hmlaa(tefvr,ias,ngp,apwalm(:,:,:,ias),nmatp,h) call hmlalo(ias,ngp,apwalm(:,:,:,ias),nmatp,h) call hmllolo(ias,ngp,nmatp,h) end do call hmlistl(ngp,igpig,vgpc,nmatp,h) !$OMP SECTION ! overlap do i=1,nmatp o(1:i,i)=0.d0 end do do ias=1,natmtot call olpaa(tefvr,ias,ngp,apwalm(:,:,:,ias),nmatp,o) call olpalo(ias,ngp,apwalm(:,:,:,ias),nmatp,o) call olplolo(ias,ngp,nmatp,o) end do call olpistl(ngp,igpig,nmatp,o) !$OMP END PARALLEL SECTIONS call freethd(nthd) call timesec(ts1) !$OMP ATOMIC timemat=timemat+ts1-ts0 call timesec(ts0) allocate(w(ns),rwork(3*ns)) allocate(hv(nmatp,nstfv),ov(nmatp,nstfv)) allocate(u(nmatp,nstfv),hu(nmatp,nstfv),ou(nmatp,nstfv)) allocate(hs(ns,ns),os(ns,ns)) lwork=2*ns allocate(work(lwork)) ! start iteration loop do it=1,maxitefv rmax=0.d0 call holdthd(nstfv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(t1) & !$OMP NUM_THREADS(nthd) do ist=1,nstfv ! operate with O on the current eigenvector call zhemv('U',nmatp,zone,o,nmatp,evecfv(:,ist),1,zzero,ov(:,ist),1) ! normalise the eigenvector t1=dble(zdotc(nmatp,evecfv(:,ist),1,ov(:,ist),1)) if (t1.gt.0.d0) then t1=1.d0/sqrt(t1) call dscal(n2,t1,evecfv(:,ist),1) call dscal(n2,t1,ov(:,ist),1) end if ! operate with H on the current eigenvector call zhemv('U',nmatp,zone,h,nmatp,evecfv(:,ist),1,zzero,hv(:,ist),1) ! estimate the eigenvalue t1=dble(zdotc(nmatp,evecfv(:,ist),1,hv(:,ist),1)) if ((iscl.le.1).and.(it.eq.1)) then evalfv(ist)=t1 else evalfv(ist)=(1.d0-befvit)*evalfv(ist)+befvit*t1 end if ! compute the residual |u> = (H - eO)|v> call zcopy(nmatp,hv(:,ist),1,u(:,ist),1) call daxpy(n2,-evalfv(ist),ov(:,ist),1,u(:,ist),1) ! apply the overlap matrix to the residual call zhemv('U',nmatp,zone,o,nmatp,u(:,ist),1,zzero,ou(:,ist),1) ! compute the overlap of the residual with itself t1=dble(zdotc(nmatp,u(:,ist),1,ou(:,ist),1)) !$OMP CRITICAL(eveqnit_) if (t1.gt.rmax) rmax=t1 !$OMP END CRITICAL(eveqnit_) ! normalise the residual if (t1.gt.0.d0) then t1=1.d0/sqrt(t1) call dscal(n2,t1,u(:,ist),1) call dscal(n2,t1,ou(:,ist),1) end if ! apply the Hamiltonian matrix to the residual call zhemv('U',nmatp,zone,h,nmatp,u(:,ist),1,zzero,hu(:,ist),1) end do !$OMP END PARALLEL DO call freethd(nthd) ! compute the Hamiltonian and overlap matrices in the subspace formed by the ! eigenvectors and their residuals call holdthd(nstfv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ist=1,nstfv call zgemv('C',nmatp,nstfv,zone,evecfv,nmatmax,hv(:,ist),1,zzero, & hs(1,ist),1) call zgemv('C',nmatp,nstfv,zone,evecfv,nmatmax,hu(:,ist),1,zzero, & hs(1,nstfv+ist),1) call zgemv('C',nmatp,nstfv,zone,u,nmatp,hu(:,ist),1,zzero, & hs(nstfv+1,nstfv+ist),1) end do !$OMP END PARALLEL DO call freethd(nthd) call holdthd(nstfv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ist=1,nstfv call zgemv('C',nmatp,nstfv,zone,evecfv,nmatmax,ov(:,ist),1,zzero, & os(1,ist),1) call zgemv('C',nmatp,nstfv,zone,evecfv,nmatmax,ou(:,ist),1,zzero, & os(1,nstfv+ist),1) call zgemv('C',nmatp,nstfv,zone,u,nmatp,ou(:,ist),1,zzero, & os(nstfv+1,nstfv+ist),1) end do !$OMP END PARALLEL DO call freethd(nthd) ! solve the generalised eigenvalue problem in the subspace call zhegv(1,'V','U',ns,hs,ns,os,ns,w,work,lwork,rwork,info) if (info.ne.0) exit ! construct the new eigenvectors call holdthd(nstfv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ist=1,nstfv call zgemv('N',nmatp,nstfv,zone,evecfv,nmatmax,hs(1,ist),1,zzero, & ov(:,ist),1) call zgemv('N',nmatp,nstfv,zone,u,nmatp,hs(nstfv+1,ist),1,zone,ov(:,ist),1) end do !$OMP END PARALLEL DO call freethd(nthd) call holdthd(nstfv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ist=1,nstfv call zcopy(nmatp,ov(:,ist),1,evecfv(:,ist),1) end do !$OMP END PARALLEL DO call freethd(nthd) ! check for convergence rmax=sqrt(abs(rmax)/dble(nmatp)) if ((it.ge.minitefv).and.(rmax.lt.epsefvit)) exit ! end iteration loop end do deallocate(w,rwork,h,o,hv,ov) deallocate(u,hu,ou,hs,os,work) call timesec(ts1) !$OMP ATOMIC timefv=timefv+ts1-ts0 return end subroutine elk-6.3.2/src/PaxHeaders.21352/genzfrm.f900000644000000000000000000000013013543334735014615 xustar0029 mtime=1569569245.67064128 30 atime=1569569241.917643677 29 ctime=1569569245.67064128 elk-6.3.2/src/genzfrm.f900000644002504400250440000000256513543334735016676 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2010 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genzfrm(wfmt11,wfmt12,wfir11,wfir12,wfmt21,wfmt22,wfir21,wfir22, & zrhomt,zrhoir,zmagmt,zmagir) use modmain use modomp implicit none ! arguments complex(8), intent(in) :: wfmt11(npcmtmax,natmtot),wfmt12(npcmtmax,natmtot) complex(8), intent(in) :: wfir11(ngtot),wfir12(ngtot) complex(8), intent(in) :: wfmt21(npcmtmax,natmtot),wfmt22(npcmtmax,natmtot) complex(8), intent(in) :: wfir21(ngtot),wfir22(ngtot) complex(8), intent(out) :: zrhomt(npcmtmax,natmtot),zrhoir(ngtot) complex(8), intent(out) :: zmagmt(npcmtmax,natmtot,ndmag),zmagir(ngtot,ndmag) ! local variables integer ld,is,ias,nthd !-------------------------! ! muffin-tin part ! !-------------------------! ld=npcmtmax*natmtot call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call genzrm(npcmt(is),wfmt11(:,ias),wfmt12(:,ias),wfmt21(:,ias), & wfmt22(:,ias),zrhomt(:,ias),ld,zmagmt(:,ias,1)) end do !$OMP END PARALLEL DO call freethd(nthd) !---------------------------! ! interstitial part ! !---------------------------! call genzrm(ngtot,wfir11,wfir12,wfir21,wfir22,zrhoir,ngtot,zmagir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gengqrf.f900000644000000000000000000000013213543334735014600 xustar0030 mtime=1569569245.675641277 30 atime=1569569241.921643674 30 ctime=1569569245.675641277 elk-6.3.2/src/gengqrf.f900000644002504400250440000000163713543334735016656 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengqrf(vqpc,vgqc,gqc,jlgqr,ylmgq,sfacgq) use modmain implicit none ! arguments real(8), intent(in) :: vqpc(3) real(8), intent(out) :: vgqc(3,ngrf),gqc(ngrf) real(8), intent(out) :: jlgqr(njcmax,nspecies,ngrf) complex(8), intent(out) :: ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot) ! local variables integer ig do ig=1,ngrf ! G+q-vector in Cartesian coordinates vgqc(:,ig)=vgc(:,ig)+vqpc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! generate the spherical Bessel functions call genjlgpr(ngrf,gqc,jlgqr) ! structure factors for G+q-vectors call gensfacgp(ngrf,vgqc,ngrf,sfacgq) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writepmat.f900000644000000000000000000000013213543334735015163 xustar0030 mtime=1569569245.679641274 30 atime=1569569241.926643671 30 ctime=1569569245.679641274 elk-6.3.2/src/writepmat.f900000644002504400250440000000211413543334735017230 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writepmat ! !INTERFACE: subroutine writepmat ! !USES: use modmain use modmpi ! !DESCRIPTION: ! Calculates the momentum matrix elements using routine {\tt genpmat} and ! writes them to direct access file {\tt PMAT.OUT}. ! ! !REVISION HISTORY: ! Created November 2003 (Sharma) !EOP !BOC implicit none ! initialise universal variables call init0 call init1 ! read in the density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! write the momentum matrix elements in the second-variational basis to file call genpmat if (mp_mpi) then write(*,*) write(*,'("Info(writepmat):")') write(*,'(" momentum matrix elements written to file PMAT.OUT")') end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genwfsv.f900000644000000000000000000000013213543334735014626 xustar0030 mtime=1569569245.684641271 30 atime=1569569241.930643669 30 ctime=1569569245.684641271 elk-6.3.2/src/genwfsv.f900000644002504400250440000001453013543334735016700 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genwfsv ! !INTERFACE: subroutine genwfsv(tsh,tgp,nst,idx,ngdg,igf,ngp,igpig,apwalm,evecfv,evecsv, & wfmt,ld,wfir) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! tsh : .true. if wfmt should be in spherical harmonic basis (in,logical) ! tgp : .true. if wfir should be in G+p-space, otherwise in real-space ! (in,logical) ! nst : number of states to be calculated (in,integer) ! idx : index to states which are to be calculated (in,integer(nst)) ! ngdg : G-vector grid sizes (in,integer(3)) ! igf : map from G-vector index to FFT array (in,integer(*)) ! ngp : number of G+p-vectors (in,integer(nspnfv)) ! igpig : index from G+p-vectors to G-vectors (in,integer(ngkmax,nspnfv)) ! apwalm : APW matching coefficients ! (in,complex(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) ! evecfv : first-variational eigenvectors (in,complex(nmatmax,nstfv,nspnfv)) ! evecsv : second-variational eigenvectors (in,complex(nstsv,nstsv)) ! wfmt : muffin-tin part of the wavefunctions for every state in spherical ! coordinates (out,complex(npcmtmax,natmtot,nspinor,nst)) ! ld : leading dimension of wfir (in,integer) ! wfir : interstitial part of the wavefunctions for every state ! (out,complex(ld,nspinor,nst)) ! !DESCRIPTION: ! Calculates the second-variational spinor wavefunctions in both the ! muffin-tin and interstitial regions for every state of a particular ! $k$-point. A coarse radial mesh is assumed in the muffin-tins with angular ! momentum cut-off of {\tt lmaxo}. ! ! !REVISION HISTORY: ! Created November 2004 (Sharma) ! Updated for spin-spirals, June 2010 (JKD) ! Packed muffin-tins, April 2016 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tsh,tgp integer, intent(in) :: nst,idx(nst),ngdg(3),igf(*) integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) complex(8), intent(out) :: wfmt(npcmtmax,natmtot,nspinor,nst) integer, intent(in) :: ld complex(8), intent(out) :: wfir(ld,nspinor,nst) ! local variables integer ist,ispn,jspn integer is,ia,ias,i,j,k integer nrc,nrci,npc integer igp,ifg,nthd real(8) t1 complex(8) zq(2),z1 ! automatic arrays logical done(nstfv,nspnfv) ! allocatable arrays complex(8), allocatable :: wfmt1(:,:,:),wfmt2(:) !--------------------------------! ! muffin-tin wavefunction ! !--------------------------------! call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,wfmt2) & !$OMP PRIVATE(is,nrc,nrci,npc) & !$OMP PRIVATE(ia,t1,zq,done,i,j,k) & !$OMP PRIVATE(ispn,jspn,ist,z1) & !$OMP NUM_THREADS(nthd) if (tevecsv) allocate(wfmt1(npcmtmax,nstfv,nspnfv)) if (.not.tsh) allocate(wfmt2(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! de-phasing factor for spin-spirals if (ssdph) then ia=idxia(ias) t1=-0.5d0*dot_product(vqcss(:),atposc(:,ia,is)) zq(1)=cmplx(cos(t1),sin(t1),8) zq(2)=conjg(zq(1)) end if done(:,:)=.false. ! loop only over required states do j=1,nst ! index to state in evecsv k=idx(j) if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors i=0 do ispn=1,nspinor jspn=jspnfv(ispn) wfmt(1:npc,ias,ispn,j)=0.d0 do ist=1,nstfv i=i+1 z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (ssdph) z1=z1*zq(ispn) if (.not.done(ist,jspn)) then if (tsh) then call wavefmt(lradstp,ias,ngp(jspn),apwalm(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt1(:,ist,jspn)) else call wavefmt(lradstp,ias,ngp(jspn),apwalm(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt2) ! convert to spherical coordinates call zbsht(nrc,nrci,wfmt2,wfmt1(:,ist,jspn)) end if done(ist,jspn)=.true. end if ! add to spinor wavefunction call zaxpy(npc,z1,wfmt1(:,ist,jspn),1,wfmt(:,ias,ispn,j),1) end if end do end do else ! spin-unpolarised wavefunction if (tsh) then call wavefmt(lradstp,ias,ngp,apwalm(:,:,:,ias,1),evecfv(:,k,1), & wfmt(:,ias,1,j)) else call wavefmt(lradstp,ias,ngp,apwalm(:,:,:,ias,1),evecfv(:,k,1),wfmt2) ! convert to spherical coordinates call zbsht(nrc,nrci,wfmt2,wfmt(:,ias,1,j)) end if end if ! end loop over second-variational states end do ! end loops over atoms end do !$OMP END DO if (tevecsv) deallocate(wfmt1) if (.not.tsh) deallocate(wfmt2) !$OMP END PARALLEL call freethd(nthd) !-----------------------------------! ! interstitial wavefunction ! !-----------------------------------! t1=1.d0/sqrt(omega) call holdthd(nst,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(i,k,ispn,jspn,ist) & !$OMP PRIVATE(z1,igp,ifg) & !$OMP NUM_THREADS(nthd) do j=1,nst k=idx(j) wfir(:,:,j)=0.d0 if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors i=0 do ispn=1,nspinor jspn=jspnfv(ispn) do ist=1,nstfv i=i+1 z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (tgp) then ! wavefunction in G+p-space call zaxpy(ngp(jspn),z1,evecfv(:,ist,jspn),1,wfir(:,ispn,j),1) else ! wavefunction in real-space z1=t1*z1 do igp=1,ngp(jspn) ifg=igf(igpig(igp,jspn)) wfir(ifg,ispn,j)=wfir(ifg,ispn,j)+z1*evecfv(igp,ist,jspn) end do end if end if end do ! Fourier transform wavefunction to real-space if required if (.not.tgp) call zfftifc(3,ngdg,1,wfir(:,ispn,j)) end do else ! spin-unpolarised wavefunction if (tgp) then call zcopy(ngp(1),evecfv(:,k,1),1,wfir(:,1,j),1) else do igp=1,ngp(1) ifg=igf(igpig(igp,1)) wfir(ifg,1,j)=t1*evecfv(igp,k,1) end do call zfftifc(3,ngdg,1,wfir(:,1,j)) end if end if end do !$OMP END PARALLEL DO call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writelsj.f900000644000000000000000000000013213543334735015012 xustar0030 mtime=1569569245.688641268 30 atime=1569569241.935643665 30 ctime=1569569245.688641268 elk-6.3.2/src/writelsj.f900000644002504400250440000000776413543334735017077 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma, C. Ambrosch-Draxl and ! F. Cricchio. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine writelsj use modmain use moddftu use modmpi use modtest implicit none ! local variables integer kst,ik,ist integer is,ia,ias real(8) xl(3),xs(3) ! allocatable arrays real(8), allocatable :: xj(:,:) complex(8), allocatable :: dmat(:,:,:,:,:) ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! allocate local arrays allocate(xj(3,natmtot)) allocate(dmat(lmmaxo,nspinor,lmmaxo,nspinor,natmtot)) if (task.eq.15) then ! compute total L, S and J ! read in the occupation numbers do ik=1,nkpt call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate the density matrix in each muffin-tin call gendmat(.false.,.false.,0,lmaxo,lmmaxo,dmat) if (mp_mpi) then open(50,file='LSJ.OUT',form='FORMATTED') write(50,*) write(50,'("Expectation values are computed only over the muffin-tin")') ! loop over species and atoms do is=1,nspecies write(50,*) write(50,'("Species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) ! calculate the expectation value of L and S call dmatls(dmat(:,:,:,:,ias),xl,xs) ! J = L + S xj(:,ias)=xl(:)+xs(:) write(50,'(" atom : ",I4)') ia write(50,'(" L : ",3G18.10)') xl(:) write(50,'(" S : ",3G18.10)') xs(:) write(50,'(" J : ",3G18.10)') xj(:,ias) ! end loop over atoms and species end do end do close(50) write(*,*) write(*,'("Info(writelsj):")') write(*,'(" muffin-tin L, S and J expectation values written to LSJ.OUT")') end if ! write J to test file call writetest(15,'total muffin-tin angular momentum',nv=3*natmtot,tol=1.d-3,& rva=xj) else ! compute L, S and J for all states in kstlist if (mp_mpi) then open(50,file='LSJ_KST.OUT',form='FORMATTED') write(50,*) write(50,'("Expectation values are computed only over the muffin-tin")') end if do kst=1,nkstlist ik=kstlist(1,kst) ist=kstlist(2,kst) if ((ik.le.0).or.(ik.gt.nkpt)) then write(*,*) write(*,'("Error(writelsj): k-point out of range : ",I8)') ik write(*,*) stop end if if ((ist.le.0).or.(ist.gt.nstsv)) then write(*,*) write(*,'("Error(writelsj): state out of range : ",I8)') ist write(*,*) stop end if ! select a particular wavefunction using its occupancy occsv(:,:)=0.d0 occsv(ist,ik)=1.d0/wkpt(ik) ! no symmetrisation required nsymcrys=1 ! generate the density matrix in each muffin-tin call gendmat(.false.,.false.,0,lmaxo,lmmaxo,dmat) if (mp_mpi) then ! loop over species and atoms do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! calculate the expectation value of L and S call dmatls(dmat(:,:,:,:,ias),xl,xs) ! J = L + S xj(:,ias)=xl(:)+xs(:) write(50,*) write(50,'("k-point : ",I6,3G18.10)') ik,vkl(:,ik) write(50,'("state : ",I6)') ist write(50,'("species : ",I4," (",A,"), atom : ",I4)') is, & trim(spsymb(is)),ia write(50,'(" L : ",3G18.10)') xl(:) write(50,'(" S : ",3G18.10)') xs(:) write(50,'(" J : ",3G18.10)') xj(:,ias) end do end do end if end do if (mp_mpi) then close(50) write(*,*) write(*,'("Info(writelsj):")') write(*,'(" muffin-tin L, S and J expectation values for each k-point and & &state")') write(*,'(" in kstlist written to LSJ_KST.OUT")') end if ! write J to test file call writetest(16,'muffin-tin angular momentum for one state',nv=3*natmtot, & tol=1.d-3,rva=xj) end if deallocate(xj,dmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writesf.f900000644000000000000000000000013213543334735014632 xustar0030 mtime=1569569245.692641266 30 atime=1569569241.940643662 30 ctime=1569569245.692641266 elk-6.3.2/src/writesf.f900000644002504400250440000000160713543334735016705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine writesf use modmain implicit none ! local variables integer iw ! width of plotting interval in units of swidth real(8), parameter :: swf=10.d0 real(8) dw,w,x ! external functions real(8) sdelta,stheta external sdelta,stheta open(50,file='SDELTA.OUT',form='FORMATTED') open(51,file='STHETA.OUT',form='FORMATTED') dw=(2.d0*swf*swidth)/dble(nwplot-1) do iw=1,nwplot w=-swf*swidth+dw*dble(iw-1) x=w/swidth write(50,'(2G18.10)') w,sdelta(stype,x)/swidth write(51,'(2G18.10)') w,stheta(stype,x) end do close(50) close(51) write(*,*) write(*,'("Info(writesf): smooth Dirac delta and Heaviside functions written")') write(*,'(" SDELTA.OUT and STHETA.OUT, respectively")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/rzfinp.f900000644000000000000000000000013113543334735014456 xustar0030 mtime=1569569245.697641263 29 atime=1569569241.94464366 30 ctime=1569569245.697641263 elk-6.3.2/src/rzfinp.f900000644002504400250440000000174113543334735016531 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. complex(8) function rzfinp(rfmt,rfir,zfmt,zfir) use modmain use modomp implicit none ! arguments real(8), intent(in) :: rfmt(npcmtmax,natmtot),rfir(ngtot) complex(8), intent(in) :: zfmt(npcmtmax,natmtot),zfir(ngtot) ! local variables integer is,ias,ir,nthd ! external functions complex(8) rzfmtinp external rzfmtinp ! interstitial contribution rzfinp=0.d0 do ir=1,ngtot rzfinp=rzfinp+(cfunir(ir)*rfir(ir))*zfir(ir) end do rzfinp=rzfinp*(omega/dble(ngtot)) ! muffin-tin contribution call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) REDUCTION(+:rzfinp) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) rzfinp=rzfinp+rzfmtinp(nrcmt(is),nrcmti(is),wrcmt(:,is),rfmt(:,ias), & zfmt(:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) return end function elk-6.3.2/src/PaxHeaders.21352/genjlgprmt.f900000644000000000000000000000013013543334735015316 xustar0029 mtime=1569569245.70164126 30 atime=1569569241.948643657 29 ctime=1569569245.70164126 elk-6.3.2/src/genjlgprmt.f900000644002504400250440000000235613543334735017375 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genjlgprmt ! !INTERFACE: subroutine genjlgprmt(lmax,ngp,gpc,ld,jlgprmt) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! lmax : angular momentum cut-off (in,integer) ! ngp : number of G+p-vectors (in,integer) ! gpc : length of G+p-vectors (in,real(ngkmax)) ! ld : leading dimension (in,integer) ! jlgprmt : spherical Bessel functions (out,real(0:lmax,ld,nspecies)) ! !DESCRIPTION: ! Calculates and stores the spherical Bessel functions ! $j_l(|{\bf G}+{\bf p}|{\bf R}_{\rm MT})$ for all input ${\bf G}+{\bf p}$ ! vectors and the muffin-tin radii ${\bf R}_{\rm MT}$ of every atomic species. ! ! !REVISION HISTORY: ! Created April 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax,ngp real(8), intent(in) :: gpc(ngp) integer, intent(in) :: ld real(8), intent(out) :: jlgprmt(0:lmax,ld,nspecies) ! local variables integer is,ig real(8) r,t1 do is=1,nspecies r=rmt(is) do ig=1,ngp t1=gpc(ig)*r call sbessel(lmax,t1,jlgprmt(:,ig,is)) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gridsize.f900000644000000000000000000000013213543334735014767 xustar0030 mtime=1569569245.705641258 30 atime=1569569241.952643655 30 ctime=1569569245.705641258 elk-6.3.2/src/gridsize.f900000644002504400250440000000337413543334735017045 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gridsize ! !INTERFACE: subroutine gridsize(avec,gmaxvr,ngridg,ngtot,intgv) ! !INPUT/OUTPUT PARAMETERS: ! avec : lattice vectors (in,real(3,3)) ! gmaxvr : G-vector cut-off (in,real) ! ngridg : G-vector grid sizes (out,integer(3)) ! ngtot : total number of G-vectors (out,integer) ! intgv : integer grid intervals for each direction (out,integer(2,3)) ! !DESCRIPTION: ! Finds the ${\bf G}$-vector grid which completely contains the vectors with ! $G0 apword(1:lmaxapw,is)=apword(0,is) do io=1,apword(0,is) read(50,*) apwe0(io,0,is),apwdm(io,0,is),apwve(io,0,is) if (apwdm(io,0,is).lt.0) then write(*,*) write(*,'("Error(readspecies): apwdm < 0 : ",I8)') apwdm(io,0,is) write(*,'(" for species ",I4)') is write(*,'(" and order ",I4)') io write(*,*) stop end if ! set the APW linearisation energies, derivative orders and variability for l>0 apwe0(io,1:lmaxapw,is)=apwe0(io,0,is) apwdm(io,1:lmaxapw,is)=apwdm(io,0,is) apwve(io,1:lmaxapw,is)=apwve(io,0,is) e0min=min(e0min,apwe0(io,0,is)) end do read(50,*) nlx if (nlx.lt.0) then write(*,*) write(*,'("Error(readspecies): nlx < 0 : ",I8)') nlx write(*,'(" for species ",I4)') is write(*,*) stop end if do ilx=1,nlx read(50,*) lx,io if (lx.lt.0) then write(*,*) write(*,'("Error(readspecies): lx < 0 : ",I8)') lx write(*,'(" for species ",I4)') is write(*,'(" and exception number ",I4)') ilx write(*,*) stop end if if (lx.gt.lmaxapw) then write(*,*) write(*,'("Error(readspecies): lx > lmaxapw : ",I8)') lx write(*,'(" for species ",I4)') is write(*,'(" and exception number ",I4)') ilx write(*,*) stop end if apword(lx,is)=io if (apword(lx,is).le.0) then write(*,*) write(*,'("Error(readspecies): apword <= 0 : ",I8)') apword(lx,is) write(*,'(" for species ",I4)') is write(*,'(" and exception number ",I4)') ilx write(*,*) stop end if if (apword(lx,is).gt.maxapword) then write(*,*) write(*,'("Error(readspecies): apword too large : ",I8)') apword(lx,is) write(*,'(" for species ",I4)') is write(*,'(" and exception number ",I4)') ilx write(*,'("Adjust maxapword in modmain and recompile code")') write(*,*) stop end if do io=1,apword(lx,is) read(50,*) apwe0(io,lx,is),apwdm(io,lx,is),apwve(io,lx,is) if (apwdm(io,lx,is).lt.0) then write(*,*) write(*,'("Error(readspecies): apwdm < 0 : ",I8)') apwdm(io,lx,is) write(*,'(" for species ",I4)') is write(*,'(" exception number ",I4)') ilx write(*,'(" and order ",I4)') io write(*,*) stop end if e0min=min(e0min,apwe0(io,lx,is)) end do end do ! add excess order to APW functions if required if (nxoapwlo.gt.0) then do l=0,lmaxapw jo=apword(l,is) ko=jo+nxoapwlo if (ko.gt.maxapword) ko=maxapword i=0 do io=jo+1,ko i=i+1 apwe0(io,l,is)=apwe0(jo,l,is) apwdm(io,l,is)=apwdm(jo,l,is)+i apwve(io,l,is)=apwve(jo,l,is) end do apword(l,is)=ko end do end if read(50,*) nlorb(is) if (nlorb(is).lt.0) then write(*,*) write(*,'("Error(readspecies): nlorb < 0 : ",I8)') nlorb(is) write(*,'(" for species ",I4)') is write(*,*) stop end if if (nlorb(is).gt.maxlorb) then write(*,*) write(*,'("Error(readspecies): nlorb too large : ",I8)') nlorb(is) write(*,'(" for species ",I4)') is write(*,'("Adjust maxlorb in modmain and recompile code")') write(*,*) stop end if do ilo=1,nlorb(is) read(50,*) lorbl(ilo,is),lorbord(ilo,is) if (lorbl(ilo,is).lt.0) then write(*,*) write(*,'("Error(readspecies): lorbl < 0 : ",I8)') lorbl(ilo,is) write(*,'(" for species ",I4)') is write(*,'(" and local-orbital ",I4)') ilo write(*,*) stop end if if (lorbl(ilo,is).gt.lmaxo) then write(*,*) write(*,'("Error(readspecies): lorbl > lmaxo : ",2I8)') lorbl(ilo,is), & lmaxo write(*,'(" for species ",I4)') is write(*,'(" and local-orbital ",I4)') ilo write(*,*) stop end if if (lorbord(ilo,is).lt.2) then write(*,*) write(*,'("Error(readspecies): lorbord < 2 : ",I8)') lorbord(ilo,is) write(*,'(" for species ",I4)') is write(*,'(" and local-orbital ",I4)') ilo write(*,*) stop end if if (lorbord(ilo,is).gt.maxlorbord) then write(*,*) write(*,'("Error(readspecies): lorbord too large : ",I8)') lorbord(ilo,is) write(*,'(" for species ",I4)') is write(*,'(" and local-orbital ",I4)') ilo write(*,'("Adjust maxlorbord in modmain and recompile code")') write(*,*) stop end if do io=1,lorbord(ilo,is) read(50,*) lorbe0(io,ilo,is),lorbdm(io,ilo,is),lorbve(io,ilo,is) if (lorbdm(io,ilo,is).lt.0) then write(*,*) write(*,'("Error(readspecies): lorbdm < 0 : ",I8)') lorbdm(io,ilo,is) write(*,'(" for species ",I4)') is write(*,'(" local-orbital ",I4)') ilo write(*,'(" and order ",I4)') io write(*,*) stop end if e0min=min(e0min,lorbe0(io,ilo,is)) end do end do ! add excess local-orbitals if required if (nxlo.gt.0) then lx=-1 do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) if (lorbe0(io,ilo,is).lt.0.d0) goto 10 end do if (lorbl(ilo,is).gt.lx) lx=lorbl(ilo,is) 10 continue end do ilo=nlorb(is) do i=1,nxlo if (ilo.eq.maxlorb) exit l=lx+i if (l.gt.lmaxo) exit ilo=ilo+1 lorbl(ilo,is)=l lorbord(ilo,is)=apword(l,is)+1 do io=1,lorbord(ilo,is) lorbe0(io,ilo,is)=apwe0(1,l,is) lorbdm(io,ilo,is)=io-1 lorbve(io,ilo,is)=apwve(1,l,is) end do end do nlorb(is)=ilo end if ! add excess order to local-orbitals if required if (nxoapwlo.gt.0) then do ilo=1,nlorb(is) ! find the maximum energy derivative jo=1 j=lorbdm(jo,ilo,is) do io=1,lorbord(ilo,is) i=lorbdm(io,ilo,is) if (i.gt.j) then jo=io j=i end if end do ko=lorbord(ilo,is)+nxoapwlo if (ko.gt.maxlorbord) ko=maxlorbord i=0 do io=lorbord(ilo,is)+1,ko i=i+1 lorbe0(io,ilo,is)=lorbe0(jo,ilo,is) lorbdm(io,ilo,is)=lorbdm(jo,ilo,is)+i lorbve(io,ilo,is)=lorbve(jo,ilo,is) end do lorbord(ilo,is)=ko end do end if close(50) end do ! set all muffin-tin radii to single value if required if (rmtall.gt.0.d0) rmt(1:nspecies)=rmtall ! add conduction state local-orbitals if required call addlorbcnd ! subtract 2 Hartree from the minimum energy e0min=e0min-2.d0 return end subroutine elk-6.3.2/src/PaxHeaders.21352/i3mtv.f900000644000000000000000000000013213543334735014211 xustar0030 mtime=1569569245.723641246 30 atime=1569569241.970643643 30 ctime=1569569245.723641246 elk-6.3.2/src/i3mtv.f900000644002504400250440000000144113543334735016260 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: i3mtv ! !INTERFACE: subroutine i3mtv(a,x,y) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,integer(3,3)) ! x : input vector (in,integer(3)) ! y : output vector (out,integer(3)) ! !DESCRIPTION: ! Multiplies the transpose of an integer $3\times 3$ matrix with a vector. ! ! !REVISION HISTORY: ! Created April 2007 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: a(3,3),x(3) integer, intent(out) :: y(3) y(1)=a(1,1)*x(1)+a(2,1)*x(2)+a(3,1)*x(3) y(2)=a(1,2)*x(1)+a(2,2)*x(2)+a(3,2)*x(3) y(3)=a(1,3)*x(1)+a(2,3)*x(2)+a(3,3)*x(3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writeeval.f900000644000000000000000000000013113543334735015150 xustar0030 mtime=1569569245.728641243 29 atime=1569569241.97564364 30 ctime=1569569245.728641243 elk-6.3.2/src/writeeval.f900000644002504400250440000000265013543334735017223 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writeeval ! !INTERFACE: subroutine writeeval ! !USES: use modmain ! !DESCRIPTION: ! Outputs the second-variational eigenvalues and occupation numbers to the ! file {\tt EIGVAL.OUT}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! local variables integer ik,ist,is,ia,ias ! write out the valence eigenvalues open(50,file='EIGVAL'//trim(filext),form='FORMATTED') write(50,'(I6," : nkpt")') nkpt write(50,'(I6," : nstsv")') nstsv do ik=1,nkpt write(50,*) write(50,'(I6,3G18.10," : k-point, vkl")') ik,vkl(:,ik) write(50,'(" (state, eigenvalue and occupancy below)")') do ist=1,nstsv write(50,'(I6,2G18.10)') ist,evalsv(ist,ik),occsv(ist,ik) end do write(50,*) end do close(50) ! write out the core eigenvalues open(50,file='EVALCORE'//trim(filext),form='FORMATTED') do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia do ist=1,nstsp(is) if (spcore(ist,is)) then write(50,'(" n = ",I2,", l = ",I2,", k = ",I2," : ",G18.10)') & nsp(ist,is),lsp(ist,is),ksp(ist,is),evalcr(ist,ias) end if end do end do end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/i3minv.f900000644000000000000000000000013013543334735014352 xustar0029 mtime=1569569245.73264124 30 atime=1569569241.980643637 29 ctime=1569569245.73264124 elk-6.3.2/src/i3minv.f900000644002504400250440000000243013543334735016422 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2003-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: i3minv ! !INTERFACE: subroutine i3minv(a,b) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,integer(3,3)) ! b : output matrix (in,integer(3,3)) ! !DESCRIPTION: ! Computes the inverse of a integer $3\times 3$ matrix: $B=A^{-1}$. ! ! !REVISION HISTORY: ! Created November 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: a(3,3) integer, intent(out) :: b(3,3) ! local variables integer m m=a(1,1)*(a(2,2)*a(3,3)-a(3,2)*a(2,3)) & +a(2,1)*(a(3,2)*a(1,3)-a(1,2)*a(3,3)) & +a(3,1)*(a(1,2)*a(2,3)-a(2,2)*a(1,3)) if ((m.ne.1).and.(m.ne.-1)) then write(*,*) write(*,'("Error(i3minv): cannot invert matrix")') write(*,'(" Determinant : ",I8)') m write(*,*) stop end if b(1,1)=(a(2,2)*a(3,3)-a(2,3)*a(3,2))*m b(1,2)=(a(1,3)*a(3,2)-a(1,2)*a(3,3))*m b(1,3)=(a(1,2)*a(2,3)-a(1,3)*a(2,2))*m b(2,1)=(a(2,3)*a(3,1)-a(2,1)*a(3,3))*m b(2,2)=(a(1,1)*a(3,3)-a(1,3)*a(3,1))*m b(2,3)=(a(1,3)*a(2,1)-a(1,1)*a(2,3))*m b(3,1)=(a(2,1)*a(3,2)-a(2,2)*a(3,1))*m b(3,2)=(a(1,2)*a(3,1)-a(1,1)*a(3,2))*m b(3,3)=(a(1,1)*a(2,2)-a(1,2)*a(2,1))*m return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/i3mdet.f900000644000000000000000000000013213543334735014334 xustar0030 mtime=1569569245.737641237 30 atime=1569569241.984643634 30 ctime=1569569245.737641237 elk-6.3.2/src/i3mdet.f900000644002504400250440000000127613543334735016411 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: i3mdet ! !INTERFACE: integer function i3mdet(a) ! !INPUT/OUTPUT PARAMETERS: ! a : input matrix (in,integer(3,3)) ! !DESCRIPTION: ! Returns the determinant of an integer $3\times 3$ matrix $A$. ! ! !REVISION HISTORY: ! Created October 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: a(3,3) i3mdet=a(1,1)*(a(2,2)*a(3,3)-a(3,2)*a(2,3)) & +a(2,1)*(a(3,2)*a(1,3)-a(1,2)*a(3,3)) & +a(3,1)*(a(1,2)*a(2,3)-a(2,2)*a(1,3)) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/genevfsv.f900000644000000000000000000000013213543334735014772 xustar0030 mtime=1569569245.741641235 30 atime=1569569241.988643632 30 ctime=1569569245.741641235 elk-6.3.2/src/genevfsv.f900000644002504400250440000000251613543334735017045 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genevfsv use modmain use modmpi use modomp implicit none ! local variables integer ik,lp,nthd ! allocatable arrays real(8), allocatable :: evalfv(:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) ! begin parallel loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evalfv,evecfv,evecsv) & !$OMP NUM_THREADS(nthd) allocate(evalfv(nstfv,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! solve the first- and second-variational eigenvalue equations call eveqn(ik,evalfv,evecfv,evecsv) ! write the eigenvalues/vectors to file call putevalfv(filext,ik,evalfv) call putevalsv(filext,ik,evalsv(:,ik)) call putevecfv(filext,ik,evecfv) call putevecsv(filext,ik,evecsv) end do !$OMP END DO deallocate(evalfv,evecfv,evecsv) !$OMP END PARALLEL call freethd(nthd) ! broadcast eigenvalue array to every MPI process if (np_mpi.gt.1) then do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(evalsv(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/getpmat.f900000644000000000000000000000013213543334735014610 xustar0030 mtime=1569569245.746641231 30 atime=1569569241.992643629 30 ctime=1569569245.746641231 elk-6.3.2/src/getpmat.f900000644002504400250440000000412213543334735016656 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getpmat(vpl,pmat) use modmain implicit none ! arguments real(8), intent(in) :: vpl(3) complex(8), intent(out) :: pmat(nstsv,nstsv,3) ! local variables integer isym,ik,ist,jst integer recl,nstsv_,i real(8) vkl_(3),sc(3,3),t1 complex(8) v1(3),v2(3) ! find the equivalent k-point number and symmetry which rotates vkl to vpl call findkpt(vpl,isym,ik) ! find the record length inquire(iolength=recl) vkl_,nstsv_,pmat !$OMP CRITICAL(u150) do i=1,2 open(150,file='PMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl,err=10) read(150,rec=ik,err=10) vkl_,nstsv_,pmat exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(getpmat): unable to read from PMAT.OUT")') write(*,*) stop end if close(150) end do !$OMP END CRITICAL(u150) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getpmat): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" PMAT.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getpmat): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" PMAT.OUT : ",I8)') nstsv_ write(*,*) stop end if ! if p = k then return t1=abs(vpl(1)-vkl(1,ik))+abs(vpl(2)-vkl(2,ik))+abs(vpl(3)-vkl(3,ik)) if (t1.lt.epslat) return ! rotate the matrix elements from the reduced to non-reduced k-point sc(:,:)=symlatc(:,:,lsplsymc(isym)) do ist=1,nstsv do jst=1,nstsv v1(:)=pmat(ist,jst,:) call rz3mv(sc,v1,v2) pmat(ist,jst,:)=v2(:) end do end do return contains subroutine rz3mv(a,x,y) implicit none real(8), intent(in) :: a(3,3) complex(8), intent(in) :: x(3) complex(8), intent(out) :: y(3) y(1)=a(1,1)*x(1)+a(1,2)*x(2)+a(1,3)*x(3) y(2)=a(2,1)*x(1)+a(2,2)*x(2)+a(2,3)*x(3) y(3)=a(3,1)*x(1)+a(3,2)*x(2)+a(3,3)*x(3) return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/timesec.f900000644000000000000000000000013213543334735014600 xustar0030 mtime=1569569245.751641228 30 atime=1569569241.997643626 30 ctime=1569569245.751641228 elk-6.3.2/src/timesec.f900000644002504400250440000000123113543334735016644 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: timesec ! !INTERFACE: subroutine timesec(ts) ! !INPUT/OUTPUT PARAMETERS: ! ts : system time in seconds (out,real) ! !DESCRIPTION: ! Outputs the system time in seconds. ! ! !REVISION HISTORY: ! Created September 2010 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(out) :: ts ! local variables integer count,count_rate call system_clock(count=count,count_rate=count_rate) ts=dble(count)/dble(count_rate) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/mixpack.f900000644000000000000000000000013213543334735014603 xustar0030 mtime=1569569245.755641226 30 atime=1569569242.001643623 30 ctime=1569569245.755641226 elk-6.3.2/src/mixpack.f900000644002504400250440000000332113543334735016651 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: mixpack ! !INTERFACE: subroutine mixpack(tpack,n,v) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! tpack : .true. for packing, .false. for unpacking (in,logical) ! n : total number of real values stored (out,integer) ! v : packed potential (inout,real(*)) ! !DESCRIPTION: ! Packs/unpacks the muffin-tin and interstitial parts of the Kohn-Sham ! potential and magnetic field into/from the single array {\tt v}. This array ! can then be passed directly to the mixing routine. See routine {\tt rfpack}. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tpack integer, intent(out) :: n real(8), intent(inout) :: v(*) ! local variables integer idm,ispn,jspn integer ias,lm1,lm2 n=0 ! pack the Kohn-Sham potential and magnetic field call rfpack(tpack,n,npmt,npmtmax,vsmt,vsir,v) do idm=1,ndmag call rfpack(tpack,n,npcmt,npcmtmax,bsmt(:,:,idm),bsir(:,idm),v) end do ! pack the DFT+U potential if required if (tvmatmt) then do ias=1,natmtot do ispn=1,nspinor do jspn=1,nspinor do lm1=1,lmmaxdm do lm2=1,lmmaxdm n=n+1 if (tpack) then v(n)=dble(vmatmt(lm1,ispn,lm2,jspn,ias)) n=n+1 v(n)=aimag(vmatmt(lm1,ispn,lm2,jspn,ias)) else vmatmt(lm1,ispn,lm2,jspn,ias)=cmplx(v(n),v(n+1),8) n=n+1 end if end do end do end do end do end do end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/mixerifc.f900000644000000000000000000000013213543334735014755 xustar0030 mtime=1569569245.760641222 30 atime=1569569242.005643621 30 ctime=1569569245.760641222 elk-6.3.2/src/mixerifc.f900000644002504400250440000000307613543334735017032 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine mixerifc(mtype,n,v,dv,nwork,work) use modmain implicit none ! arguments integer, intent(in) :: mtype,n real(8), intent(inout) :: v(n) real(8), intent(out) :: dv integer, intent(inout) :: nwork real(8), intent(inout) :: work(*) ! local variables select case(mtype) case(0) ! linear mixing if (nwork.le.0) then nwork=n return end if call mixlinear(iscl,amixpm(1),n,v,work,dv) case(1) ! adaptive linear mixing if (nwork.le.0) then nwork=3*n return end if call mixadapt(iscl,amixpm(1),amixpm(2),n,v,work,work(n+1),work(2*n+1),dv) case(3) ! Broyden mixing if (nwork.le.0) then nwork=(4+2*mixsdb)*n+mixsdb**2 return end if call mixbroyden(iscl,n,mixsdb,broydpm(1),broydpm(2),v,work,work(2*n+1), & work(4*n+1),work((4+mixsdb)*n+1),work((4+2*mixsdb)*n+1),dv) case default write(*,*) write(*,'("Error(mixerifc): mtype not defined : ",I8)') mtype write(*,*) stop end select return end subroutine subroutine getmixdata(mtype,mixdescr) implicit none ! arguments integer, intent(in) :: mtype character(*), intent(out) :: mixdescr select case(mtype) case(0) mixdescr='Linear mixing' case(1) mixdescr='Adaptive linear mixing' case(3) mixdescr='Broyden mixing, J. Phys. A: Math. Gen. 17, L317 (1984)' case default write(*,*) write(*,'("Error(getmixdata): mixtype not defined : ",I8)') mtype write(*,*) stop end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/symmat.f900000644000000000000000000000013013543334735014457 xustar0029 mtime=1569569245.76464122 30 atime=1569569242.010643618 29 ctime=1569569245.76464122 elk-6.3.2/src/symmat.f900000644002504400250440000000112013543334735016522 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine symmat(al) use modmain implicit none ! arguments real(8), intent(inout) :: al(3,3) ! local variables integer isym,lspl real(8) as(3,3),s(3,3) real(8) b(3,3),c(3,3),t1 as(:,:)=0.d0 do isym=1,nsymcrys lspl=lsplsymc(isym) s(:,:)=dble(symlat(:,:,lspl)) call r3mtm(s,al,b) call r3mm(b,s,c) as(:,:)=as(:,:)+c(:,:) end do t1=1.d0/dble(nsymcrys) al(:,:)=t1*as(:,:) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhoinit.f900000644000000000000000000000013213543334735014623 xustar0030 mtime=1569569245.769641217 30 atime=1569569242.014643615 30 ctime=1569569245.769641217 elk-6.3.2/src/rhoinit.f900000644002504400250440000000763213543334735016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rhoinit ! !INTERFACE: subroutine rhoinit ! !USES: use modmain use modomp ! !DESCRIPTION: ! Initialises the crystal charge density. Inside the muffin-tins it is set to ! the spherical atomic density. In the interstitial region it is taken to be ! constant such that the total charge is correct. Requires that the atomic ! densities have already been calculated. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) !EOP !BOC implicit none ! local variables integer lmax,is,ia,ias,i integer nr,nri,nro,nrs,ir integer nrc,nrci,irco,irc integer l,m,lm,ig,ifg,nthd real(8) x,t1,t2 complex(8) z1,z2,z3 ! allocatable arrays real(8), allocatable :: jl(:,:),ffg(:),wr(:),fr(:) complex(8), allocatable :: zfmt(:),zfft(:) lmax=min(lmaxi,1) ! zero the charge density arrays rhomt(:,:)=0.d0 rhoir(:)=0.d0 ! compute the superposition of all the atomic density tails allocate(zfft(ngtot)) zfft(:)=0.d0 call holdthd(nspecies,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ffg,wr,fr,nr,nrs,nro,ig) & !$OMP PRIVATE(ir,t1,t2,x,ia,ias,ifg) & !$OMP NUM_THREADS(nthd) allocate(ffg(ngvec),wr(nrspmax),fr(nrspmax)) !$OMP DO do is=1,nspecies nr=nrmt(is) nrs=nrsp(is) nro=nrs-nr+1 ! determine the weights for the radial integral call wsplint(nro,rsp(nr,is),wr(nr)) do ig=1,ngvec t1=gc(ig) ! spherical bessel function j_0(x) times the atomic density tail if (t1.gt.epslat) then t2=1.d0/t1 do ir=nr,nrs x=t1*rsp(ir,is) fr(ir)=t2*sin(x)*rhosp(ir,is)*rsp(ir,is) end do else fr(nr:nrs)=rhosp(nr:nrs,is)*rsp(nr:nrs,is)**2 end if t1=dot_product(wr(nr:nrs),fr(nr:nrs)) ! apply low-pass filter t1=t1*exp(-4.d0*(gc(ig)/gmaxvr)**2) ffg(ig)=(fourpi/omega)*t1 end do do ia=1,natoms(is) ias=idxas(ia,is) !$OMP CRITICAL(rhoinit_) do ig=1,ngvec ifg=igfft(ig) zfft(ifg)=zfft(ifg)+ffg(ig)*conjg(sfacg(ig,ias)) end do !$OMP END CRITICAL(rhoinit_) end do end do !$OMP END DO deallocate(ffg,wr,fr) !$OMP END PARALLEL call freethd(nthd) ! compute the tails in each muffin-tin call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(jl,zfmt,is,nrc,nrci) & !$OMP PRIVATE(irco,ig,ifg,irc,x) & !$OMP PRIVATE(z1,z2,z3,lm,l,m,i) & !$OMP NUM_THREADS(nthd) allocate(jl(0:lmax,nrcmtmax),zfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) irco=nrci+1 zfmt(1:npcmt(is))=0.d0 do ig=1,ngvec ifg=igfft(ig) do irc=1,nrc x=gc(ig)*rcmt(irc,is) call sbessel(lmax,x,jl(:,irc)) end do z1=fourpi*zfft(ifg)*sfacg(ig,ias) lm=0 do l=0,lmax z2=z1*zil(l) do m=-l,l lm=lm+1 z3=z2*conjg(ylmg(lm,ig)) i=lm do irc=1,nrci zfmt(i)=zfmt(i)+jl(l,irc)*z3 i=i+lmmaxi end do do irc=irco,nrc zfmt(i)=zfmt(i)+jl(l,irc)*z3 i=i+lmmaxo end do end do end do end do call ztorfmt(nrc,nrci,zfmt,rhomt(:,ias)) end do !$OMP END DO deallocate(jl,zfmt) !$OMP END PARALLEL call freethd(nthd) ! convert the density from a coarse to a fine radial mesh call rfmtctof(rhomt) ! add the atomic charge density and the excess charge in each muffin-tin t1=chgexs/omega do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) i=1 do ir=1,nri t2=(t1+rhosp(ir,is))/y00 rhomt(i,ias)=rhomt(i,ias)+t2 i=i+lmmaxi end do do ir=nri+1,nr t2=(t1+rhosp(ir,is))/y00 rhomt(i,ias)=rhomt(i,ias)+t2 i=i+lmmaxo end do end do ! interstitial density determined from the atomic tails and excess charge call zfftifc(3,ngridg,1,zfft) do ir=1,ngtot rhoir(ir)=dble(zfft(ir))+t1 ! make sure that the density is always positive if (rhoir(ir).lt.1.d-10) rhoir(ir)=1.d-10 end do deallocate(zfft) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/maginit.f900000644000000000000000000000013213543334735014577 xustar0030 mtime=1569569245.773641214 30 atime=1569569242.018643612 30 ctime=1569569245.773641214 elk-6.3.2/src/maginit.f900000644002504400250440000000206513543334735016651 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine maginit use modmain implicit none ! local variables integer idm,is,ia,ias,np ! magnetisation as fraction of density real(8), parameter :: fmr=0.15d0 real(8) v(3),t1 if (.not.spinpol) return ! initialise muffin-tin magnetisation do ias=1,natmtot is=idxis(ias) ia=idxia(ias) np=npmt(is) v(:)=bfcmt(:,ia,is)+bfieldc(:) t1=sqrt(v(1)**2+v(2)**2+v(3)**2) if (t1.gt.1.d-8) then t1=-fmr/t1 v(:)=t1*v(:) if (.not.ncmag) v(1)=v(3) do idm=1,ndmag t1=v(idm) magmt(1:np,ias,idm)=t1*rhomt(1:np,ias) end do else magmt(1:np,ias,:)=0.d0 end if end do ! initialise interstitial magnetisation v(:)=bfieldc(:) t1=sqrt(v(1)**2+v(2)**2+v(3)**2) if (t1.gt.1.d-8) then t1=-fmr/t1 v(:)=t1*v(:) if (.not.ncmag) v(1)=v(3) do idm=1,ndmag t1=v(idm) magir(:,idm)=t1*rhoir(:) end do else magir(:,:)=0.d0 end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/rvfcross.f900000644000000000000000000000013213543334735015016 xustar0030 mtime=1569569245.778641211 30 atime=1569569242.023643609 30 ctime=1569569245.778641211 elk-6.3.2/src/rvfcross.f900000644002504400250440000000421513543334735017067 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rvfcross ! !INTERFACE: subroutine rvfcross(rvfmt1,rvfir1,rvfmt2,rvfir2,rvfmt3,rvfir3) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! rvfmt1 : first input muffin-tin field (in,real(npmtmax,natmtot,3)) ! rvfir1 : first input interstitial field (in,real(ngtot,3)) ! rvfmt2 : second input muffin-tin field (in,real(npmtmax,natmtot,3)) ! rvfir2 : second input interstitial field (in,real(ngtot,3)) ! rvfmt3 : output muffin-tin field (out,real(npmtmax,natmtot,3)) ! rvfir3 : output interstitial field (out,real(ngtot,3)) ! !DESCRIPTION: ! Given two real vector fields, ${\bf f}_1$ and ${\bf f}_2$, defined over the ! entire unit cell, this routine computes the local cross product ! $$ {\bf f}_3({\bf r})\equiv{\bf f}_1({\bf r})\times{\bf f}_2({\bf r}). $$ ! ! !REVISION HISTORY: ! Created February 2007 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rvfmt1(npmtmax,natmtot,3),rvfir1(ngtot,3) real(8), intent(in) :: rvfmt2(npmtmax,natmtot,3),rvfir2(ngtot,3) real(8), intent(out) :: rvfmt3(npmtmax,natmtot,3),rvfir3(ngtot,3) ! local variables integer is,ias,nr,nri,ir,i real(8) v1(3),v2(3),v3(3) ! allocatable arrays real(8), allocatable :: rvfmt4(:,:),rvfmt5(:,:) !---------------------------! ! muffin-tin region ! !---------------------------! allocate(rvfmt4(npmtmax,3),rvfmt5(npmtmax,3)) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) do i=1,3 call rbsht(nr,nri,rvfmt1(:,ias,i),rvfmt4(:,i)) call rbsht(nr,nri,rvfmt2(:,ias,i),rvfmt5(:,i)) end do do i=1,npmt(is) v1(:)=rvfmt4(i,:) v2(:)=rvfmt5(i,:) call r3cross(v1,v2,v3) rvfmt4(i,:)=v3(:) end do do i=1,3 call rfsht(nr,nri,rvfmt4(:,i),rvfmt3(:,ias,i)) end do end do deallocate(rvfmt4,rvfmt5) !-----------------------------! ! interstitial region ! !-----------------------------! do ir=1,ngtot v1(:)=rvfir1(ir,:) v2(:)=rvfir2(ir,:) call r3cross(v1,v2,v3) rvfir3(ir,:)=v3(:) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/eveqnfv.f900000644000000000000000000000013213543334735014621 xustar0030 mtime=1569569245.782641208 30 atime=1569569242.027643607 30 ctime=1569569245.782641208 elk-6.3.2/src/eveqnfv.f900000644002504400250440000000463713543334735016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: eveqnfv ! !INTERFACE: subroutine eveqnfv(nmatp,ngp,igpig,vpc,vgpc,apwalm,evalfv,evecfv) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! nmatp : order of overlap and Hamiltonian matrices (in,integer) ! ngp : number of G+p-vectors (in,integer) ! igpig : index from G+p-vectors to G-vectors (in,integer(ngkmax)) ! vpc : p-vector in Cartesian coordinates (in,real(3)) ! vgpc : G+p-vectors in Cartesian coordinates (in,real(3,ngkmax)) ! apwalm : APW matching coefficients ! (in,complex(ngkmax,apwordmax,lmmaxapw,natmtot)) ! evalfv : first-variational eigenvalues (out,real(nstfv)) ! evecfv : first-variational eigenvectors (out,complex(nmatmax,nstfv)) ! !DESCRIPTION: ! Solves the eigenvalue equation, ! $$ (H-\epsilon O)b=0, $$ ! for the all the first-variational states of the input $p$-point. ! ! !REVISION HISTORY: ! Created March 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nmatp,ngp,igpig(ngkmax) real(8), intent(in) :: vpc(3),vgpc(3,ngkmax) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) real(8), intent(out) :: evalfv(nstfv) complex(8), intent(out) :: evecfv(nmatmax,nstfv) ! local variables integer nthd real(8) ts0,ts1 ! allocatable arrays complex(8), allocatable :: h(:,:),o(:,:) !-----------------------------------------------! ! Hamiltonian and overlap matrix set up ! !-----------------------------------------------! call timesec(ts0) allocate(h(nmatp,nmatp),o(nmatp,nmatp)) call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION ! Hamiltonian call hmlfv(nmatp,ngp,igpig,vgpc,apwalm,h) !$OMP SECTION ! overlap call olpfv(nmatp,ngp,igpig,apwalm,o) !$OMP END PARALLEL SECTIONS call freethd(nthd) call timesec(ts1) !$OMP ATOMIC timemat=timemat+ts1-ts0 !---------------------------------------! ! solve the eigenvalue equation ! !---------------------------------------! if (tefvr) then ! system has inversion symmetry: use real symmetric matrix eigen solver call eveqnfvr(nmatp,ngp,vpc,h,o,evalfv,evecfv) else ! no inversion symmetry: use complex Hermitian matrix eigen solver call eveqnfvz(nmatp,h,o,evalfv,evecfv) end if deallocate(h,o) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/energynn.f900000644000000000000000000000013213543334735014774 xustar0030 mtime=1569569245.786641206 30 atime=1569569242.032643604 30 ctime=1569569245.786641206 elk-6.3.2/src/energynn.f900000644002504400250440000000226613543334735017051 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine energynn use modmain implicit none ! local variables integer is,ias,i integer nr,nri,ir real(8) t1 ! allocatable arrays complex(8), allocatable :: zvclmt(:,:),zvclir(:),zrhoir(:) allocate(zvclmt(npmtmax,natmtot)) ! generate the nuclear monopole potentials do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) zvclmt(1:npmt(is),ias)=0.d0 i=1 do ir=1,nri zvclmt(i,ias)=vcln(ir,is) i=i+lmmaxi end do do ir=nri+1,nr zvclmt(i,ias)=vcln(ir,is) i=i+lmmaxo end do end do allocate(zrhoir(ngtot),zvclir(ngtot)) ! set the interstitial density to zero zrhoir(:)=0.d0 ! solve the complex Poisson's equation call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gc,gclg, & ngvec,jlgrmt,ylmg,sfacg,zrhoir,npmtmax,zvclmt,zvclir) ! compute the nuclear-nuclear energy engynn=0.d0 do ias=1,natmtot is=idxis(ias) t1=(dble(zvclmt(1,ias))-vcln(1,is))*y00 engynn=engynn+spzn(is)*t1 end do engynn=0.5d0*engynn deallocate(zvclmt,zvclir,zrhoir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfinterp.f900000644000000000000000000000013213543334735015000 xustar0030 mtime=1569569245.791641203 30 atime=1569569242.036643601 30 ctime=1569569245.791641203 elk-6.3.2/src/rfinterp.f900000644002504400250440000000356713543334735017062 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rfinterp ! !INTERFACE: subroutine rfinterp(ni,xi,fi,no,xo,fo) ! !INPUT/OUTPUT PARAMETERS: ! ni : number of input points (in,integer) ! xi : input abscissa array (in,real(ni)) ! fi : input data array (in,real(ni) ! no : number of output points (in,integer) ! xo : output abscissa array (in,real(ni)) ! fo : output interpolated function (out,real(no)) ! !DESCRIPTION: ! Given a function defined on a set of input points, this routine uses a ! clamped cubic spline to interpolate the function on a different set of ! points. See routine {\tt spline}. ! ! !REVISION HISTORY: ! Created January 2005 (JKD) ! Arguments changed, April 2016 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ni real(8), intent(in) :: xi(ni),fi(ni) integer, intent(in) :: no real(8), intent(in) :: xo(no) real(8), intent(out) :: fo(no) ! local variables integer i,j,k,l real(8) x,dx ! automatic arrays real(8) cf(3,ni) if (ni.le.0) then write(*,*) write(*,'("Error(rfinterp): invalid number of input points : ",I8)') ni write(*,*) stop end if if (no.le.0) then write(*,*) write(*,'("Error(rfinterp): invalid number of output points : ",I8)') no write(*,*) stop end if if (ni.eq.1) then fo(:)=fi(1) return end if ! compute the spline coefficients call spline(ni,xi,fi,cf) ! evaluate spline at output points i=1 do l=1,no x=xo(l) if (i.ge.ni) i=1 if (x.lt.xi(i)) goto 10 if (x.le.xi(i+1)) goto 30 ! binary search 10 continue i=1 j=ni 20 continue k=(i+j)/2 if (x.lt.xi(k)) then j=k else i=k end if if (j.gt.i+1) goto 20 30 continue dx=x-xi(i) fo(l)=fi(i)+dx*(cf(1,i)+dx*(cf(2,i)+dx*cf(3,i))) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfplot.f900000644000000000000000000000012613543334735014460 xustar0028 mtime=1569569245.7956412 30 atime=1569569242.040643598 28 ctime=1569569245.7956412 elk-6.3.2/src/rfplot.f900000644002504400250440000000760513543334735016534 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfplot(np,vpl,rfmt,rfir,fp) use modmain use modomp implicit none ! arguments integer, intent(in) :: np real(8), intent(in) :: vpl(3,np) real(8), intent(in) :: rfmt(npmtmax,natmtot),rfir(ngtot) real(8), intent(out) :: fp(np) ! local variables integer ias,is,ip,nthd ! allocatable arrays real(8), allocatable :: rfmt1(:,:,:) complex(8), allocatable :: zfft(:) ! unpack the muffin-tin function allocate(rfmt1(lmmaxo,nrmtmax,natmtot)) call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call rfmtpack(.false.,nrmt(is),nrmti(is),rfmt(:,ias),rfmt1(:,:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) ! Fourier transform rfir to G-space allocate(zfft(ngtot)) zfft(:)=rfir(:) call zfftifc(3,ngridg,-1,zfft) ! begin loop over all points call holdthd(np,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ip=1,np call rfip(ip) end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(rfmt1,zfft) return contains subroutine rfip(ip) implicit none ! arguments integer, intent(in) :: ip ! local variables integer is,ia,ias,nr,nri integer ir0,ir,lmax,l,m,lm integer ig,ifg,i1,i2,i3,i,j real(8) rmt2,r,sum,ya(4),t1 real(8) v1(3),v2(3),v3(3),v4(3),v5(3) ! automatic arrays real(8) rlm(lmmaxo) v2(:)=vpl(:,ip) call r3frac(epslat,v2) ! convert point to Cartesian coordinates call r3mv(avec,v2,v1) ! check if point is in a muffin-tin do is=1,nspecies nr=nrmt(is) nri=nrmti(is) rmt2=rmt(is)**2 do ia=1,natoms(is) ias=idxas(ia,is) v2(:)=v1(:)-atposc(:,ia,is) do i1=-1,1 v3(:)=v2(:)+dble(i1)*avec(:,1) do i2=-1,1 v4(:)=v3(:)+dble(i2)*avec(:,2) do i3=-1,1 v5(:)=v4(:)+dble(i3)*avec(:,3) t1=v5(1)**2+v5(2)**2+v5(3)**2 if (t1.lt.rmt2) then r=sqrt(t1) call genrlmv(lmaxo,v5,rlm) do ir=1,nr if (rsp(ir,is).ge.r) then if (ir.le.3) then ir0=1 else if (ir.gt.nr-2) then ir0=nr-3 else ir0=ir-2 end if r=max(r,rsp(1,is)) if (ir0.le.nri) then lmax=lmaxi else lmax=lmaxo end if sum=0.d0 lm=0 do l=0,lmax do m=-l,l lm=lm+1 do j=1,4 i=ir0+j-1 ya(j)=rfmt1(lm,i,ias) end do t1=poly4(rsp(ir0,is),ya,r) sum=sum+t1*rlm(lm) end do end do goto 10 end if end do end if end do end do end do end do end do ! otherwise use direct Fourier transform of interstitial function sum=0.d0 do ig=1,ngvec ifg=igfft(ig) t1=vgc(1,ig)*v1(1)+vgc(2,ig)*v1(2)+vgc(3,ig)*v1(3) sum=sum+dble(zfft(ifg)*cmplx(cos(t1),sin(t1),8)) end do 10 continue fp(ip)=sum return end subroutine real(8) function poly4(xa,ya,x) implicit none ! arguments real(8), intent(in) :: xa(4),ya(4),x ! local variables real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) c1,c2,c3,t0,t1,t2,t3,t4,t5,t6 ! evaluate the polynomial coefficients x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 c3=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 c2=t1*(t5-t4)+t2*(t6-t5)+t3*(t4-t6) c1=t1*(x2*t4-x1*t5)+t2*(x3*t5-x2*t6)+t3*(x1*t6-x3*t4) t1=x-x0 ! evaluate the polynomial poly4=y0+t0*t1*(c1+t1*(c2+c3*t1)) return end function end subroutine elk-6.3.2/src/PaxHeaders.21352/geomopt.f900000644000000000000000000000013213543334735014621 xustar0030 mtime=1569569245.800641197 30 atime=1569569242.044643596 30 ctime=1569569245.800641197 elk-6.3.2/src/geomopt.f900000644002504400250440000001367213543334735016701 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine geomopt use modmain use modmpi use modstore implicit none ! local variables integer istp,jstp,i real(8) ds ! initialise global variables (and the muffin-tin radii) call init0 call init1 ! smooth the exchange-correlation potentials and fields msmooth_=msmooth msmooth=4 ! store orginal volume omega_=omega ! atomic forces are required tforce=.true. if (task.eq.3) then trdstate=.true. else trdstate=.false. end if ! initial atomic step sizes if (allocated(tauatp)) deallocate(tauatp) allocate(tauatp(natmtot)) tauatp(:)=tau0atp ! initialise the previous total force on each atom if (allocated(forcetotp)) deallocate(forcetotp) allocate(forcetotp(3,natmtot)) forcetotp(:,:)=0.d0 ! initial lattice optimisation step size taulatv(:)=tau0latv ! initialise previous stress tensor stressp(:)=0.d0 if (mp_mpi) then ! open TOTENERGY.OUT open(71,file='TOTENERGY_OPT.OUT',form='FORMATTED') ! open FORCEMAX.OUT open(72,file='FORCEMAX.OUT',form='FORMATTED') ! open GEOMETRY_OPT.OUT open(73,file='GEOMETRY_OPT.OUT',form='FORMATTED') ! open IADIST_OPT.OUT open(74,file='IADIST_OPT.OUT',form='FORMATTED') ! open FORCES_OPT.OUT open(75,file='FORCES_OPT.OUT',form='FORMATTED') ! open MOMENTM_OPT.OUT if (spinpol) then open(78,file='MOMENTM_OPT.OUT',form='FORMATTED') end if ! open STRESSMAX.OUT and STRESS_OPT.OUT if required if (latvopt.ne.0) then open(86,file='STRESSMAX.OUT',form='FORMATTED') open(87,file='STRESS_OPT.OUT',form='FORMATTED') open(88,file='OMEGA_OPT.OUT',form='FORMATTED') end if end if if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) do istp=1,maxlatvstp do jstp=1,maxatpstp if (atpopt.eq.0) exit if (mp_mpi) then write(*,'("Info(geomopt): Atomic position optimisation step : ",I6)') jstp end if ! ground-state and forces calculation call gndstate ! check for stop signal if (tstop) goto 10 ! subsequent calculations will read in the potential from STATE.OUT trdstate=.true. ! update the atomic positions call atpstep ! write total energy, forces, atomic positions, interatomic distances to file if (mp_mpi) then write(71,'(G22.12)') engytot flush(71) write(72,'(G18.10)') forcemax flush(72) write(73,*); write(73,*) write(73,'("! Atomic position optimisation step : ",I6)') jstp call writegeom(73) flush(73) write(74,*); write(74,*) write(74,'("Atomic position optimisation step : ",I6)') jstp call writeiad(74) flush(74) write(75,*); write(75,*) write(75,'("Atomic position optimisation step : ",I6)') jstp call writeforces(75) write(75,*) write(75,'("Maximum force magnitude over all atoms (target) : ",G18.10,& &" (",G18.10,")")') forcemax,epsforce flush(75) if (spinpol) then write(78,'(G22.12)') momtotm flush(78) end if end if ! broadcast forcemax from master process to all other processes call mpi_bcast(forcemax,1,mpi_double_precision,0,mpicom,ierror) ! check force convergence if (forcemax.le.epsforce) then if (mp_mpi) then write(75,*) write(75,'("Force convergence target achieved")') end if exit end if if (mp_mpi.and.(jstp.eq.maxatpstp)) then write(*,*) write(*,'("Warning(geomopt): atomic position optimisation failed to & &converge in ",I6," steps")') maxatpstp end if ! store the current forces array forcetotp(:,:)=forcetot(:,:) ! end loop over atomic position optimisation end do ! exit lattice optimisation loop if required if (latvopt.eq.0) exit if (mp_mpi) then write(*,'("Info(geomopt): Lattice optimisation step : ",I6)') istp end if ! generate the stress tensor call genstress ! take average of current and previous stress tensors stress(:)=0.5d0*(stress(:)+stressp(:)) ! check for stop signal if (tstop) goto 10 ! update the lattice vectors call latvstep ! write stress tensor components and maximum magnitude to file if (mp_mpi) then write(71,'(G22.12)') engytot flush(71) write(73,*); write(73,*) write(73,'("! Lattice optimisation step : ",I6)') istp call writegeom(73) flush(73) write(74,*); write(74,*) write(74,'("Lattice optimisation step : ",I6)') istp call writeiad(74) flush(74) if (spinpol) then write(78,'(G22.12)') momtotm flush(78) end if write(86,'(G18.10)') stressmax flush(86) write(87,*) write(87,'("Lattice optimisation step : ",I6)') istp write(87,'("Derivative of total energy w.r.t. strain tensors :")') do i=1,nstrain write(87,'(G18.10)') stress(i) end do flush(87) write(88,'(G18.10)') omega flush(88) end if ! check for stress convergence if (latvopt.eq.1) then ds=sum(abs(stress(:))) else ! stress may be non-zero because of volume constraint; check change in stress ! tensor instead ds=sum(abs(stress(:)-stressp(:))) end if ! broadcase ds from master process to all other processes call mpi_bcast(ds,1,mpi_double_precision,0,mpicom,ierror) if ((istp.ge.3).and.(ds.le.epsstress*tau0latv)) then if (mp_mpi) then write(87,*) write(87,'("Stress convergence target achieved")') end if exit end if if (mp_mpi.and.(istp.eq.maxlatvstp)) then write(*,*) write(*,'("Warning(geomopt): lattice optimisation failed to converge in ",& &I6," steps")') maxlatvstp end if stressp(1:nstrain)=stress(1:nstrain) ! end loop over lattice optimisation end do 10 continue if (mp_mpi) then close(71); close(72); close(73); close(74); close(75) if (spinpol) close(78) if (latvopt.ne.0) then close(86); close(87); close(88) end if end if ! ground-state should be run again after lattice optimisation if (latvopt.ne.0) call gndstate ! restore original parameters msmooth=msmooth_ return end subroutine elk-6.3.2/src/PaxHeaders.21352/ylmroty.f900000644000000000000000000000013213543334735014666 xustar0030 mtime=1569569245.805641194 30 atime=1569569242.049643593 30 ctime=1569569245.805641194 elk-6.3.2/src/ylmroty.f900000644002504400250440000000422713543334735016742 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: ylmroty ! !INTERFACE: subroutine ylmroty(beta,lmax,ld,dy) ! !INPUT/OUTPUT PARAMETERS: ! beta : rotation angle about y-axis (in,real) ! lmax : maximum angular momentum (in,integer) ! ld : leading dimension (in,integer) ! dy : rotation matrix for complex spherical harmonics (out,real(ld,*)) ! !DESCRIPTION: ! Returns the rotation matrix in the basis of complex spherical harmonics for ! a rotation of angle $\beta$ about the $y$-axis. This matrix is real and is ! given by the formula ! \begin{align*} ! d^l_{m_1m_2}(\beta)=&[(l+m_1)!(l-m_1)!(l+m_2)!(l-m_2)!]^{1/2}\\ ! &\times\sum_k(-1)^k\frac{\left(\cos\frac{\beta}{2}\right)^{2(l-k)-m_2+m_1} ! \left(\sin\frac{\beta}{2}\right)^{2k+m_2-m_1}} ! {k!(l+m_1-k)!(l-m_2-k)!(m_2-m_1+k)!}, ! \end{align*} ! where $k$ runs through all integer values for which the factorials exist. ! ! !REVISION HISTORY: ! Created December 2008 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: beta integer, intent(in) :: lmax,ld real(8), intent(out) :: dy(ld,*) ! local variables integer j,k,l,m1,m2,lm1,lm2 real(8) cb,sb,sum,t1,t2 ! external functions real(8) factnm external factnm cb=cos(beta/2.d0) sb=sin(beta/2.d0) lm1=0 do l=0,lmax ! generate rotation operator for m-components of current l do m1=-l,l lm1=lm1+1 lm2=l**2 do m2=-l,l lm2=lm2+1 sum=0.d0 do k=0,min(l+m1,l-m2) if (((l+m1-k).ge.0).and.((l-m2-k).ge.0).and.((m2-m1+k).ge.0)) then j=2*(l-k)+m1-m2 if (j.eq.0) then t1=1.d0 else t1=cb**j end if j=2*k+m2-m1 if (j.ne.0) t1=t1*sb**j t2=t1/(factnm(k,1)*factnm(l+m1-k,1)*factnm(l-m2-k,1) & *factnm(m2-m1+k,1)) if (mod(k,2).ne.0) t2=-t2 sum=sum+t2 end if end do t1=sqrt(factnm(l+m1,1)*factnm(l-m1,1)*factnm(l+m2,1)*factnm(l-m2,1)) dy(lm1,lm2)=t1*sum end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/ylmrot.f900000644000000000000000000000013213543334735014475 xustar0030 mtime=1569569245.809641191 30 atime=1569569242.054643589 30 ctime=1569569245.809641191 elk-6.3.2/src/ylmrot.f900000644002504400250440000000410113543334735016540 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: ylmrot ! !INTERFACE: subroutine ylmrot(p,ang,lmax,ld,d) ! !INPUT/OUTPUT PARAMETERS: ! p : if p=-1 then the rotation matrix is improper (in,integer) ! ang : Euler angles; alpha, beta, gamma (in,real(3)) ! lmax : maximum angular momentum (in,integer) ! ld : leading dimension (in,integer) ! d : complex spherical harmonic rotation matrix (out,complex(ld,*)) ! !DESCRIPTION: ! Returns the rotation matrix in the basis of complex spherical harmonics ! given the three Euler angles, $(\alpha,\beta,\gamma)$, and the parity, $p$, ! of the rotation. The matrix is given by the formula ! $$ D^l_{m_1m_2}(\alpha,\beta,\gamma)=d^l_{m_1m_2}(\beta) ! e^{-i(m_1\alpha+m_2\gamma)}, $$ ! where $d$ is the rotation matrix about the $y$-axis. For improper rotations, ! i.e. those which are a combination of a rotation and inversion, $D$ is ! modified with $D^l_{m_1m_2}\rightarrow(-1)^l D^l_{m_1m_2}$. See the routines ! {\tt roteuler} and {\tt ylmroty}. ! ! !REVISION HISTORY: ! Created December 2008 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: p real(8), intent(in) :: ang(3) integer, intent(in) :: lmax,ld complex(8), intent(out) :: d(ld,*) ! local variables integer l,m1,m2 integer lm1,lm2,n real(8) t1 ! automatic arrays real(8) dy(ld,ld) if (lmax.lt.0) then write(*,*) write(*,'("Error(ylmrot): lmax < 0 : ",I8)') lmax write(*,*) stop end if ! generate the rotation matrix about the y-axis call ylmroty(ang(2),lmax,ld,dy) ! apply inversion if required if (p.eq.-1) then do l=1,lmax,2 lm1=l**2+1 lm2=lm1+2*l dy(lm1:lm2,lm1:lm2)=-dy(lm1:lm2,lm1:lm2) end do end if ! rotation by alpha and gamma do l=0,lmax n=l*(l+1)+1 do m1=-l,l lm1=n+m1 do m2=-l,l lm2=n+m2 t1=-dble(m1)*ang(1)-dble(m2)*ang(3) d(lm1,lm2)=dy(lm1,lm2)*cmplx(cos(t1),sin(t1),8) end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gcd.f900000644000000000000000000000013213543334735013704 xustar0030 mtime=1569569245.813641189 30 atime=1569569242.059643586 30 ctime=1569569245.813641189 elk-6.3.2/src/gcd.f900000644002504400250440000000157213543334735015760 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: gcd ! !INTERFACE: integer function gcd(x,y) ! !INPUT/OUTPUT PARAMETERS: ! x : first integer (in,integer) ! y : second integer (in,integer) ! !DESCRIPTION: ! Computes the greatest common divisor (GCD) of two integers using Euclid's ! algorithm. ! ! !REVISION HISTORY: ! Created September 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: x,y ! local variables integer a,b,c if ((x.le.0).or.(y.le.0)) then write(*,*) write(*,'("Error(gcd): x <= 0 or y <= 0 : ",2I8)') x,y write(*,*) stop end if if (x.ge.y) then a=x b=y else a=y b=x end if 10 continue c=mod(a,b) a=b b=c if (c.gt.0) goto 10 gcd=a return end function !EOC elk-6.3.2/src/PaxHeaders.21352/sdelta.f900000644000000000000000000000013213543334735014423 xustar0030 mtime=1569569245.818641185 30 atime=1569569242.063643584 30 ctime=1569569245.818641185 elk-6.3.2/src/sdelta.f900000644002504400250440000000517013543334735016475 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sdelta ! !INTERFACE: real(8) function sdelta(stype,x) ! !INPUT/OUTPUT PARAMETERS: ! stype : smearing type (in,integer) ! x : real argument (in,real) ! !DESCRIPTION: ! Returns a normalised smooth approximation to the Dirac delta function. These ! functions are defined such that ! $$ \int\tilde{\delta}(x)dx=1. $$ ! The effective width, $w$, of the delta function may be varied by using the ! normalising transformation ! $$ \tilde{\delta}_w(x)\equiv\frac{\tilde{\delta}(x/w)}{w}. $$ ! Currently implimented are: ! \begin{list}{}{\itemsep -2pt} ! \item[0.] Gaussian ! \item[1.] Methfessel-Paxton order 1 ! \item[2.] Methfessel-Paxton order 2 ! \item[3.] Fermi-Dirac ! \item[4.] Square-wave impulse ! \item[5.] Lorentzian ! \end{list} ! See routines {\tt stheta}, {\tt sdelta\_mp}, {\tt sdelta\_fd} and ! {\tt sdelta\_sq}. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: stype real(8), intent(in) :: x ! external functions real(8) sdelta_mp,sdelta_fd,sdelta_sq,sdelta_lr external sdelta_mp,sdelta_fd,sdelta_sq,sdelta_lr select case(stype) case(0) sdelta=sdelta_mp(0,x) return case(1) sdelta=sdelta_mp(1,x) return case(2) sdelta=sdelta_mp(2,x) return case(3) sdelta=sdelta_fd(x) return case(4) sdelta=sdelta_sq(x) case(5) sdelta=sdelta_lr(x) case default write(*,*) write(*,'("Error(sdelta): sytpe not defined : ",I8)') stype write(*,*) stop end select end function !EOC !BOP ! !ROUTINE: getsdata ! !INTERFACE: subroutine getsdata(stype,sdescr) ! !INPUT/OUTPUT PARAMETERS: ! stype : smearing type (in,integer) ! sdescr : smearing scheme description (out,character(*)) ! !DESCRIPTION: ! Returns a description of the smearing scheme as string {\tt sdescr} up to ! 256 characters long. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: stype character(*), intent(out) :: sdescr select case(stype) case(0) sdescr='Gaussian' return case(1) sdescr='Methfessel-Paxton order 1, Phys. Rev. B 40, 3616 (1989)' return case(2) sdescr='Methfessel-Paxton order 2, Phys. Rev. B 40, 3616 (1989)' return case(3) sdescr='Fermi-Dirac' return case(4) sdescr='Square-wave impulse' case(5) sdescr='Lorentzian' case default write(*,*) write(*,'("Error(getsdata): sytpe not defined : ",I8)') stype write(*,*) stop end select end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/stheta.f900000644000000000000000000000013213543334735014437 xustar0030 mtime=1569569245.822641183 30 atime=1569569242.067643581 30 ctime=1569569245.822641183 elk-6.3.2/src/stheta.f900000644002504400250440000000235113543334735016507 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: stheta ! !INTERFACE: real(8) function stheta(stype,x) ! !INPUT/OUTPUT PARAMETERS: ! stype : smearing type (in,integer) ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the Heaviside step function corresponding to the smooth ! approximation to the Dirac delta function: ! $$ \tilde\Theta(x)=\int_{-\infty}^x dt\,\tilde\delta(t). $$ ! See function {\tt sdelta} for details. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: stype real(8), intent(in) :: x ! external functions real(8) stheta_mp,stheta_fd,stheta_sq,stheta_lr external stheta_mp,stheta_fd,stheta_sq,stheta_lr select case(stype) case(0) stheta=stheta_mp(0,x) return case(1) stheta=stheta_mp(1,x) return case(2) stheta=stheta_mp(2,x) return case(3) stheta=stheta_fd(x) return case(4) stheta=stheta_sq(x) case(5) stheta=stheta_lr(x) case default write(*,*) write(*,'("Error(stheta): sytpe not defined : ",I8)') stype write(*,*) stop end select end function !EOC elk-6.3.2/src/PaxHeaders.21352/sdelta_mp.f900000644000000000000000000000013013543334735015115 xustar0029 mtime=1569569245.82764118 30 atime=1569569242.072643578 29 ctime=1569569245.82764118 elk-6.3.2/src/sdelta_mp.f900000644002504400250440000000341213543334735017166 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sdelta_mp ! !INTERFACE: real(8) function sdelta_mp(n,x) ! !INPUT/OUTPUT PARAMETERS: ! n : order (in,integer) ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the smooth approximation to the Dirac delta function of order $N$ ! given by Methfessel and Paxton, {\it Phys. Rev. B} {\bf 40}, 3616 (1989), ! $$ \tilde\delta(x)=\sum_{i=0}^N \frac{(-1)^i}{i!4^n\sqrt\pi} H_{2i}(x) ! e^{-x^2},$$ ! where $H_j$ is the $j$th-order Hermite polynomial. This function has the ! property ! $$ \int_{-\infty}^{\infty}\tilde\delta(x)P(x)=P(0), $$ ! where $P(x)$ is any polynomial of degree $2N+1$ or less. The case $N=0$ ! corresponds to Gaussian smearing. This procedure is numerically stable ! and accurate to near machine precision for $N\le 10$. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x ! local variables integer i real(8), parameter :: sqpi=1.7724538509055160273d0 real(8) sum,t1 ! external functions real(8) factnm,hermite external factnm,hermite if (n.eq.0) then sdelta_mp=exp(-x**2)/sqpi return end if if (n.lt.0) then write(*,*) write(*,'("Error(sdelta_mp): n < 0 : ",I8)') n write(*,*) stop end if if (n.gt.10) then write(*,*) write(*,'("Error(sdelta_mp): n out of range : ",I8)') n write(*,*) stop end if if (abs(x).gt.12.d0) then sdelta_mp=0.d0 return end if sum=0.d0 do i=0,n t1=1.d0/(factnm(i,1)*dble(4**i)*sqpi) if (mod(i,2).ne.0) t1=-t1 sum=sum+t1*hermite(2*i,x)*exp(-x**2) end do sdelta_mp=sum return end function !EOC elk-6.3.2/src/PaxHeaders.21352/stheta_mp.f900000644000000000000000000000013213543334735015133 xustar0030 mtime=1569569245.831641177 30 atime=1569569242.076643575 30 ctime=1569569245.831641177 elk-6.3.2/src/stheta_mp.f900000644002504400250440000000331413543334735017203 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: stheta_mp ! !INTERFACE: real(8) function stheta_mp(n,x) ! !INPUT/OUTPUT PARAMETERS: ! n : order (in,integer) ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the smooth approximation to the Heaviside step function of order ! $N$ given by Methfessel and Paxton, {\it Phys. Rev. B} {\bf 40}, 3616 ! (1989), ! $$ \tilde\Theta(x)=1-S_N(x) $$ ! where ! \begin{align*} ! S_N(x)&=S_0(x)+\sum_{i=1}^N \frac{(-1)^i}{i!4^n\sqrt\pi} H_{2i-1}(x) ! e^{-x^2},\\ ! S_0(x)&=\frac{1}{2}(1-{\rm erf}(x)) ! \end{align*} ! and $H_j$ is the $j$th-order Hermite polynomial. This procedure is ! numerically stable and accurate to near machine precision for $N\le 10$. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: x ! local variables integer i real(8), parameter :: sqpi=1.7724538509055160273d0 real(8) sum,t1 ! external functions real(8) factnm,hermite,erf external factnm,hermite,erf if (n.lt.0) then write(*,*) write(*,'("Error(stheta_mp): n < 0 : ",I8)') n write(*,*) stop end if if (n.gt.10) then write(*,*) write(*,'("Error(stheta_mp): n out of range : ",I8)') n write(*,*) stop end if if (x.lt.-12.d0) then stheta_mp=0.d0 return end if if (x.gt.12.d0) then stheta_mp=1.d0 return end if sum=0.5d0*(1.d0-erf(x)) do i=1,n t1=1.d0/(factnm(i,1)*dble(4**i)*sqpi) if (mod(i,2).ne.0) t1=-t1 sum=sum+t1*hermite(2*i-1,x)*exp(-x**2) end do stheta_mp=1.d0-sum return end function !EOC elk-6.3.2/src/PaxHeaders.21352/sdelta_fd.f900000644000000000000000000000013213543334735015074 xustar0030 mtime=1569569245.835641175 30 atime=1569569242.080643573 30 ctime=1569569245.835641175 elk-6.3.2/src/sdelta_fd.f900000644002504400250440000000135013543334735017142 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sdelta_fd ! !INTERFACE: real(8) function sdelta_fd(x) ! !INPUT/OUTPUT PARAMETERS: ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the Fermi-Dirac approximation to the Dirac delta function ! $$ \tilde\delta(x)=\frac{e^{-x}}{(1+e^{-x})^2}. $$ ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: x ! local variables real(8) t1 if (abs(x).gt.50.d0) then sdelta_fd=0.d0 return end if t1=exp(-x) sdelta_fd=t1/((1.d0+t1)**2) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/stheta_fd.f900000644000000000000000000000013113543334735015107 xustar0030 mtime=1569569245.840641171 29 atime=1569569242.08464357 30 ctime=1569569245.840641171 elk-6.3.2/src/stheta_fd.f900000644002504400250440000000135613543334735017164 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: stheta_fd ! !INTERFACE: real(8) function stheta_fd(x) ! !INPUT/OUTPUT PARAMETERS: ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the Fermi-Dirac approximation to the Heaviside step function ! $$ \tilde\Theta(x)=\frac{1}{1+e^{-x}}. $$ ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: x if (x.gt.50.d0) then stheta_fd=1.d0 return end if if (x.lt.-50.d0) then stheta_fd=0.d0 return end if stheta_fd=1.d0/(1.d0+exp(-x)) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/sdelta_sq.f900000644000000000000000000000013213543334735015126 xustar0030 mtime=1569569245.844641169 30 atime=1569569242.089643567 30 ctime=1569569245.844641169 elk-6.3.2/src/sdelta_sq.f900000644002504400250440000000136413543334735017201 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: sdelta_sq ! !INTERFACE: real(8) function sdelta_sq(x) ! !INPUT/OUTPUT PARAMETERS: ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the square-wave pulse approximation to the Dirac delta function ! $$ \tilde\delta(x)=\left\{\begin{array}{ll} ! 1 & \quad |x|\le 1/2 \\ ! 0 & \quad |x|>1/2 \end{array}\right. $$ ! ! !REVISION HISTORY: ! Created July 2008 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: x if (abs(x).le.0.5d0) then sdelta_sq=1.d0 else sdelta_sq=0.d0 end if return end function !EOC elk-6.3.2/src/PaxHeaders.21352/stheta_sq.f900000644000000000000000000000013213543334735015142 xustar0030 mtime=1569569245.849641166 30 atime=1569569242.093643565 30 ctime=1569569245.849641166 elk-6.3.2/src/stheta_sq.f900000644002504400250440000000157613543334735017222 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: stheta_sq ! !INTERFACE: real(8) function stheta_sq(x) ! !INPUT/OUTPUT PARAMETERS: ! x : real argument (in,real) ! !DESCRIPTION: ! Returns the Heaviside step function corresponding to the square-wave pulse ! approximation to the Dirac delta function ! $$ \tilde\Theta(x)=\left\{\begin{array}{ll} ! 0 & \quad x \le -1/2 \\ ! x+1/2 & \quad -1/2 < x < 1/2 \\ ! 1 & \quad x\ge 1 \end{array}\right. $$ ! ! !REVISION HISTORY: ! Created July 2008 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: x if (x.le.-0.5d0) then stheta_sq=0.d0 return end if if (x.lt.0.5d0) then stheta_sq=x+0.5d0 else stheta_sq=1.d0 end if return end function !EOC elk-6.3.2/src/PaxHeaders.21352/sdelta_lr.f900000644000000000000000000000013213543334735015120 xustar0030 mtime=1569569245.853641163 30 atime=1569569242.097643562 30 ctime=1569569245.853641163 elk-6.3.2/src/sdelta_lr.f900000644002504400250440000000062613543334735017173 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. real(8) function sdelta_lr(x) implicit none ! arguments real(8), intent(in) :: x ! local variables real(8), parameter :: twopi=6.2831853071795864769d0 sdelta_lr=1.d0/(twopi*(x**2+0.25d0)) return end function elk-6.3.2/src/PaxHeaders.21352/stheta_lr.f900000644000000000000000000000013013543334735015132 xustar0029 mtime=1569569245.85764116 30 atime=1569569242.101643559 29 ctime=1569569245.85764116 elk-6.3.2/src/stheta_lr.f900000644002504400250440000000030713543334735017203 0ustar00dewhurstdewhurst00000000000000 real(8) function stheta_lr(x) implicit none ! arguments real(8), intent(in) :: x ! local variables real(8), parameter :: pi=3.1415926535897932385d0 stheta_lr=0.5d0+atan(2*x)/pi return end function elk-6.3.2/src/PaxHeaders.21352/mossbauer.f900000644000000000000000000000013213543334735015147 xustar0030 mtime=1569569245.862641157 30 atime=1569569242.105643557 30 ctime=1569569245.862641157 elk-6.3.2/src/mossbauer.f900000644002504400250440000001124513543334735017221 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: mossbauer ! !INTERFACE: subroutine mossbauer ! !USES: use modmain use modmpi use modtest ! !DESCRIPTION: ! Computes the contact charge density and contact magnetic hyperfine field for ! each atom and outputs the data to the file {\tt MOSSBAUER.OUT}. See ! S. Bl\"{u}gel, H. Akai, R. Zeller, and P. H. Dederichs, {\it Phys. Rev. B} ! {\bf 35}, 3271 (1987). See also {\tt radnucl}. ! ! !REVISION HISTORY: ! Created May 2004 (JKD) ! Contact hyperfine field evaluated at the nuclear radius rather than averaged ! over the Thomson sphere, June 2019 (JKD) ! Added spin and orbital dipole terms, July 2019 (JKD) !EOP !BOC implicit none ! local variables integer ik,idm integer is,ia,ias integer nr,nri,nrn real(8) mc(3),bc(3),bd(3) real(8) rho0,rhon,rhoa real(8) cb,t1 ! allocatable arrays real(8), allocatable :: fr(:) ! spin dipole field prefactor cb=gfacte/(4.d0*solsc) ! initialise universal variables call init0 call init1 ! read density and potentials from file call readstate ! generate the core wavefunctions and densities call gencore ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! calculate the density call rhomag ! allocate local arrays allocate(fr(nrmtmax)) if (mp_mpi) then open(50,file='MOSSBAUER.OUT',form='FORMATTED') end if ! loop over species do is=1,nspecies nr=nrmt(is) nri=nrmti(is) nrn=nrnucl(is) ! loop over atoms do ia=1,natoms(is) ias=idxas(ia,is) if (mp_mpi) then write(50,*) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),& ia write(50,*) write(50,'(" approximate nuclear radius : ",G18.10)') rnucl(is) write(50,'(" number of mesh points to nuclear radius : ",I6)') nrn end if !--------------------------------! ! contact charge density ! !--------------------------------! ! extract the l=m=0 component of the muffin-tin density call rfmtlm(1,nr,nri,rhomt(:,ias),fr) rho0=fr(1)*y00 rhon=fr(nrn)*y00 t1=dot_product(wrmt(1:nrn,is),fr(1:nrn)) rhoa=fourpi*y00*t1/volnucl(is) if (mp_mpi) then write(50,*) write(50,'(" density at nuclear center : ",G18.10)') rho0 write(50,'(" density at nuclear surface : ",G18.10)') rhon write(50,'(" average contact charge density : ",G18.10)') rhoa end if !----------------------------------! ! magnetic hyperfine field ! !----------------------------------! if (spinpol) then ! contact term do idm=1,ndmag ! extract the l=m=0 component of the muffin-tin magnetisation call rfmtlm(1,nr,nri,magmt(:,ias,idm),fr) t1=dot_product(wrmt(1:nrn,is),fr(1:nrn)) mc(idm)=fourpi*y00*t1/volnucl(is) end do t1=-8.d0*pi*cb/(3.d0*solsc) bc(1:ndmag)=t1*mc(1:ndmag) if (mp_mpi) then write(50,*) write(50,'(" contact magnetic moment (mu_B) : ",3G18.10)') mc(1:ndmag) write(50,'(" contact field : ",3G18.10)') bc(1:ndmag) write(50,'(" tesla : ",3G18.10)') b_si*bc(1:ndmag) end if ! spin and orbital dipole term if (tbdip) then ! calculate the dipole magnetic field call bdipole ! extract the l=m=0 component of the dipole field do idm=1,3 call rfmtlm(1,nr,nri,bdmt(:,ias,idm),fr) t1=dot_product(wrmt(1:nrn,is),fr(1:nrn)) bd(idm)=fourpi*y00*t1/(volnucl(is)*solsc) end do if (mp_mpi) then write(50,*) if (tcden) then write(50,'(" spin and orbital dipole field : ",3G18.10)') bd else write(50,'(" spin dipole field : ",3G18.10)') bd end if write(50,'(" tesla : ",3G18.10)') b_si*bd end if ! write to test file if required call writetest(110,'hyperfine field',nv=3,tol=1.d-4,rva=bd) end if end if end do end do if (mp_mpi) then if (spinpol.and.tbdip) then write(50,*) write(50,'("Note that the contact term is implicitly included in the & &spin")') write(50,'("dipole field but may not match exactly with the directly")') write(50,'("calculated value.")') end if close(50) write(*,*) write(*,'("Info(mossbauer):")') write(*,'(" Mossbauer parameters written to MOSSBAUER.OUT")') end if deallocate(fr) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gentpmae.f900000644000000000000000000000013213543334735014747 xustar0030 mtime=1569569245.867641154 30 atime=1569569242.110643554 30 ctime=1569569245.867641154 elk-6.3.2/src/gentpmae.f900000644002504400250440000000356213543334735017024 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gentpmae use modmain implicit none ! local variables integer na,n,i1,i2,i3,i integer isym,lspl real(8) v1(3),v2(3),t1 ! allocatable arrays real(8), allocatable :: vp(:,:) if (allocated(tpmae)) deallocate(tpmae) select case(npmae0) case(4:) ! distribute points evenly on a sphere npmae=npmae0 allocate(tpmae(2,npmae)) call sphcover(npmae,tpmae) case(-4:-1) ! use symmetry reduced cardinal directions na=abs(npmae0) n=(2*na+1)**3 allocate(vp(3,n)) npmae=0 do i1=-na,na v1(1)=dble(i1) do i2=-na,na v1(2)=dble(i2) do i3=-na,na v1(3)=dble(i3) if ((i1.eq.0).and.(i2.eq.0).and.(i3.eq.0)) cycle do isym=1,nsymcrys lspl=lsplsymc(isym) v2(:)=symlat(:,1,lspl)*v1(1) & +symlat(:,2,lspl)*v1(2) & +symlat(:,3,lspl)*v1(3) do i=1,npmae t1=abs(vp(1,i)-v2(1))+abs(vp(2,i)-v2(2))+abs(vp(3,i)-v2(3)) if (t1.lt.epslat) goto 10 end do end do npmae=npmae+1 vp(:,npmae)=v1(:) 10 continue end do end do end do ! convert vectors to spherical coordinates allocate(tpmae(2,npmae)) do i=1,npmae call sphcrd(vp(:,i),t1,tpmae(:,i)) end do deallocate(vp) case(2) ! use x- and z-directions npmae=2 allocate(tpmae(2,npmae)) tpmae(1,1)=pi/2.d0 tpmae(2,1)=0.d0 tpmae(1,2)=0.d0 tpmae(2,2)=0.d0 case(3) ! use x-, y- and z-directions npmae=3 allocate(tpmae(2,npmae)) tpmae(1,1)=pi/2.d0 tpmae(2,1)=0.d0 tpmae(1,2)=pi/2.d0 tpmae(2,2)=pi/2.d0 tpmae(1,3)=0.d0 tpmae(2,3)=0.d0 case default write(*,*) write(*,'("Error(gentpmae): invalid npmae : ",I8)') npmae0 write(*,*) stop end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/symveca.f900000644000000000000000000000013213543334735014616 xustar0030 mtime=1569569245.871641152 30 atime=1569569242.114643551 30 ctime=1569569245.871641152 elk-6.3.2/src/symveca.f900000644002504400250440000000225013543334735016664 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: symveca ! !INTERFACE: subroutine symveca(vca) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! vca : vectors in Cartesian coordinates for all atoms (in,real(3,natmtot)) ! !DESCRIPTION: ! Symmetrises a 3-vector at each atomic site by rotating and averaging over ! equivalent atoms. Only the spatial part of each crystal symmetry is used. ! ! !REVISION HISTORY: ! Created June 2004 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(inout) :: vca(3,natmtot) ! local variables integer is,ia,ja,ias,jas integer isym,lspl real(8) v(3),t1 ! automatic arrays real(8) vs(3,natmtot) ! make symmetric average vs(:,:)=0.d0 do isym=1,nsymcrys lspl=lsplsymc(isym) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ja=ieqatom(ia,is,isym) jas=idxas(ja,is) call r3mv(symlatc(:,:,lspl),vca(:,jas),v) vs(:,ias)=vs(:,ias)+v(:) end do end do end do ! normalise t1=1.d0/dble(nsymcrys) vca(:,:)=t1*vs(:,:) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/massnucl.f900000644000000000000000000000013213543334735014774 xustar0030 mtime=1569569245.875641149 30 atime=1569569242.119643548 30 ctime=1569569245.875641149 elk-6.3.2/src/massnucl.f900000644002504400250440000000373213543334735017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: massnucl ! !INTERFACE: real(8) function massnucl(z) ! !INPUT/OUTPUT PARAMETERS: ! z : atomic number (in,real) ! !DESCRIPTION: ! Computes an approximate nuclear mass from the atomic number $Z$. The nuclear ! mass number, $A$, is first estimated using ! $$ A=4.467\times 10^{-3}Z^2+2.163 Z-1.168, $$ ! [D. Andrae in {\it Relativistic Electronic Structure Theory - Fundamentals} ! {\bf 11}, 203 (2002)]. Then the nuclear mass can be determined from: ! $$ M=Z m_p+N m_n-\frac{B}{c^2}, $$ ! where $m_p$ is the proton mass, $m_n$ is the neutron mass and $B$ is the ! nuclear binding energy. The binding energy is approximated by the ! Weizs\"{a}cker formula: ! $$ B=a_V A-a_S A^{2/3}-a_C Z^2 A^{-1/3}-a_{\rm sym}(Z-N)^2A^{-1} ! +B_p+B_{\rm shell}. $$ ! See F. Yang and J. H. Hamilton in {\it Modern Atomic and Nuclear Physics}, ! Revised Edition 2010, for details on the quantities in this formula. In this ! implementation, $B_p$ and $B_{\rm shell}$ are set to zero. ! ! !REVISION HISTORY: ! Created February 2014 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: z ! local variables ! coefficients for computing mass number real(8), parameter :: c2=4.467d-3, c1=2.163d0, c0=-1.168d0 ! Weizsacker coefficients in MeV real(8), parameter :: av=15.8d0, as=18.3d0, ac=0.72d0, asym=23.2d0 ! proton and neutron masses in MeV/c^2 (CODATA 2018) real(8), parameter :: mp=938.27208816d0 real(8), parameter :: mn=939.56542052d0 ! atomic mass unit in MeV/c^2 (CODATA 2018) real(8), parameter :: mu=931.49410242d0 real(8) za,n,a,b za=abs(z) ! approximate nuclear mass number if (za.le.1.d0) then a=1.d0 else a=abs(c2*za**2+c1*za+c0) end if n=a-za b=av*a-as*a**(2.d0/3.d0)-ac*(za**2)/a**(1.d0/3.d0)-asym*(za-n)**2/a massnucl=(za*mp+n*mn-b)/mu return end function !EOC elk-6.3.2/src/PaxHeaders.21352/wavefcr.f900000644000000000000000000000013213543334735014604 xustar0030 mtime=1569569245.880641146 30 atime=1569569242.123643545 30 ctime=1569569245.880641146 elk-6.3.2/src/wavefcr.f900000644002504400250440000000557613543334735016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2011 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wavefcr(tsh,lrstp,is,ia,ist,m,ld,wfcr) use modmain implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: lrstp integer, intent(in) :: is,ia integer, intent(in) :: ist ! pass in m-1/2 integer, intent(in) :: m integer, intent(in) :: ld complex(8), intent(out) :: wfcr(ld,2) ! local variables integer ias,nr,nri,ir integer k,l,lm,lm1,lm2 integer i,i1,i2 real(8) c1,c2,t0,t1,t2 l=lsp(ist,is) k=ksp(ist,is) if (((k.ne.l+1).and.(k.ne.l)).or.(m.lt.-k).or.(m.gt.k-1)) then write(*,*) write(*,'("Error(wavefcr): mismatched l, k or m : ",3I4)') l,k,m write(*,'(" for species ",I4)') is write(*,'(" atom ",I4)') ia write(*,'(" and state ",I6)') ist write(*,*) stop end if if (l.gt.lmaxo) then wfcr(:,:)=0.d0 return end if ias=idxas(ia,is) ! calculate the Clebsch-Gordon coefficients t1=sqrt(dble(l+m+1)/dble(2*l+1)) t2=sqrt(dble(l-m)/dble(2*l+1)) if (k.eq.l+1) then c1=t1 c2=t2 else c1=t2 c2=-t1 end if if (abs(m).le.l) then lm1=idxlm(l,m) else lm1=0 end if if (abs(m+1).le.l) then lm2=idxlm(l,m+1) else lm2=0 end if nr=nrmt(is) nri=nrmti(is) ! zero the wavefunction if (lrstp.eq.1) then wfcr(1:npmt(is),:)=0.d0 else if (lrstp.eq.lradstp) then wfcr(1:npcmt(is),:)=0.d0 else write(*,*) write(*,'("Error(wavefcr): invalid lrstp : ",I8)') lrstp write(*,*) stop end if !----------------------------------! ! inner part of muffin-tin ! !----------------------------------! if (l.gt.lmaxi) goto 10 if (tsh) then i1=lm1 i2=lm2 else i=0 end if do ir=1,nri,lrstp ! major component of radial wavefunction t0=rwfcr(ir,1,ist,ias)*rlmt(ir,-1,is) if (tsh) then if (lm1.gt.0) wfcr(i1,1)=t0*c1 if (lm2.gt.0) wfcr(i2,2)=t0*c2 i1=i1+lmmaxi i2=i2+lmmaxi else t1=t0*c1 t2=t0*c2 if (lm1.gt.0) then do lm=1,lmmaxi wfcr(i+lm,1)=t1*zbshti(lm,lm1) end do end if if (lm2.gt.0) then do lm=1,lmmaxi wfcr(i+lm,2)=t2*zbshti(lm,lm2) end do end if i=i+lmmaxi end if end do !----------------------------------! ! outer part of muffin-tin ! !----------------------------------! 10 continue if (lrstp.eq.1) then i=lmmaxi*nrmti(is) else i=lmmaxi*nrcmti(is) end if if (tsh) then i1=i+lm1 i2=i+lm2 end if do ir=nri+lrstp,nr,lrstp t0=rwfcr(ir,1,ist,ias)*rlmt(ir,-1,is) if (tsh) then if (lm1.gt.0) wfcr(i1,1)=t0*c1 if (lm2.gt.0) wfcr(i2,2)=t0*c2 i1=i1+lmmaxo i2=i2+lmmaxo else t1=t0*c1 t2=t0*c2 if (lm1.gt.0) then do lm=1,lmmaxo wfcr(i+lm,1)=t1*zbshto(lm,lm1) end do end if if (lm2.gt.0) then do lm=1,lmmaxo wfcr(i+lm,2)=t2*zbshto(lm,lm2) end do end if i=i+lmmaxo end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gradwf2.f900000644000000000000000000000013213543334735014503 xustar0030 mtime=1569569245.884641143 30 atime=1569569242.128643542 30 ctime=1569569245.884641143 elk-6.3.2/src/gradwf2.f900000644002504400250440000001044013543334735016551 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gradwf2(ik,evecfv,evecsv,gwf2mt,gwf2ir) use modmain implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv) real(8), intent(inout) :: gwf2mt(npmtmax,natmtot),gwf2ir(ngtot) ! local variables integer ist,ispn,jspn integer is,ia,ias integer nr,nri,ir,np integer igk,ifg,i,j real(8) wo,t1 complex(8) zq(2),z1 ! automatic arrays logical done(nstfv,nspnfv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:) complex(8), allocatable :: wfmt1(:,:,:),wfmt2(:,:) complex(8), allocatable :: gwfmt(:,:),zfmt(:) complex(8), allocatable :: zfft1(:,:),zfft2(:) !-------------------------! ! muffin-tin part ! !-------------------------! allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(wfmt1(npmtmax,nstfv,nspnfv),wfmt2(npmtmax,nspinor)) allocate(gwfmt(npmtmax,3),zfmt(npmtmax)) ! find the matching coefficients do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do do is=1,nspecies nr=nrmt(is) nri=nrmti(is) np=npmt(is) do ia=1,natoms(is) ias=idxas(ia,is) ! de-phasing factor for spin-spirals if (ssdph) then t1=-0.5d0*dot_product(vqcss(:),atposc(:,ia,is)) zq(1)=cmplx(cos(t1),sin(t1),8) zq(2)=conjg(zq(1)) end if done(:,:)=.false. do j=1,nstsv if (abs(occsv(j,ik)).lt.epsocc) cycle wo=wkpt(ik)*occsv(j,ik) if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors wfmt2(1:np,:)=0.d0 i=0 do ispn=1,nspinor jspn=jspnfv(ispn) do ist=1,nstfv i=i+1 z1=evecsv(i,j) if (ssdph) z1=z1*zq(ispn) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (.not.done(ist,jspn)) then call wavefmt(1,ias,ngk(jspn,ik),apwalm(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt1(:,ist,jspn)) done(ist,jspn)=.true. end if ! add to spinor wavefunction wfmt2(1:np,ispn)=wfmt2(1:np,ispn)+z1*wfmt1(1:np,ist,jspn) end if end do end do else ! spin-unpolarised wavefunction call wavefmt(1,ias,ngk(1,ik),apwalm(:,:,:,ias,1),evecfv(:,j,1),wfmt2) end if ! compute the gradient of the wavefunction do ispn=1,nspinor call gradzfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),wfmt2(:,ispn),npmtmax, & gwfmt) do i=1,3 ! convert gradient from spherical harmonics to spherical coordinates call zbsht(nr,nri,gwfmt(:,i),zfmt) ! add to total gwf2mt(1:np,ias)=gwf2mt(1:np,ias) & +wo*(dble(zfmt(1:np))**2+aimag(zfmt(1:np))**2) end do end do end do end do end do deallocate(apwalm,wfmt1,wfmt2,gwfmt,zfmt) !---------------------------! ! interstitial part ! !---------------------------! allocate(zfft1(ngtot,nspinor),zfft2(ngtot)) do j=1,nstsv if (abs(occsv(j,ik)).lt.epsocc) cycle wo=wkpt(ik)*occsv(j,ik)/omega zfft1(:,:)=0.d0 if (tevecsv) then ! generate spinor wavefunction from second-variational eigenvectors i=0 do ispn=1,nspinor jspn=jspnfv(ispn) do ist=1,nstfv i=i+1 z1=evecsv(i,j) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then do igk=1,ngk(jspn,ik) ifg=igfft(igkig(igk,jspn,ik)) zfft1(ifg,ispn)=zfft1(ifg,ispn)+z1*evecfv(igk,ist,jspn) end do end if end do end do else ! spin-unpolarised wavefunction do igk=1,ngk(1,ik) ifg=igfft(igkig(igk,1,ik)) zfft1(ifg,1)=evecfv(igk,j,1) end do end if ! compute gradient of wavefunction do ispn=1,nspinor jspn=jspnfv(ispn) do i=1,3 zfft2(:)=0.d0 do igk=1,ngk(jspn,ik) ifg=igfft(igkig(igk,jspn,ik)) zfft2(ifg)=zi*vgkc(i,igk,jspn,ik)*zfft1(ifg,ispn) end do ! Fourier transform gradient to real-space call zfftifc(3,ngridg,1,zfft2) do ir=1,ngtot gwf2ir(ir)=gwf2ir(ir)+wo*(dble(zfft2(ir))**2+aimag(zfft2(ir))**2) end do end do end do end do deallocate(zfft1,zfft2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/geomplot.f900000644000000000000000000000012713543334735015001 xustar0029 mtime=1569569245.88964114 29 atime=1569569242.13264354 29 ctime=1569569245.88964114 elk-6.3.2/src/geomplot.f900000644002504400250440000000427613543334735017055 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine geomplot use modmain implicit none ! local variables integer is,ia real(8) v1(3),v2(3),v3(3),v4(3),t1 real(8) dxx,dyx,dyy,dzx,dzy,dzz ! initialise universal variables call init0 !------------------------------------------------! ! write the XCrysden file to crystal.xsf ! !------------------------------------------------! open(50,file='crystal.xsf',form='FORMATTED') write(50,*) write(50,'("CRYSTAL")') write(50,*) write(50,'("PRIMVEC")') write(50,'(3G18.10)') avec(:,1)*br_ang write(50,'(3G18.10)') avec(:,2)*br_ang write(50,'(3G18.10)') avec(:,3)*br_ang write(50,*) write(50,'("PRIMCOORD")') write(50,'(2I8)') natmtot,1 do is=1,nspecies do ia=1,natoms(is) write(50,'(A,3G18.10)') trim(spsymb(is)),atposc(:,ia,is)*br_ang end do end do close(50) write(*,*) write(*,'("Info(geomplot):")') write(*,'(" XCrysDen file written to crystal.xsf")') !-----------------------------------------------! ! write the V_Sim file to crystal.ascii ! !-----------------------------------------------! ! determine coordinate system vectors t1=sqrt(avec(1,1)**2+avec(2,1)**2+avec(3,1)**2) v1(:)=avec(:,1)/t1 t1=sqrt(avec(1,2)**2+avec(2,2)**2+avec(3,2)**2) v2(:)=avec(:,2)/t1 call r3cross(v1,v2,v3) t1=sqrt(v3(1)**2+v3(2)**2+v3(3)**2) v3(:)=v3(:)/t1 call r3cross(v3,v1,v2) t1=sqrt(v2(1)**2+v2(2)**2+v2(3)**2) v2(:)=v2(:)/t1 dxx=dot_product(avec(:,1),v1(:)) dyx=dot_product(avec(:,2),v1(:)) dyy=dot_product(avec(:,2),v2(:)) dzx=dot_product(avec(:,3),v1(:)) dzy=dot_product(avec(:,3),v2(:)) dzz=dot_product(avec(:,3),v3(:)) open(50,file='crystal.ascii',form='FORMATTED') write(50,*) write(50,'(3G18.10)') dxx,dyx,dyy write(50,'(3G18.10)') dzx,dzy,dzz write(50,*) do is=1,nspecies do ia=1,natoms(is) v4(1)=dot_product(atposc(:,ia,is),v1(:)) v4(2)=dot_product(atposc(:,ia,is),v2(:)) v4(3)=dot_product(atposc(:,ia,is),v3(:)) write(50,'(3G18.10," ",A)') v4,trim(spsymb(is)) end do end do close(50) write(*,*) write(*,'("Info(geomplot):")') write(*,'(" V_Sim file written to crystal.ascii")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/findngkmax.f900000644000000000000000000000013213543334735015275 xustar0030 mtime=1569569245.893641137 30 atime=1569569242.136643537 30 ctime=1569569245.893641137 elk-6.3.2/src/findngkmax.f900000644002504400250440000000376613543334735017360 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2012 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: findngkmax ! !INTERFACE: subroutine findngkmax(nkpt,vkc,nspnfv,vqcss,ngvec,vgc,gkmax,ngkmax) ! !INPUT/OUTPUT PARAMETERS: ! nkpt : number of k-points (in,integer) ! vkc : k-point vectors in Cartesian coordinates (in,real(3,nkpt)) ! nspnfv : number of first-variational spin components: 1 normal case, 2 for ! spin-spiral case (in,integer) ! vqcss : spin-spiral q-vector, not referenced if nspnfv=1 (in,integer) ! ngvec : number of G-vectors (in,integer) ! vgc : G-vectors in Cartesian coordinates (in,real(3,ngvec)) ! gkmax : maximum allowed |G+k| (in,real) ! ngkmax : maximum number of G+k-vectors over all k-points (out,integer) ! !DESCRIPTION: ! Determines the largest number of ${\bf G+k}$-vectors with length less than ! {\tt gkmax} over all the $k$-points. This variable is used for allocating ! arrays. ! ! !REVISION HISTORY: ! Created October 2004 (JKD) ! Modified, August 2012 (JKD) ! Removed modmain and added arguments, September 2012 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nkpt real(8), intent(in) :: vkc(3,nkpt) integer, intent(in) :: nspnfv real(8), intent(in) :: vqcss(3) integer, intent(in) :: ngvec real(8), intent(in) :: vgc(3,ngvec) real(8), intent(in) :: gkmax integer, intent(out) :: ngkmax ! local variables integer ispn,ik,n,ig real(8) v1(3),v2(3),t0,t1 t0=gkmax**2+1.d-6 ngkmax=0 do ispn=1,nspnfv do ik=1,nkpt if (nspnfv.eq.2) then ! spin-spiral case if (ispn.eq.1) then v1(:)=vkc(:,ik)+0.5d0*vqcss(:) else v1(:)=vkc(:,ik)-0.5d0*vqcss(:) end if else v1(:)=vkc(:,ik) end if n=0 do ig=1,ngvec v2(:)=vgc(:,ig)+v1(:) t1=v2(1)**2+v2(2)**2+v2(3)**2 if (t1.lt.t0) n=n+1 end do ngkmax=max(ngkmax,n) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/reciplat.f900000644000000000000000000000013213543334735014752 xustar0030 mtime=1569569245.897641135 30 atime=1569569242.141643534 30 ctime=1569569245.897641135 elk-6.3.2/src/reciplat.f900000644002504400250440000000337613543334735017032 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: reciplat ! !INTERFACE: subroutine reciplat(avec,bvec,omega,omegabz) ! !INPUT/OUTPUT PARAMETERS: ! avec : lattice vectors (in,real(3,3)) ! bvec : reciprocal lattice vectors (out,real(3,3)) ! omega : unit cell volume (out,real) ! omegabz : Brillouin zone volume (out,real) ! !DESCRIPTION: ! Generates the reciprocal lattice vectors from the real-space lattice vectors ! \begin{align*} ! {\bf b}_1&=\frac{2\pi}{s}({\bf a}_2\times{\bf a}_3)\\ ! {\bf b}_2&=\frac{2\pi}{s}({\bf a}_3\times{\bf a}_1)\\ ! {\bf b}_3&=\frac{2\pi}{s}({\bf a}_1\times{\bf a}_2) ! \end{align*} ! and finds the unit cell volume $\Omega=|s|$, where ! $s={\bf a}_1\cdot({\bf a}_2\times{\bf a}_3)$, and the Brillouin zone volume ! $\Omega_{\rm BZ}=(2\pi)^3/\Omega$. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: avec(3,3) real(8), intent(out) :: bvec(3,3) real(8), intent(out) :: omega,omegabz ! local variables real(8), parameter :: twopi=6.2831853071795864769d0 real(8) t1 call r3cross(avec(:,2),avec(:,3),bvec(:,1)) call r3cross(avec(:,3),avec(:,1),bvec(:,2)) call r3cross(avec(:,1),avec(:,2),bvec(:,3)) t1=avec(1,1)*bvec(1,1)+avec(2,1)*bvec(2,1)+avec(3,1)*bvec(3,1) ! unit cell volume omega=abs(t1) if (omega.lt.1.d-6) then write(*,*) write(*,'("Error(reciplat) omega too small : ",G18.10)') omega write(*,'(" Lattice vectors may be collinear")') write(*,*) stop end if bvec(:,:)=(twopi/t1)*bvec(:,:) ! Brillouin zone volume omegabz=(twopi**3)/omega return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genrlmv.f900000644000000000000000000000013213543334735014621 xustar0030 mtime=1569569245.902641132 30 atime=1569569242.145643531 30 ctime=1569569245.902641132 elk-6.3.2/src/genrlmv.f900000644002504400250440000000370413543334735016674 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: genrlmv ! !INTERFACE: subroutine genrlmv(lmax,v,rlm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! v : input vector (in,real(3)) ! rlm : array of real spherical harmonics (out,real((lmax+1)**2)) ! !DESCRIPTION: ! Generates a sequence of real spherical harmonics evaluated at angles ! $(\theta,\phi)$ for $00 \\ ! \sqrt{2}\,\Im\{Y_{lm}(\theta,\phi)\} & m<0 \\ ! \Re\{Y_{lm}(\theta,\phi)\} & m=0 ! \end{cases}, $$ ! where $Y_{lm}$ are the complex spherical harmonics. These functions are ! orthonormal and complete and may be used for expanding real-valued functions ! on the sphere. This routine is numerically stable and accurate to near ! machine precision for $l\le 50$. See routine {\tt genylmv}. ! ! !REVISION HISTORY: ! Created March 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax real(8), intent(in) :: v(3) real(8), intent(out) :: rlm(*) ! local variables integer l,m,lm real(8), parameter :: sqtwo=1.4142135623730950488d0 ! automatic arrays complex(8) ylm((lmax+1)**2) if ((lmax.lt.0).or.(lmax.gt.50)) then write(*,*) write(*,'("Error(genrlmv): lmax out of range : ",I8)') lmax write(*,*) stop end if ! generate complex spherical harmonics call genylmv(lmax,v,ylm) ! convert to real spherical harmonics lm=0 do l=0,lmax do m=-l,-1 lm=lm+1 rlm(lm)=sqtwo*aimag(ylm(lm)) end do lm=lm+1 rlm(lm)=dble(ylm(lm)) do m=1,l lm=lm+1 rlm(lm)=sqtwo*dble(ylm(lm)) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genvmat.f900000644000000000000000000000013213543334735014610 xustar0030 mtime=1569569245.906641129 30 atime=1569569242.150643528 30 ctime=1569569245.906641129 elk-6.3.2/src/genvmat.f900000644002504400250440000000536513543334735016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvmat(vmt,vir,vmat) ! generates potential matrix elements for all states and k-points use modmain use modmpi use modomp implicit none ! arguments real(8), intent(in) :: vmt(npmtmax,natmtot),vir(ngtot) complex(8), intent(out) :: vmat(nstsv,nstsv,nkpt) ! local variables integer ik,ist,ispn integer is,ias,nrc,nrci integer n,lp,nthd ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: vmt1(:,:),vir1(:),rfmt(:) complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) ! allocate local arrays allocate(vmt1(npcmtmax,natmtot),vir1(ngtot)) ! convert muffin-tin potential to spherical coordinates call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,is,nrc,nrci) & !$OMP NUM_THREADS(nthd) allocate(rfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,vmt(:,ias),rfmt) call rbsht(nrc,nrci,rfmt,vmt1(:,ias)) end do !$OMP END DO deallocate(rfmt) !$OMP END PARALLEL call freethd(nthd) ! multiply interstitial potential by characteristic function vir1(:)=vir(:)*cfunir(:) ! index to all states do ist=1,nstsv idx(ist)=ist end do ! loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(apwalm,evecfv,evecsv) & !$OMP PRIVATE(wfmt,wfir,ispn) & !$OMP NUM_THREADS(nthd) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfir(ngkmax,nspinor,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! find the matching coefficients do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! calculate the wavefunctions for all states of the input k-point call genwfsv(.false.,.true.,nstsv,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfir) call genvmatk(vmt1,vir1,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfir,vmat(:,:,ik)) end do !$OMP END DO deallocate(apwalm,evecfv,evecsv,wfmt,wfir) !$OMP END PARALLEL call freethd(nthd) ! broadcast matrix elements to every process if (np_mpi.gt.1) then n=nstsv*nstsv do ik=1,nkpt lp=mod(ik-1,np_mpi) call mpi_bcast(vmat(:,:,ik),n,mpi_double_complex,lp,mpicom,ierror) end do end if deallocate(vmt1,vir1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/putoccsv.f900000644000000000000000000000013213543334735015015 xustar0030 mtime=1569569245.910641127 30 atime=1569569242.154643526 30 ctime=1569569245.910641127 elk-6.3.2/src/putoccsv.f900000644002504400250440000000125613543334735017070 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putoccsv(fext,ik,occsvp) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik real(8), intent(in) :: occsvp(nstsv) ! local variables integer recl ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,occsvp !$OMP CRITICAL(u130) open(130,file='OCCSV'//trim(fext),form='UNFORMATTED',access='DIRECT', & action='WRITE',recl=recl) write(130,rec=ik) vkl(:,ik),nstsv,occsvp close(130) !$OMP END CRITICAL(u130) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getoccsv.f900000644000000000000000000000013213543334735014764 xustar0030 mtime=1569569245.915641123 30 atime=1569569242.158643523 30 ctime=1569569245.915641123 elk-6.3.2/src/getoccsv.f900000644002504400250440000000253013543334735017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getoccsv(fext,ikp,vpl,occsvp) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ikp real(8), intent(in) :: vpl(3) real(8), intent(out) :: occsvp(nstsv) ! local variables integer isym,ik integer recl,nstsv_ real(8) vkl_(3),t1 if (ikp.gt.0) then ik=ikp else ! find the k-point number call findkpt(vpl,isym,ik) end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,occsvp !$OMP CRITICAL(u130) open(130,file='OCCSV'//trim(fext),form='UNFORMATTED',access='DIRECT', & action='READ',recl=recl) read(130,rec=ik) vkl_,nstsv_,occsvp close(130) !$OMP END CRITICAL(u130) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getoccsv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" OCCSV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getoccsv): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" OCCSV.OUT : ",I8)') nstsv_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/curlrvf.f900000644000000000000000000000013113543334735014631 xustar0030 mtime=1569569245.919641121 29 atime=1569569242.16364352 30 ctime=1569569245.919641121 elk-6.3.2/src/curlrvf.f900000644002504400250440000000266613543334735016713 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine curlrvf(rvfmt,rvfir,curlmt,curlir) use modmain use modomp implicit none ! arguments real(8), intent(in) :: rvfmt(npmtmax,natmtot,3),rvfir(ngtot,3) real(8), intent(out) :: curlmt(npmtmax,natmtot,3),curlir(ngtot,3) ! local variables integer is,ias,np,i,nthd ! allocatable arrays real(8), allocatable :: grfmt(:,:,:,:),grfir(:,:,:) allocate(grfmt(npmtmax,natmtot,3,3),grfir(ngtot,3,3)) ! compute the gradients call holdthd(3,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do i=1,3 call gradrf(rvfmt(:,:,i),rvfir(:,i),grfmt(:,:,:,i),grfir(:,:,i)) end do !$OMP END PARALLEL DO call freethd(nthd) ! determine the muffin-tin and interstitial curl call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP PRIVATE(ias,is,np) & !$OMP NUM_THREADS(nthd) !$OMP SECTION do ias=1,natmtot is=idxis(ias) np=npmt(is) curlmt(1:np,ias,1)=grfmt(1:np,ias,2,3)-grfmt(1:np,ias,3,2) curlmt(1:np,ias,2)=grfmt(1:np,ias,3,1)-grfmt(1:np,ias,1,3) curlmt(1:np,ias,3)=grfmt(1:np,ias,1,2)-grfmt(1:np,ias,2,1) end do !$OMP SECTION curlir(:,1)=grfir(:,2,3)-grfir(:,3,2) curlir(:,2)=grfir(:,3,1)-grfir(:,1,3) curlir(:,3)=grfir(:,1,2)-grfir(:,2,1) !$OMP END PARALLEL SECTIONS call freethd(nthd) deallocate(grfmt,grfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/latvstep.f900000644000000000000000000000013213543334735015011 xustar0030 mtime=1569569245.923641118 30 atime=1569569242.167643517 30 ctime=1569569245.923641118 elk-6.3.2/src/latvstep.f900000644002504400250440000000155713543334735017070 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine latvstep use modmain use modmpi use modstore implicit none ! local variables integer i real(8) t1 do i=1,nstrain ! compute product of current and previous stress tensor components t1=stress(i)*stressp(i) ! if component is in the same direction then increase step size parameter if (t1.gt.0.d0) then taulatv(i)=taulatv(i)+tau0latv else taulatv(i)=tau0latv end if t1=taulatv(i)*(stress(i)+stressp(i)) avec(:,:)=avec(:,:)-t1*strain(:,:,i) end do ! each MPI process should have identical lattice vectors call mpi_bcast(avec,9,mpi_double_precision,0,mpicom,ierror) ! compute the new unit cell volume call reciplat(avec,bvec,omega,omegabz) return end subroutine elk-6.3.2/src/PaxHeaders.21352/energy.f900000644000000000000000000000013213543334735014440 xustar0030 mtime=1569569245.928641115 30 atime=1569569242.171643515 30 ctime=1569569245.928641115 elk-6.3.2/src/energy.f900000644002504400250440000002126513543334735016515 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: energy ! !INTERFACE: subroutine energy ! !USES: use modmain use moddftu use modtest ! !DESCRIPTION: ! Computes the total energy and its individual contributions. The kinetic ! energy is given by ! $$ T_s=\sum_i n_i\epsilon_i-\int\rho({\bf r})[v_{\rm C}({\bf r}) ! +v_{\rm xc}({\bf r})]d{\bf r}-\int {\bf m}({\bf r})\cdot ! ({\bf B}_{\rm xc}({\bf r})+{\bf B}_{\rm ext}({\bf r}))d{\bf r}, $$ ! where $n_i$ are the occupancies and $\epsilon_i$ are the eigenvalues of both ! the core and valence states; $\rho$ is the density; ${\bf m}$ is the ! magnetisation density; $v_{\rm C}$ is the Coulomb potential; $v_{\rm xc}$ ! and ${\bf B}_{\rm xc}$ are the exchange-correlation potential and magnetic ! field, respectively; and ${\bf B}_{\rm ext}$ is the external magnetic field. ! The Hartree, electron-nuclear and nuclear-nuclear electrostatic energies are ! combined into the Coulomb energy: ! \begin{align*} ! E_{\rm C}&=E_{\rm H}+E_{\rm en}+E_{\rm nn} \\ ! &=\frac{1}{2}V_{\rm C}+E_{\rm Mad}, ! \end{align*} ! where ! $$ V_{\rm C}=\int\rho({\bf r})v_{\rm C}({\bf r})d{\bf r} $$ ! is the Coulomb potential energy. The Madelung energy is given by ! $$ E_{\rm Mad}=\frac{1}{2}\sum_{\alpha}z_{\alpha}R_{\alpha}, $$ ! where ! $$ R_{\alpha}=\lim_{r\rightarrow 0}\left(v^{\rm C}_{\alpha;00}(r)Y_{00} ! +\frac{z_{\alpha}}{r}\right) $$ ! for atom $\alpha$, with $v^{\rm C}_{\alpha;00}$ being the $l=0$ component of ! the spherical harmonic expansion of $v_{\rm C}$ in the muffin-tin, and ! $z_{\alpha}$ is the nuclear charge. Using the nuclear-nuclear energy ! determined at the start of the calculation, the electron-nuclear and Hartree ! energies can be isolated with ! $$ E_{\rm en}=2\left(E_{\rm Mad}-E_{\rm nn}\right) $$ ! and ! $$ E_{\rm H}=\frac{1}{2}(E_{\rm C}-E_{\rm en}). $$ ! Finally, the total energy is ! $$ E=T_s+E_{\rm C}+E_{\rm xc}, $$ ! where $E_{\rm xc}$ is obtained either by integrating the ! exchange-correlation energy density, or in the case of exact exchange, the ! explicit calculation of the Fock exchange integral. The energy from the ! external magnetic fields in the muffin-tins, {\tt bfcmt}, is always removed ! from the total since these fields are non-physical: their field lines do not ! close. The energy of the physical external field, {\tt bfieldc}, is also not ! included in the total because this field, like those in the muffin-tins, is ! used for breaking spin symmetry and taken to be infintesimal. If this field ! is intended to be finite, then the associated energy, {\tt engybext}, should ! be added to the total by hand. See {\tt potxc}, {\tt exxengy} and related ! subroutines. ! ! !REVISION HISTORY: ! Created May 2003 (JKD) !EOP !BOC implicit none ! local variables integer ik,ist,ispn,idm,jdm integer is,ia,ias,np,n2,i real(8) cb,sum,f complex(8) z1 ! allocatable arrays real(8), allocatable :: rfmt(:,:) complex(8), allocatable :: evecsv(:,:),kmat(:,:),c(:,:) ! external functions real(8) rfinp complex(8) zdotc external rfinp,zdotc ! coupling constant of the external field (g_e/4c) cb=gfacte/(4.d0*solsc) !-----------------------------------------------! ! exchange-correlation potential energy ! !-----------------------------------------------! engyvxc=rfinp(rhomt,rhoir,vxcmt,vxcir) !-----------------------------------------------------! ! exchange-correlation effective field energy ! !-----------------------------------------------------! engybxc=0.d0 do idm=1,ndmag engybxc=engybxc+rfinp(magmt(:,:,idm),magir(:,idm),bxcmt(:,:,idm),bxcir(:,idm)) end do !------------------------------------------! ! external magnetic field energies ! !------------------------------------------! engybext=0.d0 do idm=1,ndmag if (ncmag) then jdm=idm else jdm=3 end if ! energy of physical global field engybext=engybext+cb*momtot(idm)*bfieldc(jdm) end do !----------------------------------! ! Coulomb potential energy ! !----------------------------------! engyvcl=rfinp(rhomt,rhoir,vclmt,vclir) !-----------------------! ! Madelung term ! !-----------------------! engymad=0.d0 do ias=1,natmtot is=idxis(ias) engymad=engymad+0.5d0*spzn(is)*(vclmt(1,ias)-vcln(1,is))*y00 end do !---------------------------------------------! ! electron-nuclear interaction energy ! !---------------------------------------------! engyen=2.d0*(engymad-engynn) !------------------------! ! Hartree energy ! !------------------------! engyhar=0.5d0*(engyvcl-engyen) !------------------------! ! Coulomb energy ! !------------------------! engycl=engynn+engyen+engyhar !-------------------------! ! exchange energy ! !-------------------------! if ((xctype(1).lt.0).or.(task.eq.5)) then ! exact exchange for OEP-EXX or Hartree-Fock on last self-consistent loop if (tlast) then call exxengy ! mix exact and DFT exchange energies for hybrid functionals if (hybrid) then engyx=engyx*hybridc engyx=engyx+rfinp(rhomt,rhoir,exmt,exir) end if else engyx=0.d0 end if else ! exchange energy from the density engyx=rfinp(rhomt,rhoir,exmt,exir) end if !----------------------------! ! correlation energy ! !----------------------------! if (task.eq.5) then if (hybrid) then ! fraction of DFT correlation energy for hybrid functionals engyc=rfinp(rhomt,rhoir,ecmt,ecir) else ! zero correlation energy for pure Hartree-Fock engyc=0.d0 end if else ! correlation energy from the density engyc=rfinp(rhomt,rhoir,ecmt,ecir) end if !----------------------! ! DFT+U energy ! !----------------------! engydu=0.d0 if (dftu.ne.0) then do i=1,ndftu is=idftu(1,i) do ia=1,natoms(is) engydu=engydu+engyadu(ia,i) end do end do end if !----------------------------! ! sum of eigenvalues ! !----------------------------! ! core eigenvalues evalsum=0.d0 do ias=1,natmtot is=idxis(ias) do ist=1,nstsp(is) if (spcore(ist,is)) evalsum=evalsum+occcr(ist,ias)*evalcr(ist,ias) end do end do ! valence eigenvalues do ik=1,nkpt do ist=1,nstsv evalsum=evalsum+wkpt(ik)*occsv(ist,ik)*evalsv(ist,ik) end do end do !------------------------! ! kinetic energy ! !------------------------! ! core electron kinetic energy call energykncr ! total electron kinetic energy if (task.eq.5) then ! Hartree-Fock case engykn=engykncr ! kinetic energy from valence states allocate(evecsv(nstsv,nstsv),kmat(nstsv,nstsv),c(nstsv,nstsv)) do ik=1,nkpt call getevecsv(filext,ik,vkl(:,ik),evecsv) call getkmat(ik,kmat) call zgemm('N','N',nstsv,nstsv,nstsv,zone,kmat,nstsv,evecsv,nstsv,zzero,c, & nstsv) do ist=1,nstsv z1=zdotc(nstsv,evecsv(:,ist),1,c(:,ist),1) engykn=engykn+wkpt(ik)*occsv(ist,ik)*dble(z1) end do end do deallocate(evecsv,kmat,c) else ! Kohn-Sham case allocate(rfmt(npmtmax,natmtot)) ! remove magnetic field contribution sum=0.d0 do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call rfsht(nrcmt(is),nrcmti(is),bsmt(:,ias,idm),rfmt(:,ias)) end do call rfmtctof(rfmt) sum=sum+rfinp(magmt(:,:,idm),magir(:,idm),rfmt,bsir(:,idm)) end do ! remove integral of w_xc times tau for generalised Kohn-Sham meta-GGA if (xcgrad.eq.4) then do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) np=npmt(is) rfmt(1:np,ias)=taumt(1:np,ias,ispn)-taucr(1:np,ias,ispn) end do sum=sum+rfinp(rfmt,tauir,wxcmt,wxcir) end do end if ! remove fixed tensor moment potential matrix contribution if (ftmtype.ne.0) then n2=(lmmaxdm*nspinor)**2 do ias=1,natmtot z1=zdotc(n2,dmatmt(:,:,:,:,ias),1,vmftm(:,:,:,:,ias),1) sum=sum+dble(z1) end do end if engykn=evalsum-engyvcl-engyvxc-sum deallocate(rfmt) end if !-------------------------------! ! entropic contribution ! !-------------------------------! entrpy=0.d0 engyts=0.d0 ! non-zero only for the Fermi-Dirac smearing function if (stype.eq.3) then sum=0.d0 do ik=1,nkpt do ist=1,nstsv f=occsv(ist,ik)/occmax if ((f.gt.0.d0).and.(f.lt.1.d0)) then sum=sum+wkpt(ik)*(f*log(f)+(1.d0-f)*log(1.d0-f)) end if end do end do ! entropy entrpy=-occmax*kboltz*sum ! contribution to free energy engyts=-swidth*entrpy/kboltz end if !----------------------! ! total energy ! !----------------------! engytot=engykn+0.5d0*engyvcl+engymad+engyx+engyc+engyts ! add the DFT+U correction if required if (dftu.ne.0) engytot=engytot+engydu ! write total energy to test file call writetest(0,'total energy',tol=1.d-4,rv=engytot) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/delevec.f900000644000000000000000000000013213543334735014556 xustar0030 mtime=1569569245.932641113 30 atime=1569569242.176643512 30 ctime=1569569245.932641113 elk-6.3.2/src/delevec.f900000644002504400250440000000144713543334735016633 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: delevec ! !INTERFACE: subroutine delevec ! !USES: use modmain ! !DESCRIPTION: ! Deletes the first- and second-variational eigenvector files {\tt EVECFV.OUT} ! and {\tt EVECSV.OUT}. ! ! !REVISION HISTORY: ! Created May 2007 (JKD) !EOP !BOC implicit none ! local variables integer ios ! delete the first-variational eigenvector file open(122,file=trim(scrpath)//'EVECFV'//trim(filext),iostat=ios) close(122,status='DELETE') ! delete the second-variational eigenvector file open(126,file=trim(scrpath)//'EVECSV'//trim(filext),iostat=ios) close(126,status='DELETE') return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdiracint.f900000644000000000000000000000013213543334735015126 xustar0030 mtime=1569569245.937641109 30 atime=1569569242.181643508 30 ctime=1569569245.937641109 elk-6.3.2/src/rdiracint.f900000644002504400250440000001113713543334735017200 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2015 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rdiracint ! !INTERFACE: subroutine rdiracint(sol,kpa,e,nr,r,vr,nn,g0,g1,f0,f1) ! !INPUT/OUTPUT PARAMETERS: ! sol : speed of light in atomic units (in,real) ! kpa : quantum number kappa (in,integer) ! e : energy (in,real) ! nr : number of radial mesh points (in,integer) ! r : radial mesh (in,real(nr)) ! vr : potential on radial mesh (in,real(nr)) ! nn : number of nodes (out,integer) ! g0 : m th energy derivative of the major component multiplied by r ! (out,real(nr)) ! g1 : radial derivative of g0 (out,real(nr)) ! f0 : m th energy derivative of the minor component multiplied by r ! (out,real(nr)) ! f1 : radial derivative of f0 (out,real(nr)) ! !DESCRIPTION: ! Integrates the radial Dirac equation from $r=0$ outwards. This involves ! using the predictor-corrector method to solve the coupled first-order ! equations (in atomic units) ! \begin{align*} ! \left(\frac{d}{dr}+\frac{\kappa}{r}\right)G_{\kappa}&=\frac{1}{c} ! \{2E_0+E-V\}F_{\kappa}\\ ! \left(\frac{d}{dr}-\frac{\kappa}{r}\right)F_{\kappa}&= ! -\frac{1}{c}\{E-V\}G_{\kappa}, ! \end{align*} ! where $G_{\kappa}=rg_{\kappa}$ and $F_{\kappa}=rf_{\kappa}$ are the major ! and minor components multiplied by $r$, respectively; $V$ is the external ! potential; $E_0$ is the electron rest energy; $E$ is the eigen energy ! (excluding $E_0$); and $\kappa=l$ for $j=l-\frac{1}{2}$ or $\kappa=-(l+1)$ ! for $j=l+\frac{1}{2}$. ! ! !REVISION HISTORY: ! Created September 2002 (JKD) ! Polynomial order fixed to 3, September 2013 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: sol integer, intent(in) :: kpa real(8), intent(in) :: e integer, intent(in) :: nr real(8), intent(in) :: r(nr),vr(nr) integer, intent(out) :: nn real(8), intent(out) :: g0(nr),g1(nr) real(8), intent(out) :: f0(nr),f1(nr) ! local variables integer ir,ir0 ! rescaling limit real(8), parameter :: rsc=1.d100 real(8) ci,e0,t1,t2,t3,t4 if (nr.lt.4) then write(*,*) write(*,'("Error(rdiracint): nr < 4 : ",I8)') nr write(*,*) stop end if ! inverse speed of light ci=1.d0/sol ! electron rest energy e0=sol**2 t1=2.d0*e0+e ! determine the r -> 0 boundary values of F and G t2=dble(kpa)/r(1) t3=ci*(t1-vr(1)) t4=ci*(vr(1)-e) f0(1)=1.d0 f1(1)=0.d0 g0(1)=(f1(1)-t2*f0(1))/t4 g1(1)=t3*f0(1)-t2*g0(1) ! extrapolate to the first four points g1(2:4)=g1(1) f1(2:4)=f1(1) nn=0 do ir=2,nr t2=dble(kpa)/r(ir) t3=ci*(t1-vr(ir)) t4=ci*(vr(ir)-e) ir0=ir-3 if (ir0.lt.1) ir0=1 g1(ir)=poly3(r(ir0),g1(ir0),r(ir)) f1(ir)=poly3(r(ir0),f1(ir0),r(ir)) ! integrate to find wavefunction g0(ir)=poly4i(r(ir0),g1(ir0),r(ir))+g0(ir0) f0(ir)=poly4i(r(ir0),f1(ir0),r(ir))+f0(ir0) ! compute the derivatives g1(ir)=t3*f0(ir)-t2*g0(ir) f1(ir)=t4*g0(ir)+t2*f0(ir) ! integrate for correction g0(ir)=poly4i(r(ir0),g1(ir0),r(ir))+g0(ir0) f0(ir)=poly4i(r(ir0),f1(ir0),r(ir))+f0(ir0) ! compute the derivatives again g1(ir)=t3*f0(ir)-t2*g0(ir) f1(ir)=t4*g0(ir)+t2*f0(ir) ! check for overflow if ((abs(g0(ir)).gt.rsc).or.(abs(g1(ir)).gt.rsc).or. & (abs(f0(ir)).gt.rsc).or.(abs(f1(ir)).gt.rsc)) then ! set the remaining points and return g0(ir:nr)=g0(ir) g1(ir:nr)=g1(ir) f0(ir:nr)=f0(ir) f1(ir:nr)=f1(ir) return end if ! check for node if (g0(ir-1)*g0(ir).lt.0.d0) nn=nn+1 end do return contains real(8) function poly3(xa,ya,x) implicit none ! arguments real(8) xa(3),ya(3),x ! local variables real(8) x0,x1,x2,y0,y1,y2 real(8) c1,c2,t0,t1,t2 ! evaluate the polynomial coefficients x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0 t0=1.d0/(x1*x2*(x2-x1)) t1=x1*y2; t2=x2*y1 c1=x2*t2-x1*t1 c2=t1-t2 t1=x-x0 ! evaluate the polynomial poly3=y0+t0*t1*(c1+c2*t1) return end function real(8) function poly4i(xa,ya,x) implicit none ! arguments real(8), intent(in) :: xa(4),ya(4),x ! local variables real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) c1,c2,c3,t0,t1,t2,t3,t4,t5,t6 ! evaluate the polynomial coefficients x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0 t4=x1-x2; t5=x1-x3; t6=x2-x3 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 c3=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 c2=t1*(t5-t4)+t2*(t6-t5)+t3*(t4-t6) c1=t1*(x2*t4-x1*t5)+t2*(x3*t5-x2*t6)+t3*(x1*t6-x3*t4) t1=x-x0 ! integrate the polynomial poly4i=t1*(y0+t0*t1*(0.5d0*c1+t1*(0.3333333333333333333d0*c2+0.25d0*c3*t1))) return end function end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rzfmtinp.f900000644000000000000000000000013213543334735015020 xustar0030 mtime=1569569245.941641107 30 atime=1569569242.185643506 30 ctime=1569569245.941641107 elk-6.3.2/src/rzfmtinp.f900000644002504400250440000000163613543334735017075 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. complex(8) function rzfmtinp(nr,nri,wr,rfmt,zfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: wr(nr) real(8), intent(in) :: rfmt(*) complex(8), intent(in) :: zfmt(*) ! local variables integer n,ir,i real(8) t1 complex(8) z1 ! automatic arrays real(8) fr1(nr),fr2(nr) n=lmmaxi-1 i=1 do ir=1,nri z1=dot_product(rfmt(i:i+n),zfmt(i:i+n)) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxi end do t1=dble(lmmaxi)/dble(lmmaxo) n=lmmaxo-1 do ir=nri+1,nr z1=t1*dot_product(rfmt(i:i+n),zfmt(i:i+n)) fr1(ir)=dble(z1); fr2(ir)=aimag(z1) i=i+lmmaxo end do ! integrate over r t1=fourpi/dble(lmmaxi) rzfmtinp=t1*cmplx(dot_product(wr(:),fr1(:)),dot_product(wr(:),fr2(:)),8) return end function elk-6.3.2/src/PaxHeaders.21352/genstrain.f900000644000000000000000000000013213543334735015141 xustar0030 mtime=1569569245.945641104 30 atime=1569569242.189643503 30 ctime=1569569245.945641104 elk-6.3.2/src/genstrain.f900000644002504400250440000000326213543334735017213 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genstrain use modmain implicit none ! local variables integer i,j,k real(8) a(3,3),b(3,3),t1 ! external functions real(8) ddot,dnrm2 external ddot,dnrm2 ! set first strain equal to isotropic scaling t1=dnrm2(9,avec,1) strain(:,:,1)=avec(:,:)/t1 nstrain=1 do i=1,3 do j=1,3 ! set strain tensor in lattice coordinates to delta_ij a(:,:)=0.d0 a(i,j)=1.d0 ! symmetrise strain tensor call symmat(a) ! convert to mixed Cartesian-lattice coordinates call r3mtm(ainv,a,b) ! orthogonalise strain tensor to previous tensors do k=1,nstrain t1=-ddot(9,strain(:,:,k),1,b,1) call daxpy(9,t1,strain(:,:,k),1,b,1) end do ! compute the norm t1=dnrm2(9,b,1) if (t1.lt.epslat) cycle ! normalise tensor and store in global array nstrain=nstrain+1 strain(:,:,nstrain)=b(:,:)/t1 end do end do ! zero small components do k=1,nstrain do i=1,3 do j=1,3 if (abs(strain(i,j,k)).lt.epslat) strain(i,j,k)=0.d0 end do end do end do ! lattice optimisation case if ((task.eq.2).or.(task.eq.3)) then if (latvopt.eq.2) then ! remove isotropic scaling when latvopt=2 strain(:,:,1)=strain(:,:,nstrain) nstrain=nstrain-1 else if (latvopt.lt.0) then ! optimise over particular strain when latvopt < 0 i=abs(latvopt) if (i.gt.nstrain) then write(*,*) write(*,'("Error(genstrain): |latvopt| > nstrain : ",2I8)') i,nstrain write(*,*) stop end if strain(:,:,1)=strain(:,:,i) nstrain=1 end if end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genstress.f900000644000000000000000000000013013543334735015162 xustar0030 mtime=1569569245.950641101 28 atime=1569569242.1946435 30 ctime=1569569245.950641101 elk-6.3.2/src/genstress.f900000644002504400250440000000253513543334735017240 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genstress use modmain use modmpi use modstore implicit none ! local variables integer i real(8) et0,t1 ! store original parameters avec_(:,:)=avec(:,:) tforce_=tforce tforce=.false. ! restore original symmetries call symmetry ! generate the strain tensors call genstrain ! zero the stress tensor components stress(:)=0.d0 ! run the ground-state calculation call gndstate ! check for stop signal if (tstop) goto 10 ! subsequent calculations will read STATE.OUT trdstate=.true. ! store the total energy et0=engytot ! loop over strain tensors do istrain=1,nstrain if (mp_mpi) then write(*,'("Info(genstress): strain tensor ",I1," of ",I1)') istrain,nstrain end if ! restore the lattice vectors avec(:,:)=avec_(:,:) ! run the ground-state calculation call gndstate ! check for stop signal if (tstop) goto 10 ! compute the stress tensor component stress(istrain)=(engytot-et0)/deltast end do 10 continue istrain=0 ! compute the maximum stress magnitude over all lattice vectors stressmax=0.d0 do i=1,nstrain t1=abs(stress(i)) if (t1.gt.stressmax) stressmax=t1 end do ! restore original parameters avec(:,:)=avec_(:,:) tforce=tforce_ return end subroutine elk-6.3.2/src/PaxHeaders.21352/writestress.f900000644000000000000000000000013213543334735015545 xustar0030 mtime=1569569245.954641098 30 atime=1569569242.198643497 30 ctime=1569569245.954641098 elk-6.3.2/src/writestress.f900000644002504400250440000000225113543334735017614 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writestress use modmain use modmpi implicit none ! local variables integer i,j,k ! initialise universal variables call init0 ! start from the atomic densities trdstate=.false. ! generate the stress tensors call genstress ! write the stress tensors to file if (mp_mpi) then open(50,file='STRESS.OUT',form='FORMATTED') write(50,*) write(50,'("Lattice vector matrix, A, changed by")') write(50,*) write(50,'(" A --> A + e_i dt,")') write(50,*) write(50,'("where dt is an infinitesimal scalar and e_i is a strain tensor")') write(50,*) write(50,'("Stress is given by the derivative of the total energy dE/dt")') do k=1,nstrain write(50,*) write(50,'("Strain tensor : ",I1)') k do j=1,3 write(50,'(3G18.10)') (strain(i,j,k),i=1,3) end do write(50,'("Stress : ",G18.10)') stress(k) end do close(50) write(*,*) write(*,'("Info(writestress):")') write(*,'(" Stress tensor components written to STRESS.OUT")') end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/rschrodint.f900000644000000000000000000000013213543334735015326 xustar0030 mtime=1569569245.959641095 30 atime=1569569242.202643495 30 ctime=1569569245.959641095 elk-6.3.2/src/rschrodint.f900000644002504400250440000001051113543334735017373 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2015 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rschrodint ! !INTERFACE: subroutine rschrodint(sol,l,e,nr,r,vr,nn,p0,p1,q0,q1) ! !INPUT/OUTPUT PARAMETERS: ! sol : speed of light in atomic units (in,real) ! l : angular momentum quantum number (in,integer) ! e : energy (in,real) ! nr : number of radial mesh points (in,integer) ! r : radial mesh (in,real(nr)) ! vr : potential on radial mesh (in,real(nr)) ! nn : number of nodes (out,integer) ! p0 : m th energy derivative of P (out,real(nr)) ! p1 : radial derivative of p0 (out,real(nr)) ! q0 : m th energy derivative of Q (out,real(nr)) ! q1 : radial derivative of q0 (out,real(nr)) ! !DESCRIPTION: ! Integrates the scalar relativistic radial Schr\"{o}dinger equation from ! $r=0$ outwards. This involves using the predictor-corrector method to solve ! the coupled first-order equations (in atomic units) ! \begin{align*} ! \frac{d}{dr}P_l&=2MQ_l+\frac{1}{r}P_l\\ ! \frac{d}{dr}Q_l&=-\frac{1}{r}Q_l+\left[\frac{l(l+1)}{2Mr^2} ! +(V-E)\right]P_l, ! \end{align*} ! where $V$ is the external potential, $E$ is the eigen energy and ! $M=1+(E-V)/2c^2$. Following the convention of Koelling and Harmon, ! {\it J. Phys. C: Solid State Phys.} {\bf 10}, 3107 (1977), the functions ! $P_l$ and $Q_l$ are defined by ! \begin{align*} ! P_l&=rg_l\\ ! Q_l&=\frac{r}{2M}\frac{dg_l}{dr}, ! \end{align*} ! where $g_l$ is the major component of the Dirac equation (see the routine ! {\tt rdiracint}). ! ! !REVISION HISTORY: ! Created October 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: sol integer, intent(in) :: l real(8), intent(in) :: e integer, intent(in) :: nr real(8), intent(in) :: r(nr),vr(nr) integer, intent(out) :: nn real(8), intent(out) :: p0(nr),p1(nr) real(8), intent(out) :: q0(nr),q1(nr) ! local variables integer ir,ir0 real(8) ri,t1,t2,t3,t4 t1=1.d0/sol**2 t2=dble(l*(l+1)) ! determine the r -> 0 boundary values of P and Q ri=1.d0/r(1) t3=2.d0+t1*(e-vr(1)) t4=t2/(t3*r(1)**2)+vr(1)-e q0(1)=1.d0 q1(1)=0.d0 p0(1)=(q1(1)+q0(1)*ri)/t4 p1(1)=t3*q0(1)+p0(1)*ri ! extrapolate to the first four points p1(2:4)=p1(1) q1(2:4)=q1(1) nn=0 do ir=2,nr ri=1.d0/r(ir) t3=2.d0+t1*(e-vr(ir)) t4=t2/(t3*r(ir)**2)+vr(ir)-e ir0=ir-3 if (ir0.lt.1) ir0=1 p1(ir)=poly3(r(ir0),p1(ir0),r(ir)) q1(ir)=poly3(r(ir0),q1(ir0),r(ir)) ! integrate to find wavefunction p0(ir)=poly4i(r(ir0),p1(ir0),r(ir))+p0(ir0) q0(ir)=poly4i(r(ir0),q1(ir0),r(ir))+q0(ir0) ! compute the derivatives p1(ir)=t3*q0(ir)+p0(ir)*ri q1(ir)=t4*p0(ir)-q0(ir)*ri ! integrate for correction p0(ir)=poly4i(r(ir0),p1(ir0),r(ir))+p0(ir0) q0(ir)=poly4i(r(ir0),q1(ir0),r(ir))+q0(ir0) ! compute the derivatives again p1(ir)=t3*q0(ir)+p0(ir)*ri q1(ir)=t4*p0(ir)-q0(ir)*ri ! check for overflow if ((abs(p0(ir)).gt.1.d100).or.(abs(p1(ir)).gt.1.d100).or. & (abs(q0(ir)).gt.1.d100).or.(abs(q1(ir)).gt.1.d100)) then p0(ir:nr)=p0(ir) p1(ir:nr)=p1(ir) q0(ir:nr)=q0(ir) q1(ir:nr)=q1(ir) return end if ! check for node if (p0(ir-1)*p0(ir).lt.0.d0) nn=nn+1 end do return contains real(8) function poly3(xa,ya,x) implicit none ! arguments real(8), intent(in) :: xa(3),ya(3),x ! local variables real(8) x0,x1,x2,y0,y1,y2 real(8) c1,c2,t0,t1,t2 ! evaluate the polynomial coefficients x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0 t0=1.d0/(x1*x2*(x2-x1)) t1=x1*y2; t2=x2*y1 c1=x2*t2-x1*t1 c2=t1-t2 t1=x-x0 ! evaluate the polynomial poly3=y0+t0*t1*(c1+c2*t1) return end function real(8) function poly4i(xa,ya,x) implicit none ! arguments real(8), intent(in) :: xa(4),ya(4),x ! local variables real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) c1,c2,c3,t0,t1,t2,t3,t4,t5,t6 ! evaluate the polynomial coefficients x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0 t4=x1-x2; t5=x1-x3; t6=x2-x3 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 c3=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 c2=t1*(t5-t4)+t2*(t6-t5)+t3*(t4-t6) c1=t1*(x2*t4-x1*t5)+t2*(x3*t5-x2*t6)+t3*(x1*t6-x3*t4) t1=x-x0 ! integrate the polynomial poly4i=t1*(y0+t0*t1*(0.5d0*c1+t1*(0.3333333333333333333d0*c2+0.25d0*c3*t1))) return end function end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/mixadapt.f900000644000000000000000000000013213543334735014756 xustar0030 mtime=1569569245.963641093 30 atime=1569569242.207643492 30 ctime=1569569245.963641093 elk-6.3.2/src/mixadapt.f900000644002504400250440000000506013543334735017026 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: mixadapt ! !INTERFACE: subroutine mixadapt(iscl,beta0,betamax,n,nu,mu,beta,f,d) ! !INPUT/OUTPUT PARAMETERS: ! iscl : self-consistent loop number (in,integer) ! beta0 : mixing parameter (in,real) ! betamax : maximum mixing parameter (in,real) ! n : vector length (in,integer) ! nu : current output vector as well as the next input vector of the ! self-consistent loop (inout,real(n)) ! mu : used internally (inout,real(n)) ! beta : used internally (inout,real(n)) ! f : used internally (inout,real(n)) ! d : RMS difference between old and new output vectors (out,real) ! !DESCRIPTION: ! Given the input vector $\mu^i$ and output vector $\nu^i$ of the $i$th ! self-consistent loop, this routine generates the next input vector to the ! loop using an adaptive mixing scheme. The $j$th component of the output ! vector is mixed with a fraction of the same component of the input vector: ! $$ \mu^{i+1}_j=\beta^i_j\nu^i_j+(1-\beta^i_j)\mu^i_j, $$ ! where $\beta^{i+1}_j=\beta^i_j+\beta_0$ if $f^i_j\equiv\nu^i_j-\mu^i_j$ does ! not change sign between loops. If $f^i_j$ does change sign, then ! $\beta^{i+1}_j=(\beta^i_j+\beta_0)/2$. Note that the array {\tt nu} serves ! for both input and output, and the arrays {\tt mu}, {\tt beta} and {\tt f} ! are used internally and should not be changed between calls. The routine is ! thread-safe so long as each thread has its own independent work arrays. ! Complex arrays may be passed as real arrays with $n$ doubled. ! ! !REVISION HISTORY: ! Created March 2003 (JKD) ! Modified, September 2008 (JKD) ! Modified, August 2011 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: iscl real(8), intent(in) :: beta0,betamax integer, intent(in) :: n real(8), intent(inout) :: nu(n),mu(n) real(8), intent(inout) :: beta(n),f(n) real(8), intent(out) :: d ! local variables integer i real(8) t1 if (n.le.0) return ! initialise mixer if (iscl.le.0) then call dcopy(n,nu,1,mu,1) f(:)=0.d0 beta(:)=beta0 d=1.d0 return end if d=0.d0 do i=1,n t1=nu(i)-mu(i) d=d+t1**2 if (t1*f(i).ge.0.d0) then beta(i)=beta(i)+beta0 if (beta(i).gt.betamax) beta(i)=betamax else beta(i)=0.5d0*(beta(i)+beta0) end if f(i)=t1 nu(i)=beta(i)*nu(i)+(1.d0-beta(i))*mu(i) mu(i)=nu(i) end do d=sqrt(d/dble(n)) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genffacgp.f900000644000000000000000000000013013543334735015065 xustar0029 mtime=1569569245.96764109 30 atime=1569569242.211643489 29 ctime=1569569245.96764109 elk-6.3.2/src/genffacgp.f900000644002504400250440000000116213543334735017136 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genffacgp(is,gpc,ffacgp) use modmain implicit none ! arguments integer, intent(in) :: is real(8), intent(in) :: gpc(ngtot) real(8), intent(out) :: ffacgp(ngtot) ! local variables integer ig real(8) t1,t2 t1=fourpi/omega do ig=1,ngtot if (gpc(ig).gt.epslat) then t2=gpc(ig)*rmt(is) ffacgp(ig)=t1*(sin(t2)-t2*cos(t2))/(gpc(ig)**3) else ffacgp(ig)=(t1/3.d0)*rmt(is)**3 end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/genidxlo.f900000644000000000000000000000013213543334735014760 xustar0030 mtime=1569569245.971641088 30 atime=1569569242.215643487 30 ctime=1569569245.971641088 elk-6.3.2/src/genidxlo.f900000644002504400250440000000164713543334735017037 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genidxlo ! !INTERFACE: subroutine genidxlo ! !USES: use modmain ! !DESCRIPTION: ! Generates an index array which maps the local-orbitals in each atom to their ! locations in the overlap or Hamiltonian matrices. Also finds the total ! number of local-orbitals. ! ! !REVISION HISTORY: ! Created June 2003 (JKD) !EOP !BOC implicit none ! local variables integer is,ias,i,ilo,l,m,lm ! allocate global local-orbital index if (allocated(idxlo)) deallocate(idxlo) allocate(idxlo(lolmmax,nlomax,natmtot)) i=0 do ias=1,natmtot is=idxis(ias) do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l i=i+1 lm=idxlm(l,m) idxlo(lm,ilo,ias)=i end do end do end do nlotot=i return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writeengy.f900000644000000000000000000000013213543334735015164 xustar0030 mtime=1569569245.976641084 30 atime=1569569242.220643483 30 ctime=1569569245.976641084 elk-6.3.2/src/writeengy.f900000644002504400250440000000305713543334735017240 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine writeengy(fnum) use modmain use moddftu implicit none ! arguments integer, intent(in) :: fnum write(fnum,*) write(fnum,'("Energies :")') write(fnum,'(" Fermi",T30,": ",G22.12)') efermi write(fnum,'(" sum of eigenvalues",T30,": ",G22.12)') evalsum write(fnum,'(" electron kinetic",T30,": ",G22.12)') engykn write(fnum,'(" core electron kinetic",T30,": ",G22.12)') engykncr write(fnum,'(" Coulomb",T30,": ",G22.12)') engycl write(fnum,'(" Coulomb potential",T30,": ",G22.12)') engyvcl write(fnum,'(" nuclear-nuclear",T30,": ",G22.12)') engynn write(fnum,'(" electron-nuclear",T30,": ",G22.12)') engyen write(fnum,'(" Hartree",T30,": ",G22.12)') engyhar write(fnum,'(" Madelung",T30,": ",G22.12)') engymad write(fnum,'(" xc potential",T30,": ",G22.12)') engyvxc if (spinpol) then write(fnum,'(" xc effective B-field",T30,": ",G22.12)') engybxc write(fnum,'(" external B-field",T30,": ",G22.12)') engybext end if write(fnum,'(" exchange",T30,": ",G22.12)') engyx write(fnum,'(" correlation",T30,": ",G22.12)') engyc if (dftu.ne.0) then write(fnum,'(" DFT+U",T30,": ",G22.12)') engydu end if if (stype.eq.3) then write(fnum,'(" electron entropic",T30,": ",G22.12)') engyts end if write(fnum,'(" total energy",T30,": ",G22.12)') engytot if (spinpol) then write(fnum,'(" (external B-field energy excluded from total)")') end if flush(fnum) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genpmatk.f900000644000000000000000000000013213543334735014755 xustar0030 mtime=1569569245.980641082 30 atime=1569569242.224643481 30 ctime=1569569245.980641082 elk-6.3.2/src/genpmatk.f900000644002504400250440000001372413543334735017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genpmatk ! !INTERFACE: subroutine genpmatk(ngp,igpig,vgpc,wfmt,wfgp,pmat) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ngp : number of G+p-vectors (in,integer(nspnfv)) ! igpig : index from G+p-vectors to G-vectors (in,integer(ngkmax,nspnfv)) ! vgpc : G+p-vectors in Cartesian coordinates (in,real(3,ngkmax,nspnfv)) ! wfmt : muffin-tin wavefunction in spherical harmonics ! (in,complex(npcmtmax,natmtot,nspinor,nstsv)) ! wfgp : interstitial wavefunction in plane wave basis ! (in,complex(ngkmax,nspinor,nstsv)) ! pmat : momentum matrix elements (out,complex(nstsv,nstsv,3)) ! !DESCRIPTION: ! Calculates the momentum matrix elements ! $$ P_{ij}=\int d^3r\,\Psi_{i{\bf k}}^*({\bf r})\left(-i\nabla ! +\frac{1}{4c^2}\left[\vec{\sigma}\times\nabla V_s({\bf r})\right]\right) ! \Psi_{j{\bf k}}({\bf r}), $$ ! where $V_s$ is the Kohn-Sham effective potential. The second term in the ! brackets is only calculated if spin-orbit coupling is enabled. See Rathgen ! and Katsnelson, {\it Physica Scripta} {\bf T109}, 170 (2004). ! ! !REVISION HISTORY: ! Created November 2003 (Sharma) ! Fixed bug found by Juergen Spitaler, September 2006 (JKD) ! Added spin-orbit correction, July 2010 (JKD) ! Fixed bug found by Koichi Kitahara, January 2014 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) real(8), intent(in) :: vgpc(3,ngkmax,nspnfv) complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) complex(8), intent(in) :: wfgp(ngkmax,nspinor,nstsv) complex(8), intent(out) :: pmat(nstsv,nstsv,3) ! local variables integer ist,jst,ispn,jspn integer is,ia,ias integer nrc,nrci,npc integer igp,ifg,i real(8) cso complex(8) z1,z2,z11,z12,z21,z22,z31,z32 ! allocatable arrays real(8), allocatable :: rfmt(:) complex(8), allocatable :: gwfmt(:,:,:),gwfir(:,:),x(:) complex(8), allocatable :: gvmt(:,:),zfmt1(:,:),zfmt2(:,:,:) ! external functions complex(8) zfmtinp,zdotc external zfmtinp,zdotc ! coefficient of spin-orbit coupling cso=1.d0/(4.d0*solsc**2) ! zero the momentum matrix elements array pmat(:,:,:)=0.d0 !---------------------------------! ! muffin-tin contribution ! !---------------------------------! allocate(rfmt(npcmtmax),gwfmt(npcmtmax,3,nspinor)) if (spinorb) then allocate(gvmt(npcmtmax,3)) allocate(zfmt1(npcmtmax,nspinor)) allocate(zfmt2(npcmtmax,3,nspinor)) end if do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) ! compute gradient of potential for spin-orbit correction if required if (spinorb) then call rfmtftoc(nrc,nrci,vsmt(:,ias),rfmt) !********** out of k-loop call rtozfmt(nrc,nrci,rfmt,zfmt1) call gradzfmt(nrc,nrci,rlcmt(:,1,is),rlcmt(:,-1,is),zfmt1,npcmtmax,gvmt) ! convert to spherical coordinates do i=1,3 zfmt1(1:npc,1)=gvmt(1:npc,i) call zbsht(nrc,nrci,zfmt1,gvmt(:,i)) end do end if do jst=1,nstsv do ispn=1,nspinor ! compute the gradient of the wavefunction call gradzfmt(nrc,nrci,rlcmt(:,1,is),rlcmt(:,-1,is), & wfmt(:,ias,ispn,jst),npcmtmax,gwfmt(:,:,ispn)) end do ! add spin-orbit correction if required if (spinorb) then do ispn=1,nspinor ! convert wavefunction to spherical coordinates call zbsht(nrc,nrci,wfmt(:,ias,ispn,jst),zfmt1(:,ispn)) end do ! compute i sigma x (grad V(r)) psi(r) do i=1,npc z1=zfmt1(i,1) z1=cmplx(-aimag(z1),dble(z1),8) z2=zfmt1(i,2) z2=cmplx(-aimag(z2),dble(z2),8) z11=gvmt(i,1)*z1; z12=gvmt(i,1)*z2 z21=gvmt(i,2)*z1; z22=gvmt(i,2)*z2 z31=gvmt(i,3)*z1; z32=gvmt(i,3)*z2 zfmt2(i,1,1)=cmplx(aimag(z32),-dble(z32),8)-z21 zfmt2(i,1,2)=cmplx(-aimag(z31),dble(z31),8)+z22 zfmt2(i,2,1)=z11-z32 zfmt2(i,2,2)=-z12-z31 zfmt2(i,3,1)=cmplx(-aimag(z12),dble(z12),8)+z22 zfmt2(i,3,2)=cmplx(aimag(z11),-dble(z11),8)+z21 end do ! convert to spherical harmonics and add to wavefunction gradient do ispn=1,nspinor do i=1,3 call zfsht(nrc,nrci,zfmt2(:,i,ispn),zfmt1) gwfmt(1:npc,i,ispn)=gwfmt(1:npc,i,ispn)+cso*zfmt1(1:npc,1) end do end do end if ! find the overlaps do i=1,3 do ist=1,jst do ispn=1,nspinor pmat(ist,jst,i)=pmat(ist,jst,i)+zfmtinp(nrc,nrci,wrcmt(:,is), & wfmt(:,ias,ispn,ist),gwfmt(:,i,ispn)) end do end do end do end do end do end do deallocate(rfmt,gwfmt) if (spinorb) deallocate(gvmt,zfmt1,zfmt2) !-----------------------------------! ! interstitial contribution ! !-----------------------------------! allocate(gwfir(ngtot,3),x(ngkmax)) do jst=1,nstsv do ispn=1,nspinor jspn=jspnfv(ispn) ! compute the gradient gwfir(:,:)=0.d0 do igp=1,ngp(jspn) ifg=igfft(igpig(igp,jspn)) z1=wfgp(igp,ispn,jst) gwfir(ifg,:)=vgpc(:,igp,jspn)*cmplx(-aimag(z1),dble(z1),8) end do do i=1,3 ! Fourier transform to real-space call zfftifc(3,ngridg,1,gwfir(:,i)) ! multiply by characteristic function gwfir(:,i)=gwfir(:,i)*cfunir(:) ! Fourier transform back to G-space call zfftifc(3,ngridg,-1,gwfir(:,i)) end do ! find the overlaps do i=1,3 do igp=1,ngp(jspn) ifg=igfft(igpig(igp,jspn)) x(igp)=gwfir(ifg,i) end do do ist=1,jst pmat(ist,jst,i)=pmat(ist,jst,i)+zdotc(ngp(jspn),wfgp(:,ispn,ist),1,x,1) end do end do end do end do deallocate(gwfir,x) ! multiply by -i and set lower triangular part do i=1,3 do ist=1,nstsv do jst=ist,nstsv z1=pmat(ist,jst,i) z1=cmplx(aimag(z1),-dble(z1),8) pmat(ist,jst,i)=z1 pmat(jst,ist,i)=conjg(z1) end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/putevecsv.f900000644000000000000000000000013213543334735015173 xustar0030 mtime=1569569245.985641079 30 atime=1569569242.229643478 30 ctime=1569569245.985641079 elk-6.3.2/src/putevecsv.f900000644002504400250440000000165413543334735017250 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putevecsv(fext,ik,evecsv) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik complex(8), intent(in) :: evecsv(nstsv,nstsv) ! local variables integer recl,i character(256) fname ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,evecsv fname=trim(scrpath)//'EVECSV'//trim(fext) !$OMP CRITICAL(u126) do i=1,2 open(126,file=trim(fname),form='UNFORMATTED',access='DIRECT',recl=recl,err=10) write(126,rec=ik,err=10) vkl(:,ik),nstsv,evecsv close(126) exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(putevecsv): unable to write to ",A)') trim(fname) write(*,*) stop end if close(126) end do !$OMP END CRITICAL(u126) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getevecsv.f900000644000000000000000000000013213543334735015142 xustar0030 mtime=1569569245.989641076 30 atime=1569569242.233643475 30 ctime=1569569245.989641076 elk-6.3.2/src/getevecsv.f900000644002504400250440000000446513543334735017222 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getevecsv(fext,ikp,vpl,evecsv) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ikp real(8), intent(in) :: vpl(3) complex(8), intent(out) :: evecsv(nstsv,nstsv) ! local variables integer isym,lspn,ik,ist,i integer recl,nstsv_ real(8) vkl_(3),det,v(3),th,t1 complex(8) su2(2,2),z1,z2 character(256) fname if (ikp.gt.0) then ik=ikp else ! find the equivalent k-point number and symmetry which rotates vkl to vpl call findkpt(vpl,isym,ik) end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,evecsv fname=trim(scrpath)//'EVECSV'//trim(fext) !$OMP CRITICAL(u126) do i=1,2 open(126,file=trim(fname),form='UNFORMATTED',access='DIRECT',recl=recl,err=10) read(126,rec=ik,err=10) vkl_,nstsv_,evecsv exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(getevecsv): unable to read from ",A)') trim(fname) write(*,*) stop end if close(126) end do !$OMP END CRITICAL(u126) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getevecsv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EVECSV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getevecsv): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" EVECSV.OUT : ",I8)') nstsv_ write(*,*) stop end if ! if eigenvectors are spin-unpolarised return if (.not.spinpol) return ! if p = k then return if (ikp.gt.0) return ! index to global spin rotation in lattice point group lspn=lspnsymc(isym) ! if symmetry element is the identity return if (lspn.eq.1) return ! find the SU(2) representation of the spin rotation matrix call rotaxang(epslat,symlatc(:,:,lspn),det,v,th) call axangsu2(v,th,su2) ! apply SU(2) matrix to second-variational states (active transformation) do i=1,nstsv do ist=1,nstfv z1=evecsv(ist,i) z2=evecsv(ist+nstfv,i) evecsv(ist,i)=su2(1,1)*z1+su2(1,2)*z2 evecsv(ist+nstfv,i)=su2(2,1)*z1+su2(2,2)*z2 end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/writegclq.f900000644000000000000000000000013213543334735015150 xustar0030 mtime=1569569245.993641074 30 atime=1569569242.238643472 30 ctime=1569569245.993641074 elk-6.3.2/src/writegclq.f900000644002504400250440000000157213543334735017224 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writegclq ! !INTERFACE: subroutine writegclq ! !USES: use modmain ! !DESCRIPTION: ! Outputs the volume-averaged integral of $4\pi/q^2$ in the small ! parallelepiped around each discrete $q$-point to the file {\tt GCLQ.OUT}. ! These represent the regularised Coulomb Green's function in reciprocal ! space for small $q$. See the routine gengclq. ! ! !REVISION HISTORY: ! Created June 2005 (JKD) !EOP !BOC implicit none ! local variables integer iq open(50,file='GCLQ'//trim(filext),form='FORMATTED') write(50,'(I6," : nqpt; q-point, vql, gclq below")') nqpt do iq=1,nqpt write(50,'(I6,4G18.10)') iq,vql(:,iq),gclq(iq) end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/putevalsv.f900000644000000000000000000000013013543334735015176 xustar0029 mtime=1569569245.99864107 30 atime=1569569242.243643469 29 ctime=1569569245.99864107 elk-6.3.2/src/putevalsv.f900000644002504400250440000000126413543334735017252 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putevalsv(fext,ik,evalsvp) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ik real(8), intent(in) :: evalsvp(nstsv) ! local variables integer recl ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,evalsvp !$OMP CRITICAL(u124) open(124,file='EVALSV'//trim(fext),form='UNFORMATTED',access='DIRECT', & action='WRITE',recl=recl) write(124,rec=ik) vkl(:,ik),nstsv,evalsvp close(124) !$OMP END CRITICAL(u124) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genppts.f900000644000000000000000000000013213543334736014630 xustar0030 mtime=1569569246.002641068 30 atime=1569569242.247643466 30 ctime=1569569246.002641068 elk-6.3.2/src/genppts.f900000644002504400250440000001331213543334736016677 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: genppts ! !INTERFACE: subroutine genppts(tfbz,nsym,sym,ngridp,npptnr,epslat,bvec,boxl,nppt,ipvip, & ipvipnr,ivp,vpl,vpc,wppt,wpptnr) ! !INPUT/OUTPUT PARAMETERS: ! tfbz : .true. if vpl and vpc should be mapped to the first Brillouin zone ! (in,logical) ! nsym : number of point group symmetries used for reduction, set to 1 for ! no reduction (in,integer) ! sym : symmetry matrices in lattice coordinates (in,integer(3,3,*)) ! ngridp : p-point grid sizes (in,integer(3)) ! npptnr : number of non-reduced p-points: ngridp(1)*ngridp(2)*ngridp(3) ! (in,integer) ! epslat : tolerance for determining identical vectors (in,real) ! bvec : reciprocal lattice vectors (in,real(3,3)) ! boxl : corners of box containing p-points in lattice coordinates, the ! zeroth vector is the origin (in,real(3,0:3)) ! nppt : total number of p-points (out,integer) ! ipvip : map from (i1,i2,i3) to reduced p-point index ! (out,integer(0:ngridp(1)-1,0:ngridp(2)-1,0:ngridp(3)-1)) ! ipvipnr : map from (i1,i2,i3) to non-reduced p-point index ! (out,integer(0:ngridp(1)-1,0:ngridp(2)-1,0:ngridp(3)-1)) ! ivp : integer coordinates of the p-points ! (out,integer(3,ngridp(1)*ngridp(2)*ngridp(3))) ! vpl : lattice coordinates of each p-point ! (out,real(3,ngridp(1)*ngridp(2)*ngridp(3))) ! vpc : Cartesian coordinates of each p-point ! (out,real(3,ngridp(1)*ngridp(2)*ngridp(3))) ! wppt : weights of each reduced p-point ! (out,real(ngridp(1)*ngridp(2)*ngridp(3))) ! wpptnr : weight of each non-reduced p-point (out,real) ! !DESCRIPTION: ! This routine is used for generating $k$-point or $q$-point sets. Since these ! are stored in global arrays, the points passed to this and other routines ! are referred to as $p$-points. In lattice coordinates, the ${\bf p}$ vectors ! are given by ! $$ {\bf p}=\left(\begin{matrix} & & \\ ! {\bf B}_2-{\bf B}_1 & {\bf B}_3-{\bf B}_1 & {\bf B}_4-{\bf B}_1 \\ ! & & \end{matrix}\right) ! \left(\begin{matrix}i_1/n_1 \\ i_2/n_2 \\ i_3/n_3 \end{matrix}\right) ! +{\bf B}_1 $$ ! where $i_j$ runs from 0 to $n_j-1$, and the ${\bf B}$ vectors define the ! corners of a box with ${\bf B}_1$ as the origin. If {\tt tfbz} is ! {\tt .true.} then each {\tt vpl} vector is mapped to the first Brillouin ! zone. If {\tt tfbz} is {\tt .false.} and {\tt nsym} $>0$, then the ! coordinates of each {\tt vpl} are mapped to the $[0,1)$ interval. The ! $p$-point weights are stored in {\tt wppt} and the array {\tt ipvip} ! contains the map from the integer coordinates to the reduced index. ! ! !REVISION HISTORY: ! Created August 2002 (JKD) ! Updated April 2007 (JKD) ! Added mapping to the first Brillouin zone, September 2008 (JKD) ! Made independent of modmain, February 2010 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tfbz integer, intent(in) :: nsym,sym(3,3,*) integer, intent(in) :: ngridp(3),npptnr real(8), intent(in) :: epslat real(8), intent(in) :: bvec(3,3),boxl(3,0:3) integer, intent(out) :: nppt integer, intent(out) :: ipvip(0:ngridp(1)-1,0:ngridp(2)-1,0:ngridp(3)-1) integer, intent(out) :: ipvipnr(0:ngridp(1)-1,0:ngridp(2)-1,0:ngridp(3)-1) integer, intent(out) :: ivp(3,npptnr) real(8), intent(out) :: vpl(3,npptnr),vpc(3,npptnr) real(8), intent(out) :: wppt(npptnr),wpptnr ! local variables integer i1,i2,i3,i integer isym,ip,jp real(8) v1(3),v2(3),v3(3),v4(3) real(8) b(3,3),t1 if ((ngridp(1).le.0).or.(ngridp(2).le.0).or.(ngridp(3).le.0)) then write(*,*) write(*,'("Error(genppts): invalid ngridp : ",3I8)') ngridp write(*,*) stop end if if (npptnr.ne.ngridp(1)*ngridp(2)*ngridp(3)) then write(*,*) write(*,'("Error(genppts): mismatched npptnr and ngridp : ",4I8)') npptnr, & ngridp write(*,*) stop end if ! box vector matrix b(:,1)=boxl(:,1)-boxl(:,0) b(:,2)=boxl(:,2)-boxl(:,0) b(:,3)=boxl(:,3)-boxl(:,0) ! weight of each non-reduced p-point wpptnr=1.d0/dble(ngridp(1)*ngridp(2)*ngridp(3)) ip=0 jp=npptnr+1 do i3=0,ngridp(3)-1 v1(3)=dble(i3)/dble(ngridp(3)) do i2=0,ngridp(2)-1 v1(2)=dble(i2)/dble(ngridp(2)) do i1=0,ngridp(1)-1 v1(1)=dble(i1)/dble(ngridp(1)) call r3mv(b,v1,v2) v2(:)=v2(:)+boxl(:,0) if (nsym.gt.1) then ! determine if this point is equivalent to one already in the set do isym=1,nsym v3(:)=sym(1,:,isym)*v2(1)+sym(2,:,isym)*v2(2)+sym(3,:,isym)*v2(3) call r3frac(epslat,v3) do i=1,ip v4(:)=vpl(:,i) call r3frac(epslat,v4) t1=abs(v4(1)-v3(1))+abs(v4(2)-v3(2))+abs(v4(3)-v3(3)) if (t1.lt.epslat) then ! equivalent p-point found so add to existing weight ipvip(i1,i2,i3)=i wppt(i)=wppt(i)+wpptnr ! add new point to back of set jp=jp-1 ipvipnr(i1,i2,i3)=jp ivp(1,jp)=i1; ivp(2,jp)=i2; ivp(3,jp)=i3 vpl(:,jp)=v2(:) wppt(jp)=0.d0 goto 10 end if end do end do end if ! add new point to set ip=ip+1 ipvip(i1,i2,i3)=ip ipvipnr(i1,i2,i3)=ip ivp(1,ip)=i1; ivp(2,ip)=i2; ivp(3,ip)=i3 vpl(:,ip)=v2(:) wppt(ip)=wpptnr 10 continue end do end do end do nppt=ip do ip=1,npptnr ! map vpl to the first Brillouin zone if required if (tfbz) call vecfbz(epslat,bvec,vpl(:,ip)) ! determine the Cartesian coordinates of the p-points call r3mv(bvec,vpl(:,ip),vpc(:,ip)) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/force.f900000644000000000000000000000013213543334736014246 xustar0030 mtime=1569569246.007641065 30 atime=1569569242.251643464 30 ctime=1569569246.007641065 elk-6.3.2/src/force.f900000644002504400250440000001750313543334736016323 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: force ! !INTERFACE: subroutine force ! !USES: use modmain use modtest use modmpi use modomp ! !DESCRIPTION: ! Computes the various contributions to the atomic forces. In principle, the ! force acting on a nucleus is simply the gradient at that site of the ! classical electrostatic potential from the other nuclei and the electronic ! density. This is a result of the Hellmann-Feynman theorem. However because ! the basis set is dependent on the nuclear coordinates and is not complete, ! the Hellman-Feynman force is inacurate and corrections to it are required. ! The first is the core correction which arises because the core wavefunctions ! were determined by neglecting the non-spherical parts of the Kohn-Sham ! potential $v_s$. Explicitly this is given by ! $$ {\bf F}_{\rm core}^{\alpha}=\int_{\rm MT_{\alpha}} v_s({\bf r}) ! \nabla\rho_{\rm core}^{\alpha}({\bf r})\,d{\bf r} $$ ! for atom $\alpha$. The second, which is the incomplete basis set (IBS) ! correction, is due to the position dependence of the APW functions, and is ! derived by considering the change in total energy if the eigenvector ! coefficients were fixed and the APW functions themselves were changed. This ! would result in changes to the first-variational Hamiltonian and overlap ! matrices given by ! \begin{align*} ! \delta H_{\bf G,G'}^{\alpha}&=i({\bf G-G'}) ! \left(H^{\alpha}_{\bf G+k,G'+k}-\frac{1}{2}({\bf G+k})\cdot({\bf G'+k}) ! \tilde{\Theta}_{\alpha}({\bf G-G'})e^{-i({\bf G-G'})\cdot{\bf r}_{\alpha}} ! \right)\\ ! \delta O_{\bf G,G'}^{\alpha}&=i({\bf G-G'})\left(O^{\alpha}_{\bf G+k,G'+k} ! -\tilde{\Theta}_{\alpha}({\bf G-G'})e^{-i({\bf G-G'})\cdot{\bf r}_{\alpha}} ! \right) ! \end{align*} ! where both ${\bf G}$ and ${\bf G'}$ run over the APW indices; ! $\tilde{\Theta}_{\alpha}$ is the form factor of the smooth step function for ! muffin-tin $\alpha$; and $H^{\alpha}$ and $O^{\alpha}$ are the muffin-tin ! Hamiltonian and overlap matrices, respectively. The APW-local-orbital part ! is given by ! \begin{align*} ! \delta H_{\bf G,G'}^{\alpha}&=i({\bf G+k})H^{\alpha}_{\bf G+k,G'+k}\\ ! \delta O_{\bf G,G'}^{\alpha}&=i({\bf G+k})O^{\alpha}_{\bf G+k,G'+k} ! \end{align*} ! where ${\bf G}$ runs over the APW indices and ${\bf G'}$ runs over the ! local-orbital indices. There is no contribution from the ! local-orbital-local-orbital part of the matrices. We can now write the IBS ! correction in terms of the basis of first-variational states as ! \begin{align*} ! {\bf F}_{ij}^{\alpha{\bf k}}=\sum_{\bf G,G'} ! b^{i{\bf k}*}_{\bf G}b^{j{\bf k}}_{\bf G'}\left( ! \delta H_{\bf G,G'}^{\alpha}-\epsilon_j\delta O_{\bf G,G'}^{\alpha}\right), ! \end{align*} ! where $b^{i{\bf k}}$ is the first-variational eigenvector. ! Finally, the ${\bf F}_{ij}^{\alpha{\bf k}}$ matrix elements can be ! multiplied by the second-variational coefficients, and contracted over all ! indices to obtain the IBS force: ! \begin{align*} ! {\bf F}_{\rm IBS}^{\alpha}=\sum_{\bf k}w_{\bf k}\sum_{l\sigma}n_{l{\bf k}} ! \sum_{ij}c_{\sigma i}^{l{\bf k}*}c_{\sigma j}^{l{\bf k}} ! {\bf F}_{ij}^{\alpha{\bf k}} ! +\int_{\rm MT_{\alpha}}v_s({\bf r})\nabla\left[\rho({\bf r}) ! -\rho^{\alpha}_{\rm core}({\bf r})\right]\,d{\bf r}, ! \end{align*} ! where $c^{l{\bf k}}$ are the second-variational coefficients, $w_{\bf k}$ ! are the $k$-point weights, $n_{l{\bf k}}$ are the occupancies. See routines ! {\tt hmlaa}, {\tt olpaa}, {\tt hmlalo}, {\tt olpalo}, {\tt energy}, ! {\tt eveqn} and {\tt gencfun}. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) ! Fixed problem with second-variational forces, May 2008 (JKD) !EOP !BOC implicit none ! local variables integer ik,idm,ispn integer is,ias,nr,nri integer np,i,nthd real(8) t1 real(8) ts0,ts1 ! allocatable arrays real(8), allocatable :: rfmt1(:,:),rfmt2(:),grfmt(:,:) ! external functions real(8) rfmtinp external rfmtinp call timesec(ts0) allocate(grfmt(npmtmax,3)) !---------------------------------! ! Hellmann-Feynman forces ! !---------------------------------! do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),vclmt(:,ias),npmtmax,grfmt) do i=1,3 forcehf(i,ias)=-spzn(is)*grfmt(1,i)*y00 end do end do ! symmetrise Hellmann-Feynman forces call symveca(forcehf) !----------------------------------! ! IBS correction to forces ! !----------------------------------! ! set the IBS forces to zero forceibs(:,:)=0.d0 ! compute k-point dependent contribution to the IBS forces call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call forcek(ik) end do !$OMP END PARALLEL DO call freethd(nthd) ! add IBS forces from each process and redistribute if (np_mpi.gt.1) then call mpi_allreduce(mpi_in_place,forceibs,3*natmtot,mpi_double_precision, & mpi_sum,mpicom,ierror) end if ! integral of Kohn-Sham potential with gradient of density do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rhomt(:,ias),npmtmax,grfmt) do i=1,3 t1=rfmtinp(nr,nri,wrmt(:,is),vsmt(:,ias),grfmt(:,i)) forceibs(i,ias)=forceibs(i,ias)+t1 end do end do ! integral of Kohn-Sham magnetic field with magnetisation gradient if (spinpol) then allocate(rfmt1(npmtmax,natmtot)) do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call rfsht(nrcmt(is),nrcmti(is),bsmt(:,ias,idm),rfmt1(:,ias)) end do call rfmtctof(rfmt1) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),magmt(:,ias,idm), & npmtmax,grfmt) do i=1,3 t1=rfmtinp(nr,nri,wrmt(:,is),rfmt1(:,ias),grfmt(:,i)) forceibs(i,ias)=forceibs(i,ias)+t1 end do end do end do deallocate(rfmt1) end if ! integral of Kohn-Sham tau-DFT potential with kinetic energy density gradient if (xcgrad.eq.4) then allocate(rfmt1(npmtmax,natmtot),rfmt2(npmtmax)) do ias=1,natmtot is=idxis(ias) call rfsht(nrcmt(is),nrcmti(is),wsmt(:,ias),rfmt1(:,ias)) end do call rfmtctof(rfmt1) do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) rfmt2(1:np)=taumt(1:np,ias,ispn)-taucr(1:np,ias,ispn) call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt2,npmtmax,grfmt) do i=1,3 t1=rfmtinp(nr,nri,wrmt(:,is),rfmt1(:,ias),grfmt(:,i)) forceibs(i,ias)=forceibs(i,ias)+t1 end do end do end do deallocate(rfmt1,rfmt2) end if ! symmetrise IBS forces call symveca(forceibs) ! total force on each atom do ias=1,natmtot forcetot(:,ias)=forcehf(:,ias)+forceibs(:,ias) end do ! symmetrise total forces call symveca(forcetot) ! compute the average force do i=1,3 forceav(i)=0.d0 do ias=1,natmtot forceav(i)=forceav(i)+forcetot(i,ias) end do forceav(i)=forceav(i)/dble(natmtot) end do ! remove the average force, if required, to prevent translation of atomic basis if (tfav0) then do ias=1,natmtot forcetot(:,ias)=forcetot(:,ias)-forceav(:) end do end if ! zero force on atoms with negative mass do ias=1,natmtot is=idxis(ias) if (spmass(is).le.0.d0) forcetot(:,ias)=0.d0 end do ! compute maximum force magnitude over all atoms forcemax=0.d0 do ias=1,natmtot t1=sqrt(forcetot(1,ias)**2+forcetot(2,ias)**2+forcetot(3,ias)**2) if (t1.gt.forcemax) forcemax=t1 end do deallocate(grfmt) call timesec(ts1) timefor=timefor+ts1-ts0 ! write total forces to test file call writetest(750,'total forces',nv=3*natmtot,tol=1.d-3,rva=forcetot) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/vecfbz.f900000644000000000000000000000013113543334736014426 xustar0030 mtime=1569569246.011641062 29 atime=1569569242.25764346 30 ctime=1569569246.011641062 elk-6.3.2/src/vecfbz.f900000644002504400250440000000271613543334736016504 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: vecfbz ! !INTERFACE: subroutine vecfbz(eps,bvec,vpl) ! !INPUT/OUTPUT PARAMETERS: ! eps : zero component tolerance (in,real) ! bvec : reciprocal lattice vectors (in,real(3,3)) ! vpl : input vector in lattice coordinates (inout,real(3)) ! !DESCRIPTION: ! Maps a vector in lattice coordinates to the first Brillouin zone. This is ! done by first removing its integer components and then adding primitive ! reciprocal lattice vectors until the shortest vector is found. ! ! !REVISION HISTORY: ! Created September 2008 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(in) :: eps,bvec(3,3) real(8), intent(inout) :: vpl(3) ! local variables integer i1,i2,i3,j1,j2,j3 real(8) v0(3),v1(3),v2(3),v3(3),t1,t2 ! map vector to [0,1) interval call r3frac(eps,vpl) v0(:)=bvec(:,1)*vpl(1)+bvec(:,2)*vpl(2)+bvec(:,3)*vpl(3) t1=v0(1)**2+v0(2)**2+v0(3)**2 j1=0; j2=0; j3=0 do i1=-1,0 v1(:)=v0(:)+dble(i1)*bvec(:,1) do i2=-1,0 v2(:)=v1(:)+dble(i2)*bvec(:,2) do i3=-1,0 v3(:)=v2(:)+dble(i3)*bvec(:,3) t2=v3(1)**2+v3(2)**2+v3(3)**2 if (t2.lt.t1+eps) then j1=i1; j2=i2; j3=i3 t1=t2 end if end do end do end do vpl(1)=vpl(1)+dble(j1) vpl(2)=vpl(2)+dble(j2) vpl(3)=vpl(3)+dble(j3) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rfirsm.f900000644000000000000000000000013213543334736014452 xustar0030 mtime=1569569246.016641059 30 atime=1569569242.261643457 30 ctime=1569569246.016641059 elk-6.3.2/src/rfirsm.f900000644002504400250440000000133113543334736016517 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfirsm(m,rfir) use modmain implicit none ! arguments integer, intent(in) :: m real(8), intent(inout) :: rfir(ngtot) ! local variables integer ig,ifg real(8) t0,t1,t2 ! allocatable arrays complex(8), allocatable :: zfft(:) if (m.le.0) return allocate(zfft(ngtot)) zfft(:)=rfir(:) call zfftifc(3,ngridg,-1,zfft) t0=dble(2*m) t1=1.d0/gmaxvr do ig=1,ngtot ifg=igfft(ig) t2=t1*gc(ig) t2=exp(-t0*t2**4) zfft(ifg)=t2*zfft(ifg) end do call zfftifc(3,ngridg,1,zfft) rfir(:)=dble(zfft(:)) deallocate(zfft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gengclgq.f900000644000000000000000000000013213543334736014737 xustar0030 mtime=1569569246.020641056 30 atime=1569569242.265643455 30 ctime=1569569246.020641056 elk-6.3.2/src/gengclgq.f900000644002504400250440000000160513543334736017010 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengclgq(treg,iq,ngq,gqc,gclgq) use modmain implicit none ! arguments logical, intent(in) :: treg integer, intent(in) :: iq,ngq real(8), intent(in) :: gqc(ngq) real(8), intent(out) :: gclgq(ngq) ! local variables integer ig real(8) t1,t2 if (treg) then ! regularise 1/(G+q)^2 for G+q in the first Brillouin zone t1=sqrt(vqc(1,iq)**2+vqc(2,iq)**2+vqc(3,iq)**2) do ig=1,ngq t2=gqc(ig) if (abs(t1-t2).lt.epslat) then gclgq(ig)=gclq(iq) else gclgq(ig)=fourpi/t2**2 end if end do else ! no regularisation do ig=1,ngq t1=gqc(ig) if (t1.gt.epslat) then gclgq(ig)=fourpi/t1**2 else gclgq(ig)=0.d0 end if end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/findsymlat.f900000644000000000000000000000013213543334736015322 xustar0030 mtime=1569569246.024641054 30 atime=1569569242.270643452 30 ctime=1569569246.024641054 elk-6.3.2/src/findsymlat.f900000644002504400250440000001066113543334736017375 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: findsymlat ! !INTERFACE: subroutine findsymlat ! !USES: use modmain use modtddft ! !DESCRIPTION: ! Finds the point group symmetries which leave the Bravais lattice invariant. ! Let $A$ be the matrix consisting of the lattice vectors in columns, then ! $$ g=A^{\rm T}A $$ ! is the metric tensor. Any $3\times 3$ matrix $S$ with elements $-1$, 0 or 1 ! is a point group symmetry of the lattice if $\det(S)$ is $-1$ or 1, and ! $$ S^{\rm T}gS=g. $$ ! The first matrix in the set returned is the identity. ! ! !REVISION HISTORY: ! Created January 2003 (JKD) ! Removed arguments and simplified, April 2007 (JKD) !EOP !BOC implicit none ! local variables integer md,sym(3,3),its,i,j integer i11,i12,i13,i21,i22,i23,i31,i32,i33 real(8) s(3,3),g(3,3),sgs(3,3) real(8) sc(3,3),c(3,3),v(3),t1 ! external functions integer i3mdet external i3mdet ! determine metric tensor call r3mtm(avec,avec,g) ! loop over all possible symmetry matrices nsymlat=0 do i11=-1,1; do i12=-1,1; do i13=-1,1 do i21=-1,1; do i22=-1,1; do i23=-1,1 do i31=-1,1; do i32=-1,1; do i33=-1,1 sym(1,1)=i11; sym(1,2)=i12; sym(1,3)=i13 sym(2,1)=i21; sym(2,2)=i22; sym(2,3)=i23 sym(3,1)=i31; sym(3,2)=i32; sym(3,3)=i33 ! determinant of matrix md=i3mdet(sym) ! matrix should be orthogonal if (abs(md).ne.1) goto 10 ! check invariance of metric tensor s(:,:)=dble(sym(:,:)) call r3mtm(s,g,c) call r3mm(c,s,sgs) do j=1,3 do i=1,3 if (abs(sgs(i,j)-g(i,j)).gt.epslat) goto 10 end do end do ! check invariance of spin-spiral q-vector if required if (spinsprl) then call r3mtv(s,vqlss,v) t1=abs(vqlss(1)-v(1))+abs(vqlss(2)-v(2))+abs(vqlss(3)-v(3)) if (t1.gt.epslat) goto 10 end if ! check invariance of electric field if required if (tefield) then call r3mv(s,efieldl,v) t1=abs(efieldl(1)-v(1))+abs(efieldl(2)-v(2))+abs(efieldl(3)-v(3)) if (t1.gt.epslat) goto 10 end if ! check invariance of A-field if required if (tafield) then call r3mv(s,afieldl,v) t1=abs(afieldl(1)-v(1))+abs(afieldl(2)-v(2))+abs(afieldl(3)-v(3)) if (t1.gt.epslat) goto 10 end if ! check invariance of time-dependent A-field if required if (tafieldt) then call r3mm(s,ainv,c) call r3mm(avec,c,sc) do its=1,ntimes call r3mv(sc,afieldt(:,its),v) t1=abs(afieldt(1,its)-v(1)) & +abs(afieldt(2,its)-v(2)) & +abs(afieldt(3,its)-v(3)) if (t1.gt.epslat) goto 10 end do end if nsymlat=nsymlat+1 if (nsymlat.gt.48) then write(*,*) write(*,'("Error(findsymlat): more than 48 symmetries found")') write(*,'(" (lattice vectors may be linearly dependent)")') write(*,*) stop end if ! store the symmetry and determinant in global arrays symlat(:,:,nsymlat)=sym(:,:) symlatd(nsymlat)=md 10 continue end do; end do; end do end do; end do; end do end do; end do; end do if (nsymlat.eq.0) then write(*,*) write(*,'("Error(findsymlat): no symmetries found")') write(*,*) stop end if ! make the first symmetry the identity do i=1,nsymlat if ((symlat(1,1,i).eq.1).and.(symlat(1,2,i).eq.0).and.(symlat(1,3,i).eq.0) & .and.(symlat(2,1,i).eq.0).and.(symlat(2,2,i).eq.1).and.(symlat(2,3,i).eq.0) & .and.(symlat(3,1,i).eq.0).and.(symlat(3,2,i).eq.0).and.(symlat(3,3,i).eq.1)) & then sym(:,:)=symlat(:,:,1) symlat(:,:,1)=symlat(:,:,i) symlat(:,:,i)=sym(:,:) md=symlatd(1) symlatd(1)=symlatd(i) symlatd(i)=md exit end if end do ! index to the inverse of each operation do i=1,nsymlat call i3minv(symlat(:,:,i),sym) do j=1,nsymlat if ((symlat(1,1,j).eq.sym(1,1)).and.(symlat(1,2,j).eq.sym(1,2)).and. & (symlat(1,3,j).eq.sym(1,3)).and.(symlat(2,1,j).eq.sym(2,1)).and. & (symlat(2,2,j).eq.sym(2,2)).and.(symlat(2,3,j).eq.sym(2,3)).and. & (symlat(3,1,j).eq.sym(3,1)).and.(symlat(3,2,j).eq.sym(3,2)).and. & (symlat(3,3,j).eq.sym(3,3))) then isymlat(i)=j goto 30 end if end do write(*,*) write(*,'("Error(findsymlat): inverse operation not found")') write(*,'(" for lattice symmetry ",I2)') i write(*,*) stop 30 continue end do ! determine the lattice symmetries in Cartesian coordinates do i=1,nsymlat s(:,:)=dble(symlat(:,:,i)) call r3mm(s,ainv,c) call r3mm(avec,c,symlatc(:,:,i)) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/grad2rfmt.f900000644000000000000000000000013213543334736015040 xustar0030 mtime=1569569246.029641051 30 atime=1569569242.274643449 30 ctime=1569569246.029641051 elk-6.3.2/src/grad2rfmt.f900000644002504400250440000000300113543334736017101 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine grad2rfmt(nr,nri,r,ri,ri2,rfmt,g2rfmt) use modmain implicit none ! arguments integer, intent(in) :: nr,nri real(8), intent(in) :: r(nr),ri(nr),ri2(nr) real(8), intent(in) :: rfmt(*) real(8), intent(out) :: g2rfmt(*) ! local variables integer nro,iro,ir integer l,m,lm,npi,i real(8) t1 ! automatic arrays real(8) fr(nr),cf(3,nr) nro=nr-nri iro=nri+1 npi=lmmaxi*nri lm=0 do l=0,lmaxi t1=-dble(l*(l+1)) do m=-l,l lm=lm+1 ! use a cubic spline to compute radial derivatives i=lm do ir=1,nri fr(ir)=rfmt(i) i=i+lmmaxi end do do ir=iro,nr fr(ir)=rfmt(i) i=i+lmmaxo end do call spline(nr,r,fr,cf) ! apply Laplacian i=lm do ir=1,nri g2rfmt(i)=2.d0*(ri(ir)*cf(1,ir)+cf(2,ir))+ri2(ir)*t1*rfmt(i) i=i+lmmaxi end do do ir=iro,nr g2rfmt(i)=2.d0*(ri(ir)*cf(1,ir)+cf(2,ir))+ri2(ir)*t1*rfmt(i) i=i+lmmaxo end do end do end do do l=lmaxi+1,lmaxo t1=-dble(l*(l+1)) do m=-l,l lm=lm+1 i=npi+lm do ir=iro,nr fr(ir)=rfmt(i) i=i+lmmaxo end do call spline(nro,r(iro),fr(iro),cf(1,iro)) i=npi+lm do ir=iro,nr g2rfmt(i)=2.d0*(ri(ir)*cf(1,ir)+cf(2,ir))+ri2(ir)*t1*rfmt(i) i=i+lmmaxo end do end do end do ! apply smoothing if required call rfmtsm(msmooth,nr,nri,g2rfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/findqpt.f900000644000000000000000000000013213543334736014615 xustar0030 mtime=1569569246.033641048 30 atime=1569569242.278643446 30 ctime=1569569246.033641048 elk-6.3.2/src/findqpt.f900000644002504400250440000000202413543334736016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine findqpt(vpl,isym,iq) use modmain implicit none ! arguments real(8), intent(in) :: vpl(3) integer, intent(out) :: isym,iq ! local variables integer ivp(3),lspl real(8) v1(3),v2(3),t1 ivp(:)=nint(vpl(:)*ngridq(:)) ivp(:)=modulo(ivp(:),ngridq(:)) iq=iqmap(ivp(1),ivp(2),ivp(3)) v1(:)=vql(:,iq) call r3frac(epslat,v1) ! find the symmetry which rotates vql to vpl do isym=1,nsymcrys lspl=lsplsymc(isym) ! multiply vpl by the transpose of the symmetry matrix (i.e. the inverse) v2(:)=symlat(1,:,lspl)*vpl(1) & +symlat(2,:,lspl)*vpl(2) & +symlat(3,:,lspl)*vpl(3) call r3frac(epslat,v2) t1=abs(v1(1)-v2(1))+abs(v1(2)-v2(2))+abs(v1(3)-v2(3)) if (t1.lt.epslat) return end do write(*,*) write(*,'("Error(findqpt): equivalent q-point not in set")') write(*,'(" Requested q-point : ",3G18.10)') vpl write(*,*) stop end subroutine elk-6.3.2/src/PaxHeaders.21352/zftwfir.f900000644000000000000000000000013213543334736014643 xustar0030 mtime=1569569246.037641045 30 atime=1569569242.283643443 30 ctime=1569569246.037641045 elk-6.3.2/src/zftwfir.f900000644002504400250440000000204313543334736016711 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zftwfir(ngp,igpig,wfir) use modmain use modomp implicit none ! arguments integer, intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(inout) :: wfir(ngtc,nspinor,nstsv) ! local variables integer ist,ispn,jspn integer igp,ifg,nthd real(8) t0 ! allocatable arrays complex(8), allocatable :: z(:) t0=1.d0/sqrt(omega) call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(z,ispn,jspn,igp,ifg) & !$OMP NUM_THREADS(nthd) allocate(z(ngkmax)) !$OMP DO do ist=1,nstsv do ispn=1,nspinor jspn=jspnfv(ispn) call zcopy(ngp(jspn),wfir(:,ispn,ist),1,z,1) wfir(:,ispn,ist)=0.d0 do igp=1,ngp(jspn) ifg=igfc(igpig(igp,jspn)) wfir(ifg,ispn,ist)=t0*z(igp) end do call zfftifc(3,ngdc,1,wfir(:,ispn,ist)) end do end do !$OMP END DO deallocate(z) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/symrfir.f900000644000000000000000000000013113543334736014642 xustar0030 mtime=1569569246.042641042 29 atime=1569569242.28864344 30 ctime=1569569246.042641042 elk-6.3.2/src/symrfir.f900000644002504400250440000000453413543334736016720 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: symrfir ! !INTERFACE: subroutine symrfir(rfir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! rfir : real intersitial function (inout,real(ngtot)) ! !DESCRIPTION: ! Symmetrises a real scalar interstitial function. The function is first ! Fourier transformed to $G$-space, and then averaged over each symmetry by ! rotating the Fourier coefficients and multiplying them by a phase factor ! corresponding to the symmetry translation. ! ! !REVISION HISTORY: ! Created July 2007 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(inout) :: rfir(ngtot) ! local variables logical tv0 integer isym,lspl,ilspl integer sym(3,3),ig,ifg,jfg integer i1,i2,i3,j1,j2,j3 real(8) v1,v2,v3,t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: zfft1(:),zfft2(:) allocate(zfft1(ngtot),zfft2(ngtot)) ! Fourier transform function to G-space zfft1(:)=rfir(:) call zfftifc(3,ngridg,-1,zfft1) zfft2(:)=0.d0 ! loop over crystal symmetries do isym=1,nsymcrys ! zero translation vector flag tv0=tv0symc(isym) ! translation vector in Cartesian coordinates if (.not.tv0) then v1=vtcsymc(1,isym) v2=vtcsymc(2,isym) v3=vtcsymc(3,isym) end if ! index to lattice symmetry of spatial rotation lspl=lsplsymc(isym) ! inverse rotation required for rotation of G-vectors ilspl=isymlat(lspl) sym(:,:)=symlat(:,:,ilspl) do ig=1,ngvec ifg=igfft(ig) ! multiply the transpose of the inverse symmetry matrix with the G-vector if (lspl.eq.1) then jfg=ifg else i1=ivg(1,ig); i2=ivg(2,ig); i3=ivg(3,ig) j1=sym(1,1)*i1+sym(2,1)*i2+sym(3,1)*i3 j2=sym(1,2)*i1+sym(2,2)*i2+sym(3,2)*i3 j3=sym(1,3)*i1+sym(2,3)*i2+sym(3,3)*i3 jfg=igfft(ivgig(j1,j2,j3)) end if if (tv0) then ! zero translation vector zfft2(jfg)=zfft2(jfg)+zfft1(ifg) else ! complex phase factor for translation t1=-(vgc(1,ig)*v1+vgc(2,ig)*v2+vgc(3,ig)*v3) z1=cmplx(cos(t1),sin(t1),8) zfft2(jfg)=zfft2(jfg)+z1*zfft1(ifg) end if end do end do ! Fourier transform to real-space and normalise call zfftifc(3,ngridg,1,zfft2) t1=1.d0/dble(nsymcrys) rfir(:)=t1*dble(zfft2(:)) deallocate(zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/symrvfir.f900000644000000000000000000000013013543334736015027 xustar0029 mtime=1569569246.04664104 30 atime=1569569242.292643438 29 ctime=1569569246.04664104 elk-6.3.2/src/symrvfir.f900000644002504400250440000000643213543334736017105 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: symrvfir subroutine symrvfir(tspin,tnc,rvfir) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! tspin : .true. if spin rotations should be used (in,logical) ! tnc : .true. if the vector field is non-collinear, otherwise it is ! collinear along the z-axis (in,logical) ! rvfir : real interstitial vector function (inout,real(ngtot,*)) ! !DESCRIPTION: ! Symmetrises a real interstitial vector function. See routines {\tt symrvf} ! and {\tt symrfir} for details. ! ! !REVISION HISTORY: ! Created July 2007 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tspin,tnc real(8), intent(inout) :: rvfir(ngtot,*) ! local variables logical tv0 integer nd,isym,lspl,ilspl,lspn integer sym(3,3),ig,ifg,jfg integer i1,i2,i3,j1,j2,j3,i real(8) sc(3,3),v1,v2,v3,t1 complex(8) zv1(3),zv2(3),z1 ! allocatable arrays complex(8), allocatable :: zfft1(:,:),zfft2(:,:) ! dimension of the vector field if (tnc) then nd=3 else nd=1 end if allocate(zfft1(ngtot,nd),zfft2(ngtot,nd)) ! Fourier transform vector function to G-space do i=1,nd zfft1(:,i)=rvfir(:,i) call zfftifc(3,ngridg,-1,zfft1(:,i)) end do zfft2(:,:)=0.d0 do isym=1,nsymcrys ! zero translation vector flag tv0=tv0symc(isym) ! translation vector in Cartesian coordinates if (.not.tv0) then v1=vtcsymc(1,isym) v2=vtcsymc(2,isym) v3=vtcsymc(3,isym) end if ! index to spatial rotation lattice symmetry lspl=lsplsymc(isym) ! inverse rotation required for rotation of G-vectors ilspl=isymlat(lspl) sym(:,:)=symlat(:,:,ilspl) if (tspin) then ! global spin proper rotation in Cartesian coordinates lspn=lspnsymc(isym) sc(:,:)=symlatd(lspn)*symlatc(:,:,lspn) else ! set spin rotation equal to spatial rotation lspn=lspl sc(:,:)=symlatc(:,:,lspl) end if do ig=1,ngvec ifg=igfft(ig) ! multiply the transpose of the inverse symmetry matrix with the G-vector if (lspl.eq.1) then jfg=ifg else i1=ivg(1,ig); i2=ivg(2,ig); i3=ivg(3,ig) j1=sym(1,1)*i1+sym(2,1)*i2+sym(3,1)*i3 j2=sym(1,2)*i1+sym(2,2)*i2+sym(3,2)*i3 j3=sym(1,3)*i1+sym(2,3)*i2+sym(3,3)*i3 jfg=igfft(ivgig(j1,j2,j3)) end if ! complex phase factor for translation if (tv0) then z1=1.d0 else t1=-(vgc(1,ig)*v1+vgc(2,ig)*v2+vgc(3,ig)*v3) z1=cmplx(cos(t1),sin(t1),8) end if ! translation, spatial rotation and global spin rotation if (lspn.eq.1) then ! global spin symmetry is the identity zfft2(jfg,:)=zfft2(jfg,:)+z1*zfft1(ifg,:) else if (tnc) then ! non-collinear case zv1(:)=zfft1(ifg,:) zv2(1)=sc(1,1)*zv1(1)+sc(1,2)*zv1(2)+sc(1,3)*zv1(3) zv2(2)=sc(2,1)*zv1(1)+sc(2,2)*zv1(2)+sc(2,3)*zv1(3) zv2(3)=sc(3,1)*zv1(1)+sc(3,2)*zv1(2)+sc(3,3)*zv1(3) zfft2(jfg,:)=zfft2(jfg,:)+z1*zv2(:) else ! collinear case zfft2(jfg,1)=zfft2(jfg,1)+sc(3,3)*z1*zfft1(ifg,1) end if end if end do end do ! Fourier transform to real-space and normalise t1=1.d0/dble(nsymcrys) do i=1,nd call zfftifc(3,ngridg,1,zfft2(:,i)) rvfir(:,i)=t1*dble(zfft2(:,i)) end do deallocate(zfft1,zfft2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/getevalsv.f900000644000000000000000000000013213543334736015150 xustar0030 mtime=1569569246.050641037 30 atime=1569569242.297643434 30 ctime=1569569246.050641037 elk-6.3.2/src/getevalsv.f900000644002504400250440000000254013543334736017220 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getevalsv(fext,ikp,vpl,evalsvp) use modmain implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ikp real(8), intent(in) :: vpl(3) real(8), intent(out) :: evalsvp(nstsv) ! local variables integer isym,ik integer recl,nstsv_ real(8) vkl_(3),t1 if (ikp.gt.0) then ik=ikp else ! find the k-point number call findkpt(vpl,isym,ik) end if ! find the record length inquire(iolength=recl) vkl_,nstsv_,evalsvp !$OMP CRITICAL(u124) open(124,file='EVALSV'//trim(fext),form='UNFORMATTED',access='DIRECT', & action='READ',recl=recl) read(124,rec=ik) vkl_,nstsv_,evalsvp close(124) !$OMP END CRITICAL(u124) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getevalsv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EVALSV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getevalsv): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" EVALSV.OUT : ",I8)') nstsv_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genjlgpr.f900000644000000000000000000000013213543334736014760 xustar0030 mtime=1569569246.055641034 30 atime=1569569242.301643432 30 ctime=1569569246.055641034 elk-6.3.2/src/genjlgpr.f900000644002504400250440000000212313543334736017025 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genjlgpr(ngp,gpc,jlgpr) use modmain use modomp implicit none ! arguments integer, intent(in) :: ngp real(8), intent(in) :: gpc(ngp) real(8), intent(out) :: jlgpr(njcmax,nspecies,ngp) ! local variables integer ig,is,n,i,nthd integer nrc,nrci,irc real(8) t1,t2 ! generate spherical Bessel functions on the coarse radial mesh over all species call holdthd(ngp,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(t1,t2,is,nrc) & !$OMP PRIVATE(nrci,n,i,irc) & !$OMP NUM_THREADS(nthd) do ig=1,ngp t1=gpc(ig) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) n=lmaxi+1 i=1 do irc=1,nrci t2=t1*rcmt(irc,is) call sbessel(lmaxi,t2,jlgpr(i,is,ig)) i=i+n end do n=lmaxo+1 do irc=nrci+1,nrc t2=t1*rcmt(irc,is) call sbessel(lmaxo,t2,jlgpr(i,is,ig)) i=i+n end do end do end do !$OMP END PARALLEL DO call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/init0.f900000644000000000000000000000013013543334736014171 xustar0029 mtime=1569569246.06164103 30 atime=1569569242.305643429 29 ctime=1569569246.06164103 elk-6.3.2/src/init0.f900000644002504400250440000005047113543334736016251 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: init0 ! !INTERFACE: subroutine init0 ! !USES: use modmain use modxcifc use moddftu use modtddft use modphonon use modulr use modtest use modvars use modmpi use modomp ! !DESCRIPTION: ! Performs basic consistency checks as well as allocating and initialising ! global variables not dependent on the $k$-point set. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) !EOP !BOC implicit none ! local variables integer is,ia,ias,ist integer nr,l,m,lm,i real(8) rsum,t1 real(8) ts0,ts1 !-------------------------------! ! zero timing variables ! !-------------------------------! timeinit=0.d0 timemat=0.d0 timefv=0.d0 timesv=0.d0 timerho=0.d0 timepot=0.d0 timefor=0.d0 call timesec(ts0) !------------------------------------! ! angular momentum variables ! !------------------------------------! if (lmaxo.gt.lmaxapw) then write(*,*) write(*,'("Error(init0): lmaxo > lmaxapw : ",2I8)') lmaxo,lmaxapw write(*,*) stop end if lmaxi=min(lmaxi,lmaxo) lmmaxapw=(lmaxapw+1)**2 lmmaxi=(lmaxi+1)**2 lmmaxo=(lmaxo+1)**2 ! check DOS lmax is within range lmaxdos=min(lmaxdos,lmaxo) ! index to (l,m) pairs if (allocated(idxlm)) deallocate(idxlm) allocate(idxlm(0:lmaxapw,-lmaxapw:lmaxapw)) if (allocated(idxil)) deallocate(idxil) allocate(idxil(lmmaxapw)) if (allocated(idxim)) deallocate(idxim) allocate(idxim(lmmaxapw)) lm=0 do l=0,lmaxapw do m=-l,l lm=lm+1 idxlm(l,m)=lm idxil(lm)=l idxim(lm)=m end do end do ! array of i^l and (-i)^l values if (allocated(zil)) deallocate(zil) if (allocated(zilc)) deallocate(zilc) allocate(zil(0:lmaxapw),zilc(0:lmaxapw)) do l=0,lmaxapw zil(l)=zi**l zilc(l)=conjg(zil(l)) end do ! write to VARIABLES.OUT call writevars('lmaxapw',iv=lmaxapw) call writevars('lmaxi',iv=lmaxi) call writevars('lmaxo',iv=lmaxo) !------------------------------------! ! index to atoms and species ! !------------------------------------! natmmax=0 ias=0 do is=1,nspecies do ia=1,natoms(is) ias=ias+1 idxas(ia,is)=ias idxis(ias)=is idxia(ias)=ia end do ! maximum number of atoms over all species natmmax=max(natmmax,natoms(is)) end do ! total number of atoms natmtot=ias ! number of phonon branches nbph=3*natmtot ! write to VARIABLES.OUT call writevars('nspecies',iv=nspecies) call writevars('natoms',nv=nspecies,iva=natoms) call writevars('spsymb',nv=nspecies,sva=spsymb) call writevars('spname',nv=nspecies,sva=spname) call writevars('spzn',nv=nspecies,rva=spzn) !------------------------! ! spin variables ! !------------------------! if (spinsprl) then spinpol=.true. spinorb=.false. if (any(task.eq.[51,52,53,61,62,63,700,701])) then write(*,*) write(*,'("Error(init0): spin-spirals do not work with task ",I4)') task write(*,*) stop end if if (xctype(1).lt.0) then write(*,*) write(*,'("Error(init0): spin-spirals do not work with the OEP method")') write(*,*) stop end if if (tefvit) then write(*,*) write(*,'("Error(init0): spin-spirals do not work with iterative & &diagonalisation")') write(*,*) stop end if end if ! de-phasing required only for spin-spirals if (.not.spinsprl) ssdph=.false. ! spin-orbit coupling, fixed spin moment, spin spirals or spin-polarised cores ! requires a spin-polarised calculation if ((spinorb).or.(fsmtype.ne.0).or.(spinsprl).or.(spincore)) spinpol=.true. ! number of spinor components and maximum allowed occupancy if (spinpol) then nspinor=2 occmax=1.d0 else nspinor=1 occmax=2.d0 end if ! number of spin-dependent first-variational functions per state and map from ! second- to first-variational spin index if (spinsprl) then nspnfv=2 jspnfv(1)=1 jspnfv(2)=2 else nspnfv=1 jspnfv(1)=1 jspnfv(2)=1 end if ! no calculation of second-variational eigenvectors by default tevecsv=.false. ! spin-polarised calculations require second-variational eigenvectors if (spinpol) tevecsv=.true. ! Hartree-Fock/RDMFT/TDDFT/GW requires second-variational eigenvectors if (any(task.eq.[5,10,170,300,460,461,600,620,630])) then tevecsv=.true. end if ! get exchange-correlation functional data call getxcdata(xctype,xcdescr,xcspin,xcgrad,hybrid,hybridc) if ((spinpol).and.(xcspin.eq.0)) then write(*,*) write(*,'("Error(init0): requested spin-polarised run with & &spin-unpolarised")') write(*,'(" exchange-correlation functional")') write(*,*) stop end if ! check for collinearity in the z-direction and set the dimension of the ! magnetisation and exchange-correlation vector fields if (spinpol) then ndmag=1 if ((abs(bfieldc0(1)).gt.epslat).or.(abs(bfieldc0(2)).gt.epslat)) ndmag=3 do is=1,nspecies do ia=1,natoms(is) if ((abs(bfcmt0(1,ia,is)).gt.epslat).or. & (abs(bfcmt0(2,ia,is)).gt.epslat)) ndmag=3 end do end do ! spin-orbit coupling is non-collinear in general if (spinorb) ndmag=3 ! source-free fields and spin-spirals must be non-collinear if ((nosource).or.(spinsprl)) then ndmag=3 cmagz=.false. end if ! force collinear magnetism along the z-axis if required if (cmagz) ndmag=1 else ndmag=0 end if ! set the non-collinear flag if (ndmag.eq.3) then ncmag=.true. else ncmag=.false. end if ! check for meta-GGA with non-collinearity if (((xcgrad.eq.3).or.(xcgrad.eq.4)).and.ncmag) then write(*,*) write(*,'("Error(init0): meta-GGA is not valid for non-collinear magnetism")') write(*,*) stop end if if (ncmag.or.spinorb) then ! spins are coupled in the second-variational Hamiltonian spcpl=.true. else ! spins are decoupled spcpl=.false. end if ! spin-polarised cores if (.not.spinpol) spincore=.false. if (fsmtype.ne.0) then ! set fixed spin moment effective field to zero bfsmc(:)=0.d0 ! set muffin-tin FSM fields to zero if (allocated(bfsmcmt)) deallocate(bfsmcmt) allocate(bfsmcmt(3,natmtot)) bfsmcmt(:,:)=0.d0 if (mp_mpi.and.(mixtype.ne.1)) then write(*,*) write(*,'("Info(init0): mixtype changed to 1 for FSM calculation")') end if mixtype=1 end if ! number of independent spin components of the f_xc spin tensor if (spinpol) then if (ncmag) then nscfxc=10 else nscfxc=3 end if else nscfxc=1 end if ! set the magnetic fields to the initial values bfieldc(:)=bfieldc0(:) bfcmt(:,:,:)=bfcmt0(:,:,:) ! if reducebf < 1 then reduce the external magnetic fields immediately for ! non-self-consistent calculations or resumptions if (reducebf.lt.1.d0-1.d-4) then if (all(task.ne.[0,1,2,3,5,28,200,201,350,351,360,630])) then bfieldc(:)=0.d0 bfcmt(:,:,:)=0.d0 end if end if ! set the fixed tensor moment spatial and spin rotation matrices equal for the ! case of spin-orbit coupling; parity for spin is ignored by rotdmat if (spinorb) then do i=1,ntmfix rtmfix(:,:,2,i)=rtmfix(:,:,1,i) end do end if ! generate the fixed tensor moment density matrices if required call gendmftm ! write to VARIABLES.OUT call writevars('nspinor',iv=nspinor) call writevars('ndmag',iv=ndmag) !----------------------------------! ! crystal structure set up ! !----------------------------------! ! generate the reciprocal lattice vectors and unit cell volume call reciplat(avec,bvec,omega,omegabz) ! inverse of the lattice vector matrix call r3minv(avec,ainv) ! inverse of the reciprocal vector matrix call r3minv(bvec,binv) ! Cartesian coordinates of the spin-spiral vector call r3mv(bvec,vqlss,vqcss) do is=1,nspecies do ia=1,natoms(is) ! map atomic lattice coordinates to [0,1) call r3frac(epslat,atposl(:,ia,is)) ! determine atomic Cartesian coordinates call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do ! check for overlapping muffin-tins and adjust radii if required call checkmt ! compute the total muffin-tin volume (M. Meinert) omegamt=0.d0 do is=1,nspecies omegamt=omegamt+dble(natoms(is))*(fourpi/3.d0)*rmt(is)**3 end do ! input q-vector in Cartesian coordinates call r3mv(bvec,vecql,vecqc) ! write to VARIABLES.OUT call writevars('avec',nv=9,rva=avec) call writevars('bvec',nv=9,rva=bvec) call writevars('omega',rv=omega) do is=1,nspecies call writevars('atposl',l=is,nv=3*natoms(is),rva=atposl(:,:,is)) end do !-------------------------------! ! vector fields E and A ! !-------------------------------! tefield=.false. if (sum(abs(efieldc(:))).gt.epslat) then ! no shift of the atomic positions tshift=.false. ! electric field vector in lattice coordinates call r3mv(ainv,efieldc,efieldl) tefield=.true. end if tafield=.false. if (sum(abs(afieldc(:))).gt.epslat) then tafield=.true. ! A-field in lattice coordinates call r3mv(ainv,afieldc,afieldl) ! vector potential added in second-variational step tevecsv=.true. end if tafieldt=.false. if (any(task.eq.[460,461,480,481])) then ! generate the time-step grid call gentimes ! read time-dependent A-field from file call readafieldt tafieldt=.true. end if !---------------------------------! ! crystal symmetry set up ! !---------------------------------! call symmetry !-----------------------! ! radial meshes ! !-----------------------! nrmtmax=1 nrcmtmax=1 do is=1,nspecies ! make the muffin-tin mesh commensurate with lradstp nrmt(is)=nrmt(is)-mod(nrmt(is)-1,lradstp) nrmtmax=max(nrmtmax,nrmt(is)) ! number of coarse radial mesh points nrcmt(is)=(nrmt(is)-1)/lradstp+1 nrcmtmax=max(nrcmtmax,nrcmt(is)) end do ! set up atomic and muffin-tin radial meshes call genrmesh ! number of points in packed muffin-tins npmtmax=1 npcmtmax=1 do is=1,nspecies npmti(is)=lmmaxi*nrmti(is) npmt(is)=npmti(is)+lmmaxo*(nrmt(is)-nrmti(is)) npmtmax=max(npmtmax,npmt(is)) npcmti(is)=lmmaxi*nrcmti(is) npcmt(is)=npcmti(is)+lmmaxo*(nrcmt(is)-nrcmti(is)) npcmtmax=max(npcmtmax,npcmt(is)) end do !--------------------------------------! ! charges and number of states ! !--------------------------------------! chgzn=0.d0 chgcrtot=0.d0 chgval=0.d0 nstspmax=0 nstcr=0 do is=1,nspecies ! nuclear charge chgzn=chgzn+spzn(is)*natoms(is) ! find the maximum number of atomic states nstspmax=max(nstspmax,nstsp(is)) ! compute the electronic charge for each species, as well as the total core and ! valence charge spze(is)=0.d0 chgcr(is)=0.d0 do ist=1,nstsp(is) spze(is)=spze(is)+occsp(ist,is) if (spcore(ist,is)) then chgcr(is)=chgcr(is)+occsp(ist,is) nstcr=nstcr+2*ksp(ist,is)*natoms(is) else chgval=chgval+occsp(ist,is)*natoms(is) end if end do chgcrtot=chgcrtot+chgcr(is)*natoms(is) end do ! add excess charge chgval=chgval+chgexs ! total charge chgtot=chgcrtot+chgval if (chgtot.lt.1.d-8) then write(*,*) write(*,'("Error(init0): zero total charge")') write(*,*) stop end if ! effective Wigner radius rwigner=(3.d0/(fourpi*(chgtot/omega)))**(1.d0/3.d0) ! write to VARIABLES.OUT call writevars('spze',nv=nspecies,rva=spze) call writevars('chgcr',nv=nspecies,rva=chgcr) call writevars('chgexs',rv=chgexs) call writevars('chgval',rv=chgtot) !-------------------------! ! G-vector arrays ! !-------------------------! ! determine gkmax from rgkmax if (nspecies.eq.0) isgkmax=-2 select case(isgkmax) case(:-4) ! use largest muffin-tin radius gkmax=rgkmax/maxval(rmt(1:nspecies)) case(-3) ! use smallest muffin-tin radius gkmax=rgkmax/minval(rmt(1:nspecies)) case(-2) ! use the fixed value of 2.0 gkmax=rgkmax/2.d0 case(-1) ! use average muffin-tin radius rsum=0.d0 do is=1,nspecies rsum=rsum+dble(natoms(is))*rmt(is) end do rsum=rsum/dble(natmtot) gkmax=rgkmax/rsum case(1:) ! use user-specified muffin-tin radius if (isgkmax.le.nspecies) then gkmax=rgkmax/rmt(isgkmax) else write(*,*) write(*,'("Error(init0): isgkmax > nspecies : ",2I8)') isgkmax,nspecies write(*,*) stop end if end select ! generate the G-vectors call gengvec ! write number of G-vectors to test file call writetest(900,'number of G-vectors',iv=ngvec) ! Poisson solver pseudocharge density constant if (nspecies.gt.0) then t1=0.25d0*gmaxvr*maxval(rmt(1:nspecies)) else t1=0.25d0*gmaxvr*2.d0 end if npsd=max(nint(t1),1) lnpsd=lmaxo+npsd+1 ! generate the Coulomb Green's function in G-space = fourpi / G^2 call gengclg ! compute the spherical Bessel functions j_l(|G|R_mt) if (allocated(jlgrmt)) deallocate(jlgrmt) allocate(jlgrmt(0:lnpsd,ngvec,nspecies)) call genjlgprmt(lnpsd,ngvec,gc,ngvec,jlgrmt) ! generate the spherical harmonics of the G-vectors call genylmg ! allocate structure factor array for G-vectors if (allocated(sfacg)) deallocate(sfacg) allocate(sfacg(ngvec,natmtot)) ! generate structure factors for G-vectors call gensfacgp(ngvec,vgc,ngvec,sfacg) ! generate the smooth step function form factors if (allocated(ffacg)) deallocate(ffacg) allocate(ffacg(ngtot,nspecies)) do is=1,nspecies call genffacgp(is,gc,ffacg(:,is)) end do ! generate the characteristic function call gencfun ! write to VARIABLES.OUT call writevars('gmaxvr',rv=gmaxvr) call writevars('ngridg',nv=3,iva=ngridg) call writevars('intgv',nv=6,iva=intgv) call writevars('ngvec',iv=ngvec) call writevars('ivg',nv=3*ngtot,iva=ivg) call writevars('igfft',nv=ngtot,iva=igfft) !-------------------------! ! atoms and cores ! !-------------------------! ! determine the nuclear Coulomb potential if (allocated(vcln)) deallocate(vcln) allocate(vcln(nrspmax,nspecies)) t1=1.d0/y00 do is=1,nspecies nr=nrsp(is) call potnucl(ptnucl,nr,rsp(:,is),spzn(is),vcln(:,is)) vcln(1:nr,is)=t1*vcln(1:nr,is) end do ! solve the Kohn-Sham-Dirac equations for all atoms call allatoms ! allocate core state occupancy and eigenvalue arrays and set to default if (allocated(occcr)) deallocate(occcr) allocate(occcr(nstspmax,natmtot)) if (allocated(evalcr)) deallocate(evalcr) allocate(evalcr(nstspmax,natmtot)) do ias=1,natmtot is=idxis(ias) do ist=1,nstsp(is) occcr(ist,ias)=occsp(ist,is) evalcr(ist,ias)=evalsp(ist,is) end do end do ! allocate core state radial wavefunction array if (allocated(rwfcr)) deallocate(rwfcr) allocate(rwfcr(nrspmax,2,nstspmax,natmtot)) ! number of core spin channels if (spincore) then nspncr=2 else nspncr=1 end if ! allocate core state charge density array if (allocated(rhocr)) deallocate(rhocr) allocate(rhocr(nrmtmax,natmtot,nspncr)) !-------------------------------------------------------------! ! charge density, potentials and exchange-correlation ! !-------------------------------------------------------------! ! allocate charge density arrays if (allocated(rhomt)) deallocate(rhomt) allocate(rhomt(npmtmax,natmtot)) if (allocated(rhoir)) deallocate(rhoir) allocate(rhoir(ngtot)) ! allocate magnetisation arrays if (allocated(magmt)) deallocate(magmt) if (allocated(magir)) deallocate(magir) if (spinpol) then allocate(magmt(npmtmax,natmtot,ndmag)) allocate(magir(ngtot,ndmag)) end if ! check if the current density should be calculated if (tafield.or.(any(task.eq.[371,372,373,460,461]))) then tcden=.true. end if ! allocate current density arrays if (allocated(cdmt)) deallocate(cdmt) if (allocated(cdir)) deallocate(cdir) if (tcden) then allocate(cdmt(npmtmax,natmtot,3),cdir(ngtot,3)) end if ! Coulomb potential if (allocated(vclmt)) deallocate(vclmt) allocate(vclmt(npmtmax,natmtot)) if (allocated(vclir)) deallocate(vclir) allocate(vclir(ngtot)) ! exchange energy density if (allocated(exmt)) deallocate(exmt) allocate(exmt(npmtmax,natmtot)) if (allocated(exir)) deallocate(exir) allocate(exir(ngtot)) ! correlation energy density if (allocated(ecmt)) deallocate(ecmt) allocate(ecmt(npmtmax,natmtot)) if (allocated(ecir)) deallocate(ecir) allocate(ecir(ngtot)) ! exchange-correlation potential if (allocated(vxcmt)) deallocate(vxcmt) allocate(vxcmt(npmtmax,natmtot)) if (allocated(vxcir)) deallocate(vxcir) allocate(vxcir(ngtot)) ! effective Kohn-Sham potential if (allocated(vsmt)) deallocate(vsmt) allocate(vsmt(npmtmax,natmtot)) if (allocated(vsir)) deallocate(vsir) allocate(vsir(ngtot)) if (allocated(vsig)) deallocate(vsig) allocate(vsig(ngvec)) ! exchange-correlation, dipole and Kohn-Sham effective magnetic fields if (allocated(bxcmt)) deallocate(bxcmt) if (allocated(bxcir)) deallocate(bxcir) if (allocated(bdmt)) deallocate(bdmt) if (allocated(bdir)) deallocate(bdir) if (allocated(bsmt)) deallocate(bsmt) if (allocated(bsir)) deallocate(bsir) if (spinpol) then allocate(bxcmt(npmtmax,natmtot,ndmag),bxcir(ngtot,ndmag)) if (tbdip) allocate(bdmt(npmtmax,natmtot,ndmag),bdir(ngtot,ndmag)) allocate(bsmt(npcmtmax,natmtot,ndmag),bsir(ngtot,ndmag)) end if ! kinetic energy density if (allocated(taumt)) deallocate(taumt) if (allocated(tauir)) deallocate(tauir) if (allocated(taucr)) deallocate(taucr) if ((xcgrad.eq.3).or.(xcgrad.eq.4)) then allocate(taumt(npmtmax,natmtot,nspinor),tauir(ngtot,nspinor)) allocate(taucr(npmtmax,natmtot,nspinor)) end if ! tau-DFT exchange-correlation and Kohn-Sham potentials if (allocated(wxcmt)) deallocate(wxcmt) if (allocated(wxcir)) deallocate(wxcir) if (allocated(wsmt)) deallocate(wsmt) if (allocated(wsir)) deallocate(wsir) if (xcgrad.eq.4) then allocate(wxcmt(npmtmax,natmtot),wxcir(ngtot)) allocate(wsmt(npcmtmax,natmtot),wsir(ngtot)) tevecsv=.true. end if ! spin-orbit coupling radial function if (allocated(socfr)) deallocate(socfr) if (spinorb) then allocate(socfr(nrcmtmax,natmtot)) end if ! allocate muffin-tin charge and moment arrays if (allocated(chgcrlk)) deallocate(chgcrlk) allocate(chgcrlk(natmtot)) if (allocated(chgmt)) deallocate(chgmt) allocate(chgmt(natmtot)) if (allocated(mommt)) deallocate(mommt) allocate(mommt(3,natmtot)) ! check if scaled spin exchange-correlation (SSXC) should be used if (abs(ssxc-1.d0).gt.1.d-6) then tssxc=.true. else tssxc=.false. end if !-------------------------! ! force variables ! !-------------------------! if (allocated(forcehf)) deallocate(forcehf) allocate(forcehf(3,natmtot)) if (allocated(forceibs)) deallocate(forceibs) allocate(forceibs(3,natmtot)) if (allocated(forcetot)) deallocate(forcetot) allocate(forcetot(3,natmtot)) !-------------------------------------------------! ! DFT+U and fixed tensor moment variables ! !-------------------------------------------------! if ((dftu.ne.0).or.(ftmtype.ne.0)) then ! density matrix elements in each muffin-tin if (allocated(dmatmt)) deallocate(dmatmt) allocate(dmatmt(lmmaxdm,nspinor,lmmaxdm,nspinor,natmtot)) ! potential matrix elements in each muffin-tin if (allocated(vmatmt)) deallocate(vmatmt) allocate(vmatmt(lmmaxdm,nspinor,lmmaxdm,nspinor,natmtot)) ! zero the potential matrix vmatmt(:,:,:,:,:)=0.d0 ! require the potential matrix elements be calculated tvmatmt=.true. ! flags for non-zero muffin-tin potential matrices if (allocated(tvmmt)) deallocate(tvmmt) allocate(tvmmt(0:lmaxdm,natmtot)) tvmmt(:,:)=.false. ! require second-variational eigenvectors tevecsv=.true. end if if (dftu.ne.0) then ! DFT+U energy for each atom if (allocated(engyadu)) deallocate(engyadu) allocate(engyadu(natmmax,ndftu)) ! interpolation constants (alpha) if (allocated(alphadu)) deallocate(alphadu) allocate(alphadu(natmmax,ndftu)) ! flag the muffin-tin potential matrices which are non-zero do i=1,ndftu is=idftu(1,i) if (is.gt.nspecies) then write(*,*) write(*,'("Error(init0): invalid species number : ",I8)') is write(*,*) stop end if l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) tvmmt(l,ias)=.true. end do end do end if if (ftmtype.ne.0) then ! allocate and zero the fixed tensor moment potential array if (allocated(vmftm)) deallocate(vmftm) allocate(vmftm(lmmaxdm,nspinor,lmmaxdm,nspinor,natmtot)) vmftm(:,:,:,:,:)=0.d0 ! flag the muffin-tin potential matrices which are non-zero do i=1,ntmfix is=itmfix(1,i) ia=itmfix(2,i) ias=idxas(ia,is) l=itmfix(3,i) tvmmt(l,ias)=.true. end do end if !-----------------------! ! miscellaneous ! !-----------------------! ! determine nuclear radii and volumes call nuclei ! determine the nuclear-nuclear energy call energynn ! get smearing function description call getsdata(stype,sdescr) ! get mixing type description call getmixdata(mixtype,mixdescr) ! generate the spherical harmonic transform (SHT) matrices call genshtmat ! allocate 1D plotting arrays if (allocated(dvp1d)) deallocate(dvp1d) allocate(dvp1d(nvp1d)) if (allocated(vplp1d)) deallocate(vplp1d) allocate(vplp1d(3,npp1d)) if (allocated(dpp1d)) deallocate(dpp1d) allocate(dpp1d(npp1d)) ! initial self-consistent loop number iscl=1 tlast=.false. ! set the Fermi energy to zero efermi=0.d0 ! set the temperature from the smearing width tempk=swidth/kboltz call timesec(ts1) timeinit=timeinit+ts1-ts0 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/init1.f900000644000000000000000000000013213543334736014174 xustar0030 mtime=1569569246.066641027 30 atime=1569569242.311643425 30 ctime=1569569246.066641027 elk-6.3.2/src/init1.f900000644002504400250440000002523513543334736016252 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: init1 ! !INTERFACE: subroutine init1 ! !USES: use modmain use moddftu use modulr use modtddft use modtest use modvars use modstore ! !DESCRIPTION: ! Generates the $k$-point set and then allocates and initialises global ! variables which depend on the $k$-point set. ! ! !REVISION HISTORY: ! Created January 2004 (JKD) !EOP !BOC implicit none ! local variables logical lsym(48) integer is,ia,ias,nppt integer io,ilo,i1,i2,i3 integer ik,isym,jspn integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3 real(8) vl(3),vc(3),t1 real(8) ts0,ts1 ! external functions complex(8) gauntyry external gauntyry call timesec(ts0) !---------------------! ! k-point set ! !---------------------! ! check if the system is an isolated molecule if (molecule) then ngridk(:)=1 vkloff(:)=0.d0 autokpt=.false. end if ! store the point group symmetries for reducing the k-point set if (reducek.eq.0) then nsymkpt=1 symkpt(:,:,1)=symlat(:,:,1) else lsym(:)=.false. do isym=1,nsymcrys if (reducek.eq.2) then ! check symmetry is symmorphic if (.not.tv0symc(isym)) goto 10 ! check also that the spin rotation is the same as the spatial rotation if (spinpol) then if (lspnsymc(isym).ne.lsplsymc(isym)) goto 10 end if end if lsym(lsplsymc(isym))=.true. 10 continue end do nsymkpt=0 do isym=1,nsymlat if (lsym(isym)) then nsymkpt=nsymkpt+1 symkpt(:,:,nsymkpt)=symlat(:,:,isym) end if end do end if if (any(task.eq.[20,21,22,23])) then ! generate k-points along a path for band structure plots call plotpt1d(bvec,nvp1d,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) nkpt=npp1d if (allocated(vkl)) deallocate(vkl) allocate(vkl(3,nkpt)) if (allocated(vkc)) deallocate(vkc) allocate(vkc(3,nkpt)) do ik=1,nkpt vkl(:,ik)=vplp1d(:,ik) call r3mv(bvec,vkl(:,ik),vkc(:,ik)) end do nkptnr=nkpt else if (task.eq.25) then ! effective mass calculation nkpt=(2*ndspem+1)**3 if (allocated(ivk)) deallocate(ivk) allocate(ivk(3,nkpt)) if (allocated(vkl)) deallocate(vkl) allocate(vkl(3,nkpt)) if (allocated(vkc)) deallocate(vkc) allocate(vkc(3,nkpt)) ! map vector to [0,1) call r3frac(epslat,vklem) ik=0 do i3=-ndspem,ndspem do i2=-ndspem,ndspem do i1=-ndspem,ndspem ik=ik+1 ivk(1,ik)=i1; ivk(2,ik)=i2; ivk(3,ik)=i3 vc(1)=dble(i1); vc(2)=dble(i2); vc(3)=dble(i3) vc(:)=vc(:)*deltaem call r3mv(binv,vc,vl) vkl(:,ik)=vklem(:)+vl(:) call r3mv(bvec,vkl(:,ik),vkc(:,ik)) end do end do end do nkptnr=nkpt else ! determine the k-point grid automatically from radkpt if required if (autokpt) then t1=radkpt/twopi ngridk(:)=int(t1*sqrt(bvec(1,:)**2+bvec(2,:)**2+bvec(3,:)**2))+1 end if ! set up the default k-point box kptboxl(:,0)=vkloff(:)/dble(ngridk(:)) if (task.eq.102) kptboxl(:,0)=0.d0 kptboxl(:,1)=kptboxl(:,0) kptboxl(:,2)=kptboxl(:,0) kptboxl(:,3)=kptboxl(:,0) kptboxl(1,1)=kptboxl(1,1)+1.d0 kptboxl(2,2)=kptboxl(2,2)+1.d0 kptboxl(3,3)=kptboxl(3,3)+1.d0 ! k-point set and box for Fermi surface plots if (any(task.eq.[100,101,102])) then ngridk(:)=np3d(:) if (task.ne.102) kptboxl(:,:)=vclp3d(:,:) end if ! allocate the k-point set arrays if (allocated(ivkik)) deallocate(ivkik) allocate(ivkik(0:ngridk(1)-1,0:ngridk(2)-1,0:ngridk(3)-1)) if (allocated(ivkiknr)) deallocate(ivkiknr) allocate(ivkiknr(0:ngridk(1)-1,0:ngridk(2)-1,0:ngridk(3)-1)) nkptnr=ngridk(1)*ngridk(2)*ngridk(3) if (allocated(ivk)) deallocate(ivk) allocate(ivk(3,nkptnr)) if (allocated(vkl)) deallocate(vkl) allocate(vkl(3,nkptnr)) if (allocated(vkc)) deallocate(vkc) allocate(vkc(3,nkptnr)) if (allocated(wkpt)) deallocate(wkpt) allocate(wkpt(nkptnr)) ! generate the k-point set call genppts(.false.,nsymkpt,symkpt,ngridk,nkptnr,epslat,bvec,kptboxl,nkpt, & ivkik,ivkiknr,ivk,vkl,vkc,wkpt,wkptnr) ! write to VARIABLES.OUT call writevars('nsymkpt',iv=nsymkpt) call writevars('symkpt',nv=9*nsymkpt,iva=symkpt) call writevars('ngridk',nv=3,iva=ngridk) call writevars('vkloff',nv=3,rva=vkloff) call writevars('nkpt',iv=nkpt) call writevars('ivkik',nv=nkptnr,iva=ivkik) call writevars('ivk',nv=3*nkptnr,iva=ivk) call writevars('vkl',nv=3*nkptnr,rva=vkl) call writevars('wkpt',nv=nkpt,rva=wkpt) end if if (any(task.eq.[700,701,731,732,733,741,742,743,771,772,773])) then ! generate ultracell reciprocal lattice vectors if required call reciplat(avecu,bvecu,omegau,omegabzu) ! generate the kappa, k+kappa and Q-points if required call genkpakq end if ! write the k-points to test file call writetest(910,'k-points (Cartesian)',nv=3*nkpt,tol=1.d-8,rva=vkc) !---------------------! ! G+k-vectors ! !---------------------! if ((xctype(1).lt.0).or.(any(task.eq.[5,10,205,300,600,620,630])).or.tddos) then nppt=nkptnr else nppt=nkpt end if ! find the maximum number of G+k-vectors call findngkmax(nkpt,vkc,nspnfv,vqcss,ngvec,vgc,gkmax,ngkmax) ! allocate the G+k-vector arrays if (allocated(ngk)) deallocate(ngk) allocate(ngk(nspnfv,nppt)) if (allocated(igkig)) deallocate(igkig) allocate(igkig(ngkmax,nspnfv,nppt)) if (allocated(vgkl)) deallocate(vgkl) allocate(vgkl(3,ngkmax,nspnfv,nppt)) if (allocated(vgkc)) deallocate(vgkc) allocate(vgkc(3,ngkmax,nspnfv,nppt)) if (allocated(gkc)) deallocate(gkc) allocate(gkc(ngkmax,nspnfv,nppt)) if (allocated(sfacgk)) deallocate(sfacgk) allocate(sfacgk(ngkmax,natmtot,nspnfv,nppt)) do ik=1,nppt do jspn=1,nspnfv vl(:)=vkl(:,ik) vc(:)=vkc(:,ik) ! spin-spiral case if (spinsprl) then if (jspn.eq.1) then vl(:)=vl(:)+0.5d0*vqlss(:) vc(:)=vc(:)+0.5d0*vqcss(:) else vl(:)=vl(:)-0.5d0*vqlss(:) vc(:)=vc(:)-0.5d0*vqcss(:) end if end if ! generate the G+k-vectors call gengkvec(ngvec,ivg,vgc,vl,vc,gkmax,ngkmax,ngk(jspn,ik), & igkig(:,jspn,ik),vgkl(:,:,jspn,ik),vgkc(:,:,jspn,ik),gkc(:,jspn,ik)) ! generate structure factors for G+k-vectors call gensfacgp(ngk(jspn,ik),vgkc(:,:,jspn,ik),ngkmax,sfacgk(:,:,jspn,ik)) end do end do ! write to VARIABLES.OUT call writevars('nspnfv',iv=nspnfv) call writevars('ngk',nv=nspnfv*nkpt,iva=ngk) do ik=1,nkpt do jspn=1,nspnfv call writevars('igkig',l=jspn,m=ik,nv=ngk(jspn,ik),iva=igkig(:,jspn,ik)) end do end do !---------------------------------! ! APWs and local-orbitals ! !---------------------------------! apwordmax=0 lorbordmax=0 nlomax=0 lolmax=0 do is=1,nspecies lmoapw(is)=0 do l1=0,lmaxapw ! find the maximum APW order apwordmax=max(apwordmax,apword(l1,is)) ! find total number of APW coefficients (l, m and order) lmoapw(is)=lmoapw(is)+(2*l1+1)*apword(l1,is) end do ! find the maximum number of local-orbitals nlomax=max(nlomax,nlorb(is)) ! find the maximum local-orbital order and angular momentum do ilo=1,nlorb(is) lolmax=max(lolmax,lorbl(ilo,is)) lorbordmax=max(lorbordmax,lorbord(ilo,is)) end do end do lolmmax=(lolmax+1)**2 ! polynomial order used for APW and local-orbital radial derivatives npapw=max(apwordmax+1,4) nplorb=max(lorbordmax+1,4) ! set the APW and local-orbital linearisation energies to the default if (allocated(apwe)) deallocate(apwe) allocate(apwe(apwordmax,0:lmaxapw,natmtot)) if (allocated(lorbe)) deallocate(lorbe) allocate(lorbe(lorbordmax,maxlorb,natmtot)) do is=1,nspecies do l1=0,lmaxapw do io=1,apword(l1,is) do ia=1,natoms(is) ias=idxas(ia,is) apwe(io,l1,ias)=apwe0(io,l1,is) end do end do end do do ilo=1,nlorb(is) do io=1,lorbord(ilo,is) do ia=1,natoms(is) ias=idxas(ia,is) lorbe(io,ilo,ias)=lorbe0(io,ilo,is) end do end do end do end do ! generate the local-orbital index call genidxlo ! allocate radial function arrays if (allocated(apwfr)) deallocate(apwfr) allocate(apwfr(nrmtmax,2,apwordmax,0:lmaxapw,natmtot)) if (allocated(apwdfr)) deallocate(apwdfr) allocate(apwdfr(apwordmax,0:lmaxapw,natmtot)) if (allocated(lofr)) deallocate(lofr) allocate(lofr(nrmtmax,2,nlomax,natmtot)) !-------------------------! ! DFT+U variables ! !-------------------------! if (dftu.ne.0) then ! allocate energy arrays to calculate Slater integrals with Yukawa potential if (allocated(fdue)) deallocate(fdue) allocate(fdue(0:lmaxdm,natmtot)) ! allocate radial functions to calculate Slater integrals with Yukawa potential if (allocated(fdufr)) deallocate(fdufr) allocate(fdufr(nrmtmax,0:lmaxdm,natmtot)) end if !---------------------------------------! ! eigenvalue equation variables ! !---------------------------------------! ! total number of empty states (M. Meinert) nempty=nint(nempty0*max(natmtot,1)) if (nempty.lt.1) nempty=1 ! number of first-variational states nstfv=int(chgval/2.d0)+nempty+1 ! overlap and Hamiltonian matrix sizes if (allocated(nmat)) deallocate(nmat) allocate(nmat(nspnfv,nkpt)) nmatmax=0 do ik=1,nkpt do jspn=1,nspnfv nmat(jspn,ik)=ngk(jspn,ik)+nlotot if (nstfv.gt.nmat(jspn,ik)) then write(*,*) write(*,'("Error(init1): number of first-variational states larger than & &matrix size")') write(*,'("Increase rgkmax or decrease nempty")') write(*,*) stop end if nmatmax=max(nmatmax,nmat(jspn,ik)) end do end do ! number of second-variational states nstsv=nstfv*nspinor ! allocate second-variational arrays if (allocated(evalsv)) deallocate(evalsv) allocate(evalsv(nstsv,nkpt)) if (allocated(occsv)) deallocate(occsv) allocate(occsv(nstsv,nkpt)) occsv(:,:)=0.d0 ! allocate overlap and Hamiltonian integral arrays if (allocated(oalo)) deallocate(oalo) allocate(oalo(apwordmax,nlomax,natmtot)) if (allocated(ololo)) deallocate(ololo) allocate(ololo(nlomax,nlomax,natmtot)) if (allocated(haa)) deallocate(haa) allocate(haa(lmmaxo,apwordmax,0:lmaxapw,apwordmax,0:lmaxapw,natmtot)) if (allocated(hloa)) deallocate(hloa) allocate(hloa(lmmaxo,apwordmax,0:lmaxapw,nlomax,natmtot)) if (allocated(hlolo)) deallocate(hlolo) allocate(hlolo(lmmaxo,nlomax,nlomax,natmtot)) ! allocate and generate complex Gaunt coefficient array if (allocated(gntyry)) deallocate(gntyry) allocate(gntyry(lmmaxo,lmmaxapw,lmmaxapw)) do l1=0,lmaxapw do m1=-l1,l1 lm1=idxlm(l1,m1) do l3=0,lmaxapw do m3=-l3,l3 lm3=idxlm(l3,m3) do l2=0,lmaxo do m2=-l2,l2 lm2=idxlm(l2,m2) gntyry(lm2,lm3,lm1)=gauntyry(l1,l2,l3,m1,m2,m3) end do end do end do end do end do end do ! write to VARIABLES.OUT call writevars('nempty',iv=nempty) call writevars('nstfv',iv=nstfv) call writevars('nlotot',iv=nlotot) call writevars('nstsv',iv=nstsv) call timesec(ts1) timeinit=timeinit+ts1-ts0 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/init2.f900000644000000000000000000000013213543334736014175 xustar0030 mtime=1569569246.070641024 30 atime=1569569242.316643422 30 ctime=1569569246.070641024 elk-6.3.2/src/init2.f900000644002504400250440000001031113543334736016240 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine init2 use modmain use modrdm use modvars implicit none ! local variables logical lsym(48) integer isym,iv(3) real(8) ts0,ts1 real(8) boxl(3,0:3),t1 call timesec(ts0) !---------------------! ! q-point set ! !---------------------! ! check if the system is an isolated molecule if (molecule) ngridq(:)=1 ! store the point group symmetries for reducing the q-point set if (reduceq.eq.0) then nsymqpt=1 symqpt(:,:,1)=symlat(:,:,1) else lsym(:)=.false. do isym=1,nsymcrys lsym(lsplsymc(isym))=.true. end do nsymqpt=0 do isym=1,nsymlat if (lsym(isym)) then nsymqpt=nsymqpt+1 symqpt(:,:,nsymqpt)=symlat(:,:,isym) end if end do end if if (any(task.eq.[105,180,185,320,330,331])) then ! equal k- and q-point grids for nesting function, BSE and linear-reposnse TDDFT ngridq(:)=ngridk(:) else if ((xctype(1).lt.0).or.(any(task.eq.[5,300,600,620,630]))) then ! allow the q-point grid to be smaller than the k-point grid for OEP, ! Hartree-Fock, RDMFT and GW if ((ngridq(1).le.0).or.(ngridq(2).le.0).or.(ngridq(3).le.0)) then ngridq(:)=ngridk(:) end if else ngridq(:)=abs(ngridq(:)) end if ! check that the q-point and k-point grids are commensurate for some tasks if ((xctype(1).lt.0).or.(any(task.eq.[5,205,240,241,300,600,620,630]))) then iv(:)=mod(ngridk(:),ngridq(:)) if ((iv(1).ne.0).or.(iv(2).ne.0).or.(iv(3).ne.0)) then write(*,*) write(*,'("Error(init2): k-point grid incommensurate with q-point grid")') write(*,'(" ngridk : ",3I6)') ngridk write(*,'(" ngridq : ",3I6)') ngridq write(*,*) stop end if end if ! allocate the q-point arrays if (allocated(iqmap)) deallocate(iqmap) allocate(iqmap(0:ngridq(1)-1,0:ngridq(2)-1,0:ngridq(3)-1)) if (allocated(iqmapnr)) deallocate(iqmapnr) allocate(iqmapnr(0:ngridq(1)-1,0:ngridq(2)-1,0:ngridq(3)-1)) nqptnr=ngridq(1)*ngridq(2)*ngridq(3) if (allocated(ivq)) deallocate(ivq) allocate(ivq(3,nqptnr)) if (allocated(vql)) deallocate(vql) allocate(vql(3,nqptnr)) if (allocated(vqc)) deallocate(vqc) allocate(vqc(3,nqptnr)) if (allocated(wqpt)) deallocate(wqpt) allocate(wqpt(nqptnr)) ! set up the q-point box (offset should always be zero) boxl(:,:)=0.d0 boxl(1,1)=1.d0; boxl(2,2)=1.d0; boxl(3,3)=1.d0 ! generate the q-point set ! (note that the vectors vql and vqc are in the first Brillouin zone) call genppts(.true.,nsymqpt,symqpt,ngridq,nqptnr,epslat,bvec,boxl,nqpt,iqmap, & iqmapnr,ivq,vql,vqc,wqpt,wqptnr) ! write the q-points to QPOINTS.OUT call writeqpts ! find the index for q = 0 do iq0=1,nqpt t1=sum(abs(vql(:,iq0))) if (t1.lt.epslat) goto 10 end do write(*,*) write(*,'("Error(init2): q = 0 not in q-point set")') write(*,*) stop 10 continue ! find the maximum size of the spherical Bessel function array over all species call findnjcmax ! write to VARIABLES.OUT call writevars('nsymqpt',iv=nsymqpt) call writevars('symqpt',nv=9*nsymqpt,iva=symqpt) call writevars('ngridq',nv=3,iva=ngridq) call writevars('nqpt',iv=nqpt) call writevars('iqmap',nv=nqptnr,iva=iqmap) call writevars('ivq',nv=3*nqptnr,iva=ivq) call writevars('vql',nv=3*nqptnr,rva=vql) call writevars('wqpt',nv=nqpt,rva=wqpt) !--------------------------------------------------------! ! OEP, Hartree-Fock, RDMFT, BSE and GW variables ! !--------------------------------------------------------! if ((xctype(1).lt.0).or.(any(task.eq.[5,180,185,188,205,300,320,330,331,600, & 620,630]))) then ! determine the regularised Coulomb Green's function for small q call gengclq ! output the Coulomb Green's function to GCLQ.OUT call writegclq end if if (task.eq.300) then if (allocated(vclmat)) deallocate(vclmat) allocate(vclmat(nstsv,nstsv,nkpt)) if (allocated(dkdc)) deallocate(dkdc) allocate(dkdc(nstsv,nstsv,nkpt)) end if !----------------------------------------------------------! ! G-vector variables for coarse grid (G < 2*gkmax) ! !----------------------------------------------------------! ! generate the G-vectors call gengvc ! generate the characteristic function call gencfrc call timesec(ts1) timeinit=timeinit+ts1-ts0 return end subroutine elk-6.3.2/src/PaxHeaders.21352/init3.f900000644000000000000000000000013113543334736014175 xustar0030 mtime=1569569246.074641022 29 atime=1569569242.32064342 30 ctime=1569569246.074641022 elk-6.3.2/src/init3.f900000644002504400250440000000265313543334736016253 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine init3 use modmain use modgw use modtddft use modvars implicit none ! local variables integer ig,iw real(8) w1,w2,t1,t2 !-------------------------------------------------------------! ! response function and perturbation theory variables ! !-------------------------------------------------------------! ! G-vectors for response functions ngrf=1 do ig=2,ngvec if (gc(ig).gt.gmaxrf) then ngrf=ig-1 exit end if end do ngrf=min(ngrf,ngvc) ! frequencies for reponse functions nwrf=1 if (allocated(wrf)) deallocate(wrf) select case(task) case(188,320,330,331) nwrf=nwplot allocate(wrf(nwrf)) w1=wplot(1) w2=max(wplot(2),w1) t1=(w2-w1)/dble(nwplot) do iw=1,nwplot t2=w1+t1*dble(iw-1) wrf(iw)=cmplx(t2,swidth,8) end do ! set the first frequency to zero for the bootstrap functional if ((fxctype(1).eq.210).or.(fxctype(1).eq.211)) then wrf(1)=cmplx(0.d0,swidth,8) end if case(600,610,620,630,640) ! GW Matsubara frequencies call genwgw case default nwrf=1 allocate(wrf(nwrf)) wrf(1)=cmplx(0.d0,swidth,8) end select ! write to VARIABLES.OUT call writevars('gmaxrf',rv=gmaxrf) call writevars('ngrf',iv=ngrf) call writevars('nwrf',iv=nwrf) call writevars('wrf',nv=nwrf,zva=wrf) return end subroutine elk-6.3.2/src/PaxHeaders.21352/init4.f900000644000000000000000000000013213543334736014177 xustar0030 mtime=1569569246.079641019 30 atime=1569569242.325643416 30 ctime=1569569246.079641019 elk-6.3.2/src/init4.f900000644002504400250440000001372213543334736016253 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine init4 use modmain use modphonon use modpw use modvars implicit none ! local variables integer ik,jspn integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3 real(8) vl(3),vc(3) ! external functions real(8) gaunt external gaunt !---------------------------! ! H+k-vector arrays ! !---------------------------! if (any(task.eq.[135,170,171,172,173])) then if (task.eq.135) hkmax=0.5d0*gmaxvr-epslat call findngkmax(nkpt,vkc,nspnfv,vqcss,ngvec,vgc,hkmax,nhkmax) ! allocate the H+k-vector arrays if (allocated(nhk)) deallocate(nhk) allocate(nhk(nspnfv,nkpt)) if (allocated(ihkig)) deallocate(ihkig) allocate(ihkig(nhkmax,nspnfv,nkpt)) if (allocated(vhkl)) deallocate(vhkl) allocate(vhkl(3,nhkmax,nspnfv,nkpt)) if (allocated(vhkc)) deallocate(vhkc) allocate(vhkc(3,nhkmax,nspnfv,nkpt)) if (allocated(hkc)) deallocate(hkc) allocate(hkc(nhkmax,nspnfv,nkpt)) if (allocated(sfachk)) deallocate(sfachk) allocate(sfachk(nhkmax,natmtot,nspnfv,nkpt)) ! initialise H+k-vectors arrays do ik=1,nkpt do jspn=1,nspnfv vl(:)=vkl(:,ik) vc(:)=vkc(:,ik) ! spin-spiral case if (spinsprl) then if (jspn.eq.1) then vl(:)=vl(:)+0.5d0*vqlss(:) vc(:)=vc(:)+0.5d0*vqcss(:) else vl(:)=vl(:)-0.5d0*vqlss(:) vc(:)=vc(:)-0.5d0*vqcss(:) end if end if ! generate the H+k-vectors call gengkvec(ngvec,ivg,vgc,vl,vc,hkmax,nhkmax,nhk(jspn,ik), & ihkig(:,jspn,ik),vhkl(:,:,jspn,ik),vhkc(:,:,jspn,ik),hkc(:,jspn,ik)) ! generate structure factors for H+k-vectors call gensfacgp(nhk(jspn,ik),vhkc(:,:,jspn,ik),nhkmax,sfachk(:,:,jspn,ik)) end do end do ! write to VARIABLES.OUT call writevars('hkmax',rv=hkmax) call writevars('nhk',nv=nspnfv*nkpt,iva=nhk) do ik=1,nkpt do jspn=1,nspnfv call writevars('ihkig',l=jspn,m=ik,nv=nhk(jspn,ik),iva=ihkig(:,jspn,ik)) end do end do end if !-----------------------------! ! G+k+q-vector arrays ! !-----------------------------! if (task.eq.205) then if (allocated(vkql)) deallocate(vkql) allocate(vkql(3,nkptnr)) if (allocated(vkqc)) deallocate(vkqc) allocate(vkqc(3,nkptnr)) if (allocated(ngkq)) deallocate(ngkq) allocate(ngkq(nspnfv,nkptnr)) if (allocated(igkqig)) deallocate(igkqig) allocate(igkqig(ngkmax,nspnfv,nkptnr)) if (allocated(vgkql)) deallocate(vgkql) allocate(vgkql(3,ngkmax,nspnfv,nkptnr)) if (allocated(vgkqc)) deallocate(vgkqc) allocate(vgkqc(3,ngkmax,nspnfv,nkptnr)) if (allocated(gkqc)) deallocate(gkqc) allocate(gkqc(ngkmax,nspnfv,nkptnr)) if (allocated(sfacgkq)) deallocate(sfacgkq) allocate(sfacgkq(ngkmax,natmtot,nspnfv,nkptnr)) end if !---------------------------! ! G+q-vector arrays ! !---------------------------! if (task.eq.205) then if (allocated(vgqc)) deallocate(vgqc) allocate(vgqc(3,ngtot)) if (allocated(gqc)) deallocate(gqc) allocate(gqc(ngtot)) if (allocated(gclgq)) deallocate(gclgq) allocate(gclgq(ngvec)) if (allocated(jlgqrmt)) deallocate(jlgqrmt) allocate(jlgqrmt(0:lnpsd,ngvec,nspecies)) if (allocated(ylmgq)) deallocate(ylmgq) allocate(ylmgq(lmmaxo,ngtot)) if (allocated(sfacgq)) deallocate(sfacgq) allocate(sfacgq(ngvec,natmtot)) if (allocated(ffacgq)) deallocate(ffacgq) allocate(ffacgq(ngtot,nspecies)) if (allocated(dcfunig)) deallocate(dcfunig) allocate(dcfunig(ngtot)) if (allocated(dcfunir)) deallocate(dcfunir) allocate(dcfunir(ngtot)) end if !-----------------------------------------------------------------! ! phonon density functional perturbation theory variables ! !-----------------------------------------------------------------! if (task.eq.205) then if (allocated(drhomt)) deallocate(drhomt) allocate(drhomt(npmtmax,natmtot)) if (allocated(drhoir)) deallocate(drhoir) allocate(drhoir(ngtot)) if (allocated(dmagmt)) deallocate(dmagmt) if (allocated(dmagir)) deallocate(dmagir) if (spinpol) then allocate(dmagmt(npmtmax,natmtot,ndmag)) allocate(dmagir(ngtot,ndmag)) end if if (allocated(dvclmt)) deallocate(dvclmt) allocate(dvclmt(npmtmax,natmtot)) if (allocated(dvclir)) deallocate(dvclir) allocate(dvclir(ngtot)) if (allocated(zvnmt)) deallocate(zvnmt) allocate(zvnmt(npmtmax)) if (allocated(dvsmt)) deallocate(dvsmt) allocate(dvsmt(npmtmax,natmtot)) if (allocated(dvsir)) deallocate(dvsir) allocate(dvsir(ngtot)) if (allocated(gvsmt)) deallocate(gvsmt) allocate(gvsmt(npmtmax)) if (allocated(dvsig)) deallocate(dvsig) allocate(dvsig(ngtot)) if (allocated(dbsmt)) deallocate(dbsmt) if (allocated(dbsir)) deallocate(dbsir) if (spinpol) then allocate(dbsmt(npcmtmax,natmtot,ndmag)) allocate(dbsir(ngtot,ndmag)) end if if (allocated(dsocfr)) deallocate(dsocfr) if (spinorb) then allocate(dsocfr(nrcmtmax,natmtot)) end if if (allocated(dhaa)) deallocate(dhaa) allocate(dhaa(lmmaxo,apwordmax,0:lmaxapw,apwordmax,0:lmaxapw,natmtot)) if (allocated(dhloa)) deallocate(dhloa) allocate(dhloa(lmmaxo,apwordmax,0:lmaxapw,nlomax,natmtot)) if (allocated(dhlolo)) deallocate(dhlolo) allocate(dhlolo(lmmaxo,nlomax,nlomax,natmtot)) ! allocate and generate real Gaunt coefficient array if (allocated(gntyyy)) deallocate(gntyyy) allocate(gntyyy(lmmaxo,lmmaxapw,lmmaxapw)) do l1=0,lmaxapw do m1=-l1,l1 lm1=idxlm(l1,m1) do l3=0,lmaxapw do m3=-l3,l3 lm3=idxlm(l3,m3) do l2=0,lmaxo do m2=-l2,l2 lm2=idxlm(l2,m2) gntyyy(lm2,lm3,lm1)=gaunt(l1,l2,l3,m1,m2,m3) end do end do end do end do end do end do if (allocated(devalfv)) deallocate(devalfv) allocate(devalfv(nstfv,nspnfv,nkptnr)) if (allocated(devalsv)) deallocate(devalsv) allocate(devalsv(nstsv,nkptnr)) if (allocated(doccsv)) deallocate(doccsv) allocate(doccsv(nstsv,nkptnr)) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genpmat.f900000644000000000000000000000013213543334736014603 xustar0030 mtime=1569569246.083641016 30 atime=1569569242.329643414 30 ctime=1569569246.083641016 elk-6.3.2/src/genpmat.f900000644002504400250440000000146613543334736016661 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genpmat use modmain use modmpi use modomp implicit none ! local variables integer ik,nthd if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(genpmat_) write(*,'("Info(genpmat): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(genpmat_) call putpmat(ik) end do !$OMP END PARALLEL DO call freethd(nthd) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/putkmat.f900000644000000000000000000000013213543334736014635 xustar0030 mtime=1569569246.088641013 30 atime=1569569242.334643411 30 ctime=1569569246.088641013 elk-6.3.2/src/putkmat.f900000644002504400250440000000614213543334736016707 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putkmat(tfv,tvclcr,ik,vmt,vir) use modmain use modmpi implicit none ! arguments logical, intent(in) :: tfv,tvclcr integer, intent(in) :: ik real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) ! local variables integer ist,ispn,recl,i ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) complex(8), allocatable :: kmat(:,:),a(:,:) ! get the eigenvalues/vectors from file for input reduced k-point allocate(evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)) call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) do ispn=1,nspnfv call match(ngk(ispn,ik),vgkc(:,:,ispn,ik),gkc(:,ispn,ik), & sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn)) end do ! index to all states do ist=1,nstsv idx(ist)=ist end do ! calculate the wavefunctions for all states of the input k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngkmax,nspinor,nstsv)) call genwfsv(.false.,.true.,nstsv,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm,evecfv) ! compute Kohn-Sham potential matrix elements allocate(kmat(nstsv,nstsv)) if (spinpol) then call genvbmatk(vmt,vir,bsmt,bsir,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk, & kmat) else call genvmatk(vmt,vir,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk,kmat) end if deallocate(wfgk) ! add the DFT+U matrix elements if required call genvmmtsv(wfmt,kmat) ! negate the potential matrix elements because we have to subtract them kmat(:,:)=-kmat(:,:) ! add second-variational eigenvalues along the diagonal do ist=1,nstsv kmat(ist,ist)=kmat(ist,ist)+evalsv(ist,ik) end do ! add scissor correction if required if (scissor.ne.0.d0) then do ist=1,nstsv if (evalsv(ist,ik).gt.efermi) then kmat(ist,ist)=kmat(ist,ist)+scissor end if end do end if ! add the Coulomb core matrix elements if required if (tvclcr) call vclcore(wfmt,kmat) ! rotate kinetic matrix elements to first-variational basis if required if (tfv) then allocate(a(nstsv,nstsv)) call zgemm('N','C',nstsv,nstsv,nstsv,zone,kmat,nstsv,evecsv,nstsv,zzero,a, & nstsv) call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,a,nstsv,zzero,kmat, & nstsv) deallocate(a) end if deallocate(evecsv,wfmt) ! determine the record length inquire(iolength=recl) vkl(:,1),nstsv,kmat !$OMP CRITICAL(u140) do i=1,2 open(140,file='KMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl,err=10) write(140,rec=ik,err=10) vkl(:,ik),nstsv,kmat close(140) exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(putkmat): unable to write to KMAT.OUT")') write(*,*) stop end if close(140) end do !$OMP END CRITICAL(u140) deallocate(kmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getkmat.f900000644000000000000000000000013013543334736014602 xustar0029 mtime=1569569246.09264101 30 atime=1569569242.338643408 29 ctime=1569569246.09264101 elk-6.3.2/src/getkmat.f900000644002504400250440000000247113543334736016657 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getkmat(ik,kmat) use modmain implicit none ! arguments integer, intent(in) :: ik complex(8), intent(out) :: kmat(nstsv,nstsv) ! local variables integer recl,nstsv_,i real(8) vkl_(3),t1 ! find the record length inquire(iolength=recl) vkl_,nstsv_,kmat !$OMP CRITICAL(u140) do i=1,2 open(140,file='KMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl,err=10) read(140,rec=ik,err=10) vkl_,nstsv_,kmat exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(getkmat): unable to read from KMAT.OUT")') write(*,*) stop end if close(140) end do !$OMP END CRITICAL(u140) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getkmat): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" KMAT.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getkmat): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" KMAT.OUT : ",I8)') nstsv_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genkmat.f900000644000000000000000000000013213543334736014576 xustar0030 mtime=1569569246.097641007 30 atime=1569569242.342643406 30 ctime=1569569246.097641007 elk-6.3.2/src/genkmat.f900000644002504400250440000000433113543334736016646 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genkmat ! !INTERFACE: subroutine genkmat(tfv,tvclcr) ! !USES: use modmain use modmpi use modomp ! !INPUT/OUTPUT PARAMETERS: ! tfv : .true. if the matrix elements are to be expressed in the ! first-variational basis; second-variational otherwise (in,logical) ! tvclvr : .true. if the non-local Coulomb potential from the core states is ! to be included in the kinetic matrix elements (in,logical) ! !DESCRIPTION: ! Computes the kinetic matrix elements in the first- or second-variational ! basis and stores them in the file {\tt KMAT.OUT}. See routine {\tt putkmat}. ! ! !REVISION HISTORY: ! Created January 2007 (JKD) !EOP !BOC implicit none ! arguments logical, intent(in) :: tfv,tvclcr ! local variables integer ik,is,ias integer nrc,nrci,nthd ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:),rfmt(:) allocate(vmt(npcmtmax,natmtot),vir(ngtot)) ! convert muffin-tin Kohn-Sham potential to spherical coordinates on a coarse ! radial mesh call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,is,nrc,nrci) & !$OMP NUM_THREADS(nthd) allocate(rfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,vsmt(:,ias),rfmt) call rbsht(nrc,nrci,rfmt,vmt(:,ias)) end do !$OMP END DO deallocate(rfmt) !$OMP END PARALLEL call freethd(nthd) ! multiply Kohn-Sham interstitial potential by characteristic function vir(:)=vsir(:)*cfunir(:) if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(genkmat_) write(*,'("Info(genkmat): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(genkmat_) call putkmat(tfv,tvclcr,ik,vmt,vir) end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(vmt,vir) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genexpmt.f900000644000000000000000000000013213543334736014777 xustar0030 mtime=1569569246.101641005 30 atime=1569569242.347643402 30 ctime=1569569246.101641005 elk-6.3.2/src/genexpmt.f900000644002504400250440000000317413543334736017053 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genexpmt(ngp,jlgpr,ylmgp,ld,sfacgp,expmt) use modmain implicit none ! arguments integer, intent(in) :: ngp real(8), intent(in) :: jlgpr(njcmax,nspecies,ngp) complex(8), intent(in) :: ylmgp(lmmaxo,ngp) integer, intent(in) :: ld complex(8), intent(in) :: sfacgp(ld,natmtot) complex(8), intent(out) :: expmt(npcmtmax,natmtot,ngp) ! local variables integer ig,is,ia,ias integer nrc,nrci,irc,npc integer l,m,lm,i,j real(8) t1 complex(8) z1 ! automatic arrays complex(8) ylm(lmmaxo) complex(8) zfmt1(npcmtmax),zfmt2(npcmtmax) do ig=1,ngp lm=0 do l=0,lmaxo z1=zil(l) do m=-l,l lm=lm+1 ylm(lm)=z1*conjg(ylmgp(lm,ig)) end do end do do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) i=0 j=0 do irc=1,nrci lm=0 do l=0,lmaxi j=j+1 t1=jlgpr(j,is,ig) do m=-l,l lm=lm+1 i=i+1 zfmt1(i)=t1*ylm(lm) end do end do end do do irc=nrci+1,nrc lm=0 do l=0,lmaxo j=j+1 t1=jlgpr(j,is,ig) do m=-l,l lm=lm+1 i=i+1 zfmt1(i)=t1*ylm(lm) end do end do end do ! convert to spherical coordinates call zbsht(nrc,nrci,zfmt1,zfmt2) ! mutiply by phase factors and store for all atoms do ia=1,natoms(is) ias=idxas(ia,is) z1=fourpi*sfacgp(ig,ias) expmt(1:npc,ias,ig)=z1*zfmt2(1:npc) end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/epsinv.f900000644000000000000000000000013013543334736014452 xustar0030 mtime=1569569246.105641002 28 atime=1569569242.3516434 30 ctime=1569569246.105641002 elk-6.3.2/src/epsinv.f900000644002504400250440000000511213543334736016522 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine epsinv use modmain use modmpi use modomp implicit none ! local variables integer iq,ik,ig,iw integer n,nthd ! allocatable arrays integer(8), allocatable :: lock(:) real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqr(:,:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:),epsi(:,:,:) ! allocate local arrays allocate(vgqc(3,ngrf),gqc(ngrf),gclgq(ngrf)) allocate(jlgqr(njcmax,nspecies,ngrf)) allocate(ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot)) allocate(epsi(ngrf,ngrf,nwrf)) ! initialise the OpenMP locks allocate(lock(nwrf)) do iw=1,nwrf call omp_init_lock(lock(iw)) end do if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! loop over q-points do iq=1,nqpt if (mp_mpi) write(*,'("Info(epsinv): ",I6," of ",I6," q-points")') iq,nqpt ! generate the G+q-vectors and related quantities call gengqrf(vqc(:,iq),vgqc,gqc,jlgqr,ylmgq,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngrf,gqc,gclgq) ! use the symmetric form gclgq(:)=sqrt(gclgq(:)) ! zero the response function (stored in epsi) epsi(:,:,:)=0.d0 call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! compute v^1/2 chi0 v^1/2 call genvchi0(.false.,ik,lock,0.d0,vql(:,iq),gclgq,jlgqr,ylmgq,sfacgq, & ngrf,epsi) end do !$OMP END PARALLEL DO call freethd(nthd) ! add epsi from each process and redistribute if (np_mpi.gt.1) then n=ngrf*ngrf*nwrf call mpi_allreduce(mpi_in_place,epsi,n,mpi_double_complex,mpi_sum,mpicom, & ierror) end if ! negate and add delta(G,G') epsi(:,:,:)=-epsi(:,:,:) do ig=1,ngrf epsi(ig,ig,:)=epsi(ig,ig,:)+1.d0 end do !-------------------------------------! ! invert epsilon over G-space ! !-------------------------------------! call holdthd(nwrf,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do iw=1,nwrf call zminv(ngrf,epsi(:,:,iw)) end do !$OMP END PARALLEL DO call freethd(nthd) ! write inverse RPA epsilon to EPSINV.OUT if (mp_mpi) call putepsinv(iq,epsi) ! end loop over q-points end do ! destroy the OpenMP locks do iw=1,nwrf call omp_destroy_lock(lock(iw)) end do deallocate(lock) deallocate(vgqc,gqc,gclgq,jlgqr) deallocate(ylmgq,sfacgq,epsi) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getevecfv.f900000644000000000000000000000013213543334736015126 xustar0030 mtime=1569569246.110640999 30 atime=1569569242.355643397 30 ctime=1569569246.110640999 elk-6.3.2/src/getevecfv.f900000644002504400250440000001407513543334736017204 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: getevecfv ! !INTERFACE: subroutine getevecfv(fext,ikp,vpl,vgpl,evecfv) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! fext : filename extension (in,character(*)) ! ikp : p-point vector index (in,integer) ! vpl : p-point vector in lattice coordinates (in,real(3)) ! vgpl : G+p-vectors in lattice coordinates (out,real(3,ngkmax,nspnfv)) ! evecfv : first-variational eigenvectors (out,complex(nmatmax,nstfv,nspnfv)) ! !DESCRIPTION: ! Reads in a first-variational eigenvector from file. If the input $k$-point, ! ${\bf p}$, is not in the reduced set, then the eigenvector of the equivalent ! point is read in and the required rotation/translation operations applied. ! ! !REVISION HISTORY: ! Created Feburary 2007 (JKD) ! Fixed transformation error, October 2007 (JKD, Anton Kozhevnikov) ! Fixed l.o. rotation, June 2010 (A. Kozhevnikov) !EOP !BOC implicit none ! arguments character(*), intent(in) :: fext integer, intent(in) :: ikp real(8), intent(in) :: vpl(3),vgpl(3,ngkmax,nspnfv) complex(8), intent(out) :: evecfv(nmatmax,nstfv,nspnfv) ! local variables integer isym,lspl,ilspl integer jspn,ilo,l,lm,i,j integer ik,ist,igp,igk,ig integer is,ia,ja,ias,jas integer recl,nmatmax_,nstfv_,nspnfv_ real(8) vkl_(3),v(3) real(8) si(3,3),t1 complex(8) z1 character(256) fname ! automatic arrays logical done(ngkmax) ! allocatable arrays complex(8), allocatable :: evecfv_(:,:) if (ikp.gt.0) then ik=ikp else ! find the equivalent k-point number and crystal symmetry element call findkpt(vpl,isym,ik) end if ! find the record length inquire(iolength=recl) vkl_,nmatmax_,nstfv_,nspnfv_,evecfv fname=trim(scrpath)//'EVECFV'//trim(fext) !$OMP CRITICAL(u122) do i=1,2 open(122,file=trim(fname),form='UNFORMATTED',access='DIRECT',recl=recl,err=10) read(122,rec=ik,err=10) vkl_,nmatmax_,nstfv_,nspnfv_,evecfv exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(getevecfv): unable to read from ",A)') trim(fname) write(*,*) stop end if close(122) end do !$OMP END CRITICAL(u122) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getevecfv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EVECFV.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nmatmax.ne.nmatmax_) then write(*,*) write(*,'("Error(getevecfv): differing nmatmax for k-point ",I8)') ik write(*,'(" current : ",I8)') nmatmax write(*,'(" EVECFV.OUT : ",I8)') nmatmax_ write(*,*) stop end if if (nstfv.ne.nstfv_) then write(*,*) write(*,'("Error(getevecfv): differing nstfv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstfv write(*,'(" EVECFV.OUT : ",I8)') nstfv_ write(*,*) stop end if if (nspnfv.ne.nspnfv_) then write(*,*) write(*,'("Error(getevecfv): differing nspnfv for k-point ",I8)') ik write(*,'(" current : ",I8)') nspnfv write(*,'(" EVECFV.OUT : ",I8)') nspnfv_ write(*,*) stop end if ! if p = k then return if (ikp.gt.0) return t1=abs(vpl(1)-vkl(1,ik))+abs(vpl(2)-vkl(2,ik))+abs(vpl(3)-vkl(3,ik)) if (t1.lt.epslat) return ! allocate temporary eigenvector array allocate(evecfv_(nmatmax,nstfv)) ! index to spatial rotation in lattice point group lspl=lsplsymc(isym) ! the inverse of the spatial symmetry rotates k into p ilspl=isymlat(lspl) si(:,:)=dble(symlat(:,:,ilspl)) !-----------------------------------------------! ! translate and rotate APW coefficients ! !-----------------------------------------------! ! loop over the first-variational spins do jspn=1,nspnfv if (tv0symc(isym)) then ! translation vector is zero do ist=1,nstfv do igk=1,ngk(jspn,ik) evecfv_(igk,ist)=evecfv(igk,ist,jspn) end do end do else ! non-zero translation vector gives a phase factor v(:)=vtcsymc(:,isym) do igk=1,ngk(jspn,ik) ig=igkig(igk,jspn,ik) t1=-(vgc(1,ig)*v(1)+vgc(2,ig)*v(2)+vgc(3,ig)*v(3)) z1=cmplx(cos(t1),sin(t1),8) evecfv_(igk,:)=z1*evecfv(igk,:,jspn) end do end if ! apply spatial rotation operation (passive transformation) done(1:ngk(jspn,ik))=.false. i=1 do igk=1,ngk(jspn,ik) call r3mtv(si,vgkl(:,igk,jspn,ik),v) do igp=i,ngk(jspn,ik) if (done(igp)) cycle t1=abs(v(1)-vgpl(1,igp,jspn)) & +abs(v(2)-vgpl(2,igp,jspn)) & +abs(v(3)-vgpl(3,igp,jspn)) if (t1.lt.epslat) then evecfv(igp,:,jspn)=evecfv_(igk,:) done(igp)=.true. exit end if end do do igp=i,ngk(jspn,ik) if (.not.done(igp)) then i=igp exit end if end do end do end do !---------------------------------------------------------! ! translate and rotate local-orbital coefficients ! !---------------------------------------------------------! if (nlotot.gt.0) then ! rotate k-point by inverse symmetry matrix call r3mtv(si,vkl(:,ik),v) ! loop over the first-variational spins do jspn=1,nspnfv ! make a copy of the local-orbital coefficients do i=ngk(jspn,ik)+1,nmat(jspn,ik) evecfv_(i,:)=evecfv(i,:,jspn) end do do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! equivalent atom for this symmetry ja=ieqatom(ia,is,isym) jas=idxas(ja,is) ! phase factor from translation t1=-twopi*dot_product(vkl(:,ik),atposl(:,ja,is)) z1=cmplx(cos(t1),sin(t1),8) t1=twopi*dot_product(v(:),atposl(:,ia,is)) z1=z1*cmplx(cos(t1),sin(t1),8) ! rotate local-orbitals (active transformation) do ilo=1,nlorb(is) l=lorbl(ilo,is) lm=idxlm(l,-l) i=ngk(jspn,ik)+idxlo(lm,ilo,ias) j=ngk(jspn,ik)+idxlo(lm,ilo,jas) call rotzflm(symlatc(:,:,lspl),l,l,lolmmax,nstfv,nmatmax, & evecfv_(j,1),evecfv(i,1,jspn)) evecfv(i:i+2*l,:,jspn)=z1*evecfv(i:i+2*l,:,jspn) end do end do end do end do end if deallocate(evecfv_) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zfmtctof.f900000644000000000000000000000013213543334736015004 xustar0030 mtime=1569569246.114640996 30 atime=1569569242.360643394 30 ctime=1569569246.114640996 elk-6.3.2/src/zfmtctof.f900000644002504400250440000000444713543334736017064 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine zfmtctof(zfmt) use modmain use modomp implicit none ! arguments complex(8), intent(inout) :: zfmt(npmtmax,natmtot) ! local variables integer is,ias,lm integer nr,nri,nro integer iro,ir,npi integer nrc,nrci,nrco integer irco,irc,npci integer i,nthd ! allocatable arrays real(8), allocatable :: fi1(:),fi2(:),fo1(:),fo2(:) complex(8), allocatable :: zfmt1(:) if (lradstp.eq.1) return call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(fi1,fi2,fo1,fo2,zfmt1) & !$OMP PRIVATE(is,nr,nri,nro,iro,npi) & !$OMP PRIVATE(nrc,nrci,nrco,irco,npci) & !$OMP PRIVATE(lm,i,irc,ir) & !$OMP NUM_THREADS(nthd) allocate(fi1(nrcmtmax),fi2(nrcmtmax)) allocate(fo1(nrmtmax),fo2(nrmtmax)) allocate(zfmt1(npmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) nro=nr-nri iro=nri+1 npi=npmti(is) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci irco=nrci+1 npci=npcmti(is) ! interpolate up to lmaxi over entire muffin-tin do lm=1,lmmaxi i=lm do irc=1,nrci fi1(irc)=dble(zfmt(i,ias)) fi2(irc)=aimag(zfmt(i,ias)) i=i+lmmaxi end do do irc=irco,nrc fi1(irc)=dble(zfmt(i,ias)) fi2(irc)=aimag(zfmt(i,ias)) i=i+lmmaxo end do call rfinterp(nrc,rcmt(:,is),fi1,nr,rlmt(:,1,is),fo1) call rfinterp(nrc,rcmt(:,is),fi2,nr,rlmt(:,1,is),fo2) i=lm do ir=1,nri zfmt1(i)=cmplx(fo1(ir),fo2(ir),8) i=i+lmmaxi end do do ir=iro,nr zfmt1(i)=cmplx(fo1(ir),fo2(ir),8) i=i+lmmaxo end do end do ! interpolate up to lmaxo on outer part of muffin-tin do lm=lmmaxi+1,lmmaxo i=npci+lm do irc=irco,nrc fi1(irc)=dble(zfmt(i,ias)) fi2(irc)=aimag(zfmt(i,ias)) i=i+lmmaxo end do call rfinterp(nrco,rcmt(irco,is),fi1(irco),nro,rsp(iro,is),fo1(iro)) call rfinterp(nrco,rcmt(irco,is),fi2(irco),nro,rsp(iro,is),fo2(iro)) i=npi+lm do ir=iro,nr zfmt1(i)=cmplx(fo1(ir),fo2(ir),8) i=i+lmmaxo end do end do call zcopy(npmt(is),zfmt1,1,zfmt(:,ias),1) end do !$OMP END DO deallocate(fi1,fi2,fo1,fo2,zfmt1) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/wfplot.f900000644000000000000000000000013213543334736014463 xustar0030 mtime=1569569246.119640993 30 atime=1569569242.365643391 30 ctime=1569569246.119640993 elk-6.3.2/src/wfplot.f900000644002504400250440000000572413543334736016542 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine wfplot use modmain use modmpi use modomp implicit none ! local variables integer ik,ist real(8) x,t1 ! external functions real(8) sdelta external sdelta ! initialise universal variables call init0 call init1 ! read the density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! set the occupancies if ((task.eq.61).or.(task.eq.62).or.(task.eq.63)) then ! plot of wavefunction modulus squared ik=kstlist(1,1) ist=kstlist(2,1) if ((ik.lt.1).or.(ik.gt.nkpt)) then write(*,*) write(*,'("Error(wfplot): k-point out of range : ",I8)') ik write(*,*) stop end if if ((ist.lt.1).or.(ist.gt.nstsv)) then write(*,*) write(*,'("Error(wfplot): state out of range : ",I8)') ist write(*,*) stop end if ! select a particular wavefunction using its occupancy occsv(:,:)=0.d0 occsv(ist,ik)=1.d0/wkpt(ik) ! no symmetrisation required nsymcrys=1 else ! plotting an STM image by setting occupancies to be a delta function at the ! Fermi energy t1=1.d0/swidth do ik=1,nkpt ! get the eigenvalues from file call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) do ist=1,nstsv x=(efermi-evalsv(ist,ik))*t1 occsv(ist,ik)=occmax*wkpt(ik)*sdelta(stype,x)*t1 end do end do end if ! core density should not be added rhocr(:,:,:)=0.d0 ! compute the charge density with the new occupancies call rhomag ! write the wavefunction modulus squared plot to file if (mp_mpi) then select case(task) case(61) open(50,file='WF1D.OUT',form='FORMATTED') open(51,file='WFLINES.OUT',form='FORMATTED') call plot1d(50,51,1,rhomt,rhoir) close(50) close(51) write(*,*) write(*,'("Info(wfplot):")') write(*,'(" 1D wavefunction modulus squared written to WF1D.OUT")') write(*,'(" vertex location lines written to WFLINES.OUT")') case(62) open(50,file='WF2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,rhomt,rhoir) close(50) write(*,*) write(*,'("Info(wfplot):")') write(*,'(" 2D wavefunction modulus squared written to WF2D.OUT")') case(162) open(50,file='STM2D.OUT',form='FORMATTED') call plot2d(.false.,50,1,rhomt,rhoir) close(50) write(*,*) write(*,'("Info(wfplot):")') write(*,'(" 2D STM image written to STM2D.OUT")') case(63) open(50,file='WF3D.OUT',form='FORMATTED') call plot3d(50,1,rhomt,rhoir) close(50) write(*,*) write(*,'("Info(wfplot):")') write(*,'(" 3D wavefunction modulus squared written to WF3D.OUT")') end select if (task.ne.162) then write(*,'(" for k-point ",I8," and state ",I6)') kstlist(1,1),kstlist(2,1) end if end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/straingkq.f900000644000000000000000000000013213543334736015153 xustar0030 mtime=1569569246.123640991 30 atime=1569569242.370643388 30 ctime=1569569246.123640991 elk-6.3.2/src/straingkq.f900000644002504400250440000000434713543334736017232 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine straingkq use modmain use modulr use modstore implicit none integer is,ia,ig integer nppt,ik,igk integer jspn,iq real(8) ta(3,3),tb(3,3),vc(3) if ((istrain.lt.1).or.(istrain.gt.nstrain)) return ! compute the strained lattice vectors avec(:,:)=avec_(:,:)+deltast*strain(:,:,istrain) ! generate the strained reciprocal lattice vectors and unit cell volume call reciplat(avec,bvec,omega,omegabz) ! determine the transformation matrix to the strained vectors call r3mm(avec,ainv,ta) call r3mm(bvec,binv,tb) ! recalculate all required variables which depend on avec call r3minv(avec,ainv) call r3minv(bvec,binv) call r3mv(bvec,vqlss,vqcss) do is=1,nspecies do ia=1,natoms(is) call r3mv(avec,atposl(:,ia,is),atposc(:,ia,is)) end do end do call r3mv(bvec,vecql,vecqc) call r3mv(ainv,efieldc,efieldl) ! apply the transformation matrix to the G-vectors do ig=1,ngtot vc(:)=vgc(:,ig) call r3mv(tb,vc,vgc(:,ig)) gc(ig)=sqrt(vgc(1,ig)**2+vgc(2,ig)**2+vgc(3,ig)**2) end do ! recalculate variables which depend on the G-vectors call gengclg call genjlgprmt(lnpsd,ngvec,gc,ngvec,jlgrmt) call genylmg call gensfacgp(ngvec,vgc,ngvec,sfacg) do is=1,nspecies call genffacgp(is,gc,ffacg(:,is)) end do call gencfun call energynn ! apply the transformation to the k-vectors do ik=1,nkptnr vc(:)=vkc(:,ik) call r3mv(tb,vc,vkc(:,ik)) end do ! apply the transformation to G+k-vectors and recalculate dependent variables if (xctype(1).lt.0) then nppt=nkptnr else nppt=nkpt end if do ik=1,nppt do jspn=1,nspnfv do igk=1,ngk(jspn,ik) vc(:)=vgkc(:,igk,jspn,ik) call r3mv(tb,vc,vgkc(:,igk,jspn,ik)) gkc(igk,jspn,ik)=sqrt(vgkc(1,igk,jspn,ik)**2 & +vgkc(2,igk,jspn,ik)**2 & +vgkc(3,igk,jspn,ik)**2) end do call gensfacgp(ngk(jspn,ik),vgkc(:,:,jspn,ik),ngkmax,sfacgk(:,:,jspn,ik)) end do end do ! apply the transformation to the q-vectors if required if (xctype(1).lt.0) then do iq=1,nqptnr vc(:)=vqc(:,iq) call r3mv(tb,vc,vqc(:,iq)) end do call gengclq end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/symdmat.f900000644000000000000000000000013213543334736014626 xustar0030 mtime=1569569246.128640987 30 atime=1569569242.376643384 30 ctime=1569569246.128640987 elk-6.3.2/src/symdmat.f900000644002504400250440000000360613543334736016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine symdmat(lmax,ld,dmat) use modmain implicit none ! arguments integer, intent(in) :: lmax integer, intent(in) :: ld complex(8), intent(inout) :: dmat(ld,nspinor,ld,nspinor,natmtot) ! local variables integer is,ia,ja,ias,jas integer isym,lspl,lspn,lmmax real(8) t1 ! automatic arrays logical done(natmmax) ! allocatable arrays complex(8), allocatable :: dm(:,:,:,:,:) lmmax=(lmax+1)**2 ! allocate local arrays allocate(dm(ld,nspinor,ld,nspinor,natmmax)) t1=1.d0/dble(nsymcrys) do is=1,nspecies ! make copy of the density matrices do ia=1,natoms(is) ias=idxas(ia,is) dm(1:lmmax,:,1:lmmax,:,ia)=dmat(1:lmmax,:,1:lmmax,:,ias) end do done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) dmat(:,:,:,:,ias)=0.d0 do isym=1,nsymcrys lspl=lsplsymc(isym) lspn=lspnsymc(isym) ! equivalent atom index (symmetry rotates atom ja into atom ia) ja=ieqatom(ia,is,isym) call rotdmat(symlatc(:,:,lspl),symlatc(:,:,lspn),lmax,nspinor,ld, & dm(:,:,:,:,ja),dmat(:,:,:,:,ias)) ! end loop over crystal symmetries end do ! normalise dmat(:,:,:,:,ias)=t1*dmat(:,:,:,:,ias) done(ia)=.true. ! rotate into equivalent atoms do isym=1,nsymcrys ja=ieqatom(ia,is,isym) if (.not.done(ja)) then jas=idxas(ja,is) ! inverse symmetry (which rotates atom ia into atom ja) lspl=isymlat(lsplsymc(isym)) lspn=isymlat(lspnsymc(isym)) dmat(:,:,:,:,jas)=0.d0 call rotdmat(symlatc(:,:,lspl),symlatc(:,:,lspn),lmax,nspinor,ld, & dmat(:,:,:,:,ias),dmat(:,:,:,:,jas)) done(ja)=.true. end if end do ! end loop over atoms and species end do end do deallocate(dm) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genylmv.f900000644000000000000000000000013213543334736014631 xustar0030 mtime=1569569246.132640985 30 atime=1569569242.381643381 30 ctime=1569569246.132640985 elk-6.3.2/src/genylmv.f900000644002504400250440000000542713543334736016710 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: genylmv ! !INTERFACE: subroutine genylmv(lmax,v,ylm) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum angular momentum (in,integer) ! v : input vector (in,real(3)) ! ylm : array of spherical harmonics (out,complex((lmax+1)**2)) ! !DESCRIPTION: ! Generates a sequence of spherical harmonics, including the Condon-Shortley ! phase, evaluated at angles $(\theta,\phi)$ for $0= 1000 then do not fix the moment t1=sum(abs(mommtfix(:,ia,is))) if (t1.ge.1000.d0) cycle if (ncmag) then v1(:)=mommt(:,ias) else v1(:)=0.d0 v1(3)=mommt(1,ias) end if v2(:)=v1(:)-mommtfix(:,ia,is) if (ncmag) then bfsmcmt(:,ias)=bfsmcmt(:,ias)+taufsm*v2(:) else bfsmcmt(1,ias)=bfsmcmt(1,ias)+taufsm*v2(3) end if ! fixed spin direction if (fsmtype.lt.0) call r3vo(mommtfix(:,ia,is),bfsmcmt(:,ias)) end do end do end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writeqpts.f900000644000000000000000000000013213543334736015212 xustar0030 mtime=1569569246.150640973 30 atime=1569569242.403643367 30 ctime=1569569246.150640973 elk-6.3.2/src/writeqpts.f900000644002504400250440000000073013543334736017261 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeqpts use modmain implicit none ! local variables integer iq open(50,file='QPOINTS.OUT',form='FORMATTED') write(50,'(I6," : nqpt; q-point, vql, wqpt below")') nqpt do iq=1,nqpt write(50,'(I6,4G18.10)') iq,vql(:,iq),wqpt(iq) end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writemom.f900000644000000000000000000000013213543334736015013 xustar0030 mtime=1569569246.154640971 30 atime=1569569242.409643363 30 ctime=1569569246.154640971 elk-6.3.2/src/writemom.f900000644002504400250440000000153513543334736017066 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine writemom(fnum) use modmain implicit none ! arguments integer, intent(in) :: fnum ! local variables integer is,ia,ias write(fnum,*) write(fnum,'("Moments :")') write(fnum,'(" interstitial",T30,": ",3G18.10)') momir(1:ndmag) write(fnum,'(" muffin-tins")') do is=1,nspecies write(fnum,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) write(fnum,'(" atom ",I4,T30,": ",3G18.10)') ia,mommt(1:ndmag,ias) end do end do write(fnum,'(" total in muffin-tins",T30,": ",3G18.10)') mommttot(1:ndmag) write(fnum,'(" total moment",T30,": ",3G18.10)') momtot(1:ndmag) flush(fnum) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rndevsv.f900000644000000000000000000000013113543334736014636 xustar0030 mtime=1569569246.158640968 29 atime=1569569242.41464336 30 ctime=1569569246.158640968 elk-6.3.2/src/rndevsv.f900000644002504400250440000000131013543334736016701 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rndevsv(rndm,evecsv) use modmain use modrandom implicit none ! arguments real(8), intent(in) :: rndm complex(8), intent(inout) :: evecsv(nstsv,nstsv) ! local variables integer ist,jst real(8) a,b if (abs(rndm).lt.1.d-8) return ! add complex random numbers to each eigenvector do ist=1,nstsv do jst=1,nstsv a=rndm*(randomu()-0.5d0) b=rndm*(randomu()-0.5d0) evecsv(ist,jst)=evecsv(ist,jst)+cmplx(a,b,8) end do end do ! orthonormalise the eigenvectors call orthevsv(evecsv) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genwfsvp.f900000644000000000000000000000013213543334736015007 xustar0030 mtime=1569569246.163640965 30 atime=1569569242.419643356 30 ctime=1569569246.163640965 elk-6.3.2/src/genwfsvp.f900000644002504400250440000000410313543334736017054 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genwfsvp(tsh,tgp,nst,idx,ngdg,igf,vpl,ngp,igpig,wfmt,ld,wfir) use modmain implicit none ! arguments logical, intent(in) :: tsh,tgp integer, intent(in) :: nst,idx(nst),ngdg(3),igf(*) real(8), intent(in) :: vpl(3) integer, intent(out) :: ngp(nspnfv),igpig(ngkmax,nspnfv) complex(8), intent(out) :: wfmt(npcmtmax,natmtot,nspinor,nst) integer, intent(in) :: ld complex(8), intent(out) :: wfir(ld,nspinor,nst) ! local variables integer ispn real(8) vl(3),vc(3) ! allocatable arrays real(8), allocatable :: vgpl(:,:,:),vgpc(:,:),gpc(:) complex(8), allocatable :: sfacgp(:,:),apwalm(:,:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) allocate(vgpl(3,ngkmax,nspnfv),vgpc(3,ngkmax),gpc(ngkmax)) allocate(sfacgp(ngkmax,natmtot)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) ! loop over first-variational spins do ispn=1,nspnfv vl(:)=vpl(:) vc(:)=bvec(:,1)*vpl(1)+bvec(:,2)*vpl(2)+bvec(:,3)*vpl(3) ! spin-spiral case if (spinsprl) then if (ispn.eq.1) then vl(:)=vl(:)+0.5d0*vqlss(:) vc(:)=vc(:)+0.5d0*vqcss(:) else vl(:)=vl(:)-0.5d0*vqlss(:) vc(:)=vc(:)-0.5d0*vqcss(:) end if end if ! generate the G+p-vectors call gengkvec(ngvec,ivg,vgc,vl,vc,gkmax,ngkmax,ngp(ispn),igpig(:,ispn), & vgpl(:,:,ispn),vgpc,gpc) ! generate structure factors for G+p-vectors call gensfacgp(ngp(ispn),vgpc,ngkmax,sfacgp) ! find the matching coefficients call match(ngp(ispn),vgpc,gpc,sfacgp,apwalm(:,:,:,:,ispn)) end do deallocate(vgpc,gpc,sfacgp) ! get the first- and second-variational eigenvectors from file allocate(evecfv(nmatmax,nstfv,nspnfv)) call getevecfv(filext,0,vpl,vgpl,evecfv) deallocate(vgpl) allocate(evecsv(nstsv,nstsv)) call getevecsv(filext,0,vpl,evecsv) ! calculate the second-variational wavefunctions call genwfsv(tsh,tgp,nst,idx,ngdg,igf,ngp,igpig,apwalm,evecfv,evecsv,wfmt,ld, & wfir) deallocate(apwalm,evecfv,evecsv) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genolpq.f900000644000000000000000000000013213543334736014615 xustar0030 mtime=1569569246.167640962 30 atime=1569569242.424643353 30 ctime=1569569246.167640962 elk-6.3.2/src/genolpq.f900000644002504400250440000000511113543334736016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genolpq(nst,expqmt,ngpq,igpqig,wfmt,wfir,wfmtq,wfgpq,oq) use modmain use modomp implicit none ! arguments integer, intent(in) :: nst complex(8), intent(in) :: expqmt(npcmtmax,natmtot) integer, intent(in) :: ngpq(nspnfv),igpqig(ngkmax,nspnfv) complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nst) ! note that wfir does not have a 1/sqrt(omega) prefactor complex(8), intent(in) :: wfir(ngtot,nspinor,nst) complex(8), intent(in) :: wfmtq(npcmtmax,natmtot,nspinor,nst) complex(8), intent(in) :: wfgpq(ngkmax,nspinor,nst) complex(8), intent(out) :: oq(nst,nst) ! local variables integer ist,jst,ispn,jspn integer is,ias,nrc,nrci integer npc,igpq,nthd ! allocatable arrays complex(8), allocatable :: wfmt1(:),wfir1(:),z(:) ! external functions complex(8) zfcmtinp,zdotc external zfcmtinp,zdotc ! zero the matrix elements oq(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ispn,ias,is) & !$OMP PRIVATE(nrc,nrci,npc,ist) & !$OMP NUM_THREADS(nthd) allocate(wfmt1(npcmtmax)) !$OMP DO do jst=1,nst do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! multiply by local phase factor function exp(iq.r) wfmt1(1:npc)=expqmt(1:npc,ias)*wfmt(1:npc,ias,ispn,jst) do ist=1,nst ! compute inner product (functions are in spherical coordinates) oq(ist,jst)=oq(ist,jst)+zfcmtinp(nrc,nrci,wrcmt(:,is), & wfmtq(:,ias,ispn,ist),wfmt1) end do end do end do end do !$OMP END DO deallocate(wfmt1) !$OMP END PARALLEL call freethd(nthd) !---------------------------! ! interstitial part ! !---------------------------! call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,z,ispn,jspn) & !$OMP PRIVATE(igpq,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot),z(ngkmax)) !$OMP DO do jst=1,nst do ispn=1,nspinor jspn=jspnfv(ispn) ! multiply wavefunction by characteristic function wfir1(:)=wfir(:,ispn,jst)*cfunir(:) ! Fourier transform to G+p+q-space call zfftifc(3,ngridg,-1,wfir1) do igpq=1,ngpq(jspn) z(igpq)=wfir1(igfft(igpqig(igpq,jspn))) end do do ist=1,nst oq(ist,jst)=oq(ist,jst)+zdotc(ngpq(jspn),wfgpq(:,ispn,ist),1,z,1) end do end do end do !$OMP END DO deallocate(wfir1,z) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gensmatk.f900000644000000000000000000000013013543334736014757 xustar0029 mtime=1569569246.17164096 30 atime=1569569242.430643349 29 ctime=1569569246.17164096 elk-6.3.2/src/gensmatk.f900000644002504400250440000000211113543334736017023 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gensmatk(vpl,smat) use modmain implicit none ! arguments real(8), intent(in) :: vpl(3) complex(8), intent(out) :: smat(2,2,nstsv,nstsv) ! local variables integer ist,jst,n ! allocatable arrays complex(8), allocatable :: evecsv(:,:) ! external functions complex(8) zdotc external zdotc if (.not.spinpol) then write(*,*) write(*,'("Error(gensmatk): spin-unpolarised calculation")') write(*,*) stop end if allocate(evecsv(nstsv,nstsv)) ! get the second-variational eigenvectors from file call getevecsv(filext,0,vpl,evecsv) n=nstfv+1 do jst=1,nstsv do ist=1,jst smat(1,1,ist,jst)=zdotc(nstfv,evecsv(1,ist),1,evecsv(1,jst),1) smat(2,1,ist,jst)=zdotc(nstfv,evecsv(n,ist),1,evecsv(1,jst),1) smat(1,2,ist,jst)=zdotc(nstfv,evecsv(1,ist),1,evecsv(n,jst),1) smat(2,2,ist,jst)=zdotc(nstfv,evecsv(n,ist),1,evecsv(n,jst),1) end do end do deallocate(evecsv) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gentaucr.f900000644000000000000000000000013213543334736014760 xustar0030 mtime=1569569246.176640957 30 atime=1569569242.435643346 30 ctime=1569569246.176640957 elk-6.3.2/src/gentaucr.f900000644002504400250440000000365013543334736017033 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gentaucr use modmain use modomp implicit none ! local variables integer ist,ispn,jspn integer is,ia,ias,nthd integer nr,nri,np,i,m ! allocatable arrays real(8), allocatable :: rfmt(:) complex(8), allocatable :: wfcr(:,:),gzfmt(:,:),zfmt(:) taucr(:,:,:)=0.d0 call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfcr,gzfmt,zfmt) & !$OMP PRIVATE(is,ia,nr,nri,np) & !$OMP PRIVATE(ist,m,ispn,jspn,i) & !$OMP NUM_THREADS(nthd) allocate(wfcr(npmtmax,2),gzfmt(npmtmax,3),zfmt(npmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) ia=idxia(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) do ist=1,nstsp(is) if (spcore(ist,is)) then do m=-ksp(ist,is),ksp(ist,is)-1 ! generate the core wavefunction in spherical harmonics (pass in m-1/2) call wavefcr(.true.,1,is,ia,ist,m,npmtmax,wfcr) do ispn=1,2 if (spinpol) then jspn=ispn else jspn=1 end if ! compute the gradient call gradzfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),wfcr(:,ispn), & npmtmax,gzfmt) do i=1,3 ! convert gradient to spherical coordinates call zbsht(nr,nri,gzfmt(:,i),zfmt) ! add to total in muffin-tin taucr(1:np,ias,jspn)=taucr(1:np,ias,jspn) & +0.5d0*(dble(zfmt(1:np))**2+aimag(zfmt(1:np))**2) end do end do end do end if end do end do !$OMP END DO deallocate(wfcr,gzfmt,zfmt) !$OMP END PARALLEL call freethd(nthd) ! convert core tau to spherical harmonics allocate(rfmt(npmtmax)) do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) call dcopy(npmt(is),taucr(:,ias,ispn),1,rfmt,1) call rfsht(nrmt(is),nrmti(is),rfmt,taucr(:,ias,ispn)) end do end do deallocate(rfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/potxcmt.f900000644000000000000000000000013213543334736014646 xustar0030 mtime=1569569246.181640953 30 atime=1569569242.440643343 30 ctime=1569569246.181640953 elk-6.3.2/src/potxcmt.f900000644002504400250440000002475613543334736016733 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potxcmt(tsh,ias,xctype_,rhomt_,magmt_,taumt_,exmt_,ecmt_,vxcmt_, & bxcmt_,wxcmt_) use modmain use modxcifc implicit none ! arguments logical, intent(in) :: tsh integer, intent(in) :: ias,xctype_(3) real(8), intent(in) :: rhomt_(npmtmax,natmtot),magmt_(npmtmax,natmtot,ndmag) real(8), intent(in) :: taumt_(npmtmax,natmtot,nspinor) real(8), intent(out) :: exmt_(npmtmax,natmtot),ecmt_(npmtmax,natmtot) real(8), intent(out) :: vxcmt_(npmtmax,natmtot),bxcmt_(npmtmax,natmtot,ndmag) real(8), intent(out) :: wxcmt_(npmtmax,natmtot) ! local variables integer ispn,idm,is integer nr,nri,n,i real(8) t0,t1,t2,t3,t4 ! allocatable arrays real(8), allocatable :: rho(:),rhoup(:),rhodn(:) real(8), allocatable :: gvrho(:,:),gvup(:,:),gvdn(:,:) real(8), allocatable :: grho(:),gup(:),gdn(:) real(8), allocatable :: g2rho(:),g2up(:),g2dn(:) real(8), allocatable :: g3rho(:),g3up(:),g3dn(:) real(8), allocatable :: grho2(:),gup2(:),gdn2(:),gupdn(:) real(8), allocatable :: ex(:),ec(:),vxc(:) real(8), allocatable :: vx(:),vxup(:),vxdn(:) real(8), allocatable :: vc(:),vcup(:),vcdn(:) real(8), allocatable :: mag(:,:),bxc(:,:),tau(:,:) real(8), allocatable :: dxdgr2(:),dxdgu2(:),dxdgd2(:),dxdgud(:) real(8), allocatable :: dcdgr2(:),dcdgu2(:),dcdgd2(:),dcdgud(:) real(8), allocatable :: dxdg2r(:),dxdg2u(:),dxdg2d(:) real(8), allocatable :: dcdg2r(:),dcdg2u(:),dcdg2d(:) real(8), allocatable :: wx(:),wxup(:),wxdn(:) real(8), allocatable :: wc(:),wcup(:),wcdn(:) is=idxis(ias) n=npmt(is) ! allocate local arrays allocate(rho(n),ex(n),ec(n),vxc(n)) if ((xcgrad.eq.3).or.(xcgrad.eq.4)) allocate(tau(n,nspinor)) if (spinpol) then allocate(mag(n,3),bxc(n,3)) end if if (spinpol) then allocate(rhoup(n),rhodn(n)) allocate(vxup(n),vxdn(n),vcup(n),vcdn(n)) if (xcgrad.eq.1) then allocate(grho(n),gup(n),gdn(n)) allocate(g2up(n),g2dn(n)) allocate(g3rho(n),g3up(n),g3dn(n)) else if (xcgrad.eq.2) then allocate(g2up(n),g2dn(n)) allocate(gvup(n,3),gvdn(n,3)) allocate(gup2(n),gdn2(n),gupdn(n)) allocate(dxdgu2(n),dxdgd2(n),dxdgud(n)) allocate(dcdgu2(n),dcdgd2(n),dcdgud(n)) else if (xcgrad.eq.3) then allocate(g2up(n),g2dn(n)) allocate(gvup(n,3),gvdn(n,3)) allocate(gup2(n),gdn2(n),gupdn(n)) else if (xcgrad.eq.4) then allocate(g2up(n),g2dn(n)) allocate(gvup(n,3),gvdn(n,3)) allocate(gup2(n),gdn2(n),gupdn(n)) allocate(dxdgu2(n),dxdgd2(n),dxdgud(n)) allocate(dcdgu2(n),dcdgd2(n),dcdgud(n)) allocate(dxdg2u(n),dxdg2d(n)) allocate(dcdg2u(n),dcdg2d(n)) allocate(wxup(n),wxdn(n),wcup(n),wcdn(n)) end if else allocate(vx(n),vc(n)) if (xcgrad.eq.1) then allocate(grho(n),g2rho(n),g3rho(n)) else if (xcgrad.eq.2) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) else if (xcgrad.eq.3) then allocate(g2rho(n),gvrho(n,3),grho2(n)) else if (xcgrad.eq.4) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) allocate(dxdg2r(n),dcdg2r(n)) allocate(wx(n),wc(n)) end if end if nr=nrmt(is) nri=nrmti(is) if (tsh) then ! convert the density to spherical coordinates call rbsht(nr,nri,rhomt_(:,ias),rho) else rho(1:n)=rhomt_(1:n,ias) end if ! convert tau to spherical coordinates if required if ((xcgrad.eq.3).or.(xcgrad.eq.4)) then do ispn=1,nspinor if (tsh) then call rbsht(nr,nri,taumt_(:,ias,ispn),tau(:,ispn)) else tau(1:n,ispn)=taumt_(1:n,ias,ispn) end if end do end if if (spinpol) then !------------------------! ! spin-polarised ! !------------------------! ! magnetisation in spherical coordinates do idm=1,ndmag if (tsh) then call rbsht(nr,nri,magmt_(:,ias,idm),mag(:,idm)) else mag(1:n,idm)=magmt_(1:n,ias,idm) end if end do ! use scaled spin exchange-correlation (SSXC) if required if (tssxc) mag(:,1:ndmag)=mag(:,1:ndmag)*ssxc if (ncmag) then ! non-collinear (use Kubler's trick) if (xcgrad.eq.0) then ! LSDA do i=1,n ! compute rhoup=(rho+|m|)/2 and rhodn=(rho-|m|)/2 t0=rho(i) t1=sqrt(mag(i,1)**2+mag(i,2)**2+mag(i,3)**2) rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do else ! functionals which require gradients do i=1,n t0=rho(i) t1=sqrt(mag(i,1)**2+mag(i,2)**2+mag(i,3)**2+dncgga) rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do end if else ! collinear do i=1,n ! compute rhoup=(rho+m_z)/2 and rhodn=(rho-m_z)/2 t0=rho(i) t1=mag(i,1) rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do end if ! call the exchange-correlation interface routine if (xcgrad.le.0) then call xcifc(xctype_,n=n,tempa=swidth,rhoup=rhoup,rhodn=rhodn,ex=ex,ec=ec, & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (xcgrad.eq.1) then call ggamt_sp_1(is,n,rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) call xcifc(xctype_,n=n,rhoup=rhoup,rhodn=rhodn,grho=grho,gup=gup,gdn=gdn, & g2up=g2up,g2dn=g2dn,g3rho=g3rho,g3up=g3up,g3dn=g3dn,ex=ex,ec=ec,vxup=vxup,& vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (xcgrad.eq.2) then call ggamt_sp_2a(is,n,rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,n=n,rhoup=rhoup,rhodn=rhodn,gup2=gup2,gdn2=gdn2, & gupdn=gupdn,ex=ex,ec=ec,vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn, & dxdgu2=dxdgu2,dxdgd2=dxdgd2,dxdgud=dxdgud,dcdgu2=dcdgu2,dcdgd2=dcdgd2, & dcdgud=dcdgud) call ggamt_sp_2b(is,n,g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2, & dxdgd2,dxdgud,dcdgu2,dcdgd2,dcdgud) else if (xcgrad.eq.3) then call ggamt_sp_2a(is,n,rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,n=n,c_tb09=c_tb09,rhoup=rhoup,rhodn=rhodn,g2up=g2up, & g2dn=g2dn,gup2=gup2,gdn2=gdn2,gupdn=gupdn,tauup=tau(:,1),taudn=tau(:,2), & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) ex(:)=0.d0; ec(:)=0.d0 else if (xcgrad.eq.4) then call ggamt_sp_2a(is,n,rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,n=n,rhoup=rhoup,rhodn=rhodn,g2up=g2up,g2dn=g2dn, & gup2=gup2,gdn2=gdn2,gupdn=gupdn,tauup=tau(:,1),taudn=tau(:,2),ex=ex,ec=ec,& vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn,dxdgu2=dxdgu2,dxdgd2=dxdgd2, & dxdgud=dxdgud,dcdgu2=dcdgu2,dcdgd2=dcdgd2,dcdgud=dcdgud,dxdg2u=dxdg2u, & dxdg2d=dxdg2d,dcdg2u=dcdg2u,dcdg2d=dcdg2d,wxup=wxup,wxdn=wxdn,wcup=wcup, & wcdn=wcdn) call ggamt_sp_2b(is,n,g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2, & dxdgd2,dxdgud,dcdgu2,dcdgd2,dcdgud) wxup(:)=0.5d0*(wxup(:)+wxdn(:)+wcup(:)+wcdn(:)) if (tsh) then call rfsht(nr,nri,wxup,wxcmt_(:,ias)) else wxcmt_(1:n,ias)=wxup(1:n) end if end if ! hybrid functionals if (hybrid) then t1=1.d0-hybridc ! scale exchange part of energy ex(:)=t1*ex(:) ! scale exchange part of potential vxup(:)=t1*vxup(:) vxdn(:)=t1*vxdn(:) end if if (ncmag) then ! non-collinear: locally spin rotate the exchange-correlation potential do i=1,n t1=vxup(i)+vcup(i) t2=vxdn(i)+vcdn(i) vxc(i)=0.5d0*(t1+t2) ! determine the exchange-correlation magnetic field t3=0.5d0*(t1-t2) ! |m| = rhoup - rhodn t4=rhoup(i)-rhodn(i) if (abs(t4).gt.1.d-8) t4=t3/t4 bxc(i,1:3)=mag(i,1:3)*t4 end do else ! collinear do i=1,n t1=vxup(i)+vcup(i) t2=vxdn(i)+vcdn(i) vxc(i)=0.5d0*(t1+t2) bxc(i,1)=0.5d0*(t1-t2) end do end if ! scale B_xc for SSXC if required if (tssxc) bxc(:,1:ndmag)=bxc(:,1:ndmag)*ssxc do idm=1,ndmag if (tsh) then ! convert field to spherical harmonics call rfsht(nr,nri,bxc(:,idm),bxcmt_(:,ias,idm)) else bxcmt_(1:n,ias,idm)=bxc(1:n,idm) end if end do else !--------------------------! ! spin-unpolarised ! !--------------------------! if (xcgrad.le.0) then call xcifc(xctype_,n=n,tempa=swidth,rho=rho,ex=ex,ec=ec,vx=vx,vc=vc) else if (xcgrad.eq.1) then call ggamt_1(tsh,is,n,rhomt_(:,ias),grho,g2rho,g3rho) call xcifc(xctype_,n=n,rho=rho,grho=grho,g2rho=g2rho,g3rho=g3rho,ex=ex, & ec=ec,vx=vx,vc=vc) else if (xcgrad.eq.2) then call ggamt_2a(tsh,is,n,rhomt_(:,ias),g2rho,gvrho,grho2) call xcifc(xctype_,n=n,rho=rho,grho2=grho2,ex=ex,ec=ec,vx=vx,vc=vc, & dxdgr2=dxdgr2,dcdgr2=dcdgr2) call ggamt_2b(is,n,g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) else if (xcgrad.eq.3) then call ggamt_2a(tsh,is,n,rhomt_(:,ias),g2rho,gvrho,grho2) call xcifc(xctype_,n=n,c_tb09=c_tb09,rho=rho,g2rho=g2rho,grho2=grho2, & tau=tau,vx=vx,vc=vc) ex(:)=0.d0; ec(:)=0.d0 else if (xcgrad.eq.4) then call ggamt_2a(tsh,is,n,rhomt_(:,ias),g2rho,gvrho,grho2) call xcifc(xctype_,n=n,rho=rho,g2rho=g2rho,grho2=grho2,tau=tau,ex=ex,ec=ec,& vx=vx,vc=vc,dxdgr2=dxdgr2,dcdgr2=dcdgr2,dxdg2r=dxdg2r,dcdg2r=dcdg2r,wx=wx,& wc=wc) call ggamt_2b(is,n,g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) wx(:)=wx(:)+wc(:) if (tsh) then call rfsht(nr,nri,wx,wxcmt_(:,ias)) else wxcmt_(1:n,ias)=wx(1:n) end if end if ! hybrid functionals if (hybrid) then t1=1.d0-hybridc ! scale exchange part of energy ex(:)=t1*ex(:) ! scale exchange part of potential vxc(:)=t1*vx(:)+vc(:) else vxc(:)=vx(:)+vc(:) end if end if if (tsh) then ! convert exchange and correlation energy densities to spherical harmonics call rfsht(nr,nri,ex,exmt_(:,ias)) call rfsht(nr,nri,ec,ecmt_(:,ias)) ! convert exchange-correlation potential to spherical harmonics call rfsht(nr,nri,vxc,vxcmt_(:,ias)) else exmt_(1:n,ias)=ex(1:n) ecmt_(1:n,ias)=ec(1:n) vxcmt_(1:n,ias)=vxc(1:n) end if deallocate(rho,ex,ec,vxc) if ((xcgrad.eq.3).or.(xcgrad.eq.4)) deallocate(tau) if (spinpol) then deallocate(mag,bxc) deallocate(rhoup,rhodn,vxup,vxdn,vcup,vcdn) if (xcgrad.eq.1) then deallocate(grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) else if (xcgrad.eq.2) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) deallocate(dxdgu2,dxdgd2,dxdgud) deallocate(dcdgu2,dcdgd2,dcdgud) else if (xcgrad.eq.3) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) end if else deallocate(vx,vc) if (xcgrad.eq.1) then deallocate(grho,g2rho,g3rho) else if (xcgrad.eq.2) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2) else if (xcgrad.eq.3) then deallocate(g2rho,gvrho,grho2) else if (xcgrad.eq.4) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2,dxdg2r,dcdg2r) deallocate(wx,wc) end if end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/potxcir.f900000644000000000000000000000013013543334736014636 xustar0029 mtime=1569569246.18664095 30 atime=1569569242.446643339 29 ctime=1569569246.18664095 elk-6.3.2/src/potxcir.f900000644002504400250440000002047313543334736016715 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potxcir(xctype_,rhoir_,magir_,tauir_,exir_,ecir_,vxcir_,bxcir_,wxcir_) use modmain use modxcifc implicit none ! arguments integer, intent(in) :: xctype_(3) real(8), intent(in) :: rhoir_(ngtot),magir_(ngtot,ndmag),tauir_(ngtot,nspinor) real(8), intent(out) :: exir_(ngtot),ecir_(ngtot) real(8), intent(out) :: vxcir_(ngtot),bxcir_(ngtot,ndmag),wxcir_(ngtot) ! local variables integer n,i real(8) t0,t1,t2,t3,t4 ! allocatable arrays real(8), allocatable :: rhoup(:),rhodn(:) real(8), allocatable :: gvrho(:,:),gvup(:,:),gvdn(:,:) real(8), allocatable :: grho(:),gup(:),gdn(:) real(8), allocatable :: g2rho(:),g2up(:),g2dn(:) real(8), allocatable :: g3rho(:),g3up(:),g3dn(:) real(8), allocatable :: grho2(:),gup2(:),gdn2(:),gupdn(:) real(8), allocatable :: vx(:),vxup(:),vxdn(:) real(8), allocatable :: vc(:),vcup(:),vcdn(:) real(8), allocatable :: dxdgr2(:),dxdgu2(:),dxdgd2(:),dxdgud(:) real(8), allocatable :: dcdgr2(:),dcdgu2(:),dcdgd2(:),dcdgud(:) real(8), allocatable :: dxdg2r(:),dxdg2u(:),dxdg2d(:) real(8), allocatable :: dcdg2r(:),dcdg2u(:),dcdg2d(:) real(8), allocatable :: wx(:),wxup(:),wxdn(:) real(8), allocatable :: wc(:),wcup(:),wcdn(:) n=ngtot if (spinpol) then allocate(rhoup(n),rhodn(n)) allocate(vxup(n),vxdn(n),vcup(n),vcdn(n)) if (xcgrad.eq.1) then allocate(grho(n),gup(n),gdn(n)) allocate(g2up(n),g2dn(n)) allocate(g3rho(n),g3up(n),g3dn(n)) else if (xcgrad.eq.2) then allocate(g2up(n),g2dn(n)) allocate(gvup(n,3),gvdn(n,3)) allocate(gup2(n),gdn2(n),gupdn(n)) allocate(dxdgu2(n),dxdgd2(n),dxdgud(n)) allocate(dcdgu2(n),dcdgd2(n),dcdgud(n)) else if (xcgrad.eq.3) then allocate(g2up(n),g2dn(n)) allocate(gvup(n,3),gvdn(n,3)) allocate(gup2(n),gdn2(n),gupdn(n)) else if (xcgrad.eq.4) then allocate(g2up(n),g2dn(n)) allocate(gvup(n,3),gvdn(n,3)) allocate(gup2(n),gdn2(n),gupdn(n)) allocate(dxdgu2(n),dxdgd2(n),dxdgud(n)) allocate(dcdgu2(n),dcdgd2(n),dcdgud(n)) allocate(dxdg2u(n),dxdg2d(n)) allocate(dcdg2u(n),dcdg2d(n)) allocate(wxup(n),wxdn(n),wcup(n),wcdn(n)) end if else allocate(vx(n),vc(n)) if (xcgrad.eq.1) then allocate(grho(n),g2rho(n),g3rho(n)) else if (xcgrad.eq.2) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) else if (xcgrad.eq.3) then allocate(g2rho(n),gvrho(n,3),grho2(n)) else if (xcgrad.eq.4) then allocate(g2rho(n),gvrho(n,3),grho2(n)) allocate(dxdgr2(n),dcdgr2(n)) allocate(dxdg2r(n),dcdg2r(n)) allocate(wx(n),wc(n)) end if end if if (spinpol) then !------------------------! ! spin-polarised ! !------------------------! if (ncmag) then ! non-collinear if (xcgrad.eq.0) then ! LSDA do i=1,n t0=rhoir_(i) t1=sqrt(magir_(i,1)**2+magir_(i,2)**2+magir_(i,3)**2)*ssxc rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do else ! functionals which require gradients do i=1,n t0=rhoir_(i) t1=sqrt(magir_(i,1)**2+magir_(i,2)**2+magir_(i,3)**2+dncgga)*ssxc rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do end if else ! collinear do i=1,n t0=rhoir_(i) t1=magir_(i,1)*ssxc rhoup(i)=0.5d0*(t0+t1) rhodn(i)=0.5d0*(t0-t1) end do end if if (xcgrad.le.0) then call xcifc(xctype_,n=n,tempa=swidth,rhoup=rhoup,rhodn=rhodn,ex=exir_, & ec=ecir_,vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (xcgrad.eq.1) then call ggair_sp_1(rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) call xcifc(xctype_,n=n,rhoup=rhoup,rhodn=rhodn,grho=grho,gup=gup,gdn=gdn, & g2up=g2up,g2dn=g2dn,g3rho=g3rho,g3up=g3up,g3dn=g3dn,ex=exir_,ec=ecir_, & vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) else if (xcgrad.eq.2) then call ggair_sp_2a(rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,n=n,rhoup=rhoup,rhodn=rhodn,gup2=gup2,gdn2=gdn2, & gupdn=gupdn,ex=exir_,ec=ecir_,vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn, & dxdgu2=dxdgu2,dxdgd2=dxdgd2,dxdgud=dxdgud,dcdgu2=dcdgu2,dcdgd2=dcdgd2, & dcdgud=dcdgud) call ggair_sp_2b(g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2,dxdgd2, & dxdgud,dcdgu2,dcdgd2,dcdgud) else if (xcgrad.eq.3) then call ggair_sp_2a(rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,n=n,c_tb09=c_tb09,rhoup=rhoup,rhodn=rhodn,g2up=g2up, & g2dn=g2dn,gup2=gup2,gdn2=gdn2,gupdn=gupdn,tauup=tauir_(:,1), & taudn=tauir_(:,2),vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn) exir_(:)=0.d0; ecir_(:)=0.d0 else if (xcgrad.eq.4) then call ggair_sp_2a(rhoup,rhodn,g2up,g2dn,gvup,gvdn,gup2,gdn2,gupdn) call xcifc(xctype_,n=n,rhoup=rhoup,rhodn=rhodn,g2up=g2up,g2dn=g2dn, & gup2=gup2,gdn2=gdn2,gupdn=gupdn,tauup=tauir_(:,1),taudn=tauir_(:,2), & ex=exir_,ec=ecir_,vxup=vxup,vxdn=vxdn,vcup=vcup,vcdn=vcdn,dxdgu2=dxdgu2, & dxdgd2=dxdgd2,dxdgud=dxdgud,dcdgu2=dcdgu2,dcdgd2=dcdgd2,dcdgud=dcdgud, & dxdg2u=dxdg2u,dxdg2d=dxdg2d,dcdg2u=dcdg2u,dcdg2d=dcdg2d,wxup=wxup, & wxdn=wxdn,wcup=wcup,wcdn=wcdn) call ggair_sp_2b(g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2,dxdgd2, & dxdgud,dcdgu2,dcdgd2,dcdgud) wxcir_(:)=0.5d0*(wxup(:)+wxdn(:)+wcup(:)+wcdn(:)) end if ! hybrid functionals if (hybrid) then t1=1.d0-hybridc ! scale exchange part of energy exir_(:)=t1*exir_(:) ! scale exchange part of potential vxup(:)=t1*vxup(:) vxdn(:)=t1*vxdn(:) end if if (ncmag) then ! non-collinear: spin rotate the local exchange potential do i=1,n t1=vxup(i)+vcup(i) t2=vxdn(i)+vcdn(i) vxcir_(i)=0.5d0*(t1+t2) ! determine the exchange-correlation magnetic field t3=0.5d0*(t1-t2) t4=rhoup(i)-rhodn(i) if (abs(t4).gt.1.d-8) t4=t3/t4 bxcir_(i,:)=magir_(i,:)*t4 end do else ! collinear do i=1,n t1=vxup(i)+vcup(i) t2=vxdn(i)+vcdn(i) vxcir_(i)=0.5d0*(t1+t2) bxcir_(i,1)=0.5d0*(t1-t2) end do end if ! scale field if required if (tssxc) bxcir_(:,1:ndmag)=bxcir_(:,1:ndmag)*ssxc else !--------------------------! ! spin-unpolarised ! !--------------------------! if (xcgrad.le.0) then call xcifc(xctype_,n=n,tempa=swidth,rho=rhoir_,ex=exir_,ec=ecir_,vx=vx, & vc=vc) else if (xcgrad.eq.1) then call ggair_1(rhoir_,grho,g2rho,g3rho) call xcifc(xctype_,n=n,rho=rhoir_,grho=grho,g2rho=g2rho,g3rho=g3rho, & ex=exir_,ec=ecir_,vx=vx,vc=vc) else if (xcgrad.eq.2) then call ggair_2a(rhoir_,g2rho,gvrho,grho2) call xcifc(xctype_,n=n,rho=rhoir_,grho2=grho2,ex=exir_,ec=ecir_,vx=vx, & vc=vc,dxdgr2=dxdgr2,dcdgr2=dcdgr2) call ggair_2b(g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) else if (xcgrad.eq.3) then call ggair_2a(rhoir_,g2rho,gvrho,grho2) call xcifc(xctype_,n=n,c_tb09=c_tb09,rho=rhoir_,g2rho=g2rho,grho2=grho2, & tau=tauir_,vx=vx,vc=vc) exir_(:)=0.d0; ecir_(:)=0.d0 else if (xcgrad.eq.4) then call ggair_2a(rhoir_,g2rho,gvrho,grho2) call xcifc(xctype_,n=n,rho=rhoir_,g2rho=g2rho,grho2=grho2,tau=tauir_, & ex=exir_,ec=ecir_,vx=vx,vc=vc,dxdgr2=dxdgr2,dcdgr2=dcdgr2,dxdg2r=dxdg2r, & dcdg2r=dcdg2r,wx=wx,wc=wc) call ggair_2b(g2rho,gvrho,vx,vc,dxdgr2,dcdgr2) wxcir_(:)=wx(:)+wc(:) end if ! hybrid functionals if (hybrid) then t1=1.d0-hybridc ! scale exchange part of energy exir_(:)=t1*exir_(:) ! scale exchange part of potential vxcir_(:)=t1*vx(:)+vc(:) else vxcir_(:)=vx(:)+vc(:) end if end if if (spinpol) then deallocate(rhoup,rhodn,vxup,vxdn,vcup,vcdn) if (xcgrad.eq.1) then deallocate(grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn) else if (xcgrad.eq.2) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) deallocate(dxdgu2,dxdgd2,dxdgud) deallocate(dcdgu2,dcdgd2,dcdgud) else if (xcgrad.eq.3) then deallocate(g2up,g2dn) deallocate(gvup,gvdn) deallocate(gup2,gdn2,gupdn) end if else deallocate(vx,vc) if (xcgrad.eq.1) then deallocate(grho,g2rho,g3rho) else if (xcgrad.eq.2) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2) else if (xcgrad.eq.3) then deallocate(g2rho,gvrho,grho2) else if (xcgrad.eq.4) then deallocate(g2rho,gvrho,grho2) deallocate(dxdgr2,dcdgr2,dxdg2r,dcdg2r) deallocate(wx,wc) end if end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genvmmtsv.f900000644000000000000000000000013213543334736015176 xustar0030 mtime=1569569246.190640948 30 atime=1569569242.452643335 30 ctime=1569569246.190640948 elk-6.3.2/src/genvmmtsv.f900000644002504400250440000000403313543334736017245 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvmmtsv(wfmt,vmat) use modmain use moddftu use modomp implicit none ! arguments complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nstsv) complex(8), intent(inout) :: vmat(nstsv,nstsv) ! local variables integer ist,jst,ispn,jspn integer is,ias,ld,nthd integer nrc,nrci,nrco,i integer nm,l,lm,npc,npci ! allocatable arrays complex(8), allocatable :: wfmt1(:,:,:),wfmt2(:) ! external functions complex(8) zfmtinp external zfmtinp if (.not.tvmatmt) return ld=lmmaxdm*nspinor allocate(wfmt1(npcmtmax,nspinor,nstsv),wfmt2(npcmtmax)) ! loop over atoms do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci npc=npcmt(is) npci=npcmti(is) ! convert wavefunctions to spherical harmonics do ist=1,nstsv do ispn=1,nspinor call zfsht(nrc,nrci,wfmt(:,ias,ispn,ist),wfmt1(:,ispn,ist)) end do end do ! loop over second-variational states do jst=1,nstsv ! loop over spins do ispn=1,nspinor wfmt2(1:npc)=0.d0 do jspn=1,nspinor do l=0,lmaxdm if (tvmmt(l,ias)) then nm=2*l+1 lm=idxlm(l,-l) if (l.le.lmaxi) then call zgemm('N','N',nm,nrci,nm,zone,vmatmt(lm,ispn,lm,jspn,ias), & ld,wfmt1(lm,jspn,jst),lmmaxi,zone,wfmt2(lm),lmmaxi) end if i=npci+lm call zgemm('N','N',nm,nrco,nm,zone,vmatmt(lm,ispn,lm,jspn,ias),ld, & wfmt1(i,jspn,jst),lmmaxo,zone,wfmt2(i),lmmaxo) end if end do end do ! compute the matrix elements call holdthd(nstsv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ist=1,nstsv vmat(ist,jst)=vmat(ist,jst)+zfmtinp(nrc,nrci,wrcmt(:,is), & wfmt1(:,ispn,ist),wfmt2) end do !$OMP END PARALLEL DO call freethd(nthd) end do end do end do deallocate(wfmt1,wfmt2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zpotcoul.f900000644000000000000000000000013213543334736015027 xustar0030 mtime=1569569246.195640945 30 atime=1569569242.457643332 30 ctime=1569569246.195640945 elk-6.3.2/src/zpotcoul.f900000644002504400250440000002353713543334736017110 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zpotcoul ! !INTERFACE: subroutine zpotcoul(nr,nri,np,npi,ld1,rl,ngdg,igf,ngp,gpc,gclgp,ld2,jlgprmt, & ylmgp,sfacgp,zrhoir,ld3,zvclmt,zvclir) ! !USES: use modmain use modphonon ! !INPUT/OUTPUT PARAMETERS: ! nr : number of radial points for each species (in,integer(nspecies)) ! nri : number of radial points on inner part (in,integer(nspecies)) ! np : total number of points in muffin-tins (in,integer(nspecies)) ! npi : number of points on inner part (in,integer(nspecies)) ! ld1 : leading dimension (in,integer) ! rl : r^l on radial mesh for each species ! (in,real(ld1,-lmaxo-1:lmaxo+2,nspecies)) ! ngdg : G-vector grid sizes (in,integer(3)) ! igf : map from G-vector index to FFT array (in,integer(*)) ! ngp : number of G+p-vectors (in,integer) ! gpc : G+p-vector lengths (in,real(ngp)) ! gclgp : Coulomb Green's function in G+p-space (in,real(ngp)) ! ld2 : leading dimension (in,integer) ! jlgprmt : spherical Bessel functions for evergy G+p-vector and muffin-tin ! radius (in,real(0:lnpsd,ld2,nspecies)) ! ylmgp : spherical harmonics of the G+p-vectors (in,complex(lmmaxo,ngp)) ! sfacgp : structure factors of the G+p-vectors (in,complex(ld2,natmtot)) ! zrhoir : interstitial charge density (in,complex(*)) ! ld3 : leading dimension (in,integer) ! zvclmt : muffin-tin Coulomb potential, with the contribution from the ! isolated muffin-tin density precalculated and passed in ! (inout,complex(ld3,natmtot)) ! zvclir : interstitial Coulomb potential (out,complex(*)) ! !DESCRIPTION: ! Calculates the Coulomb potential of a complex charge density by solving ! Poisson's equation using the method of M. Weinert, {\it J. Math. Phys.} ! {\bf 22}, 2433 (1981). First, the multipole moments of the muffin-tin charge ! are determined for the $j$th atom of the $i$th species by ! $$ q_{ij;lm}^{\rm MT}=\int_0^{R_i}r^{l+2}\rho_{ij;lm}(r)dr+z_{ij}Y_{00} ! \,\delta_{l,0}\;, $$ ! where $R_i$ is the muffin-tin radius and $z_{ij}$ is a point charge located ! at the atom center (usually the nuclear charge, which should be taken as ! {\bf negative}). Next, the multipole moments of the continuation of the ! interstitial density, $\rho^{\rm I}$, into the muffin-tin are found with ! $$ q_{ij;lm}^{\rm I}=4\pi i^l R_i^{l+3}\sum_{\bf G}\frac{j_{l+1}(GR_i)} ! {GR_i}\rho^{\rm I}({\bf G})\exp(i{\bf G}\cdot{\bf r}_{ij})Y_{lm}^* ! (\hat{\bf G}), $$ ! remembering that ! $$ \lim_{x\rightarrow 0}\frac{j_{l+n}(x)}{x^n}=\frac{1}{(2n+1)!!} ! \delta_{l,0} $$ ! should be used for the case ${\bf G}=0$. A pseudocharge is now constructed ! which is equal to the real density in the interstitial region and whose ! multipoles are the difference between the real and interstitial muffin-tin ! multipoles. This pseudocharge density is smooth in the sense that it can be ! expanded in terms of the finite set of ${\bf G}$-vectors. In each muffin-tin ! the pseudocharge has the form ! $$ \rho_{ij}^{\rm P}({\bf r})=\rho^{\rm I}({\bf r}-{\bf r}_{ij})+\sum_{lm} ! \rho_{ij;lm}^{\rm P}\frac{1}{R_i^{l+3}}\left(\frac{r}{R_i}\right)^l\left(1- ! \frac{r^2}{R_i^2}\right)^{N_i}Y_{lm}(\hat{\bf r}) $$ ! where ! $$ \rho_{ij;lm}^{\rm P}=\frac{(2l+2N_i+3)!!}{2^N_iN_i!(2l+1)!!}\left( ! q_{ij;lm}^{\rm MT}-q_{ij;lm}^{\rm I}\right) $$ ! and $N_i\approx\frac{1}{4}R_iG_{\rm max}$ is generally a good choice. ! The pseudocharge in reciprocal space is given by ! $$ \rho^{\rm P}({\bf G})=\rho^{\rm I}({\bf G})+\sum_{ij;lm}2^{N_i}N_i! ! \frac{4\pi(-i)^l}{\Omega R_i^l}\frac{j_{l+N_i+1}(GR_i)}{(GR_i)^{N_i+1}} ! \rho_{ij;lm}^{\rm P}\exp(-i{\bf G}\cdot{\bf r}_{ij})Y_{lm}(\hat{\bf G}) $$ ! which may be used for solving Poisson's equation directly ! $$ V^{\rm P}({\bf G})=\begin{cases} ! 4\pi\frac{\rho^{\rm P}({\bf G})}{G^2} & G>0 \\ ! 0 & G=0 \end{cases}\;. $$ ! The usual Green's function approach is then employed to determine the ! potential in the muffin-tin sphere due to charge in the sphere. In other ! words ! $$ V_{ij;lm}^{\rm MT}(r)=\frac{4\pi}{2l+1}\left(\frac{1}{r^{l+1}}\int_0^r ! \rho_{ij;lm}^{\rm MT}(r'){r'}^{l+2}dr'+r^l\int_r^{R_i}\frac{ ! \rho_{ij;lm}^{\rm MT}(r')}{{r'}^{l-1}}dr'\right)+\frac{1}{Y_{00}} ! \frac{z_{ij}}{r}\delta_{l,0} $$ ! where the last term is the monopole arising from the point charge. All that ! remains is to add the homogenous solution of Poisson's equation, ! $$ V_{ij}^{\rm H}({\bf r})=\sum_{lm}V_{ij;lm}^{\rm H}\left(\frac{r} ! {R_i}\right)^lY_{lm}(\hat{\bf r}), $$ ! to the muffin-tin potential so that it is continuous at the muffin-tin ! boundary. Therefore the coefficients, $\rho_{ij;lm}^{\rm H}$, are given by ! $$ V_{ij;lm}^{\rm H}=4\pi i^l\sum_{\bf G}j_{l}(Gr)V^{\rm P}({\bf G}) ! \exp(i{\bf G}\cdot{\bf r}_{ij})Y_{lm}^*(\hat{\bf G})-V_{ij;lm}^{\rm MT} ! (R_i). $$ ! Finally note that the ${\bf G}$-vectors passed to the routine can represent ! vectors with a non-zero offset, ${\bf G}+{\bf p}$ say, which is required for ! calculating Coulomb matrix elements. ! ! !REVISION HISTORY: ! Created April 2003 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: nr(nspecies),nri(nspecies) integer, intent(in) :: np(nspecies),npi(nspecies) integer, intent(in) :: ld1 real(8), intent(in) :: rl(ld1,-lmaxo-1:lmaxo+2,nspecies) integer, intent(in) :: ngdg(3),igf(*),ngp real(8), intent(in) :: gpc(ngp),gclgp(ngp) integer, intent(in) :: ld2 real(8), intent(in) :: jlgprmt(0:lnpsd,ld2,nspecies) complex(8), intent(in) :: ylmgp(lmmaxo,ngp),sfacgp(ld2,natmtot) complex(8), intent(in) :: zrhoir(*) integer, intent(in) :: ld3 complex(8), intent(inout) :: zvclmt(ld3,natmtot) complex(8), intent(out) :: zvclir(*) ! local variables integer is,ia,ias integer ir,l,m,lm integer ig,jg,i,j real(8) t1,t2,t3 complex(8) z1,z2 ! automatic arrays real(8) rmtl(0:lmaxo+3,nspecies) complex(8) qlm(lmmaxo,natmtot) complex(8) zl(0:lmaxo),zlm(lmmaxo) complex(8) zhmt(ld3) ! external functions real(8) factnm external factnm ! compute (R_mt)^l do is=1,nspecies rmtl(0,is)=1.d0 do l=1,lmaxo+3 rmtl(l,is)=rmtl(l-1,is)*rmt(is) end do end do ! compute the multipole moments from the muffin-tin potentials t1=1.d0/fourpi do ias=1,natmtot is=idxis(ias) i=np(is)-lmmaxo lm=0 do l=0,lmaxo t2=t1*dble(2*l+1)*rmtl(l+1,is) do m=-l,l lm=lm+1 i=i+1 qlm(lm,ias)=t2*zvclmt(i,ias) end do end do end do ! Fourier transform density to G-space and store in zvclir call zcopy(ngdg(1)*ngdg(2)*ngdg(3),zrhoir,1,zvclir,1) call zfftifc(3,ngdg,-1,zvclir) ! subtract the multipole moments of the interstitial charge density do is=1,nspecies do l=0,lmaxo zl(l)=fourpi*zil(l)*rmtl(l+2,is) end do do ia=1,natoms(is) ias=idxas(ia,is) do ig=1,ngp jg=igf(ig) if (gpc(ig).gt.epslat) then z1=zvclir(jg)*sfacgp(ig,ias)/gpc(ig) lm=0 do l=0,lmaxo z2=jlgprmt(l+1,ig,is)*z1*zl(l) do m=-l,l lm=lm+1 qlm(lm,ias)=qlm(lm,ias)-z2*conjg(ylmgp(lm,ig)) end do end do else t1=(fourpi/3.d0)*rmtl(3,is)*y00 qlm(1,ias)=qlm(1,ias)-t1*zvclir(jg) end if end do end do end do ! find the smooth pseudocharge within the muffin-tin whose multipoles are the ! difference between the real muffin-tin and interstitial multipoles t1=(fourpi/omega)*factnm(2*lnpsd+1,2) do ias=1,natmtot is=idxis(ias) lm=0 do l=0,lmaxo t2=t1/(factnm(2*l+1,2)*rmtl(l,is)) z1=t2*zilc(l) do m=-l,l lm=lm+1 zlm(lm)=z1*qlm(lm,ias) end do end do ! add the pseudocharge and real interstitial densities in G-space do ig=1,ngp jg=igf(ig) if (gpc(ig).gt.epslat) then t2=gpc(ig)*rmt(is) t3=1.d0/t2**lnpsd z1=t3*zlm(1)*ylmgp(1,ig) lm=1 do l=1,lmaxo lm=lm+1 z2=zlm(lm)*ylmgp(lm,ig) do m=1-l,l lm=lm+1 z2=z2+zlm(lm)*ylmgp(lm,ig) end do t3=t3*t2 z1=z1+t3*z2 end do z2=jlgprmt(lnpsd,ig,is)*conjg(sfacgp(ig,ias)) zvclir(jg)=zvclir(jg)+z1*z2 else t2=y00/factnm(2*lnpsd+1,2) zvclir(jg)=zvclir(jg)+t2*zlm(1) end if end do end do ! solve Poisson's equation in G+p-space for the pseudocharge do ig=1,ngp jg=igf(ig) zvclir(jg)=gclgp(ig)*zvclir(jg) end do ! match potentials at muffin-tin boundary by adding homogeneous solution do ias=1,natmtot is=idxis(ias) ! find the spherical harmonic expansion of the interstitial potential at the ! muffin-tin radius zlm(:)=0.d0 do ig=1,ngp jg=igf(ig) z1=fourpi*zvclir(jg)*sfacgp(ig,ias) lm=0 do l=0,lmaxo z2=jlgprmt(l,ig,is)*z1*zil(l) do m=-l,l lm=lm+1 zlm(lm)=zlm(lm)+z2*conjg(ylmgp(lm,ig)) end do end do end do ! calculate the homogenous solution i=np(is)-lmmaxo lm=0 do l=0,lmaxi t1=1.d0/rmtl(l,is) do m=-l,l lm=lm+1 i=i+1 z1=t1*(zlm(lm)-zvclmt(i,ias)) j=lm do ir=1,nri(is) zhmt(j)=z1*rl(ir,l,is) j=j+lmmaxi end do do ir=nri(is)+1,nr(is) zhmt(j)=z1*rl(ir,l,is) j=j+lmmaxo end do end do end do do l=lmaxi+1,lmaxo t1=1.d0/rmtl(l,is) do m=-l,l lm=lm+1 i=i+1 z1=t1*(zlm(lm)-zvclmt(i,ias)) j=npi(is)+lm do ir=nri(is)+1,nr(is) zhmt(j)=z1*rl(ir,l,is) j=j+lmmaxo end do end do end do zvclmt(1:np(is),ias)=zvclmt(1:np(is),ias)+zhmt(1:np(is)) ! store the nuclear potential without the self-term for the phonon dynamical ! matrix calculation if (tphdyn) then if (ias.eq.iasph) zvnmt(1:np(is))=zhmt(1:np(is)) end if end do ! Fourier transform interstitial potential to real-space call zfftifc(3,ngdg,1,zvclir) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genhvec.f900000644000000000000000000000013113543334736014566 xustar0030 mtime=1569569246.200640941 29 atime=1569569242.46164333 30 ctime=1569569246.200640941 elk-6.3.2/src/genhvec.f900000644002504400250440000000612113543334736016636 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 Alexey I. Baranov. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genhvec use modmain use modpw implicit none ! local variables logical lsym(48) integer ih,jh,kh,lh,k integer i1,i2,i3,iv(3) integer nsym,isym,sym(3,3,48) real(8) v1(3),v2(3),v3(3) ! allocatable arrays integer, allocatable :: idx(:),ivh0(:,:) real(8), allocatable :: vhc0(:,:),hc0(:) ! find the H-vector grid sizes call gridsize(avec,hmaxvr,ngridh,nhtot,inthv) ! allocate global H-vector arrays if (allocated(ivh)) deallocate(ivh) allocate(ivh(3,nhtot)) if (allocated(mulh)) deallocate(mulh) allocate(mulh(nhtot)) if (allocated(vhc)) deallocate(vhc) allocate(vhc(3,nhtot)) if (allocated(hc)) deallocate(hc) allocate(hc(nhtot)) ! allocate local arrays allocate(idx(nhtot),ivh0(3,nhtot)) allocate(vhc0(3,nhtot),hc0(nhtot)) ih=0 do i1=inthv(1,1),inthv(2,1) v1(:)=dble(i1)*bvec(:,1) do i2=inthv(1,2),inthv(2,2) v2(:)=v1(:)+dble(i2)*bvec(:,2) do i3=inthv(1,3),inthv(2,3) v3(:)=v2(:)+dble(i3)*bvec(:,3) ih=ih+1 ! map from H-vector to (i1,i2,i3) index ivh0(1,ih)=i1 ivh0(2,ih)=i2 ivh0(3,ih)=i3 ! H-vector in Cartesian coordinates vhc0(:,ih)=v3(:) ! length of each H-vector hc0(ih)=sqrt(v3(1)**2+v3(2)**2+v3(3)**2) end do end do end do ! sort by vector length call sortidx(nhtot,hc0,idx) ! reorder arrays do ih=1,nhtot jh=idx(ih) ivh(:,ih)=ivh0(:,jh) hc(ih)=hc0(jh) vhc(:,ih)=vhc0(:,jh) end do ! find the number of vectors with H < hmaxvr nhvec=1 do ih=nhtot,1,-1 if (hc(ih).lt.hmaxvr) then nhvec=ih exit end if end do ! find the subgroup of symmorphic, non-magnetic symmetries lsym(:)=.false. do isym=1,nsymcrys if (tv0symc(isym).and.(lspnsymc(isym).eq.1)) lsym(lsplsymc(isym))=.true. end do nsym=0 do isym=1,nsymlat if (lsym(isym)) then nsym=nsym+1 sym(:,:,nsym)=symlat(:,:,isym) end if end do if (reduceh) then ! find the subgroup of symmorphic, non-magnetic symmetries lsym(:)=.false. do isym=1,nsymcrys if (tv0symc(isym).and.(lspnsymc(isym).eq.1)) lsym(lsplsymc(isym))=.true. end do nsym=0 do isym=1,nsymlat if (lsym(isym)) then nsym=nsym+1 sym(:,:,nsym)=symlat(:,:,isym) end if end do else ! use only the identity element if no reduction is required nsym=1 end if ! reduce the H-vector set with the symmetries if required if (nsym.gt.1) then ivh0(:,1:nhvec)=ivh(:,1:nhvec) hc0(1:nhvec)=hc(1:nhvec) vhc0(:,1:nhvec)=vhc(:,1:nhvec) kh=0 lh=nhvec do ih=1,nhvec do isym=1,nsym call i3mtv(sym(:,:,isym),ivh0(:,ih),iv(:)) do jh=1,kh k=abs(ivh(1,jh)-iv(1))+abs(ivh(2,jh)-iv(2))+abs(ivh(3,jh)-iv(3)) if (k.eq.0) then ivh(:,lh)=ivh0(:,ih) hc(lh)=hc0(ih) vhc(:,lh)=vhc0(:,ih) lh=lh-1 mulh(jh)=mulh(jh)+1 goto 10 end if end do end do kh=kh+1 ivh(:,kh)=ivh0(:,ih) hc(kh)=hc0(ih) vhc(:,kh)=vhc0(:,ih) mulh(kh)=1 10 continue end do nhvec=kh else mulh(:)=1 end if deallocate(idx,ivh0,vhc0,hc0) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfmtctof.f900000644000000000000000000000013213543334736014774 xustar0030 mtime=1569569246.204640939 30 atime=1569569242.467643326 30 ctime=1569569246.204640939 elk-6.3.2/src/rfmtctof.f900000644002504400250440000000434613543334736017052 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rfmtctof ! !INTERFACE: subroutine rfmtctof(rfmt) ! !USES: use modmain use modomp ! !INPUT/OUTPUT PARAMETERS: ! rfmt : real muffin-tin function (in,real(npmtmax,natmtot)) ! !DESCRIPTION: ! Converts a real muffin-tin function from a coarse to a fine radial mesh by ! using cubic spline interpolation. See {\tt rfinterp} and {\tt spline}. ! ! !REVISION HISTORY: ! Created October 2003 (JKD) !EOP !BOC implicit none ! arguments real(8), intent(inout) :: rfmt(npmtmax,natmtot) ! local variables integer is,ias,lm,nthd integer nr,nri,nro integer iro,ir,npi,i integer nrc,nrci,nrco integer irco,irc,npci ! allocatable arrays real(8), allocatable :: fi(:),fo(:),rfmt1(:) if (lradstp.eq.1) return call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(fi,fo,rfmt1,is,nr,nri,nro) & !$OMP PRIVATE(iro,npi,nrc,nrci,nrco) & !$OMP PRIVATE(irco,npci,lm,i,irc,ir) & !$OMP NUM_THREADS(nthd) allocate(fi(nrcmtmax),fo(nrmtmax),rfmt1(npmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) nro=nr-nri iro=nri+1 npi=npmti(is) nrc=nrcmt(is) nrci=nrcmti(is) nrco=nrc-nrci irco=nrci+1 npci=npcmti(is) ! interpolate up to lmaxi over entire muffin-tin do lm=1,lmmaxi i=lm do irc=1,nrci fi(irc)=rfmt(i,ias) i=i+lmmaxi end do do irc=irco,nrc fi(irc)=rfmt(i,ias) i=i+lmmaxo end do call rfinterp(nrc,rcmt(:,is),fi,nr,rlmt(:,1,is),fo) i=lm do ir=1,nri rfmt1(i)=fo(ir) i=i+lmmaxi end do do ir=iro,nr rfmt1(i)=fo(ir) i=i+lmmaxo end do end do ! interpolate up to lmaxo on outer part of muffin-tin do lm=lmmaxi+1,lmmaxo i=npci+lm do irc=irco,nrc fi(irc)=rfmt(i,ias) i=i+lmmaxo end do call rfinterp(nrco,rcmt(irco,is),fi(irco),nro,rsp(iro,is),fo(iro)) i=npi+lm do ir=iro,nr rfmt1(i)=fo(ir) i=i+lmmaxo end do end do call dcopy(npmt(is),rfmt1,1,rfmt(:,ias),1) end do !$OMP END DO deallocate(fi,fo,rfmt1) !$OMP END PARALLEL call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/testcheck.f900000644000000000000000000000013213543334736015125 xustar0030 mtime=1569569246.208640936 30 atime=1569569242.472643323 30 ctime=1569569246.208640936 elk-6.3.2/src/testcheck.f900000644002504400250440000001120313543334736017171 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine testcheck implicit none ! local variables logical exist integer i,j,k,n integer nv_,nv,vt_,vt,iv_,iv real(8) rv_,rv,a,b real(8) tol,t1,t2 complex(8) zv_,zv character(256) fname_,fname,descr n=0 do i=0,999 write(fname_,'("TEST_",I3.3,".OUT_")') i inquire(file=trim(fname_),exist=exist) if (exist) then write(fname,'("TEST_",I3.3,".OUT")') i inquire(file=trim(fname),exist=exist) if (.not.exist) then write(*,*) write(*,'("Error(testcheck): file ",A," does not exist")') trim(fname) write(*,*) stop end if open(91,file=trim(fname_),form='FORMATTED') open(92,file=trim(fname),form='FORMATTED') read(91,*,err=10) descr read(92,*,err=20) descr read(91,*,err=10) vt_,nv_ read(92,*,err=20) vt,nv if (vt_.ne.vt) then write(*,*) write(*,'("Error(testcheck): differing variable type")') write(*,'(" for quantity ''",A,"''")') trim(descr) write(*,'(" ",A," : ",I8)') trim(fname_),vt_ write(*,'(" ",A," : ",I8)') trim(fname),vt write(*,*) stop end if if (nv_.ne.nv) then write(*,*) write(*,'("Error(testcheck): differing number of variables")') write(*,'(" for quantity ''",A,"''")') trim(descr) write(*,'(" ",A," : ",I8)') trim(fname_),nv_ write(*,'(" ",A," : ",I8)') trim(fname),nv write(*,*) stop end if if (nv.le.0) then write(*,*) write(*,'("Error(testcheck): nv <= 0 : ",I8)') nv write(*,*) stop end if if (vt.eq.1) then ! integer variables do j=1,nv read(91,*,err=10) k,iv_ if (j.ne.k) goto 10 read(92,*,err=20) k,iv if (j.ne.k) goto 20 if (iv.ne.iv_) then write(*,*) write(*,'("Error(testcheck): variable ",I8," is different")') j write(*,'(" for quantity ''",A,"''")') trim(descr) write(*,'(" ",A," : ",I8)') trim(fname_),iv_ write(*,'(" ",A," : ",I8)') trim(fname),iv write(*,*) stop end if end do else if (vt.eq.2) then ! real variables read(91,*,err=10) tol read(92,*,err=20) tol do j=1,nv read(91,*,err=10) k,rv_ if (j.ne.k) goto 10 read(92,*,err=20) k,rv if (j.ne.k) goto 20 t1=abs(rv_-rv) t2=abs(rv_)*tol if ((t1.gt.t2).and.(abs(rv_).gt.1.d-4)) then write(*,*) write(*,'("Error(testcheck): variable ",I8," outside tolerance")') j write(*,'(" for quantity ''",A,"''")') trim(descr) write(*,'(" ",A," (correct value)",T40," : ",G22.12)') trim(fname_), & rv_ write(*,'(" ",A,T40," : ",G22.12)') trim(fname),rv write(*,'(" absolute difference",T40," : ",G22.12)') t1 write(*,'(" required relative tolerance",T40," : ",G22.12)') tol write(*,'(" required absolute tolerance",T40," : ",G22.12)') t2 write(*,*) stop end if end do else if (vt.eq.3) then ! complex variables read(91,*,err=10) tol read(92,*,err=20) tol do j=1,nv read(91,*,err=10) k,a,b zv_=cmplx(a,b,8) if (j.ne.k) goto 10 read(92,*,err=20) k,a,b zv=cmplx(a,b,8) if (j.ne.k) goto 20 t1=abs(zv_-zv) t2=abs(zv_)*tol if ((t1.gt.t2).and.(abs(zv_).gt.1.d-4)) then write(*,*) write(*,'("Error(testcheck): variable ",I8," outside tolerance")') j write(*,'(" for quantity ''",A,"''")') trim(descr) write(*,'(" ",A," (correct value)",T40," : ",2G22.12)') & trim(fname_),zv_ write(*,'(" ",A,T40," : ",2G22.12)') trim(fname),zv write(*,'(" difference",T40," : ",G22.12)') t1 write(*,'(" required relative tolerance",T40," : ",G22.12)') tol write(*,'(" required absolute tolerance",T40," : ",G22.12)') t2 write(*,*) stop end if end do else write(*,*) write(*,'("Error(testcheck): variable type not defined : ",I8)') vt write(*,*) stop end if close(91) close(92) n=n+1 end if end do if (n.eq.0) then write(*,*) write(*,'("Warning(testcheck): no tests found")') else write(*,*) write(*,'("Info(testcheck): passed all tests")') end if return 10 continue write(*,*) write(*,'("Error(testcheck): error reading from ",A)') trim(fname_) write(*,*) stop 20 continue write(*,*) write(*,'("Error(testcheck): error reading from ",A)') trim(fname) write(*,*) stop end subroutine elk-6.3.2/src/PaxHeaders.21352/writeefg.f900000644000000000000000000000013213543334736014764 xustar0030 mtime=1569569246.213640933 30 atime=1569569242.477643319 30 ctime=1569569246.213640933 elk-6.3.2/src/writeefg.f900000644002504400250440000000605013543334736017034 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2006 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writeefg ! !INTERFACE: subroutine writeefg ! !USES: use modmain ! !DESCRIPTION: ! Computes the electric field gradient (EFG) tensor for each atom, $\alpha$, ! and writes it to the file {\tt EFG.OUT} along with its eigenvalues. The EFG ! is defined by ! $$ V^{\alpha}_{ij}\equiv\left.\frac{\partial^2 V'_{\rm C}({\bf r})} ! {\partial{\bf r}_i\partial{\bf r}_j}\right|_{{\bf r}={\bf r}_{\alpha}}, $$ ! where $V'_{\rm C}$ is the Coulomb potential with the $l=m=0$ component ! removed in each muffin-tin. The derivatives are computed explicitly using ! the routine {\tt gradrfmt}. ! ! !REVISION HISTORY: ! Created May 2004 (JKD) ! Fixed serious problem, November 2006 (JKD) !EOP !BOC implicit none ! local variables integer, parameter :: lwork=10 integer is,ia,ias integer nr,nri,ir integer np,i,j,info real(8) efg(3,3),a(3,3) real(8) w(3),work(lwork) ! allocatable arrays real(8), allocatable :: rfmt(:),grfmt1(:,:),grfmt2(:,:) if (lmaxi.lt.2) then write(*,*) write(*,'("Error(writeefg): lmaxi too small for calculating the EFG : ",& &I4)') lmaxi write(*,'(" Run the ground-state calculation again with lmaxi >= 2")') write(*,*) stop end if ! initialise universal variables call init0 ! read density and potentials from file call readstate ! allocate local arrays allocate(rfmt(npmtmax),grfmt1(npmtmax,3),grfmt2(npmtmax,3)) open(50,file='EFG.OUT',form='FORMATTED') write(50,*) write(50,'("(electric field gradient tensor is in Cartesian coordinates)")') do is=1,nspecies nr=nrmt(is) nri=nrmti(is) np=npmt(is) do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia ! remove the l=m=0 part of the potential rfmt(1:np)=vclmt(1:np,ias) i=1 do ir=1,nri rfmt(i)=0.d0 i=i+lmmaxi end do do ir=nri+1,nr rfmt(i)=0.d0 i=i+lmmaxo end do ! compute the gradient of the Coulomb potential call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),rfmt,npmtmax,grfmt1) do i=1,3 ! compute the gradient of the gradient call gradrfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),grfmt1(:,i),npmtmax, & grfmt2) do j=1,3 efg(i,j)=grfmt2(1,j)*y00 end do end do ! symmetrise the EFG do i=1,3 do j=i+1,3 efg(i,j)=0.5d0*(efg(i,j)+efg(j,i)) efg(j,i)=efg(i,j) end do end do write(50,*) write(50,'(" EFG tensor :")') do i=1,3 write(50,'(3G18.10)') (efg(i,j),j=1,3) end do write(50,'(" trace : ",G18.10)') efg(1,1)+efg(2,2)+efg(3,3) ! diagonalise the EFG a(:,:)=efg(:,:) call dsyev('N','U',3,a,3,w,work,lwork,info) write(50,'(" eigenvalues :")') write(50,'(3G18.10)') w end do end do close(50) write(*,*) write(*,'("Info(writeefg): electric field gradient written to EFG.OUT")') deallocate(rfmt,grfmt1,grfmt2) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/eveqnbf.f900000644000000000000000000000013213543334736014576 xustar0030 mtime=1569569246.217640931 30 atime=1569569242.483643316 30 ctime=1569569246.217640931 elk-6.3.2/src/eveqnbf.f900000644002504400250440000000213113543334736016642 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 Chung-Yu Wang, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine eveqnbf(n,ld,a,b,w) implicit none ! arguments integer, intent(in) :: n,ld complex(8), intent(inout) :: a(ld,n),b(ld,n) real(8), intent(out) :: w(n) ! local variables integer n2,i,j ! allocatable arrays integer, allocatable :: idx(:) real(8), allocatable :: w2(:),x(:) complex(8), allocatable :: h(:,:) ! external functions real(8) dznrm2 external dznrm2 n2=2*n ! setup the Bogoliubov Hamiltonian allocate(w2(n2),h(n2,n2)) do j=1,n do i=1,n h(i,j)=a(i,j) h(n+i,n+j)=-conjg(a(i,j)) h(i,n+j)=b(i,j) end do end do ! find the eigenvalues and eigenvectors call eveqnz(n2,n2,h,w2) ! select those eigenvectors which have largest U-norms allocate(idx(n2),x(n2)) do j=1,n2 x(j)=dznrm2(n,h(:,j),1) end do call sortidx(n2,x,idx) do i=1,n j=idx(n2-i+1) w(i)=w2(j) call zcopy(n,h(1,j),1,a(1,i),1) call zcopy(n,h(n+1,j),1,b(1,i),1) end do deallocate(idx,w2,x,h) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zfplot.f900000644000000000000000000000013213543334736014466 xustar0030 mtime=1569569246.222640927 30 atime=1569569242.489643312 30 ctime=1569569246.222640927 elk-6.3.2/src/zfplot.f900000644002504400250440000001001613543334736016533 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfplot(np,vpl,zfmt,zfir,fp) use modmain use modomp implicit none ! arguments integer, intent(in) :: np real(8), intent(in) :: vpl(3,np) complex(8), intent(in) :: zfmt(npcmtmax,natmtot),zfir(ngtot) complex(8), intent(out) :: fp(np) ! local variables integer ias,is,ip,nthd ! allocatable arrays complex(8), allocatable :: zfmt1(:,:,:),zfft(:) ! unpack the muffin-tin function allocate(zfmt1(lmmaxo,nrcmtmax,natmtot)) call holdthd(natmtot,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(is) & !$OMP NUM_THREADS(nthd) do ias=1,natmtot is=idxis(ias) call zfmtpack(.false.,nrcmt(is),nrcmti(is),zfmt(:,ias),zfmt1(:,:,ias)) end do !$OMP END PARALLEL DO call freethd(nthd) ! Fourier transform rfir to G-space allocate(zfft(ngtot)) zfft(:)=zfir(:) call zfftifc(3,ngridg,-1,zfft) ! begin loop over all points call holdthd(np,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ip=1,np call zfip(ip) end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(zfmt1,zfft) return contains subroutine zfip(ip) implicit none ! arguments integer, intent(in) :: ip ! local variables integer is,ia,ias,nrc,nrci integer irc0,irc,lmax,l,m,lm integer ig,ifg,i1,i2,i3,i,j real(8) rmt2,r,ya1(4),ya2(4),t1,t2 real(8) v1(3),v2(3),v3(3),v4(3),v5(3) complex(8) z1 ! automatic arrays complex(8) ylm(lmmaxo) v2(:)=vpl(:,ip) call r3frac(epslat,v2) ! convert point to Cartesian coordinates call r3mv(avec,v2,v1) ! check if point is in a muffin-tin do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) rmt2=rmt(is)**2 do ia=1,natoms(is) ias=idxas(ia,is) v2(:)=v1(:)-atposc(:,ia,is) do i1=-1,1 v3(:)=v2(:)+dble(i1)*avec(:,1) do i2=-1,1 v4(:)=v3(:)+dble(i2)*avec(:,2) do i3=-1,1 v5(:)=v4(:)+dble(i3)*avec(:,3) t1=v5(1)**2+v5(2)**2+v5(3)**2 if (t1.lt.rmt2) then r=sqrt(t1) call genylmv(lmaxo,v5,ylm) do irc=1,nrc if (rcmt(irc,is).ge.r) then if (irc.le.3) then irc0=1 else if (irc.gt.nrc-2) then irc0=nrc-3 else irc0=irc-2 end if r=max(r,rcmt(1,is)) if (irc0.le.nrci) then lmax=lmaxi else lmax=lmaxo end if z1=0.d0 lm=0 do l=0,lmax do m=-l,l lm=lm+1 do j=1,4 i=irc0+j-1 ya1(j)=dble(zfmt1(lm,i,ias)) ya2(j)=aimag(zfmt1(lm,i,ias)) end do t1=poly4(rcmt(irc0,is),ya1,r) t2=poly4(rcmt(irc0,is),ya2,r) z1=z1+cmplx(t1,t2,8)*ylm(lm) end do end do goto 10 end if end do end if end do end do end do end do end do ! otherwise use direct Fourier transform of interstitial function z1=0.d0 do ig=1,ngvec ifg=igfft(ig) t1=vgc(1,ig)*v1(1)+vgc(2,ig)*v1(2)+vgc(3,ig)*v1(3) z1=z1+zfft(ifg)*cmplx(cos(t1),sin(t1),8) end do 10 continue fp(ip)=z1 return end subroutine real(8) function poly4(xa,ya,x) implicit none ! arguments real(8), intent(in) :: xa(4),ya(4),x ! local variables real(8) x0,x1,x2,x3,y0,y1,y2,y3 real(8) c1,c2,c3,t0,t1,t2,t3,t4,t5,t6 ! evaluate the polynomial coefficients x0=xa(1) x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0 t4=x1-x2; t5=x1-x3; t6=x2-x3 y0=ya(1) y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0 t1=x1*x2*y3; t2=x2*x3*y1; t3=x1*x3 t0=1.d0/(x2*t3*t4*t5*t6) t3=t3*y2 c3=t1*t4+t2*t6-t3*t5 t4=x1**2; t5=x2**2; t6=x3**2 c2=t1*(t5-t4)+t2*(t6-t5)+t3*(t4-t6) c1=t1*(x2*t4-x1*t5)+t2*(x3*t5-x2*t6)+t3*(x1*t6-x3*t4) t1=x-x0 ! evaluate the polynomial poly4=y0+t0*t1*(c1+t1*(c2+c3*t1)) return end function end subroutine elk-6.3.2/src/PaxHeaders.21352/phdelete.f900000644000000000000000000000013213543334736014742 xustar0030 mtime=1569569246.225640925 30 atime=1569569242.493643309 30 ctime=1569569246.225640925 elk-6.3.2/src/phdelete.f900000644002504400250440000000112713543334736017012 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phdelete use modphonon implicit none ! local variables integer ios character(256) fext ! construct the phonon file extension call phfext(iqph,isph,iaph,ipph,fext) ! delete the eigenvector files open(222,file=trim(scrpath)//'DEVECFV'//trim(fext),iostat=ios) close(222,status='DELETE') open(226,file=trim(scrpath)//'DEVECSV'//trim(fext),iostat=ios) close(226,status='DELETE') return end subroutine elk-6.3.2/src/PaxHeaders.21352/dmatch.f900000644000000000000000000000013213543334736014410 xustar0030 mtime=1569569246.230640922 30 atime=1569569242.498643306 30 ctime=1569569246.230640922 elk-6.3.2/src/dmatch.f900000644002504400250440000000153313543334736016461 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dmatch(ias,ip,ngp,vgpc,apwalm,dapwalm) use modmain implicit none ! arguments integer, intent(in) :: ias,ip,ngp real(8), intent(in) :: vgpc(3,ngkmax) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) complex(8), intent(out) :: dapwalm(ngkmax,apwordmax,lmmaxapw) ! local variables integer is,l,m,lm,io,igp complex(8) z1 ! take derivative with respect to atomic displacement is=idxis(ias) lm=0 do l=0,lmaxapw do m=-l,l lm=lm+1 do io=1,apword(l,is) do igp=1,ngp z1=apwalm(igp,io,lm,ias) dapwalm(igp,io,lm)=vgpc(ip,igp)*cmplx(-aimag(z1),dble(z1),8) end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/phscdelete.f900000644000000000000000000000013013543334736015266 xustar0029 mtime=1569569246.23464092 30 atime=1569569242.503643303 29 ctime=1569569246.23464092 elk-6.3.2/src/phscdelete.f900000644002504400250440000000116013543334736017335 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phscdelete use modmain implicit none ! local variables integer ios ! delete the eigenvector files call delevec ! delete the eigenvalue files open(120,file='EVALFV'//trim(filext),iostat=ios) close(120,status='DELETE') open(124,file='EVALSV'//trim(filext),iostat=ios) close(124,status='DELETE') ! delete the occupancy file open(130,file='OCCSV'//trim(filext),iostat=ios) close(130,status='DELETE') return end subroutine elk-6.3.2/src/PaxHeaders.21352/doccupy.f900000644000000000000000000000013013543334736014614 xustar0030 mtime=1569569246.238640917 28 atime=1569569242.5086433 30 ctime=1569569246.238640917 elk-6.3.2/src/doccupy.f900000644002504400250440000000216113543334736016665 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine doccupy use modmain use modphonon implicit none ! local variables integer, parameter :: maxit=1000 integer ik,jk,ist,it real(8) de0,de1,de real(8) dchg,x,dx,t1 ! external functions real(8) sdelta external sdelta if (.not.tphq0) return de0=1.d6 de1=-1.d6 do ik=1,nkptnr do ist=1,nstsv de=devalsv(ist,ik) if (de.lt.de0) de0=de if (de.gt.de1) de1=de end do end do t1=1.d0/swidth do it=1,maxit defermi=0.5d0*(de0+de1) dchg=0.d0 do ik=1,nkptnr jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) do ist=1,nstsv x=(efermi-evalsv(ist,jk))*t1 dx=(defermi-devalsv(ist,ik))*t1 doccsv(ist,ik)=occmax*sdelta(stype,x)*dx dchg=dchg+wkptnr*doccsv(ist,ik) end do end do if (dchg.lt.0.d0) then de0=defermi else de1=defermi end if if ((de1-de0).lt.1.d-12) goto 10 end do write(*,*) write(*,'("Warning(doccupy): could not find Fermi energy derivative")') 10 continue return end subroutine elk-6.3.2/src/PaxHeaders.21352/writedvs.f900000644000000000000000000000013213543334736015017 xustar0030 mtime=1569569246.243640914 30 atime=1569569242.514643296 30 ctime=1569569246.243640914 elk-6.3.2/src/writedvs.f900000644002504400250440000000145113543334736017067 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writedvs(fext) use modmain use modphonon implicit none ! arguments character(*), intent(in) :: fext ! local variables integer is,ias ! allocatable arrays complex(8), allocatable :: zfmt(:,:,:) allocate(zfmt(lmmaxo,nrmtmax,natmtot)) open(50,file='DVS'//trim(fext),form='UNFORMATTED') write(50) version write(50) nspecies write(50) lmmaxo do is=1,nspecies write(50) natoms(is) write(50) nrmt(is) end do write(50) ngridg do ias=1,natmtot is=idxis(ias) call zfmtpack(.false.,nrmt(is),nrmti(is),dvsmt(:,ias),zfmt(:,:,ias)) end do write(50) zfmt,dvsir close(50) deallocate(zfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gengqvec.f900000644000000000000000000000013213543334736014747 xustar0030 mtime=1569569246.247640911 30 atime=1569569242.519643293 30 ctime=1569569246.247640911 elk-6.3.2/src/gengqvec.f900000644002504400250440000000162113543334736017016 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengqvec(iq) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq ! local variables integer is,ig ! loop over G-vectors do ig=1,ngtot ! G+q-vector in Cartesian coordinates vgqc(:,ig)=vgc(:,ig)+vqc(:,iq) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! compute the spherical Bessel functions j_l(|G+q|R_mt) call genjlgprmt(lnpsd,ngvec,gqc,ngvec,jlgqrmt) ! structure factors for G+q call gensfacgp(ngvec,vgqc,ngvec,sfacgq) ! generate the smooth step function form factors for G+q do is=1,nspecies call genffacgp(is,gqc,ffacgq(:,is)) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/readdyn.f900000644000000000000000000000013113543334736014575 xustar0030 mtime=1569569246.251640909 29 atime=1569569242.52364329 30 ctime=1569569246.251640909 elk-6.3.2/src/readdyn.f900000644002504400250440000000245513543334736016653 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readdyn(dynq) use modmain use modphonon implicit none ! arguments complex(8), intent(out) :: dynq(nbph,nbph,nqpt) ! local variables logical exist integer iq,is,js,ia,ja integer ip,jp,i,j real(8) a,b character(256) fext do iq=1,nqpt i=0 do is=1,nspecies do ia=1,natoms(is) do ip=1,3 i=i+1 call phfext(iq,is,ia,ip,fext) inquire(file='DYN'//trim(fext),exist=exist) if (.not.exist) then write(*,*) write(*,'("Error(readdyn): file not found :")') write(*,'(A)') ' DYN'//trim(fext) write(*,*) stop end if open(50,file='DYN'//trim(fext),status='OLD',form='FORMATTED') j=0 do js=1,nspecies do ja=1,natoms(js) do jp=1,3 j=j+1 read(50,*) a,b dynq(i,j,iq)=cmplx(a,b,8) end do end do end do close(50) end do ! end loops over atoms and species end do end do ! symmetrise the dynamical matrix call dynsym(vql(:,iq),dynq(:,:,iq)) ! end loop over q-vectors end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dyntask.f900000644000000000000000000000013213543334736014625 xustar0030 mtime=1569569246.255640906 30 atime=1569569242.528643287 30 ctime=1569569246.255640906 elk-6.3.2/src/dyntask.f900000644002504400250440000000276413543334736016705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dyntask(fnum,fext) use modmain use modphonon use modmpi implicit none ! arguments integer, intent(in) :: fnum character(*), intent(out) :: fext ! local variables logical exist ! only master process should search for file if (.not.mp_mpi) goto 10 do ipph=1,3 do isph=1,nspecies do iaph=1,natoms(isph) do iqph=1,nqpt ! construct the phonon file extension call phfext(iqph,isph,iaph,ipph,fext) ! determine if the DYN file with this extension exists inquire(file='DYN'//trim(fext),exist=exist) if (.not.exist) then open(fnum,file='DYN'//trim(fext),form='FORMATTED') iasph=idxas(iaph,isph) goto 10 end if end do end do end do end do iqph=0; isph=0; iaph=0; iasph=0; ipph=0 write(*,*) write(*,'("Info(dyntask): nothing more to do")') 10 continue ! broadcast to all other MPI processes call mpi_bcast(iqph,1,mpi_integer,0,mpicom,ierror) call mpi_bcast(isph,1,mpi_integer,0,mpicom,ierror) call mpi_bcast(iaph,1,mpi_integer,0,mpicom,ierror) call mpi_bcast(iasph,1,mpi_integer,0,mpicom,ierror) call mpi_bcast(ipph,1,mpi_integer,0,mpicom,ierror) if (iqph.eq.0) then fext='.OUT' else call phfext(iqph,isph,iaph,ipph,fext) end if ! set the q=0 flag if (iqph.eq.iq0) then tphq0=.true. else tphq0=.false. end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/drhomagsh.f900000644000000000000000000000013213543334736015124 xustar0030 mtime=1569569246.260640903 30 atime=1569569242.533643284 30 ctime=1569569246.260640903 elk-6.3.2/src/drhomagsh.f900000644002504400250440000000202413543334736017171 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine drhomagsh use modmain use modphonon use modomp implicit none ! local variables integer idm,is,ias,nthd integer nrc,nrci,npc ! allocatable arrays complex(8), allocatable :: zfmt(:) call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt,is,nrc,nrci) & !$OMP PRIVATE(npc,idm) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! convert the density derivative to spherical harmonics zfmt(1:npc)=drhomt(1:npc,ias) call zfsht(nrc,nrci,zfmt,drhomt(:,ias)) ! convert the magnetisation derivative to spherical harmonics do idm=1,ndmag zfmt(1:npc)=dmagmt(1:npc,ias,idm) call zfsht(nrc,nrci,zfmt,dmagmt(:,ias,idm)) end do end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendvsig.f900000644000000000000000000000013113543334736014755 xustar0030 mtime=1569569246.264640901 29 atime=1569569242.53864328 30 ctime=1569569246.264640901 elk-6.3.2/src/gendvsig.f900000644002504400250440000000110513543334736017022 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendvsig use modmain use modphonon implicit none ! local variables integer ig ! allocatable arrays complex(8), allocatable :: zfft(:) allocate(zfft(ngtot)) zfft(:)=dvsir(:)*cfunir(:)+vsir(:)*dcfunir(:) ! Fourier transform to G+q-space call zfftifc(3,ngridg,-1,zfft) ! store in global array do ig=1,ngvec dvsig(ig)=zfft(igfft(ig)) end do deallocate(zfft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gradrhomt.f900000644000000000000000000000013213543334736015137 xustar0030 mtime=1569569246.268640898 30 atime=1569569242.542643278 30 ctime=1569569246.268640898 elk-6.3.2/src/gradrhomt.f900000644002504400250440000000146613543334736017215 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gradrhomt use modmain use modphonon implicit none ! local variables integer nr,nri,np ! allocatable arrays complex(8), allocatable :: zfmt(:),gzfmt(:,:) ! add gradient contribution from rigid shift of muffin-tin nr=nrmt(isph) nri=nrmti(isph) np=npmt(isph) allocate(zfmt(np),gzfmt(np,3)) ! convert the density to complex spherical harmonic expansion call rtozfmt(nr,nri,rhomt(:,iasph),zfmt) ! compute the gradient call gradzfmt(nr,nri,rlmt(:,1,isph),rlmt(:,-1,isph),zfmt,np,gzfmt) ! subtract from the density derivative drhomt(1:np,iasph)=drhomt(1:np,iasph)-gzfmt(1:np,ipph) deallocate(zfmt,gzfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendcfun.f900000644000000000000000000000013213543334736014741 xustar0030 mtime=1569569246.272640895 30 atime=1569569242.547643275 30 ctime=1569569246.272640895 elk-6.3.2/src/gendcfun.f900000644002504400250440000000115313543334736017010 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendcfun use modmain use modphonon implicit none ! local variables integer ig real(8) v1,v2,v3,t1,t2 complex(8) z1 v1=atposc(1,iaph,isph) v2=atposc(2,iaph,isph) v3=atposc(3,iaph,isph) do ig=1,ngtot t1=vgqc(1,ig)*v1+vgqc(2,ig)*v2+vgqc(3,ig)*v3 t2=ffacgq(ig,isph)*vgqc(ipph,ig) z1=t2*cmplx(sin(t1),cos(t1),8) dcfunig(ig)=z1 dcfunir(igfft(ig))=z1 end do call zfftifc(3,ngridg,1,dcfunir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dpotks.f900000644000000000000000000000013213543334736014454 xustar0030 mtime=1569569246.277640892 30 atime=1569569242.552643271 30 ctime=1569569246.277640892 elk-6.3.2/src/dpotks.f900000644002504400250440000000325213543334736016525 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dpotks use modmain use modphonon use modomp implicit none ! local variables integer is,ias,nthd integer nr,nri,np ! allocatable arrays complex(8), allocatable :: zfmt(:) ! convert density derivative to spherical coordinates call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt,is,nr,nri,np) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) zfmt(1:np)=drhomt(1:np,ias) call zbsht(nr,nri,zfmt,drhomt(:,ias)) end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) ! compute the exchange-correlation potential derivative call dpotxc ! convert density derivative to spherical harmonics call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt,is,nr,nri,np) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) zfmt(1:np)=drhomt(1:np,ias) call zfsht(nr,nri,zfmt,drhomt(:,ias)) end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) ! generate the Coulomb potential derivative call dpotcoul ! add to the Kohn-Sham potential derivative do ias=1,natmtot is=idxis(ias) np=npmt(is) dvsmt(1:np,ias)=dvsmt(1:np,ias)+dvclmt(1:np,ias) end do call zaxpy(ngtot,zone,dvclir,1,dvsir,1) ! remove the gradient part of the potential derivative for displaced muffin-tin np=npmt(isph) dvsmt(1:np,iasph)=dvsmt(1:np,iasph)+gvsmt(1:np) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dpotxc.f900000644000000000000000000000013013543334736014447 xustar0029 mtime=1569569246.28164089 30 atime=1569569242.557643268 29 ctime=1569569246.28164089 elk-6.3.2/src/dpotxc.f900000644002504400250440000001111513543334736016517 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dpotxc use modmain use modphonon implicit none ! local variables integer idm,is,ias integer nr,nri,nrc,nrci integer ir,np ! allocatable arrays real(8), allocatable :: fxcmt(:,:,:,:),fxcir(:,:,:) complex(8), allocatable :: dvmt(:),dbmt(:,:),zfmt(:) ! compute the exchange-correlation kernel if (spinpol) then allocate(fxcmt(npmtmax,natmtot,4,4),fxcir(ngtot,4,4)) call genspfxcr(.false.,fxcmt,fxcir) else allocate(fxcmt(npmtmax,natmtot,1,1),fxcir(ngtot,1,1)) call genfxcr(.false.,fxcmt,fxcir) end if allocate(dvmt(npmtmax)) if (spinpol) allocate(dbmt(npmtmax,3),zfmt(npcmtmax)) !---------------------------------------! ! muffin-tin potential and field ! !---------------------------------------! ! note: muffin-tin functions are in spherical coordinates do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) nrc=nrcmt(is) nrci=nrcmti(is) np=npmt(is) ! charge-charge contribution to potential derivative dvmt(1:np)=fxcmt(1:np,ias,1,1)*drhomt(1:np,ias) ! spin-polarised case if (spinpol) then if (ncmag) then ! non-collinear ! add charge-spin contribution to potential derivative dvmt(1:np)=dvmt(1:np) & +fxcmt(1:np,ias,1,2)*dmagmt(1:np,ias,1) & +fxcmt(1:np,ias,1,3)*dmagmt(1:np,ias,2) & +fxcmt(1:np,ias,1,4)*dmagmt(1:np,ias,3) ! spin-charge contribution to B-field derivative dbmt(1:np,1)=fxcmt(1:np,ias,1,2)*drhomt(1:np,ias) dbmt(1:np,2)=fxcmt(1:np,ias,1,3)*drhomt(1:np,ias) dbmt(1:np,3)=fxcmt(1:np,ias,1,4)*drhomt(1:np,ias) ! add spin-spin contribution to B-field derivative ! (note: fxc is stored as an upper triangular matrix) dbmt(1:np,1)=dbmt(1:np,1) & +fxcmt(1:np,ias,2,2)*dmagmt(1:np,ias,1) & +fxcmt(1:np,ias,2,3)*dmagmt(1:np,ias,2) & +fxcmt(1:np,ias,2,4)*dmagmt(1:np,ias,3) dbmt(1:np,2)=dbmt(1:np,2) & +fxcmt(1:np,ias,2,3)*dmagmt(1:np,ias,1) & +fxcmt(1:np,ias,3,3)*dmagmt(1:np,ias,2) & +fxcmt(1:np,ias,3,4)*dmagmt(1:np,ias,3) dbmt(1:np,3)=dbmt(1:np,3) & +fxcmt(1:np,ias,2,4)*dmagmt(1:np,ias,1) & +fxcmt(1:np,ias,3,4)*dmagmt(1:np,ias,2) & +fxcmt(1:np,ias,4,4)*dmagmt(1:np,ias,3) else ! collinear ! add charge-spin contribution to potential derivative dvmt(1:np)=dvmt(1:np)+fxcmt(1:np,ias,1,4)*dmagmt(1:np,ias,1) ! spin-charge contribution to B-field derivative dbmt(1:np,1)=fxcmt(1:np,ias,1,4)*drhomt(1:np,ias) ! add spin-spin contribution to B-field derivative dbmt(1:np,1)=dbmt(1:np,1)+fxcmt(1:np,ias,4,4)*dmagmt(1:np,ias,1) end if end if ! convert potential derivative to spherical harmonics call zfsht(nr,nri,dvmt,dvsmt(:,ias)) ! convert magnetic field derivative to spherical harmonics on coarse mesh do idm=1,ndmag call zfmtftoc(nrc,nrci,dbmt(:,idm),zfmt) call zfsht(nrc,nrci,zfmt,dbsmt(:,ias,idm)) end do end do !------------------------------------------! ! interstitial potential and field ! !------------------------------------------! ! charge-charge contribution to potential derivative do ir=1,ngtot dvsir(ir)=fxcir(ir,1,1)*drhoir(ir) end do ! spin-polarised case if (spinpol) then if (ncmag) then ! non-collinear do ir=1,ngtot ! add charge-spin contribution to potential derivative dvsir(ir)=dvsir(ir) & +fxcir(ir,1,2)*dmagir(ir,1) & +fxcir(ir,1,3)*dmagir(ir,2) & +fxcir(ir,1,4)*dmagir(ir,3) ! spin-charge contribution to B-field derivative dbsir(ir,1)=fxcir(ir,1,2)*drhoir(ir) dbsir(ir,2)=fxcir(ir,1,3)*drhoir(ir) dbsir(ir,3)=fxcir(ir,1,4)*drhoir(ir) ! add spin-spin contribution to B-field derivative dbsir(ir,1)=dbsir(ir,1) & +fxcir(ir,2,2)*dmagir(ir,1) & +fxcir(ir,2,3)*dmagir(ir,2) & +fxcir(ir,2,4)*dmagir(ir,3) dbsir(ir,2)=dbsir(ir,2) & +fxcir(ir,2,3)*dmagir(ir,1) & +fxcir(ir,3,3)*dmagir(ir,2) & +fxcir(ir,3,4)*dmagir(ir,3) dbsir(ir,3)=dbsir(ir,3) & +fxcir(ir,2,4)*dmagir(ir,1) & +fxcir(ir,3,4)*dmagir(ir,2) & +fxcir(ir,4,4)*dmagir(ir,3) end do else ! collinear do ir=1,ngtot ! add charge-spin contribution to potential derivative dvsir(ir)=dvsir(ir)+fxcir(ir,1,4)*dmagir(ir,1) ! spin-charge contribution to B-field derivative dbsir(ir,1)=fxcir(ir,1,4)*drhoir(ir) ! add spin-spin contribution to B-field derivative dbsir(ir,1)=dbsir(ir,1)+fxcir(ir,4,4)*dmagir(ir,1) end do end if end if deallocate(fxcmt,fxcir,dvmt) if (spinpol) deallocate(dbmt,zfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dwavefmt.f900000644000000000000000000000013213543334736014765 xustar0030 mtime=1569569246.286640886 30 atime=1569569242.562643265 30 ctime=1569569246.286640886 elk-6.3.2/src/dwavefmt.f900000644002504400250440000000532613543334736017042 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dwavefmt(lrstp,ias,ngp,ngpq,apwalmq,dapwalm,evecfv,devecfv,dwfmt) use modmain use modphonon implicit none ! arguments integer, intent(in) :: lrstp,ias,ngp,ngpq complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot) !**** remove natmtot complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: evecfv(nmatmax),devecfv(nmatmax) real(8), intent(out) :: dwfmt(2,*) ! local variables integer is,ldi,ldo,io,ilo integer nrc,nrci,nrco,iro integer l,m,lm,npc,npci,i complex(8) z1 ! external functions complex(8) zdotu external zdotu is=idxis(ias) ldi=2*lmmaxi ldo=2*lmmaxo iro=nrmti(is)+lrstp if (lrstp.eq.1) then nrc=nrmt(is) nrci=nrmti(is) npc=npmt(is) npci=npmti(is) else if (lrstp.eq.lradstp) then nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) npci=npcmti(is) else write(*,*) write(*,'("Error(dwavefmt): invalid lrstp : ",I8)') lrstp write(*,*) stop end if nrco=nrc-nrci ! zero the wavefunction derivative dwfmt(:,1:npc)=0.d0 !-----------------------! ! APW functions ! !-----------------------! lm=0 do l=0,lmaxo do m=-l,l lm=lm+1 i=npci+lm do io=1,apword(l,is) z1=zdotu(ngpq,devecfv,1,apwalmq(:,io,lm,ias),1) if (ias.eq.iasph) then z1=z1+zdotu(ngp,evecfv,1,dapwalm(:,io,lm),1) end if if (abs(dble(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,dble(z1),apwfr(1,1,io,l,ias),lrstp,dwfmt(1,lm),ldi) end if call daxpy(nrco,dble(z1),apwfr(iro,1,io,l,ias),lrstp,dwfmt(1,i),ldo) end if if (abs(aimag(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,aimag(z1),apwfr(1,1,io,l,ias),lrstp,dwfmt(2,lm),ldi) end if call daxpy(nrco,aimag(z1),apwfr(iro,1,io,l,ias),lrstp,dwfmt(2,i),ldo) end if end do end do end do !---------------------------------! ! local-orbital functions ! !---------------------------------! do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l lm=idxlm(l,m) i=npci+lm z1=devecfv(ngpq+idxlo(lm,ilo,ias)) if (abs(dble(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,dble(z1),lofr(1,1,ilo,ias),lrstp,dwfmt(1,lm),ldi) end if call daxpy(nrco,dble(z1),lofr(iro,1,ilo,ias),lrstp,dwfmt(1,i),ldo) end if if (abs(aimag(z1)).gt.1.d-14) then if (l.le.lmaxi) then call daxpy(nrci,aimag(z1),lofr(1,1,ilo,ias),lrstp,dwfmt(2,lm),ldi) end if call daxpy(nrco,aimag(z1),lofr(iro,1,ilo,ias),lrstp,dwfmt(2,i),ldo) end if end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dhmlistl.f900000644000000000000000000000013213543334736014770 xustar0030 mtime=1569569246.290640884 30 atime=1569569242.567643262 30 ctime=1569569246.290640884 elk-6.3.2/src/dhmlistl.f900000644002504400250440000000167213543334736017045 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dhmlistl(ngp,ngpq,igpig,igpqig,vgpc,vgpqc,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ngp,ngpq integer, intent(in) :: igpig(ngkmax),igpqig(ngkmax) real(8), intent(in) :: vgpc(3,ngkmax),vgpqc(3,ngkmax) integer, intent(in) :: ld complex(8), intent(inout) :: dh(ld,*) ! local variables integer i1,i2,i3,j1,j2,j3 integer ig,i,j real(8) v1,v2,v3,t1 do j=1,ngp ig=igpig(j) j1=ivg(1,ig); j2=ivg(2,ig); j3=ivg(3,ig) v1=0.5d0*vgpc(1,j); v2=0.5d0*vgpc(2,j); v3=0.5d0*vgpc(3,j) do i=1,ngpq ig=igpqig(i) i1=ivg(1,ig)-j1; i2=ivg(2,ig)-j2; i3=ivg(3,ig)-j3 ig=ivgig(i1,i2,i3) t1=vgpqc(1,i)*v1+vgpqc(2,i)*v2+vgpqc(3,i)*v3 dh(i,j)=dh(i,j)+dvsig(ig)+t1*dcfunig(ig) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/phmixpack.f900000644000000000000000000000013213543334736015134 xustar0030 mtime=1569569246.294640881 30 atime=1569569242.572643259 30 ctime=1569569246.294640881 elk-6.3.2/src/phmixpack.f900000644002504400250440000000105413543334736017203 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phmixpack(tpack,n,v) use modmain use modphonon implicit none ! arguments logical, intent(in) :: tpack integer, intent(out) :: n real(8), intent(inout) :: v(*) ! local variables integer idm n=0 call zfpack(tpack,n,npmt,npmtmax,dvsmt,dvsir,v) do idm=1,ndmag call zfpack(tpack,n,npcmt,npcmtmax,dbsmt(:,:,idm),dbsir(:,idm),v) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dhmlaa.f900000644000000000000000000000013213543334736014376 xustar0030 mtime=1569569246.298640879 30 atime=1569569242.577643255 30 ctime=1569569246.298640879 elk-6.3.2/src/dhmlaa.f900000644002504400250440000000573413543334736016456 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dhmlaa(ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: dh(*) ! local variables integer is,lmo,io,jo,i integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3 real(8) t0 complex(8) z1 ! allocatable arrays complex(8), allocatable :: a1(:,:),b1(:,:) complex(8), allocatable :: a2(:,:),b2(:,:) is=idxis(ias) lmo=lmoapw(is) allocate(a1(lmo,ngpq),b1(lmo,ngp)) if (ias.eq.iasph) then allocate(a2(lmo,ngpq),b2(lmo,ngp)) end if t0=0.5d0*rmt(is)**2 i=0 lm1=0 do l1=0,lmaxapw do m1=-l1,l1 lm1=lm1+1 do io=1,apword(l1,is) i=i+1 b1(i,:)=0.d0 lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do jo=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyyy(lm2,lm3,lm1)*dhaa(lm2,jo,l3,io,l1,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,b1(i,1),lmo) end if end do end do end do if (ias.eq.iasph) then b2(i,:)=0.d0 lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do jo=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*haa(lm2,jo,l3,io,l1,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then call zaxpy(ngp,z1,dapwalm(:,jo,lm3),1,b1(i,1),lmo) call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,b2(i,1),lmo) end if end do end do end do ! kinetic surface contribution do jo=1,apword(l1,is) z1=t0*apwfr(nrmt(is),1,io,l1,ias)*apwdfr(jo,l1,ias) call zaxpy(ngp,z1,dapwalm(:,jo,lm1),1,b1(i,1),lmo) call zaxpy(ngp,z1,apwalm(:,jo,lm1),1,b2(i,1),lmo) end do a2(i,1:ngpq)=dapwalmq(1:ngpq,io,lm1) end if a1(i,1:ngpq)=apwalmq(1:ngpq,io,lm1) end do end do end do call zmctm(lmo,ngpq,ngp,a1,b1,ld,dh) deallocate(a1,b1) if (ias.eq.iasph) then call zmctm(lmo,ngpq,ngp,a2,b2,ld,dh) deallocate(a2,b2) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/deveqnfv.f900000644000000000000000000000013213543334736014766 xustar0030 mtime=1569569246.303640876 30 atime=1569569242.582643252 30 ctime=1569569246.303640876 elk-6.3.2/src/deveqnfv.f900000644002504400250440000000705313543334736017042 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine deveqnfv(ngp,ngpq,igpig,igpqig,vgpc,vgpqc,evalfv,apwalm,apwalmq, & dapwalm,dapwalmq,evecfv,devalfvp,devecfv) use modmain use modphonon use modomp implicit none ! arguments integer, intent(in) :: ngp,ngpq integer, intent(in) :: igpig(ngkmax),igpqig(ngkmax) real(8), intent(in) :: vgpc(3,ngkmax),vgpqc(3,ngkmax) real(8), intent(in) :: evalfv(nstfv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: evecfv(nmatmax,nstfv) real(8), intent(out) :: devalfvp(nstfv) complex(8), intent(out) :: devecfv(nmatmax,nstfv) ! local variables integer nm,nmq,ias,ist,i integer lwork,info,nthd real(8) t1 complex(8) z1 ! allocatable arrays real(8), allocatable :: w(:),rwork(:) complex(8), allocatable :: h(:,:),o(:,:),dh(:,:),od(:,:) complex(8), allocatable :: x(:),y(:),work(:) ! external functions complex(8) zdotc external zdotc ! matrix sizes for k and k+q nm=ngp+nlotot nmq=ngpq+nlotot allocate(h(nmq,nmq),o(nmq,nmq)) ! compute the Hamiltonian and overlap matrices at p+q call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP SECTION call hmlfv(nmq,ngpq,igpqig,vgpqc,apwalmq,h) !$OMP SECTION call olpfv(nmq,ngpq,igpqig,apwalmq,o) !$OMP END PARALLEL SECTIONS call freethd(nthd) ! solve the generalised eigenvalue problem (H - e_i O)|v_i> = 0 ! (note: these are also the eigenvalues/vectors of O^(-1)H ) lwork=2*nmq allocate(w(nmq),rwork(3*nmq),work(lwork)) call zhegv(1,'V','U',nmq,h,nmq,o,nmq,w,work,lwork,rwork,info) if (info.ne.0) then write(*,*) write(*,'("Error(deveqnfv): diagonalisation failed")') write(*,'(" ZHEGV returned INFO = ",I8)') info write(*,*) stop end if deallocate(rwork,o,work) ! compute the Hamiltonian and overlap matrix derivatives allocate(dh(nmq,nm),od(nmq,nm)) call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP PRIVATE(ias) & !$OMP NUM_THREADS(nthd) !$OMP SECTION dh(:,:)=0.d0 do ias=1,natmtot call dhmlaa(ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, & dapwalmq,nmq,dh) call dhmlalo(ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, & dapwalmq,nmq,dh) call dhmllolo(ias,ngp,ngpq,nmq,dh) end do call dhmlistl(ngp,ngpq,igpig,igpqig,vgpc,vgpqc,nmq,dh) !$OMP SECTION od(:,:)=0.d0 do ias=1,natmtot call dolpaa(ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, & dapwalmq,nmq,od) call dolpalo(ias,ngp,ngpq,dapwalm,dapwalmq,nmq,od) end do call dolpistl(ngp,ngpq,igpig,igpqig,nmq,od) !$OMP END PARALLEL SECTIONS call freethd(nthd) allocate(x(nmq),y(nmq)) ! loop over states do ist=1,nstfv ! compute |dv_i> = V(e_i - D)^(-1)V^(*t)(dH - e_i dO)|v_i> z1=-evalfv(ist) call zgemv('N',nmq,nm,z1,od,nmq,evecfv(:,ist),1,zzero,x,1) call zgemv('N',nmq,nm,zone,dh,nmq,evecfv(:,ist),1,zone,x,1) ! compute the first-order change in eigenvalue if (tphq0) then z1=zdotc(nmq,evecfv(:,ist),1,x,1) devalfvp(ist)=dble(z1) else devalfvp(ist)=0.d0 end if call zgemv('C',nmq,nmq,zone,h,nmq,x,1,zzero,y,1) do i=1,nmq t1=evalfv(ist)-w(i) if (abs(t1).gt.epsdev) then y(i)=y(i)/t1 else y(i)=0.d0 end if end do call zgemv('N',nmq,nmq,zone,h,nmq,y,1,zzero,devecfv(:,ist),1) end do deallocate(w,h,dh,od,x,y) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dolpalo.f900000644000000000000000000000013213543334736014602 xustar0030 mtime=1569569246.307640873 30 atime=1569569242.587643249 30 ctime=1569569246.307640873 elk-6.3.2/src/dolpalo.f900000644002504400250440000000201413543334736016646 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dolpalo(ias,ngp,ngpq,dapwalm,dapwalmq,ld,od) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ias,ngp,ngpq complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: od(ld,*) ! local variables integer is,ilo,io integer l,m,lm,i,j if (ias.ne.iasph) return is=idxis(ias) do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l lm=idxlm(l,m) j=ngp+idxlo(lm,ilo,ias) do i=1,ngpq do io=1,apword(l,is) od(i,j)=od(i,j)+conjg(dapwalmq(i,io,lm))*oalo(io,ilo,ias) end do end do i=ngpq+idxlo(lm,ilo,ias) do j=1,ngp do io=1,apword(l,is) od(i,j)=od(i,j)+oalo(io,ilo,ias)*dapwalm(j,io,lm) end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dhmlalo.f900000644000000000000000000000013013543334736014566 xustar0029 mtime=1569569246.31264087 30 atime=1569569242.592643246 29 ctime=1569569246.31264087 elk-6.3.2/src/dhmlalo.f900000644002504400250440000000465413543334736016650 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dhmlalo(ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ias,ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: dh(ld,*) ! local variables integer is,io,ilo integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3,i,j complex(8) z1 is=idxis(ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) do m1=-l1,l1 lm1=idxlm(l1,m1) lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do io=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyyy(lm2,lm3,lm1)*dhloa(lm2,io,l3,ilo,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then j=ngp+idxlo(lm1,ilo,ias) do i=1,ngpq dh(i,j)=dh(i,j)+conjg(z1*apwalmq(i,io,lm3)) end do i=ngpq+idxlo(lm1,ilo,ias) do j=1,ngp dh(i,j)=dh(i,j)+z1*apwalm(j,io,lm3) end do end if end do end do end do if (ias.eq.iasph) then lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do io=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*hloa(lm2,io,l3,ilo,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then j=ngp+idxlo(lm1,ilo,ias) do i=1,ngpq dh(i,j)=dh(i,j)+conjg(z1*dapwalmq(i,io,lm3)) end do i=ngpq+idxlo(lm1,ilo,ias) do j=1,ngp dh(i,j)=dh(i,j)+z1*dapwalm(j,io,lm3) end do end if end do end do end do end if end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dhmllolo.f900000644000000000000000000000013213543334736014762 xustar0030 mtime=1569569246.316640867 30 atime=1569569242.597643243 30 ctime=1569569246.316640867 elk-6.3.2/src/dhmllolo.f900000644002504400250440000000210013543334736017022 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dhmllolo(ias,ngp,ngpq,ld,dh) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq integer, intent(in) :: ld complex(8), intent(inout) :: dh(ld,*) ! local variables integer is,ilo,jlo integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3,i,j complex(8) z1 is=idxis(ias) do jlo=1,nlorb(is) l3=lorbl(jlo,is) do m3=-l3,l3 lm3=idxlm(l3,m3) j=ngp+idxlo(lm3,jlo,ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) do m1=-l1,l1 lm1=idxlm(l1,m1) i=ngpq+idxlo(lm1,ilo,ias) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyyy(lm2,lm3,lm1)*dhlolo(lm2,jlo,ilo,ias) end do end if end do dh(i,j)=dh(i,j)+z1 end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dpotcoul.f900000644000000000000000000000013113543334736015000 xustar0030 mtime=1569569246.320640865 29 atime=1569569242.60264324 30 ctime=1569569246.320640865 elk-6.3.2/src/dpotcoul.f900000644002504400250440000000224613543334736017054 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dpotcoul use modmain use modphonon implicit none ! local variables integer nr,nri,ir,np,i ! allocatable arrays complex(8), allocatable :: zfmt(:),gzfmt(:,:) nr=nrmt(isph) nri=nrmti(isph) np=npmt(isph) ! solve the complex Poisson's equation in the muffin-tins call genzvclmt(nrmt,nrmti,nrmtmax,rlmt,wprmt,npmtmax,drhomt,dvclmt) ! calculate the gradient of the monopole potential allocate(zfmt(npmtmax),gzfmt(npmtmax,3)) zfmt(1:np)=0.d0 i=1 do ir=1,nri zfmt(i)=vcln(ir,isph) i=i+lmmaxi end do do ir=nri+1,nr zfmt(i)=vcln(ir,isph) i=i+lmmaxo end do call gradzfmt(nr,nri,rlmt(:,1,isph),rlmt(:,-1,isph),zfmt,npmtmax,gzfmt) ! subtract gradient component corresponding to the phonon polarisation dvclmt(1:np,iasph)=dvclmt(1:np,iasph)-gzfmt(1:np,ipph) deallocate(zfmt,gzfmt) ! solve Poisson's equation in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gqc,gclgq, & ngvec,jlgqrmt,ylmgq,sfacgq,drhoir,npmtmax,dvclmt,dvclir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/drhomagk.f900000644000000000000000000000013213543334736014744 xustar0030 mtime=1569569246.325640862 30 atime=1569569242.607643236 30 ctime=1569569246.325640862 elk-6.3.2/src/drhomagk.f900000644002504400250440000001526213543334736017021 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine drhomagk(ngp,ngpq,igpig,igpqig,occsvp,doccsvp,apwalm,apwalmq, & dapwalm,evecfv,devecfv,evecsv,devecsv) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ngp(nspnfv),ngpq(nspnfv) integer, intent(in) :: igpig(ngkmax,nspnfv),igpqig(ngkmax,nspnfv) real(8), intent(in) :: occsvp(nstsv),doccsvp(nstsv) complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv) complex(8), intent(in) :: devecfv(nmatmax,nstfv,nspnfv) complex(8), intent(in) :: evecsv(nstsv,nstsv),devecsv(nstsv,nstsv) ! local variables integer nst,ist,jst integer is,ias,npc real(8) wo,dwo ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(8), allocatable :: dwfmt(:,:,:,:),dwfir(:,:,:) ! count and index the occupied states nst=0 do ist=1,nstsv if (abs(occsvp(ist)).gt.epsocc) then nst=nst+1 idx(nst)=ist end if end do ! generate the wavefunctions allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfir(ngtot,nspinor,nst)) call genwfsv(.false.,.false.,nst,idx,ngridg,igfft,ngp,igpig,apwalm,evecfv, & evecsv,wfmt,ngtot,wfir) ! generate the wavefunction derivatives allocate(dwfmt(npcmtmax,natmtot,nspinor,nst),dwfir(ngtot,nspinor,nst)) call gendwfsv(.false.,.false.,nst,idx,ngp,ngpq,igpqig,apwalmq,dapwalm,evecfv, & devecfv,evecsv,devecsv,dwfmt,ngtot,dwfir) ! loop over occupied states do ist=1,nst jst=idx(ist) wo=2.d0*wkptnr*occsvp(jst) dwo=wkptnr*doccsvp(jst) !----------------------------------------------! ! muffin-tin density and magnetisation ! !----------------------------------------------! do ias=1,natmtot is=idxis(ias) npc=npcmt(is) !$OMP CRITICAL(drhomagk_1) if (spinpol) then ! spin-polarised if (ncmag) then ! non-collinear call drmk1(npc,wo,wfmt(:,ias,1,jst),wfmt(:,ias,2,jst), & dwfmt(:,ias,1,jst),dwfmt(:,ias,2,jst),drhomt(:,ias),dmagmt(:,ias,1), & dmagmt(:,ias,2),dmagmt(:,ias,3)) if (tphq0) then call drmk01(npc,dwo,wfmt(:,ias,1,jst),wfmt(:,ias,2,jst), & drhomt(:,ias),dmagmt(:,ias,1),dmagmt(:,ias,2),dmagmt(:,ias,3)) end if else ! collinear call drmk2(npc,wo,wfmt(:,ias,1,jst),wfmt(:,ias,2,jst), & dwfmt(:,ias,1,jst),dwfmt(:,ias,2,jst),drhomt(:,ias),dmagmt(:,ias,1)) if (tphq0) then call drmk02(npc,dwo,wfmt(:,ias,1,jst),wfmt(:,ias,2,jst), & drhomt(:,ias),dmagmt(:,ias,1)) end if end if else ! spin-unpolarised call drmk3(npc,wo,wfmt(:,ias,1,jst),dwfmt(:,ias,1,jst),drhomt(:,ias)) if (tphq0) then call drmk03(npc,dwo,wfmt(:,ias,1,jst),drhomt(:,ias)) end if end if !$OMP END CRITICAL(drhomagk_1) end do !------------------------------------------------! ! interstitial density and magnetisation ! !------------------------------------------------! !$OMP CRITICAL(drhomagk_2) if (spinpol) then ! spin-polarised if (ncmag) then call drmk1(ngtot,wo,wfir(:,1,jst),wfir(:,2,jst),dwfir(:,1,jst), & dwfir(:,2,jst),drhoir,dmagir,dmagir(:,2),dmagir(:,3)) if (tphq0) then call drmk01(ngtot,dwo,wfir(:,1,jst),wfir(:,2,jst),drhoir,dmagir, & dmagir(:,2),dmagir(:,3)) end if else ! collinear call drmk2(ngtot,wo,wfir(:,1,jst),wfir(:,2,jst),dwfir(:,1,jst), & dwfir(:,2,jst),drhoir,dmagir) if (tphq0) then call drmk02(ngtot,dwo,wfir(:,1,jst),wfir(:,2,jst),drhoir,dmagir) end if end if else ! spin-unpolarised call drmk3(ngtot,wo,wfir(:,1,jst),dwfir(:,1,jst),drhoir) if (tphq0) then call drmk03(ngtot,dwo,wfir(:,1,jst),drhoir) end if end if !$OMP END CRITICAL(drhomagk_2) ! end loop over states end do deallocate(wfmt,wfir,dwfmt,dwfir) return contains subroutine drmk1(n,wo,wf1,wf2,dwf1,dwf2,drho,dmag1,dmag2,dmag3) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wo complex(8), intent(in) :: wf1(n),wf2(n) complex(8), intent(in) :: dwf1(n),dwf2(n) complex(8), intent(inout) :: drho(n) complex(8), intent(inout) :: dmag1(n),dmag2(n),dmag3(n) ! local variables integer i complex(8) z1,z2,z3,z4,z5,z6 do i=1,n z1=conjg(wf1(i)) z2=conjg(wf2(i)) z3=dwf1(i) z4=dwf2(i) z5=z1*z3 z6=z2*z4 drho(i)=drho(i)+wo*(z5+z6) dmag3(i)=dmag3(i)+wo*(z5-z6) z5=z1*z4 z6=z2*z3 dmag1(i)=dmag1(i)+wo*(z5+z6) z5=z5-z6 dmag2(i)=dmag2(i)+wo*cmplx(aimag(z5),-dble(z5),8) end do return end subroutine subroutine drmk01(n,dwo,wf1,wf2,drho,dmag1,dmag2,dmag3) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: dwo complex(8), intent(in) :: wf1(n),wf2(n) complex(8), intent(inout) :: drho(n) complex(8), intent(inout) :: dmag1(n),dmag2(n),dmag3(n) ! local variables integer i real(8) t1,t2 complex(8) z1,z2 do i=1,n z1=wf1(i) z2=wf2(i) t1=dble(z1)**2+aimag(z1)**2 t2=dble(z2)**2+aimag(z2)**2 z1=conjg(z1)*z2 drho(i)=drho(i)+dwo*(t1+t2) dmag1(i)=dmag1(i)+dwo*2.d0*dble(z1) dmag2(i)=dmag2(i)+dwo*2.d0*aimag(z1) dmag3(i)=dmag3(i)+dwo*(t1-t2) end do return end subroutine subroutine drmk2(n,wo,wf1,wf2,dwf1,dwf2,drho,dmag) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wo complex(8), intent(in) :: wf1(n),wf2(n) complex(8), intent(in) :: dwf1(n),dwf2(n) complex(8), intent(inout) :: drho(n),dmag(n) ! local variables integer i complex(8) z1,z2 do i=1,n z1=conjg(wf1(i))*dwf1(i) z2=conjg(wf2(i))*dwf2(i) drho(i)=drho(i)+wo*(z1+z2) dmag(i)=dmag(i)+wo*(z1-z2) end do return end subroutine subroutine drmk02(n,dwo,wf1,wf2,drho,dmag) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: dwo complex(8), intent(in) :: wf1(n),wf2(n) complex(8), intent(inout) :: drho(n),dmag(n) ! local variables integer i real(8) t1,t2 do i=1,n t1=dble(wf1(i))**2+aimag(wf1(i))**2 t2=dble(wf2(i))**2+aimag(wf2(i))**2 drho(i)=drho(i)+dwo*(t1+t2) dmag(i)=dmag(i)+dwo*(t1-t2) end do return end subroutine subroutine drmk3(n,wo,wf,dwf,drho) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wo complex(8), intent(in) :: wf(n),dwf(n) complex(8), intent(inout) :: drho(n) drho(:)=drho(:)+wo*conjg(wf(:))*dwf(:) return end subroutine subroutine drmk03(n,dwo,wf,drho) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: dwo complex(8), intent(in) :: wf(n) complex(8), intent(inout) :: drho(n) drho(:)=drho(:)+dwo*(dble(wf(:))**2+aimag(wf(:))**2) return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/gengvsmt.f900000644000000000000000000000013213543334736015002 xustar0030 mtime=1569569246.329640859 30 atime=1569569242.613643232 30 ctime=1569569246.329640859 elk-6.3.2/src/gengvsmt.f900000644002504400250440000000136413543334736017055 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengvsmt use modmain use modphonon implicit none ! local variables integer nr,nri,np ! allocatable arrays complex(8), allocatable :: zfmt(:),gzfmt(:,:) allocate(zfmt(npmtmax),gzfmt(npmtmax,3)) nr=nrmt(isph) nri=nrmti(isph) np=npmt(isph) ! convert potential to complex spherical harmonics call rtozfmt(nr,nri,vsmt(:,iasph),zfmt) ! calculate the gradient call gradzfmt(nr,nri,rlmt(:,1,isph),rlmt(:,-1,isph),zfmt,npmtmax,gzfmt) ! copy current polarisation component to global array gvsmt(1:np)=gzfmt(1:np,ipph) deallocate(zfmt,gzfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dforce.f900000644000000000000000000000013213543334736014412 xustar0030 mtime=1569569246.334640856 30 atime=1569569242.618643229 30 ctime=1569569246.334640856 elk-6.3.2/src/dforce.f900000644002504400250440000001174613543334736016472 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dforce(dyn) use modmain use modphonon use modomp implicit none ! arguments complex(8), intent(out) :: dyn(3,natmtot) ! local variables integer ik,is,ias,nthd integer nr,nri,ir,np,i complex(8) z1 ! allocatable arrays complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: grhomt(:,:,:),grhoir(:,:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) complex(8), allocatable :: gvclmt(:,:,:),gvclir(:,:) complex(8), allocatable :: zfmt(:),gzfmt(:,:) ! external functions complex(8) zfmtinp external zfmtinp allocate(zrhomt(npmtmax,natmtot),zrhoir(ngtot)) allocate(grhomt(npmtmax,natmtot,3),grhoir(ngtot,3)) allocate(zvclmt(npmtmax,natmtot),zvclir(ngtot)) allocate(gvclmt(npmtmax,natmtot,3),gvclir(ngtot,3)) allocate(zfmt(npmtmax),gzfmt(npmtmax,3)) ! make complex copy of the density do ias=1,natmtot is=idxis(ias) call rtozfmt(nrmt(is),nrmti(is),rhomt(:,ias),zrhomt(:,ias)) end do zrhoir(:)=rhoir(:) ! compute the gradient of the density call gradzf(zrhomt,zrhoir,grhomt,grhoir) !--------------------------------------------------------------! ! Hellmann-Feynman force derivative for displaced atom ! !--------------------------------------------------------------! nr=nrmt(isph) nri=nrmti(isph) np=npmt(isph) ! zero the interstitial density zrhoir(:)=0.d0 zfmt(1:np)=0.d0 i=1 do ir=1,nri zfmt(i)=vcln(ir,isph) i=i+lmmaxi end do do ir=nri+1,nr zfmt(i)=vcln(ir,isph) i=i+lmmaxo end do call gradzfmt(nr,nri,rlmt(:,1,isph),rlmt(:,-1,isph),zfmt,npmtmax,gzfmt) ! compute the q-dependent nuclear Coulomb potential derivative zvclmt(:,:)=0.d0 zvclmt(1:np,iasph)=gzfmt(1:np,ipph) tphdyn=.true. call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gqc,gclgq, & ngvec,jlgqrmt,ylmgq,sfacgq,zrhoir,npmtmax,zvclmt,zvclir) zfmt(1:np)=zvnmt(1:np) ! multiply with density derivative and integrate z1=0.d0 do ir=1,ngtot z1=z1+cfunir(ir)*conjg(zvclir(ir))*drhoir(ir) end do z1=z1*omega/dble(ngtot) do ias=1,natmtot is=idxis(ias) z1=z1+zfmtinp(nrmt(is),nrmti(is),wrmt(:,is),zvclmt(:,ias),drhomt(:,ias)) end do dyn(ipph,iasph)=-z1 ! compute the lattice-periodic nuclear Coulomb potential derivative zvclmt(:,:)=0.d0 zvclmt(1:np,iasph)=gzfmt(1:np,ipph) call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec,gc,gclg, & ngvec,jlgrmt,ylmg,sfacg,zrhoir,npmtmax,zvclmt,zvclir) tphdyn=.false. ! multiply with density gradient and integrate z1=0.d0 do ir=1,ngtot z1=z1+cfunir(ir)*zvclir(ir)*grhoir(ir,ipph) end do z1=z1*omega/dble(ngtot) do ias=1,natmtot is=idxis(ias) z1=z1+zfmtinp(nrmt(is),nrmti(is),wrmt(:,is),zvclmt(:,ias),grhomt(:,ias,ipph)) end do dyn(ipph,iasph)=dyn(ipph,iasph)-z1 ! nuclear-nuclear term zvclmt(1:np,iasph)=zvnmt(1:np)-zfmt(1:np) call gradzf(zvclmt,zvclir,gvclmt,gvclir) do ias=1,natmtot is=idxis(ias) z1=spzn(is)*gvclmt(1,ias,ipph)*y00 dyn(ipph,iasph)=dyn(ipph,iasph)+z1 end do !-------------------------------------------------------------------! ! Hellmann-Feynman force derivative for non-displaced atoms ! !-------------------------------------------------------------------! do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) ! remove the gradient part of the Coulomb potential for displaced muffin-tin if (ias.eq.iasph) then call rtozfmt(nr,nri,vclmt(:,iasph),zfmt) call gradzfmt(nr,nri,rlmt(:,1,isph),rlmt(:,-1,isph),zfmt,npmtmax,gzfmt) dvclmt(1:np,ias)=dvclmt(1:np,ias)+gzfmt(1:np,ipph) end if ! compute the gradient of the Coulomb potential derivative at the nucleus call gradzfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),dvclmt(:,ias),npmtmax,gzfmt) do i=1,3 if ((ias.eq.iasph).and.(i.eq.ipph)) cycle dyn(i,ias)=spzn(is)*gzfmt(1,i)*y00 end do end do !--------------------------------------------! ! IBS correction to force derivative ! !--------------------------------------------! ! k-point dependent part call holdthd(nkptnr,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkptnr call dforcek(ik,dyn) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! k-point independent part do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) do i=1,3 z1=zfmtinp(nr,nri,wrmt(:,is),grhomt(:,ias,i),dvsmt(:,ias)) dyn(i,ias)=dyn(i,ias)-z1 end do ! convert Kohn-Sham potential to complex spherical harmonics call rtozfmt(nr,nri,vsmt(:,ias),zfmt) ! remove the gradient part from the density derivative for displaced muffin-tin if (ias.eq.iasph) then drhomt(1:np,ias)=drhomt(1:np,ias)+grhomt(1:np,ias,ipph) end if ! compute the gradient of the density derivative call gradzfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),drhomt(:,ias),npmtmax,gzfmt) do i=1,3 z1=zfmtinp(nr,nri,wrmt(:,is),zfmt,gzfmt(:,i)) dyn(i,ias)=dyn(i,ias)-z1 end do end do deallocate(zrhomt,zrhoir,grhomt,grhoir) deallocate(zvclmt,zvclir,gvclmt,gvclir,zfmt,gzfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dhmlrad.f900000644000000000000000000000013213543334736014563 xustar0030 mtime=1569569246.338640853 30 atime=1569569242.622643227 30 ctime=1569569246.338640853 elk-6.3.2/src/dhmlrad.f900000644002504400250440000001165313543334736016640 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dhmlrad use modmain use modphonon implicit none ! local variables integer is,ias integer nr,nri,iro integer ir,npi,i integer l1,l2,l3,m2,lm2 integer io,jo,ilo,jlo real(8) t1,t2 ! automatic arrays real(8) fr1(nrmtmax),fr2(nrmtmax) ! begin loops over atoms and species do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) iro=nri+1 npi=npmti(is) !---------------------------! ! APW-APW integrals ! !---------------------------! do l1=0,lmaxapw do io=1,apword(l1,is) do l3=0,lmaxapw do jo=1,apword(l3,is) lm2=0 do l2=0,lmaxi do m2=-l2,l2 lm2=lm2+1 i=lm2 do ir=1,nri t1=apwfr(ir,1,io,l1,ias)*apwfr(ir,1,jo,l3,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxi end do do ir=iro,nr t1=apwfr(ir,1,io,l1,ias)*apwfr(ir,1,jo,l3,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxo end do t1=dot_product(wrmt(1:nr,is),fr1(1:nr)) t2=dot_product(wrmt(1:nr,is),fr2(1:nr)) dhaa(lm2,jo,l3,io,l1,ias)=cmplx(t1,t2,8) end do end do do l2=lmaxi+1,lmaxo do m2=-l2,l2 lm2=lm2+1 i=npi+lm2 do ir=iro,nr t1=apwfr(ir,1,io,l1,ias)*apwfr(ir,1,jo,l3,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxo end do t1=dot_product(wrmt(iro:nr,is),fr1(iro:nr)) t2=dot_product(wrmt(iro:nr,is),fr2(iro:nr)) dhaa(lm2,jo,l3,io,l1,ias)=cmplx(t1,t2,8) end do end do end do end do end do end do !-------------------------------------! ! local-orbital-APW integrals ! !-------------------------------------! do ilo=1,nlorb(is) l1=lorbl(ilo,is) do l3=0,lmaxapw do io=1,apword(l3,is) lm2=0 do l2=0,lmaxi do m2=-l2,l2 lm2=lm2+1 i=lm2 do ir=1,nri t1=lofr(ir,1,ilo,ias)*apwfr(ir,1,io,l3,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxi end do do ir=iro,nr t1=lofr(ir,1,ilo,ias)*apwfr(ir,1,io,l3,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxo end do t1=dot_product(wrmt(1:nr,is),fr1(1:nr)) t2=dot_product(wrmt(1:nr,is),fr2(1:nr)) dhloa(lm2,io,l3,ilo,ias)=cmplx(t1,t2,8) end do end do do l2=lmaxi+1,lmaxo do m2=-l2,l2 lm2=lm2+1 i=npi+lm2 do ir=iro,nr t1=lofr(ir,1,ilo,ias)*apwfr(ir,1,io,l3,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxo end do t1=dot_product(wrmt(iro:nr,is),fr1(iro:nr)) t2=dot_product(wrmt(iro:nr,is),fr2(iro:nr)) dhloa(lm2,io,l3,ilo,ias)=cmplx(t1,t2,8) end do end do end do end do end do !-----------------------------------------------! ! local-orbital-local-orbital integrals ! !-----------------------------------------------! do ilo=1,nlorb(is) l1=lorbl(ilo,is) do jlo=1,nlorb(is) l3=lorbl(jlo,is) lm2=0 do l2=0,lmaxi do m2=-l2,l2 lm2=lm2+1 i=lm2 do ir=1,nri t1=lofr(ir,1,ilo,ias)*lofr(ir,1,jlo,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxi end do do ir=iro,nr t1=lofr(ir,1,ilo,ias)*lofr(ir,1,jlo,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxo end do t1=dot_product(wrmt(1:nr,is),fr1(1:nr)) t2=dot_product(wrmt(1:nr,is),fr2(1:nr)) dhlolo(lm2,jlo,ilo,ias)=cmplx(t1,t2,8) end do end do do l2=lmaxi+1,lmaxo do m2=-l2,l2 lm2=lm2+1 i=npi+lm2 do ir=iro,nr t1=lofr(ir,1,ilo,ias)*lofr(ir,1,jlo,ias) fr1(ir)=t1*dble(dvsmt(i,ias)) fr2(ir)=t1*aimag(dvsmt(i,ias)) i=i+lmmaxo end do t1=dot_product(wrmt(iro:nr,is),fr1(iro:nr)) t2=dot_product(wrmt(iro:nr,is),fr2(iro:nr)) dhlolo(lm2,jlo,ilo,ias)=cmplx(t1,t2,8) end do end do end do end do ! end loops over atoms and species end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dolpistl.f900000644000000000000000000000013013543334736015000 xustar0029 mtime=1569569246.34364085 30 atime=1569569242.628643223 29 ctime=1569569246.34364085 elk-6.3.2/src/dolpistl.f900000644002504400250440000000134013543334736017047 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dolpistl(ngp,ngpq,igpig,igpqig,ld,od) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ngp,ngpq integer, intent(in) :: igpig(ngkmax),igpqig(ngkmax) integer, intent(in) :: ld complex(8), intent(inout) :: od(ld,*) ! local variables integer i1,i2,i3,j1,j2,j3 integer ig,i,j do j=1,ngp ig=igpig(j) j1=ivg(1,ig); j2=ivg(2,ig); j3=ivg(3,ig) do i=1,ngpq ig=igpqig(i) i1=ivg(1,ig)-j1; i2=ivg(2,ig)-j2; i3=ivg(3,ig)-j3 od(i,j)=od(i,j)+dcfunig(ivgig(i1,i2,i3)) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendwfsv.f900000644000000000000000000000013113543334736014772 xustar0030 mtime=1569569246.347640848 29 atime=1569569242.63364322 30 ctime=1569569246.347640848 elk-6.3.2/src/gendwfsv.f900000644002504400250440000001252713543334736017051 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendwfsv(tsh,tgp,nst,idx,ngp,ngpq,igpqig,apwalmq,dapwalm,evecfv, & devecfv,evecsv,devecsv,dwfmt,ld,dwfir) use modmain implicit none ! arguments logical, intent(in) :: tsh,tgp integer, intent(in) :: nst,idx(nst) integer, intent(in) :: ngp(nspnfv),ngpq(nspnfv) integer, intent(in) :: igpqig(ngkmax,nspnfv) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw,nspnfv) complex(8), intent(in) :: evecfv(nmatmax,nstfv,nspnfv) complex(8), intent(in) :: devecfv(nmatmax,nstfv,nspnfv) complex(8), intent(in) :: evecsv(nstsv,nstsv),devecsv(nstsv,nstsv) complex(8), intent(out) :: dwfmt(npcmtmax,natmtot,nspinor,nst) integer, intent(in) :: ld complex(8), intent(out) :: dwfir(ld,nspinor,nst) ! local variables integer ist,ispn,jspn integer is,ia,ias,nrc,nrci integer npc,igp,ifg,i,j,k real(8) t1 complex(8) z1 ! automatic arrays logical done(nstfv),ddone(nstfv) ! allocatable arrays complex(8), allocatable :: wfmt1(:,:),wfmt2(:),dwfmt1(:,:) !---------------------------------------------! ! muffin-tin wavefunction derivatives ! !---------------------------------------------! if (tevecsv) then allocate(wfmt1(npcmtmax,nstfv),dwfmt1(npcmtmax,nstfv)) end if if (.not.tsh) allocate(wfmt2(npcmtmax)) do is=1,nspecies nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ia=1,natoms(is) ias=idxas(ia,is) done(:)=.false. do j=1,nst k=idx(j) if (tevecsv) then i=0 do ispn=1,nspinor jspn=jspnfv(ispn) dwfmt(1:npc,ias,ispn,j)=0.d0 do ist=1,nstfv i=i+1 z1=devecsv(i,k) !***** check if tq0 is needed here if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (.not.done(ist)) then if (tsh) then call wavefmt(lradstp,ias,ngp(jspn),apwalmq(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt1(:,ist)) else call wavefmt(lradstp,ias,ngp(jspn),apwalmq(:,:,:,ias,jspn), & evecfv(:,ist,jspn),wfmt2) call zbsht(nrc,nrci,wfmt2,wfmt1(:,ist)) end if done(ist)=.true. end if call zaxpy(npc,z1,wfmt1(:,ist),1,dwfmt(:,ias,ispn,j),1) end if z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (.not.ddone(ist)) then if (tsh) then call dwavefmt(lradstp,ias,ngp(jspn),ngpq(jspn), & apwalmq(:,:,:,:,jspn),dapwalm(:,:,:,jspn), & evecfv(:,ist,jspn),devecfv(:,ist,jspn),dwfmt1(:,ist)) else call dwavefmt(lradstp,ias,ngp(jspn),ngpq(jspn), & apwalmq(:,:,:,:,jspn),dapwalm(:,:,:,jspn), & evecfv(:,ist,jspn),devecfv(:,ist,jspn),wfmt2) call zbsht(nrc,nrci,wfmt2,dwfmt1(:,ist)) end if ddone(ist)=.true. end if call zaxpy(npc,z1,dwfmt1(:,ist),1,dwfmt(:,ias,ispn,j),1) end if end do end do else if (tsh) then call dwavefmt(lradstp,ias,ngp,ngpq,apwalmq,dapwalm,evecfv(:,k,1), & devecfv(:,k,1),dwfmt(:,ias,1,j)) else call dwavefmt(lradstp,ias,ngp,ngpq,apwalmq,dapwalm,evecfv(:,k,1), & devecfv(:,k,1),wfmt2) call zbsht(nrc,nrci,wfmt2,dwfmt(:,ias,1,j)) end if end if end do end do end do if (tevecsv) deallocate(wfmt1,dwfmt1) if (.not.tsh) deallocate(wfmt2) !-----------------------------------------------! ! interstitial wavefunction derivatives ! !-----------------------------------------------! t1=1.d0/sqrt(omega) do j=1,nst k=idx(j) dwfir(:,:,j)=0.d0 if (tevecsv) then i=0 do ispn=1,nspinor jspn=jspnfv(ispn) do ist=1,nstfv i=i+1 z1=devecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (tgp) then do igp=1,ngp(jspn) dwfir(igp,ispn,j)=dwfir(igp,ispn,j)+z1*evecfv(igp,ist,jspn) end do else z1=t1*z1 do igp=1,ngp(jspn) ifg=igfft(igpqig(igp,jspn)) dwfir(ifg,ispn,j)=dwfir(ifg,ispn,j)+z1*evecfv(igp,ist,jspn) end do end if end if z1=evecsv(i,k) if (abs(dble(z1))+abs(aimag(z1)).gt.epsocc) then if (tgp) then do igp=1,ngpq(jspn) dwfir(igp,ispn,j)=dwfir(igp,ispn,j)+z1*devecfv(igp,ist,jspn) end do else z1=t1*z1 do igp=1,ngpq(jspn) ifg=igfft(igpqig(igp,jspn)) dwfir(ifg,ispn,j)=dwfir(ifg,ispn,j)+z1*devecfv(igp,ist,jspn) end do end if end if end do end do else if (tgp) then do igp=1,ngpq(1) dwfir(igp,1,j)=devecfv(igp,k,1) end do else do igp=1,ngpq(1) ifg=igfft(igpqig(igp,1)) dwfir(ifg,1,j)=t1*devecfv(igp,k,1) end do end if end if if (.not.tgp) then do ispn=1,nspinor call zfftifc(3,ngridg,1,dwfir(:,ispn,j)) end do end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dforcek.f900000644000000000000000000000013213543334736014565 xustar0030 mtime=1569569246.352640844 30 atime=1569569242.638643217 30 ctime=1569569246.352640844 elk-6.3.2/src/dforcek.f900000644002504400250440000002424613543334736016644 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dforcek(ik,dyn) use modmain use modphonon use modpw implicit none ! arguments integer, intent(in) :: ik complex(8), intent(inout) :: dyn(3,natmtot) ! local variables integer ispn0,ispn1,ispn,jspn integer n,nq,nm,nmq,nm2 integer is,ias,ist,jst,jk integer iv(3),ig,i,j,k,l real(8) t1 complex(8) z1,z2,dt1,dz1,dz2 ! allocatable arrays integer, allocatable :: ijg(:,:),ijgq(:,:) real(8), allocatable :: dp(:,:),dpq(:,:),evalfv(:,:) complex(8), allocatable :: apwalm(:,:,:,:),apwalmq(:,:,:,:),dapwalm(:,:,:) complex(8), allocatable :: evecfv(:,:,:),devecfv(:,:,:) complex(8), allocatable :: evecsv(:,:),devecsv(:,:) complex(8), allocatable :: h(:),o(:),dlh(:),dlo(:) complex(8), allocatable :: hq(:,:),oq(:,:),dh(:,:),od(:,:) complex(8), allocatable :: dlhq(:,:),dloq(:,:),ddlh(:,:),ddlo(:,:) complex(8), allocatable :: vh(:),vo(:),dvh(:),dvo(:) complex(8), allocatable :: ffv(:,:),dffv(:,:),y(:),dy(:) ! external functions complex(8) zdotc external zdotc nm2=nmatmax**2 ! allocate local arrays allocate(ijg(nmatmax,nmatmax),ijgq(nmatmax,nmatmax)) allocate(dp(nmatmax,nmatmax),dpq(nmatmax,nmatmax)) allocate(evalfv(nstfv,nspnfv)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(dapwalm(ngkmax,apwordmax,lmmaxapw)) allocate(evecfv(nmatmax,nstfv,nspnfv)) allocate(devecfv(nmatmax,nstfv,nspnfv)) allocate(h(nm2),o(nm2),dlh(nm2),dlo(nm2)) allocate(hq(nmatmax,nmatmax),oq(nmatmax,nmatmax)) allocate(dh(nmatmax,nmatmax),od(nmatmax,nmatmax)) allocate(dlhq(nmatmax,nmatmax),dloq(nmatmax,nmatmax)) allocate(ddlh(nmatmax,nmatmax),ddlo(nmatmax,nmatmax)) allocate(vh(nmatmax),vo(nmatmax),dvh(nmatmax),dvo(nmatmax)) allocate(ffv(nstfv,nstfv),dffv(nstfv,nstfv),y(nstfv),dy(nstfv)) ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! get the eigenvalues/vectors from file call getevalfv(filext,0,vkl(:,ik),evalfv) call getevecfv(filext,0,vkl(:,ik),vgkl(:,:,:,ik),evecfv) ! get the eigenvalue/vector derivatives from file call getdevecfv(ik,iqph,isph,iaph,ipph,devecfv) if (tevecsv) then allocate(evecsv(nstsv,nstsv),devecsv(nstsv,nstsv)) call getevecsv(filext,0,vkl(:,ik),evecsv) call getdevecsv(ik,iqph,isph,iaph,ipph,devecsv) end if ! loop over first-variational spin components do jspn=1,nspnfv if (spinsprl) then ispn0=jspn; ispn1=jspn else ispn0=1; ispn1=nspinor end if n=ngk(jspn,ik) nq=ngkq(jspn,ik) nm=n+nlotot nmq=nq+nlotot do j=1,n do i=1,n iv(:)=ivg(:,igkig(i,jspn,ik))-ivg(:,igkig(j,jspn,ik)) iv(:)=modulo(iv(:)-intgv(1,:),ngridg(:))+intgv(1,:) ijg(i,j)=ivgig(iv(1),iv(2),iv(3)) dp(i,j)=0.5d0*dot_product(vgkc(:,i,jspn,ik),vgkc(:,j,jspn,ik)) end do end do do j=1,n do i=1,nq iv(:)=ivg(:,igkqig(i,jspn,ik))-ivg(:,igkig(j,jspn,ik)) iv(:)=modulo(iv(:)-intgv(1,:),ngridg(:))+intgv(1,:) ijgq(i,j)=ivgig(iv(1),iv(2),iv(3)) dpq(i,j)=0.5d0*dot_product(vgkqc(:,i,jspn,ik),vgkc(:,j,jspn,ik)) end do end do ! find the matching coefficients call match(n,vgkc(:,:,jspn,ik),gkc(:,jspn,ik),sfacgk(:,:,jspn,ik),apwalm) call match(nq,vgkqc(:,:,jspn,ik),gkqc(:,jspn,ik),sfacgkq(:,:,jspn,ik), & apwalmq) ! find the matching coefficient derivatives call dmatch(iasph,ipph,n,vgkc(:,:,jspn,ik),apwalm,dapwalm) ! loop over species and atoms do ias=1,natmtot is=idxis(ias) ! Hamiltonian and overlap matrices h(:)=0.d0 call hmlaa(.false.,ias,n,apwalm(:,:,:,ias),nm,h) call hmlalo(ias,n,apwalm(:,:,:,ias),nm,h) o(:)=0.d0 call olpaa(.false.,ias,n,apwalm(:,:,:,ias),nm,o) call olpalo(ias,n,apwalm(:,:,:,ias),nm,o) hq(:,:)=0.d0 call hmlaaq(ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,hq) call hmlaloq(ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,hq) oq(:,:)=0.d0 call olpaaq(ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,oq) call olpaloq(ias,n,nq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),nmatmax,oq) ! Hamiltonian and overlap derivatives dh(:,:)=0.d0 call dhmlaa(ias,n,n,apwalm(:,:,:,ias),apwalm(:,:,:,ias),dapwalm,dapwalm, & nmatmax,dh) call dhmlalo(ias,n,n,apwalm(:,:,:,ias),apwalm(:,:,:,ias),dapwalm,dapwalm, & nmatmax,dh) od(:,:)=0.d0 call dolpaa(ias,n,n,apwalm(:,:,:,ias),apwalm(:,:,:,ias),dapwalm,dapwalm, & nmatmax,od) call dolpalo(ias,n,n,dapwalm,dapwalm,nmatmax,od) ! loop over Cartesian directions do l=1,3 ! APW-APW contribution do j=1,n k=(j-1)*nm do i=1,j k=k+1 ig=ijg(i,j) t1=vgc(l,ig) z1=-ffacg(ig,is)*conjg(sfacg(ig,ias)) z2=t1*(dp(i,j)*z1+h(k)) dlh(k)=cmplx(-aimag(z2),dble(z2),8) z2=t1*(z1+o(k)) dlo(k)=cmplx(-aimag(z2),dble(z2),8) end do end do do j=n+1,nm k=(j-1)*nm ! APW-local-orbital contribution do i=1,n k=k+1 t1=vgkc(l,i,jspn,ik) z1=t1*h(k) dlh(k)=cmplx(-aimag(z1),dble(z1),8) z1=t1*o(k) dlo(k)=cmplx(-aimag(z1),dble(z1),8) end do ! zero the local-orbital-local-orbital contribution do i=n+1,j k=k+1 dlh(k)=0.d0 dlo(k)=0.d0 end do end do ! non-square H/O(G+k+q,G'+k) matrices ! APW-APW contribution do j=1,n do i=1,nq ig=ijgq(i,j) t1=vgqc(l,ig) z1=-ffacgq(ig,is)*conjg(sfacgq(ig,ias)) z2=t1*(dpq(i,j)*z1+hq(i,j)) dlhq(i,j)=cmplx(-aimag(z2),dble(z2),8) z2=t1*(z1+oq(i,j)) dloq(i,j)=cmplx(-aimag(z2),dble(z2),8) end do ! local-orbital-APW derivative t1=-vgkc(l,j,jspn,ik) do i=nq+1,nmq z1=t1*hq(i,j) dlhq(i,j)=cmplx(-aimag(z1),dble(z1),8) z1=t1*oq(i,j) dloq(i,j)=cmplx(-aimag(z1),dble(z1),8) end do end do do j=n+1,nm ! APW-local-orbital contribution do i=1,nq t1=vgkqc(l,i,jspn,ik) z1=t1*hq(i,j) dlhq(i,j)=cmplx(-aimag(z1),dble(z1),8) z1=t1*oq(i,j) dloq(i,j)=cmplx(-aimag(z1),dble(z1),8) end do ! zero the local-orbital-local-orbital contribution do i=nq+1,nmq dlhq(i,j)=0.d0 dloq(i,j)=0.d0 end do end do ! APW-APW derivative do j=1,n do i=1,n ig=ijg(i,j) t1=vgc(l,ig) if (ias.eq.iasph) then z1=-ffacg(ig,is)*conjg(sfacg(ig,ias)) dz1=vgc(ipph,ig)*cmplx(aimag(z1),-dble(z1),8) else dz1=0.d0 end if z2=t1*(dp(i,j)*dz1+dh(i,j)) ddlh(i,j)=cmplx(-aimag(z2),dble(z2),8) z2=t1*(dz1+od(i,j)) ddlo(i,j)=cmplx(-aimag(z2),dble(z2),8) end do ! local-orbital-APW derivative t1=-vgkc(l,j,jspn,ik) do i=n+1,nm z1=t1*dh(i,j) ddlh(i,j)=cmplx(-aimag(z1),dble(z1),8) z1=t1*od(i,j) ddlo(i,j)=cmplx(-aimag(z1),dble(z1),8) end do end do ! APW-local-orbital derivative do j=n+1,nm do i=1,n t1=vgkc(l,i,jspn,ik) z1=t1*dh(i,j) ddlh(i,j)=cmplx(-aimag(z1),dble(z1),8) z1=t1*od(i,j) ddlo(i,j)=cmplx(-aimag(z1),dble(z1),8) end do ! zero the local-orbital-local-orbital derivative do i=n+1,nm ddlh(i,j)=0.d0 ddlo(i,j)=0.d0 end do end do if (tphq0) then ! compute the force matrix elements in the first-variational basis do jst=1,nstfv call zhemv('U',nm,zone,dlh,nm,evecfv(:,jst,jspn),1,zzero,vh,1) call zhemv('U',nm,zone,dlo,nm,evecfv(:,jst,jspn),1,zzero,vo,1) t1=evalfv(jst,jspn) do ist=1,nstfv z1=zdotc(nm,evecfv(:,ist,jspn),1,vh,1) z2=zdotc(nm,evecfv(:,ist,jspn),1,vo,1) ffv(ist,jst)=z1-t1*z2 end do end do end if ! compute the force derivative matrix elements in the first-variational basis dffv(:,:)=0.d0 do jst=1,nstfv call zhemv('U',nm,zone,dlo,nm,evecfv(:,jst,jspn),1,zzero,vo,1) call zgemv('N',nm,nm,zone,ddlh,nmatmax,evecfv(:,jst,jspn),1,zzero,dvh,1) call zgemv('N',nm,nm,zone,ddlo,nmatmax,evecfv(:,jst,jspn),1,zzero,dvo,1) t1=evalfv(jst,jspn) dt1=devalfv(jst,jspn,ik) do ist=1,nstfv z2=zdotc(nm,evecfv(:,ist,jspn),1,vo,1) dz1=zdotc(nm,evecfv(:,ist,jspn),1,dvh,1) dz2=zdotc(nm,evecfv(:,ist,jspn),1,dvo,1) dffv(ist,jst)=dffv(ist,jst)+dz1-dt1*z2-t1*dz2 end do call zgemv('C',nmq,nm,zone,dlhq,nmatmax,devecfv(:,jst,jspn),1,zzero, & dvh,1) call zgemv('C',nmq,nm,zone,dloq,nmatmax,devecfv(:,jst,jspn),1,zzero, & dvo,1) do ist=1,nstfv dz1=2.d0*zdotc(nm,evecfv(:,ist,jspn),1,dvh,1) dz2=2.d0*zdotc(nm,evecfv(:,ist,jspn),1,dvo,1) dffv(ist,jst)=dffv(ist,jst)+dz1-t1*dz2 end do end do z1=0.d0 if (tevecsv) then ! spin-polarised case do j=1,nstsv do ispn=ispn0,ispn1 i=(ispn-1)*nstfv+1 call zgemv('N',nstfv,nstfv,zone,ffv,nstfv,evecsv(i,j),1,zzero,y,1) call zgemv('N',nstfv,nstfv,zone,dffv,nstfv,evecsv(i,j),1,zzero,dy,1) call zgemv('N',nstfv,nstfv,zone,ffv,nstfv,devecsv(i,j),1,zone,dy,1) dz1=zdotc(nstfv,evecsv(i,j),1,dy,1) dz1=dz1+zdotc(nstfv,devecsv(i,j),1,y,1) z1=z1+occsv(j,jk)*dz1 !******** doccsv end do end do else ! spin-unpolarised case do j=1,nstsv z1=z1+occsv(j,jk)*dffv(j,j) if (tphq0) then z1=z1+doccsv(j,ik)*dble(ffv(j,j)) end if end do end if !$OMP CRITICAL(dforcek_) dyn(l,ias)=dyn(l,ias)-wkptnr*z1 !$OMP END CRITICAL(dforcek_) ! end loop over Cartesian components end do ! end loop over atoms and species end do ! end loop over first-variational spins end do deallocate(ijg,ijgq,dp,dpq,evalfv) deallocate(apwalm,apwalmq,dapwalm) deallocate(evecfv,devecfv) if (tevecsv) deallocate(evecsv,devecsv) deallocate(h,o,dlh,dlo,hq,oq,dh,od) deallocate(dlhq,dloq,ddlh,ddlo) deallocate(vh,vo,dvh,dvo,ffv,dffv,y,dy) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dynqtor.f900000644000000000000000000000013213543334736014650 xustar0030 mtime=1569569246.357640841 30 atime=1569569242.644643213 30 ctime=1569569246.357640841 elk-6.3.2/src/dynqtor.f900000644002504400250440000000436013543334736016722 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dynqtor(dynq,dynr) use modmain use modphonon implicit none ! arguments complex(8), intent(in) :: dynq(nbph,nbph,nqpt) complex(8), intent(out) :: dynr(nbph,nbph,nqptnr) ! local variables integer ir,iq,i,j,n integer isym,lspl,intr(2,3) integer i1,i2,i3,j1,j2,j3 real(8) v1(3),v2(3),v3(3) real(8) s(3,3),t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: dyns(:,:) allocate(dyns(nbph,nbph)) intr(2,:)=ngridq(:)/2 intr(1,:)=intr(2,:)-ngridq(:)+1 dynr(:,:,:)=0.d0 ! loop over q-vectors do j1=0,ngridq(1)-1 v1(1)=dble(j1)/dble(ngridq(1)) do j2=0,ngridq(2)-1 v1(2)=dble(j2)/dble(ngridq(2)) do j3=0,ngridq(3)-1 v1(3)=dble(j3)/dble(ngridq(3)) iq=iqmap(j1,j2,j3) ! map v1 to the first Brillouin zone v2(:)=v1(:) call vecfbz(epslat,bvec,v2) ! rotate and add the dynamical matrix of the reduced q-point with all symmetries n=0 dyns(:,:)=0.d0 do isym=1,nsymcrys lspl=lsplsymc(isym) s(:,:)=dble(symlat(:,:,lspl)) call r3mtv(s,vql(:,iq),v3) call vecfbz(epslat,bvec,v3) t1=abs(v2(1)-v3(1))+abs(v2(2)-v3(2))+abs(v2(3)-v3(3)) if (t1.lt.epslat) then call dynsymapp(isym,vql(:,iq),dynq(:,:,iq),dyns) n=n+1 end if end do if (n.eq.0) then write(*,*) write(*,'("Error(dynqtor): vector ",3G18.10)') v1 write(*,'(" cannot be mapped to reduced q-point set")') write(*,*) stop end if t1=1.d0/dble(n) dyns(:,:)=t1*dyns(:,:) ! loop over R-vectors ir=0 do i3=intr(1,3),intr(2,3) do i2=intr(1,2),intr(2,2) do i1=intr(1,1),intr(2,1) ir=ir+1 t1=twopi*(v1(1)*dble(i1)+v1(2)*dble(i2)+v1(3)*dble(i3)) z1=cmplx(cos(t1),sin(t1),8) do i=1,nbph do j=1,nbph dynr(i,j,ir)=dynr(i,j,ir)+z1*dyns(i,j) end do end do end do end do end do end do end do end do t1=1.d0/dble(nqptnr) dynr(:,:,:)=t1*dynr(:,:,:) deallocate(dyns) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dynevs.f900000644000000000000000000000013213543334736014460 xustar0030 mtime=1569569246.361640839 30 atime=1569569242.649643209 30 ctime=1569569246.361640839 elk-6.3.2/src/dynevs.f900000644002504400250440000000162413543334736016532 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dynevs(ev,a,w) use modmain use modphonon implicit none ! arguments complex(8), intent(in) :: ev(nbph,nbph) complex(8), intent(in) :: a(nbph,nbph) real(8), intent(out) :: w(nbph) ! local variables integer i,j,k real(8) t1,t2 complex(8) z1 ! automatic arrays real(8) wt(nbph) ! external functions complex(8) zdotc external zdotc ! find the eigenvalues and eigenvectors of the matrix a call eveqnz(nbph,nbph,a,w) ! reorder eigenvalues so that the eigenvectors maximally overlap with ev wt(:)=w(:) do i=1,nbph j=1 t1=0.d0 do k=1,nbph z1=zdotc(nbph,ev(:,i),1,a(:,k),1) t2=dble(z1)**2+aimag(z1)**2 if (t2.gt.t1) then j=k t1=t2 end if end do w(i)=wt(j) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/phonon.f900000644000000000000000000000013213543334736014451 xustar0030 mtime=1569569246.366640835 30 atime=1569569242.654643206 30 ctime=1569569246.366640835 elk-6.3.2/src/phonon.f900000644002504400250440000002326313543334736016526 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phonon use modmain use modphonon use modpw use modmpi use modomp implicit none ! local variables integer ik,jk,iv(3),jspn,idm integer is,ia,ias,ip integer nwork,n,lp,nthd ! use Broyden mixing only integer, parameter :: mtype=3 real(8) ddv,a,b character(256) fext ! allocatable arrays real(8), allocatable :: evalfv(:,:) real(8), allocatable :: v(:),work(:) complex(8), allocatable :: dyn(:,:) complex(8), allocatable :: apwalm(:,:,:,:,:),apwalmq(:,:,:,:,:) complex(8), allocatable :: dapwalm(:,:,:,:),dapwalmq(:,:,:,:) complex(8), allocatable :: evecfv(:,:,:),devecfv(:,:,:) complex(8), allocatable :: evecsv(:,:),devecsv(:,:) ! initialise universal variables call init0 call init1 call init2 call init4 ! check k-point grid is commensurate with q-point grid iv(:)=mod(ngridk(:),ngridq(:)) if ((iv(1).ne.0).or.(iv(2).ne.0).or.(iv(3).ne.0)) then write(*,*) write(*,'("Error(phonon): k-point grid incommensurate with q-point grid")') write(*,'(" ngridk : ",3I6)') ngridk write(*,'(" ngridq : ",3I6)') ngridq write(*,*) stop end if if (spinpol) then write(*,*) write(*,'("Error(phonon): spin-polarised phonons not yet available")') write(*,*) stop end if ! check spin-spiral de-phasing is not used if (ssdph) then write(*,*) write(*,'("Error(phonon): ssdph should be .false. for DFPT phonons")') write(*,*) stop end if ! check for zero atoms if (natmtot.eq.0) return ! read in the density and potentials call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! generate the spin-orbit coupling radial functions call gensocfr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! size of mixing vector (complex array) n=2*(npmtmax*natmtot+ngtot) if (spinpol) n=n+2*(npcmtmax*natmtot+ngtot)*ndmag ! allocate mixing array allocate(v(n)) ! determine the size of the mixer work array nwork=-1 call mixerifc(mtype,n,v,ddv,nwork,v) allocate(work(nwork)) ! allocate dynamical matrix column allocate(dyn(3,natmtot)) ! begin new phonon task 10 continue call dyntask(80,fext) ! if nothing more to do then return if (iqph.eq.0) return if (mp_mpi) then write(*,'("Info(phonon): working on ",A)') 'DYN'//trim(fext) ! open RMSDDVS.OUT open(65,file='RMSDDVS'//trim(fext),form='FORMATTED') end if ! zero the dynamical matrix row dyn(:,:)=0.d0 ! check to see if mass is considered infinite if (spmass(isph).le.0.d0) goto 20 ! generate the G+k+q-vectors and related quantities call gengkqvec(iqph) ! generate the G+q-vectors and related quantities call gengqvec(iqph) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.false.,iqph,ngvec,gqc,gclgq) ! generate the characteristic function derivative call gendcfun ! generate the gradient of the Kohn-Sham potential call gengvsmt ! initialise the potential derivative drhomt(:,:)=0.d0 drhoir(:)=0.d0 if (spinpol) then dmagmt(:,:,:)=0.d0 dmagir(:,:)=0.d0 end if call dpotks call gendvsig ! initialise the mixer iscl=0 call phmixpack(.true.,n,v) call mixerifc(mtype,n,v,ddv,nwork,work) ! initialise the Fermi energy and occupancy derivatives defermi=0.d0 doccsv(:,:)=0.d0 ! begin the self-consistent loop do iscl=1,maxscl ! compute the Hamiltonian radial integral derivatives call dhmlrad ! zero the density and magnetisation derivatives drhomt(:,:)=0.d0 drhoir(:)=0.d0 if (spinpol) then dmagmt(:,:,:)=0.d0 dmagir(:,:)=0.d0 end if ! parallel loop over k-points call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evalfv,apwalm,apwalmq,dapwalm,dapwalmq) & !$OMP PRIVATE(evecfv,devecfv,evecsv,devecsv,jk,jspn) & !$OMP NUM_THREADS(nthd) allocate(evalfv(nstfv,nspnfv)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)) allocate(dapwalm(ngkmax,apwordmax,lmmaxapw,nspnfv)) allocate(dapwalmq(ngkmax,apwordmax,lmmaxapw,nspnfv)) allocate(evecfv(nmatmax,nstfv,nspnfv),devecfv(nmatmax,nstfv,nspnfv)) allocate(evecsv(nstsv,nstsv),devecsv(nstsv,nstsv)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! compute the matching coefficients and derivatives do jspn=1,nspnfv call match(ngk(jspn,ik),vgkc(:,:,jspn,ik),gkc(:,jspn,ik), & sfacgk(:,:,jspn,ik),apwalm(:,:,:,:,jspn)) call dmatch(iasph,ipph,ngk(jspn,ik),vgkc(:,:,jspn,ik), & apwalm(:,:,:,:,jspn),dapwalm(:,:,:,jspn)) call match(ngkq(jspn,ik),vgkqc(:,:,jspn,ik),gkqc(:,jspn,ik), & sfacgkq(:,:,jspn,ik),apwalmq(:,:,:,:,jspn)) call dmatch(iasph,ipph,ngkq(jspn,ik),vgkqc(:,:,jspn,ik), & apwalmq(:,:,:,:,jspn),dapwalmq(:,:,:,jspn)) end do ! get the first- and second-variational eigenvalues and eigenvectors from file call getevalfv(filext,0,vkl(:,ik),evalfv) call getevecfv(filext,0,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,0,vkl(:,ik),evecsv) ! solve the first-variational eigenvalue equation derivative do jspn=1,nspnfv call deveqnfv(ngk(jspn,ik),ngkq(jspn,ik),igkig(:,jspn,ik), & igkqig(:,jspn,ik),vgkc(:,:,jspn,ik),vgkqc(:,:,jspn,ik),evalfv(:,jspn), & apwalm(:,:,:,:,jspn),apwalmq(:,:,:,:,jspn),dapwalm(:,:,:,jspn), & dapwalmq(:,:,:,jspn),evecfv(:,:,jspn),devalfv(:,jspn,ik), & devecfv(:,:,jspn)) end do if (spinsprl) then ! solve the spin-spiral second-variational eigenvalue equation derivative ! call deveqnss(ngk(:,ik),ngkq(:,ik),igkig(:,:,ik),igkqig(:,:,ik),apwalm, & ! dapwalm,devalfv,evecfv,evecfvq,devecfv,evalsv(:,jk),evecsv,devecsv) else ! solve the second-variational eigenvalue equation derivative ! call deveqnsv(ngk(1,ik),ngkq(1,ik),igkig(:,1,ik),igkqig(:,1,ik), & ! vgkqc(:,:,1,ik),apwalm,dapwalm,devalfv,evecfv,evecfvq,devecfv, & ! evalsv(:,jk),evecsv,devecsv) end if !******* devalsv(:,ik)=devalfv(:,1,ik) !******* ! write the eigenvalue/vector derivatives to file call putdevecfv(ik,devecfv) if (tevecsv) call putdevecsv(ik,devecsv) ! add to the density and magnetisation derivatives call drhomagk(ngk(:,ik),ngkq(:,ik),igkig(:,:,ik),igkqig(:,:,ik), & occsv(:,jk),doccsv(:,ik),apwalm,apwalmq,dapwalm,evecfv,devecfv,evecsv, & devecsv) end do !$OMP END DO deallocate(evalfv,apwalm,apwalmq,dapwalm,dapwalmq) deallocate(evecfv,devecfv,evecsv,devecsv) !$OMP END PARALLEL call freethd(nthd) ! broadcast eigenvalue derivative arrays to every process n=nstfv*nspnfv do ik=1,nkptnr lp=mod(ik-1,np_mpi) call mpi_bcast(devalfv(:,:,ik),n,mpi_double_precision,lp,mpicom,ierror) call mpi_bcast(devalsv(:,ik),nstsv,mpi_double_precision,lp,mpicom,ierror) end do ! convert to spherical harmonic representation call drhomagsh ! convert from a coarse to a fine radial mesh call zfmtctof(drhomt) do idm=1,ndmag call zfmtctof(dmagmt(:,:,idm)) end do ! add densities from each process and redistribute if (np_mpi.gt.1) then n=npmtmax*natmtot call mpi_allreduce(mpi_in_place,drhomt,n,mpi_double_complex,mpi_sum, & mpicom,ierror) call mpi_allreduce(mpi_in_place,drhoir,ngtot,mpi_double_complex,mpi_sum, & mpicom,ierror) if (spinpol) then n=npmtmax*natmtot*ndmag call mpi_allreduce(mpi_in_place,dmagmt,n,mpi_double_complex,mpi_sum, & mpicom,ierror) n=ngtot*ndmag call mpi_allreduce(mpi_in_place,dmagir,n,mpi_double_complex,mpi_sum, & mpicom,ierror) end if end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! add gradient contribution to density derivative call gradrhomt ! compute the Kohn-Sham potential derivative call dpotks ! pack interstitial and muffin-tin potential and field into one array call phmixpack(.true.,n,v) ! mix in the old potential and field with the new call mixerifc(mtype,n,v,ddv,nwork,work) ! make sure every MPI process has a numerically identical potential if (np_mpi.gt.1) then call mpi_bcast(v,n,mpi_double_precision,0,mpicom,ierror) call mpi_bcast(ddv,1,mpi_double_precision,0,mpicom,ierror) end if ! unpack potential and field call phmixpack(.false.,n,v) if (mp_mpi) then write(65,'(G18.10)') ddv flush(65) end if ! check for convergence if (iscl.ge.2) then if (ddv.lt.epspot) goto 20 end if ! Fourier transform Kohn-Sham potential derivative to G+q-space call gendvsig ! compute the occupation number derivatives call doccupy ! end the self-consistent loop end do write(*,*) write(*,'("Warning(phonon): failed to reach self-consistency after ",I4,& &" loops")') maxscl 20 continue ! close the RMSDDVS.OUT file if (mp_mpi) close(65) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! generate the dynamical matrix row from force derivatives call dforce(dyn) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! write dynamical matrix row to file if (mp_mpi) then do ias=1,natmtot is=idxis(ias) ia=idxia(ias) do ip=1,3 a=dble(dyn(ip,ias)) b=aimag(dyn(ip,ias)) if (abs(a).lt.1.d-12) a=0.d0 if (abs(b).lt.1.d-12) b=0.d0 write(80,'(2G18.10," : is = ",I4,", ia = ",I4,", ip = ",I4)') a,b,is,ia,ip end do end do close(80) ! write the complex Kohn-Sham potential derivative to file call writedvs(fext) ! delete the non-essential files call phdelete end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) goto 10 end subroutine elk-6.3.2/src/PaxHeaders.21352/dynrtoq.f900000644000000000000000000000013213543334736014650 xustar0030 mtime=1569569246.371640832 30 atime=1569569242.659643203 30 ctime=1569569246.371640832 elk-6.3.2/src/dynrtoq.f900000644002504400250440000000172413543334736016723 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dynrtoq(vpl,dynr,dynp) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: vpl(3) complex(8), intent(in) :: dynr(nbph,nbph,nqptnr) complex(8), intent(out) :: dynp(nbph,nbph) ! local variables integer i1,i2,i3,ir,i,j real(8) t1 complex(8) z1 dynp(:,:)=0.d0 ! loop over R-vectors ir=0 do i3=ngridq(3)/2-ngridq(3)+1,ngridq(3)/2 do i2=ngridq(2)/2-ngridq(2)+1,ngridq(2)/2 do i1=ngridq(1)/2-ngridq(1)+1,ngridq(1)/2 ir=ir+1 t1=-twopi*(vpl(1)*dble(i1)+vpl(2)*dble(i2)+vpl(3)*dble(i3)) z1=cmplx(cos(t1),sin(t1),8) do i=1,nbph do j=1,nbph dynp(i,j)=dynp(i,j)+z1*dynr(i,j,ir) end do end do end do end do end do ! symmetrise the dynamical matrix call dynsym(vpl,dynp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlaaq.f900000644000000000000000000000013013543334736014411 xustar0029 mtime=1569569246.37564083 30 atime=1569569242.665643199 29 ctime=1569569246.37564083 elk-6.3.2/src/hmlaaq.f900000644002504400250440000000337713543334736016474 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmlaaq(ias,ngp,ngpq,apwalm,apwalmq,ld,hq) use modmain implicit none integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: hq(*) ! local variables integer is,lmo,io,jo,i integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3 real(8) t0 complex(8) z1 ! allocatable arrays complex(8), allocatable :: a(:,:),b(:,:) is=idxis(ias) lmo=lmoapw(is) allocate(a(lmo,ngpq),b(lmo,ngp)) t0=0.5d0*rmt(is)**2 i=0 lm1=0 do l1=0,lmaxapw do m1=-l1,l1 lm1=lm1+1 do io=1,apword(l1,is) i=i+1 b(i,:)=0.d0 lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do jo=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*haa(lm2,jo,l3,io,l1,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then call zaxpy(ngp,z1,apwalm(:,jo,lm3),1,b(i,1),lmo) end if end do end do end do ! kinetic surface contribution do jo=1,apword(l1,is) z1=t0*apwfr(nrmt(is),1,io,l1,ias)*apwdfr(jo,l1,ias) call zaxpy(ngp,z1,apwalm(:,jo,lm1),1,b(i,1),lmo) end do a(i,1:ngpq)=apwalmq(1:ngpq,io,lm1) end do end do end do call zmctm(lmo,ngpq,ngp,a,b,ld,hq) deallocate(a,b) return end subroutine elk-6.3.2/src/PaxHeaders.21352/mcmillan.f900000644000000000000000000000013213543334736014744 xustar0030 mtime=1569569246.379640827 30 atime=1569569242.670643196 30 ctime=1569569246.379640827 elk-6.3.2/src/mcmillan.f900000644002504400250440000000276313543334736017023 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, A. Sanna, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine mcmillan(w,a2f,lambda,wlog,wrms,tc) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: w(nwplot),a2f(nwplot) real(8), intent(out) :: lambda,wlog,wrms,tc ! local variables integer iw real(8) l1,l2,f1,f2,t1 ! allocatable arrays real(8), allocatable :: f(:) ! external functions real(8) splint external splint allocate(f(nwplot)) ! compute the total lambda do iw=1,nwplot if (w(iw).gt.1.d-8) then f(iw)=a2f(iw)/w(iw) else f(iw)=0.d0 end if end do t1=splint(nwplot,w,f) lambda=2.d0*t1 ! compute the logarithmic average frequency do iw=1,nwplot if (w(iw).gt.1.d-8) then f(iw)=a2f(iw)*log(w(iw))/w(iw) else f(iw)=0.d0 end if end do t1=splint(nwplot,w,f) t1=(2.d0/lambda)*t1 wlog=exp(t1) ! compute < w^2 >^(1/2) do iw=1,nwplot if (w(iw).gt.1.d-8) then f(iw)=a2f(iw)*w(iw) else f(iw)=0.d0 end if end do t1=splint(nwplot,w,f) t1=(2.d0/lambda)*t1 wrms=sqrt(abs(t1)) ! compute McMillan-Allen-Dynes superconducting critical temperature t1=(-1.04d0*(1.d0+lambda))/(lambda-mustar-0.62d0*lambda*mustar) tc=(wlog/(1.2d0*kboltz))*exp(t1) l1=2.46d0*(1.d0+3.8d0*mustar) l2=1.82d0*(1.d0+6.3d0*mustar)*(wrms/wlog) f1=(1.d0+(lambda/l1)**(3.d0/2.d0))**(1.d0/3.d0) f2=1.d0+(wrms/wlog-1.d0)*(lambda**2)/(lambda**2+l2**2) tc=tc*f1*f2 deallocate(f) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genephmat.f900000644000000000000000000000013213543334736015120 xustar0030 mtime=1569569246.384640824 30 atime=1569569242.675643193 30 ctime=1569569246.384640824 elk-6.3.2/src/genephmat.f900000644002504400250440000000774713543334736017206 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genephmat(iq,ik,de,a,dvmt,dvir,ephmat) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq,ik real(8), intent(in) :: de complex(8), intent(in) :: a(nbph,nbph) complex(8), intent(in) :: dvmt(npcmtmax,natmtot,nbph),dvir(ngtot,nbph) complex(8), intent(out) :: ephmat(nstsv,nstsv,nbph) ! local variables integer jk,jkq,isym,ld integer nst,nstq,ist,jst integer ispn,jspn,is,ias integer nrc,nrci,npc,i,j,l integer igp,igpq,ifg real(8) vpql(3) ! automatic arrays integer idx(nstsv),idxq(nstsv) integer ngp(nspnfv),ngpq(nspnfv) complex(8) x(nbph) ! allocatable arrays integer, allocatable :: igpig(:,:),igpqig(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgp(:,:,:) complex(8), allocatable :: wfmtq(:,:,:,:),wfgpq(:,:,:) complex(8), allocatable :: zfmt1(:),zfmt2(:) complex(8), allocatable :: wfir1(:),wfir2(:),z(:) ! external functions complex(8) zfmtinp,zdotc external zfmtinp,zdotc ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! k+q-vector in lattice coordinates vpql(:)=vkl(:,ik)+vql(:,iq) ! find reduced k-point index corresponding to k+q call findkpt(vpql,isym,jkq) ! index to states in energy window around Fermi energy nst=0 nstq=0 do ist=1,nstsv if (abs(evalsv(ist,jk)-efermi).lt.de) then nst=nst+1 idx(nst)=ist end if if (abs(evalsv(ist,jkq)-efermi).lt.de) then nstq=nstq+1 idxq(nstq)=ist end if end do ! generate the wavefunctions for all states at k and k+q allocate(igpig(ngkmax,nspnfv)) allocate(wfmt(npcmtmax,natmtot,nspinor,nst),wfgp(ngkmax,nspinor,nst)) call genwfsvp(.false.,.true.,nst,idx,ngridg,igfft,vkl(:,ik),ngp,igpig,wfmt, & ngkmax,wfgp) allocate(igpqig(ngkmax,nspnfv)) allocate(wfmtq(npcmtmax,natmtot,nspinor,nstq),wfgpq(ngkmax,nspinor,nstq)) call genwfsvp(.false.,.true.,nstq,idxq,ngridg,igfft,vpql,ngpq,igpqig,wfmtq, & ngkmax,wfgpq) ! zero the electron-phonon coupling matrix elements ephmat(:,:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! allocate(zfmt1(npcmtmax),zfmt2(npcmtmax)) do j=1,nst jst=idx(j) do i=1,nstq ist=idxq(i) x(:)=0.d0 do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) if (spinpol) then zfmt1(1:npc)=wfmtq(1:npc,ias,1,i)*conjg(wfmt(1:npc,ias,1,j)) & +wfmtq(1:npc,ias,2,i)*conjg(wfmt(1:npc,ias,2,j)) else zfmt1(1:npc)=wfmtq(1:npc,ias,1,i)*conjg(wfmt(1:npc,ias,1,j)) end if call zfsht(nrc,nrci,zfmt1,zfmt2) do l=1,nbph x(l)=x(l)+zfmtinp(nrc,nrci,wrcmt(:,is),zfmt2,dvmt(:,ias,l)) end do end do ephmat(ist,jst,:)=x(:) end do end do deallocate(zfmt1,zfmt2) !---------------------------! ! interstitial part ! !---------------------------! allocate(wfir1(ngtot),wfir2(ngtot),z(ngkmax)) do j=1,nst jst=idx(j) do ispn=1,nspinor jspn=jspnfv(ispn) ! Fourier transform wavefunction to real-space wfir1(:)=0.d0 do igp=1,ngp(jspn) ifg=igfft(igpig(igp,jspn)) wfir1(ifg)=wfgp(igp,ispn,j) end do call zfftifc(3,ngridg,1,wfir1) do l=1,nbph ! apply potential derivative to wavefunction wfir2(:)=dvir(:,l)*wfir1(:) ! Fourier transform to G+p+q-space call zfftifc(3,ngridg,-1,wfir2) do igpq=1,ngpq(jspn) ifg=igfft(igpqig(igpq,jspn)) z(igpq)=wfir2(ifg) end do do i=1,nstq ist=idxq(i) ! compute inner product ephmat(ist,jst,l)=ephmat(ist,jst,l)+zdotc(ngpq(jspn),wfgpq(:,ispn,i), & 1,z,1) end do end do end do end do deallocate(wfir1,wfir2,z) ! convert to phonon coordinates ld=nstsv**2 do i=1,nstq ist=idxq(i) do j=1,nst jst=idx(j) x(:)=ephmat(ist,jst,:) call zgemv('T',nbph,nbph,zone,a,nbph,x,1,zzero,ephmat(ist,jst,1),ld) end do end do deallocate(igpig,igpqig) deallocate(wfmt,wfgp,wfmtq,wfgpq) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dolpaa.f900000644000000000000000000000013113543334736014407 xustar0030 mtime=1569569246.388640821 29 atime=1569569242.68064319 30 ctime=1569569246.388640821 elk-6.3.2/src/dolpaa.f900000644002504400250440000000253013543334736016457 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dolpaa(ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,od) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: od(*) ! local variables integer is,lmo,io integer l,m,lm,i ! allocatable arrays complex(8), allocatable :: a(:,:),b(:,:) if (ias.ne.iasph) return is=idxis(ias) lmo=lmoapw(is) allocate(a(lmo,ngpq),b(lmo,ngp)) i=0 lm=0 do l=0,lmaxapw do m=-l,l lm=lm+1 do io=1,apword(l,is) i=i+1 a(i,1:ngpq)=apwalmq(1:ngpq,io,lm) b(i,1:ngp)=dapwalm(1:ngp,io,lm) end do end do end do call zmctm(lmo,ngpq,ngp,a,b,ld,od) i=0 lm=0 do l=0,lmaxapw do m=-l,l lm=lm+1 do io=1,apword(l,is) i=i+1 a(i,1:ngpq)=dapwalmq(1:ngpq,io,lm) b(i,1:ngp)=apwalm(1:ngp,io,lm) end do end do end do call zmctm(lmo,ngpq,ngp,a,b,ld,od) deallocate(a,b) return end subroutine elk-6.3.2/src/PaxHeaders.21352/hmlaloq.f900000644000000000000000000000013213543334736014605 xustar0030 mtime=1569569246.393640818 30 atime=1569569242.684643187 30 ctime=1569569246.393640818 elk-6.3.2/src/hmlaloq.f900000644002504400250440000000273613543334736016664 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine hmlaloq(ias,ngp,ngpq,apwalm,apwalmq,ld,hq) use modmain implicit none ! arguments integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: hq(ld,*) ! local variables integer is,io,ilo integer l1,l2,l3,m1,m2,m3 integer lm1,lm2,lm3,i,j complex(8) z1 is=idxis(ias) do ilo=1,nlorb(is) l1=lorbl(ilo,is) do m1=-l1,l1 lm1=idxlm(l1,m1) lm3=0 do l3=0,lmaxapw do m3=-l3,l3 lm3=lm3+1 do io=1,apword(l3,is) z1=0.d0 do l2=0,lmaxo if (mod(l1+l2+l3,2).eq.0) then do m2=-l2,l2 lm2=idxlm(l2,m2) z1=z1+gntyry(lm2,lm3,lm1)*hloa(lm2,io,l3,ilo,ias) end do end if end do if (abs(dble(z1))+abs(aimag(z1)).gt.1.d-14) then j=ngp+idxlo(lm1,ilo,ias) do i=1,ngpq hq(i,j)=hq(i,j)+conjg(z1*apwalmq(i,io,lm3)) end do i=ngpq+idxlo(lm1,ilo,ias) do j=1,ngp hq(i,j)=hq(i,j)+z1*apwalm(j,io,lm3) end do end if end do end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/olpaaq.f900000644000000000000000000000013213543334736014425 xustar0030 mtime=1569569246.397640816 30 atime=1569569242.690643183 30 ctime=1569569246.397640816 elk-6.3.2/src/olpaaq.f900000644002504400250440000000170313543334736016475 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine olpaaq(ias,ngp,ngpq,apwalm,apwalmq,ld,oq) use modmain implicit none ! arguments integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: oq(*) ! local variables integer is,lmo,io integer l,m,lm,i ! allocatable arrays complex(8), allocatable :: a(:,:),b(:,:) is=idxis(ias) lmo=lmoapw(is) allocate(a(lmo,ngpq),b(lmo,ngp)) i=0 lm=0 do l=0,lmaxapw do m=-l,l lm=lm+1 do io=1,apword(l,is) i=i+1 a(i,1:ngpq)=apwalmq(1:ngpq,io,lm) b(i,1:ngp)=apwalm(1:ngp,io,lm) end do end do end do call zmctm(lmo,ngpq,ngp,a,b,ld,oq) deallocate(a,b) return end subroutine elk-6.3.2/src/PaxHeaders.21352/olpaloq.f900000644000000000000000000000013213543334736014617 xustar0030 mtime=1569569246.401640813 30 atime=1569569242.694643181 30 ctime=1569569246.401640813 elk-6.3.2/src/olpaloq.f900000644002504400250440000000176613543334736016700 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine olpaloq(ias,ngp,ngpq,apwalm,apwalmq,ld,oq) use modmain implicit none ! arguments integer, intent(in) :: ias integer, intent(in) :: ngp,ngpq complex(8), intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw) complex(8), intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw) integer, intent(in) :: ld complex(8), intent(inout) :: oq(ld,*) ! local variables integer is,ilo,io integer l,m,lm,i,j is=idxis(ias) do ilo=1,nlorb(is) l=lorbl(ilo,is) do m=-l,l lm=idxlm(l,m) j=ngp+idxlo(lm,ilo,ias) do i=1,ngpq do io=1,apword(l,is) oq(i,j)=oq(i,j)+conjg(apwalmq(i,io,lm))*oalo(io,ilo,ias) end do end do i=ngpq+idxlo(lm,ilo,ias) do j=1,ngp do io=1,apword(l,is) oq(i,j)=oq(i,j)+oalo(io,ilo,ias)*apwalm(j,io,lm) end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gengkqvec.f900000644000000000000000000000013213543334736015122 xustar0030 mtime=1569569246.405640811 30 atime=1569569242.699643178 30 ctime=1569569246.405640811 elk-6.3.2/src/gengkqvec.f900000644002504400250440000000221613543334736017172 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gengkqvec(iq) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq ! local variables integer ik,jspn real(8) vl(3),vc(3) ! loop over non-reduced k-point set do ik=1,nkptnr ! k+q-vectors in lattice and Cartesian coordinates vkql(:,ik)=vkl(:,ik)+vql(:,iq) vkqc(:,ik)=vkc(:,ik)+vqc(:,iq) do jspn=1,nspnfv vl(:)=vkql(:,ik) vc(:)=vkqc(:,ik) ! spin-spiral case if (spinsprl) then if (jspn.eq.1) then vl(:)=vl(:)+0.5d0*vqlss(:) vc(:)=vc(:)+0.5d0*vqcss(:) else vl(:)=vl(:)-0.5d0*vqlss(:) vc(:)=vc(:)-0.5d0*vqcss(:) end if end if ! generate the G+k+q-vectors call gengkvec(ngvec,ivg,vgc,vl,vc,gkmax,ngkmax,ngkq(jspn,ik), & igkqig(:,jspn,ik),vgkql(:,:,jspn,ik),vgkqc(:,:,jspn,ik),gkqc(:,jspn,ik)) ! generate structure factors for the G+k+q-vectors call gensfacgp(ngkq(jspn,ik),vgkqc(:,:,jspn,ik),ngkmax,sfacgkq(:,:,jspn,ik)) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/genmcph.f900000644000000000000000000000013213543334736014571 xustar0030 mtime=1569569246.410640807 30 atime=1569569242.704643174 30 ctime=1569569246.410640807 elk-6.3.2/src/genmcph.f900000644002504400250440000000132113543334736016635 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genmcph(w,ev,a) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: w(nbph) complex(8), intent(in) :: ev(nbph,nbph) complex(8), intent(out) :: a(nbph,nbph) ! local variables integer is,ia,ip,i,j real(8) t1 do j=1,nbph i=0 do is=1,nspecies t1=2.d0*spmass(is)*w(j) if (t1.gt.1.d-8) then t1=1.d0/sqrt(t1) else t1=0.d0 end if do ia=1,natoms(is) do ip=1,3 i=i+1 a(i,j)=t1*ev(i,j) end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/putdevecfv.f900000644000000000000000000000013213543334736015323 xustar0030 mtime=1569569246.414640805 30 atime=1569569242.709643171 30 ctime=1569569246.414640805 elk-6.3.2/src/putdevecfv.f900000644002504400250440000000145313543334736017375 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putdevecfv(ik,devecfv) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: devecfv(nmatmax,nstfv,nspnfv) ! local variables integer recl character(256) fext ! find the record length inquire(iolength=recl) vkl(:,ik),nmatmax,nstfv,nspnfv,devecfv ! construct the phonon file extension call phfext(iqph,isph,iaph,ipph,fext) !$OMP CRITICAL(u222) open(222,file=trim(scrpath)//'DEVECFV'//trim(fext),form='UNFORMATTED', & access='DIRECT',recl=recl) write(222,rec=ik) vkl(:,ik),nmatmax,nstfv,nspnfv,devecfv close(222) !$OMP END CRITICAL(u222) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getdevecfv.f900000644000000000000000000000013213543334736015272 xustar0030 mtime=1569569246.418640802 30 atime=1569569242.714643168 30 ctime=1569569246.418640802 elk-6.3.2/src/getdevecfv.f900000644002504400250440000000356113543334736017346 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getdevecfv(ik,iq,is,ia,ip,devecfv) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ik,iq,is,ia,ip complex(8), intent(out) :: devecfv(nmatmax,nstfv,nspnfv) ! local variables integer recl,nmatmax_,nstfv_,nspnfv_ real(8) vkl_(3),t1 character(256) fext,fname ! construct the phonon file extension call phfext(iq,is,ia,ip,fext) ! construct filename fname='DEVECFV'//trim(fext) ! find the record length inquire(iolength=recl) vkl_,nmatmax_,nstfv_,nspnfv_,devecfv !$OMP CRITICAL(u222) open(222,file=trim(scrpath)//trim(fname),form='UNFORMATTED',access='DIRECT', & recl=recl) read(222,rec=ik) vkl_,nmatmax_,nstfv_,nspnfv_,devecfv close(222) !$OMP END CRITICAL(u222) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getdevecfv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" ",A," : ",3G18.10)') trim(fname),vkl_ write(*,*) stop end if if (nmatmax.ne.nmatmax_) then write(*,*) write(*,'("Error(getdevecfv): differing nmatmax for k-point ",I8)') ik write(*,'(" current : ",I8)') nmatmax write(*,'(" ",A," : ",I8)') trim(fname),nmatmax_ write(*,*) stop end if if (nstfv.ne.nstfv_) then write(*,*) write(*,'("Error(getdevecfv): differing nstfv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstfv write(*,'(" ",A," : ",I8)') trim(fname),nstfv_ write(*,*) stop end if if (nspnfv.ne.nspnfv_) then write(*,*) write(*,'("Error(getdevecfv): differing nspnfv for k-point ",I8)') ik write(*,'(" current : ",I8)') nspnfv write(*,'(" ",A," : ",I8)') trim(fname),nspnfv_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/putdevecsv.f900000644000000000000000000000012613543334736015343 xustar0028 mtime=1569569246.4226408 30 atime=1569569242.719643165 28 ctime=1569569246.4226408 elk-6.3.2/src/putdevecsv.f900000644002504400250440000000140413543334736017406 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine putdevecsv(ik,devecsv) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: devecsv(nstsv,nstsv) ! local variables integer recl character(256) fext ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,devecsv ! construct the phonon file extension call phfext(iqph,isph,iaph,ipph,fext) !$OMP CRITICAL(u226) open(226,file=trim(scrpath)//'DEVECSV'//trim(fext),form='UNFORMATTED', & access='DIRECT',recl=recl) write(226,rec=ik) vkl(:,ik),nstsv,devecsv close(226) !$OMP END CRITICAL(u226) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getdevecsv.f900000644000000000000000000000013213543334736015307 xustar0030 mtime=1569569246.427640797 30 atime=1569569242.723643162 30 ctime=1569569246.427640797 elk-6.3.2/src/getdevecsv.f900000644002504400250440000000254613543334736017365 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine getdevecsv(ik,iq,is,ia,ip,devecsv) use modmain use modphonon implicit none ! arguments integer, intent(in) :: ik,iq,is,ia,ip complex(8), intent(out) :: devecsv(nstsv,nstsv) ! local variables integer recl,nstsv_ real(8) vkl_(3),t1 character(256) fext,fname ! construct the phonon file extension call phfext(iq,is,ia,ip,fext) ! construct filename fname='DEVECSV'//trim(fext) ! find the record length inquire(iolength=recl) vkl_,nstsv_,devecsv !$OMP CRITICAL(u226) open(226,file=trim(scrpath)//trim(fname),form='UNFORMATTED',access='DIRECT', & recl=recl) read(226,rec=ik) vkl_,nstsv_,devecsv close(226) !$OMP END CRITICAL(u226) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getdevecsv): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" ",A," : ",3G18.10)') trim(fname),vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getdevecsv): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" ",A," : ",I8)') trim(fname),nstsv_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/phononsc.f900000644000000000000000000000013213543334736014777 xustar0030 mtime=1569569246.432640793 30 atime=1569569242.728643159 30 ctime=1569569246.432640793 elk-6.3.2/src/phononsc.f900000644002504400250440000001161313543334736017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phononsc use modmain use modphonon use modstore use modmpi implicit none ! local variables integer is,ia,ja,ias,jas integer ip,nph,i,p real(8) a,b,t1 real(8) ft(3,maxatoms*maxspecies) complex(8) z1,z2 ! allocatable arrays real(8), allocatable :: vsmt_(:,:),vsir_(:) complex(8), allocatable :: dyn(:,:) ! store original parameters natoms_(:)=natoms(:) avec_(:,:)=avec(:,:) atposl_(:,:,:)=atposl(:,:,:) bfcmt0_(:,:,:)=bfcmt0(:,:,:) mommtfix_(:,:,:)=mommtfix(:,:,:) tshift_=tshift tforce_=tforce autokpt_=autokpt primcell_=primcell ngridk_(:)=ngridk(:) ! no shifting of atomic basis allowed tshift=.false. ! require forces tforce=.true. ! determine k-point grid size from radkpt autokpt=.true. ! no reduction to primitive cell primcell=.false. ! initialise universal variables call init0 ! initialise q-point dependent variables call init2 ! store original parameters natmtot_=natmtot idxis_(1:natmtot)=idxis(1:natmtot) bvec_(:,:)=bvec(:,:) binv_(:,:)=binv(:,:) atposc_(:,:,:)=atposc(:,:,:) ngridg_(:)=ngridg(:) ngtot_=ngtot if (allocated(ivg_)) deallocate(ivg_) allocate(ivg_(3,ngtot_)) ivg_(:,:)=ivg(:,:) if (allocated(igfft_)) deallocate(igfft_) allocate(igfft_(ngtot_)) igfft_(:)=igfft(:) ! allocate the Kohn-Sham potential derivative arrays if (allocated(dvsmt)) deallocate(dvsmt) allocate(dvsmt(npmtmax,natmtot)) if (allocated(dvsir)) deallocate(dvsir) allocate(dvsir(ngtot)) ! allocate supercell offset vector array if (allocated(vscph)) deallocate(vscph) allocate(vscph(3,nqptnr)) ! allocate dynamical matrix column allocate(dyn(3,natmtot)) ! begin new phonon task 10 continue natoms(:)=natoms_(:) ! find a dynamical matrix to calculate call dyntask(80,filext) ! if nothing more to do then restore original input parameters and return if (iqph.eq.0) then filext='.OUT' natoms(:)=natoms_(:) avec(:,:)=avec_(:,:) atposl(:,:,:)=atposl_(:,:,:) bfcmt0(:,:,:)=bfcmt0_(:,:,:) mommtfix(:,:,:)=mommtfix_(:,:,:) tshift=tshift_ tforce=tforce_ autokpt=autokpt_ primcell=primcell_ ngridk(:)=ngridk_(:) deallocate(ivg_,igfft_) return end if if (mp_mpi) write(*,'("Info(phononsc): working on ",A)') 'DYN'//trim(filext) ! phonon dry run: just generate empty DYN files if (task.eq.202) goto 10 ! zero the dynamical matrix row dyn(:,:)=0.d0 ! zero the Kohn-Sham potential derivative dvsmt(:,:)=0.d0 dvsir(:)=0.d0 ! check to see if mass is considered infinite if (spmass(isph).le.0.d0) goto 20 ! loop over phases: 0 = cos and 1 = sin displacements if ((ivq(1,iqph).eq.0).and.(ivq(2,iqph).eq.0).and.(ivq(3,iqph).eq.0)) then nph=0 else nph=1 end if ! initialise or read the charge density and potentials from file if (task.eq.200) then trdstate=.false. else trdstate=.true. end if ! loop over cos and sin displacements do p=0,nph ! generate the supercell with negative displacement call genscph(p,-deltaph) ! run the ground-state calculation call gndstate ! subsequent calculations will read in this supercell potential trdstate=.true. ! store the total force for the first displacement do ias=1,natmtot ft(:,ias)=forcetot(:,ias) end do ! store the Kohn-Sham potential for the first displacement allocate(vsmt_(npmtmax,natmtot),vsir_(ngtot)) vsmt_(:,:)=vsmt(:,:) vsir_(:)=vsir(:) ! generate the supercell again with positive displacement call genscph(p,deltaph) ! run the ground-state calculation again call gndstate ! compute the complex Kohn-Sham potential derivative with implicit q-phase call phscdvs(p,vsmt_,vsir_) deallocate(vsmt_,vsir_) ! Fourier transform the force differences to obtain the dynamical matrix z1=1.d0/(dble(nscph)*2.d0*deltaph) ! multiply by i for sin-like displacement if (p.eq.1) z1=z1*zi ias=0 jas=0 do is=1,nspecies ja=0 do ia=1,natoms_(is) ias=ias+1 do i=1,nscph ja=ja+1 jas=jas+1 t1=-dot_product(vqc(:,iqph),vscph(:,i)) z2=z1*cmplx(cos(t1),sin(t1),8) do ip=1,3 t1=-(forcetot(ip,jas)-ft(ip,jas)) dyn(ip,ias)=dyn(ip,ias)+z2*t1 end do end do end do end do end do 20 continue ! write dynamical matrix row to file if (mp_mpi) then ias=0 do is=1,nspecies do ia=1,natoms_(is) ias=ias+1 do ip=1,3 a=dble(dyn(ip,ias)) b=aimag(dyn(ip,ias)) if (abs(a).lt.1.d-12) a=0.d0 if (abs(b).lt.1.d-12) b=0.d0 write(80,'(2G18.10," : is = ",I4,", ia = ",I4,", ip = ",I4)') a,b,is, & ia,ip end do end do end do close(80) ! write the complex Kohn-Sham potential derivative to file natoms(:)=natoms_(:) natmtot=natmtot_ idxis(1:natmtot)=idxis_(1:natmtot) ngridg(:)=ngridg_(:) call writedvs(filext) ! delete the non-essential files call phscdelete end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) goto 10 end subroutine elk-6.3.2/src/PaxHeaders.21352/genscph.f900000644000000000000000000000013213543334736014577 xustar0030 mtime=1569569246.436640791 30 atime=1569569242.733643156 30 ctime=1569569246.436640791 elk-6.3.2/src/genscph.f900000644002504400250440000000330313543334736016645 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genscph(p,dph) use modmain use modphonon use modstore implicit none ! arguments integer, intent(in) :: p real(8), intent(in) :: dph ! local variables integer is,ia,na,i real(8) vc(3),t1 if ((p.ne.0).and.(p.ne.1)) then write(*,*) write(*,'("Error(genscph): phase (p) should be 0 or 1 : ",I8)') p write(*,*) stop end if ! find the smallest supercell which contains the q-vector call findscq(iqph,avec_,nscph,vscph) ! construct supercell atomic positions and magnetic fields do is=1,nspecies na=0 do ia=1,natoms_(is) do i=1,nscph na=na+1 if (na.gt.maxatoms) then write(*,*) write(*,'("Error(genscph): too many atoms in supercell : ",I8)') na write(*,'(" for species ",I4)') is write(*,'("Adjust maxatoms in modmain and recompile code")') write(*,*) stop end if vc(:)=vscph(:,i)+atposc_(:,ia,is) ! add small periodic displacement if ((isph.eq.is).and.(iaph.eq.ia)) then t1=dot_product(vqc(:,iqph),vscph(:,i)) if (p.eq.0) then vc(ipph)=vc(ipph)+dph*cos(t1) else vc(ipph)=vc(ipph)+dph*sin(t1) end if end if ! convert to new lattice coordinates call r3mv(ainv,vc,atposl(:,na,is)) call r3frac(epslat,atposl(:,na,is)) ! set muffin-tin fields and fixed spin moments if required if (spinpol) then bfcmt0(:,na,is)=bfcmt0_(:,ia,is) mommtfix(:,na,is)=mommtfix_(:,ia,is) end if end do end do natoms(is)=na end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/phdisp.f900000644000000000000000000000013213543334736014437 xustar0030 mtime=1569569246.440640788 30 atime=1569569242.737643153 30 ctime=1569569246.440640788 elk-6.3.2/src/phdisp.f900000644002504400250440000000365413543334736016516 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phdisp use modmain use modphonon implicit none ! local variables integer iq,i,iv real(8) wmin,wmax ! allocatable arrays real(8), allocatable :: wp(:,:) complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:) complex(8), allocatable :: dynp(:,:),ev(:,:) ! initialise universal variables call init0 call init2 allocate(wp(nbph,npp1d)) allocate(dynq(nbph,nbph,nqpt)) allocate(dynr(nbph,nbph,nqptnr)) allocate(dynp(nbph,nbph)) allocate(ev(nbph,nbph)) ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! Fourier transform the dynamical matrices to real-space call dynqtor(dynq,dynr) ! generate a set of q-point vectors along a path in the Brillouin zone call plotpt1d(bvec,nvp1d,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) wmin=0.d0 wmax=0.d0 ! compute the phonon frequencies along the path do iq=1,npp1d ! compute the dynamical matrix at this particular q-point call dynrtoq(vplp1d(:,iq),dynr,dynp) ! find the phonon frequencies and eigenvectors call dynev(dynp,wp(:,iq),ev) wmin=min(wmin,wp(1,iq)) wmax=max(wmax,wp(nbph,iq)) end do wmax=wmax+(wmax-wmin)*0.5d0 wmin=wmin-(wmax-wmin)*0.5d0 ! output the vertex location lines open(50,file='PHDLINES.OUT',form='FORMATTED') do iv=1,nvp1d write(50,'(2G18.10)') dvp1d(iv),wmin write(50,'(2G18.10)') dvp1d(iv),wmax write(50,'(" ")') end do close(50) ! output the phonon dispersion open(50,file='PHDISP.OUT',form='FORMATTED') do i=1,nbph do iq=1,npp1d write(50,'(2G18.10)') dpp1d(iq),wp(i,iq) end do write(50,'(" ")') end do close(50) write(*,*) write(*,'("Info(phdisp):")') write(*,'(" phonon dispersion written to PHDISP.OUT")') write(*,'(" vertex location lines written to PHDLINES.OUT")') deallocate(wp,dynq,dynr,dynp,ev) return end subroutine elk-6.3.2/src/PaxHeaders.21352/dynsymapp.f900000644000000000000000000000013113543334736015173 xustar0030 mtime=1569569246.445640785 29 atime=1569569242.74264315 30 ctime=1569569246.445640785 elk-6.3.2/src/dynsymapp.f900000644002504400250440000000361013543334736017243 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2005-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dynsymapp(isym,vpl,dyn,dyns) use modmain use modphonon implicit none ! arguments integer, intent(in) :: isym real(8), intent(in) :: vpl(3) complex(8), intent(in) :: dyn(nbph,nbph) complex(8), intent(inout) :: dyns(nbph,nbph) ! local variables integer is,ia,ja,ias,jas integer lspl,ilspl,i,j,k,l,m,n real(8) sl(3,3),sic(3,3),v(3),t1 real(8) a(3,3),b(3,3),c(3,3) complex(8) z1 ! automatic arrays integer map(natmtot) complex(8) zph(natmtot) ! index to spatial rotation in lattice point group lspl=lsplsymc(isym) ! the inverse of the spatial symmetry ilspl=isymlat(lspl) ! symmetry matrix in lattice coordinates sl(:,:)=dble(symlat(:,:,lspl)) ! inverse symmetry matrix in Cartesian coordinates sic(:,:)=symlatc(:,:,ilspl) ! operate with symmetry matrix on vpl call r3mtv(sl,vpl,v) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) ! equivalent atom with this symmetry ja=ieqatom(ia,is,isym) jas=idxas(ja,is) map(ias)=jas ! phase factor t1=twopi*dot_product(vpl(:),atposl(:,ia,is)) z1=cmplx(cos(t1),sin(t1),8) zph(ias)=z1 t1=-twopi*dot_product(v(:),atposl(:,ja,is)) zph(ias)=z1*cmplx(cos(t1),sin(t1),8) end do end do ! rotate and phase-shift dynamical matrix with symmetry do ias=1,natmtot i=3*(ias-1) k=3*(map(ias)-1) do jas=1,natmtot j=3*(jas-1) l=3*(map(jas)-1) do m=1,3 do n=1,3 a(m,n)=dble(dyn(i+m,j+n)) b(m,n)=aimag(dyn(i+m,j+n)) end do end do call r3mm(sic,a,c) call r3mmt(c,sic,a) call r3mm(sic,b,c) call r3mmt(c,sic,b) z1=zph(ias)*conjg(zph(jas)) do m=1,3 do n=1,3 dyns(k+m,l+n)=dyns(k+m,l+n)+z1*cmplx(a(m,n),b(m,n),8) end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dynsym.f900000644000000000000000000000013213543334736014473 xustar0030 mtime=1569569246.449640782 30 atime=1569569242.747643147 30 ctime=1569569246.449640782 elk-6.3.2/src/dynsym.f900000644002504400250440000000231513543334736016543 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006-2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dynsym(vpl,dynp) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: vpl(3) complex(8), intent(inout) :: dynp(nbph,nbph) ! local variables integer isym,lspl,i,j,n real(8) v1(3),v2(3),s(3,3),t1 ! automatic arrays complex(8) dyns(nbph,nbph) ! map input vector to first Brillouin zone v1(:)=vpl(:) call vecfbz(epslat,bvec,v1) n=0 dyns(:,:)=0.d0 ! use the symmetries which leave vpl invariant do isym=1,nsymcrys if (.not.tv0symc(isym)) cycle lspl=lsplsymc(isym) s(:,:)=dble(symlat(:,:,lspl)) call r3mtv(s,v1,v2) t1=abs(v1(1)-v2(1))+abs(v1(2)-v2(2))+abs(v1(3)-v2(3)) if (t1.lt.epslat) then call dynsymapp(isym,v1,dynp,dyns) n=n+1 end if end do if (n.eq.0) then write(*,*) write(*,'("Error(dynsym): no symmetries leave vpl invariant")') write(*,*) stop end if t1=1.d0/dble(n) dynp(:,:)=t1*dyns(:,:) ! make the matrix Hermitian do i=1,nbph do j=i,nbph dynp(i,j)=0.5d0*(dynp(i,j)+conjg(dynp(j,i))) dynp(j,i)=conjg(dynp(i,j)) end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/dynev.f900000644000000000000000000000013013543334736014273 xustar0029 mtime=1569569246.45364078 30 atime=1569569242.752643144 29 ctime=1569569246.45364078 elk-6.3.2/src/dynev.f900000644002504400250440000000236613543334736016353 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dynev(dynp,w,ev) use modmain use modphonon implicit none ! arguments complex(8), intent(in) :: dynp(nbph,nbph) real(8), intent(out) :: w(nbph) complex(8), intent(out) :: ev(nbph,nbph) ! local variables integer is,ia,js,ja integer ip,jp,i,j real(8) t1 ev(:,:)=0.d0 i=0 do is=1,nspecies do ia=1,natoms(is) do ip=1,3 i=i+1 j=0 do js=1,nspecies ! mass factor if ((spmass(is).le.0.d0).or.(spmass(js).le.0.d0)) then ! infinite mass t1=0.d0 else t1=1.d0/sqrt(spmass(is)*spmass(js)) end if do ja=1,natoms(js) do jp=1,3 j=j+1 if (i.le.j) then ! use Hermitian average of dynamical matrix ev(i,j)=0.5d0*t1*(dynp(i,j)+conjg(dynp(j,i))) end if end do end do end do end do end do end do ! find the eigenvalues and eigenvectors of the dynamical matrix call eveqnz(nbph,nbph,ev,w) do i=1,nbph if (w(i).ge.0.d0) then w(i)=sqrt(w(i)) else w(i)=-sqrt(abs(w(i))) end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/phdos.f900000644000000000000000000000013113543334736014264 xustar0030 mtime=1569569246.458640777 29 atime=1569569242.75864314 30 ctime=1569569246.458640777 elk-6.3.2/src/phdos.f900000644002504400250440000001012713543334736016335 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phdos use modmain use modphonon use modtest implicit none ! local variables integer iq,i,iw integer i1,i2,i3 real(8) wmin,wmax,wd,dw real(8) tmax,temp(ntemp),s(ntemp) real(8) v(3),t1,t2 ! allocatable arrays real(8), allocatable :: wp(:),w(:),gw(:),f(:) complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:) complex(8), allocatable :: dynp(:,:),ev(:,:) ! external functions real(8) splint external splint ! initialise universal variables call init0 call init2 allocate(wp(nbph),w(nwplot),gw(nwplot),f(nwplot)) allocate(dynq(nbph,nbph,nqpt),dynr(nbph,nbph,nqptnr)) allocate(dynp(nbph,nbph),ev(nbph,nbph)) ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! Fourier transform the dynamical matrices to real-space call dynqtor(dynq,dynr) ! find the minimum and maximum frequencies wmin=0.d0 wmax=0.d0 do iq=1,nqpt call dynev(dynq(:,:,iq),wp,ev) wmin=min(wmin,wp(1)) wmax=max(wmax,wp(nbph)) end do wmax=wmax+(wmax-wmin)*0.1d0 wmin=wmin-(wmax-wmin)*0.1d0 wd=wmax-wmin if (wd.lt.1.d-8) wd=1.d0 dw=wd/dble(nwplot) ! generate energy grid do iw=1,nwplot w(iw)=dw*dble(iw-1)+wmin end do gw(:)=0.d0 do i1=0,ngrkf-1 v(1)=dble(i1)/dble(ngrkf) do i2=0,ngrkf-1 v(2)=dble(i2)/dble(ngrkf) do i3=0,ngrkf-1 v(3)=dble(i3)/dble(ngrkf) ! compute the dynamical matrix at this particular q-point call dynrtoq(v,dynr,dynp) ! find the phonon frequencies call dynev(dynp,wp,ev) do i=1,nbph t1=(wp(i)-wmin)/dw+1.d0 iw=nint(t1) if ((iw.ge.1).and.(iw.le.nwplot)) then gw(iw)=gw(iw)+1.d0 end if end do end do end do end do t1=1.d0/(dw*dble(ngrkf)**3) gw(:)=t1*gw(:) ! smooth phonon DOS if required if (nswplot.gt.0) call fsmooth(nswplot,nwplot,gw) ! write phonon DOS to file open(50,file='PHDOS.OUT',form='FORMATTED') do iw=1,nwplot write(50,'(2G18.10)') w(iw),gw(iw) end do close(50) write(*,*) write(*,'("Info(phdos):")') write(*,'(" phonon density of states written to PHDOS.OUT")') !-------------------------------------------! ! thermodynamic properties from DOS ! !-------------------------------------------! ! maximum temperature tmax=wmax/kboltz ! temperature grid do i=1,ntemp temp(i)=tmax*dble(i)/dble(ntemp) end do open(50,file='THERMO.OUT',form='FORMATTED') write(50,*) write(50,'("(All quantities are per unit cell)")') ! zero point energy do iw=1,nwplot f(iw)=gw(iw)*w(iw) end do t1=splint(nwplot,w,f) t1=0.5d0*t1 write(50,*) write(50,'("Zero-point energy : ",G18.10)') t1 ! vibrational energy write(50,*) write(50,'("Vibrational energy vs. temperature :")') do i=1,ntemp do iw=1,nwplot t1=w(iw)/(2.d0*kboltz*temp(i)) if (t1.gt.0.d0) then f(iw)=gw(iw)*w(iw)*cosh(t1)/sinh(t1) else f(iw)=0.d0 end if end do t1=splint(nwplot,w,f) t1=0.5d0*t1 write(50,'(2G18.10)') temp(i),t1 s(i)=t1 end do ! free energy write(50,*) write(50,'("Free energy vs. temperature :")') do i=1,ntemp do iw=1,nwplot t1=2.d0*sinh(w(iw)/(2.d0*kboltz*temp(i))) if (t1.gt.0.d0) then f(iw)=gw(iw)*log(t1) else f(iw)=0.d0 end if end do t1=splint(nwplot,w,f) t1=kboltz*temp(i)*t1 write(50,'(2G18.10)') temp(i),t1 ! compute entropy from S = (F-E)/T s(i)=(s(i)-t1)/temp(i) end do ! entropy write(50,*) write(50,'("Entropy vs. temperature :")') do i=1,ntemp write(50,'(2G18.10)') temp(i),s(i) end do ! heat capacity write(50,*) write(50,'("Heat capacity vs. temperature :")') do i=1,ntemp do iw=1,nwplot t1=w(iw)/(kboltz*temp(i)) t2=exp(t1)-1.d0 if (abs(t2).gt.1.d-14) then f(iw)=gw(iw)*(t1**2)*(t2+1.d0)/t2**2 else f(iw)=0.d0 end if end do t1=splint(nwplot,w,f) t1=kboltz*t1 write(50,'(2G18.10)') temp(i),t1 end do close(50) write(*,'(" thermodynamic properties written to THERMO.OUT")') ! write phonon DOS to test file call writetest(210,'phonon DOS',nv=nwplot,tol=1.d-2,rva=gw) deallocate(wp,w,gw,f,dynq,dynr,dynp,ev) return end subroutine elk-6.3.2/src/PaxHeaders.21352/sumrule.f900000644000000000000000000000013213543334736014644 xustar0030 mtime=1569569246.462640774 30 atime=1569569242.763643137 30 ctime=1569569246.462640774 elk-6.3.2/src/sumrule.f900000644002504400250440000000352213543334736016715 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: sumrule ! !INTERFACE: subroutine sumrule(dynq) ! !INPUT/OUTPUT PARAMETERS: ! dynq : dynamical matrices on q-point set (in,real(nbph,nbph,nqpt)) ! !DESCRIPTION: ! Applies the same correction to all the dynamical matrices such that the ! matrix for ${\bf q}=0$ satisfies the acoustic sum rule. In other words, the ! matrices are updated with ! $$ D_{ij}^{\bf q}\rightarrow D_{ij}^{\bf q}-\sum_{k=1}^3 \omega_k^0 ! v_{k;i}^0 v_{k;j}^0 $$ ! for all ${\bf q}$, where $\omega_k^0$ is the $k$th eigenvalue of the ! ${\bf q}=0$ dynamical matrix and $v_{k;i}^0$ the $i$th component of its ! eigenvector. The eigenvalues are assumed to be arranged in ascending order. ! This ensures that the ${\bf q}=0$ dynamical matrix has 3 zero eigenvalues, ! which the uncorrected matrix may not have due to the finite ! exchange-correlation grid. ! ! !REVISION HISTORY: ! Created May 2005 (JKD) !EOP !BOC use modmain use modphonon implicit none ! arguments complex(8), intent(inout) :: dynq(nbph,nbph,nqpt) ! local variables integer iq,i,j,k ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: ev(:,:) allocate(w(nbph),ev(nbph,nbph)) ! compute the eigenvalues and vectors of the q = 0 dynamical matrix do i=1,nbph do j=i,nbph ev(i,j)=0.5d0*(dynq(i,j,iq0)+conjg(dynq(j,i,iq0))) end do end do call eveqnz(nbph,nbph,ev,w) ! subtract outer products of 3 lowest eigenvectors for q = 0 from all the ! dynamical matrices do iq=1,nqpt do i=1,nbph do j=1,nbph do k=1,3 dynq(i,j,iq)=dynq(i,j,iq)-w(k)*ev(i,k)*conjg(ev(j,k)) end do end do end do end do deallocate(w,ev) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writephn.f900000644000000000000000000000013213543334736015010 xustar0030 mtime=1569569246.466640772 30 atime=1569569242.768643133 30 ctime=1569569246.466640772 elk-6.3.2/src/writephn.f900000644002504400250440000000326113543334736017061 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writephn use modmain use modphonon implicit none ! local variables integer iq,i,j,is,ia,ip ! allocatable arrays real(8), allocatable :: w(:) complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:) complex(8), allocatable :: dynp(:,:),ev(:,:) ! initialise universal variables call init0 call init2 allocate(w(nbph)) allocate(dynq(nbph,nbph,nqpt)) allocate(dynr(nbph,nbph,nqptnr)) allocate(dynp(nbph,nbph)) allocate(ev(nbph,nbph)) ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! Fourier transform the dynamical matrices to real-space call dynqtor(dynq,dynr) open(50,file='PHONON.OUT',form='FORMATTED') do iq=1,nphwrt call dynrtoq(vqlwrt(:,iq),dynr,dynp) call dynev(dynp,w,ev) write(50,*) write(50,'(I6,3G18.10," : q-point, vqlwrt")') iq,vqlwrt(:,iq) do j=1,nbph write(50,*) write(50,'(I6,G18.10," : mode, frequency")') j,w(j) i=0 do is=1,nspecies do ia=1,natoms(is) do ip=1,3 i=i+1 if (i.eq.1) then write(50,'(3I4,2G18.10," : species, atom, polarisation, & &eigenvector")') is,ia,ip,ev(i,j) else write(50,'(3I4,2G18.10)') is,ia,ip,ev(i,j) end if end do end do end do end do write(50,*) end do close(50) write(*,*) write(*,'("Info(writephn): phonon frequencies and eigenvectors written to & &PHONON.OUT")') write(*,'(" for all q-vectors in the phwrite list")') deallocate(w,dynq,dynr,dynp,ev) return end subroutine elk-6.3.2/src/PaxHeaders.21352/phfext.f900000644000000000000000000000013113543334736014445 xustar0030 mtime=1569569246.471640768 29 atime=1569569242.77464313 30 ctime=1569569246.471640768 elk-6.3.2/src/phfext.f900000644002504400250440000000133213543334736016514 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phfext(iq,is,ia,ip,fext) use modmain implicit none ! arguments integer, intent(in) :: iq,is,ia,ip character(*), intent(out) :: fext ! local variables integer i,j,m(3),n(3) ! external functions integer gcd external gcd do i=1,3 if (ivq(i,iq).ne.0) then j=gcd(ivq(i,iq),ngridq(i)) m(i)=ivq(i,iq)/j n(i)=ngridq(i)/j else m(i)=0 n(i)=0 end if end do write(fext,'("_Q",2I2.2,"_",2I2.2,"_",2I2.2,"_S",I2.2,"_A",I3.3,"_P",I1,& &".OUT")') m(1),n(1),m(2),n(2),m(3),n(3),is,ia,ip return end subroutine elk-6.3.2/src/PaxHeaders.21352/writegamma.f900000644000000000000000000000013213543334736015305 xustar0030 mtime=1569569246.475640766 30 atime=1569569242.778643127 30 ctime=1569569246.475640766 elk-6.3.2/src/writegamma.f900000644002504400250440000000163713543334736017363 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writegamma(gq) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: gq(nbph,nqpt) ! local variables integer iq,i open(50,file='GAMMAQ.OUT',form='FORMATTED') write(50,*) write(50,'(I4," : total number of atoms")') natmtot write(50,'(I6," : number of q-points")') nqpt write(50,*) do iq=1,nqpt write(50,'(I6," : q-point")') iq write(50,'(3G18.10," : q-vector (lattice coordinates)")') vql(:,iq) write(50,'(3G18.10," : q-vector (Cartesian coordinates)")') vqc(:,iq) do i=1,nbph write(50,'(I4,G18.10)') i,gq(i,iq) end do write(50,*) end do close(50) write(*,*) write(*,'("Info(writegamma):")') write(*,'(" wrote phonon linewidths for all q-points to GAMMAQ.OUT")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/readgamma.f900000644000000000000000000000013213543334736015066 xustar0030 mtime=1569569246.479640763 30 atime=1569569242.783643124 30 ctime=1569569246.479640763 elk-6.3.2/src/readgamma.f900000644002504400250440000000402713543334736017140 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readgamma(gq) use modmain use modphonon implicit none ! arguments real(8), intent(out) :: gq(nbph,nqpt) ! local variables integer iq,i integer natmtot_,nqpt_,iq_,i_ real(8) vql_(3),vqc_(3),t1 open(50,file='GAMMAQ.OUT',form='FORMATTED',status='OLD') read(50,*) read(50,*) natmtot_ if (natmtot.ne.natmtot_) then write(*,*) write(*,'("Error(readgamma): differing natmtot")') write(*,'(" current : ",I4)') natmtot write(*,'(" GAMMAQ.OUT : ",I4)') natmtot_ write(*,*) stop end if read(50,*) nqpt_ if (nqpt.ne.nqpt_) then write(*,*) write(*,'("Error(readgamma): differing nqpt")') write(*,'(" current : ",I6)') nqpt write(*,'(" GAMMAQ.OUT : ",I6)') nqpt_ write(*,*) stop end if read(50,*) do iq=1,nqpt read(50,*) iq_ if (iq.ne.iq_) then write(*,*) write(*,'("Error(readgamma): incorrect q-point index in GAMMAQ.OUT for & &q-point ",I6)') iq write(*,*) stop end if read(50,*) vql_ t1=sum(abs(vql(:,iq)-vql_(:))) if (t1.gt.epslat) then write(*,*) write(*,'("Error(readgamma): differing q-vectors in lattice coordinates & &for q-point ",I6)') iq write(*,'(" current : ",3G18.10)') vql(:,iq) write(*,'(" GAMMAQ.OUT : ",3G18.10)') vql_ write(*,*) stop end if read(50,*) vqc_ t1=sum(abs(vqc(:,iq)-vqc_(:))) if (t1.gt.epslat) then write(*,*) write(*,'("Error(readgamma): differing q-vectors in Cartesian coordinates & &for q-point ",I6)') iq write(*,'(" current : ",3G18.10)') vqc(:,iq) write(*,'(" GAMMAQ.OUT : ",3G18.10)') vqc_ write(*,*) stop end if do i=1,nbph read(50,*) i_,gq(i,iq) if (i.ne.i_) then write(*,*) write(*,'("Error(readgamma): incorrect mode index in GAMMAQ.OUT for & &q-point ",I6)') iq write(*,*) stop end if end do read(50,*) end do close(50) return stop end subroutine elk-6.3.2/src/PaxHeaders.21352/phlwidth.f900000644000000000000000000000013013543334736014771 xustar0029 mtime=1569569246.48464076 30 atime=1569569242.788643121 29 ctime=1569569246.48464076 elk-6.3.2/src/phlwidth.f900000644002504400250440000000512713543334736017047 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phlwidth use modmain use modphonon implicit none ! local variables integer i,j,iq,iv real(8) gmin,gmax,t1 ! allocatable arrays real(8), allocatable :: wq(:),gq(:,:),gp(:,:) complex(8), allocatable :: dynq(:,:,:),ev(:,:),b(:,:) complex(8), allocatable :: gmq(:,:,:),gmr(:,:,:),gmp(:,:) ! initialise universal variables call init0 call init2 allocate(wq(nbph),gq(nbph,nqpt),gp(nbph,npp1d)) allocate(dynq(nbph,nbph,nqpt)) allocate(ev(nbph,nbph),b(nbph,nbph)) allocate(gmq(nbph,nbph,nqpt)) allocate(gmr(nbph,nbph,nqptnr)) allocate(gmp(nbph,nbph)) ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! read in the phonon linewidths for each q-point call readgamma(gq) ! loop over phonon q-points do iq=1,nqpt ! diagonalise the dynamical matrix call dynev(dynq(:,:,iq),wq,ev) ! construct a complex matrix from the phonon eigenvectors such that its ! eigenvalues squared are the phonon linewidths do i=1,nbph t1=sqrt(abs(gq(i,iq))) do j=1,nbph b(i,j)=t1*conjg(ev(j,i)) end do end do call zgemm('N','N',nbph,nbph,nbph,zone,ev,nbph,b,nbph,zzero,gmq(:,:,iq),nbph) end do ! Fourier transform the gamma matrices to real-space call dynqtor(gmq,gmr) ! generate a set of q-point vectors along a path in the Brillouin zone call plotpt1d(bvec,nvp1d,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) gmin=1.d8 gmax=0.d0 ! compute the linewidths along the path do iq=1,npp1d ! compute the gamma matrix at this particular q-point call dynrtoq(vplp1d(:,iq),gmr,gmp) ! diagonalise the gamma matrix call eveqnz(nbph,nbph,gmp,gp(:,iq)) ! square the eigenvalues to recover the linewidths gp(:,iq)=gp(:,iq)**2 gmin=min(gmin,gp(1,iq)) gmax=max(gmax,gp(nbph,iq)) end do gmax=gmax+(gmax-gmin)*0.5d0 gmin=gmin-(gmax-gmin)*0.5d0 ! output the vertex location lines open(50,file='PHLWLINES.OUT',form='FORMATTED') do iv=1,nvp1d write(50,'(2G18.10)') dvp1d(iv),gmin write(50,'(2G18.10)') dvp1d(iv),gmax write(50,'(" ")') end do close(50) ! output the phonon linewidth dispersion open(50,file='PHLWIDTH.OUT',form='FORMATTED') do i=1,nbph do iq=1,npp1d write(50,'(2G18.10)') dpp1d(iq),gp(i,iq) end do write(50,'(" ")') end do close(50) write(*,*) write(*,'("Info(phlwidth):")') write(*,'(" phonon linewidth dispersion written to PHLWIDTH.OUT")') write(*,'(" vertex location lines written to PHLWLINES.OUT")') deallocate(wq,gq,gp,dynq) deallocate(ev,b,gmq,gmr,gmp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/alpha2f.f900000644000000000000000000000013213543334736014465 xustar0030 mtime=1569569246.489640757 30 atime=1569569242.793643117 30 ctime=1569569246.489640757 elk-6.3.2/src/alpha2f.f900000644002504400250440000001162113543334736016535 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine alpha2f use modmain use modphonon use modtest implicit none ! local variables integer ik,iq,i,j integer i1,i2,i3,iw real(8) wmin,wmax,wd,dw real(8) wlog,wrms,lambda,tc real(8) v(3),t1 ! allocatable arrays real(8), allocatable :: wq(:,:),gq(:,:) real(8), allocatable :: wp(:),a2fp(:),w(:),a2f(:) complex(8), allocatable :: dynq(:,:,:),dynr(:,:,:) complex(8), allocatable :: dynp(:,:),ev(:,:),b(:,:) complex(8), allocatable :: a2fmq(:,:,:),a2fmr(:,:,:),a2fmp(:,:) ! initialise universal variables call init0 call init1 call init2 allocate(wq(nbph,nqpt),gq(nbph,nqpt)) allocate(wp(nbph),a2fp(nbph)) allocate(w(nwplot),a2f(nwplot)) allocate(dynq(nbph,nbph,nqpt)) allocate(dynr(nbph,nbph,nqptnr)) allocate(dynp(nbph,nbph)) allocate(ev(nbph,nbph),b(nbph,nbph)) allocate(a2fmq(nbph,nbph,nqpt)) allocate(a2fmr(nbph,nbph,nqptnr)) allocate(a2fmp(nbph,nbph)) ! get the eigenvalues from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) end do ! compute the density of states at the Fermi energy call occupy ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! Fourier transform the dynamical matrices to real-space call dynqtor(dynq,dynr) ! read in the phonon linewidths for each q-point call readgamma(gq) ! loop over phonon q-points do iq=1,nqpt ! find the eigenvalues and eigenvectors of the dynamical matrix call dynev(dynq(:,:,iq),wq(:,iq),ev) ! construct a complex matrix from the phonon eigenvectors such that its ! eigenvalues squared are the phonon linewidths divided by the frequency do i=1,nbph if (wq(i,iq).gt.1.d-8) then t1=sqrt(abs(gq(i,iq)/wq(i,iq))) else t1=0.d0 end if do j=1,nbph b(i,j)=t1*conjg(ev(j,i)) end do end do call zgemm('N','N',nbph,nbph,nbph,zone,ev,nbph,b,nbph,zzero,a2fmq(:,:,iq), & nbph) end do ! Fourier transform the matrices to real-space call dynqtor(a2fmq,a2fmr) ! find the minimum and maximum frequencies wmin=0.d0 wmax=0.d0 do iq=1,nqpt wmin=min(wmin,wq(1,iq)) wmax=max(wmax,wq(nbph,iq)) end do wmax=wmax+(wmax-wmin)*0.1d0 wmin=wmin-(wmax-wmin)*0.1d0 wd=wmax-wmin if (wd.lt.1.d-8) wd=1.d0 dw=wd/dble(nwplot) ! generate energy grid do iw=1,nwplot w(iw)=dw*dble(iw-1)+wmin end do a2f(:)=0.d0 do i1=0,ngrkf-1 v(1)=dble(i1)/dble(ngrkf) do i2=0,ngrkf-1 v(2)=dble(i2)/dble(ngrkf) do i3=0,ngrkf-1 v(3)=dble(i3)/dble(ngrkf) ! compute the dynamical matrix at this particular q-point call dynrtoq(v,dynr,dynp) ! find the phonon eigenvalues and eigenvectors call dynev(dynp,wp,ev) ! compute the alpha^2F matrix at this particular q-point call dynrtoq(v,a2fmr,a2fmp) ! diagonalise the alpha^2F matrix simultaneously with the dynamical matrix ! (thanks to Matthieu Verstraete and Ryotaro Arita for correcting this) call dynevs(ev,a2fmp,a2fp) ! square the eigenvalues to recover the linewidths divided by the frequency a2fp(:)=a2fp(:)**2 do i=1,nbph t1=(wp(i)-wmin)/dw+1.d0 iw=nint(t1) if ((iw.ge.1).and.(iw.le.nwplot)) then a2f(iw)=a2f(iw)+a2fp(i) end if end do end do end do end do t1=twopi*(fermidos/2.d0)*dw*dble(ngrkf)**3 if (t1.gt.1.d-8) then t1=1.d0/t1 else t1=0.d0 end if a2f(:)=t1*a2f(:) ! smooth Eliashberg function if required if (nswplot.gt.0) call fsmooth(nswplot,nwplot,a2f) ! write Eliashberg function to file open(50,file='ALPHA2F.OUT',form='FORMATTED') do iw=1,nwplot write(50,'(2G18.10)') w(iw),a2f(iw) end do close(50) write(*,*) write(*,'("Info(alpha2f):")') write(*,'(" Eliashberg function written to ALPHA2F.OUT")') ! compute lambda, logarithmic average frequency, RMS average frequency and ! McMillan-Allen-Dynes superconducting critical temperature call mcmillan(w,a2f,lambda,wlog,wrms,tc) open(50,file='MCMILLAN.OUT',form='FORMATTED') write(50,*) write(50,'("Electron-phonon coupling constant, lambda : ",G18.10)') lambda write(50,*) write(50,'("Logarithmic average frequency : ",G18.10)') wlog write(50,*) write(50,'("RMS average frequency : ",G18.10)') wrms write(50,*) write(50,'("Coulomb pseudopotential, mu* : ",G18.10)') mustar write(50,*) write(50,'("McMillan-Allen-Dynes superconducting critical temperature")') write(50,'(" [Eq. 34, Phys. Rev. B 12, 905 (1975)] (kelvin) : ",G18.10)') tc write(50,*) close(50) write(*,*) write(*,'("Info(alpha2f):")') write(*,'(" Electron-phonon coupling constant, lambda;")') write(*,'(" logarithmic and RMS average frequencies;")') write(*,'(" and McMillan-Allen-Dynes superconducting critical temperature")') write(*,'(" written to MCMILLAN.OUT")') ! write lambda to test file call writetest(251,'electron-phonon coupling constant, lambda',tol=5.d-2, & rv=lambda) deallocate(wq,wp,gq,a2fp,w,a2f) deallocate(dynq,dynr,dynp,ev,b) deallocate(a2fmq,a2fmr,a2fmp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writelambda.f900000644000000000000000000000013213543334736015443 xustar0030 mtime=1569569246.493640754 30 atime=1569569242.799643114 30 ctime=1569569246.493640754 elk-6.3.2/src/writelambda.f900000644002504400250440000000207613543334736017517 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writelambda(wq,gq) use modmain use modphonon implicit none ! arguments real(8), intent(in) :: wq(nbph,nqpt),gq(nbph,nqpt) ! local variables integer iq,i real(8) t1,t2 open(50,file='LAMBDAQ.OUT',form='FORMATTED') write(50,*) write(50,'(I4," : total number of atoms")') natmtot write(50,'(I6," : number of q-points")') nqpt write(50,*) do iq=1,nqpt write(50,'(I6," : q-point")') iq write(50,'(3G18.10," : q-vector (lattice coordinates)")') vql(:,iq) write(50,'(3G18.10," : q-vector (Cartesian coordinates)")') vqc(:,iq) do i=1,nbph t1=pi*fermidos*wq(i,iq)**2 if (t1.gt.1.d-8) then t2=gq(i,iq)/t1 else t2=0.d0 end if write(50,'(I4,G18.10)') i,t2 end do write(50,*) end do close(50) write(*,*) write(*,'("Info(writelambda):")') write(*,'(" wrote electron-phonon coupling constants for all q-points to & &LAMBDAQ.OUT")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/ephcouple.f900000644000000000000000000000013213543334736015134 xustar0030 mtime=1569569246.497640752 30 atime=1569569242.803643111 30 ctime=1569569246.497640752 elk-6.3.2/src/ephcouple.f900000644002504400250440000001213413543334736017204 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ephcouple use modmain use modphonon use modmpi use modomp use modstore implicit none ! local variables integer iq,ik,jk,jkq integer ist,jst,isym,ip integer is,ia,ias,js,jas integer nr,nri,np,i,n,nthd real(8) vl(3),de,x real(8) t1,t2,t3,t4 ! allocatable arrays real(8), allocatable :: wq(:,:),gq(:,:) complex(8), allocatable :: dynq(:,:,:),ev(:,:),a(:,:) complex(8), allocatable :: dvmt(:,:,:),dvir(:,:) complex(8), allocatable :: zfmt(:),gzfmt(:,:,:) complex(8), allocatable :: ephmat(:,:,:) ! external functions real(8) sdelta external sdelta ! increase the angular momentum cut-off on the inner part of the muffin-tin lmaxi_=lmaxi lmaxi=max(lmaxi,4) ! initialise universal variables call init0 call init1 call init2 ! allocate global arrays if (allocated(dvsmt)) deallocate(dvsmt) allocate(dvsmt(npmtmax,natmtot)) if (allocated(dvsir)) deallocate(dvsir) allocate(dvsir(ngtot)) ! allocate local arrays allocate(wq(nbph,nqpt),gq(nbph,nqpt)) allocate(dynq(nbph,nbph,nqpt),ev(nbph,nbph),a(nbph,nbph)) allocate(dvmt(npcmtmax,natmtot,nbph),dvir(ngtot,nbph)) allocate(zfmt(npmtmax),gzfmt(npmtmax,3,natmtot)) ! read in the density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! read Fermi energy from file call readfermi ! set the speed of light >> 1 (non-relativistic approximation) solsc=sol*100.d0 ! new file extension for eigenvector files with c >> 1 filext='_EPH.OUT' ! generate the first- and second-variational eigenvectors and eigenvalues call linengy call genapwlofr call gensocfr call genevfsv ! precise determine of the Fermi energy t1=swidth swidth=1.d-5 call occupy swidth=t1 ! restore the speed of light solsc=sol ! read in the dynamical matrices call readdyn(dynq) ! apply the acoustic sum rule call sumrule(dynq) ! compute the gradients of the Kohn-Sham potential for the rigid-ion term do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) call rtozfmt(nr,nri,vsmt(:,ias),zfmt) call gradzfmt(nr,nri,rlmt(:,1,is),rlmt(:,-1,is),zfmt,npmtmax,gzfmt(:,:,ias)) end do ! energy window for calculating the electron-phonon matrix elements if (task.eq.240) then de=4.d0*swidth else de=1.d6 end if ! loop over phonon q-points do iq=1,nqpt if (mp_mpi) write(*,'("Info(ephcouple): ",I6," of ",I6," q-points")') iq,nqpt ! diagonalise the dynamical matrix call dynev(dynq(:,:,iq),wq(:,iq),ev) ! generate the matrix for converting between Cartesian and phonon coordinates call genmcph(wq(:,iq),ev,a) i=0 do is=1,nspecies nr=nrmt(is) nri=nrmti(is) np=npmt(is) do ia=1,natoms(is) ias=idxas(ia,is) do ip=1,3 i=i+1 ! read in the Cartesian change in Kohn-Sham potential call readdvs(iq,is,ia,ip) ! add the rigid-ion term dvsmt(1:np,ias)=dvsmt(1:np,ias)-gzfmt(1:np,ip,ias) do jas=1,natmtot js=idxis(jas) call zfmtftoc(nrcmt(js),nrcmti(js),dvsmt(:,jas),dvmt(:,jas,i)) end do ! multiply the interstitial potential with the characteristic function dvir(:,i)=dvsir(:)*cfunir(:) end do end do end do ! zero the phonon linewidths array gq(:,iq)=0.d0 call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ephmat,jk,vl,isym,jkq) & !$OMP PRIVATE(t1,t2,t3,t4,ist,jst,x,i) & !$OMP NUM_THREADS(nthd) allocate(ephmat(nstsv,nstsv,nbph)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! compute the electron-phonon coupling matrix elements call genephmat(iq,ik,de,a,dvmt,dvir,ephmat) ! write the matrix elements to file if required if (task.eq.241) call putephmat(iq,ik,ephmat) ! k+q-vector in lattice coordinates vl(:)=vkl(:,ik)+vql(:,iq) ! index to k+q-vector call findkpt(vl,isym,jkq) t1=pi*wkptnr*occmax ! loop over second-variational states do ist=1,nstsv x=(evalsv(ist,jkq)-efermi)/swidth t2=t1*sdelta(stype,x)/swidth do jst=1,nstsv ! loop over phonon branches do i=1,nbph x=(evalsv(jst,jk)+wq(i,iq)-efermi)/swidth t3=t2*sdelta(stype,x)/swidth t4=dble(ephmat(ist,jst,i))**2+aimag(ephmat(ist,jst,i))**2 !$OMP CRITICAL(ephcouple_) gq(i,iq)=gq(i,iq)+wq(i,iq)*t3*t4 !$OMP END CRITICAL(ephcouple_) end do end do end do ! end loop over k-points end do !$OMP END DO deallocate(ephmat) !$OMP END PARALLEL call freethd(nthd) ! end loop over phonon q-points end do ! add gq from each process if (np_mpi.gt.1) then n=nbph*nqpt call mpi_allreduce(mpi_in_place,gq,n,mpi_double_precision,mpi_sum,mpicom, & ierror) end if ! restore the default file extension filext='.OUT' if (mp_mpi) then ! write the phonon linewidths to file call writegamma(gq) ! write electron-phonon coupling constants to file call writelambda(wq,gq) end if deallocate(wq,gq,dynq,ev,a) deallocate(dvmt,dvir,zfmt,gzfmt) ! restore original input parameters lmaxi=lmaxi_ return end subroutine elk-6.3.2/src/PaxHeaders.21352/eliashberg.f900000644000000000000000000000013213543334736015255 xustar0030 mtime=1569569246.502640749 30 atime=1569569242.809643107 30 ctime=1569569246.502640749 elk-6.3.2/src/eliashberg.f900000644002504400250440000001454513543334736017335 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 A. Sanna and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: eliashberg ! !INTERFACE: subroutine eliashberg ! !USES: use modmain use modphonon use modomp ! !DESCRIPTION: ! Calculates the superconducting gap within Eliashberg theory. This ! implementation is isotropic and assumes a flat density of states. The ! Eliashberg function $\alpha^2F$ is required as input for this calculation. ! ! !REVISION HISTORY: ! Created December 2010 (Antonio Sanna) ! Modified, June 2011 (JKD) !EOP !BOC implicit none ! local variables ! maximum allowed number of Matsubara frequencies integer, parameter :: maxwf=40000 ! maximum number of iterations integer, parameter :: maxit=1000 integer nwf,nwfcl,nin,nout integer itemp,it,i,m,n,nthd ! convergence tolerance real(8), parameter :: eps=1.d-12 ! mixing paramter real(8), parameter :: beta=0.5d0 real(8) lambda,wlog,wrms,tc real(8) wfmax,tmin,tmax,dtemp,temp real(8) dw,dmu,sum,a,b,t0,t1 ! allocatable arrays real(8), allocatable :: w(:),a2f(:),wf(:),l(:) real(8), allocatable :: d0(:),d(:),z0(:),z(:),r(:) complex(8), allocatable :: zin(:),uin(:),zout(:),uout(:) ! initialise universal variables call init0 call init1 allocate(w(nwplot),a2f(nwplot)) ! read in the Eliashberg function call readalpha2f(w,a2f) dw=(w(nwplot)-w(1))/dble(nwplot) ! compute the McMillan parameters call mcmillan(w,a2f,lambda,wlog,wrms,tc) ! Matsubara frequency cut-off wfmax=20.d0*wrms ! minumum temperature tmin=tc/6.d0 if (tmin.lt.1.d-2) tmin=0.1d0 ! maximum temperature tmax=5.d0*tc if (tmax.lt.1.d0) tmax=1.d0 ! temperature step size dtemp=(tmax-tmin)/dble(ntemp) ! maximum number of fermionic Matsubara frequencies nwf=nint(wfmax/(twopi*kboltz*dtemp)) if (nwf.lt.1) nwf=1 if (nwf.gt.maxwf) nwf=maxwf allocate(wf(-nwf:nwf)) allocate(l(-2*nwf:2*nwf)) allocate(d0(0:nwf),d(0:nwf)) allocate(z0(0:nwf),z(0:nwf)) allocate(r(0:nwf)) allocate(zin(0:nwf),uin(0:nwf)) ! generate output points for continuation on the real axis nout=4*nwplot allocate(zout(nout),uout(nout)) do i=1,nout zout(i)=cmplx(2.d0*dble(i-1)*dw,0.d0,8) end do ! open files for writing open(62,file='ELIASHBERG.OUT',form='FORMATTED') open(63,file='ELIASHBERG_IA.OUT',form='FORMATTED') open(64,file='ELIASHBERG_GAP_T.OUT',form='FORMATTED') open(65,file='ELIASHBERG_GAP_RA.OUT',form='FORMATTED') open(66,file='ELIASHBERG_Z_RA.OUT',form='FORMATTED') write(62,'("+------------------------------+")') write(62,'("| Eliashberg equations |")') write(62,'("+------------------------------+")') write(62,*) write(62,'("Temperature range : ",2G18.10)') tmin,tmax write(62,'("Number of temperature steps : ",I6)') ntemp write(62,'("Number of output frequencies : ",I8)') nout write(62,'("Fermionic Matsubara frequency cut-off")') write(62,'(" phonons : ",G18.10)') wfmax write(62,'(" Coulomb : ",G18.10)') 2.d0*wrms flush(62) d0(:)=1.d-4 z0(:)=1.d0 ! main loop over temperature do itemp=1,ntemp write(*,'("Info(eliashberg): temperature step ",I6," of ",I6)') itemp,ntemp temp=dble(itemp)*dtemp+tmin write(62,*) write(62,'("Temperature (kelvin) : ",G18.10)') temp t0=pi*kboltz*temp ! number of Matsubara frequencies nwf=nint(wfmax/(2.d0*t0)) if (nwf.gt.maxwf) nwf=maxwf nwfcl=nint(2.d0*wrms/(2.d0*t0)) if (nwfcl.lt.1) nwfcl=1 if (nwfcl.gt.nwf) nwfcl=nwf write(62,'("Number of Matsubara frequencies")') write(62,'(" phonons : ",I8)') nwf write(62,'(" Coulomb : ",I8)') nwfcl ! make Pade approximant input points same as Matsubara frequencies nin=nwf ! generate fermionic Matsubara frequencies do m=-nwf,nwf wf(m)=t0*dble(2*m+1) end do ! compute lambda call holdthd(2*nwf+1,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(t1,sum,i) & !$OMP NUM_THREADS(nthd) !$OMP DO do m=-2*nwf,2*nwf t1=(t0*dble(2*m))**2 sum=0.d0 do i=1,nwplot sum=sum+w(i)*a2f(i)/(w(i)**2+t1) end do l(m)=2.d0*sum*dw end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! begin iteration loop do it=1,maxit do m=0,nwf r(m)=sqrt((wf(m)**2+d0(m)**2)*z0(m)**2) end do do n=0,nwf sum=0.d0 do m=0,nwf-1 sum=sum+(l(n-m)-l(n+m+1))*z0(m)*wf(m)/r(m) end do z(n)=t0*sum/wf(n) end do z(0:nwf)=z(0:nwf)+1.d0 z0(0:nwf)=z(0:nwf) ! Coulomb part of summation dmu=0.d0 do n=0,nwfcl dmu=dmu+mustar*d0(n)*z(n)/r(n) end do dmu=dmu*2.d0 ! Gap do n=0,nwf sum=0.d0 do m=0,nwf-1 sum=sum+(l(n-m)+l(n+m+1))*d0(m)*z(m)/r(m) end do d(n)=t0*(sum-dmu)/z(n) end do ! mix old and new gap functions d(0:nwf)=beta*d(0:nwf)+(1.d0-beta)*d0(0:nwf) sum=0.d0 do m=0,nwf sum=sum+abs(d0(m)-d(m)) end do sum=sum/dble(2*nwf) d0(0:nwf)=d(0:nwf) if (sum.le.eps) then write(62,'("Eliashberg equations converged in ",I6," iterations")') it goto 10 end if ! end iteration loop end do write(*,*) write(*,'("Warning(eliashberg): failed to converge: possibly close to T_c")') write(62,'("Failed to converge: possibly close to T_c")') 10 continue flush(62) do n=-nwf,nwf if (n.ge.0) then m=n else m=-n-1 end if write(63,'(3G18.10)') wf(n),d(m),z(m) end do write(63,*) flush(63) write(64,'(3G18.10)') temp,d(0),z(0) flush(64) ! analytic continuation to real axis do m=0,nin zin(m)=cmplx(0.d0,wf(m),8) uin(m)=cmplx(d(m),0.d0,8) end do call pade(nin,zin,uin,nout,zout,uout) do i=1,nout a=dble(uout(i)) b=aimag(uout(i)) write(65,'(3G18.10)') dble(zout(i)),a,b end do write(65,*) flush(65) do m=0,nin uin(m)=cmplx(z(m),0.d0,8) end do call pade(nin,zin,uin,nout,zout,uout) do i=1,nout a=dble(uout(i)) b=aimag(uout(i)) write(66,'(3G18.10)') dble(zout(i)),a,b end do write(66,*) flush(66) ! end loop over temperatures end do close(62); close(63); close(64); close(65); close(66) write(*,*) write(*,'("Info(eliashberg):")') write(*,'(" calculation information written to ELIASHBERG.OUT")') write(*,'(" gap and Z functions on the imaginary axis written to & &ELIASHBERG_IA.OUT")') write(*,'(" gap vs. temperature written to ELIASHBERG_GAP_T.OUT")') write(*,'(" gap function on the real axis written to ELIASHBERG_GAP_RA.OUT")') write(*,'(" Z function on the real axis written to ELIASHBERG_Z_RA.OUT")') deallocate(w,a2f,wf,l) deallocate(d0,d,z0,z,r) deallocate(zin,uin,zout,uout) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/phscdvs.f900000644000000000000000000000013213543334736014622 xustar0030 mtime=1569569246.507640745 30 atime=1569569242.813643105 30 ctime=1569569246.507640745 elk-6.3.2/src/phscdvs.f900000644002504400250440000000454613543334736016702 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine phscdvs(p,vsmt_,vsir_) use modmain use modphonon use modstore implicit none ! arguments integer, intent(in) :: p real(8), intent(in) :: vsmt_(npmtmax,natmtot),vsir_(ngtot) ! local variables integer is,ia,ja,ias,jas integer nr,nri,np,i integer iv(3),ig_,ifg_,ifg real(8) vl(3),vc(3),t1 complex(8) z0,z1,z2 ! allocatable arrays real(8), allocatable :: rfmt(:) complex(8), allocatable :: zfmt(:),zfir(:) ! prefactor z0=1.d0/(2.d0*deltaph) ! multiply by i for sin-like displacement if (p.eq.1) z0=z0*zi !------------------------------! ! muffin-tin potential ! !------------------------------! allocate(rfmt(npmtmax),zfmt(npmtmax)) z1=z0/dble(nscph) ias=0 jas=0 do is=1,nspecies nr=nrmt(is) nri=nrmti(is) np=npmt(is) ja=0 do ia=1,natoms_(is) ias=ias+1 do i=1,nscph ja=ja+1 jas=jas+1 ! compute the difference between the perturbed and unperturbed potentials rfmt(1:np)=vsmt(1:np,jas)-vsmt_(1:np,jas) ! convert real potential difference to a complex spherical harmonic expansion call rtozfmt(nr,nri,rfmt,zfmt) ! the muffin-tin potential should have an *explicit* phase exp(iq.r) t1=-dot_product(vqc(:,iqph),vscph(:,i)) z2=z1*cmplx(cos(t1),sin(t1),8) ! add to total dvsmt(1:np,ias)=dvsmt(1:np,ias)+z2*zfmt(1:np) end do ! end loop over atoms and species end do end do deallocate(rfmt,zfmt) !--------------------------------! ! interstitial potential ! !--------------------------------! ! Fourier transform interstitial potential derivative to G-space allocate(zfir(ngtot)) zfir(:)=z0*(vsir(:)-vsir_(:)) call zfftifc(3,ngridg,-1,zfir) ! convert to G+q-space do ig_=1,ngtot_ ifg_=igfft_(ig_) vl(:)=dble(ivg_(:,ig_))+vql(:,iqph) call r3mv(bvec_,vl,vc) call r3mv(binv,vc,vl) iv(:)=nint(vl(:)) if ((iv(1).ge.intgv(1,1)).and.(iv(1).le.intgv(2,1)).and. & (iv(2).ge.intgv(1,2)).and.(iv(2).le.intgv(2,2)).and. & (iv(3).ge.intgv(1,3)).and.(iv(3).le.intgv(2,3))) then ifg=igfft(ivgig(iv(1),iv(2),iv(3))) dvsir(ifg_)=dvsir(ifg_)+zfir(ifg) else dvsir(ifg_)=0.d0 end if end do ! Fourier transform back to real-space if (p.eq.1) call zfftifc(3,ngridg_,1,dvsir) deallocate(zfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readdvs.f900000644000000000000000000000013213543334736014600 xustar0030 mtime=1569569246.511640743 30 atime=1569569242.818643102 30 ctime=1569569246.511640743 elk-6.3.2/src/readdvs.f900000644002504400250440000000536113543334736016654 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readdvs(iq,is,ia,ip) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq,is,ia,ip ! local variables integer js,jas,ios integer version_(3),nspecies_ integer lmmaxo_,natoms_ integer nrmt_,ngridg_(3) character(256) fext,fname ! allocatable arrays complex(8), allocatable :: zfmt(:,:,:) allocate(zfmt(lmmaxo,nrmtmax,natmtot)) call phfext(iq,is,ia,ip,fext) fname='DVS'//trim(fext) open(50,file=trim(fname),form='UNFORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readdvs): error opening ",A)') trim(fname) write(*,*) stop end if read(50) version_ if ((version(1).ne.version_(1)).or.(version(2).ne.version_(2)) & .or.(version(3).ne.version_(3))) then write(*,*) write(*,'("Warning(readdvs): different versions")') write(*,'(" current : ",I3.3,".",I3.3,".",I3.3)') version write(*,'(" file : ",I3.3,".",I3.3,".",I3.3)') version_ write(*,'(" in file ",A)') trim(fname) end if read(50) nspecies_ if (nspecies.ne.nspecies_) then write(*,*) write(*,'("Error(readdvs): differing nspecies")') write(*,'(" current : ",I4)') nspecies write(*,'(" file : ",I4)') nspecies_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if read(50) lmmaxo_ if (lmmaxo.ne.lmmaxo_) then write(*,*) write(*,'("Error(readdvs): differing lmmaxo")') write(*,'(" current : ",I4)') lmmaxo write(*,'(" file : ",I4)') lmmaxo_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if do js=1,nspecies read(50) natoms_ if (natoms(js).ne.natoms_) then write(*,*) write(*,'("Error(readdvs): differing natoms for species ",I4)') js write(*,'(" current : ",I4)') natoms(js) write(*,'(" file : ",I4)') natoms_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if read(50) nrmt_ if (nrmt(js).ne.nrmt_) then write(*,*) write(*,'("Error(readdvs): differing nrmt for species ",I4)') js write(*,'(" current : ",I6)') nrmt(js) write(*,'(" file : ",I6)') nrmt_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if end do read(50) ngridg_ if ((ngridg(1).ne.ngridg_(1)).or.(ngridg(2).ne.ngridg_(2)).or. & (ngridg(3).ne.ngridg_(3))) then write(*,*) write(*,'("Error(readdvs): differing ngridg")') write(*,'(" current : ",3I6)') ngridg write(*,'(" file : ",3I6)') ngridg_ write(*,'(" in file ",A)') trim(fname) write(*,*) stop end if read(50) zfmt,dvsir do jas=1,natmtot js=idxis(jas) call zfmtpack(.true.,nrmt(js),nrmti(js),zfmt(:,:,jas),dvsmt(:,jas)) end do close(50) deallocate(zfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readalpha2f.f900000644000000000000000000000013013543334736015317 xustar0029 mtime=1569569246.51564074 30 atime=1569569242.822643099 29 ctime=1569569246.51564074 elk-6.3.2/src/readalpha2f.f900000644002504400250440000000145013543334736017370 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 A. Sanna and E. K. U. Gross ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readalpha2f(w,a2f) use modmain implicit none ! arguments real(8), intent(out) :: w(nwplot) real(8), intent(out) :: a2f(nwplot) ! local variables integer iw,ios open(50,file='ALPHA2F.OUT',form='FORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readalpha2f): error opening ALPHA2F.OUT")') write(*,*) stop end if do iw=1,nwplot read(50,*,iostat=ios) w(iw),a2f(iw) if (ios.ne.0) then write(*,*) write(*,'("Error(readalpha2f): error reading from ALPHA2F.OUT")') write(*,'(" for frequency ",I6)') iw write(*,*) stop end if end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendsocfr.f900000644000000000000000000000013213543334736015122 xustar0030 mtime=1569569246.519640738 30 atime=1569569242.827643096 30 ctime=1569569246.519640738 elk-6.3.2/src/gendsocfr.f900000644002504400250440000000216713543334736017177 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 J. K. Dewhurst, S. Sharma and E. K. U. Gross ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine gendsocfr use modmain use modphonon implicit none integer is,ias,i integer nr,nri,ir,irc real(8) cso complex(8) z1 ! allocatable arrays real(8), allocatable :: vr1(:),vr2(:) real(8), allocatable :: dvr1(:),dvr2(:) if (.not.spinorb) return ! coefficient of spin-orbit coupling cso=1.d0/(4.d0*solsc**2) allocate(vr1(nrmtmax),vr2(nrmtmax)) allocate(dvr1(nrmtmax),dvr2(nrmtmax)) do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) i=1 do ir=1,nri vr1(ir)=dble(dvsmt(i,ias))*y00 vr2(ir)=aimag(dvsmt(i,ias))*y00 i=i+lmmaxi end do do ir=nri+1,nr vr1(ir)=dble(dvsmt(i,ias))*y00 vr2(ir)=aimag(dvsmt(i,ias))*y00 i=i+lmmaxo end do call fderiv(1,nr,rlmt(:,1,is),vr1,dvr1) call fderiv(1,nr,rlmt(:,1,is),vr2,dvr2) irc=0 do ir=1,nr,lradstp irc=irc+1 z1=cmplx(dvr1(ir),dvr2(ir),8) dsocfr(irc,ias)=(cso/rsp(ir,is))*z1 end do end do deallocate(vr1,vr2,dvr1,dvr2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/xc_pzca.f900000644000000000000000000000013213543334736014577 xustar0030 mtime=1569569246.524640735 30 atime=1569569242.832643093 30 ctime=1569569246.524640735 elk-6.3.2/src/xc_pzca.f900000644002504400250440000000377113543334736016656 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: xc_pzca ! !INTERFACE: subroutine xc_pzca(n,rho,ex,ec,vx,vc) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! rho : charge density (in,real(n)) ! ex : exchange energy density (out,real(n)) ! ec : correlation energy density (out,real(n)) ! vx : exchange potential (out,real(n)) ! vc : correlation potential (out,real(n)) ! !DESCRIPTION: ! Spin-unpolarised exchange-correlation potential and energy of the ! Perdew-Zunger parameterisation of Ceperley-Alder electron gas: {\it Phys. ! Rev. B} {\bf 23}, 5048 (1981) and {\it Phys. Rev. Lett.} {\bf 45}, 566 ! (1980). ! ! !REVISION HISTORY: ! Created October 2002 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n) real(8), intent(out) :: ex(n),ec(n),vx(n),vc(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: thrd=1.d0/3.d0, thrd2=2.d0/3.d0, thrd4=4.d0/3.d0 real(8), parameter :: g=-0.1423d0,b1=1.0529d0,b2=0.3334d0 real(8), parameter :: a=0.0311d0,b=-0.048d0,c=0.0020d0,d=-0.0116d0 real(8) p1,p2,r,rs,t1 if (n.le.0) then write(*,*) write(*,'("Error(xc_pzca): invalid n : ",I8)') n write(*,*) stop end if ! prefactors t1=3.d0/(4.d0*pi) p1=t1**thrd p2=t1*(9.d0*pi/4.d0)**thrd do i=1,n r=rho(i) if (r.lt.1.d-12) then ex(i)=0.d0 ec(i)=0.d0 vx(i)=0.d0 vc(i)=0.d0 cycle end if rs=p1/r**thrd ! exchange energy and potential ex(i)=-p2/rs vx(i)=thrd4*ex(i) ! correlation energy and potential if (rs.ge.1.d0) then t1=sqrt(rs) ec(i)=g/(1.d0+b1*t1+b2*rs) vc(i)=ec(i)*(1.d0+(7.d0/6.d0)*b1*t1+thrd4*b2*rs)/(1.d0+b1*t1+b2*rs) else t1=dlog(rs) ec(i)=a*t1+b+c*rs*t1+d*rs vc(i)=a*t1+(b-thrd*a)+thrd2*c*rs*t1+thrd*(2.d0*d-c)*rs end if end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/xc_pwca.f900000644000000000000000000000013213543334736014574 xustar0030 mtime=1569569246.528640732 30 atime=1569569242.837643089 30 ctime=1569569246.528640732 elk-6.3.2/src/xc_pwca.f900000644002504400250440000001071413543334736016646 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2011 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: xc_pwca ! !INTERFACE: subroutine xc_pwca(n,rhoup,rhodn,ex,ec,vxup,vxdn,vcup,vcdn) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! rhoup : spin-up charge density (in,real(n)) ! rhodn : spin-down charge density (in,real(n)) ! ex : exchange energy density (out,real(n)) ! ec : correlation energy density (out,real(n)) ! vxup : spin-up exchange potential (out,real(n)) ! vxdn : spin-down exchange potential (out,real(n)) ! vcup : spin-up correlation potential (out,real(n)) ! vcdn : spin-down correlation potential (out,real(n)) ! !DESCRIPTION: ! Spin-polarised exchange-correlation potential and energy of the Perdew-Wang ! parameterisation of the Ceperley-Alder electron gas: {\it Phys. Rev. B} ! {\bf 45}, 13244 (1992) and {\it Phys. Rev. Lett.} {\bf 45}, 566 (1980). ! ! !REVISION HISTORY: ! Created January 2004 (JKD) ! Rewrote, October 2011 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rhoup(n),rhodn(n) real(8), intent(out) :: ex(n),ec(n) real(8), intent(out) :: vxup(n),vxdn(n) real(8), intent(out) :: vcup(n),vcdn(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: thrd=1.d0/3.d0, thrd4=4.d0/3.d0 real(8), parameter :: d2f0=1.709921d0 real(8) a(3),a1(3),b1(3),b2(3),b3(3),b4(3) data a / 0.0310907d0, 0.01554535d0, 0.0168869d0 / data a1 / 0.21370d0, 0.20548d0, 0.11125d0 / data b1 / 7.5957d0, 14.1189d0, 10.357d0 / data b2 / 3.5876d0, 6.1977d0, 3.6231d0 / data b3 / 1.6382d0, 3.3662d0, 0.88026d0 / data b4 / 0.49294d0, 0.62517d0, 0.49671d0 / real(8) p1,p2,p3,rup,rdn,r,ri,ri2 real(8) rs,rs2,rs12,rs32,rsi,rs12i real(8) mz,z,z3,z4,drs,dzu,dzd real(8) fz,dfz,ders,dez,deu,ded real(8) a2,ec0,dec0,ec1,dec1,ac,dac real(8) t1,t2,t3,t4,t5,t6,t7,dt1,dt2 if (n.le.0) then write(*,*) write(*,'("Error(xc_pwca): invalid n : ",I8)') n write(*,*) stop end if ! prefactors t1=3.d0/(4.d0*pi) p1=t1**thrd p2=t1*(9.d0*pi/4.d0)**thrd p3=1.d0/(2.d0**thrd4-2.d0) do i=1,n rup=rhoup(i); rdn=rhodn(i) ! total density r=rup+rdn if ((rup.lt.0.d0).or.(rdn.lt.0.d0).or.(r.lt.1.d-20)) then ex(i)=0.d0 ec(i)=0.d0 vxup(i)=0.d0 vxdn(i)=0.d0 vcup(i)=0.d0 vcdn(i)=0.d0 cycle end if ri=1.d0/r ri2=ri**2 rs=p1*ri**thrd rs2=rs**2 rs12=sqrt(rs) rs32=rs12*rs rsi=1.d0/rs rs12i=1.d0/rs12 mz=rup-rdn z=mz/r z3=z**3 z4=z3*z ! drs/drup = drs/drdn = drs/drho drs=-thrd*rs*ri ! dz/drup, dz/drdn t1=mz*ri2 dzu=ri-t1 dzd=-ri-t1 !------------------! ! exchange ! !------------------! t1=-p2*rsi/2.d0 t2=1.d0+z t3=1.d0-z t4=t2**thrd4 t5=t3**thrd4 t6=t4+t5 ! exchange energy density ex(i)=t1*t6 ! dex/drs ders=-ex(i)*rsi ! f(z) fz=p3*(t6-2.d0) ! dex/dz t4=t4/t2 t5=t5/t3 t6=t4-t5 t7=thrd4*t6 dez=t1*t7 ! df/dz dfz=p3*t7 ! dex/drup, dex/drdn t1=ders*drs deu=t1+dez*dzu ded=t1+dez*dzd ! exchange potential vxup(i)=ex(i)+r*deu vxdn(i)=ex(i)+r*ded !---------------------! ! correlation ! !---------------------! ! ec(rs,0) a2=2.d0*a(1) t1=a2*(b1(1)*rs12+b2(1)*rs+b3(1)*rs32+b4(1)*rs2) dt1=a2*(0.5d0*b1(1)*rs12i+b2(1)+1.5d0*b3(1)*rs12+2.d0*b4(1)*rs) t3=1.d0/t1 t2=1.d0+t3 dt2=-dt1*t3**2 t3=1.d0/t2 t4=1.d0+a1(1)*rs t5=log(t2) ec0=-a2*t4*t5 dec0=-a2*(a1(1)*t5+t4*t3*dt2) ! ec(rs,1) a2=2.d0*a(2) t1=a2*(b1(2)*rs12+b2(2)*rs+b3(2)*rs32+b4(2)*rs2) dt1=a2*(0.5d0*b1(2)*rs12i+b2(2)+1.5d0*b3(2)*rs12+2.d0*b4(2)*rs) t3=1.d0/t1 t2=1.d0+t3 dt2=-dt1*t3**2 t3=1.d0/t2 t4=1.d0+a1(2)*rs t5=log(t2) ec1=-a2*t4*t5 dec1=-a2*(a1(2)*t5+t4*t3*dt2) ! ac(rs) a2=2.d0*a(3) t1=a2*(b1(3)*rs12+b2(3)*rs+b3(3)*rs32+b4(3)*rs2) dt1=a2*(0.5d0*b1(3)*rs12i+b2(3)+1.5d0*b3(3)*rs12+2.d0*b4(3)*rs) t3=1.d0/t1 t2=1.d0+t3 dt2=-dt1*t3**2 t3=1.d0/t2 t4=1.d0+a1(3)*rs t5=log(t2) ac=a2*t4*t5 dac=a2*(a1(3)*t5+t4*t3*dt2) ! correlation energy density t1=1.d0-z4 t2=(fz/d2f0)*t1 t3=ec1-ec0 t4=fz*z4 ec(i)=ec0+ac*t2+t3*t4 ! dec/drs t5=dec1-dec0 ders=dec0+dac*t2+t5*t4 ! dec/dz t6=4.d0*fz*z3 dez=(ac/d2f0)*(dfz*t1-t6)+t3*(dfz*z4+t6) ! dec/drup, dec/drdn t1=ders*drs deu=t1+dez*dzu ded=t1+dez*dzd ! correlation potential vcup(i)=ec(i)+r*deu vcdn(i)=ec(i)+r*ded end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/xc_pbe.f900000644000000000000000000000013213543334736014410 xustar0030 mtime=1569569246.533640729 30 atime=1569569242.843643086 30 ctime=1569569246.533640729 elk-6.3.2/src/xc_pbe.f900000644002504400250440000000712213543334736016461 0ustar00dewhurstdewhurst00000000000000 ! This routine is based on code written by K. Burke. !BOP ! !ROUTINE: xc_pbe ! !INTERFACE: subroutine xc_pbe(n,kappa,mu,beta,rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho, & g3up,g3dn,ex,ec,vxup,vxdn,vcup,vcdn) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! kappa : parameter for large-gradient limit (in,real) ! mu : gradient expansion coefficient (in,real) ! beta : gradient expansion coefficient (in,real) ! rhoup : spin-up charge density (in,real(n)) ! rhodn : spin-down charge density (in,real(n)) ! grho : |grad rho| (in,real(n)) ! gup : |grad rhoup| (in,real(n)) ! gdn : |grad rhodn| (in,real(n)) ! g2up : grad^2 rhoup (in,real(n)) ! g2dn : grad^2 rhodn (in,real(n)) ! g3rho : (grad rho).(grad |grad rho|) (in,real(n)) ! g3up : (grad rhoup).(grad |grad rhoup|) (in,real(n)) ! g3dn : (grad rhodn).(grad |grad rhodn|) (in,real(n)) ! ex : exchange energy density (out,real(n)) ! ec : correlation energy density (out,real(n)) ! vxup : spin-up exchange potential (out,real(n)) ! vxdn : spin-down exchange potential (out,real(n)) ! vcup : spin-up correlation potential (out,real(n)) ! vcdn : spin-down correlation potential (out,real(n)) ! !DESCRIPTION: ! Spin-polarised exchange-correlation potential and energy of the generalised ! gradient approximation functional of J. P. Perdew, K. Burke and M. Ernzerhof ! {\it Phys. Rev. Lett.} {\bf 77}, 3865 (1996) and {\bf 78}, 1396(E) (1997). ! The parameter $\kappa$, which controls the large-gradient limit, can be set ! to $0.804$ or $1.245$ corresponding to the value in the original article or ! the revised version of Y. Zhang and W. Yang, {\it Phys. Rev. Lett.} ! {\bf 80}, 890 (1998). ! ! !REVISION HISTORY: ! Modified routines written by K. Burke, October 2004 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: kappa,mu,beta real(8), intent(in) :: rhoup(n),rhodn(n) real(8), intent(in) :: grho(n),gup(n),gdn(n) real(8), intent(in) :: g2up(n),g2dn(n) real(8), intent(in) :: g3rho(n),g3up(n),g3dn(n) real(8), intent(out) :: ex(n),ec(n) real(8), intent(out) :: vxup(n),vxdn(n) real(8), intent(out) :: vcup(n),vcdn(n) ! local variables integer i real(8), parameter :: thrd=1.d0/3.d0 real(8), parameter :: thrd2=2.d0/3.d0 real(8), parameter :: pi=3.1415926535897932385d0 real(8) rup,rdn,r,r2,kf,s,u,v real(8) rs,z,g,ks,ksg real(8) t,uu,vv,ww real(8) g2rho,exup,exdn do i=1,n rup=rhoup(i); rdn=rhodn(i) ! total density r=rup+rdn if ((rup.ge.0.d0).and.(rdn.ge.0.d0).and.(r.gt.1.d-12)) then ! exchange energy density and potential ! spin-up r2=2.d0*rup kf=(r2*3.d0*pi**2)**thrd s=gup(i)/(2.d0*kf*rup) u=g3up(i)/((rup**2)*(2.d0*kf)**3) v=g2up(i)/(rup*(2.d0*kf)**2) call x_pbe(kappa,mu,r2,s,u,v,exup,vxup(i)) ! spin-down r2=2.d0*rdn kf=(r2*3.d0*pi**2)**thrd s=gdn(i)/(2.d0*kf*rdn) u=g3dn(i)/((rdn**2)*(2.d0*kf)**3) v=g2dn(i)/(rdn*(2.d0*kf)**2) call x_pbe(kappa,mu,r2,s,u,v,exdn,vxdn(i)) ! average exchange energy density ex(i)=(exup*rhoup(i)+exdn*rhodn(i))/r ! correlation rs=(3.d0/(4.d0*pi*r))**thrd z=(rhoup(i)-rhodn(i))/r g=((1.d0+z)**thrd2+(1.d0-z)**thrd2)/2.d0 kf=(r*3.d0*pi**2)**thrd ks=sqrt(4.d0*kf/pi) ksg=2.d0*ks*g t=grho(i)/(ksg*r) uu=g3rho(i)/((r**2)*ksg**3) g2rho=g2up(i)+g2dn(i) vv=g2rho/(r*ksg**2) ww=(gup(i)**2-gdn(i)**2-z*grho(i)**2)/(r*r*ksg**2) call c_pbe(beta,rs,z,t,uu,vv,ww,ec(i),vcup(i),vcdn(i)) else ex(i)=0.d0 ec(i)=0.d0 vxup(i)=0.d0 vxdn(i)=0.d0 vcup(i)=0.d0 vcdn(i)=0.d0 end if end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/xc_am05.f900000644000000000000000000000013213543334736014404 xustar0030 mtime=1569569246.538640726 30 atime=1569569242.849643082 30 ctime=1569569246.538640726 elk-6.3.2/src/xc_am05.f900000644002504400250440000002406313543334736016460 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2004, 2005 Rickard Armiento ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: xc_am05 ! !INTERFACE: subroutine xc_am05(n,rho,grho,g2rho,g3rho,ex,ec,vx,vc) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! rho : charge density (in,real(n)) ! grho : |grad rho| (in,real(n)) ! g2rho : grad^2 rho (in,real(n)) ! g3rho : (grad rho).(grad |grad rho|) (in,real(n)) ! ex : exchange energy density (out,real(n)) ! ec : correlation energy density (out,real(n)) ! vx : spin-unpolarised exchange potential (out,real(n)) ! vc : spin-unpolarised correlation potential (out,real(n)) ! !DESCRIPTION: ! Spin-unpolarised exchange-correlation potential and energy functional of ! R. Armiento and A. E. Mattsson, {\it Phys. Rev. B} {\bf 72}, 085108 (2005). ! ! !REVISION HISTORY: ! Created April 2005 (RAR); based on xc_pbe !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n),grho(n),g2rho(n),g3rho(n) real(8), intent(out) :: ex(n),ec(n),vx(n),vc(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 ! maximum allowed |grad rho| real(8), parameter :: gmax=1.d6 ! maximum allowed grad^2 rho real(8), parameter :: g2max=1.d12 ! maximum allowed (grad rho).(grad |grad rho|) real(8), parameter :: g3max=1.d14 real(8) r,kf,s,v,u real(8) grho_,g2rho_,g3rho_ do i=1,n r=rho(i) if (r.gt.1.d-12) then grho_=grho(i) g2rho_=g2rho(i) g3rho_=g3rho(i) ! check gradients are within range if (grho_.gt.gmax) grho_=gmax if (abs(g2rho_).gt.g2max) g2rho_=sign(g2max,g2rho_) if (abs(g3rho_).gt.g3max) g3rho_=sign(g3max,g3rho_) ! exchange energy density and potential kf=(r*3.d0*pi**2)**(1.d0/3.d0) s=grho_/(2.d0*kf*r) v=g2rho_/(r*(2.d0*kf)**2) u=g3rho_/((r**2)*(2.d0*kf)**3) call xc_am05_point(r,s,u,v,ex(i),ec(i),vx(i),vc(i),1) else ex(i)=0.d0 ec(i)=0.d0 vx(i)=0.d0 vc(i)=0.d0 end if end do return end subroutine !EOC !BOP ! !ROUTINE: xc_am05_point ! !INTERFACE: subroutine xc_am05_point(rho,s,u,v,ex,ec,vx,vc,pot) ! !INPUT/OUTPUT PARAMETERS: ! rho : electron density (in,real) ! s : gradient of n / (2 kF n) ! u : grad n * grad | grad n | / (n**2 (2 kF)**3) ! v : laplacian of density / (n**2 (2.d0*kf)**3) ! ex : exchange energy density (out,real) ! ec : correlation energy density (out,real) ! vx : spin-unpolarised exchange potential (out,real) ! vc : spin-unpolarised correlation potential (out,real) ! !DESCRIPTION: ! Calculate the spin-unpolarised exchange-correlation potential and energy for ! the Armiento-Mattsson 05 functional for a single point. ! ! !REVISION HISTORY: ! Created April 2005 (RAR) !EOP !BOC implicit none ! arguments real(8), intent(in) :: rho, s, u, v integer, intent(in) :: pot real(8), intent(out) :: ex, ec, vx, vc ! constants real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: g = 0.8098d0 real(8), parameter :: a = 2.804d0 real(8), parameter :: c = 0.7168d0 ! local variables real(8) s2,exlda, vxlda, eclda, vclda, X, Xs, Xss real(8) F, Fs, Fss, Hx, Hxs, Hxss, Hc, Hcs, Hcss real(8) zb, zbs, zbss, w real(8) n0b, n0bs, n0bss real(8) ln0b, ln0bs, ln0bss real(8) zbb, zbbc, zbbs, zbbss real(8) fxb, fxbs, fxbss ! cutoff if((rho .le. 1.0d-16)) then ex = 0.0d0 ec = 0.0d0 vx = 0.0d0 vc = 0.0d0 return endif s2 = s**2 ! LDA correlation call xc_am05_ldapwc(rho,eclda,vclda) ! LDA exchange call xc_am05_ldax(rho,exlda,vxlda) !------------------! ! exchange ! !------------------! ! interpolation index X = 1.0d0 - a*s2/(1.0d0 + a*s2) ! Airy LAA refinement function call xc_am05_labertw(s**(3.0d0/2.0d0)/sqrt(24.0d0),w) zb = (3.0d0/2.0d0*w)**(2.0d0/3.0d0) n0b = w/(2.0d0*pi**2*s**3) ln0b = -3.0d0/(2.0d0*pi)*(3.0d0*pi**2*n0b)**(1.0d0/3.0d0) zbbc = ((4.0d0/3.0d0)**(1.0d0/3.0d0)*2.0d0*pi/3.0d0)**4 zbb = (zbbc*zb**2 + zb**4)**(1.0d0/4.0d0) Fxb = -1.0d0/(ln0b*2.0d0*zbb) F = (c*s2 + 1.0d0)/(c*s2/Fxb + 1.0d0) ! exchange refinement function Hx = X + (1.0d0 - X)*F ! exchange energy per particle, Ex = Integrate[n*ex] ex = exlda*Hx !---------------------! ! correlation ! !---------------------! ! correlation refinement function Hc = X + g*(1.0d0 - X) ! correlation energy per particle, Ec = Integrate[rho*ec] ec = eclda*Hc if (pot .eq. 0) return !----------------------------! ! exchange potential ! !----------------------------! ! interpolation index derivatives, dX/ds Xs = -2.0d0*a*s/(1.0d0 + a*s2)**2 Xss = 2.0d0*a*(3.0d0*a*s2-1.0d0)/(1.0d0+a*s2)**3 ! airy LAA refinement function derivatives, dF/ds zbs = zb/(s + s*w) zbss = - zb*w*(5.0d0+2.0d0*w)/(2.0d0*s2*(1.0d0+w)**3) n0bs = sqrt(zb)*(-2.0d0*zb+s*zbs)/(2.0d0*pi**2*s2**2) n0bss = (16.0d0*zb**2+s**2*zbs**2+2.0d0*s*zb*(-6.0d0* & zbs+s*zbss))/(4.0d0*pi**2*s**5*sqrt(zb)) ln0bs = -(3.0d0/pi)**(1.0d0/3.0d0)*n0bs/ & (2.0d0*n0b**(2.0d0/3.0d0)) ln0bss = (2.0d0*n0bs**2-3.0d0*n0b*n0bss)/(2.0d0* & 3.0d0**(2.0d0/3.0d0)*pi**(1.0d0/3.0d0)*n0b**(5.0d0/3.0d0)) zbbs = zb*(zbbc+2*zb**2)*zbs/ & (2.0d0*(zb**2*(zbbc+zb**2))**(3.0d0/4.0d0)) zbbss = zb**2*(-zbbc*(zbbc-2.0d0*zb**2)*zbs**2+ & 2.0d0*zb*(zbbc+zb**2)*(zbbc+2.0d0*zb**2)*zbss)/ & (4.0d0*(zb**2*(zbbc+zb**2))**(7.0d0/4.0d0)) Fxbs = (zbb*ln0bs+ln0b*zbbs)/(2.0d0*ln0b**2*zbb**2) Fxbss = (-2.0d0*ln0b**2*zbbs**2+zbb**2*(-2.0d0*ln0bs**2 + & ln0b*ln0bss)+ln0b*zbb*(-2.0d0*ln0bs*zbbs+ln0b*zbbss))/ & (2.0d0*ln0b**3*zbb**3) Fs = (c*s*(2.0d0*(Fxb-1.0d0)*Fxb + s*(1.0d0+c*s2)*Fxbs))/ & (c*s2 + Fxb)**2 Fss = (c*(-2.0d0*(3.0d0*c*s2-Fxb)*(Fxb-1.0d0)*Fxb+ & 4.0d0*s*(-c*s2+Fxb+2.0d0*c*s2*Fxb)*Fxbs - & 2.0d0*s2*(1.0d0+c*s2)*Fxbs**2+s2*(1.0d0+c*s2)* & (c*s2 + Fxb)*Fxbss))/(c*s2+Fxb)**3 ! GGA refinement function derivatives, dF/ds Hxs = - (X - 1.0d0)*Fs - (F - 1.0d0)*Xs Hxss = - 2.0d0*Fs*Xs - (X - 1.0d0)*Fss - (F - 1.0d0)*Xss ! vx formula for gradient dependent functional, ! generalized form of Eq. (24) in PRB 33, 8800 (1986) vx = vxlda*(Hx - s*Hxs) + & exlda*((4.0d0/3.0d0*s-v/s)*Hxs - & (u-4.0d0/3.0d0*s**3)*(Hxss/s-Hxs/s2)) !-------------------------------! ! correlation potential ! !-------------------------------! ! correlation refinement function derivatives, dF/ds Hcs = Xs - g*Xs Hcss = Xss - g*Xss ! vc formula for gradient dependent functional, ! generalized form of Eq. (24) in Phys. Rev. B 33, 8800 (1986) vc = vclda*(Hc - s*Hcs) + & eclda*((4.0d0/3.0d0*s - v/s)*Hcs - & (u - 4.0d0/3.0d0*s**3)*(Hcss/s - Hcs/s2)) return end subroutine !EOC !BOP ! !ROUTINE: xc_am05_ldax ! !INTERFACE: subroutine xc_am05_ldax(n,ex,vx) ! !INPUT/OUTPUT PARAMETERS: ! n : electron density (in,real) ! ex : exchange energy per electron (out,real) ! vx : exchange potential (out,real) ! !DESCRIPTION: ! Local density approximation exchange. ! ! !REVISION HISTORY: ! Created April 2005 (RAR) !EOP !BOC implicit none ! arguments real(8), intent(in) :: n real(8), intent(out) :: ex real(8), intent(out) :: vx ! constants real(8), parameter :: pi=3.1415926535897932385d0 vx=-(3.d0*n/pi)**(1.d0/3.d0) ex=(3.d0/4.d0)*vx return end subroutine !EOC !BOP ! !ROUTINE: xc_am05_ldapwc ! !INTERFACE: subroutine xc_am05_ldapwc(n,ec,vc) ! !INPUT/OUTPUT PARAMETERS: ! n : electron density (in,real) ! ec : correlation energy per electron (out,real) ! vc : correlation potential (out,real) ! !DESCRIPTION: ! Correlation energy and potential of the Perdew-Wang parameterisation of ! the Ceperley-Alder electron gas {\it Phys. Rev. B} {\bf 45}, 13244 (1992) ! and {\it Phys. Rev. Lett.} {\bf 45}, 566 (1980). This is a clean-room ! implementation from paper. ! ! !REVISION HISTORY: ! Created April 2005 (RAR) !EOP !BOC implicit none ! arguments real(8), intent(in) :: n real(8), intent(out) :: ec real(8), intent(out) :: vc ! constants real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: a01 = 0.21370d0 real(8), parameter :: b01 = 7.5957d0 real(8), parameter :: b02 = 3.5876d0 real(8), parameter :: b03 = 1.6382d0 real(8), parameter :: b04 = 0.49294d0 ! paper actually use this: ! real(8), parameter (A0 = 0.031091d0) ! but routines now "defacto standard" was distributed using: real(8), parameter :: A0 = 0.0310907d0 ! local variables real(8) rsq real(8) Q0, Q1, Q1p, ecrs rsq = (3.0d0/(4.0d0*pi*n))**(1.0d0/6.0d0) ec = -2.0d0*A0*(1.0d0 + a01*rsq**2)* & log(1.0d0 + 1.0d0/ & (2.0d0*A0*rsq*(b01 + rsq*(b02 + rsq*(b03 + b04*rsq))))) Q0 = -2.0d0*A0*(1.0d0 + a01*rsq**2) Q1 = 2.0d0*A0*rsq*(b01 + rsq*(b02 + rsq*(b03 + b04*rsq))) Q1p = A0*(b01/rsq+2.0d0*b02+3.0d0*b03*rsq+4.0d0*b04*rsq**2) ecrs = -2.0d0*A0*a01*log(1.0d0 + 1.0d0/Q1)-Q0*Q1p/(Q1**2+Q1) vc = ec - rsq**2/3.0d0*ecrs end subroutine !EOC !BOP ! !ROUTINE: xc_am05_labertw ! !INTERFACE: subroutine xc_am05_labertw(z,val) ! !INPUT/OUTPUT PARAMETERS: ! z : function argument (in,real) ! val : value of lambert W function of z (out,real) ! !DESCRIPTION: ! Lambert $W$-function using the method of Corless, Gonnet, Hare, Jeffrey and ! Knuth, {\it Adv. Comp. Math.} {\bf 5}, 329 (1996). The approach is based ! loosely on that in GNU Octave by N. N. Schraudolph, but this implementation ! is for real values and the principal branch only. ! ! !REVISION HISTORY: ! Created April 2005 (RAR) !EOP !BOC implicit none ! arguments real(8), intent(in) :: z real(8), intent(out) :: val ! local variables real(8) e,t,p integer i ! if z too low, go with the first term of the power expansion, z if (z.lt.1.d-20) then val=z return end if e=exp(1.d0) ! inital guess if (abs(z+1.d0/e).gt.1.45d0) then ! asymptotic expansion at 0 and Inf val=log(z) val=val-log(val) else ! series expansion about -1/e to first order val=1.d0*sqrt(2.d0*e*z+2.d0)-1.d0 end if ! find val through iteration do i=1,10 p=exp(val) t=val*p-z if (val.ne.-1.d0) then t=t/(p*(val+1.d0)-0.5d0*(val+2.d0)*t/(val+1.d0)) else t=0.d0 end if val=val-t if (abs(t).lt.(2.48d0*1.d-14)*(1.d0+abs(val))) return end do ! this should never happen! write(*,*) write(*,'("Error(xc_am05_labertw): iteration limit reached")') write(*,'(" Likely cause: improper numbers (INFs, NaNs) in density")') write(*,*) stop end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/xc_xalpha.f900000644000000000000000000000013213543334736015117 xustar0030 mtime=1569569246.542640723 30 atime=1569569242.855643078 30 ctime=1569569246.542640723 elk-6.3.2/src/xc_xalpha.f900000644002504400250440000000244113543334736017167 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 1998-2006 ABINIT group (DCA, XG, GMR). ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: xc_xalpha ! !INTERFACE: subroutine xc_xalpha(n,rho,exc,vxc) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! rho : charge density (in,real(n)) ! exc : exchange-correlation energy density (out,real(n)) ! vxc : exchange-correlation potential (out,real(n)) ! !DESCRIPTION: ! $X_{\alpha}$ approximation to the exchange-correlation potential and energy ! density. See J. C. Slater, {\it Phys. Rev.} {\bf 81}, 385 (1951). ! ! !REVISION HISTORY: ! Modified an ABINIT routine, September 2006 (JKD) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n) real(8), intent(out) :: exc(n),vxc(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: alpha=1.d0 real(8) r,efac,rs,rsm1,vfac vfac=(1.5d0/pi)**(2.d0/3.d0) efac=0.75d0*vfac ! loop over density points do i=1,n r=rho(i) if (r.gt.1.d-12) then rs=(3.d0/(4.d0*pi*r))**(1.d0/3.d0) rsm1=1.0d0/rs ! compute energy density exc(i)=-alpha*efac*rsm1 ! compute potential vxc(i)=-alpha*vfac*rsm1 end if end do end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/xc_wc06.f900000644000000000000000000000013013543334736014417 xustar0029 mtime=1569569246.54664072 30 atime=1569569242.860643075 29 ctime=1569569246.54664072 elk-6.3.2/src/xc_wc06.f900000644002504400250440000000323713543334736016475 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 Zhigang Wu and R. E. Cohen. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine xc_wc06(n,rho,grho,g2rho,g3rho,ex,ec,vx,vc) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rho(n),grho(n),g2rho(n),g3rho(n) real(8), intent(out) :: ex(n),ec(n),vx(n),vc(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: thrd=1.d0/3.d0 ! default PBE beta real(8), parameter :: beta=0.06672455060314922d0 ! maximum allowed |grad rho| real(8), parameter :: gmax=1.d6 ! maximum allowed grad^2 rho real(8), parameter :: g2max=1.d12 ! maximum allowed (grad rho).(grad |grad rho|) real(8), parameter :: g3max=1.d14 real(8) r,grho_,g2rho_,g3rho_ real(8) kf,s,u,v,rs,z,g real(8) ks,ksg,t,uu,vv,ww do i=1,n r=rho(i) if (r.gt.1.d-12) then grho_=grho(i) g2rho_=g2rho(i) g3rho_=g3rho(i) ! check gradients are within range if (grho_.gt.gmax) grho_=gmax if (abs(g2rho_).gt.g2max) g2rho_=sign(g2max,g2rho_) if (abs(g3rho_).gt.g3max) g3rho_=sign(g3max,g3rho_) kf=(r*3.d0*pi**2)**thrd s=grho_/(2.d0*kf*r) u=g3rho_/((r**2)*(2.d0*kf)**3) v=g2rho_/(r*(2.d0*kf)**2) ! Wu-Cohen exchange call x_wc06(r,s,u,v,ex(i),vx(i)) ! Perdew-Burke-Ernzerhof correlation rs=(3.d0/(4.d0*pi*r))**thrd z=0.d0 g=1.d0 ks=sqrt(4.d0*kf/pi) ksg=2.d0*ks*g t=grho_/(ksg*r) uu=g3rho_/((r**2)*ksg**3) vv=g2rho_/(r*ksg**2) ww=0.d0 call c_pbe(beta,rs,z,t,uu,vv,ww,ec(i),vc(i),vc(i)) else ex(i)=0.d0 ec(i)=0.d0 vx(i)=0.d0 vc(i)=0.d0 end if end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/x_wc06.f900000644000000000000000000000013213543334736014256 xustar0030 mtime=1569569246.551640717 30 atime=1569569242.865643071 30 ctime=1569569246.551640717 elk-6.3.2/src/x_wc06.f900000644002504400250440000000217513543334736016332 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2006 Zhigang Wu and R. E. Cohen. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine x_wc06(rho,s,u,v,ex,vx) implicit none ! arguments real(8), intent(in) :: rho,s,u,v real(8), intent(out) :: ex,vx ! local variables real(8), parameter :: ax=-0.7385587663820224059d0 real(8), parameter :: mu=0.2195149727645171d0 real(8), parameter :: kappa=0.804d0 real(8), parameter :: b=10.d0/81.d0 real(8), parameter :: c=0.00793746933516d0 real(8), parameter :: thrd=1.d0/3.d0 real(8), parameter :: thrd4=4.d0/3.d0 real(8) dmu,exu real(8) s2,s4,es2,x,p0,fxwc real(8) fs,fss,t0,t1,t2,t3 ! lda exchange energy density exu=ax*rho**thrd s2=s**2 s4=s2**2 es2=exp(-s2) t0=1.d0+c*s4 dmu=mu-b x=b*s2+dmu*s2*es2+log(t0) p0=1.d0+x/kappa ! WC enhancement factor fxwc=1.d0+kappa-kappa/p0 ! exchange energy density ex=exu*fxwc t1=b+dmu*(1.d0-s2)*es2+2.d0*c*s2/t0 t2=dmu*s*(s2-2.d0)*es2+2.d0*c/t0-4.d0*(c**2)*s4/(t0**2) t3=1.d0/(p0**2) fs=2.d0*t1*t3 fss=t3*(4.d0*t2-8.d0*s*(t1**2)/(kappa*p0)) ! exchange potential vx=exu*(thrd4*fxwc-(u-thrd4*s2*s)*fss-v*fs) return end elk-6.3.2/src/PaxHeaders.21352/x_pbe.f900000644000000000000000000000013213543334736014245 xustar0030 mtime=1569569246.555640715 30 atime=1569569242.870643068 30 ctime=1569569246.555640715 elk-6.3.2/src/x_pbe.f900000644002504400250440000000125413543334736016316 0ustar00dewhurstdewhurst00000000000000 ! This routine is based on code written by K. Burke. subroutine x_pbe(kappa,mu,rho,s,u,v,ex,vx) implicit none ! arguments real(8), intent(in) :: kappa,mu real(8), intent(in) :: rho,s,u,v real(8), intent(out) :: ex,vx ! local variables real(8), parameter :: ax=-0.7385587663820224058d0 real(8), parameter :: thrd=1.d0/3.d0 real(8), parameter :: thrd4=4.d0/3.d0 real(8) ul,exu,s2,p0 real(8) fxpbe,fs,fss ul=mu/kappa ! LDA exchange energy density exu=ax*rho**thrd ! PBE enhancement factor s2=s**2 p0=1.d0+ul*s2 fxpbe=1.d0+kappa-kappa/p0 ex=exu*fxpbe fs=2.d0*kappa*ul/(p0*p0) fss=-4.d0*ul*s*fs/p0 ! exchange potential vx=exu*(thrd4*fxpbe-(u-thrd4*s2*s)*fss-v*fs) return end subroutine elk-6.3.2/src/PaxHeaders.21352/c_pbe.f900000644000000000000000000000013213543334736014220 xustar0030 mtime=1569569246.559640712 30 atime=1569569242.875643065 30 ctime=1569569246.559640712 elk-6.3.2/src/c_pbe.f900000644002504400250440000000517313543334736016275 0ustar00dewhurstdewhurst00000000000000 ! This routine is based on code written by K. Burke. subroutine c_pbe(beta,rs,z,t,uu,vv,ww,ec,vcup,vcdn) implicit none ! arguments real(8), intent(in) :: beta,rs,z,t,uu,vv,ww real(8), intent(out) :: ec,vcup,vcdn ! local variables real(8), parameter :: thrd=1.d0/3.d0 real(8), parameter :: thrdm=-thrd real(8), parameter :: thrd2=2.d0*thrd real(8), parameter :: thrd4=4.d0*thrd real(8), parameter :: sixthm=thrdm/2.d0 real(8), parameter :: gam=0.5198420997897463295d0 real(8), parameter :: fzz=8.d0/(9.d0*gam) real(8), parameter :: gamma=0.0310906908696548950d0 real(8), parameter :: eta=1.d-12 real(8) rtrs,eu,eurs,ep,eprs,alfm,alfrsm,z4,f real(8) ecrs,fz,ecz,comm,g,g3,pon,b,b2,t2,t4 real(8) q4,q5,g4,t6,rsthrd,gz,fac,bg,bec,q8,q9 real(8) hb,hrs,fact0,fact1,hbt,hrst,hz,ht,hzt real(8) fact2,fact3,htt,pref,fact5,h,dvcup,dvcdn real(8) delt delt=beta/gamma rtrs=sqrt(rs) call c_pbe_gcor(0.0310907d0,0.21370d0,7.5957d0,3.5876d0,1.6382d0,0.49294d0, & rtrs,eu,eurs) call c_pbe_gcor(0.01554535d0,0.20548d0,14.1189d0,6.1977d0,3.3662d0,0.62517d0, & rtrs,ep,eprs) call c_pbe_gcor(0.0168869d0,0.11125d0,10.357d0,3.6231d0,0.88026d0,0.49671d0, & rtrs,alfm,alfrsm) z4=z**4 f=((1.d0+z)**thrd4+(1.d0-z)**thrd4-2.d0)/gam ! local contribution to correlation energy density ec=eu*(1.d0-f*z4)+ep*f*z4-alfm*f*(1.d0-z4)/fzz ecrs=eurs*(1.d0-f*z4)+eprs*f*z4-alfrsm*f*(1.d0-z4)/fzz fz=thrd4*((1.d0+z)**thrd-(1.d0-z)**thrd)/gam ecz=4.d0*(z**3)*f*(ep-eu+alfm/fzz)+fz*(z4*ep-z4*eu-(1.d0-z4)*alfm/fzz) comm=ec-rs*ecrs/3.d0-z*ecz ! local contribution to correlation potential vcup=comm+ecz vcdn=comm-ecz g=((1.d0+z)**thrd2+(1.d0-z)**thrd2)/2.d0 g3=g**3 pon=-ec/(g3*gamma) b=delt/(exp(pon)-1.d0) b2=b*b t2=t*t t4=t2*t2 q4=1.d0+b*t2 q5=1.d0+b*t2+b2*t4 ! gradient correction to energy density h=g3*(beta/delt)*log(1.d0+delt*q4*t2/q5) g4=g3*g t6=t4*t2 rsthrd=rs/3.d0 gz=(((1.d0+z)**2+eta)**sixthm-((1.d0-z)**2+eta)**sixthm)/3.d0 fac=delt/b+1.d0 bg=-3.d0*b2*ec*fac/(beta*g4) bec=b2*fac/(beta*g3) q8=q5*q5+delt*q4*q5*t2 q9=1.d0+2.d0*b*t2 hb=-beta*g3*b*t6*(2.d0+b*t2)/q8 hrs=-rsthrd*hb*bec*ecrs fact0=2.d0*delt-6.d0*b fact1=q5*q9+q4*q9*q9 hbt=2.d0*beta*g3*t4*((q4*q5*fact0-delt*fact1)/q8)/q8 hrst=rsthrd*t2*hbt*bec*ecrs hz=3.d0*gz*h/g+hb*(bg*gz+bec*ecz) ht=2.d0*beta*g3*q9/q8 hzt=3.d0*gz*ht/g+hbt*(bg*gz+bec*ecz) fact2=q4*q5+b*t2*(q4*q9+q5) fact3=2.d0*b*q5*q9+delt*fact2 htt=4.d0*beta*g3*t*(2.d0*b/q8-(q9*fact3/q8)/q8) comm=h+hrs+hrst+t2*ht/6.d0+7.d0*t2*t*htt/6.d0 pref=hz-gz*t2*ht/g fact5=gz*(2.d0*ht+t*htt)/g comm=comm-pref*z-uu*htt-vv*ht-ww*(hzt-fact5) ! gradient correction to potential dvcup=comm+pref dvcdn=comm-pref ! add gradient corrections ec=ec+h vcup=vcup+dvcup vcdn=vcdn+dvcdn return end subroutine elk-6.3.2/src/PaxHeaders.21352/c_pbe_gcor.f900000644000000000000000000000013013543334736015230 xustar0029 mtime=1569569246.56364071 30 atime=1569569242.880643062 29 ctime=1569569246.56364071 elk-6.3.2/src/c_pbe_gcor.f900000644002504400250440000000073013543334736017301 0ustar00dewhurstdewhurst00000000000000 ! This routine is based on code written by K. Burke. subroutine c_pbe_gcor(a,a1,b1,b2,b3,b4,rtrs,gg,ggrs) implicit none ! arguments real(8), intent(in) :: a,a1,b1,b2,b3,b4,rtrs real(8), intent(out) :: gg,ggrs ! local variables real(8) q0,q1,q2,q3 q0=-2.d0*a*(1.d0+a1*rtrs*rtrs) q1=2.d0*a*rtrs*(b1+rtrs*(b2+rtrs*(b3+b4*rtrs))) q2=log(1.d0+1.d0/q1) gg=q0*q2 q3=a*(b1/rtrs+2.d0*b2+rtrs*(3.d0*b3+4.d0*b4*rtrs)) ggrs=-2.d0*a*a1*q2-q0*q3/(q1*(1.d0+q1)) return end subroutine elk-6.3.2/src/PaxHeaders.21352/xc_vbh.f900000644000000000000000000000013213543334736014421 xustar0030 mtime=1569569246.568640706 30 atime=1569569242.885643059 30 ctime=1569569246.568640706 elk-6.3.2/src/xc_vbh.f900000644002504400250440000000621113543334736016470 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 F. Cricchio, J. K. Dewhurst and S. Sharma. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: xc_vbh ! !INTERFACE: subroutine xc_vbh(n,rhoup,rhodn,ex,ec,vxup,vxdn,vcup,vcdn) ! !INPUT/OUTPUT PARAMETERS: ! n : number of density points (in,integer) ! rhoup : spin-up charge density (in,real(n)) ! rhodn : spin-down charge density (in,real(n)) ! ex : exchange energy density (out,real(n)) ! ec : correlation energy density (out,real(n)) ! vxup : spin-up exchange potential (out,real(n)) ! vxdn : spin-down exchange potential (out,real(n)) ! vcup : spin-up correlation potential (out,real(n)) ! vcdn : spin-down correlation potential (out,real(n)) ! !DESCRIPTION: ! Spin-polarised exchange-correlation potential and energy functional of ! von Barth and Hedin: {\it J. Phys. C} {\bf 5}, 1629 (1972). Note that the ! implementation is in Rydbergs in order to follow the paper step by step, at ! the end the potential and energy are converted to Hartree. ! ! !REVISION HISTORY: ! Created September 2007 (F. Cricchio) !EOP !BOC implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rhoup(n),rhodn(n) real(8), intent(out) :: ex(n),ec(n) real(8), intent(out) :: vxup(n),vxdn(n) real(8), intent(out) :: vcup(n),vcdn(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: cp=0.0504d0 real(8), parameter :: cf=0.0254d0 real(8), parameter :: rp=30.d0 real(8), parameter :: rf=75.d0 real(8) alpha0,eps0_x,a,gamma real(8) rup,rdn,r,rs,x,zf,zp real(8) fx,fp,ff,epsp_x,mup_x real(8) epsp_c,epsf_c,mup_c,muf_c,vc,tau_c alpha0=(4.d0/(9.d0*pi))**(1.d0/3.d0) eps0_x=(3.d0/2.d0)/(pi*alpha0) a=2.d0**(-1.d0/3.d0) gamma=(4.d0/3.d0)*a/(1.d0-a) do i=1,n rup=rhoup(i); rdn=rhodn(i) ! total density r=rup+rdn if ((rup.ge.0.d0).and.(rdn.ge.0.d0).and.(r.gt.1.d-12)) then ! Wigner-Seitz radius in atomic units (a0=1) rs=(3.d0/(4.d0*pi*r))**(1.d0/3.d0) x=rup/r fx=(1.d0/(1.d0-a))*(x**(4.d0/3.d0)+(1.d0-x)**(4.d0/3.d0)-a) epsp_x=-eps0_x/rs mup_x=(4.d0/3.d0)*epsp_x ! exchange energy ex(i)=epsp_x+(1.d0/gamma)*mup_x*fx zp=rs/rp fp=(1.d0+zp**3)*log(1.d0+1.d0/zp)+0.5d0*zp-zp**2-1.d0/3.d0 zf=rs/rf ff=(1.d0+zf**3)*log(1.d0+1.d0/zf)+0.5d0*zf-zf**2-1.d0/3.d0 epsp_c=-cp*fp epsf_c=-cf*ff vc=gamma*(epsf_c-epsp_c) ! correlation energy ec(i)=epsp_c+(1.d0/gamma)*vc*fx mup_c=-cp*log(1.d0+rp/rs) muf_c=-cf*log(1.d0+rf/rs) tau_c=muf_c-mup_c-(4.d0/3.d0)*(epsf_c-epsp_c) ! exchange potential vxup(i)=mup_x*(2.d0*x)**(1.d0/3.d0) vxdn(i)=mup_x*(2.d0*(1.d0-x))**(1.d0/3.d0) ! correlation potential vcup(i)=vc*(2.d0*x)**(1.d0/3.d0)+mup_c-vc+tau_c*fx vcdn(i)=vc*(2.d0*(1.d0-x))**(1.d0/3.d0)+mup_c-vc+tau_c*fx ! convert from Rybergs to Hartree ex(i)=0.5d0*ex(i) ec(i)=0.5d0*ec(i) vxup(i)=0.5d0*vxup(i) vxdn(i)=0.5d0*vxdn(i) vcup(i)=0.5d0*vcup(i) vcdn(i)=0.5d0*vcdn(i) else ex(i)=0.d0 ec(i)=0.d0 vxup(i)=0.d0 vxdn(i)=0.d0 vcup(i)=0.d0 vcdn(i)=0.d0 end if end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/fxc_pwca.f900000644000000000000000000000013213543334736014742 xustar0030 mtime=1569569246.573640703 30 atime=1569569242.890643056 30 ctime=1569569246.573640703 elk-6.3.2/src/fxc_pwca.f900000644002504400250440000001241113543334736017010 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine fxc_pwca(n,rhoup,rhodn,fxcuu,fxcud,fxcdd) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: rhoup(n) real(8), intent(in) :: rhodn(n) real(8), intent(out) :: fxcuu(n) real(8), intent(out) :: fxcud(n) real(8), intent(out) :: fxcdd(n) ! local variables integer i real(8), parameter :: pi=3.1415926535897932385d0 real(8), parameter :: thrd=1.d0/3.d0, thrd4=4.d0/3.d0 real(8), parameter :: d2f0=1.709921d0 real(8) a(3),a1(3),b1(3),b2(3),b3(3),b4(3) data a / 0.0310907d0, 0.01554535d0, 0.0168869d0 / data a1 / 0.21370d0, 0.20548d0, 0.11125d0 / data b1 / 7.5957d0, 14.1189d0, 10.357d0 / data b2 / 3.5876d0, 6.1977d0, 3.6231d0 / data b3 / 1.6382d0, 3.3662d0, 0.88026d0 / data b4 / 0.49294d0, 0.62517d0, 0.49671d0 / real(8) p1,p2,p3,rup,rdn,r,ri,ri2,ri3 real(8) rs,rs2,rs12,rs32,rsi,rs12i,rs32i real(8) mz,z,z2,z3,z4,fz,dfz,d2fz real(8) drs,d2rs,dzu,d2zu,dzd,d2zd,d2zud real(8) ders,d2ers,dez,d2ez,d2ersz real(8) deu,d2eu,ded,d2ed,d2eud,ex real(8) ec0,dec0,d2ec0,ec1,dec1,d2ec1 real(8) ac,dac,d2ac,a2,dt1,d2t1,dt2,d2t2 real(8) t1,t2,t3,t4,t5,t6,t7,t8 if (n.le.0) then write(*,*) write(*,'("Error(xc_pwca): invalid n : ",I8)') n write(*,*) stop end if ! prefactors t1=3.d0/(4.d0*pi) p1=t1**thrd p2=t1*(9.d0*pi/4.d0)**thrd p3=1.d0/(2.d0**thrd4-2.d0) do i=1,n rup=rhoup(i); rdn=rhodn(i) ! total density r=rup+rdn if ((rup.lt.0.d0).or.(rdn.lt.0.d0).or.(r.lt.1.d-20)) then fxcuu(i)=0.d0 fxcud(i)=0.d0 fxcdd(i)=0.d0 cycle end if ri=1.d0/r ri2=ri**2 ri3=ri2*ri rs=p1*ri**thrd rs2=rs**2 rs12=sqrt(rs) rs32=rs12*rs rsi=1.d0/rs rs12i=1.d0/rs12 rs32i=1.d0/rs32 mz=rup-rdn z=mz/r z2=z**2 z3=z2*z z4=z3*z ! drs/drup = drs/drdn = drs/drho drs=-thrd*rs*ri ! d2rs/drup^2 = d^2rs/drn^2 = d^2rs/drho^2 d2rs=-thrd4*drs*ri ! dz/drup, dz/drdn t1=mz*ri2 dzu=ri-t1 dzd=-ri-t1 ! d^2z/drup^2, d^2z/drdn^2, d^2z/drup*drdn t1=2.d0*mz*ri3 t2=2.d0*ri2 d2zu=t1-t2 d2zd=t1+t2 d2zud=t1 !------------------! ! exchange ! !------------------! t1=-p2*rsi/2.d0 t2=1.d0+z t3=1.d0-z t4=t2**thrd4 t5=t3**thrd4 t6=t4+t5 ! exchange energy density ex=t1*t6 ! dex/drs ders=-ex*rsi ! d^2ex/drs^2 d2ers=-2.d0*ders*rsi ! f(z) fz=p3*(t6-2.d0) ! dex/dz t4=t4/t2 t5=t5/t3 t6=t4-t5 t7=thrd4*t6 dez=t1*t7 ! df/dz dfz=p3*t7 ! d^2ex/dz^2 t4=t4/t2 t5=t5/t3 t6=t4+t5 t7=thrd4*thrd*t6 d2ez=t1*t7 ! d^2f/dz^2 d2fz=p3*t7 ! d^2ex/drs*dz d2ersz=-dez*rsi ! dex/drup, dex/drdn t1=ders*drs deu=t1+dez*dzu ded=t1+dez*dzd ! d^2ex/drup^2 t1=d2ers*drs t2=d2ersz*drs t3=ders*d2rs t4=(t1+d2ersz*dzu)*drs+t3 t5=t2+d2ez*dzu d2eu=t4+t5*dzu+dez*d2zu ! d^2ex/drdn^2 d2ed=(t1+d2ersz*dzd)*drs+t3+(t2+d2ez*dzd)*dzd+dez*d2zd ! d^2ex/drup*drdn d2eud=t4+t5*dzd+dez*d2zud ! calculate fxc fxcuu(i)=2.d0*deu+r*d2eu fxcud(i)=deu+ded+r*d2eud fxcdd(i)=2.d0*ded+r*d2ed !---------------------! ! correlation ! !---------------------! ! ec(rs,0) a2=2.d0*a(1) t1=a2*(b1(1)*rs12+b2(1)*rs+b3(1)*rs32+b4(1)*rs2) dt1=a2*(0.5d0*b1(1)*rs12i+b2(1)+1.5d0*b3(1)*rs12+2.d0*b4(1)*rs) d2t1=a2*(-0.25d0*b1(1)*rs32i+0.75d0*b3(1)*rs12i+2.d0*b4(1)) t3=1.d0/t1 t4=t3**2 t2=1.d0+t3 dt2=-dt1*t4 d2t2=t4*(2.d0*t3*dt1**2-d2t1) t3=1.d0/t2 t4=1.d0+a1(1)*rs t5=log(t2) ec0=-a2*t4*t5 dec0=-a2*(a1(1)*t5+t4*t3*dt2) d2ec0=-a2*(2.d0*a1(1)*t3*dt2+t4*t3*(d2t2-t3*dt2**2)) ! ec(rs,1) a2=2.d0*a(2) t1=a2*(b1(2)*rs12+b2(2)*rs+b3(2)*rs32+b4(2)*rs2) dt1=a2*(0.5d0*b1(2)*rs12i+b2(2)+1.5d0*b3(2)*rs12+2.d0*b4(2)*rs) d2t1=a2*(-0.25d0*b1(2)*rs32i+0.75d0*b3(2)*rs12i+2.d0*b4(2)) t3=1.d0/t1 t4=t3**2 t2=1.d0+t3 dt2=-dt1*t4 d2t2=t4*(2.d0*t3*dt1**2-d2t1) t3=1.d0/t2 t4=1.d0+a1(2)*rs t5=log(t2) ec1=-a2*t4*t5 dec1=-a2*(a1(2)*t5+t4*t3*dt2) d2ec1=-a2*(2.d0*a1(2)*t3*dt2+t4*t3*(d2t2-t3*dt2**2)) ! ac(rs) a2=2.d0*a(3) t1=a2*(b1(3)*rs12+b2(3)*rs+b3(3)*rs32+b4(3)*rs2) dt1=a2*(0.5d0*b1(3)*rs12i+b2(3)+1.5d0*b3(3)*rs12+2.d0*b4(3)*rs) d2t1=a2*(-0.25d0*b1(3)*rs32i+0.75d0*b3(3)*rs12i+2.d0*b4(3)) t3=1.d0/t1 t4=t3**2 t2=1.d0+t3 dt2=-dt1*t4 d2t2=t4*(2.d0*t3*dt1**2-d2t1) t3=1.d0/t2 t4=1.d0+a1(3)*rs t5=log(t2) ac=a2*t4*t5 dac=a2*(a1(3)*t5+t4*t3*dt2) d2ac=a2*(2.d0*a1(3)*t3*dt2+t4*t3*(d2t2-t3*dt2**2)) ! correlation energy density derivatives t1=1.d0-z4 t2=(fz/d2f0)*t1 t3=ec1-ec0 t4=fz*z4 ! dec/drs t5=dec1-dec0 ders=dec0+dac*t2+t5*t4 ! d^2ec/drs^2 t6=d2ec1-d2ec0 d2ers=d2ec0+d2ac*t2+t6*t4 ! dec/dz t4=ac/d2f0 t6=4.d0*fz*z3 t7=dfz*t1-t6 t8=dfz*z4+t6 dez=t4*t7+t3*t8 ! d^2ec/drs*dz d2ersz=(dac/d2f0)*t7+t5*t8 ! d^2ec/dz^2 t7=8.d0*dfz*z3 t8=12.d0*fz*z2 d2ez=t4*(d2fz*t1-t7-t8)+t3*(d2fz*z4+t7+t8) ! dec/drup, dec/drdn t1=ders*drs deu=t1+dez*dzu ded=t1+dez*dzd ! d^2ec/drup^2 t1=d2ers*drs t2=d2ersz*drs t3=ders*d2rs t4=(t1+d2ersz*dzu)*drs+t3 t5=t2+d2ez*dzu d2eu=t4+t5*dzu+dez*d2zu ! d^2ec/drdn^2 d2ed=(t1+d2ersz*dzd)*drs+t3+(t2+d2ez*dzd)*dzd+dez*d2zd ! d^2ec/drup*drdn d2eud=t4+t5*dzd+dez*d2zud ! calculate fxc fxcuu(i)=fxcuu(i)+2.d0*deu+r*d2eu fxcud(i)=fxcud(i)+deu+ded+r*d2eud fxcdd(i)=fxcdd(i)+2.d0*ded+r*d2ed end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gendmatmt.f900000644000000000000000000000013213543334736015130 xustar0030 mtime=1569569246.577640701 30 atime=1569569242.896643052 30 ctime=1569569246.577640701 elk-6.3.2/src/gendmatmt.f900000644002504400250440000000110613543334736017175 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendmatmt use modmain use moddftu implicit none ! generate the density matrix in each muffin-tin call gendmat(.false.,.false.,0,lmaxdm,lmmaxdm,dmatmt) ! initialise with symmetry-breaking tensor moments if (ftmtype.lt.0) then dmftm=dmftm*reducebf dmatmt=dmatmt+dmftm endif ! symmetrise the density matrix call symdmat(lmaxdm,lmmaxdm,dmatmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genveedu.f900000644000000000000000000000013213543334736014752 xustar0030 mtime=1569569246.581640698 30 atime=1569569242.901643048 30 ctime=1569569246.581640698 elk-6.3.2/src/genveedu.f900000644002504400250440000000320613543334736017022 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genveedu ! !INTERFACE: subroutine genveedu(i,u,j,vee) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! i : DFT+U entry (in,integer) ! u : parameter U (out,real) ! j : parameter J (out,real) ! vee : Coulomb matrix elements (out,real(-lmaxdm:lmaxdm,-lmaxdm:lmaxdm, ! -lmaxdm:lmaxdm,-lmaxdm:lmaxdm)) ! !DESCRIPTION: ! Calculates the Coulomb matrix elements used in DFT+U calculations. See ! {\it Phys. Rev. B} {\bf 52}, 5467 (1995). ! ! !REVISION HISTORY: ! Created November 2007 (FC,JKD,FB,LN) ! Modified July 2009 (FC) !EOP !BOC implicit none ! arguments integer, intent(in) :: i real(8), intent(out) :: u,j real(8), intent(out) :: vee(-lmaxdm:lmaxdm,-lmaxdm:lmaxdm,-lmaxdm:lmaxdm, & -lmaxdm:lmaxdm) ! local variables integer l,m1,m2,m3,m4,k,q real(8) sum1,sum2,t1 ! automatic arrays real(8) :: f(0:2*lmaxdm) ! external functions real(8) gaunt external gaunt l=idftu(2,i) ! calculate Slater integrals call genfdu(i,u,j,f) do m1=-l,l do m2=-l,l do m3=-l,l do m4=-l,l sum1=0.d0 do k=0,2*l,2 sum2=0.d0 do q=-k,k t1=gaunt(l,k,l,m1,q,m2)*gaunt(l,k,l,m3,-q,m4) if (mod(q,2).eq.0) then sum2=sum2+t1 else sum2=sum2-t1 end if end do sum1=sum1+f(k)*sum2/dble(2*k+1) end do vee(m1,m3,m2,m4)=fourpi*sum1 end do end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genvmatmt.f900000644000000000000000000000013213543334736015152 xustar0030 mtime=1569569246.586640695 30 atime=1569569242.905643046 30 ctime=1569569246.586640695 elk-6.3.2/src/genvmatmt.f900000644002504400250440000002027213543334736017224 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genvmatmt !INTERFACE: subroutine genvmatmt ! !USES: use modmain use moddftu ! !DESCRIPTION: ! Calculate the DFT+U potential matrix to be used in the second-variational ! step. See {\it Phys. Rev. B} {\bf 52}, 5467 (1995) and {\it Phys. Rev. B} ! {\bf 80}, 035121 (2009). ! ! !REVISION HISTORY: ! Created November 2007 (FC,FB,LN,JKD) !EOP !BOC ! local variables integer is,ia,ias,i integer l,m1,m2,lm1,lm2 real(8) t1,t2 ! allocatable arrays real(8), allocatable :: enfll(:,:) complex(8), allocatable :: vmfll(:,:,:,:,:) select case(dftu) case(0) vmatmt(:,:,:,:,:)=0.d0 case(1,2) ! fully localised limit (FLL) or around mean field (AFM) call genvmatmt_12 case(3) ! interpolation between the two [PRB 67, 153106 (2003)] allocate(enfll(natmmax,ndftu)) allocate(vmfll(lmmaxdm,nspinor,lmmaxdm,nspinor,natmtot)) dftu=1 call genvmatmt_12 vmfll(:,:,:,:,:)=vmatmt(:,:,:,:,:) enfll(:,:)=engyadu(:,:) dftu=2 call genvmatmt_12 ! read in the interpolation constant (alpha) if required if (readadu) call readalphadu ! reset dftu value dftu=3 do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) t1=alphadu(ia,i) t2=1.d0-t1 lm1=l**2 do m1=-l,l lm1=lm1+1 lm2=0 do m2=-l,l lm2=lm2+1 vmatmt(lm1,:,lm2,:,ias)=t1*vmfll(lm1,:,lm2,:,ias) & +t2*vmatmt(lm1,:,lm2,:,ias) end do end do engyadu(ia,i)=t1*enfll(ia,i)+t2*engyadu(ia,i) end do end do deallocate(enfll,vmfll) case default write(*,*) write(*,'("Error(genvmatmt): invalid dftu : ",I8)') dftu write(*,*) stop end select ! add the fixed tensor moment field if required call ftmfield return end subroutine subroutine genvmatmt_12 use modmain use moddftu use modtest implicit none ! local variables integer ispn,jspn integer is,ia,ias,i integer l,m1,m2,m3,m4,nm integer lm1,lm2,lm3,lm4 real(8) u,j,n,n0 real(8) mg(3),mg0(3),mg2 real(8) edc,sum1,sum2 complex(8) z1,z2 ! automatic arrays real(8) vee(-lmaxdm:lmaxdm,-lmaxdm:lmaxdm,-lmaxdm:lmaxdm,-lmaxdm:lmaxdm) complex(8) dm(lmmaxdm,nspinor,lmmaxdm,nspinor) complex(8) dms(nspinor,nspinor) ! zero the DFT+U potential for each atom vmatmt(:,:,:,:,:)=0.d0 ! zero the DFT+U energy for each atom engyadu(:,:)=0.d0 ! zero the interpolation constants alphadu(:,:)=0.d0 ! loop over DFT+U entries do i=1,ndftu is=idftu(1,i) l=idftu(2,i) nm=2*l+1 ! calculate u, v and the Coulomb matrix elements call genveedu(i,u,j,vee) if ((abs(u).lt.1.d-10).and.(abs(j).lt.1.d-10)) cycle ! begin loop over atoms do ia=1,natoms(is) ias=idxas(ia,is) ! copy the density matrix for this atom dm(:,:,:,:)=dmatmt(:,:,:,:,ias) ! trace of density matrix for each spin dms(:,:)=0.d0 do ispn=1,nspinor do jspn=1,nspinor do m1=-l,l lm1=idxlm(l,m1) dms(ispn,jspn)=dms(ispn,jspn)+dm(lm1,ispn,lm1,jspn) end do end do end do ! trace over spin n=dble(dms(1,1)) if (spinpol) n=n+dble(dms(2,2)) n0=n/dble(nspinor*nm) ! magnetisation if (spinpol) then mg(:)=0.d0 mg(3)=dble(dms(1,1)-dms(2,2)) ! non-collinear terms if (ncmag) then mg(1)=dble(dms(1,2)+dms(2,1)) mg(2)=dble(zi*(dms(1,2)-dms(2,1))) end if mg0(:)=mg(:)/dble(nspinor*nm) end if ! around mean field (AFM) approach if (dftu.eq.2) then ! modify density matrices do m1=-l,l lm1=idxlm(l,m1) if (spinpol) then dm(lm1,1,lm1,1)=dm(lm1,1,lm1,1)-(n0+mg0(3)) dm(lm1,2,lm1,2)=dm(lm1,2,lm1,2)-(n0-mg0(3)) ! non-collinear terms if (ncmag) then dm(lm1,1,lm1,2)=dm(lm1,1,lm1,2)-(mg0(1)-zi*mg0(2)) dm(lm1,2,lm1,1)=dm(lm1,2,lm1,1)-(mg0(1)+zi*mg0(2)) end if else ! spin-unpolarised case dm(lm1,1,lm1,1)=dm(lm1,1,lm1,1)-n0 end if end do ! determine alpha [PRB 67,153106 (2003)] sum1=0.d0 do ispn=1,nspinor do m1=-l,l lm1=idxlm(l,m1) do jspn=1,nspinor do m2=-l,l lm2=idxlm(l,m2) sum1=sum1+dble(dm(lm1,ispn,lm2,jspn)*dm(lm2,jspn,lm1,ispn)) end do end do end do end do if (spinpol) then mg2=mg(3)**2 if (ncmag) mg2=mg2+mg(1)**2+mg(2)**2 else mg2=0.d0 end if sum2=n*(1.d0-0.5d0*n/dble(nm))-0.5d0*mg2/dble(nm) if (abs(sum2).gt.1.d-14) then alphadu(ia,i)=sum1/sum2 else alphadu(ia,i)=0.d0 end if end if ! calculation of DFT+U potential and energy ! begin loops over m1 and m2 do m1=-l,l lm1=idxlm(l,m1) do m2=-l,l lm2=idxlm(l,m2) ! begin loops over m3 and m4 do m3=-l,l lm3=idxlm(l,m3) do m4=-l,l lm4=idxlm(l,m4) do ispn=1,nspinor do jspn=1,nspinor z1=dm(lm2,ispn,lm1,ispn)*dm(lm4,jspn,lm3,jspn) z2=dm(lm4,jspn,lm1,ispn)*dm(lm2,ispn,lm3,jspn) engyadu(ia,i)=engyadu(ia,i)+dble(z1-z2)*vee(m1,m3,m2,m4) vmatmt(lm1,ispn,lm2,ispn,ias)=vmatmt(lm1,ispn,lm2,ispn,ias) & +dm(lm4,jspn,lm3,jspn)*vee(m1,m3,m2,m4) vmatmt(lm1,ispn,lm4,jspn,ias)=vmatmt(lm1,ispn,lm4,jspn,ias) & -dm(lm2,ispn,lm3,jspn)*vee(m1,m3,m2,m4) end do end do ! end loops over m3 and m4 end do end do ! end loops over m1 and m2 end do end do ! multiply energy by factor 1/2 engyadu(ia,i)=0.5d0*engyadu(ia,i) ! fully localised limit (FLL) approach: double counting corrections if (dftu.eq.1) then if (spinpol) then ! spin-polarised if (ncmag) then ! non-collinear case ! correction to the energy edc=0.5d0*u*n*(n-1.d0) edc=edc-0.5d0*j*dble(dms(1,1)*(dms(1,1)-1.d0)) edc=edc-0.5d0*j*dble(dms(2,2)*(dms(2,2)-1.d0)) edc=edc-0.5d0*j*dble(dms(1,2)*dms(2,1)) edc=edc-0.5d0*j*dble(dms(2,1)*dms(1,2)) ! correction to the potential do m1=-l,l lm1=idxlm(l,m1) vmatmt(lm1,1,lm1,1,ias)=vmatmt(lm1,1,lm1,1,ias) & -u*(n-0.5d0)+j*(dms(1,1)-0.5d0) vmatmt(lm1,2,lm1,2,ias)=vmatmt(lm1,2,lm1,2,ias) & -u*(n-0.5d0)+j*(dms(2,2)-0.5d0) vmatmt(lm1,1,lm1,2,ias)=vmatmt(lm1,1,lm1,2,ias)+j*dms(1,2) vmatmt(lm1,2,lm1,1,ias)=vmatmt(lm1,2,lm1,1,ias)+j*dms(2,1) end do else ! collinear case ! correction to the energy edc=0.5d0*u*n*(n-1.d0) edc=edc-0.5d0*j*dble(dms(1,1)*(dms(1,1)-1.d0)) edc=edc-0.5d0*j*dble(dms(2,2)*(dms(2,2)-1.d0)) ! correction to the potential do m1=-l,l lm1=idxlm(l,m1) vmatmt(lm1,1,lm1,1,ias)=vmatmt(lm1,1,lm1,1,ias) & -u*(n-0.5d0)+j*(dms(1,1)-0.5d0) vmatmt(lm1,2,lm1,2,ias)=vmatmt(lm1,2,lm1,2,ias) & -u*(n-0.5d0)+j*(dms(2,2)-0.5d0) end do end if else ! spin-unpolarised ! correction to the energy edc=0.5d0*u*n*(n-1.d0) edc=edc-0.5d0*j*n*(n-1.d0) ! correction to the potential do m1=-l,l lm1=idxlm(l,m1) vmatmt(lm1,1,lm1,1,ias)=vmatmt(lm1,1,lm1,1,ias)-u*(n-0.5d0) & +j*(n-0.5d0) end do end if engyadu(ia,i)=engyadu(ia,i)-edc end if ! trace of dmatmt times vmatmt sum1=0.d0 do ispn=1,nspinor do m1=-l,l lm1=idxlm(l,m1) do jspn=1,nspinor do m2=-l,l lm2=idxlm(l,m2) sum1=sum1+dble(dm(lm1,ispn,lm2,jspn)*vmatmt(lm2,jspn,lm1,ispn,ias)) end do end do end do end do ! subtract contribution to the energy of DFT+U potential engyadu(ia,i)=engyadu(ia,i)-sum1 ! end loop over atoms end do ! end loop over species end do ! symmetrise the potential call symdmat(lmaxdm,lmmaxdm,vmatmt) ! write potential matrix to test file call writetest(800,'DFT+U energy for each atom',nv=natmmax*ndftu,tol=1.d-4, & rva=engyadu) ! write U and J parameters to test file call writetest(810,'U and J parameters',nv=2*maxdftu,tol=1.d-4,rva=ujdu) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writedftu.f900000644000000000000000000000013213543334736015165 xustar0030 mtime=1569569246.590640692 30 atime=1569569242.911643042 30 ctime=1569569246.590640692 elk-6.3.2/src/writedftu.f900000644002504400250440000000467413543334736017247 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine writedftu use modmain use moddftu implicit none ! local variables integer ispn,jspn,is,ia,ias integer i,k,l,m1,m2,lm1,lm2 if (dftu.eq.0) return ! machine readable density matrix file open(50,file='DMATMT'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,*) write(50,'(3I4," : species, atom, l")') is,ia,l do ispn=1,nspinor do jspn=1,nspinor write(50,*) write(50,'(2I4," : ispn, jspn; m1, m2, dmatmt below")') ispn,jspn do m1=-l,l lm1=idxlm(l,m1) do m2=-l,l lm2=idxlm(l,m2) write(50,'(2I6," ",2G18.10)') m1,m2,dmatmt(lm1,ispn,lm2,jspn,ias) end do end do end do end do end do end do close(50) ! machine readable potential matrix file open(50,file='VMATMT'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,*) write(50,'(3I4," : species, atom, l")') is,ia,l do ispn=1,nspinor do jspn=1,nspinor write(50,*) write(50,'(2I4," : ispn, jspn; m1, m2, vmatmt below")') ispn,jspn do m1=-l,l lm1=idxlm(l,m1) do m2=-l,l lm2=idxlm(l,m2) write(50,'(2I6," ",2G18.10)') m1,m2,vmatmt(lm1,ispn,lm2,jspn,ias) end do end do end do end do end do end do close(50) ! machine readable alpha parameters if ((dftu.eq.3).and.(.not.readadu)) then open(50,file='ALPHADU'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,'(3I4," : species, atom, l")') is,ia,l write(50,'(G18.10," : alpha")') alphadu(ia,i) end do end do close(50) end if ! Slater parameters open(50,file='FDU'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) write(50,*) write(50,'(3I4," : species, l")') is,l do k=0,2*l,2 write(50,'(G18.10," : F^(",I1,")")') fdu(k,i),k end do write(50,'(G18.10," : U")') ujdu(1,i) write(50,'(G18.10," : J")') ujdu(2,i) if (inpdftu.ge.4) write(50,'(G18.10," : lambdadu")') lambdadu(i) end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readalphadu.f900000644000000000000000000000013213543334736015422 xustar0030 mtime=1569569246.595640689 30 atime=1569569242.916643039 30 ctime=1569569246.595640689 elk-6.3.2/src/readalphadu.f900000644002504400250440000000152113543334736017470 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. subroutine readalphadu use modmain use moddftu implicit none ! local variables integer is,ia,i,l integer is_,ia_,l_ if (.not.readadu) return open(50,file='ALPHADU'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) read(50,*) read(50,*) is_,ia_,l_ if ((is.ne.is_).or.(ia.ne.ia_).or.(l.ne.l_)) then write(*,*) write(*,'("Error(readalphadu): differing is, ia or l")') write(*,'(" current : ",3I8)') is,ia,l write(*,'(" ALPHADU.OUT : ",3I8)') is_,ia_,l_ write(*,*) stop end if read(50,*) alphadu(ia,i) end do end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/fyukawa.f900000644000000000000000000000013213543334736014617 xustar0030 mtime=1569569246.599640687 30 atime=1569569242.920643036 30 ctime=1569569246.599640687 elk-6.3.2/src/fyukawa.f900000644002504400250440000000452713543334736016676 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: fyukawa ! !INTERFACE: real(8) function fyukawa(is,l,k,lambda) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! is : species type (in,integer) ! l : an angular momentum (in,integer) ! k : order of Slater parameter (in,integer) ! lambda : screening length of Yukawa potential (in,real) ! !DESCRIPTION: ! Calculates the Slater parameters using a screened Yukawa potential. See ! {\it Phys. Rev. B} {\bf 52}, 1421 (1995) and {\it Phys. Rev. B} {\bf 80}, ! 035121 (2009). ! ! !REVISION HISTORY: ! Created April 2008 (Lars Nordstrom) ! Modified and tested July 2008 (LN and FC) !EOP !BOC implicit none ! arguments integer, intent(in) :: is integer, intent(in) :: l,k real(8), intent(in) :: lambda ! local variables integer ias,nr,ir integer nr1,nr2,ir1,ir2 real(8) r2,x,t1 ! automatic arrays real(8) clow(nrmtmax),chigh(nrmtmax) real(8) blow(nrmtmax),bhigh(nrmtmax),fint(nrmtmax) real(8) bint(nrmtmax),cint(nrmtmax) ! allocatable arrays real(8), allocatable :: a(:,:),b(:,:) ias=idxas(1,is) nr=nrmt(is) ! (-1)**k factor takes care of the additional (-1)**k introduced by zbessela(b) t1=lambda*dble((2*k+1)*(-1)**(k+1)) ! allocate Bessel and Hankel functions allocate(a(0:2*l,nr),b(0:2*l,nr)) ! zero all quantities a(:,:)=0.d0 b(:,:)=0.d0 bint(:)=0.d0 blow(:)=0.d0 bhigh(:)=0.d0 clow(:)=0.d0 chigh(:)=0.d0 ! calculate Slater parameters do ir=1,nr r2=rlmt(ir,2,is) bint(ir)=fdufr(ir,l,ias)*fdufr(ir,l,ias)*r2 ! argument of Bessel and Hankel functions divided by i x=rsp(ir,is)*lambda ! calculate Bessel and Hankel functions divided by i call zbessela(2*l,x,a(:,ir)) call zbesselb(2*l,x,b(:,ir)) end do do ir=1,nr nr1=ir nr2=nr-ir+1 ! 1st term: r1 < r do ir1=1,nr1 ir2=ir1 blow(ir1)=bint(ir2)*a(k,ir2) end do ! integrate 1st term call fderiv(-1,nr1,rsp(1,is),blow,clow) ! 2nd term : r2 > r do ir1=1,nr2 ir2=ir1+ir-1 bhigh(ir1)=bint(ir2)*b(k,ir2) end do ! integrate 2nd term call fderiv(-1,nr2,rsp(ir,is),bhigh,chigh) ! sum of the two terms cint(ir)=bint(ir)*(b(k,ir)*clow(nr1)+a(k,ir)*chigh(nr2)) end do call fderiv(-1,nr,rsp(1,is),cint,fint) fyukawa=t1*fint(nr) deallocate(a,b) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/fyukawa0.f900000644000000000000000000000013213543334736014677 xustar0030 mtime=1569569246.604640683 30 atime=1569569242.925643033 30 ctime=1569569246.604640683 elk-6.3.2/src/fyukawa0.f900000644002504400250440000000355113543334736016752 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: fyukawa0 ! !INTERFACE: real(8) function fyukawa0(is,l1,k) ! !USES: use modmain use moddftu ! !INPUT/OUTPUT PARAMETERS: ! is : species type (in,integer) ! l : an angular momentum (in,integer) ! k : order of Slater parameter (in,integer) ! !DESCRIPTION: ! Calculates the Slater parameters in the unscreened case. See {\it Phys. Rev. ! B} {\bf 52}, 1421 (1995) and {\it Phys. Rev. B} {\bf 80}, 035121 (2009). ! ! !REVISION HISTORY: ! Created April 2008 (LN) ! Modified and tested July 2008 (LN and FC) !EOP !BOC implicit none ! arguments integer, intent(in) :: is integer, intent(in) :: l1 integer, intent(in) :: k ! local variables integer, parameter :: nstart=1 integer ir,nr,ias integer ir1,ir2,nr1,nr2 real(8) r2,x ! automatic arrays real(8) clow(nrmtmax),chigh(nrmtmax) real(8) blow(nrmtmax),bhigh(nrmtmax),fint(nrmtmax) real(8) bint(nrmtmax),cint(nrmtmax) ! allocatable arrays real(8), allocatable :: a(:,:),b(:,:) ias=idxas(1,is) nr=nrmt(is) allocate(a(0:k,nr),b(0:k,nr)) a(:,:)=0.d0 b(:,:)=0.d0 ! calculate unscreened Slater parameters do ir=1,nr r2=rlmt(ir,2,is) bint(ir)=fdufr(ir,l1,ias)*fdufr(ir,l1,ias)*r2 x=rsp(ir,is)**k a(k,ir)=x b(k,ir)=1.d0/(x*rsp(ir,is)) end do do ir=nstart,nr nr1=ir-nstart+1 nr2=nr-ir+1 do ir1=1,nr1 ir2=ir1+nstart-1 blow(ir1)=bint(ir2)*a(k,ir2) end do call fderiv(-1,nr1,rsp(nstart,is),blow,clow) do ir1=1,nr2 ir2=ir1+ir-1 bhigh(ir1)=bint(ir2)*b(k,ir2) end do call fderiv(-1,nr2,rsp(ir,is),bhigh,chigh) cint(ir-nstart+1)=bint(ir)*(b(k,ir)*clow(nr1)+a(k,ir)*chigh(nr2)) end do nr1=nr-nstart+1 call fderiv(-1,nr1,rsp(nstart,is),cint,fint) fyukawa0=fint(nr1) deallocate(a,b) return end function !EOC elk-6.3.2/src/PaxHeaders.21352/genfdufr.f900000644000000000000000000000013213543334736014750 xustar0030 mtime=1569569246.608640681 30 atime=1569569242.931643029 30 ctime=1569569246.608640681 elk-6.3.2/src/genfdufr.f900000644002504400250440000000314013543334736017015 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genfdufr ! !INTERFACE: subroutine genfdufr ! !USES: use modmain use moddftu ! !DESCRIPTION: ! Generates the radial functions used to calculate the Slater integrals ! through a Yukawa potential. ! ! !REVISION HISTORY: ! Created April 2008 from genapwfr (Francesco Cricchio) !EOP !BOC implicit none ! local variables integer is,ia,ias integer nr,nri,ir integer nn,i,l real(8) t1 ! automatic arrays real(8) vr(nrmtmax),fr(nrmtmax) real(8) p0(nrmtmax),p1(nrmtmax),q0(nrmtmax),q1(nrmtmax) ! external functions real(8) splint external splint do i=1,ndftu is=idftu(1,i) l=idftu(2,i) nr=nrmt(is) nri=nrmti(is) do ia=1,natoms(is) ias=idxas(ia,is) call rfmtlm(1,nr,nri,vsmt(:,ias),vr) vr(1:nr)=vr(1:nr)*y00 ! integrate the radial Schrodinger equation call rschrodint(solsc,l,fdue(l,ias),nr,rlmt(:,1,is),vr,nn,p0,p1,q0,q1) ! normalise radial functions fr(1:nr)=p0(1:nr)**2 t1=splint(nr,rlmt(:,1,is),fr) if (t1.lt.1.d-20) then write(*,*) write(*,'("Error(genfdufr): degenerate APW radial functions")') write(*,'(" for species ",I4)') is write(*,'(" atom ",I4)') ia write(*,'(" and angular momentum ",I4)') l write(*,*) stop end if t1=1.d0/sqrt(abs(t1)) p0(1:nr)=t1*p0(1:nr) ! divide by r and store in global array do ir=1,nr fdufr(ir,l,ias)=p0(ir)/rsp(ir,is) end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/energyfdu.f900000644000000000000000000000013213543334736015140 xustar0030 mtime=1569569246.612640678 30 atime=1569569242.936643026 30 ctime=1569569246.612640678 elk-6.3.2/src/energyfdu.f900000644002504400250440000000312113543334736017204 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: energyfdu ! !INTERFACE: subroutine energyfdu ! !USES: use modmain use moddftu use modmpi ! !DESCRIPTION: ! Calculates the energies of radial functions to be used to calculate the ! Slater integrals. By convention those energies are chosen to be the ones at ! the center of the band. ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio) !EOP !BOC implicit none ! local variables integer is,ia,ja,ias,jas integer nr,nri,nnf,i,l logical fnd ! automatic arrays logical done(natmmax) real(8) vr(nrmtmax) nnf=0 ! loop over DFT+U entries do i=1,ndftu is=idftu(1,i) l=idftu(2,i) nr=nrmt(is) nri=nrmti(is) done(:)=.false. do ia=1,natoms(is) if (done(ia)) cycle ias=idxas(ia,is) call rfmtlm(1,nr,nri,vsmt(:,ias),vr) vr(1:nr)=vr(1:nr)*y00 ! find the center of the band starting from -0.5 Ha fdue(l,ias)=-0.5d0 call findband(solsc,l,nrmt(is),rsp(1,is),vr,epsband,demaxbnd,fdue(l,ias), & fnd) if (.not.fnd) nnf=nnf+1 done(ia)=.true. ! copy to equivalent atoms do ja=1,natoms(is) if ((.not.done(ja)).and.(eqatoms(ia,ja,is))) then jas=idxas(ja,is) fdue(l,jas)=fdue(l,ias) done(ja)=.true. end if end do ! end loops over atoms and species end do end do if (mp_mpi.and.(nnf.gt.0)) then write(*,*) write(*,'("Warning(energyfdu): could not find ",I3," energies")') nnf end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writeefdu.f900000644000000000000000000000013213543334736015146 xustar0030 mtime=1569569246.617640675 30 atime=1569569242.941643023 30 ctime=1569569246.617640675 elk-6.3.2/src/writeefdu.f900000644002504400250440000000175313543334736017223 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writeefdu ! !INTERFACE: subroutine writeefdu ! !USES: use modmain use moddftu ! !DESCRIPTION: ! Writes to file the linearisation energies for all radial functions used to ! calculate the Slater integrals through a Yukawa potential. ! ! !REVISION HISTORY: ! Created July 2008 (Francesco Cricchio) !EOP !BOC implicit none ! local variables integer is,ia,ias,i,l open(50,file='ENGYFDU'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia write(50,'(" Radial functions used for Slater parameters :")') write(50,'(" l = ",I2," : ",G18.10)') l,fdue(l,ias) end do end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zbessela.f900000644000000000000000000000013113543334736014757 xustar0030 mtime=1569569246.621640673 29 atime=1569569242.94664302 30 ctime=1569569246.621640673 elk-6.3.2/src/zbessela.f900000644002504400250440000000365513543334736017040 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zbessela ! !INTERFACE: subroutine zbessela(lmax,x,a) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum order of Bessel function (in,integer) ! x : real argument (in,real) ! a : array of returned values (out,real(0:lmax)) ! !DESCRIPTION: ! Computes variations of the spherical Bessel function, $a_l(x)=i^lj_l(ix)$, ! for real argument $x$ and $l=0,1,\ldots,l_{\rm max}$. The recursion relation ! $$ j_{l+1}(x)=\frac{2l+1}{x}j_l(x)+j_{l-1}(x) $$ ! is used upwards. For starting values there are ! $$ a_0(x)=\frac{\sinh(x)}{x};\qquad a_1(x)=\frac{a_0(x)-\cosh(x)}{x} $$. ! For $x\ll 1$ the asymtotic forms ! $$ a_l(x)\approx\frac{(-x)^l}{(2l+1)!!} $$ ! are used. ! ! !REVISION HISTORY: ! Created April 2008 from sbessel routine (Lars Nordstrom) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax real(8), intent(in) :: x real(8), intent(out) :: a(0:lmax) ! local variables integer l real(8) xi,a0,a1,at,t1,t2,xmin if ((lmax.lt.0).or.(lmax.gt.50)) then write(*,*) write(*,'("Error(zbessela): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x.lt.0.d0).or.(x.gt.1.d8)) then write(*,*) write(*,'("Error(zbessela): x out of range : ",G18.10)') x write(*,*) stop end if xi=1.d0/x xmin=1.d-7 select case (lmax) case(0) xmin=1.d-6 case(1:2) xmin=1.d-4 case(3:4) xmin=1.d-2 case(5:) xmin=1.d0 end select ! treat x << 1 if (x.lt.xmin) then a(0)=1.d0 t1=1.d0 t2=1.d0 do l=1,lmax t1=t1/dble(2*l+1) t2=-t2*x a(l)=t2*t1 end do return end if ! recurse up a(0)=xi*(sinh(x)) if (lmax.eq.0) return a(1)=xi*(a(0)-cosh(x)) if (lmax.eq.1) return a0=a(0) a1=a(1) do l=2,lmax at=dble(2*l-1)*a1*xi+a0 a0=a1 a1=at a(l)=a1 end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/zbesselb.f900000644000000000000000000000013013543334736014757 xustar0029 mtime=1569569246.62564067 30 atime=1569569242.952643016 29 ctime=1569569246.62564067 elk-6.3.2/src/zbesselb.f900000644002504400250440000000346613543334736017041 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: zbesselb ! !INTERFACE: subroutine zbesselb(lmax,x,b) ! !INPUT/OUTPUT PARAMETERS: ! lmax : maximum order of Bessel function (in,integer) ! x : real argument (in,real) ! b : array of returned values (out,real(0:lmax)) ! !DESCRIPTION: ! Computes variations of the spherical Bessel function ! $b_l(x)=i^lh^{(1)}_l(ix)$, for real argument $x$ and ! $l=0,1,\ldots,l_{\rm max}$. The recursion relation ! $$ j_{l+1}(x)=\frac{2l+1}{x}j_l(x)+j_{l-1}(x) $$ ! is used upwards. For starting values there are ! $$ b_0(x)=-\frac{e^{-x}}{x};\qquad b_1(x)=b_0(x)\left\{1+\frac{1}{x} ! \right\}. $$ ! For $x\ll 1$ the asymtotic forms ! $$ b_l(x)\approx\frac{-(2l-1)!!}{(-x)^{l+1}} $$ ! are used. ! ! !REVISION HISTORY: ! Created April 2008 from sbessel routine (Lars Nordstrom) !EOP !BOC implicit none ! arguments integer, intent(in) :: lmax real(8), intent(in) :: x real(8), intent(out) :: b(0:lmax) ! local variables integer l real(8) xi,b0,b1,bt,t3,t4 if ((lmax.lt.0).or.(lmax.gt.50)) then write(*,*) write(*,'("Error(zbesselb): lmax out of range : ",I8)') lmax write(*,*) stop end if if ((x.lt.0.d0).or.(x.gt.1.d8)) then write(*,*) write(*,'("Error(zbesselb): x out of range : ",G18.10)') x write(*,*) stop end if xi=1.d0/x ! treat x << 1 if (x.lt.1.d-7) then b(0)=-xi t3=-1.d0 t4=xi do l=1,lmax t3=t3*dble(2*l-1) t4=t4*xi b(l)=t4*t3 end do return end if ! recurse up b(0)=-xi*exp(-x) if (lmax.eq.0) return b(1)=b(0)*(1.d0+xi) if (lmax.eq.1) return b0=b(0) b1=b(1) do l=2,lmax bt=dble(2*l-1)*b1*xi+b0 b0=b1 b1=bt b(l)=b1 end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/readdmatmt.f900000644000000000000000000000013213543334736015272 xustar0030 mtime=1569569246.630640667 30 atime=1569569242.956643013 30 ctime=1569569246.630640667 elk-6.3.2/src/readdmatmt.f900000644002504400250440000000353513543334736017347 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readdmatmt use modmain use moddftu implicit none ! local variables integer is,ia,ias,ispn,jspn integer is_,ia_,ispn_,jspn_ integer i,l,m1,m2,lm1,lm2 integer l_,m1_,m2_ real(8) a,b ! read density matrix from DMATMT.OUT open(50,file='DMATMT'//trim(filext),form='FORMATTED') do i=1,ndftu is=idftu(1,i) l=idftu(2,i) do ia=1,natoms(is) ias=idxas(ia,is) read(50,*) read(50,*) read(50,*) is_,ia_,l_ if ((is.ne.is_).or.(ia.ne.ia_).or.(l.ne.l_)) then write(*,*) write(*,'("Error(readdmatmt): differing is, ia or l")') write(*,'(" current : ",3I4)') is,ia,l write(*,'(" DMATMT.OUT : ",3I4)') is_,ia_,l_ write(*,*) stop end if do ispn=1,nspinor do jspn=1,nspinor read(50,*) read(50,*) ispn_,jspn_ if ((ispn.ne.ispn_).or.(jspn.ne.jspn_)) then write(*,*) write(*,'("Error(readdmatmt): differing ispn or jspn")') write(*,'(" current : ",2I4)') ispn,jspn write(*,'(" DMATMT.OUT : ",2I4)') ispn_,jspn_ write(*,*) stop end if do m1=-l,l lm1=idxlm(l,m1) do m2=-l,l lm2=idxlm(l,m2) read(50,*) m1_,m2_,a,b if ((m1.ne.m1_).or.(m2.ne.m2_)) then write(*,*) write(*,'("Error(readdmatmt): differing m1 or m2")') write(*,'(" current : ",2I6)') m1,m2 write(*,'(" DMATMT.OUT : ",2I6)') m1_,m2_ write(*,*) stop end if dmatmt(lm1,ispn,lm2,jspn,ias)=cmplx(a,b,8) end do end do end do end do end do end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genfdu.f900000644000000000000000000000013113543334736014417 xustar0030 mtime=1569569246.634640664 29 atime=1569569242.96164301 30 ctime=1569569246.634640664 elk-6.3.2/src/genfdu.f900000644002504400250440000001203613543334736016471 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genfdu ! !INTERFACE: subroutine genfdu(i,u,j,f) ! !USES: use moddftu use modmpi ! !INPUT/OUTPUT PARAMETERS: ! i : DFT+U entry (in,integer) ! u : parameter U (inout,real) ! j : parameter J (inout,real) ! f : Slater parameters (inout,real) ! !DESCRIPTION: ! Calculate the Slater parameters for DFT+$U$ calculation with different ! approaches, see {\it Phys. Rev. B} {\bf 80}, 035121 (2009). The relations ! among Slater and Racah parameters are from E.U. Condon and G.H. Shortley, ! {\it The Theory of Atomic Spectra}, The University Press, Cambridge (1935). ! ! !REVISION HISTORY: ! Created July 2008 (Francesco Cricchio) !EOP !BOC implicit none ! arguments integer, intent(in) :: i real(8), intent(inout) :: u,j real(8), intent(inout) :: f(0:2*lmaxdm) ! local variables integer is,l,k,q real(8) r1,r2 real(8) lambda,ufix ! automatic arrays real(8) :: e(0:lmaxdm) real(8) :: a(3,3),v1(3),v2(3) ! external functions real(8) fyukawa,fyukawa0 external fyukawa,fyukawa0 is=idftu(1,i) l=idftu(2,i) ! load input parameters to calculate Slater integrals u=ujdu(1,i) j=ujdu(2,i) f(:)=fdu(:,i) e(:)=edu(:,i) lambda=lambdadu(i) if (inpdftu.lt.4) then ! F(0) = U for any l-shell if (inpdftu.eq.1) f(0)=u select case(l) case(0) ! s electrons only f(0)=u if (inpdftu.eq.3) then f(0)=e(0) u=f(0) end if case(1) ! p electrons if (inpdftu.eq.1) then ! F(2) = 5.0 * J f(2)=5.d0*j else if (inpdftu.eq.3) then ! F(0) = E(0) + J= E(0) + 5/3 * E(1) f(0)=e(0)+(5.d0/3.d0)*e(1) ! F(2) = 5 * J = 25/3 * E1, Eq. 101 f(2)=(25.d0/3.d0)*e(1) end if case(2) ! d electrons if (inpdftu.eq.1) then ! r1 = F(4)/F(2), see PRB 52, R5467 (1995) r1=0.625d0 f(2)=(14.d0*j)/(1.d0+r1) f(4)=f(2)*r1 else if (inpdftu.eq.3) then ! copy Racah parameters v1(1:3)=e(0:2) ! transformation matrix from Racah to Slater parameters ! obtained from inversion of Eq. 110-112, LN Notes 29-12-08 a(1,1)=1.d0 a(1,2)=1.4d0 a(1,3)=0.d0 a(2,1)=0.d0 a(2,2)=0.1428571428571428d0 a(2,3)=1.285714285714286d0 a(3,1)=0.d0 a(3,2)=2.8571428571428571d-2 a(3,3)=-0.1428571428571428d0 ! multiply transformation matrix by Racah parameters call r3mv(a,v1,v2) ! Slater parameters, Eq. 104-105, LN Notes 29-12-08 f(0)=v2(1) f(2)=49.d0*v2(2) f(4)=441.d0*v2(3) end if case(3) ! f electrons if (inpdftu.eq.1) then ! r2 = F(6)/F(2), r1 = F(4)/F(2), see PRB 50, 16861 (1994) r1=451.d0/675.d0 r2=1001.d0/2025.d0 f(2)=6435.d0*j/(286.d0+195.d0*r1+250.d0*r2) f(4)=f(2)*r1 f(6)=f(2)*r2 else if (inpdftu.eq.3) then ! F(0) = E(0) + 9/7 * E(1) , Eq. 119, LN Notes 29-12-08 f(0)=e(0)+(9.d0/7.d0)*e(1) ! copy Racah parameters v1(1:3)=e(1:3) ! transformation matrix from Racah to Slater parameters ! obtained from inversion of Eq. 120-122, LN Notes 29-12-08 a(1,1)=2.3809523809523808d-2 a(1,2)=3.404761904761904d0 a(1,3)=0.2619047619047619d0 a(2,1)=1.2987012987012984d-2 a(2,2)=-1.688311688311688d0 a(2,3)=5.1948051948051951d-2 a(3,1)=2.1645021645021645d-3 a(3,2)=7.5757575757575760d-2 a(3,3)=-1.5151515151515152d-2 ! multiply transformation matrix by Racah parameters call r3mv(a,v1,v2) ! Slater parameters, Eq. 115-117, LN Notes 29-12-08 f(2)=225.d0*v2(1) f(4)=1089.d0*v2(2) f(6)=(184041.d0/25.d0)*v2(3) end if case default write(*,*) write(*,'("Error(genfdu): invalid l : ",I8)') l write(*,*) stop end select else if (inpdftu.ge.4) then ! define energies for Slater parameters call energyfdu ! write energies for Slater parameters to a file if (mp_mpi) call writeefdu ! calculate radial functions for Slater parameters call genfdufr if (inpdftu.eq.5) then ufix=udufix(i) ! calculate the lambda corresponding to udufix ! lambdadu0 is in/out and is initialized to 0 in readinput call findlambdadu(is,l,ufix,lambdadu0(i),lambda) end if do q=0,l k=2*q if (lambda.lt.1.d-2) then ! unscreened Slater parameters f(k)=fyukawa0(is,l,k) else ! screened Slater parameters f(k)=fyukawa(is,l,k,lambda) end if end do end if ! calculate U and J from Slater integrals if (inpdftu.ne.1) then u=f(0) select case(l) case(0) j=0.d0 case(1) ! J = 1/5 * F(2) j=(1.d0/5.d0)*f(2) case(2) ! J = 1/14 * ( F(2) + F(4) ), Eq. 106, LN Notes 29-12-08 j=(1.d0/14.d0)*(f(2)+f(4)) case(3) ! J= 2/45 * F(2) + 1/33 * F(4) + 50/1287 * F(6), Eq. 118, LN Notes 29-12-08 j=(2.d0/45.d0)*f(2)+(1.d0/33.d0)*f(4)+(50.d0/1287.d0)*f(6) case default write(*,*) write(*,'("Error(genfdu): invalid l : ",I8)') l write(*,*) stop end select end if ! save calculated parameters ! (except Racah parameters that are provided only as input) ujdu(1,i)=u ujdu(2,i)=j fdu(:,i)=f(:) lambdadu(i)=lambda return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/findlambdadu.f900000644000000000000000000000013213543334736015562 xustar0030 mtime=1569569246.639640661 30 atime=1569569242.966643007 30 ctime=1569569246.639640661 elk-6.3.2/src/findlambdadu.f900000644002504400250440000000724013543334736017634 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: findlambdadu ! !INTERFACE: subroutine findlambdadu(is,l,ufix,lambda0,lambda) ! !INPUT/OUTPUT PARAMETERS: ! is : species type (in,integer) ! l : angular momentum (in,integer) ! ufix : fixed U (in,integer) ! lambda0 : starting value for screening length (inout,real) ! lambda : screening length corresponding to fixed U (out,real) ! !DESCRIPTION: ! Find the screening length corresponding to a fixed value of $U$ by using the ! half-interval method in the first few steps and then the more efficient ! secant method. For $U=0$ the code automatically sets the screening length to ! ${\rm lambdamax}=50$. This value is enough to get $F^{(k)}\sim 10^{-3}$ ! corresponding to $U\sim 0$ (that perfectly mimics a bare DFT calculation). ! However the code is stable up to ${\rm lambdamax}\sim 200$ thanks to ! improvement of {\tt spline}. ! ! !REVISION HISTORY: ! Created July 2009 (Francesco Cricchio) !EOP !BOC implicit none ! arguments integer, intent(in) :: is integer, intent(in) :: l real(8), intent(in) :: ufix real(8), intent(inout) :: lambda0 real(8), intent(out) :: lambda ! local variables ! max iterations in secant algorithm integer, parameter :: maxit=100 integer it,nit ! if ufix 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p.lt.0).or.(p.gt.1)) then write(*,*) write(*,'("Error(dmtotm2): p should be 0 or 1 : ",I8)') p write(*,*) stop end if ! calculate the 2-index tensor moment; see Eq. (23) in article nlk=factnm(2*l,1)/sqrt(factnm(2*l-k,1)*factnm(2*l+k+1,1)) nsp=1.d0/sqrt(factnm(2+p,1)) t1=dble((-1)**(l))/(nlk*nsp) tm2(:,:)=0.d0 do x=-k,k do y=-p,p do ispn=1,nspinor do jspn=1,nspinor t2=t1*wigner3jf(1,2*p,1,2*jspn-3,2*y,3-2*ispn) if (abs(t2).gt.1.d-10) then lm1=l**2 do m1=-l,l lm1=lm1+1 lm2=l**2 do m2=-l,l lm2=lm2+1 t3=t2*dble((-1)**(1+jspn-m2))*wigner3j(l,k,l,-m2,x,m1) tm2(x,y)=tm2(x,y)+t3*dmat(lm1,ispn,lm2,jspn) end do end do end if end do end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/dmtotm3.f900000644000000000000000000000013213543334736014537 xustar0030 mtime=1569569246.665640644 30 atime=1569569242.997642987 30 ctime=1569569246.665640644 elk-6.3.2/src/dmtotm3.f900000644002504400250440000000647513543334736016622 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! !ROUTINE: dmtotm3 ! !INTERFACE: subroutine dmtotm3(l,nspinor,k,p,r,ld,dmat,tm3) ! !INPUT/OUTPUT PARAMETERS: ! l : angular momentum (in,integer) ! nspinor : number of spinor components (in,integer) ! k : k-index of tensor moment (in,integer) ! p : p-index of tensor moment (in,integer) ! r : r-index of tensor moment (in,integer) ! ld : leading dimension (in,integer) ! dmat : density matrix (in,complex(ld,nspinor,ld,nspinor)) ! tm3 : 3-index spherical tensor moment (out,complex(-ld:ld)) ! !DESCRIPTION: ! Transform the density matrix to a 3-index spherical tensor moment ! representation, see {\it Phys. Rev. B} {\bf 80}, 035121 (2009). ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) ! Modified, January 2014 (JKD) !EOP !BOC implicit none integer, intent(in) :: l,nspinor integer, intent(in) :: k,p,r integer, intent(in) :: ld complex(8), intent(in) :: dmat(ld,nspinor,ld,nspinor) complex(8), intent(out) :: tm3(-ld:ld) ! local variables integer ispn,jspn,g,t,x,y integer m1,m2,lm1,lm2 real(8) nlk,nsp,t1,t2,t3 complex(8), parameter :: zi=(0.d0,1.d0) complex(8) z1 ! external functions real(8) wigner3j,wigner3jf,factnm,factr external wigner3j,wigner3jf,factnm,factr if (l.lt.0) then write(*,*) write(*,'("Error(dmtotm3): l < 0 : ",I8)') l write(*,*) stop end if if ((nspinor.lt.1).or.(nspinor.gt.2)) then write(*,*) write(*,'("Error(dmtotm3): nspinor should be 1 or 2 : ",I8)') nspinor write(*,*) stop end if if (k.lt.0) then write(*,*) write(*,'("Error(dmtotm3): k < 0 : ",I8)') k write(*,*) stop end if if (k.gt.2*l) then write(*,*) write(*,'("Error(dmtotm3): k > 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p.lt.0).or.(p.gt.1)) then write(*,*) write(*,'("Error(dmtotm3): p should be 0 or 1 : ",I8)') p write(*,*) stop end if if (r.lt.abs(k-p)) then write(*,*) write(*,'("Error(dmtotm3): r < |k-p| : ",2I8)') r,abs(k-p) write(*,*) stop end if if (r.gt.(k+p)) then write(*,*) write(*,'("Error(dmtotm3): r > k+p : ",2I8)') r,k+p write(*,*) stop end if ! calculate the 3-index tensor moment; see Eqs. (23), (26), (27) in article g=k+p+r if (mod(g,2).eq.0) then z1=1.d0/wigner3j(k,p,r,0,0,0) else t1=sqrt(factr(g+1,g-2*k)/(factnm(g-2*p,1)*factnm(g-2*r,1))) t1=t1*factnm(g-2*k,2)*factnm(g-2*p,2)*factnm(g-2*r,2)/factnm(g,2) z1=t1*zi**(-g) end if nlk=factnm(2*l,1)/sqrt(factnm(2*l-k,1)*factnm(2*l+k+1,1)) nsp=1.d0/sqrt(factnm(2+p,1)) z1=z1*dble((-1)**(k+p+l))/(nlk*nsp) tm3(:)=0.d0 do t=-r,r do x=-k,k do y=-p,p t1=dble((-1)**(x+y))*wigner3j(k,r,p,-x,t,-y) do ispn=1,nspinor do jspn=1,nspinor t2=t1*wigner3jf(1,2*p,1,2*jspn-3,2*y,3-2*ispn) if (abs(t2).gt.1.d-10) then lm1=l**2 do m1=-l,l lm1=lm1+1 lm2=l**2 do m2=-l,l lm2=lm2+1 t3=t2*dble((-1)**(1+jspn-m2))*wigner3j(l,k,l,-m2,x,m1) tm3(t)=tm3(t)+t3*z1*dmat(lm1,ispn,lm2,jspn) end do end do end if end do end do end do end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/tm2todm.f900000644000000000000000000000013213543334736014536 xustar0030 mtime=1569569246.669640642 30 atime=1569569243.003642983 30 ctime=1569569246.669640642 elk-6.3.2/src/tm2todm.f900000644002504400250440000000364513543334736016615 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tm2todm(l,nspinor,k,p,ld,tm2,dmat) implicit none ! arguments integer, intent(in) :: l,nspinor integer, intent(in) :: k,p integer, intent(in) :: ld complex(8), intent(in) :: tm2(-ld:ld,-1:1) complex(8), intent(out) :: dmat(ld,nspinor,ld,nspinor) ! local variables integer ispn,jspn,x,y integer m1,m2,lm1,lm2 real(8) nlk,nsp,t1,t2,t3 ! external functions real(8) wigner3j,wigner3jf,factnm external wigner3j,wigner3jf,factnm if (l.lt.0) then write(*,*) write(*,'("Error(tm2todm): l < 0 : ",I8)') l write(*,*) stop end if if ((nspinor.lt.1).or.(nspinor.gt.2)) then write(*,*) write(*,'("Error(tm2todm): nspinor should be 1 or 2 : ",I8)') nspinor write(*,*) stop end if if (k.lt.0) then write(*,*) write(*,'("Error(tm2todm): k < 0 : ",I8)') k write(*,*) stop end if if (k.gt.2*l) then write(*,*) write(*,'("Error(tm2todm): k > 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p.lt.0).or.(p.gt.1)) then write(*,*) write(*,'("Error(tm2todm): p should be 0 or 1 : ",I8)') p write(*,*) stop end if ! factors n_lk and n_sp; Eq. (21) in article nlk=factnm(2*l,1)/sqrt(factnm(2*l-k,1)*factnm(2*l+k+1,1)) nsp=1.d0/sqrt(factnm(2+p,1)) t1=dble((2*k+1)*(2*p+1))*nlk*nsp ! compute density matrix from 2-index tensor moment dmat(:,:,:,:)=0.d0 do x=-k,k do y=-p,p do ispn=1,nspinor do jspn=1,nspinor t2=t1*wigner3jf(1,2*p,1,2*jspn-3,2*y,3-2*ispn) lm1=l**2 do m1=-l,l lm1=lm1+1 lm2=l**2 do m2=-l,l lm2=lm2+1 t3=t2*dble((-1)**(m2-l+jspn-1))*wigner3j(l,k,l,-m2,x,m1) dmat(lm1,ispn,lm2,jspn)=dmat(lm1,ispn,lm2,jspn)+t3*tm2(x,y) end do end do end do end do end do end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/tm3todm.f900000644000000000000000000000013213543334736014537 xustar0030 mtime=1569569246.673640639 30 atime=1569569243.009642979 30 ctime=1569569246.673640639 elk-6.3.2/src/tm3todm.f900000644002504400250440000000425613543334736016615 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tm3todm(l,nspinor,k,p,r,ld,tm3,dmat) implicit none ! arguments integer, intent(in) :: l,nspinor integer, intent(in) :: k,p,r integer, intent(in) :: ld complex(8), intent(in) :: tm3(-ld:ld) complex(8), intent(out) :: dmat(ld,nspinor,ld,nspinor) ! parameters complex(8), parameter :: zi=(0.d0,1.d0) ! local variables integer x,y,g,t real(8) t1,t2 complex(8) z1 ! allocatable arrays complex(8), allocatable :: tm2(:,:) ! external functions real(8) wigner3j,factnm,factr external wigner3j,factnm,factr if (l.lt.0) then write(*,*) write(*,'("Error(tm3todm): l < 0 : ",I8)') l write(*,*) stop end if if ((nspinor.lt.1).or.(nspinor.gt.2)) then write(*,*) write(*,'("Error(tm3todm): nspinor should be 1 or 2 : ",I8)') nspinor write(*,*) stop end if if (k.lt.0) then write(*,*) write(*,'("Error(tm3todm): k < 0 : ",I8)') k write(*,*) stop end if if (k.gt.2*l) then write(*,*) write(*,'("Error(tm3todm): k > 2*l : ",2I8)') k,2*l write(*,*) stop end if if ((p.lt.0).or.(p.gt.1)) then write(*,*) write(*,'("Error(tm3todm): p should be 0 or 1 : ",I8)') p write(*,*) stop end if if (r.lt.abs(k-p)) then write(*,*) write(*,'("Error(tm3todm): r < |k-p| : ",2I8)') r,abs(k-p) write(*,*) stop end if if (r.gt.(k+p)) then write(*,*) write(*,'("Error(tm3todm): r > k+p : ",2I8)') r,k+p write(*,*) stop end if ! compute 2-index tensor moment from 3-index tensor moment allocate(tm2(-ld:ld,-1:1)) tm2(:,:)=0.d0 do x=-k,k do y=-p,p t1=dble((-1)**(x+y-k-p)) g=k+p+r if (mod(g,2).eq.0) then z1=t1*wigner3j(k,p,r,0,0,0) else t1=t1*sqrt(factr(g-2*k,g+1)*factnm(g-2*p,1)*factnm(g-2*r,1)) t1=t1*factnm(g,2)/(factnm(g-2*k,2)*factnm(g-2*p,2)*factnm(g-2*r,2)) z1=t1*zi**g end if do t=-r,r t2=wigner3j(k,r,p,-x,t,-y)*(2*r+1) tm2(x,y)=tm2(x,y)+t2*z1*tm3(t) end do end do end do ! compute the density matrix from the 2-index tensor moment call tm2todm(l,nspinor,k,p,ld,tm2,dmat) deallocate(tm2) return end subroutine elk-6.3.2/src/PaxHeaders.21352/pottm2.f900000644000000000000000000000013213543334736014375 xustar0030 mtime=1569569246.678640636 30 atime=1569569243.013642977 30 ctime=1569569246.678640636 elk-6.3.2/src/pottm2.f900000644002504400250440000000251513543334736016447 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: pottm2 ! !INTERFACE: subroutine pottm2(i,k1,p,vh,vx) ! !USES: use moddftu ! !INPUT/OUTPUT PARAMETERS: ! i : DFT+U entry (in,integer) ! k1 : k-index of tensor moment (in,integer) ! p : p-index of tensor moment (in,integer) ! vh : Hartree potential energy (out,real) ! vx : exchange potential energy (out,real) ! !DESCRIPTION: ! Calculates the DFT+$U$ Hartree and exchange potential energies for a 2-index ! tensor moment component. See {\tt pottm3}. ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) ! Modified, January 2014 (JKD) !EOP !BOC implicit none integer, intent(in) :: i integer, intent(in) :: k1,p real(8), intent(out) :: vh,vx ! local variables integer l,k real(8) nlk,t1,t2 ! external functions real(8) wigner3j,wigner6j,factnm external wigner3j,wigner6j,factnm l=idftu(2,i) nlk=factnm(2*l,1)/sqrt(factnm(2*l-k1,1)*factnm(2*l+k1+1,1)) vh=0.d0 vx=0.d0 do k=0,2*l,2 t1=0.5d0*(dble(2*l+1)*nlk*wigner3j(l,k,l,0,0,0))**2 t2=0.5d0*dble((2*k1+1)*(-1)**k1)*wigner6j(l,l,k1,l,l,k) if (k.eq.k1) then if (p.eq.0) vh=t1*fdu(k1,i) end if vx=vx-t1*t2*fdu(k,i) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/pottm3.f900000644000000000000000000000013213543334736014376 xustar0030 mtime=1569569246.682640634 30 atime=1569569243.018642974 30 ctime=1569569246.682640634 elk-6.3.2/src/pottm3.f900000644002504400250440000000336213543334736016451 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: pottm3 ! !INTERFACE: subroutine pottm3(i,k1,p,r,vh,vx) ! !USES: use moddftu ! !INPUT/OUTPUT PARAMETERS: ! i : DFT+U entry (in,integer) ! k1 : k-index of tensor moment (in,integer) ! p : p-index of tensor moment (in,integer) ! r : r-index of tensor moment (in,integer) ! vh : Hartree potential energy (out,real) ! vx : exchange potential energy (out,real) ! !DESCRIPTION: ! Calculates the DFT+$U$ Hartree and exchange potential energies for a 3-index ! tensor moment component. See Eq. (28) in {\it Phys. Rev. B} {\bf 80}, 035121 ! (2009); and Eqs. (3), (4) in {\it Phys. Rev. B} {\bf 78}, 100404 (2008). ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) ! Modified and fixed bug, January 2014 (JKD) !EOP !BOC implicit none integer, intent(in) :: i integer, intent(in) :: k1,p,r real(8), intent(out) :: vh,vx ! local variables integer l,k,g real(8) nlk,t1,t2,t3 ! external functions real(8) wigner3j,wigner6j,factnm,factr external wigner3j,wigner6j,factnm,factr l=idftu(2,i) g=k1+p+r if (mod(g,2).eq.0) then t1=wigner3j(k1,p,r,0,0,0) else t1=sqrt(factr(g-2*k1,g+1)*factnm(g-2*p,1)*factnm(g-2*r,1)) t1=t1*factnm(g,2)/(factnm(g-2*k1,2)*factnm(g-2*p,2)*factnm(g-2*r,2)) end if t3=dble(2*r+1)*t1**2 nlk=factnm(2*l,1)/sqrt(factnm(2*l-k1,1)*factnm(2*l+k1+1,1)) vh=0.d0 vx=0.d0 do k=0,2*l,2 t1=0.5d0*(dble(2*l+1)*nlk*wigner3j(l,k,l,0,0,0))**2 t2=0.5d0*dble((2*k1+1)*(-1)**k1)*wigner6j(l,l,k1,l,l,k)*t3 if (k.eq.k1) then if (p.eq.0) vh=t1*fdu(k1,i) end if vx=vx-t1*t2*fdu(k,i) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/tm2pol.f900000644000000000000000000000013113543334736014364 xustar0030 mtime=1569569246.686640631 29 atime=1569569243.02464297 30 ctime=1569569246.686640631 elk-6.3.2/src/tm2pol.f900000644002504400250440000000177513543334736016446 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tm2pol(l,k,w2,tm2p) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! l : angular momentum (in,integer) ! k : k-index of tensor moment (in,integer) ! w2 : modulus square of k-p tensmom (in,real) ! tm2p : polarisation (out,real) ! !DESCRIPTION: ! Calculate the polarisation of each 2-index tensor component of the density ! matrix, see {\it Phys. Rev. B} {\bf 80}, 035121 (2009). ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) !EOP !BOC implicit none ! input variables integer, intent(in) :: l,k real(8),intent(in) :: w2 real(8),intent(out) :: tm2p ! local variables real(8) nlk ! external functions real(8) factnm external factnm nlk=factnm(2*l,1)/sqrt(factnm(2*l-k,1)*factnm(2*l+k+1,1)) tm2p=dble((2*k+1)*(2*l+1))*(nlk**2)*w2 return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/tm3pol.f900000644000000000000000000000013213543334736014366 xustar0030 mtime=1569569246.691640628 30 atime=1569569243.029642967 30 ctime=1569569246.691640628 elk-6.3.2/src/tm3pol.f900000644002504400250440000000271413543334736016441 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 F. Bultmark, F. Cricchio, L. Nordstrom and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tm3pol(l,k,p,r,w2,tm3p) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! l : angular momentum (in,integer) ! k : k-index of tensor moment (in,integer) ! p : p-index of tensor moment (in,integer) ! r : r-index of tensor moment (in,integer) ! w2 : modulus square of k-p-r tensor moment (in,real) ! tm3p : polarisation (out,real) ! !DESCRIPTION: ! Calculate the polarisation of each 3-index tensor component of the density ! matrix, see {\it Phys. Rev. B} {\bf 80}, 035121 (2009). ! ! !REVISION HISTORY: ! Created April 2008 (F. Cricchio and L. Nordstrom) !EOP !BOC implicit none ! input variables integer, intent(in) :: l,k,p,r real(8), intent(in) :: w2 real(8), intent(out) :: tm3p ! local variables integer g real(8) nlk,t1 ! external functions real(8) wigner3j,factnm,factr external wigner3j,factnm,factr g=k+p+r if (g.eq.0) then t1=sqrt(w2) tm3p=t1*(dble(2*(2*l+1))-t1) else if (mod(g,2).eq.0) then t1=wigner3j(k,p,r,0,0,0) else t1=sqrt(factnm(g-2*p,1)*factnm(g-2*r,1)*factr(g-2*k,g+1)) t1=t1*factnm(g,2)/(factnm(g-2*k,2)*factnm(g-2*p,2)*factnm(g-2*r,2)) end if nlk=factnm(2*l,1)/sqrt(factnm(2*l-k,1)*factnm(2*l+k+1,1)) tm3p=dble((2*k+1)*(2*r+1)*(2*l+1))*((t1*nlk)**2)*w2 end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gendmftm.f900000644000000000000000000000013213543334736014751 xustar0030 mtime=1569569246.695640625 30 atime=1569569243.033642964 30 ctime=1569569246.695640625 elk-6.3.2/src/gendmftm.f900000644002504400250440000000475713543334736017035 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma, E. K. U. Gross and L. Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gendmftm use modmain use moddftu implicit none ! local variables integer is,ia,ias,i integer l,n,k,p,r,t,x,y ! allocatable arrays complex(8), allocatable :: tm2(:,:),tm3(:) complex(8), allocatable :: dmat(:,:,:,:) ! external functions real(8) dznrm2 external dznrm2 if (ftmtype.eq.0) return ! allocate global array if (allocated(dmftm)) deallocate(dmftm) allocate(dmftm(lmmaxdm,nspinor,lmmaxdm,nspinor,natmtot)) ! allocate local arrays allocate(tm2(-lmmaxdm:lmmaxdm,-1:1),tm3(-lmmaxdm:lmmaxdm)) allocate(dmat(lmmaxdm,nspinor,lmmaxdm,nspinor)) ! zero the fixed tensor moment density matrices dmftm(:,:,:,:,:)=0.d0 do i=1,ntmfix is=itmfix(1,i) if (is.gt.nspecies) then write(*,*) write(*,'("Error(gendmftm): invalid species number : ",I8)') is write(*,*) stop end if ia=itmfix(2,i) if (ia.gt.natoms(is)) then write(*,*) write(*,'("Error(gendmftm): invalid atom number : ",I8)') ia write(*,'(" for species ",I4)') is write(*,*) stop end if ias=idxas(ia,is) l=itmfix(3,i) if (l.gt.lmaxdm) then write(*,*) write(*,'("Error(gendmftm): l > lmaxdm ",2I8)') l,lmaxdm write(*,'(" for species ",I4," and atom ",I4)') is,ia write(*,*) stop end if n=itmfix(4,i) k=itmfix(5,i) p=itmfix(6,i) if (n.eq.2) then ! generate the 2-index density matrix x=itmfix(7,i) y=itmfix(8,i) if ((abs(x).gt.lmmaxdm).or.(abs(y).gt.1)) then write(*,*) write(*,'("Error(gendmftm): invalid x or y : ",2I8)') x,y write(*,'(" for tensor moment entry ",I3)') i write(*,*) stop end if tm2(:,:)=0.d0 tm2(x,y)=tmfix(i) call tm2todm(l,nspinor,k,p,lmmaxdm,tm2,dmat) else ! generate the 3-index density matrix r=itmfix(7,i) t=itmfix(8,i) if (abs(t).gt.lmmaxdm) then write(*,*) write(*,'("Error(gendmftm): invalid t : ",I8)') t write(*,'(" for tensor moment entry ",I3)') i write(*,*) stop end if tm3(:)=0.d0 tm3(t)=tmfix(i) call tm3todm(l,nspinor,k,p,r,lmmaxdm,tm3,dmat) end if ! make density matrix Hermitian call hrmdmat(lmmaxdm*nspinor,dmat) ! apply rotation matrices and add to density matrix global array call rotdmat(rtmfix(:,:,1,i),rtmfix(:,:,2,i),lmaxdm,nspinor,lmmaxdm,dmat, & dmftm(:,:,:,:,ias)) end do deallocate(tm2,tm3,dmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/ftmfield.f900000644000000000000000000000013213543334736014742 xustar0030 mtime=1569569246.700640622 30 atime=1569569243.038642961 30 ctime=1569569246.700640622 elk-6.3.2/src/ftmfield.f900000644002504400250440000000355613543334736017022 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 L. Nordstrom, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ftmfield use modmain use moddftu implicit none ! local variables integer is,ia,ias,n2,i integer l,n,k,p,r,t,x,y complex(8) z1 ! allocatable arrays complex(8), allocatable :: tm2(:,:),tm3(:) complex(8), allocatable :: dmat(:,:,:,:) if (ftmtype.le.0) return if (mod(iscl,ftmstep).ne.1) return allocate(tm2(-lmmaxdm:lmmaxdm,-1:1),tm3(-lmmaxdm:lmmaxdm)) allocate(dmat(lmmaxdm,nspinor,lmmaxdm,nspinor)) n2=(lmmaxdm*nspinor)**2 ! loop over FTM entries do i=1,ntmfix is=itmfix(1,i) ia=itmfix(2,i) ias=idxas(ia,is) l=itmfix(3,i) n=itmfix(4,i) k=itmfix(5,i) p=itmfix(6,i) if (n.eq.2) then x=itmfix(7,i) y=itmfix(8,i) ! decompose density matrix in 2-index tensor moment components call dmtotm2(l,nspinor,k,p,lmmaxdm,dmatmt(:,:,:,:,ias),tm2) ! take difference between current and target moment z1=tm2(x,y)-tmfix(i) tm2(:,:)=0.d0 tm2(x,y)=tauftm*z1 ! compute new density matrix call tm2todm(l,nspinor,k,p,lmmaxdm,tm2,dmat) else r=itmfix(7,i) t=itmfix(8,i) ! decompose density matrix in 3-index tensor moment components call dmtotm3(l,nspinor,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),tm3) ! take difference between current and target moment z1=tm3(t)-tmfix(i) tm3(:)=0.d0 tm3(t)=tauftm*z1 ! compute new density matrix call tm3todm(l,nspinor,k,p,r,lmmaxdm,tm3,dmat) end if ! make density matrix Hermitian call hrmdmat(lmmaxdm*nspinor,dmat) ! apply rotation matrices and add to potential matrix global arrays call rotdmat(rtmfix(:,:,1,i),rtmfix(:,:,2,i),lmaxdm,nspinor,lmmaxdm,dmat, & vmftm(:,:,:,:,ias)) call zaxpy(n2,zone,vmftm(:,:,:,:,ias),1,vmatmt(:,:,:,:,ias),1) end do deallocate(tm2,tm3,dmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeftm.f900000644000000000000000000000013013543334736015007 xustar0029 mtime=1569569246.70464062 30 atime=1569569243.044642957 29 ctime=1569569246.70464062 elk-6.3.2/src/writeftm.f900000644002504400250440000000307113543334736017061 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeftm use modmain use moddftu implicit none ! local variables integer is,ia,ias,i integer l,n,k,p,r,t,x,y ! allocatable arrays complex(8), allocatable :: tm2(:,:),tm3(:) allocate(tm2(-lmmaxdm:lmmaxdm,-1:1),tm3(-lmmaxdm:lmmaxdm)) ! open FTM.OUT open(50,file='FTM.OUT',form='FORMATTED') do i=1,ntmfix is=itmfix(1,i) ia=itmfix(2,i) ias=idxas(ia,is) l=itmfix(3,i) n=itmfix(4,i) k=itmfix(5,i) p=itmfix(6,i) write(50,*) write(50,'("Species : ",I4," (",A,"), atom : ",I4)') is,trim(spsymb(is)),ia write(50,'(" l = ",I2,", n = ",I2)') l,n if (n.eq.2) then x=itmfix(7,i) y=itmfix(8,i) write(50,'(" k = ",I2,", p = ",I2,", x = ",I2,", y = ",I2)') k,p,x,y ! decompose density matrix in 2-index tensor moment components call dmtotm2(l,nspinor,k,p,lmmaxdm,dmatmt(:,:,:,:,ias),tm2) write(50,'(" tensor moment")') write(50,'(" current : ",2G18.10)') tm2(x,y) write(50,'(" target : ",2G18.10)') tmfix(i) else r=itmfix(7,i) t=itmfix(8,i) write(50,'(" k = ",I2,", p = ",I2,", r = ",I2,", t = ",I2)') k,p,r,t ! decompose density matrix in 3-index tensor moment components call dmtotm3(l,nspinor,k,p,r,lmmaxdm,dmatmt(:,:,:,:,ias),tm3) write(50,'(" tensor moment")') write(50,'(" current : ",2G18.10)') tm3(t) write(50,'(" target : ",2G18.10)') tmfix(i) end if end do close(50) deallocate(tm2,tm3) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genvclijji.f900000644000000000000000000000013213543334736015274 xustar0030 mtime=1569569246.708640617 30 atime=1569569243.049642954 30 ctime=1569569246.708640617 elk-6.3.2/src/genvclijji.f900000644002504400250440000001110213543334736017336 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genvclijji ! !INTERFACE: subroutine genvclijji(ikp,vclijji) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vclijji : Coulomb matrix elements (out,real(nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the Coulomb matrix elements of the type $(i-jj-i)$. ! ! !REVISION HISTORY: ! Created June 2008 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp real(8), intent(out) :: vclijji(nstsv,nstsv,nkpt) ! local variables integer ik,ist1,ist2 integer iv(3),iq,ig,i real(8) vc(3) complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: zrhomt(:,:),zrhoir(:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) ! external functions complex(8) zfinp external zfinp ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(zrhomt(npcmtmax,natmtot),zrhoir(ngtc)) allocate(zvclmt(npcmtmax,natmtot),zvclir(ngtc)) ! get the eigenvectors from file for non-reduced k-point ikp call getevecfv(filext,0,vkl(:,ikp),vgkl(:,:,1,ikp),evecfv) call getevecsv(filext,0,vkl(:,ikp),evecsv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! calculate the wavefunctions for all states of passed non-reduced k-point ikp call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) ! start loop over reduced k-point set do ik=1,nkpt ! determine the q-vector iv(:)=ivk(:,ik)-ivk(:,ikp) iv(:)=modulo(iv(:),ngridk(:)) ! check if the q-point is in user-defined set iv(:)=iv(:)*ngridq(:) do i=1,3 if (modulo(iv(i),ngridk(i)).ne.0) goto 10 end do iv(:)=iv(:)/ngridk(:) iq=iqmap(iv(1),iv(2),iv(3)) vc(:)=vkc(:,ik)-vkc(:,ikp) do ig=1,ngvc ! determine the G+q-vectors vgqc(:,ig)=vgc(:,ig)+vc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! structure factors for G+q call gensfacgp(ngvc,vgqc,ngvc,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngvc,gqc,gclgq) ! compute the required spherical Bessel functions call genjlgprmt(lnpsd,ngvc,gqc,ngvc,jlgqrmt) ! find the matching coefficients call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! calculate the wavefunctions for all states of the reduced k-point call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt1,ngtc,wfir1) !----------------------------------------------! ! valence-valence-valence contribution ! !----------------------------------------------! do ist1=1,nstsv do ist2=1,nstsv ! calculate the complex overlap density call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt,zrhoir) ! compute the potential and G=0 coefficient of the density call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax,zrhomt,zvclmt) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc, & gqc,gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,zrhoir,npcmtmax,zvclmt,zvclir) z1=zfinp(zrhomt,zrhoir,zvclmt,zvclir) vclijji(ist1,ist2,ik)=wqptnr*dble(z1) ! end loop over ist2 end do ! end loop over ist1 end do 10 continue ! end loop over reduced k-point set end do deallocate(vgqc,gqc,gclgq,jlgqrmt) deallocate(apwalm,evecfv,evecsv,ylmgq,sfacgq) deallocate(wfmt1,wfmt2,wfir1,wfir2) deallocate(zrhomt,zrhoir,zvclmt,zvclir) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmft.f900000644000000000000000000000013213543334736014264 xustar0030 mtime=1569569246.713640614 30 atime=1569569243.054642951 30 ctime=1569569246.713640614 elk-6.3.2/src/rdmft.f900000644002504400250440000000637313543334736016344 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmft ! !INTERFACE: subroutine rdmft ! !USES: use modmain use modrdm use modmpi ! !DESCRIPTION: ! Main routine for one-body reduced density matrix functional theory (RDMFT). ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! initialise global variables call init0 call init1 ! generate q-point set and gclq array call init2 ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! generate the core wavefunctions and densities call gencore ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! generate the spin-orbit coupling radial functions call gensocfr ! compute the kinetic energy of the core call energykncr ! generate the first- and second-variational eigenvectors and eigenvalues call genevfsv ! find the occupation numbers call occupy ! generate the kinetic matrix elements in the first-variational basis call genkmat(.true.,.false.) ! open information files (MPI master process only) if (mp_mpi) then open(60,file='RDM_INFO.OUT',form='FORMATTED') open(61,file='RDMN_ENERGY.OUT',form='FORMATTED') open(62,file='RDMC_ENERGY.OUT',form='FORMATTED') if (spinpol) then open(63,file='RDMN_MOMENT.OUT',form='FORMATTED') open(64,file='RDMC_MOMENT.OUT',form='FORMATTED') end if open(65,file='RDM_ENERGY.OUT',form='FORMATTED') ! write out general information to RDM_INFO.OUT call writeinfo(60) write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop started |")') write(60,'("+------------------------------+")') end if ! begin main RDMFT self-consistent loop do iscl=1,rdmmaxscl if (mp_mpi) then write(60,*) write(60,'("+--------------------+")') write(60,'("| Loop number : ",I4," |")') iscl write(60,'("+--------------------+")') flush(60) write(*,*) write(*,'("Info(rdmft): self-consistent loop number : ",I4)') iscl end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! minimisation over natural orbitals call rdmminc ! minimisation over occupation number call rdmminn ! compute the RDMFT 'eigenvalues' call rdmeval if (mp_mpi) then call rdmwriteengy(60) call writechg(60) if (spinpol) call writemom(60) call writeeval ! write out the total energy write(65,'(G18.10)') engytot flush(65) end if end do if (mp_mpi) then write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop stopped |")') write(60,'("+------------------------------+")') ! write density to STATE.OUT call writestate write(60,*) write(60,'("Wrote STATE.OUT")') write(60,*) write(60,'("+----------------------------+")') write(60,'("| Elk version ",I1.1,".",I1.1,".",I2.2," stopped |")') version write(60,'("+----------------------------+")') ! close information files close(60) close(61) close(62) if (spinpol) then close(63) close(64) end if close(65) end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmdkdc.f900000644000000000000000000000013213543334736014560 xustar0030 mtime=1569569246.717640611 30 atime=1569569243.060642947 30 ctime=1569569246.717640611 elk-6.3.2/src/rdmdkdc.f900000644002504400250440000000204513543334736016630 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmdkdc ! !INTERFACE: subroutine rdmdkdc ! !USES: use modmain use modrdm use modomp ! !DESCRIPTION: ! Calculates the derivative of kinetic energy w.r.t. the second-variational ! coefficients {\tt evecsv}. ! ! !REVISION HISTORY: ! Created October 2008 (Sharma) !EOP !BOC implicit none ! local variables integer ik,nthd ! allocatable arrays complex(8), allocatable :: evecsv(:,:),kmat(:,:) call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv,kmat) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv),kmat(nstsv,nstsv)) !$OMP DO do ik=1,nkpt call getevecsv(filext,ik,vkl(:,ik),evecsv) call getkmat(ik,kmat) call zgemm('N','N',nstsv,nstsv,nstsv,zone,kmat,nstsv,evecsv,nstsv,zzero, & dkdc(:,:,ik),nstsv) end do !$OMP END DO deallocate(evecsv,kmat) !$OMP END PARALLEL call freethd(nthd) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmminc.f900000644000000000000000000000013213543334736014601 xustar0030 mtime=1569569246.721640609 30 atime=1569569243.064642944 30 ctime=1569569246.721640609 elk-6.3.2/src/rdmminc.f900000644002504400250440000000276413543334736016661 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmminc ! !INTERFACE: subroutine rdmminc ! !USES: use modmain use modrdm use modmpi ! !DESCRIPTION: ! Minimizes the total energy with respect to the second-variational ! coefficients {\tt evecsv}. The steepest-descent algorithm is used. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! local variables integer it if (maxitc.lt.1) return ! begin iteration loop do it=1,maxitc if (mp_mpi) then write(*,'("Info(rdmminc): iteration ",I4," of ",I4)') it,maxitc end if ! generate the density and magnetisation call rhomag ! calculate the Coulomb potential call potcoul ! calculate Coulomb potential matrix elements call genvmat(vclmt,vclir,vclmat) ! calculate derivative of kinetic energy w.r.t. evecsv call rdmdkdc ! write the Coulomb matrix elements to file call writevclijjk ! update evecsv, orthogonalise and write to file (MPI master process only) if (mp_mpi) call rdmvaryc ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! calculate the energy call rdmenergy ! write energy to file if (mp_mpi) then write(62,'(I6,G18.10)') it,engytot flush(62) end if ! end iteration loop end do if (mp_mpi) then write(60,*) write(60,'("Natural orbital minimisation done")') write(62,*) if (spinpol) write(64,*) end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmvaryc.f900000644000000000000000000000013213543334736014777 xustar0030 mtime=1569569246.725640606 30 atime=1569569243.069642941 30 ctime=1569569246.725640606 elk-6.3.2/src/rdmvaryc.f900000644002504400250440000000265013543334736017051 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmvaryc ! !INTERFACE: subroutine rdmvaryc ! !USES: use modmain use modrdm ! !DESCRIPTION: ! Calculates new {\tt evecsv} from old by using the derivatives of the total ! energy w.r.t. {\tt evecsv}. A single step of steepest-descent is made. ! ! !REVISION HISTORY: ! Created 2009 (Sharma) !EOP !BOC implicit none ! local variables integer ik,ist,jst real(8) t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: dedc(:,:,:),evecsv(:,:),x(:) ! external functions real(8) dznrm2 complex(8) zdotc external dznrm2,zdotc ! compute the derivative w.r.t. evecsv allocate(dedc(nstsv,nstsv,nkpt)) call rdmdedc(dedc) allocate(evecsv(nstsv,nstsv),x(nstsv)) do ik=1,nkpt ! get the eigenvectors from file call getevecsv(filext,ik,vkl(:,ik),evecsv) ! calculate new evecsv evecsv(:,:)=evecsv(:,:)-taurdmc*dedc(:,:,ik) ! othogonalise evecsv (Gram-Schmidt) do ist=1,nstsv x(:)=evecsv(:,ist) do jst=1,ist-1 z1=zdotc(nstsv,evecsv(:,jst),1,evecsv(:,ist),1) x(:)=x(:)-z1*evecsv(:,jst) end do t1=dznrm2(nstsv,x,1) t1=1.d0/t1 evecsv(:,ist)=t1*x(:) end do ! write new evecsv to file call putevecsv(filext,ik,evecsv) ! end loop over k-points end do deallocate(dedc,evecsv,x) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmdedc.f900000644000000000000000000000013213543334736014552 xustar0030 mtime=1569569246.730640603 30 atime=1569569243.073642939 30 ctime=1569569246.730640603 elk-6.3.2/src/rdmdedc.f900000644002504400250440000000257313543334736016630 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmdedc ! !INTERFACE: subroutine rdmdedc(dedc) ! !USES: use modmain use modrdm use modomp ! !INPUT/OUTPUT PARAMETERS: ! dedc : energy derivative (out,complex(nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the derivative of the total energy w.r.t. the second-variational ! coefficients {\tt evecsv}. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments complex(8), intent(out) :: dedc(nstsv,nstsv,nkpt) ! local variables integer ik,ist,nthd ! allocatable arrays complex(8), allocatable :: evecsv(:,:),c(:,:) call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv,c,ist) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv),c(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! get the eigenvectors from file call getevecsv(filext,ik,vkl(:,ik),evecsv) ! kinetic and Coulomb potential contribution call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,vclmat(:,:,ik),nstsv, & zzero,c,nstsv) do ist=1,nstsv dedc(:,ist,ik)=occsv(ist,ik)*(dkdc(:,ist,ik)+c(:,ist)) end do end do !$OMP END DO deallocate(evecsv,c) !$OMP END PARALLEL call freethd(nthd) ! exchange-correlation contribution call rdmdexcdc(dedc) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmenergy.f900000644000000000000000000000012613543334736015147 xustar0028 mtime=1569569246.7346406 30 atime=1569569243.078642935 28 ctime=1569569246.7346406 elk-6.3.2/src/rdmenergy.f900000644002504400250440000000404213543334736017213 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2005-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmenergy ! !INTERFACE: subroutine rdmenergy ! !USES: use modmain use modrdm use modmpi use modtest ! !DESCRIPTION: ! Calculates RDMFT total energy (free energy for finite temperatures). ! ! !REVISION HISTORY: ! Created 2008 (Sharma) ! Updated for free energy 2009 (Baldsiefen) !EOP !BOC implicit none ! local variables integer ik,ist,is,ias integer nr,nri,ir,i real(8) t1 complex(8) z1 ! allocatable arrays real(8), allocatable :: rfmt(:) complex(8), allocatable :: evecsv(:,:) ! external functions real(8) rfmtinp complex(8) zdotc external rfmtinp,zdotc allocate(rfmt(npmtmax)) ! Coulomb energy from core states engyvcl=0.d0 do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) rfmt(1:npmt(is))=0.d0 i=1 do ir=1,nr if (spincore) then rfmt(i)=rhocr(ir,ias,1)+rhocr(ir,ias,2) else rfmt(i)=rhocr(ir,ias,1) end if if (ir.le.nri) then i=i+lmmaxi else i=i+lmmaxo end if end do engyvcl=engyvcl+rfmtinp(nr,nri,wrmt(:,is),rfmt,vclmt(:,ias)) end do deallocate(rfmt) engykn=engykncr allocate(evecsv(nstsv,nstsv)) do ik=1,nkpt call getevecsv(filext,ik,vkl(:,ik),evecsv) do ist=1,nstsv t1=wkpt(ik)*occsv(ist,ik) ! Coulomb energy from valence states engyvcl=engyvcl+t1*dble(vclmat(ist,ist,ik)) ! kinetic energy from valence states z1=zdotc(nstsv,evecsv(:,ist),1,dkdc(:,ist,ik),1) engykn=engykn+t1*dble(z1) end do end do deallocate(evecsv) ! Madelung term engymad=0.d0 do ias=1,natmtot is=idxis(ias) engymad=engymad+0.5d0*spzn(is)*(vclmt(1,ias)-vcln(1,is))*y00 end do ! exchange-correlation energy call rdmengyxc ! total energy engytot=0.5d0*engyvcl+engymad+engykn+engyx if (rdmtemp.gt.0.d0) then call rdmentropy engytot=engytot-rdmtemp*rdmentrpy end if ! write total energy to test file call writetest(300,'RDMFT total energy',tol=1.d-6,rv=engytot) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmengyxc.f900000644000000000000000000000013213543334736015150 xustar0030 mtime=1569569246.738640598 30 atime=1569569243.082642933 30 ctime=1569569246.738640598 elk-6.3.2/src/rdmengyxc.f900000644002504400250440000000354113543334736017222 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rdmengyxc ! !INTERFACE: subroutine rdmengyxc ! !USES: use modmain use modrdm ! !DESCRIPTION: ! Calculates RDMFT exchange-correlation energy. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! local variables integer ik1,ik2,jk,iv(3) integer ist1,ist2 real(8) t1,t2,t3,t4 ! allocatable arays real(8), allocatable :: vclijji(:,:,:) ! calculate the prefactor if (rdmxctype.eq.0) then engyx=0.d0 return else if (rdmxctype.eq.1) then ! Hartree-Fock functional t1=0.5d0/occmax else if (rdmxctype.eq.2) then ! Power functional if (spinpol) then t1=0.5d0 else t1=(0.25d0)**rdmalpha end if else write(*,*) write(*,'("Error(rdmengyxc): rdmxctype not defined : ",I8)') rdmxctype write(*,*) stop end if ! exchange-correlation energy engyx=0.d0 allocate(vclijji(nstsv,nstsv,nkpt)) ! start loop over non-reduced k-points do ik1=1,nkptnr call getvclijji(ik1,vclijji) ! find the equivalent reduced k-point iv(:)=ivk(:,ik1) jk=ivkik(iv(1),iv(2),iv(3)) do ist1=1,nstsv ! start loop over reduced k-points do ik2=1,nkpt do ist2=1,nstsv ! Hartree-Fock functional if (rdmxctype.eq.1) then t2=t1*wkpt(ik2)*occsv(ist2,ik2)*occsv(ist1,jk) ! Power functional else if (rdmxctype.eq.2) then t3=occsv(ist2,ik2)*occsv(ist1,jk) t4=sum(abs(vkl(:,ik2)-vkl(:,ik1))) if ((ist2.eq.ist1).and.(t4.lt.epslat)) then t2=(0.5d0/occmax)*wkpt(ik2)*t3 else t2=t1*wkpt(ik2)*(t3**rdmalpha) end if end if engyx=engyx-t2*vclijji(ist2,ist1,ik2) end do end do end do end do deallocate(vclijji) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmwritededn.f900000644000000000000000000000013113543334736015637 xustar0030 mtime=1569569246.743640595 29 atime=1569569243.08764293 30 ctime=1569569246.743640595 elk-6.3.2/src/rdmwritededn.f900000644002504400250440000000204713543334736017712 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rdmwritededn ! !INTERFACE: subroutine rdmwritededn(dedn) ! !USES: use modmain use modrdm ! !INPUT/OUTPUT PARAMETERS: ! dedn : derivative of energy (in,real(nstsv,nkpt)) ! !DESCRIPTION: ! Writes the derivative of total energy with respect to occupation numbers to ! file {\tt RDM\_DEDN.OUT}. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments real(8), intent(in) :: dedn(nstsv,nkpt) ! local variables integer ik,ist open(50,file='RDM_DEDN.OUT',form='FORMATTED') write(50,'(I6," : nkpt")') nkpt write(50,'(I6," : nstsv")') nstsv do ik=1,nkpt write(50,*) write(50,'(I6,3G18.10," : k-point, vkl")') ik,vkl(:,ik) write(50,'(" (state, occupancy and derivative below)")') do ist=1,nstsv write(50,'(I6,4G18.10)') ist,occsv(ist,ik),-dedn(ist,ik) end do end do close(50) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmwriteengy.f900000644000000000000000000000013213543334736015670 xustar0030 mtime=1569569246.747640592 30 atime=1569569243.092642926 30 ctime=1569569246.747640592 elk-6.3.2/src/rdmwriteengy.f900000644002504400250440000000207613543334736017744 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmwriteengy ! !INTERFACE: subroutine rdmwriteengy(fnum) ! !USES: use modmain use modrdm ! !INPUT/OUTPUT PARAMETERS: ! fnum : file number for writing output (in,integer) ! !DESCRIPTION: ! Writes all contributions to the total energy to file. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: fnum write(fnum,*) write(fnum,'("Energies :")') write(fnum,'(" electronic kinetic",T30,": ",G18.10)') engykn write(fnum,'(" core electron kinetic",T30,": ",G18.10)') engykncr write(fnum,'(" Coulomb",T30,": ",G18.10)') engyvcl write(fnum,'(" Madelung",T30,": ",G18.10)') engymad write(fnum,'(" exchange-correlation",T30,": ",G18.10)') engyx if (rdmtemp.gt.0.d0) then write(fnum,'(" entropy",T30,": ",G18.10)') rdmentrpy end if write(fnum,'(" total energy",T30,": ",G18.10)') engytot flush(fnum) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmminn.f900000644000000000000000000000013213543334736014614 xustar0030 mtime=1569569246.751640589 30 atime=1569569243.097642923 30 ctime=1569569246.751640589 elk-6.3.2/src/rdmminn.f900000644002504400250440000000310013543334736016655 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmminn ! !INTERFACE: subroutine rdmminn ! !USES: use modmain use modrdm use modmpi ! !DESCRIPTION: ! Minimizes the total energy w.r.t. occupation numbers. The steepest-descent ! algorithm is used. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! local variables integer it,n if (maxitn.lt.1) return ! write the Coulomb matrix elements to file call writevclijji ! calculate derivative of kinetic energy w.r.t. evecsv call rdmdkdc ! begin iteration loop do it=1,maxitn if (mp_mpi) then if (mod(it,10).eq.0) then write(*,'("Info(rdmminn): iteration ",I4," of ",I4)') it,maxitn end if end if ! generate the density and magnetisation call rhomag ! calculate the Coulomb potential call potcoul ! calculate Coulomb potential matrix elements call genvmat(vclmt,vclir,vclmat) ! update occupation numbers and write to file (MPI master process only) if (mp_mpi) call rdmvaryn ! broadcast occupation numbers to all other processes n=nstsv*nkpt call mpi_bcast(occsv,n,mpi_double_precision,0,mpicom,ierror) ! calculate the energy call rdmenergy ! write energy to file if (mp_mpi) then write(61,'(I6,G18.10)') it,engytot flush(61) end if ! end iteration loop end do if (mp_mpi) then write(60,*) write(60,'("Occupation number minimisation done")') write(61,*) if (spinpol) write(63,*) end if return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmvaryn.f900000644000000000000000000000013113543334736015011 xustar0030 mtime=1569569246.756640586 29 atime=1569569243.10264292 30 ctime=1569569246.756640586 elk-6.3.2/src/rdmvaryn.f900000644002504400250440000000737313543334736017073 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rdmvaryn ! !INTERFACE: subroutine rdmvaryn ! !USES: use modmain use modrdm use modmpi ! !DESCRIPTION: ! Calculates new occupation numbers from old by using the derivatives of the ! total energy: $n_i^{\rm new} = n_i^{\rm old}-\tau \gamma_i$, where $\tau$ is ! chosen such that $0 \le n_i \le n_{\rm max}$ with ! $$ \gamma_i=\begin{cases} ! g_i(n_{\rm max}-n_i) & g_i > 0 \\ ! g_i n_i & g_i\le 0 \end{cases} $$ ! where $g_i=\partial E/\partial n_i-\kappa$, and $\kappa$ is chosen such that ! $\sum_i\gamma_i=0$. ! ! !REVISION HISTORY: ! Created 2009 (JKD,Sharma) !EOP !BOC implicit none ! local variables integer, parameter :: maxit=10000 integer it,ik,ist real(8), parameter :: eps=1.d-12 real(8) tau,sum,gs,gsp,dgs real(8) kapa,dkapa,t1 ! allocatable arrays real(8), allocatable :: dedn(:,:),gamma(:,:) ! add constant to occupancies for charge conservation sum=0.d0 do ik=1,nkpt do ist=1,nstsv sum=sum+wkpt(ik)*occsv(ist,ik) end do end do t1=(chgval-sum)/dble(nstsv) occsv(:,:)=occsv(:,:)+t1 ! redistribute charge so that occupancies are in the interval [0,occmax] sum=0.d0 do ik=1,nkpt do ist=1,nstsv if (occsv(ist,ik).gt.occmax) then sum=sum+wkpt(ik)*(occsv(ist,ik)-occmax) occsv(ist,ik)=occmax end if if (occsv(ist,ik).lt.0.d0) then sum=sum+wkpt(ik)*occsv(ist,ik) occsv(ist,ik)=0.d0 end if end do end do do ist=1,nstsv do ik=1,nkpt if (sum.gt.0.d0) then t1=wkpt(ik)*(occmax-occsv(ist,ik)) t1=min(t1,sum) occsv(ist,ik)=occsv(ist,ik)+t1/wkpt(ik) sum=sum-t1 else t1=wkpt(ik)*occsv(ist,ik) t1=min(t1,-sum) occsv(ist,ik)=occsv(ist,ik)-t1/wkpt(ik) sum=sum+t1 end if end do end do allocate(dedn(nstsv,nkpt)) allocate(gamma(nstsv,nkpt)) ! get the derivatives call rdmdedn(dedn) ! find suitable value of kapa such that sum of gamma is 0 gsp=0.d0 kapa=0.d0 dkapa=0.1d0 do it=1,maxit gs=0.d0 sum=0.d0 do ik=1,nkpt do ist=1,nstsv t1=dedn(ist,ik)-kapa if (t1.gt.0.d0) then gamma(ist,ik)=t1*(occmax-occsv(ist,ik)) else gamma(ist,ik)=t1*occsv(ist,ik) end if gs=gs+wkpt(ik)*gamma(ist,ik) sum=sum+wkpt(ik)*gamma(ist,ik)**2 end do end do sum=sqrt(sum) sum=max(sum,1.d0) t1=abs(gs)/sum if (t1.lt.eps) goto 10 if (it.ge.2) then dgs=gs-gsp if (gs*dgs.gt.0.d0) dkapa=-dkapa if (gs*gsp.lt.0.d0) then dkapa=0.5d0*dkapa else dkapa=1.1d0*dkapa end if end if gsp=gs kapa=kapa+dkapa end do write(*,*) write(*,'("Error(rdmvaryn): could not find offset")') write(*,*) stop 10 continue ! write derivatives and occupancies to file call rdmwritededn(dedn) deallocate(dedn) ! normalize gamma if sum of squares is greater than 1 sum=0.d0 do ik=1,nkpt do ist=1,nstsv sum=sum+wkpt(ik)*gamma(ist,ik)**2 end do end do if (sum.gt.1.d0) then t1=1.d0/sqrt(sum) gamma(:,:)=t1*gamma(:,:) end if ! find step size which keeps occupancies in the interval [0,occmax] tau=taurdmn 20 continue if (abs(tau).lt.eps) goto 30 do ik=1,nkpt do ist=1,nstsv t1=occsv(ist,ik)+tau*gamma(ist,ik) if (gamma(ist,ik).gt.0.d0) then if (t1.gt.occmax+eps) then tau=0.75d0*tau goto 20 end if end if if (gamma(ist,ik).lt.0.d0) then if (t1.lt.-eps) then tau=0.75d0*tau goto 20 end if end if end do end do 30 continue ! update occupancies and write to file do ik=1,nkpt do ist=1,nstsv occsv(ist,ik)=occsv(ist,ik)+tau*gamma(ist,ik) end do call putoccsv(filext,ik,occsv(:,ik)) end do deallocate(gamma) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmdedn.f900000644000000000000000000000013213543334736014565 xustar0030 mtime=1569569246.760640584 30 atime=1569569243.106642918 30 ctime=1569569246.760640584 elk-6.3.2/src/rdmdedn.f900000644002504400250440000000266613543334736016646 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmdedn ! !INTERFACE: subroutine rdmdedn(dedn) ! !USES: use modmain use modrdm use modomp ! !INPUT/OUTPUT PARAMETERS: ! dedn : free energy derivative (out,real(nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the negative of the derivative of total free energy w.r.t. ! occupation numbers. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments real(8), intent(out) :: dedn(nstsv,nkpt) ! local variables integer ik,ist,nthd ! allocatable arrays complex(8), allocatable :: evecsv(:,:),c(:,:) call holdthd(nkpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv,c,ist) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv),c(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! get eigenvectors from file call getevecsv(filext,ik,vkl(:,ik),evecsv) ! kinetic and Coulomb potential contribution call zgemm('C','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,dkdc(:,:,ik),nstsv, & zzero,c,nstsv) do ist=1,nstsv dedn(ist,ik)=-(dble(c(ist,ist))+dble(vclmat(ist,ist,ik))) end do end do !$OMP END DO deallocate(evecsv,c) !$OMP END PARALLEL call freethd(nthd) ! add exchange correlation contribution call rdmdexcdn(dedn) ! add entropic contribution if needed if (rdmtemp.gt.0.d0) call rdmdtsdn(dedn) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmdexcdn.f900000644000000000000000000000013213543334736015120 xustar0030 mtime=1569569246.765640581 30 atime=1569569243.111642914 30 ctime=1569569246.765640581 elk-6.3.2/src/rdmdexcdn.f900000644002504400250440000000421313543334736017167 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmdexcdn ! !INTERFACE: subroutine rdmdexcdn(dedn) ! !USES: use modmain use modrdm ! !INPUT/OUTPUT PARAMETERS: ! dedn : energy derivative (inout,real(nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the derivative of the exchange-correlation energy w.r.t. ! occupation numbers and adds the result to the total. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments real(8), intent(inout) :: dedn(nstsv,nkpt) ! local variables integer ik1,ik2,jk,iv(3) integer ist1,ist2 ! parameter for calculating the functional derivatives real(8), parameter :: eps=1.d-12 real(8) t1,t2,t3,t4 ! allocatable arays real(8), allocatable :: vclijji(:,:,:) if (rdmxctype.eq.0) return ! calculate the prefactor if (rdmxctype.eq.1) then t1=1.d0/occmax ! power functional else if (rdmxctype.eq.2) then if (spinpol) then t1=rdmalpha else t1=2.d0*rdmalpha*(0.25d0)**rdmalpha end if else write(*,*) write(*,'("Error(rdmdexcdn): rdmxctype not defined : ",I8)') rdmxctype write(*,*) stop end if allocate(vclijji(nstsv,nstsv,nkpt)) ! start loop over non-reduced k-points do ik1=1,nkptnr ! get the Coulomb matrix elements call getvclijji(ik1,vclijji) ! find the equivalent reduced k-point iv(:)=ivk(:,ik1) jk=ivkik(iv(1),iv(2),iv(3)) ! loop over reduced k-points do ik2=1,nkpt do ist1=1,nstsv do ist2=1,nstsv ! Hartree-Fock functional if (rdmxctype.eq.1) then t2=t1*occsv(ist1,jk) ! power functional else if (rdmxctype.eq.2) then t3=sum(abs(vkl(:,ik2)-vkl(:,ik1))) if ((ist2.eq.ist1).and.(t3.lt.epslat)) then t2=(1.d0/occmax)*occsv(ist1,jk) else t3=max(occsv(ist2,ik2),eps) t4=max(occsv(ist1,jk),eps) t2=t1*(t4**rdmalpha)/(t3**(1.d0-rdmalpha)) end if end if dedn(ist2,ik2)=dedn(ist2,ik2)+t2*vclijji(ist2,ist1,ik2) end do end do end do end do deallocate(vclijji) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/genvclijjk.f900000644000000000000000000000013213543334736015276 xustar0030 mtime=1569569246.769640578 30 atime=1569569243.116642911 30 ctime=1569569246.769640578 elk-6.3.2/src/genvclijjk.f900000644002504400250440000001173713543334736017356 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genvclijjk ! !INTERFACE: subroutine genvclijjk(ikp,vclijjk) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vclijjk : Coulomb matrix elements (out,complex(nstsv,nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Calculates Coulomb matrix elements of the type $(i-jj-k)$. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp complex(8), intent(out) :: vclijjk(nstsv,nstsv,nstsv,nkpt) ! local variables integer ik,ist1,ist2,ist3 integer iv(3),iq,ig,i real(8) vc(3) complex(8) z1 ! automatic arrays integer idx(nstsv) ! allocatable arrays real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: zrhomt(:,:,:),zrhoir(:,:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) ! external functions complex(8) zfinp external zfinp ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(zrhomt(npcmtmax,natmtot,nstsv),zrhoir(ngtc,nstsv)) allocate(zvclmt(npcmtmax,natmtot),zvclir(ngtc)) ! get the eigenvectors from file for non-reduced k-point ikp call getevecfv(filext,0,vkl(:,ikp),vgkl(:,:,1,ikp),evecfv) call getevecsv(filext,0,vkl(:,ikp),evecsv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! calculate the wavefunctions for all states of passed non-reduced k-point ikp call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) ! start loop over reduced k-point set do ik=1,nkpt ! determine the q-vector iv(:)=ivk(:,ik)-ivk(:,ikp) iv(:)=modulo(iv(:),ngridk(:)) ! check if the q-point is in user-defined set iv(:)=iv(:)*ngridq(:) do i=1,3 if (modulo(iv(i),ngridk(i)).ne.0) goto 10 end do iv(:)=iv(:)/ngridk(:) iq=iqmap(iv(1),iv(2),iv(3)) vc(:)=vkc(:,ik)-vkc(:,ikp) do ig=1,ngvc ! determine the G+q-vectors vgqc(:,ig)=vgc(:,ig)+vc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! structure factors for G+q call gensfacgp(ngvc,vgqc,ngvc,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngvc,gqc,gclgq) ! compute the required spherical Bessel functions call genjlgprmt(lnpsd,ngvc,gqc,ngvc,jlgqrmt) ! find the matching coefficients call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! get the eigenvectors from file call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! calculate the wavefunctions for all states of the reduced k-point call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt1,ngtc,wfir1) !----------------------------------------------! ! valence-valence-valence contribution ! !----------------------------------------------! do ist2=1,nstsv do ist1=1,nstsv ! calculate the complex overlap density for all states call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt(:,:,ist1),zrhoir(:,ist1)) end do do ist1=1,nstsv ! compute the potential and G=0 coefficient of the density call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & zrhomt(:,:,ist1),zvclmt) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc, & gqc,gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,zrhoir(:,ist1),npcmtmax,zvclmt, & zvclir) z1=zfinp(zrhomt(:,:,ist1),zrhoir(:,ist1),zvclmt,zvclir) vclijjk(ist1,ist1,ist2,ik)=wqptnr*dble(z1) do ist3=ist1+1,nstsv z1=zfinp(zrhomt(:,:,ist3),zrhoir(:,ist3),zvclmt,zvclir) vclijjk(ist3,ist1,ist2,ik)=wqptnr*z1 end do end do end do ! calculate the lower diagonal do ist1=1,nstsv do ist3=1,ist1-1 vclijjk(ist3,ist1,:,ik)=conjg(vclijjk(ist1,ist3,:,ik)) end do end do 10 continue ! end loop over reduced k-point set end do deallocate(vgqc,gqc,gclgq,jlgqrmt) deallocate(apwalm,evecfv,evecsv,ylmgq,sfacgq) deallocate(wfmt1,wfmt2,wfir1,wfir2) deallocate(zrhomt,zrhoir,zvclmt,zvclir) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/getvclijji.f900000644000000000000000000000013213543334736015302 xustar0030 mtime=1569569246.773640575 30 atime=1569569243.121642908 30 ctime=1569569246.773640575 elk-6.3.2/src/getvclijji.f900000644002504400250440000000216313543334736017353 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: getvclijji ! !INTERFACE: subroutine getvclijji(ikp,vclijji) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vclijji : Coulomb matrix elements (out,real(nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Retrieves Coulomb matrix elements of the type $(i-jj-i)$ from the file ! {\tt VCLIJJI.OUT}. ! ! !REVISION HISTORY: ! Created 2009 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp real(8), intent(out) :: vclijji(nstsv,nstsv,nkpt) ! local variables integer recl,ios ! determine record length inquire(iolength=recl) vclijji !$OMP CRITICAL(u260) open(260,file='VCLIJJI.OUT',form='UNFORMATTED',access='DIRECT',recl=recl, & iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(getvclijji): error opening file VCLIJJI.OUT")') write(*,*) stop end if read(260,rec=ikp) vclijji close(260) !$OMP END CRITICAL(u260) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/getvclijjk.f900000644000000000000000000000013213543334736015304 xustar0030 mtime=1569569246.778640572 30 atime=1569569243.125642905 30 ctime=1569569246.778640572 elk-6.3.2/src/getvclijjk.f900000644002504400250440000000220513543334736017352 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: getvclijjk ! !INTERFACE: subroutine getvclijjk(ikp,vclijjk) ! !USES: use modmain ! !INPUT/OUTPUT PARAMETERS: ! ikp : k-point from non-reduced set (in,integer) ! vclijjk : Coulomb matrix elements (out,complex(nstsv,nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Retrieves Coulomb matrix elements of the type $(i-jj-k)$ from the file ! {\tt VCLIJJK.OUT}. ! ! !REVISION HISTORY: ! Created 2009 (Sharma) !EOP !BOC implicit none ! arguments integer, intent(in) :: ikp complex(8), intent(out) :: vclijjk(nstsv,nstsv,nstsv,nkpt) ! local variables integer recl,ios ! determine record length inquire(iolength=recl) vclijjk !$OMP CRITICAL(u262) open(262,file='VCLIJJK.OUT',form='UNFORMATTED',access='DIRECT',recl=recl, & iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(getvclijjk): error opening file VCLIJJK.OUT")') write(*,*) stop end if read(262,rec=ikp) vclijjk close(262) !$OMP END CRITICAL(u262) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writevclijji.f900000644000000000000000000000013013543334736015653 xustar0029 mtime=1569569246.78264057 30 atime=1569569243.131642902 29 ctime=1569569246.78264057 elk-6.3.2/src/writevclijji.f900000644002504400250440000000276613543334736017737 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writevclijji ! !INTERFACE: subroutine writevclijji ! !USES: use modmain use modmpi use modomp ! !DESCRIPTION: ! Generates Coulomb matrix elements of the type $(i-jj-i)$ and outputs them to ! the file {\tt VCLIJJI.OUT}. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! allocatable arrays real(8), allocatable :: vclijji(:,:,:) integer recl,ik,nthd ! determine record length for vclijji and open file allocate(vclijji(nstsv,nstsv,nkpt)) inquire(iolength=recl) vclijji deallocate(vclijji) open(260,file='VCLIJJI.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vclijji) & !$OMP NUM_THREADS(nthd) allocate(vclijji(nstsv,nstsv,nkpt)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(writevclijji_) write(*,'("Info(writevclijji): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(writevclijji_) ! calculate Coulomb matrix elements of the type (i-jj-i) call genvclijji(ik,vclijji) !$OMP CRITICAL(u260) write(260,rec=ik) vclijji !$OMP END CRITICAL(u260) end do !$OMP END DO deallocate(vclijji) !$OMP END PARALLEL call freethd(nthd) close(260) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writevclijjk.f900000644000000000000000000000013213543334736015657 xustar0030 mtime=1569569246.786640567 30 atime=1569569243.136642898 30 ctime=1569569246.786640567 elk-6.3.2/src/writevclijjk.f900000644002504400250440000000415213543334736017730 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: writevclijjk ! !INTERFACE: subroutine writevclijjk ! !USES: use modmain use modmpi use modomp ! !DESCRIPTION: ! Generates Coulomb matrix elements of the type $(i-jj-k)$ and outputs them to ! the file {\tt VCLIJJK.OUT}. Also writes the real diagonal of this matrix, ! $(i-jj-i)$, to {\tt VCLIJJI.OUT}. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! local variables integer ik,ist,recl,nthd ! allocatable arrays real(8), allocatable :: vclijji(:,:,:) complex(8), allocatable :: vclijjk(:,:,:,:) ! determine record length for vclijji and open file allocate(vclijji(nstsv,nstsv,nkpt)) inquire(iolength=recl) vclijji deallocate(vclijji) open(260,file='VCLIJJI.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) ! determine record length for vclijjk and open file allocate(vclijjk(nstsv,nstsv,nstsv,nkpt)) inquire(iolength=recl) vclijjk deallocate(vclijjk) open(262,file='VCLIJJK.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vclijji,vclijjk,ist) & !$OMP NUM_THREADS(nthd) allocate(vclijji(nstsv,nstsv,nkpt),vclijjk(nstsv,nstsv,nstsv,nkpt)) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(writevclijjk_) write(*,'("Info(writevclijjk): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(writevclijjk_) ! calculate Coulomb matrix elements of the type (i-jj-k) call genvclijjk(ik,vclijjk) ! make a copy of the diagonal elements (i-jj-i) do ist=1,nstsv vclijji(ist,:,:)=dble(vclijjk(ist,ist,:,:)) end do !$OMP CRITICAL(u260) write(260,rec=ik) vclijji !$OMP END CRITICAL(u260) !$OMP CRITICAL(u262) write(262,rec=ik) vclijjk !$OMP END CRITICAL(u262) end do !$OMP END DO deallocate(vclijji,vclijjk) !$OMP END PARALLEL call freethd(nthd) close(260) close(262) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmdexcdc.f900000644000000000000000000000013213543334736015105 xustar0030 mtime=1569569246.791640564 30 atime=1569569243.141642895 30 ctime=1569569246.791640564 elk-6.3.2/src/rdmdexcdc.f900000644002504400250440000000464713543334736017167 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmdexcdc ! !INTERFACE: subroutine rdmdexcdc(dedc) ! !USES: use modmain use modrdm ! !INPUT/OUTPUT PARAMETERS: ! dedc : energy derivative (inout,complex(nstsv,nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the derivative of the exchange-correlation energy w.r.t. ! {\tt evecsv} and adds the result to the total. ! ! !REVISION HISTORY: ! Created 2008 (Sharma) !EOP !BOC implicit none ! arguments complex(8), intent(inout) :: dedc(nstsv,nstsv,nkpt) ! local variables integer ik1,ik2,jk,iv(3) integer ist1,ist2,ist3,ist4 real(8) t1,t2,t3 ! allocatable arrays complex(8), allocatable :: vclijjk(:,:,:,:),evecsv(:,:) if (rdmxctype.eq.0) return ! calculate the prefactor if (rdmxctype.eq.1) then ! Hartree-Fock functional t1=1.d0/occmax else if (rdmxctype.eq.2) then ! power functional if (spinpol) then t1=1.d0 else t1=2.d0*(0.25d0)**rdmalpha end if else write(*,*) write(*,'("Error(rdmdexcdc): rdmxctype not defined : ",I8)') rdmxctype write(*,*) stop end if allocate(vclijjk(nstsv,nstsv,nstsv,nkpt)) allocate(evecsv(nstsv,nstsv)) ! start loop over non-reduced k-points do ik1=1,nkptnr ! get the Coulomb matrix elements call getvclijjk(ik1,vclijjk) ! find the equivalent reduced k-point iv(:)=ivk(:,ik1) jk=ivkik(iv(1),iv(2),iv(3)) ! start loop over reduced k-points do ik2=1,nkpt ! get the eigenvectors from file call getevecsv(filext,ik2,vkl(:,ik2),evecsv) do ist4=1,nstsv do ist3=1,nstsv do ist2=1,nstsv do ist1=1,nstsv if (rdmxctype.eq.1) then ! Hartree-Fock functional t2=t1*occsv(ist3,ik2)*occsv(ist4,jk) else if (rdmxctype.eq.2) then ! power functional t3=sum(abs(vkl(:,ik2)-vkl(:,ik1))) if ((ist3.eq.ist4).and.(t3.lt.epslat)) then t2=(1.d0/occmax)*occsv(ist4,jk)**2 else t2=t1*(occsv(ist3,ik2)*occsv(ist4,jk))**rdmalpha end if end if dedc(ist2,ist3,ik2)=dedc(ist2,ist3,ik2)-t2*evecsv(ist2,ist1)* & vclijjk(ist1,ist3,ist4,ik2) end do end do end do end do ! end loop over reduced k-points end do ! end loop over non-reduced k-points end do deallocate(vclijjk,evecsv) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmdtsdn.f900000644000000000000000000000013213543334736014767 xustar0030 mtime=1569569246.795640561 30 atime=1569569243.146642892 30 ctime=1569569246.795640561 elk-6.3.2/src/rdmdtsdn.f900000644002504400250440000000163313543334736017041 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 T. Baldsiefen, S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU Lesser General Public ! License. See the file COPYING for license details. !BOP ! !ROUTINE: rdmdtsdn ! !INTERFACE: subroutine rdmdtsdn(dedn) ! !USES: use modmain use modrdm ! !INPUT/OUTPUT PARAMETERS: ! dedn : energy derivative (inout,real(nstsv,nkpt)) ! !DESCRIPTION: ! Calculates the derivative of the entropic contribution to the free energy ! w.r.t. occupation numbers and adds it to the total. ! ! !REVISION HISTORY: ! Created 2008 (Baldsiefen) !EOP !BOC implicit none ! arguments real(8), intent(inout) :: dedn(nstsv,nkpt) ! local variables integer ik,ist real(8) t1 do ik=1,nkpt do ist=1,nstsv t1=max(occsv(ist,ik),epsocc) t1=min(t1,occmax-epsocc) dedn(ist,ik)=dedn(ist,ik)-rdmtemp*kboltz*log(t1/(occmax-t1)) end do end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmentropy.f900000644000000000000000000000013213543334736015353 xustar0030 mtime=1569569246.799640559 30 atime=1569569243.151642889 30 ctime=1569569246.799640559 elk-6.3.2/src/rdmentropy.f900000644002504400250440000000156713543334736017433 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2008 T. Baldsiefen, S. Sharma, J. K. Dewhurst and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. !BOP ! !ROUTINE: rdmentropy ! !INTERFACE: subroutine rdmentropy ! !USES: use modmain use modrdm ! !DESCRIPTION: ! Calculates RDMFT entropy $S=-\sum_i n_i\log(n_i/n_{\rm max}) ! +(n_{\rm max}-n_i)\log(1-n_i/n_{\rm max})$, where $n_{\rm max}$ is the ! maximum allowed occupancy (1 or 2). ! ! !REVISION HISTORY: ! Created 2008 (Baldsiefen) !EOP !BOC implicit none ! local variables integer ik,ist real(8) t1 rdmentrpy=0.d0 do ik=1,nkpt do ist=1,nstsv t1=max(occsv(ist,ik),epsocc) t1=min(t1,occmax-epsocc) rdmentrpy=rdmentrpy-wkpt(ik)*(t1*log(t1/occmax) & +(occmax-t1)*log(1.d0-t1/occmax)) end do end do rdmentrpy=kboltz*rdmentrpy return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/rdmeval.f900000644000000000000000000000013213543334736014602 xustar0030 mtime=1569569246.803640556 30 atime=1569569243.156642886 30 ctime=1569569246.803640556 elk-6.3.2/src/rdmeval.f900000644002504400250440000000165713543334736016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007-2008 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: rdmeval ! !INTERFACE: subroutine rdmeval ! !USES: use modmain use modrdm ! !DESCRIPTION: ! RDMFT eigenvalues are determined by calculating the derivative of the total ! energy with respect to the occupation number at half the maximum occupancy ! ($n_{\rm max}/2$). ! ! !REVISION HISTORY: ! Created 2009 (Sharma) !EOP !BOC implicit none ! local variables integer ik,ist real(8) t1 ! allocatable arrays real(8), allocatable :: dedn(:,:) allocate(dedn(nstsv,nkpt)) do ik=1,nkpt do ist=1,nstsv t1=occsv(ist,ik) occsv(ist,ik)=occmax/2.d0 call rdmdedn(dedn) evalsv(ist,ik)=-dedn(ist,ik) occsv(ist,ik)=t1 end do call putevalsv(filext,ik,evalsv(:,ik)) end do deallocate(dedn) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/gwrhomag.f900000644000000000000000000000013213543334736014763 xustar0030 mtime=1569569246.808640553 30 atime=1569569243.161642882 30 ctime=1569569246.808640553 elk-6.3.2/src/gwrhomag.f900000644002504400250440000000154713543334736017041 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gwrhomag use modmain use modgw use modmpi use modomp implicit none ! local variables integer ik,nthd ! compute the GW density matrices and write the natural orbitals and occupation ! numbers to EVECSV.OUT and OCCSV.OUT, respectively call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call gwdmatk(ik) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! determine the density and magnetisation in the usual way call rhomag return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwdmat.f900000644000000000000000000000013213543334736014433 xustar0030 mtime=1569569246.812640551 30 atime=1569569243.166642879 30 ctime=1569569246.812640551 elk-6.3.2/src/gwdmat.f900000644002504400250440000000234113543334736016502 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gwdmat use modmain use modgw use modmpi use modomp implicit none ! local variables integer ik,nthd ! initialise universal variables call init0 call init1 call init3 ! read Fermi energy from file call readfermi ! get the eigenvalues from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) end do ! determine the GW Fermi energy call gwefermi ! compute the GW density matrices and write the natural orbitals and occupation ! numbers to EVECSV.OUT and OCCSV.OUT, respectively call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call gwdmatk(ik) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) if (mp_mpi) then write(*,*) write(*,'("Info(gwdmat):")') write(*,'(" GW density matrices determined for each k-point")') write(*,*) write(*,'(" Natural orbitals and occupation numbers written to")') write(*,'(" EVECSV.OUT and OCCSV.OUT, respectively")') end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwdmatk.f900000644000000000000000000000013213543334736014606 xustar0030 mtime=1569569246.816640548 30 atime=1569569243.171642876 30 ctime=1569569246.816640548 elk-6.3.2/src/gwdmatk.f900000644002504400250440000000453513543334736016664 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gwdmatk(ik) use modmain use modgw implicit none ! arguments integer, intent(in) :: ik ! local variables integer ist,jst,iw real(8) e,t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: evecsv(:,:),se(:,:,:) complex(8), allocatable :: gs(:),g(:,:),gf(:,:),gl(:,:) complex(8), allocatable :: d(:,:),a(:,:) ! external functions complex(8) gtwsum external gtwsum ! read the self-energy from file allocate(se(nstsv,nstsv,0:nwfm)) call getgwsefm(ik,se) ! allocate local arrays allocate(gs(nstsv),g(nstsv,nstsv)) allocate(gf(nstsv,nstsv),gl(nstsv,nstsv)) allocate(d(nstsv,nstsv)) ! zero the density matrix d(:,:)=0.d0 ! loop over fermionic Matsubara frequencies do iw=0,nwfm ! compute the diagonal matrix G_s do ist=1,nstsv e=evalsv(ist,ik)-efermi gs(ist)=1.d0/(wfm(iw)-e) end do ! compute 1 - G_s Sigma do ist=1,nstsv z1=-gs(ist) g(ist,:)=z1*se(ist,:,iw) g(ist,ist)=g(ist,ist)+1.d0 end do ! invert this matrix call zminv(nstsv,g) ! compute G = (1 - G_s Sigma)^(-1) G_s do jst=1,nstsv z1=gs(jst) g(:,jst)=g(:,jst)*z1 end do ! add to the density matrix d(:,:)=d(:,:)+g(:,:) ! store the Green's function at the first and last frequencies if (iw.eq.0) gf(:,:)=g(:,:) if (iw.eq.nwfm) gl(:,:)=g(:,:) end do ! add the Matsubara tails analytically do jst=1,nstsv do ist=1,nstsv d(ist,jst)=d(ist,jst)+gtwsum(gf(ist,jst),gl(ist,jst)) end do end do ! multiply by 1/beta t1=kboltz*tempk d(:,:)=t1*d(:,:) deallocate(se,gs,g,gf,gl) ! diagonalise the density matrix for the natural orbitals and occupation numbers call eveqnz(nstsv,nstsv,d,occsv(:,ik)) occsv(:,ik)=occsv(:,ik)*occmax ! write the occupation numbers to file call putoccsv(filext,ik,occsv(:,ik)) ! get the second-variational eigenvectors from file allocate(evecsv(nstsv,nstsv)) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! apply unitary transformation to the third-variational states so that they ! refer to the first-variational basis allocate(a(nstsv,nstsv)) call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,d,nstsv,zzero,a,nstsv) ! write the density matrix to file as second-variational eigenvectors call putevecsv(filext,ik,a) deallocate(evecsv,d,a) return end subroutine elk-6.3.2/src/PaxHeaders.21352/ksinvert.f900000644000000000000000000000013213543334736015015 xustar0030 mtime=1569569246.821640545 30 atime=1569569243.176642873 30 ctime=1569569246.821640545 elk-6.3.2/src/ksinvert.f900000644002504400250440000000446513543334736017075 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 P. Elliott, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine ksinvert use modmain use modmpi implicit none ! local variables integer idm,it ! allocatable arrays real(8), allocatable :: rhomt_(:,:),rhoir_(:) real(8), allocatable :: magmt_(:,:,:),magir_(:,:) real(8), allocatable :: rfmt(:,:),rfir(:) ! copy the existing density and magnetisation allocate(rhomt_(npmtmax,natmtot),rhoir_(ngtot)) call rfcopy(rhomt,rhoir,rhomt_,rhoir_) allocate(rfmt(npmtmax,natmtot),rfir(ngtot)) if (spinpol) then allocate(magmt_(npmtmax,natmtot,ndmag),magir_(ngtot,ndmag)) do idm=1,ndmag call rfcopy(magmt(:,:,idm),magir(:,idm),magmt_(:,:,idm),magir_(:,idm)) end do end if if (mp_mpi) then write(*,*) write(*,'("Info(ksinvert): inverting the Kohn-Sham equations")') end if do it=1,maxitksi if (mp_mpi.and.(mod(it,10).eq.0)) then write(*,'("Info(ksinvert): done ",I4," iterations of ",I4)') it,maxitksi end if call hmlrad call genevfsv call occupy call rhomag ! determine the residual and add it to the exchange-correlation potential call residual ! set the constant part of V_xc equal to that of LDA/GGA call rfint0(vxc0,vxcmt,vxcir) ! add the external and Hartree potentials call potks(.false.) call genvsig end do deallocate(rhomt_,rhoir_,rfmt,rfir) if (spinpol) deallocate(magmt_,magir_) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return contains subroutine residual implicit none ! local variables integer is,ias,np ! external functions real(8) rfinp external rfinp do ias=1,natmtot is=idxis(ias) np=npmt(is) rfmt(1:np,ias)=rhomt(1:np,ias)-rhomt_(1:np,ias) call daxpy(np,tauksi,rfmt(:,ias),1,vxcmt(:,ias),1) end do rfir(:)=rhoir(:)-rhoir_(:) call daxpy(ngtot,tauksi,rfir,1,vxcir,1) resoep=rfinp(rfmt,rfir,rfmt,rfir) if (spinpol) then do idm=1,ndmag do ias=1,natmtot is=idxis(ias) np=npmt(is) rfmt(1:np,ias)=magmt(1:np,ias,idm)-magmt_(1:np,ias,idm) call daxpy(np,tauksi,rfmt(:,ias),1,bxcmt(:,ias,idm),1) end do rfir(:)=magir(:,idm)-magir_(:,idm) call daxpy(ngtot,tauksi,rfir,1,bxcir(:,idm),1) resoep=resoep+rfinp(rfmt,rfir,rfmt,rfir) end do end if resoep=resoep/omega return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/gwefermi.f900000644000000000000000000000013113543334736014754 xustar0030 mtime=1569569246.825640542 29 atime=1569569243.18164287 30 ctime=1569569246.825640542 elk-6.3.2/src/gwefermi.f900000644002504400250440000000277213543334736017034 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 P. Elliott, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gwefermi use modmain use modgw use modmpi use modomp implicit none ! local variables integer, parameter :: maxit=1000 integer ik,ist,it,nthd real(8) e0,e1,e real(8) chg,chgk if (mp_mpi) then write(*,*) write(*,'("Info(gwefermi): finding the GW Fermi energy")') end if ! find minimum and maximum eigenvalues e0=evalsv(1,1) e1=e0 do ik=1,nkpt do ist=1,nstsv e=evalsv(ist,ik) if (e.lt.e0) e0=e if (e.gt.e1) e1=e end do end do do it=1,maxit if (mp_mpi.and.(mod(it,10).eq.0)) then write(*,'("Info(gwefermi): done ",I4," iterations")') it end if efermi=0.5d0*(e0+e1) chg=0.d0 ! begin parallel loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(chgk) REDUCTION(+:chg) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle call gwchgk(ik,chgk) chg=chg+chgk end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! add charge from each process and redistribute call mpi_allreduce(mpi_in_place,chg,1,mpi_double_precision,mpi_sum,mpicom, & ierror) if (chg.lt.chgval) then e0=efermi else e1=efermi end if if ((e1-e0).lt.1.d-12) return end do write(*,*) write(*,'("Warning(gwefermi): could not find GW Fermi energy")') return end subroutine elk-6.3.2/src/PaxHeaders.21352/dysonr.f900000644000000000000000000000013013543334736014464 xustar0029 mtime=1569569246.82964054 30 atime=1569569243.186642866 29 ctime=1569569246.82964054 elk-6.3.2/src/dysonr.f900000644002504400250440000000361213543334736016537 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine dysonr(ik,wr,sem,sf) use modmain use modgw use modomp implicit none ! arguments integer, intent(in) :: ik real(8), intent(in) :: wr(nwplot) complex(8), intent(in) :: sem(nstsv,nstsv,0:nwfm) real(8), intent(out) :: sf(nwplot) ! local variables integer ist,jst,iw integer nthd real(8) w,e,sum,t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: ser(:,:,:),gs(:),g(:,:) allocate(ser(nstsv,nstsv,nwplot)) ser(:,:,:)=0.d0 call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(ist) & !$OMP NUM_THREADS(nthd) !$OMP DO do jst=1,nstsv do ist=1,nstsv if (tsediag.and.(ist.ne.jst)) cycle ! perform analytic continuation from the imaginary to the real axis call acgwse(ist,jst,sem,wr,ser) end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! solve the Dyson equation for each frequency call holdthd(nwplot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(gs,g,w,ist,jst) & !$OMP PRIVATE(e,t1,z1,sum) & !$OMP NUM_THREADS(nthd) allocate(gs(nstsv),g(nstsv,nstsv)) !$OMP DO do iw=1,nwplot w=wr(iw) ! compute the diagonal matrix G_s do ist=1,nstsv e=evalsv(ist,ik)-efermi t1=sign(swidth,e) gs(ist)=1.d0/cmplx(w-e,t1,8) end do ! compute 1 - G_s Sigma do ist=1,nstsv z1=-gs(ist) g(ist,:)=z1*ser(ist,:,iw) g(ist,ist)=g(ist,ist)+1.d0 end do ! invert this matrix call zminv(nstsv,g) ! compute G = (1 - G_s Sigma)^(-1) G_s do jst=1,nstsv z1=gs(jst) g(:,jst)=g(:,jst)*z1 end do ! determine the spectral function sum=0.d0 do ist=1,nstsv sum=sum+abs(aimag(g(ist,ist))) end do sf(iw)=sum*occmax/pi end do !$OMP END DO deallocate(gs,g) !$OMP END PARALLEL call freethd(nthd) deallocate(ser) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwlocal.f900000644000000000000000000000013213543334736014600 xustar0030 mtime=1569569246.833640537 30 atime=1569569243.190642864 30 ctime=1569569246.833640537 elk-6.3.2/src/gwlocal.f900000644002504400250440000000254713543334736016657 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gwlocal(vmt,vir,bmt,bir) use modmain implicit none ! arguments real(8), intent(out) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(out) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) ! local variables integer idm,is,ias integer nrc,nrci,npc ! automatic arrays real(8) rfmt(npcmtmax) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) ! convert exchange-correlation potential to a coarse radial mesh call rfmtftoc(nrc,nrci,vxcmt(:,ias),rfmt) ! negate because V_xc should be removed from the self-energy rfmt(1:npc)=-rfmt(1:npc) ! convert to spherical coordinates call rbsht(nrc,nrci,rfmt,vmt(:,ias)) end do ! negate and multiply the interstitial V_xc by the characteristic function vir(:)=-vxcir(:)*cfunir(:) ! do the same for B_xc in the spin-polarised case if (spinpol) then do idm=1,ndmag do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) call rfmtftoc(nrc,nrci,bxcmt(:,ias,idm),rfmt) rfmt(1:npc)=-rfmt(1:npc) call rbsht(nrc,nrci,rfmt,bmt(:,ias,idm)) end do bir(:,idm)=-bxcir(:,idm)*cfunir(:) end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwsefm.f900000644000000000000000000000013213543334736014440 xustar0030 mtime=1569569246.837640535 30 atime=1569569243.195642861 30 ctime=1569569246.837640535 elk-6.3.2/src/gwsefm.f900000644002504400250440000000442613543334736016515 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gwsefm use modmain use modgw use modmpi use modomp implicit none ! local variables integer ik,nthd ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:) real(8), allocatable :: bmt(:,:,:),bir(:,:) complex(8), allocatable :: se(:,:,:) ! initialise universal variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate ! generate the core wavefunctions and densities call gencore ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! write the momentum matrix elements in the second-variational basis to file call genpmat ! generate the inverse dielectric function and write to file call epsinv ! compute the matrix elements of -V_xc and -B_xc allocate(vmt(npcmtmax,natmtot),vir(ngtot)) if (spinpol) then allocate(bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag)) end if call gwlocal(vmt,vir,bmt,bir) if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! loop over reduced k-point set call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(se) & !$OMP NUM_THREADS(nthd) allocate(se(nstsv,nstsv,0:nwfm)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(gwsefm_) write(*,'("Info(gwsefm): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(gwsefm_) ! determine the self-energy at the fermionic frequencies for current k-point call gwsefmk(ik,vmt,vir,bmt,bir,se) ! write the self-energy to file call putgwsefm(ik,se) end do !$OMP END DO deallocate(se) !$OMP END PARALLEL call freethd(nthd) if (mp_mpi) then write(*,*) write(*,'("Info(gwsefm): GW self-energy at the fermionic frequencies & &written to GWSEFM.OUT")') end if deallocate(vmt,vir) if (spinpol) deallocate(bmt,bir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/putgwsefm.f900000644000000000000000000000013213543334736015171 xustar0030 mtime=1569569246.841640532 30 atime=1569569243.200642858 30 ctime=1569569246.841640532 elk-6.3.2/src/putgwsefm.f900000644002504400250440000000122613543334736017241 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine putgwsefm(ik,se) use modmain use modgw implicit none ! arguments integer, intent(in) :: ik complex(8), intent(in) :: se(nstsv,nstsv,0:nwfm) ! local variables integer recl ! find the record length inquire(iolength=recl) vkl(:,ik),nstsv,nwfm,se !$OMP CRITICAL(u280) open(280,file='GWSEFM.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) write(280,rec=ik) vkl(:,ik),nstsv,nwfm,se close(280) !$OMP END CRITICAL(u280) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getgwsefm.f900000644000000000000000000000013213543334736015140 xustar0030 mtime=1569569246.845640529 30 atime=1569569243.205642854 30 ctime=1569569246.845640529 elk-6.3.2/src/getgwsefm.f900000644002504400250440000000261713543334736017215 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine getgwsefm(ik,se) use modmain use modgw implicit none ! arguments integer, intent(in) :: ik complex(8), intent(out) :: se(nstsv,nstsv,0:nwfm) ! local variables integer recl,nstsv_,nwfm_ real(8) vkl_(3),t1 ! find the record length inquire(iolength=recl) vkl_,nstsv_,nwfm_,se !$OMP CRITICAL(u280) open(280,file='GWSEFM.OUT',form='UNFORMATTED',access='DIRECT',recl=recl) read(280,rec=ik) vkl_,nstsv_,nwfm_,se close(280) !$OMP END CRITICAL(u280) t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getgwsefm): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" GWSEFM.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getgwsefm): differing nstsv for k-point ",I8)') ik write(*,'(" current : ",I8)') nstsv write(*,'(" GWSEFM.OUT : ",I8)') nstsv_ write(*,*) stop end if if (nwfm.ne.nwfm_) then write(*,*) write(*,'("Error(getgwsefm): differing nwfm for k-point ",I8)') ik write(*,'(" current : ",I8)') nwfm write(*,'(" GWSEFM.OUT : ",I8)') nwfm_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeigw.f900000644000000000000000000000013213543334736015011 xustar0030 mtime=1569569246.849640527 30 atime=1569569243.211642851 30 ctime=1569569246.849640527 elk-6.3.2/src/writeigw.f900000644002504400250440000000166413543334736017067 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeigw(fnum) use modmain use modgw implicit none ! arguments integer fnum write(fnum,'("+----------------------------------------|")') write(fnum,'("| Self-consistent density GW calculation |")') write(fnum,'("+----------------------------------------|")') write(fnum,*) write(fnum,'("Temperature (K) : ",G18.10)') tempk write(fnum,*) write(fnum,'("Matsubara frequency cut-off : ",G18.10)') wmaxgw write(fnum,'("Number of Matsubara frequencies : ",I6)') nwgw write(fnum,*) write(fnum,'("Maximum |G| for response function : ",G18.10)') gmaxrf write(fnum,'("Number of response-function G-vectors : ",I8)') ngrf write(fnum,*) write(fnum,'("Step size for inverting the Kohn-Sham equations : ",G18.10)') & tauksi flush(fnum) return end subroutine elk-6.3.2/src/PaxHeaders.21352/polefit.f900000644000000000000000000000013213543334736014612 xustar0030 mtime=1569569246.853640524 30 atime=1569569243.215642848 30 ctime=1569569246.853640524 elk-6.3.2/src/polefit.f900000644002504400250440000000107613543334736016665 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function polefit(zfm,c) use modgw implicit none ! arguments complex(8), intent(in) :: zfm(0:nwfm) complex(8), intent(in) :: c(2*npole+1) ! local variables integer iw real(8) sum complex(8) z1 ! external functions complex(8) zfpole external zfpole sum=0.d0 do iw=0,nwfm z1=zfm(iw)-zfpole(c,wfm(iw)) sum=sum+dble(z1)**2+aimag(z1)**2 end do polefit=sum return end function elk-6.3.2/src/PaxHeaders.21352/genwgw.f900000644000000000000000000000013213543334736014446 xustar0030 mtime=1569569246.857640522 30 atime=1569569243.220642845 30 ctime=1569569246.857640522 elk-6.3.2/src/genwgw.f900000644002504400250440000000327113543334736016520 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine genwgw use modmain use modgw implicit none ! local variables integer ik,iw,jw,n real(8) de,t0,t1 t0=kboltz*tempk if (wmaxgw.le.0.d0) then ! read the Fermi energy from file call readfermi ! find the maximum eigenvalue range over all k-points do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) end do de=maxval(abs(evalsv(:,:)-efermi)) wmaxgw=abs(wmaxgw)*de end if ! number of Matsubara frequencies t1=pi*t0 nwgw=2*nint(wmaxgw/t1) nwgw=max(nwgw,2) call nfftifc(nwgw) ! determine integer ranges for grid intwgw(1)=nwgw/2-nwgw+1 intwgw(2)=nwgw/2 if (allocated(iwfft)) deallocate(iwfft) allocate(iwfft(intwgw(1):intwgw(2))) if (allocated(wgw)) deallocate(wgw) allocate(wgw(intwgw(1):intwgw(2))) do iw=intwgw(1),intwgw(2) if (iw.ge.0) then jw=iw else jw=nwgw+iw end if iwfft(iw)=jw+1 wgw(iw)=dble(iw)*t1 end do n=minval(abs(intwgw(:))) if (n.eq.0) then write(*,*) write(*,'("Error(genwgw): not enough Matsubara frequencies")') write(*,'("Increase wmaxgw")') write(*,*) stop end if if (mod(n,2).eq.0) then nwbs=n nwfm=n-1 else nwfm=n nwbs=n-1 end if ! store the complex fermionic frequencies if (allocated(wfm)) deallocate(wfm) allocate(wfm(0:nwfm)) do iw=-nwfm,nwfm,2 jw=(iw+nwfm)/2 wfm(jw)=cmplx(0.d0,wgw(iw),8) end do ! store the complex response function frequencies nwrf=nwbs+1 if (allocated(wrf)) deallocate(wrf) allocate(wrf(nwrf)) do iw=-nwbs,nwbs,2 jw=(iw+nwbs)/2+1 wrf(jw)=cmplx(0.d0,wgw(iw),8) end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwchgk.f900000644000000000000000000000013013543334736014420 xustar0029 mtime=1569569246.86064052 30 atime=1569569243.225642842 29 ctime=1569569246.86064052 elk-6.3.2/src/gwchgk.f900000644002504400250440000000311513543334736016471 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 P. Elliott, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gwchgk(ik,chgk) use modmain use modgw implicit none ! arguments integer, intent(in) :: ik real(8), intent(out) :: chgk ! local variables integer ist,iw real(8) e complex(8) z1 ! allocatable arrays complex(8), allocatable :: gs(:),g(:,:),gf(:),gl(:) complex(8), allocatable :: se(:,:,:) ! external functions complex(8) gtwsum external gtwsum ! read the self-energy from file allocate(se(nstsv,nstsv,0:nwfm)) call getgwsefm(ik,se) ! allocate local arrays allocate(gs(nstsv),g(nstsv,nstsv)) allocate(gf(nstsv),gl(nstsv)) chgk=0.d0 do iw=0,nwfm ! compute the diagonal matrix G_s do ist=1,nstsv e=evalsv(ist,ik)-efermi gs(ist)=1.d0/(wfm(iw)-e) end do ! compute 1 - G_s Sigma do ist=1,nstsv z1=-gs(ist) g(ist,:)=z1*se(ist,:,iw) g(ist,ist)=g(ist,ist)+1.d0 end do ! invert this matrix call zminv(nstsv,g) ! take the trace of G = (1 - G_s Sigma)^(-1) G_s do ist=1,nstsv g(ist,ist)=g(ist,ist)*gs(ist) chgk=chgk+dble(g(ist,ist)) end do ! store the Green's function at the first and last frequencies if (iw.eq.0) then do ist=1,nstsv gf(ist)=g(ist,ist) end do end if if (iw.eq.nwfm) then do ist=1,nstsv gl(ist)=g(ist,ist) end do end if end do ! add the Matsubara tails analytically do ist=1,nstsv chgk=chgk+dble(gtwsum(gf(ist),gl(ist))) end do chgk=chgk*wkpt(ik)*occmax*kboltz*tempk deallocate(se,gs,g,gf,gl) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwsefmk.f900000644000000000000000000000013213543334736014613 xustar0030 mtime=1569569246.865640517 30 atime=1569569243.230642838 30 ctime=1569569246.865640517 elk-6.3.2/src/gwsefmk.f900000644002504400250440000002336013543334736016666 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gwsefmk(ikp,vmt,vir,bmt,bir,se) use modmain use modgw use modomp implicit none ! arguments integer, intent(in) :: ikp real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) real(8), intent(in) :: bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag) complex(8), intent(out) :: se(nstsv,nstsv,0:nwfm) ! local variables integer ik,jk,ist1,ist2,ist3 integer iv(3),iq,ig,jg,i integer iw,jw,it,nthd real(8) vl(3),vc(3),t1,t2 complex(8) z1,z2 ! automatic arrays integer idx(nstsv) ! allocatable arrays integer(8), allocatable :: lock(:) real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:) real(8), allocatable :: jlgqr(:,:,:),jlgqrmt(:,:,:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:) complex(8), allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:) complex(8), allocatable :: zrhomt(:,:,:),zrhoir(:,:) complex(8), allocatable :: zvclmt(:,:),zvclir(:) complex(8), allocatable :: zfgq(:),zrho(:,:,:),epsi(:,:,:) complex(8), allocatable :: v(:,:),stau(:,:,:) complex(8), allocatable :: gs(:,:),wc(:,:),zv(:) ! external functions complex(8) zfinp external zfinp ! allocate local arrays allocate(vgqc(3,ngvc),gqc(ngvc),gclgq(ngvc)) allocate(jlgqr(njcmax,nspecies,ngrf),jlgqrmt(0:lnpsd,ngvc,nspecies)) allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) allocate(ylmgq(lmmaxo,ngvc),sfacgq(ngvc,natmtot)) allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) allocate(wfmt1(npcmtmax,natmtot,nspinor,nstsv),wfir1(ngtc,nspinor,nstsv)) allocate(wfmt2(npcmtmax,natmtot,nspinor,nstsv),wfir2(ngtc,nspinor,nstsv)) allocate(zrhomt(npcmtmax,natmtot,nstsv),zrhoir(ngtc,nstsv)) allocate(zrho(nstsv,ngrf,nstsv),epsi(ngrf,ngrf,nwrf)) allocate(v(nstsv,nstsv),stau(nstsv,nstsv,nwgw),gs(nwgw,nstsv)) ! initialise the OpenMP locks allocate(lock(nwgw)) do it=1,nwgw call omp_init_lock(lock(it)) end do ! get the eigenvectors from file for input reduced k-point call getevecfv(filext,ikp,vkl(:,ikp),vgkl(:,:,:,ikp),evecfv) call getevecsv(filext,ikp,vkl(:,ikp),evecsv) ! find the matching coefficients call match(ngk(1,ikp),vgkc(:,:,1,ikp),gkc(:,1,ikp),sfacgk(:,:,1,ikp),apwalm) ! index to all states do ist1=1,nstsv idx(ist1)=ist1 end do ! calculate the wavefunctions for all states of the input k-point call genwfsv(.false.,.true.,nstsv,idx,ngdc,igfc,ngk(1,ikp),igkig(:,1,ikp), & apwalm,evecfv,evecsv,wfmt1,ngtc,wfir1) ! local -V_xc and -B_xc matrix elements if (spinpol) then call genvbmatk(vmt,vir,bmt,bir,ngk(1,ikp),igkig(:,1,ikp),wfmt1,ngtc,wfir1,v) else call genvmatk(vmt,vir,ngk(1,ikp),igkig(:,1,ikp),wfmt1,ngtc,wfir1,v) end if ! Fourier transform wavefunctions to real-space call zftwfir(ngk(1,ikp),igkig(:,1,ikp),wfir1) ! add the core Fock matrix elements call vclcore(wfmt1,v) ! zero the self-energy matrix elements in tau-space stau(:,:,:)=0.d0 ! loop over non-reduced k-point set do ik=1,nkptnr ! find the equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) ! determine the q-vector iv(:)=ivk(:,ikp)-ivk(:,ik) iv(:)=modulo(iv(:),ngridk(:)) ! check if the q-point is in user-defined set iv(:)=iv(:)*ngridq(:) do i=1,3 if (modulo(iv(i),ngridk(i)).ne.0) goto 10 end do iv(:)=iv(:)/ngridk(:) iq=iqmap(iv(1),iv(2),iv(3)) vl(:)=vkl(:,ikp)-vkl(:,ik) vc(:)=vkc(:,ikp)-vkc(:,ik) do ig=1,ngvc ! determine the G+q-vectors vgqc(:,ig)=vgc(:,ig)+vc(:) ! G+q-vector length gqc(ig)=sqrt(vgqc(1,ig)**2+vgqc(2,ig)**2+vgqc(3,ig)**2) ! spherical harmonics for G+q-vectors call genylmv(lmaxo,vgqc(:,ig),ylmgq(:,ig)) end do ! structure factors for G+q call gensfacgp(ngvc,vgqc,ngvc,sfacgq) ! generate the regularised Coulomb Green's function in G+q-space call gengclgq(.true.,iq,ngvc,gqc,gclgq) ! compute the required spherical Bessel functions call genjlgprmt(lnpsd,ngvc,gqc,ngvc,jlgqrmt) call genjlgpr(ngrf,gqc,jlgqr) ! find the matching coefficients call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! get the eigenvectors from file for non-reduced k-point call getevecfv(filext,0,vkl(:,ik),vgkl(:,:,1,ik),evecfv) call getevecsv(filext,0,vkl(:,ik),evecsv) ! calculate the wavefunctions for all states call genwfsv(.false.,.false.,nstsv,idx,ngdc,igfc,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt2,ngtc,wfir2) ! determine the complex densities and Fourier transform to G+q-space do ist3=1,nstsv call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfgq) & !$OMP NUM_THREADS(nthd) allocate(zfgq(ngrf)) !$OMP DO do ist1=1,nstsv call genzrho(.true.,.true.,ngtc,wfmt2(:,:,:,ist3),wfir2(:,:,ist3), & wfmt1(:,:,:,ist1),wfir1(:,:,ist1),zrhomt(:,:,ist1),zrhoir(:,ist1)) call zftzf(ngrf,jlgqr,ylmgq,ngvc,sfacgq,zrhomt(:,:,ist1),zrhoir(:,ist1), & zfgq) zrho(ist1,:,ist3)=conjg(zfgq(:)) end do !$OMP END DO deallocate(zfgq) !$OMP END PARALLEL call freethd(nthd) !--------------------------------------! ! valence Fock matrix elements ! !--------------------------------------! t1=wqptnr*occsv(ist3,jk)/occmax if (abs(t1).lt.epsocc) cycle call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zvclmt,zvclir) & !$OMP PRIVATE(ist1,z1) & !$OMP NUM_THREADS(nthd) allocate(zvclmt(npcmtmax,natmtot),zvclir(ngtc)) !$OMP DO do ist2=1,nstsv ! calculate the Coulomb potential call genzvclmt(nrcmt,nrcmti,nrcmtmax,rlcmt,wprcmt,npcmtmax, & zrhomt(:,:,ist2),zvclmt) call zpotcoul(nrcmt,nrcmti,npcmt,npcmti,nrcmtmax,rlcmt,ngdc,igfc,ngvc, & gqc,gclgq,ngvc,jlgqrmt,ylmgq,sfacgq,zrhoir(:,ist2),npcmtmax,zvclmt, & zvclir) do ist1=1,ist2 z1=zfinp(zrhomt(:,:,ist1),zrhoir(:,ist1),zvclmt,zvclir) v(ist1,ist2)=v(ist1,ist2)-t1*z1 end do end do !$OMP END DO deallocate(zvclmt,zvclir) !$OMP END PARALLEL call freethd(nthd) end do !-------------------------------------! ! correlation matrix elements ! !-------------------------------------! ! symmetrise the Coulomb Green's function gclgq(1:ngrf)=sqrt(gclgq(1:ngrf)) ! generate G_s in tau-space call holdthd(nstsv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(t1,iw) & !$OMP NUM_THREADS(nthd) do ist1=1,nstsv t1=efermi-evalsv(ist1,jk) gs(:,ist1)=0.d0 do iw=-nwfm,nwfm,2 gs(iwfft(iw),ist1)=1.d0/cmplx(t1,wgw(iw),8) end do call zfftifc(1,nwgw,1,gs(:,ist1)) end do !$OMP END PARALLEL DO call freethd(nthd) ! get RPA inverse epsilon from file call getcfgq('EPSINV.OUT',vl,ngrf,nwrf,epsi) call holdthd(ngrf,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wc,zv,t1,t2,ig,iw,jw) & !$OMP PRIVATE(it,ist2,ist3,z1,z2) & !$OMP NUM_THREADS(nthd) allocate(wc(nwgw,ngrf),zv(nstsv)) !$OMP DO do jg=1,ngrf ! if epsi is exactly zero then there is no entry for this particular G'+q-vector ! so we cycle to the next if (abs(epsi(jg,jg,1)).eq.0.d0) cycle ! subtract one from inverse epsilon to leave just the correlation part epsi(jg,jg,:)=epsi(jg,jg,:)-1.d0 ! compute the correlation part of the screened interaction W_c t1=gclgq(jg) do ig=1,ngrf t2=t1*gclgq(ig) wc(:,ig)=0.d0 do iw=-nwbs,nwbs,2 jw=(iw+nwbs)/2+1 wc(iwfft(iw),ig)=t2*epsi(ig,jg,jw) end do ! Fourier transform W_c to tau-space call zfftifc(1,nwgw,1,wc(:,ig)) end do do it=1,nwgw do ist3=1,nstsv z1=gs(it,ist3) zv(1:nstsv)=0.d0 if (twdiag) then ! use only the diagonal elements of W_c z2=z1*wc(it,jg) call zaxpy(nstsv,z2,zrho(:,jg,ist3),1,zv,1) else ! use the full W_c do ig=1,ngrf z2=z1*wc(it,ig) call zaxpy(nstsv,z2,zrho(:,ig,ist3),1,zv,1) end do end if call omp_set_lock(lock(it)) if (tsediag) then ! compute only the diagonal elements of the self-energy do ist2=1,nstsv z2=conjg(zrho(ist2,jg,ist3)) stau(ist2,ist2,it)=stau(ist2,ist2,it)+z2*zv(ist2) end do else ! compute the full self-energy matrix do ist2=1,nstsv z2=conjg(zrho(ist2,jg,ist3)) call zaxpy(nstsv,z2,zv,1,stau(:,ist2,it),1) end do end if call omp_unset_lock(lock(it)) end do end do end do !$OMP END DO deallocate(wc,zv) !$OMP END PARALLEL call freethd(nthd) 10 continue ! end loop over k-points end do ! destroy the OpenMP locks do it=1,nwgw call omp_destroy_lock(lock(it)) end do deallocate(lock) ! Fourier transform the self-energy to frequency space, multiply by GW diagram ! prefactor and store in output array t1=-wqptnr*omega*kboltz*tempk call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zv,ist1,iw,jw) & !$OMP NUM_THREADS(nthd) allocate(zv(nwgw)) !$OMP DO do ist2=1,nstsv do ist1=1,nstsv zv(1:nwgw)=stau(ist1,ist2,1:nwgw) call zfftifc(1,nwgw,-1,zv) do iw=-nwfm,nwfm,2 jw=(iw+nwfm)/2 se(ist1,ist2,jw)=t1*zv(iwfft(iw)) end do end do end do !$OMP END DO deallocate(zv) !$OMP END PARALLEL call freethd(nthd) ! add the local potential and Fock matrix elements to the self-energy for each ! Matsubara frequency call holdthd(nwfm+1,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ist1,ist2) & !$OMP NUM_THREADS(nthd) do iw=0,nwfm do ist2=1,nstsv do ist1=1,ist2 se(ist1,ist2,iw)=se(ist1,ist2,iw)+v(ist1,ist2) end do do ist1=ist2+1,nstsv se(ist1,ist2,iw)=se(ist1,ist2,iw)+conjg(v(ist2,ist1)) end do end do end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(vgqc,gqc,gclgq,jlgqr,jlgqrmt) deallocate(ylmgq,sfacgq,apwalm,evecfv,evecsv) deallocate(wfmt1,wfir1,wfmt2,wfir2) deallocate(zrhomt,zrhoir,zrho) deallocate(epsi,v,gs) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gwspecf.f900000644000000000000000000000013213543334736014606 xustar0030 mtime=1569569246.869640514 30 atime=1569569243.236642835 30 ctime=1569569246.869640514 elk-6.3.2/src/gwspecf.f900000644002504400250440000000575413543334736016670 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gwspecf use modmain use modgw use modmpi use modomp use modtest implicit none ! local variables integer ik,iw,nthd real(8) dw,w ! allocatable arrays real(8), allocatable :: wr(:),sft(:),sf(:) complex(8), allocatable :: se(:,:,:) ! initialise universal variables call init0 call init1 call init2 call init3 ! read Fermi energy from file call readfermi ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! real axis frequencies allocate(wr(nwplot)) dw=(wplot(2)-wplot(1))/dble(nwplot) do iw=1,nwplot wr(iw)=dw*dble(iw-1)+wplot(1) end do ! allocate and zero the total spectral function allocate(sft(nwplot)) sft(:)=0.d0 if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! loop over reduced k-point set call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(sf,se) & !$OMP NUM_THREADS(nthd) allocate(sf(nwplot),se(nstsv,nstsv,0:nwfm)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(gwspecf_1) write(*,'("Info(gwspecf): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(gwspecf_1) ! get the self-energy at the fermionic frequencies from file call getgwsefm(ik,se) ! solve the Dyson equation on the real axis call dysonr(ik,wr,se,sf) ! write the spectral function to file !$OMP CRITICAL(gwspecf_2) call writegwsf(ik,sf) !$OMP END CRITICAL(gwspecf_2) ! add to the total spectral function !$OMP CRITICAL(gwspecf_3) sft(:)=sft(:)+wkpt(ik)*sf(:) !$OMP END CRITICAL(gwspecf_3) end do !$OMP END DO deallocate(sf,se) !$OMP END PARALLEL call freethd(nthd) ! add total spectral function from each process if (np_mpi.gt.1) then call mpi_allreduce(mpi_in_place,sft,nwplot,mpi_double_precision,mpi_sum, & mpicom,ierror) end if ! write the total spectral function to file (MPI master process only) if (mp_mpi) then open(50,file='GWTSF.OUT',form='FORMATTED') dw=(wplot(2)-wplot(1))/dble(nwplot) do iw=1,nwplot w=dw*dble(iw-1)+wplot(1) write(50,'(2G18.10)') w,sft(iw) end do close(50) write(*,*) write(*,'("Info(gw):")') write(*,'(" GW spectral functions and Kohn-Sham eigenvalues written to & &GWSF_Kkkkkkk.OUT")') write(*,'(" for all k-points")') write(*,*) write(*,'(" Total GW spectral function written to GWTSF.OUT")') write(*,*) write(*,'(" Fermi energy for the Kohn-Sham eigenvalues is at zero in plots")') write(*,'(" Fermi energy for the GW spectral function is undetermined")') write(*,*) write(*,'(" Spectral function units are states/Hartree/unit cell")') end if ! write the total GW spectral function to test file call writetest(610,'total GW spectral function',nv=nwplot,tol=5.d-2,rva=sft) deallocate(wr,sft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writegwsf.f900000644000000000000000000000013213543334736015171 xustar0030 mtime=1569569246.873640512 30 atime=1569569243.241642831 30 ctime=1569569246.873640512 elk-6.3.2/src/writegwsf.f900000644002504400250440000000160113543334736017236 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 A. Davydov, A. Sanna, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine writegwsf(ik,sf) use modmain use modgw implicit none ! arguments integer, intent(in) :: ik real(8), intent(in) :: sf(nwplot) ! local variables integer iw,ist real(8) dw,w,e character(256) fname write(fname,'("GWSF_K",I6.6,".OUT")') ik open(50,file=trim(fname),form='FORMATTED') ! write the GW spectral function dw=(wplot(2)-wplot(1))/dble(nwplot) do iw=1,nwplot w=dw*dble(iw-1)+wplot(1) write(50,'(2G18.10)') w,sf(iw) end do write(50,'(" ")') ! write the Kohn-Sham eigenvalues for reference do ist=1,nstsv e=evalsv(ist,ik)-efermi write(50,'(2G18.10)') e,0.d0 write(50,'(2G18.10)') e,1.d0/swidth write(50,'(" ")') end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/acgwse.f900000644000000000000000000000013213543334736014421 xustar0030 mtime=1569569246.877640509 30 atime=1569569243.246642828 30 ctime=1569569246.877640509 elk-6.3.2/src/acgwse.f900000644002504400250440000000164413543334736016475 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine acgwse(ist,jst,sem,wr,ser) use modmain use modgw implicit none ! arguments integer ist,jst complex(8), intent(in) :: sem(nstsv,nstsv,0:nwfm) real(8), intent(in) :: wr(nwplot) complex(8), intent(out) :: ser(nstsv,nstsv,nwplot) ! allocatable arrays complex(8), allocatable :: zm(:),zwr(:),zr(:) allocate(zm(0:nwfm),zwr(nwplot),zr(nwplot)) zm(:)=sem(ist,jst,:) zwr(:)=wr(:) select case(actype) case(1) ! fit a multipole model call acpole(zm,zwr,zr) case(10) ! stabilised Pade approximant call pades(nspade,swidth,nwfm+1,wfm,zm,nwplot,zwr,zr) case default write(*,*) write(*,'("Error(acgwse): actype not defined : ",I8)') actype write(*,*) stop end select ser(ist,jst,:)=zr(:) deallocate(zm,zwr,zr) return end subroutine elk-6.3.2/src/PaxHeaders.21352/minf_nm.f900000644000000000000000000000013213543334736014573 xustar0030 mtime=1569569246.881640506 30 atime=1569569243.251642825 30 ctime=1569569246.881640506 elk-6.3.2/src/minf_nm.f900000644002504400250440000000405613543334736016647 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2007 J. K. Dewhurst and D. W. H. Rankin. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine minf_nm(id,rd,n,x,maxit,iter,eps) implicit none ! arguments integer, intent(in) :: id(*) real(8), intent(in) :: rd(*) integer, intent(in) :: n real(8), intent(inout) :: x(n,n+1) integer, intent(in) :: maxit integer, intent(out) :: iter real(8), intent(in) :: eps ! local variables integer i,j,il,iu ! Nelder-Mead parmeters real(8), parameter :: alpha=1.d0,gamma=2.d0 real(8), parameter :: beta=0.5d0,sigma=0.5d0 real(8) fr,fe,fc,sum,t1 ! automatic arrays real(8) f(n+1),xm(n),xr(n),xe(n),xc(n) ! external functions real(8) fmin_nm external fmin_nm if (n.lt.0) then write(*,*) write(*,'("Error(minf_nm): n <= 0 : ",I8)') n write(*,*) stop end if ! evaluate the function at each vertex do i=1,n+1 f(i)=fmin_nm(id,rd,x(:,i)) end do iter=0 10 continue iter=iter+1 if (iter.ge.maxit) return ! find the lowest and highest vertex il=1 iu=1 do i=2,n+1 if (f(i).lt.f(il)) il=i if (f(i).gt.f(iu)) iu=i end do ! check for convergence if ((f(iu)-f(il)).lt.eps) return ! compute the mean of the n lowest vertices t1=1.d0/dble(n) do i=1,n sum=0.d0 do j=1,iu-1 sum=sum+x(i,j) end do do j=iu+1,n+1 sum=sum+x(i,j) end do xm(i)=t1*sum end do xr(:)=xm(:)+alpha*(xm(:)-x(:,iu)) fr=fmin_nm(id,rd,xr) if (f(il).gt.fr) goto 30 if ((f(il).le.fr).and.(fr.lt.f(iu))) then ! reflection x(:,iu)=xr(:) f(iu)=fr goto 10 else goto 40 end if 30 continue xe(:)=xm(:)+gamma*(xr(:)-xm(:)) fe=fmin_nm(id,rd,xe) if (fr.gt.fe) then ! expansion x(:,iu)=xe(:) f(iu)=fe else ! reflection x(:,iu)=xr(:) f(iu)=fr end if goto 10 40 continue xc(:)=xm(:)+beta*(x(:,iu)-xm(:)) fc=fmin_nm(id,rd,xc) if (fc.lt.f(iu)) then ! contraction x(:,iu)=xc(:) f(iu)=fc goto 10 end if ! shrinkage do j=1,il-1 x(:,j)=x(:,il)+sigma*(x(:,j)-x(:,il)) f(j)=fmin_nm(id,rd,x(1,j)) end do do j=il+1,n+1 x(:,j)=x(:,il)+sigma*(x(:,j)-x(:,il)) f(j)=fmin_nm(id,rd,x(1,j)) end do goto 10 return end subroutine elk-6.3.2/src/PaxHeaders.21352/fmin_nm.f900000644000000000000000000000013213543334736014573 xustar0030 mtime=1569569246.885640504 30 atime=1569569243.256642822 30 ctime=1569569246.885640504 elk-6.3.2/src/fmin_nm.f900000644002504400250440000000110013543334736016632 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2007 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. real(8) function fmin_nm(id,rd,x) implicit none ! arguments integer, intent(in) :: id(*) real(8), intent(in) :: rd(*),x(*) ! external functions real(8) polefit external polefit select case(id(1)) case(1) fmin_nm=polefit(rd,x) case default write(*,*) write(*,'("Error(fmin_nm): function type not defined : ",I8)') id(1) write(*,*) stop end select return end function elk-6.3.2/src/PaxHeaders.21352/acpole.f900000644000000000000000000000013213543334736014413 xustar0030 mtime=1569569246.889640501 30 atime=1569569243.261642819 30 ctime=1569569246.889640501 elk-6.3.2/src/acpole.f900000644002504400250440000000264213543334736016466 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine acpole(zm,zwr,zr) use modmain use modgw implicit none ! arguments complex(8), intent(in) :: zm(0:nwfm),zwr(nwplot) complex(8), intent(out) :: zr(nwplot) ! local variables integer, parameter :: maxit=1000 integer iter,iw integer n,n2,i,j real(8), parameter :: eps=1.d-5 ! allocatable arrays real(8), allocatable :: x(:,:) ! external functions complex(8) zfpole external zfpole n=2*npole+1 n2=2*n allocate(x(n2,n2+1)) ! intialise simplex x(:,:)=0.d0 ! fit the constant x(1,2)=0.5d0 x(2,3)=0.5d0 call minf_nm(1,zm,n2,x,maxit,iter,eps) ! fit the constant and the first pole x(3,1)=1.d0 do i=1,6 x(i,i+1)=x(i,1)+0.1d0 end do call minf_nm(1,zm,n2,x,maxit,iter,eps) ! fit the remaining poles one-by-one i=7 do j=2,npole x(i,1)=1.d0 x(i,i+1)=x(i,1)+0.1d0 i=i+1 x(i,i+1)=0.1d0 i=i+1 x(i,i+1)=0.1d0 i=i+1 x(i,i+1)=0.1d0 i=i+1 call minf_nm(1,zm,n2,x,maxit,iter,eps) end do ! fit the constant and the first pole again do i=1,6 x(i,i+1)=x(i,1)+0.1d0 end do call minf_nm(1,zm,n2,x,maxit,iter,eps) ! fit everything together if (npole.gt.1) then do i=1,n2 x(i,i+1)=x(i,1)+0.1d0 end do call minf_nm(1,zm,n2,x,maxit,iter,eps) end if do iw=1,nwplot zr(iw)=zfpole(x(:,1),zwr(iw)) end do deallocate(x) return end subroutine elk-6.3.2/src/PaxHeaders.21352/zfpole.f900000644000000000000000000000013213543334736014447 xustar0030 mtime=1569569246.893640499 30 atime=1569569243.266642815 30 ctime=1569569246.893640499 elk-6.3.2/src/zfpole.f900000644002504400250440000000076513543334736016526 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. complex(8) function zfpole(c,z) use modgw implicit none ! arguments complex(8), intent(in) :: c(*),z ! local variables integer i,j real(8) t1 complex(8) z1 zfpole=c(1) i=2 do j=1,npole z1=c(i)+z t1=abs(dble(z1))+abs(aimag(z1)) if (t1.gt.1.d-8) zfpole=zfpole+c(i+1)/z1 i=i+2 end do return end function elk-6.3.2/src/PaxHeaders.21352/gwbandstr.f900000644000000000000000000000013213543334736015143 xustar0030 mtime=1569569246.897640496 30 atime=1569569243.270642813 30 ctime=1569569246.897640496 elk-6.3.2/src/gwbandstr.f900000644002504400250440000000544313543334736017220 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gwbandstr use modmain use modgw use modstore use modmpi use modomp implicit none ! local variables integer ip,iw real(8) dw ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:) real(8), allocatable :: bmt(:,:,:),bir(:,:) real(8), allocatable :: wr(:),sf(:) complex(8), allocatable :: se(:,:,:) ! store original parameters vkloff_(:)=vkloff(:) ! initialise universal variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate ! Fourier transform Kohn-Sham potential to G-space call genvsig ! read Fermi energy from file call readfermi ! generate k-points along a path for band structure plots call plotpt1d(bvec,nvp1d,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) ! compute the matrix elements of -V_xc and -B_xc allocate(vmt(npcmtmax,natmtot),vir(ngtot)) if (spinpol) then allocate(bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag)) end if call gwlocal(vmt,vir,bmt,bir) ! real axis frequencies allocate(wr(nwplot)) dw=(wplot(2)-wplot(1))/dble(nwplot) do iw=1,nwplot wr(iw)=dw*dble(iw-1)+wplot(1) end do allocate(sf(nwplot),se(nstsv,nstsv,0:nwfm)) if (mp_mpi) then open(250,file='GWBAND.OUT',form='FORMATTED') write(250,'(2I6," : grid size")') npp1d,nwplot end if ! loop over plot points along path do ip=1,npp1d if (mp_mpi) then write(*,*) write(*,'("Info(gwbandstr): ",I6," of ",I6," plot points")') ip,npp1d end if ! reset the OpenMP thread variables call omp_reset ! change the k-point offset vkloff(:)=vplp1d(:,ip)*ngridk(:) ! generate the new k-point set call init1 ! determine the Kohn-Sham ground-state for this k-point offset call linengy call genapwlofr call gensocfr call genevfsv call occupy ! write the momentum matrix elements to file call genpmat ! generate the inverse dielectric function and write to file call epsinv ! determine the self-energy for the first k-point if (mp_mpi) then write(*,*) write(*,'("Info(gwbandstr): calculating self-energy for first k-point")') end if call gwsefmk(1,vmt,vir,bmt,bir,se) ! solve the Dyson equation on the real axis call dysonr(1,wr,se,sf) if (mp_mpi) then do iw=1,nwplot write(250,'(3G18.10)') dpp1d(ip),wr(iw),sf(iw) end do flush(250) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) end do deallocate(vmt,vir,wr,sf,se) if (spinpol) deallocate(bmt,bir) if (mp_mpi) then close(250) write(*,*) write(*,'("Info(gwbandstr):")') write(*,'(" GW spectral function band structure written to GWBAND.OUT")') end if ! restore original input parameters vkloff(:)=vkloff_(:) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gtwsum.f900000644000000000000000000000013113543334736014475 xustar0030 mtime=1569569246.900640494 29 atime=1569569243.27564281 30 ctime=1569569246.900640494 elk-6.3.2/src/gtwsum.f900000644002504400250440000000105213543334736016543 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 A. Davydov, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. complex(8) function gtwsum(gf,gl) use modmain use modgw implicit none ! arguments complex(8), intent(in) :: gf,gl ! local variables integer iw real(8) b complex(8) a1,a2,z1 z1=wfm(0) a1=0.5d0*(gf-gl)*z1 a2=0.5d0*(gf+gl)*z1**2 b=1.d0/(kboltz*tempk) gtwsum=b*(0.5d0*a1-0.25d0*b*a2) do iw=0,nwfm gtwsum=gtwsum-a2/wfm(iw)**2 end do return end function elk-6.3.2/src/PaxHeaders.21352/gwscrho.f900000644000000000000000000000013213543334736014624 xustar0030 mtime=1569569246.904640492 30 atime=1569569243.279642807 30 ctime=1569569246.904640492 elk-6.3.2/src/gwscrho.f900000644002504400250440000001557613543334736016711 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 A. Davydov, P. Elliott, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gwscrho use modmain use modgw use modmpi use modomp implicit none ! local variables logical exist integer ik,nthd integer nwork,n real(8) dv ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:) real(8), allocatable :: bmt(:,:,:),bir(:,:) real(8), allocatable :: v(:),work(:) complex(8), allocatable :: se(:,:,:) ! external functions real(8) rfint external rfint ! initialise universal variables call init0 call init1 call init2 call init3 ! read density and potentials from file call readstate call genvsig ! read the Fermi energy call readfermi ! determine the constant part of the LDA/GGA exchange-correlation potential vxc0=rfint(vxcmt,vxcir)/omega ! re-calculate the ground-state call gencore call linengy call genapwlofr call gensocfr call genevfsv call occupy allocate(vmt(npcmtmax,natmtot),vir(ngtot)) if (spinpol) then allocate(bmt(npcmtmax,natmtot,ndmag),bir(ngtot,ndmag)) end if n=npmtmax*natmtot+ngtot if (spinpol) n=n+ndmag*(npcmtmax*natmtot+ngtot) allocate(v(n)) nwork=-1 call mixerifc(mixtype,n,v,dv,nwork,v) allocate(work(nwork)) iscl=0 call mixpack(.true.,n,v) call mixerifc(mixtype,n,v,dv,nwork,work) if (mp_mpi) then ! open GW_INFO.OUT file open(60,file='GW_INFO.OUT',form='FORMATTED') ! open FERMIDOS.OUT open(62,file='FERMIDOS.OUT',form='FORMATTED') ! open MOMENT.OUT if required if (spinpol) open(63,file='MOMENT.OUT',form='FORMATTED') ! open GAP.OUT open(64,file='GAP.OUT',form='FORMATTED') ! open RMSDVS.OUT open(65,file='RMSDVS.OUT',form='FORMATTED') ! open MOMENTM.OUT if (spinpol) open(68,file='MOMENTM.OUT',form='FORMATTED') ! open RESIDUAL.OUT open(69,file='RESIDUAL.OUT',form='FORMATTED') ! write out general information to GW_INFO.OUT call writeigw(60) write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop started |")') write(60,'("+------------------------------+")') end if ! set last self-consistent loop flag tlast=.false. do iscl=1,maxscl if (mp_mpi) then write(60,*) write(60,'("+--------------------+")') write(60,'("| Loop number : ",I4," |")') iscl write(60,'("+--------------------+")') end if call genpmat call epsinv ! compute the matrix elements of -V_xc and -B_xc call gwlocal(vmt,vir,bmt,bir) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) write(*,*) ! loop over reduced k-point set call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(se) & !$OMP NUM_THREADS(nthd) allocate(se(nstsv,nstsv,0:nwfm)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(gwscrho_) write(*,'("Info(gwscrho): ",I6," of ",I6," k-points")') ik,nkpt !$OMP END CRITICAL(gwscrho_) ! determine the self-energy at the fermionic frequencies for current k-point call gwsefmk(ik,vmt,vir,bmt,bir,se) ! write the self-energy to file call putgwsefm(ik,se) end do !$OMP END DO deallocate(se) !$OMP END PARALLEL call freethd(nthd) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) then write(60,*) write(60,'("Kohn-Sham Fermi energy : ",G18.10)') efermi end if ! determine the GW Fermi energy call gwefermi if (mp_mpi) then write(60,'("GW Fermi energy : ",G18.10)') efermi flush(60) end if ! determine the density and magnetisation call gwrhomag ! invert the Kohn-Sham equations to find V_s and B_s call ksinvert ! pack interstitial and muffin-tin potential and field into one array call mixpack(.true.,n,v) ! mix in the old potential and field with the new call mixerifc(mixtype,n,v,dv,nwork,work) ! make sure every MPI process has a numerically identical potential if (np_mpi.gt.1) then call mpi_bcast(v,n,mpi_double_precision,0,mpicom,ierror) end if ! unpack potential and field call mixpack(.false.,n,v) call genvsig if (mp_mpi) then ! write the Kohn-Sham occupation numbers to file do ik=1,nkpt call putoccsv(filext,ik,occsv(:,ik)) end do call writeeval call writefermi ! write STATE.OUT file call writestate write(60,*) write(60,'("Density of states at Fermi energy : ",G18.10)') fermidos write(60,'(" (states/Hartree/unit cell)")') write(60,*) write(60,'("Estimated indirect band gap : ",G18.10)') bandgap(1) write(60,'(" from k-point ",I6," to k-point ",I6)') ikgap(1),ikgap(2) write(60,'("Estimated direct band gap : ",G18.10)') bandgap(2) write(60,'(" at k-point ",I6)') ikgap(3) ! output charges and moments call writechg(60) if (spinpol) call writemom(60) write(60,*) write(60,'("Magnitude of residual : ",G18.10)') resoep flush(60) ! write DOS at Fermi energy to FERMIDOS.OUT write(62,'(G18.10)') fermidos flush(62) if (spinpol) then ! write total moment to MOMENT.OUT write(63,'(3G18.10)') momtot(1:ndmag) flush(63) ! write total moment magnitude to MOMENTM.OUT write(68,'(G18.10)') momtotm flush(68) end if ! write estimated Kohn-Sham indirect band gap write(64,'(G22.12)') bandgap(1) flush(64) ! write residual to RESIDUAL.OUT write(69,'(G18.10)') resoep flush(69) end if ! exit self-consistent loop if required if (tlast) goto 10 ! check for convergence if (iscl.ge.2) then if (mp_mpi) then write(60,*) write(60,'("RMS change in Kohn-Sham potential (target) : ",G18.10," (",& &G18.10,")")') dv,epspot flush(60) write(65,'(G18.10)') dv flush(65) end if if (dv.lt.epspot) then if (mp_mpi) then write(60,*) write(60,'("Convergence targets achieved")') end if tlast=.true. end if end if ! check for STOP file (only master process) if (mp_mpi) then inquire(file='STOP',exist=exist) if (exist) then write(60,*) write(60,'("STOP file exists - stopping self-consistent loop")') open(50,file='STOP') close(50,status='DELETE') tlast=.true. end if end if ! broadcast tlast from master process to all other processes call mpi_bcast(tlast,1,mpi_logical,0,mpicom,ierror) ! reset the OpenMP thread variables call omp_reset ! end the self-consistent loop end do 10 continue ! synchronise MPI processes call mpi_barrier(mpicom,ierror) if (mp_mpi) then write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop stopped |")') write(60,'("+------------------------------+")') ! close the GW_INFO.OUT file close(60) ! close the FERMIDOS.OUT file close(62) ! close the MOMENT.OUT and MOMENTM.OUT files if (spinpol) then close(63); close(68) end if ! close the GAP.OUT file close(64) ! close the RMSDVS.OUT file close(65) ! close the RESIDUAL.OUT file close(69) end if deallocate(vmt,vir) if (spinpol) deallocate(bmt,bir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/tddftlr.f900000644000000000000000000000013213543334736014613 xustar0030 mtime=1569569246.909640489 30 atime=1569569243.284642804 30 ctime=1569569246.909640489 elk-6.3.2/src/tddftlr.f900000644002504400250440000002023013543334736016657 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2010 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tddftlr use modmain use modtddft use modtest use modmpi use modomp implicit none ! local variables logical tq0 integer, parameter :: maxit=500 integer iq,ik,isym integer nm,i,j,l,n integer iw,it,nthd real(8) v(3),t1,t2 complex(8) vfxcp,z1 character(256) fname ! allocatable arrays integer(8), allocatable :: lock(:) real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqr(:,:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: vchi0(:,:,:),vfxc(:,:,:) complex(8), allocatable :: eps0(:,:,:),epsi(:,:,:),epsm(:,:,:) complex(8), allocatable :: zw(:),a(:,:) ! initialise global variables call init0 call init1 call init2 call init3 ! check q-vector is commensurate with k-point grid v(:)=dble(ngridk(:))*vecql(:) v(:)=abs(v(:)-nint(v(:))) if ((v(1).gt.epslat).or.(v(2).gt.epslat).or.(v(3).gt.epslat)) then write(*,*) write(*,'("Error(tddftlr): q-vector incommensurate with k-point grid")') write(*,'(" ngridk : ",3I6)') ngridk write(*,'(" vecql : ",3G18.10)') vecql write(*,*) stop end if ! find the equivalent reduced q-point call findqpt(vecql,isym,iq) ! check if q=0 tq0=.false. if (sum(abs(vecql(:))).lt.epslat) tq0=.true. ! read density and potentials from file call readstate ! read Fermi energy from a file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate the G+q-vectors and related quantities allocate(vgqc(3,ngrf),gqc(ngrf),jlgqr(njcmax,nspecies,ngrf)) allocate(ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot)) call gengqrf(vecqc,vgqc,gqc,jlgqr,ylmgq,sfacgq) deallocate(vgqc) ! generate the regularised Coulomb Green's function in G+q-space allocate(gclgq(ngrf)) call gengclgq(.true.,iq,ngrf,gqc,gclgq) gclgq(:)=sqrt(gclgq(:)) ! matrix sizes if (tq0) then nm=ngrf+2 else nm=ngrf end if ! allocate local arrays allocate(vchi0(nm,nm,nwrf),vfxc(nm,nm,nwrf)) allocate(eps0(nm,nm,nwrf),epsi(nm,nm,nwrf)) ! initialise the OpenMP locks allocate(lock(nwrf)) do iw=1,nwrf call omp_init_lock(lock(iw)) end do ! compute v^1/2 chi0 v^1/2 (the symmetric version of v chi0) vchi0(:,:,:)=0.d0 call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(tddftlr_) write(*,'("Info(tddftlr): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(tddftlr_) ! compute v^1/2 chi0 v^1/2 call genvchi0(.true.,ik,lock,scissor,vecql,gclgq,jlgqr,ylmgq,sfacgq,nm,vchi0) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! destroy the OpenMP locks do iw=1,nwrf call omp_destroy_lock(lock(iw)) end do deallocate(lock) ! add vchi0 from each process and redistribute if (np_mpi.gt.1) then n=nm*nm*nwrf call mpi_allreduce(mpi_in_place,vchi0,n,mpi_double_complex,mpi_sum,mpicom, & ierror) end if ! calculate symmetric epsilon = 1 - v^1/2 chi0 v^1/2 do i=1,nm do j=1,nm eps0(i,j,:)=-vchi0(i,j,:) epsi(i,j,:)=vchi0(i,j,:) end do eps0(i,i,:)=eps0(i,i,:)+1.d0 epsi(i,i,:)=epsi(i,i,:)+1.d0 end do allocate(a(nm,nm)) vfxcp=0.d0 it=0 10 continue ! compute vchi0 v^(-1/2) f_xc v^(-1/2) vchi0 call genvfxc(tq0,.true.,gclgq,nm,vchi0,eps0,epsi,vfxc) ! begin loop over frequencies do iw=1,nwrf ! compute 1 - v^1/2 chi0 v^1/2 - v^(-1/2) f_xc v^(-1/2) vchi0 a(:,:)=eps0(:,:,iw)-vfxc(:,:,iw) ! invert this matrix call zminv(nm,a) ! left multiply by v^1/2 chi0 v^1/2 call zgemm('N','N',nm,nm,nm,zone,vchi0(:,:,iw),nm,a,nm,zzero,epsi(:,:,iw),nm) ! compute epsilon^(-1) = 1 + v^1/2 chi v^1/2 do i=1,nm epsi(i,i,iw)=1.d0+epsi(i,i,iw) end do end do if (fxctype(1).eq.210) then ! self-consistent bootstrap f_xc it=it+1 if (it.gt.maxit) then write(*,*) write(*,'("Error(tddftlr): bootstrap kernel failed to converge")') write(*,*) stop end if if (mod(it,10).eq.0) then write(*,'("Info(tddftlr): done ",I4," bootstrap iterations")') it write(*,'(" head of matrix v.f_xc : ",2G18.10)') vfxc(1,1,1) end if ! check for convergence t1=abs(vfxcp)-abs(vfxc(1,1,1)) vfxcp=vfxc(1,1,1) if (abs(t1).gt.1.d-8) goto 10 else if (fxctype(1).eq.211) then ! single iteration bootstrap it=it+1 if (it.le.1) goto 10 end if deallocate(gclgq,jlgqr) deallocate(ylmgq,sfacgq) deallocate(vchi0,vfxc) ! invert epsilon^(-1) to find epsilon and store in array eps0 do iw=1,nwrf eps0(:,:,iw)=epsi(:,:,iw) call zminv(nm,eps0(:,:,iw)) end do ! write G = G' = 0 components to file if (mp_mpi) then do l=1,noptcomp i=optcomp(1,l) j=optcomp(2,l) write(fname,'("EPSILON_TDDFT_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') write(fname,'("EPSINV_TDDFT_",2I1,".OUT")') i,j open(51,file=trim(fname),form='FORMATTED') do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(eps0(i,j,iw)) write(51,'(2G18.10)') dble(wrf(iw)),dble(epsi(i,j,iw)) end do write(50,*) write(51,*) do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(eps0(i,j,iw)) write(51,'(2G18.10)') dble(wrf(iw)),aimag(epsi(i,j,iw)) end do close(50) close(51) end do end if ! find the macroscopic part of epsilon by inverting the 3x3 head only if (mp_mpi.and.tq0) then allocate(epsm(3,3,nwrf)) do iw=1,nwrf epsm(1:3,1:3,iw)=epsi(1:3,1:3,iw) call zminv(3,epsm(:,:,iw)) end do ! write out the macroscopic components do l=1,noptcomp i=optcomp(1,l) j=optcomp(2,l) write(fname,'("EPSM_TDDFT_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(epsm(i,j,iw)) end do write(50,*) do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(epsm(i,j,iw)) end do close(50) end do allocate(zw(nwrf)) ! output the Faraday angle components Delta delta and Delta beta do iw=2,nwrf zw(iw)=0.5d0*zi*epsm(1,2,iw)/sqrt(epsm(1,1,iw)) end do open(50,file='FARADAY.OUT',form='FORMATTED') do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(zw(iw)) end do write(50,*) do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(zw(iw)) end do close(50) ! output the Kerr angle do iw=2,nwrf zw(iw)=-epsm(1,2,iw)/(sqrt(epsm(1,1,iw))*(epsm(1,1,iw)-1.d0)) end do open(50,file='KERR_TDDFT.OUT',form='FORMATTED') do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(zw(iw))*180.d0/pi end do write(50,*) do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(zw(iw))*180.d0/pi end do close(50) ! output magnetic linear dichroism (MLD) spectrum t1=sin(thetamld)**2 t2=sin(2.d0*thetamld) do iw=2,nwrf z1=epsm(1,1,iw) zw(iw)=t2*epsm(1,2,iw)/((z1-1.d0)*(z1-(t1*(z1+1.d0)))) end do open(50,file='MLD.OUT',form='FORMATTED') do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(zw(iw)) end do write(50,*) do iw=2,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(zw(iw)) end do close(50) deallocate(epsm,zw) end if ! write inverse epsilon to test file call writetest(320,'inverse epsilon',nv=nm*nm*nwrf,tol=1.d-2,zva=epsi) deallocate(eps0,epsi,a) if (mp_mpi) then write(*,*) write(*,'("Info(tddftlr):")') write(*,'(" Dielectric tensor written to EPSILON_TDDFT_ij.OUT")') write(*,'(" Inverse written to EPSINV_TDDFT_ij.OUT")') if (tq0) then write(*,'(" Macroscopic part written to EPSM_TDDFT_ij.OUT")') end if write(*,'(" for components")') do l=1,noptcomp write(*,'(" i = ",I1,", j = ",I1)') optcomp(1:2,l) end do write(*,'(" q-vector (lattice coordinates) : ")') write(*,'(3G18.10)') vecql write(*,'(" q-vector length : ",G18.10)') gqc(1) if (tq0) then write(*,*) write(*,'(" Faraday angle parameters Δδ and Δβ written to FARADAY.OUT")') write(*,'(" MOKE Kerr angle written to KERR_TDDFT.OUT")') write(*,'(" Magnetic linear dichroism (MLD) spectrum written to MLD.OUT")') end if end if deallocate(gqc) return end subroutine elk-6.3.2/src/PaxHeaders.21352/potkst.f900000644000000000000000000000013213543334736014474 xustar0030 mtime=1569569246.913640486 30 atime=1569569243.289642801 30 ctime=1569569246.913640486 elk-6.3.2/src/potkst.f900000644002504400250440000000052513543334736016545 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potkst use modmain use modtddft implicit none ! only adiabatic approximation currently available call potks(.true.) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genhmlt.f900000644000000000000000000000013213543334736014606 xustar0030 mtime=1569569246.918640483 30 atime=1569569243.293642798 30 ctime=1569569246.918640483 elk-6.3.2/src/genhmlt.f900000644002504400250440000000423413543334736016660 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genhmlt(ik,vmt,vir,h) use modmain use modtddft use modmpi implicit none ! arguments integer, intent(in) :: ik real(8), intent(in) :: vmt(npcmtmax,natmtot),vir(ngtot) complex(8), intent(out) :: h(nstsv,nstsv) ! local variables integer ist,i real(8) ca,t1 ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) complex(8), allocatable :: kmat(:,:),pmat(:,:,:) ! coupling constant of the external A-field (1/c) ca=1.d0/solsc allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) ! get the ground-state eigenvectors from file for input k-point call getevecfv('.OUT',ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv('.OUT',ik,vkl(:,ik),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! index to all states do ist=1,nstsv idx(ist)=ist end do ! calculate the wavefunctions for all states of the input k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngkmax,nspinor,nstsv)) call genwfsv(.false.,.true.,nstsv,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm,evecfv,evecsv) ! Kohn-Sham potential and magnetic field matrix elements if (spinpol) then call genvbmatk(vmt,vir,bsmt,bsir,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk,h) else call genvmatk(vmt,vir,ngk(:,ik),igkig(:,:,ik),wfmt,ngkmax,wfgk,h) end if ! add the DFT+U matrix elements if required call genvmmtsv(wfmt,h) deallocate(wfmt,wfgk) ! add the kinetic matrix elements in the second-variational basis allocate(kmat(nstsv,nstsv)) call getkmat(ik,kmat) h(:,:)=h(:,:)+kmat(:,:) deallocate(kmat) ! add the A-field matrix elements in the second-variational basis allocate(pmat(nstsv,nstsv,3)) call getpmat(vkl(:,ik),pmat) do i=1,3 t1=-ca*afieldt(i,itimes) h(:,:)=h(:,:)+t1*pmat(:,:,i) end do deallocate(pmat) return end subroutine elk-6.3.2/src/PaxHeaders.21352/timestep.f900000644000000000000000000000013013543334736015000 xustar0029 mtime=1569569246.92264048 30 atime=1569569243.297642796 29 ctime=1569569246.92264048 elk-6.3.2/src/timestep.f900000644002504400250440000000722113543334736017053 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine timestep use modmain use modtddft use modmpi use modomp implicit none ! local variables integer ik,is,ias,i,j integer nrc,nrci,nthd real(8) dt,t1 complex(8) z1 ! allocatable arrays real(8), allocatable :: vmt(:,:),vir(:),rfmt(:),w(:) complex(8), allocatable :: evecsv(:,:),evectv(:,:),evecsvt(:,:) complex(8), allocatable :: a(:,:),b(:,:),c(:,:) if (itimes.ge.ntimes) then write(*,*) write(*,'("Error(timestep): itimes >= ntimes : ",2I8)') itimes,ntimes write(*,*) stop end if ! convert muffin-tin Kohn-Sham potential to spherical coordinates allocate(vmt(npcmtmax,natmtot)) call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt,is,nrc,nrci) & !$OMP NUM_THREADS(nthd) allocate(rfmt(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) call rfmtftoc(nrc,nrci,vsmt(:,ias),rfmt) call rbsht(nrc,nrci,rfmt,vmt(:,ias)) end do !$OMP END DO deallocate(rfmt) !$OMP END PARALLEL call freethd(nthd) ! multiply interstitial potential by characteristic function allocate(vir(ngtot)) vir(:)=vsir(:)*cfunir(:) ! backup existing time-dependent Kohn-Sham eigenvectors if required call tdbackup ! loop over k-points call holdthd(nkpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecsv,evectv,evecsvt) & !$OMP PRIVATE(w,a,b,c,i,j,dt,t1,z1) & !$OMP NUM_THREADS(nthd) allocate(evecsv(nstsv,nstsv),evectv(nstsv,nstsv),evecsvt(nstsv,nstsv)) allocate(w(nstsv),a(nstsv,nstsv),b(nstsv,nstsv),c(nstsv,nstsv)) !$OMP DO do ik=1,nkpt ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle ! generate the Hamiltonian matrix in the ground-state second-variational basis call genhmlt(ik,vmt,vir,evectv) ! diagonalise the Hamiltonian to get third-variational eigenvectors if (spinpol.and.(.not.ncmag)) then ! collinear case requires block diagonalisation call eveqnz(nstfv,nstsv,evectv,w) i=nstfv+1 call eveqnz(nstfv,nstsv,evectv(i,i),w(i)) do i=1,nstfv do j=1,nstfv evectv(i,j+nstfv)=0.d0 evectv(i+nstfv,j)=0.d0 end do end do else ! non-collinear or spin-unpolarised: full diagonalisation call eveqnz(nstsv,nstsv,evectv,w) end if ! read in ground-state eigenvectors call getevecsv('.OUT',ik,vkl(:,ik),evecsv) ! convert third-variational eigenvectors to first-variational basis call zgemm('N','N',nstsv,nstsv,nstsv,zone,evecsv,nstsv,evectv,nstsv,zzero,a, & nstsv) ! time propagate instantaneous eigenvectors across one time step dt=times(itimes+1)-times(itimes) if (tdphi.eq.0.d0) then ! real time evolution do i=1,nstsv t1=-w(i)*dt z1=cmplx(cos(t1),sin(t1),8) b(:,i)=z1*a(:,i) end do else ! complex time evolution do i=1,nstsv t1=-w(i)*dt z1=t1*cmplx(sin(tdphi),cos(tdphi),8) z1=exp(z1) b(:,i)=z1*a(:,i) end do end if ! read in time-dependent Kohn-Sham eigenvectors (first-variational basis) call getevecsv(filext,ik,vkl(:,ik),evecsvt) ! apply time-evolution operator call zgemm('C','N',nstsv,nstsv,nstsv,zone,a,nstsv,evecsvt,nstsv,zzero,c,nstsv) call zgemm('N','N',nstsv,nstsv,nstsv,zone,b,nstsv,c,nstsv,zzero,evecsvt,nstsv) ! orthonormalise the eigenvectors if required if (tdphi.ne.0.d0) call orthevsv(evecsvt) ! write the new eigenvectors to file call putevecsv(filext,ik,evecsvt) end do !$OMP END DO deallocate(evecsv,evectv,evecsvt) deallocate(w,a,b,c) !$OMP END PARALLEL call freethd(nthd) deallocate(vmt,vir) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writetddos.f900000644000000000000000000000013213543334736015340 xustar0030 mtime=1569569246.926640478 30 atime=1569569243.302642792 30 ctime=1569569246.926640478 elk-6.3.2/src/writetddos.f900000644002504400250440000000256413543334736017416 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writetddos(fext) use modmain use modtddft implicit none ! arguments character(*), intent(in) :: fext ! local variables integer ik,ist,jst real(8) sum,t1 complex(8) z1 ! allocatable arrays real(8), allocatable :: occsvp(:,:) complex(8), allocatable :: evecsv(:,:),evecsvt(:,:) ! external functions complex(8) zdotc external zdotc allocate(occsvp(nstsv,nkpt)) do ik=1,nkpt allocate(evecsv(nstsv,nstsv),evecsvt(nstsv,nstsv)) ! read in ground-state eigenvectors call getevecsv('.OUT',ik,vkl(:,ik),evecsv) ! read in the time evolving eigenvectors call getevecsv('_TD.OUT',ik,vkl(:,ik),evecsvt) ! determine the time-dependent projected occupancies do ist=1,nstsv sum=0.d0 do jst=1,nstsv t1=occsv(jst,ik) if (abs(t1).lt.epsocc) cycle z1=zdotc(nstsv,evecsv(:,ist),1,evecsvt(:,jst),1) sum=sum+t1*(dble(z1)**2+aimag(z1)**2) end do occsvp(ist,ik)=sum end do ! write projected occupancies to file call putoccsv('P'//trim(fext),ik,occsvp(:,ik)) deallocate(evecsv,evecsvt) end do ! compute the effective electronic temperature call tdtemp(occsvp) ! write the DOS to file call dos(fext,.true.,occsvp) deallocate(occsvp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/gentimes.f900000644000000000000000000000013213543334736014763 xustar0030 mtime=1569569246.930640475 30 atime=1569569243.307642789 30 ctime=1569569246.930640475 elk-6.3.2/src/gentimes.f900000644002504400250440000000077013543334736017036 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gentimes use modmain use modtddft implicit none ! local variables integer its ! number of time steps ntimes=int(tstime/dtimes)+1 ! generate the time-step array if (allocated(times)) deallocate(times) allocate(times(ntimes)) do its=1,ntimes times(its)=dble(its-1)*dtimes end do return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeafpdt.f900000644000000000000000000000013213543334736015321 xustar0030 mtime=1569569246.934640473 30 atime=1569569243.311642787 30 ctime=1569569246.934640473 elk-6.3.2/src/writeafpdt.f900000644002504400250440000000256713543334736017402 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeafpdt use modmain use modtddft implicit none ! local variables integer its,i real(8) ed,t1 ! conversion factor of energy density to J/cm^2 real(8), parameter :: ced=ha_si/(100.d0*br_si)**2 ! allocatable arrays real(8), allocatable :: f(:),g(:),pd(:) ! external functions real(8) splint external splint ! allocate local arrays allocate(f(ntimes),g(ntimes),pd(ntimes)) ! compute the power density at each time step pd(:)=0.d0 do i=1,3 f(:)=afieldt(i,:) call fderiv(1,ntimes,times,f,g) pd(:)=pd(:)+g(:)**2 end do t1=1.d0/(8.d0*pi*solsc) pd(:)=t1*pd(:) ! write the power density to file open(50,file='AFPDT.OUT',form='FORMATTED') do its=1,ntimes write(50,'(2G18.10)') times(its),pd(its) end do close(50) ! integrate power density to find the total energy density ed=splint(ntimes,times,pd) open(50,file='AFTED.OUT',form='FORMATTED') write(50,*) write(50,'("Total energy density : ",G18.10)') ed write(50,'(" in J/cm^2 : ",G18.10)') ed*ced close(50) write(*,*) write(*,'("Info(writeafpdt):")') write(*,'(" Power density of A-field written to AFPDT.OUT")') write(*,'(" Total energy density of A-field written to AFTED.OUT")') deallocate(f,g,pd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writetimes.f900000644000000000000000000000013013543334736015342 xustar0029 mtime=1569569246.93864047 30 atime=1569569243.316642784 29 ctime=1569569246.93864047 elk-6.3.2/src/writetimes.f900000644002504400250440000000060413543334736017413 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writetimes use modmain use modtddft implicit none open(50,file='TIMESTEP.OUT',form='FORMATTED') write(50,'(I8,G18.10)') itimes,times(itimes) close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readtimes.f900000644000000000000000000000013113543334736015124 xustar0030 mtime=1569569246.942640467 29 atime=1569569243.32164278 30 ctime=1569569246.942640467 elk-6.3.2/src/readtimes.f900000644002504400250440000000221413543334736017173 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readtimes(itimes0) use modmain use modtddft implicit none ! arguments integer, intent(out) :: itimes0 ! local variables integer ios real(8) times_,t1 open(50,file='TIMESTEP.OUT',form='FORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readtimes): error opening TIMESTEP.OUT")') write(*,*) stop end if read(50,*,iostat=ios) itimes0,times_ if (ios.ne.0) then write(*,*) write(*,'("Error(readtimes): error reading time step from TIMESTEP.OUT")') write(*,*) stop end if if ((itimes0.lt.1).or.(itimes0.gt.ntimes)) then write(*,*) write(*,'("Error(readtimes): invalid itimes : ",I8)') itimes0 write(*,*) stop end if t1=abs(times(itimes0)-times_) if (t1.gt.1.d-8) then write(*,*) write(*,'("Error(readtimes): differing time step")') write(*,'(" current : ",G18.10)') times(itimes0) write(*,'(" TIMESTEP.OUT : ",G18.10)') times_ write(*,*) stop end if close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readafieldt.f900000644000000000000000000000013213543334736015414 xustar0030 mtime=1569569246.947640464 30 atime=1569569243.325642778 30 ctime=1569569246.947640464 elk-6.3.2/src/readafieldt.f900000644002504400250440000000252313543334736017465 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readafieldt use modmain use modtddft implicit none ! local variables integer ntimes_,its,its_ integer ios real(8) times_,t1 open(50,file='AFIELDT.OUT',form='FORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readafieldt): error opening AFIELDT.OUT")') write(*,*) stop end if read(50,*) ntimes_ if (ntimes_.le.0) then write(*,*) write(*,'("Error(readafieldt): ntimes <= 0 : ",I8)') ntimes_ write(*,*) stop end if ntimes=min(ntimes,ntimes_) if (allocated(afieldt)) deallocate(afieldt) allocate(afieldt(3,ntimes)) do its=1,ntimes read(50,*) its_,times_,afieldt(:,its) if (its.ne.its_) then write(*,*) write(*,'("Error(readafieldt): time step number mismatch")') write(*,'(" internal : ",I8)') its write(*,'(" AFIELDT.OUT : ",I8)') its_ write(*,*) stop end if t1=abs(times(its)-times_) if (t1.gt.1.d-10) then write(*,*) write(*,'("Error(readafieldt): time step mismatch : ",G18.10)') write(*,'(" internal : ",G18.10)') times(its) write(*,'(" AFIELDT.OUT : ",G18.10)') times_ stop end if end do close(50) tafieldt=.true. return end subroutine elk-6.3.2/src/PaxHeaders.21352/tddft.f900000644000000000000000000000013213543334736014255 xustar0030 mtime=1569569246.951640462 30 atime=1569569243.329642775 30 ctime=1569569246.951640462 elk-6.3.2/src/tddft.f900000644002504400250440000000751013543334736016327 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tddft use modmain use modtddft use moddftu use modmpi use modomp use modstore use modtest implicit none ! local variables logical exist integer ik,itimes0 ! allocatable arrays real(8), allocatable :: evalfv(:,:) complex(8), allocatable :: evecfv(:,:,:),evecsv(:,:) if (tshift) then write(*,*) write(*,'("Error(tddft): use tshift = .false. for the ground-state run")') write(*,*) stop end if ! average force can be non-zero (allow for translation of atomic basis) tfav0_=tfav0 tfav0=.false. ! initialise global variables call init0 call init1 ! read the charge density and potentials from file call readstate ! generate the first- and second-variational eigenvectors and eigenvalues for ! the k-point set reduced with the symmetries which leave A(t) invariant for all ! time steps call genvsig call gencore call readfermi call linengy call genapwlofr call gensocfr call genevfsv call occupy ! DFT+U if (dftu.ne.0) then call gendmatmt call genvmatmt end if ! generate the kinetic matrix elements in the second-variational basis call genkmat(.false.,.false.) ! write the momentum matrix elements in the second-variational basis call genpmat ! write the power density to file if (mp_mpi) call writeafpdt ! copy EVALFV.OUT, EVECFV.OUT, OCCSV.OUT and EVECSV.OUT to _TD.OUT extension if (mp_mpi.and.(task.eq.460)) then allocate(evalfv(nstfv,nspnfv),evecfv(nmatmax,nstfv,nspnfv)) allocate(evecsv(nstsv,nstsv)) do ik=1,nkpt call getevalfv('.OUT',ik,vkl(:,ik),evalfv) call putevalfv('_TD.OUT',ik,evalfv) call getevecfv('.OUT',ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call putevecfv('_TD.OUT',ik,evecfv) call putoccsv('_TD.OUT',ik,occsv(:,ik)) call getevecsv('.OUT',ik,vkl(:,ik),evecsv) ! randomise eigenvectors at t=0 if required call rndevsv(rndevt0,evecsv) call putevecsv('_TD.OUT',ik,evecsv) end do deallocate(evalfv,evecfv,evecsv) end if ! set global file extension filext='_TD.OUT' ! output the new k-point set to file if (mp_mpi) call writekpts ! synchronise MPI processes call mpi_barrier(mpicom,ierror) itimes0=0 ! restart if required if (task.eq.461) call readtimes(itimes0) ! set the stop signal to .false. tstop=.false. !---------------------------------! ! main loop over time steps ! !---------------------------------! if (mp_mpi) write(*,*) ! synchronise MPI processes call mpi_barrier(mpicom,ierror) do itimes=itimes0+1,ntimes-1 if (mp_mpi) then write(*,'("Info(tddft): time step ",I8," of ",I8,", t = ",G18.10)') & itimes,ntimes-1,times(itimes) end if ! reset the OpenMP thread variables call omp_reset ! evolve the wavefunctions across a single time step call timestep ! generate the density and magnetisation at current time step call rhomag ! compute the total current call curden(afieldt(:,itimes)) ! compute the time-dependent Kohn-Sham potentials and magnetic fields call potkst ! DFT+U if (dftu.ne.0) then call gendmatmt call genvmatmt end if ! write muffin-tin L, S and J if required if (tdlsj) call writetdlsj ! compute the atomic forces if required if (tforce) call force if (mp_mpi) then ! write TDDFT output call writetddft ! write the time step to file call writetimes ! check for STOP file inquire(file='STOP',exist=exist) if (exist) then open(50,file='STOP') close(50,status='DELETE') tstop=.true. end if end if ! broadcast tstop from master process to all other processes call mpi_bcast(tstop,1,mpi_logical,0,mpicom,ierror) if (tstop) exit end do filext='.OUT' tfav0=tfav0_ ! write the total current of the last step to test file call writetest(460,'total current of last time step',nv=3,tol=1.d-4,rva=curtot) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genvfxc.f900000644000000000000000000000013213543334736014610 xustar0030 mtime=1569569246.955640459 30 atime=1569569243.334642772 30 ctime=1569569246.955640459 elk-6.3.2/src/genvfxc.f900000644002504400250440000000331013543334736016654 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2011 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvfxc(tq0,t3hw,gclgq,nm,vchi0,eps0,epsi,vfxc) use modmain use modtddft implicit none ! arguments logical, intent(in) :: tq0,t3hw real(8), intent(in) :: gclgq(ngrf) integer, intent(in) :: nm complex(8), intent(in) :: vchi0(nm,nm,nwrf) complex(8), intent(in) :: eps0(nm,nm,nwrf) complex(8), intent(in) :: epsi(nm,nm,nwrf) complex(8), intent(out) :: vfxc(nm,nm,nwrf) ! local variables integer iw,i,j complex(8) z1 ! allocatable arrays complex(8), allocatable :: a(:,:) ! compute v^(-1/2) f_xc v^(-1/2) select case(fxctype(1)) case(0,1) ! RPA vfxc(:,:,:)=0.d0 return case(3) ! ALDA if (tq0.and.t3hw) then call genvfxcg(gclgq,nm,vfxc(3,3,1)) ! the head and wings are zero vfxc(1:3,:,:)=0.d0 vfxc(4:,1:3,:)=0.d0 else call genvfxcg(gclgq,nm,vfxc) end if case(200) ! long-range contribution with dynamic correlations vfxc(:,:,:)=0.d0 do i=1,nm vfxc(i,i,:)=-(fxclrc(1)+fxclrc(2)*dble(wrf(:))**2)/fourpi end do case(210,211) ! bootstrap vfxc(:,:,:)=0.d0 if (tq0.and.t3hw) then z1=(eps0(1,1,1)+eps0(2,2,1)+eps0(3,3,1))/3.d0 else z1=eps0(1,1,1) end if z1=-1.d0/(z1-1.d0) do i=1,nm do j=1,nm vfxc(i,j,:)=z1*epsi(i,j,1) end do end do case default write(*,*) write(*,'("Error(genvfxc): fxctype not defined : ",3I8)') fxctype write(*,*) stop end select ! right multiply by v^1/2 chi0 v^1/2 allocate(a(nm,nm)) do iw=1,nwrf a(:,:)=vfxc(:,:,iw) call zgemm('N','N',nm,nm,nm,zone,a,nm,vchi0(:,:,iw),nm,zzero,vfxc(:,:,iw),nm) end do deallocate(a) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genfxcr.f900000644000000000000000000000013213543334736014604 xustar0030 mtime=1569569246.960640456 30 atime=1569569243.338642769 30 ctime=1569569246.960640456 elk-6.3.2/src/genfxcr.f900000644002504400250440000000626313543334736016662 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genfxcr(tsh,fxcmt,fxcir) use modmain use modtddft use modfxcifc implicit none ! arguments logical, intent(in) :: tsh real(8), intent(out) :: fxcmt(npmtmax,natmtot),fxcir(ngtot) ! local variables integer idm,is,ias integer nr,nri,ir,np,i,n real(8) t1 real(8), allocatable :: rho(:),rhoup(:),rhodn(:),mag(:,:) real(8), allocatable :: fxc(:),fxcuu(:),fxcud(:),fxcdd(:) ! number of independent spin components n=npmtmax allocate(rho(n),fxc(n)) if (spinpol) then allocate(mag(n,3)) n=max(n,ngtot) allocate(rhoup(n),rhodn(n)) allocate(fxcuu(n),fxcud(n),fxcdd(n)) end if !---------------------------! ! muffin-tin kernel ! !---------------------------! do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) ! compute the density in spherical coordinates call rbsht(nr,nri,rhomt(:,ias),rho) if (spinpol) then !------------------------! ! spin-polarised ! !------------------------! ! magnetisation in spherical coordinates do idm=1,ndmag call rbsht(nr,nri,magmt(:,ias,idm),mag(:,idm)) end do if (ncmag) then ! non-collinear (use Kubler's trick) do i=1,np ! compute rhoup=(rho+|m|)/2 and rhodn=(rho-|m|)/2 t1=sqrt(mag(i,1)**2+mag(i,2)**2+mag(i,3)**2) rhoup(i)=0.5d0*(rho(i)+t1) rhodn(i)=0.5d0*(rho(i)-t1) end do else ! collinear do i=1,np ! compute rhoup=(rho+m_z)/2 and rhodn=(rho-m_z)/2 rhoup(i)=0.5d0*(rho(i)+mag(i,1)) rhodn(i)=0.5d0*(rho(i)-mag(i,1)) end do end if ! compute fxc call fxcifc(fxctype,n=np,rhoup=rhoup,rhodn=rhodn,fxcuu=fxcuu,fxcud=fxcud, & fxcdd=fxcdd) ! form the scalar quantity dv/drho do i=1,np fxc(i)=0.25d0*(fxcuu(i)+2.d0*fxcud(i)+fxcdd(i)) end do else !--------------------------! ! spin-unpolarised ! !--------------------------! call fxcifc(fxctype,n=np,rho=rho,fxc=fxc) end if if (tsh) then ! convert fxc to spherical harmonics if required call rfsht(nr,nri,fxc,fxcmt(:,ias)) else fxcmt(1:np,ias)=fxc(1:np) end if end do !-----------------------------! ! interstitial kernel ! !-----------------------------! if (spinpol) then !------------------------! ! spin-polarised ! !------------------------! if (ncmag) then ! non-collinear do ir=1,ngtot t1=sqrt(magir(ir,1)**2+magir(ir,2)**2+magir(ir,3)**2) rhoup(ir)=0.5d0*(rhoir(ir)+t1) rhodn(ir)=0.5d0*(rhoir(ir)-t1) end do else ! collinear do ir=1,ngtot rhoup(ir)=0.5d0*(rhoir(ir)+magir(ir,1)) rhodn(ir)=0.5d0*(rhoir(ir)-magir(ir,1)) end do end if ! compute fxc call fxcifc(fxctype,n=ngtot,rhoup=rhoup,rhodn=rhodn,fxcuu=fxcuu,fxcud=fxcud, & fxcdd=fxcdd) do ir=1,ngtot fxcir(ir)=0.25d0*(fxcuu(ir)+2.d0*fxcud(ir)+fxcdd(ir)) end do else !--------------------------! ! spin-unpolarised ! !--------------------------! call fxcifc(fxctype,n=ngtot,rho=rhoir,fxc=fxcir) end if deallocate(rho,fxc) if (spinpol) then deallocate(mag,rhoup,rhodn) deallocate(fxcuu,fxcud,fxcdd) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/tdtemp.f900000644000000000000000000000013213543334736014445 xustar0030 mtime=1569569246.964640453 30 atime=1569569243.342642767 30 ctime=1569569246.964640453 elk-6.3.2/src/tdtemp.f900000644002504400250440000000245113543334736016516 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tdtemp(occsvp) use modmain use modtddft implicit none ! arguments real(8), intent(in) :: occsvp(nstsv,nkpt) ! local variables integer, parameter :: maxit=1000 integer ik,ist,it real(8), parameter :: eps=1.d-6 real(8) sw,dsw,sum,sp real(8) x,t1,t2,t3 ! external functions real(8) sdelta_fd,stheta_fd external sdelta_fd,stheta_fd ! initial smearing width sw=1.d-6 ! initial smearing width step size dsw=1.d-6 sp=0.d0 do it=1,maxit t1=1.d0/sw sum=0.d0 do ik=1,nkpt do ist=1,nstsv x=(efermi-evalsv(ist,ik))*t1 t2=occmax*stheta_fd(x) t3=sdelta_fd(x)*x*t1 sum=sum+(occsvp(ist,ik)-t2)*t3 end do end do if ((sum*sp).lt.0.d0) then dsw=-0.5d0*dsw if (abs(dsw).lt.eps) goto 10 else dsw=1.5d0*dsw end if sp=sum sw=sw+dsw if ((sw.lt.0.d0).or.(sw.gt.1.d6)) exit end do write(*,*) write(*,'("Warning(tdtemp): could not estimate effective temperature")') return 10 continue ! write effective temperature to file t1=sw/kboltz open(50,file='TDTEMP.OUT',form='FORMATTED',position='APPEND') write(50,'(2G18.10)') times(itimes),t1 close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writetdlsj.f900000644000000000000000000000013213543334736015343 xustar0030 mtime=1569569246.968640451 30 atime=1569569243.348642763 30 ctime=1569569246.968640451 elk-6.3.2/src/writetdlsj.f900000644002504400250440000000226113543334736017413 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writetdlsj use modmain use modtddft use modmpi implicit none ! local variables integer is,ia,ias real(8) xl(3),xs(3) character(256) fext ! allocatable arrays complex(8), allocatable :: dmat(:,:,:,:,:) if (ntswrite.le.0) return if (mod(itimes-1,ntswrite).ne.0) return allocate(dmat(lmmaxo,nspinor,lmmaxo,nspinor,natmtot)) ! generate the density matrix in each muffin-tin call gendmat(.false.,.false.,0,lmaxo,lmmaxo,dmat) if (mp_mpi) then write(fext,'("_TS",I8.8,".OUT")') itimes open(50,file='LSJ'//trim(fext),form='FORMATTED') do is=1,nspecies write(50,*) write(50,'("Species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) ! calculate the expectation value of L and S call dmatls(dmat(:,:,:,:,ias),xl,xs) write(50,'(" atom : ",I4)') ia write(50,'(" L : ",3G18.10)') xl(:) write(50,'(" S : ",3G18.10)') xs(:) write(50,'(" J : ",3G18.10)') xl(:)+xs(:) end do end do close(50) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/genspfxcr.f900000644000000000000000000000013213543334736015147 xustar0030 mtime=1569569246.973640448 30 atime=1569569243.352642761 30 ctime=1569569246.973640448 elk-6.3.2/src/genspfxcr.f900000644002504400250440000001206013543334736017215 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genspfxcr(tsh,fxcmt,fxcir) use modmain use modtddft use modfxcifc implicit none ! arguments logical, intent(in) :: tsh real(8), intent(out) :: fxcmt(npmtmax,natmtot,4,4),fxcir(ngtot,4,4) ! local variables integer idm,is,ias integer nr,nri,ir,np,i,j,n real(8) t1 ! allocatable arrays real(8), allocatable :: rho(:),rhoup(:),rhodn(:) real(8), allocatable :: mag(:,:),magu(:,:),magm(:) real(8), allocatable :: bxc(:,:),bxcp(:) real(8), allocatable :: fxcuu(:),fxcud(:),fxcdd(:) real(8), allocatable :: fxc(:,:,:) if (.not.spinpol) then write(*,*) write(*,'("Error(genspfxcr): spin-unpolarised calculation")') write(*,*) stop end if ! allocate local arrays n=npmtmax allocate(rho(n),mag(n,ndmag)) allocate(bxc(n,ndmag),fxc(n,4,4)) n=max(n,ngtot) allocate(rhoup(n),rhodn(n)) allocate(magu(3,n),magm(n),bxcp(n)) allocate(fxcuu(n),fxcud(n),fxcdd(n)) !---------------------------! ! muffin-tin kernel ! !---------------------------! do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) np=npmt(is) ! compute the density in spherical coordinates call rbsht(nr,nri,rhomt(:,ias),rho) do idm=1,ndmag ! magnetisation in spherical coordinates call rbsht(nr,nri,magmt(:,ias,idm),mag(:,idm)) ! B_xc in spherical coordinates call rbsht(nr,nri,bxcmt(:,ias,idm),bxc(:,idm)) end do if (ncmag) then ! non-collinear (use Kubler's trick) do i=1,np ! compute |m| magm(i)=sqrt(mag(i,1)**2+mag(i,2)**2+mag(i,3)**2) ! compute rhoup=(rho+|m|)/2 and rhodn=(rho-|m|)/2 rhoup(i)=0.5d0*(rho(i)+magm(i)) rhodn(i)=0.5d0*(rho(i)-magm(i)) ! unit vector m/|m| t1=1.d0/(magm(i)+1.d-8) magu(1,i)=t1*mag(i,1) magu(2,i)=t1*mag(i,2) magu(3,i)=t1*mag(i,3) ! compute B_xc.(m/|m|) bxcp(i)=bxc(i,1)*magu(1,i)+bxc(i,2)*magu(2,i)+bxc(i,3)*magu(3,i) end do else ! collinear do i=1,np ! compute |m| = |m_z| magm(i)=abs(mag(i,1)) ! compute rhoup=(rho+|m|)/2 and rhodn=(rho-|m|)/2 rhoup(i)=0.5d0*(rho(i)+magm(i)) rhodn(i)=0.5d0*(rho(i)-magm(i)) ! unit vector m/|m| magu(1,i)=0.d0 magu(2,i)=0.d0 if (mag(i,1).gt.0.d0) then magu(3,i)=1.d0 else magu(3,i)=-1.d0 end if ! compute B_xc.(m/|m|) bxcp(i)=bxc(i,1)*magu(3,i) end do end if ! compute f_xc in U(2) x U(2) basis call fxcifc(fxctype,n=np,rhoup=rhoup,rhodn=rhodn,fxcuu=fxcuu,fxcud=fxcud, & fxcdd=fxcdd) ! transform f_xc to O(1) x O(3) basis (upper triangular part) call tfm2213(np,fxcuu,fxcud,fxcdd,magu,magm,bxcp,npmtmax,fxc) do i=1,4 do j=i,4 if (tsh) then ! convert to spherical harmonics if required call rfsht(nr,nri,fxc(:,i,j),fxcmt(:,ias,i,j)) else call dcopy(np,fxc(:,i,j),fxcmt(:,ias,i,j),1) end if end do end do end do !-----------------------------! ! interstitial kernel ! !-----------------------------! if (ncmag) then ! non-collinear do ir=1,ngtot magm(ir)=sqrt(magir(ir,1)**2+magir(ir,2)**2+magir(ir,3)**2) rhoup(ir)=0.5d0*(rhoir(ir)+magm(ir)) rhodn(ir)=0.5d0*(rhoir(ir)-magm(ir)) t1=1.d0/(magm(ir)+1.d-8) magu(1,ir)=t1*magir(ir,1) magu(2,ir)=t1*magir(ir,2) magu(3,ir)=t1*magir(ir,3) ! compute B_xc.(m/|m|) bxcp(ir)=bxcir(ir,1)*magu(1,ir) & +bxcir(ir,2)*magu(2,ir) & +bxcir(ir,3)*magu(3,ir) end do else ! collinear do ir=1,ngtot magm(ir)=abs(magir(ir,1)) rhoup(ir)=0.5d0*(rhoir(ir)+magm(ir)) rhodn(ir)=0.5d0*(rhoir(ir)-magm(ir)) magu(1,ir)=0.d0 magu(2,ir)=0.d0 if (magir(ir,1).gt.0.d0) then magu(3,ir)=1.d0 else magu(3,ir)=-1.d0 end if ! compute B_xc.(m/|m|) bxcp(ir)=bxcir(ir,1)*magu(3,ir) end do end if ! compute f_xc in U(2) x U(2) basis call fxcifc(fxctype,n=ngtot,rhoup=rhoup,rhodn=rhodn,fxcuu=fxcuu,fxcud=fxcud, & fxcdd=fxcdd) ! transform f_xc to O(1) x O(3) basis call tfm2213(ngtot,fxcuu,fxcud,fxcdd,magu,magm,bxcp,ngtot,fxcir) deallocate(rho,mag,bxc,fxc) deallocate(rhoup,rhodn) deallocate(magu,magm,bxcp) deallocate(fxcuu,fxcud,fxcdd) return contains subroutine tfm2213(n,fxcuu,fxcud,fxcdd,magu,magm,bxcp,ld,fxc) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: fxcuu(n),fxcud(n),fxcdd(n) real(8), intent(in) :: magu(3,n),magm(n),bxcp(n) integer, intent(in) :: ld real(8), intent(out) :: fxc(ld,4,4) ! local variables integer i real(8) t1,t2 do i=1,n ! charge-charge fxc(i,1,1)=0.25d0*(fxcuu(i)+2.d0*fxcud(i)+fxcdd(i)) ! charge-spin t1=0.25d0*(fxcuu(i)-fxcdd(i)) fxc(i,1,2)=t1*magu(1,i) fxc(i,1,3)=t1*magu(2,i) fxc(i,1,4)=t1*magu(3,i) ! spin-spin if (magm(i).gt.1.d-14) then t1=bxcp(i)/magm(i) else t1=0.d0 end if t2=0.25d0*(fxcuu(i)-2.d0*fxcud(i)+fxcdd(i))-t1 fxc(i,2,2)=t2*magu(1,i)*magu(1,i)+t1 fxc(i,2,3)=t2*magu(1,i)*magu(2,i) fxc(i,2,4)=t2*magu(1,i)*magu(3,i) fxc(i,3,3)=t2*magu(2,i)*magu(2,i)+t1 fxc(i,3,4)=t2*magu(2,i)*magu(3,i) fxc(i,4,4)=t2*magu(3,i)*magu(3,i)+t1 end do return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/genvfxcg.f900000644000000000000000000000013213543334736014757 xustar0030 mtime=1569569246.977640445 30 atime=1569569243.357642757 30 ctime=1569569246.977640445 elk-6.3.2/src/genvfxcg.f900000644002504400250440000000217313543334736017031 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2012 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genvfxcg(gclgq,nm,vfxc) use modmain implicit none ! arguments real(8), intent(in) :: gclgq(ngrf) integer, intent(in) :: nm complex(8), intent(out) :: vfxc(nm,nm,nwrf) ! local variables integer ig,jg,kg,iv(3) ! allocatable arrays real(8), allocatable :: fxcmt(:,:),fxcir(:) complex(8), allocatable :: fxcg(:) allocate(fxcmt(npmtmax,natmtot),fxcir(ngtot)) allocate(fxcg(ngtot)) ! generate the kernel f_xc in real-space call genfxcr(.true.,fxcmt,fxcir) ! Fourier transform the kernel to G-space call zftrf(ngtot,ivg,vgc,fxcmt,fxcir,fxcg) do ig=1,ngrf do jg=1,ngrf iv(:)=ivg(:,ig)-ivg(:,jg) if ((iv(1).ge.intgv(1,1)).and.(iv(1).le.intgv(2,1)).and. & (iv(2).ge.intgv(1,2)).and.(iv(2).le.intgv(2,2)).and. & (iv(3).ge.intgv(1,3)).and.(iv(3).le.intgv(2,3))) then kg=ivgig(iv(1),iv(2),iv(3)) vfxc(ig,jg,:)=fxcg(kg)/(gclgq(ig)*gclgq(jg)) end if end do end do deallocate(fxcmt,fxcir,fxcg) return end subroutine elk-6.3.2/src/PaxHeaders.21352/tdbackup.f900000644000000000000000000000013213543334736014745 xustar0030 mtime=1569569246.982640442 30 atime=1569569243.361642755 30 ctime=1569569246.982640442 elk-6.3.2/src/tdbackup.f900000644002504400250440000000164513543334736017022 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tdbackup use modmain use modtddft use modmpi implicit none ! local variables integer ik ! allocatable arrays complex(8), allocatable :: evecsvt(:,:) if (ntsbackup.le.0) return if (mod(itimes-1,ntsbackup).ne.0) return if (mp_mpi) then allocate(evecsvt(nstsv,nstsv)) do ik=1,nkpt ! read in time-dependent Kohn-Sham eigenvectors call getevecsv(filext,ik,vkl(:,ik),evecsvt) ! write eigenvectors to backup file call putevecsv('_TD_BACKUP.OUT',ik,evecsvt) end do deallocate(evecsvt) ! write the time-step backup file open(50,file='TIMESTEP_BACKUP.OUT',form='FORMATTED') write(50,'(I8,G18.10)') itimes,times(itimes) close(50) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/tddftsplr.f900000644000000000000000000000013213543334736015156 xustar0030 mtime=1569569246.986640439 30 atime=1569569243.365642752 30 ctime=1569569246.986640439 elk-6.3.2/src/tddftsplr.f900000644002504400250440000002060413543334736017227 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine tddftsplr use modmain use modtest use modmpi use modomp implicit none ! local variables integer ik,isym,iq,iw integer ig,jg,i,j,n integer nthd real(8) v(3) complex(8) a(4,4),b(4,4),z1 character(256) fname ! allocatable arrays integer(8), allocatable :: lock(:) real(8), allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqr(:,:,:) complex(8), allocatable :: ylmgq(:,:),sfacgq(:,:) complex(8), allocatable :: chi(:,:,:,:,:),chit(:),fxc(:,:,:,:) complex(8), allocatable :: c(:,:),d(:,:,:,:) if (.not.spinpol) then write(*,*) write(*,'("Error(tddftsplr): spin-unpolarised calculation")') write(*,*) stop end if ! initialise global variables call init0 call init1 call init2 call init3 ! check q-vector is commensurate with k-point grid v(:)=dble(ngridk(:))*vecql(:) v(:)=abs(v(:)-nint(v(:))) if ((v(1).gt.epslat).or.(v(2).gt.epslat).or.(v(3).gt.epslat)) then write(*,*) write(*,'("Error(tddftsplr): q-vector incommensurate with k-point grid")') write(*,'(" ngridk : ",3I6)') ngridk write(*,'(" vecql : ",3G18.10)') vecql write(*,*) stop end if ! find the equivalent reduced q-point call findqpt(vecql,isym,iq) ! read density and potentials from file call readstate ! read Fermi energy from a file call readfermi ! find the new linearisation energies call linengy ! generate the APW radial functions call genapwfr ! generate the local-orbital radial functions call genlofr ! get the eigenvalues and occupancies from file do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) call getoccsv(filext,ik,vkl(:,ik),occsv(:,ik)) end do ! generate the G+q-vectors and related quantities allocate(vgqc(3,ngrf),gqc(ngrf),jlgqr(njcmax,nspecies,ngrf)) allocate(ylmgq(lmmaxo,ngrf),sfacgq(ngrf,natmtot)) call gengqrf(vecqc,vgqc,gqc,jlgqr,ylmgq,sfacgq) deallocate(vgqc) ! initialise the OpenMP locks allocate(lock(nwrf)) do iw=1,nwrf call omp_init_lock(lock(iw)) end do ! compute chi0 allocate(chi(ngrf,4,ngrf,4,nwrf)) chi(:,:,:,:,:)=0.d0 call holdthd(nkptnr/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) !$OMP DO do ik=1,nkptnr ! distribute among MPI processes if (mod(ik-1,np_mpi).ne.lp_mpi) cycle !$OMP CRITICAL(tddftsplr_) write(*,'("Info(tddftsplr): ",I6," of ",I6," k-points")') ik,nkptnr !$OMP END CRITICAL(tddftsplr_) call genspchi0(ik,lock,scissor,vecql,jlgqr,ylmgq,sfacgq,chi) end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) ! destroy the OpenMP locks do iw=1,nwrf call omp_destroy_lock(lock(iw)) end do deallocate(lock) ! add chi0 from each process and redistribute if (np_mpi.gt.1) then n=ngrf*4*ngrf*4*nwrf call mpi_allreduce(mpi_in_place,chi,n,mpi_double_complex,mpi_sum,mpicom, & ierror) end if ! transform chi0 from 2x2 to 1x3 basis do iw=1,nwrf do ig=1,ngrf do jg=1,ngrf a(:,:)=chi(ig,:,jg,:,iw) call tfm2213(a,b) chi(ig,:,jg,:,iw)=b(:,:) end do end do end do ! generate transverse chi0 for the collinear case if (.not.ncmag) then allocate(chit(nwrf)) do iw=1,nwrf a(:,:)=chi(1,:,1,:,iw) call tfm13t(a,b) chit(iw)=b(2,2) end do end if ! write chi0 to file if (mp_mpi) then ! write chi0 to file in 1x3 basis do i=1,4 do j=1,4 write(fname,'("CHI0_",2I1,".OUT")') i-1,j-1 open(50,file=trim(fname),form='FORMATTED') do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(chi(1,i,1,j,iw)) end do write(50,*) do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(chi(1,i,1,j,iw)) end do close(50) end do end do ! write transverse chi0 for collinear case if (.not.ncmag) then open(50,file='CHI0_T.OUT',form='FORMATTED') do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(chit(iw)) end do write(50,*) do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(chit(iw)) end do close(50) end if end if ! compute f_xc in G-space allocate(fxc(ngrf,4,ngrf,4)) call genspfxcg(fxc) ! generate the Coulomb Green's function in G+q-space regularised for q=0 allocate(gclgq(ngrf)) call gengclgq(.true.,iq,ngrf,gqc,gclgq) ! add the regularised Coulomb interaction to f_xc to give f_Hxc do ig=1,ngrf fxc(ig,1,ig,1)=fxc(ig,1,ig,1)+gclgq(ig) end do deallocate(gclgq) ! matrix size n=4*ngrf allocate(c(n,n),d(ngrf,4,ngrf,4)) ! loop over frequencies do iw=1,nwrf ! multiply f_Hxc by -chi0 from the left z1=-1.d0 call zgemm('N','N',n,n,n,z1,chi(:,:,:,:,iw),n,fxc,n,zzero,c,n) ! add the identity do i=1,n c(i,i)=c(i,i)+1.d0 end do ! invert the matrix call zminv(n,c) ! multiply by chi0 on the right and store in chi call zgemm('N','N',n,n,n,zone,c,n,chi(:,:,:,:,iw),n,zzero,d,n) chi(:,:,:,:,iw)=d(:,:,:,:) end do deallocate(c,d) ! generate transverse chi for the collinear case if (.not.ncmag) then do iw=1,nwrf a(:,:)=chi(1,:,1,:,iw) call tfm13t(a,b) chit(iw)=b(2,2) end do end if if (mp_mpi) then ! write the complete chi matrix if required if (task.eq.331) then open(50,file='CHI.OUT',form='UNFORMATTED') write(50) chi close(50) end if ! write chi for G = G' = 0 in the 1x3 basis do i=1,4 do j=1,4 write(fname,'("CHI_",2I1,".OUT")') i-1,j-1 open(50,file=trim(fname),form='FORMATTED') do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(chi(1,i,1,j,iw)) end do write(50,*) do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(chi(1,i,1,j,iw)) end do close(50) end do end do ! write transverse chi for collinear case if (.not.ncmag) then open(50,file='CHI_T.OUT',form='FORMATTED') do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),dble(chit(iw)) end do write(50,*) do iw=1,nwrf write(50,'(2G18.10)') dble(wrf(iw)),aimag(chit(iw)) end do close(50) end if write(*,*) write(*,'("Info(tddftsplr):")') write(*,'(" Spin-dependent response function chi_ij(G,G'',q,w) written to & &CHI_ij.OUT")') write(*,'(" for i,j = 0-3; G = G'' = 0; and all wplot frequencies")') write(*,'(" q-vector (lattice coordinates) : ")') write(*,'(3G18.10)') vecql write(*,'(" q-vector length : ",G18.10)') gqc(1) write(*,*) write(*,'(" The elements of chi labeled by (i,j) form the 4x4 matrix :")') write(*,*) write(*,'(" (_|_ _ _)")') write(*,'(" chi(G,G'',q,w) = ( | )")') write(*,'(" ( | )")') write(*,'(" ( | )")') write(*,*) write(*,'(" (0,0) is the charge-charge response drho/dv")') write(*,'(" (0,1-3) is the charge-magnetisation response drho/dB")') write(*,'(" (1-3,0) is the magnetisation-charge response dm/v")') write(*,'(" (1-3,1-3) is the magnetisation-magnetisation response dm/dB")') write(*,*) write(*,'(" Non-interacting Kohn-Sham reponse function written to & &CHI0_ij.OUT")') if (.not.ncmag) then write(*,*) write(*,'(" Transverse components corresponding to m_+- = m_x +- im_y")') write(*,'(" written to CHI_T.OUT and CHI0_T.OUT")') end if if (task.eq.331) then write(*,*) write(*,'(" Complete response function for all G, G'' written to binary & &file CHI.OUT")') write(*,'(" (array index ordering changed from version 4.5.16 onwards)")') end if end if ! write transverse response to test file call writetest(330,'transverse response function',nv=nwrf,tol=1.d-2,zva=chit) deallocate(gqc,ylmgq,sfacgq,chi,fxc) if (.not.ncmag) deallocate(chit) return contains subroutine tfm2213(a,b) implicit none ! arguments complex(8), intent(in) :: a(4,4) complex(8), intent(out) :: b(4,4) ! local variables integer i,j complex(8) c(4,4),z1 do i=1,4 c(i,1)=a(i,1)+a(i,4) c(i,2)=a(i,2)+a(i,3) z1=a(i,2)-a(i,3) c(i,3)=cmplx(aimag(z1),-dble(z1),8) c(i,4)=a(i,1)-a(i,4) end do do j=1,4 b(1,j)=c(1,j)+c(4,j) b(2,j)=c(2,j)+c(3,j) z1=c(2,j)-c(3,j) b(3,j)=cmplx(-aimag(z1),dble(z1),8) b(4,j)=c(1,j)-c(4,j) end do return end subroutine subroutine tfm13t(a,b) implicit none ! arguments complex(8), intent(in) :: a(4,4) complex(8), intent(out) :: b(4,4) ! local variables integer i,j complex(8) c(4,4),z1 do i=1,4 c(i,1)=a(i,1) z1=a(i,3) c(i,2)=a(i,2)+cmplx(aimag(z1),-dble(z1),8) c(i,3)=a(i,2)+cmplx(-aimag(z1),dble(z1),8) c(i,4)=a(i,4) end do do j=1,4 b(1,j)=c(1,j) z1=c(3,j) b(2,j)=c(2,j)+cmplx(-aimag(z1),dble(z1),8) b(3,j)=c(2,j)+cmplx(aimag(z1),-dble(z1),8) b(4,j)=c(4,j) end do return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/genspfxcg.f900000644000000000000000000000013213543334736015134 xustar0030 mtime=1569569246.991640436 30 atime=1569569243.370642749 30 ctime=1569569246.991640436 elk-6.3.2/src/genspfxcg.f900000644002504400250440000000234513543334736017207 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2013 S. Sharma, J. K. Dewhurst and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genspfxcg(fxc) use modmain implicit none ! arguments complex(8), intent(out) :: fxc(ngrf,4,ngrf,4) ! local variables integer ig,jg,kg integer iv(3),i,j complex(8) z1 ! allocatable arrays real(8), allocatable :: fxcmt(:,:,:,:),fxcir(:,:,:) complex(8), allocatable :: fxcg(:) allocate(fxcmt(npmtmax,natmtot,4,4),fxcir(ngtot,4,4)) allocate(fxcg(ngtot)) ! generate the kernel f_xc in real-space call genspfxcr(.true.,fxcmt,fxcir) ! Fourier transform the kernel to G-space do i=1,4 do j=i,4 call zftrf(ngtot,ivg,vgc,fxcmt(:,:,i,j),fxcir(:,i,j),fxcg) do ig=1,ngrf do jg=1,ngrf iv(:)=ivg(:,ig)-ivg(:,jg) if ((iv(1).ge.intgv(1,1)).and.(iv(1).le.intgv(2,1)).and. & (iv(2).ge.intgv(1,2)).and.(iv(2).le.intgv(2,2)).and. & (iv(3).ge.intgv(1,3)).and.(iv(3).le.intgv(2,3))) then kg=ivgig(iv(1),iv(2),iv(3)) z1=fxcg(kg) fxc(ig,i,jg,j)=z1 fxc(jg,j,ig,i)=conjg(z1) end if end do end do end do end do deallocate(fxcmt,fxcir,fxcg) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genafieldt.f900000644000000000000000000000013213543334736015252 xustar0030 mtime=1569569246.995640434 30 atime=1569569243.375642746 30 ctime=1569569246.995640434 elk-6.3.2/src/genafieldt.f900000644002504400250440000001073513543334736017327 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: genafieldt ! !INTERFACE: subroutine genafieldt ! !USES: use modmain use modtddft ! !DESCRIPTION: ! Generates a time-dependent vector potential, ${\bf A}(t)$, representing a ! laser pulse and stores it in {\tt AFIELDT.OUT}. The vector potential is ! constructed from a sum of sinusoidal waves, each modulated with a Gaussian ! envelope function: ! $$ {\bf A}(t)={\bf A}_0 ! \frac{e^{-(t-t_0)^2/2\sigma^2}}{\sigma\sqrt{2\pi}} ! \sin(\omega(t-t_0)+\phi). $$ ! Seven real numbers have to be specified for each pulse, namely the vector ! amplitude ${\bf A}_0$, peak time $t_0$, full-width at half-maximum ! $d=2\sqrt{2\ln 2}\sigma$, frequency $\omega$ and phase $\phi$. ! ! !REVISION HISTORY: ! Created May 2012 (K. Krieger) ! Modified, January 2014 (S. Sharma) ! Modified, February 2014 (JKD) !EOP !BOC implicit none ! local variables integer its,i real(8) a0(3),t0,d,w,phi,rc real(8) gs,ppd,s,t,t1,t2,t3 ! conversion factor of power density to W/cm^2 real(8), parameter :: cpd=ha_si/(t_si*(100.d0*br_si)**2) ! generate the time-step grid call gentimes open(50,file='TD_INFO.OUT',form='FORMATTED') write(50,*) write(50,'("(All units are atomic unless otherwise specified)")') write(50,*) write(50,'("1 atomic unit of time is ",G18.10," attoseconds")') t_si*1.d18 write(50,*) write(50,'("Total simulation time : ",G18.10)') tstime write(50,'(" in attoseconds : ",G18.10)') tstime*t_si*1.d18 write(50,*) write(50,'("Time step length : ",G18.10)') dtimes write(50,'(" in attoseconds : ",G18.10)') dtimes*t_si*1.d18 write(50,*) write(50,'("Number of time steps : ",I8)') ntimes write(50,*) write(50,'("Number of laser pulses : ",I6)') npulse write(50,'("Number of ramps : ",I6)') nramp ! allocate and zero time-dependent A-field array if (allocated(afieldt)) deallocate(afieldt) allocate(afieldt(3,ntimes)) afieldt(:,:)=0.d0 ! loop over laser pulses do i=1,npulse ! vector amplitude a0(1:3)=pulse(1:3,i) ! frequency w=pulse(4,i) ! phase phi=pulse(5,i) ! chirp rate rc=pulse(6,i) ! peak time t0=pulse(7,i) ! full-width at half-maximum d=pulse(8,i) ! sigma s=d/(2.d0*sqrt(2.d0*log(2.d0))) ! write information to TD_INFO.OUT write(50,*) write(50,'("Pulse : ",I6)') i write(50,'(" vector amplitude : ",3G18.10)') a0(:) write(50,'(" laser frequency : ",G18.10)') w write(50,'(" in eV : ",G18.10)') w*ha_ev write(50,'(" laser wavelength (Angstroms) : ",G18.10)') 1.d10/(w*ha_im) write(50,'(" phase (degrees) : ",G18.10)') phi write(50,'(" chirp rate : ",G18.10)') rc write(50,'(" peak time : ",G18.10)') t0 write(50,'(" full-width at half-maximum : ",G18.10)') d write(50,'(" Gaussian sigma = FWHM/2*sqrt(2*ln 2) : ",G18.10)') s t1=a0(1)**2+a0(2)**2+a0(3)**2 ppd=t1*(w**2)/(8.d0*pi*solsc) write(50,'(" peak laser power density : ",G18.10)') ppd write(50,'(" in W/cm^2 : ",G18.10)') ppd*cpd ! loop over time steps do its=1,ntimes t=times(its) t1=t-t0 t2=-0.5d0*(t1/s)**2 t3=w*t1+phi*pi/180.d0+0.5d0*rc*t**2 gs=exp(t2)*sin(t3) if (abs(gs).lt.1.d-20) gs=0.d0 afieldt(:,its)=afieldt(:,its)+a0(:)*gs end do end do ! loop over ramps do i=1,nramp ! vector amplitude a0(1:3)=ramp(1:3,i) ! ramp start time t0=ramp(4,i) ! linear coefficient t1=ramp(5,i) ! quadratic coefficient t2=ramp(6,i) ! write information to TD_INFO.OUT write(50,*) write(50,'("Ramp : ",I6)') i write(50,'(" vector amplitude : ",3G18.10)') a0(:) write(50,'(" ramp start time : ",G18.10)') t0 ! loop over time steps do its=1,ntimes t=times(its) if (t.gt.t0) then t3=t1*(t-t0)+t2*(t-t0)**2 afieldt(:,its)=afieldt(:,its)+a0(:)*t3 end if end do end do close(50) ! write the vector potential to AFIELDT.OUT open(50,file='AFIELDT.OUT',form='FORMATTED') write(50,'(I8," : number of time steps")') ntimes do its=1,ntimes write(50,'(I8,4G18.10)') its,times(its),afieldt(:,its) end do close(50) write(*,*) write(*,'("Info(genafieldt):")') write(*,'(" Time-dependent A-field written to AFIELDT.OUT")') write(*,'(" Laser pulse and ramp parameters written to TD_INFO.OUT")') write(*,*) write(*,'(" 1 atomic unit of time is ",G18.10," attoseconds")') t_si*1.d18 write(*,'(" Total simulation time : ",G18.10)') tstime write(*,'(" in attoseconds : ",G18.10)') tstime*t_si*1.d18 deallocate(times,afieldt) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writetddft.f900000644000000000000000000000013013543334737015327 xustar0029 mtime=1569569247.00064043 30 atime=1569569243.391642736 29 ctime=1569569247.00064043 elk-6.3.2/src/writetddft.f900000644002504400250440000001111013543334737017372 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2014 K. Krieger, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writetddft use modmain use modtddft use moddftu implicit none ! local variables integer is,ia,ias real(8) t1 character(256) fext ! allocatable arrays real(8), allocatable :: rvfmt(:,:,:),rvfir(:,:) ! file extension write(fext,'("_TS",I8.8,".OUT")') itimes ! delete all files at first time-step if (itimes.le.1) then open(50,file='CHARGEMT_TD.OUT') close(50,status='DELETE') open(50,file='CHARGEIR_TD.OUT') close(50,status='DELETE') open(50,file='MOMENT_TD.OUT') close(50,status='DELETE') open(50,file='MOMENTM_TD.OUT') close(50,status='DELETE') open(50,file='MOMENTMT_TD.OUT') close(50,status='DELETE') open(50,file='MOMENTIR_TD.OUT') close(50,status='DELETE') open(50,file='CURRENT_TD.OUT') close(50,status='DELETE') open(50,file='CURRENTM_TD.OUT') close(50,status='DELETE') if (tddos) then open(50,file='TDTEMP.OUT') close(50,status='DELETE') end if if (tdlsj) then open(50,file='TDLSJ.OUT') close(50,status='DELETE') end if end if ! muffin-tin charges open(50,file='CHARGEMT_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(G18.10)') times(itimes) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,'(2I4,G18.10)') is,ia,chgmt(ias) end do end do write(50,*) close(50) ! interstitial charge open(50,file='CHARGEIR_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(2G18.10)') times(itimes),chgir close(50) ! spin moment open(50,file='MOMENT_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),momtot(1:ndmag) close(50) open(50,file='MOMENTM_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(2G18.10)') times(itimes),momtotm close(50) ! muffin-tin moments open(50,file='MOMENTMT_TD.OUT',form='FORMATTED', & position='APPEND') write(50,'(G18.10)') times(itimes) do is=1,nspecies do ia=1,natoms(is) ias=idxas(ia,is) write(50,'(2I4,3G18.10)') is,ia,mommt(1:ndmag,ias) end do end do write(50,*) close(50) ! interstitial moment open(50,file='MOMENTIR_TD.OUT',form='FORMATTED', & position='APPEND') write(50,'(4G18.10)') times(itimes),momir(1:ndmag) close(50) ! total current open(50,file='CURRENT_TD.OUT',form='FORMATTED',position='APPEND') write(50,'(4G18.10)') times(itimes),curtot(:) close(50) ! total current magnitude open(50,file='CURRENTM_TD.OUT',form='FORMATTED',position='APPEND') t1=sqrt(sum(curtot(:)**2)) write(50,'(4G18.10)') times(itimes),curtotm close(50) ! write optional quantities if (ntswrite.le.0) goto 10 if (mod(itimes-1,ntswrite).ne.0) goto 10 ! charge density in 1D if (tdrho1d) then open(50,file='RHO1D'//trim(fext),form='FORMATTED') open(51,file='RHOLINES'//trim(fext),form='FORMATTED') call plot1d(50,51,1,rhomt,rhoir) close(50) close(51) end if ! charge density in 2D if (tdrho2d) then open(50,file='RHO2D'//trim(fext),form='FORMATTED') call plot2d(.false.,50,1,rhomt,rhoir) close(50) end if ! charge density in 3D if (tdrho3d) then open(50,file='RHO3D'//trim(fext),form='FORMATTED') call plot3d(50,1,rhomt,rhoir) close(50) end if ! magnetisation in 2D or 3D if ((tdmag2d.or.tdmag3d).and.(spinpol)) then allocate(rvfmt(npmtmax,natmtot,3),rvfir(ngtot,3)) if (ncmag) then ! non-collinear rvfmt(:,:,:)=magmt(:,:,:) rvfir(:,:)=magir(:,:) else ! collinear rvfmt(:,:,1:2)=0.d0 rvfir(:,1:2)=0.d0 rvfmt(:,:,3)=magmt(:,:,1) rvfir(:,3)=magir(:,1) end if if (tdmag2d) then open(50,file='MAG2D'//trim(fext),form='FORMATTED') call plot2d(.true.,50,3,rvfmt,rvfir) close(50) end if if (tdmag3d) then open(50,file='MAG3D'//trim(fext),form='FORMATTED') call plot3d(50,3,rvfmt,rvfir) close(50) end if deallocate(rvfmt,rvfir) end if ! current density in 2D if (tdcd2d) then open(50,file='CURDEN2D'//trim(fext),form='FORMATTED') call plot2d(.true.,50,3,cdmt,cdir) close(50) end if ! current density in 3D if (tdcd3d) then open(50,file='CURDEN3D'//trim(fext),form='FORMATTED') call plot3d(50,3,cdmt,cdir) close(50) end if ! calculate and write tensor moments if (dftu.ne.0) then if (tmwrite) then open(50,file='TMDFTU'//trim(fext),form='FORMATTED') if (spinorb) then call writetm3du(50) else call writetm2du(50) end if close(50) end if end if ! write time-dependent DOS if (tddos) then call writetddos(fext) end if ! write the atomic forces if (tforce) then open(50,file='FORCES'//trim(fext),form='FORMATTED') call writeforces(50) close(50) end if 10 continue return end subroutine elk-6.3.2/src/PaxHeaders.21352/dielectric_tdrt.f900000644000000000000000000000013213543334737016315 xustar0030 mtime=1569569247.004640428 30 atime=1569569243.874642427 30 ctime=1569569247.004640428 elk-6.3.2/src/dielectric_tdrt.f900000644002504400250440000000731613543334737020373 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dielectric_tdrt use modmain use modtddft implicit none ! local variables integer nts,its0,its integer iw,i,j real(8) a0,t0,t1,t2 complex(8) z1,z2 character(256) fname ! allocatable arrays real(8), allocatable :: w(:),wt(:),f1(:),f2(:),g(:),jt(:,:) complex(8), allocatable :: ew(:,:),jw(:,:),eps(:) ! initialise global variables call init0 call init1 ! set up the frequency grid allocate(w(nwplot)) t1=wplot(2)/dble(nwplot) do iw=1,nwplot w(iw)=t1*dble(iw) end do ! find the starting time step for the Fourier transform its0=1 do its=2,ntimes if (times(its).gt.t0tdlr) then its0=its-1 exit end if end do nts=ntimes-its0+1 ! determine the weights for the spline integration allocate(wt(ntimes)) call wsplint(nts,times(its0),wt(its0)) ! compute the electric field from E = -1/c dA/dt and Fourier transform allocate(f1(ntimes),f2(ntimes),g(ntimes)) allocate(ew(nwplot,3)) t0=-1.d0/solsc do i=1,3 f1(:)=afieldt(i,:) call fderiv(1,ntimes,times,f1,g) ! constant term corresponding to instantaneous A-field at t=0 a0=f1(1) if (task.eq.480) then ! Fourier transform E(t) numerically do iw=1,nwplot do its=its0,ntimes t1=g(its) t2=w(iw)*times(its) f1(its)=t1*cos(t2) f2(its)=t1*sin(t2) end do t1=dot_product(wt(its0:ntimes),f1(its0:ntimes)) t2=dot_product(wt(its0:ntimes),f2(its0:ntimes)) ew(iw,i)=t0*cmplx(t1+a0,t2,8) end do else ! analytic Fourier transform of E(t) assumed to be a delta function at t=0 t1=t0*a0 ew(1:nwplot,i)=t1 end if end do ! read in the total current from file allocate(jt(3,ntimes)) call readcurrent(jt) ! divide by the unit cell volume jt(:,:)=jt(:,:)/omega ! remove constant term from current do i=1,3 do its=its0,ntimes f1(its)=jt(i,its) end do t1=dot_product(wt(its0:ntimes),f1(its0:ntimes)) t1=t1/(ntimes*dtimes) do its=its0,ntimes jt(i,its)=jt(i,its)-t1 end do end do ! filter the high-frequency components from the current using an exponentially ! decaying function do its=its0,ntimes t1=times(its)-t0tdlr t1=exp(-swidth*t1) jt(:,its)=t1*jt(:,its) end do ! Fourier transform the current allocate(jw(nwplot,3)) do i=1,3 do iw=1,nwplot do its=its0,ntimes t1=jt(i,its) t2=w(iw)*times(its) f1(its)=t1*cos(t2) f2(its)=t1*sin(t2) end do t1=dot_product(wt(its0:ntimes),f1(its0:ntimes)) t2=dot_product(wt(its0:ntimes),f2(its0:ntimes)) jw(iw,i)=cmplx(t1,t2,8) end do end do deallocate(wt,f1,f2,g,jt) ! compute the dielectric function and write to file allocate(eps(nwplot)) do i=1,3 do j=1,3 do iw=1,nwplot z1=jw(iw,i) z2=ew(iw,j) t1=abs(dble(z2))+abs(aimag(z2)) if (t1.gt.1.d-8) then z1=z1/z2 else z1=0.d0 end if z1=fourpi*cmplx(-aimag(z1),dble(z1),8) z1=z1/w(iw) if (i.eq.j) z1=z1+1.d0 eps(iw)=z1 end do write(fname,'("EPSILON_TDRT_",2I1,".OUT")') i,j open(50,file=trim(fname),form='FORMATTED') do iw=1,nwplot write(50,'(2G18.10)') w(iw),dble(eps(iw)) end do write(50,'(" ")') do iw=1,nwplot write(50,'(2G18.10)') w(iw),aimag(eps(iw)) end do close(50) end do end do write(*,*) write(*,'("Info(dielectric_tdrt):")') write(*,'(" dielectric tensor determined from real-time evolution")') write(*,'(" written to EPSILON_TDRT_ij.OUT for components i,j = 1,2,3")') write(*,*) write(*,'("(Note that only those components which are not orthogonal to the")') write(*,'(" applied A-field will be calculated correctly)")') deallocate(w,ew,jw,eps) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readcurrent.f900000644000000000000000000000013113543334737015466 xustar0030 mtime=1569569247.008640425 29 atime=1569569243.90164241 30 ctime=1569569247.008640425 elk-6.3.2/src/readcurrent.f900000644002504400250440000000205713543334737017542 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readcurrent(jt) use modmain use modtddft implicit none ! arguments real(8), intent(out) :: jt(3,ntimes) ! local variables integer its,ios real(8) times_,t1 ! initialise global variables call init0 call init1 open(50,file='CURRENT_TD.OUT',form='FORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readcurrent): error opening CURRENT_TD.OUT")') write(*,*) stop end if do its=1,ntimes-1 read(50,*) times_,jt(:,its) t1=abs(times(its)-times_) if (t1.gt.1.d-10) then write(*,*) write(*,'("Error(readcurrent): time step mismatch : ",G18.10)') write(*,'(" internal : ",G18.10)') times(its) write(*,'(" CURRENT_TD.OUT : ",G18.10)') times_ write(*,*) stop end if end do close(50) ! the final current is not computed so set it equal to the penultimate jt(:,ntimes)=jt(:,ntimes-1) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeinfou.f900000644000000000000000000000013213543334737015344 xustar0030 mtime=1569569247.012640423 30 atime=1569569243.935642388 30 ctime=1569569247.012640423 elk-6.3.2/src/writeinfou.f900000644002504400250440000000336713543334737017424 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeinfou(fnum) use modmain use modulr implicit none ! arguments integer fnum ! local variables real(8) t1 write(fnum,'("+------------------------------+")') write(fnum,'("| Ultra long-range calculation |")') write(fnum,'("+------------------------------+")') write(fnum,*) write(fnum,'("Ultracell lattice vectors :")') write(fnum,'(3G18.10)') avecu(1,1),avecu(2,1),avecu(3,1) write(fnum,'(3G18.10)') avecu(1,2),avecu(2,2),avecu(3,2) write(fnum,'(3G18.10)') avecu(1,3),avecu(2,3),avecu(3,3) write(fnum,*) write(fnum,'("Ultracell reciprocal lattice vectors :")') write(fnum,'(3G18.10)') bvecu(1,1),bvecu(2,1),bvecu(3,1) write(fnum,'(3G18.10)') bvecu(1,2),bvecu(2,2),bvecu(3,2) write(fnum,'(3G18.10)') bvecu(1,3),bvecu(2,3),bvecu(3,3) write(fnum,*) write(fnum,'("Ultracell volume : ",G18.10)') omegau write(fnum,'("Ultracell Brillouin zone volume : ",G18.10)') omegabzu write(fnum,*) t1=omegau/omega write(fnum,'("Ratio of ultracell to unit cell volume : ",G18.10)') t1 t1=t1*dble(natmtot) write(fnum,'("Number of atoms in ultracell : ",I16)') nint(t1,8) write(fnum,*) write(fnum,'("kappa-point grid : ",3I6)') ngridkpa write(fnum,'("Q-point grid : ",3I6)') ngridq write(fnum,*) write(fnum,'("Small Q-vector cut-off : ",G18.10)') q0cut if (fsmtype.ne.0) then write(fnum,*) write(fnum,'("Fixed spin moment (FSM) calculation, type : ",I4)') fsmtype if (fsmtype.lt.0) then write(fnum,'(" only moment direction is fixed")') end if end if write(fnum,*) write(fnum,'("Hamiltonian matrix size : ",I8)') nstulr flush(fnum) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writemomrmt.f900000644000000000000000000000013013543334737015535 xustar0029 mtime=1569569247.01764042 30 atime=1569569243.940642385 29 ctime=1569569247.01764042 elk-6.3.2/src/writemomrmt.f900000644002504400250440000000133313543334737017606 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writemomrmt use modmain use modulr implicit none ! local variables integer is,ia,ias,ir open(50,file='MOMMTRU.OUT',form='FORMATTED') do ir=1,nqpt write(50,*) write(50,'("R-point (Cartesian coordinates) :")') write(50,'(3G18.10)') vrcu(:,ir) do is=1,nspecies write(50,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) write(50,'(" atom ",I4,T30,": ",3G18.10)') ia,mommtru(1:ndmag,ias,ir) end do end do end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writeevalu.f900000644000000000000000000000013213543334737015340 xustar0030 mtime=1569569247.021640417 30 atime=1569569243.945642382 30 ctime=1569569247.021640417 elk-6.3.2/src/writeevalu.f900000644002504400250440000000137613543334737017416 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeevalu use modmain use modulr implicit none ! local variables integer ik0,ik,ist ! write out the valence eigenvalues open(50,file='EIGVALU.OUT',form='FORMATTED') write(50,'(I6," : nkpt0")') nkpt0 write(50,'(I6," : nstulr")') nstulr do ik0=1,nkpt0 ! central k-point ik=(ik0-1)*nkpa+1 write(50,*) write(50,'(I6,3G18.10," : k-point, vkl")') ik0,vkl(:,ik) write(50,'(" (state, eigenvalue and occupancy below)")') do ist=1,nstulr write(50,'(I6,2G18.10)') ist,evalu(ist,ik0),occulr(ist,ik0) end do end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/chargeu.f900000644000000000000000000000013213543334737014567 xustar0030 mtime=1569569247.025640414 30 atime=1569569243.950642379 30 ctime=1569569247.025640414 elk-6.3.2/src/chargeu.f900000644002504400250440000000201713543334737016636 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine chargeu use modmain use modulr implicit none ! local variables integer ifq,is,ias integer nrc,nrci real(8) t1 ! allocatable arrays real(8), allocatable :: rfft(:) complex(8), allocatable :: zfft(:) ! external functions real(8) ddot complex(8) zfmtint external ddot,zfmtint allocate(rfft(nqpt),zfft(nfqrz)) ! calculate muffin-tin charges chgmttot=0.d0 do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) do ifq=1,nfqrz zfft(ifq)=zfmtint(nrc,nrci,wrcmt(:,is),rhoqmt(:,ias,ifq)) end do chgmt(ias)=dble(zfft(1)) chgmttot=chgmttot+chgmt(ias) call rzfftifc(3,ngridq,1,rfft,zfft) chgmtru(ias,:)=rfft(:) end do ! calculate interstitial charge t1=ddot(ngtot,rhoqir(:,1),2,cfunir,1) chgir=t1*omega/dble(ngtot) ! total calculated charge chgcalc=chgmttot+chgir deallocate(rfft,zfft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writestulr.f900000644000000000000000000000013213543334737015375 xustar0030 mtime=1569569247.030640411 30 atime=1569569243.956642375 30 ctime=1569569247.030640411 elk-6.3.2/src/writestulr.f900000644002504400250440000000301113543334737017437 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writestulr use modmain use modulr implicit none ! local variables integer ifq,idm open(40,file='STATE_ULR.OUT',form='UNFORMATTED') write(40) version write(40) natmtot write(40) npcmtmax write(40) ngtot write(40) ndmag write(40) fsmtype write(40) nqpt write(40) nfqrz write(40) ivq write(40) iqrzf ! write the ultra long-range density in Q-space do ifq=1,nfqrz write(40) rhoqmt(:,:,ifq) write(40) rhoqir(:,ifq) end do ! write the Kohn-Sham effective potential in Q-space do ifq=1,nfqrz write(40) vsqmt(:,:,ifq) write(40) vsqir(:,ifq) end do ! write the external Coulomb potential in Q-space do ifq=1,nfqrz write(40) vclq(ifq) end do if (spinpol) then ! write the magnetisation in Q-space do ifq=1,nfqrz do idm=1,ndmag write(40) magqmt(:,:,idm,ifq) write(40) magqir(:,idm,ifq) end do end do ! write the Kohn-Sham effective magnetic field in Q-space do ifq=1,nfqrz do idm=1,ndmag write(40) bsqmt(:,:,idm,ifq) write(40) bsqir(:,idm,ifq) end do end do ! write the external magnetic fields in Q-space do ifq=1,nfqrz do idm=1,ndmag write(40) bfcq(idm,ifq) write(40) bfcmtq(:,idm,ifq) end do end do ! write fixed spin moment magnetic fields if (fsmtype.ne.0) then write(40) bfsmc write(40) bfsmcmt end if end if close(40) return end subroutine elk-6.3.2/src/PaxHeaders.21352/eveqnulr.f900000644000000000000000000000013213543334737015012 xustar0030 mtime=1569569247.034640409 30 atime=1569569243.960642372 30 ctime=1569569247.034640409 elk-6.3.2/src/eveqnulr.f900000644002504400250440000000100613543334737017056 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2016 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine eveqnulr(ik0,evecu) use modmain use modulr implicit none ! arguments integer, intent(in) :: ik0 complex(8), intent(out) :: evecu(nstulr,nstulr) ! generate the ultra long-range Hamiltonian call genhmlu(ik0,evecu) ! find the eigenvalues and vectors call eveqnz(nstulr,nstulr,evecu,evalu(:,ik0)) return end subroutine elk-6.3.2/src/PaxHeaders.21352/occupyulr.f900000644000000000000000000000013113543334737015175 xustar0030 mtime=1569569247.038640406 29 atime=1569569243.96464237 30 ctime=1569569247.038640406 elk-6.3.2/src/occupyulr.f900000644002504400250440000000264613543334737017255 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine occupyulr use modmain use modulr implicit none ! local variables integer, parameter :: maxit=1000 integer ik0,ik,ist,it real(8) e0,e1,e real(8) chg,x,t1 ! external functions real(8) stheta external stheta ! find minimum and maximum eigenvalues e0=evalu(1,1) e1=e0 do ik0=1,nkpt0 do ist=1,nstulr e=evalu(ist,ik0) if (e.lt.e0) e0=e if (e.gt.e1) e1=e end do end do if (e0.lt.e0min) then write(*,*) write(*,'("Warning(occupyulr): minimum eigenvalue less than minimum & &linearisation energy : ",2G18.10)') e0,e0min write(*,'(" for s.c. loop ",I5)') iscl end if t1=1.d0/swidth ! determine the Fermi energy using the bisection method do it=1,maxit efermi=0.5d0*(e0+e1) chg=0.d0 do ik0=1,nkpt0 ! central k-point ik=(ik0-1)*nkpa+1 do ist=1,nstulr e=evalu(ist,ik0) if (e.lt.e0min) then occulr(ist,ik0)=0.d0 else x=(efermi-e)*t1 occulr(ist,ik0)=occmax*stheta(stype,x) chg=chg+wkpt(ik)*occulr(ist,ik0) end if end do end do if (chg.lt.chgval) then e0=efermi else e1=efermi end if if ((e1-e0).lt.1.d-12) goto 10 end do write(*,*) write(*,'("Warning(occupyulr): could not find Fermi energy")') 10 continue return end subroutine elk-6.3.2/src/PaxHeaders.21352/momentu.f900000644000000000000000000000013213543334737014635 xustar0030 mtime=1569569247.042640404 30 atime=1569569243.970642366 30 ctime=1569569247.042640404 elk-6.3.2/src/momentu.f900000644002504400250440000000241513543334737016706 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine momentu use modmain use modulr implicit none ! local variables integer ifq,idm,is,ias integer nrc,nrci real(8) t1 ! allocatable arrays real(8), allocatable :: rfft(:) complex(8), allocatable :: zfft(:) ! external functions real(8) ddot complex(8) zfmtint external ddot,zfmtint if (.not.spinpol) return allocate(rfft(nqpt),zfft(nfqrz)) ! calculate muffin-tin moments mommttot(:)=0.d0 do idm=1,ndmag do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) do ifq=1,nfqrz zfft(ifq)=zfmtint(nrc,nrci,wrcmt(:,is),magqmt(:,ias,idm,ifq)) end do mommt(idm,ias)=dble(zfft(1)) mommttot(idm)=mommttot(idm)+mommt(idm,ias) call rzfftifc(3,ngridq,1,rfft,zfft) mommtru(idm,ias,:)=rfft(:) end do end do ! calculate interstitial moment do idm=1,ndmag t1=ddot(ngtot,magqir(:,idm,1),2,cfunir,1) momir(idm)=t1*omega/dble(ngtot) end do momtot(:)=mommttot(:)+momir(:) ! total moment magnitude if (ncmag) then momtotm=sqrt(momtot(1)**2+momtot(2)**2+momtot(3)**2) else momtotm=abs(momtot(1)) end if deallocate(rfft,zfft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/addbfsmu.f900000644000000000000000000000012613543334737014741 xustar0028 mtime=1569569247.0476404 30 atime=1569569243.975642363 28 ctime=1569569247.0476404 elk-6.3.2/src/addbfsmu.f900000644002504400250440000000166213543334737017012 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine addbfsmu use modmain use modulr implicit none ! local variables integer idm,is,ias,npc real(8) t1 ! add the global fixed spin moment B-field to the Kohn-Sham field if ((abs(fsmtype).eq.1).or.(abs(fsmtype).eq.3)) then do idm=1,ndmag t1=bfsmc(idm) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) bsqmt(1:npc,ias,idm,1)=bsqmt(1:npc,ias,idm,1)+t1 end do bsqir(:,idm,1)=bsqir(:,idm,1)+t1*cfunir(:) end do end if ! add the muffin-tin fields if ((abs(fsmtype).eq.2).or.(abs(fsmtype).eq.3)) then do idm=1,ndmag do ias=1,natmtot is=idxis(ias) npc=npcmt(is) t1=bfsmcmt(idm,ias) bsqmt(1:npc,ias,idm,1)=bsqmt(1:npc,ias,idm,1)+t1 end do end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/mixpacku.f900000644000000000000000000000013213543334737014772 xustar0030 mtime=1569569247.051640398 30 atime=1569569243.980642359 30 ctime=1569569247.051640398 elk-6.3.2/src/mixpacku.f900000644002504400250440000000141313543334737017040 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine mixpacku(tpack,n,v) use modmain use modulr implicit none ! arguments logical, intent(in) :: tpack integer, intent(out) :: n real(8), intent(inout) :: v(*) ! local variables integer ifq,idm n=0 ! pack or unpack the Kohn-Sham long-range potential do ifq=1,nfqrz call zfpack(tpack,n,npcmt,npcmtmax,vsqmt(:,:,ifq),vsqir(:,ifq),v) end do ! pack or unpack the Kohn-Sham magnetic field if (spinpol) then do ifq=1,nfqrz do idm=1,ndmag call zfpack(tpack,n,npcmt,npcmtmax,bsqmt(:,:,idm,ifq),bsqir(:,idm,ifq),v) end do end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/potuinit.f900000644000000000000000000000013213543334737015024 xustar0030 mtime=1569569247.055640395 30 atime=1569569243.991642352 30 ctime=1569569247.055640395 elk-6.3.2/src/potuinit.f900000644002504400250440000000220513543334737017072 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potuinit use modmain use modulr use modrandom use modomp implicit none ! local variables integer ifq,idm,is,ias real(8) cb,t1 ! zero the Kohn-Sham potential for all Q do ifq=1,nfqrz do ias=1,natmtot is=idxis(ias) vsqmt(1:npcmt(is),ias,ifq)=0.d0 end do end do vsqir(:,:)=0.d0 if (.not.spinpol) return ! zero the Kohn-Sham magnetic field for all Q do ifq=1,nfqrz do idm=1,ndmag do ias=1,natmtot is=idxis(ias) bsqmt(1:npcmt(is),ias,idm,ifq)=0.d0 end do end do end do bsqir(:,:,:)=0.d0 ! coupling constant of the external field (g_e/4c) cb=gfacte/(4.d0*solsc) ! initialise the external magnetic fields t1=cb*rndbfcu do ifq=1,nfqrz do idm=1,ndmag bfcq(idm,ifq)=t1*cmplx(randomu()-0.5d0,randomu()-0.5d0,8) do ias=1,natmtot bfcmtq(ias,idm,ifq)=t1*cmplx(randomu()-0.5d0,randomu()-0.5d0,8) end do end do end do bfcq(:,1)=dble(bfcq(:,1)) bfcmtq(:,:,1)=dble(bfcmtq(:,:,1)) return end subroutine elk-6.3.2/src/PaxHeaders.21352/vclqinit.f900000644000000000000000000000013213543334737015002 xustar0030 mtime=1569569247.060640392 30 atime=1569569243.997642348 30 ctime=1569569247.060640392 elk-6.3.2/src/vclqinit.f900000644002504400250440000000114113543334737017046 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine vclqinit use modmain use modulr implicit none ! zero the external Coulomb potential in Q-space vclq(:)=0.d0 if (trdvclr) then ! read the external Coulomb potential from file if required call readvclr else ! determine the external Coulomb potential from the constant electric field call potefieldu ! write the external Coulomb potential to file call writevclr end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/writechgrmt.f900000644000000000000000000000013013543334737015506 xustar0029 mtime=1569569247.06464039 30 atime=1569569244.001642346 29 ctime=1569569247.06464039 elk-6.3.2/src/writechgrmt.f900000644002504400250440000000132213543334737017555 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writechgrmt use modmain use modulr implicit none ! local variables integer is,ia,ias,ir open(50,file='CHGMTRU.OUT',form='FORMATTED') do ir=1,nqpt write(50,*) write(50,'("R-point (Cartesian coordinates) :")') write(50,'(3G18.10)') vrcu(:,ir) do is=1,nspecies write(50,'(" species : ",I4," (",A,")")') is,trim(spsymb(is)) do ia=1,natoms(is) ias=idxas(ia,is) write(50,'(" atom ",I4,T30,": ",G18.10)') ia,chgmtru(ias,ir) end do end do end do close(50) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rfzfftq.f900000644000000000000000000000013213543334737014633 xustar0030 mtime=1569569247.068640387 30 atime=1569569244.006642343 30 ctime=1569569247.068640387 elk-6.3.2/src/rfzfftq.f900000644002504400250440000000577313543334737016716 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rfzfftq(sgn,nf,rfmt,rfir,zfmt,zfir) use modmain use modmpi use modomp implicit none ! arguments integer, intent(in) :: sgn,nf real(8), intent(inout) :: rfmt(npcmtmax,natmtot,nf,nqpt) real(8), intent(inout) :: rfir(ngtot,nf,nqpt) complex(8), intent(inout) :: zfmt(npcmtmax,natmtot,nf,nfqrz) complex(8), intent(inout) :: zfir(ngtot,nf,nfqrz) ! local variables integer jf,is,ias,ir integer npc,i,n,nthd if (sgn.eq.-1) then ! loop over the number of functions do jf=1,nf ! Fourier transform the muffin-tin function do ias=1,natmtot is=idxis(ias) npc=npcmt(is) if (np_mpi.gt.1) zfmt(1:npc,ias,jf,:)=0.d0 call holdthd(npc/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do i=1,npc ! distribute among MPI processes if (mod(i-1,np_mpi).ne.lp_mpi) cycle call rzfftifc(3,ngridq,-1,rfmt(i,ias,jf,:),zfmt(i,ias,jf,:)) end do !$OMP END PARALLEL DO call freethd(nthd) end do ! Fourier transform the interstitial function if (np_mpi.gt.1) zfir(:,jf,:)=0.d0 call holdthd(ngtot/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ir=1,ngtot ! distribute among MPI processes if (mod(ir-1,np_mpi).ne.lp_mpi) cycle call rzfftifc(3,ngridq,-1,rfir(ir,jf,:),zfir(ir,jf,:)) end do !$OMP END PARALLEL DO call freethd(nthd) ! end loop over number of functions end do if (np_mpi.gt.1) then n=npcmtmax*natmtot*nf*nfqrz call mpi_allreduce(mpi_in_place,zfmt,n,mpi_double_complex,mpi_sum,mpicom, & ierror) n=ngtot*nf*nfqrz call mpi_allreduce(mpi_in_place,zfir,n,mpi_double_complex,mpi_sum,mpicom, & ierror) end if else ! loop over the number of functions do jf=1,nf do ias=1,natmtot is=idxis(ias) npc=npcmt(is) if (np_mpi.gt.1) rfmt(1:npc,ias,jf,:)=0.d0 call holdthd(npc/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do i=1,npc ! distribute among MPI processes if (mod(i-1,np_mpi).ne.lp_mpi) cycle call rzfftifc(3,ngridq,1,rfmt(i,ias,jf,:),zfmt(i,ias,jf,:)) end do !$OMP END PARALLEL DO call freethd(nthd) end do if (np_mpi.gt.1) rfir(:,jf,:)=0.d0 call holdthd(ngtot/np_mpi,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ir=1,ngtot ! distribute among MPI processes if (mod(ir-1,np_mpi).ne.lp_mpi) cycle call rzfftifc(3,ngridq,1,rfir(ir,jf,:),zfir(ir,jf,:)) end do !$OMP END PARALLEL DO call freethd(nthd) ! end loop over number of functions end do if (np_mpi.gt.1) then n=npcmtmax*natmtot*nf*nqpt call mpi_allreduce(mpi_in_place,rfmt,n,mpi_double_precision,mpi_sum, & mpicom,ierror) n=ngtot*nf*nqpt call mpi_allreduce(mpi_in_place,rfir,n,mpi_double_precision,mpi_sum, & mpicom,ierror) end if end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/readstulr.f900000644000000000000000000000013113543334737015155 xustar0030 mtime=1569569247.073640384 29 atime=1569569244.01064234 30 ctime=1569569247.073640384 elk-6.3.2/src/readstulr.f900000644002504400250440000001146313543334737017232 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readstulr use modmain use modulr implicit none ! local variables integer iq,jq,ifq,jfq integer idm,i1,i2,i3 integer version_(3),ios integer natmtot_,npcmtmax_,ngtot_ integer ndmag_,fsmtype_,nqpt_,nfqrz_ complex(8) z1 ! automatic arrays complex(8) zv(natmtot) ! allocatable arrays integer, allocatable :: ivq_(:,:),iqrzf_(:),map(:) complex(8), allocatable :: zfmt(:,:),zfir(:) open(40,file='STATE_ULR.OUT',form='UNFORMATTED',status='OLD',iostat=ios) if (ios.ne.0) then write(*,*) write(*,'("Error(readstulr): error opening STATE_ULR.OUT")') write(*,*) stop end if read(40) version_ if ((version(1).ne.version_(1)).or.(version(2).ne.version_(2)).or. & (version(3).ne.version_(3))) then write(*,*) write(*,'("Warning(readstulr): different versions")') write(*,'(" current : ",I3.3,".",I3.3,".",I3.3)') version write(*,'(" STATE_ULR.OUT : ",I3.3,".",I3.3,".",I3.3)') version_ end if read(40) natmtot_ if (natmtot.ne.natmtot_) then write(*,*) write(*,'("Error(readstulr): differing natmtot")') write(*,'(" current : ",I6)') natmtot write(*,'(" STATE_ULR.OUT : ",I6)') natmtot_ write(*,*) stop end if read(40) npcmtmax_ if (npcmtmax.ne.npcmtmax_) then write(*,*) write(*,'("Error(readstulr): differing npcmtmax")') write(*,'(" current : ",I6)') npcmtmax write(*,'(" STATE_ULR.OUT : ",I6)') npcmtmax_ write(*,*) stop end if read(40) ngtot_ if (ngtot.ne.ngtot_) then write(*,*) write(*,'("Error(readstulr): differing ngtot")') write(*,'(" current : ",I8)') ngtot write(*,'(" STATE_ULR.OUT : ",I8)') ngtot_ write(*,*) stop end if read(40) ndmag_ if (ndmag.ne.ndmag_) then write(*,*) write(*,'("Error(readstulr): differing ndmag")') write(*,'(" current : ",I1)') ndmag write(*,'(" STATE_ULR.OUT : ",I1)') ndmag_ write(*,*) stop end if read(40) fsmtype_ if (fsmtype.ne.fsmtype_) then write(*,*) write(*,'("Error(readstulr): differing fsmtype")') write(*,'(" current : ",I4)') fsmtype write(*,'(" STATE_ULR.OUT : ",I4)') fsmtype_ write(*,*) stop end if read(40) nqpt_ if (nqpt_.le.0) then write(*,*) write(*,'("Error(readstulr): nqpt_ <= 0 : ",I8)') nqpt_ write(*,*) stop end if read(40) nfqrz_ if (nfqrz_.le.0) then write(*,*) write(*,'("Error(readstulr): nfqrz_ <= 0 : ",I8)') nfqrz_ write(*,*) stop end if allocate(ivq_(3,nqpt_),iqrzf_(nfqrz_),map(nfqrz_)) read(40) ivq_ read(40) iqrzf_ ! generate map from old Q-vector grid to new map(:)=0 do ifq=1,nfqrz_ iq=iqrzf_(ifq) i1=ivq_(1,iq); i2=ivq_(2,iq); i3=ivq_(3,iq) if ((i1.ge.intq(1,1)).and.(i1.le.intq(2,1)).and. & (i2.ge.intq(1,2)).and.(i2.le.intq(2,2)).and. & (i3.ge.intq(1,3)).and.(i3.le.intq(2,3))) then jq=ivqiq(i1,i2,i3) jfq=ifqrz(jq) map(ifq)=jfq end if end do deallocate(ivq_,iqrzf_) allocate(zfmt(npcmtmax,natmtot),zfir(ngtot)) ! read the Q-space density rhoqmt(:,:,:)=0.d0 rhoqir(:,:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq.gt.0) then read(40) rhoqmt(:,:,jfq) read(40) rhoqir(:,jfq) else read(40) zfmt read(40) zfir end if end do ! read the Q-space Kohn-Sham potential vsqmt(:,:,:)=0.d0 vsqir(:,:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq.gt.0) then read(40) vsqmt(:,:,jfq) read(40) vsqir(:,jfq) else read(40) zfmt read(40) zfir end if end do ! read the external Coulomb potential in Q-space vclq(:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq.gt.0) then read(40) vclq(jfq) else read(40) z1 end if end do if (spinpol) then ! read the Q-space magnetisation density magqmt(:,:,:,:)=0.d0 magqir(:,:,:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq.gt.0) then do idm=1,ndmag read(40) magqmt(:,:,idm,jfq) read(40) magqir(:,idm,jfq) end do else do idm=1,ndmag read(40) zfmt read(40) zfir end do end if end do bsqmt(:,:,:,:)=0.d0 bsqir(:,:,:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq.gt.0) then do idm=1,ndmag read(40) bsqmt(:,:,idm,jfq) read(40) bsqir(:,idm,jfq) end do else do idm=1,ndmag read(40) zfmt read(40) zfir end do end if end do ! read the external magnetic fields in Q-space bfcq(:,:)=0.d0 bfcmtq(:,:,:)=0.d0 do ifq=1,nfqrz_ jfq=map(ifq) if (jfq.gt.0) then do idm=1,ndmag read(40) bfcq(idm,jfq) read(40) bfcmtq(:,idm,jfq) end do else do idm=1,ndmag read(40) z1 read(40) zv end do end if end do ! read fixed spin moment effective fields if (fsmtype.ne.0) then read(40) bfsmc read(40) bfsmcmt end if end if close(40) deallocate(map,zfmt,zfir) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genzvmatk.f900000644000000000000000000000013213543334737015157 xustar0030 mtime=1569569247.077640381 30 atime=1569569244.015642337 30 ctime=1569569247.077640381 elk-6.3.2/src/genzvmatk.f900000644002504400250440000000460313543334737017231 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genzvmatk(zvmt,zvir,nst,ngp,igpig,wfmt,wfir,wfgp,vmat) use modmain use modomp implicit none ! arguments complex(8), intent(in) :: zvmt(npcmtmax,natmtot),zvir(ngtot) integer, intent(in) :: nst,ngp,igpig(ngkmax) complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nst) ! note that wfir does not have a 1/sqrt(omega) prefactor complex(8), intent(in) :: wfir(ngtot,nspinor,nst) complex(8), intent(in) :: wfgp(ngkmax,nspinor,nst) complex(8), intent(out) :: vmat(nst,nst) ! local variables integer ist,jst,ispn integer is,ias,nrc,nrci integer npc,nthd ! allocatable arrays complex(8), allocatable :: wfmt1(:),wfir1(:),z(:) ! external functions complex(8) zfcmtinp,zdotc external zfcmtinp,zdotc ! zero the matrix elements vmat(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ias,is,nrc) & !$OMP PRIVATE(nrci,npc,ispn,ist) & !$OMP NUM_THREADS(nthd) allocate(wfmt1(npcmtmax)) !$OMP DO do jst=1,nst do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ispn=1,nspinor ! apply complex potential to wavefunction wfmt1(1:npc)=zvmt(1:npc,ias)*wfmt(1:npc,ias,ispn,jst) do ist=1,nst ! compute inner product (functions are in spherical coordinates) vmat(ist,jst)=vmat(ist,jst)+zfcmtinp(nrc,nrci,wrcmt(:,is), & wfmt(:,ias,ispn,ist),wfmt1) end do end do end do end do !$OMP END DO deallocate(wfmt1) !$OMP END PARALLEL call freethd(nthd) !---------------------------! ! interstitial part ! !---------------------------! call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,z,ispn,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot),z(ngkmax)) !$OMP DO do jst=1,nst do ispn=1,nspinor ! apply potential to wavefunction wfir1(:)=zvir(:)*wfir(:,ispn,jst) ! Fourier transform to G+p-space call zfftifc(3,ngridg,-1,wfir1) z(1:ngp)=wfir1(igfft(igpig(1:ngp))) do ist=1,nst ! compute inner product vmat(ist,jst)=vmat(ist,jst)+zdotc(ngp,wfgp(:,ispn,ist),1,z,1) end do end do end do !$OMP END DO deallocate(wfir1,z) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genzvbmatk.f900000644000000000000000000000013213543334737015321 xustar0030 mtime=1569569247.082640378 30 atime=1569569244.019642334 30 ctime=1569569247.082640378 elk-6.3.2/src/genzvbmatk.f900000644002504400250440000000744013543334737017375 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genzvbmatk(zvmt,zvir,zbmt,zbir,nst,ngp,igpig,wfmt,wfir,wfgp,vbmat) use modmain use modomp implicit none ! arguments complex(8), intent(in) :: zvmt(npcmtmax,natmtot),zvir(ngtot) complex(8), intent(in) :: zbmt(npcmtmax,natmtot,ndmag),zbir(ngtot,ndmag) integer, intent(in) :: nst,ngp,igpig(ngkmax) complex(8), intent(in) :: wfmt(npcmtmax,natmtot,nspinor,nst) ! note that wfir does not have a 1/sqrt(omega) prefactor complex(8), intent(in) :: wfir(ngtot,nspinor,nst) complex(8), intent(in) :: wfgp(ngkmax,nspinor,nst) complex(8), intent(out) :: vbmat(nst,nst) ! local variables integer ist,jst,ispn integer is,ias,nrc,nrci integer npc,nthd ! allocatable arrays complex(8), allocatable :: wfmt1(:,:),wfir1(:,:),z(:) ! external functions complex(8) zfcmtinp,zdotc external zfcmtinp,zdotc ! zero the matrix elements vbmat(:,:)=0.d0 !-------------------------! ! muffin-tin part ! !-------------------------! call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfmt1,ias,is,nrc) & !$OMP PRIVATE(nrci,npc,ispn,ist) & !$OMP NUM_THREADS(nthd) allocate(wfmt1(npcmtmax,nspinor)) !$OMP DO do jst=1,nst do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) do ispn=1,nspinor call zcopy(npc,wfmt(:,ias,ispn,jst),1,wfmt1(:,ispn),1) end do ! apply local potential and magnetic field to spinor wavefunction if (ncmag) then ! non-collinear case call zvbmk1(npc,zvmt(:,ias),zbmt(:,ias,1),zbmt(:,ias,2),zbmt(:,ias,3), & wfmt1,wfmt1(:,2)) else ! collinear case call zvbmk2(npc,zvmt(:,ias),zbmt(:,ias,1),wfmt1,wfmt1(:,2)) end if do ist=1,nst do ispn=1,nspinor ! compute inner product (functions are in spherical coordinates) vbmat(ist,jst)=vbmat(ist,jst)+zfcmtinp(nrc,nrci,wrcmt(:,is), & wfmt(:,ias,ispn,ist),wfmt1(:,ispn)) end do end do end do end do !$OMP END DO deallocate(wfmt1) !$OMP END PARALLEL call freethd(nthd) !---------------------------! ! interstitial part ! !---------------------------! call holdthd(nst,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir1,z,ispn,ist) & !$OMP NUM_THREADS(nthd) allocate(wfir1(ngtot,nspinor),z(ngkmax)) !$OMP DO do jst=1,nst do ispn=1,nspinor call zcopy(ngtot,wfir(:,ispn,jst),1,wfir1(:,ispn),1) end do ! apply local potential and magnetic field to spinor wavefunction if (ncmag) then ! non-collinear case call zvbmk1(ngtot,zvir,zbir,zbir(:,2),zbir(:,3),wfir1,wfir1(:,2)) else ! collinear case call zvbmk2(ngtot,zvir,zbir,wfir1,wfir1(:,2)) end if do ispn=1,nspinor ! Fourier transform to G+p-space call zfftifc(3,ngridg,-1,wfir1(:,ispn)) z(1:ngp)=wfir1(igfft(igpig(1:ngp)),ispn) do ist=1,nst vbmat(ist,jst)=vbmat(ist,jst)+zdotc(ngp,wfgp(:,ispn,ist),1,z,1) end do end do end do !$OMP END DO deallocate(wfir1,z) !$OMP END PARALLEL call freethd(nthd) return contains pure subroutine zvbmk1(n,zv,zb1,zb2,zb3,wf1,wf2) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: zv(n),zb1(n),zb2(n),zb3(n) complex(8), intent(inout) :: wf1(n),wf2(n) ! local variables integer i complex(8) v,b1,b2,z1 do i=1,n v=zv(i) b1=zb1(i) b2=cmplx(-aimag(zb2(i)),dble(zb2(i)),8) z1=(v+zb3(i))*wf1(i)+(b1-b2)*wf2(i) wf2(i)=(v-zb3(i))*wf2(i)+(b1+b2)*wf1(i) wf1(i)=z1 end do return end subroutine pure subroutine zvbmk2(n,zv,zb,wf1,wf2) implicit none ! arguments integer, intent(in) :: n complex(8), intent(in) :: zv(n),zb(n) complex(8), intent(inout) :: wf1(n),wf2(n) ! local variables integer i do i=1,n wf1(i)=(zv(i)+zb(i))*wf1(i) wf2(i)=(zv(i)-zb(i))*wf2(i) end do return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/gndstulr.f900000644000000000000000000000013213543334737015013 xustar0030 mtime=1569569247.087640375 30 atime=1569569244.023642332 30 ctime=1569569247.087640375 elk-6.3.2/src/gndstulr.f900000644002504400250440000001741713543334737017074 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine gndstulr use modmain use modulr use moddftu use modmpi use modomp use modstore implicit none ! local variables logical exist integer ik0,lp,n,ir integer nwork,nthd real(8) dv ! allocatable arrays integer(8), allocatable :: lock(:) real(8), allocatable :: v(:),work(:) complex(8), allocatable :: evecu(:,:) if (xctype(1).lt.0) then write(*,*) write(*,'("Error(gndstulr): ultra long-range does not work with OEP")') write(*,*) stop end if if (spincore) then write(*,*) write(*,'("Error(gndstulr): ultra long-range does not work with & &spin-polarised cores")') write(*,*) stop end if ! no k-point reduction reducek_=reducek reducek=0 ! initialise global variables call init0 call init1 ! read the regular Kohn-Sham potential from file call readstate ! generate the first- and second-variational eigenvectors and eigenvalues for ! the k+kappa-point set call genvsig call gencore call readfermi call linengy call genapwlofr call gensocfr call genevfsv call occupy call rhomag ! initialise the ultra long-range variables call initulr if (task.eq.700) then ! initialise the long-range Kohn-Sham potential and magnetic field call potuinit else ! read in the potential and density from STATE_ULR.OUT call readstulr end if ! initialise the external Coulomb potential call vclqinit ! size of mixing vector n=2*(npcmtmax*natmtot+ngtot)*nfqrz if (spinpol) n=n*(1+ndmag) ! allocate mixing array allocate(v(n)) ! determine the size of the mixer work array nwork=-1 call mixerifc(mixtype,n,v,dv,nwork,v) allocate(work(nwork)) ! initialise the mixer iscl=0 call mixpacku(.true.,n,v) call mixerifc(mixtype,n,v,dv,nwork,work) ! initialise the OpenMP locks allocate(lock(nqpt)) do ir=1,nqpt call omp_init_lock(lock(ir)) end do ! set last self-consistent loop flag tlast=.false. ! begin the self-consistent loop if (mp_mpi) then ! open ULR_INFO.OUT file open(60,file='ULR_INFO.OUT',form='FORMATTED') ! open RMSDVS.OUT open(65,file='RMSDVS.OUT',form='FORMATTED') call writeinfou(60) write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop started |")') write(60,'("+------------------------------+")') end if do iscl=1,maxscl if (mp_mpi) then write(60,*) write(60,'("+--------------------+")') write(60,'("| Loop number : ",I4," |")') iscl write(60,'("+--------------------+")') end if if (iscl.ge.maxscl) then if (mp_mpi) then write(60,*) write(60,'("Reached self-consistent loops maximum")') end if write(*,*) write(*,'("Warning(gndstulr): failed to reach self-consistency after ",I4,& &" loops")') iscl tlast=.true. end if ! reset the OpenMP thread variables call omp_reset ! zero the density and magnetisation rhormt(:,:,:)=0.d0 rhorir(:,:)=0.d0 if (spinpol) then magrmt(:,:,:,:)=0.d0 magrir(:,:,:)=0.d0 end if ! loop over original k-points call holdthd(nkpt0/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(evecu) & !$OMP NUM_THREADS(nthd) allocate(evecu(nstulr,nstulr)) !$OMP DO do ik0=1,nkpt0 ! distribute among MPI processes if (mod(ik0-1,np_mpi).ne.lp_mpi) cycle ! solve the ultra long-range eigenvalue equation call eveqnulr(ik0,evecu) ! add to the density, magnetisation and current call rhomaguk(ik0,lock,evecu) end do !$OMP END DO deallocate(evecu) !$OMP END PARALLEL call freethd(nthd) if (np_mpi.gt.1) then ! broadcast eigenvalue array to every process do ik0=1,nkpt0 lp=mod(ik0-1,np_mpi) call mpi_bcast(evalu(:,ik0),nstulr,mpi_double_precision,lp,mpicom,ierror) end do ! add densities from each process and redistribute n=npcmtmax*natmtot*nqpt call mpi_allreduce(mpi_in_place,rhormt,n,mpi_double_precision,mpi_sum, & mpicom,ierror) n=ngtot*nqpt call mpi_allreduce(mpi_in_place,rhorir,n,mpi_double_precision,mpi_sum, & mpicom,ierror) if (spinpol) then n=npcmtmax*natmtot*ndmag*nqpt call mpi_allreduce(mpi_in_place,magrmt,n,mpi_double_precision,mpi_sum, & mpicom,ierror) n=ngtot*ndmag*nqpt call mpi_allreduce(mpi_in_place,magrir,n,mpi_double_precision,mpi_sum, & mpicom,ierror) end if end if ! find the occupation numbers and Fermi energy call occupyulr ! synchronise MPI processes call mpi_barrier(mpicom,ierror) ! add the core density call rhocoreu ! perform partial Fourier transform to Q-space call rhomagq ! determine the muffin-tin and interstitial charges and moments call chargeu call momentu ! compute the ultra long-range Kohn-Sham potential call potksu ! pack interstitial and muffin-tin potential and field into one array call mixpacku(.true.,n,v) ! mix in the old potential and field with the new call mixerifc(mixtype,n,v,dv,nwork,work) ! multiply the RMS change in potential by the number of Q-points dv=dv*dble(nfqrz) ! make sure every MPI process has a numerically identical potential if (np_mpi.gt.1) then call mpi_bcast(v,n,mpi_double_precision,0,mpicom,ierror) end if ! unpack potential and field call mixpacku(.false.,n,v) ! calculate and add the fixed spin moment effective field (after mixing) call fsmbfield call addbfsmu if (mp_mpi) then ! write eigenvalues to file call writeevalu ! output energy components call writeengyu(60) ! output charges call writechg(60) ! write muffin-tin charges for each R-vector call writechgrmt if (spinpol) then ! output moments call writemom(60) ! write muffin-tin moments for each R-vector call writemomrmt end if ! output effective fields for fixed spin moment calculations if (fsmtype.ne.0) call writefsm(60) ! check for WRITE file inquire(file='WRITE',exist=exist) if (exist) then write(60,*) write(60,'("WRITE file exists - writing STATE_ULR.OUT")') call writestulr open(50,file='WRITE') close(50,status='DELETE') end if ! write STATE_ULR.OUT file if required if (nwrite.ge.1) then if (mod(iscl,nwrite).eq.0) then call writestulr write(60,*) write(60,'("Wrote STATE_ULR.OUT")') end if end if end if ! exit self-consistent loop if required if (tlast) goto 10 ! check for convergence if (iscl.ge.2) then if (mp_mpi) then write(60,*) write(60,'("RMS change in Kohn-Sham potential (target) : ",G18.10," (",& &G18.10,")")') dv,epspot flush(60) write(65,'(G18.10)') dv flush(65) end if if (dv.lt.epspot) then if (mp_mpi) then write(60,*) write(60,'("Convergence targets achieved")') end if tlast=.true. end if end if ! check for STOP file (only master process) if (mp_mpi) then inquire(file='STOP',exist=exist) if (exist) then write(60,*) write(60,'("STOP file exists - stopping self-consistent loop")') open(50,file='STOP') close(50,status='DELETE') tlast=.true. end if end if ! broadcast tlast from master process to all other processes call mpi_bcast(tlast,1,mpi_logical,0,mpicom,ierror) ! reset the OpenMP thread variables call omp_reset end do 10 continue if (mp_mpi) then write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop stopped |")') write(60,'("+------------------------------+")') if (maxscl.gt.1) then call writestulr write(60,*) write(60,'("Wrote STATE_ULR.OUT")') end if ! close the ULR_INFO.OUT file close(60) ! close the RMSDVS.OUT file close(65) end if ! destroy the OpenMP locks do ir=1,nqpt call omp_destroy_lock(lock(ir)) end do deallocate(lock) deallocate(v,work) ! restore original parameters reducek=reducek_ ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/genkpakq.f900000644000000000000000000000013213543334737014752 xustar0030 mtime=1569569247.091640372 30 atime=1569569244.028642329 30 ctime=1569569247.091640372 elk-6.3.2/src/genkpakq.f900000644002504400250440000001030113543334737017014 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genkpakq use modmain use modulr implicit none ! local variables integer i1,i2,i3,j1,j2,j3 integer ikpa,ik0,ik integer n1,iq,ifq,ir real(8) v(3) ! allocatable arrays real(8), allocatable :: vkl0(:,:),vkc0(:,:),wkpt0(:) ! find next largest FFT-compatible Q-point grid size call nfftifc(ngridq(1)) call nfftifc(ngridq(2)) call nfftifc(ngridq(3)) ! total number of Q-points nqpt=ngridq(1)*ngridq(2)*ngridq(3) ! number of complex FFT elements for real-complex transforms n1=ngridq(1)/2+1 nfqrz=n1*ngridq(2)*ngridq(3) ! integer grid intervals for the Q-points intq(1,:)=ngridq(:)/2-ngridq(:)+1 intq(2,:)=ngridq(:)/2 ! kappa-point grid should be half the Q-point grid ngridkpa(:)=(ngridq(:)+1)/2 ! number of kappa-points nkpa=ngridkpa(1)*ngridkpa(2)*ngridkpa(3) ! integer grid intervals for the kappa-points intkpa(1,:)=ngridkpa(:)/2-ngridkpa(:)+1 intkpa(2,:)=ngridkpa(:)/2 ! allocate global Q-point arrays if (allocated(ivq)) deallocate(ivq) allocate(ivq(3,nqpt)) if (allocated(ivqiq)) deallocate(ivqiq) allocate(ivqiq(intq(1,1):intq(2,1),intq(1,2):intq(2,2),intq(1,3):intq(2,3))) if (allocated(iqfft)) deallocate(iqfft) allocate(iqfft(nqpt)) if (allocated(ifqrz)) deallocate(ifqrz) allocate(ifqrz(nqpt)) if (allocated(iqrzf)) deallocate(iqrzf) allocate(iqrzf(nfqrz)) if (allocated(vql)) deallocate(vql) allocate(vql(3,nqpt)) if (allocated(vqc)) deallocate(vqc) allocate(vqc(3,nqpt)) ! store the kappa-points as the first nkpa entries in the Q-point arrays iq=0 do i1=intkpa(1,1),intkpa(2,1) do i2=intkpa(1,2),intkpa(2,2) do i3=intkpa(1,3),intkpa(2,3) iq=iq+1 ivq(1,iq)=i1 ivq(2,iq)=i2 ivq(3,iq)=i3 end do end do end do ! store the remaining Q-points do i1=intq(1,1),intq(2,1) do i2=intq(1,2),intq(2,2) do i3=intq(1,3),intq(2,3) if ((i1.lt.intkpa(1,1)).or.(i1.gt.intkpa(2,1)).or. & (i2.lt.intkpa(1,2)).or.(i2.gt.intkpa(2,2)).or. & (i3.lt.intkpa(1,3)).or.(i3.gt.intkpa(2,3))) then iq=iq+1 ivq(1,iq)=i1 ivq(2,iq)=i2 ivq(3,iq)=i3 end if end do end do end do ! ensure the first point is the zero vector do iq=1,nkpa if ((ivq(1,iq).eq.0).and.(ivq(2,iq).eq.0).and.(ivq(3,iq).eq.0)) then ivq(:,iq)=ivq(:,1) ivq(:,1)=0 exit end if end do do iq=1,nqpt i1=ivq(1,iq); i2=ivq(2,iq); i3=ivq(3,iq) ! map from (i1,i2,i3) to Q-vector index ivqiq(i1,i2,i3)=iq ! Q-vector in Cartesian coordinates vqc(:,iq)=dble(i1)*bvecu(:,1) & +dble(i2)*bvecu(:,2) & +dble(i3)*bvecu(:,3) ! Q-vector in (unit cell) lattice coordinates call r3mv(binv,vqc(:,iq),vql(:,iq)) end do ! set up Fourier transform index do iq=1,nqpt i1=ivq(1,iq); i2=ivq(2,iq); i3=ivq(3,iq) if (i1.ge.0) then j1=i1 else j1=ngridq(1)+i1 end if if (i2.ge.0) then j2=i2 else j2=ngridq(2)+i2 end if if (i3.ge.0) then j3=i3 else j3=ngridq(3)+i3 end if iqfft(iq)=j3*ngridq(2)*ngridq(1)+j2*ngridq(1)+j1+1 ! map from q-point index to real-complex FFT index and vice versa if (i1.ge.0) then ifq=j3*ngridq(2)*n1+j2*n1+j1+1 ifqrz(iq)=ifq iqrzf(ifq)=iq end if end do ! store the R-vectors in Cartesian coordinates spanning the ultracell if (allocated(vrcu)) deallocate(vrcu) allocate(vrcu(3,nqpt)) ir=0 do i3=0,ngridq(3)-1 v(3)=dble(i3)/dble(ngridq(3)) do i2=0,ngridq(2)-1 v(2)=dble(i2)/dble(ngridq(2)) do i1=0,ngridq(1)-1 v(1)=dble(i1)/dble(ngridq(1)) ir=ir+1 call r3mv(avecu,v,vrcu(:,ir)) end do end do end do ! store the existing k-point and weight arrays allocate(vkl0(3,nkpt),vkc0(3,nkpt),wkpt0(nkpt)) vkl0(:,1:nkpt)=vkl(:,1:nkpt) vkc0(:,1:nkpt)=vkc(:,1:nkpt) wkpt0(1:nkpt)=wkpt(1:nkpt) ! number of k+kappa-points nkpt0=nkpt nkpt=nkpt0*nkpa ! deallocate and reallocate k-point and weight arrays deallocate(vkl,vkc,wkpt) allocate(vkl(3,nkpt),vkc(3,nkpt),wkpt(nkpt)) ik=0 do ik0=1,nkpt0 do ikpa=1,nkpa ik=ik+1 vkl(:,ik)=vkl0(:,ik0)+vql(:,ikpa) vkc(:,ik)=vkc0(:,ik0)+vqc(:,ikpa) wkpt(ik)=wkpt0(ik0)/dble(nkpa) end do end do deallocate(vkl0,vkc0,wkpt0) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhomaguk.f900000644000000000000000000000013213543334737014766 xustar0030 mtime=1569569247.096640369 30 atime=1569569244.032642326 30 ctime=1569569247.096640369 elk-6.3.2/src/rhomaguk.f900000644002504400250440000001501713543334737017041 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rhomaguk(ik0,lock,evecu) use modmain use modulr use modomp implicit none ! arguments integer, intent(in) :: ik0 integer(8), intent(in) :: lock(nqpt) complex(8), intent(in) :: evecu(nstulr,nstulr) ! local variables integer ik,ikpa,ist,i,j integer ngk0,ispn,is,ias integer npc,ir,nthd real(8) wm,wi ! automatic arrays integer idx(nstsv) ! allocatable arrays integer(8), allocatable :: lockl(:) complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfgk(:,:,:) complex(8), allocatable :: wfrmt(:,:,:,:),wfrgk(:,:,:) complex(8), allocatable :: wfir(:,:),zfft(:) ! central k-point ik=(ik0-1)*nkpa+1 ! number of G+k-vectors for central k-point ngk0=ngk(1,ik) ! initialise the local OpenMP locks allocate(lockl(nqpt)) do ir=1,nqpt call omp_init_lock(lockl(ir)) end do ! get the eigenvectors from file allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) call getevecfv(filext,ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv(filext,ik,vkl(:,ik),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) call match(ngk0,vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! index to all states do ist=1,nstsv idx(ist)=ist end do allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngk0,nspinor,nstsv)) call genwfsv(.false.,.true.,nstsv,idx,ngridg,igfft,ngk(1,ik),igkig(:,1,ik), & apwalm,evecfv,evecsv,wfmt,ngk0,wfgk) deallocate(apwalm,evecfv,evecsv) allocate(wfrmt(npcmtmax,natmtot,nspinor,nqpt),wfrgk(ngk0,nspinor,nqpt)) ! loop over ultra long-range states do j=1,nstulr wm=occulr(j,ik0) if (abs(wm).lt.epsocc) cycle wm=wm*wkpt(ik) wi=wm/omega ! zero the ultra long-range wavefunctions call holdthd(2,nthd) !$OMP PARALLEL SECTIONS DEFAULT(SHARED) & !$OMP PRIVATE(ir,ispn) & !$OMP NUM_THREADS(nthd) !$OMP SECTION do ir=1,nqpt do ispn=1,nspinor call wfmt0(wfrmt(:,:,ispn,ir)) end do end do !$OMP SECTION wfrgk(:,:,:)=0.d0 !$OMP END PARALLEL SECTIONS call freethd(nthd) ! parallel loop over second-variational states call holdthd(nstsv,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfft,ikpa,i,ir) & !$OMP NUM_THREADS(nthd) allocate(zfft(nqpt)) !$OMP DO do ist=1,nstsv zfft(:)=0.d0 ! loop over kappa-points do ikpa=1,nkpa i=(ikpa-1)*nstsv+ist ! store the wavefunction in Q-space zfft(iqfft(ikpa))=evecu(i,j) end do ! Fourier transform to R-space call zfftifc(3,ngridq,1,zfft) ! loop over R-points do ir=1,nqpt call omp_set_lock(lockl(ir)) call wfadd(zfft(ir),wfmt(:,:,:,ist),wfgk(:,:,ist),wfrmt(:,:,:,ir), & wfrgk(:,:,ir)) call omp_unset_lock(lockl(ir)) end do end do !$OMP END DO deallocate(zfft) !$OMP END PARALLEL call freethd(nthd) ! parallel loop over R-points call holdthd(nqpt,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(wfir,ispn,ias,is,npc) & !$OMP NUM_THREADS(nthd) allocate(wfir(ngtot,nspinor)) !$OMP DO do ir=1,nqpt do ispn=1,nspinor ! Fourier transform the interstitial part to real-space wfir(:,ispn)=0.d0 wfir(igfft(igkig(1:ngk0,1,ik)),ispn)=wfrgk(1:ngk0,ispn,ir) call zfftifc(3,ngridg,1,wfir(:,ispn)) end do ! add to the density and magnetisation call omp_set_lock(lock(ir)) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) if (spinpol) then if (ncmag) then call rmk1(npc,wm,wfrmt(:,ias,1,ir),wfrmt(:,ias,2,ir), & rhormt(:,ias,ir),magrmt(:,ias,1,ir),magrmt(:,ias,2,ir), & magrmt(:,ias,3,ir)) else call rmk2(npc,wm,wfrmt(:,ias,1,ir),wfrmt(:,ias,2,ir), & rhormt(:,ias,ir),magrmt(:,ias,1,ir)) end if else call rmk3(npc,wm,wfrmt(:,ias,1,ir),rhormt(:,ias,ir)) end if end do if (spinpol) then if (ncmag) then call rmk1(ngtot,wi,wfir,wfir(:,2),rhorir(:,ir),magrir(:,1,ir), & magrir(:,2,ir),magrir(:,3,ir)) else call rmk2(ngtot,wi,wfir,wfir(:,2),rhorir(:,ir),magrir(:,1,ir)) end if else call rmk3(ngtot,wi,wfir,rhorir(:,ir)) end if call omp_unset_lock(lock(ir)) ! end loop over R-points end do !$OMP END DO deallocate(wfir) !$OMP END PARALLEL call freethd(nthd) ! end loop over long-range states end do ! destroy the local OpenMP locks do ir=1,nqpt call omp_destroy_lock(lockl(ir)) end do deallocate(lockl) deallocate(wfmt,wfgk,wfrmt,wfrgk) return contains subroutine wfmt0(wfmt) implicit none ! arguments complex(8), intent(out) :: wfmt(npcmtmax,natmtot) ! local variables integer is,ias do ias=1,natmtot is=idxis(ias) wfmt(1:npcmt(is),ias)=0.d0 end do return end subroutine subroutine wfadd(za,wfmt1,wfgk1,wfmt2,wfgk2) implicit none ! arguments complex(8), intent(in) :: za complex(8), intent(in) :: wfmt1(npcmtmax,natmtot,nspinor) complex(8), intent(in) :: wfgk1(ngk0,nspinor) complex(8), intent(inout) :: wfmt2(npcmtmax,natmtot,nspinor) complex(8), intent(inout) :: wfgk2(ngk0,nspinor) ! local variables integer ispn,is,ias do ispn=1,nspinor do ias=1,natmtot is=idxis(ias) call zaxpy(npcmt(is),za,wfmt1(:,ias,ispn),1,wfmt2(:,ias,ispn),1) end do end do do ispn=1,nspinor call zaxpy(ngk0,za,wfgk1(:,ispn),1,wfgk2(:,ispn),1) end do return end subroutine pure subroutine rmk1(n,wo,wf1,wf2,rho,mag1,mag2,mag3) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wo complex(8), intent(in) :: wf1(n),wf2(n) real(8), intent(inout) :: rho(n),mag1(n),mag2(n),mag3(n) ! local variables integer i real(8) wo2,t1,t2 complex(8) z1,z2 wo2=2.d0*wo do i=1,n z1=wf1(i) z2=wf2(i) t1=dble(z1)**2+aimag(z1)**2 t2=dble(z2)**2+aimag(z2)**2 z1=conjg(z1)*z2 rho(i)=rho(i)+wo*(t1+t2) mag1(i)=mag1(i)+wo2*dble(z1) mag2(i)=mag2(i)+wo2*aimag(z1) mag3(i)=mag3(i)+wo*(t1-t2) end do return end subroutine pure subroutine rmk2(n,wo,wf1,wf2,rho,mag) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wo complex(8), intent(in) :: wf1(n),wf2(n) real(8), intent(inout) :: rho(n),mag(n) ! local variables integer i real(8) t1,t2 do i=1,n t1=dble(wf1(i))**2+aimag(wf1(i))**2 t2=dble(wf2(i))**2+aimag(wf2(i))**2 rho(i)=rho(i)+wo*(t1+t2) mag(i)=mag(i)+wo*(t1-t2) end do return end subroutine pure subroutine rmk3(n,wo,wf,rho) implicit none ! arguments integer, intent(in) :: n real(8), intent(in) :: wo complex(8), intent(in) :: wf(n) real(8), intent(inout) :: rho(n) rho(:)=rho(:)+wo*(dble(wf(:))**2+aimag(wf(:))**2) return end subroutine end subroutine elk-6.3.2/src/PaxHeaders.21352/writeengyu.f900000644000000000000000000000013213543334737015353 xustar0030 mtime=1569569247.100640367 30 atime=1569569244.037642323 30 ctime=1569569247.100640367 elk-6.3.2/src/writeengyu.f900000644002504400250440000000064613543334737017430 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writeengyu(fnum) use modmain use modulr implicit none ! arguments integer, intent(in) :: fnum write(fnum,*) write(fnum,'("Energies :")') write(fnum,'(" Fermi",T30,": ",G22.12)') efermi return end subroutine elk-6.3.2/src/PaxHeaders.21352/genhmlu.f900000644000000000000000000000013113543334737014607 xustar0030 mtime=1569569247.104640364 29 atime=1569569244.04164232 30 ctime=1569569247.104640364 elk-6.3.2/src/genhmlu.f900000644002504400250440000000652413543334737016666 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine genhmlu(ik0,h) use modmain use modulr use modomp implicit none ! arguments integer, intent(in) :: ik0 complex(8), intent(out) :: h(nstulr,nstulr) ! local variables integer ik,ist,jst,ispn,nthd integer ikpa,jkpa,iq,ifq,igk integer i1,i2,i3,j1,j2,j3,i,j ! automatic arrays integer idx(nstsv) ! allocatable arrays complex(8), allocatable :: apwalm(:,:,:,:),evecfv(:,:),evecsv(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:),wfgk(:,:,:) complex(8), allocatable :: vmat(:,:) ! central k-point ik=(ik0-1)*nkpa+1 ! get the ground-state eigenvectors from file for central k-point allocate(evecfv(nmatmax,nstfv),evecsv(nstsv,nstsv)) call getevecfv('.OUT',ik,vkl(:,ik),vgkl(:,:,:,ik),evecfv) call getevecsv('.OUT',ik,vkl(:,ik),evecsv) ! find the matching coefficients allocate(apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)) call match(ngk(1,ik),vgkc(:,:,1,ik),gkc(:,1,ik),sfacgk(:,:,1,ik),apwalm) ! index to all states do ist=1,nstsv idx(ist)=ist end do ! calculate the wavefunctions for all states of the central k-point allocate(wfmt(npcmtmax,natmtot,nspinor,nstsv),wfgk(ngkmax,nspinor,nstsv)) call genwfsv(.false.,.true.,nstsv,idx,ngridg,igfft,ngk(:,ik),igkig(:,:,ik), & apwalm,evecfv,evecsv,wfmt,ngkmax,wfgk) deallocate(apwalm,evecfv,evecsv) ! determine the interstitial wavefunctions in real-space (without 1/sqrt(omega)) allocate(wfir(ngtot,nspinor,nstsv)) call holdthd(nstsv,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ispn,igk) & !$OMP NUM_THREADS(nthd) do ist=1,nstsv do ispn=1,nspinor wfir(:,ispn,ist)=0.d0 do igk=1,ngk(1,ik) wfir(igfft(igkig(igk,1,ik)),ispn,ist)=wfgk(igk,ispn,ist) end do call zfftifc(3,ngridg,1,wfir(:,ispn,ist)) end do end do !$OMP END PARALLEL DO call freethd(nthd) ! generate the matrix elements for all Q-vectors call holdthd(nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(vmat,iq,i,j,ikpa,jkpa) & !$OMP PRIVATE(j1,j2,j3,ist,jst,i1,i2,i3) & !$OMP NUM_THREADS(nthd) allocate(vmat(nstsv,nstsv)) !$OMP DO do ifq=1,nfqrz iq=iqrzf(ifq) if (spinpol) then call genzvbmatk(vsqmt(:,:,ifq),vsqir(:,ifq),bsqmt(:,:,:,ifq), & bsqir(:,:,ifq),nstsv,ngk(1,ik),igkig(:,1,ik),wfmt,wfir,wfgk,vmat) else call genzvmatk(vsqmt(:,:,ifq),vsqir(:,ifq),nstsv,ngk(1,ik),igkig(:,1,ik), & wfmt,wfir,wfgk,vmat) end if j=0 do jkpa=1,nkpa j1=ivq(1,jkpa); j2=ivq(2,jkpa); j3=ivq(3,jkpa) do jst=1,nstsv j=j+1 do ikpa=1,jkpa-1 i=(ikpa-1)*nstsv+1 i1=ivq(1,ikpa)-j1; i2=ivq(2,ikpa)-j2; i3=ivq(3,ikpa)-j3 if (ivqiq(i1,i2,i3).eq.iq) then call zcopy(nstsv,vmat(:,jst),1,h(i,j),1) else if (ivqiq(-i1,-i2,-i3).eq.iq) then do ist=1,nstsv h(i,j)=conjg(vmat(jst,ist)) i=i+1 end do end if end do if (ifq.ne.1) cycle i=(jkpa-1)*nstsv+1 call zcopy(jst,vmat(:,jst),1,h(i,j),1) end do end do end do !$OMP END DO deallocate(vmat) !$OMP END PARALLEL call freethd(nthd) ! add the second-variational eigenvalues to the diagonal i=0 do ikpa=1,nkpa ik=(ik0-1)*nkpa+ikpa do ist=1,nstsv i=i+1 h(i,i)=h(i,i)+evalsv(ist,ik) end do end do deallocate(wfmt,wfir,wfgk) return end subroutine elk-6.3.2/src/PaxHeaders.21352/initulr.f900000644000000000000000000000013213543334737014637 xustar0030 mtime=1569569247.109640361 30 atime=1569569244.045642318 30 ctime=1569569247.109640361 elk-6.3.2/src/initulr.f900000644002504400250440000001003013543334737016700 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine initulr use modmain use modulr use modomp implicit none ! local variables integer ik0,ik,ist,jst integer iq,ifq,ig,i,nthd real(8) t1 ! allocatable arrays integer, allocatable :: idx(:) ! allocate long-range density and magnetisation arrays if (allocated(rhormt)) deallocate(rhormt) allocate(rhormt(npcmtmax,natmtot,nqpt)) if (allocated(rhorir)) deallocate(rhorir) allocate(rhorir(ngtot,nqpt)) if (allocated(magrmt)) deallocate(magrmt) if (allocated(magrir)) deallocate(magrir) if (spinpol) then allocate(magrmt(npcmtmax,natmtot,ndmag,nqpt)) allocate(magrir(ngtot,ndmag,nqpt)) end if if (allocated(rhoqmt)) deallocate(rhoqmt) allocate(rhoqmt(npcmtmax,natmtot,nfqrz)) if (allocated(rhoqir)) deallocate(rhoqir) allocate(rhoqir(ngtot,nfqrz)) if (allocated(chgmtru)) deallocate(chgmtru) allocate(chgmtru(natmtot,nqpt)) if (allocated(magqmt)) deallocate(magqmt) if (allocated(magqir)) deallocate(magqir) if (allocated(mommtru)) deallocate(mommtru) if (spinpol) then allocate(magqmt(npcmtmax,natmtot,ndmag,nfqrz)) allocate(magqir(ngtot,ndmag,nfqrz)) allocate(mommtru(ndmag,natmtot,nqpt)) end if ! allocate potential and magnetic field arrays if (allocated(vclq)) deallocate(vclq) allocate(vclq(nfqrz)) if (allocated(vsqmt)) deallocate(vsqmt) allocate(vsqmt(npcmtmax,natmtot,nfqrz)) if (allocated(vsqir)) deallocate(vsqir) allocate(vsqir(ngtot,nfqrz)) if (allocated(bfcq)) deallocate(bfcq) if (allocated(bfcmtq)) deallocate(bfcmtq) if (allocated(bsqmt)) deallocate(bsqmt) if (allocated(bsqir)) deallocate(bsqir) if (spinpol) then allocate(bfcq(ndmag,nfqrz)) allocate(bfcmtq(natmtot,ndmag,nfqrz)) allocate(bsqmt(npcmtmax,natmtot,ndmag,nfqrz)) allocate(bsqir(ngtot,ndmag,nfqrz)) end if ! G+Q-vector arrays if (allocated(vgqc)) deallocate(vgqc) allocate(vgqc(3,ngvec,nfqrz)) if (allocated(gqc)) deallocate(gqc) allocate(gqc(ngvec,nfqrz)) if (allocated(ylmgq)) deallocate(ylmgq) allocate(ylmgq(lmmaxo,ngvec,nfqrz)) if (allocated(sfacgq)) deallocate(sfacgq) allocate(sfacgq(ngvec,natmtot,nfqrz)) if (allocated(gclq)) deallocate(gclq) allocate(gclq(nqpt)) if (allocated(gclgq)) deallocate(gclgq) allocate(gclgq(ngvec,nfqrz)) if (allocated(jlgqrmt)) deallocate(jlgqrmt) allocate(jlgqrmt(0:lnpsd,ngvec,nspecies,nfqrz)) ! find the maximum size of the spherical Bessel function array over all species call findnjcmax call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(iq,ig,t1) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz iq=iqrzf(ifq) do ig=1,ngvec ! determine the G+Q-vectors vgqc(:,ig,ifq)=vgc(:,ig)+vqc(:,iq) ! G+Q-vector length gqc(ig,ifq)=sqrt(vgqc(1,ig,ifq)**2+vgqc(2,ig,ifq)**2+vgqc(3,ig,ifq)**2) ! spherical harmonics for G+Q-vectors call genylmv(lmaxo,vgqc(:,ig,ifq),ylmgq(:,ig,ifq)) end do ! structure factors for G+Q-vectors call gensfacgp(ngvec,vgqc(:,:,ifq),ngvec,sfacgq(:,:,ifq)) ! generate the Coulomb Green's function in Q-space with small Q cut-off t1=sqrt(vqc(1,iq)**2+vqc(2,iq)**2+vqc(3,iq)**2) if (t1.gt.q0cut+epslat) then gclq(iq)=fourpi/t1**2 else gclq(iq)=0.d0 end if ! generate the Coulomb Green's function in G+Q-space call gengclgq(.true.,iq,ngvec,gqc(:,ifq),gclgq(:,ifq)) ! compute the spherical Bessel functions j_l(|G+Q|R_mt) call genjlgprmt(lnpsd,ngvec,gqc(:,ifq),ngvec,jlgqrmt(:,:,:,ifq)) end do !$OMP END PARALLEL DO call freethd(nthd) ! number of long-range states nstulr=nstsv*nkpa ! allocate eigenvalue array if (allocated(evalu)) deallocate(evalu) allocate(evalu(nstulr,nkpt0)) ! allocate the occupation number array if (allocated(occulr)) deallocate(occulr) allocate(occulr(nstulr,nkpt0)) ! initialise the occupation numbers allocate(idx(nstulr)) do ik0=1,nkpt0 ik=(ik0-1)*nkpa+1 call sortidx(nstulr,occsv(1,ik),idx) do ist=1,nstulr i=idx(nstulr-ist+1)-1 ik=(ik0-1)*nkpa+i/nstsv+1 jst=mod(i,nstsv)+1 occulr(ist,ik0)=occsv(jst,ik) end do end do deallocate(idx) return end subroutine elk-6.3.2/src/PaxHeaders.21352/potcoulu.f900000644000000000000000000000013213543334737015023 xustar0030 mtime=1569569247.113640358 30 atime=1569569244.050642315 30 ctime=1569569247.113640358 elk-6.3.2/src/potcoulu.f900000644002504400250440000000470413543334737017077 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potcoulu use modmain use modulr use modmpi use modomp implicit none ! local variables integer iq,ifq,is,ias integer nr,nri,ir integer nrc,nrci,i integer n,lp,nthd ! allocatable arrays complex(8), allocatable :: zrhomt(:,:),zvclmt(:,:),zfmt(:) call holdthd(nfqrz/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zrhomt,zvclmt,zfmt) & !$OMP PRIVATE(iq,ias,is,nr,nri) & !$OMP PRIVATE(i,ir,nrc,nrci) & !$OMP NUM_THREADS(nthd) allocate(zrhomt(npmtmax,natmtot),zvclmt(npmtmax,natmtot),zfmt(npcmtmax)) !$OMP DO do ifq=1,nfqrz ! distribute among MPI processes if (mod(ifq-1,np_mpi).ne.lp_mpi) cycle iq=iqrzf(ifq) ! convert the complex density from a coarse to fine radial mesh do ias=1,natmtot is=idxis(ias) call zcopy(npcmt(is),rhoqmt(:,ias,ifq),1,zrhomt(:,ias),1) end do call zfmtctof(zrhomt) ! solve the complex Poisson's equation in the muffin-tins call genzvclmt(nrmt,nrmti,nrmtmax,rlmt,wprmt,npmtmax,zrhomt,zvclmt) ! add the nuclear monopole potentials for Q=0 if (ifq.eq.1) then do ias=1,natmtot is=idxis(ias) nr=nrmt(is) nri=nrmti(is) i=1 do ir=1,nri zvclmt(i,ias)=zvclmt(i,ias)+vcln(ir,is) i=i+lmmaxi end do do ir=nri+1,nr zvclmt(i,ias)=zvclmt(i,ias)+vcln(ir,is) i=i+lmmaxo end do end do end if ! solve Poisson's equation in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,npmti,nrmtmax,rlmt,ngridg,igfft,ngvec, & gqc(:,ifq),gclgq(:,ifq),ngvec,jlgqrmt(:,:,:,ifq),ylmgq(:,:,ifq), & sfacgq(:,:,ifq),rhoqir(:,ifq),npmtmax,zvclmt,vsqir(:,ifq)) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) ! convert from fine to coarse radial mesh call zfmtftoc(nrc,nrci,zvclmt(:,ias),zfmt) ! convert to spherical coordinates call zbsht(nrc,nrci,zfmt,vsqmt(:,ias,ifq)) end do end do !$OMP END DO deallocate(zrhomt,zvclmt,zfmt) !$OMP END PARALLEL call freethd(nthd) ! broadcast potentials to every MPI process if (np_mpi.gt.1) then n=npcmtmax*natmtot do ifq=1,nfqrz lp=mod(ifq-1,np_mpi) call mpi_bcast(vsqmt(:,:,ifq),n,mpi_double_complex,lp,mpicom,ierror) end do do ifq=1,nfqrz lp=mod(ifq-1,np_mpi) call mpi_bcast(vsqir(:,ifq),ngtot,mpi_double_complex,lp,mpicom,ierror) end do end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/potksu.f900000644000000000000000000000013213543334737014476 xustar0030 mtime=1569569247.117640356 30 atime=1569569244.055642311 30 ctime=1569569247.117640356 elk-6.3.2/src/potksu.f900000644002504400250440000000435013543334737016547 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potksu use modmain use modulr use modomp implicit none ! local variables integer ifq,idm,is,ias integer npc,nrc,nrci,nthd ! allocatable arrays real(8), allocatable :: rfmt1(:),rfmt2(:) ! compute the ultra long-range Coulomb potential call potcoulu ! compute the ultra long-range exchange-correlation potential and fields call potxcu ! subtract the normal Kohn-Sham potential for Q=0 call holdthd(natmtot,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rfmt1,rfmt2,is) & !$OMP PRIVATE(nrc,nrci,npc) & !$OMP NUM_THREADS(nthd) allocate(rfmt1(npcmtmax),rfmt2(npcmtmax)) !$OMP DO do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) npc=npcmt(is) call rfmtftoc(nrc,nrci,vsmt(:,ias),rfmt1) call rbsht(nrc,nrci,rfmt1,rfmt2) vsqmt(1:npc,ias,1)=vsqmt(1:npc,ias,1)-rfmt2(1:npc) end do !$OMP END DO deallocate(rfmt1,rfmt2) !$OMP END PARALLEL call freethd(nthd) vsqir(:,1)=vsqir(:,1)-vsir(:) ! multiply vsqir by the characteristic function call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz vsqir(:,ifq)=vsqir(:,ifq)*cfunir(:) end do !$OMP END PARALLEL DO call freethd(nthd) if (.not.spinpol) return ! subtract the normal Kohn-Sham magnetic field for Q=0 in the muffin-tins do idm=1,ndmag do ias=1,natmtot is=idxis(ias) npc=npcmt(is) bsqmt(1:npc,ias,idm,1)=bsqmt(1:npc,ias,idm,1)-bsmt(1:npc,ias,idm) end do end do ! multiply bsqir by the characteristic function call holdthd(nfqrz,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(idm) & !$OMP NUM_THREADS(nthd) do ifq=1,nfqrz do idm=1,ndmag bsqir(:,idm,ifq)=bsqir(:,idm,ifq)*cfunir(:) end do end do !$OMP END PARALLEL DO call freethd(nthd) ! subtract the normal Kohn-Sham magnetic field for Q=0 in the interstitial ! (this is already multiplied by the characteristic function) do idm=1,ndmag bsqir(:,idm,1)=bsqir(:,idm,1)-bsir(:,idm) end do ! reduce the external magnetic field if required if (reducebf.lt.1.d0) then bfcq(:,:)=bfcq(:,:)*reducebf bfcmtq(:,:,:)=bfcmtq(:,:,:)*reducebf end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/potxcu.f900000644000000000000000000000013213543334737014473 xustar0030 mtime=1569569247.122640352 30 atime=1569569244.059642309 30 ctime=1569569247.122640352 elk-6.3.2/src/potxcu.f900000644002504400250440000001075013543334737016545 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potxcu use modmain use modulr use modmpi use modomp implicit none ! local variables integer ifq,idm,is,ias integer ir,npc,n,lp,nthd complex(8) z1,z2 ! allocatable arrays real(8), allocatable :: vxcrmt(:,:,:),vxcrir(:,:) real(8), allocatable :: bxcrmt(:,:,:,:),bxcrir(:,:,:) real(8), allocatable :: rhomt_(:,:),magmt_(:,:,:) real(8), allocatable :: vxcmt_(:,:),bxcmt_(:,:,:) complex(8), allocatable :: vxcqmt(:,:,:),vxcqir(:,:) allocate(vxcrmt(npcmtmax,natmtot,nqpt),vxcrir(ngtot,nqpt)) if (spinpol) then allocate(bxcrmt(npcmtmax,natmtot,ndmag,nqpt)) allocate(bxcrir(ngtot,ndmag,nqpt)) end if call holdthd(nqpt/np_mpi,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(rhomt_,vxcmt_,magmt_,bxcmt_) & !$OMP PRIVATE(ias,is,idm) & !$OMP NUM_THREADS(nthd) allocate(rhomt_(npmtmax,natmtot),vxcmt_(npmtmax,natmtot)) if (spinpol) then allocate(magmt_(npmtmax,natmtot,ndmag),bxcmt_(npmtmax,natmtot,ndmag)) end if !$OMP DO do ir=1,nqpt ! distribute among MPI processes if (mod(ir-1,np_mpi).ne.lp_mpi) cycle ! convert the density from a coarse to a fine radial mesh do ias=1,natmtot is=idxis(ias) call dcopy(npcmt(is),rhormt(:,ias,ir),1,rhomt_(:,ias),1) end do call rfmtctof(rhomt_) ! convert magnetisation from a coarse to a fine radial mesh do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call dcopy(npcmt(is),magrmt(:,ias,idm,ir),1,magmt_(:,ias,idm),1) end do call rfmtctof(magmt_(:,:,idm)) end do ! calculate the exchange-correlation potential and magnetic field call potxc(.false.,xctype,rhomt_,rhorir(:,ir),magmt_,magrir(:,:,ir),taumt, & tauir,exmt,exir,ecmt,ecir,vxcmt_,vxcrir(:,ir),bxcmt_,bxcrir(:,:,ir),wxcmt, & wxcir) ! convert muffin-tin potential and field from fine to coarse radial mesh do ias=1,natmtot is=idxis(ias) call rfmtftoc(nrcmt(is),nrcmti(is),vxcmt_(:,ias),vxcrmt(:,ias,ir)) end do do idm=1,ndmag do ias=1,natmtot is=idxis(ias) call rfmtftoc(nrcmt(is),nrcmti(is),bxcmt_(:,ias,idm),bxcrmt(:,ias,idm,ir)) end do end do end do !$OMP END DO deallocate(rhomt_,vxcmt_) if (spinpol) deallocate(magmt_,bxcmt_) !$OMP END PARALLEL call freethd(nthd) ! broadcast potentials and fields to every MPI process if (np_mpi.gt.1) then n=npcmtmax*natmtot do ir=1,nqpt lp=mod(ir-1,np_mpi) call mpi_bcast(vxcrmt(:,:,ir),n,mpi_double_precision,lp,mpicom,ierror) end do do ir=1,nqpt lp=mod(ir-1,np_mpi) call mpi_bcast(vxcrir(:,ir),ngtot,mpi_double_precision,lp,mpicom,ierror) end do if (spinpol) then n=npcmtmax*natmtot*ndmag do ir=1,nqpt lp=mod(ir-1,np_mpi) call mpi_bcast(bxcrmt(:,:,:,ir),n,mpi_double_precision,lp,mpicom,ierror) end do n=ngtot*ndmag do ir=1,nqpt lp=mod(ir-1,np_mpi) call mpi_bcast(bxcrir(:,:,ir),n,mpi_double_precision,lp,mpicom,ierror) end do end if end if allocate(vxcqmt(npcmtmax,natmtot,nfqrz),vxcqir(ngtot,nfqrz)) ! Fourier transform exchange-correlation potential to Q-space call rfzfftq(-1,1,vxcrmt,vxcrir,vxcqmt,vxcqir) deallocate(vxcrmt,vxcrir) ! add V_xc and external Coulomb potential to Kohn-Sham potential call holdthd(nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(z1,ias,is,npc) & !$OMP NUM_THREADS(nthd) !$OMP DO do ifq=1,nfqrz z1=vclq(ifq) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) vsqmt(1:npc,ias,ifq)=vsqmt(1:npc,ias,ifq)+vxcqmt(1:npc,ias,ifq)+z1 end do end do !$OMP END DO NOWAIT !$OMP DO do ifq=1,nfqrz z1=vclq(ifq) vsqir(:,ifq)=vsqir(:,ifq)+vxcqir(:,ifq)+z1 end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) deallocate(vxcqmt,vxcqir) ! Fourier transform the exchange-correlation magnetic field to Q-space if (spinpol) then call rfzfftq(-1,ndmag,bxcrmt,bxcrir,bsqmt,bsqir) deallocate(bxcrmt,bxcrir) call holdthd(nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(idm,z1,z2,ias,is,npc) & !$OMP NUM_THREADS(nthd) !$OMP DO do ifq=1,nfqrz do idm=1,ndmag z1=bfcq(idm,ifq) do ias=1,natmtot is=idxis(ias) npc=npcmt(is) z2=z1+bfcmtq(ias,idm,ifq) bsqmt(1:npc,ias,idm,ifq)=bsqmt(1:npc,ias,idm,ifq)+z2 end do end do end do !$OMP END DO NOWAIT !$OMP DO do ifq=1,nfqrz do idm=1,ndmag z1=bfcq(idm,ifq) bsqir(:,idm,ifq)=bsqir(:,idm,ifq)+z1 end do end do !$OMP END DO !$OMP END PARALLEL call freethd(nthd) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhomagq.f900000644000000000000000000000013013543334737014605 xustar0029 mtime=1569569247.12664035 30 atime=1569569244.064642306 29 ctime=1569569247.12664035 elk-6.3.2/src/rhomagq.f900000644002504400250440000000307213543334737016660 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2018 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rhomagq use modmain use modulr use modomp implicit none ! local variables integer ifq,idm,nthd integer is,ias,npc ! allocatable arrays complex(8), allocatable :: zfmt(:) ! partial Fourier transform of density to Q-space call rfzfftq(-1,1,rhormt,rhorir,rhoqmt,rhoqir) ! convert density to spherical harmonics call holdthd(nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt,ias,is,npc) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npcmtmax)) !$OMP DO do ifq=1,nfqrz do ias=1,natmtot is=idxis(ias) npc=npcmt(is) call zcopy(npc,rhoqmt(:,ias,ifq),1,zfmt,1) call zfsht(nrcmt(is),nrcmti(is),zfmt,rhoqmt(:,ias,ifq)) end do end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) if (.not.spinpol) return ! partial Fourier transform of magnetisation to Q-space call rfzfftq(-1,ndmag,magrmt,magrir,magqmt,magqir) ! convert magnetisation to spherical harmonics call holdthd(nfqrz,nthd) !$OMP PARALLEL DEFAULT(SHARED) & !$OMP PRIVATE(zfmt,idm,ias,is,npc) & !$OMP NUM_THREADS(nthd) allocate(zfmt(npcmtmax)) !$OMP DO do ifq=1,nfqrz do idm=1,ndmag do ias=1,natmtot is=idxis(ias) npc=npcmt(is) call zcopy(npc,magqmt(:,ias,idm,ifq),1,zfmt,1) call zfsht(nrcmt(is),nrcmti(is),zfmt,magqmt(:,ias,idm,ifq)) end do end do end do !$OMP END DO deallocate(zfmt) !$OMP END PARALLEL call freethd(nthd) return end subroutine elk-6.3.2/src/PaxHeaders.21352/potefieldu.f900000644000000000000000000000013213543334737015311 xustar0030 mtime=1569569247.130640347 30 atime=1569569244.069642302 30 ctime=1569569247.130640347 elk-6.3.2/src/potefieldu.f900000644002504400250440000000143313543334737017361 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potefieldu use modmain use modulr implicit none ! local variables integer ir real(8) v0,v(3) ! allocatable arrays real(8), allocatable :: rfft(:) if (sum(abs(efielduc(:))).lt.epslat) return allocate(rfft(nqpt)) ! constant added to potential so that it is zero at the ultracell center v(:)=0.5d0*(avecu(:,1)+avecu(:,2)+avecu(:,3)) v0=dot_product(efielduc(:),v(:)) ! calculate the potential in real-space do ir=1,nqpt rfft(ir)=v0-dot_product(efielduc(:),vrcu(:,ir)) end do ! Fourier transform to Q-space call rzfftifc(3,ngridq,-1,rfft,vclq) deallocate(rfft) return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotulr.f900000644000000000000000000000013013543334737014650 xustar0030 mtime=1569569247.134640345 28 atime=1569569244.0736423 30 ctime=1569569247.134640345 elk-6.3.2/src/plotulr.f900000644002504400250440000000255713543334737016732 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine plotulr(np,vpl,nf,zfmt,zfir,fp) use modmain use modulr use modomp implicit none ! arguments integer, intent(in) :: np real(8), intent(in) :: vpl(3,np) integer, intent(in) :: nf complex(8), intent(in) :: zfmt(npcmtmax,natmtot,nf,nfqrz) complex(8), intent(in) :: zfir(ngtot,nf,nfqrz) real(8), intent(out) :: fp(np,nf) ! local variables integer iq,ifq0,ifq integer jf,ip real(8) sum,t1 complex(8) z1 ! allocatable arrays complex(8), allocatable :: fpq(:,:) allocate(fpq(np,nfqrz)) ! include or exclude the Q=0 component as required if (tplotq0) then ifq0=1 else ifq0=2 end if ! loop over the number of functions do jf=1,nf ! loop over real-complex FFT points do ifq=ifq0,nfqrz ! evaluate the complex function at all the plot points call zfplot(np,vpl,zfmt(:,:,jf,ifq),zfir(:,jf,ifq),fpq(:,ifq)) end do do ip=1,np sum=0.d0 do ifq=ifq0,nfqrz iq=iqrzf(ifq) ! multiply complex function by phase factor exp(iQ.r) t1=twopi*dot_product(vql(:,iq),vpl(:,ip)) z1=cmplx(cos(t1),sin(t1),8) t1=dble(fpq(ip,ifq)*z1) if (ifq.gt.1) t1=t1*2.d0 sum=sum+t1 end do fp(ip,jf)=sum end do end do deallocate(fpq) return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotu1d.f900000644000000000000000000000013213543334737014541 xustar0030 mtime=1569569247.139640342 30 atime=1569569244.078642297 30 ctime=1569569247.139640342 elk-6.3.2/src/plotu1d.f900000644002504400250440000000235613543334737016616 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine plotu1d(fnum1,fnum2,nf,zfmt,zfir) use modmain implicit none ! arguments integer, intent(in) :: fnum1,fnum2,nf complex(8), intent(in) :: zfmt(npcmtmax,natmtot,nf,nfqrz) complex(8), intent(in) :: zfir(ngtot,nf,nfqrz) ! local variables integer jf,ip,iv real(8) fmin,fmax,t1 ! allocatable arrays real(8), allocatable :: fp(:,:) if ((nf.lt.1).or.(nf.gt.4)) then write(*,*) write(*,'("Error(plotu1d): invalid number of functions : ",I8)') nf write(*,*) stop end if allocate(fp(npp1d,nf)) ! connect the 1D plotting vertices call plotpt1d(avec,nvp1d,npp1d,vvlp1d,vplp1d,dvp1d,dpp1d) ! evaluate function at each point call plotulr(npp1d,vplp1d,nf,zfmt,zfir,fp) do ip=1,npp1d ! write the point distances and function to file write(fnum1,'(5G18.10)') dpp1d(ip),(fp(ip,jf),jf=1,nf) end do ! write the vertex location lines fmin=minval(fp(:,:)) fmax=maxval(fp(:,:)) t1=0.5d0*(fmax-fmin) do iv=1,nvp1d write(fnum2,'(2G18.10)') dvp1d(iv),fmax+t1 write(fnum2,'(2G18.10)') dvp1d(iv),fmin-t1 write(fnum2,'(" ")') end do deallocate(fp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotu2d.f900000644000000000000000000000013213543334737014542 xustar0030 mtime=1569569247.143640339 30 atime=1569569244.083642294 30 ctime=1569569247.143640339 elk-6.3.2/src/plotu2d.f900000644002504400250440000000237313543334737016616 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine plotu2d(tproj,fnum,nf,zfmt,zfir) use modmain implicit none ! arguments logical, intent(in) :: tproj integer, intent(in) :: fnum,nf complex(8), intent(in) :: zfmt(npcmtmax,natmtot,nf,nfqrz) complex(8), intent(in) :: zfir(ngtot,nf,nfqrz) ! local variables integer np,jf,ip real(8) vpnl(3) ! allocatable arrays real(8), allocatable :: vpl(:,:),vppc(:,:),fp(:,:) if ((nf.lt.1).or.(nf.gt.4)) then write(*,*) write(*,'("Error(plotu2d): invalid number of functions : ",I8)') nf write(*,*) stop end if ! allocate local arrays np=np2d(1)*np2d(2) allocate(vpl(3,np),vppc(2,np),fp(np,nf)) ! generate the 2D plotting points call plotpt2d(avec,ainv,vpnl,vpl,vppc) ! evaluate the functions at the grid points call plotulr(np,vpl,nf,zfmt,zfir,fp) ! project the vector function onto the 2D plotting plane if required if (tproj.and.(nf.eq.3)) then call proj2d(np,fp) end if ! write the functions to file write(fnum,'(2I6," : grid size")') np2d(:) do ip=1,np write(fnum,'(6G18.10)') vppc(1,ip),vppc(2,ip),(fp(ip,jf),jf=1,nf) end do deallocate(vpl,vppc,fp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/plotu3d.f900000644000000000000000000000013213543334737014543 xustar0030 mtime=1569569247.147640336 30 atime=1569569244.087642291 30 ctime=1569569247.147640336 elk-6.3.2/src/plotu3d.f900000644002504400250440000000213213543334737016610 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine plotu3d(fnum,nf,zfmt,zfir) use modmain implicit none ! arguments integer, intent(in) :: fnum,nf complex(8), intent(in) :: zfmt(npcmtmax,natmtot,nf,nfqrz) complex(8), intent(in) :: zfir(ngtot,nf,nfqrz) ! local variables integer np,jf,ip real(8) v1(3) ! allocatable arrays real(8), allocatable :: vpl(:,:),fp(:,:) if ((nf.lt.1).or.(nf.gt.4)) then write(*,*) write(*,'("Error(plotu3d): invalid number of functions : ",I8)') nf write(*,*) stop end if ! total number of plot points np=np3d(1)*np3d(2)*np3d(3) ! allocate local arrays allocate(vpl(3,np),fp(np,nf)) ! generate the 3D plotting points call plotpt3d(vpl) ! evaluate the functions at the grid points call plotulr(np,vpl,nf,zfmt,zfir,fp) ! write functions to file write(fnum,'(3I6," : grid size")') np3d(:) do ip=1,np call r3mv(avec,vpl(:,ip),v1) write(fnum,'(7G18.10)') v1(:),(fp(ip,jf),jf=1,nf) end do deallocate(vpl,fp) return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhouplot.f900000644000000000000000000000013213543334737015025 xustar0030 mtime=1569569247.152640333 30 atime=1569569244.092642288 30 ctime=1569569247.152640333 elk-6.3.2/src/rhouplot.f900000644002504400250440000000240013543334737017070 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rhouplot use modmain use modulr implicit none ! initialise universal variables call init0 call init1 ! initialise the ultra long-range variables call initulr ! read in the density from STATE_ULR.OUT call readstulr ! write the density plot to file select case(task) case(731) open(50,file='RHOU1D.OUT',form='FORMATTED') open(51,file='RHOULINES.OUT',form='FORMATTED') call plotu1d(50,51,1,rhoqmt,rhoqir) close(50) close(51) write(*,*) write(*,'("Info(rhouplot):")') write(*,'(" 1D ultra long-range density plot written to RHOU1D.OUT")') write(*,'(" vertex location lines written to RHOULINES.OUT")') case(732) open(50,file='RHOU2D.OUT',form='FORMATTED') call plotu2d(.false.,50,1,rhoqmt,rhoqir) close(50) write(*,*) write(*,'("Info(rhouplot): 2D ultra long-range density plot written to & &RHOU2D.OUT")') case(733) open(50,file='RHOU3D.OUT',form='FORMATTED') call plotu3d(50,1,rhoqmt,rhoqir) close(50) write(*,*) write(*,'("Info(rhouplot): 3D ultra long-range density plot written to & &RHOU3D.OUT")') end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/potuplot.f900000644000000000000000000000013213543334737015037 xustar0030 mtime=1569569247.156640331 30 atime=1569569244.097642285 30 ctime=1569569247.156640331 elk-6.3.2/src/potuplot.f900000644002504400250440000000346613543334737017117 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine potuplot use modmain use modulr implicit none ! local variables integer ifq,ias,is,npc ! allocatable arrays complex(8), allocatable :: zfmt(:) ! initialise universal variables call init0 call init1 ! initialise the ultra long-range variables call initulr ! read in the Kohn-Sham potential from STATE_ULR.OUT call readstulr ! convert potential to spherical harmonics allocate(zfmt(npcmtmax)) do ifq=1,nfqrz do ias=1,natmtot is=idxis(ias) npc=npcmt(is) zfmt(1:npc)=vsqmt(1:npc,ias,ifq) call zfsht(nrcmt(is),nrcmti(is),zfmt,vsqmt(:,ias,ifq)) end do end do deallocate(zfmt) ! divide the interstitial potential by the characteristic function do ifq=1,nfqrz vsqir(:,ifq)=vsqir(:,ifq)/cfunir(:) end do ! write the density plot to file select case(task) case(741) open(50,file='VSU1D.OUT',form='FORMATTED') open(51,file='VSULINES.OUT',form='FORMATTED') call plotu1d(50,51,1,vsqmt,vsqir) close(50) close(51) write(*,*) write(*,'("Info(potuplot):")') write(*,'(" 1D ultra long-range Kohn-Sham potential plot written to & &VSU1D.OUT")') write(*,'(" vertex location lines written to VSULINES.OUT")') case(742) open(50,file='VSU2D.OUT',form='FORMATTED') call plotu2d(.false.,50,1,vsqmt,vsqir) open(50) write(*,*) write(*,'("Info(potuplot):")') write(*,'(" 2D ultra long-range Kohn-Sham potential plot written to & &VSU2D.OUT")') case(743) open(50,file='VSU3D.OUT',form='FORMATTED') call plotu3d(50,1,vsqmt,vsqir) close(50) write(*,*) write(*,'("Info(potuplot):")') write(*,'(" 3D ultra long-range Kohn-Sham potential plot written to & &VSU3D.OUT")') end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/rhocoreu.f900000644000000000000000000000013213543334737014777 xustar0030 mtime=1569569247.160640328 30 atime=1569569244.101642282 30 ctime=1569569247.160640328 elk-6.3.2/src/rhocoreu.f900000644002504400250440000000225713543334737017054 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine rhocoreu use modmain use modulr use modomp implicit none ! local variables integer is,ias,ir,i integer nrc,nrci,irc integer npc,n,nthd real(8) t1 ! allocatable arrays real(8), allocatable :: rfmt(:,:) ! generate the core density in spherical coordinates allocate(rfmt(npcmtmax,natmtot)) do ias=1,natmtot is=idxis(ias) nrc=nrcmt(is) nrci=nrcmti(is) n=lmmaxi-1 ir=1 i=1 do irc=1,nrci t1=rhocr(ir,ias,1)*y00 rfmt(i:i+n,ias)=t1 ir=ir+lradstp i=i+lmmaxi end do n=lmmaxo-1 do irc=nrci+1,nrc t1=rhocr(ir,ias,1)*y00 rfmt(i:i+n,ias)=t1 ir=ir+lradstp i=i+lmmaxo end do end do ! add to the ultra long-range density call holdthd(nqpt,nthd) !$OMP PARALLEL DO DEFAULT(SHARED) & !$OMP PRIVATE(ias,is,npc) & !$OMP NUM_THREADS(nthd) do ir=1,nqpt do ias=1,natmtot is=idxis(ias) npc=npcmt(is) rhormt(1:npc,ias,ir)=rhormt(1:npc,ias,ir)+rfmt(1:npc,ias) end do end do !$OMP END PARALLEL DO call freethd(nthd) deallocate(rfmt) return end subroutine elk-6.3.2/src/PaxHeaders.21352/maguplot.f900000644000000000000000000000013213543334737015001 xustar0030 mtime=1569569247.165640325 30 atime=1569569244.106642279 30 ctime=1569569247.165640325 elk-6.3.2/src/maguplot.f900000644002504400250440000000271213543334737017052 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine maguplot use modmain use modulr implicit none ! initialise universal variables call init0 call init1 ! initialise the ultra long-range variables call initulr ! read in the magnetisation from STATE_ULR.OUT call readstulr ! write the magnetisation plot to file select case(task) case(771) open(50,file='MAGU1D.OUT',form='FORMATTED') open(51,file='MAGULINES.OUT',form='FORMATTED') call plotu1d(50,51,ndmag,magqmt,magqir) close(50) close(51) write(*,*) write(*,'("Info(maguplot):")') write(*,'(" 1D ultra long-range magnetisation plot written to MAGU1D.OUT")') write(*,'(" vertex location lines written to MAGULINES.OUT")') case(772) open(50,file='MAGU2D.OUT',form='FORMATTED') call plotu2d(.true.,50,ndmag,magqmt,magqir) close(50) write(*,*) write(*,'("Info(maguplot): 2D ultra long-range magnetisation plot written to & &MAGU2D.OUT")') if (ndmag.eq.3) then write(*,'(" Note that the 3D vector field has been locally projected")') write(*,'(" onto the 2D plotting plane axes")') end if case(773) open(50,file='MAGU3D.OUT',form='FORMATTED') call plotu3d(50,ndmag,magqmt,magqir) close(50) write(*,*) write(*,'("Info(maguplot): 3D ultra long-range magnetisation plot written to & &MAGU3D.OUT")') end select return end subroutine elk-6.3.2/src/PaxHeaders.21352/writevclr.f900000644000000000000000000000013213543334737015172 xustar0030 mtime=1569569247.169640322 30 atime=1569569244.111642276 30 ctime=1569569247.169640322 elk-6.3.2/src/writevclr.f900000644002504400250440000000145313543334737017244 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine writevclr use modmain use modulr implicit none ! local variables integer i1,i2,i3,ir ! allocatable arrays real(8), allocatable :: vclr(:) allocate(vclr(nqpt)) ! Fourier transform external Coulomb potential from Q-space to real-space call rzfftifc(3,ngridq,1,vclr,vclq) ! write the real-space potential to file open(50,file='VCLR.OUT',form='FORMATTED') write(50,'(3I6," : grid size")') ngridq ir=0 do i3=1,ngridq(3) do i2=1,ngridq(2) do i1=1,ngridq(1) ir=ir+1 write(50,'(3I6,G18.10)') i1,i2,i3,vclr(ir) end do end do end do close(50) deallocate(vclr) return end subroutine elk-6.3.2/src/PaxHeaders.21352/readvclr.f900000644000000000000000000000013013543334737014751 xustar0029 mtime=1569569247.17364032 30 atime=1569569244.115642273 29 ctime=1569569247.17364032 elk-6.3.2/src/readvclr.f900000644002504400250440000000246213543334737017026 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 T. Mueller, J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine readvclr use modmain use modulr implicit none ! local variables integer i1,i2,i3,ir integer ngridq_(3),i1_,i2_,i3_ ! allocatable arrays real(8), allocatable :: vclr(:) allocate(vclr(nqpt)) ! read the real-space external Coulomb potential from file open(50,file='VCLR.OUT',form='FORMATTED') read(50,*) ngridq_(:) if (any(ngridq(:).ne.ngridq_(:))) then write(*,*) write(*,'("Error(readvclr): differing ngridq")') write(*,'(" current : ",3I6)') ngridq write(*,'(" VCLR.OUT : ",3I6)') ngridq_ write(*,*) stop end if ir=0 do i3=1,ngridq(3) do i2=1,ngridq(2) do i1=1,ngridq(1) ir=ir+1 read(50,*) i1_,i2_,i3_,vclr(ir) if ((i1.ne.i1_).or.(i2.ne.i2_).or.(i3.ne.i3_)) then write(*,*) write(*,'("Error(readvclr): differing i1, i2 or i3")') write(*,'(" current : ",3I6)') i1,i2,i3 write(*,'(" VCLR.OUT : ",3I6)') i1_,i2_,i3_ write(*,*) stop end if end do end do end do close(50) ! Fourier transform external Coulomb potential from real-space to Q-space call rzfftifc(3,ngridq,-1,vclr,vclq) deallocate(vclr) return end subroutine elk-6.3.2/src/PaxHeaders.21352/initw90.f900000644000000000000000000000013113543334737014453 xustar0030 mtime=1569569247.177640317 29 atime=1569569244.12064227 30 ctime=1569569247.177640317 elk-6.3.2/src/initw90.f900000644002504400250440000000320213543334737016520 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin and Lars Nordstrom. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. !BOP ! !ROUTINE: initw90 ! !INTERFACE: subroutine initw90 ! !USES: use modmain use modw90 ! !DESCRIPTION: ! Initialises global variables for the Wannier90 interface. ! ! !REVISION HISTORY: ! Created November 2018 (Arsenii Gerasimov) !EOP !BOC implicit none ! local variables integer ik,ist,i ! initialise universal variables call init0 call init1 if (num_bands.gt.nstsv) then write(*,*) write(*,'("Error(initw90): num_bands > nstsv : ",2I8)') num_bands,nstsv write(*,*) stop end if ! if num_bands is not positive then assume all states are used if (num_bands.le.0) then if (allocated(idxw90)) deallocate(idxw90) allocate(idxw90(nstsv)) do ist=1,nstsv idxw90(ist)=ist end do num_bands=nstsv end if ! check that each state index is in range do i=1,num_bands ist=idxw90(i) if ((ist.lt.1).or.(ist.gt.nstsv)) then write(*,*) write(*,'("Error(initw90): state index out of range : ",I8)') ist write(*,*) stop end if end do ! set the number of Wannier functions equal to the number of states if required if (num_wann.le.0) num_wann=num_bands ! read density and potentials from file call readstate ! read Fermi energy from file call readfermi ! find the new linearisation energies call linengy ! generate the APW and local-orbital radial functions and integrals call genapwlofr ! read in the second-variational eigenvalues do ik=1,nkpt call getevalsv(filext,ik,vkl(:,ik),evalsv(:,ik)) end do return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writew90.f900000644000000000000000000000013213543334737014643 xustar0030 mtime=1569569247.181640315 30 atime=1569569244.125642267 30 ctime=1569569247.181640315 elk-6.3.2/src/writew90.f900000644002504400250440000000107013543334737016710 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin ! and Lars Nordstrom. This file is distributed under the terms of the GNU ! General Public License. See the file COPYING for license details. subroutine writew90 use modmain use modw90 implicit none ! initialise universal and Wannier90 variables call initw90 ! write the .win file call writew90win ! write the .eig file call writew90eig ! call the Wannier90 setup routine call setupw90 ! write the .mmn file call writew90mmn ! write the .spn file call writew90spn return end subroutine elk-6.3.2/src/PaxHeaders.21352/writew90win.f900000644000000000000000000000013213543334737015361 xustar0030 mtime=1569569247.185640312 30 atime=1569569244.130642264 30 ctime=1569569247.185640312 elk-6.3.2/src/writew90win.f900000644002504400250440000000376513543334737017443 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin ! and Lars Nordstrom. This file is distributed under the terms of the GNU ! General Public License. See the file COPYING for license details. !BOP ! !ROUTINE: writew90win ! !INTERFACE: subroutine writew90win ! !USES: use modmain use modw90 ! !DESCRIPTION: ! Writes out a template {\tt seedname.win} file with the Wannier90 input ! parameters. Uses {\tt wannier} and {\tt wannierExtra} blocks. ! ! !REVISION HISTORY: ! Created January 2015 (Manh Duc Le) ! Modified, August 2018 (Arsenii Gerasimov) ! Modified, February 2019 (JKD) !EOP !BOC implicit none ! local variables integer ik,is,ia,i character(256) fname fname=trim(seedname)//'.win' open(50,file=trim(fname),action='WRITE',form='FORMATTED') ! write the number of Wannier functions and bands write(50,'("length_unit = bohr")') write(50,'("num_wann = ",I8)') num_wann write(50,'("num_bands = ",I8)') num_bands write(50,'("num_iter = ",I8)') num_iter write(50,*) write(50,'("use_bloch_phases = true")') ! write spinors if required if (spinpol) then write(50,*) write(50,'("spinors = true")') write(50,'("spn_formatted = true")') end if ! write lattice vectors write(50,*) write(50,'("begin unit_cell_cart")') write(50,'("bohr")') write(50,'(3G18.10)') avec(:,1) write(50,'(3G18.10)') avec(:,2) write(50,'(3G18.10)') avec(:,3) write(50,'("end unit_cell_cart")') ! writes atomic positions write(50,*) write(50,'("begin atoms_frac")') do is=1,nspecies do ia=1,natoms(is) write(50,'(A5,3G18.10)') trim(spsymb(is)),atposl(:,ia,is) end do end do write(50,'("end atoms_frac")') ! write the list of k-points write(50,*) write(50,'("mp_grid = ",3I6)') ngridk write(50,*) write(50,'("begin kpoints")') do ik=1,nkptnr write(50,'(3G18.10)') vkl(:,ik) end do write(50,'("end kpoints")') write(50,*) ! write the extra lines do i=1,nxlwin write(50,'(A)') trim(xlwin(i)) end do close(50) write(*,*) write(*,'("Info(writew90win): created file ",A)') trim(fname) return end subroutine !EOC elk-6.3.2/src/PaxHeaders.21352/writew90eig.f900000644000000000000000000000013113543334737015327 xustar0030 mtime=1569569247.190640309 29 atime=1569569244.13564226 30 ctime=1569569247.190640309 elk-6.3.2/src/writew90eig.f900000644002504400250440000000142613543334737017402 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin ! and Lars Nordstrom. This file is distributed under the terms of the GNU ! General Public License. See the file COPYING for license details. subroutine writew90eig use modmain use modw90 implicit none ! local variables integer ik,jk,ist,i real(8) t1 character(256) fname fname=trim(seedname)//'.eig' open(50,file=trim(fname),action='WRITE',form='FORMATTED') ! loop over non-reduced k-points do ik=1,nkptnr ! equivalent reduced k-point jk=ivkik(ivk(1,ik),ivk(2,ik),ivk(3,ik)) do i=1,num_bands ist=idxw90(i) t1=evalsv(ist,jk)-efermi write(50,'(2I6,G18.10)') i,ik,t1*ha_ev end do end do close(50) write(*,*) write(*,'("Info(writew90eig): created file ",A)') trim(fname) return end subroutine elk-6.3.2/src/PaxHeaders.21352/setupw90.f900000644000000000000000000000013213543334737014651 xustar0030 mtime=1569569247.194640306 30 atime=1569569244.139642258 30 ctime=1569569247.194640306 elk-6.3.2/src/setupw90.f900000644002504400250440000000356613543334737016732 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin ! and Lars Nordstrom. This file is distributed under the terms of the GNU ! General Public License. See the file COPYING for license details. subroutine setupw90 use modmain use modw90 implicit none ! local variables integer is,ia,ias real(8) real_lattice(3,3),recip_lattice(3,3) ! allocatable arrays integer, allocatable :: proj_l(:),proj_m(:),proj_radial(:),proj_s(:) integer, allocatable :: exclude_bands(:) real(8), allocatable :: atoms_cart(:,:),proj_site(:,:) real(8), allocatable :: proj_z(:,:),proj_x(:,:) real(8), allocatable :: proj_zona(:),proj_s_qaxis(:,:) character(256), allocatable :: atom_symbols(:) ! allocate global arrays if (allocated(nnlist)) deallocate(nnlist) allocate(nnlist(nkptnr,num_nnmax)) if (allocated(nncell)) deallocate(nncell) allocate(nncell(3,nkptnr,num_nnmax)) ! allocate local arrays allocate(proj_l(num_bands),proj_m(num_bands)) allocate(proj_radial(num_bands),proj_s(num_bands)) allocate(exclude_bands(num_bands)) allocate(atoms_cart(3,natmtot),proj_site(3,num_bands)) allocate(proj_z(3,num_bands),proj_x(3,num_bands)) allocate(proj_zona(num_bands),proj_s_qaxis(3,num_bands)) allocate(atom_symbols(natmtot)) real_lattice=br_ang*transpose(avec) recip_lattice=(1.d0/br_ang)*transpose(bvec) do ias=1,natmtot is=idxis(ias) ia=idxia(ias) atom_symbols(ias)=trim(spsymb(is)) atoms_cart(:,ias)=br_ang*atposc(:,ia,is) end do call wannier_setup(seedname,ngridk,nkptnr,real_lattice,recip_lattice,vkl, & num_bands,natmtot,atom_symbols,atoms_cart,.false.,spinpol,nntot,nnlist, & nncell,num_bands,num_wann,proj_site,proj_l,proj_m,proj_radial,proj_z,proj_x, & proj_zona,exclude_bands,proj_s,proj_s_qaxis) deallocate(proj_l,proj_m) deallocate(proj_radial,proj_s,exclude_bands) deallocate(atoms_cart,proj_site,proj_z,proj_x) deallocate(proj_zona,proj_s_qaxis,atom_symbols) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writew90mmn.f900000644000000000000000000000013213543334737015353 xustar0030 mtime=1569569247.198640304 30 atime=1569569244.144642255 30 ctime=1569569247.198640304 elk-6.3.2/src/writew90mmn.f900000644002504400250440000000534413543334737017430 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin ! and Lars Nordstrom. This file is distributed under the terms of the GNU ! General Public License. See the file COPYING for license details. subroutine writew90mmn use modmain use modw90 implicit none ! local variables integer ik,jk,ist,jst,i integer ngp(nspnfv),ngpq(nspnfv) real(8) vl(3),vc(3),q real(8) vkql(3),t1 character(256) fname ! automatic arrays complex(8) ylmq(lmmaxo),sfacq(natmtot) ! allocatable arrays integer, allocatable :: igpig(:,:),igpqig(:,:) real(8), allocatable :: jlqr(:,:) complex(8), allocatable :: wfmt(:,:,:,:),wfir(:,:,:) complex(8), allocatable :: wfmtq(:,:,:,:),wfgpq(:,:,:) complex(8), allocatable :: expqmt(:,:),oq(:,:) ! find the maximum size of the spherical Bessel function array over all species call findnjcmax ! allocate local arrays allocate(igpig(ngkmax,nspnfv),igpqig(ngkmax,nspnfv)) allocate(jlqr(njcmax,nspecies)) allocate(wfmt(npcmtmax,natmtot,nspinor,num_bands)) allocate(wfir(ngtot,nspinor,num_bands)) allocate(wfmtq(npcmtmax,natmtot,nspinor,num_bands)) allocate(wfgpq(ngkmax,nspinor,num_bands)) allocate(expqmt(npcmtmax,natmtot)) allocate(oq(num_bands,num_bands)) fname=trim(seedname)//'.mmn' open(50,file=trim(fname),action='WRITE',form='FORMATTED') write(50,'("Generated by Elk version ",I1.1,".",I1.1,".",I2.2)') version write(50,'(3I8)') num_bands,nkptnr,nntot t1=sqrt(omega) do ik=1,nkptnr call genwfsvp(.false.,.false.,num_bands,idxw90,ngridg,igfft,vkl(:,ik),ngp, & igpig,wfmt,ngtot,wfir) ! multiply the interstitial wavefunction by sqrt(omega) wfir(:,:,:)=t1*wfir(:,:,:) do i=1,nntot jk=nnlist(ik,i) ! q-vector in lattice coordinates vl(:)=dble(nncell(:,ik,i))+vkl(:,jk)-vkl(:,ik) ! q-vector in Cartesian coordinates call r3mv(bvec,vl,vc) ! q-vector length q=sqrt(vc(1)**2+vc(2)**2+vc(3)**2) ! generate phase factor function exp(iq.r) in the muffin-tins call genjlgpr(1,q,jlqr) call genylmv(lmaxo,vc,ylmq) call gensfacgp(1,vc,1,sfacq) call genexpmt(1,jlqr,ylmq,1,sfacq,expqmt) ! k+q-vector in lattice coordinates vkql(:)=vkl(:,ik)+vl(:) ! generate the wavefunctions at k+q call genwfsvp(.false.,.true.,num_bands,idxw90,ngridg,igfft,vkql,ngpq, & igpqig,wfmtq,ngkmax,wfgpq) ! determine the overlap matrix call genolpq(num_bands,expqmt,ngpq,igpqig,wfmt,wfir,wfmtq,wfgpq,oq) ! write overlap matrix to file write(50,'(5I8)') ik,jk,nncell(:,ik,i) do jst=1,num_bands do ist=1,num_bands write(50,'(2G18.10)') dble(oq(jst,ist)),-aimag(oq(jst,ist)) end do end do end do end do close(50) write(*,*) write(*,'("Info(writew90mmn): created file ",A)') trim(fname) deallocate(igpig,igpqig,jlqr) deallocate(wfmt,wfir,wfmtq,wfgpq) deallocate(expqmt,oq) return end subroutine elk-6.3.2/src/PaxHeaders.21352/writew90spn.f900000644000000000000000000000013213543334737015364 xustar0030 mtime=1569569247.203640301 30 atime=1569569244.149642251 30 ctime=1569569247.203640301 elk-6.3.2/src/writew90spn.f900000644002504400250440000000234313543334737017435 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 Manh Duc Le, 2017-18 Arsenii Gerasimov, Yaroslav Kvashnin ! and Lars Nordstrom. This file is distributed under the terms of the GNU ! General Public License. See the file COPYING for license details. subroutine writew90spn use modmain use modw90 implicit none ! local variables integer ik,ist,jst,i,j complex(8) z1 character(256) fname ! allocatable arrays complex(8), allocatable :: smat(:,:,:,:) if (.not.spinpol) return fname=trim(seedname)//'.spn' open(50,file=trim(fname),action='WRITE',form='FORMATTED') write(50,'("Generated by Elk version ",I1.1,".",I1.1,".",I2.2)') version write(50,'(3I8)') num_bands,nkptnr allocate(smat(2,2,nstsv,nstsv)) do ik=1,nkptnr ! generate the spin operator matrix elements call gensmatk(vkl(:,ik),smat) do j=1,num_bands jst=idxw90(j) do i=1,j ist=idxw90(i) z1=smat(1,2,ist,jst)+smat(2,1,ist,jst) write(50,'(2G18.10)') z1 z1=smat(2,1,ist,jst)-smat(1,2,ist,jst) z1=cmplx(-aimag(z1),dble(z1),8) write(50,'(2G18.10)') z1 z1=smat(1,1,ist,jst)-smat(2,2,ist,jst) write(50,'(2G18.10)') z1 end do end do end do deallocate(smat) close(50) write(*,*) write(*,'("Info(writew90spn): created file ",A)') trim(fname) return end subroutine elk-6.3.2/src/PaxHeaders.21352/putephmat.f900000644000000000000000000000013213543334737015160 xustar0030 mtime=1569569247.206640299 30 atime=1569569244.154642248 30 ctime=1569569247.206640299 elk-6.3.2/src/putephmat.f900000644002504400250440000000166413543334737017236 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 Chung-Yu Wang, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine putephmat(iq,ik,ephmat) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq,ik complex(8), intent(in) :: ephmat(nstsv,nstsv,nbph) ! local variables integer recl,n,i ! determine the record length inquire(iolength=recl) vql(:,1),vkl(:,1),nstsv,nbph,ephmat ! record number n=(iq-1)*nkptnr+ik !$OMP CRITICAL(u240) do i=1,2 open(240,file='EPHMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl, & err=10) write(240,rec=n,err=10) vql(:,iq),vkl(:,ik),nstsv,nbph,ephmat close(240) exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(putephmat): unable to write to EPHMAT.OUT")') write(*,*) stop end if close(240) end do !$OMP END CRITICAL(u240) return end subroutine elk-6.3.2/src/PaxHeaders.21352/getephmat.f900000644000000000000000000000013213543334737015127 xustar0030 mtime=1569569247.211640296 30 atime=1569569244.157642246 30 ctime=1569569247.211640296 elk-6.3.2/src/getephmat.f900000644002504400250440000000377413543334737017211 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 Chung-Yu Wang, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine getephmat(iq,ik,ephmat) use modmain use modphonon implicit none ! arguments integer, intent(in) :: iq,ik complex(8), intent(out) :: ephmat(nstsv,nstsv,nbph) ! local variables integer recl,n,i integer nstsv_,nbph_ real(8) vql_(3),vkl_(3),t1 ! find the record length inquire(iolength=recl) vql_(:),vkl_(:),nstsv_,nbph_,ephmat ! record number n=(iq-1)*nkptnr+ik !$OMP CRITICAL(u240) do i=1,2 open(240,file='EPHMAT.OUT',form='UNFORMATTED',access='DIRECT',recl=recl, & err=10) read(240,rec=n,err=10) vql_,vkl_,nstsv_,nbph_,ephmat exit 10 continue if (i.eq.2) then write(*,*) write(*,'("Error(getephmat): unable to read from EPHMAT.OUT")') write(*,*) stop end if close(240) end do !$OMP END CRITICAL(u240) t1=abs(vql(1,iq)-vql_(1))+abs(vql(2,iq)-vql_(2))+abs(vql(3,iq)-vql_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getephmat): differing vectors for q-point ",I8)') iq write(*,'(" current : ",3G18.10)') vql(:,iq) write(*,'(" EPHMAT.OUT : ",3G18.10)') vql_ write(*,*) stop end if t1=abs(vkl(1,ik)-vkl_(1))+abs(vkl(2,ik)-vkl_(2))+abs(vkl(3,ik)-vkl_(3)) if (t1.gt.epslat) then write(*,*) write(*,'("Error(getephmat): differing vectors for k-point ",I8)') ik write(*,'(" current : ",3G18.10)') vkl(:,ik) write(*,'(" EPHMAT.OUT : ",3G18.10)') vkl_ write(*,*) stop end if if (nstsv.ne.nstsv_) then write(*,*) write(*,'("Error(getephmat): differing nstsv for q-point, k-point ",2I8)') & iq,ik write(*,'(" current : ",I8)') nstsv write(*,'(" EPHMAT.OUT : ",I8)') nstsv_ write(*,*) stop end if if (nbph.ne.nbph_) then write(*,*) write(*,'("Error(getephmat): differing nbph for q-point, k-point ",2I8)') & iq,ik write(*,'(" current : ",I8)') nbph write(*,'(" EPHMAT.OUT : ",I8)') nbph_ write(*,*) stop end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/gndsteph.f900000644000000000000000000000013213543334737014765 xustar0030 mtime=1569569247.215640293 30 atime=1569569244.162642243 30 ctime=1569569247.215640293 elk-6.3.2/src/gndsteph.f900000644002504400250440000000324713543334737017042 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 Chung-Yu Wang, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine gndsteph use modmain use modmpi use modomp implicit none ! local variables integer ik ! initialise universal variables call init0 call init1 call readstate call genvsig call gencore call readfermi call linengy call genapwlofr call gensocfr call genevfsv call occupy ! begin the self-consistent loop if (mp_mpi) then ! open EPH_INFO.OUT file open(60,file='EPH_INFO.OUT',form='FORMATTED') write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop started |")') write(60,'("+------------------------------+")') end if do iscl=1,maxscl if (mp_mpi) then write(60,*) write(60,'("+--------------------+")') write(60,'("| Loop number : ",I4," |")') iscl write(60,'("+--------------------+")') flush(60) write(*,*) write(*,'("Info(gndsteph): self-consistent loop number : ",I4)') iscl end if ! loop over k-points do ik=1,nkpt call eveqneph(ik) end do if (iscl.ge.maxscl) then if (mp_mpi) then write(60,*) write(60,'("Reached self-consistent loops maximum")') end if tlast=.true. end if ! reset the OpenMP thread variables call omp_reset end do 10 continue if (mp_mpi) then write(60,*) write(60,'("+------------------------------+")') write(60,'("| Self-consistent loop stopped |")') write(60,'("+------------------------------+")') ! close the EPH_INFO.OUT file close(60) end if ! synchronise MPI processes call mpi_barrier(mpicom,ierror) return end subroutine elk-6.3.2/src/PaxHeaders.21352/eveqneph.f900000644000000000000000000000013213543334737014764 xustar0030 mtime=1569569247.219640291 30 atime=1569569244.166642241 30 ctime=1569569247.219640291 elk-6.3.2/src/eveqneph.f900000644002504400250440000000047613543334737017042 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2019 Chung-Yu Wang, J. K. Dewhurst, S. Sharma and ! E. K. U. Gross. This file is distributed under the terms of the GNU General ! Public License. See the file COPYING for license details. subroutine eveqneph(ik) use modmain implicit none ! arguments integer, intent(in) :: ik return end subroutine elk-6.3.2/src/PaxHeaders.21352/Makefile0000644000000000000000000000013213543334734014266 xustar0030 mtime=1569569244.172642237 30 atime=1569569244.170642238 30 ctime=1569569244.172642237 elk-6.3.2/src/Makefile0000644002504400250440000003115413543334734016341 0ustar00dewhurstdewhurst00000000000000 include ../make.inc # modules SRC_modules = modmain.f90 $(SRC_MPI) modmpi.f90 $(SRC_libxc) \ modxcifc.f90 modfxcifc.f90 moddftu.f90 modrdm.f90 modphonon.f90 modscdft.f90 \ modtest.f90 modrandom.f90 modstore.f90 modpw.f90 modvars.f90 modtddft.f90 \ modgw.f90 modulr.f90 modjx.f90 $(SRC_OMP) modomp.f90 $(SRC_MKL) mkl_init.f90 \ $(SRC_OBLAS) oblas_init.f90 $(SRC_BLIS) blis_init.f90 $(SRC_W90S) modw90.f90 # Elk program SRC_elk = elk.f90 # main subroutines and functions SRC_main0 = \ zbsht.f90 zfsht.f90 rbsht.f90 rfsht.f90 projsbf.f90 fsmooth.f90 nfftifc.f90 \ rfinp.f90 splint.f90 spline.f90 wsplint.f90 wsplintp.f90 splintwp.f90 \ sphcover.f90 r3frac.f90 genvsig.f90 gencfun.f90 zfpack.f90 addlorbcnd.f90 \ rfint.f90 sortidx.f90 gengkvec.f90 pade.f90 pades.f90 rfint0.f90 zfinp.f90 \ symrvf.f90 genapwfr.f90 rfcopy.f90 rhomagsh.f90 genylmg.f90 olpaa.f90 \ readfermi.f90 factr.f90 writechg.f90 zflmconj.f90 rminv.f90 zminv.f90 SRC_main1 = \ rlmrot.f90 rotrflm.f90 ztorflm.f90 rotzflm.f90 \ rfmtlm.f90 genzrm.f90 gensfacgp.f90 zmctmu.f90 zmctm.f90 hmlfv.f90 olpfv.f90 \ axangsu2.f90 checkmt.f90 symrf.f90 z2mm.f90 z2mctm.f90 z2mmct.f90 \ writefermi.f90 findnjcmax.f90 findscq.f90 plot1d.f90 plot2d.f90 plot3d.f90 \ hmllolo.f90 olprad.f90 occupy.f90 findkpt.f90 zfmtint.f90 rotrfmt.f90 \ forcek.f90 eveqnfvr.f90 findsym.f90 genvbmatk.f90 wigner3jf.f90 wigner6j.f90 \ mixbroyden.f90 zftrf.f90 gensocfr.f90 getcfgq.f90 wigner3j.f90 moke.f90 \ sfacinit.f90 sfacrho.f90 sfacmag.f90 gradwfcr2.f90 symrvfmt.f90 oepmain.f90 \ oepresk.f90 oepvcl.f90 oepvclk.f90 dbxcplot.f90 writehmlbse.f90 hmldbse.f90 \ hmldbsek.f90 dielectric_bse.f90 genidxbse.f90 writeevbse.f90 genwfpw.f90 \ writewfpw.f90 getwfpw.f90 genexpmat.f90 elnes.f90 potefield.f90 eulerrot.f90 \ fermisurfbxsf.f90 symmetry.f90 findsymcrys.f90 findsymsite.f90 plotpt1d.f90 \ writedos.f90 findprimcell.f90 proj2d.f90 nonlinopt.f90 vecplot.f90 \ wfcrplot.f90 energykncr.f90 eveqnss.f90 gendmatk.f90 gensdmat.f90 ggamt_1.f90 \ ggair_1.f90 ggamt_sp_1.f90 ggair_sp_1.f90 ggamt_2a.f90 ggair_2a.f90 \ ggamt_2b.f90 ggair_2b.f90 ggamt_sp_2a.f90 ggair_sp_2a.f90 ggamt_sp_2b.f90 \ ggair_sp_2b.f90 genspecies.f90 writeemd.f90 writeexpmat.f90 rotdmat.f90 \ hrmdmat.f90 reademd.f90 emdplot.f90 rfhkintp.f90 emdplot3d.f90 emdplot2d.f90 \ emdplot1d.f90 plotpt3d.f90 plotpt2d.f90 writeevsp.f90 torque.f90 ssfsmjx.f90 \ wxcplot.f90 effmass.f90 genlmirep.f90 ssfext.f90 sstask.f90 spiralsc.f90 \ genscss.f90 genfspecies.f90 writespecies.f90 exxengy.f90 exxengyk.f90 \ xc_c_tb09.f90 elfplot.f90 potplot.f90 mae.f90 writestate.f90 readstate.f90 \ rotaxang.f90 axangrot.f90 dmatls.f90 gendmat.f90 numlist.f90 sbesseldm.f90 \ genvchi0.f90 genspchi0.f90 vclcore.f90 hmlxbse.f90 hmlxbsek.f90 genvmatk.f90 \ writeepsinv.f90 putepsinv.f90 curden.f90 curdenk.f90 hflocal.f90 \ dielectric.f90 bdipole.f90 roteuler.f90 lopzflm.f90 eveqnfvz.f90 rhomag.f90 \ hmlaa.f90 hmlalo.f90 gencore.f90 gentau.f90 gentauk.f90 hmlistl.f90 \ olpistl.f90 gengclg.f90 hmlrad.f90 rhonorm.f90 rfmtsm.f90 olplolo.f90 \ genshtmat.f90 allatoms.f90 rtozflm.f90 rtozfmt.f90 gauntyry.f90 fderiv.f90 \ moment.f90 sctovec.f90 match.f90 writeinfo.f90 rfpack.f90 gaunt.f90 \ readinput.f90 ztorfmt.f90 putevecfv.f90 zfmtinp.f90 zfcmtinp.f90 \ writelinen.f90 writekpts.f90 rfmtinp.f90 brzint.f90 rhocore.f90 writelat.f90 \ mtdmin.f90 atpstep.f90 potcoul.f90 zfmtconj.f90 symrfmt.f90 putpmat.f90 \ eveqnz.f90 olpalo.f90 checkfsm.f90 rhoplot.f90 potnucl.f90 potxc.f90 erf.f90 \ gradzf.f90 writegeom.f90 linengy.f90 bandstr.f90 gengvc.f90 gengclq.f90 \ closefiles.f90 writefsm.f90 eveqn.f90 rhomagk.f90 factnm.f90 \ atom.f90 radnucl.f90 charge.f90 genrmesh.f90 genapwlofr.f90 wavefmt.f90 \ genzrho.f90 potks.f90 sbessel.f90 clebgor.f90 hermite.f90 findband.f90 \ genbs.f90 gencfrc.f90 genws.f90 chargemt.f90 gndstate.f90 addbfsm.f90 \ initoep.f90 orthevsv.f90 fermisurf.f90 findswidth.f90 gradrf.f90 dos.f90 \ gradzfmt.f90 nuclei.f90 writesym.f90 zftzf.f90 polynm.f90 rdirac.f90 \ zfmtftoc.f90 rfmtftoc.f90 gradrfmt.f90 genzvclmt.f90 getevalfv.f90 \ mixlinear.f90 gengvec.f90 putevalfv.f90 rfmtpack.f90 zfmtpack.f90 \ writestrain.f90 writeforces.f90 r3mv.f90 r3mtv.f90 r3cross.f90 r3minv.f90 \ r3mdet.f90 r3mm.f90 r3mtm.f90 r3mmt.f90 r3vo.f90 symvec.f90 curdenplot.f90 \ hartfock.f90 eveqnhf.f90 zpotclmt.f90 genlofr.f90 rfinpc.f90 eveqnit.f90 \ genzfrm.f90 gengqrf.f90 writepmat.f90 genwfsv.f90 writelsj.f90 writesf.f90 \ rzfinp.f90 genjlgprmt.f90 gridsize.f90 sphcrd.f90 writeiad.f90 \ readspecies.f90 i3mtv.f90 writeeval.f90 i3minv.f90 i3mdet.f90 genevfsv.f90 \ getpmat.f90 timesec.f90 mixpack.f90 mixerifc.f90 symmat.f90 rhoinit.f90 \ maginit.f90 rvfcross.f90 eveqnfv.f90 energynn.f90 rfinterp.f90 rfplot.f90 \ geomopt.f90 ylmroty.f90 ylmrot.f90 gcd.f90 sdelta.f90 stheta.f90 \ sdelta_mp.f90 stheta_mp.f90 sdelta_fd.f90 stheta_fd.f90 sdelta_sq.f90 \ stheta_sq.f90 sdelta_lr.f90 stheta_lr.f90 mossbauer.f90 gentpmae.f90 \ symveca.f90 massnucl.f90 wavefcr.f90 gradwf2.f90 geomplot.f90 findngkmax.f90 \ reciplat.f90 genrlmv.f90 genvmat.f90 putoccsv.f90 getoccsv.f90 curlrvf.f90 \ latvstep.f90 energy.f90 delevec.f90 rdiracint.f90 rzfmtinp.f90 genstrain.f90 \ genstress.f90 writestress.f90 rschrodint.f90 mixadapt.f90 genffacgp.f90 \ genidxlo.f90 writeengy.f90 genpmatk.f90 putevecsv.f90 getevecsv.f90 \ writegclq.f90 putevalsv.f90 genppts.f90 force.f90 vecfbz.f90 rfirsm.f90 \ gengclgq.f90 findsymlat.f90 grad2rfmt.f90 findqpt.f90 zftwfir.f90 symrfir.f90 \ symrvfir.f90 getevalsv.f90 genjlgpr.f90 init0.f90 init1.f90 init2.f90 \ init3.f90 init4.f90 genpmat.f90 putkmat.f90 getkmat.f90 genkmat.f90 \ genexpmt.f90 epsinv.f90 getevecfv.f90 zfmtctof.f90 wfplot.f90 straingkq.f90 \ symdmat.f90 genylmv.f90 nesting.f90 eveqnsv.f90 fsmbfield.f90 writeqpts.f90 \ writemom.f90 rndevsv.f90 genwfsvp.f90 genolpq.f90 gensmatk.f90 gentaucr.f90 \ potxcmt.f90 potxcir.f90 genvmmtsv.f90 zpotcoul.f90 genhvec.f90 rfmtctof.f90 \ testcheck.f90 writeefg.f90 eveqnbf.f90 zfplot.f90 SRC_main = $(SRC_main0) $(SRC_main1) SRC_EPH = \ putephmat.f90 getephmat.f90 gndsteph.f90 eveqneph.f90 SRC_ULR0 = \ writeinfou.f90 writemomrmt.f90 writeevalu.f90 chargeu.f90 SRC_ULR1 = \ writestulr.f90 eveqnulr.f90 occupyulr.f90 momentu.f90 addbfsmu.f90 \ mixpacku.f90 potuinit.f90 vclqinit.f90 writechgrmt.f90 rfzfftq.f90 \ readstulr.f90 genzvmatk.f90 genzvbmatk.f90 gndstulr.f90 genkpakq.f90 \ rhomaguk.f90 writeengyu.f90 genhmlu.f90 initulr.f90 potcoulu.f90 potksu.f90 \ potxcu.f90 rhomagq.f90 potefieldu.f90 plotulr.f90 plotu1d.f90 plotu2d.f90 \ plotu3d.f90 rhouplot.f90 potuplot.f90 rhocoreu.f90 maguplot.f90 writevclr.f90 \ readvclr.f90 SRC_ULR = $(SRC_ULR0) $(SRC_ULR1) SRC_phonon0 = \ phdelete.f90 dmatch.f90 phscdelete.f90 doccupy.f90 writedvs.f90 gengqvec.f90 \ readdyn.f90 dyntask.f90 drhomagsh.f90 gendvsig.f90 gradrhomt.f90 gendcfun.f90 SRC_phonon1 = \ dpotks.f90 dpotxc.f90 dwavefmt.f90 dhmlistl.f90 phmixpack.f90 dhmlaa.f90 \ deveqnfv.f90 dolpalo.f90 dhmlalo.f90 dhmllolo.f90 dpotcoul.f90 drhomagk.f90 \ gengvsmt.f90 dforce.f90 dhmlrad.f90 dolpistl.f90 gendwfsv.f90 dforcek.f90 \ dynqtor.f90 dynevs.f90 phonon.f90 dynrtoq.f90 hmlaaq.f90 mcmillan.f90 \ genephmat.f90 dolpaa.f90 hmlaloq.f90 olpaaq.f90 olpaloq.f90 gengkqvec.f90 \ genmcph.f90 putdevecfv.f90 getdevecfv.f90 putdevecsv.f90 getdevecsv.f90 \ phononsc.f90 genscph.f90 phdisp.f90 dynsymapp.f90 dynsym.f90 dynev.f90 \ phdos.f90 sumrule.f90 writephn.f90 phfext.f90 writegamma.f90 readgamma.f90 \ phlwidth.f90 alpha2f.f90 writelambda.f90 ephcouple.f90 eliashberg.f90 \ phscdvs.f90 readdvs.f90 readalpha2f.f90 gendsocfr.f90 SRC_phonon = $(SRC_phonon0) $(SRC_phonon1) SRC_SCDFT = \ SRC_DFTU = \ gendmatmt.f90 genveedu.f90 genvmatmt.f90 writedftu.f90 readalphadu.f90 \ fyukawa.f90 fyukawa0.f90 genfdufr.f90 energyfdu.f90 writeefdu.f90 \ zbessela.f90 zbesselb.f90 readdmatmt.f90 genfdu.f90 findlambdadu.f90 \ readfdu.f90 writetmdu.f90 writetm2du.f90 writetm3du.f90 dmtotm2.f90 \ dmtotm3.f90 tm2todm.f90 tm3todm.f90 pottm2.f90 pottm3.f90 tm2pol.f90 \ tm3pol.f90 gendmftm.f90 ftmfield.f90 writeftm.f90 SRC_RDMFT0 = \ genvclijji.f90 SRC_RDMFT1 = \ rdmft.f90 rdmdkdc.f90 rdmminc.f90 rdmvaryc.f90 rdmdedc.f90 rdmenergy.f90 \ rdmengyxc.f90 rdmwritededn.f90 rdmwriteengy.f90 rdmminn.f90 rdmvaryn.f90 \ rdmdedn.f90 rdmdexcdn.f90 genvclijjk.f90 getvclijji.f90 getvclijjk.f90 \ writevclijji.f90 writevclijjk.f90 rdmdexcdc.f90 rdmdtsdn.f90 rdmentropy.f90 \ rdmeval.f90 SRC_RDMFT = $(SRC_RDMFT0) $(SRC_RDMFT1) SRC_GW0 = \ gwrhomag.f90 gwdmat.f90 gwdmatk.f90 ksinvert.f90 gwefermi.f90 dysonr.f90 \ gwlocal.f90 gwsefm.f90 putgwsefm.f90 getgwsefm.f90 writeigw.f90 polefit.f90 SRC_GW1 = \ genwgw.f90 gwchgk.f90 gwsefmk.f90 gwspecf.f90 writegwsf.f90 acgwse.f90 \ minf_nm.f90 fmin_nm.f90 acpole.f90 zfpole.f90 gwbandstr.f90 \ gtwsum.f90 gwscrho.f90 SRC_GW = $(SRC_GW0) $(SRC_GW1) SRC_TDDFT0 = \ tddftlr.f90 potkst.f90 genhmlt.f90 timestep.f90 writetddos.f90 gentimes.f90 \ writeafpdt.f90 writetimes.f90 readtimes.f90 readafieldt.f90 SRC_TDDFT1 = \ tddft.f90 genvfxc.f90 genfxcr.f90 tdtemp.f90 writetdlsj.f90 genspfxcr.f90 \ genvfxcg.f90 tdbackup.f90 tddftsplr.f90 genspfxcg.f90 genafieldt.f90 \ writetddft.f90 dielectric_tdrt.f90 readcurrent.f90 SRC_TDDFT = $(SRC_TDDFT0) $(SRC_TDDFT1) SRC_XC = \ xc_pzca.f90 xc_pwca.f90 xc_pbe.f90 xc_am05.f90 xc_xalpha.f90 xc_wc06.f90 \ x_wc06.f90 x_pbe.f90 c_pbe.f90 c_pbe_gcor.f90 xc_vbh.f90 fxc_pwca.f90 SRC_W90 = \ initw90.f90 writew90.f90 writew90win.f90 writew90eig.f90 setupw90.f90 \ writew90mmn.f90 writew90spn.f90 SRC = $(SRC_modules) $(SRC_FFT) $(SRC_elk) $(SRC_main) $(SRC_phonon) \ $(SRC_SCDFT) $(SRC_XC) $(SRC_DFTU) $(SRC_RDMFT) $(SRC_GW) $(SRC_TDDFT) \ $(SRC_ULR) $(SRC_W90) $(SRC_EPH) OBJ = $(SRC:.f90=.o) EXE = elk #------------------------------------------------------------------------------- # Suffix rules #------------------------------------------------------------------------------- .SUFFIXES: .o .f90 .f90.o: $(F90) $(F90_OPTS) -c $< #------------------------------------------------------------------------------- # Targets #------------------------------------------------------------------------------- elk: $(OBJ) $(F90) $(F90_OPTS) -o $(EXE) $(OBJ) $(LIB_W90) $(LIB_LPK) $(LIB_FFT) \ $(LIB_libxc) $(LIB_SYS) blas: cd BLAS; $(MAKE); cp blas.a .. lapack: cd LAPACK; $(MAKE); cp lapack.a .. fft: cd fftlib; $(MAKE); cp fftlib.a .. all: blas lapack fft elk clean: rm -f *.o *.mod *~ ifc* *.gcno gmon.out *.aux *.dvi *.log \ elk.pdf *.tex *.toc $(EXE) cleanall: cd BLAS; $(MAKE) clean cd LAPACK; $(MAKE) clean cd fftlib; $(MAKE) clean $(MAKE) clean doc: rm -f elk.aux elk.bbl elk.blg elk.log elk.pdf elk.tex elk.toc elk.lst ls $(SRC_modules) $(SRC_main) $(SRC_XC) $(SRC_phonon) $(SRC_DFTU) \ $(SRC_RDMFT) $(SRC_TDDFT) > elk.lst ./protex -F -s $(SRC_elk) $$(cat elk.lst) > elk.tex pdflatex elk;pdflatex elk;pdflatex elk backup: tar -czf elk.tgz *.f90 fftlib eos spacegroup junk BLAS LAPACK \ Makefile notes.txt ../docs ../examples ../tests protex ../COPYING \ ../README elk_silhouette.pdf depend gentest genalltests \ checklist.txt rmspaces grepelk vimelk VERSION = $$(awk -F"/" '/data version/ {print $$2}' modmain.f90 | sed 's/ //g;s/,/./g') NAME = elk-$(VERSION) RELEASE = ../release/$(NAME) release: rm -rf $(RELEASE) mkdir $(RELEASE) cd BLAS; $(MAKE) clean cd LAPACK; $(MAKE) clean cd fftlib; $(MAKE) clean cd eos; $(MAKE) clean cd spacegroup; $(MAKE) clean cd ..; find . -type f -name *~ -exec rm -f {} \; cd ..; find . -type f -name gmon.out -exec rm -f {} \; cd ..; find . -type f -name RUNNING -exec rm -f {} \; mkdir $(RELEASE)/src cp -r BLAS $(RELEASE)/src cp -r LAPACK $(RELEASE)/src cp -r fftlib $(RELEASE)/src cp -r eos $(RELEASE)/src cp -r spacegroup $(RELEASE)/src cp $(SRC) Makefile protex elk_silhouette.pdf $(RELEASE)/src cp $(SRC) rmspaces grepelk vimelk $(RELEASE)/src cp mpi_stub.f90 omp_stub.f90 mkl_stub.f90 oblas_stub.f90 blis_stub.f90 w90_stub.f90 $(RELEASE)/src cp libxc_funcs.f90 libxc.f90 libxcifc.f90 libxcifc_stub.f90 $(RELEASE)/src cp zfftifc.f90 zfftifc_fftw.f90 zfftifc_mkl.f90 $(RELEASE)/src cp -r ../examples $(RELEASE) cp -r ../tests $(RELEASE) mkdir $(RELEASE)/species cp ../species/*.in $(RELEASE)/species cp -r ../utilities $(RELEASE) cp ../COPYING $(RELEASE) cp ../README $(RELEASE) cp ../release_notes.txt $(RELEASE) cp ../Makefile $(RELEASE) cp ../setup $(RELEASE) cp ../make.def $(RELEASE) $(MAKE) doc cp elk.pdf ../docs cd spacegroup;$(MAKE) doc;cp spacegroup.pdf ../../docs;$(MAKE) clean cp -r ../docs $(RELEASE) mkdir $(RELEASE)/release tar -C ../release -czf ../release/$(NAME).tgz $(NAME) cp ../docs/elk.pdf ../release cp ../docs/spacegroup.pdf ../release lines: cat $(SRC) | wc -l spaces: ./rmspaces $(SRC) vim: ./vimelk elk-6.3.2/src/PaxHeaders.21352/protex0000644000000000000000000000013213543334734014072 xustar0030 mtime=1569569244.179642232 30 atime=1569569244.175642235 30 ctime=1569569244.179642232 elk-6.3.2/src/protex0000755002504400250440000011070213543334734016145 0ustar00dewhurstdewhurst00000000000000#!/usr/bin/perl # # $Id: protex,v 1.15 2004/06/03 23:49:46 eschwab Exp $ # #BOP # # !ROUTINE: ProTeX v. 2.00 - Translates DAO Prologues to LaTeX # # !INTERFACE: # protex [-hbACFS] ] [+-nlsxf] [src_file(s)] # # !DESCRIPTION: # Perl filter to produce a \LaTeX compatible document # from a DAO Fortran source code with standard Pro\TeX # prologues. If source files are not specified it # reads from stdin; output is always to stdout. # # \noindent # {\bf Command Line Switches:} \vspace{0.2cm} # # \begin{center} # \begin{tabular}{|c|l|} \hline \hline # -h & Help mode: list command line options \\ \hline # -b & Bare mode, meaning no preamble, etc. \\ \hline # -i & internal mode: omit prologues marked !BOPI \\ \hline # +/-n & New Page for each subsection (wastes paper) \\ \hline # +/-l & Listing mode, default is prologues only \\ \hline # +/-s & Shut-up mode, i.e., ignore any code from BOC to EOC \\ \hline # +/-x & No LaTeX mode, i.e., put !DESCRIPTION: in verbatim mode \\ \hline # +/-f & No source file info \\ \hline # -A & Ada code \\ \hline # -C & C++ code \\ \hline # -F & F90 code (default) \\ \hline # -S & Shell script \\ \hline \hline # \end{tabular} # \end{center} # # The options can appear in any order. The options, -h and -b, affect # the input from all files listed on command-line input. Each of the # remaining options effects only the input from the files listed after # the option and prior to any overriding option. The plus sign # turns off the option. For example, the command-line input, # \bv # protex -bnS File1 -F File2.f +n File3.f # \ev # will cause the option, {\tt -n} to affect the input from the files, # {\tt File} and {\tt File2.f}, but not from {\tt File3.f}. The # {\tt -S} option is implemented for {\tt File1} but is overridden by # the {\tt -F} for files {\tt File2.f} and {\tt File3.f}. # # # !SEE ALSO: # For a more detailed description of ProTeX functionality, # DAO Prologue and other conventions, consult: # # Sawyer, W., and A. da Silva, 1997: ProTeX: A Sample # Fortran 90 Source Code Documentation System. # DAO Office Note 97-11 # # # !REVISION HISTORY: # # 20Dec1995 da Silva First experimental version # 10Nov1996 da Silva First internal release (v1.01) # 28Jun1997 da Silva Modified so that !DESCRIPTION can appear after # !INTERFACE, and !INPUT PARAMETERS etc. changed to italics. # 02Jul1997 Sawyer Added shut-up mode # 20Oct1997 Sawyer Added support for shell scripts # 11Mar1998 Sawyer Added: file name, date in header, C, script support # 05Aug1998 Sawyer Fixed LPChang-bug-support-for-files-with-underscores # 10Oct1998 da Silva Introduced -f option for removing source file info # from subsection, etc. Added help (WS). # 06Dec1999 C. Redder Added LaTeX command "\label{sec:prologues}" just # after the beginning of the proglogue section. # 13Dec1999 C. Redder Increased flexbility in command-line # interface. The options can appear in any # order which will allow the user to implement # options for select files. # 01Feb1999 C. Redder Added \usepackage commands to preamble of latex # document to include the packages amsmath, epsfig # and hangcaption. # 10May2000 C. Redder Revised LaTeX command "\label{sec:prologues}" # to "\label{app:ProLogues}" # 10/10/2002 da Silva Introduced ARGUMENTS keyword, touch ups. # # 15Jan2003 R. Staufer Modified table of contents to print only section headers - no descriptions # # 25Feb2003 R. Staufer Added BOPI/EOPI and -i (internal) switch to provide the option of omitting prologue information from output files. # #EOP #---------------------------------------------------------------------------- # Keep this if you don't know what it does... # ------------------------------------------- $[ = 1; # set array base to 1 $, = ' '; # set output field separator $\ = "\n"; # set output record separator # Set valid options lists # ----------------------- $GlobOptions = 'hb'; # Global options (i.e for all files) $LangOptions = 'ACFS'; # Options for setting programming languages $SwOptions = 'flinsx'; # Options that can change for each input # file $RegOptions = "$GlobOptions$LangOptions"; # Scan for global options until first first # file is processed. # Scan for global options # ----------------------- $NFiles = 0; Arg: foreach $arg (@ARGV) { $option = &CheckOpts ( $arg, $RegOptions, $SwOptions ) + 1; if ( $option ) { $rc = &GetOpts ( $arg, $GlobOptions ); next Arg; } else { $NFiles++; }# end if }# end foreach # If all input arguments are options, then assume the # filename, "-", for the standard input # -------------------------------------------------- if ( $NFiles == 0 ) { push (@ARGV, "-"); } # Implement help option # --------------------- if ( $opt_h ) { &print_help(); exit(); }#end if # Optional Prologue Keywords # -------------------------- @keys = ( "!INTERFACE:", "!USES:", "!PUBLIC TYPES:", "!PRIVATE TYPES:", "!PUBLIC MEMBER FUNCTIONS:", "!PRIVATE MEMBER FUNCTIONS:", "!PUBLIC DATA MEMBERS:", "!PARAMETERS:", "!ARGUMENTS:", "!DEFINED PARAMETERS:", "!INPUT PARAMETERS:", "!INPUT/OUTPUT PARAMETERS:", "!OUTPUT PARAMETERS:", "!RETURN VALUE:", "!REVISION HISTORY:", "!BUGS:", "!SEE ALSO:", "!SYSTEM ROUTINES:", "!FILES USED:", "!REMARKS:", "!TO DO:", "!CALLING SEQUENCE:", "!AUTHOR:", "!CALLED FROM:", "!LOCAL VARIABLES:" ); # Initialize these for clarity # ---------------------------- $intro = 0; # doing introduction? $prologue = 0; # doing prologue? $first = 1; # first prologue? $source = 0; # source code mode? $verb = 0; # verbatim mode? $tpage = 0; # title page? $begdoc = 0; # has \begin{document} been written? # Initial LaTeX stuff # ------------------- &print_notice(); &print_preamble(); # \documentclass, text dimensions, etc. &print_macros(); # short-hand LaTeX macros # Main loop -- for each command-line argument # ------------------------------------------- ARG: foreach $arg (@ARGV) { # Scan for non-global command-line options # ---------------------------------------- $option = &CheckOpts ( $arg, $RegOptions, $SwOptions, "quiet" ) + 1; if ( $option ) { &GetOpts ( $arg, $SwOptions ); &SetOpt ( $arg, $LangOptions ); next ARG; }# end if # Determine the type of code, set corresponding search strings # ------------------------------------------------------------ # if ( $opt_F ) { # FORTRAN $comment_string = '!'; # ------- $boi_string = '!BOI'; $eoi_string = '!EOI'; $bop_string = '!BOP'; $eop_string = '!EOP'; $bopi_string = '!BOPI'; $eopi_string = '!EOPI'; $boc_string = '!BOC'; $eoc_string = '!EOC'; $boe_string = '!BOE'; $eoe_string = '!EOE'; #}# end if if ( $opt_A ) { # ADA $comment_string = '--'; # --- $boi_string = '--BOI'; $eoi_string = '--EOI'; $bop_string = '--BOP'; $eop_string = '--EOP'; $bopi_string = '--BOPI'; $eopi_string = '--EOPI'; $boc_string = '--BOC'; $eoc_string = '--EOC'; $boe_string = '--BOE'; $eoe_string = '--EOE'; }# end if if ( $opt_C ) { $comment_string = '//'; # C $boi_string = '//BOI'; # - $eoi_string = '//EOI'; $bop_string = '//BOP'; $eop_string = '//EOP'; $bopi_string = '//BOPI'; $eopi_string = '//EOPI'; $boc_string = '//BOC'; $eoc_string = '//EOC'; $boe_string = '//BOE'; $eoe_string = '//EOE'; }# end if if ( $opt_S ) { # Script $comment_string = '#'; # ------ $boi_string = '#BOI'; $eoi_string = '#EOI'; $bop_string = '#BOP'; $eop_string = '#EOP'; $bopi_string = '#BOPI'; $eopi_string = '#EOPI'; $boc_string = '#BOC'; $eoc_string = '#EOC'; $boe_string = '#BOE'; $eoe_string = '#EOE'; }# end if # Set file name parameters # ------------------------ $InputFile = $arg; @all_path_components = split( /\//, $InputFile ); $FileBaseName = pop ( @all_path_components ); $FileBaseName =~ s/_/\\_/g; if ( $InputFile eq "-" ) {$FileBaseName = "Standard Input";} # Set date # -------- $Date = `date`; # Open current file # ----------------- open ( InputFile, "$InputFile" ) or print STDERR "Unable to open $InputFile: $!"; # Print page header # ----------------- printf "\n\\markboth{Left}{Source File: %s, Date: %s}\n\n", $FileBaseName, $Date; LINE: # Inner loop --- for processing each line of the input file # --------------------------------------------------------- while ( ) { chop; # strip record separator # !PARAMETERS: really mean !ARGUMENTS: # ------------------------------------ # s/!PARAMETERS:/!ARGUMENTS:/g; @Fld = split(' ', $_, 9999); # Straight quote # -------------- if ($Fld[1] eq '!QUOTE:') { for ($i = 2; $i <= $#Fld; $i++) { printf '%s ', $Fld[$i]; }# end for print " "; next LINE; }# end if # Handle optional Title Page and Introduction # ------------------------------------------- if ($Fld[1] eq $boi_string) { print ' '; $intro = 1; next LINE; }# end if if ($Fld[2] eq '!TITLE:') { if ( $intro ) { shift @Fld; shift @Fld; @title = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[2] eq '!AUTHORS:') { if ( $intro ) { shift @Fld; shift @Fld; @author = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[2] eq '!AFFILIATION:') { if ( $intro ) { shift @Fld; shift @Fld; @affiliation = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[2] eq '!DATE:') { if ( $intro ) { shift @Fld; shift @Fld; @date = @Fld; $tpage = 1; next LINE; }# end if }# end if if ($Fld[2] eq '!INTRODUCTION:') { if ( $intro ) { &do_beg(); print ' '; print '%..............................................'; shift @Fld; shift @Fld; print "\\section{@Fld}"; next LINE; }# end if }# end if # End of introduction # ------------------- if ($Fld[1] eq $eoi_string) { print ' '; print '%/////////////////////////////////////////////////////////////'; print "\\newpage"; $intro = 0; next LINE; }# end if # Beginning of prologue # --------------------- if ($Fld[1] eq $bop_string) { if ( $source ) { &do_eoc(); } print ' '; print '%/////////////////////////////////////////////////////////////'; &do_beg(); if ($first == 0) { ### print "\\newpage"; print " "; print "\\mbox{}\\hrulefill\\ "; print " ";} else { unless($opt_b){print "\\section{Routine/Function Prologues} \\label{app:ProLogues}";} }# end if $first = 0; $prologue = 1; $verb = 0; $source = 0; &set_missing(); # no required keyword yet next LINE; }# end if # Beginning of internal prologue # ------------------------------ if ($Fld[1] eq $bopi_string) { if ($opt_i) {$prologue = 0;} else { if ($source) { &do_eoc(); } print ' '; print '%/////////////////////////////////////////////////////////////'; &do_beg(); if ($first ==0) { ### print "\\newpage"; print " "; print "\\mbox{}\\hrulefill\\"; print " ";} else { unless($opt_b){print "\\section{Routine/Function Prologues} \\label{app:ProLogues}";} }# endif $first = 0; $prologue = 1; $verb = 0; $source = 0; &set_missing(); # no required keyword yet next LINE; }# endelse }# endif # A new subroutine/function # ------------------------- if ($Fld[2] eq '!ROUTINE:' ) { if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" if ( $opt_n && $not_first ) { printf "\\newpage\n"; } unless ($opt_f) {printf "\\subsection{%s (Source File: %s)}\n\n", $_, $FileBaseName;} else {printf "\\subsection{%s }\n\n", $_;} $have_name = 1; $not_first = 1; next LINE; }# end if }# end if # A new Module # ------------ if ($Fld[2] eq '!MODULE:' ) { if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" if ( $opt_n && $not_first ) { printf "\\newpage\n"; } unless($opt_f) {printf "\\subsection{Fortran: Module Interface %s (Source File: %s)}\n\n", $_, $FileBaseName;} else {printf "\\subsection{Fortran: Module Interface %s }\n\n", $_;} $have_name = 1; $have_intf = 1; # fake it, it does not need one. $not_first = 1; next LINE; }# end if }# end if # A new include file # ------------------ if ($Fld[2] eq '!INCLUDE:' ) { if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" if ( $opt_n && $not_first ) { printf "\\newpage\n"; } unless($opt_f) {printf "\\subsection{Include File %s (Source File: %s)}\n\n", $_, $FileBaseName;} else {printf "\\subsection{Include File %s }\n\n", $_;} $have_name = 1; $have_intf = 1; # fake it, it does not need one. $not_first = 1; next LINE; }# end if }# end if # A new INTERNAL subroutine/function # ---------------------------------- if ($Fld[2] eq '!IROUTINE:') { # Internal routine if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" @words = split " ", $_; printf "\\subsection [$words[1]] {$_}\n\n"; $have_name = 1; next LINE; }# end if }# end if # A new CLASS # ------------ if ($Fld[2] eq '!CLASS:' ) { if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" if ( $opt_n && $not_first ) { printf "\\newpage\n"; } unless($opt_f) {printf "\\subsection{C++: Class Interface %s (Source File: %s)}\n\n", $_, $FileBaseName;} else {printf "\\subsection{C++: Class Interface %s }\n\n", $_;} $have_name = 1; $have_intf = 1; # fake it, it does not need one. $not_first = 1; next LINE; }# end if }# end if # A new Method # ------------------------- if ($Fld[2] eq '!METHOD:' ) { if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" if ( $opt_n && $not_first ) { printf "\\newpage\n"; } unless ($opt_f) {printf "\\subsection{%s (Source File: %s)}\n\n", $_, $FileBaseName;} else {printf "\\subsection{%s }\n\n", $_;} $have_name = 1; $not_first = 1; next LINE; }# end if }# end if # A new function # ------------------------- if ($Fld[2] eq '!FUNCTION:' ) { if ($prologue) { shift @Fld; shift @Fld; $_ = join(' ', @Fld); $name_is = $_; s/_/\\_/g; # Replace "_" with "\_" if ( $opt_n && $not_first ) { printf "\\newpage\n"; } unless ($opt_f) {printf "\\subsection{%s (Source File: %s)}\n\n", $_, $FileBaseName;} else {printf "\\subsection{%s }\n\n", $_;} $have_name = 1; $not_first = 1; next LINE; }# end if }# end if # Description: what follows will be regular LaTeX (no verbatim) # ------------------------------------------------------------- if (/!DESCRIPTION:/) { if ($prologue) { if ($verb) { printf "\\end{verbatim}"; printf "\n{\\sf DESCRIPTION:\\\\ }\n\n"; $verb = 0; } else { # probably never occurs }# end if if ($opt_x) { printf "\\begin{verbatim} "; $verb = 1; $first_verb = 1; } else { for ($i = 3; $i <= $#Fld; $i++) { printf '%s ', $Fld[$i]; }# end for }# end if ### print " "; $have_desc = 1; next LINE; }# end if }# end if # Handle optional keywords (these will appear as verbatim) # -------------------------------------------------------- if ($prologue) { KEY: foreach $key ( @keys ) { if ( /$key/ ) { if ($verb) { printf "\\end{verbatim}"; $verb = 0; } else { printf "\n\\bigskip"; }# end if $k = sprintf('%s', $key); $ln = length($k); ###printf "\\subsection*{%s}\n", substr($k, 2, $ln - 1); ###printf "{\\Large \\em %s}\n", ucfirst lc substr($k, 2, $ln - 1); $_ = $key; if( /USES/ || /INPUT/ || /OUTPUT/ || /PARAMETERS/ || /VALUE/ || /ARGUMENTS/ ) { printf "{\\em %s}\n", substr($k, 2, $ln - 1); } # italics else { printf "{\\sf %s}\n", substr($k, 2, $ln - 1); # san serif }# end if printf "\\begin{verbatim} "; $verb = 1; $first_verb = 1; if ( $key eq "!INTERFACE:" ) { $have_intf = 1; } if ( $key eq "!CALLING SEQUENCE:" ) { $have_intf = 1; } if ( $key eq "!REVISION HISTORY:" ) { $have_hist = 1; } next LINE; }# end if }# end foreach }# end if # End of prologue # --------------- if ($Fld[1] eq $eop_string) { if ($verb) { print "\\end{verbatim}"; $verb = 0; }# end if $prologue = 0; # &check_if_all_there(); # check if all required keywords are there. if ( $opt_l ) { $Fld[1] = $boc_string;} else { next LINE; } }# end if unless ( $opt_s ) { # End of Internal Prologue # ------------------------ if ($Fld[1] eq $eopi_string) { if ($verb) { print "\\end{verbatim}"; $verb = 0; }# endif $prologue = 0; # &check_if_all_there(); # check if all required keywords are there. if ($opt_l) { $Fld[1] = $boc_string;} else { next LINE; } }# endif # # Beginning of source code section # -------------------------------- if ($Fld[1] eq $boc_string) { print ' '; print '%/////////////////////////////////////////////////////////////'; $first = 0; $prologue = 0; $source = 1; ### printf "\\subsection*{CONTENTS:}\n\n", $Fld[3]; ###printf "{\\sf CONTENTS:}"; printf "\n \\begin{verbatim}\n"; $verb = 1; next LINE; }# end if # End of source code # ------------------ if ($Fld[1] eq $eoc_string) { &do_eoc(); $prologue = 0; next LINE; }# end if # Beginning of example prologue # ----------------------------- if ($Fld[1] eq $boe_string) { if ( $source ) { &do_eoc(); } print ' '; print '%/////////////////////////////////////////////////////////////'; $first = 0; $prologue = 1; $verb = 0; $source = 0; next LINE; }# end if # End of example prologue # ----------------------- if ($Fld[1] eq $eoe_string) { if ($verb) { print "\\end{verbatim}"; $verb = 0; }# end if $prologue = 0; if ( $opt_l ) { $Fld[1] = $boc_string;} else { next LINE; } }# end if }# end unless # Prologue or Introduction, print regular line (except for !) # ----------------------------------------------------------- if ($prologue||$intro) { if ( $verb && $#Fld == 1 && ( $Fld[1] eq $comment_string ) ) { next LINE; # to eliminate excessive blanks }# end if if ( $Fld[2] eq "\\ev" ) { # special handling $_ = $comment_string . " \\end{verbatim}"; }# end if s/^$comment_string/ /; # replace comment string with blank # $line = sprintf('%s', $_); # not necessary -- comment str is absent # $ln = length($line); # not necessary -- comment str is absent unless ( $first_verb ) { printf "\n "; } printf '%s', $_; # printf '%s', substr($line, 1, $ln - 1); # comment str is absent $first_verb = 0; next LINE; }# end if # Source code: print the full line # -------------------------------- if ($source) { print $_; next LINE; }# end if }# end inner loop for processing each line of the input file # --------------------------------------------------------- }# end main loop for each command-line argument # -------------------------------------------- print $_; if ( $source ) { &do_eoc(); } print '%...............................................................'; # see comment above where these are originally set. #print "\\setlength{\\parskip}{\\oldparskip}"; #print "\\setlength{\\parindent}{\\oldparindent}"; #print "\\setlength{\\baselineskip}{\\oldbaselineskip}"; unless ( $opt_b ) { print "\\end{document}"; }#end unless #---------------------------------------------------------------------- sub CheckOpts # Checks options against a given list. Outputs error message # for any invalid option. # # Usage: # $rc = &CheckOpts ( options, valid_reg_options, # valid_sw_options, # quiet_mode ) # # character: options - options to be checked. (e.g. -df+x) The # list must begin with a positive or # negative sign. If no sign appears at the # beginning or by itself, then the argument # is not recognized as a list of options. # character: valid_reg_options - list of valid regular options. # (i.e. options that are associated only # eith negative sign.) # character: valid_sw_options - list of valid switch options. # (i.e. options that can be associated with # either a positive or negative sign. # logical: quiet mode (optional) If true then print no error # messages. # integer: rc - return code # = -1 if the arguement, options, is # not recognized as a list of options # = 0 if all options are valid. # > 0 for the number of invalid options. # { local($options, $valid_reg_options, $valid_sw_options, $quiet_mode ) = @_; if ( $options eq "+" || $options eq "-" ) {return -1} local(@Options) = split( / */, $options ); if ( $Options[ $[ ] ne "-" && $Options[ $[ ] ne "+" ) {return -1;} local($option, $option_sign, $valid_list, $pos); local($errs) = 0; foreach $option ( @Options ) { if ( $option eq "-" || $option eq "+" ) {$option_sign = $option;} else { if ( $option_sign eq "-" ) { $valid_list = $valid_reg_options . $valid_sw_options; } else { $valid_list = $valid_sw_options; } $pos = index ($valid_list,$option); if ( $pos < $[ && $quiet_mode ) { $errs++; print STDERR "Invalid option: $option_sign$option \n"; }# end if }# end if }# end foreach return $errs; }#end sub GetOpts sub GetOpts # Gets options. If an option is valid, then opt_[option] is # set to 0 or 1 as a side effect if the option is preceeded by # a positive or negative sign. # # Usage: # $rc = &GetOpts ( options, valid_options ) # # character: options - options to be checked. (e.g. -df+x) The # list must begin with a positive or # negative sign. If no sign appears at the # beginning or by itself, then the argument # is not recognized as a list of options. # character: valid_options - list of valid options (e.g. dfhx) # integer: rc - return code # = -1 if the arguement, options, is # not recognized as a list of options. # = 0 otherwise # { local($options,$valid_options) = @_; if ( $options eq "+" || $options eq "-" ) {return -1} local(@Options) = split( / */, $options ); if ( $Options[ $[ ] ne "-" && $Options[ $[ ] ne "+" ) {return -1;} local($option, $option_sign); foreach $option ( @Options ) { if ( $option eq "-" || $option eq "+" ) { $option_sign = $option; } else { if ( index ($valid_options,$option) >= $[ ) { if ( $option_sign eq "-" ) {${"opt_$option"} = 1;} if ( $option_sign eq "+" ) {${"opt_$option"} = 0;}; }# end if }# end if }# end foreach return 0; }#end sub GetOpts sub SetOpt # Sets option flags. For the last input option that is in a # list, the flag opt_[option] is set to 1 as a side effect. # For all other options in the list, opt_[option] is set to 0. # # Usage: # $rc = &SetOpt ( options, valid_options ) # # character: options - options to be checked. (e.g. -df+x) The # list must begin with a positive or # negative sign. If no sign appears at the # beginning or by itself, then the argument # is not recognized as a list of options. # character: valid_options - list of valid options (e.g. def ) # integer: rc - return code # = -1 if the arguement, options, is # not recognized as a list of options. # = 0 otherwise # Note: For the examples provided for the input arguments, # $opt_d = 0, $opt_e = 0, and $opt_f = 1, since the # input option, -f, was the last in the argument, # option. # { local($options,$valid_options) = @_; if ( $options eq "+" || $options eq "-" ) {return -1} local(@Options) = split( / */, $options ); local(@ValidOptions) = split( / */, $valid_options ); if ( $Options[ $[ ] ne "-" && $Options[ $[ ] ne "+" ) {return -1;} local($option, $option_sign); foreach $option ( @Options ) { if ( $option ne "-" && $option ne "+" ) { if ( index ($valid_options,$option) >= $[ ) { foreach $valid_option (@ValidOptions ) { ${"opt_$valid_option"} = 0; }# end foreach ${"opt_$option"} = 1; }# end if }# end if }# end foreach return 0; }#end sub SetOpt sub print_help { print "Usage: protex [-hbACFS] [+-nlsxf] [src_file(s)]"; print " "; print " Options:"; print " -h Help mode: list command line options"; print " -b Bare mode, meaning no preamble, etc."; print " +-n New Page for each subsection (wastes paper)"; print " +-l Listing mode, default is prologues only"; print " +-s Shut-up mode, i.e., ignore any code from BOC to EOC"; print " +-x No LaTeX mode, i.e., put !DESCRIPTION: in verbatim mode"; print " +-f No source file info"; print " -A Ada code"; print " -C C++ code"; print " -F F90 code"; print " -S Shell script"; print " "; print " The options can appear in any order. The options, -h and -b,"; print " affect the input from all files listed on command-line input."; print " Each of the remaining options effects only the input from the"; print " files listed after the option and prior to any overriding"; print " option. The plus sign turns off the option."; }# end sub print_help sub print_notice { print "% **** IMPORTANT NOTICE *****" ; print "% This LaTeX file has been automatically produced by ProTeX v. 1.1"; print "% Any changes made to this file will likely be lost next time"; print "% this file is regenerated from its source. Send questions "; print "% to Arlindo da Silva, dasilva\@gsfc.nasa.gov"; print " "; }# sub print_notice sub print_preamble { unless ( $opt_b ) { print "%------------------------ PREAMBLE --------------------------"; print "\\documentclass[a4paper,11pt]{article}"; print "\\usepackage{amsmath}"; print "\\usepackage{amssymb}"; print "\\usepackage{epsfig}"; print "\\usepackage{tabularx}"; print "\\usepackage{color}"; print "\\usepackage[linkbordercolor={0 0 1}]{hyperref}"; print "\\textheight 9in"; print "\\topmargin 0pt"; print "\\headsep 1cm"; print "\\headheight 0pt"; print "\\textwidth 6in"; print "\\oddsidemargin 0in"; print "\\evensidemargin 0in"; print "\\marginparpush 0pt"; print "\\pagestyle{plain}"; print "\\markboth{}{}"; print "%-------------------------------------------------------------"; }# end unless # in your main document before you include any protex-generated files # for the first time, if you define these three variables as length # settings (like this:) # \newlength{\oldparskip} # \newlength{\oldparindent} # \newlength{\oldbaselineskip} # then 1) comment in all the lines below, and 2) find the 3 reset lines # further down and comment in them as well. # then protex will override the paragraph and skip settings during # the source sections, but will restore the original document settings # at the end. if someone can figure out how to check to see if a # latex variable exists, and do a conditional section, we could make # this fully self-contained. # nsc feb 2003 #print "\\setlength{\\oldparskip}{\\parskip}"; print "\\setlength{\\parskip}{0pt}"; #print "\\setlength{\\oldparindent}{\\parindent}"; print "\\setlength{\\parindent}{0pt}"; #print "\\setlength{\\oldbaselineskip}{\\baselineskip}"; print "\\setlength{\\baselineskip}{11pt}"; }# end sub print_preamble sub print_macros { print " "; print "%--------------------- SHORT-HAND MACROS ----------------------"; print "\\def\\bv{\\begin{verbatim}}"; print "\\def\\ev\{\\end\{verbatim}}"; print "\\def\\be{\\begin{equation}}"; print "\\def\\ee{\\end{equation}}"; print "\\def\\bea{\\begin{eqnarray}}"; print "\\def\\eea{\\end{eqnarray}}"; print "\\def\\bi{\\begin{itemize}}"; print "\\def\\ei{\\end{itemize}}"; print "\\def\\bn{\\begin{enumerate}}"; print "\\def\\en{\\end{enumerate}}"; print "\\def\\bd{\\begin{description}}"; print "\\def\\ed{\\end{description}}"; print "\\def\\({\\left (}"; print "\\def\\){\\right )}"; print "\\def\\[{\\left [}"; print "\\def\\]{\\right ]}"; print "\\def\\<{\\left \\langle}"; print "\\def\\>{\\right \\rangle}"; print "\\def\\cI{{\\cal I}}"; print "\\def\\diag{\\mathop{\\rm diag}}"; print "\\def\\tr{\\mathop{\\rm tr}}"; print "%-------------------------------------------------------------"; print " "; print "%------------------------ Elk commands -----------------------"; print "\\newcommand{\\block}[2]{"; print "\\color{blue}\\subsection{\\tt #1}\\color{black}"; print "\\begin{tabularx}{\\textwidth}[h]{|l|X|c|c|}"; print "\\hline"; print "#2 \\\\"; print "\\hline"; print "\\end{tabularx}\\vskip 0.25cm"; print "}"; print "%-------------------------------------------------------------"; }# end sub print_macros sub do_beg { unless ( $opt_b ) { if ( $begdoc == 0 ) { if ( $tpage ) { print "\\title{@title}"; print "\\author{@author\\\\ {\\em @affiliation}}"; print "\\date{@date}"; } print "\\begin{document}"; if ( $tpage ) { print "\\pagecolor[rgb]{1,0.95,0.85}"; print "\\fcolorbox{black}{white}{\\fbox{"; print "\\begin{minipage}[t]{\\linewidth}"; print "\\maketitle"; print "\\end{minipage}}}"; print "\\thispagestyle{empty}"; print "\\newpage"; print "\\pagecolor{white}"; } print "\\tableofcontents"; print "\\newpage"; $begdoc = 1; } } }# end sub do_beg sub do_eoc { print ' '; if ($verb) { print "\\end{verbatim}"; $verb = 0; } $source = 0; }# end sub do_eoc sub set_missing { $have_name = 0; # have routine name? $have_desc = 0; # have description? $have_intf = 0; # have interface? $have_hist = 0; # have revision history? $name_is = "UNKNOWN"; }# end sub set_missing sub check_if_all_there { $have_name || die "ProTeX: invalid prologue, missing !ROUTINE: or !IROUTINE: in <$name_is>"; $have_desc || die "ProTeX: invalid prologue, missing !DESCRIPTION: in <$name_is>"; $have_intf || die "ProTeX: invalid prologue, missing !INTERFACE: in <$name_is>"; $have_hist || die "ProTeX: invalid prologue, missing !REVISION HISTORY: in <$name_is>"; }# end sub check_if_all_there elk-6.3.2/src/PaxHeaders.21352/elk_silhouette.pdf0000644000000000000000000000013113543334734016340 xustar0030 mtime=1569569244.184642229 29 atime=1569569244.18364223 30 ctime=1569569244.184642229 elk-6.3.2/src/elk_silhouette.pdf0000644002504400250440000001426213543334734020415 0ustar00dewhurstdewhurst00000000000000%PDF-1.4 % 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream xm[8rߵZ,ex <~yERӃF?̒(2/Iq\Qy1^i̳׫l%RgkIzY_:7uޯu^Y<ǫ|V^IS*:1_kVPzTt]gZ #s*3EIisjB,SsqT^LCsz֕_*JS ԫCTXx׼^ZS3KΖ<oX9Zgk'<)mι?{z$Eje{7j },Mmi1lX9,QfA#C4KosI9ize ߶KxKyR Y2w ))/9*W?̹e#KªD\3l;jz˓HZJҔ#4W}MyQGk_/$Xx Wsz2JQnEM6UqWWWG+z42ϢHP(02p+MHSkoĎ|3kr9"ٌ֬_9X"}NVɝ=M~yձ5R&|y/u`6cg &?WP(耟7ސ~M b[rj#[DԔ<l4Tܡyj?9uKh}17~!ǫ6R !_mٱIM_$uu/*xdKaao<~_Szl"$[~|nTcIM^QSr@:Vބe!vw4=>婸RܫLxD> cK]!Rf$] P@uHa=|nݱ>єY9#0$lvxC 4ȒA\N&,Rgİ\ `@ yI3ILU'1m}Nv|I+q;`H ~ 8Wd3I`p;A+7ac1^VHZ!L)ĭ 5+87ѼL<#ä IzEA%E"O硰wa(8[,Yk{}غ x43:Ү֬ܔ1c8hdRP0jx+B7z; c7,(48]v4ALCN=Gҝ%nDD2"#{tvV3"Z0w_s  Ylk?rnVHb+>O='r%z[BN+PF~}2JVOldӕZ 6Ӱ: Zwܜ_$I5/>c0:n=łH].T1;dXx @;L{D JƋ?n(+q3< b٫1vN;j4{"(Q3n(?'a3'!aϷdWGJ2~{7e :2U[-zT(xy@.p\?bRT-FZ 3U-=j2wрi ^47ܗ*kh{g6i_~)_`Q0IwhjoXeV2Dܮ])m8ptPBՄ}4hfS7F=j.P=$9(܏ ߱w 4uYn Ո}IN5ZTd䎧!xܮ]cv515f,|}4BٍNTYt^ڌ!5{]L&.E $Q?mG5nB!{oEOT6~Q洒`ޤ" 2L?|BB낫K{~SLE/VsCtwU+›ZGiҮk+,9F۶\fYl=AHA&!mmY`&lEN2_}h'0Yg's4+8!;-&5m \vVSsT>|#q}{46)NfD%ѰvNZIsN2B$EQQ &C\'oT希HZry1L^@_B^;A)$F0VSs^.P.F,/LRH%M/4@$wiOMH]TVt8.XЖZC Cu*~ ɯ@%o:ScRqN:腱ܚ= R40n&ViZm(q#=au勜>ؤ|QqYo)(ݔBHNvN x^8*;SЖ%d;IŐˉLwv!rw$#tFg2s)/0PYNDU[$S8';.tAnz L%9~t{%ĤrEN8wc>q-"H(뮾8R9C8@eyiseo3dP*Ã1G%z G22)n TkQ)Dv"E&sdKR,ɂj[AL{8ōj*+jU ^q$ZP3 .}UL&K&њ& :1`1%~fuƋF?o&r /Z.C|!ʗ?$?]o+A@t9{B4:8;1`qOhm1L@s&1nAMQ)>ǩ]`AYT}e펲3nwa/(uAh*bI:)P$Hϵ bƒs]{ zhS*"p%sRthbÇ.8nagX3tY*9p|om fO(9#=WݥOUiKn'|ܟ:\?2-wnle{1PUuBNQck24ɵf.ֻK6NeHt.fǞ)m%lIW ɩgy[Uh ڳVTxgZc5s8֭ FnmLƚj6i`W:jSIt765YhZظ[ןѴu63=>(ЁG%v"VLQD~py3l g$hkƍ>,~vexU@//,4J ֨Hi+A ;PE¿G׬-7O^74|aaTeƵɛ-"ƼbgnRt?OvM>xӰ[qزGp Ao?1+&`z8"e}qp7'˓Ywk#ngD}"e$QoyV{=~;paFʰS E9Ka{at3%Tcri(dV3oeD/tyd7FC8JCd18+;ǝE)&cM~7B5ƪO 3nW[E-oYh356V#o!2=&f~LJeo y2缻Ṝ*x =L?WS0ע I̶?3#7wXEnyL̨+=>y_^@҈:6[e r~¹88 7ZQOB04ǠQ|CMy-}njIwu0jƾ)(B?t-C0]*Q?]Hd)I6c\t=0}k#:b/Dw1׽_t)z] c>PL9Y5+M+?#iz퉜lQ%H2h,ƮK؁1Gݥ|aO>nײk<U"}/Gq>%RӧpW}As4tz˴$K kطFPBߨw* K[6q|Z}>}%Qs ;b~,h$fՕ[2aueҬt|wquQWʵ.w69Br\ }Qnp^U>qcwbyH)OH:Μ endstream endobj 4 0 obj 5438 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> >> endobj 5 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 818.336792 550.414001 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 6 0 obj << /Creator (cairo 1.8.8 (http://cairographics.org)) /Producer (cairo 1.8.8 (http://cairographics.org)) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 8 0000000000 65535 f 0000005838 00000 n 0000005552 00000 n 0000000015 00000 n 0000005529 00000 n 0000005624 00000 n 0000005903 00000 n 0000006028 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 6080 %%EOF elk-6.3.2/src/PaxHeaders.21352/rmspaces0000644000000000000000000000013213543334737014371 xustar0030 mtime=1569569247.223640288 30 atime=1569569247.222640289 30 ctime=1569569247.223640288 elk-6.3.2/src/rmspaces0000755002504400250440000000021113543334737016435 0ustar00dewhurstdewhurst00000000000000#!/bin/bash while [ "$*" != "" ] do echo $1 sed -i 's/[ \t]*$//' $1 sed -i ':a;/^[ \n]*$/{$d;N;ba}' $1 echo >> $1 shift done elk-6.3.2/src/PaxHeaders.21352/grepelk0000644000000000000000000000013213543334737014205 xustar0030 mtime=1569569247.227640285 30 atime=1569569247.226640286 30 ctime=1569569247.227640285 elk-6.3.2/src/grepelk0000755002504400250440000000055613543334737016265 0ustar00dewhurstdewhurst00000000000000#!/bin/bash echo echo "main code" grep "$@" *.f90 Makefile echo echo "spacegroup" grep "$@" spacegroup/*.f90 spacegroup/Makefile echo echo "eos" grep "$@" eos/*.f90 eos/Makefile echo echo "examples" grep -r "$@" ../examples/* echo echo "tests" grep -r "$@" ../tests/* echo echo "species" grep -r "$@" ../species/* echo echo "utilities" grep -r "$@" ../utilities/* elk-6.3.2/src/PaxHeaders.21352/vimelk0000644000000000000000000000013213543334737014043 xustar0030 mtime=1569569247.231640283 30 atime=1569569247.230640284 30 ctime=1569569247.231640283 elk-6.3.2/src/vimelk0000755002504400250440000000204713543334737016120 0ustar00dewhurstdewhurst00000000000000#!/bin/bash if [ "$1" == "-d" ]; then rm -f ~/.vim/ftdetect/elk.vim rm -f ~/.vim/syntax/elk.vim echo echo "Syntax highlighting disabled for vim." echo exit fi rm -f elk.vim echo > elk.vim echo 'syn match elkComment "!.*$"' >> elk.vim echo 'syn match elkComment ":.*$"' >> elk.vim grep "case('" readinput.f90 | cut -d "'" -f2 | grep -v '^$' > vimelk.temp grep "case('" readinput.f90 | cut -d "'" -f4 | grep -v '^$' >> vimelk.temp grep "case('" readinput.f90 | cut -d "'" -f6 | grep -v '^$' >> vimelk.temp grep "case('" readinput.f90 | cut -d "'" -f8 | grep -v '^$' >> vimelk.temp awk '{print "syn match elkBlock '\''"$1"'\''";}' vimelk.temp >> elk.vim rm vimelk.temp echo >> elk.vim echo 'hi link elkComment Comment' >> elk.vim echo 'hi link elkBlock Identifier' >> elk.vim mkdir -p ~/.vim/ftdetect mkdir -p ~/.vim/syntax echo "au BufRead,BufNewFile elk.in set filetype=elk" > ~/.vim/ftdetect/elk.vim mv elk.vim ~/.vim/syntax echo echo "Syntax highlighting enabled for vim." echo echo "To disable highlighting type:" echo " ./vimelk -d" echo elk-6.3.2/src/PaxHeaders.21352/omp_stub.f900000644000000000000000000000013213543334737015001 xustar0030 mtime=1569569247.245640274 30 atime=1569569247.244640275 30 ctime=1569569247.245640274 elk-6.3.2/src/omp_stub.f900000644002504400250440000000343013543334737017050 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2015 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. ! Stub routines for OpenMP. integer function omp_get_num_procs() implicit none omp_get_num_procs=1 return end function integer function omp_get_max_threads() implicit none omp_get_max_threads=1 return end function integer function omp_get_num_threads() implicit none omp_get_num_threads=1 return end function integer function omp_get_thread_num() implicit none omp_get_thread_num=0 return end function logical function omp_get_nested() implicit none omp_get_nested=.false. return end function integer function omp_get_max_active_levels() implicit none omp_get_max_active_levels=1 return end function logical function omp_get_dynamic() implicit none omp_get_dynamic=.false. return end function integer function omp_get_level() implicit none omp_get_level=0 return end function subroutine omp_set_num_threads(num_threads) implicit none integer, intent(in) :: num_threads return end subroutine subroutine omp_set_nested(nested) implicit none logical, intent(in) :: nested return end subroutine subroutine omp_set_max_active_levels(max_levels) implicit none integer, intent(in) :: max_levels return end subroutine subroutine omp_set_dynamic(dynamic) implicit none logical, intent(in) :: dynamic return end subroutine subroutine omp_init_lock(lock) implicit none integer(8), intent(in) :: lock return end subroutine subroutine omp_destroy_lock(lock) implicit none integer(8), intent(in) :: lock return end subroutine subroutine omp_set_lock(lock) implicit none integer(8), intent(in) :: lock return end subroutine subroutine omp_unset_lock(lock) implicit none integer(8), intent(in) :: lock return end subroutine elk-6.3.2/src/PaxHeaders.21352/libxc_funcs.f900000644000000000000000000000013113543334737015447 xustar0030 mtime=1569569247.272640257 29 atime=1569569247.26764026 30 ctime=1569569247.272640257 elk-6.3.2/src/libxc_funcs.f900000644002504400250440000012716113543334737017527 0ustar00dewhurstdewhurst00000000000000!! Copyright (C) 2003-2015 Miguel Marques !! All rights reserved. !! !! This file is dual-licensed under a GPL and a BSD license !! !! MPL License: !! !! This Source Code Form is subject to the terms of the Mozilla Public !! License, v. 2.0. If a copy of the MPL was not distributed with this !! file, You can obtain one at http://mozilla.org/MPL/2.0/. !! !! BSD License: !! !! Redistribution and use in source and binary forms, with or without !! modification, are permitted provided that the following conditions !! are met: !! !! 1. Redistributions of source code must retain the above copyright !! notice, this list of conditions and the following disclaimer. !! !! 2. Redistributions in binary form must reproduce the above !! copyright notice, this list of conditions and the following !! disclaimer in the documentation and/or other materials provided !! with the distribution. !! !! 3. Neither the name of the copyright holder nor the names of its !! contributors may be used to endorse or promote products derived !! from this software without specific prior written permission. !! !! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS !! "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT !! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS !! FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE !! COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, !! INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES !! (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR !! SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) !! HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, !! STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) !! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED !! OF THE POSSIBILITY OF SUCH DAMAGE. module libxc_funcs_m implicit none public integer, parameter :: XC_LDA_X = 1 ! Exchange integer, parameter :: XC_LDA_C_WIGNER = 2 ! Wigner parametrization integer, parameter :: XC_LDA_C_RPA = 3 ! Random Phase Approximation integer, parameter :: XC_LDA_C_HL = 4 ! Hedin & Lundqvist integer, parameter :: XC_LDA_C_GL = 5 ! Gunnarson & Lundqvist integer, parameter :: XC_LDA_C_XALPHA = 6 ! Slater Xalpha integer, parameter :: XC_LDA_C_VWN = 7 ! Vosko, Wilk, & Nusair (5) integer, parameter :: XC_LDA_C_VWN_RPA = 8 ! Vosko, Wilk, & Nusair (RPA) integer, parameter :: XC_LDA_C_PZ = 9 ! Perdew & Zunger integer, parameter :: XC_LDA_C_PZ_MOD = 10 ! Perdew & Zunger (Modified) integer, parameter :: XC_LDA_C_OB_PZ = 11 ! Ortiz & Ballone (PZ) integer, parameter :: XC_LDA_C_PW = 12 ! Perdew & Wang integer, parameter :: XC_LDA_C_PW_MOD = 13 ! Perdew & Wang (Modified) integer, parameter :: XC_LDA_C_OB_PW = 14 ! Ortiz & Ballone (PW) integer, parameter :: XC_LDA_C_2D_AMGB = 15 ! Attaccalite et al integer, parameter :: XC_LDA_C_2D_PRM = 16 ! Pittalis, Rasanen & Marques correlation in 2D integer, parameter :: XC_LDA_C_vBH = 17 ! von Barth & Hedin integer, parameter :: XC_LDA_C_1D_CSC = 18 ! Casula, Sorella, and Senatore 1D correlation integer, parameter :: XC_LDA_X_2D = 19 ! Exchange in 2D integer, parameter :: XC_LDA_XC_TETER93 = 20 ! Teter 93 parametrization integer, parameter :: XC_LDA_X_1D = 21 ! Exchange in 1D integer, parameter :: XC_LDA_C_ML1 = 22 ! Modified LSD (version 1) of Proynov and Salahub integer, parameter :: XC_LDA_C_ML2 = 23 ! Modified LSD (version 2) of Proynov and Salahub integer, parameter :: XC_LDA_C_GOMBAS = 24 ! Gombas parametrization integer, parameter :: XC_LDA_C_PW_RPA = 25 ! Perdew & Wang fit of the RPA integer, parameter :: XC_LDA_C_1D_LOOS = 26 ! P-F Loos correlation LDA integer, parameter :: XC_LDA_C_RC04 = 27 ! Ragot-Cortona integer, parameter :: XC_LDA_C_VWN_1 = 28 ! Vosko, Wilk, & Nusair (1) integer, parameter :: XC_LDA_C_VWN_2 = 29 ! Vosko, Wilk, & Nusair (2) integer, parameter :: XC_LDA_C_VWN_3 = 30 ! Vosko, Wilk, & Nusair (3) integer, parameter :: XC_LDA_C_VWN_4 = 31 ! Vosko, Wilk, & Nusair (4) integer, parameter :: XC_LDA_XC_ZLP = 43 ! Zhao, Levy & Parr, Eq. (20) integer, parameter :: XC_LDA_K_TF = 50 ! Thomas-Fermi kinetic energy functional integer, parameter :: XC_LDA_K_LP = 51 ! Lee and Parr Gaussian ansatz integer, parameter :: XC_LDA_XC_KSDT = 259 ! Karasiev et al. parametrization integer, parameter :: XC_LDA_C_CHACHIYO = 287 ! Chachiyo simple 2 parameter correlation integer, parameter :: XC_LDA_C_LP96 = 289 ! Liu-Parr correlation integer, parameter :: XC_LDA_X_REL = 532 ! Relativistic exchange integer, parameter :: XC_LDA_XC_1D_EHWLRG_1 = 536 ! LDA constructed from slab-like systems of 1 electron integer, parameter :: XC_LDA_XC_1D_EHWLRG_2 = 537 ! LDA constructed from slab-like systems of 2 electrons integer, parameter :: XC_LDA_XC_1D_EHWLRG_3 = 538 ! LDA constructed from slab-like systems of 3 electrons integer, parameter :: XC_LDA_X_ERF = 546 ! Attenuated exchange LDA (erf) integer, parameter :: XC_LDA_XC_LP_A = 547 ! Lee-Parr reparametrization B integer, parameter :: XC_LDA_XC_LP_B = 548 ! Lee-Parr reparametrization B integer, parameter :: XC_LDA_X_RAE = 549 ! Rae self-energy corrected exchange integer, parameter :: XC_LDA_K_ZLP = 550 ! kinetic energy version of ZLP integer, parameter :: XC_LDA_C_MCWEENY = 551 ! McWeeny 76 integer, parameter :: XC_LDA_C_BR78 = 552 ! Brual & Rothstein 78 integer, parameter :: XC_LDA_C_PK09 = 554 ! Proynov and Kong 2009 integer, parameter :: XC_LDA_C_OW_LYP = 573 ! Wigner with corresponding LYP parameters integer, parameter :: XC_LDA_C_OW = 574 ! Optimized Wigner integer, parameter :: XC_LDA_XC_GDSMFB = 577 ! Groth et al. parametrization integer, parameter :: XC_LDA_C_GK72 = 578 ! Gordon and Kim 1972 integer, parameter :: XC_LDA_C_KARASIEV = 579 ! Karasiev reparameterization of Chachiyo integer, parameter :: XC_LDA_K_LP96 = 580 ! Liu-Parr kinetic integer, parameter :: XC_GGA_X_GAM = 32 ! GAM functional from Minnesota integer, parameter :: XC_GGA_C_GAM = 33 ! GAM functional from Minnesota integer, parameter :: XC_GGA_X_HCTH_A = 34 ! HCTH-A integer, parameter :: XC_GGA_X_EV93 = 35 ! Engel and Vosko integer, parameter :: XC_GGA_X_BCGP = 38 ! Burke, Cancio, Gould, and Pittalis integer, parameter :: XC_GGA_C_BCGP = 39 ! Burke, Cancio, Gould, and Pittalis integer, parameter :: XC_GGA_X_LAMBDA_OC2_N = 40 ! lambda_OC2(N) version of PBE integer, parameter :: XC_GGA_X_B86_R = 41 ! Revised Becke 86 Xalpha,beta,gamma (with mod. grad. correction) integer, parameter :: XC_GGA_X_LAMBDA_CH_N = 44 ! lambda_CH(N) version of PBE integer, parameter :: XC_GGA_X_LAMBDA_LO_N = 45 ! lambda_LO(N) version of PBE integer, parameter :: XC_GGA_X_HJS_B88_V2 = 46 ! HJS screened exchange corrected B88 version integer, parameter :: XC_GGA_C_Q2D = 47 ! Chiodo et al integer, parameter :: XC_GGA_X_Q2D = 48 ! Chiodo et al integer, parameter :: XC_GGA_X_PBE_MOL = 49 ! Del Campo, Gazquez, Trickey and Vela (PBE-like) integer, parameter :: XC_GGA_K_TFVW = 52 ! Thomas-Fermi plus von Weiszaecker correction integer, parameter :: XC_GGA_K_REVAPBEINT = 53 ! interpolated version of REVAPBE integer, parameter :: XC_GGA_K_APBEINT = 54 ! interpolated version of APBE integer, parameter :: XC_GGA_K_REVAPBE = 55 ! revised APBE integer, parameter :: XC_GGA_X_AK13 = 56 ! Armiento & Kuemmel 2013 integer, parameter :: XC_GGA_K_MEYER = 57 ! Meyer, Wang, and Young integer, parameter :: XC_GGA_X_LV_RPW86 = 58 ! Berland and Hyldgaard integer, parameter :: XC_GGA_X_PBE_TCA = 59 ! PBE revised by Tognetti et al integer, parameter :: XC_GGA_X_PBEINT = 60 ! PBE for hybrid interfaces integer, parameter :: XC_GGA_C_ZPBEINT = 61 ! spin-dependent gradient correction to PBEint integer, parameter :: XC_GGA_C_PBEINT = 62 ! PBE for hybrid interfaces integer, parameter :: XC_GGA_C_ZPBESOL = 63 ! spin-dependent gradient correction to PBEsol integer, parameter :: XC_GGA_XC_OPBE_D = 65 ! oPBE_D functional of Goerigk and Grimme integer, parameter :: XC_GGA_XC_OPWLYP_D = 66 ! oPWLYP-D functional of Goerigk and Grimme integer, parameter :: XC_GGA_XC_OBLYP_D = 67 ! oBLYP-D functional of Goerigk and Grimme integer, parameter :: XC_GGA_X_VMT84_GE = 68 ! VMT{8,4} with constraint satisfaction with mu = mu_GE integer, parameter :: XC_GGA_X_VMT84_PBE = 69 ! VMT{8,4} with constraint satisfaction with mu = mu_PBE integer, parameter :: XC_GGA_X_VMT_GE = 70 ! Vela, Medel, and Trickey with mu = mu_GE integer, parameter :: XC_GGA_X_VMT_PBE = 71 ! Vela, Medel, and Trickey with mu = mu_PBE integer, parameter :: XC_GGA_C_N12_SX = 79 ! N12-SX functional from Minnesota integer, parameter :: XC_GGA_C_N12 = 80 ! N12 functional from Minnesota integer, parameter :: XC_GGA_X_N12 = 82 ! N12 functional from Minnesota integer, parameter :: XC_GGA_C_REGTPSS = 83 ! Regularized TPSS correlation (ex-VPBE) integer, parameter :: XC_GGA_C_OP_XALPHA = 84 ! one-parameter progressive functional (XALPHA version) integer, parameter :: XC_GGA_C_OP_G96 = 85 ! one-parameter progressive functional (G96 version) integer, parameter :: XC_GGA_C_OP_PBE = 86 ! one-parameter progressive functional (PBE version) integer, parameter :: XC_GGA_C_OP_B88 = 87 ! one-parameter progressive functional (B88 version) integer, parameter :: XC_GGA_C_FT97 = 88 ! Filatov & Thiel correlation integer, parameter :: XC_GGA_C_SPBE = 89 ! PBE correlation to be used with the SSB exchange integer, parameter :: XC_GGA_X_SSB_SW = 90 ! Swart, Sola and Bickelhaupt correction to PBE integer, parameter :: XC_GGA_X_SSB = 91 ! Swart, Sola and Bickelhaupt integer, parameter :: XC_GGA_X_SSB_D = 92 ! Swart, Sola and Bickelhaupt dispersion integer, parameter :: XC_GGA_XC_HCTH_407P = 93 ! HCTH/407+ integer, parameter :: XC_GGA_XC_HCTH_P76 = 94 ! HCTH p=7/6 integer, parameter :: XC_GGA_XC_HCTH_P14 = 95 ! HCTH p=1/4 integer, parameter :: XC_GGA_XC_B97_GGA1 = 96 ! Becke 97 GGA-1 integer, parameter :: XC_GGA_C_HCTH_A = 97 ! HCTH-A integer, parameter :: XC_GGA_X_BPCCAC = 98 ! BPCCAC (GRAC for the energy) integer, parameter :: XC_GGA_C_REVTCA = 99 ! Tognetti, Cortona, Adamo (revised) integer, parameter :: XC_GGA_C_TCA = 100 ! Tognetti, Cortona, Adamo integer, parameter :: XC_GGA_X_PBE = 101 ! Perdew, Burke & Ernzerhof exchange integer, parameter :: XC_GGA_X_PBE_R = 102 ! Perdew, Burke & Ernzerhof exchange (revised) integer, parameter :: XC_GGA_X_B86 = 103 ! Becke 86 Xalpha,beta,gamma integer, parameter :: XC_GGA_X_HERMAN = 104 ! Herman et al original GGA integer, parameter :: XC_GGA_X_B86_MGC = 105 ! Becke 86 Xalpha,beta,gamma (with mod. grad. correction) integer, parameter :: XC_GGA_X_B88 = 106 ! Becke 88 integer, parameter :: XC_GGA_X_G96 = 107 ! Gill 96 integer, parameter :: XC_GGA_X_PW86 = 108 ! Perdew & Wang 86 integer, parameter :: XC_GGA_X_PW91 = 109 ! Perdew & Wang 91 integer, parameter :: XC_GGA_X_OPTX = 110 ! Handy & Cohen OPTX 01 integer, parameter :: XC_GGA_X_DK87_R1 = 111 ! dePristo & Kress 87 (version R1) integer, parameter :: XC_GGA_X_DK87_R2 = 112 ! dePristo & Kress 87 (version R2) integer, parameter :: XC_GGA_X_LG93 = 113 ! Lacks & Gordon 93 integer, parameter :: XC_GGA_X_FT97_A = 114 ! Filatov & Thiel 97 (version A) integer, parameter :: XC_GGA_X_FT97_B = 115 ! Filatov & Thiel 97 (version B) integer, parameter :: XC_GGA_X_PBE_SOL = 116 ! Perdew, Burke & Ernzerhof exchange (solids) integer, parameter :: XC_GGA_X_RPBE = 117 ! Hammer, Hansen & Norskov (PBE-like) integer, parameter :: XC_GGA_X_WC = 118 ! Wu & Cohen integer, parameter :: XC_GGA_X_MPW91 = 119 ! Modified form of PW91 by Adamo & Barone integer, parameter :: XC_GGA_X_AM05 = 120 ! Armiento & Mattsson 05 exchange integer, parameter :: XC_GGA_X_PBEA = 121 ! Madsen (PBE-like) integer, parameter :: XC_GGA_X_MPBE = 122 ! Adamo & Barone modification to PBE integer, parameter :: XC_GGA_X_XPBE = 123 ! xPBE reparametrization by Xu & Goddard integer, parameter :: XC_GGA_X_2D_B86_MGC = 124 ! Becke 86 MGC for 2D systems integer, parameter :: XC_GGA_X_BAYESIAN = 125 ! Bayesian best fit for the enhancement factor integer, parameter :: XC_GGA_X_PBE_JSJR = 126 ! JSJR reparametrization by Pedroza, Silva & Capelle integer, parameter :: XC_GGA_X_2D_B88 = 127 ! Becke 88 in 2D integer, parameter :: XC_GGA_X_2D_B86 = 128 ! Becke 86 Xalpha,beta,gamma integer, parameter :: XC_GGA_X_2D_PBE = 129 ! Perdew, Burke & Ernzerhof exchange in 2D integer, parameter :: XC_GGA_C_PBE = 130 ! Perdew, Burke & Ernzerhof correlation integer, parameter :: XC_GGA_C_LYP = 131 ! Lee, Yang & Parr integer, parameter :: XC_GGA_C_P86 = 132 ! Perdew 86 integer, parameter :: XC_GGA_C_PBE_SOL = 133 ! Perdew, Burke & Ernzerhof correlation SOL integer, parameter :: XC_GGA_C_PW91 = 134 ! Perdew & Wang 91 integer, parameter :: XC_GGA_C_AM05 = 135 ! Armiento & Mattsson 05 correlation integer, parameter :: XC_GGA_C_XPBE = 136 ! xPBE reparametrization by Xu & Goddard integer, parameter :: XC_GGA_C_LM = 137 ! Langreth and Mehl correlation integer, parameter :: XC_GGA_C_PBE_JRGX = 138 ! JRGX reparametrization by Pedroza, Silva & Capelle integer, parameter :: XC_GGA_X_OPTB88_VDW = 139 ! Becke 88 reoptimized to be used with vdW functional of Dion et al integer, parameter :: XC_GGA_X_PBEK1_VDW = 140 ! PBE reparametrization for vdW integer, parameter :: XC_GGA_X_OPTPBE_VDW = 141 ! PBE reparametrization for vdW integer, parameter :: XC_GGA_X_RGE2 = 142 ! Regularized PBE integer, parameter :: XC_GGA_C_RGE2 = 143 ! Regularized PBE integer, parameter :: XC_GGA_X_RPW86 = 144 ! refitted Perdew & Wang 86 integer, parameter :: XC_GGA_X_KT1 = 145 ! Exchange part of Keal and Tozer version 1 integer, parameter :: XC_GGA_XC_KT2 = 146 ! Keal and Tozer version 2 integer, parameter :: XC_GGA_C_WL = 147 ! Wilson & Levy integer, parameter :: XC_GGA_C_WI = 148 ! Wilson & Ivanov integer, parameter :: XC_GGA_X_MB88 = 149 ! Modified Becke 88 for proton transfer integer, parameter :: XC_GGA_X_SOGGA = 150 ! Second-order generalized gradient approximation integer, parameter :: XC_GGA_X_SOGGA11 = 151 ! Second-order generalized gradient approximation 2011 integer, parameter :: XC_GGA_C_SOGGA11 = 152 ! Second-order generalized gradient approximation 2011 integer, parameter :: XC_GGA_C_WI0 = 153 ! Wilson & Ivanov initial version integer, parameter :: XC_GGA_XC_TH1 = 154 ! Tozer and Handy v. 1 integer, parameter :: XC_GGA_XC_TH2 = 155 ! Tozer and Handy v. 2 integer, parameter :: XC_GGA_XC_TH3 = 156 ! Tozer and Handy v. 3 integer, parameter :: XC_GGA_XC_TH4 = 157 ! Tozer and Handy v. 4 integer, parameter :: XC_GGA_X_C09X = 158 ! C09x to be used with the VdW of Rutgers-Chalmers integer, parameter :: XC_GGA_C_SOGGA11_X = 159 ! To be used with HYB_GGA_X_SOGGA11_X integer, parameter :: XC_GGA_X_LB = 160 ! van Leeuwen & Baerends integer, parameter :: XC_GGA_XC_HCTH_93 = 161 ! HCTH functional fitted to 93 molecules integer, parameter :: XC_GGA_XC_HCTH_120 = 162 ! HCTH functional fitted to 120 molecules integer, parameter :: XC_GGA_XC_HCTH_147 = 163 ! HCTH functional fitted to 147 molecules integer, parameter :: XC_GGA_XC_HCTH_407 = 164 ! HCTH functional fitted to 407 molecules integer, parameter :: XC_GGA_XC_EDF1 = 165 ! Empirical functionals from Adamson, Gill, and Pople integer, parameter :: XC_GGA_XC_XLYP = 166 ! XLYP functional integer, parameter :: XC_GGA_XC_KT1 = 167 ! Keal and Tozer version 1 integer, parameter :: XC_GGA_XC_B97_D = 170 ! Grimme functional to be used with C6 vdW term integer, parameter :: XC_GGA_XC_PBE1W = 173 ! Functionals fitted for water integer, parameter :: XC_GGA_XC_MPWLYP1W = 174 ! Functionals fitted for water integer, parameter :: XC_GGA_XC_PBELYP1W = 175 ! Functionals fitted for water integer, parameter :: XC_GGA_X_LBM = 182 ! van Leeuwen & Baerends modified integer, parameter :: XC_GGA_X_OL2 = 183 ! Exchange form based on Ou-Yang and Levy v.2 integer, parameter :: XC_GGA_X_APBE = 184 ! mu fixed from the semiclassical neutral atom integer, parameter :: XC_GGA_K_APBE = 185 ! mu fixed from the semiclassical neutral atom integer, parameter :: XC_GGA_C_APBE = 186 ! mu fixed from the semiclassical neutral atom integer, parameter :: XC_GGA_K_TW1 = 187 ! Tran and Wesolowski set 1 (Table II) integer, parameter :: XC_GGA_K_TW2 = 188 ! Tran and Wesolowski set 2 (Table II) integer, parameter :: XC_GGA_K_TW3 = 189 ! Tran and Wesolowski set 3 (Table II) integer, parameter :: XC_GGA_K_TW4 = 190 ! Tran and Wesolowski set 4 (Table II) integer, parameter :: XC_GGA_X_HTBS = 191 ! Haas, Tran, Blaha, and Schwarz integer, parameter :: XC_GGA_X_AIRY = 192 ! Constantin et al based on the Airy gas integer, parameter :: XC_GGA_X_LAG = 193 ! Local Airy Gas integer, parameter :: XC_GGA_XC_MOHLYP = 194 ! Functional for organometallic chemistry integer, parameter :: XC_GGA_XC_MOHLYP2 = 195 ! Functional for barrier heights integer, parameter :: XC_GGA_XC_TH_FL = 196 ! Tozer and Handy v. FL integer, parameter :: XC_GGA_XC_TH_FC = 197 ! Tozer and Handy v. FC integer, parameter :: XC_GGA_XC_TH_FCFO = 198 ! Tozer and Handy v. FCFO integer, parameter :: XC_GGA_XC_TH_FCO = 199 ! Tozer and Handy v. FCO integer, parameter :: XC_GGA_C_OPTC = 200 ! Optimized correlation functional of Cohen and Handy integer, parameter :: XC_GGA_C_PBELOC = 246 ! Semilocal dynamical correlation integer, parameter :: XC_GGA_XC_VV10 = 255 ! Vydrov and Van Voorhis integer, parameter :: XC_GGA_C_PBEFE = 258 ! PBE for formation energies integer, parameter :: XC_GGA_C_OP_PW91 = 262 ! one-parameter progressive functional (PW91 version) integer, parameter :: XC_GGA_X_PBEFE = 265 ! PBE for formation energies integer, parameter :: XC_GGA_X_CAP = 270 ! Correct Asymptotic Potential integer, parameter :: XC_GGA_X_EB88 = 271 ! Non-empirical (excogitated) B88 functional of Becke and Elliott integer, parameter :: XC_GGA_C_PBE_MOL = 272 ! Del Campo, Gazquez, Trickey and Vela (PBE-like) integer, parameter :: XC_GGA_K_ABSP3 = 277 ! gamma-TFvW form by Acharya et al [g = 1 - 1.513/N^0.35] integer, parameter :: XC_GGA_K_ABSP4 = 278 ! gamma-TFvW form by Acharya et al [g = l = 1/(1 + 1.332/N^(1/3))] integer, parameter :: XC_GGA_C_BMK = 280 ! Boese-Martin for kinetics integer, parameter :: XC_GGA_C_TAU_HCTH = 281 ! correlation part of tau-hcth integer, parameter :: XC_GGA_C_HYB_TAU_HCTH = 283 ! correlation part of hyb_tau-hcth integer, parameter :: XC_GGA_X_BEEFVDW = 285 ! BEEF-vdW exchange integer, parameter :: XC_GGA_XC_BEEFVDW = 286 ! BEEF-vdW exchange-correlation integer, parameter :: XC_GGA_X_PBETRANS = 291 ! Gradient-based interpolation between PBE and revPBE integer, parameter :: XC_GGA_K_VW = 500 ! von Weiszaecker functional integer, parameter :: XC_GGA_K_GE2 = 501 ! Second-order gradient expansion (l = 1/9) integer, parameter :: XC_GGA_K_GOLDEN = 502 ! TF-lambda-vW form by Golden (l = 13/45) integer, parameter :: XC_GGA_K_YT65 = 503 ! TF-lambda-vW form by Yonei and Tomishima (l = 1/5) integer, parameter :: XC_GGA_K_BALTIN = 504 ! TF-lambda-vW form by Baltin (l = 5/9) integer, parameter :: XC_GGA_K_LIEB = 505 ! TF-lambda-vW form by Lieb (l = 0.185909191) integer, parameter :: XC_GGA_K_ABSP1 = 506 ! gamma-TFvW form by Acharya et al [g = 1 - 1.412/N^(1/3)] integer, parameter :: XC_GGA_K_ABSP2 = 507 ! gamma-TFvW form by Acharya et al [g = 1 - 1.332/N^(1/3)] integer, parameter :: XC_GGA_K_GR = 508 ! gamma-TFvW form by Gazquez and Robles integer, parameter :: XC_GGA_K_LUDENA = 509 ! gamma-TFvW form by Ludena integer, parameter :: XC_GGA_K_GP85 = 510 ! gamma-TFvW form by Ghosh and Parr integer, parameter :: XC_GGA_K_PEARSON = 511 ! Pearson integer, parameter :: XC_GGA_K_OL1 = 512 ! Ou-Yang and Levy v.1 integer, parameter :: XC_GGA_K_OL2 = 513 ! Ou-Yang and Levy v.2 integer, parameter :: XC_GGA_K_FR_B88 = 514 ! Fuentealba & Reyes (B88 version) integer, parameter :: XC_GGA_K_FR_PW86 = 515 ! Fuentealba & Reyes (PW86 version) integer, parameter :: XC_GGA_K_DK = 516 ! DePristo and Kress integer, parameter :: XC_GGA_K_PERDEW = 517 ! Perdew integer, parameter :: XC_GGA_K_VSK = 518 ! Vitos, Skriver, and Kollar integer, parameter :: XC_GGA_K_VJKS = 519 ! Vitos, Johansson, Kollar, and Skriver integer, parameter :: XC_GGA_K_ERNZERHOF = 520 ! Ernzerhof integer, parameter :: XC_GGA_K_LC94 = 521 ! Lembarki & Chermette integer, parameter :: XC_GGA_K_LLP = 522 ! Lee, Lee & Parr integer, parameter :: XC_GGA_K_THAKKAR = 523 ! Thakkar 1992 integer, parameter :: XC_GGA_X_WPBEH = 524 ! short-range version of the PBE integer, parameter :: XC_GGA_X_HJS_PBE = 525 ! HJS screened exchange PBE version integer, parameter :: XC_GGA_X_HJS_PBE_SOL = 526 ! HJS screened exchange PBE_SOL version integer, parameter :: XC_GGA_X_HJS_B88 = 527 ! HJS screened exchange B88 version integer, parameter :: XC_GGA_X_HJS_B97X = 528 ! HJS screened exchange B97x version integer, parameter :: XC_GGA_X_ITYH = 529 ! short-range recipe for exchange GGA functionals integer, parameter :: XC_GGA_X_SFAT = 530 ! short-range recipe for exchange GGA functionals integer, parameter :: XC_GGA_X_SG4 = 533 ! Semiclassical GGA at fourth order integer, parameter :: XC_GGA_C_SG4 = 534 ! Semiclassical GGA at fourth order integer, parameter :: XC_GGA_X_GG99 = 535 ! Gilbert and Gill 1999 integer, parameter :: XC_GGA_X_PBEpow = 539 ! PBE power integer, parameter :: XC_GGA_X_KGG99 = 544 ! Gilbert and Gill 1999 (mixed) integer, parameter :: XC_GGA_XC_HLE16 = 545 ! high local exchange 2016 integer, parameter :: XC_GGA_C_SCAN_E0 = 553 ! GGA component of SCAN integer, parameter :: XC_GGA_C_GAPC = 555 ! GapC integer, parameter :: XC_GGA_C_GAPLOC = 556 ! Gaploc integer, parameter :: XC_GGA_C_ZVPBEINT = 557 ! another spin-dependent correction to PBEint integer, parameter :: XC_GGA_C_ZVPBESOL = 558 ! another spin-dependent correction to PBEsol integer, parameter :: XC_GGA_C_TM_LYP = 559 ! Takkar and McCarthy reparametrization integer, parameter :: XC_GGA_C_TM_PBE = 560 ! Thakkar and McCarthy reparametrization integer, parameter :: XC_GGA_C_W94 = 561 ! Wilson 94 (Eq. 25) integer, parameter :: XC_GGA_C_CS1 = 565 ! A dynamical correlation functional integer, parameter :: XC_GGA_X_B88M = 570 ! Becke 88 reoptimized to be used with mgga_c_tau1 integer, parameter :: XC_HYB_GGA_X_N12_SX = 81 ! N12-SX functional from Minnesota integer, parameter :: XC_HYB_GGA_XC_B97_1p = 266 ! version of B97 by Cohen and Handy integer, parameter :: XC_HYB_GGA_XC_PBE_MOL0 = 273 ! PBEmol0 integer, parameter :: XC_HYB_GGA_XC_PBE_SOL0 = 274 ! PBEsol0 integer, parameter :: XC_HYB_GGA_XC_PBEB0 = 275 ! PBEbeta0 integer, parameter :: XC_HYB_GGA_XC_PBE_MOLB0 = 276 ! PBEmolbeta0 integer, parameter :: XC_HYB_GGA_XC_PBE50 = 290 ! PBE0 with 50% exx integer, parameter :: XC_HYB_GGA_XC_B3PW91 = 401 ! The original (ACM) hybrid of Becke integer, parameter :: XC_HYB_GGA_XC_B3LYP = 402 ! The (in)famous B3LYP integer, parameter :: XC_HYB_GGA_XC_B3P86 = 403 ! Perdew 86 hybrid similar to B3PW91 integer, parameter :: XC_HYB_GGA_XC_O3LYP = 404 ! hybrid using the optx functional integer, parameter :: XC_HYB_GGA_XC_MPW1K = 405 ! mixture of mPW91 and PW91 optimized for kinetics integer, parameter :: XC_HYB_GGA_XC_PBEH = 406 ! aka PBE0 or PBE1PBE integer, parameter :: XC_HYB_GGA_XC_B97 = 407 ! Becke 97 integer, parameter :: XC_HYB_GGA_XC_B97_1 = 408 ! Becke 97-1 integer, parameter :: XC_HYB_GGA_XC_B97_2 = 410 ! Becke 97-2 integer, parameter :: XC_HYB_GGA_XC_X3LYP = 411 ! hybrid by Xu and Goddard integer, parameter :: XC_HYB_GGA_XC_B1WC = 412 ! Becke 1-parameter mixture of WC and PBE integer, parameter :: XC_HYB_GGA_XC_B97_K = 413 ! Boese-Martin for Kinetics integer, parameter :: XC_HYB_GGA_XC_B97_3 = 414 ! Becke 97-3 integer, parameter :: XC_HYB_GGA_XC_MPW3PW = 415 ! mixture with the mPW functional integer, parameter :: XC_HYB_GGA_XC_B1LYP = 416 ! Becke 1-parameter mixture of B88 and LYP integer, parameter :: XC_HYB_GGA_XC_B1PW91 = 417 ! Becke 1-parameter mixture of B88 and PW91 integer, parameter :: XC_HYB_GGA_XC_MPW1PW = 418 ! Becke 1-parameter mixture of mPW91 and PW91 integer, parameter :: XC_HYB_GGA_XC_MPW3LYP = 419 ! mixture of mPW and LYP integer, parameter :: XC_HYB_GGA_XC_SB98_1a = 420 ! Schmider-Becke 98 parameterization 1a integer, parameter :: XC_HYB_GGA_XC_SB98_1b = 421 ! Schmider-Becke 98 parameterization 1b integer, parameter :: XC_HYB_GGA_XC_SB98_1c = 422 ! Schmider-Becke 98 parameterization 1c integer, parameter :: XC_HYB_GGA_XC_SB98_2a = 423 ! Schmider-Becke 98 parameterization 2a integer, parameter :: XC_HYB_GGA_XC_SB98_2b = 424 ! Schmider-Becke 98 parameterization 2b integer, parameter :: XC_HYB_GGA_XC_SB98_2c = 425 ! Schmider-Becke 98 parameterization 2c integer, parameter :: XC_HYB_GGA_X_SOGGA11_X = 426 ! Hybrid based on SOGGA11 form integer, parameter :: XC_HYB_GGA_XC_HSE03 = 427 ! the 2003 version of the screened hybrid HSE integer, parameter :: XC_HYB_GGA_XC_HSE06 = 428 ! the 2006 version of the screened hybrid HSE integer, parameter :: XC_HYB_GGA_XC_HJS_PBE = 429 ! HJS hybrid screened exchange PBE version integer, parameter :: XC_HYB_GGA_XC_HJS_PBE_SOL = 430 ! HJS hybrid screened exchange PBE_SOL version integer, parameter :: XC_HYB_GGA_XC_HJS_B88 = 431 ! HJS hybrid screened exchange B88 version integer, parameter :: XC_HYB_GGA_XC_HJS_B97X = 432 ! HJS hybrid screened exchange B97x version integer, parameter :: XC_HYB_GGA_XC_CAM_B3LYP = 433 ! CAM version of B3LYP integer, parameter :: XC_HYB_GGA_XC_TUNED_CAM_B3LYP = 434 ! CAM version of B3LYP tuned for excitations integer, parameter :: XC_HYB_GGA_XC_BHANDH = 435 ! Becke half-and-half integer, parameter :: XC_HYB_GGA_XC_BHANDHLYP = 436 ! Becke half-and-half with B88 exchange integer, parameter :: XC_HYB_GGA_XC_MB3LYP_RC04 = 437 ! B3LYP with RC04 LDA integer, parameter :: XC_HYB_GGA_XC_MPWLYP1M = 453 ! MPW with 1 par. for metals/LYP integer, parameter :: XC_HYB_GGA_XC_REVB3LYP = 454 ! Revised B3LYP integer, parameter :: XC_HYB_GGA_XC_CAMY_BLYP = 455 ! BLYP with yukawa screening integer, parameter :: XC_HYB_GGA_XC_PBE0_13 = 456 ! PBE0-1/3 integer, parameter :: XC_HYB_GGA_XC_B3LYPs = 459 ! B3LYP* functional integer, parameter :: XC_HYB_GGA_XC_WB97 = 463 ! Chai and Head-Gordon integer, parameter :: XC_HYB_GGA_XC_WB97X = 464 ! Chai and Head-Gordon integer, parameter :: XC_HYB_GGA_XC_LRC_WPBEH = 465 ! Long-range corrected functional by Rorhdanz et al integer, parameter :: XC_HYB_GGA_XC_WB97X_V = 466 ! Mardirossian and Head-Gordon integer, parameter :: XC_HYB_GGA_XC_LCY_PBE = 467 ! PBE with yukawa screening integer, parameter :: XC_HYB_GGA_XC_LCY_BLYP = 468 ! BLYP with yukawa screening integer, parameter :: XC_HYB_GGA_XC_LC_VV10 = 469 ! Vydrov and Van Voorhis integer, parameter :: XC_HYB_GGA_XC_CAMY_B3LYP = 470 ! B3LYP with Yukawa screening integer, parameter :: XC_HYB_GGA_XC_WB97X_D = 471 ! Chai and Head-Gordon integer, parameter :: XC_HYB_GGA_XC_HPBEINT = 472 ! hPBEint integer, parameter :: XC_HYB_GGA_XC_LRC_WPBE = 473 ! Long-range corrected functional by Rorhdanz et al integer, parameter :: XC_HYB_GGA_XC_B3LYP5 = 475 ! B3LYP with VWN functional 5 instead of RPA integer, parameter :: XC_HYB_GGA_XC_EDF2 = 476 ! Empirical functional from Lin, George and Gill integer, parameter :: XC_HYB_GGA_XC_CAP0 = 477 ! Correct Asymptotic Potential hybrid integer, parameter :: XC_HYB_GGA_XC_LC_WPBE = 478 ! Long-range corrected functional by Vydrov and Scuseria integer, parameter :: XC_HYB_GGA_XC_HSE12 = 479 ! HSE12 by Moussa, Schultz and Chelikowsky integer, parameter :: XC_HYB_GGA_XC_HSE12S = 480 ! Short-range HSE12 by Moussa, Schultz, and Chelikowsky integer, parameter :: XC_HYB_GGA_XC_HSE_SOL = 481 ! HSEsol functional by Schimka, Harl, and Kresse integer, parameter :: XC_HYB_GGA_XC_CAM_QTP_01 = 482 ! CAM-QTP(01): CAM-B3LYP retuned using ionization potentials of water integer, parameter :: XC_HYB_GGA_XC_MPW1LYP = 483 ! Becke 1-parameter mixture of mPW91 and LYP integer, parameter :: XC_HYB_GGA_XC_MPW1PBE = 484 ! Becke 1-parameter mixture of mPW91 and PBE integer, parameter :: XC_HYB_GGA_XC_KMLYP = 485 ! Kang-Musgrave hybrid integer, parameter :: XC_HYB_GGA_XC_B5050LYP = 572 ! Like B3LYP but more exact exchange integer, parameter :: XC_MGGA_C_DLDF = 37 ! Dispersionless Density Functional integer, parameter :: XC_MGGA_XC_ZLP = 42 ! Zhao, Levy & Parr, Eq. (21) integer, parameter :: XC_MGGA_XC_OTPSS_D = 64 ! oTPSS_D functional of Goerigk and Grimme integer, parameter :: XC_MGGA_C_CS = 72 ! Colle and Salvetti integer, parameter :: XC_MGGA_C_MN12_SX = 73 ! MN12-SX correlation functional from Minnesota integer, parameter :: XC_MGGA_C_MN12_L = 74 ! MN12-L correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M11_L = 75 ! M11-L correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M11 = 76 ! M11 correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M08_SO = 77 ! M08-SO correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M08_HX = 78 ! M08-HX correlation functional from Minnesota integer, parameter :: XC_MGGA_X_LTA = 201 ! Local tau approximation of Ernzerhof & Scuseria integer, parameter :: XC_MGGA_X_TPSS = 202 ! Tao, Perdew, Staroverov & Scuseria exchange integer, parameter :: XC_MGGA_X_M06_L = 203 ! M06-L exchange functional from Minnesota integer, parameter :: XC_MGGA_X_GVT4 = 204 ! GVT4 from Van Voorhis and Scuseria integer, parameter :: XC_MGGA_X_TAU_HCTH = 205 ! tau-HCTH from Boese and Handy integer, parameter :: XC_MGGA_X_BR89 = 206 ! Becke-Roussel 89 integer, parameter :: XC_MGGA_X_BJ06 = 207 ! Becke & Johnson correction to Becke-Roussel 89 integer, parameter :: XC_MGGA_X_TB09 = 208 ! Tran & Blaha correction to Becke & Johnson integer, parameter :: XC_MGGA_X_RPP09 = 209 ! Rasanen, Pittalis, and Proetto correction to Becke & Johnson integer, parameter :: XC_MGGA_X_2D_PRHG07 = 210 ! Pittalis, Rasanen, Helbig, Gross Exchange Functional integer, parameter :: XC_MGGA_X_2D_PRHG07_PRP10 = 211 ! PRGH07 with PRP10 correction integer, parameter :: XC_MGGA_X_REVTPSS = 212 ! revised Tao, Perdew, Staroverov & Scuseria exchange integer, parameter :: XC_MGGA_X_PKZB = 213 ! Perdew, Kurth, Zupan, and Blaha integer, parameter :: XC_MGGA_X_MS0 = 221 ! MS exchange of Sun, Xiao, and Ruzsinszky integer, parameter :: XC_MGGA_X_MS1 = 222 ! MS1 exchange of Sun, et al integer, parameter :: XC_MGGA_X_MS2 = 223 ! MS2 exchange of Sun, et al integer, parameter :: XC_MGGA_X_M11_L = 226 ! M11-L exchange functional from Minnesota integer, parameter :: XC_MGGA_X_MN12_L = 227 ! MN12-L exchange functional from Minnesota integer, parameter :: XC_MGGA_XC_CC06 = 229 ! Cancio and Chou 2006 integer, parameter :: XC_MGGA_X_MK00 = 230 ! Exchange for accurate virtual orbital energies integer, parameter :: XC_MGGA_C_TPSS = 231 ! Tao, Perdew, Staroverov & Scuseria correlation integer, parameter :: XC_MGGA_C_VSXC = 232 ! VSxc from Van Voorhis and Scuseria (correlation part) integer, parameter :: XC_MGGA_C_M06_L = 233 ! M06-L correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M06_HF = 234 ! M06-HF correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M06 = 235 ! M06 correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M06_2X = 236 ! M06-2X correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M05 = 237 ! M05 correlation functional from Minnesota integer, parameter :: XC_MGGA_C_M05_2X = 238 ! M05-2X correlation functional from Minnesota integer, parameter :: XC_MGGA_C_PKZB = 239 ! Perdew, Kurth, Zupan, and Blaha integer, parameter :: XC_MGGA_C_BC95 = 240 ! Becke correlation 95 integer, parameter :: XC_MGGA_C_REVTPSS = 241 ! revised TPSS correlation integer, parameter :: XC_MGGA_XC_TPSSLYP1W = 242 ! Functionals fitted for water integer, parameter :: XC_MGGA_X_MK00B = 243 ! Exchange for accurate virtual orbital energies (v. B) integer, parameter :: XC_MGGA_X_BLOC = 244 ! functional with balanced localization integer, parameter :: XC_MGGA_X_MODTPSS = 245 ! Modified Tao, Perdew, Staroverov & Scuseria exchange integer, parameter :: XC_MGGA_C_TPSSLOC = 247 ! Semilocal dynamical correlation integer, parameter :: XC_MGGA_X_MBEEF = 249 ! mBEEF exchange integer, parameter :: XC_MGGA_X_MBEEFVDW = 250 ! mBEEF-vdW exchange integer, parameter :: XC_MGGA_XC_B97M_V = 254 ! Mardirossian and Head-Gordon integer, parameter :: XC_MGGA_X_MVS = 257 ! MVS exchange of Sun, Perdew, and Ruzsinszky integer, parameter :: XC_MGGA_X_MN15_L = 260 ! MN15-L exhange functional from Minnesota integer, parameter :: XC_MGGA_C_MN15_L = 261 ! MN15-L correlation functional from Minnesota integer, parameter :: XC_MGGA_X_SCAN = 263 ! SCAN exchange of Sun, Ruzsinszky, and Perdew integer, parameter :: XC_MGGA_C_SCAN = 267 ! SCAN correlation integer, parameter :: XC_MGGA_C_MN15 = 269 ! MN15 correlation functional from Minnesota integer, parameter :: XC_MGGA_X_B00 = 284 ! Becke 2000 integer, parameter :: XC_MGGA_XC_HLE17 = 288 ! high local exchange 2017 integer, parameter :: XC_MGGA_C_SCAN_RVV10 = 292 ! SCAN correlation + rVV10 correlation integer, parameter :: XC_MGGA_X_REVM06_L = 293 ! revised M06-L exchange functional from Minnesota integer, parameter :: XC_MGGA_C_REVM06_L = 294 ! Revised M06-L correlation functional from Minnesota integer, parameter :: XC_MGGA_X_TM = 540 ! Tao and Mo 2016 integer, parameter :: XC_MGGA_X_VT84 = 541 ! meta-GGA version of VT{8,4} GGA integer, parameter :: XC_MGGA_X_SA_TPSS = 542 ! TPSS with correct surface asymptotics integer, parameter :: XC_MGGA_K_PC07 = 543 ! Perdew and Constantin 2007 integer, parameter :: XC_MGGA_C_KCIS = 562 ! Krieger, Chen, Iafrate, and Savin integer, parameter :: XC_MGGA_XC_LP90 = 564 ! Lee & Parr, Eq. (56) integer, parameter :: XC_MGGA_C_B88 = 571 ! Meta-GGA correlation by Becke integer, parameter :: XC_MGGA_X_GX = 575 ! GX functional of Loos integer, parameter :: XC_MGGA_X_PBE_GX = 576 ! PBE-GX functional of Loos integer, parameter :: XC_MGGA_X_REVSCAN = 581 ! revised SCAN integer, parameter :: XC_MGGA_C_REVSCAN = 582 ! revised SCAN correlation integer, parameter :: XC_MGGA_C_SCAN_VV10 = 584 ! SCAN correlation + VV10 correlation integer, parameter :: XC_MGGA_C_REVSCAN_VV10 = 585 ! revised SCAN correlation integer, parameter :: XC_MGGA_X_BR89_EXPLICIT = 586 ! Becke-Roussel 89 with an explicit inversion of x(y) integer, parameter :: XC_HYB_MGGA_X_DLDF = 36 ! Dispersionless Density Functional integer, parameter :: XC_HYB_MGGA_X_MS2H = 224 ! MS2 hybrid exchange of Sun, et al integer, parameter :: XC_HYB_MGGA_X_MN12_SX = 248 ! MN12-SX hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_SCAN0 = 264 ! SCAN hybrid exchange integer, parameter :: XC_HYB_MGGA_X_MN15 = 268 ! MN15 hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_BMK = 279 ! Boese-Martin for kinetics integer, parameter :: XC_HYB_MGGA_X_TAU_HCTH = 282 ! Hybrid version of tau-HCTH integer, parameter :: XC_HYB_MGGA_X_M08_HX = 295 ! M08-HX exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_M08_SO = 296 ! M08-SO exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_M11 = 297 ! M11 hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_M05 = 438 ! M05 hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_M05_2X = 439 ! M05-2X hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_XC_B88B95 = 440 ! Mixture of B88 with BC95 (B1B95) integer, parameter :: XC_HYB_MGGA_XC_B86B95 = 441 ! Mixture of B86 with BC95 integer, parameter :: XC_HYB_MGGA_XC_PW86B95 = 442 ! Mixture of PW86 with BC95 integer, parameter :: XC_HYB_MGGA_XC_BB1K = 443 ! Mixture of B88 with BC95 from Zhao and Truhlar integer, parameter :: XC_HYB_MGGA_X_M06_HF = 444 ! M06-HF hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_XC_MPW1B95 = 445 ! Mixture of mPW91 with BC95 from Zhao and Truhlar integer, parameter :: XC_HYB_MGGA_XC_MPWB1K = 446 ! Mixture of mPW91 with BC95 for kinetics integer, parameter :: XC_HYB_MGGA_XC_X1B95 = 447 ! Mixture of X with BC95 integer, parameter :: XC_HYB_MGGA_XC_XB1K = 448 ! Mixture of X with BC95 for kinetics integer, parameter :: XC_HYB_MGGA_X_M06 = 449 ! M06 hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_X_M06_2X = 450 ! M06-2X hybrid exchange functional from Minnesota integer, parameter :: XC_HYB_MGGA_XC_PW6B95 = 451 ! Mixture of PW91 with BC95 from Zhao and Truhlar integer, parameter :: XC_HYB_MGGA_XC_PWB6K = 452 ! Mixture of PW91 with BC95 from Zhao and Truhlar for kinetics integer, parameter :: XC_HYB_MGGA_XC_TPSSH = 457 ! TPSS hybrid integer, parameter :: XC_HYB_MGGA_XC_REVTPSSH = 458 ! revTPSS hybrid integer, parameter :: XC_HYB_MGGA_X_MVSH = 474 ! MVSh hybrid integer, parameter :: XC_HYB_MGGA_XC_WB97M_V = 531 ! Mardirossian and Head-Gordon integer, parameter :: XC_HYB_MGGA_XC_B0KCIS = 563 ! Hybrid based on KCIS integer, parameter :: XC_HYB_MGGA_XC_MPW1KCIS = 566 ! Modified Perdew-Wang + KCIS hybrid integer, parameter :: XC_HYB_MGGA_XC_MPWKCIS1K = 567 ! Modified Perdew-Wang + KCIS hybrid with more exact exchange integer, parameter :: XC_HYB_MGGA_XC_PBE1KCIS = 568 ! Perdew-Burke-Ernzerhof + KCIS hybrid integer, parameter :: XC_HYB_MGGA_XC_TPSS1KCIS = 569 ! TPSS hybrid with KCIS correlation integer, parameter :: XC_HYB_MGGA_X_REVSCAN0 = 583 ! revised SCAN hybrid exchange end module libxc_funcs_m elk-6.3.2/src/PaxHeaders.21352/libxc.f900000644000000000000000000000013213543334737014252 xustar0030 mtime=1569569247.277640254 30 atime=1569569247.275640255 30 ctime=1569569247.277640254 elk-6.3.2/src/libxc.f900000644002504400250440000005054313543334737016330 0ustar00dewhurstdewhurst00000000000000!! Copyright (C) 2003-2015 Miguel Marques !! All rights reserved. !! !! This file is dual-licensed under a GPL and a BSD license !! !! MPL License: !! !! This Source Code Form is subject to the terms of the Mozilla Public !! License, v. 2.0. If a copy of the MPL was not distributed with this !! file, You can obtain one at mozilla.org/MPL/2.0/. !! !! BSD License: !! !! Redistribution and use in source and binary forms, with or without !! modification, are permitted provided that the following conditions !! are met: !! !! 1. Redistributions of source code must retain the above copyright !! notice, this list of conditions and the following disclaimer. !! !! 2. Redistributions in binary form must reproduce the above !! copyright notice, this list of conditions and the following !! disclaimer in the documentation and/or other materials provided !! with the distribution. !! !! 3. Neither the name of the copyright holder nor the names of its !! contributors may be used to endorse or promote products derived !! from this software without specific prior written permission. !! !! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS !! "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT !! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS !! FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE !! COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, !! INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES !! (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR !! SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) !! HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, !! STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) !! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED !! OF THE POSSIBILITY OF SUCH DAMAGE. !------------------------------------------------------------------- module xc_f90_types_m implicit none integer, public, parameter :: xc_f90_kind = selected_real_kind(14) type xc_f90_pointer_t private integer, pointer :: buffer end type xc_f90_pointer_t end module xc_f90_types_m !------------------------------------------------------------------- module xc_f90_lib_m use xc_f90_types_m use libxc_funcs_m implicit none public integer, parameter :: & XC_UNPOLARIZED = 1, & ! Spin unpolarized XC_POLARIZED = 2 ! Spin polarized integer, parameter :: & XC_NON_RELATIVISTIC = 0, & ! Functional includes or not relativistic XC_RELATIVISTIC = 1 ! corrections. Only available in some functionals. ! Kinds integer, parameter :: & XC_EXCHANGE = 0, & XC_CORRELATION = 1, & XC_EXCHANGE_CORRELATION = 2, & XC_KINETIC = 3 ! Families of xc functionals integer, parameter :: & XC_FAMILY_UNKNOWN = -1, & XC_FAMILY_NONE = 0, & XC_FAMILY_LDA = 1, & XC_FAMILY_GGA = 2, & XC_FAMILY_MGGA = 4, & XC_FAMILY_LCA = 8, & XC_FAMILY_OEP = 16, & XC_FAMILY_HYB_GGA = 32, & XC_FAMILY_HYB_MGGA = 64 integer, parameter :: & XC_FLAGS_HAVE_EXC = 1, & XC_FLAGS_HAVE_VXC = 2, & XC_FLAGS_HAVE_FXC = 4, & XC_FLAGS_HAVE_KXC = 8, & XC_FLAGS_HAVE_LXC = 16, & XC_FLAGS_1D = 32, & XC_FLAGS_2D = 64, & XC_FLAGS_3D = 128, & XC_FLAGS_HYB_CAM = 256, & XC_FLAGS_HYB_CAMY = 512, & XC_FLAGS_HYB_VV10 = 1024, & XC_FLAGS_HYB_LC = 2048, & XC_FLAGS_HYB_LCY = 4096, & XC_FLAGS_STABLE = 8192, & XC_FLAGS_DEVELOPMENT = 16384, & XC_FLAGS_NEEDS_LAPLACIAN = 32768 integer, parameter, public :: & XC_TAU_EXPLICIT = 0, & XC_TAU_EXPANSION = 1 integer, parameter, public :: & XC_MAX_REFERENCES = 5 ! These are old names kept for compatibility integer, parameter :: & XC_GGA_X_BGCP = 38, & XC_GGA_C_BGCP = 39, & XC_GGA_C_VPBE = 83, & XC_GGA_XC_LB = 160, & XC_MGGA_C_CC06 = 229, & XC_GGA_K_ABSR1 = 506, & XC_GGA_K_ABSR2 = 507 !---------------------------------------------------------------- interface subroutine xc_f90_version(major, minor, micro) integer, intent(out) :: major, minor, micro end subroutine xc_f90_version subroutine xc_f90_version_string(version) character(len=10), intent(out) :: version end subroutine xc_f90_version_string end interface !---------------------------------------------------------------- interface integer function xc_f90_info_number(info) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: info end function xc_f90_info_number integer function xc_f90_info_kind(info) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: info end function xc_f90_info_kind subroutine xc_f90_info_name(info, s) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: info character(len=*), intent(out) :: s end subroutine xc_f90_info_name integer function xc_f90_info_family(info) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: info end function xc_f90_info_family integer function xc_f90_info_flags(info) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: info end function xc_f90_info_flags subroutine xc_f90_info_refs(info, number, s) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: info integer, intent(inout) :: number ! number of the reference. Must be 0 in the first call character(len=*), intent(out) :: s ! the string that is output end subroutine xc_f90_info_refs subroutine xc_f90_functional_get_name(func_number, func_string) integer, intent(in) :: func_number character(len=256), intent(out) :: func_string end subroutine xc_f90_functional_get_name integer function xc_f90_functional_get_number(func_string) character(len=*), intent(in) :: func_string end function xc_f90_functional_get_number integer function xc_f90_family_from_id(id) use xc_f90_types_m integer, intent(in) :: id end function xc_f90_family_from_id integer function xc_f90_number_of_functionals() use xc_f90_types_m end function xc_f90_number_of_functionals integer function xc_f90_maximum_name_length() use xc_f90_types_m end function xc_f90_maximum_name_length subroutine xc_f90_available_functional_numbers(list) use xc_f90_types_m integer, intent(out) :: list end subroutine xc_f90_available_functional_numbers end interface !---------------------------------------------------------------- interface subroutine xc_f90_func_init(p, info, functional, nspin) use xc_f90_types_m type(xc_f90_pointer_t), intent(out) :: p type(xc_f90_pointer_t), intent(out) :: info integer, intent(in) :: functional integer, intent(in) :: nspin end subroutine xc_f90_func_init subroutine xc_f90_func_end(p) use xc_f90_types_m type(xc_f90_pointer_t), intent(inout) :: p end subroutine xc_f90_func_end subroutine xc_f90_func_set_dens_threshold(p, dens_threshold) use xc_f90_types_m type(xc_f90_pointer_t), intent(inout) :: p real(xc_f90_kind), intent(in) :: dens_threshold end subroutine xc_f90_func_set_dens_threshold subroutine xc_f90_func_set_ext_params(p, ext_params) use xc_f90_types_m type(xc_f90_pointer_t), intent(inout) :: p real(xc_f90_kind), intent(in) :: ext_params end subroutine xc_f90_func_set_ext_params end interface ! LDAs !---------------------------------------------------------------- interface subroutine xc_f90_lda(p, np, rho, zk, vrho, fxc, kxc) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: zk ! the energy per unit particle real(xc_f90_kind), intent(out) :: vrho ! v(nspin) the potential real(xc_f90_kind), intent(out) :: fxc ! v(nspin,nspin) the xc kernel real(xc_f90_kind), intent(out) :: kxc ! v(nspin,nspin,nspin) the derivative of xc kernel end subroutine xc_f90_lda subroutine xc_f90_lda_exc(p, np, rho, zk) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: zk ! the energy per unit particle end subroutine xc_f90_lda_exc subroutine xc_f90_lda_exc_vxc(p, np, rho, e, v) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: e ! the energy per unit particle real(xc_f90_kind), intent(out) :: v ! v(nspin) the potential end subroutine xc_f90_lda_exc_vxc subroutine xc_f90_lda_vxc(p, np, rho, v) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: v ! v(nspin) the potential end subroutine xc_f90_lda_vxc subroutine xc_f90_lda_vxc_fxc(p, np, rho, v, fxc) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: v ! v(nspin) the potential real(xc_f90_kind), intent(out) :: fxc ! v(nspin,nspin) the xc kernel end subroutine xc_f90_lda_vxc_fxc subroutine xc_f90_lda_fxc(p, np, rho, fxc) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: fxc ! v(nspin,nspin) the xc kernel end subroutine xc_f90_lda_fxc subroutine xc_f90_lda_kxc(p, np, rho, kxc) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(out) :: kxc end subroutine xc_f90_lda_kxc end interface ! GGAs !---------------------------------------------------------------- interface subroutine xc_f90_gga(p, np, rho, sigma, zk, vrho, vsigma, & v2rho2, v2rhosigma, v2sigma2, v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: zk real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma real(xc_f90_kind), intent(out) :: v2rho2 real(xc_f90_kind), intent(out) :: v2rhosigma real(xc_f90_kind), intent(out) :: v2sigma2 real(xc_f90_kind), intent(out) :: v3rho3 real(xc_f90_kind), intent(out) :: v3rho2sigma real(xc_f90_kind), intent(out) :: v3rhosigma2 real(xc_f90_kind), intent(out) :: v3sigma3 end subroutine xc_f90_gga subroutine xc_f90_gga_exc(p, np, rho, sigma, zk) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: zk end subroutine xc_f90_gga_exc subroutine xc_f90_gga_exc_vxc(p, np, rho, sigma, zk, vrho, vsigma) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: zk real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma end subroutine xc_f90_gga_exc_vxc subroutine xc_f90_gga_vxc(p, np, rho, sigma, vrho, vsigma) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma end subroutine xc_f90_gga_vxc subroutine xc_f90_gga_vxc_fxc(p, np, rho, sigma, vrho, vsigma, v2rho2, v2rhosigma, v2sigma2) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma real(xc_f90_kind), intent(out) :: v2rho2 real(xc_f90_kind), intent(out) :: v2rhosigma real(xc_f90_kind), intent(out) :: v2sigma2 end subroutine xc_f90_gga_vxc_fxc subroutine xc_f90_gga_fxc(p, np, rho, sigma, v2rho2, v2rhosigma, v2sigma2) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: v2rho2 real(xc_f90_kind), intent(out) :: v2rhosigma real(xc_f90_kind), intent(out) :: v2sigma2 end subroutine xc_f90_gga_fxc subroutine xc_f90_gga_kxc(p, np, rho, sigma, v3rho3, v3rho2sigma, v3rhosigma2, v3sigma3) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(out) :: v3rho3 real(xc_f90_kind), intent(out) :: v3rho2sigma real(xc_f90_kind), intent(out) :: v3rhosigma2 real(xc_f90_kind), intent(out) :: v3sigma3 end subroutine xc_f90_gga_kxc end interface !---------------------------------------------------------------- interface subroutine xc_f90_gga_lb_modified(p, np, rho, grho, r, dedd) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho ! rho(nspin) the density real(xc_f90_kind), intent(in) :: grho ! grho(3,nspin) the gradient of the density real(xc_f90_kind), intent(in) :: r ! distance from center of finite system real(xc_f90_kind), intent(out) :: dedd end subroutine xc_f90_gga_lb_modified end interface !---------------------------------------------------------------- interface subroutine xc_f90_gga_ak13_get_asymptotic(homo, asymp) use xc_f90_types_m real(xc_f90_kind), intent(in) :: homo real(xc_f90_kind), intent(out) :: asymp end subroutine xc_f90_gga_ak13_get_asymptotic end interface !---------------------------------------------------------------- interface subroutine xc_f90_hyb_exx_coef(p, coef) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p real(xc_f90_kind), intent(out) :: coef end subroutine xc_f90_hyb_exx_coef subroutine xc_f90_hyb_cam_coef(p, omega, alpha, beta) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p real(xc_f90_kind), intent(out) :: omega, alpha, beta end subroutine xc_f90_hyb_cam_coef subroutine xc_f90_nlc_coef(p, nlc_b, nlc_c) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p real(xc_f90_kind), intent(out) :: nlc_b, nlc_c end subroutine xc_f90_nlc_coef end interface ! the meta-GGAs !---------------------------------------------------------------- interface subroutine xc_f90_mgga(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau, & v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, v2rhotau, & v2sigmalapl, v2sigmatau, v2lapltau) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(in) :: lapl real(xc_f90_kind), intent(in) :: tau real(xc_f90_kind), intent(out) :: zk real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma real(xc_f90_kind), intent(out) :: vlapl real(xc_f90_kind), intent(out) :: vtau real(xc_f90_kind), intent(out) :: v2rho2 real(xc_f90_kind), intent(out) :: v2sigma2 real(xc_f90_kind), intent(out) :: v2lapl2 real(xc_f90_kind), intent(out) :: v2tau2 real(xc_f90_kind), intent(out) :: v2rhosigma real(xc_f90_kind), intent(out) :: v2rholapl real(xc_f90_kind), intent(out) :: v2rhotau real(xc_f90_kind), intent(out) :: v2sigmalapl real(xc_f90_kind), intent(out) :: v2sigmatau real(xc_f90_kind), intent(out) :: v2lapltau end subroutine xc_f90_mgga subroutine xc_f90_mgga_exc(p, np, rho, sigma, lapl, tau, zk) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(in) :: lapl real(xc_f90_kind), intent(in) :: tau real(xc_f90_kind), intent(out) :: zk end subroutine xc_f90_mgga_exc subroutine xc_f90_mgga_exc_vxc(p, np, rho, sigma, lapl, tau, zk, vrho, vsigma, vlapl, vtau) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(in) :: lapl real(xc_f90_kind), intent(in) :: tau real(xc_f90_kind), intent(out) :: zk real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma real(xc_f90_kind), intent(out) :: vlapl real(xc_f90_kind), intent(out) :: vtau end subroutine xc_f90_mgga_exc_vxc subroutine xc_f90_mgga_vxc(p, np, rho, sigma, lapl, tau, vrho, vsigma, vlapl, vtau) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(in) :: lapl real(xc_f90_kind), intent(in) :: tau real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma real(xc_f90_kind), intent(out) :: vlapl real(xc_f90_kind), intent(out) :: vtau end subroutine xc_f90_mgga_vxc subroutine xc_f90_mgga_vxc_fxc(p, np, rho, sigma, lapl, tau, & vrho, vsigma, vlapl, vtau, & v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, v2rhotau, & v2sigmalapl, v2sigmatau, v2lapltau) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(in) :: lapl real(xc_f90_kind), intent(in) :: tau real(xc_f90_kind), intent(out) :: vrho real(xc_f90_kind), intent(out) :: vsigma real(xc_f90_kind), intent(out) :: vlapl real(xc_f90_kind), intent(out) :: vtau real(xc_f90_kind), intent(out) :: v2rho2 real(xc_f90_kind), intent(out) :: v2sigma2 real(xc_f90_kind), intent(out) :: v2lapl2 real(xc_f90_kind), intent(out) :: v2tau2 real(xc_f90_kind), intent(out) :: v2rhosigma real(xc_f90_kind), intent(out) :: v2rholapl real(xc_f90_kind), intent(out) :: v2rhotau real(xc_f90_kind), intent(out) :: v2sigmalapl real(xc_f90_kind), intent(out) :: v2sigmatau real(xc_f90_kind), intent(out) :: v2lapltau end subroutine xc_f90_mgga_vxc_fxc subroutine xc_f90_mgga_fxc(p, np, rho, sigma, lapl, tau, & v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, v2rhotau, & v2sigmalapl, v2sigmatau, v2lapltau) use xc_f90_types_m type(xc_f90_pointer_t), intent(in) :: p integer, intent(in) :: np real(xc_f90_kind), intent(in) :: rho real(xc_f90_kind), intent(in) :: sigma real(xc_f90_kind), intent(in) :: lapl real(xc_f90_kind), intent(in) :: tau real(xc_f90_kind), intent(out) :: v2rho2 real(xc_f90_kind), intent(out) :: v2sigma2 real(xc_f90_kind), intent(out) :: v2lapl2 real(xc_f90_kind), intent(out) :: v2tau2 real(xc_f90_kind), intent(out) :: v2rhosigma real(xc_f90_kind), intent(out) :: v2rholapl real(xc_f90_kind), intent(out) :: v2rhotau real(xc_f90_kind), intent(out) :: v2sigmalapl real(xc_f90_kind), intent(out) :: v2sigmatau real(xc_f90_kind), intent(out) :: v2lapltau end subroutine xc_f90_mgga_fxc end interface end module xc_f90_lib_m !! Local Variables: !! mode: f90 !! coding: utf-8 !! End: elk-6.3.2/src/PaxHeaders.21352/libxcifc.f900000644000000000000000000000013013543334737014732 xustar0029 mtime=1569569247.28364025 30 atime=1569569247.280640252 29 ctime=1569569247.28364025 elk-6.3.2/src/libxcifc.f900000644002504400250440000004063113543334737017007 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2009 T. McQueen and J. K. Dewhurst. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. module libxcifc use xc_f90_lib_m ! libxc version number integer libxcv(3) contains !BOP ! !ROUTINE: xcifc_libxc ! !INTERFACE: subroutine xcifc_libxc(xctype,n,c_tb09,tempa,rho,rhoup,rhodn,g2rho,g2up,g2dn, & grho2,gup2,gdn2,gupdn,tau,tauup,taudn,ex,ec,vx,vc,vxup,vxdn,vcup,vcdn,dxdgr2, & dxdgu2,dxdgd2,dxdgud,dcdgr2,dcdgu2,dcdgd2,dcdgud,dxdg2r,dxdg2u,dxdg2d,dcdg2r, & dcdg2u,dcdg2d,wx,wxup,wxdn,wc,wcup,wcdn) ! !INPUT/OUTPUT PARAMETERS: ! xctype : type of exchange-correlation functional (in,integer(3)) ! n : number of density points (in,integer) ! c_tb09 : Tran-Blaha '09 constant c (in,real,optional) ! tempa : temperature in atomic units (in,real,optional) ! rho : spin-unpolarised charge density (in,real(n),optional) ! rhoup : spin-up charge density (in,real(n),optional) ! rhodn : spin-down charge density (in,real(n),optional) ! g2rho : grad^2 rho (in,real(n),optional) ! g2up : grad^2 rhoup (in,real(n),optional) ! g2dn : grad^2 rhodn (in,real(n),optional) ! grho2 : |grad rho|^2 (in,real(n),optional) ! gup2 : |grad rhoup|^2 (in,real(n),optional) ! gdn2 : |grad rhodn|^2 (in,real(n),optional) ! gupdn : (grad rhoup).(grad rhodn) (in,real(n),optional) ! tau : kinetic energy density (in,real(n),optional) ! tauup : spin-up kinetic energy density (in,real(n),optional) ! taudn : spin-down kinetic energy density (in,real(n),optional) ! ex : exchange energy density (out,real(n),optional) ! ec : correlation energy density (out,real(n),optional) ! vx : spin-unpolarised exchange potential (out,real(n),optional) ! vc : spin-unpolarised correlation potential (out,real(n),optional) ! vxup : spin-up exchange potential (out,real(n),optional) ! vxdn : spin-down exchange potential (out,real(n),optional) ! vcup : spin-up correlation potential (out,real(n),optional) ! vcdn : spin-down correlation potential (out,real(n),optional) ! dxdgr2 : de_x/d(|grad rho|^2) (out,real(n),optional) ! dxdgu2 : de_x/d(|grad rhoup|^2) (out,real(n),optional) ! dxdgd2 : de_x/d(|grad rhodn|^2) (out,real(n),optional) ! dxdgud : de_x/d((grad rhoup).(grad rhodn)) (out,real(n),optional) ! dcdgr2 : de_c/d(|grad rho|^2) (out,real(n),optional) ! dcdgu2 : de_c/d(|grad rhoup|^2) (out,real(n),optional) ! dcdgd2 : de_c/d(|grad rhodn|^2) (out,real(n),optional) ! dcdgud : de_c/d((grad rhoup).(grad rhodn)) (out,real(n),optional) ! dxdg2r : de_x/d(grad^2 rho) (out,real(n),optional) ! dxdg2u : de_x/d(grad^2 rhoup) (out,real(n),optional) ! dxdg2d : de_x/d(grad^2 rhodn) (out,real(n),optional) ! dcdg2r : de_c/d(grad^2 rho) (out,real(n),optional) ! dcdg2u : de_c/d(grad^2 rhoup) (out,real(n),optional) ! dcdg2d : de_c/d(grad^2 rhodn) (out,real(n),optional) ! wx : de_x/dtau (out,real(n),optional) ! wxup : de_x/dtauup (out,real(n),optional) ! wxdn : de_x/dtaudn (out,real(n),optional) ! wc : de_c/dtau (out,real(n),optional) ! wcup : de_c/dtauup (out,real(n),optional) ! wcdn : de_c/dtaudn (out,real(n),optional) ! !DESCRIPTION: ! Interface to the ETSF {\tt libxc} exchange-correlation functional library: ! \newline{\tt http://www.tddft.org/programs/octopus/wiki/index.php/Libxc}. ! The second and third integers in {\tt xctype} define the exchange and ! correlation functionals in {\tt libxc}, respectively. ! ! !REVISION HISTORY: ! Created April 2009 (Tyrel McQueen) ! Modified September 2009 (JKD and TMQ) ! Updated for Libxc 1, July 2010 (JKD) ! Updated for Libxc 4, March 2018 (JKD) !EOP !BOC implicit none ! mandatory arguments integer, intent(in) :: xctype(3),n ! optional arguments real(8), optional, intent(in) :: c_tb09,tempa real(8), optional, intent(in) :: rho(n),rhoup(n),rhodn(n) real(8), optional, intent(in) :: g2rho(n),g2up(n),g2dn(n) real(8), optional, intent(in) :: grho2(n),gup2(n),gdn2(n),gupdn(n) real(8), optional, intent(in) :: tau(n),tauup(n),taudn(n) real(8), optional, intent(out) :: ex(n),ec(n),vx(n),vc(n) real(8), optional, intent(out) :: vxup(n),vxdn(n),vcup(n),vcdn(n) real(8), optional, intent(out) :: dxdgr2(n),dxdgu2(n),dxdgd2(n),dxdgud(n) real(8), optional, intent(out) :: dxdg2r(n),dxdg2u(n),dxdg2d(n) real(8), optional, intent(out) :: wx(n),wxup(n),wxdn(n) real(8), optional, intent(out) :: dcdgr2(n),dcdgu2(n),dcdgd2(n),dcdgud(n) real(8), optional, intent(out) :: dcdg2r(n),dcdg2u(n),dcdg2d(n) real(8), optional, intent(out) :: wc(n),wcup(n),wcdn(n) ! local variables integer nspin,xcf,id,k type(xc_f90_pointer_t) p,info real(8) ta ! allocatable arrays real(8), allocatable :: r(:,:),sigma(:,:),vrho(:,:),vsigma(:,:) real(8), allocatable :: lapl(:,:),t(:,:),vlapl(:,:),vtau(:,:) if (present(rho)) then nspin=XC_UNPOLARIZED else if (present(rhoup).and.present(rhodn)) then nspin=XC_POLARIZED else write(*,*) write(*,'("Error(xcifc_libxc): missing arguments")') write(*,*) stop end if if (xctype(2).ne.0) then if (xctype(2).eq.xctype(3)) then write(*,*) write(*,'("Error(xcifc_libxc): Libxc exchange and correlation & &functionals")') write(*,'(" are the same : ",2I8)') xctype(2:3) write(*,*) stop end if end if ! loop over functional kinds (exchange or correlation) do k=2,3 id=xctype(k) if (id.gt.0) then xcf=xc_f90_family_from_id(id) ! initialise functional call xc_f90_func_init(p,info,id,nspin) select case(xcf) case(XC_FAMILY_LDA) !-------------------------! ! LDA functionals ! !-------------------------! ! set temperature for free energy functional if ((id.eq.XC_LDA_XC_KSDT).or.(id.eq.XC_LDA_XC_GDSMFB)) then call xc_f90_func_set_ext_params(p,tempa) end if if (k.eq.2) then ! exchange if (present(rho)) then call xc_f90_lda_exc_vxc(p,n,rho(1),ex(1),vx(1)) else allocate(r(2,n),vrho(2,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) call xc_f90_lda_exc_vxc(p,n,r(1,1),ex(1),vrho(1,1)) vxup(:)=vrho(1,:); vxdn(:)=vrho(2,:) deallocate(r,vrho) end if else ! correlation if (present(rho)) then call xc_f90_lda_exc_vxc(p,n,rho(1),ec(1),vc(1)) else allocate(r(2,n),vrho(2,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) call xc_f90_lda_exc_vxc(p,n,r(1,1),ec(1),vrho(1,1)) vcup(:)=vrho(1,:); vcdn=vrho(2,:) deallocate(r,vrho) end if end if case(XC_FAMILY_GGA,XC_FAMILY_HYB_GGA) !-------------------------! ! GGA functionals ! !-------------------------! if (k.eq.2) then ! exchange if (present(rho)) then call xc_f90_gga_exc_vxc(p,n,rho(1),grho2(1),ex(1),vx(1),dxdgr2(1)) else allocate(r(2,n),sigma(3,n),vrho(2,n),vsigma(3,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) sigma(1,:)=gup2(:); sigma(2,:)=gupdn(:); sigma(3,:)=gdn2(:) call xc_f90_gga_exc_vxc(p,n,r(1,1),sigma(1,1),ex(1),vrho(1,1), & vsigma(1,1)) vxup(:)=vrho(1,:); vxdn(:)=vrho(2,:) dxdgu2(:)=vsigma(1,:); dxdgud(:)=vsigma(2,:); dxdgd2(:)=vsigma(3,:) deallocate(r,sigma,vrho,vsigma) end if else ! correlation if (present(rho)) then call xc_f90_gga_exc_vxc(p,n,rho(1),grho2(1),ec(1),vc(1),dcdgr2(1)) else allocate(r(2,n),sigma(3,n),vrho(2,n),vsigma(3,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) sigma(1,:)=gup2(:); sigma(2,:)=gupdn(:); sigma(3,:)=gdn2(:) call xc_f90_gga_exc_vxc(p,n,r(1,1),sigma(1,1),ec(1),vrho(1,1), & vsigma(1,1)) vcup(:)=vrho(1,:); vcdn(:)=vrho(2,:) dcdgu2(:)=vsigma(1,:); dcdgud(:)=vsigma(2,:); dcdgd2(:)=vsigma(3,:) deallocate(r,sigma,vrho,vsigma) end if end if case(XC_FAMILY_MGGA) !------------------------------! ! meta-GGA functionals ! !------------------------------! ! set Tran-Blaha '09 constant if required if (id.eq.XC_MGGA_X_TB09) then if (present(c_tb09)) call xc_f90_func_set_ext_params(p,c_tb09) end if if (k.eq.2) then ! exchange if (present(rho)) then if (present(ex)) then ! spin-unpolarised energy functional call xc_f90_mgga_exc_vxc(p,n,rho(1),grho2(1),g2rho(1),tau(1), & ex(1),vx(1),dxdgr2(1),dxdg2r(1),wx(1)) else ! spin-unpolarised potential-only functional allocate(vsigma(1,n),vlapl(1,n),vtau(1,n)) call xc_f90_mgga_vxc(p,n,rho(1),grho2(1),g2rho(1),tau(1),vx(1), & vsigma(1,1),vlapl(1,1),vtau(1,1)) deallocate(vsigma,vlapl,vtau) end if else allocate(r(2,n),sigma(3,n),lapl(2,n),t(2,n)) allocate(vrho(2,n),vsigma(3,n),vlapl(2,n),vtau(2,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) sigma(1,:)=gup2(:); sigma(2,:)=gupdn(:); sigma(3,:)=gdn2(:) lapl(1,:)=g2up(:); lapl(2,:)=g2dn(:) t(1,:)=tauup(:); t(2,:)=taudn(:) if (present(ex)) then ! spin-polarised energy functional call xc_f90_mgga_exc_vxc(p,n,r(1,1),sigma(1,1),lapl(1,1),t(1,1), & ex(1),vrho(1,1),vsigma(1,1),vlapl(1,1),vtau(1,1)) dxdgu2(:)=vsigma(1,:); dxdgud(:)=vsigma(2,:); dxdgd2(:)=vsigma(3,:) dxdg2u(:)=vlapl(1,:); dxdg2d(:)=vlapl(2,:) wxup(:)=vtau(1,:); wxdn(:)=vtau(2,:) else ! spin-polarised potential-only functional call xc_f90_mgga_vxc(p,n,r(1,1),sigma(1,1),lapl(1,1),t(1,1), & vrho(1,1),vsigma(1,1),vlapl(1,1),vtau(1,1)) end if vxup(:)=vrho(1,:); vxdn(:)=vrho(2,:) deallocate(r,sigma,lapl,t) deallocate(vrho,vsigma,vlapl,vtau) end if else ! correlation if (present(rho)) then if (present(ec)) then call xc_f90_mgga_exc_vxc(p,n,rho(1),grho2(1),g2rho(1),tau(1), & ec(1),vc(1),dcdgr2(1),dcdg2r(1),wc(1)) else allocate(vsigma(1,n),vlapl(1,n),vtau(1,n)) call xc_f90_mgga_vxc(p,n,rho(1),grho2(1),g2rho(1),tau(1),vc(1), & vsigma(1,1),vlapl(1,1),vtau(1,1)) deallocate(vsigma,vlapl,vtau) end if else allocate(r(2,n),sigma(3,n),lapl(2,n),t(2,n)) allocate(vrho(2,n),vsigma(3,n),vlapl(2,n),vtau(2,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) sigma(1,:)=gup2(:); sigma(2,:)=gupdn(:); sigma(3,:)=gdn2(:) lapl(1,:)=g2up(:); lapl(2,:)=g2dn(:) t(1,:)=tauup(:); t(2,:)=taudn(:) if (present(ec)) then call xc_f90_mgga_exc_vxc(p,n,r(1,1),sigma(1,1),lapl(1,1),t(1,1), & ec(1),vrho(1,1),vsigma(1,1),vlapl(1,1),vtau(1,1)) dcdgu2(:)=vsigma(1,:); dcdgud(:)=vsigma(2,:); dcdgd2(:)=vsigma(3,:) dcdg2u(:)=vlapl(1,:); dcdg2d(:)=vlapl(2,:) wcup(:)=vtau(1,:); wcdn(:)=vtau(2,:) else call xc_f90_mgga_vxc(p,n,r(1,1),sigma(1,1),lapl(1,1),t(1,1), & vrho(1,1),vsigma(1,1),vlapl(1,1),vtau(1,1)) end if vcup(:)=vrho(1,:); vcdn(:)=vrho(2,:) deallocate(r,sigma,lapl,t) deallocate(vrho,vsigma,vlapl,vtau) end if end if case default write(*,*) write(*,'("Error(xcifc_libxc): unsupported Libxc functional family : ",& &I8)') xcf write(*,*) stop end select ! destroy functional call xc_f90_func_end(p) else ! case when id=0 if (k.eq.2) then if (present(ex)) ex(:)=0.d0 if (present(vx)) vx(:)=0.d0 if (present(vxup)) vxup(:)=0.d0 if (present(vxdn)) vxdn(:)=0.d0 if (present(dxdgr2)) dxdgr2(:)=0.d0 if (present(dxdgu2)) dxdgu2(:)=0.d0 if (present(dxdgd2)) dxdgd2(:)=0.d0 if (present(dxdgud)) dxdgud(:)=0.d0 else if (present(ec)) ec(:)=0.d0 if (present(vc)) vc(:)=0.d0 if (present(vcup)) vcup(:)=0.d0 if (present(vcdn)) vcdn(:)=0.d0 if (present(dcdgr2)) dcdgr2(:)=0.d0 if (present(dcdgu2)) dcdgu2(:)=0.d0 if (present(dcdgd2)) dcdgd2(:)=0.d0 if (present(dcdgud)) dcdgud(:)=0.d0 end if end if end do return end subroutine subroutine fxcifc_libxc(fxctype,n,rho,rhoup,rhodn,fxc,fxcuu,fxcud,fxcdd) implicit none ! mandatory arguments integer, intent(in) :: fxctype(3),n ! optional arguments real(8), optional, intent(in) :: rho(n),rhoup(n),rhodn(n) real(8), optional, intent(out) :: fxc(n),fxcuu(n),fxcud(n),fxcdd(n) ! local variables integer nspin,xcf,id,k type(xc_f90_pointer_t) p,info ! allocatable arrays real(8), allocatable :: r(:,:),f(:,:) if (present(rho)) then nspin=XC_UNPOLARIZED else if (present(rhoup).and.present(rhodn)) then nspin=XC_POLARIZED else write(*,*) write(*,'("Error(fxcifc_libxc): missing arguments")') write(*,*) stop end if ! zero the kernel if (present(fxc)) fxc(:)=0.d0 if (present(fxcuu)) fxcuu(:)=0.d0 if (present(fxcud)) fxcud(:)=0.d0 if (present(fxcdd)) fxcdd(:)=0.d0 ! loop over functional kinds (exchange or correlation) do k=2,3 id=fxctype(k) if (id.le.0) cycle xcf=xc_f90_family_from_id(id) ! initialise functional call xc_f90_func_init(p,info,id,nspin) select case(xcf) case(XC_FAMILY_LDA) !-------------------------! ! LDA functionals ! !-------------------------! if (present(rho)) then allocate(f(1,n)) call xc_f90_lda_fxc(p,n,rho(1),f(1,1)) fxc(:)=fxc(:)+f(1,:) deallocate(f) else allocate(r(2,n),f(3,n)) r(1,:)=rhoup(:); r(2,:)=rhodn(:) call xc_f90_lda_fxc(p,n,r(1,1),f(1,1)) fxcuu(:)=fxcuu(:)+f(1,:) fxcud(:)=fxcud(:)+f(2,:) fxcdd(:)=fxcdd(:)+f(3,:) deallocate(r,f) end if case default write(*,*) write(*,'("Error(fxcifc_libxc): unsupported Libxc functional family : ",& &I8)') xcf write(*,*) stop end select end do return end subroutine subroutine xcdata_libxc(xctype,xcdescr,xcspin,xcgrad,hybrid,hybridc) implicit none ! arguments integer, intent(in) :: xctype(3) character(512), intent(out) :: xcdescr integer, intent(out) :: xcspin integer, intent(out) :: xcgrad logical, intent(inout) :: hybrid real(8), intent(inout) :: hybridc ! local variables integer j,k,id integer fmly,flg character(256) name type(xc_f90_pointer_t) p,info ! check version is compatible call xc_f90_version(libxcv(1),libxcv(2),libxcv(3)) if (libxcv(1).ne.4) then write(*,*) write(*,'("Error(xcdata_libxc): incompatible Libxc version : ",I2.2,".",& &I3.3,".",I3.3)') libxcv(:) write(*,*) stop end if ! unknown spin polarisation xcspin=-1 ! no gradients by default xcgrad=0 ! not hybrid by default hybrid=.false. do k=2,3 id=xctype(k) if (id.gt.0) then call xc_f90_func_init(p,info,id,XC_UNPOLARIZED) call xc_f90_info_name(info,name) fmly=xc_f90_family_from_id(id) if (fmly.eq.XC_FAMILY_HYB_GGA) then call xc_f90_hyb_exx_coef(p,hybridc) hybrid=.true. end if call xc_f90_func_end(p) ! hybrids should have only correlation part to avoid double-scaling with hybridc if ((fmly.eq.XC_FAMILY_HYB_GGA).and.(k.eq.2)) then write(*,*) write(*,'("Error(xcdata_libxc): set only correlation part of xctype for & &Libxc hybrids")') write(*,*) stop end if ! functional family if ((fmly.ne.XC_FAMILY_LDA).and.(fmly.ne.XC_FAMILY_GGA).and. & (fmly.ne.XC_FAMILY_HYB_GGA).and.(fmly.ne.XC_FAMILY_MGGA)) then write(*,*) write(*,'("Error(xcdata_libxc): unsupported Libxc family : ",I8)') fmly write(*,*) stop end if ! post-processed gradients required for GGA functionals if (fmly.eq.XC_FAMILY_GGA.or.fmly.eq.XC_FAMILY_HYB_GGA) xcgrad=2 ! kinetic energy density required for meta-GGA functionals if (fmly.eq.XC_FAMILY_MGGA) then flg=xc_f90_info_flags(info) if ((iand(flg,XC_FLAGS_HAVE_VXC).ne.0).and. & (iand(flg,XC_FLAGS_HAVE_EXC).eq.0)) then ! potential-only functional xcgrad=3 else if (iand(flg,XC_FLAGS_HAVE_EXC).ne.0) then ! energy functional xcgrad=4 else write(*,*) write(*,'("Error(xcdata_libxc): unsupported Libxc meta-GGA type")') write(*,*) stop end if ! check if the density laplacian is required if ((xcgrad.eq.4).and.(iand(flg,XC_FLAGS_NEEDS_LAPLACIAN).ne.0)) then write(*,*) write(*,'("Error(xcdata_libxc): energy meta-GGAs requiring the density & &laplacian are not supported")') write(*,*) stop end if end if else name='none' end if if (k.eq.2) then xcdescr='exchange: '//trim(name) else xcdescr=trim(xcdescr)//'; correlation: '//trim(name) end if end do return end subroutine !EOC end module elk-6.3.2/src/PaxHeaders.21352/zfftifc_fftw.f900000644000000000000000000000013213543334737015632 xustar0030 mtime=1569569247.301640238 30 atime=1569569247.300640239 30 ctime=1569569247.301640238 elk-6.3.2/src/zfftifc_fftw.f900000644002504400250440000000270513543334737017705 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfftifc(nd,n,sgn,z) implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn complex(8), intent(inout) :: z(*) ! local variables integer, parameter :: FFTW_ESTIMATE=64 integer p integer(8) plan real(8) t1 ! interface to FFTW version 3 !$OMP CRITICAL(zfftifc_) call dfftw_plan_dft(plan,nd,n,z,z,sgn,FFTW_ESTIMATE) !$OMP END CRITICAL(zfftifc_) call dfftw_execute(plan) !$OMP CRITICAL(zfftifc_) call dfftw_destroy_plan(plan) !$OMP END CRITICAL(zfftifc_) if (sgn.eq.-1) then p=product(n(:)) t1=1.d0/dble(p) call zdscal(p,t1,z,1) end if return end subroutine subroutine rzfftifc(nd,n,sgn,r,z) implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn real(8), intent(inout) :: r(*) complex(8), intent(inout) :: z(*) ! local variables integer, parameter :: FFTW_ESTIMATE=64 integer p integer(8) plan real(8) t1 !$OMP CRITICAL(rzfftifc_) if (sgn.eq.-1) then call dfftw_plan_dft_r2c(plan,nd,n,r,z,FFTW_ESTIMATE) else call dfftw_plan_dft_c2r(plan,nd,n,z,r,FFTW_ESTIMATE) end if !$OMP END CRITICAL(rzfftifc_) call dfftw_execute(plan) !$OMP CRITICAL(rzfftifc_) call dfftw_destroy_plan(plan) !$OMP END CRITICAL(rzfftifc_) if (sgn.eq.-1) then p=product(n(:)) t1=1.d0/dble(p) p=p/n(1) p=p*(n(1)/2+1) call zdscal(p,t1,z,1) end if return end subroutine elk-6.3.2/src/PaxHeaders.21352/zfftifc_mkl.f900000644000000000000000000000013213543334737015447 xustar0030 mtime=1569569247.305640236 30 atime=1569569247.304640236 30 ctime=1569569247.305640236 elk-6.3.2/src/zfftifc_mkl.f900000644002504400250440000000366113543334737017524 0ustar00dewhurstdewhurst00000000000000 ! Copyright (C) 2002-2005 J. K. Dewhurst, S. Sharma and C. Ambrosch-Draxl. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine zfftifc(nd,n,sgn,z) use mkl_dfti implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn complex(8), intent(inout) :: z(*) ! local variables integer status,p real(8) t1 type(DFTI_DESCRIPTOR), pointer :: handle ! interface to the Intel MKL advanced Discreet Fourier Transform (DFT) routines ! (with thanks to Torbjorn Bjorkman) p=product(n(:)) t1=1.d0/dble(p) status=DftiCreateDescriptor(handle,DFTI_DOUBLE,DFTI_COMPLEX,nd,n) status=DftiSetValue(handle,DFTI_FORWARD_SCALE,t1) status=DftiCommitDescriptor(handle) if (sgn.eq.-1) then status=DftiComputeForward(handle,z) else status=DftiComputeBackward(handle,z) end if status=DftiFreeDescriptor(handle) return end subroutine subroutine rzfftifc(nd,n,sgn,r,z) use mkl_dfti implicit none ! arguments integer, intent(in) :: nd,n(nd),sgn real(8), intent(inout) :: r(*) complex(8), intent(inout) :: z(*) ! local variables integer status,p,i real(8) t1 type(DFTI_DESCRIPTOR), pointer :: handle ! automatic arrays integer strides(0:nd) p=product(n(:)) t1=1.d0/dble(p) status=DftiCreateDescriptor(handle,DFTI_DOUBLE,DFTI_REAL,nd,n) status=DftiSetValue(handle,DFTI_CONJUGATE_EVEN_STORAGE,DFTI_COMPLEX_COMPLEX) status=DftiSetValue(handle,DFTI_PLACEMENT,DFTI_NOT_INPLACE) status=DftiSetValue(handle,DFTI_FORWARD_SCALE,t1) strides(0)=0 strides(1)=1 if (nd.gt.1) then strides(2)=n(1)/2+1 do i=2,nd-1 strides(i+1)=strides(i)*n(i) end do end if if (sgn.eq.-1) then status=DftiSetValue(handle,DFTI_OUTPUT_STRIDES,strides) status=DftiCommitDescriptor(handle) status=DftiComputeForward(handle,r,z) else status=DftiSetValue(handle,DFTI_INPUT_STRIDES,strides) status=DftiCommitDescriptor(handle) status=DftiComputeBackward(handle,z,r) end if status=DftiFreeDescriptor(handle) return end subroutine elk-6.3.2/PaxHeaders.21352/examples0000644000000000000000000000013213543334743013600 xustar0030 mtime=1569569251.511637549 30 atime=1569569247.316640229 30 ctime=1569569251.511637549 elk-6.3.2/examples/0000755002504400250440000000000013543334743015724 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/PaxHeaders.21352/BSE0000644000000000000000000000013213543334737014214 xustar0030 mtime=1569569247.358640202 30 atime=1569569247.318640227 30 ctime=1569569247.358640202 elk-6.3.2/examples/BSE/0000755002504400250440000000000013543334737016340 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/BSE/PaxHeaders.21352/Si0000644000000000000000000000013213543334737014567 xustar0030 mtime=1569569247.338640215 30 atime=1569569247.327640222 30 ctime=1569569247.338640215 elk-6.3.2/examples/BSE/Si/0000755002504400250440000000000013543334737016713 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/BSE/Si/PaxHeaders.21352/EPSILON_11.OUT0000644000000000000000000000013213543334737016647 xustar0030 mtime=1569569247.327640222 30 atime=1569569247.321640225 30 ctime=1569569247.327640222 elk-6.3.2/examples/BSE/Si/EPSILON_11.OUT0000644002504400250440000016350613543334737020731 0ustar00dewhurstdewhurst00000000000000 0.000000000 11.66588532 0.1250000000E-02 11.65430648 0.2500000000E-02 11.61124981 0.3750000000E-02 11.51356928 0.5000000000E-02 11.33618510 0.6250000000E-02 11.08496950 0.7500000000E-02 10.81533017 0.8750000000E-02 10.58797550 0.1000000000E-01 10.42531540 0.1125000000E-01 10.32538260 0.1250000000E-01 10.27976752 0.1375000000E-01 10.27373754 0.1500000000E-01 10.28929980 0.1625000000E-01 10.31195281 0.1750000000E-01 10.33401056 0.1875000000E-01 10.35352667 0.2000000000E-01 10.37034339 0.2125000000E-01 10.38534219 0.2250000000E-01 10.40206854 0.2375000000E-01 10.42376516 0.2500000000E-01 10.45035451 0.2625000000E-01 10.48026076 0.2750000000E-01 10.51241792 0.2875000000E-01 10.54606657 0.3000000000E-01 10.58034798 0.3125000000E-01 10.61452198 0.3250000000E-01 10.64829180 0.3375000000E-01 10.68195032 0.3500000000E-01 10.71615309 0.3625000000E-01 10.75142730 0.3750000000E-01 10.78797059 0.3875000000E-01 10.82576250 0.4000000000E-01 10.86470568 0.4125000000E-01 10.90465691 0.4250000000E-01 10.94532003 0.4375000000E-01 10.98615689 0.4500000000E-01 11.02646878 0.4625000000E-01 11.06589616 0.4750000000E-01 11.10512901 0.4875000000E-01 11.14544997 0.5000000000E-01 11.18726601 0.5125000000E-01 11.23021645 0.5250000000E-01 11.27459524 0.5375000000E-01 11.32151176 0.5500000000E-01 11.37173449 0.5625000000E-01 11.42511348 0.5750000000E-01 11.48098154 0.5875000000E-01 11.53876936 0.6000000000E-01 11.59836383 0.6125000000E-01 11.66002470 0.6250000000E-01 11.72397672 0.6375000000E-01 11.79023497 0.6500000000E-01 11.85873416 0.6625000000E-01 11.92944054 0.6750000000E-01 12.00236633 0.6875000000E-01 12.07754405 0.7000000000E-01 12.15499526 0.7125000000E-01 12.23471210 0.7250000000E-01 12.31669111 0.7375000000E-01 12.40106751 0.7500000000E-01 12.48822782 0.7625000000E-01 12.57862618 0.7750000000E-01 12.67250732 0.7875000000E-01 12.76992981 0.8000000000E-01 12.87092234 0.8125000000E-01 12.97555135 0.8250000000E-01 13.08391475 0.8375000000E-01 13.19611514 0.8500000000E-01 13.31223858 0.8625000000E-01 13.43237337 0.8750000000E-01 13.55672765 0.8875000000E-01 13.68577681 0.9000000000E-01 13.82014461 0.9125000000E-01 13.96029233 0.9250000000E-01 14.10647790 0.9375000000E-01 14.25892054 0.9500000000E-01 14.41790102 0.9625000000E-01 14.58377697 0.9750000000E-01 14.75697281 0.9875000000E-01 14.93797229 0.1000000000 15.12731937 0.1012500000 15.32562492 0.1025000000 15.53357150 0.1037500000 15.75191509 0.1050000000 15.98149371 0.1062500000 16.22324573 0.1075000000 16.47823250 0.1087500000 16.74765820 0.1100000000 17.03288436 0.1112500000 17.33544886 0.1125000000 17.65709364 0.1137500000 17.99979326 0.1150000000 18.36577460 0.1162500000 18.75751579 0.1175000000 19.17769827 0.1187500000 19.62905547 0.1200000000 20.11400104 0.1212500000 20.63379473 0.1225000000 21.18675427 0.1237500000 21.76456884 0.1250000000 22.34517818 0.1262500000 22.88095862 0.1275000000 23.28651801 0.1287500000 23.44969343 0.1300000000 23.30623288 0.1312500000 22.94598268 0.1325000000 22.60991062 0.1337500000 22.55880956 0.1350000000 22.91764885 0.1362500000 23.62914353 0.1375000000 24.54219570 0.1387500000 25.48729144 0.1400000000 26.29425940 0.1412500000 26.81782719 0.1425000000 26.99746089 0.1437500000 26.88689145 0.1450000000 26.61995937 0.1462500000 26.29193583 0.1475000000 25.84624877 0.1487500000 25.23837557 0.1500000000 24.63027612 0.1512500000 24.25348519 0.1525000000 24.17246299 0.1537500000 24.25674511 0.1550000000 24.27821973 0.1562500000 24.00545031 0.1575000000 23.36816322 0.1587500000 22.49749292 0.1600000000 21.48572012 0.1612500000 20.28305745 0.1625000000 18.85350783 0.1637500000 17.21839501 0.1650000000 15.37906101 0.1662500000 13.27847992 0.1675000000 10.84726159 0.1687500000 8.143736706 0.1700000000 5.452482046 0.1712500000 3.078634736 0.1725000000 1.083328444 0.1737500000 -0.6798127544 0.1750000000 -2.398544048 0.1762500000 -4.093826040 0.1775000000 -5.504856629 0.1787500000 -6.321029385 0.1800000000 -6.442488533 0.1812500000 -5.957280231 0.1825000000 -5.059098583 0.1837500000 -4.042200943 0.1850000000 -3.232313967 0.1862500000 -2.844639338 0.1875000000 -2.920050747 0.1887500000 -3.389136243 0.1900000000 -4.139978322 0.1912500000 -4.993079474 0.1925000000 -5.680476155 0.1937500000 -5.958466854 0.1950000000 -5.798532232 0.1962500000 -5.365532098 0.1975000000 -4.819008635 0.1987500000 -4.284064922 0.2000000000 -3.921634767 0.2012500000 -3.873955684 0.2025000000 -4.162290855 0.2037500000 -4.683145724 0.2050000000 -5.286239240 0.2062500000 -5.888783582 0.2075000000 -6.500589633 0.2087500000 -7.169462720 0.2100000000 -7.958038022 0.2112500000 -8.874168848 0.2125000000 -9.824656310 0.2137500000 -10.63217438 0.2150000000 -11.11342243 0.2162500000 -11.21482368 0.2175000000 -11.01839659 0.2187500000 -10.66430360 0.2200000000 -10.28947644 0.2212500000 -9.973347702 0.2225000000 -9.735670359 0.2237500000 -9.589092818 0.2250000000 -9.545543858 0.2262500000 -9.574854580 0.2275000000 -9.621513927 0.2287500000 -9.642493979 0.2300000000 -9.612183258 0.2312500000 -9.527090907 0.2325000000 -9.406374905 0.2337500000 -9.261464441 0.2350000000 -9.064871943 0.2362500000 -8.791664938 0.2375000000 -8.478553021 0.2387500000 -8.197018422 0.2400000000 -8.001941193 0.2412500000 -7.916186632 0.2425000000 -7.925996481 0.2437500000 -7.996574932 0.2450000000 -8.094422474 0.2462500000 -8.174047464 0.2475000000 -8.200019114 0.2487500000 -8.200048515 0.2500000000 -8.237830320 0.2512500000 -8.329109249 0.2525000000 -8.414889572 0.2537500000 -8.435251310 0.2550000000 -8.402010028 0.2562500000 -8.362861480 0.2575000000 -8.333448953 0.2587500000 -8.287874491 0.2600000000 -8.198767669 0.2612500000 -8.070583978 0.2625000000 -7.917737162 0.2637500000 -7.732721975 0.2650000000 -7.508774259 0.2662500000 -7.261596185 0.2675000000 -7.008429674 0.2687500000 -6.757795714 0.2700000000 -6.524118406 0.2712500000 -6.331715744 0.2725000000 -6.202164742 0.2737500000 -6.140982086 0.2750000000 -6.132027987 0.2762500000 -6.140570097 0.2775000000 -6.134437462 0.2787500000 -6.111013304 0.2800000000 -6.084979060 0.2812500000 -6.052434203 0.2825000000 -5.991885783 0.2837500000 -5.887709990 0.2850000000 -5.738695068 0.2862500000 -5.560384940 0.2875000000 -5.379941004 0.2887500000 -5.218994201 0.2900000000 -5.081630146 0.2912500000 -4.964121423 0.2925000000 -4.868101406 0.2937500000 -4.792050413 0.2950000000 -4.724151301 0.2962500000 -4.659490024 0.2975000000 -4.603612330 0.2987500000 -4.559699686 0.3000000000 -4.537103914 0.3012500000 -4.553927583 0.3025000000 -4.608110162 0.3037500000 -4.665372049 0.3050000000 -4.691811867 0.3062500000 -4.680893920 0.3075000000 -4.645279156 0.3087500000 -4.597033682 0.3100000000 -4.541341689 0.3112500000 -4.483021935 0.3125000000 -4.426647674 0.3137500000 -4.368723764 0.3150000000 -4.302164024 0.3162500000 -4.224915734 0.3175000000 -4.137679465 0.3187500000 -4.043116812 0.3200000000 -3.948665696 0.3212500000 -3.860010684 0.3225000000 -3.774947099 0.3237500000 -3.688177003 0.3250000000 -3.597922073 0.3262500000 -3.508310180 0.3275000000 -3.428555205 0.3287500000 -3.364198508 0.3300000000 -3.308886162 0.3312500000 -3.249778415 0.3325000000 -3.178980212 0.3337500000 -3.096860517 0.3350000000 -3.008242899 0.3362500000 -2.919250132 0.3375000000 -2.833526850 0.3387500000 -2.749032456 0.3400000000 -2.663348102 0.3412500000 -2.580152814 0.3425000000 -2.506918564 0.3437500000 -2.452624420 0.3450000000 -2.423938182 0.3462500000 -2.418800989 0.3475000000 -2.434232531 0.3487500000 -2.478663395 0.3500000000 -2.562642787 0.3512500000 -2.682432280 0.3525000000 -2.817524837 0.3537500000 -2.935571292 0.3550000000 -3.004170163 0.3562500000 -3.012174418 0.3575000000 -2.975992936 0.3587500000 -2.920329830 0.3600000000 -2.859402353 0.3612500000 -2.798588158 0.3625000000 -2.742679753 0.3637500000 -2.697244109 0.3650000000 -2.666924475 0.3662500000 -2.649306588 0.3675000000 -2.633356971 0.3687500000 -2.610752157 0.3700000000 -2.581665078 0.3712500000 -2.547293397 0.3725000000 -2.505701179 0.3737500000 -2.457624553 0.3750000000 -2.410832292 0.3762500000 -2.374832930 0.3775000000 -2.352556076 0.3787500000 -2.341148494 0.3800000000 -2.339769224 0.3812500000 -2.348170927 0.3825000000 -2.359406428 0.3837500000 -2.362866457 0.3850000000 -2.351297718 0.3862500000 -2.324480464 0.3875000000 -2.289981450 0.3887500000 -2.257239655 0.3900000000 -2.228610977 0.3912500000 -2.198651864 0.3925000000 -2.162711610 0.3937500000 -2.121706156 0.3950000000 -2.079041167 0.3962500000 -2.036012752 0.3975000000 -1.991711166 0.3987500000 -1.946978717 0.4000000000 -1.905611853 0.4012500000 -1.871443196 0.4025000000 -1.847385004 0.4037500000 -1.834857863 0.4050000000 -1.829657747 0.4062500000 -1.822969987 0.4075000000 -1.809839274 0.4087500000 -1.791717774 0.4100000000 -1.773061118 0.4112500000 -1.759225704 0.4125000000 -1.752995945 0.4137500000 -1.752580671 0.4150000000 -1.753344548 0.4162500000 -1.748997942 0.4175000000 -1.734249043 0.4187500000 -1.708954428 0.4200000000 -1.677326282 0.4212500000 -1.643905707 0.4225000000 -1.613267238 0.4237500000 -1.590569185 0.4250000000 -1.579799331 0.4262500000 -1.582592088 0.4275000000 -1.598667852 0.4287500000 -1.624818758 0.4300000000 -1.652753855 0.4312500000 -1.672289400 0.4325000000 -1.678318704 0.4337500000 -1.671758655 0.4350000000 -1.655064480 0.4362500000 -1.630837315 0.4375000000 -1.602290599 0.4387500000 -1.571798821 0.4400000000 -1.539180569 0.4412500000 -1.502601231 0.4425000000 -1.461819730 0.4437500000 -1.419191272 0.4450000000 -1.378344094 0.4462500000 -1.343121722 0.4475000000 -1.316243164 0.4487500000 -1.297665387 0.4500000000 -1.284970756 0.4512500000 -1.275859624 0.4525000000 -1.269429052 0.4537500000 -1.265471200 0.4550000000 -1.263254541 0.4562500000 -1.261447950 0.4575000000 -1.258475121 0.4587500000 -1.253095720 0.4600000000 -1.244979511 0.4612500000 -1.233100960 0.4625000000 -1.215224445 0.4637500000 -1.190183446 0.4650000000 -1.159257842 0.4662500000 -1.126235073 0.4675000000 -1.096507447 0.4687500000 -1.074024188 0.4700000000 -1.058051451 0.4712500000 -1.043873924 0.4725000000 -1.027503892 0.4737500000 -1.008900116 0.4750000000 -0.9907326928 0.4762500000 -0.9752809848 0.4775000000 -0.9627725018 0.4787500000 -0.9521199904 0.4800000000 -0.9428379714 0.4812500000 -0.9359933340 0.4825000000 -0.9330509120 0.4837500000 -0.9337720692 0.4850000000 -0.9352468824 0.4862500000 -0.9331709950 0.4875000000 -0.9247145455 0.4887500000 -0.9107175575 0.4900000000 -0.8944702991 0.4912500000 -0.8785137292 0.4925000000 -0.8635046082 0.4937500000 -0.8498004839 0.4950000000 -0.8382791318 0.4962500000 -0.8292399690 0.4975000000 -0.8224139924 0.4987500000 -0.8174824909 0.5000000000 -0.8142533421 0.5012500000 -0.8133343439 0.5025000000 -0.8146931317 0.5037500000 -0.8158575729 0.5050000000 -0.8142723457 0.5062500000 -0.8094665113 0.5075000000 -0.8017441448 0.5087500000 -0.7909309190 0.5100000000 -0.7766267934 0.5112500000 -0.7598022156 0.5125000000 -0.7429406319 0.5137500000 -0.7277376805 0.5150000000 -0.7139857800 0.5162500000 -0.7009228677 0.5175000000 -0.6885285954 0.5187500000 -0.6775224700 0.5200000000 -0.6696579225 0.5212500000 -0.6672800548 0.5225000000 -0.6702610116 0.5237500000 -0.6744072267 0.5250000000 -0.6752425562 0.5262500000 -0.6724232563 0.5275000000 -0.6688321800 0.5287500000 -0.6671197923 0.5300000000 -0.6677175695 0.5312500000 -0.6687328482 0.5325000000 -0.6680209973 0.5337500000 -0.6644706049 0.5350000000 -0.6574054085 0.5362500000 -0.6463563300 0.5375000000 -0.6314593062 0.5387500000 -0.6137489553 0.5400000000 -0.5950536275 0.5412500000 -0.5773277868 0.5425000000 -0.5614904049 0.5437500000 -0.5469856388 0.5450000000 -0.5330414399 0.5462500000 -0.5199444997 0.5475000000 -0.5086441448 0.5487500000 -0.5000611035 0.5500000000 -0.4944998296 0.5512500000 -0.4907893726 0.5525000000 -0.4865660040 0.5537500000 -0.4804388777 0.5550000000 -0.4733681583 0.5562500000 -0.4675038641 0.5575000000 -0.4647029890 0.5587500000 -0.4654924924 0.5600000000 -0.4683190875 0.5612500000 -0.4706949093 0.5625000000 -0.4708275463 0.5637500000 -0.4678109555 0.5650000000 -0.4613233126 0.5662500000 -0.4516370878 0.5675000000 -0.4397638701 0.5687500000 -0.4272282785 0.5700000000 -0.4151517203 0.5712500000 -0.4039355612 0.5725000000 -0.3937606140 0.5737500000 -0.3849908354 0.5750000000 -0.3782037341 0.5762500000 -0.3736426795 0.5775000000 -0.3704009953 0.5787500000 -0.3667913668 0.5800000000 -0.3620191429 0.5812500000 -0.3568622383 0.5825000000 -0.3523916158 0.5837500000 -0.3486003778 0.5850000000 -0.3448862760 0.5862500000 -0.3414081564 0.5875000000 -0.3390422620 0.5887500000 -0.3380820536 0.5900000000 -0.3373545515 0.5912500000 -0.3348838078 0.5925000000 -0.3292754245 0.5937500000 -0.3203392147 0.5950000000 -0.3090125301 0.5962500000 -0.2967833188 0.5975000000 -0.2849587297 0.5987500000 -0.2744529520 0.6000000000 -0.2659128907 0.6012500000 -0.2594242775 0.6025000000 -0.2540889359 0.6037500000 -0.2485631459 0.6050000000 -0.2421406798 0.6062500000 -0.2351890749 0.6075000000 -0.2286354907 0.6087500000 -0.2230110001 0.6100000000 -0.2181701783 0.6112500000 -0.2137432695 0.6125000000 -0.2094826845 0.6137500000 -0.2055018676 0.6150000000 -0.2022862021 0.6162500000 -0.1999819511 0.6175000000 -0.1978953021 0.6187500000 -0.1951055813 0.6200000000 -0.1910803903 0.6212500000 -0.1856189271 0.6225000000 -0.1786936314 0.6237500000 -0.1706404993 0.6250000000 -0.1621807955 0.6262500000 -0.1539711738 0.6275000000 -0.1461522219 0.6287500000 -0.1382743735 0.6300000000 -0.1297289723 0.6312500000 -0.1203504250 0.6325000000 -0.1105621129 0.6337500000 -0.1010321852 0.6350000000 -0.9236878597E-01 0.6362500000 -0.8485358101E-01 0.6375000000 -0.7840343407E-01 0.6387500000 -0.7277517738E-01 0.6400000000 -0.6769645678E-01 0.6412500000 -0.6296898715E-01 0.6425000000 -0.5851633847E-01 0.6437500000 -0.5445330075E-01 0.6450000000 -0.5109982492E-01 0.6462500000 -0.4885026403E-01 0.6475000000 -0.4802120929E-01 0.6487500000 -0.4876692633E-01 0.6500000000 -0.5075753584E-01 0.6512500000 -0.5300450334E-01 0.6525000000 -0.5439122628E-01 0.6537500000 -0.5428555963E-01 0.6550000000 -0.5241194570E-01 0.6562500000 -0.4850531394E-01 0.6575000000 -0.4255724166E-01 0.6587500000 -0.3506384330E-01 0.6600000000 -0.2670947909E-01 0.6612500000 -0.1813546232E-01 0.6625000000 -0.9973611733E-02 0.6637500000 -0.2718510833E-02 0.6650000000 0.3386128725E-02 0.6662500000 0.8207574825E-02 0.6675000000 0.1175705001E-01 0.6687500000 0.1446181965E-01 0.6700000000 0.1690939744E-01 0.6712500000 0.1911830025E-01 0.6725000000 0.2054960143E-01 0.6737500000 0.2086807997E-01 0.6750000000 0.2038617003E-01 0.6762500000 0.1991446843E-01 0.6775000000 0.2028080582E-01 0.6787500000 0.2174453410E-01 0.6800000000 0.2394233818E-01 0.6812500000 0.2665580352E-01 0.6825000000 0.3021000292E-01 0.6837500000 0.3477452383E-01 0.6850000000 0.3998831962E-01 0.6862500000 0.4547461340E-01 0.6875000000 0.5108222377E-01 0.6887500000 0.5675271763E-01 0.6900000000 0.6255126666E-01 0.6912500000 0.6859973170E-01 0.6925000000 0.7472502117E-01 0.6937500000 0.8038712009E-01 0.6950000000 0.8514782833E-01 0.6962500000 0.8908265361E-01 0.6975000000 0.9272484977E-01 0.6987500000 0.9664964232E-01 0.7000000000 0.1010248792 0.7012500000 0.1056370554 0.7025000000 0.1101589436 0.7037500000 0.1142741223 0.7050000000 0.1178690694 0.7062500000 0.1210346309 0.7075000000 0.1239090175 0.7087500000 0.1265944966 0.7100000000 0.1289723473 0.7112500000 0.1307598718 0.7125000000 0.1319236176 0.7137500000 0.1328611497 0.7150000000 0.1341419016 0.7162500000 0.1361376733 0.7175000000 0.1389357972 0.7187500000 0.1426587465 0.7200000000 0.1474543279 0.7212500000 0.1531039447 0.7225000000 0.1590333624 0.7237500000 0.1647002663 0.7250000000 0.1698738738 0.7262500000 0.1745826272 0.7275000000 0.1789123362 0.7287500000 0.1829172938 0.7300000000 0.1865522012 0.7312500000 0.1897618312 0.7325000000 0.1926997459 0.7337500000 0.1955583640 0.7350000000 0.1982558884 0.7362500000 0.2005500939 0.7375000000 0.2022977875 0.7387500000 0.2034767124 0.7400000000 0.2041362513 0.7412500000 0.2045182881 0.7425000000 0.2051087300 0.7437500000 0.2063326561 0.7450000000 0.2082686757 0.7462500000 0.2108039234 0.7475000000 0.2138439735 0.7487500000 0.2172264903 0.7500000000 0.2207518789 0.7512500000 0.2243849316 0.7525000000 0.2281075657 0.7537500000 0.2317212422 0.7550000000 0.2351143122 0.7562500000 0.2384660526 0.7575000000 0.2419648625 0.7587500000 0.2456284689 0.7600000000 0.2494250504 0.7612500000 0.2532454157 0.7625000000 0.2568479009 0.7637500000 0.2600833537 0.7650000000 0.2630360912 0.7662500000 0.2657935724 0.7675000000 0.2682843217 0.7687500000 0.2703854846 0.7700000000 0.2721046192 0.7712500000 0.2736647888 0.7725000000 0.2753658399 0.7737500000 0.2774413792 0.7750000000 0.2800098542 0.7762500000 0.2830617838 0.7775000000 0.2864490387 0.7787500000 0.2898893469 0.7800000000 0.2930462797 0.7812500000 0.2957401355 0.7825000000 0.2981533905 0.7837500000 0.3006708133 0.7850000000 0.3034775995 0.7862500000 0.3064802448 0.7875000000 0.3094985835 0.7887500000 0.3124249898 0.7900000000 0.3152266190 0.7912500000 0.3178588008 0.7925000000 0.3202725902 0.7937500000 0.3225223412 0.7950000000 0.3247430599 0.7962500000 0.3270049092 0.7975000000 0.3293745810 0.7987500000 0.3320164205 0.8000000000 0.3349899259 0.8012500000 0.3380230004 0.8025000000 0.3406032859 0.8037500000 0.3422764913 0.8050000000 0.3429648802 0.8062500000 0.3430922303 0.8075000000 0.3432719800 0.8087500000 0.3438522901 0.8100000000 0.3449296995 0.8112500000 0.3465820680 0.8125000000 0.3487977018 0.8137500000 0.3513832935 0.8150000000 0.3540808277 0.8162500000 0.3567355836 0.8175000000 0.3593662652 0.8187500000 0.3621102349 0.8200000000 0.3650701273 0.8212500000 0.3681803466 0.8225000000 0.3712246033 0.8237500000 0.3739383061 0.8250000000 0.3761269060 0.8262500000 0.3777390440 0.8275000000 0.3788357558 0.8287500000 0.3796008826 0.8300000000 0.3803445517 0.8312500000 0.3813412963 0.8325000000 0.3826933886 0.8337500000 0.3843618557 0.8350000000 0.3862616212 0.8362500000 0.3882538317 0.8375000000 0.3901551147 0.8387500000 0.3919014540 0.8400000000 0.3936015377 0.8412500000 0.3953661363 0.8425000000 0.3972356694 0.8437500000 0.3992421803 0.8450000000 0.4014191629 0.8462500000 0.4037509655 0.8475000000 0.4061833948 0.8487500000 0.4086799006 0.8500000000 0.4112419337 0.8512500000 0.4138565806 0.8525000000 0.4164635401 0.8537500000 0.4189899646 0.8550000000 0.4213919696 0.8562500000 0.4236640247 0.8575000000 0.4258159703 0.8587500000 0.4278588058 0.8600000000 0.4298077011 0.8612500000 0.4316809976 0.8625000000 0.4335005027 0.8637500000 0.4352853534 0.8650000000 0.4370676591 0.8662500000 0.4389197636 0.8675000000 0.4409056201 0.8687500000 0.4430240852 0.8700000000 0.4452315782 0.8712500000 0.4474786638 0.8725000000 0.4497177413 0.8737500000 0.4519113481 0.8750000000 0.4540478922 0.8762500000 0.4561255448 0.8775000000 0.4581136055 0.8787500000 0.4599644504 0.8800000000 0.4616618374 0.8812500000 0.4632306503 0.8825000000 0.4647203467 0.8837500000 0.4661859494 0.8850000000 0.4676687762 0.8862500000 0.4692038910 0.8875000000 0.4708034389 0.8887500000 0.4724426620 0.8900000000 0.4741070685 0.8912500000 0.4758307727 0.8925000000 0.4776603257 0.8937500000 0.4795847244 0.8950000000 0.4815297791 0.8962500000 0.4834068478 0.8975000000 0.4851419573 0.8987500000 0.4866912040 0.9000000000 0.4880551988 0.9012500000 0.4892619475 0.9025000000 0.4903559008 0.9037500000 0.4914062462 0.9050000000 0.4925050674 0.9062500000 0.4937590948 0.9075000000 0.4952294086 0.9087500000 0.4968856722 0.9100000000 0.4986508107 0.9112500000 0.5004685513 0.9125000000 0.5023174774 0.9137500000 0.5041783990 0.9150000000 0.5060126128 0.9162500000 0.5077721202 0.9175000000 0.5094327017 0.9187500000 0.5110219757 0.9200000000 0.5125972152 0.9212500000 0.5141827889 0.9225000000 0.5157568188 0.9237500000 0.5172998379 0.9250000000 0.5188199244 0.9262500000 0.5203359128 0.9275000000 0.5218574946 0.9287500000 0.5233690532 0.9300000000 0.5248304156 0.9312500000 0.5261842997 0.9325000000 0.5273714301 0.9337500000 0.5284003339 0.9350000000 0.5293790156 0.9362500000 0.5303964820 0.9375000000 0.5314445971 0.9387500000 0.5325132683 0.9400000000 0.5336693858 0.9412500000 0.5349884103 0.9425000000 0.5364630488 0.9437500000 0.5380181244 0.9450000000 0.5395615548 0.9462500000 0.5410068878 0.9475000000 0.5422894670 0.9487500000 0.5434008799 0.9500000000 0.5444311615 0.9512500000 0.5455284325 0.9525000000 0.5467740407 0.9537500000 0.5481483567 0.9550000000 0.5495937660 0.9562500000 0.5510613148 0.9575000000 0.5525177681 0.9587500000 0.5539422869 0.9600000000 0.5553255016 0.9612500000 0.5566746441 0.9625000000 0.5580151012 0.9637500000 0.5593652170 0.9650000000 0.5607146134 0.9662500000 0.5620386606 0.9675000000 0.5633279522 0.9687500000 0.5645989992 0.9700000000 0.5658684007 0.9712500000 0.5671294520 0.9725000000 0.5683640331 0.9737500000 0.5695621750 0.9750000000 0.5707239505 0.9762500000 0.5718654871 0.9775000000 0.5730258582 0.9787500000 0.5742347609 0.9800000000 0.5754861805 0.9812500000 0.5767539529 0.9825000000 0.5780125817 0.9837500000 0.5792469325 0.9850000000 0.5804565660 0.9862500000 0.5816526780 0.9875000000 0.5828464421 0.9887500000 0.5840422446 0.9900000000 0.5852412615 0.9912500000 0.5864414629 0.9925000000 0.5876367280 0.9937500000 0.5888227486 0.9950000000 0.5900019178 0.9962500000 0.5911788045 0.9975000000 0.5923531765 0.9987500000 0.5935202445 0.000000000 0.000000000 0.1250000000E-02 0.2106769079 0.2500000000E-02 0.4326592792 0.3750000000E-02 0.6647871022 0.5000000000E-02 0.8782870378 0.6250000000E-02 1.018177003 0.7500000000E-02 1.047770042 0.8750000000E-02 0.9858522044 0.1000000000E-01 0.8750672595 0.1125000000E-01 0.7469865512 0.1250000000E-01 0.6238754306 0.1375000000E-01 0.5217200270 0.1500000000E-01 0.4462655561 0.1625000000E-01 0.3940527254 0.1750000000E-01 0.3574764102 0.1875000000E-01 0.3299381195 0.2000000000E-01 0.3072004621 0.2125000000E-01 0.2852620381 0.2250000000E-01 0.2617835875 0.2375000000E-01 0.2384279787 0.2500000000E-01 0.2179413757 0.2625000000E-01 0.2012923693 0.2750000000E-01 0.1883982739 0.2875000000E-01 0.1791588013 0.3000000000E-01 0.1732992488 0.3125000000E-01 0.1701321181 0.3250000000E-01 0.1686794256 0.3375000000E-01 0.1680420608 0.3500000000E-01 0.1678132433 0.3625000000E-01 0.1681003293 0.3750000000E-01 0.1691817166 0.3875000000E-01 0.1712845944 0.4000000000E-01 0.1745573193 0.4125000000E-01 0.1791503401 0.4250000000E-01 0.1852235886 0.4375000000E-01 0.1927899439 0.4500000000E-01 0.2014217539 0.4625000000E-01 0.2100278738 0.4750000000E-01 0.2174173367 0.4875000000E-01 0.2234903581 0.5000000000E-01 0.2289651439 0.5125000000E-01 0.2338739964 0.5250000000E-01 0.2375416176 0.5375000000E-01 0.2399065169 0.5500000000E-01 0.2418776830 0.5625000000E-01 0.2444907070 0.5750000000E-01 0.2482102436 0.5875000000E-01 0.2528827974 0.6000000000E-01 0.2581013502 0.6125000000E-01 0.2636720333 0.6250000000E-01 0.2697207542 0.6375000000E-01 0.2764243920 0.6500000000E-01 0.2838505931 0.6625000000E-01 0.2919903097 0.6750000000E-01 0.3008191860 0.6875000000E-01 0.3103251097 0.7000000000E-01 0.3205029231 0.7125000000E-01 0.3313160496 0.7250000000E-01 0.3426298956 0.7375000000E-01 0.3541981432 0.7500000000E-01 0.3658488156 0.7625000000E-01 0.3777061595 0.7750000000E-01 0.3900721041 0.7875000000E-01 0.4031796094 0.8000000000E-01 0.4171434868 0.8125000000E-01 0.4320222495 0.8250000000E-01 0.4478650816 0.8375000000E-01 0.4647213732 0.8500000000E-01 0.4826149048 0.8625000000E-01 0.5014830732 0.8750000000E-01 0.5211401037 0.8875000000E-01 0.5414243489 0.9000000000E-01 0.5624601036 0.9125000000E-01 0.5846141174 0.9250000000E-01 0.6082275927 0.9375000000E-01 0.6335200950 0.9500000000E-01 0.6606447061 0.9625000000E-01 0.6897478746 0.9750000000E-01 0.7209982229 0.9875000000E-01 0.7545968201 0.1000000000 0.7907821545 0.1012500000 0.8298385841 0.1025000000 0.8721098966 0.1037500000 0.9180098874 0.1050000000 0.9680294225 0.1062500000 1.022750070 0.1075000000 1.082870672 0.1087500000 1.149247729 0.1100000000 1.222943587 0.1112500000 1.305282256 0.1125000000 1.397928143 0.1137500000 1.503003021 0.1150000000 1.623254205 0.1162500000 1.762295554 0.1175000000 1.924957035 0.1187500000 2.117795025 0.1200000000 2.349833173 0.1212500000 2.633608065 0.1225000000 2.986524119 0.1237500000 3.432182377 0.1250000000 4.000192209 0.1262500000 4.719856862 0.1275000000 5.597654591 0.1287500000 6.570480493 0.1300000000 7.468773347 0.1312500000 8.081105540 0.1325000000 8.305890525 0.1337500000 8.239061288 0.1350000000 8.125865615 0.1362500000 8.205967193 0.1375000000 8.618643845 0.1387500000 9.414314746 0.1400000000 10.57158551 0.1412500000 11.98566826 0.1425000000 13.48627218 0.1437500000 14.91245173 0.1450000000 16.19441789 0.1462500000 17.39527153 0.1475000000 18.56687910 0.1487500000 19.58908087 0.1500000000 20.33770968 0.1512500000 20.90939007 0.1525000000 21.55782197 0.1537500000 22.49526285 0.1550000000 23.80021250 0.1562500000 25.37669972 0.1575000000 26.99144190 0.1587500000 28.50707880 0.1600000000 29.97619133 0.1612500000 31.43516702 0.1625000000 32.82679904 0.1637500000 34.10883187 0.1650000000 35.28030230 0.1662500000 36.31831536 0.1675000000 37.09825586 0.1687500000 37.38837290 0.1700000000 37.04425492 0.1712500000 36.21006327 0.1725000000 35.16918393 0.1737500000 34.09035419 0.1750000000 32.93117427 0.1762500000 31.46728154 0.1775000000 29.55311441 0.1787500000 27.34622771 0.1800000000 25.17254502 0.1812500000 23.32215777 0.1825000000 22.01412490 0.1837500000 21.36408199 0.1850000000 21.30458207 0.1862500000 21.60227384 0.1875000000 21.98800062 0.1887500000 22.25585807 0.1900000000 22.24997281 0.1912500000 21.84569431 0.1925000000 21.02855437 0.1937500000 19.98912837 0.1950000000 19.03557277 0.1962500000 18.35869214 0.1975000000 18.00186989 0.1987500000 17.98329971 0.2000000000 18.28124684 0.2012500000 18.76175265 0.2025000000 19.22795876 0.2037500000 19.53172380 0.2050000000 19.64574945 0.2062500000 19.64300625 0.2075000000 19.58977479 0.2087500000 19.50682993 0.2100000000 19.35298055 0.2112500000 19.01579519 0.2125000000 18.38436352 0.2137500000 17.42378419 0.2150000000 16.24554982 0.2162500000 15.05969549 0.2175000000 14.03758425 0.2187500000 13.26000303 0.2200000000 12.71566557 0.2212500000 12.33511018 0.2225000000 12.05625401 0.2237500000 11.84159788 0.2250000000 11.63714768 0.2262500000 11.38386036 0.2275000000 11.06232436 0.2287500000 10.68554417 0.2300000000 10.28061309 0.2312500000 9.880874913 0.2325000000 9.504512479 0.2337500000 9.139413714 0.2350000000 8.779616300 0.2362500000 8.471992048 0.2375000000 8.276009724 0.2387500000 8.201091368 0.2400000000 8.210907033 0.2412500000 8.248989783 0.2425000000 8.260366408 0.2437500000 8.215601388 0.2450000000 8.101731128 0.2462500000 7.920121667 0.2475000000 7.716619262 0.2487500000 7.547312963 0.2500000000 7.405377145 0.2512500000 7.225019523 0.2525000000 6.965008016 0.2537500000 6.663821850 0.2550000000 6.382303443 0.2562500000 6.127725374 0.2575000000 5.865881323 0.2587500000 5.575470743 0.2600000000 5.273167735 0.2612500000 4.985220647 0.2625000000 4.712548687 0.2637500000 4.451589349 0.2650000000 4.221170262 0.2662500000 4.039169907 0.2675000000 3.906167817 0.2687500000 3.822444817 0.2700000000 3.793056766 0.2712500000 3.813516768 0.2725000000 3.861734245 0.2737500000 3.903821410 0.2750000000 3.906952522 0.2762500000 3.855779759 0.2775000000 3.765067921 0.2787500000 3.661096286 0.2800000000 3.546745366 0.2812500000 3.407570175 0.2825000000 3.243546082 0.2837500000 3.073058169 0.2850000000 2.921571840 0.2862500000 2.811844532 0.2875000000 2.750873003 0.2887500000 2.726023363 0.2900000000 2.719780817 0.2912500000 2.724806918 0.2925000000 2.737061306 0.2937500000 2.746148746 0.2950000000 2.748525812 0.2962500000 2.753167042 0.2975000000 2.764328871 0.2987500000 2.782429759 0.3000000000 2.810582017 0.3012500000 2.835825771 0.3025000000 2.824692192 0.3037500000 2.757991336 0.3050000000 2.652144082 0.3062500000 2.537053658 0.3075000000 2.429966051 0.3087500000 2.332933929 0.3100000000 2.244642156 0.3112500000 2.164698671 0.3125000000 2.087888913 0.3137500000 2.007446381 0.3150000000 1.924506958 0.3162500000 1.844433459 0.3175000000 1.771446926 0.3187500000 1.710468080 0.3200000000 1.663435048 0.3212500000 1.624772678 0.3225000000 1.588196590 0.3237500000 1.553732146 0.3250000000 1.526228488 0.3262500000 1.510848967 0.3275000000 1.506875970 0.3287500000 1.503928266 0.3300000000 1.490592650 0.3312500000 1.465598102 0.3325000000 1.437233721 0.3337500000 1.414738886 0.3350000000 1.403723119 0.3362500000 1.405336460 0.3375000000 1.416378838 0.3387500000 1.434361340 0.3400000000 1.463150510 0.3412500000 1.508472320 0.3425000000 1.572552711 0.3437500000 1.653285936 0.3450000000 1.742150437 0.3462500000 1.830235456 0.3475000000 1.917981257 0.3487500000 2.005818467 0.3500000000 2.079307270 0.3512500000 2.114487609 0.3525000000 2.091829290 0.3537500000 2.006325124 0.3550000000 1.876515726 0.3562500000 1.739270627 0.3575000000 1.624717153 0.3587500000 1.540224062 0.3600000000 1.479646951 0.3612500000 1.438066342 0.3625000000 1.412870006 0.3637500000 1.400148207 0.3650000000 1.391981796 0.3662500000 1.377006857 0.3675000000 1.350220449 0.3687500000 1.317207527 0.3700000000 1.284122375 0.3712500000 1.252196065 0.3725000000 1.223601838 0.3737500000 1.204872625 0.3750000000 1.200790732 0.3762500000 1.207870470 0.3775000000 1.217444985 0.3787500000 1.224302640 0.3800000000 1.226567818 0.3812500000 1.218620398 0.3825000000 1.194222686 0.3837500000 1.154315625 0.3850000000 1.106711209 0.3862500000 1.062110088 0.3875000000 1.027781024 0.3887500000 1.001968516 0.3900000000 0.9768261411 0.3912500000 0.9483545360 0.3925000000 0.9198410456 0.3937500000 0.8959863580 0.3950000000 0.8779110211 0.3962500000 0.8642086686 0.3975000000 0.8550979538 0.3987500000 0.8531471987 0.4000000000 0.8595349431 0.4012500000 0.8725655268 0.4025000000 0.8889592319 0.4037500000 0.9028587705 0.4050000000 0.9074069459 0.4062500000 0.9019307130 0.4075000000 0.8926995908 0.4087500000 0.8858906895 0.4100000000 0.8844338662 0.4112500000 0.8872884923 0.4125000000 0.8893985945 0.4137500000 0.8854267699 0.4150000000 0.8722998079 0.4162500000 0.8502266054 0.4175000000 0.8242151433 0.4187500000 0.8017407626 0.4200000000 0.7875964405 0.4212500000 0.7834685736 0.4225000000 0.7898510113 0.4237500000 0.8051780192 0.4250000000 0.8252076529 0.4262500000 0.8444462812 0.4275000000 0.8569249939 0.4287500000 0.8558194659 0.4300000000 0.8363760483 0.4312500000 0.8008905040 0.4325000000 0.7572874757 0.4337500000 0.7124022991 0.4350000000 0.6698947839 0.4362500000 0.6321392082 0.4375000000 0.5999875589 0.4387500000 0.5721499220 0.4400000000 0.5467932200 0.4412500000 0.5243639893 0.4425000000 0.5076915485 0.4437500000 0.4992902303 0.4450000000 0.4999227208 0.4462500000 0.5083081420 0.4475000000 0.5209700264 0.4487500000 0.5335413742 0.4500000000 0.5433333458 0.4512500000 0.5500129515 0.4525000000 0.5539485766 0.4537500000 0.5548368797 0.4550000000 0.5518308311 0.4562500000 0.5444326877 0.4575000000 0.5327382199 0.4587500000 0.5176740621 0.4600000000 0.4999405033 0.4612500000 0.4794450543 0.4625000000 0.4574289863 0.4637500000 0.4372631772 0.4650000000 0.4228711193 0.4662500000 0.4170736298 0.4675000000 0.4196221157 0.4687500000 0.4262134886 0.4700000000 0.4310543504 0.4712500000 0.4315865582 0.4725000000 0.4300627683 0.4737500000 0.4302554894 0.4750000000 0.4337641797 0.4762500000 0.4394324492 0.4775000000 0.4452892041 0.4787500000 0.4505550280 0.4800000000 0.4558620830 0.4812500000 0.4616184048 0.4825000000 0.4664121313 0.4837500000 0.4673059934 0.4850000000 0.4619563845 0.4862500000 0.4508510461 0.4875000000 0.4376919971 0.4887500000 0.4269256161 0.4900000000 0.4204806589 0.4912500000 0.4175458987 0.4925000000 0.4169715856 0.4937500000 0.4185129738 0.4950000000 0.4216457550 0.4962500000 0.4252570695 0.4975000000 0.4285916538 0.4987500000 0.4311918240 0.5000000000 0.4329773503 0.5012500000 0.4335370425 0.5025000000 0.4308901548 0.5037500000 0.4235889359 0.5050000000 0.4129139206 0.5062500000 0.4008432262 0.5075000000 0.3883288006 0.5087500000 0.3759178249 0.5100000000 0.3649429577 0.5112500000 0.3574222509 0.5125000000 0.3539463662 0.5137500000 0.3530728913 0.5150000000 0.3533207573 0.5162500000 0.3545702807 0.5175000000 0.3574352326 0.5187500000 0.3625260041 0.5200000000 0.3700249893 0.5212500000 0.3780071827 0.5225000000 0.3822184006 0.5237500000 0.3799885158 0.5250000000 0.3734661366 0.5262500000 0.3669787456 0.5275000000 0.3625049481 0.5287500000 0.3588711234 0.5300000000 0.3534098732 0.5312500000 0.3443603339 0.5325000000 0.3320263708 0.5337500000 0.3174705471 0.5350000000 0.3017249487 0.5362500000 0.2861073701 0.5375000000 0.2722663133 0.5387500000 0.2617419409 0.5400000000 0.2553272303 0.5412500000 0.2525172470 0.5425000000 0.2517484010 0.5437500000 0.2518058339 0.5450000000 0.2528470388 0.5462500000 0.2555218805 0.5475000000 0.2598299753 0.5487500000 0.2649811722 0.5500000000 0.2693918279 0.5512500000 0.2713777682 0.5525000000 0.2708412295 0.5537500000 0.2698046221 0.5550000000 0.2704112708 0.5562500000 0.2731289724 0.5575000000 0.2767285898 0.5587500000 0.2787646166 0.5600000000 0.2770297336 0.5612500000 0.2711308097 0.5625000000 0.2620811451 0.5637500000 0.2512595317 0.5650000000 0.2401300816 0.5662500000 0.2301836169 0.5675000000 0.2226693464 0.5687500000 0.2179712945 0.5700000000 0.2155560558 0.5712500000 0.2147941751 0.5725000000 0.2153726177 0.5737500000 0.2170955498 0.5750000000 0.2194436339 0.5762500000 0.2212385324 0.5775000000 0.2212221352 0.5787500000 0.2194049573 0.5800000000 0.2171686678 0.5812500000 0.2156364502 0.5825000000 0.2145294815 0.5837500000 0.2130001566 0.5850000000 0.2110322329 0.5862500000 0.2091766544 0.5875000000 0.2072197133 0.5887500000 0.2038422540 0.5900000000 0.1977395444 0.5912500000 0.1889627761 0.5925000000 0.1789309193 0.5937500000 0.1695468739 0.5950000000 0.1623565681 0.5962500000 0.1579756251 0.5975000000 0.1561783382 0.5987500000 0.1563539257 0.6000000000 0.1576054621 0.6012500000 0.1586533952 0.6025000000 0.1584361112 0.6037500000 0.1569685675 0.6050000000 0.1552286033 0.6062500000 0.1542190549 0.6075000000 0.1541249293 0.6087500000 0.1543571585 0.6100000000 0.1543378169 0.6112500000 0.1538967147 0.6125000000 0.1531835029 0.6137500000 0.1524703097 0.6150000000 0.1516380124 0.6162500000 0.1499176931 0.6175000000 0.1466528193 0.6187500000 0.1419468078 0.6200000000 0.1363448231 0.6212500000 0.1304201229 0.6225000000 0.1247851362 0.6237500000 0.1200874823 0.6250000000 0.1166038799 0.6262500000 0.1140212921 0.6275000000 0.1116971125 0.6287500000 0.1092089645 0.6300000000 0.1067602887 0.6312500000 0.1050297915 0.6325000000 0.1045904313 0.6337500000 0.1055913907 0.6350000000 0.1077613870 0.6362500000 0.1105566613 0.6375000000 0.1134957683 0.6387500000 0.1163035256 0.6400000000 0.1189043358 0.6412500000 0.1213812960 0.6425000000 0.1239160322 0.6437500000 0.1267231527 0.6450000000 0.1298920781 0.6462500000 0.1332549717 0.6475000000 0.1364012935 0.6487500000 0.1386552082 0.6500000000 0.1391205750 0.6512500000 0.1372232441 0.6525000000 0.1331713606 0.6537500000 0.1276287909 0.6550000000 0.1211778290 0.6562500000 0.1144258354 0.6575000000 0.1082338814 0.6587500000 0.1033520982 0.6600000000 0.1001252185 0.6612500000 0.9864215636E-01 0.6625000000 0.9878506789E-01 0.6637500000 0.1001799253 0.6650000000 0.1023786218 0.6662500000 0.1049556893 0.6675000000 0.1073702570 0.6687500000 0.1091539388 0.6700000000 0.1104189994 0.6712500000 0.1116687337 0.6725000000 0.1129674247 0.6737500000 0.1137159966 0.6750000000 0.1131727251 0.6762500000 0.1110064012 0.6775000000 0.1075566579 0.6787500000 0.1035907131 0.6800000000 0.9955637138E-01 0.6812500000 0.9529400849E-01 0.6825000000 0.9077061122E-01 0.6837500000 0.8648919839E-01 0.6850000000 0.8284853094E-01 0.6862500000 0.7982071731E-01 0.6875000000 0.7727845515E-01 0.6887500000 0.7511576893E-01 0.6900000000 0.7325608210E-01 0.6912500000 0.7184783846E-01 0.6925000000 0.7122506083E-01 0.6937500000 0.7144588320E-01 0.6950000000 0.7204824165E-01 0.6962500000 0.7237810661E-01 0.6975000000 0.7207548184E-01 0.6987500000 0.7132396088E-01 0.7000000000 0.7061941339E-01 0.7012500000 0.7031932780E-01 0.7025000000 0.7053813096E-01 0.7037500000 0.7115543626E-01 0.7050000000 0.7188494871E-01 0.7062500000 0.7252108375E-01 0.7075000000 0.7299157243E-01 0.7087500000 0.7336774780E-01 0.7100000000 0.7377254425E-01 0.7112500000 0.7405192193E-01 0.7125000000 0.7373434264E-01 0.7137500000 0.7242818790E-01 0.7150000000 0.7013142554E-01 0.7162500000 0.6717521736E-01 0.7175000000 0.6386886433E-01 0.7187500000 0.6041200906E-01 0.7200000000 0.5722401372E-01 0.7212500000 0.5487021257E-01 0.7225000000 0.5362409235E-01 0.7237500000 0.5332077669E-01 0.7250000000 0.5359005043E-01 0.7262500000 0.5415382690E-01 0.7275000000 0.5488877537E-01 0.7287500000 0.5576760203E-01 0.7300000000 0.5678057070E-01 0.7312500000 0.5777948790E-01 0.7325000000 0.5860894869E-01 0.7337500000 0.5937930141E-01 0.7350000000 0.6029835320E-01 0.7362500000 0.6135643853E-01 0.7375000000 0.6235800868E-01 0.7387500000 0.6307743379E-01 0.7400000000 0.6325176499E-01 0.7412500000 0.6257864972E-01 0.7425000000 0.6096625087E-01 0.7437500000 0.5870703438E-01 0.7450000000 0.5622178860E-01 0.7462500000 0.5375801310E-01 0.7475000000 0.5147273473E-01 0.7487500000 0.4950908105E-01 0.7500000000 0.4784982315E-01 0.7512500000 0.4641430451E-01 0.7525000000 0.4527176889E-01 0.7537500000 0.4443574246E-01 0.7550000000 0.4367286057E-01 0.7562500000 0.4280497622E-01 0.7575000000 0.4192044932E-01 0.7587500000 0.4116485431E-01 0.7600000000 0.4064614944E-01 0.7612500000 0.4049636618E-01 0.7625000000 0.4072415693E-01 0.7637500000 0.4112164641E-01 0.7650000000 0.4151314943E-01 0.7662500000 0.4191940113E-01 0.7675000000 0.4237545578E-01 0.7687500000 0.4276737177E-01 0.7700000000 0.4284387285E-01 0.7712500000 0.4240416648E-01 0.7725000000 0.4144475049E-01 0.7737500000 0.4012104706E-01 0.7750000000 0.3867231157E-01 0.7762500000 0.3736403212E-01 0.7775000000 0.3643474918E-01 0.7787500000 0.3601196078E-01 0.7800000000 0.3600302611E-01 0.7812500000 0.3606407833E-01 0.7825000000 0.3583170580E-01 0.7837500000 0.3527781614E-01 0.7850000000 0.3467208505E-01 0.7862500000 0.3425186846E-01 0.7875000000 0.3407277216E-01 0.7887500000 0.3407380382E-01 0.7900000000 0.3420247151E-01 0.7912500000 0.3442566617E-01 0.7925000000 0.3465018051E-01 0.7937500000 0.3474445701E-01 0.7950000000 0.3467944578E-01 0.7962500000 0.3450159551E-01 0.7975000000 0.3421320276E-01 0.7987500000 0.3390441936E-01 0.8000000000 0.3388889686E-01 0.8012500000 0.3449837581E-01 0.8025000000 0.3577054838E-01 0.8037500000 0.3733205669E-01 0.8050000000 0.3853459736E-01 0.8062500000 0.3885168391E-01 0.8075000000 0.3823856798E-01 0.8087500000 0.3699147217E-01 0.8100000000 0.3536177075E-01 0.8112500000 0.3355759910E-01 0.8125000000 0.3185866080E-01 0.8137500000 0.3048513881E-01 0.8150000000 0.2946327153E-01 0.8162500000 0.2865778159E-01 0.8175000000 0.2791318285E-01 0.8187500000 0.2719399109E-01 0.8200000000 0.2663736326E-01 0.8212500000 0.2644627608E-01 0.8225000000 0.2673606712E-01 0.8237500000 0.2746064285E-01 0.8250000000 0.2841873484E-01 0.8262500000 0.2934852258E-01 0.8275000000 0.3000172682E-01 0.8287500000 0.3015735943E-01 0.8300000000 0.2973847827E-01 0.8312500000 0.2888391057E-01 0.8325000000 0.2783141222E-01 0.8337500000 0.2677081794E-01 0.8350000000 0.2582622492E-01 0.8362500000 0.2508066776E-01 0.8375000000 0.2449042628E-01 0.8387500000 0.2387468902E-01 0.8400000000 0.2311207995E-01 0.8412500000 0.2221989843E-01 0.8425000000 0.2124255146E-01 0.8437500000 0.2020837807E-01 0.8450000000 0.1917475040E-01 0.8462500000 0.1821710294E-01 0.8475000000 0.1737198113E-01 0.8487500000 0.1663232551E-01 0.8500000000 0.1600081690E-01 0.8512500000 0.1551848743E-01 0.8525000000 0.1521615726E-01 0.8537500000 0.1507607310E-01 0.8550000000 0.1504399304E-01 0.8562500000 0.1506533422E-01 0.8575000000 0.1510383117E-01 0.8587500000 0.1513158168E-01 0.8600000000 0.1512452219E-01 0.8612500000 0.1506307299E-01 0.8625000000 0.1493261233E-01 0.8637500000 0.1472042506E-01 0.8650000000 0.1440141326E-01 0.8662500000 0.1397297837E-01 0.8675000000 0.1349933046E-01 0.8687500000 0.1306723988E-01 0.8700000000 0.1273134327E-01 0.8712500000 0.1251426841E-01 0.8725000000 0.1241787396E-01 0.8737500000 0.1242256613E-01 0.8750000000 0.1250327638E-01 0.8762500000 0.1265837348E-01 0.8775000000 0.1289474601E-01 0.8787500000 0.1318177552E-01 0.8800000000 0.1345452682E-01 0.8812500000 0.1365274604E-01 0.8825000000 0.1373984594E-01 0.8837500000 0.1371135998E-01 0.8850000000 0.1358231940E-01 0.8862500000 0.1337923468E-01 0.8875000000 0.1314815145E-01 0.8887500000 0.1291649777E-01 0.8900000000 0.1266903118E-01 0.8912500000 0.1239330849E-01 0.8925000000 0.1213540160E-01 0.8937500000 0.1198130637E-01 0.8950000000 0.1198698680E-01 0.8962500000 0.1215209019E-01 0.8975000000 0.1243391963E-01 0.8987500000 0.1275792577E-01 0.9000000000 0.1304257805E-01 0.9012500000 0.1322306358E-01 0.9025000000 0.1324342990E-01 0.9037500000 0.1306245075E-01 0.9050000000 0.1266694505E-01 0.9062500000 0.1209957499E-01 0.9075000000 0.1147324582E-01 0.9087500000 0.1090329731E-01 0.9100000000 0.1044014143E-01 0.9112500000 0.1007917191E-01 0.9125000000 0.9811986908E-02 0.9137500000 0.9647602813E-02 0.9150000000 0.9592295781E-02 0.9162500000 0.9623517132E-02 0.9175000000 0.9684576404E-02 0.9187500000 0.9718178243E-02 0.9200000000 0.9716849107E-02 0.9212500000 0.9719422237E-02 0.9225000000 0.9750444055E-02 0.9237500000 0.9797371146E-02 0.9250000000 0.9843770958E-02 0.9262500000 0.9892838413E-02 0.9275000000 0.9968090541E-02 0.9287500000 0.1010051723E-01 0.9300000000 0.1030724592E-01 0.9312500000 0.1057942376E-01 0.9325000000 0.1085563787E-01 0.9337500000 0.1102135791E-01 0.9350000000 0.1101358898E-01 0.9362500000 0.1088330136E-01 0.9375000000 0.1068396922E-01 0.9387500000 0.1039217339E-01 0.9400000000 0.9988607707E-02 0.9412500000 0.9543257074E-02 0.9425000000 0.9167891247E-02 0.9437500000 0.8933866698E-02 0.9450000000 0.8856619658E-02 0.9462500000 0.8905239144E-02 0.9475000000 0.9002469518E-02 0.9487500000 0.9029476961E-02 0.9500000000 0.8878841233E-02 0.9512500000 0.8551786634E-02 0.9525000000 0.8154158808E-02 0.9537500000 0.7787729770E-02 0.9550000000 0.7496693395E-02 0.9562500000 0.7285067529E-02 0.9575000000 0.7140487898E-02 0.9587500000 0.7043165889E-02 0.9600000000 0.6968542430E-02 0.9612500000 0.6890592551E-02 0.9625000000 0.6799344562E-02 0.9637500000 0.6712820755E-02 0.9650000000 0.6653234344E-02 0.9662500000 0.6619495325E-02 0.9675000000 0.6588705374E-02 0.9687500000 0.6544927997E-02 0.9700000000 0.6498442312E-02 0.9712500000 0.6465582790E-02 0.9725000000 0.6445132659E-02 0.9737500000 0.6421629455E-02 0.9750000000 0.6375017282E-02 0.9762500000 0.6281416799E-02 0.9775000000 0.6135794576E-02 0.9787500000 0.5969727275E-02 0.9800000000 0.5822089399E-02 0.9812500000 0.5711193140E-02 0.9825000000 0.5634473694E-02 0.9837500000 0.5576580735E-02 0.9850000000 0.5518949458E-02 0.9862500000 0.5451097511E-02 0.9875000000 0.5374546283E-02 0.9887500000 0.5294897232E-02 0.9900000000 0.5217188207E-02 0.9912500000 0.5146890284E-02 0.9925000000 0.5085865647E-02 0.9937500000 0.5029761716E-02 0.9950000000 0.4973788315E-02 0.9962500000 0.4919268069E-02 0.9975000000 0.4870994494E-02 0.9987500000 0.4831110925E-02 elk-6.3.2/examples/BSE/Si/PaxHeaders.21352/EPSILON_BSE_11.OUT0000644000000000000000000000013113543334737017337 xustar0030 mtime=1569569247.336640216 29 atime=1569569247.33064022 30 ctime=1569569247.336640216 elk-6.3.2/examples/BSE/Si/EPSILON_BSE_11.OUT0000644002504400250440000016350613543334737021422 0ustar00dewhurstdewhurst00000000000000 0.000000000 11.17590407 0.1250000000E-02 11.17652447 0.2500000000E-02 11.17838616 0.3750000000E-02 11.18149065 0.5000000000E-02 11.18584046 0.6250000000E-02 11.19143913 0.7500000000E-02 11.19829121 0.8750000000E-02 11.20640230 0.1000000000E-01 11.21577901 0.1125000000E-01 11.22642905 0.1250000000E-01 11.23836119 0.1375000000E-01 11.25158529 0.1500000000E-01 11.26611233 0.1625000000E-01 11.28195444 0.1750000000E-01 11.29912491 0.1875000000E-01 11.31763825 0.2000000000E-01 11.33751017 0.2125000000E-01 11.35875768 0.2250000000E-01 11.38139909 0.2375000000E-01 11.40545406 0.2500000000E-01 11.43094364 0.2625000000E-01 11.45789037 0.2750000000E-01 11.48631825 0.2875000000E-01 11.51625288 0.3000000000E-01 11.54772148 0.3125000000E-01 11.58075296 0.3250000000E-01 11.61537804 0.3375000000E-01 11.65162926 0.3500000000E-01 11.68954114 0.3625000000E-01 11.72915022 0.3750000000E-01 11.77049518 0.3875000000E-01 11.81361696 0.4000000000E-01 11.85855889 0.4125000000E-01 11.90536676 0.4250000000E-01 11.95408903 0.4375000000E-01 12.00477693 0.4500000000E-01 12.05748466 0.4625000000E-01 12.11226950 0.4750000000E-01 12.16919210 0.4875000000E-01 12.22831657 0.5000000000E-01 12.28971080 0.5125000000E-01 12.35344664 0.5250000000E-01 12.41960019 0.5375000000E-01 12.48825206 0.5500000000E-01 12.55948771 0.5625000000E-01 12.63339777 0.5750000000E-01 12.71007840 0.5875000000E-01 12.78963172 0.6000000000E-01 12.87216622 0.6125000000E-01 12.95779726 0.6250000000E-01 13.04664759 0.6375000000E-01 13.13884793 0.6500000000E-01 13.23453763 0.6625000000E-01 13.33386535 0.6750000000E-01 13.43698985 0.6875000000E-01 13.54408085 0.7000000000E-01 13.65531999 0.7125000000E-01 13.77090187 0.7250000000E-01 13.89103528 0.7375000000E-01 14.01594445 0.7500000000E-01 14.14587058 0.7625000000E-01 14.28107344 0.7750000000E-01 14.42183328 0.7875000000E-01 14.56845285 0.8000000000E-01 14.72125980 0.8125000000E-01 14.88060933 0.8250000000E-01 15.04688721 0.8375000000E-01 15.22051322 0.8500000000E-01 15.40194511 0.8625000000E-01 15.59168303 0.8750000000E-01 15.79027479 0.8875000000E-01 15.99832177 0.9000000000E-01 16.21648584 0.9125000000E-01 16.44549732 0.9250000000E-01 16.68616440 0.9375000000E-01 16.93938392 0.9500000000E-01 17.20615425 0.9625000000E-01 17.48759020 0.9750000000E-01 17.78494081 0.9875000000E-01 18.09961016 0.1000000000 18.43318204 0.1012500000 18.78744903 0.1025000000 19.16444660 0.1037500000 19.56649272 0.1050000000 19.99623304 0.1062500000 20.45669055 0.1075000000 20.95131637 0.1087500000 21.48403332 0.1100000000 22.05925374 0.1112500000 22.68183218 0.1125000000 23.35686991 0.1137500000 24.08919921 0.1150000000 24.88218923 0.1162500000 25.73513972 0.1175000000 26.63780929 0.1187500000 27.55948390 0.1200000000 28.42929980 0.1212500000 29.10957539 0.1225000000 29.39065155 0.1237500000 29.08916662 0.1250000000 28.27984121 0.1262500000 27.38214824 0.1275000000 26.88353439 0.1287500000 27.03681360 0.1300000000 27.75472801 0.1312500000 28.69446464 0.1325000000 29.42090741 0.1337500000 29.59053621 0.1350000000 29.18239111 0.1362500000 28.51745051 0.1375000000 27.88542356 0.1387500000 27.25621194 0.1400000000 26.40179147 0.1412500000 25.08320894 0.1425000000 23.27149814 0.1437500000 21.35098084 0.1450000000 19.77026932 0.1462500000 18.55299807 0.1475000000 17.31391573 0.1487500000 15.53640976 0.1500000000 12.85392738 0.1512500000 9.445410935 0.1525000000 6.022950455 0.1537500000 3.049998238 0.1550000000 0.4696160537 0.1562500000 -1.774958968 0.1575000000 -3.498895006 0.1587500000 -4.577308110 0.1600000000 -5.190242437 0.1612500000 -5.667387323 0.1625000000 -6.214927921 0.1637500000 -6.854047992 0.1650000000 -7.563624420 0.1662500000 -8.359310639 0.1675000000 -9.182186673 0.1687500000 -9.806089765 0.1700000000 -10.03530563 0.1712500000 -9.868272348 0.1725000000 -9.359736575 0.1737500000 -8.556939958 0.1750000000 -7.591457491 0.1762500000 -6.695472974 0.1775000000 -6.138515191 0.1787500000 -6.108690719 0.1800000000 -6.532684610 0.1812500000 -7.094893852 0.1825000000 -7.545768909 0.1837500000 -7.862878890 0.1850000000 -8.093952153 0.1862500000 -8.194888447 0.1875000000 -8.066006125 0.1887500000 -7.700821340 0.1900000000 -7.266109592 0.1912500000 -6.992055243 0.1925000000 -7.004889818 0.1937500000 -7.284195352 0.1950000000 -7.740617642 0.1962500000 -8.309063125 0.1975000000 -8.958623214 0.1987500000 -9.623623989 0.2000000000 -10.18497708 0.2012500000 -10.54934870 0.2025000000 -10.70514260 0.2037500000 -10.70866209 0.2050000000 -10.64523215 0.2062500000 -10.58101553 0.2075000000 -10.51815053 0.2087500000 -10.39643949 0.2100000000 -10.17387879 0.2112500000 -9.876207829 0.2125000000 -9.567282525 0.2137500000 -9.308774798 0.2150000000 -9.124928903 0.2162500000 -8.999806953 0.2175000000 -8.914767459 0.2187500000 -8.868971056 0.2200000000 -8.854016538 0.2212500000 -8.840211971 0.2225000000 -8.795676193 0.2237500000 -8.685565252 0.2250000000 -8.484712521 0.2262500000 -8.212857333 0.2275000000 -7.918321263 0.2287500000 -7.633708895 0.2300000000 -7.370316479 0.2312500000 -7.143713676 0.2325000000 -6.975295223 0.2337500000 -6.867684786 0.2350000000 -6.810013624 0.2362500000 -6.792411287 0.2375000000 -6.806937800 0.2387500000 -6.859109932 0.2400000000 -6.953517800 0.2412500000 -7.067307148 0.2425000000 -7.171557547 0.2437500000 -7.249639797 0.2450000000 -7.277518876 0.2462500000 -7.233363022 0.2475000000 -7.132537147 0.2487500000 -7.027217377 0.2500000000 -6.970514654 0.2512500000 -6.972542358 0.2525000000 -6.988178694 0.2537500000 -6.962612069 0.2550000000 -6.883582463 0.2562500000 -6.769171972 0.2575000000 -6.626594131 0.2587500000 -6.455098752 0.2600000000 -6.271642761 0.2612500000 -6.102644044 0.2625000000 -5.959148709 0.2637500000 -5.837141491 0.2650000000 -5.731905183 0.2662500000 -5.640704314 0.2675000000 -5.560320779 0.2687500000 -5.491598937 0.2700000000 -5.439725081 0.2712500000 -5.401115942 0.2725000000 -5.362958920 0.2737500000 -5.318487072 0.2750000000 -5.262877683 0.2762500000 -5.186934950 0.2775000000 -5.087668375 0.2787500000 -4.969193393 0.2800000000 -4.835643616 0.2812500000 -4.692720981 0.2825000000 -4.550457666 0.2837500000 -4.418353408 0.2850000000 -4.300965557 0.2862500000 -4.202902322 0.2875000000 -4.128264076 0.2887500000 -4.069159419 0.2900000000 -4.009038090 0.2912500000 -3.941652227 0.2925000000 -3.875363858 0.2937500000 -3.827513633 0.2950000000 -3.816772684 0.2962500000 -3.841886316 0.2975000000 -3.874117300 0.2987500000 -3.886524191 0.3000000000 -3.878455483 0.3012500000 -3.867122590 0.3025000000 -3.868519241 0.3037500000 -3.884536842 0.3050000000 -3.902951340 0.3062500000 -3.908665037 0.3075000000 -3.891911673 0.3087500000 -3.848322890 0.3100000000 -3.779782041 0.3112500000 -3.693956914 0.3125000000 -3.600127692 0.3137500000 -3.507415334 0.3150000000 -3.423692861 0.3162500000 -3.351590116 0.3175000000 -3.287618323 0.3187500000 -3.225752706 0.3200000000 -3.161265314 0.3212500000 -3.095037310 0.3225000000 -3.034515660 0.3237500000 -2.985833441 0.3250000000 -2.945852487 0.3262500000 -2.905143839 0.3275000000 -2.857558627 0.3287500000 -2.803243161 0.3300000000 -2.746228032 0.3312500000 -2.691349810 0.3325000000 -2.639266220 0.3337500000 -2.584327178 0.3350000000 -2.521410273 0.3362500000 -2.453012686 0.3375000000 -2.388323935 0.3387500000 -2.337525813 0.3400000000 -2.304948192 0.3412500000 -2.285830231 0.3425000000 -2.272962107 0.3437500000 -2.267263022 0.3450000000 -2.276950423 0.3462500000 -2.307372724 0.3475000000 -2.355501467 0.3487500000 -2.409057096 0.3500000000 -2.448415233 0.3512500000 -2.458904568 0.3525000000 -2.441414307 0.3537500000 -2.406152923 0.3550000000 -2.363818679 0.3562500000 -2.323720702 0.3575000000 -2.290626812 0.3587500000 -2.262847472 0.3600000000 -2.237016129 0.3612500000 -2.211355129 0.3625000000 -2.185824399 0.3637500000 -2.162429192 0.3650000000 -2.142329482 0.3662500000 -2.121953849 0.3675000000 -2.095591820 0.3687500000 -2.063918870 0.3700000000 -2.035908949 0.3712500000 -2.019854750 0.3725000000 -2.016612979 0.3737500000 -2.024069763 0.3750000000 -2.042112689 0.3762500000 -2.068243352 0.3775000000 -2.094035838 0.3787500000 -2.110683829 0.3800000000 -2.113302901 0.3812500000 -2.101604263 0.3825000000 -2.081008059 0.3837500000 -2.058646228 0.3850000000 -2.036145425 0.3862500000 -2.009831280 0.3875000000 -1.978008798 0.3887500000 -1.943740344 0.3900000000 -1.911338266 0.3912500000 -1.882411821 0.3925000000 -1.855074398 0.3937500000 -1.828137046 0.3950000000 -1.803371293 0.3962500000 -1.782714027 0.3975000000 -1.768170381 0.3987500000 -1.761417423 0.4000000000 -1.759256153 0.4012500000 -1.754869577 0.4025000000 -1.744218495 0.4037500000 -1.726372361 0.4050000000 -1.700722133 0.4062500000 -1.667065339 0.4075000000 -1.626469009 0.4087500000 -1.581259823 0.4100000000 -1.534202070 0.4112500000 -1.487139441 0.4125000000 -1.440883919 0.4137500000 -1.396438662 0.4150000000 -1.355658529 0.4162500000 -1.320698596 0.4175000000 -1.293107017 0.4187500000 -1.273784364 0.4200000000 -1.263839190 0.4212500000 -1.265028352 0.4225000000 -1.277125353 0.4237500000 -1.295412262 0.4250000000 -1.313666809 0.4262500000 -1.328222348 0.4275000000 -1.337771695 0.4287500000 -1.340908171 0.4300000000 -1.336242066 0.4312500000 -1.324977507 0.4325000000 -1.310632480 0.4337500000 -1.295359603 0.4350000000 -1.277875709 0.4362500000 -1.255619563 0.4375000000 -1.228135953 0.4387500000 -1.197962837 0.4400000000 -1.169134642 0.4412500000 -1.145070599 0.4425000000 -1.127020333 0.4437500000 -1.113266590 0.4450000000 -1.099993717 0.4462500000 -1.084873012 0.4475000000 -1.069863604 0.4487500000 -1.059471548 0.4500000000 -1.056984181 0.4512500000 -1.061568758 0.4525000000 -1.067709227 0.4537500000 -1.069444068 0.4550000000 -1.065297491 0.4562500000 -1.056917047 0.4575000000 -1.044825966 0.4587500000 -1.028043631 0.4600000000 -1.006861680 0.4612500000 -0.9839078004 0.4625000000 -0.9624674396 0.4637500000 -0.9443807922 0.4650000000 -0.9290866411 0.4662500000 -0.9142293245 0.4675000000 -0.8977140929 0.4687500000 -0.8795000262 0.4700000000 -0.8607306317 0.4712500000 -0.8420981256 0.4725000000 -0.8241516852 0.4737500000 -0.8082189239 0.4750000000 -0.7959282021 0.4762500000 -0.7875394407 0.4775000000 -0.7810797821 0.4787500000 -0.7739839831 0.4800000000 -0.7650762981 0.4812500000 -0.7546670272 0.4825000000 -0.7438193373 0.4837500000 -0.7335545011 0.4850000000 -0.7242037419 0.4862500000 -0.7151592917 0.4875000000 -0.7050355623 0.4887500000 -0.6926781635 0.4900000000 -0.6780896705 0.4912500000 -0.6619572176 0.4925000000 -0.6451178240 0.4937500000 -0.6287082566 0.4950000000 -0.6140275027 0.4962500000 -0.6021071751 0.4975000000 -0.5930877377 0.4987500000 -0.5858991798 0.5000000000 -0.5797736006 0.5012500000 -0.5758585647 0.5025000000 -0.5757403704 0.5037500000 -0.5784890027 0.5050000000 -0.5803036524 0.5062500000 -0.5779867934 0.5075000000 -0.5714703432 0.5087500000 -0.5622156512 0.5100000000 -0.5514930039 0.5112500000 -0.5404889790 0.5125000000 -0.5299329782 0.5137500000 -0.5193345384 0.5150000000 -0.5079363480 0.5162500000 -0.4961438166 0.5175000000 -0.4851789720 0.5187500000 -0.4757839099 0.5200000000 -0.4679263788 0.5212500000 -0.4617313951 0.5225000000 -0.4575096276 0.5237500000 -0.4547277822 0.5250000000 -0.4519446169 0.5262500000 -0.4479409584 0.5275000000 -0.4425246462 0.5287500000 -0.4360164896 0.5300000000 -0.4284215178 0.5312500000 -0.4194874024 0.5325000000 -0.4092551364 0.5337500000 -0.3981688923 0.5350000000 -0.3867315469 0.5362500000 -0.3752386239 0.5375000000 -0.3637668618 0.5387500000 -0.3523356607 0.5400000000 -0.3410306162 0.5412500000 -0.3300185747 0.5425000000 -0.3195621888 0.5437500000 -0.3100694168 0.5450000000 -0.3020596464 0.5462500000 -0.2958866796 0.5475000000 -0.2913335048 0.5487500000 -0.2875370512 0.5500000000 -0.2834020153 0.5512500000 -0.2781126612 0.5525000000 -0.2713919585 0.5537500000 -0.2635058177 0.5550000000 -0.2549614238 0.5562500000 -0.2461965884 0.5575000000 -0.2374797011 0.5587500000 -0.2289183528 0.5600000000 -0.2205123882 0.5612500000 -0.2122482337 0.5625000000 -0.2041670934 0.5637500000 -0.1964027954 0.5650000000 -0.1892232461 0.5662500000 -0.1829957732 0.5675000000 -0.1779224964 0.5687500000 -0.1736209116 0.5700000000 -0.1692381726 0.5712500000 -0.1641958029 0.5725000000 -0.1584464031 0.5737500000 -0.1521866367 0.5750000000 -0.1456530561 0.5762500000 -0.1390227767 0.5775000000 -0.1323710498 0.5787500000 -0.1257175704 0.5800000000 -0.1190847771 0.5812500000 -0.1125041039 0.5825000000 -0.1060009287 0.5837500000 -0.9958887737E-01 0.5850000000 -0.9327233023E-01 0.5862500000 -0.8705042948E-01 0.5875000000 -0.8091998516E-01 0.5887500000 -0.7487719443E-01 0.5900000000 -0.6891870218E-01 0.5912500000 -0.6304246408E-01 0.5925000000 -0.5724857442E-01 0.5937500000 -0.5153942809E-01 0.5950000000 -0.4591696368E-01 0.5962500000 -0.4037518399E-01 0.5975000000 -0.3489628145E-01 0.5987500000 -0.2946247762E-01 0.6000000000 -0.2406831650E-01 0.6012500000 -0.1871703916E-01 0.6025000000 -0.1341282106E-01 0.6037500000 -0.8157988848E-02 0.6050000000 -0.2953395836E-02 0.6062500000 0.2200479261E-02 0.6075000000 0.7302283714E-02 0.6087500000 0.1234811881E-01 0.6100000000 0.1732910850E-01 0.6112500000 0.2222905971E-01 0.6125000000 0.2702748051E-01 0.6137500000 0.3171824690E-01 0.6150000000 0.3633557707E-01 0.6162500000 0.4093865299E-01 0.6175000000 0.4555864739E-01 0.6187500000 0.5018750173E-01 0.6200000000 0.5480555426E-01 0.6212500000 0.5939896981E-01 0.6225000000 0.6396104726E-01 0.6237500000 0.6848866853E-01 0.6250000000 0.7297984620E-01 0.6262500000 0.7743332917E-01 0.6275000000 0.8184866743E-01 0.6287500000 0.8622601351E-01 0.6300000000 0.9056585183E-01 0.6312500000 0.9486880343E-01 0.6325000000 0.9913550636E-01 0.6337500000 0.1033665355 0.6350000000 0.1075623451 0.6362500000 0.1117232818 0.6375000000 0.1158498076 0.6387500000 0.1199428901 0.6400000000 0.1240039015 0.6412500000 0.1280338149 0.6425000000 0.1320327996 0.6437500000 0.1360003972 0.6450000000 0.1399355332 0.6462500000 0.1438363078 0.6475000000 0.1477004171 0.6487500000 0.1515275874 0.6500000000 0.1553227526 0.6512500000 0.1590937752 0.6525000000 0.1628447827 0.6537500000 0.1665749970 0.6550000000 0.1702821491 0.6562500000 0.1739645995 0.6575000000 0.1776215945 0.6587500000 0.1812529539 0.6600000000 0.1848587885 0.6612500000 0.1884393406 0.6625000000 0.1919948329 0.6637500000 0.1955251628 0.6650000000 0.1990294868 0.6662500000 0.2025057868 0.6675000000 0.2059501040 0.6687500000 0.2093548762 0.6700000000 0.2127079141 0.6712500000 0.2159985031 0.6725000000 0.2192344480 0.6737500000 0.2224491185 0.6750000000 0.2256742041 0.6762500000 0.2289151152 0.6775000000 0.2321603227 0.6787500000 0.2353974285 0.6800000000 0.2386185558 0.6812500000 0.2418196865 0.6825000000 0.2449990612 0.6837500000 0.2481560728 0.6850000000 0.2512906626 0.6862500000 0.2544030199 0.6875000000 0.2574934363 0.6887500000 0.2605622380 0.6900000000 0.2636097540 0.6912500000 0.2666363035 0.6925000000 0.2696421907 0.6937500000 0.2726277036 0.6950000000 0.2755931150 0.6962500000 0.2785386836 0.6975000000 0.2814646557 0.6987500000 0.2843712667 0.7000000000 0.2872587420 0.7012500000 0.2901272988 0.7025000000 0.2929771464 0.7037500000 0.2958084876 0.7050000000 0.2986215190 0.7062500000 0.3014164320 0.7075000000 0.3041934127 0.7087500000 0.3069526430 0.7100000000 0.3096943005 0.7112500000 0.3124185590 0.7125000000 0.3151255888 0.7137500000 0.3178155567 0.7150000000 0.3204886265 0.7162500000 0.3231449591 0.7175000000 0.3257847123 0.7187500000 0.3284080416 0.7200000000 0.3310150997 0.7212500000 0.3336060370 0.7225000000 0.3361810016 0.7237500000 0.3387401391 0.7250000000 0.3412835933 0.7262500000 0.3438115056 0.7275000000 0.3463240156 0.7287500000 0.3488212608 0.7300000000 0.3513033768 0.7312500000 0.3537704974 0.7325000000 0.3562227547 0.7337500000 0.3586602787 0.7350000000 0.3610831982 0.7362500000 0.3634916398 0.7375000000 0.3658857290 0.7387500000 0.3682655892 0.7400000000 0.3706313426 0.7412500000 0.3729831097 0.7425000000 0.3753210097 0.7437500000 0.3776451601 0.7450000000 0.3799556770 0.7462500000 0.3822526754 0.7475000000 0.3845362686 0.7487500000 0.3868065686 0.7500000000 0.3890636861 0.7512500000 0.3913077307 0.7525000000 0.3935388104 0.7537500000 0.3957570321 0.7550000000 0.3979625016 0.7562500000 0.4001553232 0.7575000000 0.4023356002 0.7587500000 0.4045034347 0.7600000000 0.4066589277 0.7612500000 0.4088021789 0.7625000000 0.4109332870 0.7637500000 0.4130523497 0.7650000000 0.4151594634 0.7662500000 0.4172547237 0.7675000000 0.4193382248 0.7687500000 0.4214100602 0.7700000000 0.4234703223 0.7712500000 0.4255191024 0.7725000000 0.4275564908 0.7737500000 0.4295825771 0.7750000000 0.4315974496 0.7762500000 0.4336011959 0.7775000000 0.4355939026 0.7787500000 0.4375756553 0.7800000000 0.4395465388 0.7812500000 0.4415066370 0.7825000000 0.4434560330 0.7837500000 0.4453948088 0.7850000000 0.4473230458 0.7862500000 0.4492408244 0.7875000000 0.4511482243 0.7887500000 0.4530453243 0.7900000000 0.4549322025 0.7912500000 0.4568089359 0.7925000000 0.4586756011 0.7937500000 0.4605322738 0.7950000000 0.4623790288 0.7962500000 0.4642159403 0.7975000000 0.4660430818 0.7987500000 0.4678605259 0.8000000000 0.4696683445 0.8012500000 0.4714666090 0.8025000000 0.4732553898 0.8037500000 0.4750347568 0.8050000000 0.4768047792 0.8062500000 0.4785655256 0.8075000000 0.4803170636 0.8087500000 0.4820594604 0.8100000000 0.4837927827 0.8112500000 0.4855170962 0.8125000000 0.4872324662 0.8137500000 0.4889389573 0.8150000000 0.4906366335 0.8162500000 0.4923255581 0.8175000000 0.4940057941 0.8187500000 0.4956774034 0.8200000000 0.4973404478 0.8212500000 0.4989949883 0.8225000000 0.5006410852 0.8237500000 0.5022787985 0.8250000000 0.5039081874 0.8262500000 0.5055293108 0.8275000000 0.5071422268 0.8287500000 0.5087469932 0.8300000000 0.5103436670 0.8312500000 0.5119323048 0.8325000000 0.5135129628 0.8337500000 0.5150856965 0.8350000000 0.5166505611 0.8362500000 0.5182076109 0.8375000000 0.5197569002 0.8387500000 0.5212984825 0.8400000000 0.5228324109 0.8412500000 0.5243587380 0.8425000000 0.5258775159 0.8437500000 0.5273887962 0.8450000000 0.5288926303 0.8462500000 0.5303890689 0.8475000000 0.5318781621 0.8487500000 0.5333599600 0.8500000000 0.5348345118 0.8512500000 0.5363018665 0.8525000000 0.5377620728 0.8537500000 0.5392151786 0.8550000000 0.5406612316 0.8562500000 0.5421002792 0.8575000000 0.5435323682 0.8587500000 0.5449575449 0.8600000000 0.5463758555 0.8612500000 0.5477873456 0.8625000000 0.5491920604 0.8637500000 0.5505900448 0.8650000000 0.5519813431 0.8662500000 0.5533659996 0.8675000000 0.5547440579 0.8687500000 0.5561155613 0.8700000000 0.5574805528 0.8712500000 0.5588390749 0.8725000000 0.5601911699 0.8737500000 0.5615368797 0.8750000000 0.5628762458 0.8762500000 0.5642093093 0.8775000000 0.5655361110 0.8787500000 0.5668566915 0.8800000000 0.5681710908 0.8812500000 0.5694793488 0.8825000000 0.5707815048 0.8837500000 0.5720775981 0.8850000000 0.5733676674 0.8862500000 0.5746517513 0.8875000000 0.5759298879 0.8887500000 0.5772021150 0.8900000000 0.5784684701 0.8912500000 0.5797289906 0.8925000000 0.5809837133 0.8937500000 0.5822326749 0.8950000000 0.5834759117 0.8962500000 0.5847134596 0.8975000000 0.5859453545 0.8987500000 0.5871716317 0.9000000000 0.5883923264 0.9012500000 0.5896074735 0.9025000000 0.5908171076 0.9037500000 0.5920212630 0.9050000000 0.5932199737 0.9062500000 0.5944132734 0.9075000000 0.5956011957 0.9087500000 0.5967837737 0.9100000000 0.5979610405 0.9112500000 0.5991330287 0.9125000000 0.6002997707 0.9137500000 0.6014612987 0.9150000000 0.6026176447 0.9162500000 0.6037688403 0.9175000000 0.6049149168 0.9187500000 0.6060559056 0.9200000000 0.6071918375 0.9212500000 0.6083227432 0.9225000000 0.6094486531 0.9237500000 0.6105695975 0.9250000000 0.6116856062 0.9262500000 0.6127967091 0.9275000000 0.6139029357 0.9287500000 0.6150043152 0.9300000000 0.6161008766 0.9312500000 0.6171926489 0.9325000000 0.6182796605 0.9337500000 0.6193619400 0.9350000000 0.6204395154 0.9362500000 0.6215124146 0.9375000000 0.6225806656 0.9387500000 0.6236442957 0.9400000000 0.6247033322 0.9412500000 0.6257578024 0.9425000000 0.6268077330 0.9437500000 0.6278531508 0.9450000000 0.6288940822 0.9462500000 0.6299305537 0.9475000000 0.6309625912 0.9487500000 0.6319902206 0.9500000000 0.6330134678 0.9512500000 0.6340323581 0.9525000000 0.6350469169 0.9537500000 0.6360571694 0.9550000000 0.6370631404 0.9562500000 0.6380648548 0.9575000000 0.6390623371 0.9587500000 0.6400556117 0.9600000000 0.6410447029 0.9612500000 0.6420296346 0.9625000000 0.6430104307 0.9637500000 0.6439871150 0.9650000000 0.6449597108 0.9662500000 0.6459282416 0.9675000000 0.6468927305 0.9687500000 0.6478532006 0.9700000000 0.6488096745 0.9712500000 0.6497621751 0.9725000000 0.6507107247 0.9737500000 0.6516553458 0.9750000000 0.6525960605 0.9762500000 0.6535328907 0.9775000000 0.6544658585 0.9787500000 0.6553949854 0.9800000000 0.6563202930 0.9812500000 0.6572418027 0.9825000000 0.6581595356 0.9837500000 0.6590735130 0.9850000000 0.6599837557 0.9862500000 0.6608902844 0.9875000000 0.6617931199 0.9887500000 0.6626922826 0.9900000000 0.6635877929 0.9912500000 0.6644796709 0.9925000000 0.6653679366 0.9937500000 0.6662526101 0.9950000000 0.6671337111 0.9962500000 0.6680112591 0.9975000000 0.6688852737 0.9987500000 0.6697557743 0.000000000 0.000000000 0.1250000000E-02 0.4985250980E-02 0.2500000000E-02 0.9974571219E-02 0.3750000000E-02 0.1497203888E-01 0.5000000000E-02 0.1998174996E-01 0.6250000000E-02 0.2500782733E-01 0.7500000000E-02 0.3005442985E-01 0.8750000000E-02 0.3512576167E-01 0.1000000000E-01 0.4022608169E-01 0.1125000000E-01 0.4535971332E-01 0.1250000000E-01 0.5053105450E-01 0.1375000000E-01 0.5574458797E-01 0.1500000000E-01 0.6100489207E-01 0.1625000000E-01 0.6631665185E-01 0.1750000000E-01 0.7168467070E-01 0.1875000000E-01 0.7711388256E-01 0.2000000000E-01 0.8260936466E-01 0.2125000000E-01 0.8817635106E-01 0.2250000000E-01 0.9382024677E-01 0.2375000000E-01 0.9954664287E-01 0.2500000000E-01 0.1053613324 0.2625000000E-01 0.1112703275 0.2750000000E-01 0.1172798771 0.2875000000E-01 0.1233964866 0.3000000000E-01 0.1296269385 0.3125000000E-01 0.1359783142 0.3250000000E-01 0.1424580181 0.3375000000E-01 0.1490738033 0.3500000000E-01 0.1558337984 0.3625000000E-01 0.1627465382 0.3750000000E-01 0.1698209954 0.3875000000E-01 0.1770666151 0.4000000000E-01 0.1844933533 0.4125000000E-01 0.1921117173 0.4250000000E-01 0.1999328107 0.4375000000E-01 0.2079683820 0.4500000000E-01 0.2162308774 0.4625000000E-01 0.2247334992 0.4750000000E-01 0.2334902693 0.4875000000E-01 0.2425160985 0.5000000000E-01 0.2518268635 0.5125000000E-01 0.2614394910 0.5250000000E-01 0.2713720500 0.5375000000E-01 0.2816438550 0.5500000000E-01 0.2922755788 0.5625000000E-01 0.3032893780 0.5750000000E-01 0.3147090323 0.5875000000E-01 0.3265600998 0.6000000000E-01 0.3388700889 0.6125000000E-01 0.3516686518 0.6250000000E-01 0.3649877995 0.6375000000E-01 0.3788621439 0.6500000000E-01 0.3933291696 0.6625000000E-01 0.4084295399 0.6750000000E-01 0.4242074427 0.6875000000E-01 0.4407109821 0.7000000000E-01 0.4579926225 0.7125000000E-01 0.4761096948 0.7250000000E-01 0.4951249740 0.7375000000E-01 0.5151073407 0.7500000000E-01 0.5361325409 0.7625000000E-01 0.5582840625 0.7750000000E-01 0.5816541478 0.7875000000E-01 0.6063449706 0.8000000000E-01 0.6324700069 0.8125000000E-01 0.6601556391 0.8250000000E-01 0.6895430422 0.8375000000E-01 0.7207904093 0.8500000000E-01 0.7540755926 0.8625000000E-01 0.7895992517 0.8750000000E-01 0.8275886278 0.8875000000E-01 0.8683020933 0.9000000000E-01 0.9120346693 0.9125000000E-01 0.9591247615 0.9250000000E-01 1.009962437 0.9375000000E-01 1.064999670 0.9500000000E-01 1.124763129 0.9625000000E-01 1.189870255 0.9750000000E-01 1.261049665 0.9875000000E-01 1.339167299 0.1000000000 1.425260244 0.1012500000 1.520580968 0.1025000000 1.626655838 0.1037500000 1.745363467 0.1050000000 1.879040937 0.1062500000 2.030629774 0.1075000000 2.203879283 0.1087500000 2.403633726 0.1100000000 2.636243310 0.1112500000 2.910159171 0.1125000000 3.236801414 0.1137500000 3.631825194 0.1150000000 4.116935872 0.1162500000 4.722349172 0.1175000000 5.489611626 0.1187500000 6.473054857 0.1200000000 7.733828136 0.1212500000 9.310743362 0.1225000000 11.14409577 0.1237500000 12.97359694 0.1250000000 14.38298837 0.1262500000 15.11645214 0.1275000000 15.31046052 0.1287500000 15.38928903 0.1300000000 15.81805848 0.1312500000 16.88477212 0.1325000000 18.60527728 0.1337500000 20.70187810 0.1350000000 22.73608054 0.1362500000 24.47221035 0.1375000000 26.06272407 0.1387500000 27.77102077 0.1400000000 29.68174092 0.1412500000 31.64624107 0.1425000000 33.29036243 0.1437500000 34.34998302 0.1450000000 35.06011823 0.1462500000 35.92329216 0.1475000000 37.25073328 0.1487500000 38.96896726 0.1500000000 40.58557227 0.1512500000 41.39110949 0.1525000000 41.13917589 0.1537500000 40.21925875 0.1550000000 38.96276682 0.1562500000 37.36463503 0.1575000000 35.46232246 0.1587500000 33.55738303 0.1600000000 31.97238651 0.1612500000 30.77145842 0.1625000000 29.79835271 0.1637500000 28.89172384 0.1650000000 27.98248696 0.1662500000 26.99307595 0.1675000000 25.77280990 0.1687500000 24.25723348 0.1700000000 22.61021344 0.1712500000 21.03698651 0.1725000000 19.65265708 0.1737500000 18.57941134 0.1750000000 17.95781166 0.1762500000 17.84895835 0.1775000000 18.16360336 0.1787500000 18.62258040 0.1800000000 18.86045219 0.1812500000 18.71313737 0.1825000000 18.30579994 0.1837500000 17.80579096 0.1850000000 17.24379866 0.1862500000 16.59929121 0.1875000000 15.94746114 0.1887500000 15.47403012 0.1900000000 15.32859697 0.1912500000 15.48282441 0.1925000000 15.76639169 0.1937500000 16.00706080 0.1950000000 16.11963296 0.1962500000 16.08694297 0.1975000000 15.88273876 0.1987500000 15.45708248 0.2000000000 14.81206285 0.2012500000 14.03728880 0.2025000000 13.25165527 0.2037500000 12.54277409 0.2050000000 11.93697427 0.2062500000 11.39719512 0.2075000000 10.85739476 0.2087500000 10.29626094 0.2100000000 9.767798315 0.2112500000 9.337482679 0.2125000000 9.030181991 0.2137500000 8.821713296 0.2150000000 8.658044792 0.2162500000 8.498729047 0.2175000000 8.333815681 0.2187500000 8.155023092 0.2200000000 7.938077974 0.2212500000 7.667527845 0.2225000000 7.345747263 0.2237500000 6.988387520 0.2250000000 6.641702125 0.2262500000 6.361230188 0.2275000000 6.166082792 0.2287500000 6.042706814 0.2300000000 5.979543486 0.2312500000 5.973496759 0.2325000000 6.006927217 0.2337500000 6.051157319 0.2350000000 6.089590607 0.2362500000 6.114204762 0.2375000000 6.124312016 0.2387500000 6.119278877 0.2400000000 6.077479723 0.2412500000 5.976157635 0.2425000000 5.817742510 0.2437500000 5.610051880 0.2450000000 5.362330515 0.2462500000 5.110481257 0.2475000000 4.904398265 0.2487500000 4.766635490 0.2500000000 4.669890670 0.2512500000 4.553148291 0.2525000000 4.374266059 0.2537500000 4.148320784 0.2550000000 3.918774024 0.2562500000 3.706198570 0.2575000000 3.511423418 0.2587500000 3.346400133 0.2600000000 3.227548454 0.2612500000 3.150639550 0.2625000000 3.096141354 0.2637500000 3.050424783 0.2650000000 3.008732477 0.2662500000 2.967970670 0.2675000000 2.927032281 0.2687500000 2.887365453 0.2700000000 2.843938058 0.2712500000 2.784732702 0.2725000000 2.706436816 0.2737500000 2.613530073 0.2750000000 2.506795896 0.2762500000 2.391359865 0.2775000000 2.279207507 0.2787500000 2.179064000 0.2800000000 2.096369087 0.2812500000 2.037136678 0.2825000000 2.004368965 0.2837500000 1.994323078 0.2850000000 2.001445261 0.2862500000 2.021178473 0.2875000000 2.042998069 0.2887500000 2.053712965 0.2900000000 2.054130427 0.2912500000 2.058751487 0.2925000000 2.080322834 0.2937500000 2.121975597 0.2950000000 2.169134776 0.2962500000 2.191702232 0.2975000000 2.173324314 0.2987500000 2.129299853 0.3000000000 2.085286142 0.3012500000 2.052493662 0.3025000000 2.023260160 0.3037500000 1.980751788 0.3050000000 1.913815851 0.3062500000 1.823739255 0.3075000000 1.719138925 0.3087500000 1.611345420 0.3100000000 1.512500806 0.3112500000 1.431174686 0.3125000000 1.370667666 0.3137500000 1.330415537 0.3150000000 1.305185483 0.3162500000 1.286292236 0.3175000000 1.266849262 0.3187500000 1.244981095 0.3200000000 1.223999293 0.3212500000 1.210194464 0.3225000000 1.205630723 0.3237500000 1.203496329 0.3250000000 1.194317597 0.3262500000 1.175873642 0.3275000000 1.153688748 0.3287500000 1.134310529 0.3300000000 1.121384081 0.3312500000 1.113836804 0.3325000000 1.106703277 0.3337500000 1.097889143 0.3350000000 1.093185598 0.3362500000 1.101456810 0.3375000000 1.127097137 0.3387500000 1.166486126 0.3400000000 1.209705461 0.3412500000 1.248373915 0.3425000000 1.283322230 0.3437500000 1.320489971 0.3450000000 1.359393011 0.3462500000 1.390385172 0.3475000000 1.400602378 0.3487500000 1.379604197 0.3500000000 1.327469162 0.3512500000 1.259452597 0.3525000000 1.194657696 0.3537500000 1.143708517 0.3550000000 1.109445217 0.3562500000 1.089362286 0.3575000000 1.076400994 0.3587500000 1.064503005 0.3600000000 1.052237384 0.3612500000 1.040445241 0.3625000000 1.030674669 0.3637500000 1.023251927 0.3650000000 1.015294637 0.3662500000 1.003857047 0.3675000000 0.9921820869 0.3687500000 0.9887996691 0.3700000000 0.9978583677 0.3712500000 1.014185382 0.3725000000 1.030070446 0.3737500000 1.041820404 0.3750000000 1.046212995 0.3762500000 1.036892742 0.3775000000 1.010071763 0.3787500000 0.9688336533 0.3800000000 0.9200720681 0.3812500000 0.8721032483 0.3825000000 0.8311645298 0.3837500000 0.7966473312 0.3850000000 0.7635428513 0.3862500000 0.7304083632 0.3875000000 0.7009894607 0.3887500000 0.6785615603 0.3900000000 0.6624384021 0.3912500000 0.6491727817 0.3925000000 0.6367580082 0.3937500000 0.6266416292 0.3950000000 0.6199402225 0.3962500000 0.6158410342 0.3975000000 0.6128502376 0.3987500000 0.6066761889 0.4000000000 0.5916097066 0.4012500000 0.5667872978 0.4025000000 0.5357943781 0.4037500000 0.5017624889 0.4050000000 0.4670015618 0.4062500000 0.4342996155 0.4075000000 0.4065640239 0.4087500000 0.3858868454 0.4100000000 0.3727904446 0.4112500000 0.3666031731 0.4125000000 0.3669318995 0.4137500000 0.3740935117 0.4150000000 0.3882348807 0.4162500000 0.4084718665 0.4175000000 0.4331148791 0.4187500000 0.4604530952 0.4200000000 0.4889468401 0.4212500000 0.5156998021 0.4225000000 0.5352657077 0.4237500000 0.5430111197 0.4250000000 0.5388519381 0.4262500000 0.5256454517 0.4275000000 0.5058038150 0.4287500000 0.4809982230 0.4300000000 0.4542762184 0.4312500000 0.4294974930 0.4325000000 0.4080022677 0.4337500000 0.3878398685 0.4350000000 0.3670314019 0.4362500000 0.3466325037 0.4375000000 0.3300773511 0.4387500000 0.3203378728 0.4400000000 0.3179339264 0.4412500000 0.3207205394 0.4425000000 0.3249354137 0.4437500000 0.3270411307 0.4450000000 0.3263282180 0.4462500000 0.3258594376 0.4475000000 0.3291723842 0.4487500000 0.3363538621 0.4500000000 0.3434362964 0.4512500000 0.3445274312 0.4525000000 0.3360882582 0.4537500000 0.3202148185 0.4550000000 0.3016439793 0.4562500000 0.2826654032 0.4575000000 0.2632814352 0.4587500000 0.2445191794 0.4600000000 0.2290607064 0.4612500000 0.2188379104 0.4625000000 0.2133217161 0.4637500000 0.2099526029 0.4650000000 0.2058846403 0.4662500000 0.1998771983 0.4675000000 0.1930933395 0.4687500000 0.1875240210 0.4700000000 0.1839706387 0.4712500000 0.1824231823 0.4725000000 0.1831829834 0.4737500000 0.1863832395 0.4750000000 0.1908057996 0.4762500000 0.1938856790 0.4775000000 0.1936386073 0.4787500000 0.1903506024 0.4800000000 0.1857335796 0.4812500000 0.1813438567 0.4825000000 0.1778570844 0.4837500000 0.1749328104 0.4850000000 0.1715957202 0.4862500000 0.1668654324 0.4875000000 0.1605468621 0.4887500000 0.1537076430 0.4900000000 0.1478290290 0.4912500000 0.1438742061 0.4925000000 0.1424598868 0.4937500000 0.1439110481 0.4950000000 0.1479291106 0.4962500000 0.1534875866 0.4975000000 0.1590411499 0.4987500000 0.1636745044 0.5000000000 0.1680726750 0.5012500000 0.1728658457 0.5025000000 0.1763583105 0.5037500000 0.1753411513 0.5050000000 0.1685630260 0.5062500000 0.1583991315 0.5075000000 0.1480806081 0.5087500000 0.1391761579 0.5100000000 0.1321459014 0.5112500000 0.1269266832 0.5125000000 0.1226498335 0.5137500000 0.1185203294 0.5150000000 0.1150212898 0.5162500000 0.1131803239 0.5175000000 0.1131333805 0.5187500000 0.1140648803 0.5200000000 0.1153016047 0.5212500000 0.1165610326 0.5225000000 0.1170436781 0.5237500000 0.1155294169 0.5250000000 0.1115418580 0.5262500000 0.1057956809 0.5275000000 0.9932360113E-01 0.5287500000 0.9254694534E-01 0.5300000000 0.8549522263E-01 0.5312500000 0.7846971339E-01 0.5325000000 0.7206823565E-01 0.5337500000 0.6671508770E-01 0.5350000000 0.6245382558E-01 0.5362500000 0.5910921734E-01 0.5375000000 0.5653332103E-01 0.5387500000 0.5471639141E-01 0.5400000000 0.5372730185E-01 0.5412500000 0.5364273451E-01 0.5425000000 0.5452080425E-01 0.5437500000 0.5632469944E-01 0.5450000000 0.5873689833E-01 0.5462500000 0.6100539290E-01 0.5475000000 0.6214098865E-01 0.5487500000 0.6145415241E-01 0.5500000000 0.5894463224E-01 0.5512500000 0.5521908896E-01 0.5525000000 0.5115543857E-01 0.5537500000 0.4749616467E-01 0.5550000000 0.4458266719E-01 0.5562500000 0.4242618658E-01 0.5575000000 0.4088690814E-01 0.5587500000 0.3980034825E-01 0.5600000000 0.3906786739E-01 0.5612500000 0.3868716129E-01 0.5625000000 0.3871570767E-01 0.5637500000 0.3922673426E-01 0.5650000000 0.4022823864E-01 0.5662500000 0.4149716288E-01 0.5675000000 0.4243686142E-01 0.5687500000 0.4233329593E-01 0.5700000000 0.4102621957E-01 0.5712500000 0.3900328492E-01 0.5725000000 0.3681673391E-01 0.5737500000 0.3478984387E-01 0.5750000000 0.3304210836E-01 0.5762500000 0.3155216090E-01 0.5775000000 0.3025584236E-01 0.5787500000 0.2912163302E-01 0.5800000000 0.2814419603E-01 0.5812500000 0.2731317039E-01 0.5825000000 0.2660714997E-01 0.5837500000 0.2600155426E-01 0.5850000000 0.2547471188E-01 0.5862500000 0.2500976365E-01 0.5875000000 0.2459438559E-01 0.5887500000 0.2421990997E-01 0.5900000000 0.2388044435E-01 0.5912500000 0.2357197876E-01 0.5925000000 0.2329104792E-01 0.5937500000 0.2303224054E-01 0.5950000000 0.2278484617E-01 0.5962500000 0.2253352513E-01 0.5975000000 0.2226931334E-01 0.5987500000 0.2199878762E-01 0.6000000000 0.2173516179E-01 0.6012500000 0.2148674979E-01 0.6025000000 0.2125604206E-01 0.6037500000 0.2104311202E-01 0.6050000000 0.2084799414E-01 0.6062500000 0.2067171066E-01 0.6075000000 0.2051662919E-01 0.6087500000 0.2038628596E-01 0.6100000000 0.2028388582E-01 0.6112500000 0.2020737477E-01 0.6125000000 0.2013917632E-01 0.6137500000 0.2003869777E-01 0.6150000000 0.1986386976E-01 0.6162500000 0.1961586465E-01 0.6175000000 0.1933675638E-01 0.6187500000 0.1906393705E-01 0.6200000000 0.1881141776E-01 0.6212500000 0.1857934478E-01 0.6225000000 0.1836448488E-01 0.6237500000 0.1816425863E-01 0.6250000000 0.1797668660E-01 0.6262500000 0.1779977729E-01 0.6275000000 0.1763162614E-01 0.6287500000 0.1747065161E-01 0.6300000000 0.1731565789E-01 0.6312500000 0.1716578746E-01 0.6325000000 0.1702044596E-01 0.6337500000 0.1687922290E-01 0.6350000000 0.1674178685E-01 0.6362500000 0.1660772043E-01 0.6375000000 0.1647637060E-01 0.6387500000 0.1634707014E-01 0.6400000000 0.1621980553E-01 0.6412500000 0.1609536996E-01 0.6425000000 0.1597474881E-01 0.6437500000 0.1585871777E-01 0.6450000000 0.1574773064E-01 0.6462500000 0.1564143103E-01 0.6475000000 0.1553741945E-01 0.6487500000 0.1543042698E-01 0.6500000000 0.1531527195E-01 0.6512500000 0.1519245781E-01 0.6525000000 0.1506754288E-01 0.6537500000 0.1494542893E-01 0.6550000000 0.1482814225E-01 0.6562500000 0.1471594362E-01 0.6575000000 0.1460857182E-01 0.6587500000 0.1450581414E-01 0.6600000000 0.1440768336E-01 0.6612500000 0.1431449261E-01 0.6625000000 0.1422698397E-01 0.6637500000 0.1414644732E-01 0.6650000000 0.1407466453E-01 0.6662500000 0.1401374309E-01 0.6675000000 0.1396589043E-01 0.6687500000 0.1393218539E-01 0.6700000000 0.1390786649E-01 0.6712500000 0.1387479931E-01 0.6725000000 0.1380385563E-01 0.6737500000 0.1368019234E-01 0.6750000000 0.1352131606E-01 0.6762500000 0.1335621258E-01 0.6775000000 0.1320192484E-01 0.6787500000 0.1306264806E-01 0.6800000000 0.1293678917E-01 0.6812500000 0.1282145135E-01 0.6825000000 0.1271404114E-01 0.6837500000 0.1261259152E-01 0.6850000000 0.1251569117E-01 0.6862500000 0.1242234275E-01 0.6875000000 0.1233183966E-01 0.6887500000 0.1224367595E-01 0.6900000000 0.1215748399E-01 0.6912500000 0.1207299230E-01 0.6925000000 0.1198999697E-01 0.6937500000 0.1190834221E-01 0.6950000000 0.1182790703E-01 0.6962500000 0.1174859589E-01 0.6975000000 0.1167033213E-01 0.6987500000 0.1159305333E-01 0.7000000000 0.1151670788E-01 0.7012500000 0.1144125252E-01 0.7025000000 0.1136665047E-01 0.7037500000 0.1129287008E-01 0.7050000000 0.1121988378E-01 0.7062500000 0.1114766728E-01 0.7075000000 0.1107619895E-01 0.7087500000 0.1100545933E-01 0.7100000000 0.1093543078E-01 0.7112500000 0.1086609716E-01 0.7125000000 0.1079744359E-01 0.7137500000 0.1072945628E-01 0.7150000000 0.1066212234E-01 0.7162500000 0.1059542968E-01 0.7175000000 0.1052936690E-01 0.7187500000 0.1046392318E-01 0.7200000000 0.1039908826E-01 0.7212500000 0.1033485232E-01 0.7225000000 0.1027120598E-01 0.7237500000 0.1020814021E-01 0.7250000000 0.1014564633E-01 0.7262500000 0.1008371597E-01 0.7275000000 0.1002234105E-01 0.7287500000 0.9961513717E-02 0.7300000000 0.9901226380E-02 0.7312500000 0.9841471658E-02 0.7325000000 0.9782242375E-02 0.7337500000 0.9723531543E-02 0.7350000000 0.9665332354E-02 0.7362500000 0.9607638166E-02 0.7375000000 0.9550442496E-02 0.7387500000 0.9493739009E-02 0.7400000000 0.9437521511E-02 0.7412500000 0.9381783944E-02 0.7425000000 0.9326520377E-02 0.7437500000 0.9271725000E-02 0.7450000000 0.9217392122E-02 0.7462500000 0.9163516163E-02 0.7475000000 0.9110091652E-02 0.7487500000 0.9057113219E-02 0.7500000000 0.9004575596E-02 0.7512500000 0.8952473612E-02 0.7525000000 0.8900802185E-02 0.7537500000 0.8849556328E-02 0.7550000000 0.8798731136E-02 0.7562500000 0.8748321792E-02 0.7575000000 0.8698323559E-02 0.7587500000 0.8648731779E-02 0.7600000000 0.8599541873E-02 0.7612500000 0.8550749336E-02 0.7625000000 0.8502349734E-02 0.7637500000 0.8454338706E-02 0.7650000000 0.8406711960E-02 0.7662500000 0.8359465270E-02 0.7675000000 0.8312594479E-02 0.7687500000 0.8266095489E-02 0.7700000000 0.8219964269E-02 0.7712500000 0.8174196847E-02 0.7725000000 0.8128789311E-02 0.7737500000 0.8083737807E-02 0.7750000000 0.8039038538E-02 0.7762500000 0.7994687764E-02 0.7775000000 0.7950681799E-02 0.7787500000 0.7907017009E-02 0.7800000000 0.7863689814E-02 0.7812500000 0.7820696684E-02 0.7825000000 0.7778034140E-02 0.7837500000 0.7735698751E-02 0.7850000000 0.7693687135E-02 0.7862500000 0.7651995957E-02 0.7875000000 0.7610621928E-02 0.7887500000 0.7569561805E-02 0.7900000000 0.7528812389E-02 0.7912500000 0.7488370523E-02 0.7925000000 0.7448233096E-02 0.7937500000 0.7408397036E-02 0.7950000000 0.7368859314E-02 0.7962500000 0.7329616942E-02 0.7975000000 0.7290666969E-02 0.7987500000 0.7252006485E-02 0.8000000000 0.7213632619E-02 0.8012500000 0.7175542535E-02 0.8025000000 0.7137733437E-02 0.8037500000 0.7100202563E-02 0.8050000000 0.7062947188E-02 0.8062500000 0.7025964621E-02 0.8075000000 0.6989252206E-02 0.8087500000 0.6952807321E-02 0.8100000000 0.6916627377E-02 0.8112500000 0.6880709819E-02 0.8125000000 0.6845052121E-02 0.8137500000 0.6809651793E-02 0.8150000000 0.6774506373E-02 0.8162500000 0.6739613430E-02 0.8175000000 0.6704970565E-02 0.8187500000 0.6670575405E-02 0.8200000000 0.6636425611E-02 0.8212500000 0.6602518869E-02 0.8225000000 0.6568852894E-02 0.8237500000 0.6535425429E-02 0.8250000000 0.6502234246E-02 0.8262500000 0.6469277141E-02 0.8275000000 0.6436551938E-02 0.8287500000 0.6404056488E-02 0.8300000000 0.6371788666E-02 0.8312500000 0.6339746373E-02 0.8325000000 0.6307927535E-02 0.8337500000 0.6276330103E-02 0.8350000000 0.6244952051E-02 0.8362500000 0.6213791377E-02 0.8375000000 0.6182846103E-02 0.8387500000 0.6152114275E-02 0.8400000000 0.6121593959E-02 0.8412500000 0.6091283246E-02 0.8425000000 0.6061180248E-02 0.8437500000 0.6031283098E-02 0.8450000000 0.6001589952E-02 0.8462500000 0.5972098987E-02 0.8475000000 0.5942808399E-02 0.8487500000 0.5913716407E-02 0.8500000000 0.5884821247E-02 0.8512500000 0.5856121178E-02 0.8525000000 0.5827614478E-02 0.8537500000 0.5799299443E-02 0.8550000000 0.5771174388E-02 0.8562500000 0.5743237650E-02 0.8575000000 0.5715487581E-02 0.8587500000 0.5687922552E-02 0.8600000000 0.5660540953E-02 0.8612500000 0.5633341192E-02 0.8625000000 0.5606321694E-02 0.8637500000 0.5579480900E-02 0.8650000000 0.5552817270E-02 0.8662500000 0.5526329280E-02 0.8675000000 0.5500015423E-02 0.8687500000 0.5473874208E-02 0.8700000000 0.5447904159E-02 0.8712500000 0.5422103819E-02 0.8725000000 0.5396471743E-02 0.8737500000 0.5371006505E-02 0.8750000000 0.5345706692E-02 0.8762500000 0.5320570906E-02 0.8775000000 0.5295597765E-02 0.8787500000 0.5270785902E-02 0.8800000000 0.5246133964E-02 0.8812500000 0.5221640610E-02 0.8825000000 0.5197304517E-02 0.8837500000 0.5173124374E-02 0.8850000000 0.5149098884E-02 0.8862500000 0.5125226762E-02 0.8875000000 0.5101506740E-02 0.8887500000 0.5077937560E-02 0.8900000000 0.5054517978E-02 0.8912500000 0.5031246764E-02 0.8925000000 0.5008122698E-02 0.8937500000 0.4985144576E-02 0.8950000000 0.4962311204E-02 0.8962500000 0.4939621401E-02 0.8975000000 0.4917073999E-02 0.8987500000 0.4894667839E-02 0.9000000000 0.4872401778E-02 0.9012500000 0.4850274680E-02 0.9025000000 0.4828285425E-02 0.9037500000 0.4806432901E-02 0.9050000000 0.4784716009E-02 0.9062500000 0.4763133660E-02 0.9075000000 0.4741684778E-02 0.9087500000 0.4720368294E-02 0.9100000000 0.4699183153E-02 0.9112500000 0.4678128309E-02 0.9125000000 0.4657202728E-02 0.9137500000 0.4636405384E-02 0.9150000000 0.4615735263E-02 0.9162500000 0.4595191359E-02 0.9175000000 0.4574772678E-02 0.9187500000 0.4554478235E-02 0.9200000000 0.4534307055E-02 0.9212500000 0.4514258172E-02 0.9225000000 0.4494330629E-02 0.9237500000 0.4474523479E-02 0.9250000000 0.4454835785E-02 0.9262500000 0.4435266618E-02 0.9275000000 0.4415815058E-02 0.9287500000 0.4396480194E-02 0.9300000000 0.4377261124E-02 0.9312500000 0.4358156955E-02 0.9325000000 0.4339166802E-02 0.9337500000 0.4320289788E-02 0.9350000000 0.4301525046E-02 0.9362500000 0.4282871717E-02 0.9375000000 0.4264328947E-02 0.9387500000 0.4245895895E-02 0.9400000000 0.4227571725E-02 0.9412500000 0.4209355608E-02 0.9425000000 0.4191246727E-02 0.9437500000 0.4173244268E-02 0.9450000000 0.4155347427E-02 0.9462500000 0.4137555408E-02 0.9475000000 0.4119867421E-02 0.9487500000 0.4102282684E-02 0.9500000000 0.4084800423E-02 0.9512500000 0.4067419870E-02 0.9525000000 0.4050140265E-02 0.9537500000 0.4032960855E-02 0.9550000000 0.4015880893E-02 0.9562500000 0.3998899640E-02 0.9575000000 0.3982016364E-02 0.9587500000 0.3965230338E-02 0.9600000000 0.3948540843E-02 0.9612500000 0.3931947167E-02 0.9625000000 0.3915448604E-02 0.9637500000 0.3899044454E-02 0.9650000000 0.3882734023E-02 0.9662500000 0.3866516626E-02 0.9675000000 0.3850391580E-02 0.9687500000 0.3834358212E-02 0.9700000000 0.3818415853E-02 0.9712500000 0.3802563841E-02 0.9725000000 0.3786801519E-02 0.9737500000 0.3771128236E-02 0.9750000000 0.3755543348E-02 0.9762500000 0.3740046216E-02 0.9775000000 0.3724636207E-02 0.9787500000 0.3709312692E-02 0.9800000000 0.3694075050E-02 0.9812500000 0.3678922665E-02 0.9825000000 0.3663854925E-02 0.9837500000 0.3648871225E-02 0.9850000000 0.3633970964E-02 0.9862500000 0.3619153547E-02 0.9875000000 0.3604418385E-02 0.9887500000 0.3589764894E-02 0.9900000000 0.3575192493E-02 0.9912500000 0.3560700608E-02 0.9925000000 0.3546288670E-02 0.9937500000 0.3531956115E-02 0.9950000000 0.3517702383E-02 0.9962500000 0.3503526919E-02 0.9975000000 0.3489429174E-02 0.9987500000 0.3475408602E-02 elk-6.3.2/examples/BSE/Si/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737015747 xustar0030 mtime=1569569247.340640213 30 atime=1569569247.339640214 30 ctime=1569569247.340640213 elk-6.3.2/examples/BSE/Si/elk.in0000644002504400250440000000330113543334737020013 0ustar00dewhurstdewhurst00000000000000 ! BSE optical spectrum of silicon. Note that the non-zero vkloff is needed to ! make the system non-metallic, i.e. all occupancies in EIGVAL.OUT should be ! either 0 or 1. If this is not the case, then the response function will be ! too large. This is quite a time-consuming calculation and should be run on ! a multi-processor system. ! Silicon is surprisingly difficult for a BSE calculation: it requires quite a ! large k-point set for good convergence, unlike the excitonic peak in LiF. tasks 0 ! ground-state calculation 120 ! compute momentum matrix elements 121 ! compute RPA dielectric function with no local field contributions 180 ! generate RPA dielectric function with local field contributions 185 ! write the BSE Hamiltonian matrix to file 186 ! diagonalise the BSE matrix 187 ! compute BSE dielectric function ! this should be small (but not so small that it affects the results!) for a ! fast calculation because the wavefunctions used in the construction of the BSE ! matrix elements are expanded to this angular momentum cut-off lmaxo 4 ! number of valence states to use in BSE Hamiltonian nvbse 3 ! number of conduction states ncbse 4 ! a scissor correction is required to match the gap to experiment scissor 0.0331 swidth 0.005 wplot 800 100 0 : nwplot, ngrkf, nswplot 0.0 1.0 : wplot avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 5 5 5 vkloff 0.25 0.5 0.625 elk-6.3.2/examples/BSE/PaxHeaders.21352/CaO-core0000644000000000000000000000013213543334737015604 xustar0030 mtime=1569569247.355640204 30 atime=1569569247.344640211 30 ctime=1569569247.355640204 elk-6.3.2/examples/BSE/CaO-core/0000755002504400250440000000000013543334737017730 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/BSE/CaO-core/PaxHeaders.21352/Ca_lo.in0000644000000000000000000000013113543334737017225 xustar0030 mtime=1569569247.347640209 29 atime=1569569247.34664021 30 ctime=1569569247.347640209 elk-6.3.2/examples/BSE/CaO-core/Ca_lo.in0000644002504400250440000000357313543334737021305 0ustar00dewhurstdewhurst00000000000000 'Ca_lo' : spsymb 'calcium' : spname -20.0000 : spzn 73057.72467 : spmass 0.447214E-06 2.2000 40.2509 500 : sprmin, rmt, sprmax, nrmt 8 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 T 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -12.300 0 T 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.9708 0 T 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.2735 0 T 2 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0.5000 0 T elk-6.3.2/examples/BSE/CaO-core/PaxHeaders.21352/O.in0000644000000000000000000000013213543334737016407 xustar0030 mtime=1569569247.352640206 30 atime=1569569247.351640206 30 ctime=1569569247.352640206 elk-6.3.2/examples/BSE/CaO-core/O.in0000644002504400250440000000222013543334737020452 0ustar00dewhurstdewhurst00000000000000 'O' : spsymb 'oxygen' : spname -8.00000 : spzn 29165.12202 : spmass 0.707107E-06 1.6000 22.7954 300 : sprmin, rmt, sprmax, nrmt 4 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.1227 0 T elk-6.3.2/examples/BSE/CaO-core/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016764 xustar0030 mtime=1569569247.357640202 30 atime=1569569247.356640203 30 ctime=1569569247.357640202 elk-6.3.2/examples/BSE/CaO-core/elk.in0000644002504400250440000000506213543334737021036 0ustar00dewhurstdewhurst00000000000000 ! This example demonstrates the calculation of the Ca 2p 1/2 - 2p 3/2 (L2 / L3) ! x-ray absorption spectra in CaO. The Ca 2p states are treated as local ! orbitals in Ca_lo.in; additional local orbitals are added to allow an accurate ! description of the unoccupied 3d states (compare with the default version of Ca.in). ! Look at the imaginary part of the spectrum (EPSILON_BSE_11.OUT) in the range 11.8 to ! 12.5 Ha. Compare to the independent-particle calculation (EPSILON_11.OUT). ! Try switching off the exchange and the direct term in the BSE Hamiltonian ! individually (set hxbse/hdbse to .false.). ! For a converged spectrum a lot more k-points (6 x 6 x 6 or more) are needed. ! The numerical cut-offs are well converged, so the computation is quite time ! and memory consuming. Run with hybrid parallelization (MPI across nodes, OpenMP ! across cores) on a cluster for smaller memory footprint. Compare with calculations ! and experimental data in J. Phys. Condens. Matter 23, 145501 (2011). ! Example by Markus Meinert. tasks 0 ! ground-state calculation 120 ! compute momentum matrix elements 121 ! compute RPA dielectric function without local field contributions 180 ! generate RPA dielectric function with local field contributions 185 ! write the BSE Hamiltonian matrix to file 186 ! diagonalise BSE matrix 187 ! compute BSE dielectric function ! do not include valence bands right below E_F nvbse 0 ! additional valence bands for the BSE calculation - these are the six 2p states ! of Ca (check EIGVAL.OUT) istxbse 1 2 3 4 5 6 ! number of conduction band states for the BSE calculation ncbse 20 ! large number of empty states required nempty 20 ! enhanced G-vector cut-off of local contribution to RPA gmaxrf 5.0 ! the spectrum is very sensitive to the k-point mesh ngridk 2 2 2 ! use a symmetry breaking shift for more efficient use of the k-points vkloff 0.05 0.15 0.25 ! Broyden mixing for fast convergence mixtype 3 ! the energy window for the plot starts at zero by default; ! sufficient energy points needed wplot 5000 100 0 0.0 14.0 ! include spin-orbit coupling for the 2p 1/2 - 2p 3/2 splitting spinorb .true. ! about 0.27 eV Lorentzian broadening to simulate lifetime effects swidth 0.01 sppath './' avec 4.545 4.545 0.0 4.545 -4.545 0.0 4.545 0.0 4.545 atoms 2 : nspecies 'Ca_lo.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'O.in' 1 0.5 0.5 0.0 elk-6.3.2/examples/BSE/PaxHeaders.21352/LiF0000644000000000000000000000012613543334737014671 xustar0028 mtime=1569569247.3616402 30 atime=1569569247.360640201 28 ctime=1569569247.3616402 elk-6.3.2/examples/BSE/LiF/0000755002504400250440000000000013543334737017012 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/BSE/LiF/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334737016044 xustar0030 mtime=1569569247.362640199 28 atime=1569569247.3616402 30 ctime=1569569247.362640199 elk-6.3.2/examples/BSE/LiF/elk.in0000644002504400250440000000217613543334737020123 0ustar00dewhurstdewhurst00000000000000 ! BSE optical spectrum of lithium fluoride. This material has a prominent ! excitonic peak, which is absent in the usual RPA dielectric function. tasks 0 ! ground-state calculation 120 ! compute momentum matrix elements 121 ! compute RPA dielectric function with no local field contributions 180 ! generate RPA dielectric function with local field contributions 185 ! write BSE Hamiltonian matrix 186 ! diagonalise BSE matrix 187 ! generate BSE dielectric function scissor 0.21 ! number of BSE valence states nvbse 3 ! number of BSE conduction states ncbse 4 ! G-vector cut-off of local contribution to RPA gmaxrf 3.0 swidth 0.005 nempty 8 wplot 800 100 0 : nwplot, ngrkf, nswplot 0.0 1.5 : wplot avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 4 4 4 elk-6.3.2/examples/PaxHeaders.21352/ELF0000644000000000000000000000013213543334737014211 xustar0030 mtime=1569569247.374640192 30 atime=1569569247.366640197 30 ctime=1569569247.374640192 elk-6.3.2/examples/ELF/0000755002504400250440000000000013543334737016335 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELF/PaxHeaders.21352/BN0000644000000000000000000000013213543334737014510 xustar0030 mtime=1569569247.370640194 30 atime=1569569247.369640195 30 ctime=1569569247.370640194 elk-6.3.2/examples/ELF/BN/0000755002504400250440000000000013543334737016634 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELF/BN/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737015670 xustar0030 mtime=1569569247.372640193 30 atime=1569569247.371640194 30 ctime=1569569247.372640193 elk-6.3.2/examples/ELF/BN/elk.in0000644002504400250440000000105513543334737017740 0ustar00dewhurstdewhurst00000000000000 ! Electron localisation function (ELF) of cubic boron nitride. Note that the ELF ! is not continuous at the muffin-tin boundaries. To make it smooth increase ! several parameters such as rgkmax, gmaxvr, lmaxo and lmaxapw. Alternatively, ! run with highq=.true. tasks 0 51 plot1d 2 400 0.0 0.0 0.0 1.0 1.0 1.0 avec 3.4204 3.4204 0.0000 3.4204 0.0000 3.4204 0.0000 3.4204 3.4204 sppath '../../../species/' atoms 2 'B.in' 1 0.0 0.0 0.0 'N.in' 1 0.25 0.25 0.25 ngridk 2 2 2 vkloff 0.25 0.5 0.625 elk-6.3.2/examples/ELF/PaxHeaders.21352/Ru0000644000000000000000000000013213543334737014577 xustar0030 mtime=1569569247.381640187 30 atime=1569569247.375640191 30 ctime=1569569247.381640187 elk-6.3.2/examples/ELF/Ru/0000755002504400250440000000000013543334737016723 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELF/Ru/PaxHeaders.21352/Ru.in0000644000000000000000000000013113543334737015571 xustar0030 mtime=1569569247.378640189 29 atime=1569569247.37764019 30 ctime=1569569247.378640189 elk-6.3.2/examples/ELF/Ru/Ru.in0000644002504400250440000000404113543334737017640 0ustar00dewhurstdewhurst00000000000000 'Ru' : spsymb 'ruthenium' : spname -44.0000 : spzn 184239.3392 : spmass 0.301511E-06 2.0000 43.5262 600 : sprmin, rmt, sprmax, nrmt 15 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 3.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 1 : nlx 2 2 : lx, io 0.1500 0 F : apwe0, apwdm, apwve 0.1500 1 F 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0.1500 2 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -2.6548 0 T 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.6432 0 T elk-6.3.2/examples/ELF/Ru/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737015757 xustar0030 mtime=1569569247.382640187 30 atime=1569569247.381640187 30 ctime=1569569247.382640187 elk-6.3.2/examples/ELF/Ru/elk.in0000644002504400250440000000150413543334737020026 0ustar00dewhurstdewhurst00000000000000 ! Example due to A. Baranov on how to obtain a very smooth electron localisation ! function (ELF). Since the ELF depends on derivatives of the density it can ! sometimes be mismatched at the muffin-tin boundaries. This can be corrected ! by using high cut-offs for angular momenta and APW functions. Note also that a ! modified species file Ru.in is used. tasks 0 31 51 avec 4.42816109463 -2.5566 0.0 0.0 5.1132 0.0 0.0 0.0 8.0901 atoms 1 'Ru.in' 2 0.3333333333 0.6666666667 0.25 0.6666666667 0.3333333333 0.75 ! this ensures that no radial points will be skipped when computing the density lradstp 1 rgkmax 11.0 gmaxvr 22.0 msmooth 4 lmaxapw 12 lmaxo 12 ngridk 2 2 1 vkloff 0.5 0.5 0.5 plot1d 2 1000 0.0 0.0 0.0 0.0 1.0 0.0 elk-6.3.2/examples/PaxHeaders.21352/Hartree-Fock0000644000000000000000000000013013543334737016053 xustar0029 mtime=1569569247.39264018 30 atime=1569569247.386640184 29 ctime=1569569247.39264018 elk-6.3.2/examples/Hartree-Fock/0000755002504400250440000000000013543334737020201 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Hartree-Fock/PaxHeaders.21352/HEG0000644000000000000000000000013213543334737016460 xustar0030 mtime=1569569247.389640182 30 atime=1569569247.388640183 30 ctime=1569569247.389640182 elk-6.3.2/examples/Hartree-Fock/HEG/0000755002504400250440000000000013543334737020604 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Hartree-Fock/HEG/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017640 xustar0030 mtime=1569569247.391640181 30 atime=1569569247.390640181 30 ctime=1569569247.391640181 elk-6.3.2/examples/Hartree-Fock/HEG/elk.in0000644002504400250440000000065213543334737021712 0ustar00dewhurstdewhurst00000000000000 ! Hartree-Fock ground state of the homogenous electron gas. The Wigner radius ! (r_s) is written to INFO.OUT. Note that the exact exchange energy is only ! computed during the last iteration. tasks 0 5 chgexs 10.0 ! use the unit cell of aluminium avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.75 ! note that low density gases require denser k-point grids! ngridk 2 2 2 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/Hartree-Fock/PaxHeaders.21352/Si0000644000000000000000000000013213543334737016430 xustar0030 mtime=1569569247.395640178 30 atime=1569569247.394640179 30 ctime=1569569247.395640178 elk-6.3.2/examples/Hartree-Fock/Si/0000755002504400250440000000000013543334737020554 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Hartree-Fock/Si/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017610 xustar0030 mtime=1569569247.396640178 30 atime=1569569247.395640178 30 ctime=1569569247.396640178 elk-6.3.2/examples/Hartree-Fock/Si/elk.in0000644002504400250440000000151213543334737021656 0ustar00dewhurstdewhurst00000000000000 ! Hartree-Fock calculation of silicon. Note that this is still an experimental ! feature in Elk. It is also quite slow and is best run using OpenMP on a ! multi-processor machine. ! Important: the exact exchange energy is only calculated on the last iteration. ! All previously calculated exchange energies are approximate. tasks 0 5 ! Hartree-Fock is treated as a second-variational correction to the Kohn-Sham ! problem. Thus a large number of empty states are required for convergence. nempty 8 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 2 2 2 vkloff 0.25 0.25 0.25 elk-6.3.2/examples/PaxHeaders.21352/TDDFT-magnetic-response0000644000000000000000000000013213543334737020071 xustar0030 mtime=1569569247.416640165 30 atime=1569569247.400640175 30 ctime=1569569247.416640165 elk-6.3.2/examples/TDDFT-magnetic-response/0000755002504400250440000000000013543334737022215 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-magnetic-response/PaxHeaders.21352/Ni-magnetic-response0000644000000000000000000000013213543334737024060 xustar0030 mtime=1569569247.413640167 30 atime=1569569247.403640173 30 ctime=1569569247.413640167 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/0000755002504400250440000000000013543334737026204 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/PaxHeaders.21352/CHI0_T.OUT0000644000000000000000000000013213543334737025474 xustar0030 mtime=1569569247.406640171 30 atime=1569569247.405640172 30 ctime=1569569247.406640171 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/CHI0_T.OUT0000644002504400250440000001053213543334737027544 0ustar00dewhurstdewhurst00000000000000 0.000000000 -1.169399737 0.3333333333E-03 -1.180064743 0.6666666667E-03 -1.190839903 0.1000000000E-02 -1.201497740 0.1333333333E-02 -1.211893033 0.1666666667E-02 -1.222342874 0.2000000000E-02 -1.233315994 0.2333333333E-02 -1.245298205 0.2666666667E-02 -1.258562475 0.3000000000E-02 -1.273000392 0.3333333333E-02 -1.288383516 0.3666666667E-02 -1.304637755 0.4000000000E-02 -1.321833172 0.4333333333E-02 -1.340027347 0.4666666667E-02 -1.359238627 0.5000000000E-02 -1.379484422 0.5333333333E-02 -1.400824318 0.5666666667E-02 -1.423370803 0.6000000000E-02 -1.447251187 0.6333333333E-02 -1.472530935 0.6666666667E-02 -1.499122868 0.7000000000E-02 -1.526654516 0.7333333333E-02 -1.554437359 0.7666666667E-02 -1.581407646 0.8000000000E-02 -1.605589842 0.8333333333E-02 -1.625760598 0.8666666667E-02 -1.643850604 0.9000000000E-02 -1.659660401 0.9333333333E-02 -1.671708350 0.9666666667E-02 -1.682008779 0.1000000000E-01 -1.689039540 0.1033333333E-01 -1.691769564 0.1066666667E-01 -1.694575575 0.1100000000E-01 -1.705930589 0.1133333333E-01 -1.733473412 0.1166666667E-01 -1.776791141 0.1200000000E-01 -1.828935719 0.1233333333E-01 -1.882639876 0.1266666667E-01 -1.933642392 0.1300000000E-01 -1.983673294 0.1333333333E-01 -2.035056792 0.1366666667E-01 -2.079482726 0.1400000000E-01 -2.102617650 0.1433333333E-01 -2.106032706 0.1466666667E-01 -2.117766575 0.1500000000E-01 -2.155158865 0.1533333333E-01 -2.206430136 0.1566666667E-01 -2.259152859 0.1600000000E-01 -2.319359916 0.1633333333E-01 -2.397988369 0.1666666667E-01 -2.494952820 0.1700000000E-01 -2.604613005 0.1733333333E-01 -2.719111589 0.1766666667E-01 -2.827094434 0.1800000000E-01 -2.920306356 0.1833333333E-01 -3.001406405 0.1866666667E-01 -3.084291489 0.1900000000E-01 -3.183535833 0.1933333333E-01 -3.284242511 0.1966666667E-01 -3.342322159 0.000000000 -0.3022315633E-01 0.3333333333E-03 -0.3347470196E-01 0.6666666667E-03 -0.3694264790E-01 0.1000000000E-02 -0.4054120530E-01 0.1333333333E-02 -0.4385516884E-01 0.1666666667E-02 -0.4644968320E-01 0.2000000000E-02 -0.4822915850E-01 0.2333333333E-02 -0.4933399848E-01 0.2666666667E-02 -0.5022648079E-01 0.3000000000E-02 -0.5131150679E-01 0.3333333333E-02 -0.5271726473E-01 0.3666666667E-02 -0.5438696123E-01 0.4000000000E-02 -0.5633169082E-01 0.4333333333E-02 -0.5864414169E-01 0.4666666667E-02 -0.6142708760E-01 0.5000000000E-02 -0.6475920875E-01 0.5333333333E-02 -0.6871921014E-01 0.5666666667E-02 -0.7344019241E-01 0.6000000000E-02 -0.7917251729E-01 0.6333333333E-02 -0.8630978875E-01 0.6666666667E-02 -0.9539027545E-01 0.7000000000E-02 -0.1070291645 0.7333333333E-02 -0.1217502007 0.7666666667E-02 -0.1400093291 0.8000000000E-02 -0.1615460765 0.8333333333E-02 -0.1838532507 0.8666666667E-02 -0.2054415729 0.9000000000E-02 -0.2277103553 0.9333333333E-02 -0.2485751570 0.9666666667E-02 -0.2670959518 0.1000000000E-01 -0.2838540861 0.1033333333E-01 -0.2943655775 0.1066666667E-01 -0.2937976104 0.1100000000E-01 -0.2815054704 0.1133333333E-01 -0.2645243724 0.1166666667E-01 -0.2535438630 0.1200000000E-01 -0.2545997152 0.1233333333E-01 -0.2677295870 0.1266666667E-01 -0.2889050781 0.1300000000E-01 -0.3143707938 0.1333333333E-01 -0.3481122778 0.1366666667E-01 -0.3955258521 0.1400000000E-01 -0.4479752645 0.1433333333E-01 -0.4811172622 0.1466666667E-01 -0.4853855451 0.1500000000E-01 -0.4829100648 0.1533333333E-01 -0.4910656543 0.1566666667E-01 -0.5040959354 0.1600000000E-01 -0.5126483863 0.1633333333E-01 -0.5226747535 0.1666666667E-01 -0.5459798699 0.1700000000E-01 -0.5899690415 0.1733333333E-01 -0.6597397675 0.1766666667E-01 -0.7552227926 0.1800000000E-01 -0.8673797682 0.1833333333E-01 -0.9844396909 0.1866666667E-01 -1.102311376 0.1900000000E-01 -1.238407654 0.1933333333E-01 -1.423779339 0.1966666667E-01 -1.660370932 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/PaxHeaders.21352/CHI_T.OUT0000644000000000000000000000013213543334737025414 xustar0030 mtime=1569569247.410640169 30 atime=1569569247.409640169 30 ctime=1569569247.410640169 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/CHI_T.OUT0000644002504400250440000001053213543334737027464 0ustar00dewhurstdewhurst00000000000000 0.000000000 -7.947625401 0.3333333333E-03 -8.437765313 0.6666666667E-03 -8.964537558 0.1000000000E-02 -9.512772499 0.1333333333E-02 -10.07748384 0.1666666667E-02 -10.69051052 0.2000000000E-02 -11.39609507 0.2333333333E-02 -12.23183126 0.2666666667E-02 -13.15147742 0.3000000000E-02 -13.95607301 0.3333333333E-02 -14.26787677 0.3666666667E-02 -13.36053649 0.4000000000E-02 -9.771320013 0.4333333333E-02 -2.424589324 0.4666666667E-02 6.093511471 0.5000000000E-02 11.43418701 0.5333333333E-02 13.05307386 0.5666666667E-02 12.67045067 0.6000000000E-02 11.57071734 0.6333333333E-02 10.32941695 0.6666666667E-02 9.158722357 0.7000000000E-02 8.128141390 0.7333333333E-02 7.252062436 0.7666666667E-02 6.516791089 0.8000000000E-02 5.917830063 0.8333333333E-02 5.463322839 0.8666666667E-02 5.114826421 0.9000000000E-02 4.833042646 0.9333333333E-02 4.631614923 0.9666666667E-02 4.493575097 0.1000000000E-01 4.411970992 0.1033333333E-01 4.403105999 0.1066666667E-01 4.447642841 0.1100000000E-01 4.485349736 0.1133333333E-01 4.435113452 0.1166666667E-01 4.271194411 0.1200000000E-01 4.042496785 0.1233333333E-01 3.806813331 0.1266666667E-01 3.595745727 0.1300000000E-01 3.407989749 0.1333333333E-01 3.228114181 0.1366666667E-01 3.062801866 0.1400000000E-01 2.938586661 0.1433333333E-01 2.872491455 0.1466666667E-01 2.837604389 0.1500000000E-01 2.787366568 0.1533333333E-01 2.719670235 0.1566666667E-01 2.657991234 0.1600000000E-01 2.602456618 0.1633333333E-01 2.534386517 0.1666666667E-01 2.447813997 0.1700000000E-01 2.350605028 0.1733333333E-01 2.253322405 0.1766666667E-01 2.165368402 0.1800000000E-01 2.090486430 0.1833333333E-01 2.023927027 0.1866666667E-01 1.957906575 0.1900000000E-01 1.888382522 0.1933333333E-01 1.818930266 0.1966666667E-01 1.757425101 0.000000000 -1.580545278 0.3333333333E-03 -1.950668145 0.6666666667E-03 -2.415558754 0.1000000000E-02 -2.989251270 0.1333333333E-02 -3.666678700 0.1666666667E-02 -4.456243558 0.2000000000E-02 -5.412859379 0.2333333333E-02 -6.661497976 0.2666666667E-02 -8.417568557 0.3000000000E-02 -10.92675946 0.3333333333E-02 -14.41576173 0.3666666667E-02 -19.07814087 0.4000000000E-02 -24.45213244 0.4333333333E-02 -27.94948860 0.4666666667E-02 -26.36873493 0.5000000000E-02 -20.97036535 0.5333333333E-02 -15.38297753 0.5666666667E-02 -11.16759873 0.6000000000E-02 -8.290034133 0.6333333333E-02 -6.370392998 0.6666666667E-02 -5.092453311 0.7000000000E-02 -4.244113480 0.7333333333E-02 -3.682622714 0.7666666667E-02 -3.317876023 0.8000000000E-02 -3.100910340 0.8333333333E-02 -2.971031250 0.8666666667E-02 -2.867009256 0.9000000000E-02 -2.793713099 0.9333333333E-02 -2.744699557 0.9666666667E-02 -2.691555862 0.1000000000E-01 -2.640594933 0.1033333333E-01 -2.565924960 0.1066666667E-01 -2.419947718 0.1100000000E-01 -2.171690692 0.1133333333E-01 -1.849959957 0.1166666667E-01 -1.542994748 0.1200000000E-01 -1.312573298 0.1233333333E-01 -1.161818538 0.1266666667E-01 -1.063608651 0.1300000000E-01 -0.9891054435 0.1333333333E-01 -0.9365564833 0.1366666667E-01 -0.9202209036 0.1400000000E-01 -0.9363459151 0.1433333333E-01 -0.9501975250 0.1466666667E-01 -0.9218537854 0.1500000000E-01 -0.8612213124 0.1533333333E-01 -0.8045842577 0.1566666667E-01 -0.7554398023 0.1600000000E-01 -0.6953404972 0.1633333333E-01 -0.6238407621 0.1666666667E-01 -0.5572012273 0.1700000000E-01 -0.5066171962 0.1733333333E-01 -0.4748287160 0.1766666667E-01 -0.4578680894 0.1800000000E-01 -0.4463923863 0.1833333333E-01 -0.4325528159 0.1866666667E-01 -0.4159591229 0.1900000000E-01 -0.4025242244 0.1933333333E-01 -0.3987401259 0.1966666667E-01 -0.4042694944 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737025240 xustar0030 mtime=1569569247.414640166 30 atime=1569569247.413640167 30 ctime=1569569247.414640166 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnetic-response/elk.in0000644002504400250440000000161013543334737027305 0ustar00dewhurstdewhurst00000000000000 ! Magnetic response of fcc nickel. Try plotting the transverse component as a ! function of frequency. Compare to B. Rousseau, A. Eiguren and A. Bergara, ! Phys. Rev. B 85, 054305 (2012) and references therein. tasks 0 330 ! energy cut-off for Kohn-Sham response function emaxrf 1.5 ! G-vector cut-off for response function gmaxrf 5.0 ! frequency plot range wplot 60 100 1 0 0.020 ! q-vector of response function vecql 0.1 0.1 0.0 spinpol .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ! dense k-point grid is required for response functions ngridk 10 10 10 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/TDDFT-magnetic-response/PaxHeaders.21352/Ni-magnon-spiral0000644000000000000000000000013213543334737023204 xustar0030 mtime=1569569247.418640164 30 atime=1569569247.417640164 30 ctime=1569569247.418640164 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnon-spiral/0000755002504400250440000000000013543334737025330 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnon-spiral/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737024364 xustar0030 mtime=1569569247.420640162 30 atime=1569569247.419640163 30 ctime=1569569247.420640162 elk-6.3.2/examples/TDDFT-magnetic-response/Ni-magnon-spiral/elk.in0000644002504400250440000000334613543334737026441 0ustar00dewhurstdewhurst00000000000000 ! In this example, the frequency of a magnon at a particular q-vector in fcc Ni ! is determined. Computing a magnon frequency requires the energy difference, ! dE, between the ferromagnetic and a conical spin-spiral state with small polar ! angle theta. The following formula can then be used to compute the frequency: ! ! w(q) = (4/M) dE / sin^2(theta) ! ! where M is the total moment in the unit cell. See Q. Niu and L. Kleinman, ! Phys. Rev. Lett. 80, 2205 (1998). It is good practice to fix a q and then run ! two fixed spin direction calculations: one at theta=0, and the other at a ! finite theta (in this case 15 degrees). ! Note that the energy difference is very small (order of meV), and the ! calculation has to be very well converged in all parameters. As a result this ! example is best run on a multi-processor, and is still quite time-consuming. tasks 0 stype 1 taufsm 0.01 swidth 0.005 rgkmax 8.0 gmaxvr 14.0 lmaxapw 8 lmaxo 8 ! tight convergence required epspot 1.d-9 epsengy 1.d-6 ! use a fixed spin direction calculation fsmtype -1 ! use a polar angle of 15 degrees momfix 0.0 0.258819045 0.965925826 ! large global field in same direction as momfix bfieldc 0.0 0.258819045 0.965925826 spinsprl .true. ! spin-spiral q-vector in lattice coordinates vqlss 0.1 0.1 0.0 nempty 10 ! very fine k-point grid required for good convergence ngridk 20 20 20 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 ! experimental lattice parameter scale 3.325 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/PaxHeaders.21352/basic0000644000000000000000000000013113543334737014663 xustar0030 mtime=1569569247.514640102 29 atime=1569569247.42364016 30 ctime=1569569247.514640102 elk-6.3.2/examples/basic/0000755002504400250440000000000013543334737017010 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/PaxHeaders.21352/Au0000644000000000000000000000013213543334737015231 xustar0030 mtime=1569569247.428640157 30 atime=1569569247.427640158 30 ctime=1569569247.428640157 elk-6.3.2/examples/basic/Au/0000755002504400250440000000000013543334737017355 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Au/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016411 xustar0030 mtime=1569569247.429640156 30 atime=1569569247.428640157 30 ctime=1569569247.429640156 elk-6.3.2/examples/basic/Au/elk.in0000644002504400250440000000125213543334737020460 0ustar00dewhurstdewhurst00000000000000 ! Example of spin-orbit coupling for Au. Try comparing the band structure ! without spin-orbit coupling. tasks 0 20 spinorb .true. avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.85 sppath '../../../species/' atoms 1 : nspecies 'Au.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 plot1d 7 100 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/basic/PaxHeaders.21352/HfSiO40000644000000000000000000000013213543334737015720 xustar0030 mtime=1569569247.438640151 30 atime=1569569247.433640154 30 ctime=1569569247.438640151 elk-6.3.2/examples/basic/HfSiO4/0000755002504400250440000000000013543334737020044 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/HfSiO4/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017100 xustar0030 mtime=1569569247.435640153 30 atime=1569569247.434640153 30 ctime=1569569247.435640153 elk-6.3.2/examples/basic/HfSiO4/elk.in0000644002504400250440000000454513543334737021157 0ustar00dewhurstdewhurst00000000000000 ! HfSiO4 generated with spacegroup data from Am. Mineral. 67, 804 (1982). tasks 0 ngridk 2 2 2 ! Atomic positions generated by spacegroup version 1.2.00 ! Hermann-Mauguin symbol : I41/amd:2 ! Hall symbol : -I 4bd 2 ! Schoenflies symbol : D4h^19 ! space group number : 141:2 ! lattice constants (a,b,c) : 12.42022400 12.42022400 11.26881400 ! angles in degrees (bc,ac,ab) : 90.00000000 90.00000000 90.00000000 ! number of conventional unit cells : 1 1 1 ! reduction to primitive cell : T ! Wyckoff positions : ! species : 1, Hf.in ! 0.000000000 0.7500000000 0.1250000000 ! species : 2, Si.in ! 0.000000000 0.7500000000 0.6250000000 ! species : 3, O.in ! 0.000000000 0.6550000000E-01 0.1948000000 avec 6.210112000 6.210112000 5.634407000 6.210112000 6.210112000 -5.634407000 6.210112000 -6.210112000 5.634407000 sppath '../../../species/' atoms 3 : nspecies 'Hf.in' : spfname 2 : natoms; atposl, bfcmt below 0.87500000 0.87500000 0.25000000 0.00000000 0.00000000 0.00000000 0.12500000 0.12500000 0.75000000 0.00000000 0.00000000 0.00000000 'Si.in' : spfname 2 : natoms; atposl, bfcmt below 0.37500000 0.37500000 0.25000000 0.00000000 0.00000000 0.00000000 0.62500000 0.62500000 0.75000000 0.00000000 0.00000000 0.00000000 'O.in' : spfname 8 : natoms; atposl, bfcmt below 0.26030000 0.80520000 0.93450000 0.00000000 0.00000000 0.00000000 0.73970000 0.19480000 0.06550000 0.00000000 0.00000000 0.00000000 0.19480000 0.73970000 0.43450000 0.00000000 0.00000000 0.00000000 0.80520000 0.26030000 0.56550000 0.00000000 0.00000000 0.00000000 0.62930000 0.80520000 0.56550000 0.00000000 0.00000000 0.00000000 0.37070000 0.19480000 0.43450000 0.00000000 0.00000000 0.00000000 0.19480000 0.37070000 0.06550000 0.00000000 0.00000000 0.00000000 0.80520000 0.62930000 0.93450000 0.00000000 0.00000000 0.00000000 elk-6.3.2/examples/basic/HfSiO4/PaxHeaders.21352/spacegroup.in0000644000000000000000000000013013543334737020473 xustar0029 mtime=1569569247.43964015 30 atime=1569569247.438640151 29 ctime=1569569247.43964015 elk-6.3.2/examples/basic/HfSiO4/spacegroup.in0000644002504400250440000000101413543334737022540 0ustar00dewhurstdewhurst00000000000000 'I41/amd:2' : hrmg 12.420224 12.420224 11.268814 : a, b, c 90.0 90.0 90.0 : ab, ac, bc 1 1 1 : ncell .true. : primcell 3 : nspecies 'Hf' 'Hf.in' : spsymb, spfname 1 : nwpos 0.0000 0.7500 0.1250 : wpos 'Si' 'Si.in' 1 0.0000 0.7500 0.6250 'O' 'O.in' 1 0.0000 0.0655 0.1948 elk-6.3.2/examples/basic/PaxHeaders.21352/Si0000644000000000000000000000013213543334737015237 xustar0030 mtime=1569569247.443640148 30 atime=1569569247.443640148 30 ctime=1569569247.443640148 elk-6.3.2/examples/basic/Si/0000755002504400250440000000000013543334737017363 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Si/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016417 xustar0030 mtime=1569569247.445640146 30 atime=1569569247.444640147 30 ctime=1569569247.445640146 elk-6.3.2/examples/basic/Si/elk.in0000644002504400250440000000141713543334737020471 0ustar00dewhurstdewhurst00000000000000 ! Band structure of silicon. The points listed after plot1d below are the ! vertices joined in the band structure. tasks 0 20 ! use Broyden mixing mixtype 3 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 2 2 2 vkloff 0.25 0.5 0.625 ! These are the vertices to be joined for the band structure plot plot1d 7 200 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/basic/PaxHeaders.21352/graphene0000644000000000000000000000013213543334737016455 xustar0030 mtime=1569569247.449640144 30 atime=1569569247.448640144 30 ctime=1569569247.449640144 elk-6.3.2/examples/basic/graphene/0000755002504400250440000000000013543334737020601 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/graphene/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017635 xustar0030 mtime=1569569247.450640143 30 atime=1569569247.449640144 30 ctime=1569569247.450640143 elk-6.3.2/examples/basic/graphene/elk.in0000644002504400250440000000141513543334737021705 0ustar00dewhurstdewhurst00000000000000 ! Band structure of graphene. Observe the massless Dirac-like dispersion in the ! density of states. tasks 0 10 nempty 8 wplot 200 150 1 -0.5 0.5 plot1d 4 100 0.333333333 0.333333333 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.333333333 0.333333333 0.0 ! very high number of k-points required to resolve the linear dispersion ngridk 30 30 1 avec -0.5 0.866025403784 0.0 -1.0 0.0 0.0 0.0 0.0 3.2265697 scale 4.64890 sppath '../../../species/' atoms 1 : nspecies 'C.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.333333333333 0.333333333333 0.0 elk-6.3.2/examples/basic/PaxHeaders.21352/B120000644000000000000000000000012713543334737015214 xustar0029 mtime=1569569247.45564014 29 atime=1569569247.45564014 29 ctime=1569569247.45564014 elk-6.3.2/examples/basic/B12/0000755002504400250440000000000013543334737017334 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/B12/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016370 xustar0030 mtime=1569569247.456640139 30 atime=1569569247.456640139 30 ctime=1569569247.456640139 elk-6.3.2/examples/basic/B12/elk.in0000644002504400250440000000137013543334737020440 0ustar00dewhurstdewhurst00000000000000 ! B12 ground state (Andrew Chizmeshya) tasks 0 10 rgkmax 6.0 scale 9.6376071 avec 0.55522 0.00000 0.82027 -0.27761 0.48083 0.82027 -0.27761 -0.48083 0.82027 sppath '../../../species/' atoms 1 : nspecies 'B.in' : spfname 12 : natoms; atposl below 0.77917 0.77917 0.36899 0.36899 0.77917 0.77914 0.77917 0.36899 0.77918 0.22082 0.22082 0.63108 0.22082 0.63100 0.22082 0.63100 0.22082 0.22086 0.98989 0.98989 0.34576 0.34579 0.98989 0.98986 0.98989 0.34579 0.98981 0.01010 0.01010 0.65424 0.01010 0.65420 0.01019 0.65420 0.01010 0.01014 ngridk 2 2 2 elk-6.3.2/examples/basic/PaxHeaders.21352/Nb-autoswidth0000644000000000000000000000013213543334737017414 xustar0030 mtime=1569569247.461640136 30 atime=1569569247.460640137 30 ctime=1569569247.461640136 elk-6.3.2/examples/basic/Nb-autoswidth/0000755002504400250440000000000013543334737021540 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Nb-autoswidth/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737020574 xustar0030 mtime=1569569247.462640135 30 atime=1569569247.461640136 30 ctime=1569569247.462640135 elk-6.3.2/examples/basic/Nb-autoswidth/elk.in0000644002504400250440000000100513543334737022637 0ustar00dewhurstdewhurst00000000000000 ! Example demonstrating the automatic determination of the smearing width. See ! 'autoswidth' in the manual for details. ! Example by T. Bjorkman and O. Granas. tasks 0 autoswidth .true. avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 3.118 sppath '../../../species/' atoms 1 : nspecies 'Nb.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 elk-6.3.2/examples/basic/PaxHeaders.21352/TiC-eg-t2g0000644000000000000000000000013213543334737016426 xustar0030 mtime=1569569247.466640133 30 atime=1569569247.466640133 30 ctime=1569569247.466640133 elk-6.3.2/examples/basic/TiC-eg-t2g/0000755002504400250440000000000013543334737020552 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/TiC-eg-t2g/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017606 xustar0030 mtime=1569569247.468640132 30 atime=1569569247.467640132 30 ctime=1569569247.468640132 elk-6.3.2/examples/basic/TiC-eg-t2g/elk.in0000644002504400250440000000213213543334737021653 0ustar00dewhurstdewhurst00000000000000 ! Density of states of TiC resolved into irreducible representations. When ! lmirep is set to .true., the Y_lm basis is transformed into one in which the ! site symmetries are block diagonal. The band characters determined from the ! density matrix expressed in this basis correspond therefore to irreducible ! representations (IR). ! In this example, we want the e_g and t_2g resolved DOS for the Ti atom. The ! ELMIREP.OUT file contains a set of eigenvalues, the degeneracies of which ! allow for easy identification of the IR. For l = 2, the 3-fold degeneracy is ! the t_2g IR, while the 2-fold is the e_g IR. Adding together curves 5, 6 and 7 ! in the file PDOS_S01_A0001.OUT will give the t_2g plot, and adding curves 8 ! and 9 will give the e_g plot. tasks 0 10 lmirep .true. avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 8.1787 sppath '../../../species/' atoms 2 : nspecies 'Ti.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'C.in' 1 0.5 0.5 0.5 ngridk 8 8 8 elk-6.3.2/examples/basic/PaxHeaders.21352/Al0000644000000000000000000000013113543334737015217 xustar0030 mtime=1569569247.472640129 29 atime=1569569247.47164013 30 ctime=1569569247.472640129 elk-6.3.2/examples/basic/Al/0000755002504400250440000000000013543334737017344 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Al/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016400 xustar0030 mtime=1569569247.473640128 30 atime=1569569247.473640128 30 ctime=1569569247.473640128 elk-6.3.2/examples/basic/Al/elk.in0000644002504400250440000000127513543334737020454 0ustar00dewhurstdewhurst00000000000000 ! Ground state of aluminium. Try calculating the density of states by using ! tasks=10 tasks 0 ! You can add notes to the INFO.OUT file using the "notes" block notes Simple calculation of the ground state of aluminium. Must check convergence with respect to k-point set later. Run by H. Golightly avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.8267 ! this is the relative path to the species files sppath '../../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/basic/PaxHeaders.21352/Cu0000644000000000000000000000013213543334737015233 xustar0030 mtime=1569569247.478640125 30 atime=1569569247.477640126 30 ctime=1569569247.478640125 elk-6.3.2/examples/basic/Cu/0000755002504400250440000000000013543334737017357 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Cu/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016413 xustar0030 mtime=1569569247.479640125 30 atime=1569569247.479640125 30 ctime=1569569247.479640125 elk-6.3.2/examples/basic/Cu/elk.in0000644002504400250440000000144413543334737020465 0ustar00dewhurstdewhurst00000000000000 ! Try and find the equilibrium volume of fcc copper by adjusting the scale ! parameter. The individual lattice vectors can also be scaled separately using ! scale1, scale2 or scale3. Remember that a previously converged charge density ! can be used to begin a new calculation, even at a different volume. This is ! done by setting task=1. tasks 0 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale1 6.83117 scale2 6.83117 scale3 6.83117 scale 0.96 ! large cut-off is required for Cu rgkmax 8.5 lmaxapw 10 gmaxvr 14.0 sppath '../../../species/' atoms 1 : nspecies 'Cu.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 8 8 8 elk-6.3.2/examples/basic/PaxHeaders.21352/Pb0000644000000000000000000000013213543334737015225 xustar0030 mtime=1569569247.484640121 30 atime=1569569247.483640122 30 ctime=1569569247.484640121 elk-6.3.2/examples/basic/Pb/0000755002504400250440000000000013543334737017351 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Pb/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016405 xustar0030 mtime=1569569247.485640121 30 atime=1569569247.484640121 30 ctime=1569569247.485640121 elk-6.3.2/examples/basic/Pb/elk.in0000644002504400250440000000123613543334737020456 0ustar00dewhurstdewhurst00000000000000 ! Band structure of lead with spin-orbit coupling. tasks 0 20 spinpol .true. spinorb .true. nempty 8 rgkmax 8.0 avec 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0 scale 9.3541 sppath '../../../species/' atoms 1 : nspecies 'Pb.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 8 8 8 plot1d 7 200 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/basic/PaxHeaders.21352/YBCO0000644000000000000000000000013213543334737015420 xustar0030 mtime=1569569247.489640118 30 atime=1569569247.488640119 30 ctime=1569569247.489640118 elk-6.3.2/examples/basic/YBCO/0000755002504400250440000000000013543334737017544 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/YBCO/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737016600 xustar0030 mtime=1569569247.490640118 30 atime=1569569247.490640118 30 ctime=1569569247.490640118 elk-6.3.2/examples/basic/YBCO/elk.in0000644002504400250440000000147013543334737020651 0ustar00dewhurstdewhurst00000000000000 ! High T_c superconductor YBa2Cu3O7. Note that the code determines which atoms ! are equivalent, and lists them in EQATOMS.OUT. tasks 0 ! small cut-off for testing purposes rgkmax 6.0 ! use Broyden mixing mixtype 3 avec 7.2246 0.0 0.0 0.0 7.3442 0.0 0.0 0.0 22.0733 sppath '../../../species/' atoms 4 : nspecies 'Y.in' : spfname 1 : natoms; atposl below 0.5 0.5 0.5 'Ba.in' 2 0.5 0.5 0.1843 0.5 0.5 0.8157 'Cu.in' 3 0.0 0.0 0.0 0.0 0.0 0.3556 0.0 0.0 0.6444 'O.in' 7 0.0 0.5 0.0 0.5 0.0 0.3773 0.5 0.0 0.6227 0.0 0.5 0.3789 0.0 0.5 0.6211 0.0 0.0 0.1584 0.0 0.0 0.8416 ngridk 2 2 1 vkloff 0.25 0.5 0.5 elk-6.3.2/examples/basic/PaxHeaders.21352/AlAs-fatbands0000644000000000000000000000013213543334737017264 xustar0030 mtime=1569569247.499640112 30 atime=1569569247.493640116 30 ctime=1569569247.499640112 elk-6.3.2/examples/basic/AlAs-fatbands/0000755002504400250440000000000013543334737021410 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/AlAs-fatbands/PaxHeaders.21352/AlAs.par0000644000000000000000000000013213543334737020665 xustar0030 mtime=1569569247.496640114 30 atime=1569569247.495640114 30 ctime=1569569247.496640114 elk-6.3.2/examples/basic/AlAs-fatbands/AlAs.par0000644002504400250440000000551113543334737022736 0ustar00dewhurstdewhurst00000000000000 world 0.0, -0.25, 1.113445717, 0.5 title "AlAs band structure" subtitle "(atomic character of As)" xaxis tick off xaxis ticklabel off yaxis tick major 0.1 yaxis tick minor ticks 2 yaxis label "Energy (Hartree)" s0.y1=0.05*s0.y1 s1.y1=0.05*s1.y1 s2.y1=0.05*s2.y1 s3.y1=0.05*s3.y1 s4.y1=0.05*s4.y1 s5.y1=0.05*s5.y1 s6.y1=0.05*s6.y1 s7.y1=0.05*s7.y1 s8.y1=0.05*s8.y1 s9.y1=0.05*s9.y1 s10.y1=0.05*s10.y1 s11.y1=0.05*s11.y1 s12.y1=0.05*s12.y1 s13.y1=0.05*s13.y1 s14.y1=0.05*s14.y1 s15.y1=0.05*s15.y1 s16.y1=0.05*s16.y1 s17.y1=0.05*s17.y1 s18.y1=0.05*s18.y1 s19.y1=0.05*s19.y1 s20.y1=0.05*s20.y1 s21.y1=0.05*s21.y1 s22.y1=0.05*s22.y1 s0 line type 0 s1 line type 0 s2 line type 0 s3 line type 0 s4 line type 0 s5 line type 0 s6 line type 0 s7 line type 0 s8 line type 0 s9 line type 0 s10 line type 0 s11 line type 0 s12 line type 0 s13 line type 0 s14 line type 0 s15 line type 0 s16 line type 0 s17 line type 0 s18 line type 0 s19 line type 0 s20 line type 0 s21 line type 0 s22 line type 0 s0 errorbar linestyle 0 s1 errorbar linestyle 0 s2 errorbar linestyle 0 s3 errorbar linestyle 0 s4 errorbar linestyle 0 s5 errorbar linestyle 0 s6 errorbar linestyle 0 s7 errorbar linestyle 0 s8 errorbar linestyle 0 s9 errorbar linestyle 0 s10 errorbar linestyle 0 s11 errorbar linestyle 0 s12 errorbar linestyle 0 s13 errorbar linestyle 0 s14 errorbar linestyle 0 s15 errorbar linestyle 0 s16 errorbar linestyle 0 s17 errorbar linestyle 0 s18 errorbar linestyle 0 s19 errorbar linestyle 0 s20 errorbar linestyle 0 s21 errorbar linestyle 0 s22 errorbar linestyle 0 s0 errorbar riser linewidth 3.5 s1 errorbar riser linewidth 3.5 s2 errorbar riser linewidth 3.5 s3 errorbar riser linewidth 3.5 s4 errorbar riser linewidth 3.5 s5 errorbar riser linewidth 3.5 s6 errorbar riser linewidth 3.5 s7 errorbar riser linewidth 3.5 s8 errorbar riser linewidth 3.5 s9 errorbar riser linewidth 3.5 s10 errorbar riser linewidth 3.5 s11 errorbar riser linewidth 3.5 s12 errorbar riser linewidth 3.5 s13 errorbar riser linewidth 3.5 s14 errorbar riser linewidth 3.5 s15 errorbar riser linewidth 3.5 s16 errorbar riser linewidth 3.5 s17 errorbar riser linewidth 3.5 s18 errorbar riser linewidth 3.5 s19 errorbar riser linewidth 3.5 s20 errorbar riser linewidth 3.5 s21 errorbar riser linewidth 3.5 s22 errorbar riser linewidth 3.5 s0 errorbar color 1 s1 errorbar color 1 s2 errorbar color 1 s3 errorbar color 1 s4 errorbar color 1 s5 errorbar color 1 s6 errorbar color 1 s7 errorbar color 1 s8 errorbar color 1 s9 errorbar color 1 s10 errorbar color 1 s11 errorbar color 1 s12 errorbar color 1 s13 errorbar color 1 s14 errorbar color 1 s15 errorbar color 1 s16 errorbar color 1 s17 errorbar color 1 s18 errorbar color 1 s19 errorbar color 1 s20 errorbar color 1 s21 errorbar color 1 s22 errorbar color 1 s23 line color 1 s24 line color 1 s25 line color 1 s23 linewidth 2.0 s24 linewidth 2.0 s25 linewidth 2.0 elk-6.3.2/examples/basic/AlAs-fatbands/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737020444 xustar0030 mtime=1569569247.500640111 30 atime=1569569247.500640111 30 ctime=1569569247.500640111 elk-6.3.2/examples/basic/AlAs-fatbands/elk.in0000644002504400250440000000146513543334737022521 0ustar00dewhurstdewhurst00000000000000 ! Band structure of AlAs which produces a band-structure with line thickness ! proportional to the atomic character. You can produce the plot by running ! ! xmgrace -settype xydy BAND_S02_A0001.OUT -settype xy BANDLINES.OUT -param AlAs.par ! ! You can change the graph appearance either in xmgrace or by editing AlAs.par tasks 0 21 nempty 8 plot1d 3 200 : nvp1d, npp1d 0.5 0.0 0.0 : vlvp1d 0.0 0.0 0.0 0.5 0.5 0.0 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 10.53 sppath '../../../species/' atoms 2 : nspecies 'Al.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'As.in' 1 0.25 0.25 0.25 ngridk 4 4 4 elk-6.3.2/examples/basic/PaxHeaders.21352/CuFeS20000644000000000000000000000013213543334737015713 xustar0030 mtime=1569569247.505640108 30 atime=1569569247.504640109 30 ctime=1569569247.505640108 elk-6.3.2/examples/basic/CuFeS2/0000755002504400250440000000000013543334737020037 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/CuFeS2/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017073 xustar0030 mtime=1569569247.506640107 30 atime=1569569247.505640108 30 ctime=1569569247.506640107 elk-6.3.2/examples/basic/CuFeS2/elk.in0000644002504400250440000000324713543334737021150 0ustar00dewhurstdewhurst00000000000000 ! An example of how Elk can automatically determine the primitive unit cell ! from the conventional one. The input chalcopyrite unit cell contains 16 atoms ! which is reduced to 8 by the code. tasks 0 ! large smearing width for better convergence swidth 0.01 ! automatic determination of the primitive unit cell primcell .true. avec 9.99476 0.00000 0.00000 0.00000 9.99476 0.00000 0.00000 0.00000 19.6966 sppath '../../../species/' atoms 3 : nspecies 'Cu.in' : spfname 4 : natoms; atposl, bfcmt below 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5000 0.2500 0.0000 0.0000 0.0000 0.5000 0.0000 0.7500 0.0000 0.0000 0.0000 0.5000 0.5000 0.5000 0.0000 0.0000 0.0000 'Fe.in' : spfname 4 : natoms; atposl, bfcmt below 0.0000 0.0000 0.5000 0.0000 0.0000 0.0000 0.0000 0.5000 0.7500 0.0000 0.0000 0.0000 0.5000 0.0000 0.2500 0.0000 0.0000 0.0000 0.5000 0.5000 0.0000 0.0000 0.0000 0.0000 'S.in' : spfname 8 : natoms; atposl, bfcmt below 0.2574 0.2500 0.1250 0.0000 0.0000 0.0000 0.7426 0.7500 0.1250 0.0000 0.0000 0.0000 0.2500 0.7426 0.8750 0.0000 0.0000 0.0000 0.7500 0.2574 0.8750 0.0000 0.0000 0.0000 0.7574 0.7500 0.6250 0.0000 0.0000 0.0000 0.2426 0.2500 0.6250 0.0000 0.0000 0.0000 0.7500 0.2426 0.3750 0.0000 0.0000 0.0000 0.2500 0.7574 0.3750 0.0000 0.0000 0.0000 ngridk 2 2 2 elk-6.3.2/examples/basic/PaxHeaders.21352/Si-PBEsol0000644000000000000000000000013213543334737016361 xustar0030 mtime=1569569247.511640104 30 atime=1569569247.510640105 30 ctime=1569569247.511640104 elk-6.3.2/examples/basic/Si-PBEsol/0000755002504400250440000000000013543334737020505 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/Si-PBEsol/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017541 xustar0030 mtime=1569569247.512640103 30 atime=1569569247.511640104 30 ctime=1569569247.512640103 elk-6.3.2/examples/basic/Si-PBEsol/elk.in0000644002504400250440000000136513543334737021615 0ustar00dewhurstdewhurst00000000000000 ! Band structure of silicon using the new PBEsol functional (xctype = 22) ! (http://arxiv.org/pdf/0711.0156). tasks 0 20 xctype 22 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 2 2 2 vkloff 0.25 0.5 0.625 ! These are the vertices to be joined for the band structure plot plot1d 7 200 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/basic/PaxHeaders.21352/diamond-rho3D0000644000000000000000000000013213543334737017254 xustar0030 mtime=1569569247.525640095 30 atime=1569569247.516640101 30 ctime=1569569247.525640095 elk-6.3.2/examples/basic/diamond-rho3D/0000755002504400250440000000000013543334737021400 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/basic/diamond-rho3D/PaxHeaders.21352/elk.in0000644000000000000000000000012413543334737020435 xustar0028 mtime=1569569247.5186401 28 atime=1569569247.5176401 28 ctime=1569569247.5186401 elk-6.3.2/examples/basic/diamond-rho3D/elk.in0000644002504400250440000000112313543334737022500 0ustar00dewhurstdewhurst00000000000000 ! 3D plot of the charge density of diamond using OpenDX. tasks 0 33 ! define box corners and grid size for 3D plot, first point is the origin plot3d 0.0 0.0 0.0 : vclp3d 2.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 2.0 80 80 80 avec 3.3637 3.3637 0.0000 3.3637 0.0000 3.3637 0.0000 3.3637 3.3637 sppath '../../../species/' atoms 1 : nspecies 'C.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 2 2 2 vkloff 0.25 0.5 0.625 elk-6.3.2/examples/basic/diamond-rho3D/PaxHeaders.21352/rho3d.general0000644000000000000000000000013213543334737021707 xustar0030 mtime=1569569247.522640097 30 atime=1569569247.522640097 30 ctime=1569569247.522640097 elk-6.3.2/examples/basic/diamond-rho3D/rho3d.general0000644002504400250440000000027413543334737023761 0ustar00dewhurstdewhurst00000000000000file = RHO3D.OUT grid = 80 x 80 x 80 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 3-vector, scalar type = float, float end elk-6.3.2/examples/basic/diamond-rho3D/PaxHeaders.21352/rho3d.net0000644000000000000000000000013213543334737021060 xustar0030 mtime=1569569247.528640093 30 atime=1569569247.526640095 30 ctime=1569569247.528640093 elk-6.3.2/examples/basic/diamond-rho3D/rho3d.net0000644002504400250440000003450213543334737023133 0ustar00dewhurstdewhurst00000000000000// // time: Fri Sep 26 23:37:42 2008 // // version: 3.2.0 (format), 4.4.0 (DX) // // // MODULE main // workspace: width = 298, height = 472 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 56, y = 47, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "rho3d.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node Isosurface[2]: x = 220, y = 121, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.04 // main_Isosurface_2_out_1 = Isosurface( main_Import_1_out_1, main_Isosurface_2_in_2, main_Isosurface_2_in_3, main_Isosurface_2_in_4, main_Isosurface_2_in_5, main_Isosurface_2_in_6 ) [instance: 2, cache: 1]; // // node Color[1]: x = 72, y = 232, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "white" // input[4]: defaulting = 0, visible = 0, type = 32, value = "front colors" // main_Color_1_out_1 = Color( main_Isosurface_2_out_1, main_Color_1_in_2, main_Color_1_in_3, main_Color_1_in_4, main_Color_1_in_5 ) [instance: 1, cache: 1]; // // node Color[2]: x = 69, y = 316, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "orange" // input[4]: defaulting = 0, visible = 0, type = 32, value = "back colors" // main_Color_2_out_1 = Color( main_Color_1_out_1, main_Color_2_in_2, main_Color_2_in_3, main_Color_2_in_4, main_Color_2_in_5 ) [instance: 2, cache: 1]; // // node Image[4]: x = 223, y = 410, inputs = 49, label = Image // input[1]: defaulting = 0, visible = 0, type = 32, value = "Image_4" // input[4]: defaulting = 0, visible = 0, type = 1, value = 1 // input[5]: defaulting = 0, visible = 0, type = 8, value = [7.29024 7.29024 7.29024] // input[6]: defaulting = 0, visible = 0, type = 8, value = [-4.66221 51.8696 -4.66221] // input[7]: defaulting = 0, visible = 0, type = 5, value = 21.0859 // input[8]: defaulting = 0, visible = 0, type = 1, value = 640 // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.75 // input[10]: defaulting = 0, visible = 0, type = 8, value = [0 0 -1] // input[11]: defaulting = 1, visible = 0, type = 5, value = 24.9389 // input[12]: defaulting = 0, visible = 0, type = 1, value = 0 // input[14]: defaulting = 0, visible = 0, type = 1, value = 1 // input[15]: defaulting = 1, visible = 0, type = 32, value = "none" // input[16]: defaulting = 1, visible = 0, type = 32, value = "none" // input[17]: defaulting = 1, visible = 0, type = 1, value = 1 // input[18]: defaulting = 1, visible = 0, type = 1, value = 1 // input[19]: defaulting = 0, visible = 0, type = 1, value = 0 // input[29]: defaulting = 1, visible = 0, type = 3, value = 0 // input[41]: defaulting = 0, visible = 0, type = 32, value = "zoom" // depth: value = 24 // window: position = (0.0104,0.0600), size = 0.4542x0.5800, screen = 0 // internal caching: 1 // main_Image_4_out_1, main_Image_4_out_2, main_Image_4_out_3 = Image( main_Image_4_in_1, main_Color_2_out_1, main_Image_4_in_3, main_Image_4_in_4, main_Image_4_in_5, main_Image_4_in_6, main_Image_4_in_7, main_Image_4_in_8, main_Image_4_in_9, main_Image_4_in_10, main_Image_4_in_11, main_Image_4_in_12, main_Image_4_in_13, main_Image_4_in_14, main_Image_4_in_15, main_Image_4_in_16, main_Image_4_in_17, main_Image_4_in_18, main_Image_4_in_19, main_Image_4_in_20, main_Image_4_in_21, main_Image_4_in_22, main_Image_4_in_23, main_Image_4_in_24, main_Image_4_in_25, main_Image_4_in_26, main_Image_4_in_27, main_Image_4_in_28, main_Image_4_in_29, main_Image_4_in_30, main_Image_4_in_31, main_Image_4_in_32, main_Image_4_in_33, main_Image_4_in_34, main_Image_4_in_35, main_Image_4_in_36, main_Image_4_in_37, main_Image_4_in_38, main_Image_4_in_39, main_Image_4_in_40, main_Image_4_in_41, main_Image_4_in_42, main_Image_4_in_43, main_Image_4_in_44, main_Image_4_in_45, main_Image_4_in_46, main_Image_4_in_47, main_Image_4_in_48, main_Image_4_in_49 ) [instance: 4, cache: 1]; // network: end of macro body CacheScene(main_Image_4_in_1, main_Image_4_out_1, main_Image_4_out_2); } main_Import_1_in_1 = "rho3d.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_Isosurface_2_in_2 = 0.04; main_Isosurface_2_in_3 = NULL; main_Isosurface_2_in_4 = NULL; main_Isosurface_2_in_5 = NULL; main_Isosurface_2_in_6 = NULL; main_Isosurface_2_out_1 = NULL; main_Color_1_in_2 = "white"; main_Color_1_in_3 = NULL; main_Color_1_in_4 = "front colors"; main_Color_1_in_5 = NULL; main_Color_1_out_1 = NULL; main_Color_2_in_2 = "orange"; main_Color_2_in_3 = NULL; main_Color_2_in_4 = "back colors"; main_Color_2_in_5 = NULL; main_Color_2_out_1 = NULL; macro Image( id, object, where, useVector, to, from, width, resolution, aspect, up, viewAngle, perspective, options, buttonState = 1, buttonUpApprox = "none", buttonDownApprox = "none", buttonUpDensity = 1, buttonDownDensity = 1, renderMode = 0, defaultCamera, reset, backgroundColor, throttle, RECenable = 0, RECfile, RECformat, RECresolution, RECaspect, AAenable = 0, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, interactionMode, title, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, webOptions) -> ( object, camera, where) { ImageMessage( id, backgroundColor, throttle, RECenable, RECfile, RECformat, RECresolution, RECaspect, AAenable, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, interactionMode, title, renderMode, buttonUpApprox, buttonDownApprox, buttonUpDensity, buttonDownDensity) [instance: 1, cache: 1]; autoCamera = AutoCamera( object, "front", object, resolution, aspect, [0,1,0], perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; realCamera = Camera( to, from, width, resolution, aspect, up, perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; coloredDefaultCamera = UpdateCamera(defaultCamera, background=backgroundColor) [instance: 1, cache: 1]; nullDefaultCamera = Inquire(defaultCamera, "is null + 1") [instance: 1, cache: 1]; resetCamera = Switch( nullDefaultCamera, coloredDefaultCamera, autoCamera) [instance: 1, cache: 1]; resetNull = Inquire( reset, "is null + 1") [instance: 2, cache: 1]; reset = Switch( resetNull, reset, 0) [instance: 2, cache: 1]; whichCamera = Compute( "($0 != 0 || $1 == 0) ? 1 : 2", reset, useVector) [instance: 1, cache: 1]; camera = Switch( whichCamera, resetCamera, realCamera) [instance: 3, cache: 1]; AAobject = AutoAxes( object, camera, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels) [instance: 1, cache: 1]; switchAAenable = Compute("$0+1", AAenable) [instance: 2, cache: 1]; object = Switch( switchAAenable, object, AAobject) [instance:4, cache: 1]; SWapproximation_options = Switch( buttonState, buttonUpApprox, buttonDownApprox) [instance: 5, cache: 1]; SWdensity_options = Switch( buttonState, buttonUpDensity, buttonDownDensity) [instance: 6, cache: 1]; HWapproximation_options = Format( "%s,%s", buttonDownApprox, buttonUpApprox) [instance: 1, cache: 1]; HWdensity_options = Format( "%d,%d", buttonDownDensity, buttonUpDensity) [instance: 2, cache: 1]; switchRenderMode = Compute( "$0+1", renderMode) [instance: 3, cache: 1]; approximation_options = Switch( switchRenderMode, SWapproximation_options, HWapproximation_options) [instance: 7, cache: 1]; density_options = Switch( switchRenderMode, SWdensity_options, HWdensity_options) [instance: 8, cache: 1]; renderModeString = Switch( switchRenderMode, "software", "hardware")[instance: 9, cache: 1]; object_tag = Inquire( object, "object tag")[instance: 3, cache: 1]; annoted_object = Options( object, "send boxes", 0, "cache", 1, "object tag", object_tag, "ddcamera", whichCamera, "rendering approximation", approximation_options, "render every", density_options, "button state", buttonState, "rendering mode", renderModeString) [instance: 1, cache: 1]; RECresNull = Inquire( RECresolution, "is null + 1") [instance: 4, cache: 1]; ImageResolution = Inquire( camera, "camera resolution") [instance: 5, cache: 1]; RECresolution = Switch( RECresNull, RECresolution, ImageResolution) [instance: 10, cache: 1]; RECaspectNull = Inquire( RECaspect, "is null + 1") [instance: 6, cache: 1]; ImageAspect = Inquire( camera, "camera aspect") [instance: 7, cache: 1]; RECaspect = Switch( RECaspectNull, RECaspect, ImageAspect) [instance: 11, cache: 1]; switchRECenable = Compute( "$0 == 0 ? 1 : (($2 == $3) && ($4 == $5)) ? ($1 == 1 ? 2 : 3) : 4", RECenable, switchRenderMode, RECresolution, ImageResolution, RECaspect, ImageAspect) [instance: 4, cache: 1]; NoRECobject, RECNoRerenderObject, RECNoRerHW, RECRerenderObject = Route(switchRECenable, annoted_object); Display( NoRECobject, camera, where, throttle) [instance: 1, cache: 1]; image = Render( RECNoRerenderObject, camera) [instance: 1, cache: 1]; Display( image, NULL, where, throttle) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 1, cache: 1]; rec_where = Display( RECNoRerHW, camera, where, throttle) [instance: 1, cache: 0]; rec_image = ReadImageWindow( rec_where) [instance: 1, cache: 1]; WriteImage( rec_image, RECfile, RECformat) [instance: 1, cache: 1]; RECupdateCamera = UpdateCamera( camera, resolution=RECresolution, aspect=RECaspect) [instance: 2, cache: 1]; Display( RECRerenderObject, camera, where, throttle) [instance: 1, cache: 1]; RECRerenderObject = ScaleScreen( RECRerenderObject, NULL, RECresolution, camera) [instance: 1, cache: 1]; image = Render( RECRerenderObject, RECupdateCamera) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 2, cache: 1]; } main_Image_4_in_1 = "Image_4"; main_Image_4_in_3 = "X24,,"; main_Image_4_in_4 = 1; main_Image_4_in_5 = [7.29024 7.29024 7.29024]; main_Image_4_in_6 = [-4.66221 51.8696 -4.66221]; main_Image_4_in_7 = 21.0859; main_Image_4_in_8 = 640; main_Image_4_in_9 = 0.75; main_Image_4_in_10 = [0 0 -1]; main_Image_4_in_11 = NULL; main_Image_4_in_12 = 0; main_Image_4_in_13 = NULL; main_Image_4_in_14 = 1; main_Image_4_in_15 = NULL; main_Image_4_in_16 = NULL; main_Image_4_in_17 = NULL; main_Image_4_in_18 = NULL; main_Image_4_in_19 = 0; main_Image_4_in_20 = NULL; main_Image_4_in_21 = NULL; main_Image_4_in_22 = NULL; main_Image_4_in_23 = NULL; main_Image_4_in_25 = NULL; main_Image_4_in_26 = NULL; main_Image_4_in_27 = NULL; main_Image_4_in_28 = NULL; main_Image_4_in_29 = NULL; main_Image_4_in_30 = NULL; main_Image_4_in_31 = NULL; main_Image_4_in_32 = NULL; main_Image_4_in_33 = NULL; main_Image_4_in_34 = NULL; main_Image_4_in_35 = NULL; main_Image_4_in_36 = NULL; main_Image_4_in_37 = NULL; main_Image_4_in_38 = NULL; main_Image_4_in_39 = NULL; main_Image_4_in_40 = NULL; main_Image_4_in_41 = "zoom"; main_Image_4_in_42 = NULL; main_Image_4_in_43 = NULL; main_Image_4_in_44 = NULL; main_Image_4_in_45 = NULL; main_Image_4_in_46 = NULL; main_Image_4_in_47 = NULL; main_Image_4_in_48 = NULL; main_Image_4_in_49 = NULL; Executive("product version 4 4 0"); $sync main(); elk-6.3.2/examples/PaxHeaders.21352/magnetism-source-free0000644000000000000000000000013213543334737020004 xustar0030 mtime=1569569247.532640091 30 atime=1569569247.531640091 30 ctime=1569569247.532640091 elk-6.3.2/examples/magnetism-source-free/0000755002504400250440000000000013543334737022130 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism-source-free/PaxHeaders.21352/Ba1220000644000000000000000000000013213543334737020553 xustar0030 mtime=1569569247.570640066 30 atime=1569569247.534640089 30 ctime=1569569247.570640066 elk-6.3.2/examples/magnetism-source-free/Ba122/0000755002504400250440000000000013543334737022677 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism-source-free/Ba122/PaxHeaders.21352/Ba122-Bxc-field-lines.png0000644000000000000000000000013213543334737025010 xustar0030 mtime=1569569247.566640069 30 atime=1569569247.536640088 30 ctime=1569569247.566640069 elk-6.3.2/examples/magnetism-source-free/Ba122/Ba122-Bxc-field-lines.png0000644002504400250440000124625313543334737027074 0ustar00dewhurstdewhurst00000000000000PNG  IHDRyL] pHYs5ؗtIME 9} IDATxyeOU5wfr bS  VXq]Y*ʱ @A r rMIf&sOYzj{fz!$5:>_!ć;vnFTנQ?cƌVRJ۶Çϵ>|V:SUwwUɤ}և!zݰG5M===ޞ={3Çϵ>|v׏;|YYYSO=nnnϰу={L0AJ)(~+˲0x'׾v'N4?>|\hGWWرcmd2,_nݲen9sևA}E訩)ks<Ϻ=cJ ZЇϵ>|8`H$J+,+ ysc=v{P___>P(4`cצeYӧO1u]K.7j*ևbXEEE vm*RUջ4h4:a„mڵ-K'Jh(B**+++kEٰKJ9^0jjj.yY_>B"дa?h=A ujdooowww{{ԩS'MT¡s>>aض]P?TWWw'h,+W\hQgg(dλ+|\Ç ݊2, )e qGBG"cۿouYضgϞP(k}_"` wuud,+|(][nĉgcSUuԩq Cct'~,ˊD"9EGuuu9>|\ÇYfRӴn:.A*HR& և/D</fM!4Ѳ.uwaصx<u|m'?ٴiև#^|_|ѶbxζCYNKpG[sD"(p/^||\hkk #9_JHiN0*++իWϙ3+Wz7dm|Ga! e9>Rʁ,lH|1Kp ޽{ƌ^xW׿^v?(7nPܱx5?>|\[䚶mH cb$2M3-_~~@׶1cxނhtO?ST >|oG=qD߮Ga"0>zaYVWWWηb5T*o~`i9>T*Urd[[7`|! Wه۷o7oZus7eB"0M@#hYO7toځH=lB-ALÇF'N}1 $!/衇4M8V%YʫVz'?xm(*6LPtG(PNoq"N?[lqث'^=_3d2 }1(Ǿٳg;iF|Vnll<蠃cYV:Y(bؐm=2 ,+}WvwwwRk}$7lٳ۪4m9.ܮ!STjirnƍmO<ٿC|]}ȣר?#msiYQQQYaZE:.!L&sBa{[nks/1\R)0Ju}1UWF nIEbfr" )eEEEʉD}|ݨd2+4EۻxW=\[߇'iv4B]wR޽{B!t:H +oƗ_SL1Fs8B!tz^>mŵ>׎ϐڼys{{-Jm^yt?%I'5i -JRQeywUrnT #HYjÇB~nGyy@` yzC-/K섩e esi^B)ڜ?e |#XfMmZ#t?nڿ%5 ,9뺦i\,)e~:I**t'TWQbn|f%GRԵ^;p"M|>!Lc>9/2y8߶X,f5~bXifY!I)s4J3t,ڵkWGGk/عsg,H$}<yO^d&c3Ny[555wy7t/wN ԓZ#3O{\t".ُ+Г&M~GW e6SwX3zM[$쿓zoiEEE|QCUULD_`RUi%7F㯿v?`Ù~>dkG#Nd5ցsp.'ʶ`08(Jwu;PhܹsSSZOt||wF#Auȼwk} 9DO49\[r?VWWi}/buuoۜrnƺCڣ oPT1HR#u}/>xh'1"\! !n>9oooo]H)+V,Z#W_=R3?'kq9J]Ç~H$9Pr}mM9Nmmm_|qEEmjoo8q St:vO1?qBJ9%,sveYRT*N dtpW?W_}u˖-N6Ν;A>Ng79 Z[[Gp$W|}|M9ZZZQZ)SUuҥ'N&===C9*HE> 6_ P2FJbob/ٵO=ԓO>:%\r9,X`䥗^8s|3۶mkhh8S/_vʔ)wyC=yO.lmmu1q>?C㵏Qe h;s֮֜]_y啎ZJVLiW]u՗bhFօkY-ܲiӦSO=Λ7oǝbZA.YO3|=cf<)YOk\p\z??V~Wy睗^za…;wtf3gμێ<ZhO~K./nʊ Nxdr6P0PUzm9"-}rLIUUs"5 c׮]iΞ=rwK,~pUW-X`Qx衇Os';|.y^&O,;v +s=\x%ӦM[g͚=#4Mz,Xp?~Kwr4߳MVJYPQi߷~_01cYh׿^xȽ?C*//3ρ#vuuEUVyϟ?Μ9ŜI&]wu'O~,YRp\s/*Aեށ/6/h \8*/*SZ8Vض]І(H=܏~K/S@8餓Z[[MJ ObiAcTUQWS]]X .|'s9UUUSN9ꨣg;_}G}?zQxA-3e5k֔pfƍ V~B#(1LC.õ׿q544\z]tQKK3(kN8! ;ص^{׎3.KR/(vx>Ͽ}^#iyO/_> sOY@XHS _HE*LL _~<ӧO߾}{ 'ѱ2A 0 ÷kKgξv@v}W[[}9sLROӦM4MJY__]aÆֳ>8餓&Mxv bgsX΅W%$vuX" ɺw88C"!12k׎T"H6dbLjb| ϝ;בr0yMp8{M<^}էr_?ϮZܹs9眝;w[~[H$O?tv>d+l3i&8|'!cEnRI V/غ.RI(Rʆ+V/&JP@$QLS (++s:I_Gp.OٳJU^߮%GƎ/Yd+W<>"7rsҤIم;vXrGsΝ;wzw޹)Ga_Dorſyr)qA/$ i]ruס[l@o-7^bwYp8-?`Ӵ6Na94v( (2dSX)2Zp?eeeF *!վZji}Ļ)>}{_׮]J&M4nܸ;{g͜9^~G:Rw >.vxf1Oouo47nxG< ,p,N_~y w+86Uwwkۿeڵk֭]wݔ)S [nUD;R,G/ >ˏtC5[k`B RM@G 6wic3#albQ3TM3l<*** 4_x@ co !ls'H)<6Ǯ|5!D0,Dׁ\YYZc=vqǝ~91"ED#؁ua=RP(=+\rʝ;wq+V3gkN;mڴiEv~jժ3g~.\xG.~'vaf-kA!< 5`/ XP163UG3Cr,],+$ԌnY>k'8'ifHucj2lvB1Jeeezk~}-gC Drv4D"@xVOOOA{Tb/ b{5Z04믿s|9{˲F(3p#}>;g> ,Ə;wqW_}uSS 7h۶_|7 'd˖-wq֭[;X,~׶mMƎ{x㍳fr]wݵdɒ:??/??k wttbsp_80l{@ lBZle<9Nee<Β HC R fe|٘nä]"*@;<_72I_x/TryOQ:L#gG0JLAQ~(UU2eO?dɒwygܹŸ 2wuu$m߮da@͘?R.\p…<ַ9s8.|̚5WU_ +uuu]wѼϲt«|%ʱt吮&e`)LC`㖾hEJ딍pVA;]PWMk;vӞU$JN{죨CxQGv=Nhֶ#m4C!Hi6I)Kn&ɣ:ʑn=C֭[Nc̲b#h+kY ;%ھK|ц"fv,Rl( l]}lC9kdz|i-_LŭP-A#\dVJ4S] njqlgnx~q;Ϝ*w4$ 1b )e*Gѷz0 0{ɜʺ!bb$ڹ o'2 +?Z㓁;;S{aB c|ca,}P&`z7\MظJd-I -94w݀sl^ՔA"Wx핲C,7_4CTjHMJL&)?}݉'nܸI$dڡ![%WаCF.#HOTeee}ޅN{{~FLF5NO:uԎxjOnGl_fwWX6?G<9a"LBd#ӶUд#'5 -]ǏoY fK1p)e??峦m9LE:sʜo9"G[!eYR ѓۻ6 WUu/>d3;ۀi !L?D36bFJZcjB.mYBP*r~BNu>UP:-2)H@ & z)q6 ~\#>ؿa7~Dt;)-RlqؑCM+5 IDATv,NUgH9aXuGÖC-ƍipmYV%elɜBq R JfdžNEL̙aNOxgOgy&n꒍9)O_ŋ;::,J.1*cyag6v4b?~LocWg WHBTo6CJ#Z`\QZvp_U͎~ _ *f5?E2I:<8Ѷ ίh}?c㕬~h=q*1 TVSY{c87rH]|kZӴ7x㭷zgM4wH͇mC *v6'PjYĪ'N8fh8=}~R>-D"8ݚ9a+p;_G3pa0}IrͼQ86-؎tlv0kTTSo5ĉ47g\DZpo]ىvKؾ)=<ͻo306΃.'m'sDu:ۘ<!PU˲ !Lo#7t5\3f̘^UU{zzQEfH)Guos Jǫ(Nn%]]bdϋKDe5;84HM3KhGk9]7زeK1UU BCr^UUW\q{;:?${󋪪B>'a^;sLw|&[oeۯHu`}0>GbmlId裖6V[%,0*m4>{o<)k~ i*0DeL?af<6 ]i'p@}\Il3LvJQ^Yb?`?ԕkNXQ֯ew1g|jrƜѽ#Q¶Rl+\4o޺!۶P(Eȳg6 3?eY]vom}ӈ?p}(YL~@uzxUP,]"%2q/g#{ôjeӬSl{[R*w}yY&>kZǻZs539_+p_q%Wc~k6cƌ!wcOUUUYCśi(R JE}G|T9iavбIK q&@R趠9dPq(FyȖVTZ&U VeE~. f mòuKΧujmEVѸZu)[ Kp᝿ab7冀+2B6ؔIDXv"{2*`#+%l*cޥͨۄ&s IN{ҽ曗^z}Z (E"oiyg !pGG k'>)Z_BMjhލh1 tS汯Ht8:Lթ=6bnj\x**FE-=NQ6jj<{OW:hnص!BErm,"2(➓Fb &?_ȒHIDefx{ صģ&4Mrŕhp\NgGWvJGXEQJ̺y-:sO<`0U(jNY)YW6Hmv⟅}`!5?>||U۲D]ALڂ019̚KqPÝVHOɲ_M5 +"; zQ@ 2a6֌"cf?~{c‡+7F'gOvh:cX= 37c!2)@O'ʑ#H,Dk[褺k L=aـ!شdRF;G3e:'iq(Jiq:g+UUA+UU|g/ ST/++Ro(LbG(kYwѵG䞕۞&ڲ'@e &lK47NJSHӯPu')=b}K'0ܣn`盹Dqcw[*^iۢFɄ*ض9l_긔6APWTHT:ǵu764n3e&y>8t6oMtXivoCGiz)e+C&,4(z|Ҫ=TߚY-\.pq/!ӼZA2Ϟ=gęU\-e'^tᮯd'ѷۑ''56~ֶT*)xAW F/8v(lx=yf}Zi !@ b-?1pcJP)4)O9~a[ஓ%gFp8/[Av&2 5!נwzfVfb 䪬,pr zî4'ȡUo:1.z.!Rϳ/eӼT:[M8@H'+$,Zzfܟ9%ݖANjt5=-4p;^#+Mv~ ` 2mB?ߠ =IVT4~ -z|:G^SNN4w.o>-eJ}JPWY0\$F !sc !zzz949eY֐Y}GJi^%\cFw@M*H:6l:W .JXLP7)P:VW@a$cvclV}IMmHT n%쬣jH !swg'!`mmRuT mei웝'Zlys%gK,ׄHSXOUAS{.8$) lKEI*+q:53 D b]G=L~#z)@x79@E  1Q߮q;2lz|e&aA q{Rt\#mTdM: D}AvvK![PWP+>0tg^Կ%1% F2kgK(ElU"!ai``j[LsgBcưmYu"d%7Fz:(Whhc!h3#sJȾ*IjQcGiaL&Nc؂xNU1IUxkkks8l6 d>_#Da5?_`BOmõ˩CB C(OY/*DvV:~tde .,,Yf__k/=CݿflRT@<@BH{쥘zU`wJ$ %H&$*ws +*"\.|;|?F]= 8YrN&aef E2 ~WXZ#ޝ\]+9sRGG=Tw;[:a*4ڊLVUKZa2.D*sOjVƛï;d48#mc2C9SbReDx2@)NOs<7wm%do23yt+J2Qc}hI3̝4{)SI{^N_kGqi-ݑ5f8P;^#kl$4&DDŽqcy_ǢW"D 1 3?jWC{&CEB0Bu=mw9֚ 0s>cJԳ&@ߨ;zN;1mЭu[+a ЉPK_BbV؉/hڅ*q=XoRz :7a wwP sKBBQ:^* )ve_I7XPlĔ)6]shi!3K8"MZ6)tT)jǓn꫒=$g3 bݜt^6tgDdz-'}#F/={?#(:IW9Nnd]׋ib?C3^1zܪ/,)lkG,Yr%|tbכh)MT(˦ ~vmtU{]:~So>_pu_dy6FjYG˙ѣY&m|C_nn:f<SB4 |:gaYM,!X8ms#֭֭7Gd;zM}Ms)3vɺM,@vMU2Gn٤v<̆z~%aA سt\I@ok.@0θ歨(MLk~!ȞiZڽ<vax|Dt:]~ /i4C@'@Qi. 2Cc+ﯘ6X|)! ۏ gZY` ,ߪpKf{: " _E0-~ξRD_!.͞rBVؖg,^Z*$UC!M`xʟdD2ȖDD*پP5fw/;/?9dωeK),c2v tǞE:g|YQbת,4?莝&H=43AVH+xK* ˪D @ŅwaʵksJ Vc9olVжdOk ^GNDJ, -xlBȱGi4a^Hd0%6ԌcD.䩧õ3,ݔ+t и-k(w%_7ި'O^im-랩JR;ʭhl:Tʫt~4]wqW5)`} @H;۳z!A.{n_BI' Ed ! Â?W\qżyʬ=>d6644βѵlǦ'2 r%UaZmr5؊) kqv6 KYJby^S3m>}ڐ>W-]dH 5TMҼn YaL C6vB{XDWI8UP eBiN[@P783Z]AiWx$^%m^$jb8P5B9`DhNϢͶzbCw.3s0,7^L+B8U(JF^;gɟ*]?捥lYO<-{lێC>qE>FOZزe˽{i)3tMӓ~xSZ͚%WIqlZY'@nv2&4rPوmMv_M2IXC 2s-Lact`w[̞}lzZѻ mt6QU+ WG9; W4$&*hBe5>8Ԩ B{ n `Vs4PU ALAd1[Ѣ]!:PC$ҙ&3ر{HniT2R3 Tα1]bʩ_faU+M3+Y's3f]U]js!iKs _pq>nnafjD0c)e1s ذvڳ:3/~𪫮:x1 >Gi= ̙s,k…E-QZ^ 3 vғƂrf 03iW89PACO OW'!iiَ3s":.mZuU)usvSuX)Ma iN`{ۢ;h8 <|Ew+fkTmL'3.`Ri]Tl)|)5fA8L#+cmPh ;'y:#Atg+I4( cP! Ҥ w(]dg.  OŤ(q*($!eO+&NBT4Q2 h 3Ib9hs gɔ{.=N80_7Q]̜ozdwgdpBmjj:ǎ{ 7{?OX,vG#ϵ>-6 _PYYygWTT>S 7״IzO&`cZ⿞|MYSEҠr_m;S_'[U]pR7{$%̋ȶv,8* S L[5SX 69 g0niH2FJk*t -Er9gV$8ƶ0LL:zmIs=:1D IDATG~N*e B *hM`ˌb#@dX!P,8dBURƇdi+,;ør6m[]uo IzbTxԲll 5Q7N`B w$H>p[RzSXX}URv?۷Wq,*EjoL=ֽDz' U)!d'|q@AMf!D~E;wttL0(//w3a„o_?F o\8$jkk}1<>'믯\Ҷi_Ūh} 3T!/> Uο7'% *h!תSb^FJOfքThF( CWQX~{/&AR*RXfamHibZם>v*渔%c.{{4Odw,^rzU>$uRҔЙʸ݄m]&e%Bb%b{PKMC(4B5|k=|=d 'T.Î,@AnlGnfr)zu*9\,lI%<ƟEB:Dݳ朮."**Ab-M׋òiO"nͻvZ`2t"x3rY`~dT]tѬYz-EI3`}|T]GydCCCݛXq O! OO>]08UK'45L) ғ/4f`c֪ڲ׷ |"iii"ǖ.Ɣ!Sef i4(S]fk}a"a41K̴f3-@KL8 z VԖY6ǜȸ))΍T἗?˄>\-HHry]Эu\pFm$ Ǯ P` :mlǵN q/^s~K&{)DfoiBt%t@ 3 *ԍ;3_ۨ`ؘfH˯ia=)Ͻ?ʚ} ˉ&84esl5!DfUVV]xQR d\Q{osF5?3glkkF޳RD7yxw¹9J&'Pv ysB/L]۬Ttuym;v!ͼL]( e҈ˆ^YTk4vqeiil799:䒨r:tR`+"mYy3,TMPb2訦jƌYD@@AP\uT0V/ȼ@=F] 3fỲVqw& ͠vٱ{^HD03^@"PU"2A@Rپ&#RKޕpƙi`,GhBf^HL7!UWrtEǢg?0nSjA %>xrDoʀ˷tѨH$q;]q?~37Rt:]SSSi靝]**mYs7gNۦ9DIE:ѽ xUu-j\NǢfƎŽe N&Tk} YHp۴0HzJ[iR6O-(PiTbNJ٦V"iј,eӾ va{T8ێY[G1kkI HB0"d;&lvo4_I8$!57WYt)|7J.A{"Ǫ˵!((t A-$:2mC r1(=ڒ9$[9G[ @2J.tFmE'Q [ätDa;z)=\'AC8`,5c--nIVr,B`IwOZ6fTbŴMR9F-H$lA?|VVV3 vlݯJkkQGpmEEEYyu+'u-$:g;yݮ(UƖc5*!T6Ѝ),~6&sC$T=Ď%)򹶷.aCuLQg,sZw8=9K34ʠ`"  6 `ۀ66` M46BDIь&OtyW^QU;sSO=TW׮]]z}~?Yw#MX㖬^QH),o?HUc4UaիHE]!toX&$NڧT(?0{q҈:^Uk>s\j% "k;@yak6l%m|/rY^G[[H!߻zHkHc_A>{[R7۶lٲe˖~CCC]wV[1 dol'CIhI9ﱚXmZʄry\iWY\$aR!.@ TH*tuŝq$^Jp5ǹv+7>;V-T Z\'/NQƓju6S*O'Φu)ޱg1F VKbv\js/R}KP4$nvAO bB<'Y[l5 mru`|7E)~r 5Tíf¤hfr4Gdd_OƩR[9mjMr|JgqsuVPSsXPЙʟ% ylC@k)*W=9vގ q 6aw~hz#]ԙYT,5!1ǐIl:I~8iPS|*_el;'_IJa)<-}:Σ!yCi},MvY}{?g>tll?DŽ~/vj3UуR(N7S=UT87Ee MJ6Zͬ!<,0[ =+},e8_ezq(VSݺ%`k 䆣 Zrky8G1E^>?fJ -7E)|fNL4cCo sbX94՞&\B"olw꬛}ڲpsퟂe[هWA3S:?xFFI||zbti Ô۩+8k9)y,` bHoxY* H];891s^Jy InBؼQ$2#@1Iń3!̾,A>w=>ϳv{UsS8z4 *i @%OOc~I;ev|\pnʽ7sۇŸ) 񙺇8.e*hAi*+. bG1ؐ5Z B`*-3: Xjenj=i@G?];%*C:B81p-b ~.xA,iWy,O{4'e!ܶmۮ]#=#6Nu I):G @ K&v#Z{z>$xΓ0w瞳I!ᕼ|V t p[<*-m𓹢 0X/ԓ~𛈸ڳoo/k#q`tePwu#| %6 Ҕ _*d+<=^+BJyXn)<e\_b.9^x7+L~!6G<#B[n߾}ڍzdV(Ȭ$;g3RnClZte7J s/M3dAF% l)"j 4Y-".(IR8pV1@FuDQBDAX&P}*["cge+D2%MifeQ[ &.&1 r& X6>KZ|T`ȾBmHWSa!Dt mEoW'@7KpCEls͖#8Ld *2$b/mT.ek~V2b[gF#U7-o8٭ah Ik<94F*L\f%$PC,#}R4\ddϸ㟈FU[ɾ:Gs/Ru7o^_px<Gk}'N\uU%ˣdj3OebÆ |߼.[!έ!6=Al?: #EuzX "A-U. >lNP>Wb|/U#Wf&-Ychϱ ^zp&vȨwAPיzSހjGބ%;^Z[8υ8uxB)&dDSmQZ.FVc5]}=]M[O~FUN`@C``#%[O3u*[)ZY2Edn/i2VrDt4#B:!DZR?u$+7%Y +uNӵ2J%NC)"#2CV^`7( /z5!)!. RS1P ѼgtM=Hdq1j|P6a=ZNQqչL5>7o~_RǰXl6S%I󑂟'Rbz= 6{ݛp QVoGP1ǟIeSrı r*e $ P H1 ǔ-L,a`ag$W;wAl*r`H !a40bj6x^2 ڱ\[˞qP&ht Fb98IayϧSڍI}IM_ʩNvݕBT(6C4(/s%ȶӝ?R,R`P=nGc[#"la(zX[DV}Ptfv>nʐYBkB)ʫfϐ>LVL \6hh? ;^'m7s!/@qB&+&DZyk~N/BX*9wyX]W (&P۱ s?u*rq :!I<_{ݓ)8t3mA|HНeG27[G 5ɳdJEXC%҆F_IJg~d̝H/T&HZWt92W? C`N58)m2ѳ0lX~IoBEYץxNqS$ ^t9gl*Gh!BDbt9ӟ!qMLߊ('VXvH$$6%?rGf(sDJv LM)u[j-бMa))&. `n;q^5R*e t1/!0,.sϾ>> L#D(J"O (DB:s E8\Yu]_l 0=n{|R槱 Z%AqU㳻3=gaVnk`C] h~o{Y (s_ut4eR燬ZjoPYO;F}]5;m=|#Byǹ!B+8>9",41 Cbm'@K0Lʫ>$w.U\5!0ނݾq@&CṠT[&ƆܘS36Fki%OҮ*,p8v?GcZ_?לeZN^"?!2s8Ϟ#HV;%Z;''$9L$ZWeR5w^&$Na`c2^|wq]^2\>ݲťO[Lߋq[Z]-e`HWDn%[A4=lTOP?ޓuRjICc1prb^̎'SZBFqtBM껱<+sg7Wɾvyr8'AǿcZq<0+~faݍ;`4Zos ΂A_ 7$z%cf88%z qo犧ηa+b*Dwa8CCA[5p'/:eȨDv}dC nXKӱph\bo,cXIν|hZ)p6΄u>jJ[#}:Nb!su y4Oў'lRV¦3Se| !3VYҐ4f L̲aLVko}/7.o_|"`BӽO/OT >/߉h:!R#!=y"vq Dd$ b1b5q= AEbD~_%)lEqZ5DB r %3`e(5lmhȈ5 wi}cԏؙՀ7EOiL8킠S2?>\uٷ 7=3"#< n [C'=24!-!K~1QrX8"bbBOr#t1i˜Ê-\^nM7Gw`--'k.z{_e'`Y#0[ юcZ tga6NT!<ɕ_/B_@ IDAT4t&JY8/GPz2eS:`;V1^R1Ty"MmfY( 8ޣX!FY^6^D9"MVm9|1XpXs2 ={}x':̭}ߟGsFB|N)wkp<ў=Cf6 3SZ\Y/0Ke,R6BU$l5T 5GO7U0q Pq2}/aUZS;?Ɏ8# wEi\uMCH[YOٴ6mR.1b;b55$CGaai % l ǕO)q#Jtg{ j0Zab :s*c0њQ[yPҘ!v(tYpQd,$i%IQp3y 01Q[qy^qy̋Ku&=$!na`l)5o֭5@g(}.vB3UDI$*c>y*vق &Mv[ hAjQRR+51iv S{I"qpM} Ba؜љw,D40$6Nu9 ۟fa[d܌]K%NY*2$ WKI饁l;֛=F+ 9,.w)"|QA:4j A<3j:űw2r~k'L,ODH% P6[ !'gQwf %DhJ˅1hMtV_[j)\u#|D7lÒcEXZiv/ӜZ|%TPFjӱ8VN)+e3+yg&s&jI!MK/~6o7l'n1N.˲*3*Ln2c;u[v1.'NC؞qC1ǗK^v%[N Y5 s8&4M %$QT`F@,s4``'Ʒ0x3 m qԭuH4uK5lĻndbk "n >@7'X#w: ۶ŋזѣ%Uf;Q1V#D/{ڨ/Vܷt(z#Њ ~S ɯڄژ0M#85=$Td D~u1 ̗^!S&e b6.|544Ea`pɶ 0hч|5c&[]Ϟ9fmbqs1#?/RNK}r +=q}YN<,#ŭR,mZwa$D'A7 iJC1~qZҞ$ V^}0,BdSpAY/p(UX)#1:(Kɲ"nKEH ood&JPx8 ~3sB /xK(RS CL@ģ|٩f>e (/f51΢W>= 7_'UZsO:c%}CXSi]S8Xa"_ $צQn{cmN,-NDF"axy+=El>En%2CߏH)2~ԑraq,^ ' Q^VS}IȦ+;1vO+c%9NqlLwvB9hf"`1߂'L&NZ;f](otS8u5f Uu>إےE.ƪ?՝ oFa+2:YaӉ2M6F$Xi k1246h[NpsyRJZyzn: 8FadpgvY8&썕ھ:zdMgf?{x+ R鱂ۑ'4 r3ߘ y,BMl9J҆g8YUx! ´ ǚ+u*ht6V"NX+^2 ŠrnEHjA&8GzZيz@Ӕad5g]J}QcByawPGLZ`^u1S@6MڵBF%HBLHZ\6q9<#ف_d|VI &%F/S+T ڇ'S +<܊0bH Iz5y>x?aɬyDiJSTdv4-ZhqRe>^[P d:w$"Q!$LbO371AC7-a"tC"h$>2^V*YY1YZʰ6Nh{^u>Pa)d'`>5GUə^oڹ6K{J}qE]6\& eGqgٷGB)$&a~Um&g_@7 АKKcݞtfQ;Le:nx;kJ4dn$+Tw=XHmX_ū.adOf 3fn9Fiv%zl|)) CD ~*)=*ĸYZ{tXBǧ'߆55e4H0FtS^R'ꩣӳ\z}ԿQI7t{boSD6xcfamȤwN (8h C⦴5Ζin&?g=veRB^IBhxmN$}A3C`ʁφv;?ܤ$yK'i90f{9m!YBh>44MAx1*0#ڠ&͹.R8;KiWō6ǬN{Y*:ĩf ´OZ_U(!:!fV k &+J9!%rbT|Wn\/Mᅫ/cdNg2YuM&{vg}ss:pѳ{BBê~hJv.[7+A(„оO%iucݝIWd8; CS^jU!4ŝ/L|SyT$p\T~u+cSv6F"*lf-XG5YyG !1 8h-jS<츪{6mcz0%F{wQuE1IBǠt@M1^_`(~k&naBZE#>o $Hq\W]ŇPd؋j:.Q󋸜G [?BO&t^NˁTwjYk0bGߍk2!Il JѸ| ISgޔdtLc FR+@6ۅdY 2FM065 Q-Y%,Ž-LOr%|bJ`C *hX4;Ex a:8(>T্^\Vԗ:C\f}sy7'9Pdv==Jv=;7(O-t? ,Poq *EZS9:3'7>ȓ6RUSߦq3^T۠f= . OF?=V$BJlL5V^$Xe*ґ.] dž0HEi lX`")fKA6v}P'ZNoR Zs=vA&F Cq s yswNP*Hu>98=Ŗ_eϧc^Km hO[ (D$ |24E*N@" j H箖lINpvx_Gfh,1"^w(c?aH%qZB!`ZGX3slM^OiXZf_v"XZIGN H4S-K~cC|$a7kB!:udZ%b@v!6 G  ,ǐ,7N_]l31-IT|MxMpzDLY(:bl,kd5-lbb<%{OGς79z={8dOSPiP( 뼋.` f#v&1LU5AU}:MƘ;G KX)&X}9EVQ$rjn"j 8{,wcTeq'A/4j170wytcolBPh@ "J؎fI3FJ>e}BTV(^N ly/xt! Ef=lIb&1Fx^&M; L-S)ܷ_iͬQؠPH>ded3 2c:E'ֱ8eVv`jFDa9D)OA{\z[.wa8Ȭ:7Y=_ ڣ0慄 mфRJm1(=7 k}bAh/8,)6q/y;bۅl0 @-?ir9J_*ņh}ǻ[H /]~6gDcCD^`JHP-rEAEQD5P'%tMfZmM}NyYNJ;A-f9dzO;NץYf@D!!耙Iv6E\\~t *p'' wӪ0]~UD,ΐ^d}rϽXczbV./sQв,uO9,q?}^>}rAIؕ䩗J'm 1.9io$ý`Qyt:˵Q8bN cDEXFu>kCJ6mxiN\†gDcŒ IDAT a㍯a|^އyxI. aNSmX Csp2jNVC$*m~-F[ uK2U k2 <#8J!xӋi.ZaIںyĨ/a qeuCJJT+@jњ0(ֻR#ݗH0;bB8-Q.dy cBU[ >z9:E_fXUd(p "DC#6YG.Ɲ!y8{^O?Ts%&%.dߠ%: d2J89q/J +LUwe+Yq ?zI/Y";mIj {}Kc~*p9LIf@(+ LCʡx>8{T:ҩ?&)!s->˜}{`pNT_齻:sϾ N@o$ ؟8;tEvM-g/Go7;Fi2_ w0֯|4YIı@$UIU*p*xZkk>gWͪ*Q]xd7y#ss _4ejAۀ +3[y?đl p+udf+4C#s`ocڼ \{-іd q3s./o歽hBzR" iش~:TScc\dnSU׊왼Hso39,R+ay4F2p<2UKphƴB6mXOwb5! zmlcd աy;Dl{^VsPq 9iDž7Thnu&>U76zϿ)A\[g4)@_v&;PAm$ F} }GA`*>Nr}~@p^s BQAy(ۜO'O#;@S0T% TG ù0k` @ w:Tus4 vp|.\5y)mH LHA7&3in\ P]g:u9~#~w & H: T@yopa}YLjdO8~ `$pФeV֨ Nzs6+Vb\ͫ_ϳOH)!贴ŦmA3T* MDz4(a*t-Y:n+ %i'ǶRqlD8+ #I>K`(<P85ɛTkT21'q[8Qz'67u i榳h^]IuΪ1 d`Z<(YY\(aZA8Sɦpޯzh+F1u;iK⒗02ǽ1^$0 ߧOJbv_+tM`A^sAELkd,$y57#dnIH>ٰA$Ǥ ߃m[nZ{Y=MCN\rI a8Y} ե0> ϡ|*0fq{xoзYΐf&k8,%;@ew=a/ETt>8f CQY'FOobBh Z 5'] g'O s!}3`$EX0&\rř?9z^`!tpD^p0"3O1]ֽ6*sXǀ&[UQ +0wҝֲStZH9BKPv- ks?=yxBL4ծax:,D?v@;eiwBERwr/o}Saך]ˑ\x>=o~f_+J+`t+-ιyrP`T+sp0F!M C*.|=.弋w)g[Y1ޖpG9 f%!\ObДU|תvֳ̜OOp^f7 `UA.a$!LNpbA#sa!9AF:i=)v$Rc@ s/:ɉɒ#m@$1w7\ٿid9.>ޚ1uu+DQk]vQsZaIOkeu^s{es:`8>kj~uZK7s&E\!҈2~8.pCmdhq 'QɁEʞyh/ [6v|37}.'81Ͼug%SQ.,P+lR&ՁQ#EE<ذE"nUU;c]zՔN@R'V@.fOKɝj)U 29}$7t Є%8z#6C088 Sg.jl[SWB(v@zxwt,'ATb{⳨4]0[½i\^6DT{pQoNIZlE8Kyaà.cT<^?}p]-)7}OA+@ZͦH+4! ||6*'͜AK^q%Eڨ<^],)Zh<}8Ge4G |8M۹ \q5O}Əu;ð>n2w>F"m5dʺc`d 䉃2P&7D$Yt`{Zw±1,-Ff6Dn0 tLmaeī9 C'!]ct';yiފǓ`"FG %R@d``p\k5Oދ#Pbm4KRdSNJ`nWns``'8\[y i+B)# e[kq~hk-Q%G!@BlY.gUGF^ݮ9PID7?V ^`w$(},k2- ;t ہ9=Ҝb%'}C@T512vN~m+TW.MϩÇF#9G99EKh 3Wݛ{32t% 5'&p*eQs$QIƶ=̊JpT܇+3_ʦ3LZc~mn {>½E^d^VxfWY~ D ZmN]FPY#Yb0T*qoޜ4vkRcLƦ8thh.tjfffZP qAh6D nZm:--~|T v[k?X@¥Ob .d"M?2ՍEaz!**@Z2J%% '*C3Xgdޠzm$[{+ f Wa1Js~MzxU|rz _e8iVv1 iE"sgDJJ(TҤb1[x00)2$Zr /s7IDv!Ͽtē7vCHjW"a{%GVK ɓz&4:Gn1F#L_&>5<+(boC ѢgZ|cȣ۶+Z+7yP 57]Y0>$)h6[YwhcLS^}q)j*jT=Nr^z+x浶#VoO818qÁ?Lo+H% #K;={^ߓ80P1u)* \ t{WqŚkzΉ}b)ROwY3~O}Bҙ (L6P :qg*If 0'%WE%/iaMXW'|)@Q%:Dq\:_qTsa?]#'O!a@5+825&xe 7+r3[M92ZM o`c}zoD0v7(ARuhvT!tI@*tz=&&ղmF*Z+9dWqDetksM9;(:402?=p5xa(ڟ,C‘*.`e?Q4X{*j}*kUag]@V jkPZ4$5m,AqW;Mf(8SMG 7@Ǯdϖv#@#1y& IDAT;'O\90D1/e~ͺ\Yd2iF2O~=}odgq"NkN Vfeqt7v OW9MD7R39-!Ӫ$~ݤ{7ptZBeI=xAr<'ٷā᭨$ GfOѠ49p9u,|V CPA _#afiCALCk W?Y0|+ }*q#ÈG%K?$XXդU$(y␫be{Mqb3Jvc6 })Gpmf#@fe`}4D0<`4[hd_y= s&+Cg/6b5կBN|ގ;ϧ/0-+ C4>108f=gUL82JIRc:n7qVFnEwCDdRN8YW7ޙ#Gܐ.dW J7/G6{5+-' gz(pjrF@B+ױuZ>6ОA9S_ӺUD"iiXJ:ͼH_1薁ց,H8׹! DHjO-SN{By `d Eh! Ū($]0{=h y@(:sb~i+̓"ʽ 0u, U[$^ DZuӃ[d+屦\ղIan('xQS@kF9|W~g_ Nr1wb6Έj8A'Zɻ(Ѕ/OKQȳ~Es.1"fgea/4:D8129 n:qh-B!ҁAh.ƀlFK]Ckx 񤬻N#Y o g=8?\f-JUҶQKR"3;D"as%EXIG030Xaj35gM,M%jűjwbJ =[,A+>K@G $s%VP5nZ;+gzQe4}f~"op@+b䓯48{,ڕkثQk]MXP@:k݂#5؉Q!Yt޷d)2Mg0懿 nʅ! o~ aq6T9p0ʾCg J%D]l{n&9:Hi[3UVI-qQ*/l8?C#tBe<-.JzLM_c,)t>Sr^&c ,#505V|콍|'seŌZV*ǰy'9L~1ܔbŚU~-/S=]9%^Y6`[?#<5oD *;˾w0LːM>'ۓ(0C:6J3{ˋԇy_ff"4JKXCC_Srֹ {^XYJ'4A9Du.oc%FKndN f)!싩TC ndhke{NSKۨ|L Zec78Ee$ |:.7T 0"BiIWs/E&"8n&"g}QI~!\oNeN/-aB)h1?2$p -#<(Qe=B`@bd68>`|jna<8JHLNOlclk0&QY%F$Ҳ/)#Y&ܼ6M.nHWO6HUB6eh%KyǡbW褔Bsk:oƶ3=m18SE=Xqܭ{3Ԁ O@ b54KݶY•E+M"o=kcʐg⃋%Ɵ~)ެ6Ajh\ >dtgg#RE8X 7Żetf~ZUD\[5$D~ 4$em tv$ @E#T1|)`40==fTOېpln.VJ*|S|z^ȉ#͇q=NpOqo Zfus2(I};A pmЦJ^] (U]}AAy :~ ~9_D>%šeRM8~#_oV-!)D054Iy5xQ'?1.{9K5Y4 h~gԥƞ$% gS٨S @8 3*A!Kiw%}c9 " qx^ʼEXH"[X˰[!*&NЭm':&;DPmlW;w)+lu#t"iء;CLt/JwWCPuaq*bB}9N,Xm ,ټ֔S8#xe|n0Ɗ תWpL3}z%Ո[ h qE#utAa0n3ޫm \)W|F21!X&;yKޓd\Iۜ` c_WíAwSU+mD"0mdZ%,SvBx@+UTd_g$(20$U\;WHcΫJ$&Iae|9wxެz,[rI"Cmr<+sq qz|J֭AhISZYjXpZM=PN A'/ۿO/xlڲ(|~ aL{NRt BqX q(H68@)aTdel:<o}V˺GVw{D̴DE`a װ5Z0 4& V6kIua.m_Iq8oxSk@n3ai}%MEdзb zpoI=8G_eD0y-e>2FGJźL09)uhp[νY\ɧX* ֞uM¥֫ җf>o7sp[w,ǰv_`+i+q; {OZٟ~*xΡwJݴVRڥ[Tɺs%u eid"Fx yYcgSH3'kX&%^>7lxb<8vTрט'W(^ظcjͰJ9F81u3eG\ĝw>Y$ZEHNa1Skf) 5_bA?r=V~j=ҀhͮH' .JܻN02% OA{3 )VbpDf8~7 jy9Z_K69bw`87<@|*x0B4,Hml 3x#/X[lvn-`m6uboSU|{ z5WY3; hlx 䳁4J(|-~EG)"`=j XQC-xlS24!GH!&V=_#p&N%T]E5B=@e(H\pSaJfGuZH.; M2ɿaJlzOm8$%?!׳N͖ o_(s oП |sylRr< jξ]s9RξuGI#ZYc1vvb 8U81WA(D|udsk[bx{\L J[E \#(N@}Q#pqE\5iD,ېJU1] u*iMIWE4'kQ0Eu uai4l$ZG$-\ +YK3R/斯 NaJ´7!65ý+̄VU f${Gtz mwi?†ut+TUC-C?A 6>Hk2b#!`?w넚 D8 t>kF\'wR=g"/Yɻz@# aX p #6/9+Rv{_67>G'I1*2w|O⸨E &t swϖN9Vp6Zs2BYL&*0TD %3Jxg8}Dzaɂ?$%W<ʇ6[TdL. >:|1L>Yö 314F:r]^]*\;V g7wS`0?`b|5w*yV%`p)Q#'JH(#y>a'7F9XڸgE,YeQX RќNPvԽkEa(˲BdA,~48'V 4uNIjɜπ%~0y4ǘSU)e@6X>ԫa\J ;l} Y,i/nR"L8HPNB~WL?]t?̈yg8'O=Íƭ6t޵ٱ#!(|ԆiAh6#e+?J^SEz!ʹ;9Q<&H,Z+CHbALG&󶐤!* Y|03"#Q%YPәᬏR?޽;9q3}ɧ袩DCtWu:Kt|LSAOGVyR6 O?ɛP^fKveT7H: w5dJt\!ٸSVaF:-t7uyt[ h͈YӪB rB6l!S{9uD1+Zax4''81w7q-׳}?lx|na8m`Aڶ9i[7eG)iq S`-ީh=nw2Od6>A|^ M̷B[2e6z:g'k6nV6"4D~ pɇǼi M6ʶ%EMyGb@kgřY65C^#S`?LΎIC+(5Jr$[Kq*MgVIE$fgfz=VJ@`mc^=pX^PYS&M.L RbB'AUG+_?4Kh$AFoDvӖ_]z1AMSJ*Kw"4M.a'g2; ßhUˍy?bU3 ȮwqWՙ< zu2JsPg!jRQrH}< !YoT58E9C\FؿI☛"z5.i[e4kc5ymء z /(k!CɇȲhAouV7pvdh<?1 5@h[Oퟔ>Z] ^q#Ϳo@RЕ"DktPΏ&Wɕm+//CS3_U/AXnjo[aDXiR)(p1^IKO)WRڜ+<r h  BemdUE1Sv^de!Y}I3.>B820YvJ#fY16O|*h4/ IDATR3ԒX\y/_H`/LWy$QT:uNmX)ʪ3;۹ض:HrM:ݔKHgbgӜ 3Ɏo0,$=:αqjT"N',4yV# *Ӗ$쫆⟴@%a.1J-u cÏ1H.4s@\[2oG>*+wWG[VN(# " L2A؀3l>a @9 uZsu=i=%q:1R^㸅AeFBhhz)XKϞGbp9=XہRyV߈w"%[zdR,cɊkw,%*%6jU,@Q<I0:xіԬI`R = Q6/\*`x$$KPZxO/wK{H#8~+|+(3|6U3'Du{NpⶻWgj7DKK#]|Zϼ/ь*V@c X>Em'0VdzjtMTQah{` 饪S$X( %.>.^} vьzZj堔*X]Hv8/q Өɟ>Qv*mnG W# egѹCAiutjz*` kQ2orb|Wf@%zIt.^ԓ4Ajα#|o९k:]1vWEc42.]ߥt=aEIqLtcZ. ;k{^=&LMs~'}jR0SJ8\V<9U/0ow+"!GD"o UNҀnu'LBloW[Dgy.>ݰ|4NTbSвqLLdGr*(CjJ . sl7@ڗ2V 24 ,淚O|9M(AF66⓴%×,*a{,z7H#m R);mZ)Y?=իdb-9hN3rMl[LZ?,DY8$wf\V #PYʔD^p0}ny/})Ofؘ1DgZbm2=\]`eޖP_-~r(l@f{5Uv I K|-URu&dz ,eSuS3iVNѐd@26//0^F[ ?C]_gzpNJj+N=JE`a8 /GeLj 0i#7U\1ЯF֟EusFNjMo३c!Tq ASDj N#\U+a6`eI/^JVYњo=4矗2Uzp`Y4撞2n$1 JC%֍Ҝp q67s5Y -S9\.~J6㛩<6B ZJᇫp(wMpY갢'F`T­ dz{X v⩌%VүC3SU=tz/M~%$@89Ob]LJT72& ӞƇ v7!1Q@H o3ZDIũc> J+#l {Hh38:\ukEaRS:^K 7 `*1~2[9 И!"S~:-O4J}qn;pú֔^ćw沫0l^V#?m8dqH]VTkmލT .CWgOW':i>9LMiIMLw1f/\UFv,Z)ɃFw̟YQ>,64 DeocthĿb׭a#NO~iP2pC+rI>I YJ״)ݯ(p8Y"i" 4 /CpkOl|ϐHuVHTK}>.yh'Jckϣa2TVO\ww ~Qica4YkblTeeva/zg׹'#S_JUo uҿaa2ȩr8jdLld@7譀+?E@jatAY0;'iG=2Mò}ɟdd /!]]M AH-& Ɩ`gӉ&)Bjvn|5u>FưBeǟf^M'w 51<4ޭHMƱ!Rh 0408 ).-peXc]tRŚA | &荹P \!węcl ABX)cS4#- "}ԘbW ^MNS#6-)nfGۆi/Uz@'p3Z5T@8nu>&m6vF6* p:HC`JZj4Α]~:Q8)<&wgdV^ QiV ̔d';4N+)U"dJKc,K/ K8 g,qu}4*7--{fKt^%o98 717cin@ G+hf6Eh$&(M% Ո[nk7m[˞-t%>5aE]:נ8\M+iGS3mѯrd_wu|Jp)u}4<+eNd yI4OR]WW~T hFŋ6||/A*kMd~~+Y(Z3$ZSѵPl)=|6毊8TC 1@_Ք_c:*9zI8HZ5BEUtDG lL4z Tk&XDF6yfRp0q g]M$6;gr%HC2 dqTJ1cPͷOy|mФsdSvVJ`l.ʸ5:¨>?䀞DqZΔ1 .s56MJH_ h&a=_'^ 2 C/I}˥)dB•DD*"}ā~8Nk jĊV +1?1&ebV+vcl?s|0R\p{M{ pj0s|kEJbɶ':5m vLđG`q='f6vD V^WI=cr3 f@W2@{GY{K. J9#T 3zK,^|C7ƨK|EcHКBI Vhk< $xJyLZh5xhJe0E%0|"<_`K?[i5vH6^Cé۔1f1?X% cmZ+YW)Zb`8|Sh3 &i1Z)'lj협ELOƎi`(5S_)HsaM'*0ڱ\Ψ^?ܯ-(HBgu]u 6hpr+\^?7)TG'97/ oNN}I簚yW61002Xt/Bl<%1_C˝J $ajZ~ W"F,ꢃ<_s!d H{:,P-6z)+SQ –c;\}`]Fw2薄a VK[P %$]<-W07mI!|5+8qW#-; 9rԳ_RLOjdlnXJWT ^$9wTR,q5zM62E0ǵu EDȗúӢTe!:bBݡ 4neXc~~a~AÎ/#H]fGO+~(lhۍxRϑG)9كI>P,៉aOwa[x94`%fv~3cP"#JmcZdJFcT zxlz KG(9IB,\awWp *35==܄O\im|ɉ !d Q6K`b/.JPC fAy(M\P6Yx9K?KQxJ7^/hxN<3l|;Cz"J`Iv\ZSS!)##¨ l(MÇd|n>2~F 5,ddN$(܌wigLF <Nҭehd}vhMI\3ß}C\W'tm<*BΨ27݀AAǣhcK{7 ,Njk=8{SwCMռ=\&ZsL|IڌZ!> zOEkg%J㨎kYRIH(܎,y?rPbj"2V4F?B<'pV˜wg QeHe37/Q M7gXt,{︜9knkâ) &E!n&MK{1l ;*<Ȭa2 XW\Ǔ[pa#\GY|qq啱1enX% ɬɅWmQP 0bSSbj23U?`BTPpeH .SX\H줢 %haEg|4ATm|h{z2$\.K8j߽VfYD^ˑCSk +錜/VJw&~ 0h/lmc/=ǥ)+ݭ}71ʴ\.e,Ri` Z][ohf+æw6v=]veRFwwV]=7)dByCjs,('LM衩HDp9wM{1NP:3:-)НG9s` ]ۘi>#yjd#;D~=W9Wv,Fu/gAsNzB 9S]^}XK|,.:e c7 }}j'rjAXjt'],(=JY= +.hzW'әhT- ` 퀁QQf0 J٦m&O7X@Q#" IDAT[0(Xa.QL]a C.j"o{',o|2:,a[+ď/08 UfDM^ĭ0'`aVC˔Dͳ(W^γV<58yGN#U,t&C( D]lc oqt?_CWL9)Gf&x/gx3pR۬BHnF M&ZA`aTFdM=rASl~-#ETdf2,K p,MGu!; NC'ClHvF-wj>I}JDisrWrOM ?SڵMOCɾyVˏ&y4c3+=Lm#`N~CAAR#F Md[ UN B9O-%dŋ~ \" h-rvz-gQJZ{75An)vޣ[u1m*aݿ*N˳G[ @~3225Tף%CYuӳ7jyZ8~;.&oVǨ*k.grkZ|d q}$mM[GRM 9^8B^Lq`m!2xHhОhUTXНelKd.00xHAzcLB =e?4~MvH)334ԣk0p~TuE9'Fv=]:a9>"L#0z9;hD!*ွW]iu2pko`)]i9a`B/'.}ˊՖpU7rS|#dAM\bnV^Mz])}Edg'u:,_ђ Z8FyK, Տ9խ2kg9IU?: Z!hwe-Sa־wf2{imq♦Cˊ2ʓOgd=(SO*+awsEqJke )E#[W7+X0PQ66_AOo%K`I6l䖷8W"n5)Fk}Wchzʝ|e^tA1R)7qќugRiC K n[馩)ͮoxn@p(TtHx}S鴀eP!Imog.S.衋-5aYi"Q#'Ȫ2q<3!tSN/&9xd&*el+ toINM&DZO8-}aʛ~(fw9|O2Ws]0fJHΝOF¨d(\@w[;+ y5ܩg|Ly([r;Tfhy3=mcw &&0eTJ8cI6v* i T4ԱU&N}~fUj-J6tsb32Xgo^tˈzw yJ TH`(nS 2ѠpJkЬqݍz di"@ZQ:¦sٶ׿U ~TjTd%B}iHZZC(Gd"(h-q_3W)@)F/5A~̜tfhh= K3.E0\Xh<6H uGYf3i' |Qo`X..u6FV_DHT/u0WEݚ8xB"&E."tQF3u } _a^_}}OdRz[VΈt>J7|w(AŞlŐ9#f_*k\]^s*V~r޹bN*b&7OKTs)qoֿSTT};٧ i/y`l6-KiN?޿>nwhB̈\~^DJPxr\> f<IXg)zgI;SfڨD(%|'`Lc&AUҤ fܪkcTPpEk põ|3]Ծm*xFȃѯ_[@0RfVĨh})CЉLhh`[cSQU+(\8A| ݙ)yI(C_aJXt e FG҄1p9*~eOA]U9yܴ(A#`h)?<*UFXgzQ (<EŞUmQZ*D׀ %B}n&KX" *ʥ0LAa@Œ~79~5CNwcg tUƗQu]?d$WMY5Fa(w& 0&ɉхy>Ź/7XnCa(76xt:(oubWxHjt*2{e`XY]TMz2=gE l=^t&"O  ^S BW ~+j9)kakDb&c՜x IV_ĦpX: orNNޏ4vv8gA7SdY 3XW_G?e**V^3߃fX<ё2A#y3i :mg`cQ!.4x?|bDXhmIfNp2uQG.w8 g/-.EE#7%Z 9򼎋B9,<;݌K7=|j<7P㊛/^"TǛP ~ Q0s:̟VT (T[wx)CяQ eє 6t;Z*T|QΤIw\bRTeDQظZ|Tc3|~:zTWohpOpLgKc*g&$0VD‡Gh6id 1tWMA8F:^ҏ]dd:Op[)CQ4vAq  &qgh xi@KeLTou_Ñ%Q%(RX0K#l'¥nG}=Uly0)|6R<46E[z"uzk\kʋ7;?Weж) ]hEJ=wA \𓬻G?2 ~_eyvb(j2@\br(x)oVS9sG%} ݸe=mz߁Sץy<9~4))[yqC2ƹTsYΧc…MAk`MbAFykIɨ=}@%*U ƪ xe{J)4Іe_0PB{XI V/6<ЭӚ>w\p4,|LX2PFJtP u䧃SMIOK| |j06Р^PkEA1_clv= j (p V&HzK9Tfz-R87奮G?iEhA23bob`J,?P-z-H UTءUVh,,S8Oxv v2} /lw@v0dq-f&ikebĝ0| RUgX[~#4֦cii T5+DaMvscPdm 1~0Ž~K[409 Z(:m&Kl`Ӊ+CIZg2vdi0&P>3:=}FZڥ{&ߟ3S,?\Vm'T6V4t%OB4o!G?00Vu(4j^Oh^?Ş)ʧ96 &3y{Iі0$&ؖ^Tk֌#6t蜡X\Jw:K*|_Bv]fd Fk sx8@4z&M}7ξe/.iĖT Jk߆/q : ,-ig2}'H}RPE!530Mh (@w.O`:ν{1\-4"kf vp`x #z +`s8*=|mS (>%娑a!r W26Cwkn@` lA"8 ƶ] n\wrdr/J B=2 4eFi;Љ:>4|:B\a3`_؍<Ҁ;0Z<"(© *C42:teWU [e6 c6l'*2Z@` BXa}%LkYjl\ڑĉ[I# Ek F􃨙jY湇^)ċVyd.dG*U?fhr,sBbUZYe(op.V*c\;\A"ƿ@g~;\L#Q)׮ˬ]tf&D-AÙ2.g)G=XV,L+ Nŏy'3ɓX[6u n??>"S%= Z}xIإ٭8W5n} o\Gà^, jPkSDR`axضόS: (~+E&[Ql^a;>"2(e-MLa!hS;HIa]ChZeDA4nRšQl _ t]J7 @|JnUj'xnu?Z.-1Cǘ<AF}6c.8P2@02̔R=JUٛyk_^ZRӆ=n5DFfRK*5~0CC>֖YH |"E4 pm6ٻ3VxAvjӽۋ"g\YL߆08\z3ޟ$sxs\qn˧@(ĝڂSD1ʺZGDxSN,˅;2@`) UHE>lW;#a!̨ߧ3)_ G" bJ 9ѓlȆHp+` 5Rkni  "Eo O]fe~zadɳ_fZYP(J!<5{!$}4ۀX¢qMX,l.f5߾K[,xL3ht 0t@ZT_qavi>"=;Uh>VA=X2!yw gk2ԏ{jb3SuL̩Vs[I)*ZFAYl嬴 ZXI2Z߇vo6 ?wHYb B [pH\ EiƕĿ_yO%OY80n> 3zluU7:Nol]l1JYBX#:q߲$ ^P$et>f[P6Z6^ͱ^:3g8}& R7AdWYۡԙ%bUW 4gyO2©DTS;yb?cŨ.&~5 VH cYN IDAT T2TC)CUKb] Q]?P?1Ҋ ((E^M?ϱDxlDdE6UD33O~iH.FR^,+Ym23o UՐE zJfyp _S?C)GePLhekLθ"} ե`08ʙyP-Pŀ{B0w.l1\idI(rN#\}TUjڎ.g (43h@@A{`tmWfUZ2Cx )lxx-qY q=X/PVPC Z 4*U t3f>Wrh+9V|gg89'Ϗ ?JGKS۲,,uxa~z1,%eFO7WQV)u_bC?+opڥ"iMv V~@Qf$OS[4=GaK'rs "Q6(1`XfGe=d/՚C&+iģO{ >-C%!yK7(Ē&@XBa-GZ3L@cN,Qm] T_UCH!Nۊfw\p31YbY٢TF%hOP,e oDX[i긾 jhJŠ`SZU],<ϒݷ|R|*&uaq ̹Q1h;T Q&]6..?J<8k# ƸE$.]ZRuo* |k0nVa0U,|3Vb/bQHg{c[(k{\[H qF"ikҊm}A,0'҄mu\8+kOwq;ߤY9%HwJ }DAkv[~>C/b+;2.L[8MW m݂n ;4VjW ?R1cCӣ?W_ԣxTFҩ6Hi1S&Mծy/M/[˞'۽;. ҄u[<+Q1k8GiAeZAk&He[g,ՓÏb*s¹: (Cy+3 c Q+_M>e+ic PN Dkl(7 qbfAx8'`JJkHf~U˩ѕn ijbJ;xL4{,6U\L1= BΤa5x槃0&\081q~^&sߋ~`8|DbW`4C$~{cbd4Z`4{Ͳ:$GOR^*h'(hGz=-"{(WR|w6]}2 ӺAbtHXbAD"hUX25@r6ڥ!^V޸w-=l+ v>^nڏ^Fg)vF [XJkP$0PA] W|3:EOkATx<:_Vڥ/aR;[Umܫ;+Kq=UZr4'F ˒|H՝:nQ>h m#]VEfBp_Fo1󤾴ym| s 5[ \APA69#"N[JWk-a)T(/sEH} }a,5a#O0~z#n$1NZWB?dw`+$,+๔ ͦ> ApU 0mr=Tv=(.n]-HqiyK`{\ Li,Xed$K+3s7=bl’w.x.xD }m|&\ٓ&?\ "&ꉹ,'p] s$H A廊/\c*ɕ1^IU347b;[ʤ @-ܶD{/>! a"=q"Ovͳuzo (&fŊw/X0n1~R Rh?r?7Ai JshL=Ba?0!{mfꆄj6b5x ٿgmn,d/8k¸c hYX -5SX61en&R!cN8%ZPҬX8GԪb{PfÛXP d Mf"2krp&3I+czr(6@fYVul^h ̜֡qG9U D%``#4.Nk1& Cu(%N x(݊oe} þ>.疛4 wW4PV^oƜd5СSm4T*V$hӔ?<~`:[&/);J{?K3PK bzZ =BqLKm݊mYb^K6UgδkPt*Tn S!}7f`Tt5;֝ӝ8D%҈d_FFG DX p%“K=*wkưOoE'۞5k|Ǚ56%~|HwNZIg0FeIqζӿnMmS@{vf%iڏ`ىd8h`p;9V?{"Pg nV .\A/0d ~v/4K9zd ٗMc!VylDp"kUs݈1wE5wcx`X4iUa { Q)*E}\vԝH)gͺ jBSjw|<\a\*;ר(|LW s C8BBB-${fgp͵ (F4h̬\fvs>=Va=B8l,GkGk! Ϡe <%HZVT&5xWmU{(+)՟rd|,oDKVt}l)Xw:ēHzZWdrp)Q#OtԻriP w!+]FY⧹Dwu}W~w?SnbQYdv"| 1`&Vf/}`q6uΥ x1+Ai,vMk>^;i3'0CmWtki~|7˸8Vm`)DXQTλAiI}XY/`ΡBmWު2p(Z\d ~6rǿA"ւE8RΤ9ocwq,B=K18QNLedMqV"՘37pu",YJ~L/#_(qeq8UӓAgS 0g[_ê[[)D|9T7z'U\I{.& [8TDuJ,3-طvid."H@bzi$،튓3d7hz29tu09dsʩcH֞^U:!ZR`=WmĒ/daT9,:Ord t Gh )9`[82=- i#!IԬ~ZJMzrz-M Mv='kލIyt}F=wq}vBDa5df&{yp9yDSu+dEyk^iO*y)t8j=ٖ n-KU!9:<Ҥ^({i2n N{nt#+?zGtwؼT+r ZZ &N}_QQy/gz8Ie.; S3+x?[`t IpFv?(bU2wOk6x0|q4C;-V^N!D5*>~P&,x071n! R*nۆqZCiX9YiPXG\A foQ1ɹoĩx*gKT4s' NȄE~4hysmɡ'(ÈcglmA{_ 㻀~bΡ0&"ku(aQ< ׳d]l ZCP܈tvgu鎡ItmVȃ|ЂNxe1t%G~>ˊ-ލ–D{uλ!/*PgjzXmГn2߽,P1MBXG?n'Z]Ȃr,N#h)E\vPqBu tlFciKjJct\<&%qfljsW? >X%N&l&=Y8BuJ¶0A$2XJ,8cB~2qk0Vx5%(BYUv2roegۍWbj3\$!ԟvTF#0К&2831?mK@\d{8Ӽ'^⍔`l"kfNVSDb(,)LU|(We}Aa8DiJVnq)yĖI+Ra.7P:^&gh1_@9j7˪uX dq--h޼O!_W~C+05f)|&;ﵓ)O!d<鋅 z%:ǧnaz\4 !o_7mbbk8z`3HwPjU|H)\(y0YugEsMm,BT ,ӕ3rZ^ Y,a3@5zZf+.BFGQ/k+p2uB*!iޡ>&'sRwg3QO;ٽ@ ʳb-u+\1DW`:{.~|)JعG!Td8k\v=j"1yjJ px۽Mr3][@Qw\zP 3p1)ܻLc n'ML, Aȕ X҉&'>v&,LR|ͲXpKxǺע(!W|~1*'DJVp|Vc&L$Q2n@!&e0}NETL!c}ll͓Yņjq3@2~(_a]8SX")*(MST(a ].s0붭4혥f޿#NsS_D jǦv/p} Ɨ`J[04},fZ]{4L6=d5"XÚ5̎s ۴d蘛D!U~Sc]:IRO^q~{,9r&o(7}B]OvW(ZJOJƸ Фd% `DkR+&GmI%XK&ΐ\Cef"YgEi|-˔de(E-l;h)à483U\+iMerLﮄC$MQ S8.‡H7 ;_]i`tCwH[R+z48땜r .gJU8M w' X 8O̪lۚ20 I&b5x+,cϯը8,^B>YFa6-*3}*__EK_>{\2WG3,N^u[y]#.OȳH;{~%֮~WY\ BpP؍+t߸U(C*M&35(A.n(w5 A6G6G_'`#];Rh&=؛d6zL%d^d n3SuCGJBp`ըV*1_v'i &v|(Ыb$Evb{8-Mc U+YEP1V,kxn|ʳTb.-S~ Z[h7xr%~Em vhسX wVdaj U'S#f!QpJbj"J&f.OGg% 2i6Qin: cS41}|;g S)dTTO9KX+&bXP Z* L/)ЗjR:9ViȷLgDTt xk|]`)j]h)*50 ''k4=klǸO<2ǿU/\Ą}Osۿ("bPX>0yuEua&nUD~#lY\ ȫ?-Tp~kBFR,`H* 8+B~;!F lqY{ёWڨ1oh'23f.`GZH5oc5KN"7PJ7\ЊOvc$I5#Ac1*PtKhLJWO5=haۼ䇑bFsSanJ|5 -NN[r}?٫j}0ciy Q;Arݥ{KA t Co3vbV岘m4B*t/Mp 'R+3~4UiMy*xՑ} OXE-1VƇ2G9ta֯e6 U@F";WP-j ZƎ&*oA%,-L?`n.<"vtAt:PYvޘH_r05NμP)L'.2௓ _;o4?I̳;SP1;ȼMA [!p˃41$VSz3>ɁoM$\%&o(naXR&R'Qԟ7 z n=AB[^;Mn8ͽ:$q">MO)|I{ \Ída> ᣚ0aN9lgSb( ye74ssc 6-ı1E:|as^ugd"ݦN tU\ۈs(e .:ȜZ&H;P9h&E70aٜZ:d+_F.XN<O3y84{n2gW0Dr1+"\^3xn[" Ľ{']&6L`:R귍Kf\UkYK_@(#~LqB1jL-ſ`Ȗ̱,]1ASAQ(ӉC'22Ɣ|/OB܁ k^ƽw21?G 7a^ZQ> |EEz#{)$Bp|$.[ C6 x źҷa'?v;Ӓ}+1DZ\aczH"i9b4)0xG.J&&sgޗ"3#c |M0|lsq0t$F%Ճq/ccl38}/)B^Ȇ5ZTd Z` 4ME@$Qe2|x&RP7F~Q/HÐ"{1~u=q >s #lbHQjZH, )͘ssb^J]wDka=y\@0cX,2%T8~3♠\UE0OY*U27K_+p_xԇ%HA="spb5HȀab3NX2;֓Sf ƍ7?]ڊ}b%it(fPargBJh}-kx&VR$~mkælʅWQ.Q)qpw{lIaq-zyNDͽHc:f5%b9 MW?gA.X?yڏ}v?”dR ?[t|+6Je}7bwsKmd7)efRUbn4,;Lv܅PoP(ѕFBs ؃T &xe#8ebTSL %1KFSl ;v9E K3N{`Ȑ#[u' .7`ۨYE2R+E2Y-9Aa93WAsVcUMMaWpi42*- tSI.SǴ@ֳH\Jhp+<$%[hV /g.^r56rWh4㲯G 6د CC\|ON5@mh eLvЮ(i  5sfYiumA{zQ~s\fFnHIܯ+@[XMږ.w8t^:( ս {D|>g2ͦ/ZAX6w}aǟ jvah)id#j*-`̃?ado|'o^йz+`׃Kjx~^ >pS'ߦ8 tBi$M#T(A<7,r{kOZ,SRUؽl|!SjfZ5Zm۩^#2(7H&v2ET^ʷڌD0x3Ξ{ d߉ݣ[ѣvn=ti %E^XX j(ܛ#[3BB3/TLy2ĶHu %3d37|!vl&2-fxMj 0?R1g\S(ڗz&fߺifҌg~Z _C/!2W)jݡ'į~6 |}$+Hf->Ϳ}O +H>ӐH$8 y#)0ZXMy= kR@`Ai=,?J{p;(> M%"Uԫ4z:یqZdf' 'W<c##w[j.E U3a{2!mLM0eZ dc&^~v//7зЅQV4b)od#*㇙纝$ ֚b|Y2C8ņ's[hfQ)7IN:[O=RgGU(A6o-\`zc2Jl7sz>r4]LҎ +ë71罟zTv08%][#d&SdSlqv fQFaa42$Pxɓ0xr#ͦLe$w l=oc̎d* C.;CeՊaOFU,僧sA'psS4'3Aǘ=:v-e2q ^$+־MG9ξVXDSlғҫQfʪ nфsM)w(ĪW_^cl=S$cS؊:;HhٻfH#%8WaW`. pN}*= nVSR"l|34HHӦ M/V "AW' M'lOK/8nB#b7间7&1SЭqpn.. ?W ACeI̙.{9> xWoǂ=k6q&x9BQAQHI AհSm08G%m-RHIB }ذ7!OL;3 NCs⶝b%=RmjnU#P3~ Yfu .P://]l:+_mYmwxh1R6 vY)SƫUr񷀞"'000@y54.)L\"VaT%Fl.: O²ڱ|AMhf-b%x zBK3? E Y@3McyRrğdL85$Nj*K".jm"nI.$}IèYd/_C[dˈe*&0 BOl_!% @@ |%*0CQIO<ʡTuV) >ň+b~\ZP%+Wrg9[KaH6v]z7|NI'_s*Ma[1 VG6hT4@KhIYs",ΡsnAԇ#1=:KUIlV=@z=[a}w!Dp%c~O375'RmAڧT,73;kD̈́mCVxa&u5B-lXM|2vքz fm* iN8HZo/-돋Uzh$a#0a<Ɔqu|(:iEbX"mCR:7<\kO>MEV^el9-[q`'nH5E9*r",XŢv,39ڍ}z1X4LWV$L u3Nz r/{p~4K:zig61aOiX4eMk-ܽx^b[GiQâKv!,䀚9+dքL]>>+cn⩻DV ^{N>M/b32=ۢh.UhTYF1"Gh<2ԛ'#hU*6x:Evbkce7Q߅';qUdEŤarUe À^K1Zbʔ, EX|zȚ$=!ťjP11 .{K=k̐% d \6g aav.^,\ndP^[`H|E|bi&qFQ-9|J F L×8 !Cʏx*:r"5m K ӂ:?dfSvDo6pip冩Qw68쾸 m'鶰hŐٵ:d:-Fil·`p֊}ލ͋n?T ؙ{8`1rP,d LgHOmSy8fP˳vFg`;'l0n0 ) чsR؈ BѢP,ḆO6 } yZ0= zz=EV鏣+M%aDQ9ƎbNy k.jzX'Y$JL ,H=W&)f0~f)4:,+G*/W0{uk7Z+bڷRI5]~`nO<僌G_^y;̄Qn ШRg?jm2I% S|oh4yK8=M]|h]LmҨ0+gcY0YNʇge,s6ef"7JҦKSuхmeP[~w(HCԶ펹ɩt<-o9Z;Kw:[eY{ȿkTϊqEN)2v{;;xtԔc}ৌq=~EB$ #NSHOR"|MB(טJ5!t8,1ׄs1m''* **0_Sq;J2 .#vBc">X-SHrF듬{!}}_Bk>5,[h'+ BMXtSZMY6" wEСp:3žY~<79S,Bwr˟ϦM,%M^g}!v(M&C'˖&tDz`z;SrFs2 wjiZЊUբ%&NO)9@҂Bܪo'_.:2ѣ AN6owegONzB E^׶6,_w׶[YWW׵UXQTH'@Hש<<}fN\/erML{"0{8at(цp}}E4(3d%-x*Ճˊv<2fYMrqѷtT3)%xܒ~ Z(˲oRJ.@Iu$$TU$_ѬT;Yw +W+֩h$Z4 3#O,4 ωXwƱe߉r )V̩g%_!kDO*{oc|VLgG!K֫\ܡZ5Q\T%ne|ƛ"sPI߂H1ࢠ%" Z /Ԅ^l ?Zxgi{{1+)o8)Mt\2'^Z!ȤI$8?噯{48eVmbHf!]jbӷDSu:`ۥjuI 2=E΢(ɫI4-cI؈&U=QBMϴ]s)(h$ԇZ+$(޺>\l"껇]by6Ϻl}ߝ>AY*X&T<{˧e"a{D* ApfNY8[} c܇'||wa-:(E+aZN0=<Ҩ: .o.e v!~_\CO ruL؈l =PjPG=ia"7P _v"<?pggu|8'&Hk^u͋5>-{#I.yuͺ W rqbNf}RR{j4tOgJ◿n {=l76ނrz܁w̘Y+Ws=rγy;($,j0q_ѿD0qGYJɇZXGˡA3Hu6I%M: ݗſ#2ONJlfPU4:ȢRstfstK_v VIX (X a <Ȍq:V='M}uk[*ɘ{|B&K:J|yMA<٩>vS\iqR'/b]D5ەڴ /`Kx7ܗޙ'Ok#,J5}i,Z6w36pWU`B ok]2Ylx>>EѷsR-٘(Oؘ)Ĥ֮g?f2(ŏQa Q+[\lۥ^DŽ!F':>N}u`YҥG6ANN }ߞH%8&z7d?)z=|ULhX`aT_mPsN۫:K5A"EM۷K^FV VroENհVAA+:( 7HˢCv&*lN`|"D!Z95tx5s3h,~gxH@ٻ=e8)zjQoְa9P/1{$oڜVuJZ# ҂?>Ϻ!TfNW8?鱕}`&hfIB'܁49̏JGW-]=QF$B^o#Tgfok>4=ZG`Nl?B;UkVZ)D:ٵP ͜t ]HfU+6̖Z0]{ķZb3Gׄ&j9ooq8f x\! >GţSrY$].%o39awN# F}4tDeq|OɫQFl]M pj~KŴpub\@HatM*L?>.z~CՂ[đ-!O+|ϟ%L,s| C:a8v0T~p^]ElSY'g2hN#Y4m7S,;[@B1/ï^͠}0zi858d)8{= JVFJ} R#Wbi:O3m<6Wa1ICtK4C%N5k,neV!R)қtM̲X|w}Ю+bmI; p,μ'6D]y6݁($ĆZȸM m>:[oe.C4AXUj4$Te4&ILN05Ÿ́tJ) MgccyK̆LQN\Bk.ߢ4˩g?WBOg )f"{0'RAXzW&x)YJSl'3I4FwaPⵖlZL1^po Y:ERʶs~k4/ORN|nP駧Uk95ʳlo70>'C7҂TKNq`PfgQ!`ʓlt4*K䃜X+@~Sh;+:Wg-3g&f(/evꤟ[Y%!\%Ĝj]ۮ@dq\_̝V ԉ\85* ^CK9h.E#ԆyʬG%|_>9(cLLQ=2KSU鰢/͆Uw&b+FJDƎT?[B6#+BIgm;}}5Tb;$gO+io+8:SE*~lJ<Л;r8լo5 0*T*avjRO\:ط rzKJ}w{8ܺgv'LïL5??m㪈9$c׈ /J47}rsdX?jNXO:ӆM+gvԫLĩsAiI\x7/ny'A*< njԻ?O~Ms: 2y[ ;IsQ|Ch[.{Tc)Z1u]ēXگ5 |Twww\>ll~ ]gӧƹg iX%~ ŪN`؃Yòeh"V&zY~K[R$vPX\CQ-s`g̤,e g>dFeX @z9P&nn!:gO#f6㺑)X\_ 2PcMѬ7<]CQ<5or?e5 Nv&c;Ǔ_HCX1Sن-ͽo p"Ew]BoH5,L0})cZуMdret0MX ^.l[>q%^/`C|b]nԚ9ڒb&I#Q/lq=(7Jvj@7) ьY`;W-ι~{OG,4jj <ż~FkklCeK0ӆOY<4H)z̄eb@\= l-5m" (13Ek5}y󢙟tHu`oϽrd}^Jo-JdC j+6Ɖ3)v&D Sw4)V%Ϛ[ILl壯"za`٬._ =UT F~px.+q*z J؃8cJsٽ4܄ W' \476h޿XU.+?X(4צV=õϦtO#2Vȡ9y7݂L!Ғ4h֣q0r6Ȕ(17o[ ū@bwa-&?.ȮDik"; !LH +FQ"g`潊)3Ât/H2ɮG^aRiէ5''_;v/`xIC%"A~>/mWZ6Y34$B$㌱s3S|Xãv3uƨc֩W[ .`jI!-]5eR>q^xS@Ol4ޖ/_~w>!n4-2o7o;n|_xۙ^^.N8M k+k-CikI;N 1P4U,Ͽ"^*j@#~)~Τŧ*Rc[`~*-9aH/Yk~"] !c {SX@'(!wr̃h`BB޴.mBKu A5ӼjLKj9j;XJUR î ˰w,Hм\Ḣο&5d1-_SX,iaQނ1*q]zELvE Wf4*¨sKYvoqM{Gj&vmBL'r4q cil3: )xUu}x3]f[/׳~oB)Ϳ%oZ1ҩ(V'O2S28?Zb?S  ;s Y)n0=Պ+ѵhTXEWso; .' o9)k Sq IDAT^rkM-%Z7n=hwxu'֐>ۺu뮼(4*oC_r%o;x{CImdJryFhAY^=$71?݈nEZ>zu =D*LHGOͱ Ǎ8#O)f|m_amptObSbe;Ԅs%R/J3hrI dWѹil,fd0|,uhWnE;TsTs_ >߁܁:nVz/:q+i)5ޝhyB2RFc${:R?v_cβ#n5$NJPF E^QXDKAF)jDy0jHź O*4=vʽnM&{̤8y ܻѷ1]-ɭb/%.tPbl\V#UMPoa5۶v2`zU,Ç`Ƈ̨F-Rn`#K,Zʕ^FHݜ@ AĂwLut=:Stnsmo|,eGœ},霾ObUgd26l#2Rj`i; 2|8c!=¾ _9JWđ=k͂ݐ։*u6v?酸et0_l6Ц,VJ#u |L Gn'㮟0p ~?y3#jZ9P/Cvra!]Hy .TG<ר@ ]Îm$[:sש ;X=<\[oJ +ljSў>DU—^ʞA~_vmpg*%T~}> _}G[}XAXk4"ᮋZmpb ¬a;b6ZR^kÏSʫ0 WfYz J"?; pDVp[ak>H0wf4ӥ)~gQ) E'd嵥*{wS"@*|WaW\v`nҦwpI Q SB.M,g,(AZgƬJ: {W>e+R8^R=>Ƽ($5䎎c#)v/oo|ϼb#n'?3פ茿Lڑ/ɹ@R%D!O:OyW` 7MyOw7z+EA.,Pad'? {W2|}JK+bH΀FoN"kto缵 jJBH(fX6-Qbzlm:V )$%Rdׁ[K okØ~mSrh+oCU"(`e~7:=9d1 QjWqd0庤p8(1UMizU-%<, g%pFA˲R1X*dKtq2Z_+%y: mxX;pe&eSŮ~"z@2gX&YOSZtݻdZkaZl޽)gxb{'98~@'i@)iP/E=UMu).;|`ZQWOcO`zϿ]֞[}mZm4BQKU/:?L궦iEiM2ij|jm9SSBA{û;VFOS3l@>O ܸqX45_SҼc^`agN3`걤t(Oa4|+4yWGc^]?T z; ΖoGA}ؽy֪T&4ij~;Z7 Nܩh]9@(4*%nοtƾ[wWa1 vL2Gƺ?ZX,MP^&H$6+v'xr`?:+cvDK:MeTA  Y^!&쾤^n L(@\2iui{(Gc0ճHe{oطi-FaT2S03L+1> V#cbZ~.bq«V҉%ABt$#33 qA+[DD! :Y1u@}p͐=cNi.&L&H&H/c>:`gxĭ}CiLnnV pYc zوh;S.e/R"2:֮J¨i (%7b;#S@z%eGeOS- DDlF,Z}Zkl˄@f4T+lyEuDvwd4N_M1IJ)i}Zx06,!޷+EsДEB/V +o!+I!E2#b)NKpbP9{WD 4)tO:1JQٓ]r܌Qiӻm]GmШ5ӔJ)=T'jj:{ `Ei~#рrXj 1J-d84%*ذp:V nus}. v۶m;ӎ@ӄǜj5qiXz__."}ooo&y@J,L羈oi+9᪨죠g.F bsDdi逨\ѦO:߅2숦|Hkթh"^*MQ2Qf`0Y|Ư?#n,؏:Z{&)"ȆS;KJT'/<8oN@`P߃A'V&UˮzZE1 &X^Lgt[v̙DB:8.f!J5 =9 O.oNAyLG/ ""= H-%`W8Up$1j V-߁2YWM',bvnj$&ȵ6ۮ[ZjM PM@ :GUX{xئS-ARfYnFV,َCY#RsPd~f-6R& zC`J 4;rȱ[՞LJ Ÿ߈m 9a1Dz;900ZoԒkc/8 Fp߭l0585vSXTJ7OϷ V ;gN9}F(e89]s\7\e'Ė=i$z]T5+\RB (DD> v J:ߵ jsA>t%}$"Kn-Z@QV: RYrdQRD߮Qazd1?rbӨ6~ro+!i4}-fƩ".NYz{ɮ28#eM'Zg褺1JAz0Fj6nl"wj{SqAY {zMk坦+,-( GO(/61@:}ggӔ6Q;LD5JVdd۳N\G&l\P.<"oK)f|0S*G'k:3׾I9 'mMj2Q.DZm57~|ؒJޅѯu@*v>0)YA_S$AoW:VpzobbJ$d3-]Cc*"-GÎ>G Ě/`pHDQjne;u`rJC뛼&dqpIwɅ{n*xjXӋN^3~Ço͏]6RL鄷imA۲?e~b/˭1iOG =^V 9B\{9>|㵧)W0v8  N}Q*1C$0=3.Sxwm0G0A=i6K>>@}:ZO]Vy1r8t?Ef>H{6\B dom,tFY@lGBw6D}X]cผ%6i%6d+׮w(r҃~bP$TbOwf\ʉMOX%39cEj`Q-1&1Jza@<`lI컝Cw񔫹=)F5j<+z::(OS~ReҤ >CITfl [ Voa_ƈH5:[۴ޟjTG45i`Dl60J4I>)Z[Iy Xm$t8 Tw};Gx<'W𜿞v|cֶnhe! !*E׺f׬%\aq4כvB}n뗶EbV5˯{EK ܿm}n=X* z:6M6*#ens/G?n%LLSѣIo k^"65w^7EA ޼V z 3arrNa :/#DXcg>TaFK)-xMS& %H ) MjĂk8Uʄ\=CIkK-%c. 1IؐʔSt=);c},N씯%+;a܄iǸq`ZmRa#FaqDw I_8X+MNg~BۿVdi -mG;0$QWtD'Ŕw$:vǹp5&Q8ůf燰eץa 2|"Kz~ܘj#v23kScj Iw])/Ihzʥa#)hh!L=JA5ROT D*$W#L;~ ! Mh7һ>ǜOӿ NXG6MHnH,%iΙшV%5jqsg;R-!?fp,?Kd9L0җ8qzժն|tu޲گ=.Ao4`DT8 ?WFQbFfK,5mЛQ\ݷʋV%۸l%Cby4E#b1_0-V]'&LQZF'D Y|Ud/o\.Qa幼c9%Qh'+TbjWs*djԧ^G Ŕebw@%O'{AơC!ڍm(2P/11CMQX;=M~ :;|of4-yC"c-,1AN(xv9. ߘ]=d'\\utg!\CtJLÕQr#`뭯 ~3V%ZEc8ZaЛNqͻڻ/dLMgόVbIJE&PBγ;D)t+,mD e=Uuw+v^1ZZKvV 5PnZMcTG(j$Z;b--~m'eb^ڦՀV\NBvlp#ݖs"tܺtͭgk_oK)˒ۊs}MrfbO 9[OV}YzfJfjߊ5X+8n[r7IJT`y{ˎjenl Kj`ÂyߖK@mF7nj=p;/[v-p\2}:3=5,FC*fԗ\nM8Dl`MoHD4B]GO4H+pihiePXMq5fv8h+ ߈ؕhy C+rl6¨qId'ju/ z/?IqTf0kOpiFoy+ 2ȧޅH_~0 "s_= Lr64)Цk[("ΉM @]=˒i'09P 6sa]V#t=Ծ5INA&I+:2u!f .׾1o~69߱u&''˚TV~RTG R6mjm$xTB|LB IDAT.aA""d]&)1 kn>X~wgN/ײxгwry5QS1DR8u]u.ZOb,VGR\0ն՛JN>S8߃1p (a(&ʍJfLIK0*'oEq9\^\>ȩ͵>DIC2!cr׉S) 8Q^* |ИF MzR1-EOBPky9[t1]I ;lS9uHjڴo=丒f9ѹ=hYAK?+ό8LR!Nڥ==RXh4ڎQ4'|m[~iG=ܨ'V嵭1'A}뺏%SSSS7Mӏodm*yp|;yvHY Tg*r5P7$ڱ->%+*zw_zѢz3[\ѽ$2ޕl4S\n~a | A6_ .z7DhԱP2!S\zH|E 2}Yj# U(a8<6 *3 7И  )WZ|!4n yh$cΥ |4 0=*`n꘶Uesp^){0U qqmz,`ֺ$M'R-9B'3 &xU fHYZ6 1&ub(gډWx`]'"]͉2>5E&M=#䵼m<lώlvUh xijxٺCX)<2VЖJ'`v+4M7ocI|^ 9YԪU6mŏJ)VƸ F87X2d˴ Q%=pRN4 -^puFh,աR/Q-q{\32kl%W/Mo8 LNN=jCMQVm}B4%džȚ-[vl _tuݣSp4iZWWWS2J֭[|n[~}[ᶳr!DWg'^ɑ;x!2^ocD"<[SA?/T9p&xkN\3&熍=Y„)&ٰ{=uHLt^yFfrriEk.g",Fk_oҢ1Amrهa eQh 3pEK Ё-e:p,*3ަII&aշ%ۃJǤ%!e2"( RѨQ0"e[Q֋.}7;D3Ylu+7xWsՎ2ӱ&jNmi7b=G 2YX1S[ ֓O9l|坁WpG9*2a z2ҥ۷ooOMM=ƥR{\V|>ԯ]r{'牵Lӯyܙϴڶɷi333p1LҴuO`|ޙIQ_ަgcfXm`ADQbb 15c/՘D5&d7!AYa٧ٚf癇g鮩nih* |p_t ̛?$.L1|XkL t+( i.!; by[ ")CirHj.L)@c E݊xH>˰ir.'{SZY'~=عŨyу]a|13UO fx~i*X].>sqPiU3,ݲ*[?ӳ@JpZ+~g'_fܗcI/oNsx@uvD !V+P;#1Ê\s쓍b‚YhgzY3H16EPZkPBӧOC]2UUx< NY$g(8WkU#4zlhK$~? PDdYwS"C=4`F~R؝#qqPU*}Fobby N/H؈tݦQ)Ӱg\ aZ`4RxGVG!؁^"?8$.0Tz;ӑsҍ2I4-o.Uy+@(D\6TO*fngKj/=N#2n)rK]$MHɹKjU (dѽ7Iv<r*cjRM5n`FW_Khx 5m]͵Oѿ5nġ(4:Hm}.# :ɭBU sD̈́Exq4M|hjc39hD!^]?WE/JGqɓ5M8ΒLN&z a.x<Ov{aIksx^Az{{$:*|򲲲;v#$ݠ$I8p7>2==^pާpާ`&l\vh:;xt,cX*o1PMC>33I @򪗅ʘf ]鲗rP8Ê!눴aΕ= ;G*sP]D8c=U|[00qL ŠQ H/Bݹ]k#aD?d2gܣd:XRq<}x+q-X nVLTT k\Am*6S8O\9= 5ܪnVNulA\δ(֒IAC3,-ǣz>:_+STD$Tg W'e)3]Smmx6 ؚa[ĘS0} ߎ.zǏߵk]d_Q1cપs=WUU=_s'QZ_^^>\2 D4ы֭%`42b%`ơPwTz̾ =m2xBET@W޻0./$5/l3ubq@n,Oh>2.={dծ#];r#_ȏ/Hv()շyč )jMsKF52 ^%(|(2iΔL.rQ8D[O_/q-*4s̭[3D %\dYeyzK.5jUU5Mn0IliŲV>)S|HϾXA+.ѣG!EђG*lLdԓۇo;U"n^8ЊmZlZ=8){y1~ Bwѐ+z*OCүTfG//U_->_JdT4dc=,1"&f@o/d7 ]VʨdI|#R|v",?)6SU +C4\$񈄐hJBcм8ͱ$n F]EfwkYɚGmE;c-@ 瓙Vrvj^ISshiY1c?B\P:0B{gchmʔ)``T_=6NzusYHkyM> I`744 v%|iii9=c wLïtJ0q"DѲ ױ%7j2BNˎ8c_ R]C8_k]!˺g@{[i86V8/ q5w5䀵Oc)=6̬ċe#crWg @rȺ2*D/kUq]!{!8@ԥ]vi@0T:jޢNx:>ickw0tĻ:+"V;U?"Ap gasQ?wj 8*Gp&'j4VU1-s0^^MQ@YM6G?w3k֬X,6P'Šf xBiii 7߅ Z]Ҟ|ɫ}tf'(4+4`.EU-Oy~+X 9B~b`Ԝ?4 -%|Z|Z.y +^Dg+)$pkxMhB_7 z)Д\%cNv5Uɖu$1͗~ك? ?OB.e?x77<|@EJ-_! ߫̇fx":^'l|WZO[GR._,{!w&,̨'ʞpWtS߲\7wBcx<hɣØ3W݄H7ahmFk ùNqXefdPaRʍf@RÀZe23=#8`$-Z 7xt@wo EoIpR ב)&3Bz(1}NN*aYhN _E`4{sӈ9 F s}<.]ZYDX]]h 9hL,:(NOwI@e1SĢLLbWVV.Xq1󾬬L<^UU5Tvtt+eY%/EPe`.xVÛ[~&vRb'#G!Km__{;nYm*f/>`K*<)_5o#!bI|axZfIgh}njG;dlz{+呪qxD( uZlٸ⌹g7J+:r|j:;iD6?ί>_1r1<5Go}k0u'i`4ۋqSuVxf#` N }OkAƾ',B>vgsK/5уwv#0f)7Sn4Ҹlj7{;:H\xtxkm^\Rv`V#sYg\T,De_@uO[trrc5? 73Zro4|hmM4iϴڹneg0nZr‹.hCZ)#-ZP{24`^7#F U5y////1w8LN!ԃW%cRMcJ4NsZқ  zeCF%cH>X^xv4cA#Ι2 m-hyH"_q>$$􆍡|3xLfw( IDAT2+Č|&| Hv*lkg*Qc^mi ]QیͲZ9k!u9Ǹ< VZ߅y] B|ع8?L9|Q,*b̗t>z^ui@'mm:F*%*B"Ƶ.k#UҰne3$ixڄt,T*5$LMMSӴ~[塺IsW__yc*1v(26ϣmX:/ ʻ!2X1'򅶬 g-k9h}Mw|6C Wo ΡI|)jj;?k{On4ԩ K2?R?k*ulT +16)ٯر\*0#ˀ1oIM N!K4  =%ˉIY`ۀjKb|Fi!D^5N9 <E\P8KJJ,<2XRPZDeanSs@Nzm/jm:~G3uΡnJEņ3=P`YY~Xw %YWC8c}5e4l*7bȼIb7 Hr%em;_v 3&Zf"{=!" eYtc?`Pb0GqO_Ʋ-)^u]־φ:^oSf^CAfXGg|OFwPu9;H]6{zz>zhaդǙ.;2KL]]g?i)Jzzz~_|Ǐ?xKK~nw4=θ&x?nnWՈ"D"uiU{1L>y$ $ddvZozjj0 X&ϬRYzj~{ PWCԱ9e 1.5<Ktq:w#mڈ_V5C,2)ؚp>MsVC pN<JNEtB;B{ζb_eD2(uZU l?dJ}kɥ"!@Q $3_)U5C@ ¼1SC AfRdNq7qĉ' F9Lkɤ؀9NwSX\?qm ,].khh0kqv1gΜ!Ey<"el#6beZu-6Г@S,R0d eWToǢ [7|Y"B"tv^ 0=o|P.^߫0`z()Cjz|8[H%77:)`$oϘw5;ݏ$68䌅 MMd`t?J݅0@J"\MAW߈g|0\{4RSSe˖FXXmXıa=FfiL$gv].W4Mkhh0a38cƍC֓.BygEH aj}k^þCqssF9?;>D(+/bN 76. 3ҹN!ŽbTL_୥6}ض̚7F 5Sb˗=tFQ_FfZ`Ω2+U ߅vKsRƽNC(<iD6 };XՂ끦Ӑ@Ag/A$40\Y0%eVyԙ1c͛7 կ K'a=I$i7púubX 6ԩJeѢEuIE _xᅡjɡPۈO~+c[ۿFԢo\H(wⳁ>IB2`O=?mňpXnOHE0ltf8&SF0!: br[, tA" %b dCn-=H+'+pL1>A_Mi t=Dv>q;䣿9 Kh[__/9ު@V,PwHk>;<묳UU+++h4ZzmEEEmmE/_|eٲeFnwmLncep-:cF0]u B003fs싹1AƍsP? ^| (cP I34_ RVZ8,s.FmC=Iimڲ"oS#VΉ Y5بUB'qZXFh+H{jXp!oGiClcB3BkY/8\cz=OaZ[^^~FPyHyW^yeuӳhѢvm?я~>X_tçzjȑ\s͹{#GcXr;/aX6z!32[7 5К41g#=x]pg|9^"ogoz4=8t\p1~ʹ#>r4M]iڹ{՘2oqX <3IBhۍ-gb2.8pW!̽lL:,Ci+*λCrRORdHW:DOAzf-b"ز;dx<(VNz!v/셩T`Gٳg-L:߸qcSSSQ*&. 67pܹs5?3< D^lR,?m߅6ta[a\O.iu_K{: `~3d.l]-9 _瞮 V̟ivtGFc5FVdޯ69ZKÌavV"?*OMv])0*߇>Cpy􋲻͛ѼAbɒS|F.43>Zˋ=fpzՊVUU}Gt9n041R0k֬u??3o馢$|˗/?tВ%KͺɔY2 msvlǛc؊3 e|JqfEs]Pc6鄱ֈ̢c,rCk$"E46"&w֠? 熠 j5iō#-qA}T3?!xjZgdչR x0bHf dP ~pJY3^{W. BefȷߑQ$(Jq0e f^^ij}G竫CC}G'`!iny0Cp[.\X1P. 8$b8blހ4eT 9Ɯ3+`G(+5#k`NUM$+_r<8~;~PSy(Ěs(7 Lq*Hq24͹6dHt0vpC}XzƸ*7cըS f37\}.5jՑHdE3uuuTuk-_קLrOEEży٦&:e X C`v^yD@ P%$?kD"@ҿvnFg-ĢOFwiX #j@AhLdd^OPd\ >Z.iCa3զǜBdƜcOtADy]VMIgod)H5_.\HwvC((rw\F3f̘1gټyy7[lm,K$a!ڹ>k,8 Q]ZLwGͫ*^zo {-סMBFSf3I5cv\Zs\f G pPza=Tn3*\Gׯr7o޼o|&Lx&%:@gaYwkVa!@Jּ߁??5@ZHD#bDҿ1LP/::rR>|$v|"ƌŝkzis|]ǡd$zi T` { ܭk9`T `K6 g][NC(KD|?8͡Pl2MXQ9Ծݦ .^q c",XYkAfl{6X) JʪGix( 4oč "(V ߖCB4.`d&!"Ԍľm92Kfu(h)D flB LnI=;+!xte;gUGYSK Y c:ZvD7&OD ;ԪW;"NȒUTx  3'N; )Yy`L?yqۏ2*8 \~6.<^|Ռf6^=hW4@ȱ[KD[; =~[zDr&6mmwmV]vZlNQ$jQUSperxX)xMBYz5 9c7^xsK_!AbJ2nw@l@:#ؚ~X옚iCR:j:pR]PfBk!#l73ܯb-T%Ck⩍vOXQ: Z86]4VQ+o Ֆޕw^t,/9NySN0ćpx2Oq$x8ЅQ5ư\V3 գ E >pGƚ )66u_ 0F~g Hk F2_ ?Įm?U Yr!% P9"O<fHcvUżSqgؾ n@{7jF%"%ERzh.co[gg[[&[k9eP>r!>~5gTi]KC<%]0~TM?qx(16li-A@<k!m=m58m2B1x2B˙0l: < Hn2Z*P ?_B2fDi%Hh(cq>|0owڬܶ~dLler|KBlMwiDN[_-Ѽ-м Wd* JCx.3R" }x%;oxJ0.=xz(} fgpeCy-܃MØw;x&מW slJ4UUi͘ %c؈#ۈs/Gmh߇-k^?X_eQ w?@5rbfTQ|! ލ00X.Fېh.5M\47^eRJ@'%)`x,"_کҁ=8MJJ(7}12< %U~-kS(_rU:^7w^BG/x@ aÛf 0 D4JHq@fNF b2Zw^yKnT3U>?9f08q9s!roo/ j%Hk X!WY`9e=#!Æ!%!kT@߽s02!c*MA{־#0uqu0-\͹fSE~#.߾C Y̙st{:d !UDv+***rsr(2־o&V=qA<*}2ڬGȰyZwযƞpJ b@H׍K@iBa^SUabyyy(v _ %cQ"ةT11)D,-/{}a+߂ChÛ"4,|J2)ZGi5C<˄\1 xk9E1i (Zc-\k%S IDAT:AGyyyQvhƔd߈oDAl߄iƞK\ef2Hxx`4ꁩPV;ѓF x\YdH. OÅa>R)IhD8i-Ab _y~!2Zv4jGKP+--mO B襐XF7H'ڪ~$t HH"2OW.^2/alaeqc</Vr,+---ʦDQ<,q aLL}/۹/gɅgq ~ 7甕0n\& -ӡPŒzsJAhb=}*L$|>߄ |#NTN 16XA=p.J WP솧ğ-xl]PEMp#gN*4~|@ P0$'෿_I#j&Lkꮸ ]ci-Qk@ l_^%~8<7ߟ͊5|P^ g=ey4 0_ؼ}t*it{ hXĀr4dȪlJA Џ1d:4v3B|j)n J굿jxKkO !S3%eM_:TM|fL֞b:'6K<4M|gK?V2T1flgY´<ӧ6˅p/bJ|ӈKvNQU_UUUDe- ]z %X,V,!)lҪT*5cʑW'}j[5l};`l\u*kCOk%;,f %$uQ *cC2y~ˢz^{ǟ,DpxŊ]wPwre7 ',֊"e(AoE2e\0k֬bd29(XN$>JJJWd(r KmT?Zp~oaYsN)L  !uUŊoXN* =v':܃D4}#A\!atuuUTTidh4Zd&"}>_;/ĉ =?򓁊bim_6xbh8&~i|qbCu o Ȳ\;*=Szپ}$In{C8+nj{8Aq-A5DQRV"HQj<+ct/2fʔ)9]k @ h4J(i-A0<OQ*~Qt:-Y"HD:PYYyw8y@u\ĵź!c: !Z6 9ʿC1樵(.[rrWwZJ@6!Hk xB- C;Xl𡶣 0vX{XGQktC&V[dXնdm$9FUNwiZa(J* Ջi 9pƘ]DQJcn=K >@$Y]XiӦM6N9؁r1Ifuww+DKP  +C=\z@q|E"U#rUU\(J6cpxZAZKǙ&Iʢl*8V3#ه*uDž.]`IRUU5~AZK' <<$؅Dk +Ms"<pG#Ȋ+f̘Qj/ % MӊUѪjRx/e8nxZ'$Ir vGyr-ZqRSAx:TSUU%U[ ǁk޽ӌ %Sb`q1rVڂq(ƻ믿~̘1tqRG +[vCUMEQ=l߾SOKzB zt'eAPE>{<z7ns gۅ6-\p…|El"Z8FQUXsUhQʬO}bD$ {cn&c1$~(%N(L BJd2Pu}qma:!;!c21UUk %?^oQҘh(y80aJCD"!˲}1Q_0s Hk bȲNJTڨƾ6Lik0;{(q\:?E N|eNbsξο3?D">~eq\"7XqAQgy)Rd2yZ{Сd2SƘ}^(GnC +i-A W;455ӖeN@ PHv Hk " ~+\|<8o?KKK˩ s8n̘1E"Z CQE+(ʢEzi1{S?`0qiz@_P(s{t'3TED"8qַ +S='ꪬ^( ůAZKGd2yq4iR?OPU>)AeY+h2TU"j$I4 Hk hje{,WpA(cA-ZD Hk ⨡(pʭ}5(:jm;P( %bGt-1m_NjСCqC 4 Hk F?oV4xgeYnnnu4qoST?Ȓ$QmA!|CP(uTN;qkD9 (R#''Z uET*ekcXiڦMdY>3(̛7Υx`af:p2۷O8> NX6o|[5j!y0Ȳ\VV6yƌAi-Aݻw`4e IknJZKq?aEmekC5Aq"n+%IJ^w//xb2C&Z81yg"Ɣ$UVmذoς :d8YlYSJ4y~S{'x;0a}AZK'&ZX83{_%\BA1~ߜ={v  p8\RRxy?d Hk bV׿>ctbP2AV:;; Gi-AJ7zF1(L';mmmV0a¸qjjj{カ&:2AZKDqp{zz^/K,:u*(Pfqǣh<555F2AAqFAi-AAAAZKAAAZKAi-AAAi-AAAAZKAi-AAAi-AAAAZKAA x<(  Hk H_zϞ=t %#s=Mǁ Z8R0JKK8AZKG Y^/ Hk HF9@i-AA(Li-AA8AqD$Aq BXKi-AAHh % Z  %  bXIRtZ?-NFlٲ|r 8t=hmm*U1\.PDggw9sqt4Z&ct@$;v!Hk b4-Lq8$G4+_JEEŽA!FAK'oH$|ɲ2: i-A 7 DQ˃X,'D" :::"H:NR<<  n|>H|QF=z)ApSVViI]vX,Dx/---//1b .& UU;;;Dooo<gWZZ:nܸꪪr:Ì,/ү?_2 ~ 'N3fȑ#l bP( zzzٳO=O?ѧp$>֧zj7xԩSqtx嗟zꩊ\y啷~(GBӴD"L&cXKKG}Gڵk ,7oC9|?r-]vcBQ`ݺu>(~yC5K_ҰcLUUX0ܸqڵkW^L&??z1'|rܹ_1hoذ;ꪫAPo|GwW\bŊ֙3g.\p… @.(ʺu~RϧcBF?gy7s87eʔ)SvmPh͚5+W\|رcO;O?$N(ھ}~]v]{7{ϰ&;B^*+ذwP(X^Ph(X(Ez%RH}^'*z4(zŹ;;73Y^k}7/% _ ;㴴i8璒R)'''##?Y^^bmll6lVZߏQ(ikk+//`jjj("2zbccn͂~-tĉ)))lۛQ(_|322D̙3%%%kA@ddd( B#  466~zllo֭}uNNܼyf͚%~-ȟHtqq`0h4xkkk~~~^^^GG9sHz]h4ZjjjdddWWܹs,Yb``0ւyP(UV]rEGG>|>g{{{mmm@hOb={իW"""VrssC  Z?*m۶;veͅVVV溺BBBp8|Z9 D"UUUoܸq)ܯ7Y(D  Q[[C'--Øi4ZWWǏ?~bp8$d``[YZZYUU%**4o<1hkA@B ݻw{{{ϟ?@2 <ɄBt:bt:NPLt{zzFFF ~YPii˗/;::tttf͚y2A@@[ Wd2㓓ݻD"D"p>>> h41>>Nр<"p8 Օ~ooogggqqqUUMLLLnD,\^^pB4އ )))tRtt=* 榦Jbfffll4L&D"Y[[;nY,XWWWIIIyyyww-,,>焄@%%ov c@@x?dQUUuIyyyooo P(ߏsww_zDsssPPPƁJdeeeee555,Yd…+Lq < IDAT8Ǐ Q(w(Sۛ᜜/^9rDJJ{Sv??)Z$,,vss"ҥKjjj>>>RRR@`@@ g7o;;;qSth4ZIIIVVVZZ333C @N511p8Y^^5***:96s{{ʕ+ ӋK.^tIAAa*퍊tpp_^|YTTt׮]_g)))P(^UUUTTtG>|߯kdddnn.))),,,((=eee-C"?ٳG[[󋟒W]xVZEMMMPPTS]]}ȑ/~iRRRjjjdeěf̘14rccҌ3եdeeitGGG߽{{allleec777߿e RQQj=MuQVVjmmiӦ8ÇkjjV\`u{''gxx8777''D"YZZΞ=!$B󋋋kiih4=y &4<<2sիWMMM' 6[nժU] ?mkE0 bLLL֬Y=iӧOLfOOǏ=:EA8.'' H$eee --=0 `/VRRB[322***T*LP(蘚 ~sJ߿#uҥK,Y2aPׯ_G"'>|#ztzcccYYYii)766vuu5,p3fHeeeVVVyy9޶mGBBȑ#+++G6 3g~(Oڲe~aaݻWX!))ǝGegg_ܼ֭[,k…Srxyedd.]f''' *uuu6l[b̙3eeeݻ-$$dkk h?~<11QCCcɒ%ñ!!!㦦/-]BwvkkM\\\o߾EDD$//WOO;wayxxfΜijjV]]zMMͩ^B&&&FFF8<<<--mxxXPPB}]SSSMMͪG %>>}›ʩS^:ְ~d v Fr oiiaiZ[[;vBX,;VTT~$}FGGc0vcssΝ;I$B$.]0L20w\6ʋ/ Ofhh%!!a_]]rgϞCxxɓ'ٗ2>>rUkk'NtwwSJRD"MJJ;w… oݺUWWt:=55G28}||N:ႭuuuEPMMM3B٠MMMD$}JJJddd<8yѣǏm?(ڵk4틣ggg4Fsuu}yҥ/Cyy%KrgϚ?~hh7s988wuuq"`5klذ_297PC|Xp!`xx'k׮Rnd05`oV-t:3؀d2T*8,q'Ha||{\|.< $ق$[D"!L&'_y鉉_};w`Ǐ⦻#G0OСCS$z5k֬X?}А'' --իawwǏG __ߌSNuttܹ3..nxx[A"ׯ-9mmmFDD̙3GYY\_߯JOOχ@ ZZZw%:^TTÇxKKKfffrrȈ*_UUUfffFFFwwhKKKbbbrrٳf̘UTTdddgff*++7;rss333߽{WPP ,,~hhh'**500@&>}V\~}]]],{ C߸qQKK+--رc_ck%$$322ۣ$$$V|r[+..(((zjΏrrrrssO<)$$TSSytx:uT"]vB7/+++))yPAAA^^^nnnaa!nӧ‚†~"3I̒%K W>>>mmKjii544{WYY ZZZVTTdffZYYMS[[ ym빮vƍ+"$$bŊd/_)//g\~|X[[{rx}Z[[Ԥ۷oϝ;}}7...==]BB"..b@ W^yyy%%%m߾p2D @hjj ˻b  .]t)###00?j.))AP( ///[[HR?Zs<e[[ +&&&ƒdWW3fHJJJJJ`Ia,[YYBDYYYoo訂BɉD"BTX,}ڵk7l{h={-Z}UVm޼ʕ+_p:}}}=744+2pM]DDDuܹqqq}Ν;kjjڤ8#8kkkcřGPf9;;X,;w߿MbXW^e2 f޽evٯ`2BUUcǎ!]Ǐg0"""mmmMMM .ܷo{t:;&GMMСCk׮zݻw9a0D"8g{TTRCC`0LMM̾復׿NQ(̼u떀ҥKDDD8Q׬Ysv]]]?~WSSB =66VXX4###ww9sX, B?ڪ®]feeekkkee6PC̙cgg5)C`kjjlmNN !&&e˖+V8::EFFܹQ(V Jbll%4372<< @FFFv9[;|`X8``ϣ6WCZZ*}}}x<^SS󫪪޾}{ѢE֭˫[҂b!JII+d2HdDDݻy/ࠡ644}Dooo@@@mmΝ;,Y sy'x|rr˗/mll<@TUU׬Y .ܼys͋-bWV&|}}o߾ldWWoS<{۷FRL&J[[[m-$%%ELLsYLLLRRRx<IHH 555tNxEE:'@ bbbP(499y·( TSS+((`MXZXBB3dDAAAQQQN[K$~*))ეsѶ k/FK.4'gϞ4m||<<<<;;17qaaaGGŋ~䶶={L^J&''߸q*..nrrʭ[R( yyyWWW)\UUU///OOwժU+V`? KKˀwww33wڵKYYy͚5666BBBS;_fee9? 3444| w'P( AAA111===QgxxXOOHB0NT 7F!"cccXlKK˕+W8WCCCx<7777?f͚Tyyy---i4ZxxxKK Cwwwxx34448ĺzn ƕ+W_ii)pI|u}ݻOp$å ?{j.BPWWח/_9shӦMwiiiLvppxinnndd}V^ݻwGFFvww>())?>))IBBݐH$P$ 6hk!N߹s{ݺu?k.aaӧO ɓ@*!(Z[[[ZZ:::Z\\8===L& {l6lؠsΔr`חN:uȾpB{{;@ `dK7 c2[P(8##c۶mϞ=~Յ ˗ *//ZAWL&ڐA>zzz怱`d2?~,..]n0 >Niiijj괽ccc&a{N'//oL&ӧdk9yuttH$WVmll>|x,{ŕWRR[hQTTԁΞ=_ytttvܙ>L&s||NBBJL[_@z{{;::WXq1> y󦬬L@@:66~ ޾lٲ{`0eeȔ> 1B?~O9r0x&&&d28+++222::bݼyk  ˗===H$L& DDDDEEuwwJIIAP!!! ŋYYYnnn@򥎎`IIIVV0>//^GGGKKKo߾]XX>---@efffhhknݺWSS:00PSSVWWwY@@(!!!88Jc0>z˗;v\@2zٮ.111555ׯ_S(d { ǎp%ϝ;wҥX/^СCq3f H\fggwJJJ$Ғӧd2Y__謢RSS`'y"h4r͚5;>>*&&fddĭႦ^FFH[[Clgg7!XKJJȘqr ijj2J#+---,,SUU1c#UQQA$555͛7TF+..!e _innCGGٳ9otzaaaIIАkh䎎F* BY,B`˗uwwɵ h4AAA###vKKKKwwwoo////Nႂ@Kyyy qqqT*5''_@@@\\|ٜ###eeeJ>FC" n:k֬]v}І~A0LPPPGGǂ at,ϟ?|2׵kDEEWZN*)) 500n`&YVVݽe _sFGG7ox̙K]cccssGhz!H kL&D$99;TNR! 1 `}a2d(,8ήG v1ﻹNr7o888>}_PXk .ZhӦM%%%[nL"RRRV\ hG>}u?񊊊ׯā@StرrqqZϟϝ;kTɓ'&bLLL윢C Bpp0nHm۶ݻwB硡!OOO]̙cdd"G"7z "D"k֬|TT ^x ׿xB[[;<>Kjkk2L(:::' bcc3o<<t_`ZJKKmll6lpEIIsMNz}HH$a\kkk;vRRRkQւp:~s.]E6"""::::V,-----qrr244`0 gdd}BP>Zx< ̩ @xxxa07&^UUQPP`ee7aܐwwŋOu\z5F{gnjj#~h4L P' eA8OǧOT 777ˋ68peooo-[ cǾTVVشiSnn.x葯%b0 tK"H$8P酗B"222 (JNNnsFRRR0̋/FGG8Yښ'44dr:K.={Ʀ&i+d2;::0L__27`xTTTV ӗBuuu W>}p7svB4NzUyyQ*جXbʕ---()!!!!!!"""((@ . e|||xxmppphhJ"H)))999SSә3gN󣥥VPPpm۶988XYYY[[K@J+WB: ޞL&q*aTVVN"`X@ _]]PPP"`0===addЮ655䁀db[ZZ-Zݢx< SRRΜ9cnnb6o̮8d2FǏ-^x޼y} $D"1;;ё <]]]$S +tuum߾{UVVNOOԴd8?ŋܹFϞ={o/aaaqqq===vRPP D"֖S>{4 )==۷^BPW^~j khh\rĉׯ_666]`/8pLJFkjjٍdŵ֭[UUUs PTT߿Ae eeeCC;wX[[oݺu+hpymd*>r䈩iXXʆ\~ҥKܝxPP灴Wf`sΩ Yzjҥ}}}d ֭[;vX==='NPUUUWW߷o_aa!PڅNxb޼y7ns? Hyy;vpNu NNNLjjj7nhjj*//sҥOfeeaXnSNmٲQGGg%/_ R0X,ƍvvv q SNCCϟС<࠯ڵk'xyy>|XXX&x```PPPHH%TRRr۷o3L???oogr)~~Gr0 ,G!umڴiBF&D".^8w>H$nܸq޽ /^rP⌮b2555N5kV{{(ɤP(DOxhh3X}iii YYY4mhh-**OӃ޾}Bpxssŋ^~[U*lhhx!WB<<<<|֬Y7nQ  nݺuٲe[l㔕]t)""bZ?@ff{"""? s뷴;wbmݺG533۶m4 ʕ+7oބ5kxxx|MGbݻw@HHhhhܹsZ$~J^fI5vЎb9 @AVΙL0P(J UUU .ZHYYӷo^dŋ{zzccc]ѣ~ a0o޼^5hkA~8==}||Jq146444..NWWPFnʹ W^%%%]p']=QXXٹn:4nݺ 2L/L&3!!˗;v%@xIII̙3]\\SZ"'''88WOONݽ[QhhhhŊwܹvڪU-Z~9صk׽{TUUKJJ6oliiy޽>ܼysǎ aa0(Lv///qrr211t:ŢQ999O<)((PTTq[T@szϞ=bbb>| ! Fo۶+i׮]333khhpuuBϞ=e%N Xv}]~=돂F_ ())%''[XX`juuu||<םڸ8Bx={؆$((HRRrժUDEE9::l޼pdmmmT[[9s888X[[3cǎ͛7@___GGGCCCAAFeff766tOBBBYY#h`pppyy*((`0KKKNW@@@XX8>>~̙\)4fooBRRRjjj_ hoo~DBBb֬Yʩ:::$Iaa ѣ~S>+W>ydl95<>^WWSÇ ;w#G1,L&XYYYYYq=`F%$$hkkrJvvv޽;%%9s&00 @ P ϵe_vCzyym۶ M @x… >} >4@[ )--ݰaX%Kdggsw2W^ݿ?g;wع(ʶ3gTPP$i…۶m#rZP>x`ɒ%/$H6l055USSz޽{&t^xqkk+F`0,H$H\s}mذaJŭ?jjLLL#""ZI{{;gϞ XDW^]رcw\vmvv3A fǎ Q%%%M> >>>YY٭[yɓ999 ,qEPO*--]|SSF#$3gΌ7o^CC:~B1 qϕå:::xxx˧>aaa3ӆGMM޽{,ӳ|tр7}d́.+--mddnLII}IZZ۷oa0f||׎gnn`0߼y233d޽{>7oz*ϊ+nܸ`0vuׯ_wvv5IPTT|򥒒s}}=иk׮ nݚǕ+!!QRR188ӓçZCѣG\GXX… 'N(((<}O/˗8`'͛/+wg̘npBkk+LvrrjhhذabbbV^E;((F;;;WUUeff !H9sTUUĈfeeIKK|;w.¦CCC=222#_ mTTT6m1z ݭ3c ϟ{xx|iӦ?#ٴi?uٳgj.,Y5'Bp7* 466oٲ/^J'u.\ϯ9%,,ye`ooѡqƲ2* @`0 G"P(L&vAPVVV٭ZZZvvv{F+ ;}_SSӖ-[%%%̀'OΟ?޼yBBB\jՃN8hرF:;;z'm-01`D")**bX^^^&N"""P(… ??  ƙ3gΟ?1()L1TTTlڴHرcVVV ,~8FFFd2ݻzzz_ܒ>ã W7a2=rrrRSS`dd|FFÇ!H{{{nnܹseee_KKKezzz}||rrr֯_/++ ŻqndNN```}}}^^Ȉ-Zdhhn:KKKii隚T #,,P^^^ {KKKH&CBB8+s̱`0 溺t:=++ޞ2B&lByxxz{{!yyy43C|ڵk4//{ hkA@&CXXXBB",,Ą3"%;;{ٲe\іaҢMuuu---NNNܹs|⅞UXXXLL̓'OTUU=<<:$""p8\tttxx8sUVpAPKKK779s%$$<{ZRRRQQq1CCC0<obb3'GTTt,x"77W\\\YY@222,--'? %%%UUU FDDfPXX(!!OP*++Դcff˛3ё#G6l`hhWvtuuH+%%N_<  &ڵkA1mmm\hmm>>>GOOtuutii٭[0Etth]]mFGGo޼bƍΝR_+TXX`edd"""\]]wSRRROOF->>>>| S4cƌݻwy󦮮nt:GJJJHHG HO>]v_ZZZAAg϶m P`傂nnn WWWG –%+qppؽ{sss'CF߿֭7nu!Hgg' < \z8I&>~hmmO9Ǐukkk&qD"q_˙v222Q[[+''"### D"-ZdffݻH`"ۛ122:vعs焄6l0zΝ/a'!!!''0"xǏ8ɴ\pattt׮]GRTjii) `X@))Ac@>,0;{mڴҥ b4ԩS={Ky搐䪪ٳg/\000011qƍBUCBBrss###^cǎ!0mڴYdɮ]ܹ/ۈ#Hqff7^}]\\4Mmm-Nwرɓ'GEEV_x@[[ӧY/F+,,LKKxZB¦&COMMZdɶm~{ aaaoC ٸq4[}M>}ѢE)))L& zxx(MRjɱEIDW |2^`0lh$ēm[l uww'_̕JeVVVN~ Gڵ… 3ok-~Ç_zbyEEEOvppprrj!2zIo7[ ¤|fWyL1PBE_n?ndͩgc/_!-[~|X3gΜ|x׮]zӧ~Ǐc֭.\իצMNpN8|2䣏>ZrQrx5X<m۶. F;v؀,YIBB¥KD"N#](~ bL&ߌ flꫛ)s,~w=<<~>aÆ g6L[l!þ)S̝;s6oLz510ݻ%''=l&tڵ .knРA...`۶m]vRZʊtd0EEEC%sG17)++  1cDDD\z_[ASSL&jz >O Nꆆ9s|g۷ov~mDDT6m|{/:łFy^#f |ݷ4=IFW+ P^"_;ZyaB -ȓWBq \'=%kw}u}2%bX&Mh4˖-3fLsߪK^/_TYY6k֬?<==ݻשSܹs{6lXyyF {wl2HFT*fΜ)H9F寙r/++wrrf9.J1bnn:[ ٜӺ:l^P(Rnnn5t*_rQvg&egg>J[v/V9L:f#>UT)vt" *z%i+`y<ܩ7͸lax󃺳gg|~z?sΟ~Kb߄bIIIr*,ĪT>,((,jjj"+555={RO\ۿ!b2^cc-[/^kaXfݻwo޼IRڶm;x`777''%$L&L&JUUU񹹹B0((?00חfh4fX'܌/_|F;wOP( B~tϞ=#lN غXZZZӂZhh4ϷŤEV|}}Iwȱc>|D+NK.uww?tPBBW_}ݡC___n$oH Rw)B NLLLHHZuC !dxzz]}A:j- ɴX,yyyEEEdÆ ˗////'GdSyLMM *ɏ+Vرc֬Yc)oA gϞU*}ٹsgPPo_J:%Ղ͛7j???@wwwgmm:nE9jR[[K\& ;~v-Y$..w555zf{zz —{J^vãG9 Hp--d܃wfY`;nաTY^@i @Z~c"!X@cB:QW;Tn%>\4w ʪD}g Z T&'%I KJ^e+k&-qE<.d24:NP\]]]nn` Ba۶m8xQM}C0`۷ ֯_G=|Ap\.keed2D"WWWWWW'l6[h}II ;}Fikk[QQl:8~U*NVTL 777JEF555õ-))f/_>w'oK]ok׮]xҥ7|#OUׯŋ;l7 xmN|@{K &Œ8))Ąא]qEX6f#r3}^+$pw:EЋ)ׯ4H. 7Ϛ5%'3fL4iȐ!2ϟIOOߺuk=9B_O>\huf69Bt|>_јL&6霜j5I,d$''S(??oFEEEuuJh4f[YYx<2= իW[nZmhh(++"( o r-(ʩS3={;;;;;rLgϞۿ{Zpggg2ST__+W|w}7nܛzyy՝ѣG߾}˿k6b1L &yӳi&t9ڵkPPPmmmbbbl6@Tx-HMr|/GAf10J# `"8$yHUb _JcP7 [1.``!\Vxr0!CdqTzg7!w…! NX m P;/KqNX])Y\5ߎ '=R!">NtΡCZ biӦ֭[}ccsssnj3f̘+={ܴiӞ={~'1sLZ 444''?%%eРA_ŋ zieeVY,BX,|>F b6|>}khhDf՛`\^^nX"""Ξ=K*,,4u2())t:,񐿂bjӪhlmmZjծ];sppXhъ+ngzqΝKLL,//'VVVK#r_ӧOݻwΝ[  BGDDDUUU\\ܔ)S}@p…7zzzFGG8}0`~8a„7:jeee}%w<oȑ'Nxm޼y֭mڴq-)@};w5xx[¤3١<_hU!ėP@:tbvLjHX{`ϸ6O w*(U]Fߌ"4>SN˗/"Go۶-::Œ:g|d2իWt:JFJ5g ,+%%SNd}֭ȑ#-[#~ƞ;w>,,K.}#ekqd B[nرt֍w3K,Yz?vΝ ~~~:u!?3s͛7۷s\S^FI$'N0ڵkG0am~=ۛdo߾}=ڰaӧgϞfd;2 pBRR눤V>1&R<׭[׺u;:: r*0~9rcbb~-QZZZ[[斗m۶iӦq8d4j\.?{_q4՜njj"cA*j5AZc6zT*e/yYa6KJJRRRn޼Y]]M5|]i> 'hۛ578<ɓ'9ҪU)Su6<Ņg4̙d2~y̙˗/]J޽{O<٫WCO_͵w?LAt:r>vCCCIIIyyy}}L&S(ͦT7,Ng0Zv֬YF̙3ׯ߇~fN>>',*;j5x1DAAAnM5͏?X,}IJJsvv]\RD"Qvvvyy)S^,fUx|WBZ:̠C(εLJ|v,%M_V|8 òC`ťl9ѠJj8D?*  Ղ?=B0,@_?x W,`jmhLZ޽l2(ҳ e˄ Yz5>n4ɧXb< !tDQM {N .\bO :l(.. !!! "66v-ZP|>_.\ooZM~AT*T*bihhX,B/)nܸq…{bFEEiZ''cǮX",,l64b>|$]-[ٱX,ңթ//?6:vرc߿ܹs'NlժСCB_-[`y<^Z777SNWo-{M溺:TP([-lllD".|*++/]t]Fӽ{w6]\\>,vӧT*M6NJNN &μ<A :ܻw!r;;;pl61I`0ܹsѣ*jС_~%pxbmmmΝ7m4wl\޶m[2#BRݻuּ}z~տk-˗f{$2224 $%*nnn?>886>>ѣG7ozZJd2u:ݓ'OtMC!r=p`IJӢLp]6 btfx0%2C\8E#`ზ6'\*DT KUn 0fjD!anIMKã4p1NTPaCƊIc_%Dg EU*\Ə ws[j6 U/0Z@h jK`2;&./S#Ci`S/ H`Ci_.zuySZ%vlq%~C?'sRYkΝ=zt݋Dю?,X5f''dVWWv]D) U(i4T*%{r>|9zh,77Bx{{{yy%$$_u8Npppppps+333//\.8::{{{[]v999/-- _I/3<ʊJZ,rcAT9tttbޞC[[[;vԨQ7o޼|ݻw}||HéT͛Nڳg®RΜ94o޼_\rߊ~aΜ9?ߺ?#$IddD"3 "{{>o߾ߏt]vݲeK|||IIСCCCCKKKKJJnܸ1gD#Zj1r'MxbyAUx)s+ZjѻwWs566*>`׮]iiioB. 88? ` +X,0@EF)Jhh&#:! lBxݞGH1;|$Wn 8P[d3B\fLX@`+J ^H-"tܕ~#MeI\EҒ&BؚfjņN8L 4ty6.]`0Ao&fyNm~(:Rc!g2$Wi _+Q|݃pϦNzFjd%''3L@T*>>~~~O>}IMM/Gk ݺuX,۷oP((@ff]Lӛo\߄lNKK ߅o!$$dD,Av˗/_z;vܿZZڵСCSRR-[PPPpeJբE;nfΜ9s nJ$W ڷoWp-Bh4*fٳϵZ\sVBg+=E%d` 4OΦcmTkg>rl.njĩ<Щ{HŝzmGOLOD  '>8B,f5 a'z6Gt!؁/8b0x,n?TPȈРU  ^ h}IJS gAւR,)L8x : GO\E H80 fc:GV$O4д~ nh)޲3))v3}*邎=к3_eOi) $}}Q({cƌ9r֭[^d2;wlmmI.FX,4l6 +++4NKRXa tR;;ӧOo߾͛3%Jkjj&N+**Ǝ:7FYvd8p޽{) [sΡCݻWTT@@AիAH455斖^pfwЁT5o>''… yϞ=Nqù\5k,K^zLL; b!4Ia6 KR(nbtA ͨEg *ⓆxP kj[.92MM:㍞nz *L\p{,C+OYg\k!N + |a„^h;oSZ|j琖mzЎt#=R+ ع ޽ 3j AC ^Pk3;LZeީ垘D8{Ӧ6EqbT6<~?zƐIO "Ӛ(>_UUuRX(y<^ w^XX؋FC`W I746T*l6[&| RSSCnJ\N:USSTv]t߿Dվpb:ub֭666G-//}Qݺu[d yя?8c A65MɊRNMMݼy :v9mڴaÆm߾=::zQC_~=ҥ?h=W(+WJ֭;_C7t 0`ժUoYɓw~w}]//_|޽{Ϝ9aÆvډD3fYLiӦ/rΜ97n$ ))oJeeeGްa+H1444---""Dy=nܸO0vCܲe˽{ȺźuI… w9gΜUVR(&Ij ?󪪪{-ZG!!!,K.x<bSNO&ÿvc>~800o߾/_ ` 05֪`\Gj_Xp)6|_w0aT(xP܄ 'KoBt uI!W0*!UL@7#@0~e fG|XqA1˄ l@FBPt[h-5/e[QfBoB gLN b,HD$>=*R5rp_oR>W<`P! +*b_.&Ia~-%gl/ZH߉tJKBN,aAmN%[$\D_v绻WTTܿVV:ѣGuuuT*ͭo߾4ˋܷY,L&H6mHRR1DcXJ[ѐq_IIIEEELLLsn011.Y[[ݾ}Yojܹ3$$})))۷ot666>}*ɂD"N啕 eeeW^}yZlٲe>,77ӟ~D"y322yYf }|oZ .ڵa~M>f/^{oڴk׮t̙3y<ŋ-ZԹsٙ7n\TTԓ'OΜ9S[[KAAAN #"HӧO}}}.]:p?^Rr0CSXU=[`VtPhhh hϣ3Or2nhM"ݗ1ZӊA^ltףZe,-|'Oܿtj.GGG.k2W׋bTJ*++ϟ?O:07-tۜCnhhhlllٲT*xA.f/JڷoANp8;v [xi4Y b0PWT۷o=zɩ~ؿ@ ر_sOƠt:7\n\\>|M3Fӭ^zuڟW\9{l֭cbbѢo-[7sڵ}]jji~͐N><44s-,,/ >\$m߾熨Æ {֭[;tЮ]={7.??ɓ'uUVVvZ͛7X,www@(IIIݻwOHHU&5!~ƲT.pz3t`g-jIŸڂb?:R05Nt߅tCGyг%lWؗ6/T#GnK uj4j3Sw HN`8*C;6a6b:'L=p@pJ ZКr!܅>pk1yA~.Ƕ?˄ZB{8e% G7a¨%ƹj|[<[ve5=f_`:}DEE5gTjff _SPVUUرCϘ19cƌ1bę3gN:uҞ% E"_#FHJJxҥK\2k̙֬&&Nb֮];k֬ٮ۷o\.?~?N/k8d2٦M\]]Ǐ~o={Y`ŋ_H$K.֭۲e˲֭[Grs>}|+ äIabƌs TJZ!cLFDDDEE&wurr'=<bw 3 S1꟮> c]Ǘ`/>NT}UYHk<d,%@āIr9>#t%P|ȗj6s MtXlak,$q+͙^ڢf@6 |>`0YhNG9.Ŋinnn~>|HRxQQQ-?~ܶmWVVzyy544~!r#IokRիW~G/nܸcLVB"ꡊs%$$kZr9beffד *jcwxT?L̤7R" EDW"(\AE AAAPQHoRCBHN1i\3399y׻^{Ȇ ;w.-- h]nm= \nwoo޼yPBӧO[9rĉfnw:ϟ_6lܲp  ]wѣfj۶ŋ ZdzP,*f@$ RT,{x.=4)ʩ~[so;.IȭPvXQ}Qie*ruFKWܾ5*Z,7XkɜEPSUU%jC<$*îc*GZ=/dkr'f2fjXÇgddy񩩩 Gرc۶m/nӦѣ t~ƍ-Z4bĈ;cܹ%g:'Ξ=[=_|8p޼yC?? &>f3gܹs/B,:u4}E}ᇧN9sfxxxΝ'M^s5L-Z|ᇽ{^TZڽ{M74~w}_}U~~~HH{왔t1u[w,*R0I2Ja5ܚW!E%4*H d@,Bibh.gu/2R A֣L껀*"?U_! Z= ‡|tu]m:>v>C@ƪh:G)p * V$ʂxE~"j hf`EIYr@I#s2;K[XX-"?;:JoQVԠ5t3fuLxt=I,c|PΏk ·6X8FE3sBNOYEP*2Jx)YDՀHDO3*Z- 8d5 ɦ*#o4㩻HnS;(??..\QI(^/Ijfm۶Vbmnnny#G^xަM]777w׮]O>?lZ-?~JJʲe˂>!Y mڴyN:`uMv2??Μ9ϟ;wnO%:dɒUVǁ6LOӦMrAn̔eyܸql-ǏߴiSvt:$IZ|۷oߺu֭[;6IO{ywϞ=ۻw_~UV.]:wȑ#KKK9"IܹsW\dxݺBCC7n/޽{ş~iFFF-j'L0a„;w~ׯ۷ӯ2pnʔ)cƌyNڠA|(K.ӧO3gNEE7/+**曕+W7W QRR2k֬3f.7C̞={ܸq| |dFF?իWy1[n;vl)^  &<3_}_5%߿+j%I[n7`P?dzEGyUIC'.uk֠ *^Gsth) \9-FPJQLp׀' yr_%{OHS9rD+hȪ 108r6L@\@"H7 #ᶻyK[geD-n X \LZMxQ(b\8=̤jV@"ǝ)aý<-DJ .\ V-X@2=`*Cԇ$_hv㲳W/)`AO؏EW-ݡ`֢(Xe;#GѢt6k֬Fjۋ,XpqVx߮n~.^x%I.cEeggQ:5^TJafd&Kb!CNK=T)TJЏVD/ u JfV*4%-'PeSdC?DQs_ܰvYlNqƻv튌 3g&O'8ۏ}pnXpayyNlwΝ.~k۷sΣG޽[5n83&66ԩSNI&ڵ`ҥˁfϞ]~tlKJX^wҥ 7гgvڥ-{.//o˖-}޿~]m}V;eʔN:=<0q:ƍ/X`ѢE/]wU_]?^QQѷoߑ#G^AO?6lp:HW$I~iN"+gΜ9s+/&M7ok6sgyfʔ)/>[ot:۾}CΘ1#hTp&k׮{ ^u:KtvkJ+v_(QPAKMhʊ,. 4h䀚:Ic> jjT9Ch>)>@9ު UװP@ 5X 8\JTjVÑ,ˆdƁS)ɸHnLj$s75_X|xDDĪUfRѣ `2~ &lڴĉi{イNf?ðkpkp&>n`v:AĪA'bW`T%(\_tt7suo]hQnvݩS[M62Q{9mڴK{ォV=z֭[QQQݻw_bSRR?jԨ]v5sίjiiip{wyQFK-bu2>YUlkY5c^Є >8rhlllyyeA{.x7f͚G .߿lڵNZZN)++ &^t:]BB¬YZjեK_}۶m a]MƱcǮ]pdffرciii z7h-tФt3TŐE%!DYzj~bRI xtx J[@hpd(S숎0 =9W@ji f ,ҏ(+գ\ SE Q_C4APyh;zA@l]4Pa#YébkR)}AS\O:KƏTxw[7Ȯ-wtOdΖ)w1<ݹZUU~hŒi&Be`)ԟCLu` ` ɄO)! d| r0@5bŊ'N9rWF>`֬Y+W{$<"##N_FEEM2eȑ~‚g~7˖-4iҰaVZտovWV_]v޽C O%@HHHtt ry7.Yɓ a}>_ZZZPygz_[/O?tdd3`@>^k/}/G`/hLBŀ@ZgN#!!$8LxvКq(2dt m#lƑୡR%D*( e4oD6e Vյ{B%x ˵9 lҀMr_dstM!:"NgY9>hkW;vؚD LM `Z11:FD,ܬ &zXAIkG6,>,ڙ-{,(լ>1lV5*pzTa`%BP *@[u):Ձa$C2?@ R t%et"64(PR4VpLubPk$2eP=Y14ię.:vpAKIEsz,j =x9Ar-j{쉎~g/9sLaa2eU^M6={ѣGYfɒ%7|sRiҤIݺu[rerrr˖-gϞO[?;;t0eʔ~hbʕ[lm6f̘nݺ]4Kx' S'x'صkׁꫲWЖj[Bbסӧ]._DaÆj-[lَ֬;Ү`UVVdɒl͛7}ݢ(G _~e޽_cSR[Z~z?c>-bиݲJh$}{GЃdAX(HӇkUװ3 }!\ >l|x=;HV\V J)҄ %de=Q6"SV9U@RQjRև[U/ uo{z i&b`B PV# 7a;D ~@'@/OW<[qK4uwJʾsK]xlzFDA+ hބ(^CE#>TR)NO 8ue>'FQƆ2$0Uub TZ[T=uo{nEAn``WnkL ޠ&$ qF "Nm"uN;m)JO8X#i4 e%BlfזZj zqgw;a](1gϞ?~>}bcckmQPPPVVp W?P-twuװa6l|CkfK.;v-tGFFfddu]6mZv /=bĈ?~wo>lذnݺgӦMSN}{K]q~f ?kv٥K?% A*++QF8pԉKjکSN8qO>~ueddWT2m;v_< _>Asnـl9@UOѧC,~SlnMV6n;Gd(~!DSOT2+I S'iw܄$ZTnxP\PU@+Qb5`ksl0,$T_J$hH*5xrZ RFKn|%? O\$P(wù)B\V2:x}~Gh aSuFW'D˸h5ZS{PsXǏ2eʺu2Uƍ={vdd ^z+\n'M4Wz>&&&111!!_ W3g*fJɪm~WA'u={\R$%% 6l…NݦMM7.wy4o}ԛ$s?Ƭ5dաϣK{Pٷ(#^'Qf"8|8yJ1H> 0ǹΝ -0clZz*@ HdH 00\wR"J턚0 ):Ji.7MkjWdEP{,XʲYd D~UXV~s[!BĆ QQU& CA)'*ki># ,YGJQUPM;NbferΡdf/1;KP ')HJhrznvȊ ,Cp4Тf$VGxYLT+9B񫈠THסZAACTTD5'!IPCV1ªr8LKnpo1k0Z)vIZYU(=.HGK,nR3bѤhoҥKO._t*$fszz+psO޽nK/ucvVuذa={駟֬Y_L4{7Gs;:qͻS<Tj0M~v`v<}cy!d¼f4L t*ryUUG+$[7?~+RQQ1jԨ͛75!22rȐ!K.0`iӦOnt:]Vy9s9rooV9cƌ;cϞ=&Mo(&|>mp8:v|Z?;mOSbHdץx׮_? _f5k֋K\Vz{#ѯ/01z'4iƳV%4 U-/ćSKD-x<`SW]p gsx~ȁQ^._Q_kUW(TtZ4>nHաĘaXAW1[q}O!%bRS@|M;S$dbz~DmZT!˛|~'Ydn^cHsۣ&,l+#TGdd*_:Ey*e'Uw)%凛'5u7>s2I Hcs\2@-/)/,@ |`ȠX3I/aPN!LMdW7}t `E*DD E ATABh4o~&LxWx51K/ 4(,,G>u<~뮻W^9rdhh/'GYYɓ'l6 r~os=k׮s;wΜ9Wf۽m|sL:<>_G8*bT\Ef>y9Ee՜H3>f3a6{?8+è*y ~7/Ӓ'" ԑdvï\*$pcָ>:A2owѴI81P {t Y%yh?f>8W؝9]bP<'ȁdtkTdWk"1}@S YJ}(ss ŲY/&F:`!gq~l *Ydí 47YTM3f 8b&6@!Hu!DCY~ھøAMΚwut5>sIllIIwZIqN%F442T3d$iݾ ֊+XBE\tP#JV!AkyNsmJTxDJY!Mtbb y)tIYJ*!dQTueO{s~کgEػKxݖ߸I .UUC@ޜ'֭[[lgECCC711sΟ}Y-ZNs/'2?}||'ߟ)I6W9"gDg}\uVDPQIz:sy $!U#ƞtxY"C}Ck[M!]-bi<NGr_eò3 Y)BUr[/@C?WOBR刃ϱ1|ׂME)-E@"/u4$"Kve "vPKlKLz*$vt Is.(!OXG'z҄ Z.jqۗ-#):nvzw^G!8CmS!A^{5[leR3t;^RszQ竾!CAY=Di(%KUb@qRUe5 ^?*r\#X7ЌJHZUiND;$ďAKcB92RՇOܳ%G/:ֽx≥KK999xa˗/?|>zĉ ^ZiӦXx7/\p0nP(1$$>8s̤I֭[w5Zu8tД)SVZURRrCl'7J?^Veߵ˾Mvwn޼vut5fZ?T>ꭽ b-Qyl={tQI<:9x"c.'V3-SxukĄ"am)UQ 3 Ӣ!kvKraTPTԐ궋F1rJ=خ7#+l r*DZ 4\:kwx휭`g{h`KDk~EG _K6o!S^5C՛slS 4=%g懇 mݹhCc$ ̉m%Vgn wl*{rCȡ t5ހ̀GMLB4)>C!ރM>eq1Cwb!p?l:۴i{o?ȑ#o +55uO6m\wum۶ M&Ӌ/ /Ž'|sΖ-[իYfǏڵ0`E.]ԼysFf֟X@ѣӧOyJF1^mݺhɃ9VD>N"BHD,$"#6^Z7F)@]و2Lr'ʺȸ}ےCWo5ˁaٚWq*)B"2"SpkT~(P t kzGc1WDVQkk˿4 FPG*+ZYDj>zk]\QՅnt]V7k4r6:n8L+"+;vsW|.|$"-'|^o_xR^rf{P( q DF1{27Iih2v"Ll*"!m5p\"En #W_o=w1 _: 䗃en1ZUtFӨb?^?.U6'xCQEA炋b D2:*O洍8#[ RFUPvH0a [%/|QF;zQsZаڑҎ)IQZZZK9]%9slذ?qDFF(I&u>q#m۶z+<|͛;ּysAAkСCmb>QFnݺΝ;q*zpN|{1M]Tdl,N r 0'VaB 0-a2PQUGE-%^ C+TTڒ} i]gׯ ;2q3>[[w@O-RjpV׊]xT++#,δQ`VadbklT"ogHRA\^NcxC1)g 6WN0vC#$< IDAT꣬0\^W(𸡸Q ճ> !gR|yfHKΫMw˰ӷWFMq9S6J^rŽmD_s*D[e+U>zd6%bPѧtWHo2ԱDCwtT:gzɔLzN vDz*`.XP/XET *Bz$9$Ǐ{w׬Y&Ssμ~^$-p^JU՛[w1_yMIvv߱8o>;Jb IHA͚RPA%Ai8f7BY&"(">EV87vv \esC=Ib"eYAP #MZ@ӺsGLnE/Grh+y8مiߏNy5W_]\\+vm=П ;p6mZ[^z?~|7nO;w$xFڸNW;_^Y"7+2 vnGGemdz˪BQsңGMB4*w*{a8D? o[KӗZ*QIܻ}# ]%Bݺ겙N9pBvA%\ }>f )\0ᆞv>o8ьPAǝ& 4FA"&A(SuyԠH1(1Hܻ~#x@w1 Mly}¨ @C(nXߤ5Z<7oKpmT=A 4 *IGQNm 4QWƱlYތ-P|-_~=쳟~ɓދ/Tvv)S,X?찥"ڵ5jTyyU^zcǎ{wLOIF>zCP 8~xܞY־}&''/;;h4ƱV庺kN6m"]RLs*M|@N6Kk9<7sV.d;cRN[H6hh:|g\vp50ta r"WD6Y]7 %?0j}Z;/.m㐟xRFD{kь ?ЌAM4GI|ރ\}UF%c42HK8~nKF {/4:clܞNu9s^dU\4oO\T.gYB0N(Xm$6%|ܻ%}j8{$EsJ׭4QKgNjcLjn#=F~pb'5e[,ko[Z4xMϟsDc\K1*E<:#&tjlsTM?Z)ƣG4!# A$&sU#p +­<{@l & b9DHTg!zZ7WDhy8lm1]C} 2: Qh1I:5ԮHBCCs5e;yv۠lLuMHH曻tcO8'p&馛nJLL|x /4(mVRRf͚|}IOOX,q#G%''w޽W^ (/>pܩwܸq=ؤI~O/Ν;.\8wu566N07>ƱwΗ ksh( ̡Me#y ycHS z m$RA"O^58Cl-E - L Z0iF7Ry"6#./ :+ T]n"6܁eۨɫyFvcխɫvֽ kOzd)M~ѝ1*$Y"!I2DSo0^ET&A$S>#ߞb%Jh6ZF 6IƆ'ܘE U:1 '"L&rxVK4J⣰vy#l{D jO&Zr5?}{-70Q2`g?wٳZsDٻعIy VjA9u=$TH2a3^,E|h3zF@,5㟫|ks+3d D=0I_"($Y +j%0֛vnn\wvV- vKQB V-^PU>-MW_xcg+]?QJ4 Q@Ĵ("ZZWrSxRe+~[wZvw@`OUES,!; 3_}sm.jen"6B9#bx&[jl|G螀Va_(Adޞ>,xЩЫ1dR TaNV1To')|񬥏CEVWV oڇziӦ͜9ql7~C ꪫJKKy_{ͻ~hw߿G}RƏ /tiРA'⭏$|נ79*++kkk?^UUr<`$L `4M&d2f9777.7HJJr8 PcVE&vĊcE9"UYEP7$"6JKwWsn>%Ehp9[Y7l7x4PIklދMN &s$6ed~8J46{į.=6#hAWZ 4Fl4",roKh YVV`FTB|S{8#Ht#\`;QDc0G CSH2Q!n(iL e>u2H?{#| >{'oZY0͌1A<^6`M3x'Yj$GZ/Oit)Q4yxpXQ҆cfő_pd:d110U=ˉ`3Qsy+  ٲP6b;#.[5߇)e4=u4D;^ d=-X |_N4{#rmUV~zEJuM^}gj# ے:QH$F9-'G KJ-xC+r`Ѳ F06 j{|ARV zH4&HT0D5pKd@ #aO#F]Яr@즠+$P>XaU=+QWCjW1?Q??:ը6nHFA;[V:m$Gm]HQ2&uL4Z@Hg|*m=iO! )ٴAH҆ZXglEydw#']hvZ}{'>̦ՠ,o C\aSvOBz &e-XiD9||N0,DajtܥSbx}[ ex.sy `l0[(s7g(y^8ZIǴXJUgĊ7qېV[x I֓$ |wru!FdVw,glby4MڝSЊqxij#JM_i*5LcCT]9/2s4U{E% Q &sT<DA5If?EZ[ kojgG=o^\6j`Z}󍷻UܝK5Ԕ4(JZ̉U4ٗnV2CH3oALX ! w88KɄ*es^!YոѰ>R-4 >V30 (`e?Ro SЮT"zNЉ45L*Ϧ)Ž ?rOMI2!Ls2֞5fLJI;mܾCWaW[fJCV_ſr0>fvaS,z]?^WN\D%ة&1_9&JJi,+ԇH!4C$<1쾚lM_qbp|GwG&ya_:nʔ)~?3G5ko1iҤ3 ǎ;k֬W^y߾Ǝ=G9|pQQQ>}ZMz-[TUU=sx#,ǎ ]a騩=Rk׾9997|àVvs\MMM;vرcǼy{X,xƵkצF&!;65W4XKpM `gA'uܓ%IP>d QxZ $: a0M, 0k͢\ޅ/ Y~#wg c%EOU]Y61 ztaz.jGt1ކ#Ämcfdi0SyI&C%MռۋsZ|N*34h95X F[9'"*CG/ i/W>q+tLғQӣxX(b"txVK}1 xg9-|aO7S0(Q7}8P`@O{/-V=`o4}>L NS:-5 1`us[/I_Qr,/Q4 IF%T O+DL jPK^QeAqMǃ$kcMWuN@V'弲' ]O5jr_|Ɛ2"33}Rx|;Hpʕ26VS#bRŒ5zh럚iX%5d&w~zP/3\”DJ>FZ lmBLHBTH1:cX AnU ¸"D 63N&j-F{9bpVqh#[dǖNKQ2QEqܸq6m֬YvEEEwuO?p8Əb%\ye˖֣ߌΝ;Z*/bꪫ|w瞻=2H?/ r! 7o|]w 4ן=$juRRRRRRaa5\S[[{7O0AeQz.L$DYi+ɞ~稳ͥcsi *hpT]9Q*PN;jMmÆh 3,Wbl(ep&^/B s[[?7qvW BЇY A5%#F0ةi]-g@_0q|MS!~..;ۨ{pG=D$tNyh!zJҼpgZQV92 jXd| 4\>9-6IM-5Q> Fܨݡ3-7M'0 Eō:(bB%By7 U'AC[QʮV:ur sn 2dDHMByT6 f#A9b8 *` {d *U #j+@QnVUM&YGJ$;s``ְ91 zn!dL%ӓf#ϻc\+ .+rj$,yj; d&r(%!ָ2Km2cPiSMw"j!K x>`_d65m:LBTQ^N ՇkX*T h RwUkZ{bSsB^^} IDATngͻ4Ir~[uȑ#}YVglQuvw?SyyyC 9}=~s8lܟ ؿKƛt>l˖-%%%O?w}'9ko8D"555q_X_uuu6 nGd㍍N3o۶t͛7s=7oz9J`tͦ3ͥHPH3pn]fF4텥k) bW#ǨKr^%q3Md93Ar08 %]M;:r|.%hZ !t䕟p9a38ăk3$9۸8t>;HE -+"dIͪӥŢ&Y%VʦLfBcO%h: ȉ^ !Q(>D1 #(D4q6i~-?+e&דo5vU#Qm+[-i .-Ӳl,+· vmȧux$4ZUNJo1qpHDg ߾Te5m ݞXT||ÊѬ DHDQ|FD*ιu<'("(hCȶJ76]!B~?_{㧂 @%!C+qi7rmcߌ.['1KBrӷߥY_&Lý|#8v V+:^A$}R5c"hk#6 .c%/2a:(B2:pcL:"" M;S2Sc;Z@TB@DmS=UU~΀"ZeEޗF>`0K/L?S߿_?}9s朁֭[VVֲe{W\Y8/~ɷ~^k4 /7@  W_>?v=.uu=zt„ EEEoZY}>Ν{w>o_pa}}۷occ'O<3fLιsw./}?3_{vwx~5|˸%D,ܙˏ/L)4' XO@' +ޞD! ABǐ, r]PU;9RI0v+0>:܉9{9\ih/^kVk#Volݺ;vmgĉ;vXn]UUU׮]/'x&7ވD" ,89ͫope^).ބ_;!ǢFRu#מ[~tet*TpqkӃJE\ۗ`;#.ʻ4"X(m]=1>9tCuEC6 ectկGIsI-Z_1x$U;gi×7Iaq.ณt-ߒj M˜-mD=sCqX[ÇXall54i1l^VזKA6Ðd*䦀Έ'U^ Gsi8."5%QU%X7Bca3EnS:1طq! OrtڇYmGwZOl2 sƦUTJyV"{&SŤ';DjcefgbER E$#ZB*AnI4 T5iMA"D"(ŔھXI8|}DM_ Ɩ͊EBԠQ$?;j(Lg0[K~\#40FBnqԷݒbo#F-X _TFBKT*dMMlgx:MD,mu%0gND qD׺)FDh¤hA?'o@۶ݖC)#P+,*]KteO=ܶ/$ r7[ZX Nq>Z2t\sy'ٗ^.(עx`=ٳU?a^/_nݺ`0}=nw}dY^~}nvZgt:M&ӯ;v̘1nj7oV#G6l/jIM6=-m?[ں-Z~@Jw'1rMs,<ӖTyQ/]gZޞp8 ua&aNu{L6.9wQj:f=P$ǹ:%N-CQ |R#9M[Q63Q{):`݅_dBJLJ{zܪ.n0'Z]Tf`@v7ىjH nlNjq\N?G`/Gqhaׁi\lcI-`19x=$jZ8u 4/+ԀJGU$,:R5EQY.6\-oa"f՝'Low6'e񰝏.ަi8KB ZC 3;5 A*,.E MU 'EOIQ6TykiZy}b)ˉ-gEqTO \RЪ`˲%ztZHC!y_A(Y=ё,F>yl/'S33m=l'AU(UODfB^T̒CܷOP~xF%r4(b s,s娋4')-XZ]a#{Cz7e"AdP[ǐK1A(RsO5tp4s#/ l[RV~)NF!W$82Pd\O}kٽv j6kE]InGZ6H{c̙7x[o5iҤ?E+={aNZD"G)**{{ݿ={;vlڴiJ.v{(ʾ}RSSaڄ_lJKK+U͛8~~t_?fڵ+W|G q|Enk29sȽ-fi}.ϵ d"Cy~e5|jC]G j;qe1Nb`#xÚ(3W,29Y'(d$-wM!/_ᒼJ@E\ok). =_OFG4Q#{#T^lw~1w/alT2 ;k/wчV2qtNgOQ~CIPA}T];JY`Az. U4z<&L )yG qk5:{jzf?n}j-Q]|g/h"[| HOdO~g͎'0@ds8{GJ_:Xnv/_o\H̰Lr2mxyF}.8|%GMV74;eE)%HɫI{.yihu-uDtZFwmffOɊ(tx!c^QVnNypRom\AunKjN"]dfX'HA 5E-9R#!p¤LBN̈́ F_5(ˡ)ZVizf#3%VAi:^ONL8[8k-6D$zgL%R^O]{tt67jݧ^}ZZ@jjc p W$a'%^Y2*Jܲ#Qj*av j5a Ū!I%ʂԅY]GYt07~I$_{i*uѣ4ջAoϰbM!7]i0ycΝ'Mku_e?n1c[n{W]u՞={fΜ9a„5k<gx,:t袋.:7|yȑ kX744L<b֭[zΝ;sޟf3_5+?#IS*!5}e/p Xw 'u`#ܷҸ3TgY]twy)ԟ۶ c]<؎Cj{F:.˜Sw48OaXBZ+{WĸnnRny\z';wu!ɇ! z \KqXFSd&a ׵~ }=t5@j&to#XTplnf~f"jm{I|+s^De,QUQjt53I?sLqmwPRsx)Za& g)Ĥ #UlJnU0o軙sk魣fON(ME9o.LEԀQ?Ypl'[xK M,%0!6Ǫ8'*rsaM1p Ovy"dwXc]i~7pԸ)yy?W-exVQoڡ)&?ɦ /ZUJJj\¥Y=6efuxp|v*]1}!T4UcMeژbA}@,H $f3P>[eI) Q #zh;Wqv:ѩco%cEt05ml> KX^ie;Fj`a2j~|U0ښKܬQR=3:x7>3"dA2ģȰTϞ#Rb)CHap %sX"bNef~գˆ4:N/| zGq'A$H jOP3VDQngX|sη~{ƌYMMM4hܹsv{&E/A馛&O ǎ ,]433~j|3/p[oX,={9sԩSۺ tȿ!rx@RiB ekp΅B &&]g) /f5}Y=R\VZЕÑ ٞoOVFnf\MԐ9rL3!QK5Eb(4e Fk ti d|UCnu9kf7[Dȑ:'2gavOzS]Bٓ3k@NOzcq,zgDax.w3#+]w\S7d9M~>/~@F橲n0ǯ8"]'~~pi"5/V8*2dܳW_9{8CZhTg|UkH(DfAQ {APr0rkFڬ֬v`Jvd>ُB@VZ_&:i/ׇDL>@Ei]|}# 1~[Pg ԧ;IjR{ʇL&YKF8363mE=9{V?+I7`q?_5J>kd=0#䶡qц؄P?"%A𲬔7yLmNrQwq9ĽʧށV ("6<[9,KgpFN3]}0l[Y-Pv~i#ghq~W&N{JKKwٓO>١fkjj6l3UUU&M [l5kg\TRR"ŋcbb:{UV]okptx\CSNI|n;;;رcǎlii yw$IPE$d2YDDXZ~akPWiP6W m<~12dr.죭4- %IOuS{Wq-+anbF-܎֚R.6*8vyp-`IsccrZd TB|ˍ mW}5Q4WUxݷڤﬔ18"3s9q;JFJ5 XW[e%FNg3y*ɈV5%= :mioRg{{ҏD-?׍xuODBG93+>/>?c$v'VwbQpL__/]4DdȔ*j5Zm.Q 6 IDAT1#h࠱d`RəMicI3.suAQ:4ՠn؛:|2lѠs n}-Zf/^oSưd+\:˱T#+ $WqnCsDM}.d0F_Ž5F|X3#l$?PYLAt|.VVc] Kos'׻rlȁM\;G,<4* ٷräޡiC=-ٽQ*WݐYX EnM6D0M `KChxn?D<~vcM*_j| !Gr9 AS{샭+p fCR@4R>8V;Z)5?>2!~H32Fl&m<%:|5y/?>!%kT|pm.YaPY&=D.S~b#o[u2;-^R,A؞g/oTȑ ^F )je~w}[7o[[ffx nZXkS%ȼJPJ,/p|µ-]gBi 4M/lm|v|*1:VQ=h0-5_M2z@P2ZjvsJOVQUR pZ&/ⱈ[ɰ0{>c.FF (Tԡs#/L eYoؔgm(N2O;:B PKI&}G1h4Gaj*}*P6U\f0(T5[ImC8e0 #d斻(,/D=W/6IIvsw.l{Es 8\nx3Sُ,,ncD0%SV ܓA(HEZcpDjAfn8}Eaj4Cޅ>C3?|(`Ve`M.!?/q4EyRG_S경VvJ(\J9caunNxbq}Rlj/wxj^?Ly;F'M8xxoR`ҡRrwo 4U_k#=K:&f|VHUPZ{8*9H@m9Qwjbx*FcTN^!_&VvwfX1ST+S>FhVOHHA69~$F3F_)|g5#4 Jdס 9)/r*j枵|9%6DO>97lcE7.o/v2[n#!l 2w~i)NM%zD(y()neyDkI5J 5+ _+cz4c89̩Vj$RC-e.VRJ'P D^ Pz ѥ}O5|X>5 ӧOꫯ,X?| dee͜9_=t2eҁ0}ˡG9991?wZRy k׭[7mڴ?6lZ˖-[lY.]^~)St\{OVЖ吽[(9oP:p_$B'+.@A;!p5i$"˧xPhb+3r&+?Ūr "RG1,+G;$ GdYlNvHzH @qHxGv" iC('Ě̳^}(sh44`o&2jT06 5Jb3p|^nN$B%/}=tNU֏5" ?Ҩ<^k1>{k}-d:A*K(-A*1HNu v.dW zHod7hw- 6`n7v۷mքDżn絖m36J7߸?W YZn|ָ{N Sk$H6Qݵ o(/;G*U>ƣ9ܒ>,E@`ӹj2+;/`x7tzlE3kEEQ.êlʤo@D:i>SoDzّW[~P2|7eausH}&%DC;e%ԯ:vpwzzxdz:Q hH"22rw-](UdZZ] TRQ!\+.`F=^ɪ=䦹 gF\7}y{{Z@`K.ឧxwm-WUaff̵q) d9"cOT7mgh!^FQ"Zu]q{H/t=t !mϜWyet7K+ZRt,5G׵jK K@Y a]?D\j\+sϰXWV΢Z}>^r". 6,T\0%.<1ng׎ZҠ]w:H"&nt!@DW,c|ԡ]iQrf Qlt~G?Z-f]VL'=h#JZ$ A`t{a<5,ooߘA1u *E H OAѠa՛s{Cd &D2ٌqBOj/?P xR* uK{+mZRINHxXhX5a&LaלBLԗ{p :<\cVO|򼣥ť276!z&jmRYopQ?iLUqsl*r ]cE juaQy]،$Sf&=f"Zb D3'"] Ǧ# q;#Dؼy#<]s1---~kZZZZZZz\L\>!!!#G5"'ϗh4?<|?0lr?t:A]bŊ &hcӻ] wȺ|ӱu/X3QFʏ0f81"!0Wn: .2Z}o<DhqKjkXY{h1<XƓy~{RrDpG7JL #r%֖k-]~)xk'XSۼ{ ɽt)O 1"@`Ƈq?^T{[AfnK24Jn;={d_q9kT0@Yv[7ǽiom``ԆhW2Ҫӡdt<=Ϥ1)q91,sœkgC¯j*@Vuo1C޶j%^_xu7uڗڰ5 @+(Ooc!}y'O0HHχ6z`K/\B[|w2lOߑQ% ͔:mT6WW;V^ `$G ~{giؕHd #mP~cJxz{Dvk+~ɆLse?g}d a{SFvŭViq]LvΡ|j5[T^kk a^P,w44# }W5%;LFԂJg(6ciw8sȽh^w?Jn Sd~:PQێN˪ύ%AH^04vtV?K|@NA+R=+PP2e~ gV\Tn<Y@)>ߦNJ7Ji_@&`b8C0\*a%k{Wz10'(&]֘"(A fd(fտȚ I!ϕ~ZƋ.a]%e'WK~ ΐ|ÇOOOǎ[zuGȵX,3f/3ڿ{3gή]t:]BB?MMMnl$11VOϯ@ Rju^^n;vֶh"QW^ :ֽú7q9AJ_=OTS _$^+V&]_nQr1,!_5̍g?=k!it|T,D}5`h]ul/jk Q`T` Yv)1Q*Z`68x;͑y MW[ ߙ)t[[nT5yaϹ6.Sۺ@ /)IY4al9 5*[ƫhq  6I}YR@ڼ7#QA:{hKD D+ --2Ÿ9 ABlr(G^~'ƾL RO#%51_dG tpiscޝ/]Jl>h<;B#|X%  th.XuxJʏ; 34d([eTl F3&- #)ecm\WnB6# Q\D35  ,+KP@.(& IDAT$r@Q$~$(“9dN[w߿nΜ9´K.9rdGn[_LJ޸q !!!gΜ1:$I҆ >11fџX4 ZNdDm۶?~|ӦM 9g<ϱg Eyi|֗ {HPKI`v<~Fx;%^Bp-+<+N/ѤVfwUkKj$o?t%43+ߗ[zar :J%2hod}~Q] Oe3;{"ظ[WgqȢT ݦZ{xX gDv |Ό܃T8%~;gDPJ#Z}D! ͧ }wcnәvd~1>[<%C>1t0*bcN!9\\]p.F:Kg:ak <_,N1lښ{ J=cw?cA ZFoVsk L BTc?ޖ5zy>_dc 32#M\tż6d3{*[gIb_~}2 a4LN tb C{B D|c1?OQ2 $䈣r6<}H$dP2$›?Բ Q_Dk ] Dm v׺3 v'4H+4{c2PawQ[a2(K*#AX"xL }2c1ַw0c)o].[.E~Hݺy ZNeQp8<gZ Q[1چ䔴/7!Ww\v]ZCIƤD+k6xs>]AEF6PT^T&G]}Vnd_x0RMeǟ?SփF^4{ ~9dD% H0̨P'S7?fM Qڭ~;,aϻ% 7EpSIdK cLK+y;VǏ.HNkiMҹ8/IDtFFʎMSNر;sFcgώ=A.].K933sɒ%}z}mmmjjX;uJT*O:zuuuoւ  ϯQdw#ȯZF8s[+R^ 6(FNTFI͆E-´>nnzQU74oJUnLՅ3qO(6VfSmf&Yks(zR̒3 `l)~7p5[w; oI8ldzYPpk62L J/;oI|  TP`4$vo$Ǯt<|[}[ThveZ'_y=|4|lLzW\%83Br[!_=>-'^}UEJC`Y5wo9w$'Y/|IǬOo3-ݧ.i=I隞S9܍^SC!pFJ [:h9Exk]mIfZ>bM =ّ+2="Ò"6܃7u4VXdF{-x5<IB-9?aUw8 \wrc؄Z1V c~w6zA$Pi@ADpaWR"\-#rT YxH5c02 O\Jj^+%IIe'IfPYeˉT1p$#t;(d={M8?[o;;;pUU___[f͍7JF^'gxȢ( 2wy뭷̙-.iƋ/Fˉ Zug瓗ɫe<Βԁ}C4-%l."T&睑kH"qnlW#CQ(e5*lG#^j5[e)9M>p޻荫??1Y6RLs%6.|ΗWxuf m_e(d*ho"$-%`&DMLR^ UN ?.#dR)ΥGqq&f7mWwXDk+e&DΞd΍w yŒp.#@[ZOCzPOWo5B뛙JzC{ػ~)\ єZ9oT+z^(8W. ּ{I$gy1A,ްTiCۊݏ]S$3c#$DMt&]:7TBr#C- ִ8M8Y?Wcm,op1YuRaFvQąEI@kUl͇&K$q#Y%\Q]JAp#`4 47\h$ų_u|a״ v4Ԅ)UׯW./'L<,"cͧD Fv`{#0$L]wÚ`>Lfykd>fIZru4x(JCIȮ>"ZfP9vU?#+p2/="X^y2Z oMCUpUIie~U`7~r=RzW_3M)}Cm>oGK Esgp6o Ҳ_\yQ DfI&<"*b5|`. qNh%5b칷'DzjIUs:9j97F1?WF|)&<" Y_>5VzbTSߎHl~P;B އ] %a+bl\ Dfm"!/V+h&1iLwg4 ǫ^4*$& \Q|;!&eTZbƱ|%'F17+aFՔGj(tt0bOw;Ǐ~Ͻwh"DCj(T <}^ A-cmj-i~j2J9ЯDy晒y;,@LTyԄNj~~ݪ峇;oj\5+ä ˏAa<<2(âdUCg.?aHhPusSVO4OA־2=oy2ۙ 8>fڡ}TX!LbI|SeB X0̸T服\V-@$}u~\`711<71$R_uXa fD0L 6eI:r rJõLNT,g[zYlZ%*|ue=eZܾI7Mp$I:}1cZZZ|>_vvbۓcbb1ݻʕ+~|^P(~~{cƌ-bdhGt+lHU@h#SMezj'! ? ;x %6 M6/443 #5ʸwxpOheI}/SPde 5O8tѽb\=8vYOu{g[bT nW LG}K7-߆7 !ÓH(o.X=7>YS؁)ISlm A։.iN X8g /򊋫R7컶U([(|JǺ@)[G+.5ѕo-Wݟc [f<z RTu5./_ bSm;B@*zD>l6'/ףS(HfA.JZmdՁ md"szf.5cKS>^/}rexNA`ۇU/1TDב]r6j_+;^^M^뭥;NU ߢw',w^nndTdB0*99m+kQs_eiM]1=rq8 #BquW%,pcX:^I5sX65=0J:BJ۸elo5[4FnWqL"14g?zatd]uDBr+cz)K&)W과0 C4)H5pycsV6]۴S72M1㚵M5.HӌGik;˱3Ѩ%ur˾;nZ#tzATG+5e$Fc6^)&?\3NKYUϢKܡ=cMWD1iaC3faK;3ILr_H mh윛DMg3M>ų7b3#){/Χ/:+K~tMyO#mFā |a;ȹCFKh46noW4dDdi$|/DJr=-^qu Z7' W\h:_]ŹhEmWǽ'^:_T!oHnaxVfZ"qEuJWEҌiiza?QB -!'3jou}6aD<~̂M&^H4$vcpNǸ8D37 `.0Qi.u=(34yXyYw_-䧒`H$G➸eH{⋍== cGč.|Ĥ$ZܨzTG!.Goá6u9_-_3&^^Lg4!E+,YF@]ue~RydCx%Z]{ƛ\](̆6*<- #syzg@b^xǞ'+>r )aۼ.@{Znm&1U.d \{8rs>ٱeRɯ譿S x*l#:H8d \6@\yV-H2T%0c}vEcYqOs\J6FoQ`Q1 ?쌳qp8p2?eS˘t7ٻۍP^a߸)YjfGI._K/\}yI祏Rs`Di(6r"-oUnBQشysE2;yle951u\ׇgS);gȑ.+hZgZ.GhŊӧOkŇjk֬y'g̘q_~e޽K,3f_}eeeQykk)((8ˮ#[Z:V6:,5Y0@fw7S/K2Idʥ6mϳ^Qh]84$q7b/(sA0#SPQ#TxθuLyljiz_2ap#TD IDATI|Xʄ4!+9fl7a\"VMs(sq8)/0idW>ՙr˵;|Uwj%`U+sCzeᤢqs*z_D}x "a-KE]m:GW0ԅ6P 0Ca)Zf%2j+& [4 R#~Y3?9EjO83(WnG+[i 1-_Ԉʙ%AQ UtjcTwp&rE>LH0Jrg )sv7KՊۦ*u eƔD:P F M"[Jv&flBQMKogi|W4BtZ>@S QYqS߁5D_Qmdc vrE]8Hjٙ'<}{0~%*a!=g;?(vlZ;ճ a"e"DPWL~#7  *"х)YRysF{d8{") NW*_7Aպ6c3C@ju0}6s<Ĥ#ROG+zABZ,j\[9<)1)^+3'Ѕ3exygE@!At )"q:>|}>}5_c=Ys W5P Af =ַp;h9ϡ3}ž7,F2s7/oVq nAE*akc |"oMR SՕ7l} Fͬ$d0|®lP̞W>yZs0j@d_̰gswPl&ԣ;v=|~1<ۡ$qǩ P1Wmuk.HT.x[S3Ek|RRSSv" bIA#(!hPHӦK*I6d{}}]?L/ zͰ<:rLٖ$iL4 x95Uo~ 4Qr;}*P#5 kv}kt^i~il$+xIiiʤ 5`U^0l:I}N :꠳?!EK}oʴ?dm4`/AVTry^{GYצ]n%94geZ,]U?fPˆDPΞ[E3Z[t'۴׏VDU ubLabLȡ"˞zfݖ2u=aw A &x/y]Kgd]?ck^2a.Fjg{tcn!q'f?S/ $0xYlqk%ʙW6aq65{.2M13u3K qM 5y/.83كX4 y=;#p^<6=h̴ _- ۑd}Itpd<S.)hٸҬH6sƍyyyOE?0bĈ 8pܹqaaaEEڵkjA~'x:PO^Rg :*0QG=LX&$#52&40,`3X`D㢡8Y"@L1 膠y-;yE'^I نyY8/2w_2(?V{p#-C;fx.Qot`i*wRDzUke-j k3LFE7Xzz,o[ y-z@uEMRw K{98-<~={6qdz7Ym{1k.X@N8~93[*jD$ҡcĠ#!0=Kbi皔^785^Zq}k zyQrlO4 b3xqϔb+k=z/>Rg,!g#;ڶ#OLf fweM(qhvsᮗn`HU2/`@KU?G$B9\Yiẗ́!$"QY Æo߰%~%f7&qʋGS`Md\23Ȅi7μV6CNM5Wz6Նǥ9 ͑-棷;=ӿXvb^A|lOẂt@Gi҄ȟmɱ_-VESY#9I1nAkO]4z<^`;֌^I6?vxbJhD 7WlfnHe=p #R~LRb܎\&\ɨSP?ƟP7m^+zFPRy$Kv" yy.s]%wɩYwA%3-Kuc|⍧g%WR2y.Ëv%C#:஀Gyf p3 OZѪ:cANq.9C <|VB"ItARDĻGF5{1Gql+OpoFtW'nIQT=qe| q n`lNt?-6_&ON&„ {w4bsM1% }c^*TJ iƤւEy?SéјA1 =%BZJ '"RK#Q}WO D\]eg OMo1_⁹$ohdJfl5EuSAJ;faN>Bi2(8:k2o㱥5\F]qK֎x]hRzZxIVƶ/-aԣ-4֕Gp58*;GrVs]jς"= 6G I-Rt E"Ph>sb  UcdfDV8V2 8q)a+Lf,ۨ SU ` %If71N׍ܖNy}s}crS磿=)@/ZJ[qxwc +;,32oKp= CK_AQ{Ka&N|c&n88~`LDg2Ećr3Cֿ.&5#  W;(*a!ՎĜL^6k Z.^3. $'bIT Ɋ CٿxDKi2s+q8%Kx | w`ryN< [߯fҧxιar&'[);Σ*BGŸ;bu݆vT nzZ2P`*R 䘹Oֽs:pfL*IV=iH_I7žr:!k7yӸ3?4l:)Tn2Z8vmbW3ǜhes iɿ}z_9u$ DTwݸޚ s[f(69VUo3S׉Nވ׽Q8=Bk9%J֓MFY9C۩?|(C?f<Æ ;xॗ^w6NRm=¡[+'sNtXG9Sw W,P== 'j Lĉ#gn3ͱ9&B9LI‚Wң>J~uQeaV:y?k>'39.m+cb;O _*bJV,NG9;rZWQe} 2RDg uG8b Cʊe2램d4o]'Q +u;Ç:7pǼ t q#p*Ċv/Xw̺ E!ovR(g`J; FE N?~ 786?'4$UM*w Sp7~sOGW0$@oɏz6vTqeŬ.=HoAVUtnz")N$zHANƠWN kji @/aƕǞm}:+ãP_ލqW*4Bs2["ΤC2Ѡt07r&LJ:~sCymSoW\=A*FZdb'vSdꡀb]?Ǐ"0)-~v}O-DDRt,}̤3ë%XsN;n{oz! T0AछJW[U,ԫj8,NF{:^ r-F >a,Ç饗c[WWdr:6mV=~kP,͌G!+e&\ z(8Ry8/ġ;?9& cOFZclǧ H H<oHlB+%Wg9'|T/gTɟ[ft{˹ :)L]bZn[l^9* (wBI2C'bTףwpe9"sjXBus8!̆&wNv !~ɦO-VoUH'tGjX8ATYfuMTKSáO˪ط'?8ODBOnW_U$/Oi:5!BHȉbFcKr0 YDVZ-3]O}'%N.2Z ]qD,s }D`@~O@OBR v-j+YCPA#_蝩0ɜp!Iؽ=[78z{n0(i:jLި 4w:W$5s# j@+JZ{]>vP¹ fQ(%XP9խkCE '\⸋ F9d ˍA.p:ճG0Ӊ˵'"% <ЈO MܙWmLspS -MF>bRx'ߝt &KVx>_S>xQ%D@f~.;0/;$o0)]VS!>` zR{+x ] uzFO%@}cSG;@agt5sb K${>CP0444ȲxUVu]ҥK{CJxxr+tW%AAYhǯpi BZ2Ocb젬Hh`%Djr,k3;[@oKo1 tOn 5 9$Zъ hw Zxx3%/mtk91M7py!}<\nmYu(TF]צsy:&e#ȌH"^:.`]]Dݫgf㰋-hUZ Ut_dxw[0EQAQʲ<>Hc5>H[[6TJ- W$ۈR\;3c!Nx=&h9ax\T9YيumLKB-e^BxU" b[$MhABueR3~ܞ²Vw1=dB9/x XH  +M.~8 **8(' 4wՔȺmpbq4Q3|/zq ?CY6OFetŶ2U0騯 Ff*4pXn:׶#u$i d@ M#UNQ$j_Hj_ f`Fk N>DrWv,Ac($AFH4ĀڎMA"J.QQVB#VCUN$+Ds=Zd .*B+LZ IDATAT|乇ooֲe֬Yc8ɪXԍFT-`2 ݤ&0/_Opyw7vܲG&`1Q^RE3|d >&`700hjDQLAj km=&0/'0B- 3^6KQZEh ~-Ԟ`aR;luqAH%Nt AlZCD,[ /^)MeJib55T{΄WHHt?WRǮ!7[kyͣl 2AI Ϣt~پ"r֢A#Ӓb 2gwt?F#gx1<2:8ax<`S00znec'"$07F'EB~cdICRR4lOԪoxC2UCktmm"FGg^?<gs DeBjG'P5(|ߠK:DppJ x;sv :H %BC_ b%1/:ӛMfO+@";Zzu$}kg'J]@˾kkuxMY8H#d #%݇;A@+ *JtlD*ǹD; wzaΔB ̛Ad!y0$CۭF }HC@BS$n2 ~f+{ݛ;'*LcA&Nu􉇬d9yOܘ)SBxs1}^:3pj6Klwe^бd%酗sY¥vIeN#Kcp+E83 S'm{|v6- ٷ-e7?$skf )iʀ]a[|Bm{8]`hmB%U9<}?{) V-Jfk; D1u&փ'lJ2f̶.F$ )T1#tTYsitw?ɪv2a||.zPɀkXrWhU'%^q(Ոj3N/9h$&#a=,%VfNB`f_EqB.hIHPlvOBUj@wOI}c K U=!%@c~/AG%f\vE%n8+El~`OQr%&z:x8/brFMa8?mo "tcN{{_:S%FSu{ZBOdZO&1:x.)у~nIg2fh"  %89WIѡb,(9x퍻8R2\{*:=>(Gs(۹hр w"27gŔ $ h%{Ww;<.?G^ ^8t+FNMЉFVqMycT M;Y+Zqex'%F5pj%ztւDH3Fsg`(3pɉgN2F&gH GRnԫbQ]fZ,N'xMQuмMSTCii  @$:9{ij  DdNaY%KGt3x$=CGqڿ7>ptFY:OLa!Fr+MH`!XRTTܽj[Ñ>#_[/fuvH : Z-`] 6R6[IQmeϼHN7|*X)W tij<);}`AG@׭`j2ƀA׍5ArZNؘD7e$ LwC'}jfqg2J|D(ȯ v&(]+  ntTv !g03xt HOaB~<OCcfûcWsvZ?A״v2ÖdzHD0XF .A# .T XL|ɜcWhC{G>ϙ?X͂ŏXNCb0`2?u\92;.qw!D !EZ(Nmx-@@ F=kYq#3}kٙs܏QurrՄ@Ob'm>rJ~+l,e <@,q =FCzRJ9˝v("W<@OGA䅑#Q*q5AatHq'u\5+K^NK[jQl̾s=,C2b{ATn7ۦLne5P9ŒJ*;Zi&~&.ovڔL:#E&HIg$h2qQ&A1Y<ج;$ab|Rgn %LLC)t'v&0!_T&i|N)#|K{rb  8 0 NoRrb1-楡=ۈ ց5 =`l^ ?M l&TB;&.V&D,{d`QШp Pd0așFH i: PX\0NO'sŇMi:|A Q"9N @tTB]8  ٽ}3u)W &M\ekH)U~"|w4wvN˘A0Lc %Ԕڵ,x[Uk-bd_aFZvagB,:f3ҹE/Eya4dLÞUW QyZsP0K016\Q"'gL{v6!g<}|%hFNÕp 0с_mϺN [FE!$?dHߚB$U,^|*jh۽T[1!Ї # l3^A![҈{=z:cȊ7x^''Һg Yobx?CHYZNm ɓv7wBP1b##qGkop@( 9a:N$r"dXTu<{3妏,saoIyM&$Q9Stۨం"Д. jh2 F1.u6DÇH(iwg’Edʌ ){:zt Wm-{OWh;d|Wzd0>_DY9gNc5nY ׄ)f"2E<Ag +D~SgU(h JK D\&wbwK bD4!u(5d[fƱ՜5btћwӀI$0Ƽ~4؍8k(,p0Ѥ~~+4 dž7g1qpA.հگW{`}kExlp)NtL 4C{Ⓨy] قu{)) $ |2(n=[nS)U1K'}{|E]Lp<Eh|Px'fPu~GnG#-# LTPG95vI T tk r 58Ag_ P!³6߿8qa1`]8.I%UKݼݒ $)%:h[cGozO ㇔1_uCI.i^-jn1SI/H!K: 8JC''uTMWx6<3>Ii|Ÿ0M47s줘Uf8p I6ƙH.oLFپa3=} xf%zcP<ݝ$5#L%_c=F,t|r4Br775sym?F(z A _")QkX077$ IcDIȁf!Ƙ\ }Z*m( YGuSI$.?$1HE%%M/o`(+:{Zb$cc)w~όF_/|͎U3r\?YN?CQ5.hzouX:;Vq Co>3)-lXQU~jޅV nJGr) %twֶs<,0S[Am-!nm`.h>*I?ǞҵoNWoٖ'qM+ xENP|jA/!?ns'Sx̌1&zҽFK,\dbwh,r^VR1u߅D|Ġ;Ndɩ9dQ$5i#03lfcf'.E96G)>z3`z`{-480Jc* Q8gw_=̣ru> _s섾+d 1IOV}8Ks1QXglN:y;1ip("VGY,ٕ) sb7Jw#3W$c0b2a1QbH0Wn~D//'P.6U5 )׏HX԰ȳL&~/$g0P֢. [Wk""MndGc)s 8!" H"_>idI蟷JUF”E2΁uX,D5~fXݒ-gިI]["5JLaY 6)ЭҠЪ1ˊGJDSO_T91@(zK{XՆGGw9c Io[P.A8a;ƳE4+1 Rɩ$n}amG8j UDC~ <1!*J$Fv4!HX,bHO 8;`0 $qR^_fpF! CHRbؠb1r"Qe\)r-4AA7|ȯos+Hٮm* WgzIs^>^Ofo#S6װ'ƒVyGC ^YVλT?81zO:q/d{#xҮP>3~hSxaCsB4H4L2vMsDtd0QQ?YgC";k"BrNt@}ABᘮl0ws/)ATJ K~|т)vtי|iM&Cf Q nB*NQB@#4;8L.`(oְ-3.k`o),K@6`an$4c$sfR bla8ޟWA~fVEgj#+B 1ډ]fwt9$9%cЊl@Ge#1ϗ_,4'Xw>E(FFÆIF rRDeM IDATA:S A> |Eġ(J8t8Й+E9f &LKz9V MXVn23;o8ɸo~xVJ ;!F .2e f϶nj"3psƯO,a(#+Әc3Jr5PE+N2k8lm<30CAf@hԗ\ŸOزi#[CI_çZ?I84[)ETp<oDAu¬>DCєy| Iz29?|aiRGg1#1 6v>96}aŪ&e5h&j .i bWOK01L3[irJ|'KG0<~GO,9|H.7\}}o|c{<N7)v%<tqd-I$ bC^ pt9Q7>6ݕѢh^9i߰VOP1ThNd33LT. B f2bT2Si$3QK[77FY@(. > !DTn::2tCj- Qd?@G֜miwki,ؾojݨH[Y]#B _QĖ̞X!\TAe|?SǞ\zə'f`/r  I2P a"T䋐D  !YUt b8e 2J|O\A-|GҗdBVL| K G.Tdgޤ0X4QD,ZW|]>m-ؗЩ4D17is?yoڈ5S@,vi %ϚzLI&x4w7rk-"wNfX)5d~|;ie2n&Aq~7x)sM= dM8Nur B :h5X)ғCL 4YF9Ւ(g0glEigL!60 .LvzZGgrmA5.*L{J %F0 $4=xD錹+SPHFO^' lmgkpkHr<195|[ַ ` 1vj|Ӻ#`E䔌+Z3F(tQ`/L(VHjD Dt]UT5,<~o63 StU4:D5IZ5 m=ǜЃ9uvrs]ő? e)ƹ)4RdB'*lNv:o>eyNDMK ׹x&JIyPaBS0ٶ~P`Ч8yHz7+)4#xS'x9)5 ;zy&MO^^"\Y=QlGfG?nVh1f@@Q艒/CȖ͐6X#r!DbSm#aR$@DahĔ>nd|]W鳘>- {Yx7LɌCv f];bM=?=SvԊ 7] Mq!^_'=R:hqZwccGD ?b)|A_w68ӵ\r.3g"ERnpI*)⳩o 9v>BATa ^ "@}'?隣dXEtI(AKu sSdOk0\2|3Αvn?Z#xLT1aИ`e".hAt_vU|dQcQV\fРbH-uoziퟟt5gū$E<ߤYɓY˟(4po~_Kl%T(λ>6G9ǍEt쒈 HDdRXr]  AoJ@@W\efw5^$ ӅέjXaGQN ++[yȿ˗ <2?Ý8Md峦wN!_u8W`3xBkdq6gUsI $^iUA!z!GER1o^ ۻ3N'h޺ e`b plm< Hc HVZvLM4" l6TBqڭZ@USC{Y>M#mř$HdlF [b4F|^_(r69ܸ(rߛ-Ɲ_ʹnu˷GFq癴uZ;6PfdAяԓ4GеlC?MN=3VcO/EV{`-voj dTs׽gH"k9[(">5FcQފb IV&[2ghNڲ=[>@Ggo] 3&<HSHxe_}m3fUbn{+TI*ɫv75'2mLf&ثSeew EEy`5cpUҴX(q4EN,!{:#%V. I#W?ťk{ó+o=u3?ea9& L$G&tOA~|>$ _GfD&e˷aX<& )KHC\E9˼R2B;(x?}Q'1-CJ8}f,#m[j[8lc ϶qLjzlZbIŐj]TK&+d9 Soa 4**;et `R FNL?4r$1r-`rS ҰEX(W6l!ߎ2ﺖ^P<*cT HEhQI|>X4> @ʄ Ci. L9wᄌPxo~PuVkƗ]1;Z:TpŃ ebj mJo 4P6E{J/޺OuDr1|uUD~l4)CvXG*{9|[!ނʷmSB_'yDDBSgOLXף/UaTly&l~$1%G\c" `iT5ԭsw++$ni^^!XsJA8?;hco{vL~ _|NXD4̦9ΣDt\FQf~0JW*KYkBՀF(LxL\}D08j7FcoTIu$n(CZٸ)0V<= P:^&+UbgJDڽ]X>&AOu?!MAUj:ecqd]!߼D^zeKH/ i`wzuJ;DP10( , Zҕ<|peYY,ZG(# dTz)v#W-`d&à)T?ji ފ$ES'V42m3¢*NJ+{{|ZBn6~5RigG8fW{y(x+)52JR 3:|?{:f>ɋNSɩ!Yvh:s]㊥9W.~I =ȷoie0LWry_%C$boiL1Iach80<̖qbrtn:`iMPnBS=?[Ra/ :hfj iDT"uX{1 4ĈLtn>mN-⹩[RQp{DkfGշS#@CkJ8 r0XyM!Hkw[`Xƻ=<]IL]QiZ(_UpYCaFIv5˰rh sj_G',.@7\R*!_.)l[&\199sF\x!HqRƥ* ĺwIs_cF[rGsXE3Y6 XJnlN;m1Npesf]^O Ɗ -7xEX͘_`MbƯV(cV4x.t%3?:qËpR~|L='k؎?"` <P1+2+G. N_+ݭXGFhEeC}<*#&Eg=DS2T2^K$Ufn>$| 4tAC=Q4/ŵOIƴ"7??8ypOwoLy\Gk0J\E'7hKdMUN\+4hHO#sعEK*v/XvVK]EUQ$.yGTǓCre]/"S̲R 0\ Xc W'2D*YrgMڶj՗σ<ū- %{~WJ"PбHkTNjiVʍ\ݦYS^[ty~v.|U^򡧅^QGM/#P P(! D\fA06Ԅ Pi#G1 WWcz]elFƋ f3WvnF`H]heh7X aoE Dz[f-ә"]"[eH_  T.8~#zbeEf# f!;1|fJp#`E<ɟv6LehJ[=xsGb)-AB*#;G)sU$d^i1fn7'?daH` EI$.3#g`-WCHܙ^ʵ} 65 nƘ/gݱ zEr8EEu{})"N6n,⛑B;Vy JlT}^~Dqv&iT9NQ/iӗ N?y>z>eo8×!q@mh=Q]A'߄/QnMa3A8|.h TJ[ *q|’]ssj)f-9ۜdt?a22ӔrKgAQn1c&m||iW0$an| [Ʒa$pzwEŅ̹d( r!0 )&䱭KP12t#sMD`AaBݍQ;6$FШYPSWq|R*mN=HȀ@EeSڤ.97gLqxu&eFO (oq9qg]hLf1hTu2|"(:5pjuML:nUŤaֱ 8䏚4% |2WgRlb.&\]9{zNŧ5o.#Wqը}ع3[r8NALz.狟WiflnʣA_]@enP:KCϒ%pmL|6K [,ܳSb*H9_\_x7*BؑytJUk'*2d Jf7ҷ )1q08!-38I%t+Je5! #+yk:-;O(OBC `me> fΦ!#i?VgJe"92<%OQ8  GGXϦX7i#`8wL41&[%v#0a"$ 22NLE>U@Y|MeIѬJ1s\VY zB9YnnzSabZЂ:-ODTQ㨖z,]2nu8 X9dWμb9uW뙽Bx m)5ùOӛw;(o~wDYGF |4T˒V>)APEՙdrJfLRH+s5rAJF/DMaR@<<׋OYlob},C̦ J+ZrɄdqWG-@|6.Cut'02=7^i1|Y #29d0SPƹi^],kA\#FOGp[pqv.dxf#Y!~Nu:`yVRA1K6Ȉ3ۢt(r=qH1sY}hĖw:ɻ9 ;FPvL~zg\P*s{MX IfPu-iYE""\\3WQpYȳj|QGS(cO;,Rq=VuaTΝJuciҽƺ'S_omI!*v<l NT!#F3[P}>[ IDATq4(!3C&xwtYKR0t;m8%r#Glap*N.o`'̩v .FYM8[70p""8J( sN,-޹,h P@c> ̺=\ݵUnY7qVsf y2|ib,.p@56!8eA >fc0v֬nԼi@TF>|m- ?~hf#-fV0l^Z(x-IZ`;p‚EPh&DŽ#eKX%r\b9Aj eNj5FDRIE#N^+lzI xt!zģíքcEֆFsݚs-q8H*C{l]_" ]qF]b DhO[k#N[HUjrXY/yd F hX c3[8/(pqwE>xE1=[aV7c׌17rpp B1XY876b߳y+ʹ3m"#h=%@*uzvٛO借]x>rdӚ:3͈~ ?yS[3ͥF?]>?UvX'.nyQyĕ]Ie,G|ey{nyyZŲ桶C>]$c߇x7͊XC `X|o:^~K0csr8Cݜ1a6J&Oö֡Aw$!asr@4]XsL义uIa[Meҡ"3W>) OgEb\4;(24Im+_ }E389h"$i{ʻsѨK{`l0`0{B'! JHЛi Ľ&7}4}N13}߻{xO93<7~ʸc-`5w_=w1l"2&xw$¹!d rkT75t`oMFNIA q%lsOf{: Hsc y3ĐK]:-2֫'I&s7ٰ!r \:ջ} ]G9ēh4jM9 }I*  Q@. 2`S)&SJ4$^UVMKKƦsnȇ[bS>FY o7זaIUSK.:PRhfwScgB25eh+Eް35ǒiA1QgD}|!+v7@'CC{ Or~hQLF{I*PnvUǓYP.6L#g!]Qt#zteqʨvNv唤HT}}kdX4/kK`L m4F9:iƞ>^BP!mV jL ӑuA CAA"kt0!,5j#W hڰL!E8לy>`G{ oɈ'veЕ"'9ܰ]=n(b}oZԌLIV+c9 :5d vU]T=%>}9 2Ս `.o> Hm>+x Y0]5Ƴhƙc+z;9,v˕W?eMT=2Q7݊e9cx|*<O F)vP9ޱ9<^*W,+x/|,sYdө<6؃nqp/^Ε Sά>z=f ~%ܻ~Sͼm}Cgx`{)$m>L,Fmbk|AW1F,SecmV0VDR ݙ5\XZ*3L'AI X4(%8vJu@ga]R0[Jhn8BWU۱cvn&"SP[=o1b 樳crܞƀL;W0bkZ0.Uf}4I?qpN$Q's-m7ň"$E9iIJѳ9+=I|!?:S'r}w"<9̨J'63>18L(Em`̔r\0t:c4 'E(8c=Yg +:Ihmܜ;|{:j%"Tf!<&@>wm$1Yǂ {f7 oEbIrm@N0,2& Tٳ'GCa3H@L`AȢr,A#ZR1F Di ;~G_xIiBͺVfW2O MF Y }/;BrNggi-Q̪,8v2B}{r3acsVI+#ةf}0Jj2zk+;]y|2ȜNu"זtةv;vM+;&YFǓV(  '|dzH7> 6;Jo'Ǹ9>ABT5w j (G?:ӱm-Y3Oڹi$ô%XPTbSFifG1G8zCɤ9$4qxcY{SA;l25?3оqEf`-Q.&gYdnGΛ eڈU`+}Z)MD{=`Fj3,(A10/\7CV S䲅ZAP,P1b:9fHHC0}#7~M.OmUK0ڒK# xtdK"HxelN D6l n۶HI1K!͡gFfH1n!rv$<-[ǜJ1ҙ>kf̐H/ ̉@2CR=A"C2CDaEp)tN6=O,-3L:xtIl2^;DŽDY>Se҄W"f@kb7q=\3nmQP[vTmĜO/=I6ur{# gB86\4m752-R]|r>NiٟR[:LuPaFK3<`xu ݰh:i  [ Y1tRɀ3ٷGewTWZ)ɓPWw3ŃMdf1|D7E2η=18vl%:T(#.3K,MY\7_nRVq0c1|EiOχw@d7[HJxȭN痕D/@N.?*/nQJ $j$V"\DfxE`kG2ю`G=uӁ{,e]_5?-`Z5i4EDbc"$ϮKǍҳOxÿb1CẦ^$XXp,W}Ɩ%i2:Kzf&u0mwTq 4;}:x,̹O^/v5D NG2 A)}w|G\K$5Q є*"k+ [ģx^,S# 3abs_Ŏo.j}` Թ9b|>{rw>ƣf31gfш|nj ۶.5Ě|.IԂdސ+ퟒ}2)G`4)rp H%QG,\yҺLyW> Uyjr0v>25 R  r? ~nW?7am-цA:D _w8`6|Qs6ImRz(FP"6 DKd"V_RM FA@ 2aOȒ_>E<'3워*6lͲexۻ9@~ZԇյVz5zm~R˅5DYƉES_`jYb(//Ƶ~ hZ {e jh~me}(0vsN1/tq8+X:|l5)b{16n9ĉ^wnic{m}FTK?،G z9U-c=)_G̗u@Mǖ25GC[lkSƄQ`s^+"@^=+7M fR{Li"}*+:7`0K t┰ DNKCM(WA=ykv!uTV),"ܬ`Wj L׃Q؋W"4ZWpi wP%c(c ;"\5Tx@hV˦Vls4A+9=QgcC6wbpJ-gW(VcB2w.Dbwt~yVjdԹ2G26)Ubtqj'j81.njr?4s0Hvi s9AnA`"3}`Pm(,bdRh !a8fB4d 34u_Vi(n+%xؿJЇ4K=u,C]%;1n46[y7O9Ώaя 5 H0ꊦ,"ZH bQ`xJ2NN v?XP=S*f HΈ<ҙNͨFgR`76i>-!eo:##D99FpDdF7Y6 DT:0uw`s=<1w'R.ȱYqDq.^5Fg8\w[Z󹱖c<<'wVlmSsL-0RdƖ8t ^EIA ;HY61!pLMiv9 \9_VR:/w~/?-筣X h t~5Ҳ>dD057TЈgg}a孂.YCjf)\61` T7,ogaФAF>̭8VujqͰ˄J~~u4x Mc&~ڱM*4@kB8ʅc1P^eE'KWD[CuQtz{ N7E~^k^.W jbozb:苑1ãi @!Y-c+viA!)YYv,_0ݣ%ݬX3LjCB?#Y'z>t_ϝS9bC֗7 9Kz q}]n˒3OK% 7|#{ޢ,sZ=swTKuyENӔϯE-LY"F=v[itp .䎣XR$`BSe;CÑ }dGj#2U^b>)O5 *Քc[n/n!#!X/61B0I! Z7Ҽj{S5O.$;\9??ctWA`+L]MJj5 !MMkcl $vH'@EMo pUQq (p+6pVMn9R"C"4HIG!Br! (ngHa} zHlh(/4*.Mǃ}194GPN@ IDAT$1BM|^A{XTU8k%WGg-n<%UVY>͵eLq%NE03@Uǖvى/:`ѥyKCC[n|,xeunkۉgr Gr!&o:.Bvd4Dd@vgf2$ B2RɚQP<ۯ1w\(Sa=ލ]qnqvJ R,n?$b*VuQm:cI9/)33ɏ4nCmQrt0ƛMx8e&XR]~7(Hu<ڣbL+2Vi2*S:D{]|EM uYw{Yv?L W{oga1ypϭ~dD5 K&.@~peL>xz8X$~FZ a\;osbǕ#BݶO?z:} 3{873o=ݡ3j4sWd zU9yQۂB\:Rģ \"G8Nop>ž^||mOM8 qh7GC4xA|qkԌΏZ_~kդ/݌ݑT'2ƀR &wlҕRdϦآ繡7iI/Z/*)%>V2 }l0M4o&;Yxx+ f ؄Mkǝ7.aHY˾ ,O7Մvg]2GUq縉l2 *rc?Q?;2**zg;k6Ɯa N]1QTb}44#y `R0x-,%&Ӧa$@dܯ`Q : 9ï82kđz8:8DO*yR(16ha_+"i՗Pʼ~ 8g3|3ws} lˀOaU%:yM-0BzQKqZnD 3 hp mۖ+?Кd r:/$κ?[^4eDcGוSZwfM銂S9IG8& @T ݻ?؁3-U|Յ+^4dU8aZ2r){HgoekI>@a|eڔՔ1_}-yk=Ofd@OŐTQcyhQ`q\{'_~D/cw89|5}?] ɵ+Ƣ"8rw?j-auO̭{ܺpIӘZ*):iC#JG^$#]sE~;gV!kyQxɴXg@w W뻭%$R:baXW#)0s!LdP0"3Fg] O&eFȝDC?sz328DL,ѩMbM N0(fq)g"HΪ$D7[̓4Sip""2{øTztiSZQJG+g,u''c&&H՘) k#H[[ۘ1cD?L5˲|W9sfAn  S(uG61̒XDb,[h9$8{ mC ]$zo*QcѴP ד~=?)# Gz &v1&d`wPJ[bmh4v[ETZ0 E Ǭ fx $G0RWU:  I9ġ3lrSI{Hte.X|e%t7'GϻF?|ю.DgT_Ѻ5ͱ.M4>,fCYv}کe7w;ᅡn& C~apX)yaf : *SY߅B zC|Sm/Ie'!䃼 ')ce5H#\; [LX-dq!b,y"qLiG\LNjf-T#h 7fBv2<'~Ela`_y啇zr'/[pʕ+z;c_=yPn*(l;+bnͽL|W*Id+[ dct*r݄ՂEds=݁B(#k'·lWKgƕV14@; iL/FB_Tx&sK5ŧ Hr~gctWfS:@KtR :vSv[A^6..>0a??Hxj2yO/G{έ%}+Zq+/UW<._%pK'{K/yq߭5 ۍy.;h81m I&?姧#,G_y}bS,c5 gӧnE+tk d8`MI09)LX,K[$Y({o>Kw_q3~+pjgeec;3 nRpXLe,R$,R'rJiA+Q.zKzdWUX7ϲ\&MB7HjƵYU1 n@t?;+81~5g|T/<$* @/lB_2u"i:I6؞f{7uc2f2A}9}0ZV[X\AK B,gI#Tl @+<W~NdX'Uu vvĕrK&Cd:߇+J|ޥ.rNc_^kyuE˥wLO΋{Sw3-_U7q+>sևx]*M]Q\^еwm },;Æ6ñAupF[b$ ӹ\ :ȳ$zuqbY5㽤P Pvk'+hQk7CCkھ!CgK== PXb"Z>⎀e"j]AU7j U59R p9fs`r˴s{Bkvdϱd2p K.ݼy35+oP[oap-x<_'V ],ɩc]~40678$}qLa~¤{u4F%/3bɤ3QܠsȑT*c y<=4<@pJ928 6Q`Pa6teT7sb׎b4P3ϰ7Lc?coGl:t:9e+E1+d3Xh3 7#H[(ǻ33u+pN25W͚7߰I|)[YOy7˯ٶB {2Zm+2g}w'E`'׿|#޲H2ž$o_s1cmc_7Ite%IlY1(O=NeY Ȣd7 ERvuPBbMωq958[MhJңDB)&ʐ`]GA4ΙRqVid_6L.1ʭYPżOi`=mzR2h"Z~U(T4"s h%N'Iy]6m7:*~>nDA ^3Rz+G1#2<DkDJF2"gwWy3H2\Pʔ"6b 1N M(ŶonkDgtL΂!U{o+\%D~kҨ:+9 #a]oc< &K&cRLEsmώi.ʪ>>M"=ԙS*_Χ-\{OM!aK+*$0٢{A#Kp)yE'͏O.2lq "!Z4(N?uM{J>].bW2 " DN\9u1Xˉ9nn;CP)dGK#}|~RYt@]B=RB̹ nzqefR !B dd*AEA"i>@BK-3(~~!bp], I_`b uuuQkr)}1[ZaY]{ü9|+w^\9 [:<22wǑuֽЫHԙ/oᆴ2I4[Xtf((3:=0ZJaZ DЉ-X^-1-1>&JKn`)'~5J [ɿ9铿ŋ?O{9BR&],߂_ 'X E௳d6 IDATI'өq@U ~bQ9mΝ@[QbdQbTa Ɨ} F9aGg"4wȇD┉|?SExh0gy{6PmrΫꉼ]48Cf0w5gYsh G{Re,bCTdPG0y+=+8B+ -u,a vnQ+޴|?K+^8׳b((@N 5Ms\+Ul"2h$ÚOܖW?'^꡽+ڛidK k/ cx_ϋ&.9H[-"qiU" ')4Ǫ85ag0c5CD, oǢp @;%t1ZHE=d=> e+3J(m# fpIV~lCTr6l$牭@hgӺ__coAV偁]O3|> Ag>,f_RLDw'W4& qd}V/6Pd"cЋSWm*3›RD#Dm4KHvc cDqӳg Rv a JSe8gEl]uzeݭN56?AjVm]7B?YDe9_ LUCT `FM+Ê 4Kq|b=!vY.PT0O>:cu?oܽE)R 6b6'xe?],Ka(F,Ū>J ~:Ņ|>MM3Վ"`QhpZ i`eh{$HF5TQ戮gq<{pdal!%XoYcK2V N=q1Zw$"$bX`5~ZbtH EBIzꭜTLձ0tS̘x?K9>NJҘ<_0LG]vuKr&I"12b$vY;+?N0YcpG+f` Bz^E(l@&odo1:OXkZfsOOn%cNPYҳIl䐥ʹw)$zJK bQNGT9 DJ! !erqHbճ lht;q^qٞ@^*ΞDŽ3?#{sȹ/hH$6ۼYȹ%.7~^ag3W ʵ|E:^kHe ?U~&xlQƯX~B3opw_hf[x;ճxxng\d3R頻׿FρX2_[/률^6w۸YWU?ns?B< jfPVGQ=ͣ%" :Q0 Z:wb"`3b0-,cS6.䘳Xnf lv'u7 eW'[# qA,%urVP0>ǑH`902B$F(JiMݡXVT*1F!q!QAJSu2Ӗ(?p~D"(?4RZţciolG/ei1p#D,yVD:/Rn"PCf_/s$TRGZg~kZ0 1^DLk-=CSͅJr[UHXJcoY0T&Z@4\ d˼vW\ T msKQ ff色6~>b rR+Tqsd4yC©p6B+p3n{X=\y3^.y$Nwrcumk '¡yVo픊#CU҈QEIbj&c$Drv%sKm/CHƬrAB%E0$ Itbو]/0B`U$Sxq3ܙ;8 XN1 Rϻ12iiC#$$,=U_biQTDHa77>xڹ/DEO~o~ >X3x! ( f 9^Z;O>H{ynVcw9ɓM0g';q Fаy(":!a0U[9c<&H`n'!vOi+ ܱ 'pfUNyiȨsv%g;^721)ݸHrF>O[4a숃Zh;0b}aROFL{Nv6hPT\EB^f_=DL":D^pk 4ulWygf}Bs]}Օ߶.vb1ͳGp#Z>~ۇLn0eE5WTQmc0|@tƹy=&:w_~ʭd# k며qGOqMeLD;:#+ Z|60K}4yɬ5? <% #T|NaWXgDx?/z)KX״udz|%8/쉱6eƂ2Y"NP2Ϯ0aVSygsYi2ld9#ۦ0M8ƒAb'f-TXӓ#%D!!}(oVv4Nڃ^R`8BC/g$ Gh5a,%WH@M$DC ?=a)?M4lf;ya2Ź"renlA6 Rqͩ2[߱6???HKxnY}x &Z'lFNسOmpu5Ka.$ VU'wNZd1X;WCZkBDBE 3v"D 1dhhDIj~(n;9`%â9'LRz*͹ni hP el.͟ 7i]W{ $L=D=y"'y8E>Gs<  %}!ĥv_w%-qW~.F6r5>W񚗤[xY~z-5ը(2 ]ڪ=z8j+߬QKPѧfg$Nd"+e=E o'ycɴ:ĩ)}XQ iH`R2AL5^ˆCH 8BTRz a|`_r4&0ѕRAu` DfvLS& 8yy#ДuO7򖹺s+PoO1pO?έ]L62Ƴzo%N0woJjk#eDB(1Qw  B>zAT aU$l?!B J"E})n&ip1AfOt(n1'(!5`6H2f`ȿq^*x[K9Ll7Zώ m:4H2.n1>mt4 $nlZ۱ǙT$?3y9̵S(}j"Ʌ<"G!F_\ءB3D_͘Lqg ֠ )$*rtmcP@1G 9 F, F1}PgbR>s#)!5 4RdenfK W#i Kb{u&+4I! (&0?'b;BK-a.J2[;&X 5=~Q0|k'q-B]QQκ̡@U=ȿe\[xi6JZS_u70?,K>>љsap)PB{u5R]ܴ>;s5pz#Ev/8s}˪>|łܼe|upRUBYWDIȑy,u-->޲kOt bz#8 ;K*dM QIeNl^?_6Sfe%8d8A 9=\SMi?Ea[Ǔ.@p&omh5vaU#OTK3M\S9[6'|ȞOWqߨH$ Юqis-ljxNS :\[$ć~?_2 ^L"yDT:?evsբ, 2y$%q l:Ïc̔-\ 3ʳYݶ~6Xs&ėsڣ122A:ġA/l-9o7UgwXg\r [L<$<W`sϛm<8sL;w#;8s6PJ(K Yq*Xd{ ¶J49gCQR1PT$fSf$c?9f(D1_ M$tA44LD  : &0tGI(X̜>"?BT&I>(!=&]N3@JSMa_ov1cFOQ=ڍGcMHHv4FFo+uA*@G &԰9=W%{0oVyݘ LTŗ՝'w$ `fqQqs]_^T6_]UlIPN{FbxEtXP@#uEoCKO#Q1N ~;Gxkڂ@01 \ٹ<8^ɓmS2o'Opvޯ$UƳiTPKa,uQm̷kw< _su؜qʜcR+>*/@ĕO|\ZZ:xC* ͜ *Ԋ[y2AAc̘P蚍>7hR;Y5<6''EQ\q9:%_] , 3iN5Dѐ yZ1'@u ʤ%15eל7ߥ y`RdU7DZ5EO/b1~ʡ5 IDATS6jOoz}t!N^ ~}/Ma(tgW"%!PUC ~Yg؆ccS7Rgb_? l[=͔փ"iW/7,(ڸiB4=个GGREAm Z=~m=IVp)'zy(B~¯^s b=A 446bo*)<x.4s *.4˯Ll Z:#Qjbi[ rr!+c*z VH1 DGYmd1%IDM}L>Wi@z I<Z2. Pu"%0aɪeF dfqAOL'kɨI5C1cogLHZz:nGTf )K+3O~JIQۨW_Yt' +(v:` mB.)eN)4G6:|7wx|4Ddx"Zy0h*vFpe 3s{'puqԗ|?b㉩A@efsC-SlYDQ{*|1Br4: 坧h>_)zXvˑW]?m=P`gְ ⓷yN4u,@18ptFy R*NIDPPU)E(xt]^ tN~9_nߏMk]FʱX<y 8ehg.[/~<%儤 ~P. U2: Fe {!'|$?EމQu>fq1JAegQahAfw'w^%3c6}e8eNG$ʷ`#!Tר˘euϘ 1)F {9!C8,`ghM^"6$ ]idpkn>0GXs~dW#K-Lw'Rbh5ׯ[LF55> 2GLN;qu5NIDSl8HB#.Ma]-J\vA,HP|n?jqW~sɇlx A/?!σUIUoՕN]r>WegG`W*'B 5 4eJM:.ͦPwۭͮ(xt8-qDaӦI6OxAFvZYĨإN~8IYDT2A m`wm D]`FFz}qL:2>QW0UmT̈^5&x U+g JQEoQ}#*f )sJFFjQ#D'GO-]8n^h7pde$XH(خ\(-ƬMaӬ,}TR/ǧÜa8Js_^ &fc 13+v%CU},X·],<0 ^ uo=/~sR>+EXcxbmxpxJ- \ƓA_'g밈5v0i& 4%Hq\~$fD;܍ NkfZL#ϙ/ pX(EKIw~5rT6&RPx/xѾ oT#s\O2@3^ ȸxC[=G,K(_?k۶oٿ/^}/&ʬ ƉKвOR9%3ZKQyS^9((D* 7$&;Lᴋ/Ă1 sUnfu7i)Ȓ22C=eHS73LTcV6j҈%1lj&y!Bƭs"ܝk"Kj ®Ah"]!19nb;ԟJ%8겙8&Z_c8⁄7͂ˁ?ARtS>˞ыH0N;(PPEAG[!ܧy+̰&Ũ3lJ*ѡ*Dt8NP0smR"b1P24%aI9fo P~UeE]wMF@(N 5JOn䮽S .9PFgtG0T 띇2"eF9K/9M KXZL^Yd ܾ_lvR@dwHLW^mmtǯV]uXHBd&Zu !TY%9f=EJA}|& ڇ6T,.rͭcv"əfv.S&ID)WHL}| Ɗg`9g9Ê w_? 3?U>pGDHIru&4E`Ichێ??U Yf$^k‰(#FoOu:6Hl.wJf/ɬs%a_Z5u"G2:opJJ)kH#R<&z!ES=nQ'Y'm)Iok];Ρ:.1 zWBLTJ)?z035J J` -00&ܐBX̌N?j¤'v$+zCL̟D0m^"UcfYT4Q,|Vwy=3xzp$ndh29ǘSaMߧMW}P-G Za–ͮ$Zhjxr^RtEd2_~^?.˧އwR??}YHSQ꠴vL-3>>|i{ &yޮ6LfPr8:8ͪ.@_~M )ڂ Z \Y;깧XӗuJ2E#"1o~AQ;+Y N)+>cO~9ǑJcQbׯR^Z8S 4l~_?lMOܞ >rq>f4QXӌyBr<;Kژᡵ F"a^fO`BCqػ|!&U d O+i&va>.~&*Qv" ɜ G7[6J6g~w0aokwv;a7Ά;ٛd/쵭j/ɓ'7֮~_ Lp;>gcdġcWMt HFض} " ڧZp:)*B'TEOxыc$+w#.㒫To1Ķ($fd3hF(;^vޔsndR 0T!D1|Ÿn2c JזTQPvh:%3˂NYeKՅx|4mP̷qHE "Q5l=Kѽ򨺏,1)$f~Aeʛ.DoڞT{*FEupG)/1q. d3[?:L~~u6 5X)NK)N[HX@qh HBf]~ǯk\3g9uv64PPfQXPȞTn,rooExaʌU"0.Kas/1zҵ SKg VH18RGT^[/>2SČ7͜v[߲q~}HLw zؐ@&/榥XHNHh[8a&9 Q%,+q$D1ddBSVdt=[j( ]<,H-vډ+ T9pO540r) Gk˩@bIJ&B5/@$IK=?=^<#'ܰ\'6N(jp Ʀ2ŅdV,'2+=Aly52S \Sksq\:s:ňZ6BG?Dxj{2;$K5Se˻,3#u\?d62 qGHmҨQ!ƀp?H{_νKKeHcy၅g7y-]m\$p->0@a~HeOMbUlmO1~q;}t8%&L &Da>qz4`!eG^H2l8zy~siyէۑ =axy {{8QkcC\{%\}"]+X9a&;ߟoNk$Zoo*̵*hhݰC#4A3@+ئq\;۳'ؚ{rߍ]̓m ,G"K{hܐ)4ngVnuIp8]8#<0%jsCX>o;7SZ>m>zGs-LhCê$Nw u+ȊzT6|GOo*·H$d~EN.U% iX#'(6qՈ'&P5MeWW4"$-a5,$ y&5\/ǥUtC4nƔrcM{}*0G熽9sјו问|˗L*!H{nfVOEȍxf<bisP((E!'fqXٖ:~a\XE\?FrCNQ1AD5lAגk$ګVϖUT8-! l!X5:N}PhC[\u(c ;K? sW!.5j嗑k߮Nusn6|\k)rl )--KBcw.rr)oi# ܺkςBąHT;yd;ۆR(eq麦q#Ur?8k=M0lHؗ=A]+3w]??e$@.^'L2W+ƚ6S);ֺILpn6\' $ >`Alb?OOOF@m?t27ID* |=fzE)@?C##SX&fӵhO"-H "[筕4uJ4 '9Bued"o;I.;!gs =#$P߯e)syyY__(%KlsRۖD;zWS>blԕxX3{?޼F bu`wlvmtei#sآe]J_<;$PìpNjR|mMۆU9jgiT H3EH@n9=PLm#UXU_(Nsв#$hŧobJ-#5aE",bSX2s匝JQ9na_gYggG7.%<}E|^ΡԺ~]U!'qMr '_= "8 GSN:]8`yKRevߝ`o,+?k7<q\z< Н9jQ.FNM.;w˻Q:G؆c9.<zz5SCGeMR7gt[o9Spټ-{@0GFTjZD$u@1Eás]}1Z{D"!dh#A([/Y$ ]] IDAT_1DEЭyv,V l zDIK4  d[QcbL!W|(``/Lvn+jZ˾==_sDYXDl"w9uU\؈ VJEGV %GG01t?gNo(k`^D[i l`M'-gw!i0˳3qN,\I &GN+!sDn)tc-,U,m"g؊ShaH]keXSbwξ?FVW } .QĘ 7qҽE+|5:SzM"dNTbջM߈[DU%x`gO8f'dF0-SgΒyl cY!S`W3@810cΞk8gNE$]&w8`eYKpBbkz"#,,Yu\G9ز Pm&_M"I8Y3!yR| ߓfiQэ3Nyp+7|90|jf"d!=;A~djN.΃'$EB&tS]{Sbcvn}xSk82; HX2$.W G:XRIE9?F~hܕ>4 (.*~:0;ŧcw9?t掳ԟsY5V)yL,HQQUj ]QHoiޅ 9j?]O+)7y?vpj91C/>]&ld"KC8;7^ôĩT~ewqEnV }RυWV aYUtjiجP8ƏCf fNX !ӟ=ȔbwZ"}P补QU5;~Б/_~4*L3y&߂EA !Lō-1cNXsP|w=͊ǣуjXɱqU/?)"O;- O % VMr<6b QtlNAx7hAJYevi%qڰ݇a;E4<ɋ,85ːt!X3QǞ] ߄q҅}&Gg0m>!>Z'>j?IQWU$ʁ ~{o6nbg:oʓCo]sj dPyߞ݃ubgXZ>^uSLCPS_OG_0n(N6| ]CF ?r C}a("{Rz X ĔbADEBVA^H#e<$z:ۛgV*W]۾]`tD̴dbbcsl I`+1Җ!ꓩ8QA"xJ]6L:;Zix 5bt%p IIB/1 gWX}T^N~"x{$g !5woܻ a82(.eFrՠu9" `WolcYEJgBTUPt"(|͎nU9ܶ4vsX+c>kCH`m7:h e$|1Vn+1';b?rOeN΀Ax`?P!BO31AՕo>/..9#5I08 |˨1dumKÒ4!Nw|6S8 @K),S8,{sۂ38בiܧEKNoEc3mq2^1s9?~ $X 2$5ƙ3v݀I!ޮ~Ux}%YtF\,VL NUi7/}Ff e -#ZmH4Z 1g~.[*?%x_bE+++kmm7i.X4F`Ϸ:H ;GAtj7ӖK_alϪAiE<=MD+uS_ 5t5(`@d(AM|)1eиT(*g$$աnI&ymO,B˥&Gﱌ_~MHص[$i WaY&l/>y^!'Y_(yon(f|.yGΚGnBC$N@u'.pϺyf[o+uT91'}樲ZhiU/wH-m*N`pLGr[9oc{/S$v_MQ]/­̺1XKQON-ٍ11Ņ9`gWwlk\ zqvӾb=GF,# r9(Xfc* ( a+nghy:2HJHr`1x=hHbOYsvt@ vXhPFqB#'Jd{ 6 -`A'7MHMUy؄mӤrёvX'5Ie-~>N!Oղ=NP;mZ`Plj.  SOtE3Ѵ9ZY^$k;"Ls]QgaSs ktMDTd+X>t2ցUbߜ\V^Di~ih?yc]tqdTJœh'simdk1Ś>c[Yt49%9F l.ᩛTE9> 9"ܰh>}9: ^ ZlXG4n_ ehtrw [ɍ Lڢy~.|.XQ"O`O5}8nᵾy ~ywT mA#c5"Us|[:4jJ;/֋ iAnɤ̝1sYK #nfOR !L?S9[qz_CCj:u??{샚׎~̨:f)s=űSTf{ j-_1Y@܍ $()f".J-Eml6M9b0nޠmPR1є`Pӆ*`IUݬ~X?LX P>>HoGC7M`H?,w2 q[U<~~esG\Гo/pJκxD\=LrSdcς\ Ԯx{ٿ)sN>'xju 5$ڸuyQ2ЧΛnm1 Ǘpԏ7gB+c(C:jГV,&߿1S=#HTyluY%Qd ~m# HIj!– 6IembzCDvڐ Px|`5A& 8HcmJx]Ȕ.SKD@40CqnfE{ wwgd@[0ЗSÑ[N`48(ԕ0 `SpЇFYvvfyy.pc1c\VH(=m}z=a<|4P6raICg,"h5$1Ut^*'7"D#|CN0u6jK-4]Hp§ro |a]0+xzSଏLIh|[y7若mkCLIYK":z;n=}>jqp5\}'Ih|d㝜$N'/>~97b(nYpҒǷn(ʬҰX9_'6e<8 1 &j8']).fW =}M=n϶~0"u5,?c2܎dIMp6 v RAǽ<VCjX5GqH 4: 8NŚ]SqD.bf v bv Fd1AXS` 3у$0cIZ!G|jsf2(!FˮG%eS3QGwC".GF?C a~W;yǶDOkMy~B̢2.q}/MpݵGL(vnh][7w;OXxq$ $+ff6Z@;v7lsRhA8M PB4 0n6Pa.-8$3 >haKm=UD| !*LH7p Lj]mbB^N$)_~#(vUfR m\o#}Qgd[lZ`Ԅ֣R`X2xsu(2" x`LY6Z SӢsEƓ_^C%ќaIOc1,g2z~`Kmk%/3 8)`Gǩ06p,R©zY͛_gػl8 ' ,ppp9'*f$ƚzԵ|74 7fx≝۷o`„ ---X;~C̀":N-}\ bu!IbX6>A,+Hm=M[:0*}`eL zۈd)[AnP\x,rG 8,v;‷kFC9RƔ9:蚦fپP?=$Rz5\ `Rm|.P6 W..==Ē&jxjXtY(kbhjDy 4,*goH`́8Ju*Cj&ܳs{Q.\0|?Vj1 ǘVyl-Gȸ$Ͼ7oyv m maeL{١Coj5cYskf3  v7Z6H`6x qؙJ'Ƅr)L0>ޭybg\,WON <<^$F?9G5[iXKRUK~Tڞc]JuL%>nﮝ}meռL JC|^Or$i UݻU~_S3~x^r[KURKE67эܽQc]%.ش qP5i1߼ c&INju `F k8XTbeu‰]HT^Ε&Um/B/qt>iFZf!̦"/2s,Vl$Ism!qIam0uyA[J䀈@Ly8ӿe֢#N5k7ݔH+GNb2LzW^yex-//k#v\ϵB߮ě3OvAFQ̉(.0 >N5p8=> #;53:xD?83)xP7BCCC*N˅Õf gD}iY]|ݯ~p~:Y"ߓ@Li IF3XƑ$`2v ]ak݄.F\eDV6LlNLWw )/H6ax"p!j,r/C9q&I*Mw9fyu b5fbjf$lvAIoz1b $q}|8e!ԖM936<ᢷYOnĔآۮ<9%^kX{%\cwz\qܔmM/i+x<nצ;4 ( .&z{,RN#ECWy/vsr.'F6@wpfFbk:ې5oPd ;ʋS8ԉ$+ga^)R@F מO-"U8 0agTgh{No`영!L%~\py_7X傩S}=ѪKgҤi'[W#l?qe/ۙXI "Yb%c NO;G48>xˇ8g)XN9 IDATyOn9zՉK Sr޴l 2-*2x{>vJ'؍yy!g8$*'-[IW_O\4Xd *>&&3$ O0X?cBLzf61o`VAU(t ѰiDM |6,jnưe\b;n-`P1Rcx _r(AБf@Di[wޓlL9;j"IHub&6p›c +PA5IBCP`Js E@p0>~s3~iszvMq>m ,:HJ|NýIGga=B,+Z]Uʪ,oDbGFYmv\Fp - LyC"goZAzGu]o ^,>3fL4χ?YԩSw lWZ_o>pYt.39IT#5-pp|*Fm ~$ZjrPc|sVʪPq`/ OA)ad%'$͡BNxsMI⒑SH-ٵd$LbH lKn c8Wd8#iVK&CB#/->.c,ARSr{=M2<%*/Tg$Id%tܖOy'F m‚e"1iD6s~@e9ɲczM7}p(..&Mڹsph[QQqٳ׷r|5/qU_L^ UC,6dbAL3˳wͻ$bH#oIUHYm5MFr{8H|#B6/ؼA} ʏ_WMGN)vk>G9d!5(,+3LWhڃHs&rfLWx ݤ-IAd(I_ s |mcwO;+Gb_wyxWy2:[ó{=v_Xۭ<ƮƀՔ Q˞ xvGٿ1uũ ssL(IwIg(gul )Lp=-.".3U~y)DMJoQ|л'1ˤr5xo-"~!Eќ$ag(FO^mX1UɄӗwao#<4 ~d\Ă4W;צ˷sWp8#?7'g Dw0"EKղ53DXu6ͳ .,]zygUpT N2Of, HOiй p2~91azx/6Enj| ~y>BVX3͟Z#xO%߄0`~ \^;&gp[>޳fJJ{ })Diqс0Ffq2 + #[M%+uQ1v9dA%&86QMt AÁ!9|:˷=oJ+QŻ8Jt f7Q.go#U&ws޴m^hfD-YM EB`XE$p+GM6֒OZBQ1n{;cXxj:p6{9xׅSAO'-5@w,cwH%r,02'U1b1nAT{Y\M||;;%(9w0|6o(8;ݟ҄ !>y-p3M*c'4k`W'h372'}4;<1$`rA.(!S@sq АLwӚdulRR?y@IM8+l4&LZv ɋ;l adzB} lUeLaX;D!N$Qjy[jl)6R1@_?DL [r=ySfRP:\Ie&W,l! ONiGR3ĮfٱkQP@p)-H$hz"l%C Ĥ\v8<8=na;ׂjģ5?|ĻcQ\,K86M|\r]w5w`08.N$s1k֬JŵMMMX;eʔX,껿]UݤI '1$扝\3'JMowFywMwսwl:cLP P! $'! -PC1&q۸u[ۋua-y'y.]{͎FS$}9#0aiMg5 fD3Ac,-{Kٸʔ4&J43y7<| [/j~ъ1}[]}_БДsdn_Y}4m_k+z o*39,lr:̓p\<+GUjUUSk}ÿoÔ+ 2eb# +9{HP‘gxL9ޯH|7 JjKt@G(.8za" r ')l$ !u )mB؏*_mrдė2'rF]{i-Sw"c7h ņ !zJ~+;ЭDJi4`kaO/#<ƕO2y$^MA]G⩡rNZ5Ol'7=J=DGsHNqh{dki==8zw-}Aw8BN!k TFXqpA&f<(0 VEpj; hɔ+Lή Bnzx+%NH[!4s7J a8\_<7~ZZx!# #?QTWn)NێM,)D2 uo޹{;F,%U33#j>=L:.B*l-e]>~HL7otdx(愒Ghqeh )ĈD=NBJBw IkmɪeG />(p (((D"f+KӁ@`ҤIuuuXt:47|3uTY!bǙGHN[w-fUWAAC"6gtsx5AKSvbaVgnbس`4@'mUaCQ"AB~Zv7oe=rI7b WHքQRZe5MGʞ@,MsK 8},μoySkt2^,j2P_5a $ Rht6s0tDs5F\$x|m@ḙT߯vA(XYY),֮şM)?tB!~Dm- )(U8_֮g3QE>n?{QMz٭()Klks2hJCm"ֽhT|:*ayq=ٝLvsxq a2g+M_zB^( 9dC݈t"bÎvja5 _ r1ǧaYS F9@WoG0|/d `{pg;mEӌwGS Ԁ ^DR328x-liEO :i8(tpri\e=]qˎ⟁CAb?^o,3G6SWx4!ѭ#}sߞ[.9]SPʉ32Cޢr4|kۺ_gR-N,KWP7 t5Jv, fSnw5<ʼ|d/" 4omy]Eh`iNMbF3 Sf_y|:mΧܶQ]e{8 S.)Pu҉Z^ɮ8-i GgC(0.FD2Ҁl+ݎ` # r\%KM66n|-_gHv:Ol(Mm).O1H418t|z杲|؁x;~+4kZ[#ɝDQ4ܶ<ifRǠ0+3n}2`BBGT݁R̖}+Ɂk^nc:8Dү6zl77zr ,ƉfHd@7p}558n,ܭ19 ]QbZ j\Mlpq WjP(k.bC~4+0n9<ہ_nљ`D=l&U:(YB]'rVXwөTu-0H Ra#e>>xN7Ⱥ):\cE(6at8݀dwB禵e^wa9whs(cBK/{Jɔ韼;PErnJNf6j@ HR_-198d*'^b"tw?dgfu3 'ـOcE3PM av-#&Ĩ9wHByyQG%IgeYNmv)UXX%IӧOy\. mwX[SSBiӦjOm]=3owxt+<sq-A2e*0! ~=Rh/A1*b*mÍłU$ N!=T9r;-%gJ3 .ѴBSTٓ t2W<8,>COlK(" W=.XD:eD'H";VFdf\[Vea}~q'&0rzlgYPPsX{VtEڃCo6X -~p&<>5yTLzzz|>#Wޘ BU N'C%jnS0)ElTRF֕TTfc3~ K5<eb8~EDyM IDAT\c"MSb}FvxT_KxsX%Kwle~^mA<rO? wXGOw' |,VTƅ 4xz//Ο]K lT72u"W\'_~W}!ߛ Br'Qq9UROG;ʒhO3ڢ/YO%?U 8У癯4l?ɯ=HFGOY,, n1h Etz.!ՂDgo c̱)+^z1n`-&كan pbmrnxBˋęeL1O\;ιpD =])©{{*q yFӎMŠ9XS G {wD0"_M6䄜3>{=)]OMH4sb?ۖm4/@Na:W^qԊ# &[br!έ8I Y5 H*\‰dh4rb_xN8ᩧzGysכJL6mIII(l'MO 6?kÇoii njs?~Xܳ3I?vo {e&96{}wBwz?rh-ۋNYI%W"ڨ5wBa XDC36$ز>0m|ܗSAB0xY;=Yr׃j EpW3}'cg/懕JP"?f\yߺx֓ @q2L )f:)VTVx'ӫ GS1 C`xա"_ӹ[Q'$⁤fc:ѓC_wg}1)[Ý}x5:B}qE?ŦM1 A&cs:A ,T"_dDFT(NN29 `AhsO>㛧V&^GK*H sQ; !tI~5ۋMAR@::\v"ի?T4<ۖ,otW ēKyu%QFs'ܙ6O܌t ?‰N^UG}@7uFlԒi*]4a[[nznXQhƚ%nYqϾqIģs7eݬ E0׋S$1qyTrJ$X|G7DHx@hb)x6vT6~1w*1VAʏĥ>~8^Ix東w,gQw[r@ݵ->=HF-deNISɤL%&;z~BnB- ;2ve8sK4wkP1:Ls ȱ?$ahZv$p<1[l@:IǨ6mK:9 O> i5XO~DizQfَt4}Ww)ES)R Q_{Ȼ"ɧs@A%-ҜWŵk 6g1,D=+|Б<r_.3g;9眓N:iFf\kE.qfOa\ǿoh_ރ$ cGKLy#3O\wL+C ;/!} gͅtD[ױr)%&-0;1ZF"CzfEL X$&v 4@V\AF0A]/ql4,rᬳO,*b\=~W:pY#A]50q>`; ͠:+[8NE9 8Oy({ 9F+NbE<ϰ8Z,ssQ}>RIzqVhtt&!j|B[шf/[ݴxt0w cGRaF-Ht67ba捀 [n oxB}x<7_w9NYs7}+瞹el2?,ZNb{Js%4w>W|$>m%.DGw": uScf2iRY~x[H|OuLFD+"yN282%Q'Tc3=YHHJoZRˍW/x8cw3H+cHs/ѵr_ҼvT]wu(OV܁bsbQ45Ej'":ua^Fed:֤YV[QS`+8 2G\N%uYu6͊lL!CR`$R"dd 7sͻ}?Ï2{<;;:|>ڂ+nO?_{2?riiZ45_={߉,WVVm:^~}uuuYYٿa )flh1/Sً1}w9s R3X~e¤47F|ן?mĪOQ3٤CYqή95)R⡞9fi@gqF1|'DVA'ol G=2_wǣ<~4G Ue撫cgot L+a#KEdv5KvplYt. "r XKNʽ$-wpD2wuǩ| O/JS&Nd Y TٲƄ#'ቼH{N .)JQ_Oq>@ ѭc& /a5@ uP0bb?j冝%ifЖF:.2KI"4vb GUm3+P_@v-fG?2'nﱏWF4ML6{_u2~Oa3/o:{~syH /uD_嬌^W Ú$o6h8tP7+FhP#U5˼_>Jw2zM͊ ˏ8zI I:?=]Ps]DTkw-{aecX&:{3``VCOܲIpa)ܜo+![𾾾h4D J[N;>sg'áVU$QW|oZQCO0?C}G,(nwŗv\Y/pPtXjijyOx'N7iMgN9 ^B]l:{.@2DA+ѧ@beu\#N@c4^h|\|I{2MыdƜǕf)KaIhb4q$fWUzkjGE_FcЇ=Efh";AAbp;w7XOEDR" $DcĿv[E[Hf]ҍPLy 3E{<Da$ & "`yuȴFo&&.iPX,t\:<{HN5i6̢ӹ\胾&VUN45#G{`nWZMkK.ϛ3KoKɔjd:0H<]G` $FPtb!@:IA='8c|3/-}Lx[x1<.=I0:}֞ѓVE%L\/j O=:cNK QascNǣw__|q/Q^U׬F3}Wq}flSQNy!koVP ]^@YB ƍh$%]YT ~Г>;R7_-;$LlyٗבV L&:L;j2X@!2yE*(s%t4!xК\7ӽ锸rzC錥XǀWRK~ImOP1 9w?7UiW6: ԓ1Ù%Xۄ R9m`ۛL&G=H$D(Bee?</xɒ%@<7t:ݏ6- 68$TcǎtIpr_n{6WǛ;Xq.f4A;e3P;cMG☓I%ؾ$iVXp[jE;(W,Aowx/M19hqғ!lД@F70a*c&W\T1EDp/oC佦37E[eËYN*l6ӧ0 Y-KQvB{>AYT>NЅߟB! ,j4iuY' gY_ M!! J0Lv˟AlDYOR=`UӪuŠ#:. 04d;LqCdXT&hS ݒ+w%SVc{t xO’XNQ \>+$+Z>%-o1GMRA{=. .T4~zŒ*AA)&SPSٌ{d D@G*0e^^d͗~qvfc; irŕwWrNh*J/fヌz_NR plEQ\It/\kKKK^UUW\YYYY^^钢ѨŘLfڴi>On%>~Udp 4|1g7\ϯwq<]}HF0CBDPN5;A+Ǚ\xi# ٞ^VV:|llZsbe-MfɬHJi>fڱG;*dpD6*B)LO{So`> $c {xA.]͋1dF߄RܿEOot(+ D$7n!e G{CA( Nf䝻8b<"\.7 TڻIY}tXͯa>Zv4y^nn^bna>E>x7/^<#Xt^~=ituJq$XPflݕ@]|P3lD$&ⳁŊ`!PxHhN jiEKiĦJ޴}e'ci۞- 91R^߯il vg [tsT$2=K 76yƀe"WgL4lZ9vvvzTYe{H*'^?+^bʹ77m㷫zA[Jp/U蠧G#5~8[, p"1Al30LKK.ϙgxHBUz:yffǪzU` g_/U'qg` 6J ,1le_w"# }4_GaZD'?3Y/F mw[rX5VE!ѥfU:zQ=vyQ!zeфA+HCxҭqEiɟX^ܣƌؔN֥mcScC=`WQ'[jŽ<1n)-ts`|>>)TZj^;yo\=#k}"B`k֜Q ˣT)T(0VQ72=mA MqvFp݅O!i[Xx3:dB03^>D|܅[TRxk;л))0rxS *}NYq#[O:틓g6'"ҽvTcfZJ;X[VM5Ň46g%ޛ]::v#B&E,/H°tlGДZX^%ћk1]$#Y0]g/j Mߍk@ `XR^<䣾///7bYkHΏt:kkk5޽{g͚rdl ?mۦ(?7{Q#ۍ?G<8kc#;6w;г"hPVEo;z`l4aVUuԍ<${0έ&`6Xeu%_ȝ"@FiOW'x 9Ba1eU%7Q&t;[j(t_n׹lAV$sC,[//W "B.&ՎEv:n7}thIFIi![vN"z]^3M&/s_r8fkdHuBo6kLvc7^iJSs'l"dVUZw2P- {-o 3 2t cPM_5b ,Ml؏]b@T~h"9"Izf1t*V2G*n:^Q6Әr>}] K[&ңJ&R\I2$5Y_ IDATM=;!o4LX/҇+\Su, /EQ7`D-kZ#m⎊A>E0o7qL;'Ԕ '^zRI 2zucP{Ih.Sq_ӟZ\" 4VJ ~Jؙ:Wx {ɀXc@~Io1Ł ܚڔ|:HF1hS"x]Eÿχ)BI==ϗ Ę~t~6`( \"lA ڷe^Q`ogx, lQDt4/'Q #G,`lQ5f`4mmmj__t\^TT4iҤh4zw_zs|~ZY?25#EoҥǏ?)h d$I{]~}qqq8N&~ٳΝ{'hmѝ^Ur3e{~ɱsz1eBOPs3%Z |Ep:7"<u\!GMJN \x@2C&caP󛶣>uTȁ2E̚6&磦a /F1r~= 5;%/e].GjGH%xBr6?Md 7I֐p"?c@b)Z73tl.'ӎmu-*E`7oߏ}tbГ!Yc4ir R 8<|>".@p@q5e(N1hZ>CyN /hԺ%]'=Aoܵ_!(E~ka#$;0 H&Q=\{oGYn;(LӇ Rﯨ8(xI5n /|ǟ{l _QXQMA/Zr~vŋ3D \o:E?g̘3\r% ^xB ./s)\y;+_[- }0!@h^d=qtHhypVlZI#A:`~= <+~(VP9:oj`Z+f}˵+۩r:.1yTݩI{V>+N:w0JqvINiGSeb4$)LnߖT ro#ahBBr"ީ;e zIf\H8~LJ*fQB7v@ 9A]* ڜPDP*c5)m,FfΆN*qObN c;er$WgoDuZ\L%B*'j2A2EЏf2bVis1kztR;q'+#+P~#J6cӻKuI$IEn?MrxXt:m6!YXW^ٲe˂ *z_wundTWWk׮Z Kqg.Ց{fp<;;\nNZT"ߑxAKC4** dApksE (McE'HX p;/ڼhbR؝=,ՔwlM '!U3vT:f#Y1| L^Ji1(! =AB>uL]o zT* WFu=8ҒC5R1B22X%غ]'KJ'%6TwW"*㼃tI !Ctwf]1WQ t.n 6Bၴ6{2:Ҕ'j1raزL#y Q].iidH4\Z`Oq Y87%OAavsb)Yյ0 }Gh"4z g~λw4.h_e9^J;(3cHG燨3KySNe b[v$(RlBHFuμw̅\S,SL##*Ӿ=gLf!$t*""6PZ׺W\`]u, X"PB $^&393ޟ̜99>ᆴw.NdE`@S&TEijeu 7s kxQK\@ZOz?6bwljikdKRO6#0VT,M̤j75,$ePsL}#0X:9^ёѓ}е4bMNQn:p{ů5- 7wᆱdeeur]9# (fddtΪsGKKF 僋x㍺zDKaȲ&)))MkժU'N]C:_\\\]]/>쳡>F***!// ]\ѦlżZ bE+"H(Ϋ@f i HNW8WlHS:(aF5۵#hDLF8n{ Gnv4έ AcNpU"p1+K. m$$!ڶga.͢<0X!& uЭUcmvg(X'Y-m " ?7tGq&]FBʏWfi%F ckެb[q~Ə{R8W*5+h;}jJ{T4)(H,vK>!?Ah]Nw+MiZJ|7L RZNdhkg<\w|vnʀXĖmy=XLʓsS{SaeSXimo- &*_AVz%4yͭ3i0݋ӎ  DAEMlf>|TkPw)^<@?f3RnzQɑ2:Ȋ3+Є`͑=ջX`$ "5n$D-؁Wn wwlVb4)ʭ?c^_jR;%8 th4vu=G\AIV/oj.MFCy `@F2zt$ġRn+d_0o JvՄYOiD>A׵mSW+.yW_=|/rk֬ eʲ|N1hvlԗ^z`0w}0 (644\YwZ --n|>|>ߺu뮹AD~zٲecǎl6l--uVVVvm.?=@]]1qs76r%6Eu}1xyduХ4%,)Lk}xV7:jtdYA:D=la.|TͣI ֡R2nVeJ2tB~Vk!i|C̴1*.Joi$?_((К29ZO=;ZLi&sC.u,k8Q8hوZc5b?Yu{+b"<$E8a!:'~X92RU;gD@bAŢ(a[/`@|`޾`Hb76뚙q9*^Ufogp<6CW;Uszd/Gs#,z=[{'ϩ> 2bHΜ-n]adpVl-Mr*?U-22Ɉ jLq9FZYAK\"у1A$eNFGՋxI^b2xEV,+K։ BYv9ݡF(2fDu_ h!y"C -<9#hæh@lӤ1SbCK\.Z_]%s37x<_b钚r%y/3gΜxŲhѢ)S\wuO>… |>Vt8Gѣt:;9kVd5kV~~](z^]fku:iݻwh4vጌ={~OHHߴiӅX{͆?CLH{{xs ޗ ZĎ*YyX{"W0:ptVsYu`qɕj2bk2C BtTra6AҚO #-SZk8,ڢnmX3%ćf;4i9ݗ_kU`k&O0⊄Lv )=RpʦsqK|v8O2$NDtDF/ˋIX#$AlkJ(~ :$b@ ilnGؘ 2*Gh N-@awF6āXI(P5gPK4Qy rYvLEVX[. G/9oGB巚x]³ ƢTF(;Q4%{ѹ9<6FRz^u'j *(`bD`oi+uAVm2ARoho9¬=$A6/BNT &*gxȄ4{U6#pk&Ɇ(̖hRcղ{Z UÞS1q\t-4HJF]3:3D}AIE:#iŜ>D S{TY ՇU$WQyu jM:%rqlݻw>~^۷ѣGw1k֬Yf}G[l9qhkkׯل`0صkhVk'N{dž Og#666???'tKdYv8-A˗r-k4s cƌ駟}+|(ٜVQQQ\\| 6L{g̙3g|g;oѵ\q7N >=QjÐDĥh $;% )j͈lϺOک2!m fF[J k J*AdZYR{myRnBxoY|=\mέ>|h2+s7%%a4krLN߃g=t_1K.=U= ]$Ψ{JՋ1}+75&ŅR^$-A̜ ر{;%HgkpMibmZ>ON4zǑv: YYK~<lap0"Kxj#䫹TW <Х :joe+8!o?~"I_9gZFoy-<ə O"j#ًW^Jkb=rmK,>GK/Xz U`6mCY98s lug% +8(J BNjAHBa/өM`œ, IA" $A:t.Ug{ EE/@|mc1k kw{ ^DWcv-Ŵǿ! }ȸ_'\6ۑ`"Gv|- IЅ,(E@V={XʐVHS5~W;aJ*MiWtjNQH^СCiiiݻw޽ǎ{tfd2ɲiW,WTTX.UАrvOQ'nܸ>t;6666DN_ٷo9rxz>N-?\rӦMݻwazzVaÆ8q^{o,I?eK.ϐO}PӖaQ-BصU:8'FV 'K&: V@QM1"hR I^zNҡiX{S?>Q쮺s҃2sšt9q [3b"׬o3Ee9 [E yI : H -x xӖV-Ed ZMF,3dkk&i*I /\p ?1z-^=y, dNR7pI;Fu0)"`Q\lato?08_uV~< Tlbu%߼ҁޜKey{D:rOziڈMvtтt&z:'U1t<|VĊxn|*ԊmIʙ4Sh#ءx="b/Hk[i (vlATiԝG!ˆe8Q1:ex{CXse16lzYc;@3jƢ JS (~\6#{3bQ Gbse=i30%ߨ>_}FMnMҨ6&~-rg;{1$ikw8nS"vy< 5EIkIi8[ŐɤhlFhɪd IDATe  Nï`ڃGqE8TxemUY9ݹj*]h~3kAA뢮:M2Z#n1x4#'`ț4Zx1AKG@13-cР7@s5gR_0cIb(E:E F1׷lE`9'&Z')ҁ:/逫pTmZ)LL[xQ A/Ml_C@FUoUIؘ6vA!:) BElIn_feșkuBMVwo߾ekjjR}7n\jjn`0_|ݻw:t^9T!oZnjSPPp3Z,VUUu NW^y[#o)))Pyyyo{נժjѼ #>]8K9:KZ *zi$\>/ɴPKs2p% ?,yK[_;+] 7Qvks_KQvmlb!978^U"c%[b p6fw_ JH>6)+AU? 6)5N[͸rRolz6*5Vհ3]+r O(q|Ul? cZ駫ɃOwj2 dd =c>M_j"tTN'P9);еD/0R~]*Ƞ;v ,-q_]mS]m{HK!uΜb/ӯ}:Xe˖kw}+c9{lCH \.U C233^o4|cƍݻwV{t%_)))K.dժUG5kVCCɓ׬Ys6%/:ݻw@ j%\2f̘-[W_{më)HUpPs(`DQ1gs?Ց_'^%UNF>a&Ѩov0i xQx)cg_%6}%XV@D<+J}([{3j|qL@loo9d'|+53|ĸBr)Bxmm(fYĵ#t(Gl&Uןec2AAϾZZCGWIU5Ql]ᎸnBRT4M%.C;V`zUnV"! ]XP%˪ϹJ~j*Y]ŚňK0`VyBN#Klnc|lx<ĩBѫ{ 6A)dH1Pp%%S򢕓eGIGKZ~Rm;kꚃ}zL&FӵGkkk[[[Y,}?:sL'˦(ŋ_}Uud0 A 0`W]uaÆnaڴi$g#(_-n;3|p86oͷ_hϸe¾OpiMAQxVJ/0:ǜG(dHS;p`MeFز\s3= mo@ޓKnw]<}TN`]gJ ӱ˼wƹ1x[{dzR-$EХ{0݂baWUHVr.@ҟײ@Q-E~EUQ""%x%wȿ*(HBYAL_p>v~19iF>D%O^: r5փMi~Jj!Jݦ2l*~Zk{b(ᘁ #}+,zO?@ױTj 8=DҢ (ސȗiҙs;ijv#Ʉ".Հ$}8kZLn5G\\O`-xkݧnMYDD;`C!~'ZD숉3T"K'Pn>Έ.l ųqy B@kƙ!è)DϘSju^|?_p]f̘.Eju~GјtNhg_WWשgٲegAXnݐ!C֬Y /lٲ+;wnuu9C/ ku:]n5ꂟ/ u˝;wjߥ3ٴix|:t֭[nׯСCŋ/!O?TQQqvD:==^ӫ55 VRa{b㒡r"DmeeȯnMfut4E:%tMwl8jb!10 dXVjCv^¬7'P} ~~I(T=_̇lXQau"v1l()U8Ӎd$RuG;?D.sLp`mə2+ɊC]n<%ՍAjrh8 L >Mxv7 AѶMdaۗ*!5q4w( F!BL_᯿:Fj 3s GhpAqG^d0Zc-$zpWA!6u)27u8!6j X(zt@, XMx 5onب5#z#q6-V];֚UX B&`赆f-^ &6̠#6f*ӵzP:-~ \9>W梋.z{=~w۷ow82C 9xAKׯ_?y䐇'̘1l(TR^^>dȐɷvmVZZvO|#F5vE/ܴ|`f|zml yHrdžBBT8:&]ikc)2\M Cr%*J5*-pĉObR7<T;>yN$eL)u? `E 1 036cPט_-,lՆ""=qi勫O}ͫWdsW|~-b;[=QG?{%%3+/ gQ|FJ'" ;}kEztK.`6;;8qbڴiCvt:G [liiim=T_$Id>N:`!vI3Z4Ak_vEF\?i EBRpzaKȎ-d/bXR{eqE:!ÞUɵ@FOŖ%jZC勪Ÿvs &n}yx4Ĉ2(eZ8=15?m4|pcc $vĒ%ʂ6qz%-UQdM< q" 5c񳓵,hTg|PwznI^& Xላ)ԗ=w&b1h1K&kBj0鷊Ūu#0tZ4"z D4b霓\fWG;,=CG9̈&\& !w-b@>;pt/ H [Ϝ9چOF(;-Ԝ{x-&@ Wfx`/:|NףG\KŅhP /RLLL0~AAA>}zeX &m;qW^ov-[,))iСgA~͡8sϞ=woZ,ʲg!w` ǎ0`Xg~?*((:zпqdddx<~nݺā[nW_;OGkhѢ_->޽ܹsgΜ񢢢Gyd7_wYKׇ.w-Ձe?zV[:ţ=J)ЁLGE4yJӇkvM}CMEׅM,iM,9''ѩ~@'pڇEٸ^ cxϬfڀ89!ˎ)m3Pؾ~cSf@~+)m&ቪ)M\yL~xQx%N!^'{w [[V|u+hۦ^%-bwd$98& rdyOyKR"7}8!]כIr#޴_k~ezn"A4ytӐGq)u& 6"e~6Y Q/&vTNI "#x Y߮Nj*Lh¼Ï0+gEnB҂A8zb >>I$/cDBHa1Ccw 1QYЈ-Ltn%$Aj&*AZbCYM;JF $}qb$`ӳC&)H_pXW;N|BwnaW(bRsB=-9)mԨQF-Y[omll7o[[[o3g̜93: xѣeeeoYRRt mJKK̙sUWj-Zhܸq0ӦM7nܮ]~Yf\ bBqct:IZ"11Xt:7Bj1bʕMMM) x>_|qʕ3f̘>}z$s_gdd̜9sӦM .|ײn֜_~yQ=|?%޷ߛ͏]=L>Ui6J&.Hhŭ4K;aC479D:$zSR8ee(IJ=0&r)]%G iwM}Xt`:)*j<{}?}x"W@塎Gz\h A (۞%zt[-;ݎ/D;H/- fV %:]N/p؇CQkI@ p}|Ԁ7 Y]bB43B7#&`ғkfG*DaC Ë= !t &XL:p͉FoLZ,P6h $ 18KQ hCعmY6mhbx}# r(jYM Fd{R3V'k8%{9%,Ql*ӂj) }GzlZaaaUUdꫯB??6l؈#|>_ m߾}Ft:^`08cƌ1cƌ1""xjgҤI "9rU}e9r$111//owyI޲(!P-((ظq$Iќ1qEaZ].@]tх+V8x#:/}ٳg=zg}6eʔRxu߿ڴi~%KnO?q}㍺XT[ =l]_qj"R cv?9U҃;cic cIO J(Z4 !K#r" ծnnl4ڨ0M(VV+nN7SՌUr 9LV>j$V;$ܠd U6\~I2x~4p>/Ͳ], *֣]SvJ;oַZ\tXDq_NL-wCZKWoF?OTH"@?=.ײ!@@ B%^R VT$(4^-eA􀝾KnT{HIZ&{&GH8v;A{QxHIř Piȡ8z(½1D,fd6 kEvMAf0jzoߌQ05W&:tSonTፀքCF6!!s&UUJjʋ=fSmdc$@D"!{_8,));wnff&УGPݻwoݺu޼y7nmkkML&ɔ4o޼Amٲ姟~Z`V5jԸqJKKo6ԩS+V[g޼y999 UiӦŋ/\033s޽s]`h+Z[[CvrΝ O⪪*~v3q={̚5VkuuzAwaۺu}^hƍ@ IDAT|+rO<Đ!CfϞ]QQۧγ>;tMo'|r|^z衢~_~Yti~QoSGM7ogP) KQ;gv9BE֍+HqҾW"4n@E D7-Z r`՝zKV+*jx1\[ ~^! $l]³jr,nuu!g}zn4Pho >wc9m󻙼rb2.]Z*08:+OygϢ#NkI;hilHm_0 Y Va,=UQ諀%F@A *FF|WE/HZZH%ތZHv%"B%Zi<ҖJk5|bx) w@\A5bm-jDG?vFQ+*kE ر4T BF:nÇ?rhZh|G |\SSs>ؘ1cnݺx9sL4i̘1&iO=o=c=t{/?رc̙3~ӧO:uΜ9+W={({1c/+,* ,CӒn(g& Z7 FMP[,pl[M:d'eIdގʼn"Z^z^AlZɤGpku?ՐIHq_stZO*Q#ŗ*3s׉eб!sLM-N_tMxc*]'[s* p9ٳ=w65tWsh?~6)80&?Bs |Ҍp[hu5;iec>XH .gx-SL4avLBrFfr_\ɻYU͓Uw߿jժ>}緵eee۶m۸q;sС1cƬ[o߾~;fO>} U^/REEŠAw^TTi V|֭{FرcǎbŊ7x?M&SH.]T/?kǯ^|zjԨQ#..w!nWY]tG}{ ?N:uʔ)_~'|o߾uiѣGw=\ͭW_}uRRһ;~ G9\[BQ /v!Zf40;%%tw-o=ϧ`dH| X X~9s}sm۶۷o֬YoѣE))))));-[_o՟~ifffZZZAAAnnnNNη~{_z~ذaNKIIILLLLL}wvC$~VWW}ǿ[kz5\s5֭[z]nҥKZÇ_xQX{嗿HU_|j#66wk}n߾W^&iܸq|;`44_5ܹg;w~أG#F >w޿h>|xJJʻ[^^# 0੧ݻw?ÕW^ٻwA{;TVSS3aδr*7zHɁlZ3@ gNJdOw*]E0jD Jae. P.2K*1k\4 Q:#c!@isR4=CZ$"ɐʰ6MލSꀵyW1:\/Ã"S<,N"..-y9+>|se(lf{o$!t5$t+\QA 6Di"HB IH!Bzl6wnv7WO>{ys>.Lюpa[G1|c0`8 : PC6AU8pD7_3[/6K.FnE/ 0Aq`"awfHHà pXcm Css3+#HRzZQ]]W_ojjjN<9cƌq;wϞ={)GG۷?fS>>>,NAAAl$I^o4Yh4AAA ,`>˥[.33G"<3]wbT*}'-[}vX\SS~zGٹk$$$ر!YHMM]@.jժ _:|_0`ذa111I\-[lΝk֬IMM/VZ5{+WO'M5mڴZBVDFF=:V,>CSF,/I}}vt&CI$^C M,[wP:D*Y"B7(|Xhe&CZ0,l PlQgAmK&u~ &C=EL;р'n0ICXc-[uIo,?U\kBoH([ahu nviҤ2' |8;;iZD9))iٲev<-7믿;ollu몫srrN8m۶7z{{?55u|>P~Μ9qqq7n˖-۷oOvr/mY;Ox3^(AadCi>ihbE-_A(ʈ&昘hЛ;4M0J<d^-4ڢ]ȅc';E$dPA[u};m7e VAF SEn໣:au7_VlB\MHiɪl&0-7yϸp;w… gϞm  W_} K޸q^D}L ߵ a3w[ =Zt'F9"{hI x78D!x* 4TFλIW4ZLЃյ qh^6ؾUUiPt zڛh1CN0  qGx V\0AYx3GgĀ>k fRǝN+soUT{ oycXWw.DoDCKH+p1i(go̖]pK1>r4mFj!U" V҄ -ӍdkQ9%c\.Tx1XP$Ad?&aoa h[7x ?YK:n0.ܹXצ~R)426H8Hp tmRSVkiξѷH\nȒc79MHrR2Kh+'5M+߹|$>j$h *jkC-bիmw-AhANP֊~25akM$ 9DVBQO< "IuҤIBhĉߟ&6IQQQ۷oW(`AAAk֬[xq``s=nYTTϾ˃^4}RteeeO?vd1cL>] Nrvvl ?$1mٲ%44i+xXdIll)S=Aeddteye0rN}:7nܨj_z饇l?߿9rȐ!bX p\am۶s۷GFFXo߾j|-Z2k,>lŊ7n7n*0ǚN4WHk`+!|vL"tǐ}HgƧ۹6[+`h&>COa|\9t8U¶ Ri@aFJ0Ŗp$T'h,7/ Mpf+a$ε[ު||QQiWM:,@/x@miġ@8KЦ4 kgZNFX- wS$ ? X'MPG-xwm% 1I[SH 2}sx>kK:`-@l@oN3Q(n=^~3CmO9:S8IN+Mv&z^c!P!T7:)SRR|||B!áizݟ~۷=<<&N*˗/ϟ?&M}LJd?wʕ+/^liaKOZ[[/^7) Jl(7=( :u ؑÿ պcǎZ.Kd߾}zȆg~'OjlD$:F:޽{G9p@DH5$ IDATDɓJK{96ظ}ݻwV}6nܘ3ywy'88XT~7G~ȼ"Ԇ FOd]veddܻwOVF$( 8WQD;7nÇǏߕ'Ls}=c]׷gϞG1cƯn̲'OښyڵݻwǮݻwݻwAAgffM7cƌN= EiiiNN͛7)z7Mx<<]v[wK}H`|(p>^v14Fxhn1UvE- RƊQbͫL,VCP  cs83&yw ⛹9B R4Hw.0i Φ0 'h<8V1ޅ€QH\96d.hil=uުG?5Rdx1 }C#S^ F?m3>: eu=G/)iljOTi#GEWds! hy ZiiWYOwP͎$@!Avz1P¨YHS6e+j-mAjZ300 )ۗ} e!C%  ʔ5e`hp9p0_~r /^pŋ7f̘ .ddd9rd2,"""""Et+gׯmhΟ?iƽ{TWWj__ߧ~z|2IKܺulx#F1bZbg''}}}WTT|G2l+XuGC_^.wgϞ}ѣGw%"wԮE988$%%%%%4]^^~Ν[nm߾}ݺu}_קO^z ֖NRtщvl4X-[ܾ}{ԩ-j7,8d~~ZwUdԤשm`~g )T31uImTF0oHvZ;N0`eka0(F> W/͙dDL4Fp^[|)VtU˧yթ 1 =PC8-Gw:ݦcgGꕥ-m5Rk\&S ЪqCJ oBpt [bV "jKm*D2' v4Ѣ7t@!͢% fDi1|֚NX3xK!06  l+T!ZxmsȖKL@Ɗx쓌K`헫 O8c wݡW\^޾};''g߾}۷owqqIHHHOOWw)((qécsZ!!!{Dlv򼼼ӧOD=z|W<&$$DDDX{PT111^^^/^<}'|B099999޽{yyyEEEla```PPD"r*7n7ouO,zxx=3gt1T0`O??Z2z:qDff빑$8bBXUUuׯ9sV$q\GGGGٳ=..nԨQ^^^...urwss;wN:wޢ/v))={ΑS^^G[ޕ/i ,H˻I@ӵcA{MYwb9ԵB CGѫv+urCAMeq U(M#2˒+] .ơ6)Ç̂rD"Rtht6hI1h@pAW>r!Pxڡ) g# i8ӢZFz 1 1NzuV#Qi6WJ:ᄌ:I9Tm6\!PVI m]IC=jXhX &6R1;g[iw  M1FS`gz-stq }-[Z7:9%%6777//ѣ!!!cƌqwwh4mmm B.WWW;wܾ}pE9::>cެ,L&srrKVY[6mڃ(Ns xudݸǎĚ߼yԩSMMM @ pss ;wntt_{ڀVaÆu=-,&OcǎCvj`7\]]YWJ*JҠ~iZV}4;;;;;;333??_TڢdGdd7oN2`0č70Sqwٓmx<^Mg)'C_~b.rq䞄Fgoq> S%0 p ȖVAycHVuЩ=y^IoE 'd/xx$6ׂNs[E{2Fz$4@V<`Ե?b %B^ԦEpBFh3c-CH($m/Gef)vU7`-bG @YjB cšn@+а0(@SiL{ q¥oX˟|2sŊXzYYR.wTTZh4YYYxlPd4E"` I`0466ܿ%...!!!99Y"x<֊WjzrFQ(3gΔz*yyyyyyٓ3p\PpݽXviiiWLc$''ux=pSR0p3gΔ:9#]\\u T7o߸q]{pppxK0 .fi6 Mjօ788زMQPP&H͟aACw[$1n,ݺ 5:lCwݨJo9CxZd9Qڇo + QD9Y5Y#(ڂ$/5(9dA>@2PW{[;zIV`b,<@clo\e8ƀBpI)Ng?ߎֆc7ebmg "9s /?ӧz_LKKrJHHHWB$D"quuѣKh4eee5553bP(?y䈈///<~QXXx?gz)VAV+])#׿8/++{DXcbb222vwwOMMݽ{Ro9qDxx{Zn6DZkYݳg޽{kjjE"shhD"d2,33o߾oڵk )))''o߾$I=zҥ!!!R8?]1H&we7`àM`7?0@EA{]+aPrW.-fRؿaAjܶ*gWu7,FQV`Q$юvTdz> TӶubڌ 4V!L1qMah4:{`3> f-^KWQp`s-zI1jJD+[ӞuRԋ+*=FBoYKkxgÑD nn884PL1I02Z &aa)hs}YL&wb3ϣ63 pD 9K"x=у(Iwjtt8TF ߸q YA>]v?H|P(={vǧx㍒65w600ВQAEuqA0uԏ>h6Q݃޶m۲e {cǎm۶-33СC2ãuԩ bX( M$ 6O>|ƍrP^ M˛$!yg@Aq&f"KPFK A^ڊ&j m$ v@q[%fʻ`:3086f;F[$Ffw[!j<~mLAJEVx4Ƹpa99͟Ԝ^N>}z)ѓDEB|Z !"AqQ0+ؼh #Nɻ>,HkOFZṅ$٪r$5ˁZpIHzk: (H|B[msv}kXQ|-FuR>cjA㄄'N̘1?s޽{W^ۿx''9s79rABԩS7oX=z;nݺ7=X|GWW׀+Wt=y2`C}+Wf͚6mZ8>}gz_~o4kkkݻ' ÇJeYY 4hPJJJQQQ]]ڵkKKKn) NZZZ\DPUB ;Fh>Fdlw6_ejA [.\ѸiЏ2CdʂAiBB|JWS ]FL wqx9 T/vՁ2Q$ F$RkD5lk H@F[mŎ?ZV= !l@ߝ?{G3ַgvvvbb"JJJnn}ݫW;V(0 ##ѣ=zĉD S֬Yxbk>^߶m.\uK_k]\\Baiip `Gnݎ;v޽s\]%~~'N'0G&ړ2dR/_ϟ4iR}}=ǻxbdd䃺 D"DEEE]ͤI uC`oN;ws`؄ݟ_ Vs+DYN)67T v:6܄jhk%E*D5Jm(WL~=F#b7/z2^wSPo;GܪUsJOsg(h(s/@s-oiו8=q~|]" @Ә_()A+sUVI2ʏW}@xIwړE)-VL3I Wc]";4ʡ@rp:V6oh j*@  5'i[~8Kc%.Y_YwpD#/<ӎEuK JHH(((xg222&L0u &:ҥK۶mرcNj3gάYf#Fx\>h׮]k׮O8q#G1b:~3gFGGwnÇG?qX ͛77lPQQs 6Z37֚FDDDqq#=D{C{+RL <:䫱;, Q9T#]Ts} C6F\(lF}_aI*lM;ڰM ߂pe\]QFk'v H,cZ4@n[0 $)ϹoWu*C) @&;wnڴi&\& IDAT` :U͍pvvNOOOOOڼyszzzbbԩSYsuu֭[.\:nܸѣG$ٕFߚh4_}վ}.]:tPV{ԩ;vܹsgӦM[1=q#=D>}˲߄~~~O?Unڕٳ-Z4f̘Gwk[[[]]] x<ޕ+Wb1jްaC[[[CCCPPйs ~[L&dSL zg,[ۇ7_s^?CIt'FٹrE E7C%؆ -љ;i3a4@RnuF kj1Sg=>uŏ:s@ qǃ"##cccW^Vo޼y…5k888xyyJRDƂ~i߾}^^^cƌٳgOSSSll+Ѻ.*)1~9s*#Ù?{oLQѣ{3gY<{6ÿԇ/Y+줤S_r̙3|>_$wlllښkCh^DcEl>$wsqz{B8y>lV~PklBd`Kњ*DViqa E:䨰Qxy"VE{嚗Dr z\VEN>? 8ew#ԁ'r7B*_,zWZ|9qkK8U b%cf(8Y:5@pi;UCZ!;'{UoL=Env4c's DN"w߰XPPSXXhxн{w$O>ݣGAdn.]TVVfs玣f .;rȑ#Ggee]zʕ+\.ۻW^ӦMJ ݻGp8A~H$xB߬ԌR.)){nYYQBCCSSS{RC{u}#ZÇϝ;ƍ۲eKxxA=<< vĉ޽{?ȎQ^#FJ=zscc#M2A(>t:]UUUUUUIIIQQѭ[Ri^;]k4^oү`;\|1>׾\TC󇹅Y5 *5vb5F j5FpAn&> ;PWCh n-*j7mKޛU9`@HƦc/x4΂Xn{7"GW%ԶUpBAǐtƤִj;tx?ܾck.\QHvXYc A޶J`k`d %h3wZUdo16YJۋ/{%Ef"-J[5~%Kll :bmHHH߾}3fX.?v}5t7n]϶ ]pȑ#*ǧG RukjjjllU(^rEn/))lhh(*..nСQQQ...k9eܹf͚9sfWx,$ׯw .պˈ#.\ք OJosvv=ztWliilBbIIIJ9///??̙3rgϞZi,j+**֮];xNJRUPFH4LB!Kx$zcB$|̟Y P[Wkʼ7 .FZ4C2*;P-Wu>Ā; O>=?cԐn>LY x͛wَOHH8~Çg͚ƑcǎK8WWW߻woƌ]0`.77ܹsAHҀXZ 燵/++C wuuo5sG} ??^z۷oʔ)酎sYtiBB¯J iӦ]6997waGW0LYY@ pvv{nhhhmXݻ K.?~|ݺuC6lXdd\.wuuY/OgggvIhsbРNd 44Me.ih(h¦d<:ˢiu~ W/LBu`MuFL(i{;nPOcQOK2!n5=aλZlɇ.4(jqS%%gP*55$$&R<^'w@фQ1ٵ:`hИCC=#Lbv,$hz`D@@Y"7Fn AuJ40~(T Ml;zв,* n/!8^YAR\]\AyyT*)R՝*;<}駟f"FQ׳EzXl4u:]B{-**Rv '9~ʇbz  (J0()-Ew`h*ޭvaJPCXĕ*l{qR'yGU'\Ó(́(S3 hqGm4c|+1ѢMe44gQMc0H8fWQԣp7(3Y(<%uL2 ڸ=E<? p9x&QAl8mx#FGG_"cnyT*9V,ܿSw} ޿x3BCCz-/Z֭[˟ ?|*{ kn 55?pʕ+9Nnn#^Pj)zc*âJ3 3-+حkX &bbݨXHtw0ߏH" \\ÉsSnFG]))*L^ ނf>/ WHDړk0cb!4^d@Pfi@m9`ί`b8WLY4((L1!u9rR XM0]ç  LAd"WRr ׃x0;^p& D0H6.vT"sM^o8h⁍V#=ڮDv'*?vZ:f{}  ]yhB%&&b099sw!!>'/_f+++ə2e fq܏kKpp)++;{@}?~rooH3---555uuu c=hرc7o|UU[nyyy%$$uZ( qGr0 zA@P}3مbѣGhSSS$[:6l][[c->wՠ۪ڿ)222FXRRRϞ=y>|8$$ѣGٳwхǻ ư""""##kQL&YŋSL133(--=v%gffv ѕxcƌtt ݻf67TaZ8qno f10 EX L4T^J$rO:4Ze-5CEW ~ u CBIkA ?p@ JQmh4Ȓ6'0$(`v`[a`4.,((psss 6EPjjjT*l5o޼{CSSsΝˍW\)--7v-FvtTT5dff*++QEr̙2c 2vĉ-[\t)11k'LӧKth4DcjjjIHH4755׵/F;XápxzI  hj'p {nkPPz+4W͡S 灬 5FbPW lȍ.Ԁ AAסP2Pm7.$N @jخ@s ! jr65@^BiW?0hEwةt%Z Km|ȝd T:@PLdQ@fLWTTdX=lSAAA99F?͛7=<<wޝL&388800p׮]Ӈ"EEE ?kB۰U988TTT;vLZZ/6o޼} Dĭ:Hi2R]uS,+**bXJJJOpvfSgF1K+@D. ش}Ԗխv/n)PrX2`'ـLj" g-[ʮAQQ1;;477)rΜ93gΤ7o~cX|ɵbbb)4t7vvvk?9}C:tL&Q֯_) >dkx|[[&$$YVVf07@7dZ555p\4>踺hĨGkgJggنPKK S*...!!p-% Re@BS-ľW8l@{r'㊑AeYe.$e풇 :0Zx`1 Bk]JsqP,- v+Y0u|xT&A\*f? ;~A\<œcv Wx-ԦyE*v݆ @=YfL:}•]S|x<=F" }= ))Yf-Z977L&+))Y566ጌlv\\v'V"H555uvvx"B2@v}3 77WBB_d"2U ˗/O]]]h4D"IJJN0?xю;ZZZ֯_?q#Gdff"Z< ""B9NF  & :07ח/f sqĥ4VBnv-Iyh~]6 uRmnQP[+30BH/-  \,fP ѡ Fum' QY0sVwnW8+ʆ6:и_3~1^ <({;\b6-ܻwowPBBduuuo*F9+Z4o<$*((8::򉖏9zsssYYYss𖖖 !!q`0gp8w\Zaaᝯ"YYYC,:Dも: ĮbFP4+W,,,$T*ǵ#ɩ7@8qR'm60AuvбAMȓnx`Pzdǡ!>d`H;L,(C,t@tE3@}TechN\"`Ł}ȿ+܍M{]ԗCv)(b`-w3SL˗/}|]xxTLFLfO8q]1>Z---43>1a„ڡ$?޽;88իW#"""""~BSwr[[[ |!&F577wv5d2U\X,vܸqٳ6mîFP{RcX?we*jl8AE8/e=8\jv jHAsc{&3#[|z׸)FTxfІ# IDAT l&  @Ѡ&΄+@\ b VSX )J~\ޥ2YoAKMۮiV\`ͣ=[q55561`KveS+**YSSSBB"==f222D"ϲ>r-gffՍfΜ5A<==n>>>*0N]~]KKK__ft<"%%  Dt:#))inn3s_CC(,,lΜ9/^@a筫ٳUTXslz{+g9y kn73 P_B:V )ۭ ,l:5byPS o 1q\>[?Z cggx,zϘ充i4Tl#=}tBEwuǏYL04_}ϟ[;%K r8@dpPrDj(EDD{GeeeI$ݻw~ȑ#戏ZMMM^^~Ϟ=]ע8q!%Z }[b@%cr/׽U;2 jEy1<&pfj~mNh2I a RC|xm0v0P aiYU6^;[0UEh3%gay~oqqqZZZ/D}}=BQRRήKQQBLX>0cƌ 8ץK>}?ɓ~\XXXHHbCݸqCKKedd466 }X6-,,|Miiid!JE;ڨQoܛ/!իW`tuu.]zܹ*BǏs玻'Op۶msiBΗTGr@g`=ޱt(JrY_6ٝ/6 $V!eByHH@շ`1vY/P "=Ԋ0fC#@rLh k=ׂL?v hZ755h\8#&&62|ggg&9ڠcǎgϞus VVV;w<7=-ZdggiӦaSDD"d .\( r-''WYY;8<6mW^x1o< 9" wޔ87oޫW֯__TT9AB\77p ~@V'*EGyl'hM 'v7y ORWWFr0 8.mW -n"J Yq]à+jt.;yh\EYiNXkk>'UIII+`0P(T>\ f͚5'NɃn޼9$$dWpqqٹs3gnܸя*$$cǎ,.X͛vvv!zSTD|{wb222*//_^^ޛJ333` Lstt\n_LL̢E\\\={(۷oڵK.rrrrU$0΀_I A4ALlEPG h12`tf@(H,k7@  #NM@K AAY 52A$9A` 8񸥥hWUU! h{̴ƛJ]]|Yf555~zĎ:y˗/K ˗'%XLL?P(ʣF\;`pBhDa\`$%%bQQQo544Dr¦MҮ]֏[quu# >||#Gnܸ$vKR-[vI׿i͝ ׶aEp 90f& 'J3j/w07WYШnUX<@qu;#$Z<&, xw`>=!n1s5pۀ!Oľs~zGEEtЉ▖>CFs-|$iڵ.]vi~\SLaXH<@9rFmٲ%++[ܹS^^~۶mÕāFa.?|۷;r EEEDF :^ANN.**txJ@PPPHHѣG:::ҽRLL¢> @^^[q,gjjb;&""2,%%Pϟ>޽{p8111UUU 'Ĭ0ۂqq~dttŋrrLZۨ>R3xTxi286d|hy]^FXrJlLgx@mKۉGkXj@w_GW^O?{m[[ԩSvrrB@绹9A>NPWWw„ W\1FXzuii˗/KkϚ5700pϞ=ߊh(gK());vl={&MMMM3f̸qF $H!0@@Ț}jXYYlbg 133۸q3^:ڊ+[P(@&'Oo˖-SWWP(wܙ>}:P(gΜ-++w^RRRII͛7q8ܹo//9y67%[} {7VUU ˗/Ì3.]D2[s#kk7nHIIM<[@gg={$&&FDD 222<<<444:Y__ܹ , KOO,,,+//?}UUUgϞC-MVnU*zǝET(`N7AW屡5ڻw-(fn{ }8?~ا%77ktW緵)Gzlٲ߇HTVVpႄİM| ⒒GqppR H3f̨:}4VVVFza ɉDޞ={t]>~xΝǏGRԽ{Xl.+UUo= jmmMOO733_lYo !!>h3O.&&VPPɓ&''R(6p~ϟ_pIFFTTT$---f"""""""d2YDDFc04Ғ/^Ԅ]~HkkUVijjnPRLKT[T-Ha*q7ZTB*0(P `9~,Y8H$,'Otuu1[:~-[z,tŋ555r\/_>,J f7[}i``nݺ3gHII!MG...^^^'Nq3hlذŋqqq/G]\\LMM/^knn2;'N6mZ3}Ν;h4t:=,,***[nK\P}G饥zzzUlmm&O8RRRSLA򮳳233o߾`H$2 dɒɓ'"oa͚5O~eNN͖p t:!u4"-- ++K&ťh+W==={޼.C;/Z`2?)yvr˜M_:OXDrpV/ @P b.Xqb0+Brss{wHNNټys_ Ŋ7n܏ Z>sw`ҤIǏzm>>>>>>;{?|bŊ>swz iӦ%\]]͛ghhq͟?1+={2gΜ)S "Ai(`0 c(r˗\䄤I5}tVRRFx ɱYbŷ~(tׯAˋEPmll]\\zl#""6c8NRRR]]i 5jԨʈत$SSNĨ(:H400}veerqqqHH۷kjjdddz{\KN>mooo<<;?G ""u֛7o.Yddܞ'O\>@ **k׮ŋ;wncƌ1cRuPQQQQQY` P([[[8 щr,(( 222+VXbř3g@DMMMQQQXXX\\\BBbwܙ6mԩSutt\]]htUUUXXثW._$&''?|֬YrrrǏζ?̺ϋ/|B&Ǐ?2ӧ%%%8nddӧOjaa1|%%[iӦA.]JPvu;tG>x`NN80zh E 􀲲YΟ?} ߺu\Ⴛ+WBCC UUUT*666>|`0Ǐ]%##hѢE>yԩS4mرw܉=~ŋ{C}} p8رc{GXb2;\TTgGtdJ --ʕ+6m_k$::j>\7ڵkϜ9###3~z4n:sΒϟ?GGGKJJ"]ZP(6.;,h77W^Đ䪪*D_fVUUeffFEEܹSEEELLLVVVUU*80{/_y&%%D"  ~O>eff?@ HII! k4`466(**gee}ɉL&WWW?yDCCCSSs…RWW>ޠR˝޾円bӧOO8S}Op8D4oxO􆺺:9scC PWWґA@TTT__VEEN'$$<~8""YPPpXMbȵBBBD"ݻwRRRϟb0RRR FKK9;;ŋ_r?XVVDXX8))˗^ѱVVVFPչF|||llliiiMM D?ڵk'Mؘ͛Ǐq8R???acc1hKiiidd==QTTTqqٳXl\\ܱc&N8gΜ/ess9s n>۵_,Y$//#((hh߿ΝCo3@011122jlllhhIHHv233311P? b =pk׮ڵɓ'NNNK.UUU$Hϟ?wqqlkkknnNNN~ٵk-Z4cƌanٲ%55>ϏD"! ?A+++RRR綌b0"uر˗/WUUˋ1cƌ;޾O[EEE{ŋ߿$=V#G$bijjN2|0@ׯ_qF?f:th˖-#`0 wpp@333߽{WTTڪ̙$ zʅ4iwrr h/vvv IKK۱crDDD?lii]hAAA;;;[[ۋ/k֬Yrh4"itzdddxxxdd$3003f2Hu JMM}TTT| ӧONڱc1@@uZ[[{{k FRRZoIMM}ի7o۵;x" L?'Npsssvv[R"GiiV64rsrrnݺ/ (ۿDDDrr̙#**KJJlr>]v;vPEEEEFF xi֭4wѢE]VUUFGG'&&tDY]]P[[{]vSXXxȑ+VXXXt&I޾}{mwƍou퍊 ===777___>b8rGw`P\=+^ZZQ^^?wx>ܷoѣ7<r[[۱cɹ}~~~K.uqq?6P(MMMrrrjjjd2kb zjSS̙30===###++VBB%??ժURRRᛘzƊ&++2--u |x؄%|zyy#ֈ***:$ 6h|>RRRϓ'OJKKo'''GFFa0GGGgg޾MHNNx񢡡add >}ZPP@&Lfdd)y׍V^wHeggP(.YEEv --C:mm@yyPRR}v---**,,b޿4=zDھ}رcN:ݹsg͚5W^A|[n}wԨQ#o|\~=66vٲeNNNk18xyyٳw6`---=pկ_>eʔٳg755ǧ988r;vE򒒒l*JP SRRtܥKsuuo߾*t:L7//o޽'OTPPWy5k Pd1;;{̙gϞw㟂z}mo}d ^|o"2ςU||CCjiiӝ;wN:,!!1a„ٳg7nvI$R^^^aarhhhPPnرΝ311IIIqƛ7oq8L&?^WWwq}OQ(QQQ===##"݇_Kee%իh4 "xmIIٳg'%%O:@ ۶m?}t~>s?HK.Y[[QUU544wއƎ sFVVVTTTXXXVVTUU?ŋǎ!""2T[[[ddbPPЕ+Wx<ބ ***p8Pzzz``kX,֨Qx<@EP^^^ߕ5hnn޶mۗ/_Dڶmd^^իW/_bҶo߾m۶ ----عsgovd0Ϟ=,l6̙3'O29>ԖC;~<|Ӹc hhhnjӹ\pǏAb6ӧO>7III)::sٲe+W|ݻwWVVp8 dɒ͛7wxo߾ onn8qC=zr/_>tUUO"ɓ'ϟ|Z[[M=CHHȑ#G-Z|b? ñG!f߾}w^kkk k=x?~<0ҏCUU՞={P(ԪUL/ɓ'ϝ;քuuu'N#H 2tLbcc###SRRZ[[srr&Mzjyyy r%$$G&HҒ+$$`deeziiiaaa\.Ʀիo߾_nnٳg{b.\P]]o߾'w޽}={Ǝ˿s ˗/޾}L^zeaa1s6cx1{lwwos7n{xx$&&~L&)))u ;::VWWYZZZYY))) ?~9`~AMNNzܹsuuuykiiޗN[nҥ8.^XSSallF>\B^^/CwM0aܹ@ΝKNN>wܷ6سgܹs'L4NKKK#M;eTS]6fIIɄLgiiihh>\-yyy޽f2::: ETTtԩg۷|HP֬Y\$Mv~Z>|0<<ۻ4)+++))imm5777113fgϮ\2iҤS奦&&&UTTəX[[ N$===%%%22˗/%%%vvvT*M2`(bccʕ+tzUUUiiiVVϟ߿ooolbbӵ |||h;z Dcbbf̘aeeůϵr444ϛ7GtIZ[[_zu5MMM6¿6mߺuk?l…J'$$feeX[[P'O8;;oذ( JONNNJJɡR∦QB篘fWUU577WVV%'' h4Դ͛7-222z:B```FFݻ:X~M[[[]]====+++??_DDDKKKSSS^^^VV}߾}zzz44###** lmmG4| .ˠU<ǣP(!!! ,XbEg?IIInnndEFF>}СC6"kmmMNNjnnvvv޹sv'Us8.d2YYYyyyHwbq8C.<F#X1c?;ss_~eݿի. y󦷷xT*5---772...//OMMM@@QNVTTTSS355Eܢh~h>L[ooosse˖έ׷b...$?.\6jnn2O>;w.""BSSLOO韃4]G vŵt:)9bx<^\\\JJJAA!777&&Ǐ... ._`>}uΝ]?l]]ݾ}Ǝ;o;o޼˗8|o޸qDGG8qM:^BB6ŋg>{mh4?tYf}L&ĉ>|?~}:455!Mjjjjkk FPX,` V/HE %TUUmݺյw 6fhhO/B>s244;gTTԻwJKK---\w}e```ݿ˃ … kޝ5u~ $@b , D6PF(S!Z-i ֕eJ:uAFՂb)51@JuYpss}̹9'.U}L&Cу\VLPTZ}С\T&%%ر]mllLHH(**z#0=ź{3Q''3gzzzjqҥ +M@ vvvzB Lf2eee/y jjj*,,pnnnoDkjjj:tPeǏyjjC?>%BϷғxhX,ܹs\uR(;w466N>orssY,V``y~`09g,]|ѣor…x ւ377wttLKKB1)S.\А[\\p͍@ZBWknܸq8o#KKr a=Qܹs(܂]VRR2yGzz:N?qD^[[ǏO0A x 7UyR\.ٳ EUU՝;wj̙3N[jבU7D".Nc0ŋ/_|#i4]Kbb{l*wTT/_$wuk>T7nܸo߾Yfك.7!!a  ֎ J2222***&&fXG=zIWg„ ...nnnBP(MuGѨjZRT*RxL&ٳgvvvgà.##cSLyEEEׯ_OMMGq?SSSǎcwwxYYY}_|2111<<\ڱɹsLfrr2Tk1{fee=;T&]|>offF X;)ph4Z7T*{zz4P(dD&BH$|||]dff&%%R0''ӧI"77f͊pww{ܺ]8NVVDڶm#immhk֬yW$ ւ ~Çb7I$.@ E"T* A cƌ177bVVV666x<D"hee5@[[ۮ] j魭_-,..nii>^\Z>{lSSSFFZkd2YVV@ h->WJPg RIDAT*d̘19ɓ #//ϐKBqȑǏ7oZUUu햖ww%KDFGG Fnڴs,kΝ)))AAAF!XOfff&M? 1<C.H& DoJիͻu떱A.|ٳ+V ;rH[[[vUQQvq6Rܦ644T׭Ȑa?gPZ0| X f F":::Mֿ*}`(//SAT;;ãׇ/_r2LZXXX[[D'''' Jw.^hHZkZmKKKOO xv.===;##リcǎ,_?SISyխ[ܹCP6l`xƎn5F  B8ΝIopႹyttW\A_|L.4gΜkr~0+++++b>ŕ500P*>}Wa2iii555aaaW&HV.XYY rc]ɓ555XVL㏈Ox<ޱcjkk#""-ZdooA/h4/^qF ZA Ů]USSˑSFӧO߼ysٱGb0KII9s& QtvvƮXb ~^^\dҥKI$0zfJEw.X 66O'骻DEEYFk>}߆|WEEE?&H3f̘>}!EH$Dp>|Xb [[ہM:u޽0X GWQQqA6cƌ㕗WVVvvv7H$zzz?YZZgVTD,D"@d2Y,VggP( 箮'b-ڵkNRFLyyCCpoo)D&BRTPzK$$j{{{mll<<<&Mdl6;%%ՕJ~Pz1kO?ܹ3$$ĸ{J<O`nRMLLrhRhH$666x<~رF<6Ꚕ4h˸^6/ҥKMMM-,,ۺu̘1κjRVukRB}{Mw^77}-LIIIqq1FP(#sݻw۷]<|l+W\jUbb"1W7o޳gZ ___kk봴4;;'"2WVWWWo߾=,,,99yX!0t  Fjjٳ׭[7LOH,_tdݺuQQQpfX f;JG&?{,//s۶m]Z1I$ .TVVZ 9K.Q(hC B`i4Gc0={8::zڵkΝ mX ! KKK׮]34ԩS!!![l@]CCCZZT*ݿ9W^QThZWƺ|ªJߏ޺u+ 0Bd3gt??p<?ڮ]V]]uVVNb-`Hrʓ'O}||d2DBrykkkmmmUUUGGL^r%DsZF2>_]]]UU%ɐHB1bZkkkkjjr9 ~OTX. M"LMM?tZD:;;ds 0Jdf.doogp8 `tKҞplvss?caabk4Zh4"bl.B@ 0V$...( D" 9՗!rIENDB`elk-6.3.2/examples/magnetism-source-free/Ba122/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021733 xustar0030 mtime=1569569247.572640065 30 atime=1569569247.571640066 30 ctime=1569569247.572640065 elk-6.3.2/examples/magnetism-source-free/Ba122/elk.in0000644002504400250440000000474313543334737024012 0ustar00dewhurstdewhurst00000000000000 ! Magnetism in BaFe2As2 using the source-free version of LSDA. ! Source-Free Exchange-Correlation Magnetic Fields in Density Functional Theory ! S. Sharma, E. K. U. Gross, A. Sanna and J. K. Dewhurst ! Journal of Chemical Theory and Computation 14 (3), 1247 (2018) tasks 0 ! ground-state run 72 ! 2D plot of magnetisation 82 ! 2D plot of B_xc 83 ! 3D plot of B_xc 92 ! 2D plot of divergence of B_xc 152 ! 2D plot of m(r) x B_xc(r) ! enable source-free B_xc nosource .true. ! spin exchange-correlation scaling factor (see article) ssxc 1.12 highq .true. ngridk 8 8 6 xctype 3 spinpol .true. spinorb .true. plot2d 0.0 0.0 0.5 1.0 0.0 0.5 0.0 1.0 0.5 600 600 plot3d 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 200 200 200 scale 9.8337 avec 1.078174 0.000000 0.000000 -0.000000 1.096817 0.000000 0.000000 0.000000 2.473656 primcell .true. sppath '../../../species/' atoms 3 "Ba.in" 4 0.00000 -0.00000 -0.00000 0.00000 0.00000 0.00000 0.00000 0.50000 0.50000 0.00000 0.00000 0.00000 0.50000 0.50000 -0.00000 0.00000 0.00000 0.00000 0.50000 -0.00000 0.50000 0.00000 0.00000 0.00000 "Fe.in" 8 0.75000 0.25000 0.25000 0.00000 0.00000 -0.01000 0.75000 0.75000 0.25000 0.00000 0.00000 0.01000 0.25000 0.25000 0.25000 0.00000 0.00000 -0.01000 0.25000 0.75000 0.25000 0.00000 0.00000 0.01000 0.75000 0.25000 0.75000 0.00000 0.00000 0.01000 0.75000 0.75000 0.75000 0.00000 0.00000 -0.01000 0.25000 0.25000 0.75000 0.00000 0.00000 0.01000 0.25000 0.75000 0.75000 0.00000 0.00000 -0.01000 "As.in" 8 0.00000 -0.00000 0.64970 0.00000 0.00000 0.00000 0.00000 -0.00000 0.35030 0.00000 0.00000 0.00000 0.50000 0.50000 0.64970 0.00000 0.00000 0.00000 0.50000 0.50000 0.35030 0.00000 0.00000 0.00000 0.00000 0.50000 0.14970 0.00000 0.00000 0.00000 0.00000 0.50000 0.85030 0.00000 0.00000 0.00000 0.50000 -0.00000 0.14970 0.00000 0.00000 0.00000 0.50000 -0.00000 0.85030 0.00000 0.00000 0.00000 elk-6.3.2/examples/PaxHeaders.21352/molecules0000644000000000000000000000013213543334737015573 xustar0030 mtime=1569569247.588640055 30 atime=1569569247.576640063 30 ctime=1569569247.588640055 elk-6.3.2/examples/molecules/0000755002504400250440000000000013543334737017717 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/molecules/PaxHeaders.21352/C600000644000000000000000000000013213543334737016123 xustar0030 mtime=1569569247.578640061 30 atime=1569569247.579640061 30 ctime=1569569247.578640061 elk-6.3.2/examples/molecules/C60/0000755002504400250440000000000013543334737020247 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/molecules/C60/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737017303 xustar0030 mtime=1569569247.579640061 30 atime=1569569247.578640061 30 ctime=1569569247.579640061 elk-6.3.2/examples/molecules/C60/elk.in0000644002504400250440000000550713543334737021361 0ustar00dewhurstdewhurst00000000000000 ! C60 buckyball example. This example has high memory and time requirements and ! employs iterative diagonalisation. tasks 0 ! use iterative diagonalisation for the first-variational step tefvit .true. ! molecule calculation molecule .true. ! use very small energy cut-off rgkmax 4.0 sppath '../../../species/' ! use an fcc box to contain the molecule avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 24.0 ! the atomic coordinates are Cartesian with molecule=.true. atoms 1 : nspecies 'C.in' : spfname 60 : natoms; atposc below 4.20790955 1.12423579 5.07240250 5.92255243 0.30577656 3.09053347 2.53625794 -0.58931105 6.15449739 5.89150423 -2.19125067 2.27598598 6.07911622 -2.76287388 -0.40300296 6.14208189 2.34350589 1.26288498 6.32168145 1.79658139 -1.30022597 6.28972619 -0.81331917 -2.15152863 -0.85451519 2.59699373 6.10424958 0.89249869 4.38777367 4.97351314 -0.05102260 0.16353689 6.68186323 3.36781297 3.66786366 4.46912637 4.56285678 4.42127851 2.11483015 -0.49930340 5.89307270 3.14654495 0.64416979 6.61402206 0.89416165 3.23137475 5.86189222 0.36707927 -4.04684820 -1.59965305 5.07597408 -4.88658574 0.94354019 4.47250898 -1.68274430 -1.98120762 6.15625484 -3.32578546 2.99557474 4.97542176 -3.10623709 5.03232141 3.14743312 -6.29775752 0.83554235 2.11927100 -6.08784676 2.78439786 0.37044299 -4.45682426 4.92933134 0.89618365 -0.95746747 -5.66581425 3.40868774 -3.42822750 -5.26727104 2.27991661 -0.10387824 -4.05947157 5.30402621 -4.93898784 -3.27912812 3.09521999 -6.32980727 -1.77424483 1.26783606 -3.23999190 -5.83991471 -0.39909123 -4.57094481 -4.40022696 -2.14742792 -6.15020772 -2.32243545 -1.29533158 4.14416909 -3.98220068 3.40634448 3.25204835 -5.66116553 1.42568487 2.50352789 -3.19913602 5.30279789 0.75764784 -6.48459473 1.42687540 -0.65282474 -6.59204455 -0.92630589 4.44820711 -4.90778847 -0.92840348 3.09860260 -5.01057066 -3.17986082 0.49168780 -5.87162431 -3.17872698 -4.21537397 -1.10412910 -5.10475461 -3.37499392 -3.64732234 -4.50151628 -0.89933950 -4.36660874 -5.00582745 -2.54410030 0.61009804 -6.18628259 -4.15359883 4.00310105 -3.43858320 -5.90029145 2.21167861 -2.30835699 -5.93067825 -0.28551870 -3.12307455 -2.51263637 3.22020647 -5.33473426 0.94767869 5.68830199 -3.44022726 -0.76728544 6.50657224 -1.45864170 -3.26164816 5.68270840 -1.45786691 0.09442961 4.08156247 -5.33543346 4.03843892 1.62287778 -5.10734353 4.93027621 3.30214499 -3.12685400 3.41902454 5.29011783 -2.31168290 1.67416495 2.00384654 -6.18737863 0.84756100 -2.57503512 -6.13588359 3.31858560 -2.97318149 -5.00728254 4.87893235 -0.92061781 -4.50446425 0.04346370 -0.14161607 -6.71310040 elk-6.3.2/examples/molecules/PaxHeaders.21352/H2O-iterative0000644000000000000000000000013213543334737020155 xustar0030 mtime=1569569247.584640057 30 atime=1569569247.583640058 30 ctime=1569569247.584640057 elk-6.3.2/examples/molecules/H2O-iterative/0000755002504400250440000000000013543334737022301 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/molecules/H2O-iterative/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021335 xustar0030 mtime=1569569247.585640057 30 atime=1569569247.584640057 30 ctime=1569569247.585640057 elk-6.3.2/examples/molecules/H2O-iterative/elk.in0000644002504400250440000000142013543334737023401 0ustar00dewhurstdewhurst00000000000000 ! Water molecule in a box. This example uses iterative diagonalisation which may ! be used for fine-grained parallelism. tasks 0 maxscl 30 lorbcnd .true. ! solve the first-variational eigenvalue equation iteratively tefvit .true. ! molecule calculation (atomic positions are in Cartesian coordinates) molecule .true. ! put molecule in a large box avec 6.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0 6.0 rgkmax 6.0 gmaxvr 17.0 sppath '../../../species/' ! atomic positions in Cartesian coordinates atoms 2 : nspecies 'O.in' : spfname 1 : natoms; atposc below 0.0 0.0 0.0 'H.in' 2 1.811 0.0 0.0 -0.451907959 1.753710409 0.0 elk-6.3.2/examples/molecules/PaxHeaders.21352/NaCl-monomer0000644000000000000000000000013213543334737020062 xustar0030 mtime=1569569247.590640054 30 atime=1569569247.590640054 30 ctime=1569569247.590640054 elk-6.3.2/examples/molecules/NaCl-monomer/0000755002504400250440000000000013543334737022206 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/molecules/NaCl-monomer/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021242 xustar0030 mtime=1569569247.591640053 30 atime=1569569247.591640053 30 ctime=1569569247.591640053 elk-6.3.2/examples/molecules/NaCl-monomer/elk.in0000644002504400250440000000163713543334737023320 0ustar00dewhurstdewhurst00000000000000 ! NaCl monomer in a large box. Note that with 'molecule=.true.' the atomic ! positions are supplied in Cartesian coordinates. Try plotting the 1D ! density along the molcular axis. You can also compute the vibrational ! frequency using task=200. tasks 0 molecule .true. ! large smearing width improves convergence for molecules swidth 0.05 rgkmax 6.0 ! large box containing the molecule avec 10.0 0.0 0.0 0.0 10.0 0.0 0.0 0.0 10.0 sppath '../../../species/' ! note that atomic positions are now in Cartesian coordinates atoms 2 : nspecies 'Na.in' : spfname 1 : natoms; atposc below 0.0 0.0 0.0 'Cl.in' : spfname 1 : natoms; atposc below 4.4121 0.0 0.0 plot1d 2 1000 0.0 0.0 0.0 1.0 0.0 0.0 elk-6.3.2/examples/PaxHeaders.21352/structure-factors0000644000000000000000000000012713543334737017306 xustar0029 mtime=1569569247.59664005 29 atime=1569569247.59564005 29 ctime=1569569247.59664005 elk-6.3.2/examples/structure-factors/0000755002504400250440000000000013543334737021426 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structure-factors/PaxHeaders.21352/MnO0000644000000000000000000000013213543334737017773 xustar0030 mtime=1569569247.599640048 30 atime=1569569247.598640049 30 ctime=1569569247.599640048 elk-6.3.2/examples/structure-factors/MnO/0000755002504400250440000000000013543334737022117 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structure-factors/MnO/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021153 xustar0030 mtime=1569569247.600640047 30 atime=1569569247.600640047 30 ctime=1569569247.600640047 elk-6.3.2/examples/structure-factors/MnO/elk.in0000644002504400250440000000455013543334737023226 0ustar00dewhurstdewhurst00000000000000 ! MnO in AFMII structure with LDA, in analogy with NiO example. Unit cell from ! Transactions and Journal of the British Ceramic Society (1984) 83, 5-9. ! ! This example illustrates the calculation of X-ray and magnetic structure ! factors which are the Fourier transforms of the electron density and ! magnetisation, respectively. ! ! The structure factors are calculated for the reflections whose diffraction ! vectors have lengths up to hmaxvr (given in a.u.). The connection to the ! traditional sin(theta)/lambda ratio is ! ! max|H| = 4*pi*max(sin(theta)/lambda) [wavelength also in a.u.!] ! ! Additionally, the hkl indices of the reflections are transformed by matrix ! vhmat. ! ! Since the primitive magnetic unit cell (given by avec) is bigger than the ! conventional crystallographic unit cell (cubic with a = 8.397946), a ! non-integer hkl indices appears when reflections are reindexed to the latter ! with vhmat. They have zero intensity for X-ray structure factors but are of ! non-zero intensity in case of magnetic structure factors. ! ! Example by Alexey I. Baranov. tasks 0 195 196 spinpol .true. scale 8.397946 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Mn.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 ! fairly high number of empty states nempty 8 sppath '../../../species/' ! this grid is too small for accurate magnetic moment ngridk 4 4 4 ! maximum |H| hmaxvr 6.0 ! H-vectors are reduced by the symmorphic crystal symmetries reduceh .true. ! uncomment the following lines to define an energy window for which only the ! orbitals within this window will contribute to the structure factors !wsfac ! -1.0 -0.1 ! H-vector transformation matrix for the conventional cell (cubic, a=8.397946) ! in the usual matrix row-column setting and applied directly as H' = MH but ! only for the output of the structure factor files. vhmat 1.5 -0.5 -0.5 -0.5 1.5 -0.5 -0.5 -0.5 1.5 ! For accurate results fine radial mesh (lradstp=1) should be used. lradstp 1 elk-6.3.2/examples/PaxHeaders.21352/README0000644000000000000000000000013213543334737014540 xustar0030 mtime=1569569247.605640044 30 atime=1569569247.604640045 30 ctime=1569569247.605640044 elk-6.3.2/examples/README0000644002504400250440000000037713543334737016616 0ustar00dewhurstdewhurst00000000000000 Elk Code examples Please note that these examples are simply to demonstrate the features of the code. Any calculations used for production work must be thoroughly checked for convergence with respect to input parameters. elk-6.3.2/examples/PaxHeaders.21352/Compton-scattering0000644000000000000000000000013213543334737017363 xustar0030 mtime=1569569247.635640025 30 atime=1569569247.609640041 30 ctime=1569569247.635640025 elk-6.3.2/examples/Compton-scattering/0000755002504400250440000000000013543334737021507 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Compton-scattering/PaxHeaders.21352/Li0000644000000000000000000000013113543334737017726 xustar0030 mtime=1569569247.621640034 29 atime=1569569247.61264004 30 ctime=1569569247.621640034 elk-6.3.2/examples/Compton-scattering/Li/0000755002504400250440000000000013543334737022053 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Compton-scattering/Li/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021107 xustar0030 mtime=1569569247.614640038 30 atime=1569569247.613640039 30 ctime=1569569247.614640038 elk-6.3.2/examples/Compton-scattering/Li/elk.in0000644002504400250440000000163213543334737023160 0ustar00dewhurstdewhurst00000000000000 ! Once-integrated electron momentum density (EMD) plot for fcc Li. ! First the EMD is calculated on a regular H+k grid. This is then interpolated ! and integrated perpendicular to the plotting plane given by plot2d. The files ! required for plotting the EMD with OpenDX are included in this directory. ! Example by David Ernsting and Stephen Dugdale. tasks 0 170 172 ! the 2D plotting plane vertices are given in reciprocal lattice coordinates plot2d -2.0 -2.0 0.0 -2.0 2.0 0.0 2.0 -2.0 0.0 100 100 ! maximum length of H+k-vectors for the regular EMD grid hkmax 7.0 ! large k-point grid required ngridk 20 20 20 avec 0.5 0.5 -0.5 0.5 -0.5 0.5 -0.5 0.5 0.5 scale 6.6226 sppath '../../../species/' atoms 1 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 elk-6.3.2/examples/Compton-scattering/Li/PaxHeaders.21352/emd2d.general0000644000000000000000000000013213543334737022336 xustar0030 mtime=1569569247.618640036 30 atime=1569569247.617640036 30 ctime=1569569247.618640036 elk-6.3.2/examples/Compton-scattering/Li/emd2d.general0000644002504400250440000000027113543334737024405 0ustar00dewhurstdewhurst00000000000000file = EMD2D.OUT grid = 100 x 100 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 2-vector, scalar type = float, float end elk-6.3.2/examples/Compton-scattering/Li/PaxHeaders.21352/emd2d.net0000644000000000000000000000013213543334737021507 xustar0030 mtime=1569569247.623640033 30 atime=1569569247.621640034 30 ctime=1569569247.623640033 elk-6.3.2/examples/Compton-scattering/Li/emd2d.net0000644002504400250440000003741413543334737023567 0ustar00dewhurstdewhurst00000000000000// // time: Mon Jan 26 19:22:44 2015 // // version: 3.2.0 (format), 4.4.4 (DX) // // // MODULE main // workspace: width = 425, height = 581 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[2]: x = 199, y = 111, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "emd2d.general" // main_Import_2_out_1 = Import( main_Import_2_in_1, main_Import_2_in_2, main_Import_2_in_3, main_Import_2_in_4, main_Import_2_in_5, main_Import_2_in_6 ) [instance: 2, cache: 1]; // // node RubberSheet[2]: x = 138, y = 249, inputs = 4, label = RubberSheet // main_RubberSheet_2_out_1 = RubberSheet( main_Import_2_out_1, main_RubberSheet_2_in_2, main_RubberSheet_2_in_3, main_RubberSheet_2_in_4 ) [instance: 2, cache: 1]; // // node Colormap[3]: x = 351, y = 266, inputs = 19, label = Colormap // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.666667] [1.0 0.0] } // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_3" // input[7]: defaulting = 1, visible = 0, type = 5, value = 4.1046274e-06 // input[8]: defaulting = 1, visible = 0, type = 5, value = 0.014571383 // input[9]: defaulting = 1, visible = 0, type = 1, value = 20 // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 4.1046274e-06 0.014571383 } // input[17]: defaulting = 0, visible = 0, type = 5, value = 4.1046274e-06 // input[18]: defaulting = 0, visible = 0, type = 5, value = 0.014571383 // window: position = (17.0661,30.3398), size = 17.0661x30.3398 // main_Colormap_3_out_1[cache: 2], main_Colormap_3_out_2[cache: 2] = Colormap( main_Colormap_3_in_1, main_Colormap_3_in_2, main_Colormap_3_in_3, main_Colormap_3_in_4, main_Colormap_3_in_5, main_RubberSheet_2_out_1, main_Colormap_3_in_7, main_Colormap_3_in_8, main_Colormap_3_in_9, main_Colormap_3_in_10, main_Colormap_3_in_11, main_Colormap_3_in_12, main_Colormap_3_in_13, main_Colormap_3_in_14, main_Colormap_3_in_15, main_Colormap_3_in_16, main_Colormap_3_in_17, main_Colormap_3_in_18, main_Colormap_3_in_19 ) [instance: 3, cache: 1]; // // node Color[4]: x = 277, y = 387, inputs = 5, label = Color // main_Color_4_out_1 = Color( main_RubberSheet_2_out_1, main_Colormap_3_out_1, main_Color_4_in_3, main_Color_4_in_4, main_Color_4_in_5 ) [instance: 4, cache: 1]; // // node Image[4]: x = 226, y = 519, inputs = 49, label = Image // input[1]: defaulting = 0, visible = 0, type = 32, value = "Image_4" // input[4]: defaulting = 0, visible = 0, type = 1, value = 1 // input[5]: defaulting = 0, visible = 0, type = 8, value = [3.98495 2.30071 0.460402] // input[6]: defaulting = 0, visible = 0, type = 8, value = [3.98495 2.30071 23.7018] // input[7]: defaulting = 0, visible = 0, type = 5, value = 12.455 // input[8]: defaulting = 0, visible = 0, type = 1, value = 826 // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.751 // input[10]: defaulting = 0, visible = 0, type = 8, value = [0 1 0] // input[11]: defaulting = 1, visible = 0, type = 5, value = 29.9999 // input[12]: defaulting = 0, visible = 0, type = 1, value = 0 // input[14]: defaulting = 0, visible = 0, type = 1, value = 1 // input[15]: defaulting = 1, visible = 0, type = 32, value = "none" // input[16]: defaulting = 1, visible = 0, type = 32, value = "none" // input[17]: defaulting = 1, visible = 0, type = 1, value = 1 // input[18]: defaulting = 1, visible = 0, type = 1, value = 1 // input[19]: defaulting = 0, visible = 0, type = 1, value = 0 // input[29]: defaulting = 1, visible = 0, type = 3, value = 0 // input[41]: defaulting = 0, visible = 0, type = 32, value = "rotate" // depth: value = 24 // window: position = (0.2953,0.1796), size = 0.4375x0.6120 // internal caching: 1 // main_Image_4_out_1, main_Image_4_out_2, main_Image_4_out_3 = Image( main_Image_4_in_1, main_Color_4_out_1, main_Image_4_in_3, main_Image_4_in_4, main_Image_4_in_5, main_Image_4_in_6, main_Image_4_in_7, main_Image_4_in_8, main_Image_4_in_9, main_Image_4_in_10, main_Image_4_in_11, main_Image_4_in_12, main_Image_4_in_13, main_Image_4_in_14, main_Image_4_in_15, main_Image_4_in_16, main_Image_4_in_17, main_Image_4_in_18, main_Image_4_in_19, main_Image_4_in_20, main_Image_4_in_21, main_Image_4_in_22, main_Image_4_in_23, main_Image_4_in_24, main_Image_4_in_25, main_Image_4_in_26, main_Image_4_in_27, main_Image_4_in_28, main_Image_4_in_29, main_Image_4_in_30, main_Image_4_in_31, main_Image_4_in_32, main_Image_4_in_33, main_Image_4_in_34, main_Image_4_in_35, main_Image_4_in_36, main_Image_4_in_37, main_Image_4_in_38, main_Image_4_in_39, main_Image_4_in_40, main_Image_4_in_41, main_Image_4_in_42, main_Image_4_in_43, main_Image_4_in_44, main_Image_4_in_45, main_Image_4_in_46, main_Image_4_in_47, main_Image_4_in_48, main_Image_4_in_49 ) [instance: 4, cache: 1]; // network: end of macro body CacheScene(main_Image_4_in_1, main_Image_4_out_1, main_Image_4_out_2); } main_Import_2_in_1 = "emd2d.general"; main_Import_2_in_2 = NULL; main_Import_2_in_3 = NULL; main_Import_2_in_4 = NULL; main_Import_2_in_5 = NULL; main_Import_2_in_6 = NULL; main_Import_2_out_1 = NULL; main_RubberSheet_2_in_2 = NULL; main_RubberSheet_2_in_3 = NULL; main_RubberSheet_2_in_4 = NULL; main_RubberSheet_2_out_1 = NULL; main_Colormap_3_in_1 = { [0.0 0.666667] [1.0 0.0] }; main_Colormap_3_in_2 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_3_in_3 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_3_in_4 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_3_in_5 = "Colormap_3"; main_Colormap_3_in_7 = NULL; main_Colormap_3_in_8 = NULL; main_Colormap_3_in_9 = NULL; main_Colormap_3_in_10 = NULL; main_Colormap_3_in_11 = NULL; main_Colormap_3_in_12 = { 4.1046274e-06 0.014571383 }; main_Colormap_3_in_13 = NULL; main_Colormap_3_in_14 = NULL; main_Colormap_3_in_15 = NULL; main_Colormap_3_in_16 = NULL; main_Colormap_3_in_17 = 4.1046274e-06; main_Colormap_3_in_18 = 0.014571383; main_Colormap_3_in_19 = NULL; main_Colormap_3_out_1 = NULL; main_Color_4_in_3 = NULL; main_Color_4_in_4 = NULL; main_Color_4_in_5 = NULL; main_Color_4_out_1 = NULL; macro Image( id, object, where, useVector, to, from, width, resolution, aspect, up, viewAngle, perspective, options, buttonState = 1, buttonUpApprox = "none", buttonDownApprox = "none", buttonUpDensity = 1, buttonDownDensity = 1, renderMode = 0, defaultCamera, reset, backgroundColor, throttle, RECenable = 0, RECfile, RECformat, RECresolution, RECaspect, AAenable = 0, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, interactionMode, title, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, webOptions) -> ( object, camera, where) { ImageMessage( id, backgroundColor, throttle, RECenable, RECfile, RECformat, RECresolution, RECaspect, AAenable, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, interactionMode, title, renderMode, buttonUpApprox, buttonDownApprox, buttonUpDensity, buttonDownDensity) [instance: 1, cache: 1]; autoCamera = AutoCamera( object, "front", object, resolution, aspect, [0,1,0], perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; realCamera = Camera( to, from, width, resolution, aspect, up, perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; coloredDefaultCamera = UpdateCamera(defaultCamera, background=backgroundColor) [instance: 1, cache: 1]; nullDefaultCamera = Inquire(defaultCamera, "is null + 1") [instance: 1, cache: 1]; resetCamera = Switch( nullDefaultCamera, coloredDefaultCamera, autoCamera) [instance: 1, cache: 1]; resetNull = Inquire( reset, "is null + 1") [instance: 2, cache: 1]; reset = Switch( resetNull, reset, 0) [instance: 2, cache: 1]; whichCamera = Compute( "($0 != 0 || $1 == 0) ? 1 : 2", reset, useVector) [instance: 1, cache: 1]; camera = Switch( whichCamera, resetCamera, realCamera) [instance: 3, cache: 1]; AAobject = AutoAxes( object, camera, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels) [instance: 1, cache: 1]; switchAAenable = Compute("$0+1", AAenable) [instance: 2, cache: 1]; object = Switch( switchAAenable, object, AAobject) [instance:4, cache: 1]; SWapproximation_options = Switch( buttonState, buttonUpApprox, buttonDownApprox) [instance: 5, cache: 1]; SWdensity_options = Switch( buttonState, buttonUpDensity, buttonDownDensity) [instance: 6, cache: 1]; HWapproximation_options = Format( "%s,%s", buttonDownApprox, buttonUpApprox) [instance: 1, cache: 1]; HWdensity_options = Format( "%d,%d", buttonDownDensity, buttonUpDensity) [instance: 2, cache: 1]; switchRenderMode = Compute( "$0+1", renderMode) [instance: 3, cache: 1]; approximation_options = Switch( switchRenderMode, SWapproximation_options, HWapproximation_options) [instance: 7, cache: 1]; density_options = Switch( switchRenderMode, SWdensity_options, HWdensity_options) [instance: 8, cache: 1]; renderModeString = Switch( switchRenderMode, "software", "hardware")[instance: 9, cache: 1]; object_tag = Inquire( object, "object tag")[instance: 3, cache: 1]; annoted_object = Options( object, "send boxes", 0, "cache", 1, "object tag", object_tag, "ddcamera", whichCamera, "rendering approximation", approximation_options, "render every", density_options, "button state", buttonState, "rendering mode", renderModeString) [instance: 1, cache: 1]; RECresNull = Inquire( RECresolution, "is null + 1") [instance: 4, cache: 1]; ImageResolution = Inquire( camera, "camera resolution") [instance: 5, cache: 1]; RECresolution = Switch( RECresNull, RECresolution, ImageResolution) [instance: 10, cache: 1]; RECaspectNull = Inquire( RECaspect, "is null + 1") [instance: 6, cache: 1]; ImageAspect = Inquire( camera, "camera aspect") [instance: 7, cache: 1]; RECaspect = Switch( RECaspectNull, RECaspect, ImageAspect) [instance: 11, cache: 1]; switchRECenable = Compute( "$0 == 0 ? 1 : (($2 == $3) && ($4 == $5)) ? ($1 == 1 ? 2 : 3) : 4", RECenable, switchRenderMode, RECresolution, ImageResolution, RECaspect, ImageAspect) [instance: 4, cache: 1]; NoRECobject, RECNoRerenderObject, RECNoRerHW, RECRerenderObject = Route(switchRECenable, annoted_object); Display( NoRECobject, camera, where, throttle) [instance: 1, cache: 1]; image = Render( RECNoRerenderObject, camera) [instance: 1, cache: 1]; Display( image, NULL, where, throttle) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 1, cache: 1]; rec_where = Display( RECNoRerHW, camera, where, throttle) [instance: 1, cache: 0]; rec_image = ReadImageWindow( rec_where) [instance: 1, cache: 1]; WriteImage( rec_image, RECfile, RECformat) [instance: 1, cache: 1]; RECupdateCamera = UpdateCamera( camera, resolution=RECresolution, aspect=RECaspect) [instance: 2, cache: 1]; Display( RECRerenderObject, camera, where, throttle) [instance: 1, cache: 1]; RECRerenderObject = ScaleScreen( RECRerenderObject, NULL, RECresolution, camera) [instance: 1, cache: 1]; image = Render( RECRerenderObject, RECupdateCamera) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 2, cache: 1]; } main_Image_4_in_1 = "Image_4"; main_Image_4_in_3 = "X24,,"; main_Image_4_in_4 = 1; main_Image_4_in_5 = [3.98495 2.30071 0.460402]; main_Image_4_in_6 = [3.98495 2.30071 23.7018]; main_Image_4_in_7 = 12.455; main_Image_4_in_8 = 826; main_Image_4_in_9 = 0.751; main_Image_4_in_10 = [0 1 0]; main_Image_4_in_11 = NULL; main_Image_4_in_12 = 0; main_Image_4_in_13 = NULL; main_Image_4_in_14 = 1; main_Image_4_in_15 = NULL; main_Image_4_in_16 = NULL; main_Image_4_in_17 = NULL; main_Image_4_in_18 = NULL; main_Image_4_in_19 = 0; main_Image_4_in_20 = NULL; main_Image_4_in_21 = NULL; main_Image_4_in_22 = NULL; main_Image_4_in_23 = NULL; main_Image_4_in_25 = NULL; main_Image_4_in_26 = NULL; main_Image_4_in_27 = NULL; main_Image_4_in_28 = NULL; main_Image_4_in_29 = NULL; main_Image_4_in_30 = NULL; main_Image_4_in_31 = NULL; main_Image_4_in_32 = NULL; main_Image_4_in_33 = NULL; main_Image_4_in_34 = NULL; main_Image_4_in_35 = NULL; main_Image_4_in_36 = NULL; main_Image_4_in_37 = NULL; main_Image_4_in_38 = NULL; main_Image_4_in_39 = NULL; main_Image_4_in_40 = NULL; main_Image_4_in_41 = "rotate"; main_Image_4_in_42 = NULL; main_Image_4_in_43 = NULL; main_Image_4_in_44 = NULL; main_Image_4_in_45 = NULL; main_Image_4_in_46 = NULL; main_Image_4_in_47 = NULL; main_Image_4_in_48 = NULL; main_Image_4_in_49 = NULL; Executive("product version 4 4 4"); $sync main(); elk-6.3.2/examples/Compton-scattering/PaxHeaders.21352/Ni0000644000000000000000000000013113543334737017730 xustar0030 mtime=1569569247.632640027 29 atime=1569569247.62764003 30 ctime=1569569247.632640027 elk-6.3.2/examples/Compton-scattering/Ni/0000755002504400250440000000000013543334737022055 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Compton-scattering/Ni/PaxHeaders.21352/EMD1D.OUT0000644000000000000000000000013213543334737021171 xustar0030 mtime=1569569247.630640028 30 atime=1569569247.628640029 30 ctime=1569569247.630640028 elk-6.3.2/examples/Compton-scattering/Ni/EMD1D.OUT0000644002504400250440000001265613543334737023252 0ustar00dewhurstdewhurst00000000000000 0.000000000 13.36944509 0.3808160347E-01 13.36242486 0.7616320694E-01 13.34713589 0.1142448104 13.32147908 0.1523264139 13.27585701 0.1904080173 13.20894159 0.2284896208 13.13144996 0.2665712243 13.05060461 0.3046528277 12.95891882 0.3427344312 12.85570551 0.3808160347 12.73724511 0.4188976382 12.58594259 0.4569792416 12.40646548 0.4950608451 12.20258717 0.5331424486 11.98203209 0.5712240520 11.74982301 0.6093056555 11.50397852 0.6473872590 11.25947488 0.6854688624 11.02068933 0.7235504659 10.79507807 0.7616320694 10.59602405 0.7997136728 10.41950030 0.8377952763 10.24830043 0.8758768798 10.07520866 0.9139584832 9.896749716 0.9520400867 9.714049752 0.9901216902 9.530473138 1.028203294 9.339954965 1.066284897 9.140787720 1.104366501 8.935569331 1.142448104 8.738411330 1.180529708 8.561515588 1.218611311 8.394655152 1.256692914 8.228303536 1.294774518 8.068561140 1.332856121 7.910297932 1.370937725 7.742682296 1.409019328 7.573756340 1.447100932 7.410641772 1.485182535 7.254345570 1.523264139 7.097871593 1.561345742 6.940479426 1.599427346 6.789792236 1.637508949 6.639704472 1.675590553 6.489502153 1.713672156 6.355455259 1.751753760 6.239973890 1.789835363 6.120954124 1.827916966 5.988027446 1.865998570 5.841258977 1.904080173 5.692287515 1.942161777 5.546780416 1.980243380 5.395408983 2.018324984 5.236678739 2.056406587 5.076396106 2.094488191 4.928660100 2.132569794 4.796921137 2.170651398 4.667976134 2.208733001 4.538842525 2.246814605 4.414996074 2.284896208 4.291667931 2.322977812 4.163871229 2.361059415 4.036540109 2.399141019 3.912284859 2.437222622 3.794245903 2.475304225 3.679202305 2.513385829 3.567232516 2.551467432 3.462760945 2.589549036 3.361378745 2.627630639 3.263495724 2.665712243 3.177204176 2.703793846 3.100418825 2.741875450 3.022089438 2.779957053 2.938390805 2.818038657 2.850146442 2.856120260 2.763888755 2.894201864 2.680168113 2.932283467 2.593537368 2.970365071 2.504035903 3.008446674 2.415061089 3.046528277 2.334230769 3.084609881 2.261386065 3.122691484 2.189648361 3.160773088 2.119272318 3.198854691 2.052492680 3.236936295 1.985614800 3.275017898 1.917490125 3.313099502 1.850589025 3.351181105 1.786127365 3.389262709 1.725223654 3.427344312 1.665586690 3.465425916 1.608161480 3.503507519 1.554434647 3.541589123 1.502060642 3.579670726 1.452381398 3.617752329 1.409522582 3.655833933 1.370733010 3.693915536 1.330727243 3.731997140 1.288452971 3.770078743 1.244733351 3.808160347 1.202922648 3.846241950 1.162416103 3.884323554 1.120802947 3.922405157 1.078265333 3.960486761 1.036333665 3.998568364 0.9988444237 4.036649968 0.9649956003 4.074731571 0.9318476569 4.112813175 0.8997748555 4.150894778 0.8695350725 4.188976382 0.8389903421 4.227057985 0.8083465603 4.265139588 0.7786091047 4.303221192 0.7499539424 4.341302795 0.7229939196 4.379384399 0.6965284364 4.417466002 0.6713876299 4.455547606 0.6479272515 4.493629209 0.6251312139 4.531710813 0.6041244525 4.569792416 0.5862059253 4.607874020 0.5694603533 4.645955623 0.5520693813 4.684037227 0.5339913846 4.722118830 0.5158421203 4.760200434 0.4990218240 4.798282037 0.4827316178 4.836363640 0.4659253487 4.874445244 0.4486479322 4.912526847 0.4318071797 4.950608451 0.4171274069 4.988690054 0.4040055540 5.026771658 0.3911671146 5.064853261 0.3788656153 5.102934865 0.3672275819 5.141016468 0.3553093866 5.179098072 0.3434334700 5.217179675 0.3319091178 5.255261279 0.3207857681 5.293342882 0.3100308349 5.331424486 0.2991821951 5.369506089 0.2888413378 5.407587693 0.2790769534 5.445669296 0.2695133828 5.483750899 0.2607814560 5.521832503 0.2533991562 5.559914106 0.2461602714 5.597995710 0.2385604544 5.636077313 0.2307868105 5.674158917 0.2231243759 elk-6.3.2/examples/Compton-scattering/Ni/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021111 xustar0030 mtime=1569569247.634640026 30 atime=1569569247.633640026 30 ctime=1569569247.634640026 elk-6.3.2/examples/Compton-scattering/Ni/elk.in0000644002504400250440000000170213543334737023160 0ustar00dewhurstdewhurst00000000000000 ! Twice-integrated electron momentum density (EMD) plot for ferromagnetic Ni. ! First the EMD is calculated on a regular H+k grid. This is then interpolated ! and integrated in directions which are mutually orthogonal to each other and ! along the plotting line. This line is given by plot1d. ! Example by David Ernsting and Stephen Dugdale. tasks 0 170 171 ! define the plotting line in reciprocal lattice coordinates plot1d 2 150 0.0 0.0 0.0 3.0 3.0 0.0 ! maximum length of H+k-vectors for the EMD hkmax 8.d0 ! small swidth to give a sharp profile swidth 0.00016 ngridk 20 20 20 spinpol .true. bfieldc 0.0 0.0 -0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.322 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/Compton-scattering/PaxHeaders.21352/Si-GW0000644000000000000000000000013213543334737020251 xustar0030 mtime=1569569247.638640023 30 atime=1569569247.637640024 30 ctime=1569569247.638640023 elk-6.3.2/examples/Compton-scattering/Si-GW/0000755002504400250440000000000013543334737022375 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Compton-scattering/Si-GW/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334737021431 xustar0030 mtime=1569569247.639640022 30 atime=1569569247.638640023 30 ctime=1569569247.639640022 elk-6.3.2/examples/Compton-scattering/Si-GW/elk.in0000644002504400250440000000244613543334737023506 0ustar00dewhurstdewhurst00000000000000 ! Compton profile determined for silicon from the GW approximation. ! The density matrices are calculated from the interacting Green's function at ! each k-point and the files EVECSV.OUT and OCCSV.OUT are updated. The electron ! momentum density (EMD) is then computed from these. tasks 0 : ground state calculation 600 : determined the GW self-energy 640 : write the natural orbitals and occupaction numbers 170 : write the EMD for each k-point 171 : produce the 1D EMD plot ! use LAPW nxoapwlo 1 ! Matsubara frequency cut-off wmaxgw 20.0 ! response function G-vector cut-off gmaxrf 3.0 ! temperature of many-body system (determines Matsubara frequency spacing) tempk 1000.0 ! define the plotting line in reciprocal lattice coordinates plot1d 2 150 0.0 0.0 0.0 3.0 3.0 0.0 ! maximum length of H+k-vectors for the EMD hkmax 8.d0 ngridk 8 8 8 ! q-point grid can be smaller than (but commensurate with) the k-point set ngridq 2 2 2 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 elk-6.3.2/examples/PaxHeaders.21352/ELNES0000644000000000000000000000013113543334740014442 xustar0030 mtime=1569569248.182639675 29 atime=1569569247.64364002 30 ctime=1569569248.182639675 elk-6.3.2/examples/ELNES/0000755002504400250440000000000013543334740016567 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELNES/PaxHeaders.21352/Pu0000644000000000000000000000013213543334740015027 xustar0030 mtime=1569569248.156639692 30 atime=1569569247.646640018 30 ctime=1569569248.156639692 elk-6.3.2/examples/ELNES/Pu/0000755002504400250440000000000013543334740017153 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELNES/Pu/PaxHeaders.21352/Pu+.in0000644000000000000000000000013213543334737016101 xustar0030 mtime=1569569247.648640017 30 atime=1569569247.647640017 30 ctime=1569569247.648640017 elk-6.3.2/examples/ELNES/Pu/Pu+.in0000644002504400250440000000472313543334737020156 0ustar00dewhurstdewhurst00000000000000 'Pu' : spsymb 'plutonium' : spname -94.0000 : spzn 444784.7903 : spmass 0.206284E-06 2.2000 42.3450 800 : sprmin, rmt, sprmax, nrmt 27 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 3.50000 T <---- 1/2 electron removed from next lowest state 4 2 2 4.00000 F 4 2 3 6.00000 F 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 3.00000 F 5 3 4 3.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.50000 F <---- and added to highest state 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.7999 0 T 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -0.7412 0 T 2 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -30.0000 0 T elk-6.3.2/examples/ELNES/Pu/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740016207 xustar0030 mtime=1569569248.157639691 30 atime=1569569248.156639692 30 ctime=1569569248.157639691 elk-6.3.2/examples/ELNES/Pu/elk.in0000644002504400250440000000140113543334740020252 0ustar00dewhurstdewhurst00000000000000 ! Electron loss near-edge spectroscopy (ELNES) of spin-polarised fcc plutonium. ! Take note of the modified species file, 'Pu+.in', and the requirement of ! spin-orbit coupling. tasks 0 140 spinorb .true. ! maximum allowed energy for the initial state in the double differential ! cross-section formula emaxelnes -20.0 wplot 300 100 6 : nwplot, ngrkf, nswplot 28.0 32.0 : wplot nempty 20 ! q-vector in lattice coordinates vecql 0.0 0.0 0.25 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 9.13730 atoms 1 : nspecies 'Pu+.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.01 : atposl, bfcmt ngridk 4 4 4 elk-6.3.2/examples/ELNES/PaxHeaders.21352/BN0000644000000000000000000000013213543334740014742 xustar0030 mtime=1569569248.179639677 30 atime=1569569248.161639689 30 ctime=1569569248.179639677 elk-6.3.2/examples/ELNES/BN/0000755002504400250440000000000013543334740017066 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELNES/BN/PaxHeaders.21352/B.in0000644000000000000000000000013213543334740015530 xustar0030 mtime=1569569248.162639688 30 atime=1569569248.162639688 30 ctime=1569569248.162639688 elk-6.3.2/examples/ELNES/BN/B.in0000644002504400250440000000172213543334740017601 0ustar00dewhurstdewhurst00000000000000 'B' : spsymb 'boron' : spname -5.00000 : spzn 19707.24740 : spmass 0.894427E-06 1.8000 43.3288 300 : sprmin, rmt, sprmax, nrmt 3 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 2 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F elk-6.3.2/examples/ELNES/BN/PaxHeaders.21352/ELNES.OUT0000644000000000000000000000013213543334740016256 xustar0030 mtime=1569569248.167639685 30 atime=1569569248.165639686 30 ctime=1569569248.167639685 elk-6.3.2/examples/ELNES/BN/ELNES.OUT0000644002504400250440000002553413543334740020336 0ustar00dewhurstdewhurst00000000000000 18.00000000 0.000000000 18.01333333 0.000000000 18.02666667 0.000000000 18.04000000 0.000000000 18.05333333 0.000000000 18.06666667 0.000000000 18.08000000 0.000000000 18.09333333 0.000000000 18.10666667 0.000000000 18.12000000 0.000000000 18.13333333 0.000000000 18.14666667 0.000000000 18.16000000 0.000000000 18.17333333 0.000000000 18.18666667 0.000000000 18.20000000 0.000000000 18.21333333 0.000000000 18.22666667 0.000000000 18.24000000 0.000000000 18.25333333 0.000000000 18.26666667 0.000000000 18.28000000 0.000000000 18.29333333 0.000000000 18.30666667 0.000000000 18.32000000 0.000000000 18.33333333 0.000000000 18.34666667 0.000000000 18.36000000 0.000000000 18.37333333 0.000000000 18.38666667 0.000000000 18.40000000 0.000000000 18.41333333 0.000000000 18.42666667 0.000000000 18.44000000 0.000000000 18.45333333 0.000000000 18.46666667 0.000000000 18.48000000 0.000000000 18.49333333 0.000000000 18.50666667 0.000000000 18.52000000 0.000000000 18.53333333 0.000000000 18.54666667 0.000000000 18.56000000 0.000000000 18.57333333 0.000000000 18.58666667 0.000000000 18.60000000 0.000000000 18.61333333 0.000000000 18.62666667 0.000000000 18.64000000 0.4802983991E-10 18.65333333 0.4187232974E-08 18.66666667 0.1166852820E-06 18.68000000 0.1185389883E-05 18.69333333 0.7384946085E-05 18.70666667 0.3045664582E-04 18.72000000 0.9242656802E-04 18.73333333 0.2095808507E-03 18.74666667 0.3736608862E-03 18.76000000 0.5533811122E-03 18.77333333 0.7624387726E-03 18.78666667 0.1130701129E-02 18.80000000 0.1718257455E-02 18.81333333 0.2493497109E-02 18.82666667 0.3185876321E-02 18.84000000 0.3773753388E-02 18.85333333 0.4163071949E-02 18.86666667 0.4417930457E-02 18.88000000 0.4382860113E-02 18.89333333 0.4265167650E-02 18.90666667 0.4274114406E-02 18.92000000 0.4531939553E-02 18.93333333 0.4773633135E-02 18.94666667 0.4692470703E-02 18.96000000 0.4280908391E-02 18.97333333 0.3707009360E-02 18.98666667 0.3231771893E-02 19.00000000 0.2948639963E-02 19.01333333 0.2934893917E-02 19.02666667 0.3219916297E-02 19.04000000 0.3575260703E-02 19.05333333 0.3751330763E-02 19.06666667 0.3327580078E-02 19.08000000 0.2543806713E-02 19.09333333 0.1654728178E-02 19.10666667 0.1150618326E-02 19.12000000 0.9459602807E-03 19.13333333 0.8998660240E-03 19.14666667 0.8176059080E-03 19.16000000 0.7558026853E-03 19.17333333 0.9037873207E-03 19.18666667 0.1321903948E-02 19.20000000 0.1867767255E-02 19.21333333 0.2223600447E-02 19.22666667 0.2224099692E-02 19.24000000 0.1902702475E-02 19.25333333 0.1439482382E-02 19.26666667 0.9722495061E-03 19.28000000 0.5977864035E-03 19.29333333 0.3478918970E-03 19.30666667 0.2213236000E-03 19.32000000 0.1703656489E-03 19.33333333 0.1539137766E-03 19.34666667 0.1451793490E-03 19.36000000 0.1375585069E-03 19.37333333 0.1278149172E-03 19.38666667 0.1195727132E-03 19.40000000 0.1260018751E-03 19.41333333 0.1695476274E-03 19.42666667 0.3183900566E-03 19.44000000 0.5793807268E-03 19.45333333 0.9115068510E-03 19.46666667 0.1130902983E-02 19.48000000 0.1185230847E-02 19.49333333 0.1088279488E-02 19.50666667 0.9753621739E-03 19.52000000 0.8640461661E-03 19.53333333 0.7562832710E-03 19.54666667 0.6414338684E-03 19.56000000 0.5560142899E-03 19.57333333 0.5075797090E-03 19.58666667 0.4777864278E-03 19.60000000 0.4375588173E-03 19.61333333 0.3777842167E-03 19.62666667 0.3123612299E-03 19.64000000 0.2611515503E-03 19.65333333 0.2373966982E-03 19.66666667 0.2324238458E-03 19.68000000 0.2292782226E-03 19.69333333 0.2212538667E-03 19.70666667 0.2174469307E-03 19.72000000 0.2324020016E-03 19.73333333 0.2755053590E-03 19.74666667 0.3373106475E-03 19.76000000 0.4001468611E-03 19.77333333 0.4277098535E-03 19.78666667 0.4056550688E-03 19.80000000 0.3437894304E-03 19.81333333 0.2756163370E-03 19.82666667 0.2317231865E-03 19.84000000 0.2230530902E-03 19.85333333 0.2569834841E-03 19.86666667 0.3246486802E-03 19.88000000 0.4109200279E-03 19.89333333 0.4913710672E-03 19.90666667 0.5572174814E-03 19.92000000 0.6215124056E-03 19.93333333 0.7215388596E-03 19.94666667 0.8783714081E-03 19.96000000 0.1089505958E-02 19.97333333 0.1309540454E-02 19.98666667 0.1506600555E-02 20.00000000 0.1641843699E-02 20.01333333 0.1683875413E-02 20.02666667 0.1608065088E-02 20.04000000 0.1413556994E-02 20.05333333 0.1149511752E-02 20.06666667 0.8333914280E-03 20.08000000 0.5265343190E-03 20.09333333 0.2595013230E-03 20.10666667 0.9703860137E-04 20.12000000 0.2181874162E-04 20.13333333 0.4267836290E-05 20.14666667 0.8728401994E-06 20.16000000 0.4237144268E-07 20.17333333 0.000000000 20.18666667 0.000000000 20.20000000 0.000000000 20.21333333 0.000000000 20.22666667 0.000000000 20.24000000 0.000000000 20.25333333 0.000000000 20.26666667 0.000000000 20.28000000 0.000000000 20.29333333 0.000000000 20.30666667 0.000000000 20.32000000 0.000000000 20.33333333 0.000000000 20.34666667 0.000000000 20.36000000 0.000000000 20.37333333 0.000000000 20.38666667 0.000000000 20.40000000 0.000000000 20.41333333 0.000000000 20.42666667 0.000000000 20.44000000 0.000000000 20.45333333 0.000000000 20.46666667 0.000000000 20.48000000 0.000000000 20.49333333 0.000000000 20.50666667 0.000000000 20.52000000 0.000000000 20.53333333 0.000000000 20.54666667 0.000000000 20.56000000 0.000000000 20.57333333 0.000000000 20.58666667 0.000000000 20.60000000 0.000000000 20.61333333 0.000000000 20.62666667 0.000000000 20.64000000 0.000000000 20.65333333 0.000000000 20.66666667 0.000000000 20.68000000 0.000000000 20.69333333 0.000000000 20.70666667 0.000000000 20.72000000 0.000000000 20.73333333 0.000000000 20.74666667 0.000000000 20.76000000 0.000000000 20.77333333 0.000000000 20.78666667 0.000000000 20.80000000 0.000000000 20.81333333 0.000000000 20.82666667 0.000000000 20.84000000 0.000000000 20.85333333 0.000000000 20.86666667 0.000000000 20.88000000 0.000000000 20.89333333 0.000000000 20.90666667 0.000000000 20.92000000 0.000000000 20.93333333 0.000000000 20.94666667 0.000000000 20.96000000 0.000000000 20.97333333 0.000000000 20.98666667 0.000000000 21.00000000 0.000000000 21.01333333 0.000000000 21.02666667 0.000000000 21.04000000 0.000000000 21.05333333 0.000000000 21.06666667 0.000000000 21.08000000 0.000000000 21.09333333 0.000000000 21.10666667 0.000000000 21.12000000 0.000000000 21.13333333 0.000000000 21.14666667 0.000000000 21.16000000 0.000000000 21.17333333 0.000000000 21.18666667 0.000000000 21.20000000 0.000000000 21.21333333 0.000000000 21.22666667 0.000000000 21.24000000 0.000000000 21.25333333 0.000000000 21.26666667 0.000000000 21.28000000 0.000000000 21.29333333 0.000000000 21.30666667 0.000000000 21.32000000 0.000000000 21.33333333 0.000000000 21.34666667 0.000000000 21.36000000 0.000000000 21.37333333 0.000000000 21.38666667 0.000000000 21.40000000 0.000000000 21.41333333 0.000000000 21.42666667 0.000000000 21.44000000 0.000000000 21.45333333 0.000000000 21.46666667 0.000000000 21.48000000 0.000000000 21.49333333 0.000000000 21.50666667 0.000000000 21.52000000 0.000000000 21.53333333 0.000000000 21.54666667 0.000000000 21.56000000 0.000000000 21.57333333 0.000000000 21.58666667 0.000000000 21.60000000 0.000000000 21.61333333 0.000000000 21.62666667 0.000000000 21.64000000 0.000000000 21.65333333 0.000000000 21.66666667 0.000000000 21.68000000 0.000000000 21.69333333 0.000000000 21.70666667 0.000000000 21.72000000 0.000000000 21.73333333 0.000000000 21.74666667 0.000000000 21.76000000 0.000000000 21.77333333 0.000000000 21.78666667 0.000000000 21.80000000 0.000000000 21.81333333 0.000000000 21.82666667 0.000000000 21.84000000 0.000000000 21.85333333 0.000000000 21.86666667 0.000000000 21.88000000 0.000000000 21.89333333 0.000000000 21.90666667 0.000000000 21.92000000 0.000000000 21.93333333 0.000000000 21.94666667 0.000000000 21.96000000 0.000000000 21.97333333 0.000000000 21.98666667 0.000000000 elk-6.3.2/examples/ELNES/BN/PaxHeaders.21352/N+.in0000644000000000000000000000013213543334740015617 xustar0030 mtime=1569569248.172639682 30 atime=1569569248.171639682 30 ctime=1569569248.172639682 elk-6.3.2/examples/ELNES/BN/N+.in0000644002504400250440000000253413543334740017672 0ustar00dewhurstdewhurst00000000000000 'N+' : spsymb 'nitrogen with pseudo core-hole' : spname -8.00000 : spzn 25532.72506 : spmass 0.755929E-06 1.4500 26.9237 300 : sprmin, rmt, sprmax, nrmt 4 : spnst 1 0 1 2.00000 F : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 2 1 2 3.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -0.6020 0 T 0 3 0.1500 0 F 0.1500 1 F -20.0000 0 T elk-6.3.2/examples/ELNES/BN/PaxHeaders.21352/N.in0000644000000000000000000000013113543334740015543 xustar0030 mtime=1569569248.176639679 29 atime=1569569248.17563968 30 ctime=1569569248.176639679 elk-6.3.2/examples/ELNES/BN/N.in0000644002504400250440000000222013543334740017607 0ustar00dewhurstdewhurst00000000000000 'N' : spsymb 'nitrogen' : spname -7.00000 : spzn 25532.65213 : spmass 0.755929E-06 1.8000 33.2667 300 : sprmin, rmt, sprmax, nrmt 4 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 2 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -0.6770 0 T elk-6.3.2/examples/ELNES/BN/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740016122 xustar0030 mtime=1569569248.180639677 30 atime=1569569248.179639677 30 ctime=1569569248.180639677 elk-6.3.2/examples/ELNES/BN/elk.in0000644002504400250440000000356213543334740020177 0ustar00dewhurstdewhurst00000000000000 ! Calculation of the electron loss near-edge spectroscopy (ELNES) for boron ! nitride. Note that a 16 atom supercell has been constructed with a special ! N atom (defined in the species file 'N+.in') for which the nuclear and ! electronic charges have been increased by one, and the 1s core code state has ! been included as a valence state by adding a local-orbital at the appropriate ! energy. This approximates the local core-hole interation. Compare with Phys. ! Rev. B 64, 115107 (2001). ! This example is well converged and is of publication quality. However it is ! fairly time-consuming and is best run on a multi-processor machine. tasks 0 140 ! spin-orbit coupling required to obtain realistic 1s state in valence spinorb .true. ! ELNES q-vector in lattice coordinates vecql 0.0 0.0 0.125 ! energy range for ELNES plot wplot 300 150 3 : nwplot, ngrkf, nswplot 18.0 22.0 : wplot (for the nitrogen K-edge) ! maximum allowed energy for the initial state in the double differential ! cross-section formula emaxelnes -10.0 ! large number of empty states required nempty 30 ngridk 8 8 8 avec 9.674352 0.0 0.0 4.837176 8.378234597 0.0 4.837176 2.792744866 7.899075331 atoms 3 : nspecies 'B.in' : spfname 8 : natoms; atposl below 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.5 0.0 0.0 0.5 0.5 0.5 0.0 0.0 0.5 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 'N+.in' : spfname 1 : natoms; atposl below 0.125 0.125 0.125 'N.in' : spfname 7 0.125 0.125 0.625 0.125 0.625 0.125 0.125 0.625 0.625 0.625 0.125 0.125 0.625 0.125 0.625 0.625 0.625 0.125 0.625 0.625 0.625 elk-6.3.2/examples/ELNES/PaxHeaders.21352/Cu0000644000000000000000000000013213543334740015012 xustar0030 mtime=1569569248.188639672 30 atime=1569569248.183639675 30 ctime=1569569248.188639672 elk-6.3.2/examples/ELNES/Cu/0000755002504400250440000000000013543334740017136 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/ELNES/Cu/PaxHeaders.21352/Cu+.in0000644000000000000000000000013213543334740016041 xustar0030 mtime=1569569248.186639673 30 atime=1569569248.185639674 30 ctime=1569569248.186639673 elk-6.3.2/examples/ELNES/Cu/Cu+.in0000644002504400250440000000373313543334740020116 0ustar00dewhurstdewhurst00000000000000 'Cu+' : spsymb 'copper with pseudo core-hole' : spname -29.0000 : spzn 115837.2717 : spmass 0.371391E-06 2.0000 37.1331 500 : sprmin, rmt, sprmax, nrmt 10 : spnst 1 0 1 1.50000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 1.50000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 8 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -2.6152 0 T 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -4.0000 0 T 1 3 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -34.0000 0 T 0 3 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -41.0000 0 T elk-6.3.2/examples/ELNES/Cu/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334740016170 xustar0029 mtime=1569569248.19063967 30 atime=1569569248.189639671 29 ctime=1569569248.19063967 elk-6.3.2/examples/ELNES/Cu/elk.in0000644002504400250440000000225213543334740020242 0ustar00dewhurstdewhurst00000000000000 ! Electron loss near-edge spectroscopy for fcc Cu. Note that a special species ! file has been constructed to simulate dynamical core-hole effects by removing ! half an electron from the 1s core state (even though we are interested in the ! 2s and 2p transitions). This is a publication-quality calculation and may take ! some time to complete. ! No supercell is required because of the strong metallic screening of copper. ! Compare with Eur. Phys. J. B21, 363 (2001). tasks 0 140 ! spin-orbit coupling required for accurate description of deep valence states spinorb .true. ! maximum allowed energy for the initial state in the double differential ! cross-section formula emaxelnes -30.0 ! energy range for ELNES plot wplot 500 200 1 : nwplot, ngrkf, nswplot 33.0 37.5 : wplot (suitable for the Cu L3 edge) vecql 0.0 0.0 0.1 rgkmax 8.0 gmaxvr 14.0 nempty 20 ngridk 10 10 10 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 6.83117 atoms 1 : nspecies 'Cu+.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/PaxHeaders.21352/Mossbauer0000644000000000000000000000013213543334740015535 xustar0030 mtime=1569569248.600639409 30 atime=1569569248.193639668 30 ctime=1569569248.600639409 elk-6.3.2/examples/Mossbauer/0000755002504400250440000000000013543334740017661 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Mossbauer/PaxHeaders.21352/Mg2SiO40000644000000000000000000000013213543334740016661 xustar0030 mtime=1569569248.581639421 30 atime=1569569248.196639666 30 ctime=1569569248.581639421 elk-6.3.2/examples/Mossbauer/Mg2SiO4/0000755002504400250440000000000013543334740021005 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Mossbauer/Mg2SiO4/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740020041 xustar0030 mtime=1569569248.199639665 30 atime=1569569248.198639665 30 ctime=1569569248.199639665 elk-6.3.2/examples/Mossbauer/Mg2SiO4/elk.in0000644002504400250440000000756613543334740022126 0ustar00dewhurstdewhurst00000000000000 ! Electric field gradient of Mg2SiO4. ! See: B. Winkler, P. Blaha and K. Schwarz, Am.Mineralog. 81, 545 (1996). tasks 0 115 xctype 20 ngridk 2 2 2 sppath '../../../species/' ! Atomic positions generated by spacegroup version 1.2.01 ! Hermann-Mauguin symbol : Pbnm ! Hall symbol : -P 2c 2ab ! Schoenflies symbol : D2h^16 ! space group number : 62:cab ! lattice constants (a,b,c) : 8.980000000 19.26010000 11.29680000 ! angles in degrees (bc,ac,ab) : 90.00000000 90.00000000 90.00000000 ! number of conventional unit cells : 1 1 1 ! reduction to primitive cell : T ! Wyckoff positions : ! species : 1, Mg ! 0.000000000 0.000000000 0.000000000 ! 0.5084600000 0.7774200000 0.2500000000 ! species : 2, Si ! 0.7353000000E-01 0.5940300000 0.2500000000 ! species : 3, O ! 0.7340800000 0.5915500000 0.2500000000 ! 0.2216000000 0.4470400000 0.2500000000 ! 0.2225300000 0.6631600000 0.4669700000 avec 8.980000000 0.000000000 0.000000000 0.000000000 0.000000000 11.29680000 0.000000000 19.26010000 0.000000000 atoms 3 : nspecies 'Mg.in' : spfname 8 : natoms; atposl, bfcmt below 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 0.50000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.50000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 0.50846000 0.25000000 0.77742000 0.00000000 0.00000000 0.00000000 0.49154000 0.75000000 0.22258000 0.00000000 0.00000000 0.00000000 0.00846000 0.75000000 0.72258000 0.00000000 0.00000000 0.00000000 0.99154000 0.25000000 0.27742000 0.00000000 0.00000000 0.00000000 'Si.in' : spfname 4 : natoms; atposl, bfcmt below 0.07353000 0.25000000 0.59403000 0.00000000 0.00000000 0.00000000 0.92647000 0.75000000 0.40597000 0.00000000 0.00000000 0.00000000 0.57353000 0.75000000 0.90597000 0.00000000 0.00000000 0.00000000 0.42647000 0.25000000 0.09403000 0.00000000 0.00000000 0.00000000 'O.in' : spfname 16 : natoms; atposl, bfcmt below 0.73408000 0.25000000 0.59155000 0.00000000 0.00000000 0.00000000 0.26592000 0.75000000 0.40845000 0.00000000 0.00000000 0.00000000 0.23408000 0.75000000 0.90845000 0.00000000 0.00000000 0.00000000 0.76592000 0.25000000 0.09155000 0.00000000 0.00000000 0.00000000 0.22160000 0.25000000 0.44704000 0.00000000 0.00000000 0.00000000 0.77840000 0.75000000 0.55296000 0.00000000 0.00000000 0.00000000 0.72160000 0.75000000 0.05296000 0.00000000 0.00000000 0.00000000 0.27840000 0.25000000 0.94704000 0.00000000 0.00000000 0.00000000 0.22253000 0.46697000 0.66316000 0.00000000 0.00000000 0.00000000 0.77747000 0.53303000 0.33684000 0.00000000 0.00000000 0.00000000 0.77747000 0.96697000 0.33684000 0.00000000 0.00000000 0.00000000 0.22253000 0.03303000 0.66316000 0.00000000 0.00000000 0.00000000 0.72253000 0.53303000 0.83684000 0.00000000 0.00000000 0.00000000 0.27747000 0.46697000 0.16316000 0.00000000 0.00000000 0.00000000 0.27747000 0.03303000 0.16316000 0.00000000 0.00000000 0.00000000 0.72253000 0.96697000 0.83684000 0.00000000 0.00000000 0.00000000 elk-6.3.2/examples/Mossbauer/Mg2SiO4/PaxHeaders.21352/spacegroup.in0000644000000000000000000000013013543334740021434 xustar0029 mtime=1569569248.58263942 30 atime=1569569248.581639421 29 ctime=1569569248.58263942 elk-6.3.2/examples/Mossbauer/Mg2SiO4/spacegroup.in0000644002504400250440000000113313543334740023503 0ustar00dewhurstdewhurst00000000000000 'Pbnm' : hrmg 8.9800 19.2601 11.2968 : a, b, c 90.0 90.0 90.0 : bc, ac, ab 1 1 1 : ncell .true. : primcell 3 : nspecies 'Mg' : spsymb, spfname 2 : nwpos 0.00000 0.00000 0.00000 : wpos 0.50846 0.77742 0.25000 'Si' 1 0.07353 0.59403 0.25000 'O' 3 0.73408 0.59155 0.25000 0.22160 0.44704 0.25000 0.22253 0.66316 0.46697 elk-6.3.2/examples/Mossbauer/PaxHeaders.21352/Co-hcp0000644000000000000000000000013213543334740016646 xustar0030 mtime=1569569248.587639417 30 atime=1569569248.586639418 30 ctime=1569569248.587639417 elk-6.3.2/examples/Mossbauer/Co-hcp/0000755002504400250440000000000013543334740020772 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Mossbauer/Co-hcp/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740020026 xustar0030 mtime=1569569248.589639416 30 atime=1569569248.588639416 30 ctime=1569569248.589639416 elk-6.3.2/examples/Mossbauer/Co-hcp/elk.in0000644002504400250440000000406413543334740022101 0ustar00dewhurstdewhurst00000000000000 ! Calculating the Mossbauer effect hyperfine parameters for hcp Co, namely the ! contact charge density, the contact magnetic hyperfine field and the electric ! field gradient (EFG). ! The hyperfine magnetic field is difficult to calculate accurately. This is ! mainly because most of the contact magnetisation arises from the polarised ! core s states. One therefore has to switch on core polarisation with ! 'spincore=.true.', but in addition any semi-core s states should also be moved ! to the core and thus treated with the full Dirac equation. Also note that the ! field is quite sensitive to the number of empty states and k-points. ! Also note that the hyperfine field also depends strongly on the choice of ! functional with GGA functions usually yielding larger values. Try running the ! calculation again with PBE (xctype=20). ! Experimentally the hyperfine field is 21.9 Tesla [J. Phys. Soc. Jpn. 33, 1591 ! (1972)]. tasks 0 110 : isomer shift and hyperfine field 115 : electric field gradient ! enable calculation of the dipole magnetic field tbdip .true. ! enable calculation of the current density (i.e. orbital) contribution to the ! dipole field tcden .true. ! enable spin-orbit coupling spinorb .true. ! switch on core polarisation for hyperfine field spincore .true. ! lmaxi should be at least 2 for the EFG calculation lmaxi 2 ! external field for breaking spin symmetry bfieldc 0.0 0.0 0.001 ! very large number of empty states required for hyperfine field nempty 80 ! conduction local-orbitals required lorbcnd .true. ! large number of k-points required ngridk 14 14 10 avec 2.368866000 4.102996268 0.000000000 4.737732000 0.000000000 0.000000000 0.000000000 0.000000000 7.690240000 sppath '../../../species/' atoms 1 : nspecies 'Co.in' : spfname 2 : natoms; atposl, bfcmt below 0.66666667 0.66666667 0.75000000 0.33333333 0.33333333 0.25000000 elk-6.3.2/examples/Mossbauer/PaxHeaders.21352/Fe0000644000000000000000000000013013543334740016065 xustar0029 mtime=1569569248.59763941 30 atime=1569569248.592639414 29 ctime=1569569248.59763941 elk-6.3.2/examples/Mossbauer/Fe/0000755002504400250440000000000013543334740020213 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Mossbauer/Fe/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740017247 xustar0030 mtime=1569569248.594639412 30 atime=1569569248.593639413 30 ctime=1569569248.594639412 elk-6.3.2/examples/Mossbauer/Fe/elk.in0000644002504400250440000000425413543334740021323 0ustar00dewhurstdewhurst00000000000000 ! Calculating the Mossbauer effect hyperfine parameters for bcc Fe, namely the ! contact charge density, the contact magnetic hyperfine field and the electric ! field gradient (EFG). In this case the EFG is zero because of symmetry. ! The hyperfine magnetic field is difficult to calculate accurately. This is ! partly due to the neglect of the orbital and dipolar contributions, but mainly ! because most of the contact magnetisation arises from the polarised core s ! states. One therefore has to switch on core polarisation with ! 'spincore=.true.', but in addition any semi-core s states should also be moved ! to the core and thus treated with the full Dirac equation. Consequently, this ! example requires a special species file (Fe.in), in which the 3s states are in ! the core. Note that the field is quite sensitive to the number of empty states ! and k-points. ! Also note that the hyperfine field also depends strongly on the choice of ! functional with GGA functions usually yielding larger values. Try running the ! calculation again with PBE (xctype=20). ! Experimentally the hyperfine field is 33.9 Tesla [J. Phys. Soc. Jpn. 33, 159 ! (1972)]. A complete derivation of the formulae can be found in Phys. Rev. B ! 53, 3271 (1987). tasks 0 110 : isomer shift and hyperfine field 115 : electric field gradient ! enable calculation of the dipole field tbdip .true. ! enable calculation of the current density (i.e. orbital) contribution to the ! dipole field tcden .true. ! enable spin-orbit coupling spinorb .true. ! switch on core polarisation for hyperfine field spincore .true. ! lmaxi should be at least 2 for the EFG calculation lmaxi 2 ! external field for breaking spin symmetry bfieldc 0.0 0.0 0.001 ! very large number of empty states required for hyperfine field nempty 80 ! enable conduction local-orbitals lorbcnd .true. ! large number of k-points required ngridk 14 14 14 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/Mossbauer/Fe/PaxHeaders.21352/Fe.in0000644000000000000000000000012713543334740017032 xustar0029 mtime=1569569248.59863941 29 atime=1569569248.59763941 29 ctime=1569569248.59863941 elk-6.3.2/examples/Mossbauer/Fe/Fe.in0000644002504400250440000000311413543334740021074 0ustar00dewhurstdewhurst00000000000000 'Fe' : spsymb 'iron' : spname -26.0000 : spzn 101799.2074 : spmass 0.392232E-06 2.0000 34.5962 500 : sprmin, rmt, sprmax, nrmt 10 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 2.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.1817 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2816 0 T elk-6.3.2/examples/Mossbauer/PaxHeaders.21352/Co-fcc0000644000000000000000000000013213543334740016627 xustar0030 mtime=1569569248.602639407 30 atime=1569569248.601639408 30 ctime=1569569248.602639407 elk-6.3.2/examples/Mossbauer/Co-fcc/0000755002504400250440000000000013543334740020753 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Mossbauer/Co-fcc/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740020007 xustar0030 mtime=1569569248.603639407 30 atime=1569569248.602639407 30 ctime=1569569248.603639407 elk-6.3.2/examples/Mossbauer/Co-fcc/elk.in0000644002504400250440000000400713543334740022057 0ustar00dewhurstdewhurst00000000000000 ! Calculating the Mossbauer effect hyperfine parameters for fcc Co, namely the ! contact charge density, the contact magnetic hyperfine field and the electric ! field gradient (EFG). ! The hyperfine magnetic field is difficult to calculate accurately. This is ! mainly because most of the contact magnetisation arises from the polarised ! core s states. One therefore has to switch on core polarisation with ! 'spincore=.true.', but in addition any semi-core s states should also be moved ! to the core and thus treated with the full Dirac equation. Also note that the ! field is quite sensitive to the number of empty states and k-points. ! Also note that the hyperfine field also depends strongly on the choice of ! functional, with GGA usually yielding larger values. Try running the ! calculation again with PBE (xctype=20). This may be the better choice of ! functional for Mossbauer related quantities because of the large density ! gradients near the nucleus. tasks 0 110 : isomer shift and hyperfine field 115 : electric field gradient ! uncomment the following lines to enable GGA (PBE) !xctype ! 20 ! !msmooth ! 4 ! enable calculation of the dipole magnetic field tbdip .true. ! enable calculation of the current density (i.e. orbital) contribution to the ! dipole field tcden .true. ! enable spin-orbit coupling spinorb .true. ! switch on core polarisation for hyperfine field spincore .true. ! lmaxi should be at least 2 for the EFG calculation lmaxi 2 ! external field for breaking spin symmetry bfieldc 0.0 0.0 0.001 ! very large number of empty states required for hyperfine field nempty 80 ! conduction local-orbitals required lorbcnd .true. ! large number of k-points required ngridk 14 14 14 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.3448 sppath '../../../species/' atoms 1 : nspecies 'Co.in' : spfname 1 : natoms; atposl, bfcmt below 0.0 0.0 0.0 elk-6.3.2/examples/PaxHeaders.21352/TDDFT-optics0000644000000000000000000000013213543334741015742 xustar0030 mtime=1569569249.014639144 30 atime=1569569248.607639404 30 ctime=1569569249.014639144 elk-6.3.2/examples/TDDFT-optics/0000755002504400250440000000000013543334741020066 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/Ar-bootstrap-single0000644000000000000000000000013213543334740021575 xustar0030 mtime=1569569248.615639399 30 atime=1569569248.610639402 30 ctime=1569569248.615639399 elk-6.3.2/examples/TDDFT-optics/Ar-bootstrap-single/0000755002504400250440000000000013543334740023721 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/Ar-bootstrap-single/PaxHeaders.21352/Ar_expt_eV.dat0000644000000000000000000000013213543334740024400 xustar0030 mtime=1569569248.612639401 30 atime=1569569248.611639402 30 ctime=1569569248.612639401 elk-6.3.2/examples/TDDFT-optics/Ar-bootstrap-single/Ar_expt_eV.dat0000644002504400250440000000645113543334740026455 0ustar00dewhurstdewhurst00000000000000#Phys. Rev. B 76 161103(R) (2007) 11.6284 0.0621413 11.6956 0.198027 11.7548 0.412014 11.7982 0.723684 11.8416 1.05486 11.885 1.48357 11.9165 1.81486 11.9283 2.10733 11.9401 2.32178 11.9559 2.49718 11.9637 2.88722 11.9754 3.23821 11.9793 3.62829 11.9831 4.01837 11.9832 3.82331 11.9869 4.54499 11.9944 6.22242 11.9945 6.02736 11.9946 5.63724 11.9981 7.39274 11.9982 7.00262 11.9982 6.80756 11.9983 6.6125 12.0017 8.56305 12.0017 8.36799 12.0018 8.17293 12.0019 7.97788 12.002 7.58776 12.0053 9.92843 12.0054 9.53831 12.0054 9.34325 12.0055 9.14819 12.0056 8.75807 12.009 10.7086 12.0091 10.5136 12.0092 10.1234 12.0128 11.5864 12.0129 10.9036 12.0166 11.9764 12.0167 11.7814 12.0205 12.3665 12.0243 12.9516 12.0243 12.7566 12.0244 12.5615 12.0281 13.3417 12.0282 13.1467 12.032 13.7318 12.0357 14.473 12.0358 14.1219 12.0359 13.9268 12.0438 13.7902 12.0479 13.4001 12.0479 13.205 12.0519 13.0099 12.052 12.8148 12.0522 11.9956 12.056 12.4247 12.0643 11.0592 12.0683 10.669 12.0684 10.474 12.0685 10.0839 12.0725 9.88876 12.0726 9.49864 12.0726 9.30358 12.0767 9.10849 12.0769 8.23072 12.085 7.56744 12.089 7.17729 12.0891 6.98223 12.0931 6.59207 12.0932 6.39701 12.0972 6.00685 12.1054 5.10951 12.1094 4.91441 12.1134 4.52425 12.1174 4.32915 12.1255 3.7439 12.1295 3.5488 12.1335 3.3537 12.1375 3.15861 12.1415 2.96351 12.1495 2.49529 12.157 4.17272 12.1571 3.97766 12.1608 4.95292 12.1608 4.75786 12.1609 4.5628 12.1645 5.73312 12.1645 5.53806 12.1646 5.343 12.1647 5.14794 12.1682 6.51331 12.1683 6.31825 12.1684 5.92814 12.1719 7.48857 12.172 7.29351 12.1721 6.90339 12.1721 6.70833 12.1757 8.26877 12.1758 7.87865 12.1758 7.68359 12.1794 9.04897 12.1795 8.85391 12.1796 8.46379 12.1831 9.98521 12.1833 9.43904 12.1868 11.2726 12.1869 10.8239 12.1945 11.7796 12.1946 11.5846 12.1984 12.1697 12.2022 12.5598 12.2023 12.3647 12.2059 13.4375 12.2141 12.6767 12.2181 12.2866 12.2182 12.0915 12.2222 11.7013 12.2264 10.7455 12.2345 10.2578 12.2385 10.0627 12.2425 9.67254 12.2427 8.83378 12.2466 9.22386 12.2546 8.77515 12.2547 8.44355 12.2587 8.24845 12.2628 7.8583 12.2628 7.66324 12.2668 7.46814 12.2708 7.27304 12.2709 7.07798 12.2749 6.88288 12.275 6.43425 12.283 6.1806 12.287 5.9855 12.291 5.59534 12.2911 5.40028 12.2951 5.20518 12.2952 4.67853 12.3191 3.85905 12.339 3.44923 12.3588 3.29299 12.4103 2.98039 12.4262 2.74617 12.45 2.23878 12.4699 1.90699 12.4937 1.51664 12.5214 1.22378 12.5373 0.892029 12.5611 0.755256 12.573 0.540576 12.6007 0.403764 12.6402 0.286344 12.6679 0.149532 12.7035 0.0711618 12.7668 0.0510392 12.8142 0.1286 12.8497 0.245289 12.8932 0.322888 12.9248 0.400603 12.9722 0.49767 13.0078 0.575347 13.0591 0.594352 13.1145 0.593812 13.1896 0.59308 13.2409 0.63159 13.2805 0.611699 13.32 0.708843 13.3634 0.805948 13.4148 0.961494 13.4582 1.07811 13.4819 1.35096 13.4976 1.76043 13.5093 2.03339 13.5211 2.4234 13.5289 2.6769 13.5685 2.44244 13.5884 2.14966 13.6043 1.72037 13.6281 1.2325 13.6598 0.998116 13.6796 0.744347 13.7034 0.705104 13.7231 0.997499 13.7507 1.25081 13.7664 1.42621 13.802 1.26981 13.8219 1.03555 13.8298 0.859917 13.8575 0.742612 13.901 0.878729 13.9128 1.07367 13.9325 1.21002 13.9523 1.09279 13.976 0.917009 14.0077 0.858183 14.0393 0.994416 14.0748 1.07209 14.0867 1.11099 14.1183 1.11068 14.1459 1.16893 14.1776 1.1101 14.1973 1.0709 14.2487 1.0704 14.3199 1.14773 14.3673 1.10825 14.4345 1.1076 14.474 1.10721 elk-6.3.2/examples/TDDFT-optics/Ar-bootstrap-single/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740022755 xustar0030 mtime=1569569248.620639396 30 atime=1569569248.616639398 30 ctime=1569569248.620639396 elk-6.3.2/examples/TDDFT-optics/Ar-bootstrap-single/elk.in0000644002504400250440000000143113543334740025023 0ustar00dewhurstdewhurst00000000000000 ! This example produces the dielectric function of solid argon using a single ! iteration of the bootstrap kernel [Phys. Rev. Lett. 107, 186401]. This ! approximation works particularly well for calculating excitonic binding ! energies. ! A file with experimental data in units of eV is included in this directory. tasks 0 120 320 scissor 0.22 swidth 0.005 ! bootstrap kernal with single iteration fxctype 211 gmaxrf 0.0 wplot 6000 100 2 0.0 1.0 nempty 10 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 10.030 sppath '../../../species/' atoms 1 : nspecies 'Ar.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 ngridk 8 8 8 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/LiF-bootstrap-single0000644000000000000000000000013213543334740021705 xustar0030 mtime=1569569248.962639177 30 atime=1569569248.962639177 30 ctime=1569569248.962639177 elk-6.3.2/examples/TDDFT-optics/LiF-bootstrap-single/0000755002504400250440000000000013543334740024031 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/LiF-bootstrap-single/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740023065 xustar0030 mtime=1569569248.963639177 30 atime=1569569248.963639177 30 ctime=1569569248.963639177 elk-6.3.2/examples/TDDFT-optics/LiF-bootstrap-single/elk.in0000644002504400250440000000121613543334740025134 0ustar00dewhurstdewhurst00000000000000 ! Optical response of LiF with the single iteration bootstrap kernel. tasks 0 120 320 ! single iteration bootstrap fxctype 211 scissor 0.1916 swidth 0.008 ! LFE are included gmaxrpa 2.0 lradstp 2 nempty 10 wplot 8000 100 0 0.0 1.0 avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 8 8 8 vkloff 0.625 0.5 0.25 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/Ni-MOKE0000644000000000000000000000013213543334740017040 xustar0030 mtime=1569569248.967639174 30 atime=1569569248.966639175 30 ctime=1569569248.967639174 elk-6.3.2/examples/TDDFT-optics/Ni-MOKE/0000755002504400250440000000000013543334740021164 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/Ni-MOKE/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740020220 xustar0030 mtime=1569569248.969639173 30 atime=1569569248.968639173 30 ctime=1569569248.969639173 elk-6.3.2/examples/TDDFT-optics/Ni-MOKE/elk.in0000644002504400250440000000121313543334740022264 0ustar00dewhurstdewhurst00000000000000 ! Magneto-optical Kerr effect for ferromagnetic nickel. For good accuracy of the ! Kerr rotation a k-point grid of 20x20x20 is required. tasks 0 120 122 ! the relaxation time is taken to be 1/swidth swidth 0.01 spinpol .true. ! spin-orbit coupling is required for MOKE spinorb .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 10 10 10 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/Ge0000644000000000000000000000013013543334740016272 xustar0029 mtime=1569569248.97363917 30 atime=1569569248.972639171 29 ctime=1569569248.97363917 elk-6.3.2/examples/TDDFT-optics/Ge/0000755002504400250440000000000013543334740020420 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/Ge/PaxHeaders.21352/elk.in0000644000000000000000000000012713543334740017460 xustar0029 mtime=1569569248.97463917 29 atime=1569569248.97363917 29 ctime=1569569248.97463917 elk-6.3.2/examples/TDDFT-optics/Ge/elk.in0000644002504400250440000000141113543334740021520 0ustar00dewhurstdewhurst00000000000000 ! High quality density of states, band structure and linear optical tensor of ! germanium with spin-orbit coupling (Andrew Chizmeshya) tasks 0 10 20 120 121 spinorb .true. xctype 3 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 5.3451 nempty 20 wplot 1000 150 0 -0.5 2.0 lmaxapw 10 lmaxo 8 gmaxvr 12.0 sppath '../../../species/' atoms 1 : nspecies 'Ge.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 10 10 10 vkloff 0.25 0.25 0.75 plot1d 3 200 : nvp1d, npp1d 0.5 0.0 1.0 : vlvp1d 0.0 0.0 1.0 0.5 0.5 1.0 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/LiF-bootstrap0000644000000000000000000000013213543334740020426 xustar0030 mtime=1569569248.978639167 30 atime=1569569248.977639168 30 ctime=1569569248.978639167 elk-6.3.2/examples/TDDFT-optics/LiF-bootstrap/0000755002504400250440000000000013543334740022552 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/LiF-bootstrap/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740021606 xustar0030 mtime=1569569248.980639166 30 atime=1569569248.979639166 30 ctime=1569569248.980639166 elk-6.3.2/examples/TDDFT-optics/LiF-bootstrap/elk.in0000644002504400250440000000251713543334740023662 0ustar00dewhurstdewhurst00000000000000 ! Time-dependent density functional theory (TDDFT) optical spectrum of lithium ! fluoride. This material has a prominent excitonic peak, which is absent in the ! usual RPA dielectric function. The 'bootstrap' TDDFT kernel is used, see: ! arXiv:1107.0199v1 [cond-mat.mtrl-sci] ! The scissor shift is taken to be the difference between the experimental gap, ! 14.2 eV [Phys. Rev. B 13, 5530 (1976)], and the LDA gap, 8.97 eV. tasks 0 ! ground-state calculation 120 ! compute momentum matrix elements 121 ! compute RPA dielectric function with no local field contributions 320 ! compute TDDFT dielectric function with local field contributions ! scissor shift scissor 0.192 xctype 3 ! bootstrap kernel fxctype 210 ! smearing width swidth 0.01 ! G-vector cut-off of exchange-correlation kernel and response function gmaxrf 0.0 nempty 8 lradstp 2 wplot 800 100 0 : nwplot, ngrkf, nswplot 0.0 1.5 : wplot avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 8 8 8 vkloff 0.25 0.5 0.625 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/TiO20000644000000000000000000000013213543334740016516 xustar0030 mtime=1569569248.984639163 30 atime=1569569248.983639164 30 ctime=1569569248.984639163 elk-6.3.2/examples/TDDFT-optics/TiO2/0000755002504400250440000000000013543334740020642 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/TiO2/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740017676 xustar0030 mtime=1569569248.985639163 30 atime=1569569248.984639163 30 ctime=1569569248.985639163 elk-6.3.2/examples/TDDFT-optics/TiO2/elk.in0000644002504400250440000000127313543334740021750 0ustar00dewhurstdewhurst00000000000000 ! Linear optical spectrum of titanium dioxide. The inverse lifetime is ! determined by swidth. Note that many more k-points are required for good ! convergence of the optical spectrum. tasks 0 120 121 swidth 0.005 ! use Broyden mixing for fast convergence mixtype 3 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.6441 scale 8.6806 sppath '../../../species/' atoms 2 : nspecies 'Ti.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.5 0.5 0.5 'O.in' 4 0.3048 0.3048 0.0 0.6952 0.6952 0.0 0.1952 0.8048 0.5 0.8048 0.1952 0.5 ngridk 4 4 4 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/LiF-LRC0000644000000000000000000000013013543334740017027 xustar0029 mtime=1569569248.98963916 30 atime=1569569248.988639161 29 ctime=1569569248.98963916 elk-6.3.2/examples/TDDFT-optics/LiF-LRC/0000755002504400250440000000000013543334740021155 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/LiF-LRC/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334740020210 xustar0030 mtime=1569569248.990639159 29 atime=1569569248.98963916 30 ctime=1569569248.990639159 elk-6.3.2/examples/TDDFT-optics/LiF-LRC/elk.in0000644002504400250440000000242713543334740022265 0ustar00dewhurstdewhurst00000000000000 ! Time-dependent density functional theory (TDDFT) optical spectrum of lithium ! fluoride. This material has a prominent excitonic peak, which is absent in the ! usual RPA dielectric function. The TDDFT kernel fxc is described in ! Phys. Rev. B 69, p155112 (2004) as the 'long-range contribution' and requires ! a material-dependent parameter alpha. tasks 0 ! ground-state calculation 120 ! compute momentum matrix elements 121 ! compute RPA dielectric function with no local field contributions 320 ! compute TDDFT dielectric function with local field contributions ! long-range contribution kernel fxctype 200 ! parameter alpha for long-range contribution kernel fxclrc 5.5 ! G-vector cut-off of exchange-correlation kernel and response function gmaxrf 1.0 swidth 0.01 nempty 8 lradstp 2 wplot 800 100 0 : nwplot, ngrkf, nswplot 0.0 1.5 : wplot avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 4 4 4 vkloff 0.25 0.5 0.625 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/LiF0000644000000000000000000000013213543334740016413 xustar0030 mtime=1569569248.994639157 30 atime=1569569248.993639157 30 ctime=1569569248.994639157 elk-6.3.2/examples/TDDFT-optics/LiF/0000755002504400250440000000000013543334740020537 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/LiF/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334740017573 xustar0030 mtime=1569569248.995639156 30 atime=1569569248.994639157 30 ctime=1569569248.995639156 elk-6.3.2/examples/TDDFT-optics/LiF/elk.in0000644002504400250440000000112213543334740021636 0ustar00dewhurstdewhurst00000000000000 ! Linear optical spectrum of lithium fluoride. tasks 0 120 121 ! the inverse lifetime is determined by swidth swidth 0.01 nempty 10 lradstp 2 wplot 400 100 0 : nwplot, ngrkf, nswplot 0.0 1.5 : wplot avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 10 10 10 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/diamond-ALDA0000644000000000000000000000013213543334741020054 xustar0030 mtime=1569569249.000639153 30 atime=1569569248.999639154 30 ctime=1569569249.000639153 elk-6.3.2/examples/TDDFT-optics/diamond-ALDA/0000755002504400250440000000000013543334741022200 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/diamond-ALDA/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741021234 xustar0030 mtime=1569569249.001639152 30 atime=1569569249.000639153 30 ctime=1569569249.001639152 elk-6.3.2/examples/TDDFT-optics/diamond-ALDA/elk.in0000644002504400250440000000117413543334741023306 0ustar00dewhurstdewhurst00000000000000 ! Dielectric function of diamond calculated at finite q-vector using ALDA. tasks 0 120 320 ! q-vector in lattice coordinates vecql 0.5 0.5 0.5 xctype 3 fxctype 3 ! G-vector cut-off for the RPA and ALDA response function gmaxrf 3.0 nempty 10 swidth 0.01 wplot 500 100 1 0.0 1.5 avec 3.3637 3.3637 0.0 3.3637 0.0 3.3637 0.0 3.3637 3.3637 sppath '../../../species/' atoms 1 : nspecies 'C.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 8 8 8 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/Al0000644000000000000000000000012713543334741016302 xustar0029 mtime=1569569249.00563915 29 atime=1569569249.00563915 29 ctime=1569569249.00563915 elk-6.3.2/examples/TDDFT-optics/Al/0000755002504400250440000000000013543334741020422 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/Al/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017456 xustar0030 mtime=1569569249.007639148 30 atime=1569569249.006639149 30 ctime=1569569249.007639148 elk-6.3.2/examples/TDDFT-optics/Al/elk.in0000644002504400250440000000130413543334741021523 0ustar00dewhurstdewhurst00000000000000 ! Linear optical response of aluminium including intra-band contributions. ! The plasma frequency is also determined and written to PLASMA.OUT. tasks 0 120 121 ! include intra-band excitations intraband .true. swidth 0.01 ! dense k-point set required ngridk 24 24 24 ! larger number of empty states required nempty 8 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 ! lattice constant at room temperature scale 3.8267 ! this is the relative path to the species files sppath '../../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/LiF-RBO0000644000000000000000000000013213543334741017034 xustar0030 mtime=1569569249.011639146 30 atime=1569569249.010639147 30 ctime=1569569249.011639146 elk-6.3.2/examples/TDDFT-optics/LiF-RBO/0000755002504400250440000000000013543334741021160 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/LiF-RBO/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020214 xustar0030 mtime=1569569249.012639145 30 atime=1569569249.011639146 30 ctime=1569569249.012639145 elk-6.3.2/examples/TDDFT-optics/LiF-RBO/elk.in0000644002504400250440000000201213543334741022256 0ustar00dewhurstdewhurst00000000000000 ! Example for the revised bootstrap kernel (RBO) of S. Rigamonti, et al., ! Phys. Rev. Lett. 114, 146402. tasks 0 ! ground-state calculation 120 ! compute momentum matrix elements 121 ! compute RPA dielectric function with no local field contributions 320 ! compute TDDFT dielectric function with local field contributions ! scissor shift scissor 0.192 xctype 3 ! RBO kernel fxctype 212 ! smearing width swidth 0.01 ! G-vector cut-off of exchange-correlation kernel and response function gmaxrf 0.0 nempty 8 lradstp 2 wplot 800 100 0 : nwplot, ngrkf, nswplot 0.0 1.5 : wplot avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 8 8 8 vkloff 0.25 0.5 0.625 elk-6.3.2/examples/TDDFT-optics/PaxHeaders.21352/Ne-RBO0000644000000000000000000000013013543334741016722 xustar0029 mtime=1569569249.02063914 30 atime=1569569249.015639143 29 ctime=1569569249.02063914 elk-6.3.2/examples/TDDFT-optics/Ne-RBO/0000755002504400250440000000000013543334741021050 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-optics/Ne-RBO/PaxHeaders.21352/Ne_expt_eV.dat0000644000000000000000000000013213543334741021527 xustar0030 mtime=1569569249.017639142 30 atime=1569569249.016639143 30 ctime=1569569249.017639142 elk-6.3.2/examples/TDDFT-optics/Ne-RBO/Ne_expt_eV.dat0000644002504400250440000000153413543334741023601 0ustar00dewhurstdewhurst00000000000000#Phys. Rev. B 72 035127 (2005) 16.7861 0.308771 16.8999 0.402363 17.0137 0.464459 17.0863 0.621367 17.1279 0.747024 17.1799 0.904096 17.2318 1.04542 17.2631 1.2184 17.3047 1.3913 17.3154 1.56445 17.3366 1.87924 17.3369 2.05247 17.3478 2.41458 17.3587 2.72946 17.3694 2.9341 17.3697 3.09158 17.3806 3.4222 17.3809 3.59543 17.3812 3.7844 17.3815 3.95763 17.3924 4.2725 17.3927 4.46147 17.3929 4.60321 17.4036 4.80785 17.4039 4.96532 17.4042 5.1543 17.4045 5.32752 17.4158 5.86287 17.478 5.98836 17.4877 5.62608 17.5179 5.12191 17.5279 4.9486 17.5482 4.74371 17.5787 4.46001 17.5884 4.08198 17.597 3.07404 17.6059 2.22358 17.6154 1.75106 17.6653 0.679801 17.7264 0.159635 17.7882 0.0489118 18.0156 0.0628692 18.2223 0.0612415 18.4704 0.0750361 18.7909 0.104009 19.1424 0.164233 19.2354 0.163501 19.4628 0.16171 19.5662 0.176644 19.804 0.206268 20.1245 0.282484 elk-6.3.2/examples/TDDFT-optics/Ne-RBO/PaxHeaders.21352/elk.in0000644000000000000000000000012713543334741020110 xustar0029 mtime=1569569249.02163914 29 atime=1569569249.02063914 29 ctime=1569569249.02163914 elk-6.3.2/examples/TDDFT-optics/Ne-RBO/elk.in0000644002504400250440000000120313543334741022147 0ustar00dewhurstdewhurst00000000000000 ! Example for the revised bootstrap kernel (RBO) of S. Rigamonti, et al., ! Phys. Rev. Lett. 114, 146402. tasks 0 120 320 scissor 0.360 lradstp 2 ! local field effects (LFE) not included gmaxrpa 0.0 swidth 0.005 ! RBO kernel fxctype 212 wplot 5000 100 1 0.0 1.1 nempty 20 avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 8.440 sppath '../../../species/' atoms 1 : nspecies 'Ne.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 ngridk 10 10 10 vkloff 0.625 0.5 0.25 elk-6.3.2/examples/PaxHeaders.21352/fractional-species0000644000000000000000000000013213543334741017351 xustar0030 mtime=1569569249.026639136 30 atime=1569569249.024639138 30 ctime=1569569249.026639136 elk-6.3.2/examples/fractional-species/0000755002504400250440000000000013543334741021475 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/fractional-species/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020531 xustar0030 mtime=1569569249.027639136 30 atime=1569569249.026639136 30 ctime=1569569249.027639136 elk-6.3.2/examples/fractional-species/elk.in0000644002504400250440000000154113543334741022601 0ustar00dewhurstdewhurst00000000000000 ! In this example the code generates a fractional atomic species file called ! 'A.in' which is then used in a ground-state calculation to find the moment. ! This allows for easy use of the virtual crystal approximation (VCA). tasks 0 ! generate a fractional atomic species charge -26.2 and write to the file 'A.in' fspecies -26.2 'A' spinpol .true. ! small magnetic field in the z-direction bfieldc 0.0 0.0 0.01 ! fairly large number of empty states required for magnetic cases nempty 8 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 ! Now use the file 'A.in' in the atoms block atoms 1 : nspecies 'A.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/PaxHeaders.21352/magnetism0000644000000000000000000000013213543334741015562 xustar0030 mtime=1569569249.097639091 30 atime=1569569249.030639134 30 ctime=1569569249.097639091 elk-6.3.2/examples/magnetism/0000755002504400250440000000000013543334741017706 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe-FSM-MT-AFM0000644000000000000000000000013213543334741017456 xustar0030 mtime=1569569249.034639131 30 atime=1569569249.031639133 30 ctime=1569569249.034639131 elk-6.3.2/examples/magnetism/Fe-FSM-MT-AFM/0000755002504400250440000000000013543334741021602 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe-FSM-MT-AFM/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334741020634 xustar0029 mtime=1569569249.03663913 30 atime=1569569249.035639131 29 ctime=1569569249.03663913 elk-6.3.2/examples/magnetism/Fe-FSM-MT-AFM/elk.in0000644002504400250440000000213413543334741022705 0ustar00dewhurstdewhurst00000000000000 ! Antiferromagnetic bcc iron example with fixed spin moment in muffin-tin. ! Rememeber to put a small magnetic fields on atoms with same symmetry as ! fixed moment. This in order to correctly symmetrize the magnetization. ! Run by Fredrik Bultmark, Francesco Cricchio, Lars Nordstrom. tasks 0 ! antiferromagnetic local fixed spin moment calculation fsmtype 2 mommtfix 1 1 0.0 0.0 1.0 : is, ia, mommtfix 1 2 0.0 0.0 -1.0 : is, ia, mommtfix ! FSM step length: reduce to improve convergence taufsm 0.01 lmaxapw 10 ! fairly large number of empty states required for magnetic cases nempty 8 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scale 6.6 sppath '../../../species/' ! note small magnetic fields on atoms with same symmetry as fixed moment atoms 1 : nspecies 'Fe.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.001 : atposl, bfcmt 0.5 0.5 0.5 0.0 0.0 -0.001 ! this k-point set is too small for calculation of accurate moments ngridk 4 4 4 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe-spiral0000644000000000000000000000013213543334741017404 xustar0030 mtime=1569569249.040639127 30 atime=1569569249.039639128 30 ctime=1569569249.040639127 elk-6.3.2/examples/magnetism/Fe-spiral/0000755002504400250440000000000013543334741021530 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe-spiral/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020564 xustar0030 mtime=1569569249.042639126 30 atime=1569569249.041639127 30 ctime=1569569249.042639126 elk-6.3.2/examples/magnetism/Fe-spiral/elk.in0000644002504400250440000000135213543334741022634 0ustar00dewhurstdewhurst00000000000000 ! Spin-spiral state for Gamma-Fe. Care should be taken to ensure that the ! calculation is fully converged. tasks 0 spinsprl .true. ! spin-spiral q-vector in lattice coordinates vqlss 0.1 0.1 0.0 ! fairly large large cut-off required rgkmax 8.5 gmaxvr 14.0 nempty 8 ! spiral magnetic field along q with perpendicular component only bfieldc 0.05 0.0 0.0 ! tight convergence required epspot 1.e-7 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.375 sppath '../../../species/' atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Cr-mono0000644000000000000000000000013213543334741017074 xustar0030 mtime=1569569249.055639118 30 atime=1569569249.045639124 30 ctime=1569569249.055639118 elk-6.3.2/examples/magnetism/Cr-mono/0000755002504400250440000000000013543334741021220 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Cr-mono/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020254 xustar0030 mtime=1569569249.048639122 30 atime=1569569249.047639123 30 ctime=1569569249.048639122 elk-6.3.2/examples/magnetism/Cr-mono/elk.in0000644002504400250440000000236313543334741022327 0ustar00dewhurstdewhurst00000000000000 ! Unsupported monolayer of Cr with the symmetry and lattice constant of a ! monolayer on the Ag(111) surface (see Phys. Rev. B 69, 24415 (2004)), which ! exhibits a non-collinear Neel state. Small magnetic fields 120 degrees apart ! are applied to each of the three atoms. ! Try plotting the 2D magnetisation density in OpenDX (version 4.3.2) using the ! files provided. tasks 0 72 spinpol .true. ! note that the number of empty states should be large because non-collinear ! effects are obtained in the second-variational step nempty 8 avec 1.5 0.86602540378 0.0 1.5 -0.86602540378 0.0 0.0 0.0 1.0 scale1 5.50836 : 7.79/sqrt(2) scale2 5.50836 scale3 7.0 sppath '../../../species/' ! note that the magnetic fields are in Cartesian coordinates atoms 1 : nspecies 'Cr.in' : spfname 3 : natoms 0.0 0.0 0.0 0.0 0.1 0.0 : atposl, bfcmt 0.333333333333 0.333333333333 0.0 -0.086602540378 -0.05 0.0 0.666666666667 0.666666666667 0.0 0.086602540378 -0.05 0.0 ngridk 2 2 1 vkloff 0.5 0.5 0.0 plot2d 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 200 200 elk-6.3.2/examples/magnetism/Cr-mono/PaxHeaders.21352/mag2d.general0000644000000000000000000000012713543334741021506 xustar0029 mtime=1569569249.05263912 29 atime=1569569249.05163912 29 ctime=1569569249.05263912 elk-6.3.2/examples/magnetism/Cr-mono/mag2d.general0000644002504400250440000000027313543334741023553 0ustar00dewhurstdewhurst00000000000000file = MAG2D.OUT grid = 200 x 200 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 2-vector, 3-vector type = float, float end elk-6.3.2/examples/magnetism/Cr-mono/PaxHeaders.21352/mag2d.net0000644000000000000000000000013213543334741020653 xustar0030 mtime=1569569249.057639117 30 atime=1569569249.055639118 30 ctime=1569569249.057639117 elk-6.3.2/examples/magnetism/Cr-mono/mag2d.net0000644002504400250440000002211313543334741022721 0ustar00dewhurstdewhurst00000000000000// // time: Sat Jun 16 15:49:00 2007 // // version: 3.2.0 (format), 4.4.0 (DX) // // // MODULE main // workspace: width = 565, height = 623 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 47, y = 39, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "mag2d.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node Sample[1]: x = 216, y = 66, inputs = 2, label = Sample // input[2]: defaulting = 0, visible = 1, type = 1, value = 2000 // main_Sample_1_out_1 = Sample( main_Import_1_out_1, main_Sample_1_in_2 ) [instance: 1, cache: 1]; // // node Compute[1]: x = 84, y = 147, inputs = 3, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0/mag($0)" // expression: value = a/mag(a) // name[2]: value = a // name[3]: value = b // main_Compute_1_out_1 = Compute( main_Compute_1_in_1, main_Sample_1_out_1, main_Compute_1_in_3 ) [instance: 1, cache: 1]; // // node AutoGlyph[1]: x = 44, y = 254, inputs = 7, label = AutoGlyph // input[2]: defaulting = 0, visible = 1, type = 32, value = "rocket2D" // input[3]: defaulting = 0, visible = 1, type = 5, value = 7.0 // input[4]: defaulting = 0, visible = 1, type = 5, value = 0.25 // input[5]: defaulting = 0, visible = 1, type = 5, value = 0.05 // main_AutoGlyph_1_out_1 = AutoGlyph( main_Compute_1_out_1, main_AutoGlyph_1_in_2, main_AutoGlyph_1_in_3, main_AutoGlyph_1_in_4, main_AutoGlyph_1_in_5, main_AutoGlyph_1_in_6, main_AutoGlyph_1_in_7 ) [instance: 1, cache: 1]; // // node Color[1]: x = 108, y = 341, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "black" // main_Color_1_out_1 = Color( main_AutoGlyph_1_out_1, main_Color_1_in_2, main_Color_1_in_3, main_Color_1_in_4, main_Color_1_in_5 ) [instance: 1, cache: 1]; // // node Compute[2]: x = 348, y = 66, inputs = 3, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "mag($0)" // expression: value = mag(a) // name[2]: value = a // name[3]: value = b // main_Compute_2_out_1 = Compute( main_Compute_2_in_1, main_Import_1_out_1, main_Compute_2_in_3 ) [instance: 2, cache: 1]; // // node RubberSheet[1]: x = 467, y = 146, inputs = 4, label = RubberSheet // main_RubberSheet_1_out_1 = RubberSheet( main_Compute_2_out_1, main_RubberSheet_1_in_2, main_RubberSheet_1_in_3, main_RubberSheet_1_in_4 ) [instance: 1, cache: 1]; // // node Translate[1]: x = 283, y = 189, inputs = 2, label = Translate // input[2]: defaulting = 0, visible = 1, type = 8, value = [0 0 -3] // main_Translate_1_out_1 = Translate( main_RubberSheet_1_out_1, main_Translate_1_in_2 ) [instance: 1, cache: 1]; // // node Colormap[2]: x = 479, y = 260, inputs = 19, label = Colormap // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.66315789] [0.60691824 0.0] } // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_2" // input[7]: defaulting = 1, visible = 0, type = 5, value = 9.2432623e-05 // input[8]: defaulting = 1, visible = 0, type = 5, value = 0.9849546 // input[9]: defaulting = 1, visible = 0, type = 1, value = 20 // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 9.2432623e-05 0.9849546 } // input[17]: defaulting = 0, visible = 0, type = 5, value = 9.2432623e-05 // input[18]: defaulting = 0, visible = 0, type = 5, value = 0.9849546 // window: position = (0.2998,0.0000), size = 0.6348x0.5859 // main_Colormap_2_out_1[cache: 2], main_Colormap_2_out_2[cache: 2] = Colormap( main_Colormap_2_in_1, main_Colormap_2_in_2, main_Colormap_2_in_3, main_Colormap_2_in_4, main_Colormap_2_in_5, main_Translate_1_out_1, main_Colormap_2_in_7, main_Colormap_2_in_8, main_Colormap_2_in_9, main_Colormap_2_in_10, main_Colormap_2_in_11, main_Colormap_2_in_12, main_Colormap_2_in_13, main_Colormap_2_in_14, main_Colormap_2_in_15, main_Colormap_2_in_16, main_Colormap_2_in_17, main_Colormap_2_in_18, main_Colormap_2_in_19 ) [instance: 2, cache: 1]; // // node Color[3]: x = 339, y = 334, inputs = 5, label = Color // main_Color_3_out_1 = Color( main_Translate_1_out_1, main_Colormap_2_out_1, main_Color_3_in_3, main_Color_3_in_4, main_Color_3_in_5 ) [instance: 3, cache: 1]; // // node Collect[1]: x = 214, y = 419, inputs = 2, label = Collect // main_Collect_1_out_1 = Collect( main_Color_1_out_1, main_Color_3_out_1 ) [instance: 1, cache: 1]; // // node AutoCamera[1]: x = 363, y = 493, inputs = 9, label = AutoCamera // input[3]: defaulting = 0, visible = 0, type = 5, value = 15.0 // input[4]: defaulting = 0, visible = 0, type = 1, value = 800 // input[5]: defaulting = 0, visible = 0, type = 5, value = 0.6 // input[7]: defaulting = 0, visible = 0, type = 3, value = 0 // input[8]: defaulting = 1, visible = 0, type = 5, value = 20.0 // input[9]: defaulting = 0, visible = 0, type = 32, value = "white" // main_AutoCamera_1_out_1 = AutoCamera( main_Collect_1_out_1, main_AutoCamera_1_in_2, main_AutoCamera_1_in_3, main_AutoCamera_1_in_4, main_AutoCamera_1_in_5, main_AutoCamera_1_in_6, main_AutoCamera_1_in_7, main_AutoCamera_1_in_8, main_AutoCamera_1_in_9 ) [instance: 1, cache: 1]; // // node Render[1]: x = 252, y = 561, inputs = 3, label = Render // main_Render_1_out_1 = Render( main_Collect_1_out_1, main_AutoCamera_1_out_1, main_Render_1_in_3 ) [instance: 1, cache: 1]; // // node Display[2]: x = 139, y = 557, inputs = 8, label = Display // depth: value = 24 // window: position = (0.0869,0.1107), size = 0.7949x0.6797 // main_Display_2_out_1[cache: 2] = Display( main_Render_1_out_1, main_Display_2_in_2, main_Display_2_in_3, main_Display_2_in_4, main_Display_2_in_5, main_Display_2_in_6, main_Display_2_in_7, main_Display_2_in_8 ) [instance: 2, cache: 1]; // network: end of macro body } main_Import_1_in_1 = "mag2d.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_Sample_1_in_2 = 2000; main_Sample_1_out_1 = NULL; main_Compute_1_in_1 = "$0/mag($0)"; main_Compute_1_in_3 = NULL; main_Compute_1_out_1 = NULL; main_AutoGlyph_1_in_2 = "rocket2D"; main_AutoGlyph_1_in_3 = 7.0; main_AutoGlyph_1_in_4 = 0.25; main_AutoGlyph_1_in_5 = 0.05; main_AutoGlyph_1_in_6 = NULL; main_AutoGlyph_1_in_7 = NULL; main_AutoGlyph_1_out_1 = NULL; main_Color_1_in_2 = "black"; main_Color_1_in_3 = NULL; main_Color_1_in_4 = NULL; main_Color_1_in_5 = NULL; main_Color_1_out_1 = NULL; main_Compute_2_in_1 = "mag($0)"; main_Compute_2_in_3 = NULL; main_Compute_2_out_1 = NULL; main_RubberSheet_1_in_2 = NULL; main_RubberSheet_1_in_3 = NULL; main_RubberSheet_1_in_4 = NULL; main_RubberSheet_1_out_1 = NULL; main_Translate_1_in_2 = [0 0 -3]; main_Translate_1_out_1 = NULL; main_Colormap_2_in_1 = { [0.0 0.66315789] [0.60691824 0.0] }; main_Colormap_2_in_2 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_2_in_3 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_2_in_4 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_2_in_5 = "Colormap_2"; main_Colormap_2_in_7 = NULL; main_Colormap_2_in_8 = NULL; main_Colormap_2_in_9 = NULL; main_Colormap_2_in_10 = NULL; main_Colormap_2_in_11 = NULL; main_Colormap_2_in_12 = { 9.2432623e-05 0.9849546 }; main_Colormap_2_in_13 = NULL; main_Colormap_2_in_14 = NULL; main_Colormap_2_in_15 = NULL; main_Colormap_2_in_16 = NULL; main_Colormap_2_in_17 = 9.2432623e-05; main_Colormap_2_in_18 = 0.9849546; main_Colormap_2_in_19 = NULL; main_Colormap_2_out_1 = NULL; main_Color_3_in_3 = NULL; main_Color_3_in_4 = NULL; main_Color_3_in_5 = NULL; main_Color_3_out_1 = NULL; main_Collect_1_out_1 = NULL; main_AutoCamera_1_in_2 = NULL; main_AutoCamera_1_in_3 = 15.0; main_AutoCamera_1_in_4 = 800; main_AutoCamera_1_in_5 = 0.6; main_AutoCamera_1_in_6 = NULL; main_AutoCamera_1_in_7 = 0; main_AutoCamera_1_in_8 = NULL; main_AutoCamera_1_in_9 = "white"; main_AutoCamera_1_out_1 = NULL; main_Render_1_in_3 = NULL; main_Render_1_out_1 = NULL; main_Display_2_in_2 = NULL; main_Display_2_in_3 = "X24,,"; main_Display_2_in_4 = NULL; main_Display_2_in_5 = NULL; main_Display_2_in_6 = NULL; main_Display_2_in_7 = NULL; main_Display_2_in_8 = NULL; Executive("product version 4 4 0"); $sync main(); elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe-FSM-MT-FM0000644000000000000000000000013213543334741017355 xustar0030 mtime=1569569249.061639114 30 atime=1569569249.060639115 30 ctime=1569569249.061639114 elk-6.3.2/examples/magnetism/Fe-FSM-MT-FM/0000755002504400250440000000000013543334741021501 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe-FSM-MT-FM/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020535 xustar0030 mtime=1569569249.062639113 30 atime=1569569249.061639114 30 ctime=1569569249.062639113 elk-6.3.2/examples/magnetism/Fe-FSM-MT-FM/elk.in0000644002504400250440000000135213543334741022605 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic bcc iron example with fixed spin moment in muffin-tin. ! Run by Fredrik Bultmark, Francesco Cricchio, Lars Nordstrom. tasks 0 ! ferromagnetic local fixed spin moment calculation fsmtype 2 mommtfix 1 1 0.0 0.0 1.0 : ia, is, mommtfix ! FSM step length: reduce to improve convergence taufsm 0.01 lmaxapw 10 ! fairly large number of empty states required for magnetic cases nempty 8 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt sppath '../../../species/' ngridk 6 6 6 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe0000644000000000000000000000013213543334741016114 xustar0030 mtime=1569569249.066639111 30 atime=1569569249.065639111 30 ctime=1569569249.066639111 elk-6.3.2/examples/magnetism/Fe/0000755002504400250440000000000013543334741020240 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe/PaxHeaders.21352/elk.in0000644000000000000000000000012713543334741017300 xustar0029 mtime=1569569249.06863911 29 atime=1569569249.06763911 29 ctime=1569569249.06863911 elk-6.3.2/examples/magnetism/Fe/elk.in0000644002504400250440000000126713543334741021351 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic bcc iron example. Note the small global magnetic field, which ! is needed to break spin symmetry. Check the total moment of the cell in the ! file INFO.OUT. tasks 0 spinpol .true. ! small magnetic field in the z-direction bfieldc 0.0 0.0 0.01 ! fairly large number of empty states required for magnetic cases nempty 8 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 sppath '../../../species/' atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Eu0000644000000000000000000000013213543334741016133 xustar0030 mtime=1569569249.072639107 30 atime=1569569249.071639108 30 ctime=1569569249.072639107 elk-6.3.2/examples/magnetism/Eu/0000755002504400250440000000000013543334741020257 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Eu/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017313 xustar0030 mtime=1569569249.073639106 30 atime=1569569249.073639106 30 ctime=1569569249.073639106 elk-6.3.2/examples/magnetism/Eu/elk.in0000644002504400250440000000101613543334741021360 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic bcc Eu example (thanks to Sandro Massidda for fixing a problem ! with the Eu.in species file). tasks 0 10 spinpol .true. spinorb .true. bfieldc 0.0 0.0 0.01 nempty 8 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 4.30385 sppath '../../../species/' atoms 1 : nspecies 'Eu.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 8 8 8 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe-FSM0000644000000000000000000000013213543334741016537 xustar0030 mtime=1569569249.077639104 30 atime=1569569249.077639104 30 ctime=1569569249.077639104 elk-6.3.2/examples/magnetism/Fe-FSM/0000755002504400250440000000000013543334741020663 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe-FSM/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017717 xustar0030 mtime=1569569249.079639103 30 atime=1569569249.078639103 30 ctime=1569569249.079639103 elk-6.3.2/examples/magnetism/Fe-FSM/elk.in0000644002504400250440000000141613543334741021770 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic bcc iron fixed spin moment example. tasks 0 ! small mixing parameter required beta0 0.05 ! FSM step length: reduce to improve convergence taufsm 0.01 spinpol .true. ! total fixed spin moment required fsmtype 1 ! fixed spin moment vector momfix 0.0 0.0 1.0 ! small magnetic field in the z-direction bfieldc 0.0 0.0 0.01 ! fairly large number of empty states required for magnetic cases nempty 8 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 sppath '../../../species/' atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/magnetism/PaxHeaders.21352/FeCo-MAE0000644000000000000000000000013213543334741016776 xustar0030 mtime=1569569249.082639101 30 atime=1569569249.082639101 30 ctime=1569569249.082639101 elk-6.3.2/examples/magnetism/FeCo-MAE/0000755002504400250440000000000013543334741021122 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/FeCo-MAE/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334741020154 xustar0030 mtime=1569569249.084639099 28 atime=1569569249.0836391 30 ctime=1569569249.084639099 elk-6.3.2/examples/magnetism/FeCo-MAE/elk.in0000644002504400250440000000261013543334741022224 0ustar00dewhurstdewhurst00000000000000 ! Determination of the magnetic anisotropy energy (MAE) for Fe_(1-x)Co_x where ! x = 1/2 and the unit cell is tetragonal of L1_0 type. ! The MAE is determined from a set of fixed spin moment direction calculations ! performed automatically with task = 28. The number of direction points used is ! given by the parameter 'npmae'. The estimation becomes more accurate as the ! number of points increases, but the calculation takes longer. The MAE is also ! strongly dependent on the number of k-points, the number used in this example ! is insufficient for a reliable result. ! Example updated by James Glasbrenner and others. tasks 28 ! high angular momentum cut-off needed for accurate densities and potentials lmaxapw 14 lmaxo 14 ! number of magnetisation direction points; the estimate of the MAE improves ! with the number of points; in this case, the Cartesian x, y and z directions ! are used npmae 3 ! very tight convergence required epspot 1.e-8 epsengy 1.e-6 rgkmax 8.0 ngridk 4 4 4 swidth 0.01 mixtype 3 ! artificial strained lattice avec 0.5 0.5 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scale1 6.8 scale2 6.8 scale3 7.0 sppath '../../../species/' atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'Co.in' 1 0.0 0.5 0.5 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe-AFM0000644000000000000000000000013213543334741016515 xustar0030 mtime=1569569249.088639097 30 atime=1569569249.087639097 30 ctime=1569569249.088639097 elk-6.3.2/examples/magnetism/Fe-AFM/0000755002504400250440000000000013543334741020641 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe-AFM/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017675 xustar0030 mtime=1569569249.089639096 30 atime=1569569249.089639096 30 ctime=1569569249.089639096 elk-6.3.2/examples/magnetism/Fe-AFM/elk.in0000644002504400250440000000116613543334741021750 0ustar00dewhurstdewhurst00000000000000 ! Antiferromagnetic fcc iron example tasks 0 spinpol .true. ! fairly large number of empty states required for magnetic cases nempty 8 avec 0.5 0.5 0.0 0.5 -0.5 0.0 0.0 0.0 1.0 scale 6.82 sppath '../../../species/' ! note the magnetic fields on each atom atoms 1 : nspecies 'Fe.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.1 : atposl, bfcmt 0.5 0.5 0.5 0.0 0.0 -0.1 ! this k-point set is too small for calculation of accurate moments ngridk 2 2 2 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Fe-spiral-supercell0000644000000000000000000000013213543334741021400 xustar0030 mtime=1569569249.094639093 30 atime=1569569249.093639094 30 ctime=1569569249.094639093 elk-6.3.2/examples/magnetism/Fe-spiral-supercell/0000755002504400250440000000000013543334741023524 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Fe-spiral-supercell/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741022560 xustar0030 mtime=1569569249.095639092 30 atime=1569569249.094639093 30 ctime=1569569249.095639092 elk-6.3.2/examples/magnetism/Fe-spiral-supercell/elk.in0000644002504400250440000000210013543334741024620 0ustar00dewhurstdewhurst00000000000000 ! Spin-spiral state for Gamma-Fe calculated supercells instead of the spiral ! Bloch state anzatz. This is required for functionals which do not preserve ! the anzatz self-consistently. ! The code runs in the same way as the phonon supercell calculations. The ! supercells are generated automatically from the q-points given by ngridq. Like ! phonons, several instances of the code can be started in the same directory, ! allowing for parallel generation of the q-dependent ground-states. ! Note that automatic k-point generation is always enabled for this task. tasks 350 ! q-point set on which the spiral ground-states are to be computed ngridq 2 2 2 highq .true. avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.375 sppath '../../../species/' atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 -0.01 0.0 0.0 : atposl, bfcmt ! define a fixed spin direction in the muffin-tin fsmtype -2 mommtfix 1 1 1.0 0.0 0.0 elk-6.3.2/examples/magnetism/PaxHeaders.21352/Ni0000644000000000000000000000012713543334741016134 xustar0029 mtime=1569569249.09963909 29 atime=1569569249.09863909 29 ctime=1569569249.09963909 elk-6.3.2/examples/magnetism/Ni/0000755002504400250440000000000013543334741020254 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/magnetism/Ni/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017310 xustar0030 mtime=1569569249.101639089 30 atime=1569569249.100639089 30 ctime=1569569249.101639089 elk-6.3.2/examples/magnetism/Ni/elk.in0000644002504400250440000000120113543334741021351 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic nickel example. A small global magnetic field is required to ! break spin symmetry. Check the total spin moment of the cell in the file ! INFO.OUT. Note that large k-point grids are required for obtaining accurate ! moments. tasks 0 spinpol .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/PaxHeaders.21352/non-linear-optics0000644000000000000000000000013213543334741017137 xustar0030 mtime=1569569249.104639087 30 atime=1569569249.104639087 30 ctime=1569569249.104639087 elk-6.3.2/examples/non-linear-optics/0000755002504400250440000000000013543334741021263 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/non-linear-optics/PaxHeaders.21352/GaAs0000644000000000000000000000013213543334741017752 xustar0030 mtime=1569569249.106639085 30 atime=1569569249.106639085 30 ctime=1569569249.106639085 elk-6.3.2/examples/non-linear-optics/GaAs/0000755002504400250440000000000013543334741022076 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/non-linear-optics/GaAs/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741021132 xustar0030 mtime=1569569249.108639084 30 atime=1569569249.107639085 30 ctime=1569569249.108639084 elk-6.3.2/examples/non-linear-optics/GaAs/elk.in0000644002504400250440000000161313543334741023202 0ustar00dewhurstdewhurst00000000000000 ! Susceptibility for non-linear optical second-harmonic generation in GaAs. The ! inverse lifetime is determined by swidth. Note that many k-points and empty ! states are required for good convergence. Various contributions to the ! susceptibility are also written to file. ! For details, see Physica Scripta T109, 128 (2004). tasks 0 120 125 nempty 15 scissor 0.031 swidth 0.008 ! components of the optical tensor optcomp 1 2 3 wplot 400 100 0 : nwplot, ngrkf, nswplot 0.0 0.3 : wplot mixtype 3 avec 5.3435 5.3435 0.0000 5.3435 0.0000 5.3435 0.0000 5.3435 5.3435 sppath '../../../species/' atoms 2 : nspecies 'Ga.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'As.in' 1 0.25 0.25 0.25 ngridk 12 12 12 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/PaxHeaders.21352/tensor-moments0000644000000000000000000000013213543334741016570 xustar0030 mtime=1569569249.117639078 30 atime=1569569249.112639081 30 ctime=1569569249.117639078 elk-6.3.2/examples/tensor-moments/0000755002504400250440000000000013543334741020714 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/tensor-moments/PaxHeaders.21352/NiO-LDA+U-FLL0000644000000000000000000000012713543334741020472 xustar0029 mtime=1569569249.11463908 29 atime=1569569249.11463908 29 ctime=1569569249.11463908 elk-6.3.2/examples/tensor-moments/NiO-LDA+U-FLL/0000755002504400250440000000000013543334741022612 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/tensor-moments/NiO-LDA+U-FLL/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334741021645 xustar0030 mtime=1569569249.116639079 29 atime=1569569249.11563908 30 ctime=1569569249.116639079 elk-6.3.2/examples/tensor-moments/NiO-LDA+U-FLL/elk.in0000644002504400250440000000275613543334741023727 0ustar00dewhurstdewhurst00000000000000 ! NiO in AFMII structure with LDA+U and fully-localised-limit (FLL) double ! counting (dftu=1). Values of Slater parameters for Ni are taken from ! literature. Calculate the tensor moment decomposition of the density ! matrix and of the Hartree-Fock LDA+U energy in TMDFTU.OUT with task=400 ! (see PRB 80, 035121 (2009)). ! Observe the large 011 (spin-polarization), 404 (high multipole of charge) and ! the almost degenerate 413, 414, 415 (high multipoles of magnetization) ! contributions to the exchange energy. ! Compare the case with and without spin-orbit coupling (spinorb). ! Example by Francesco Cricchio. tasks 0 400 ! DFT+U block ! here FLL double counting is used (dftu=1) with Slater parameters as specified dft+u 1 2 : dftu, inpdftu 1 2 0.29399 0.30078 0.18799 : is, l, f0, f2, f4 spinpol .true. scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Ni.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 ! fairly high number of empty states nempty 8 sppath '../../../species/' ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-6.3.2/examples/tensor-moments/PaxHeaders.21352/US-LDA+SOC+U0000644000000000000000000000013213543334741020335 xustar0030 mtime=1569569249.120639076 30 atime=1569569249.119639077 30 ctime=1569569249.120639076 elk-6.3.2/examples/tensor-moments/US-LDA+SOC+U/0000755002504400250440000000000013543334741022461 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/tensor-moments/US-LDA+SOC+U/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741021515 xustar0030 mtime=1569569249.122639075 30 atime=1569569249.121639076 30 ctime=1569569249.122639075 elk-6.3.2/examples/tensor-moments/US-LDA+SOC+U/elk.in0000644002504400250440000000413713543334741023571 0ustar00dewhurstdewhurst00000000000000 ! US in FM structure with magnetic moment along easy-axis [111] with LDA+SOC+U ! and automatic interpolation double counting (dftu=3). Values of Slater ! parameters for Uranium are calculated through a Yukawa potential with ! screening length automatically determined such that U=1.0 eV (0.036749 Ha). ! In this way there is only one free parameter to be chosen. ! Check the tensor moment decomposition of the density matrix and of the ! Hartree-Fock DFT+U energy (and its convergence) in TMDFTU.OUT (see PRB 80, ! 035121 (2009)). Observe the large 011 (spin-polarization), 110 (SOC-like term) ! and 615 (large multipole of magnetization density) contributions to the ! exchange-energy. ! Example by Francesco Cricchio. tasks 0 ! DFT+U block ! here interpolation double-counting is used (dftu=3) ! inpdftu=5 corresponds to determine the Yukawa screening length that produces ! U=1 eV (0.036749 Ha) through a secant algorithm dft+u 3 5 : dftu,inpdftu 1 3 0.0367493060 : is, l, U fixed ! the tensor moments are calculated and written to file at every iteration tmwrite .true. spinpol .true. spinorb .true. scale 10.36175041 ! fcc lattice vectors avec 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0 atoms 2 : nspecies 'U.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'S.in' : spfname 1 : natoms 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt ! small global magnetic field along easy-axis [111] bfieldc -0.01 -0.01 -0.01 ! this rgkmax is too small for an accurate calculation ! rgkmax for actinides must usually be increased around 9.0-9.5 rgkmax 8.0 ! convergence of magnetic moment with number of empty states ! must be checked nempty 8 sppath '../../../species/' ! low convergence parameters for testing epspot 1.d-4 epsengy 1.d-2 ! larger betamax might help convergence betamax 1.0 beta0 0.05 ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-6.3.2/examples/PaxHeaders.21352/DFT+U0000644000000000000000000000013213543334741014413 xustar0030 mtime=1569569249.159639051 30 atime=1569569249.126639073 30 ctime=1569569249.159639051 elk-6.3.2/examples/DFT+U/0000755002504400250440000000000013543334741016537 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/PaxHeaders.21352/FeAl-LDA+U-INT0000644000000000000000000000013213543334741016450 xustar0030 mtime=1569569249.128639071 30 atime=1569569249.128639071 30 ctime=1569569249.128639071 elk-6.3.2/examples/DFT+U/FeAl-LDA+U-INT/0000755002504400250440000000000013543334741020574 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/FeAl-LDA+U-INT/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334741017626 xustar0029 mtime=1569569249.13063907 30 atime=1569569249.129639071 29 ctime=1569569249.13063907 elk-6.3.2/examples/DFT+U/FeAl-LDA+U-INT/elk.in0000644002504400250440000000240713543334741021702 0ustar00dewhurstdewhurst00000000000000 ! FeAl in CsCl (B2) structure using LDA+U and interpolation between AMF and ! FLL double counting (dftu=3). Compare the total DOS and partial DOS with the ! one calculated with bare LDA. Note the opening of a gap and the increased ! localization of Fe d-electrons. Note the interpolation factor in file ! ALPHADU.OUT about 0.1, this value is a sign of a weakly correlated compound ! (see PRB 67, 153106 (2003)). ! Example created by Fredrik Bultmark, Francesco Cricchio and Lars Nordstrom. tasks 0 10 ! DFT+U block ! here an interpolation between AMF and FLL double counting is used (dftu=3) ! inpdftu=1 corresponds to provide U and J as input dft+u 3 1 : dftu,inpdftu 1 2 0.183 0.034911967 : is, l, U, J spinpol .true. ! small field along z to break symmetry bfieldc 0.0 0.0 -0.01 scale 5.496 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'Al.in' 1 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt sppath '../../../species/' ! fair number of empty states nempty 8 ! fair number of k-points ngridk 8 8 8 elk-6.3.2/examples/DFT+U/PaxHeaders.21352/NiO-LDA+U-optimized0000644000000000000000000000013213543334741017700 xustar0030 mtime=1569569249.134639067 30 atime=1569569249.133639068 30 ctime=1569569249.134639067 elk-6.3.2/examples/DFT+U/NiO-LDA+U-optimized/0000755002504400250440000000000013543334741022024 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/NiO-LDA+U-optimized/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741021060 xustar0030 mtime=1569569249.136639066 30 atime=1569569249.135639067 30 ctime=1569569249.136639066 elk-6.3.2/examples/DFT+U/NiO-LDA+U-optimized/elk.in0000644002504400250440000000356513543334741023140 0ustar00dewhurstdewhurst00000000000000 ! Optimized LDA+U calculation for NiO AFMII with only one free parameter. ! The double counting is automatically chosen by doing an interpolation ! between FLL and AMF (dftu=3). The Slater parameters are determined through ! a Yukawa potential. Hence there is only one free parameter, the potential ! screening length lambda (see PRB 80, 035121 (2009)). Here lambda=1.5 ! provides realistic values of Slater parameters which are printed in FDU.OUT. ! Try to plot the magnetic moment as function of lambda. ! Analyze total and partial DOS (t2g and eg states) and compare with bare LDA. ! Look at the file ALPHADU.OUT where the interpolation factor is printed out. ! (see PRB 67, 153106 (2003)). Such a factor is about 0.5 for NiO. ! Compare the value of the interpolation factor with the example Fe-LDA+U-INT ! (weakly correlated system). ! Example by Francesco Cricchio. tasks 0 10 ! DFT+U block ! here an interpolation between AMF and FLL double counting is used (dftu=3) ! inpdftu=4 corresponds to calculate the Slater parameters through a Yukawa ! potential with screening length lambda, which constitutes the only free ! parameter in the calculation dft+u 3 4 : dftu, inpdftu 1 2 1.5 : is, l, lambda spinpol .true. scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Ni.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 ! fairly high number of empty states nempty 8 sppath '../../../species/' ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-6.3.2/examples/DFT+U/PaxHeaders.21352/FeAl-LDA0000644000000000000000000000013213543334741015620 xustar0030 mtime=1569569249.140639064 30 atime=1569569249.138639065 30 ctime=1569569249.140639064 elk-6.3.2/examples/DFT+U/FeAl-LDA/0000755002504400250440000000000013543334741017744 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/FeAl-LDA/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017000 xustar0030 mtime=1569569249.141639063 30 atime=1569569249.140639064 30 ctime=1569569249.141639063 elk-6.3.2/examples/DFT+U/FeAl-LDA/elk.in0000644002504400250440000000124513543334741021051 0ustar00dewhurstdewhurst00000000000000 ! FeAl in CsCl (B2) structure using LDA. Compare with LDA+U case. ! Example Created by Fredrik Bultmark, Francesco Cricchio and Lars Nordstrom. tasks 0 10 spinpol .true. ! small field along z to break symmetry bfieldc 0.0 0.0 -0.01 scale 5.496 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'Al.in' 1 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt sppath '../../../species/' ! fair number of empty states nempty 8 ngridk 8 8 8 elk-6.3.2/examples/DFT+U/PaxHeaders.21352/NiO-LDA0000644000000000000000000000013013543334741015474 xustar0029 mtime=1569569249.14563906 30 atime=1569569249.144639061 29 ctime=1569569249.14563906 elk-6.3.2/examples/DFT+U/NiO-LDA/0000755002504400250440000000000013543334741017622 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/NiO-LDA/PaxHeaders.21352/elk.in0000644000000000000000000000012713543334741016662 xustar0029 mtime=1569569249.14663906 29 atime=1569569249.14563906 29 ctime=1569569249.14663906 elk-6.3.2/examples/DFT+U/NiO-LDA/elk.in0000644002504400250440000000147313543334741020732 0ustar00dewhurstdewhurst00000000000000 ! NiO in AFMII structure with LDA for comparison with LDA+U case. ! Example by Fredrik Bultmark, Francesco Cricchio and Lars Nordstrom. tasks 0 10 spinpol .true. scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Ni.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 ! fairly high number of empty states nempty 8 sppath '../../../species/' ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-6.3.2/examples/DFT+U/PaxHeaders.21352/NiO-LDA+U-FLL-Ykwa0000644000000000000000000000013213543334741017222 xustar0030 mtime=1569569249.151639057 30 atime=1569569249.150639057 30 ctime=1569569249.151639057 elk-6.3.2/examples/DFT+U/NiO-LDA+U-FLL-Ykwa/0000755002504400250440000000000013543334741021346 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/NiO-LDA+U-FLL-Ykwa/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020402 xustar0030 mtime=1569569249.152639056 30 atime=1569569249.151639057 30 ctime=1569569249.152639056 elk-6.3.2/examples/DFT+U/NiO-LDA+U-FLL-Ykwa/elk.in0000644002504400250440000000337213543334741022456 0ustar00dewhurstdewhurst00000000000000 ! NiO in AFMII structure with LDA+U and fully-localised-limit (FLL) double ! counting (dftu=1). With inpdftu=4 the values of Slater parameters are ! conveniently calculated through a screened Yukawa potential with screening ! length lambda provided as input (see PRB 80, 035121 (2009)). Here lambda=1.5 ! gives realistic values of Slater integrals which are printed in FDU.OUT. ! Try to plot the magnetic moments of Ni as function of lambda. ! If inpdftu=5 the code will automatically determine the screening length ! corresponding to the fixed value of U (udufix) provided as input. ! Example by Francesco Cricchio. tasks 0 ! DFT+U block ! here FLL double counting is used (dftu=1) ! inpdftu=4 corresponds to calculate the Slater parameters self-consistently ! through a Yukawa potential with screening length lambda dft+u 1 4 : dftu, inpdftu 1 2 1.5 : is, l, lambda ! alternatively try inpdftu=5; this will determine the screening length ! corresponding to U=0.29399 Ha (8 eV) through a secant algorithm !dft+u ! 1 5 : dftu, inpdftu ! 1 2 0.29399 : is, l, U fixed spinpol .true. scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Ni.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 sppath '../../../species/' ! fairly high number of empty states nempty 8 ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-6.3.2/examples/DFT+U/PaxHeaders.21352/FeAl-LDA+U-AMF0000644000000000000000000000013213543334741016421 xustar0030 mtime=1569569249.156639053 30 atime=1569569249.155639054 30 ctime=1569569249.156639053 elk-6.3.2/examples/DFT+U/FeAl-LDA+U-AMF/0000755002504400250440000000000013543334741020545 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/FeAl-LDA+U-AMF/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017601 xustar0030 mtime=1569569249.157639053 30 atime=1569569249.157639053 30 ctime=1569569249.157639053 elk-6.3.2/examples/DFT+U/FeAl-LDA+U-AMF/elk.in0000644002504400250440000000251013543334741021646 0ustar00dewhurstdewhurst00000000000000 ! FeAl in CsCl (B2) structure using LDA+U and "around mean field" (AMF) double ! counting (dftu=2). Compare the total DOS and partial DOS with the one calculated ! with bare LDA. Note the opening of a gap and the increased localization of Fe ! d-electrons. Note the non-magnetic solution for U about 0.1837 Ha (5 eV) ! (the exact value of U depends on the muffin-tin (MT) radius used since DFT+U ! is applied only inside mt spheres). Try to plot the magnetic moment as ! function of U for different MT radius. Example created by Fredrik Bultmark, ! Francesco Cricchio and Lars Nordstrom. tasks 0 10 ! DFT+U block ! here AMF double counting is used (dftu=2) ! inpdftu=1 corresponds to provide U and J as input dft+u 2 1 : dftu, inpdftu 1 2 0.183 0.034911967 : is, l, U, J spinpol .true. ! small field along z to break symmetry bfieldc 0.0 0.0 -0.01 scale 5.496 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'Al.in' 1 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt sppath '../../../species/' ! fair number of empty states nempty 8 ! fair number of k-points ngridk 8 8 8 elk-6.3.2/examples/DFT+U/PaxHeaders.21352/NiO-LDA+U-FLL0000644000000000000000000000012713543334741016315 xustar0029 mtime=1569569249.16163905 29 atime=1569569249.16163905 29 ctime=1569569249.16163905 elk-6.3.2/examples/DFT+U/NiO-LDA+U-FLL/0000755002504400250440000000000013543334741020435 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/DFT+U/NiO-LDA+U-FLL/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334741017470 xustar0030 mtime=1569569249.163639049 29 atime=1569569249.16263905 30 ctime=1569569249.163639049 elk-6.3.2/examples/DFT+U/NiO-LDA+U-FLL/elk.in0000644002504400250440000000304413543334741021541 0ustar00dewhurstdewhurst00000000000000 ! NiO in AFMII structure with LDA+U and fully-localised-limit (FLL) double ! counting (dftu=1). Values of Slater parameters for Ni are taken from ! literature. ! Analyze total and partial DOS (t2g and eg states) and compare with bare LDA. ! Notice the increasing of the gap (~4eV) and of magnetic moment to ~1.69 u_b. ! The increasing of magnetic moment is typical of FLL double counting. ! Example by Francesco Cricchio. tasks 0 10 ! DFT+U block ! here FLL double counting is used (dftu=1) ! inpdftu=1 corresponds to provide U and J in Hartree as input ! inpdftu=2 or 3 corresponds to, respectively, Slater or Racah parameters ! inpdftu=4 or 5 corresponds to calculating the Slater parameters through a ! Yukawa potential (see example NiO-LDA+U-FLL-Ykwa and PRB 80, 035121 (2009)) dft+u 1 2 : dftu,inpdftu 1 2 0.29399 0.30078 0.18799 : is, l, f0, f2, f4 spinpol .true. scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Ni.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 ! fairly high number of empty states nempty 8 sppath '../../../species/' ! this grid is too small for accurate magnetic moment ngridk 4 4 4 elk-6.3.2/examples/PaxHeaders.21352/Fermi-surface0000644000000000000000000000013213543334741016266 xustar0030 mtime=1569569249.206639022 30 atime=1569569249.168639046 30 ctime=1569569249.206639022 elk-6.3.2/examples/Fermi-surface/0000755002504400250440000000000013543334741020412 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Fermi-surface/PaxHeaders.21352/Ni0000644000000000000000000000013213543334741016634 xustar0030 mtime=1569569249.183639036 30 atime=1569569249.169639045 30 ctime=1569569249.183639036 elk-6.3.2/examples/Fermi-surface/Ni/0000755002504400250440000000000013543334741020760 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Fermi-surface/Ni/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020014 xustar0030 mtime=1569569249.171639044 30 atime=1569569249.170639045 30 ctime=1569569249.171639044 elk-6.3.2/examples/Fermi-surface/Ni/elk.in0000644002504400250440000000142713543334741022067 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic nickel Fermi surface. Note that the spin-up and -down surfaces ! are separated into the files FERMISURF_UP.OUT and FERMISURF_DN.OUT. ! Use OpenDX with the files in this directory to produce the 3D plot. tasks 0 100 ! define box corners and grid size for 3D plot, first point is the origin plot3d 0.0 0.0 0.0 : vclp3d 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 40 40 40 : np3d spinpol .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 8 8 8 elk-6.3.2/examples/Fermi-surface/Ni/PaxHeaders.21352/fermi.net0000644000000000000000000000013213543334741020523 xustar0030 mtime=1569569249.176639041 30 atime=1569569249.174639042 30 ctime=1569569249.176639041 elk-6.3.2/examples/Fermi-surface/Ni/fermi.net0000644002504400250440000003707513543334741022606 0ustar00dewhurstdewhurst00000000000000// // time: Thu Nov 6 12:08:29 2008 // // version: 3.2.0 (format), 4.4.0 (DX) // // // MODULE main // workspace: width = 372, height = 548 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 147, y = 71, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "fermi_up.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node Isosurface[1]: x = 146, y = 196, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // main_Isosurface_1_out_1 = Isosurface( main_Import_1_out_1, main_Isosurface_1_in_2, main_Isosurface_1_in_3, main_Isosurface_1_in_4, main_Isosurface_1_in_5, main_Isosurface_1_in_6 ) [instance: 1, cache: 1]; // // node Color[1]: x = 154, y = 315, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "green" // main_Color_1_out_1 = Color( main_Isosurface_1_out_1, main_Color_1_in_2, main_Color_1_in_3, main_Color_1_in_4, main_Color_1_in_5 ) [instance: 1, cache: 1]; // // node Import[2]: x = 291, y = 73, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "fermi_dn.general" // main_Import_2_out_1 = Import( main_Import_2_in_1, main_Import_2_in_2, main_Import_2_in_3, main_Import_2_in_4, main_Import_2_in_5, main_Import_2_in_6 ) [instance: 2, cache: 1]; // // node Isosurface[2]: x = 290, y = 194, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // main_Isosurface_2_out_1 = Isosurface( main_Import_2_out_1, main_Isosurface_2_in_2, main_Isosurface_2_in_3, main_Isosurface_2_in_4, main_Isosurface_2_in_5, main_Isosurface_2_in_6 ) [instance: 2, cache: 1]; // // node Color[2]: x = 300, y = 313, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "yellow" // main_Color_2_out_1 = Color( main_Isosurface_2_out_1, main_Color_2_in_2, main_Color_2_in_3, main_Color_2_in_4, main_Color_2_in_5 ) [instance: 2, cache: 1]; // // node Collect[1]: x = 231, y = 399, inputs = 2, label = Collect // main_Collect_1_out_1 = Collect( main_Color_1_out_1, main_Color_2_out_1 ) [instance: 1, cache: 1]; // // node Image[2]: x = 283, y = 486, inputs = 49, label = Image // input[1]: defaulting = 0, visible = 0, type = 32, value = "Image_2" // input[4]: defaulting = 0, visible = 0, type = 1, value = 1 // input[5]: defaulting = 0, visible = 0, type = 8, value = [0.459851 0.459851 0.459851] // input[6]: defaulting = 0, visible = 0, type = 8, value = [5.36756 3.53923 7.97489] // input[7]: defaulting = 0, visible = 0, type = 5, value = 5.08525 // input[8]: defaulting = 0, visible = 0, type = 1, value = 640 // input[9]: defaulting = 0, visible = 0, type = 5, value = 0.75 // input[10]: defaulting = 0, visible = 0, type = 8, value = [-0.0834371 0.940039 -0.330704] // input[11]: defaulting = 1, visible = 0, type = 5, value = 30.0002 // input[12]: defaulting = 0, visible = 0, type = 1, value = 0 // input[14]: defaulting = 0, visible = 0, type = 1, value = 1 // input[15]: defaulting = 1, visible = 0, type = 32, value = "none" // input[16]: defaulting = 1, visible = 0, type = 32, value = "none" // input[17]: defaulting = 1, visible = 0, type = 1, value = 1 // input[18]: defaulting = 1, visible = 0, type = 1, value = 1 // input[19]: defaulting = 0, visible = 0, type = 1, value = 0 // input[29]: defaulting = 1, visible = 0, type = 3, value = 0 // input[41]: defaulting = 0, visible = 0, type = 32, value = "none" // depth: value = 24 // window: position = (0.0104,0.0600), size = 0.4542x0.5800, screen = 0 // internal caching: 1 // main_Image_2_out_1, main_Image_2_out_2, main_Image_2_out_3 = Image( main_Image_2_in_1, main_Collect_1_out_1, main_Image_2_in_3, main_Image_2_in_4, main_Image_2_in_5, main_Image_2_in_6, main_Image_2_in_7, main_Image_2_in_8, main_Image_2_in_9, main_Image_2_in_10, main_Image_2_in_11, main_Image_2_in_12, main_Image_2_in_13, main_Image_2_in_14, main_Image_2_in_15, main_Image_2_in_16, main_Image_2_in_17, main_Image_2_in_18, main_Image_2_in_19, main_Image_2_in_20, main_Image_2_in_21, main_Image_2_in_22, main_Image_2_in_23, main_Image_2_in_24, main_Image_2_in_25, main_Image_2_in_26, main_Image_2_in_27, main_Image_2_in_28, main_Image_2_in_29, main_Image_2_in_30, main_Image_2_in_31, main_Image_2_in_32, main_Image_2_in_33, main_Image_2_in_34, main_Image_2_in_35, main_Image_2_in_36, main_Image_2_in_37, main_Image_2_in_38, main_Image_2_in_39, main_Image_2_in_40, main_Image_2_in_41, main_Image_2_in_42, main_Image_2_in_43, main_Image_2_in_44, main_Image_2_in_45, main_Image_2_in_46, main_Image_2_in_47, main_Image_2_in_48, main_Image_2_in_49 ) [instance: 2, cache: 1]; // network: end of macro body CacheScene(main_Image_2_in_1, main_Image_2_out_1, main_Image_2_out_2); } main_Import_1_in_1 = "fermi_up.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_Isosurface_1_in_2 = 0.0; main_Isosurface_1_in_3 = NULL; main_Isosurface_1_in_4 = NULL; main_Isosurface_1_in_5 = NULL; main_Isosurface_1_in_6 = NULL; main_Isosurface_1_out_1 = NULL; main_Color_1_in_2 = "green"; main_Color_1_in_3 = NULL; main_Color_1_in_4 = NULL; main_Color_1_in_5 = NULL; main_Color_1_out_1 = NULL; main_Import_2_in_1 = "fermi_dn.general"; main_Import_2_in_2 = NULL; main_Import_2_in_3 = NULL; main_Import_2_in_4 = NULL; main_Import_2_in_5 = NULL; main_Import_2_in_6 = NULL; main_Import_2_out_1 = NULL; main_Isosurface_2_in_2 = 0.0; main_Isosurface_2_in_3 = NULL; main_Isosurface_2_in_4 = NULL; main_Isosurface_2_in_5 = NULL; main_Isosurface_2_in_6 = NULL; main_Isosurface_2_out_1 = NULL; main_Color_2_in_2 = "yellow"; main_Color_2_in_3 = NULL; main_Color_2_in_4 = NULL; main_Color_2_in_5 = NULL; main_Color_2_out_1 = NULL; main_Collect_1_out_1 = NULL; macro Image( id, object, where, useVector, to, from, width, resolution, aspect, up, viewAngle, perspective, options, buttonState = 1, buttonUpApprox = "none", buttonDownApprox = "none", buttonUpDensity = 1, buttonDownDensity = 1, renderMode = 0, defaultCamera, reset, backgroundColor, throttle, RECenable = 0, RECfile, RECformat, RECresolution, RECaspect, AAenable = 0, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, interactionMode, title, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, webOptions) -> ( object, camera, where) { ImageMessage( id, backgroundColor, throttle, RECenable, RECfile, RECformat, RECresolution, RECaspect, AAenable, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels, interactionMode, title, renderMode, buttonUpApprox, buttonDownApprox, buttonUpDensity, buttonDownDensity) [instance: 1, cache: 1]; autoCamera = AutoCamera( object, "front", object, resolution, aspect, [0,1,0], perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; realCamera = Camera( to, from, width, resolution, aspect, up, perspective, viewAngle, backgroundColor) [instance: 1, cache: 1]; coloredDefaultCamera = UpdateCamera(defaultCamera, background=backgroundColor) [instance: 1, cache: 1]; nullDefaultCamera = Inquire(defaultCamera, "is null + 1") [instance: 1, cache: 1]; resetCamera = Switch( nullDefaultCamera, coloredDefaultCamera, autoCamera) [instance: 1, cache: 1]; resetNull = Inquire( reset, "is null + 1") [instance: 2, cache: 1]; reset = Switch( resetNull, reset, 0) [instance: 2, cache: 1]; whichCamera = Compute( "($0 != 0 || $1 == 0) ? 1 : 2", reset, useVector) [instance: 1, cache: 1]; camera = Switch( whichCamera, resetCamera, realCamera) [instance: 3, cache: 1]; AAobject = AutoAxes( object, camera, AAlabels, AAticks, AAcorners, AAframe, AAadjust, AAcursor, AAgrid, AAcolors, AAannotation, AAlabelscale, AAfont, AAxTickLocs, AAyTickLocs, AAzTickLocs, AAxTickLabels, AAyTickLabels, AAzTickLabels) [instance: 1, cache: 1]; switchAAenable = Compute("$0+1", AAenable) [instance: 2, cache: 1]; object = Switch( switchAAenable, object, AAobject) [instance:4, cache: 1]; SWapproximation_options = Switch( buttonState, buttonUpApprox, buttonDownApprox) [instance: 5, cache: 1]; SWdensity_options = Switch( buttonState, buttonUpDensity, buttonDownDensity) [instance: 6, cache: 1]; HWapproximation_options = Format( "%s,%s", buttonDownApprox, buttonUpApprox) [instance: 1, cache: 1]; HWdensity_options = Format( "%d,%d", buttonDownDensity, buttonUpDensity) [instance: 2, cache: 1]; switchRenderMode = Compute( "$0+1", renderMode) [instance: 3, cache: 1]; approximation_options = Switch( switchRenderMode, SWapproximation_options, HWapproximation_options) [instance: 7, cache: 1]; density_options = Switch( switchRenderMode, SWdensity_options, HWdensity_options) [instance: 8, cache: 1]; renderModeString = Switch( switchRenderMode, "software", "hardware")[instance: 9, cache: 1]; object_tag = Inquire( object, "object tag")[instance: 3, cache: 1]; annoted_object = Options( object, "send boxes", 0, "cache", 1, "object tag", object_tag, "ddcamera", whichCamera, "rendering approximation", approximation_options, "render every", density_options, "button state", buttonState, "rendering mode", renderModeString) [instance: 1, cache: 1]; RECresNull = Inquire( RECresolution, "is null + 1") [instance: 4, cache: 1]; ImageResolution = Inquire( camera, "camera resolution") [instance: 5, cache: 1]; RECresolution = Switch( RECresNull, RECresolution, ImageResolution) [instance: 10, cache: 1]; RECaspectNull = Inquire( RECaspect, "is null + 1") [instance: 6, cache: 1]; ImageAspect = Inquire( camera, "camera aspect") [instance: 7, cache: 1]; RECaspect = Switch( RECaspectNull, RECaspect, ImageAspect) [instance: 11, cache: 1]; switchRECenable = Compute( "$0 == 0 ? 1 : (($2 == $3) && ($4 == $5)) ? ($1 == 1 ? 2 : 3) : 4", RECenable, switchRenderMode, RECresolution, ImageResolution, RECaspect, ImageAspect) [instance: 4, cache: 1]; NoRECobject, RECNoRerenderObject, RECNoRerHW, RECRerenderObject = Route(switchRECenable, annoted_object); Display( NoRECobject, camera, where, throttle) [instance: 1, cache: 1]; image = Render( RECNoRerenderObject, camera) [instance: 1, cache: 1]; Display( image, NULL, where, throttle) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 1, cache: 1]; rec_where = Display( RECNoRerHW, camera, where, throttle) [instance: 1, cache: 0]; rec_image = ReadImageWindow( rec_where) [instance: 1, cache: 1]; WriteImage( rec_image, RECfile, RECformat) [instance: 1, cache: 1]; RECupdateCamera = UpdateCamera( camera, resolution=RECresolution, aspect=RECaspect) [instance: 2, cache: 1]; Display( RECRerenderObject, camera, where, throttle) [instance: 1, cache: 1]; RECRerenderObject = ScaleScreen( RECRerenderObject, NULL, RECresolution, camera) [instance: 1, cache: 1]; image = Render( RECRerenderObject, RECupdateCamera) [instance: 2, cache: 1]; WriteImage( image, RECfile, RECformat) [instance: 2, cache: 1]; } main_Image_2_in_1 = "Image_2"; main_Image_2_in_3 = "X24,,"; main_Image_2_in_4 = 1; main_Image_2_in_5 = [0.459851 0.459851 0.459851]; main_Image_2_in_6 = [5.36756 3.53923 7.97489]; main_Image_2_in_7 = 5.08525; main_Image_2_in_8 = 640; main_Image_2_in_9 = 0.75; main_Image_2_in_10 = [-0.0834371 0.940039 -0.330704]; main_Image_2_in_11 = NULL; main_Image_2_in_12 = 0; main_Image_2_in_13 = NULL; main_Image_2_in_14 = 1; main_Image_2_in_15 = NULL; main_Image_2_in_16 = NULL; main_Image_2_in_17 = NULL; main_Image_2_in_18 = NULL; main_Image_2_in_19 = 0; main_Image_2_in_20 = NULL; main_Image_2_in_21 = NULL; main_Image_2_in_22 = NULL; main_Image_2_in_23 = NULL; main_Image_2_in_25 = NULL; main_Image_2_in_26 = NULL; main_Image_2_in_27 = NULL; main_Image_2_in_28 = NULL; main_Image_2_in_29 = NULL; main_Image_2_in_30 = NULL; main_Image_2_in_31 = NULL; main_Image_2_in_32 = NULL; main_Image_2_in_33 = NULL; main_Image_2_in_34 = NULL; main_Image_2_in_35 = NULL; main_Image_2_in_36 = NULL; main_Image_2_in_37 = NULL; main_Image_2_in_38 = NULL; main_Image_2_in_39 = NULL; main_Image_2_in_40 = NULL; main_Image_2_in_41 = "none"; main_Image_2_in_42 = NULL; main_Image_2_in_43 = NULL; main_Image_2_in_44 = NULL; main_Image_2_in_45 = NULL; main_Image_2_in_46 = NULL; main_Image_2_in_47 = NULL; main_Image_2_in_48 = NULL; main_Image_2_in_49 = NULL; Executive("product version 4 4 0"); $sync main(); elk-6.3.2/examples/Fermi-surface/Ni/PaxHeaders.21352/fermi_dn.general0000644000000000000000000000013213543334741022033 xustar0030 mtime=1569569249.180639038 30 atime=1569569249.180639038 30 ctime=1569569249.180639038 elk-6.3.2/examples/Fermi-surface/Ni/fermi_dn.general0000644002504400250440000000030513543334741024100 0ustar00dewhurstdewhurst00000000000000file = ./FERMISURF_DN.OUT grid = 40 x 40 x 40 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 3-vector, scalar type = float, float end elk-6.3.2/examples/Fermi-surface/Ni/PaxHeaders.21352/fermi_up.general0000644000000000000000000000013213543334741022056 xustar0030 mtime=1569569249.184639036 30 atime=1569569249.184639036 30 ctime=1569569249.184639036 elk-6.3.2/examples/Fermi-surface/Ni/fermi_up.general0000644002504400250440000000030513543334741024123 0ustar00dewhurstdewhurst00000000000000file = ./FERMISURF_UP.OUT grid = 40 x 40 x 40 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 3-vector, scalar type = float, float end elk-6.3.2/examples/Fermi-surface/PaxHeaders.21352/Al0000644000000000000000000000013213543334741016622 xustar0030 mtime=1569569249.197639027 30 atime=1569569249.188639033 30 ctime=1569569249.197639027 elk-6.3.2/examples/Fermi-surface/Al/0000755002504400250440000000000013543334741020746 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Fermi-surface/Al/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020002 xustar0030 mtime=1569569249.190639032 30 atime=1569569249.190639032 30 ctime=1569569249.190639032 elk-6.3.2/examples/Fermi-surface/Al/elk.in0000644002504400250440000000062013543334741022047 0ustar00dewhurstdewhurst00000000000000 ! Fermi surface plot of aluminium. tasks 0 100 ! define box corners and grid size for 3D plot, first point is the origin plot3d 0.0 0.0 0.0 : vclp3d 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 40 40 40 : np3d avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.8267 sppath '../../../species/' atoms 1 'Al.in' 1 0.0 0.0 0.0 ngridk 6 6 6 elk-6.3.2/examples/Fermi-surface/Al/PaxHeaders.21352/fermi.general0000644000000000000000000000013213543334741021340 xustar0030 mtime=1569569249.194639029 30 atime=1569569249.194639029 30 ctime=1569569249.194639029 elk-6.3.2/examples/Fermi-surface/Al/fermi.general0000644002504400250440000000030213543334741023402 0ustar00dewhurstdewhurst00000000000000file = ./FERMISURF.OUT grid = 40 x 40 x 40 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 3-vector, scalar type = float, float end elk-6.3.2/examples/Fermi-surface/Al/PaxHeaders.21352/fermi.net0000644000000000000000000000013213543334741020511 xustar0030 mtime=1569569249.199639026 30 atime=1569569249.198639027 30 ctime=1569569249.199639026 elk-6.3.2/examples/Fermi-surface/Al/fermi.net0000644002504400250440000002203613543334741022563 0ustar00dewhurstdewhurst00000000000000// // time: Fri Jul 15 15:49:55 2011 // // version: 3.2.0 (format), 4.4.4 (DX) // // // MODULE main // workspace: width = 620, height = 667 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Camera[1]: x = 404, y = 490, inputs = 9, label = Camera // input[2]: defaulting = 0, visible = 1, type = 8, value = [1 1 1] // input[3]: defaulting = 0, visible = 1, type = 5, value = 6.0 // input[4]: defaulting = 0, visible = 1, type = 1, value = 800 // input[5]: defaulting = 0, visible = 1, type = 5, value = 0.65 // input[9]: defaulting = 0, visible = 1, type = 32, value = "white" // main_Camera_1_out_1 = Camera( main_Camera_1_in_1, main_Camera_1_in_2, main_Camera_1_in_3, main_Camera_1_in_4, main_Camera_1_in_5, main_Camera_1_in_6, main_Camera_1_in_7, main_Camera_1_in_8, main_Camera_1_in_9 ) [instance: 1, cache: 1]; // // node Caption[1]: x = 46, y = 444, inputs = 9, label = Caption // input[1]: defaulting = 0, visible = 1, type = 32, value = "Aluminium Fermi surface" // input[6]: defaulting = 0, visible = 0, type = 1, value = 25 // main_Caption_1_out_1 = Caption( main_Caption_1_in_1, main_Caption_1_in_2, main_Caption_1_in_3, main_Caption_1_in_4, main_Caption_1_in_5, main_Caption_1_in_6, main_Caption_1_in_7, main_Caption_1_in_8, main_Caption_1_in_9 ) [instance: 1, cache: 1]; // // node Color[6]: x = 141, y = 504, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "black" // main_Color_6_out_1 = Color( main_Caption_1_out_1, main_Color_6_in_2, main_Color_6_in_3, main_Color_6_in_4, main_Color_6_in_5 ) [instance: 6, cache: 1]; // // node Import[1]: x = 258, y = 10, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "fermi.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node Isosurface[3]: x = 57, y = 106, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // main_Isosurface_3_out_1 = Isosurface( main_Import_1_out_1, main_Isosurface_3_in_2, main_Isosurface_3_in_3, main_Isosurface_3_in_4, main_Isosurface_3_in_5, main_Isosurface_3_in_6 ) [instance: 3, cache: 1]; // // node Color[3]: x = 171, y = 194, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "yellow" // input[4]: defaulting = 0, visible = 0, type = 32, value = "front colors" // main_Color_3_out_1 = Color( main_Isosurface_3_out_1, main_Color_3_in_2, main_Color_3_in_3, main_Color_3_in_4, main_Color_3_in_5 ) [instance: 3, cache: 1]; // // node Color[4]: x = 50, y = 286, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "blue" // input[4]: defaulting = 0, visible = 0, type = 32, value = "back colors" // main_Color_4_out_1 = Color( main_Color_3_out_1, main_Color_4_in_2, main_Color_4_in_3, main_Color_4_in_4, main_Color_4_in_5 ) [instance: 4, cache: 1]; // // node Translate[2]: x = 166, y = 364, inputs = 2, label = Translate // input[2]: defaulting = 0, visible = 1, type = 8, value = [0 1.2 2.0] // main_Translate_2_out_1 = Translate( main_Color_4_out_1, main_Translate_2_in_2 ) [instance: 2, cache: 1]; // // node Refine[2]: x = 473, y = 83, inputs = 2, label = Refine // input[2]: defaulting = 0, visible = 1, type = 1, value = 1 // main_Refine_2_out_1 = Refine( main_Import_1_out_1, main_Refine_2_in_2 ) [instance: 2, cache: 1]; // // node MapToPlane[1]: x = 317, y = 129, inputs = 3, label = MapToPlane // input[2]: defaulting = 1, visible = 1, type = 8, value = [1,1,1] // input[3]: defaulting = 0, visible = 1, type = 8, value = [1,1,1] // main_MapToPlane_1_out_1 = MapToPlane( main_Refine_2_out_1, main_MapToPlane_1_in_2, main_MapToPlane_1_in_3 ) [instance: 1, cache: 1]; // // node Isosurface[2]: x = 508, y = 170, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // input[3]: defaulting = 1, visible = 1, type = 1, value = 10 // main_Isosurface_2_out_1 = Isosurface( main_MapToPlane_1_out_1, main_Isosurface_2_in_2, main_Isosurface_2_in_3, main_Isosurface_2_in_4, main_Isosurface_2_in_5, main_Isosurface_2_in_6 ) [instance: 2, cache: 1]; // // node Color[5]: x = 324, y = 241, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "black" // main_Color_5_out_1 = Color( main_Isosurface_2_out_1, main_Color_5_in_2, main_Color_5_in_3, main_Color_5_in_4, main_Color_5_in_5 ) [instance: 5, cache: 1]; // // node Ribbon[1]: x = 500, y = 264, inputs = 2, label = Ribbon // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.01 // main_Ribbon_1_out_1 = Ribbon( main_Color_5_out_1, main_Ribbon_1_in_2 ) [instance: 1, cache: 1]; // // node Shade[1]: x = 492, y = 358, inputs = 8, label = Shade // input[2]: defaulting = 0, visible = 1, type = 3, value = 0 // main_Shade_1_out_1 = Shade( main_Ribbon_1_out_1, main_Shade_1_in_2, main_Shade_1_in_3, main_Shade_1_in_4, main_Shade_1_in_5, main_Shade_1_in_6, main_Shade_1_in_7, main_Shade_1_in_8 ) [instance: 1, cache: 1]; // // node Translate[1]: x = 360, y = 360, inputs = 2, label = Translate // input[2]: defaulting = 0, visible = 1, type = 8, value = [2.0 1.2 0] // main_Translate_1_out_1 = Translate( main_Shade_1_out_1, main_Translate_1_in_2 ) [instance: 1, cache: 1]; // // node Collect[1]: x = 265, y = 458, inputs = 3, label = Collect // main_Collect_1_out_1 = Collect( main_Color_6_out_1, main_Translate_2_out_1, main_Translate_1_out_1 ) [instance: 1, cache: 1]; // // node Display[3]: x = 287, y = 605, inputs = 8, label = Display // depth: value = 24 // main_Display_3_out_1[cache: 2] = Display( main_Collect_1_out_1, main_Camera_1_out_1, main_Display_3_in_3, main_Display_3_in_4, main_Display_3_in_5, main_Display_3_in_6, main_Display_3_in_7, main_Display_3_in_8 ) [instance: 3, cache: 1]; // network: end of macro body } main_Camera_1_in_1 = NULL; main_Camera_1_in_2 = [1 1 1]; main_Camera_1_in_3 = 6.0; main_Camera_1_in_4 = 800; main_Camera_1_in_5 = 0.65; main_Camera_1_in_6 = NULL; main_Camera_1_in_7 = NULL; main_Camera_1_in_8 = NULL; main_Camera_1_in_9 = "white"; main_Camera_1_out_1 = NULL; main_Caption_1_in_1 = "Aluminium Fermi surface"; main_Caption_1_in_2 = NULL; main_Caption_1_in_3 = NULL; main_Caption_1_in_4 = NULL; main_Caption_1_in_5 = NULL; main_Caption_1_in_6 = 25; main_Caption_1_in_7 = NULL; main_Caption_1_in_8 = NULL; main_Caption_1_in_9 = NULL; main_Caption_1_out_1 = NULL; main_Color_6_in_2 = "black"; main_Color_6_in_3 = NULL; main_Color_6_in_4 = NULL; main_Color_6_in_5 = NULL; main_Color_6_out_1 = NULL; main_Import_1_in_1 = "fermi.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_Isosurface_3_in_2 = 0.0; main_Isosurface_3_in_3 = NULL; main_Isosurface_3_in_4 = NULL; main_Isosurface_3_in_5 = NULL; main_Isosurface_3_in_6 = NULL; main_Isosurface_3_out_1 = NULL; main_Color_3_in_2 = "yellow"; main_Color_3_in_3 = NULL; main_Color_3_in_4 = "front colors"; main_Color_3_in_5 = NULL; main_Color_3_out_1 = NULL; main_Color_4_in_2 = "blue"; main_Color_4_in_3 = NULL; main_Color_4_in_4 = "back colors"; main_Color_4_in_5 = NULL; main_Color_4_out_1 = NULL; main_Translate_2_in_2 = [0 1.2 2.0]; main_Translate_2_out_1 = NULL; main_Refine_2_in_2 = 1; main_Refine_2_out_1 = NULL; main_MapToPlane_1_in_2 = NULL; main_MapToPlane_1_in_3 = [1,1,1]; main_MapToPlane_1_out_1 = NULL; main_Isosurface_2_in_2 = 0.0; main_Isosurface_2_in_3 = NULL; main_Isosurface_2_in_4 = NULL; main_Isosurface_2_in_5 = NULL; main_Isosurface_2_in_6 = NULL; main_Isosurface_2_out_1 = NULL; main_Color_5_in_2 = "black"; main_Color_5_in_3 = NULL; main_Color_5_in_4 = NULL; main_Color_5_in_5 = NULL; main_Color_5_out_1 = NULL; main_Ribbon_1_in_2 = 0.01; main_Ribbon_1_out_1 = NULL; main_Shade_1_in_2 = 0; main_Shade_1_in_3 = NULL; main_Shade_1_in_4 = NULL; main_Shade_1_in_5 = NULL; main_Shade_1_in_6 = NULL; main_Shade_1_in_7 = NULL; main_Shade_1_in_8 = NULL; main_Shade_1_out_1 = NULL; main_Translate_1_in_2 = [2.0 1.2 0]; main_Translate_1_out_1 = NULL; main_Collect_1_out_1 = NULL; main_Display_3_in_3 = "X24,,"; main_Display_3_in_4 = NULL; main_Display_3_in_5 = NULL; main_Display_3_in_6 = NULL; main_Display_3_in_7 = NULL; main_Display_3_in_8 = NULL; Executive("product version 4 4 4"); $sync main(); elk-6.3.2/examples/Fermi-surface/PaxHeaders.21352/Fe0000644000000000000000000000013213543334741016620 xustar0030 mtime=1569569249.203639023 30 atime=1569569249.202639024 30 ctime=1569569249.203639023 elk-6.3.2/examples/Fermi-surface/Fe/0000755002504400250440000000000013543334741020744 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Fermi-surface/Fe/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020000 xustar0030 mtime=1569569249.204639023 30 atime=1569569249.204639023 30 ctime=1569569249.204639023 elk-6.3.2/examples/Fermi-surface/Fe/elk.in0000644002504400250440000000146113543334741022051 0ustar00dewhurstdewhurst00000000000000 ! Fermi surface of ferromagnetic bcc iron. Use XCrysDen for visualisation. ! Run code and then use ! xcrysden --bxsf FERMISURF(_UP/_DN).bxsf ! to display the spin up and down Fermi surfaces. tasks 0 102 : this generates the XCrysDen Fermi Surface .bxsf file ! 3D Fermi surface box defined in terms of reciprocal lattice vectors plot3d 0.0 0.0 0.0 : origin (first corner) 1.0 0.0 0.0 : second corner, etc. 0.0 1.0 0.0 0.0 0.0 1.0 12 12 12 : number of points in each direction spinpol .true. bfieldc 0.0 0.0 0.01 ! fairly large number of empty states required for magnetic cases nempty 8 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 sppath '../../../species/' atoms 1 'Fe.in' 1 0.0 0.0 0.0 ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/Fermi-surface/PaxHeaders.21352/MgB20000644000000000000000000000013113543334741017014 xustar0030 mtime=1569569249.216639015 29 atime=1569569249.20863902 30 ctime=1569569249.216639015 elk-6.3.2/examples/Fermi-surface/MgB2/0000755002504400250440000000000013543334741021141 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Fermi-surface/MgB2/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334741020174 xustar0030 mtime=1569569249.210639019 29 atime=1569569249.20963902 30 ctime=1569569249.210639019 elk-6.3.2/examples/Fermi-surface/MgB2/elk.in0000644002504400250440000000144413543334741022247 0ustar00dewhurstdewhurst00000000000000 ! Fermi surface of MgB2 plotted with OpenDX. In this example, the surfaces from ! different bands are separated in the 3D plot. tasks 0 101 ngridk 6 6 4 ! plot a 2x2x2 reciprocal space cell plot3d 0.0 0.0 0.0 2.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 2.0 24 24 16 avec 5.8316944 0.0 0.0 -2.9158472 5.050395498 0.0 0.0 0.0 6.65939438 sppath '../../../species/' atoms 2 : nspecies 'Mg.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'B.in' : spfname 2 : natoms; atposl below 0.3333333333 0.6666666667 0.5 0.6666666667 0.3333333333 0.5 elk-6.3.2/examples/Fermi-surface/MgB2/PaxHeaders.21352/fermi.general0000644000000000000000000000013213543334741021533 xustar0030 mtime=1569569249.214639016 30 atime=1569569249.213639017 30 ctime=1569569249.214639016 elk-6.3.2/examples/Fermi-surface/MgB2/fermi.general0000644002504400250440000000035613543334741023606 0ustar00dewhurstdewhurst00000000000000file = FERMISURF.OUT grid = 24 x 24 x 16 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0, field1, field2 structure = 3-vector, scalar, scalar, scalar type = float, float, float, float end elk-6.3.2/examples/Fermi-surface/MgB2/PaxHeaders.21352/fermi.net0000644000000000000000000000013213543334741020704 xustar0030 mtime=1569569249.218639014 30 atime=1569569249.217639014 30 ctime=1569569249.218639014 elk-6.3.2/examples/Fermi-surface/MgB2/fermi.net0000644002504400250440000001624213543334741022760 0ustar00dewhurstdewhurst00000000000000// // time: Mon Sep 3 18:12:53 2012 // // version: 3.2.0 (format), 4.4.4 (DX) // // // MODULE main // workspace: width = 527, height = 582 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 151, y = 24, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "fermi.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node Select[1]: x = 240, y = 119, inputs = 3, label = Select // input[2]: defaulting = 0, visible = 1, type = 1, value = 0 // main_Select_1_out_1 = Select( main_Import_1_out_1, main_Select_1_in_2, main_Select_1_in_3 ) [instance: 1, cache: 1]; // // node Isosurface[1]: x = 182, y = 209, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // main_Isosurface_1_out_1 = Isosurface( main_Select_1_out_1, main_Isosurface_1_in_2, main_Isosurface_1_in_3, main_Isosurface_1_in_4, main_Isosurface_1_in_5, main_Isosurface_1_in_6 ) [instance: 1, cache: 1]; // // node Color[1]: x = 199, y = 297, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "red" // main_Color_1_out_1 = Color( main_Isosurface_1_out_1, main_Color_1_in_2, main_Color_1_in_3, main_Color_1_in_4, main_Color_1_in_5 ) [instance: 1, cache: 1]; // // node Select[2]: x = 319, y = 120, inputs = 3, label = Select // input[2]: defaulting = 0, visible = 1, type = 1, value = 1 // main_Select_2_out_1 = Select( main_Import_1_out_1, main_Select_2_in_2, main_Select_2_in_3 ) [instance: 2, cache: 1]; // // node Isosurface[2]: x = 310, y = 211, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // main_Isosurface_2_out_1 = Isosurface( main_Select_2_out_1, main_Isosurface_2_in_2, main_Isosurface_2_in_3, main_Isosurface_2_in_4, main_Isosurface_2_in_5, main_Isosurface_2_in_6 ) [instance: 2, cache: 1]; // // node Color[2]: x = 316, y = 299, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "yellow" // main_Color_2_out_1 = Color( main_Isosurface_2_out_1, main_Color_2_in_2, main_Color_2_in_3, main_Color_2_in_4, main_Color_2_in_5 ) [instance: 2, cache: 1]; // // node Select[3]: x = 409, y = 122, inputs = 3, label = Select // input[2]: defaulting = 0, visible = 1, type = 1, value = 2 // main_Select_3_out_1 = Select( main_Import_1_out_1, main_Select_3_in_2, main_Select_3_in_3 ) [instance: 3, cache: 1]; // // node Isosurface[3]: x = 449, y = 213, inputs = 6, label = Isosurface // input[2]: defaulting = 0, visible = 1, type = 5, value = 0.0 // main_Isosurface_3_out_1 = Isosurface( main_Select_3_out_1, main_Isosurface_3_in_2, main_Isosurface_3_in_3, main_Isosurface_3_in_4, main_Isosurface_3_in_5, main_Isosurface_3_in_6 ) [instance: 3, cache: 1]; // // node Color[3]: x = 444, y = 300, inputs = 5, label = Color // input[2]: defaulting = 0, visible = 1, type = 32, value = "green" // main_Color_3_out_1 = Color( main_Isosurface_3_out_1, main_Color_3_in_2, main_Color_3_in_3, main_Color_3_in_4, main_Color_3_in_5 ) [instance: 3, cache: 1]; // // node Collect[1]: x = 299, y = 392, inputs = 3, label = Collect // main_Collect_1_out_1 = Collect( main_Color_1_out_1, main_Color_2_out_1, main_Color_3_out_1 ) [instance: 1, cache: 1]; // // node AutoCamera[2]: x = 422, y = 412, inputs = 9, label = AutoCamera // input[2]: defaulting = 0, visible = 1, type = 8, value = [1.0 -0.25 0.5] // input[3]: defaulting = 0, visible = 0, type = 5, value = 4.0 // input[4]: defaulting = 0, visible = 0, type = 1, value = 800 // input[6]: defaulting = 0, visible = 0, type = 8, value = [0 0 1] // main_AutoCamera_2_out_1 = AutoCamera( main_Collect_1_out_1, main_AutoCamera_2_in_2, main_AutoCamera_2_in_3, main_AutoCamera_2_in_4, main_AutoCamera_2_in_5, main_AutoCamera_2_in_6, main_AutoCamera_2_in_7, main_AutoCamera_2_in_8, main_AutoCamera_2_in_9 ) [instance: 2, cache: 1]; // // node Render[1]: x = 255, y = 507, inputs = 3, label = Render // main_Render_1_out_1 = Render( main_Collect_1_out_1, main_AutoCamera_2_out_1, main_Render_1_in_3 ) [instance: 1, cache: 1]; // // node Display[1]: x = 451, y = 520, inputs = 8, label = Display // depth: value = 24 // window: position = (0.0089,0.0231), size = 0.4240x0.5944, screen = 0 // main_Display_1_out_1[cache: 2] = Display( main_Render_1_out_1, main_Display_1_in_2, main_Display_1_in_3, main_Display_1_in_4, main_Display_1_in_5, main_Display_1_in_6, main_Display_1_in_7, main_Display_1_in_8 ) [instance: 1, cache: 1]; // network: end of macro body } main_Import_1_in_1 = "fermi.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_Select_1_in_2 = 0; main_Select_1_in_3 = NULL; main_Select_1_out_1 = NULL; main_Isosurface_1_in_2 = 0.0; main_Isosurface_1_in_3 = NULL; main_Isosurface_1_in_4 = NULL; main_Isosurface_1_in_5 = NULL; main_Isosurface_1_in_6 = NULL; main_Isosurface_1_out_1 = NULL; main_Color_1_in_2 = "red"; main_Color_1_in_3 = NULL; main_Color_1_in_4 = NULL; main_Color_1_in_5 = NULL; main_Color_1_out_1 = NULL; main_Select_2_in_2 = 1; main_Select_2_in_3 = NULL; main_Select_2_out_1 = NULL; main_Isosurface_2_in_2 = 0.0; main_Isosurface_2_in_3 = NULL; main_Isosurface_2_in_4 = NULL; main_Isosurface_2_in_5 = NULL; main_Isosurface_2_in_6 = NULL; main_Isosurface_2_out_1 = NULL; main_Color_2_in_2 = "yellow"; main_Color_2_in_3 = NULL; main_Color_2_in_4 = NULL; main_Color_2_in_5 = NULL; main_Color_2_out_1 = NULL; main_Select_3_in_2 = 2; main_Select_3_in_3 = NULL; main_Select_3_out_1 = NULL; main_Isosurface_3_in_2 = 0.0; main_Isosurface_3_in_3 = NULL; main_Isosurface_3_in_4 = NULL; main_Isosurface_3_in_5 = NULL; main_Isosurface_3_in_6 = NULL; main_Isosurface_3_out_1 = NULL; main_Color_3_in_2 = "green"; main_Color_3_in_3 = NULL; main_Color_3_in_4 = NULL; main_Color_3_in_5 = NULL; main_Color_3_out_1 = NULL; main_Collect_1_out_1 = NULL; main_AutoCamera_2_in_2 = [1.0 -0.25 0.5]; main_AutoCamera_2_in_3 = 4.0; main_AutoCamera_2_in_4 = 800; main_AutoCamera_2_in_5 = NULL; main_AutoCamera_2_in_6 = [0 0 1]; main_AutoCamera_2_in_7 = NULL; main_AutoCamera_2_in_8 = NULL; main_AutoCamera_2_in_9 = NULL; main_AutoCamera_2_out_1 = NULL; main_Render_1_in_3 = NULL; main_Render_1_out_1 = NULL; main_Display_1_in_2 = NULL; main_Display_1_in_3 = "X24,,"; main_Display_1_in_4 = NULL; main_Display_1_in_5 = NULL; main_Display_1_in_6 = NULL; main_Display_1_in_7 = NULL; main_Display_1_in_8 = NULL; Executive("product version 4 4 4"); $sync main(); elk-6.3.2/examples/PaxHeaders.21352/OEP0000644000000000000000000000013213543334741014221 xustar0030 mtime=1569569249.229639007 30 atime=1569569249.221639012 30 ctime=1569569249.229639007 elk-6.3.2/examples/OEP/0000755002504400250440000000000013543334741016345 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/OEP/PaxHeaders.21352/HEG0000644000000000000000000000013213543334741014624 xustar0030 mtime=1569569249.226639009 30 atime=1569569249.222639011 30 ctime=1569569249.226639009 elk-6.3.2/examples/OEP/HEG/0000755002504400250440000000000013543334741016750 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/OEP/HEG/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741016004 xustar0030 mtime=1569569249.227639008 30 atime=1569569249.226639009 30 ctime=1569569249.227639008 elk-6.3.2/examples/OEP/HEG/elk.in0000644002504400250440000000070213543334741020052 0ustar00dewhurstdewhurst00000000000000 ! Optimised effetive potential (OEP) ground state of the homogenous electron ! gas. The Wigner radius (r_s) is written to INFO.OUT. Note that the exchange ! energy is only computed during the last iteration. tasks 0 xctype -1 chgexs 10.0 ! use the unit cell of aluminium avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.75 ! note that low density gases require denser k-point grids! ngridk 2 2 2 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/OEP/PaxHeaders.21352/Si0000644000000000000000000000013213543334741014574 xustar0030 mtime=1569569249.231639006 30 atime=1569569249.230639006 30 ctime=1569569249.231639006 elk-6.3.2/examples/OEP/Si/0000755002504400250440000000000013543334741016720 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/OEP/Si/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741015754 xustar0030 mtime=1569569249.233639004 30 atime=1569569249.232639005 30 ctime=1569569249.233639004 elk-6.3.2/examples/OEP/Si/elk.in0000644002504400250440000000222313543334741020022 0ustar00dewhurstdewhurst00000000000000 ! Optimised effective potential calculation of silicon. An iterative proceedure ! is used to find the optimised potential [Phys. Rev. Lett. 98, 196405 (2007)]. ! Note that the exact exchange energy is calculated only during the last ! self-consistent loop, which is the reason why the final total energy is ! different from those calculated in previous loops. tasks 0 20 ! exact exchange only (no correlation) xctype -1 ! large number of OEP iterations to converge the gap maxitoep 200 ! large number of empty states required nempty 15 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 2 2 2 vkloff 0.25 0.5 0.625 ! These are the vertices to be joined for the band structure plot plot1d 7 200 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/PaxHeaders.21352/TDDFT-time-evolution0000644000000000000000000000013213543334741017421 xustar0030 mtime=1569569249.252638992 30 atime=1569569249.237639002 30 ctime=1569569249.252638992 elk-6.3.2/examples/TDDFT-time-evolution/0000755002504400250440000000000013543334741021545 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-time-evolution/PaxHeaders.21352/Si-ramp0000644000000000000000000000013213543334741020731 xustar0030 mtime=1569569249.249638994 30 atime=1569569249.238639001 30 ctime=1569569249.249638994 elk-6.3.2/examples/TDDFT-time-evolution/Si-ramp/0000755002504400250440000000000013543334741023055 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-time-evolution/Si-ramp/PaxHeaders.21352/CURRENT_TD.OUT0000644000000000000000000000012713543334741023114 xustar0030 mtime=1569569249.246638996 27 atime=1569569249.239639 30 ctime=1569569249.246638996 elk-6.3.2/examples/TDDFT-time-evolution/Si-ramp/CURRENT_TD.OUT0000644002504400250440000022166713543334741025175 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.8644623958E-07 0.1019852863E-08 -0.2089850144E-06 0.5000000000 -0.4922748506E-07 0.1015602350E-08 -0.2091685305E-06 1.000000000 -0.4529148319E-06 0.9612447865E-09 -0.2094131967E-06 1.500000000 -0.1116944378E-05 0.8392404419E-09 -0.2097077474E-06 2.000000000 -0.2028799134E-05 0.6553324862E-09 -0.2099872188E-06 2.500000000 -0.3174740071E-05 0.4321333401E-09 -0.2101869665E-06 3.000000000 -0.4542272130E-05 0.2053379989E-09 -0.2102943481E-06 3.500000000 -0.6120336139E-05 0.1872021900E-10 -0.2103550900E-06 4.000000000 -0.7897714864E-05 -0.9017690588E-10 -0.2104326124E-06 4.500000000 -0.9861198698E-05 -0.1114240333E-09 -0.2105566255E-06 5.000000000 -0.1199490837E-04 -0.7528173880E-10 -0.2107012209E-06 5.500000000 -0.1428110766E-04 -0.4062271036E-10 -0.2108045873E-06 6.000000000 -0.1670176215E-04 -0.6227395573E-10 -0.2108103152E-06 6.500000000 -0.1923977112E-04 -0.1604584411E-09 -0.2106995298E-06 7.000000000 -0.2187929258E-04 -0.3166659608E-09 -0.2104963332E-06 7.500000000 -0.2460535190E-04 -0.4989821902E-09 -0.2102496239E-06 8.000000000 -0.2740334353E-04 -0.6948261205E-09 -0.2100058248E-06 8.500000000 -0.3025888494E-04 -0.9234801709E-09 -0.2097864082E-06 9.000000000 -0.3315803445E-04 -0.1219840913E-08 -0.2095785362E-06 9.500000000 -0.3608756978E-04 -0.1606334580E-08 -0.2093421781E-06 10.00000000 -0.3903505363E-04 -0.2078375405E-08 -0.2090316023E-06 10.50000000 -0.4198866413E-04 -0.2613791758E-08 -0.2086213393E-06 11.00000000 -0.4493697609E-04 -0.3194259110E-08 -0.2081209843E-06 11.50000000 -0.4786888739E-04 -0.3818340848E-08 -0.2075674665E-06 12.00000000 -0.5077374112E-04 -0.4497143259E-08 -0.2069987052E-06 12.50000000 -0.5364154780E-04 -0.5241150953E-08 -0.2064279117E-06 13.00000000 -0.5646316156E-04 -0.6052764178E-08 -0.2058386033E-06 13.50000000 -0.5923031005E-04 -0.6929598323E-08 -0.2052035580E-06 14.00000000 -0.6193546639E-04 -0.7870995331E-08 -0.2045102822E-06 14.50000000 -0.6457164100E-04 -0.8878255875E-08 -0.2037701705E-06 15.00000000 -0.6713223084E-04 -0.9948501086E-08 -0.2030041540E-06 15.50000000 -0.6961105581E-04 -0.1107090355E-07 -0.2022199984E-06 16.00000000 -0.7200260891E-04 -0.1223188258E-07 -0.2014042320E-06 16.50000000 -0.7430238665E-04 -0.1342536552E-07 -0.2005372836E-06 17.00000000 -0.7650706612E-04 -0.1465758779E-07 -0.1996175024E-06 17.50000000 -0.7861436371E-04 -0.1594094228E-07 -0.1986703870E-06 18.00000000 -0.8062263558E-04 -0.1728274119E-07 -0.1977326392E-06 18.50000000 -0.8253049422E-04 -0.1867996288E-07 -0.1968240542E-06 19.00000000 -0.8433673002E-04 -0.2012443436E-07 -0.1959318846E-06 19.50000000 -0.8604060240E-04 -0.2161177531E-07 -0.1950217731E-06 20.00000000 -0.8764227527E-04 -0.2314395587E-07 -0.1940667971E-06 20.50000000 -0.8914305802E-04 -0.2472305398E-07 -0.1930717422E-06 21.00000000 -0.9054527361E-04 -0.2634389971E-07 -0.1920746892E-06 21.50000000 -0.9185186777E-04 -0.2799446217E-07 -0.1911260177E-06 22.00000000 -0.9306604637E-04 -0.2966387906E-07 -0.1902602057E-06 22.50000000 -0.9419114998E-04 -0.3134913023E-07 -0.1894780889E-06 23.00000000 -0.9523074409E-04 -0.3305265557E-07 -0.1887486193E-06 23.50000000 -0.9618874426E-04 -0.3477341346E-07 -0.1880282138E-06 24.00000000 -0.9706943388E-04 -0.3650156287E-07 -0.1872881735E-06 24.50000000 -0.9787739481E-04 -0.3822329644E-07 -0.1865367936E-06 25.00000000 -0.9861747174E-04 -0.3993108838E-07 -0.1858228043E-06 25.50000000 -0.9929483196E-04 -0.4162816363E-07 -0.1852136513E-06 26.00000000 -0.9991504282E-04 -0.4332176010E-07 -0.1847569730E-06 26.50000000 -0.1004840327E-03 -0.4501176175E-07 -0.1844488970E-06 27.00000000 -0.1010078978E-03 -0.4668646246E-07 -0.1842343413E-06 27.50000000 -0.1014926726E-03 -0.4832975118E-07 -0.1840448437E-06 28.00000000 -0.1019442428E-03 -0.4993187890E-07 -0.1838496079E-06 28.50000000 -0.1023684738E-03 -0.5149240892E-07 -0.1836802940E-06 29.00000000 -0.1027714647E-03 -0.5301289493E-07 -0.1836069525E-06 29.50000000 -0.1031597419E-03 -0.5448841287E-07 -0.1836818748E-06 30.00000000 -0.1035402615E-03 -0.5590834794E-07 -0.1838974674E-06 30.50000000 -0.1039202193E-03 -0.5726613956E-07 -0.1841954444E-06 31.00000000 -0.1043067688E-03 -0.5856676975E-07 -0.1845215237E-06 31.50000000 -0.1047067696E-03 -0.5982208519E-07 -0.1848784972E-06 32.00000000 -0.1051266535E-03 -0.6103683304E-07 -0.1853288470E-06 32.50000000 -0.1055724454E-03 -0.6219898313E-07 -0.1859405649E-06 33.00000000 -0.1060499237E-03 -0.6328462784E-07 -0.1867210416E-06 33.50000000 -0.1065648334E-03 -0.6427340246E-07 -0.1875982326E-06 34.00000000 -0.1071230271E-03 -0.6515986691E-07 -0.1884707709E-06 34.50000000 -0.1077304348E-03 -0.6595063797E-07 -0.1892896339E-06 35.00000000 -0.1083928856E-03 -0.6665151108E-07 -0.1901038213E-06 35.50000000 -0.1091159164E-03 -0.6725802630E-07 -0.1910283155E-06 36.00000000 -0.1099047029E-03 -0.6775762032E-07 -0.1921545791E-06 36.50000000 -0.1107641150E-03 -0.6813829915E-07 -0.1934717863E-06 37.00000000 -0.1116987598E-03 -0.6839254448E-07 -0.1948618089E-06 37.50000000 -0.1127128965E-03 -0.6851236431E-07 -0.1961760299E-06 38.00000000 -0.1138102846E-03 -0.6848296573E-07 -0.1973394162E-06 38.50000000 -0.1149941762E-03 -0.6828449887E-07 -0.1984044290E-06 39.00000000 -0.1162675799E-03 -0.6790111909E-07 -0.1995116789E-06 39.50000000 -0.1176336378E-03 -0.6732639059E-07 -0.2007815011E-06 40.00000000 -0.1190957355E-03 -0.6655676406E-07 -0.2022130504E-06 40.50000000 -0.1206571024E-03 -0.6557860864E-07 -0.2036668418E-06 41.00000000 -0.1223200969E-03 -0.6436333484E-07 -0.2049503282E-06 41.50000000 -0.1240857417E-03 -0.6287763370E-07 -0.2059505510E-06 42.00000000 -0.1259539719E-03 -0.6109855511E-07 -0.2067167518E-06 42.50000000 -0.1279244942E-03 -0.5901558724E-07 -0.2074238593E-06 43.00000000 -0.1299976047E-03 -0.5661463917E-07 -0.2082325663E-06 43.50000000 -0.1321742910E-03 -0.5385974835E-07 -0.2091451140E-06 44.00000000 -0.1344555296E-03 -0.5069390260E-07 -0.2099714033E-06 44.50000000 -0.1368413724E-03 -0.4706164599E-07 -0.2104451498E-06 45.00000000 -0.1393305852E-03 -0.4293115739E-07 -0.2104127755E-06 45.50000000 -0.1419210813E-03 -0.3829011262E-07 -0.2099494891E-06 46.00000000 -0.1446106822E-03 -0.3311501357E-07 -0.2093007701E-06 46.50000000 -0.1473974944E-03 -0.2734334995E-07 -0.2086801549E-06 47.00000000 -0.1502796330E-03 -0.2087930570E-07 -0.2080743636E-06 47.50000000 -0.1532547007E-03 -0.1363128809E-07 -0.2072125525E-06 48.00000000 -0.1563196589E-03 -0.5544498002E-08 -0.2057337049E-06 48.50000000 -0.1594712893E-03 0.3408011652E-08 -0.2034288351E-06 49.00000000 -0.1627067814E-03 0.1327269287E-07 -0.2003718151E-06 49.50000000 -0.1660237879E-03 0.2415693464E-07 -0.1968391198E-06 50.00000000 -0.1694197828E-03 0.3622101076E-07 -0.1930849961E-06 50.50000000 -0.1728912664E-03 0.4962339371E-07 -0.1891471581E-06 51.00000000 -0.1764335712E-03 0.6447045973E-07 -0.1848217547E-06 51.50000000 -0.1800415071E-03 0.8082208988E-07 -0.1798024401E-06 52.00000000 -0.1837103222E-03 0.9875326105E-07 -0.1738535620E-06 52.50000000 -0.1874361742E-03 0.1184168375E-06 -0.1668838669E-06 53.00000000 -0.1912157787E-03 0.1400490926E-06 -0.1588940467E-06 53.50000000 -0.1950456411E-03 0.1639128478E-06 -0.1498822311E-06 54.00000000 -0.1989215992E-03 0.1902327332E-06 -0.1398066202E-06 54.50000000 -0.2028390184E-03 0.2191845996E-06 -0.1286222100E-06 55.00000000 -0.2067933357E-03 0.2509484000E-06 -0.1163196746E-06 55.50000000 -0.2107803796E-03 0.2857713591E-06 -0.1028893969E-06 56.00000000 -0.2147962335E-03 0.3239756771E-06 -0.8821525558E-07 56.50000000 -0.2188369335E-03 0.3658935390E-06 -0.7198753380E-07 57.00000000 -0.2228984331E-03 0.4117757194E-06 -0.5372716455E-07 57.50000000 -0.2269768980E-03 0.4617418338E-06 -0.3293036031E-07 58.00000000 -0.2310689534E-03 0.5158062503E-06 -0.9250524929E-08 58.50000000 -0.2351715124E-03 0.5739595876E-06 0.1738660992E-07 59.00000000 -0.2392812875E-03 0.6362561737E-06 0.4678050835E-07 59.50000000 -0.2433945034E-03 0.7028642455E-06 0.7853794026E-07 60.00000000 -0.2475072050E-03 0.7740564580E-06 0.1121860039E-06 60.50000000 -0.2516159644E-03 0.8501339365E-06 0.1472869496E-06 61.00000000 -0.2557183281E-03 0.9312936052E-06 0.1835489364E-06 61.50000000 -0.2598125327E-03 0.1017479817E-05 0.2209107992E-06 62.00000000 -0.2638966987E-03 0.1108294714E-05 0.2595471121E-06 62.50000000 -0.2679682370E-03 0.1203036163E-05 0.2997512135E-06 63.00000000 -0.2720240206E-03 0.1300863322E-05 0.3417291904E-06 63.50000000 -0.2760611608E-03 0.1400995549E-05 0.3854212324E-06 64.00000000 -0.2800776662E-03 0.1502814331E-05 0.4304719294E-06 64.50000000 -0.2840724110E-03 0.1605811212E-05 0.4763714730E-06 65.00000000 -0.2880445341E-03 0.1709459121E-05 0.5226592089E-06 65.50000000 -0.2919929303E-03 0.1813157247E-05 0.5690344658E-06 66.00000000 -0.2959163624E-03 0.1916325952E-05 0.6153039834E-06 66.50000000 -0.2998140753E-03 0.2018557942E-05 0.6612379973E-06 67.00000000 -0.3036862892E-03 0.2119625377E-05 0.7064784221E-06 67.50000000 -0.3075340818E-03 0.2219226641E-05 0.7505777092E-06 68.00000000 -0.3113587596E-03 0.2316589778E-05 0.7931098440E-06 68.50000000 -0.3151612747E-03 0.2410233570E-05 0.8337195083E-06 69.00000000 -0.3189421392E-03 0.2498134310E-05 0.8720369755E-06 69.50000000 -0.3227017998E-03 0.2578260622E-05 0.9075270963E-06 70.00000000 -0.3264410716E-03 0.2649137534E-05 0.9394232924E-06 70.50000000 -0.3301613183E-03 0.2710040692E-05 0.9668364904E-06 71.00000000 -0.3338644045E-03 0.2760673432E-05 0.9889751160E-06 71.50000000 -0.3375526370E-03 0.2800556637E-05 0.1005306963E-05 72.00000000 -0.3412287735E-03 0.2828568577E-05 0.1015536381E-05 72.50000000 -0.3448959573E-03 0.2842950496E-05 0.1019424775E-05 73.00000000 -0.3485574479E-03 0.2841748762E-05 0.1016610969E-05 73.50000000 -0.3522162754E-03 0.2823368886E-05 0.1006578473E-05 74.00000000 -0.3558751324E-03 0.2786883244E-05 0.9887841108E-06 74.50000000 -0.3595366730E-03 0.2731954323E-05 0.9628298982E-06 75.00000000 -0.3632040154E-03 0.2658513073E-05 0.9285422789E-06 75.50000000 -0.3668810368E-03 0.2566461978E-05 0.8859234525E-06 76.00000000 -0.3705722282E-03 0.2455595814E-05 0.8350560371E-06 76.50000000 -0.3742822606E-03 0.2325749487E-05 0.7760677812E-06 77.00000000 -0.3780156080E-03 0.2177038455E-05 0.7091844021E-06 77.50000000 -0.3817764156E-03 0.2010029326E-05 0.6348009839E-06 78.00000000 -0.3855685131E-03 0.1825745739E-05 0.5534817194E-06 78.50000000 -0.3893954045E-03 0.1625514927E-05 0.4658699637E-06 79.00000000 -0.3932602501E-03 0.1410746222E-05 0.3725816026E-06 79.50000000 -0.3971660216E-03 0.1182779266E-05 0.2741760790E-06 80.00000000 -0.4011158749E-03 0.9429225464E-06 0.1712322008E-06 80.50000000 -0.4051134758E-03 0.6927028647E-06 0.6446459563E-07 81.00000000 -0.4091628975E-03 0.4341905766E-06 -0.4521531903E-07 81.50000000 -0.4132680186E-03 0.1701510583E-06 -0.1567385104E-06 82.00000000 -0.4174318184E-03 -0.9618431101E-07 -0.2689798428E-06 82.50000000 -0.4216561208E-03 -0.3617065709E-06 -0.3808455989E-06 83.00000000 -0.4259419705E-03 -0.6240698173E-06 -0.4913029560E-06 83.50000000 -0.4302902853E-03 -0.8819519767E-06 -0.5993694886E-06 84.00000000 -0.4347022363E-03 -0.1134683541E-05 -0.7041093815E-06 84.50000000 -0.4391791348E-03 -0.1381400413E-05 -0.8046553650E-06 85.00000000 -0.4437220949E-03 -0.1620236343E-05 -0.9002282470E-06 85.50000000 -0.4483318761E-03 -0.1848098282E-05 -0.9901150399E-06 86.00000000 -0.4530090102E-03 -0.2061207660E-05 -0.1073608213E-05 86.50000000 -0.4577539463E-03 -0.2256082357E-05 -0.1149961155E-05 87.00000000 -0.4625669362E-03 -0.2430349241E-05 -0.1218419971E-05 87.50000000 -0.4674477177E-03 -0.2582928744E-05 -0.1278333358E-05 88.00000000 -0.4723953323E-03 -0.2713599579E-05 -0.1329268193E-05 88.50000000 -0.4774083051E-03 -0.2822366316E-05 -0.1371038988E-05 89.00000000 -0.4824850382E-03 -0.2909099834E-05 -0.1403621219E-05 89.50000000 -0.4876240426E-03 -0.2973596347E-05 -0.1427014261E-05 90.00000000 -0.4928238085E-03 -0.3015810757E-05 -0.1441165243E-05 90.50000000 -0.4980824870E-03 -0.3035910248E-05 -0.1446015038E-05 91.00000000 -0.5033977248E-03 -0.3034043792E-05 -0.1441620325E-05 91.50000000 -0.5087667972E-03 -0.3010076780E-05 -0.1428234965E-05 92.00000000 -0.5141868744E-03 -0.2963644490E-05 -0.1406267220E-05 92.50000000 -0.5196551705E-03 -0.2894615495E-05 -0.1376142890E-05 93.00000000 -0.5251689350E-03 -0.2803660905E-05 -0.1338198351E-05 93.50000000 -0.5307254656E-03 -0.2692470756E-05 -0.1292711540E-05 94.00000000 -0.5363222767E-03 -0.2563405420E-05 -0.1240057710E-05 94.50000000 -0.5419573119E-03 -0.2418809113E-05 -0.1180853904E-05 95.00000000 -0.5476289298E-03 -0.2260458032E-05 -0.1115947077E-05 95.50000000 -0.5533355540E-03 -0.2089463873E-05 -0.1046226202E-05 96.00000000 -0.5590751979E-03 -0.1906566960E-05 -0.9723960501E-06 96.50000000 -0.5648452383E-03 -0.1712493598E-05 -0.8948980903E-06 97.00000000 -0.5706426192E-03 -0.1508128965E-05 -0.8140489319E-06 97.50000000 -0.5764643180E-03 -0.1294538671E-05 -0.7302809505E-06 98.00000000 -0.5823077173E-03 -0.1073040525E-05 -0.6442761568E-06 98.50000000 -0.5881706776E-03 -0.8454090394E-06 -0.5568716414E-06 99.00000000 -0.5940514144E-03 -0.6140317728E-06 -0.4688118239E-06 99.50000000 -0.5999484242E-03 -0.3817344193E-06 -0.3805558058E-06 100.0000000 -0.6058605557E-03 -0.1511998227E-06 -0.2922972505E-06 100.5000000 -0.6117870534E-03 0.7574001476E-07 -0.2041645467E-06 101.0000000 -0.6177273344E-03 0.2984845947E-06 -0.1164125223E-06 101.5000000 -0.6236805110E-03 0.5174428518E-06 -0.2943495527E-07 102.0000000 -0.6296450086E-03 0.7333331428E-06 0.5640082322E-07 102.5000000 -0.6356186884E-03 0.9464371961E-06 0.1409320510E-06 103.0000000 -0.6415995213E-03 0.1156232845E-05 0.2242214011E-06 103.5000000 -0.6475863610E-03 0.1361546874E-05 0.3064033110E-06 104.0000000 -0.6535792039E-03 0.1561039585E-05 0.3874998338E-06 104.5000000 -0.6595787143E-03 0.1753678190E-05 0.4673687875E-06 105.0000000 -0.6655854143E-03 0.1938939207E-05 0.5458126535E-06 105.5000000 -0.6715992115E-03 0.2116700831E-05 0.6227239602E-06 106.0000000 -0.6776195887E-03 0.2286982256E-05 0.6981168675E-06 106.5000000 -0.6836461551E-03 0.2449741113E-05 0.7720121910E-06 107.0000000 -0.6896789626E-03 0.2604838665E-05 0.8442839167E-06 107.5000000 -0.6957183274E-03 0.2752113656E-05 0.9146050766E-06 108.0000000 -0.7017644551E-03 0.2891403843E-05 0.9825300968E-06 108.5000000 -0.7078173686E-03 0.3022405136E-05 0.1047624183E-05 109.0000000 -0.7138772612E-03 0.3144423488E-05 0.1109517072E-05 109.5000000 -0.7199449119E-03 0.3256208399E-05 0.1167838337E-05 110.0000000 -0.7260217375E-03 0.3356026538E-05 0.1222097867E-05 110.5000000 -0.7321094743E-03 0.3441949404E-05 0.1271610265E-05 111.0000000 -0.7382098707E-03 0.3512149230E-05 0.1315509765E-05 111.5000000 -0.7443246921E-03 0.3564989952E-05 0.1352828016E-05 112.0000000 -0.7504559366E-03 0.3598879411E-05 0.1382578529E-05 112.5000000 -0.7566059341E-03 0.3612055093E-05 0.1403813186E-05 113.0000000 -0.7627772166E-03 0.3602522737E-05 0.1415643428E-05 113.5000000 -0.7689723857E-03 0.3568216467E-05 0.1417222789E-05 114.0000000 -0.7751942078E-03 0.3507241131E-05 0.1407687836E-05 114.5000000 -0.7814458180E-03 0.3417978107E-05 0.1386082236E-05 115.0000000 -0.7877306918E-03 0.3298951785E-05 0.1351329937E-05 115.5000000 -0.7940522821E-03 0.3148567351E-05 0.1302322153E-05 116.0000000 -0.8004136838E-03 0.2964970905E-05 0.1238108155E-05 116.5000000 -0.8068177861E-03 0.2746239464E-05 0.1158081743E-05 117.0000000 -0.8132679098E-03 0.2490899579E-05 0.1062031930E-05 117.5000000 -0.8197683612E-03 0.2198529527E-05 0.9500229807E-06 118.0000000 -0.8263243048E-03 0.1870089018E-05 0.8222137330E-06 118.5000000 -0.8329409486E-03 0.1507747358E-05 0.6787853063E-06 119.0000000 -0.8396226624E-03 0.1114299758E-05 0.5200540568E-06 119.5000000 -0.8463726892E-03 0.6925632891E-06 0.3466803615E-06 120.0000000 -0.8531935550E-03 0.2451830507E-06 0.1597985265E-06 120.5000000 -0.8600877021E-03 -0.2250172483E-06 -0.3902827975E-07 121.0000000 -0.8670577980E-03 -0.7144260924E-06 -0.2479560620E-06 121.5000000 -0.8741065835E-03 -0.1218251415E-05 -0.4649447825E-06 122.0000000 -0.8812365369E-03 -0.1730600850E-05 -0.6876870821E-06 122.5000000 -0.8884496612E-03 -0.2244863180E-05 -0.9134595951E-06 123.0000000 -0.8957474051E-03 -0.2753991578E-05 -0.1139076623E-05 123.5000000 -0.9031305001E-03 -0.3250480936E-05 -0.1361051079E-05 124.0000000 -0.9105986036E-03 -0.3726230651E-05 -0.1575878197E-05 124.5000000 -0.9181499609E-03 -0.4172656018E-05 -0.1780229184E-05 125.0000000 -0.9257814585E-03 -0.4581161184E-05 -0.1970902228E-05 125.5000000 -0.9334891871E-03 -0.4943681493E-05 -0.2144584984E-05 126.0000000 -0.9412691607E-03 -0.5252888728E-05 -0.2297655607E-05 126.5000000 -0.9491176135E-03 -0.5501963587E-05 -0.2426231599E-05 127.0000000 -0.9570305944E-03 -0.5684248644E-05 -0.2526477242E-05 127.5000000 -0.9650031760E-03 -0.5793179362E-05 -0.2594973653E-05 128.0000000 -0.9730289282E-03 -0.5822596427E-05 -0.2628920301E-05 128.5000000 -0.9811000626E-03 -0.5767215588E-05 -0.2626096281E-05 129.0000000 -0.9892080839E-03 -0.5622996243E-05 -0.2584712657E-05 129.5000000 -0.9973444343E-03 -0.5387353781E-05 -0.2503353849E-05 130.0000000 -0.1005500768E-02 -0.5059296881E-05 -0.2381094430E-05 130.5000000 -0.1013668884E-02 -0.4639497796E-05 -0.2217711042E-05 131.0000000 -0.1021840562E-02 -0.4130207322E-05 -0.2013842248E-05 131.5000000 -0.1030007490E-02 -0.3535027928E-05 -0.1771020366E-05 132.0000000 -0.1038161321E-02 -0.2858771005E-05 -0.1491613752E-05 132.5000000 -0.1046293841E-02 -0.2107635009E-05 -0.1178763121E-05 133.0000000 -0.1054397234E-02 -0.1289638662E-05 -0.8363515474E-06 133.5000000 -0.1062464383E-02 -0.4149227559E-06 -0.4689837434E-06 134.0000000 -0.1070489105E-02 0.5044202802E-06 -0.8193344053E-07 134.5000000 -0.1078466333E-02 0.1454918925E-05 0.3189504329E-06 135.0000000 -0.1086392329E-02 0.2422272285E-05 0.7273527478E-06 135.5000000 -0.1094264970E-02 0.3391526258E-05 0.1136586804E-05 136.0000000 -0.1102083898E-02 0.4346936917E-05 0.1539671559E-05 136.5000000 -0.1109850382E-02 0.5271894992E-05 0.1929419681E-05 137.0000000 -0.1117566996E-02 0.6149210110E-05 0.2298573091E-05 137.5000000 -0.1125237547E-02 0.6961720608E-05 0.2639993543E-05 138.0000000 -0.1132867445E-02 0.7692948603E-05 0.2946862926E-05 138.5000000 -0.1140464159E-02 0.8327539685E-05 0.3212818416E-05 139.0000000 -0.1148037178E-02 0.8851417956E-05 0.3431986919E-05 139.5000000 -0.1155597344E-02 0.9251772488E-05 0.3598976817E-05 140.0000000 -0.1163156126E-02 0.9517085679E-05 0.3708947824E-05 140.5000000 -0.1170725489E-02 0.9637400806E-05 0.3757831556E-05 141.0000000 -0.1178318351E-02 0.9604883646E-05 0.3742637693E-05 141.5000000 -0.1185948985E-02 0.9414492369E-05 0.3661676754E-05 142.0000000 -0.1193632789E-02 0.9064404936E-05 0.3514571338E-05 142.5000000 -0.1201385525E-02 0.8555973019E-05 0.3302092765E-05 143.0000000 -0.1209222617E-02 0.7893350044E-05 0.3026004680E-05 143.5000000 -0.1217158945E-02 0.7083232827E-05 0.2689081952E-05 144.0000000 -0.1225209032E-02 0.6135014638E-05 0.2295302849E-05 144.5000000 -0.1233387137E-02 0.5061154008E-05 0.1850032065E-05 145.0000000 -0.1241706940E-02 0.3877232037E-05 0.1359989836E-05 145.5000000 -0.1250180878E-02 0.2601409989E-05 0.8329719028E-06 146.0000000 -0.1258819486E-02 0.1253601623E-05 0.2774976995E-06 146.5000000 -0.1267631037E-02 -0.1450185804E-06 -0.2973879039E-06 147.0000000 -0.1276621478E-02 -0.1571916357E-05 -0.8821099952E-06 147.5000000 -0.1285794428E-02 -0.3002917863E-05 -0.1466532118E-05 148.0000000 -0.1295151025E-02 -0.4412397291E-05 -0.2040104536E-05 148.5000000 -0.1304689696E-02 -0.5774142767E-05 -0.2592196986E-05 149.0000000 -0.1314406055E-02 -0.7062492196E-05 -0.3112421070E-05 149.5000000 -0.1324293001E-02 -0.8253157749E-05 -0.3590793295E-05 150.0000000 -0.1334340901E-02 -0.9323501298E-05 -0.4017822012E-05 150.5000000 -0.1344537684E-02 -0.1025244999E-04 -0.4384709519E-05 151.0000000 -0.1354868901E-02 -0.1102041272E-04 -0.4683678517E-05 151.5000000 -0.1365317901E-02 -0.1160950555E-04 -0.4908188961E-05 152.0000000 -0.1375866190E-02 -0.1200422781E-04 -0.5052863646E-05 152.5000000 -0.1386493936E-02 -0.1219243113E-04 -0.5113283695E-05 153.0000000 -0.1397180495E-02 -0.1216609178E-04 -0.5086024991E-05 153.5000000 -0.1407904818E-02 -0.1192141841E-04 -0.4969064065E-05 154.0000000 -0.1418645667E-02 -0.1145838951E-04 -0.4762231071E-05 154.5000000 -0.1429381690E-02 -0.1078039999E-04 -0.4467285784E-05 155.0000000 -0.1440091659E-02 -0.9894536075E-05 -0.4087603155E-05 155.5000000 -0.1450755061E-02 -0.8812155363E-05 -0.3627890758E-05 156.0000000 -0.1461352883E-02 -0.7548957123E-05 -0.3094271477E-05 156.5000000 -0.1471868220E-02 -0.6124295716E-05 -0.2494551386E-05 157.0000000 -0.1482286618E-02 -0.4560427466E-05 -0.1838204575E-05 157.5000000 -0.1492596361E-02 -0.2882411028E-05 -0.1135917880E-05 158.0000000 -0.1502788814E-02 -0.1118402361E-05 -0.3990619220E-06 158.5000000 -0.1512858515E-02 0.7005838252E-06 0.3604638202E-06 159.0000000 -0.1522802844E-02 0.2541778053E-05 0.1130013738E-05 159.5000000 -0.1532621678E-02 0.4371872400E-05 0.1896025372E-05 160.0000000 -0.1542317574E-02 0.6157493308E-05 0.2644221674E-05 160.5000000 -0.1551896376E-02 0.7865071901E-05 0.3360091711E-05 161.0000000 -0.1561367508E-02 0.9460967546E-05 0.4029337597E-05 161.5000000 -0.1570743634E-02 0.1091222510E-04 0.4638150709E-05 162.0000000 -0.1580040119E-02 0.1218749377E-04 0.5173438109E-05 162.5000000 -0.1589274872E-02 0.1325766340E-04 0.5623133557E-05 163.0000000 -0.1598468396E-02 0.1409650030E-04 0.5976549874E-05 163.5000000 -0.1607643570E-02 0.1468169681E-04 0.6224633976E-05 164.0000000 -0.1616825029E-02 0.1499594926E-04 0.6360082898E-05 164.5000000 -0.1626038568E-02 0.1502721301E-04 0.6377428009E-05 165.0000000 -0.1635310809E-02 0.1476812073E-04 0.6273217912E-05 165.5000000 -0.1644669009E-02 0.1421569656E-04 0.6046300457E-05 166.0000000 -0.1654140784E-02 0.1337223500E-04 0.5698048142E-05 166.5000000 -0.1663753732E-02 0.1224666624E-04 0.5232362841E-05 167.0000000 -0.1673535056E-02 0.1085495309E-04 0.4655490052E-05 167.5000000 -0.1683511178E-02 0.9219210815E-05 0.3975888857E-05 168.0000000 -0.1693707235E-02 0.7366800529E-05 0.3204360541E-05 168.5000000 -0.1704146307E-02 0.5330455759E-05 0.2354312471E-05 169.0000000 -0.1714848431E-02 0.3148817375E-05 0.1441781473E-05 169.5000000 -0.1725829728E-02 0.8659315421E-06 0.4849994940E-06 170.0000000 -0.1737102130E-02 -0.1470552911E-05 -0.4962965353E-06 170.5000000 -0.1748673597E-02 -0.3811208683E-05 -0.1481417948E-05 171.0000000 -0.1760548094E-02 -0.6105535919E-05 -0.2448990354E-05 171.5000000 -0.1772724790E-02 -0.8301905109E-05 -0.3377134365E-05 172.0000000 -0.1785196957E-02 -0.1034795365E-04 -0.4243828598E-05 172.5000000 -0.1797951505E-02 -0.1219202220E-04 -0.5027510684E-05 173.0000000 -0.1810969330E-02 -0.1378516551E-04 -0.5707778227E-05 173.5000000 -0.1824225847E-02 -0.1508298687E-04 -0.6266038015E-05 174.0000000 -0.1837691387E-02 -0.1604696047E-04 -0.6686042412E-05 174.5000000 -0.1851331842E-02 -0.1664535269E-04 -0.6954337656E-05 175.0000000 -0.1865109756E-02 -0.1685403879E-04 -0.7060693928E-05 175.5000000 -0.1878985392E-02 -0.1665743580E-04 -0.6998570059E-05 176.0000000 -0.1892917319E-02 -0.1604945192E-04 -0.6765580458E-05 176.5000000 -0.1906862860E-02 -0.1503407586E-04 -0.6363843779E-05 177.0000000 -0.1920779001E-02 -0.1362544931E-04 -0.5800086950E-05 177.5000000 -0.1934623805E-02 -0.1184781673E-04 -0.5085463926E-05 178.0000000 -0.1948357895E-02 -0.9735807680E-05 -0.4235171402E-05 178.5000000 -0.1961945836E-02 -0.7334794711E-05 -0.3268031254E-05 179.0000000 -0.1975357389E-02 -0.4700460034E-05 -0.2206173201E-05 179.5000000 -0.1988568392E-02 -0.1897098858E-05 -0.1074771007E-05 180.0000000 -0.2001560917E-02 0.1004798088E-05 0.9836880940E-07 180.5000000 -0.2014323007E-02 0.3930696086E-05 0.1283487717E-05 181.0000000 -0.2026848869E-02 0.6803511167E-05 0.2449725903E-05 181.5000000 -0.2039139894E-02 0.9544936782E-05 0.3565992233E-05 182.0000000 -0.2051205805E-02 0.1207727167E-04 0.4601844747E-05 182.5000000 -0.2063064988E-02 0.1432583110E-04 0.5528377466E-05 183.0000000 -0.2074743952E-02 0.1622150759E-04 0.6318925424E-05 183.5000000 -0.2086276601E-02 0.1770322545E-04 0.6949468979E-05 184.0000000 -0.2097703705E-02 0.1872042761E-04 0.7399062532E-05 184.5000000 -0.2109072438E-02 0.1923547776E-04 0.7650751769E-05 185.0000000 -0.2120435779E-02 0.1922524389E-04 0.7692801887E-05 185.5000000 -0.2131851616E-02 0.1868140921E-04 0.7519409966E-05 186.0000000 -0.2143381280E-02 0.1761028681E-04 0.7130504652E-05 186.5000000 -0.2155087597E-02 0.1603329689E-04 0.6531346160E-05 187.0000000 -0.2167033230E-02 0.1398782135E-04 0.5732847056E-05 187.5000000 -0.2179279585E-02 0.1152676231E-04 0.4752403394E-05 188.0000000 -0.2191885231E-02 0.8716048875E-05 0.3614101515E-05 188.5000000 -0.2204902912E-02 0.5631533077E-05 0.2347792005E-05 189.0000000 -0.2218376116E-02 0.2357080733E-05 0.9878184509E-06 189.5000000 -0.2232336902E-02 -0.1016402553E-05 -0.4276868371E-06 190.0000000 -0.2246805071E-02 -0.4392882770E-05 -0.1857171636E-05 190.5000000 -0.2261787527E-02 -0.7674873386E-05 -0.3256620932E-05 191.0000000 -0.2277277677E-02 -0.1076750765E-04 -0.4581345999E-05 191.5000000 -0.2293255500E-02 -0.1358124373E-04 -0.5787942185E-05 192.0000000 -0.2309687953E-02 -0.1603325353E-04 -0.6835901793E-05 192.5000000 -0.2326529015E-02 -0.1804910762E-04 -0.7689045709E-05 193.0000000 -0.2343719906E-02 -0.1956565058E-04 -0.8316917417E-05 193.5000000 -0.2361190700E-02 -0.2053395355E-04 -0.8695808872E-05 194.0000000 -0.2378863217E-02 -0.2092065645E-04 -0.8809319123E-05 194.5000000 -0.2396654267E-02 -0.2070774234E-04 -0.8649055324E-05 195.0000000 -0.2414478862E-02 -0.1989251861E-04 -0.8215838078E-05 195.5000000 -0.2432253109E-02 -0.1848885385E-04 -0.7520595075E-05 196.0000000 -0.2449896112E-02 -0.1652846460E-04 -0.6583891309E-05 196.5000000 -0.2467331339E-02 -0.1406048871E-04 -0.5434393401E-05 197.0000000 -0.2484489171E-02 -0.1114960610E-04 -0.4107536238E-05 197.5000000 -0.2501310870E-02 -0.7874589626E-05 -0.2644765970E-05 198.0000000 -0.2517751824E-02 -0.4327838574E-05 -0.1092475489E-05 198.5000000 -0.2533782722E-02 -0.6141235594E-06 0.4998767117E-06 199.0000000 -0.2549389886E-02 0.3152820128E-05 0.2081783986E-05 199.5000000 -0.2564575970E-02 0.6854572513E-05 0.3603215810E-05 200.0000000 -0.2579360288E-02 0.1037130146E-04 0.5016015139E-05 200.5000000 -0.2593778156E-02 0.1358458654E-04 0.6275588322E-05 201.0000000 -0.2607880286E-02 0.1638158997E-04 0.7342463705E-05 201.5000000 -0.2621732587E-02 0.1866023082E-04 0.8183304745E-05 202.0000000 -0.2635414721E-02 0.2033343119E-04 0.8771830092E-05 202.5000000 -0.2649016739E-02 0.2133232299E-04 0.9090006504E-05 203.0000000 -0.2662635620E-02 0.2160985370E-04 0.9128807616E-05 203.5000000 -0.2676372741E-02 0.2114436698E-04 0.8887893603E-05 204.0000000 -0.2690330526E-02 0.1994118847E-04 0.8375020512E-05 204.5000000 -0.2704607590E-02 0.1803238070E-04 0.7606254218E-05 205.0000000 -0.2719295123E-02 0.1547667338E-04 0.6606305490E-05 205.5000000 -0.2734476076E-02 0.1235937981E-04 0.5407474646E-05 206.0000000 -0.2750224240E-02 0.8789951257E-05 0.4047569956E-05 206.5000000 -0.2766600822E-02 0.4896943923E-05 0.2568750646E-05 207.0000000 -0.2783650829E-02 0.8228435245E-06 0.1017646535E-05 207.5000000 -0.2801401929E-02 -0.3280228073E-05 -0.5551654683E-06 208.0000000 -0.2819864476E-02 -0.7255614034E-05 -0.2097322992E-05 208.5000000 -0.2839030823E-02 -0.1094912401E-04 -0.3556905986E-05 209.0000000 -0.2858874907E-02 -0.1421654745E-04 -0.4883309167E-05 209.5000000 -0.2879353029E-02 -0.1692989794E-04 -0.6027808429E-05 210.0000000 -0.2900404639E-02 -0.1898234341E-04 -0.6945412868E-05 210.5000000 -0.2921952494E-02 -0.2029278172E-04 -0.7597529716E-05 211.0000000 -0.2943903276E-02 -0.2081002883E-04 -0.7953862434E-05 211.5000000 -0.2966149350E-02 -0.2051527172E-04 -0.7993271209E-05 212.0000000 -0.2988571585E-02 -0.1942202250E-04 -0.7704668446E-05 212.5000000 -0.3011043253E-02 -0.1757464017E-04 -0.7088651750E-05 213.0000000 -0.3033434749E-02 -0.1504665014E-04 -0.6159371134E-05 213.5000000 -0.3055618600E-02 -0.1193840561E-04 -0.4945483180E-05 214.0000000 -0.3077475067E-02 -0.8373176309E-05 -0.3489566777E-05 214.5000000 -0.3098898643E-02 -0.4492025635E-05 -0.1846601458E-05 215.0000000 -0.3119804504E-02 -0.4481399198E-06 -0.8242240956E-07 215.5000000 -0.3140133965E-02 0.3599460219E-05 0.1728128202E-05 216.0000000 -0.3159858964E-02 0.7492458241E-05 0.3504314528E-05 216.5000000 -0.3178985355E-02 0.1107896115E-04 0.5163804675E-05 217.0000000 -0.3197553815E-02 0.1421828902E-04 0.6627323415E-05 217.5000000 -0.3215638160E-02 0.1678555700E-04 0.7823378187E-05 218.0000000 -0.3233342342E-02 0.1867579490E-04 0.8692651314E-05 218.5000000 -0.3250796733E-02 0.1980681648E-04 0.9190988664E-05 219.0000000 -0.3268152539E-02 0.2012136926E-04 0.9291126290E-05 219.5000000 -0.3285574028E-02 0.1958988297E-04 0.8984649015E-05 220.0000000 -0.3303230547E-02 0.1821387451E-04 0.8283742880E-05 220.5000000 -0.3321289621E-02 0.1602843932E-04 0.7220262383E-05 221.0000000 -0.3339910093E-02 0.1310224472E-04 0.5842165540E-05 221.5000000 -0.3359235225E-02 0.9535284097E-05 0.4210398450E-05 222.0000000 -0.3379387782E-02 0.5456354972E-05 0.2397040521E-05 222.5000000 -0.3400467049E-02 0.1021097912E-05 0.4821585538E-06 223.0000000 -0.3422545710E-02 -0.3591319626E-05 -0.1451304841E-05 223.5000000 -0.3445666915E-02 -0.8184752246E-05 -0.3321899761E-05 224.0000000 -0.3469843037E-02 -0.1255500113E-04 -0.5051943222E-05 224.5000000 -0.3495055121E-02 -0.1649945873E-04 -0.6569575450E-05 225.0000000 -0.3521252185E-02 -0.1982729574E-04 -0.7811862838E-05 225.5000000 -0.3548351821E-02 -0.2237009793E-04 -0.8727541002E-05 226.0000000 -0.3576242541E-02 -0.2399185879E-04 -0.9278126857E-05 226.5000000 -0.3604786890E-02 -0.2459762754E-04 -0.9438290566E-05 227.0000000 -0.3633826017E-02 -0.2414055112E-04 -0.9196597317E-05 227.5000000 -0.3663186928E-02 -0.2262617710E-04 -0.8556138638E-05 228.0000000 -0.3692691135E-02 -0.2011303142E-04 -0.7534434825E-05 228.5000000 -0.3722162936E-02 -0.1671009969E-04 -0.6163324093E-05 229.0000000 -0.3751437688E-02 -0.1257182342E-04 -0.4489380456E-05 229.5000000 -0.3780370581E-02 -0.7889700200E-05 -0.2573827120E-05 230.0000000 -0.3808844277E-02 -0.2880398868E-05 -0.4909901486E-06 230.5000000 -0.3836774408E-02 0.2226767514E-05 0.1674129619E-05 231.0000000 -0.3864114571E-02 0.7200261613E-05 0.3828625079E-05 231.5000000 -0.3890860614E-02 0.1181573700E-04 0.5875422282E-05 232.0000000 -0.3917050937E-02 0.1586666715E-04 0.7718103031E-05 232.5000000 -0.3942763632E-02 0.1917442435E-04 0.9265697360E-05 233.0000000 -0.3968114250E-02 0.2159436016E-04 0.1043710062E-04 233.5000000 -0.3993252144E-02 0.2301863728E-04 0.1116594094E-04 234.0000000 -0.4018352598E-02 0.2337900039E-04 0.1140574475E-04 234.5000000 -0.4043609075E-02 0.2264947688E-04 0.1113413660E-04 235.0000000 -0.4069227507E-02 0.2084689425E-04 0.1035557043E-04 235.5000000 -0.4095418134E-02 0.1802931398E-04 0.9102505328E-05 236.0000000 -0.4122385216E-02 0.1429460017E-04 0.7434265035E-05 236.5000000 -0.4150318209E-02 0.9780580348E-05 0.5433536852E-05 237.0000000 -0.4179382764E-02 0.4665023485E-05 0.3201777859E-05 237.5000000 -0.4209711569E-02 -0.8384563748E-06 0.8540073832E-06 238.0000000 -0.4241398628E-02 -0.6488647338E-05 -0.1487693116E-05 238.5000000 -0.4274495140E-02 -0.1202493202E-04 -0.3701912684E-05 239.0000000 -0.4309004494E-02 -0.1717545831E-04 -0.5675808028E-05 239.5000000 -0.4344879736E-02 -0.2167004075E-04 -0.7311863604E-05 240.0000000 -0.4382025587E-02 -0.2525737564E-04 -0.8532527534E-05 240.5000000 -0.4420304013E-02 -0.2772117296E-04 -0.9283235040E-05 241.0000000 -0.4459543126E-02 -0.2889398105E-04 -0.9534754928E-05 241.5000000 -0.4499547262E-02 -0.2867100013E-04 -0.9283423904E-05 242.0000000 -0.4540106294E-02 -0.2702287827E-04 -0.8548143070E-05 242.5000000 -0.4581006201E-02 -0.2400334615E-04 -0.7367056234E-05 243.0000000 -0.4622040501E-02 -0.1974917871E-04 -0.5795721366E-05 243.5000000 -0.4663019065E-02 -0.1447391027E-04 -0.3903911212E-05 244.0000000 -0.4703774922E-02 -0.8457830258E-05 -0.1770932142E-05 244.5000000 -0.4744171453E-02 -0.2033546954E-05 0.5163430817E-06 245.0000000 -0.4784108893E-02 0.4434659287E-05 0.2863133795E-05 245.5000000 -0.4823528567E-02 0.1057548014E-04 0.5167883898E-05 246.0000000 -0.4862416809E-02 0.1603505617E-04 0.7324165047E-05 246.5000000 -0.4900810690E-02 0.2049966782E-04 0.9222208460E-05 247.0000000 -0.4938802692E-02 0.2371630589E-04 0.1075262123E-04 247.5000000 -0.4976540901E-02 0.2550871844E-04 0.1181255724E-04 248.0000000 -0.5014227356E-02 0.2578540809E-04 0.1231262162E-04 248.5000000 -0.5052115497E-02 0.2454008264E-04 0.1218597919E-04 249.0000000 -0.5090501201E-02 0.2184913587E-04 0.1139955400E-04 249.5000000 -0.5129705009E-02 0.1786581801E-04 0.9962501891E-05 250.0000000 -0.5170048939E-02 0.1280592686E-04 0.7929985718E-05 250.5000000 -0.5211832341E-02 0.6928657508E-05 0.5404561032E-05 251.0000000 -0.5255309830E-02 0.5224454163E-06 0.2534165864E-05 251.5000000 -0.5300670536E-02 -0.6105711344E-05 -0.4971138418E-06 252.0000000 -0.5348021634E-02 -0.1264414454E-04 -0.3484759514E-05 252.5000000 -0.5397382936E-02 -0.1878908605E-04 -0.6221844223E-05 253.0000000 -0.5448688501E-02 -0.2425158085E-04 -0.8517724751E-05 253.5000000 -0.5501791659E-02 -0.2876466052E-04 -0.1021612965E-04 254.0000000 -0.5556481090E-02 -0.3209186605E-04 -0.1120857022E-04 254.5000000 -0.5612503252E-02 -0.3403422673E-04 -0.1144095679E-04 255.0000000 -0.5669579584E-02 -0.3444218187E-04 -0.1091479605E-04 255.5000000 -0.5727422322E-02 -0.3323442971E-04 -0.9683029318E-05 256.0000000 -0.5785750652E-02 -0.3041343973E-04 -0.7840376627E-05 256.5000000 -0.5844302869E-02 -0.2607544681E-04 -0.5511209593E-05 257.0000000 -0.5902846367E-02 -0.2041951965E-04 -0.2837774214E-05 257.5000000 -0.5961184688E-02 -0.1374955899E-04 0.3033359570E-07 258.0000000 -0.6019164624E-02 -0.6462435146E-05 0.2944146227E-05 258.5000000 -0.6076687864E-02 0.9747105002E-06 0.5760595980E-05 259.0000000 -0.6133717566E-02 0.8056629913E-05 0.8346614887E-05 259.5000000 -0.6190279361E-02 0.1428243757E-04 0.1058214526E-04 260.0000000 -0.6246464807E-02 0.1920166135E-04 0.1236192849E-04 260.5000000 -0.6302429004E-02 0.2245526183E-04 0.1359804131E-04 261.0000000 -0.6358381076E-02 0.2380847068E-04 0.1422482669E-04 261.5000000 -0.6414574287E-02 0.2317256556E-04 0.1420449412E-04 262.0000000 -0.6471290455E-02 0.2061095986E-04 0.1352927004E-04 262.5000000 -0.6528822354E-02 0.1632863948E-04 0.1222080748E-04 263.0000000 -0.6587461476E-02 0.1064886993E-04 0.1033183232E-04 263.5000000 -0.6647486731E-02 0.3981279839E-05 0.7947405678E-05 264.0000000 -0.6709155025E-02 -0.3216512252E-05 0.5182326262E-05 264.5000000 -0.6772691926E-02 -0.1047716602E-04 0.2180461329E-05 265.0000000 -0.6838275720E-02 -0.1735304097E-04 -0.8854235783E-06 265.5000000 -0.6906019834E-02 -0.2343903390E-04 -0.3821192173E-05 266.0000000 -0.6975957110E-02 -0.2839250095E-04 -0.6422210230E-05 266.5000000 -0.7048023445E-02 -0.3194379493E-04 -0.8484548328E-05 267.0000000 -0.7122045752E-02 -0.3389925008E-04 -0.9822269747E-05 267.5000000 -0.7197744066E-02 -0.3414565993E-04 -0.1028987538E-04 268.0000000 -0.7274749914E-02 -0.3265441766E-04 -0.9804256641E-05 268.5000000 -0.7352635813E-02 -0.2948431040E-04 -0.8362029472E-05 269.0000000 -0.7430958016E-02 -0.2478505323E-04 -0.6047629033E-05 269.5000000 -0.7509305733E-02 -0.1879609634E-04 -0.3029092198E-05 270.0000000 -0.7587338869E-02 -0.1184062347E-04 0.4591924258E-06 270.5000000 -0.7664817164E-02 -0.4317522147E-05 0.4142580771E-05 271.0000000 -0.7741619060E-02 0.3316571249E-05 0.7735345719E-05 271.5000000 -0.7817738246E-02 0.1057671737E-04 0.1097110674E-04 272.0000000 -0.7893270065E-02 0.1698066352E-04 0.1362889123E-04 272.5000000 -0.7968394988E-02 0.2207951919E-04 0.1554841634E-04 273.0000000 -0.8043354791E-02 0.2549115295E-04 0.1663470162E-04 273.5000000 -0.8118428695E-02 0.2693187216E-04 0.1685349167E-04 274.0000000 -0.8193917323E-02 0.2624286985E-04 0.1622133224E-04 274.5000000 -0.8270133828E-02 0.2341300251E-04 0.1479347193E-04 275.0000000 -0.8347390708E-02 0.1859345196E-04 0.1265328263E-04 275.5000000 -0.8425983573E-02 0.1209875603E-04 0.9909806390E-05 276.0000000 -0.8506178207E-02 0.4396235866E-05 0.6699482737E-05 276.5000000 -0.8588192147E-02 -0.3921374028E-05 0.3188817267E-05 277.0000000 -0.8672176345E-02 -0.1218720589E-04 -0.4211824693E-06 277.5000000 -0.8758201610E-02 -0.1972644780E-04 -0.3898802312E-05 278.0000000 -0.8846250470E-02 -0.2592480200E-04 -0.6995816147E-05 278.5000000 -0.8936221993E-02 -0.3029003211E-04 -0.9468770200E-05 279.0000000 -0.9027945741E-02 -0.3249870224E-04 -0.1110672110E-04 279.5000000 -0.9121205605E-02 -0.3241883355E-04 -0.1175811830E-04 280.0000000 -0.9215763020E-02 -0.3010176225E-04 -0.1135310896E-04 280.5000000 -0.9311371533E-02 -0.2575645888E-04 -0.9913086485E-05 281.0000000 -0.9407790036E-02 -0.1971860828E-04 -0.7546274799E-05 281.5000000 -0.9504786029E-02 -0.1241576981E-04 -0.4439241601E-05 282.0000000 -0.9602137413E-02 -0.4337018072E-05 -0.8375503115E-06 282.5000000 -0.9699641245E-02 0.3992434280E-05 0.2977455321E-05 283.0000000 -0.9797126386E-02 0.1203324115E-04 0.6702916802E-05 283.5000000 -0.9894475993E-02 0.1924842973E-04 0.1003386308E-04 284.0000000 -0.9991650545E-02 0.2512463368E-04 0.1268950882E-04 284.5000000 -0.1008870097E-01 0.2920595167E-04 0.1443735722E-04 285.0000000 -0.1018576469E-01 0.3113440000E-04 0.1512060349E-04 285.5000000 -0.1028304557E-01 0.3068829721E-04 0.1468664634E-04 286.0000000 -0.1038078013E-01 0.2781501202E-04 0.1319872749E-04 286.5000000 -0.1047919544E-01 0.2265359874E-04 0.1082648526E-04 287.0000000 -0.1057847765E-01 0.1554114114E-04 0.7822837920E-05 287.5000000 -0.1067875758E-01 0.6993567041E-05 0.4485875738E-05 288.0000000 -0.1078011756E-01 -0.2340848331E-05 0.1115721945E-05 288.5000000 -0.1088261117E-01 -0.1174280510E-04 -0.2020763986E-05 289.0000000 -0.1098628805E-01 -0.2049332984E-04 -0.4714103681E-05 289.5000000 -0.1109121652E-01 -0.2794114849E-04 -0.6819215119E-05 290.0000000 -0.1119748088E-01 -0.3355733810E-04 -0.8249023907E-05 290.5000000 -0.1130516259E-01 -0.3697870388E-04 -0.8961594134E-05 291.0000000 -0.1141431236E-01 -0.3802642509E-04 -0.8945922686E-05 291.5000000 -0.1152491563E-01 -0.3671337584E-04 -0.8216117817E-05 292.0000000 -0.1163686479E-01 -0.3324062481E-04 -0.6812622494E-05 292.5000000 -0.1174995172E-01 -0.2797648170E-04 -0.4806439548E-05 293.0000000 -0.1186389421E-01 -0.2142949308E-04 -0.2310475106E-05 293.5000000 -0.1197837266E-01 -0.1419664966E-04 0.5131113693E-06 294.0000000 -0.1209306330E-01 -0.6894969919E-05 0.3459911433E-05 294.5000000 -0.1220767315E-01 -0.9222790759E-07 0.6298614568E-05 295.0000000 -0.1232196019E-01 0.5755321489E-05 0.8792934527E-05 295.5000000 -0.1243574416E-01 0.1033573193E-04 0.1072725092E-04 296.0000000 -0.1254892218E-01 0.1348614723E-04 0.1193189302E-04 296.5000000 -0.1266149578E-01 0.1518025382E-04 0.1230150233E-04 297.0000000 -0.1277360653E-01 0.1550995373E-04 0.1180609218E-04 297.5000000 -0.1288555936E-01 0.1466418470E-04 0.1049860419E-04 298.0000000 -0.1299781621E-01 0.1290835575E-04 0.8513220730E-05 298.5000000 -0.1311094056E-01 0.1056026653E-04 0.6052936633E-05 299.0000000 -0.1322550737E-01 0.7953701861E-05 0.3370528588E-05 299.5000000 -0.1334199676E-01 0.5399739082E-05 0.7413584913E-06 300.0000000 -0.1346070471E-01 0.3148368744E-05 -0.1579562058E-05 300.5000000 -0.1358171210E-01 0.1367231867E-05 -0.3405324212E-05 301.0000000 -0.1370489864E-01 0.1534842052E-06 -0.4649848770E-05 301.5000000 -0.1382999581E-01 -0.4463221073E-06 -0.5334838184E-05 302.0000000 -0.1395665842E-01 -0.4234767081E-06 -0.5572470095E-05 302.5000000 -0.1408452359E-01 0.1951232832E-06 -0.5517107361E-05 303.0000000 -0.1421324754E-01 0.1331107940E-05 -0.5304969566E-05 303.5000000 -0.1434252421E-01 0.2839404099E-05 -0.5016670682E-05 304.0000000 -0.1447210173E-01 0.4522638974E-05 -0.4657119139E-05 304.5000000 -0.1460180124E-01 0.6169325462E-05 -0.4169533380E-05 305.0000000 -0.1473153886E-01 0.7592367480E-05 -0.3472897584E-05 305.5000000 -0.1486133069E-01 0.8666997317E-05 -0.2499489243E-05 306.0000000 -0.1499127944E-01 0.9337460401E-05 -0.1236047585E-05 306.5000000 -0.1512153603E-01 0.9594923762E-05 0.2540028812E-06 307.0000000 -0.1525223725E-01 0.9463149612E-05 0.1829468435E-05 307.5000000 -0.1538346613E-01 0.9002499669E-05 0.3281142040E-05 308.0000000 -0.1551522550E-01 0.8329009722E-05 0.4371677004E-05 308.5000000 -0.1564744231E-01 0.7613581182E-05 0.4892260119E-05 309.0000000 -0.1578000328E-01 0.7058504892E-05 0.4721922874E-05 309.5000000 -0.1591280840E-01 0.6840652704E-05 0.3879337638E-05 310.0000000 -0.1604582674E-01 0.7046538248E-05 0.2531502010E-05 310.5000000 -0.1617912620E-01 0.7629052695E-05 0.9591218661E-06 311.0000000 -0.1631289986E-01 0.8403332466E-05 -0.5211696346E-06 311.5000000 -0.1644745845E-01 0.9107229999E-05 -0.1639699364E-05 312.0000000 -0.1658318433E-01 0.9494176335E-05 -0.2228860307E-05 312.5000000 -0.1672046330E-01 0.9449444310E-05 -0.2244244829E-05 313.0000000 -0.1685959412E-01 0.9073404971E-05 -0.1756257645E-05 313.5000000 -0.1700070127E-01 0.8694048209E-05 -0.9261244077E-06 314.0000000 -0.1714368503E-01 0.8789030449E-05 0.2633592907E-07 314.5000000 -0.1728820721E-01 0.9819791501E-05 0.8490224803E-06 315.0000000 -0.1743373423E-01 0.1206959548E-04 0.1298921558E-05 315.5000000 -0.1757962423E-01 0.1552648948E-04 0.1201980162E-05 316.0000000 -0.1772523926E-01 0.1986627616E-04 0.5050029496E-06 316.5000000 -0.1787006140E-01 0.2454773538E-04 -0.6929522284E-06 317.0000000 -0.1801378441E-01 0.2896092751E-04 -0.2142919981E-05 317.5000000 -0.1815637237E-01 0.3258362691E-04 -0.3488407944E-05 318.0000000 -0.1829807154E-01 0.3509816264E-04 -0.4335509241E-05 318.5000000 -0.1843935654E-01 0.3643481007E-04 -0.4328586448E-05 319.0000000 -0.1858083235E-01 0.3674438065E-04 -0.3241456493E-05 319.5000000 -0.1872310082E-01 0.3629128940E-04 -0.1061579048E-05 320.0000000 -0.1886662877E-01 0.3531737027E-04 0.1953833685E-05 320.5000000 -0.1901165190E-01 0.3391922477E-04 0.5280898339E-05 321.0000000 -0.1915815931E-01 0.3202285124E-04 0.8243471054E-05 321.5000000 -0.1930594476E-01 0.2947115540E-04 0.1019751342E-04 322.0000000 -0.1945470665E-01 0.2616704926E-04 0.1073842583E-04 322.5000000 -0.1960415692E-01 0.2218059981E-04 0.9850886787E-05 323.0000000 -0.1975407678E-01 0.1772643884E-04 0.7941730121E-05 323.5000000 -0.1990431771E-01 0.1302375942E-04 0.5741138249E-05 324.0000000 -0.2005476308E-01 0.8134486552E-05 0.4098702792E-05 324.5000000 -0.2020529013E-01 0.2890922056E-05 0.3734622237E-05 325.0000000 -0.2035578543E-01 -0.3043190310E-05 0.5031482221E-05 325.5000000 -0.2050619644E-01 -0.1002175111E-04 0.7939520200E-05 326.0000000 -0.2065659284E-01 -0.1827850607E-04 0.1199720047E-04 326.5000000 -0.2080718150E-01 -0.2782337313E-04 0.1647157031E-04 327.0000000 -0.2095826710E-01 -0.3841312256E-04 0.2056504095E-04 327.5000000 -0.2111015622E-01 -0.4954783171E-04 0.2360494265E-04 328.0000000 -0.2126304700E-01 -0.6053232389E-04 0.2516886321E-04 328.5000000 -0.2141695628E-01 -0.7060187769E-04 0.2512195740E-04 329.0000000 -0.2157171138E-01 -0.7910567304E-04 0.2360997062E-04 329.5000000 -0.2172701359E-01 -0.8568366901E-04 0.2101690559E-04 330.0000000 -0.2188256273E-01 -0.9033550296E-04 0.1790330170E-04 330.5000000 -0.2203818265E-01 -0.9336060971E-04 0.1491481526E-04 331.0000000 -0.2219392123E-01 -0.9520905447E-04 0.1265297623E-04 331.5000000 -0.2235003715E-01 -0.9634020602E-04 0.1152203457E-04 332.0000000 -0.2250689521E-01 -0.9715688413E-04 0.1162373247E-04 332.5000000 -0.2266481310E-01 -0.9801345971E-04 0.1274298752E-04 333.0000000 -0.2282393968E-01 -0.9923367756E-04 0.1441724870E-04 333.5000000 -0.2298423442E-01 -0.1010540094E-03 0.1607464555E-04 334.0000000 -0.2314552877E-01 -0.1034674381E-03 0.1717847717E-04 334.5000000 -0.2330759539E-01 -0.1060454419E-03 0.1737630040E-04 335.0000000 -0.2347018024E-01 -0.1078824622E-03 0.1661468521E-04 335.5000000 -0.2363297987E-01 -0.1077902084E-03 0.1517758460E-04 336.0000000 -0.2379561694E-01 -0.1047690577E-03 0.1360923195E-04 336.5000000 -0.2395769933E-01 -0.9851181873E-04 0.1248287320E-04 337.0000000 -0.2411897542E-01 -0.8968781653E-04 0.1214620005E-04 337.5000000 -0.2427950447E-01 -0.7978260288E-04 0.1255869718E-04 338.0000000 -0.2443973816E-01 -0.7055930544E-04 0.1334437174E-04 338.5000000 -0.2460042400E-01 -0.6338545094E-04 0.1403857302E-04 339.0000000 -0.2476234366E-01 -0.5876582008E-04 0.1435311595E-04 339.5000000 -0.2492599775E-01 -0.5623796803E-04 0.1427400604E-04 340.0000000 -0.2509138366E-01 -0.5463924233E-04 0.1394631160E-04 340.5000000 -0.2525798725E-01 -0.5257819487E-04 0.1346907325E-04 341.0000000 -0.2542499009E-01 -0.4890766627E-04 0.1278353793E-04 341.5000000 -0.2559160112E-01 -0.4301880546E-04 0.1171787820E-04 342.0000000 -0.2575736900E-01 -0.3488327721E-04 0.1014140271E-04 342.5000000 -0.2592232222E-01 -0.2490636669E-04 0.8079985627E-05 343.0000000 -0.2608687200E-01 -0.1373999749E-04 0.5728336492E-05 343.5000000 -0.2625153958E-01 -0.2201316133E-05 0.3354876075E-05 344.0000000 -0.2641665178E-01 0.8771399408E-05 0.1177307999E-05 344.5000000 -0.2658219775E-01 0.1819551249E-04 -0.7203858462E-06 345.0000000 -0.2674791413E-01 0.2530034416E-04 -0.2418982658E-05 345.5000000 -0.2691352899E-01 0.2982763997E-04 -0.4092422702E-05 346.0000000 -0.2707898672E-01 0.3217236826E-04 -0.5879169955E-05 346.5000000 -0.2724453629E-01 0.3322719450E-04 -0.7764376210E-05 347.0000000 -0.2741066467E-01 0.3402664557E-04 -0.9555724492E-05 347.5000000 -0.2757790108E-01 0.3537499070E-04 -0.1093680940E-04 348.0000000 -0.2774658846E-01 0.3762475241E-04 -0.1158930971E-04 348.5000000 -0.2791668644E-01 0.4061019599E-04 -0.1129504734E-04 349.0000000 -0.2808774645E-01 0.4374461864E-04 -0.9991885573E-05 349.5000000 -0.2825912454E-01 0.4626570373E-04 -0.7795318742E-05 350.0000000 -0.2843034958E-01 0.4756578801E-04 -0.4981940292E-05 350.5000000 -0.2860139401E-01 0.4748021170E-04 -0.1933190356E-05 351.0000000 -0.2877262512E-01 0.4642344554E-04 0.9142585067E-06 351.5000000 -0.2894447513E-01 0.4524820197E-04 0.3136565945E-05 352.0000000 -0.2911712555E-01 0.4490009733E-04 0.4420086023E-05 352.5000000 -0.2929045576E-01 0.4597993991E-04 0.4700096570E-05 353.0000000 -0.2946424572E-01 0.4837618092E-04 0.4260363860E-05 353.5000000 -0.2963841342E-01 0.5114608762E-04 0.3683626698E-05 354.0000000 -0.2981310429E-01 0.5285047114E-04 0.3559105858E-05 354.5000000 -0.2998862083E-01 0.5227279292E-04 0.4109512845E-05 355.0000000 -0.3016532024E-01 0.4908929272E-04 0.4978902347E-05 355.5000000 -0.3034350215E-01 0.4401098447E-04 0.5382680440E-05 356.0000000 -0.3052323428E-01 0.3825525650E-04 0.4586143893E-05 356.5000000 -0.3070418805E-01 0.3275727163E-04 0.2400259063E-05 357.0000000 -0.3088561497E-01 0.2770138842E-04 -0.5536996547E-06 357.5000000 -0.3106659099E-01 0.2266316166E-04 -0.3045374792E-05 358.0000000 -0.3124647384E-01 0.1714855343E-04 -0.3822369008E-05 358.5000000 -0.3142527954E-01 0.1110647591E-04 -0.2303455659E-05 359.0000000 -0.3160369869E-01 0.5136587425E-05 0.1042935522E-05 359.5000000 -0.3178271983E-01 0.2669919626E-06 0.4917200241E-05 360.0000000 -0.3196310733E-01 -0.2536202941E-05 0.7916413843E-05 360.5000000 -0.3214504168E-01 -0.2861210234E-05 0.9275513233E-05 361.0000000 -0.3232810381E-01 -0.1125589226E-05 0.9180438374E-05 361.5000000 -0.3251154001E-01 0.1559447949E-05 0.8526057127E-05 362.0000000 -0.3269465123E-01 0.3789184261E-05 0.8310202561E-05 362.5000000 -0.3287715041E-01 0.4263451054E-05 0.9026272750E-05 363.0000000 -0.3305933326E-01 0.2087250869E-05 0.1033329717E-04 363.5000000 -0.3324194837E-01 -0.3043765175E-05 0.1120275650E-04 364.0000000 -0.3342579580E-01 -0.1079688233E-04 0.1051967994E-04 364.5000000 -0.3361129849E-01 -0.2035836993E-04 0.7796274198E-05 365.0000000 -0.3379836613E-01 -0.3082882833E-04 0.3543724386E-05 365.5000000 -0.3398661146E-01 -0.4153167532E-04 -0.9100438092E-06 366.0000000 -0.3417562289E-01 -0.5198897033E-04 -0.3980595032E-05 366.5000000 -0.3436496752E-01 -0.6161521808E-04 -0.4501270043E-05 367.0000000 -0.3455404408E-01 -0.6956201546E-04 -0.2228987423E-05 367.5000000 -0.3474214190E-01 -0.7499815253E-04 0.1975255327E-05 368.0000000 -0.3492885917E-01 -0.7765060984E-04 0.6462389435E-05 368.5000000 -0.3511453087E-01 -0.7814018756E-04 0.9578721971E-05 369.0000000 -0.3530015945E-01 -0.7768814799E-04 0.1050259701E-04 369.5000000 -0.3548684150E-01 -0.7734322350E-04 0.9558939818E-05 370.0000000 -0.3567515013E-01 -0.7725969592E-04 0.7866260783E-05 370.5000000 -0.3586494206E-01 -0.7662483630E-04 0.6650354352E-05 371.0000000 -0.3605556741E-01 -0.7436361863E-04 0.6680215692E-05 371.5000000 -0.3624624996E-01 -0.7007070143E-04 0.7942728341E-05 372.0000000 -0.3643644410E-01 -0.6436221392E-04 0.9564571623E-05 372.5000000 -0.3662609275E-01 -0.5841929590E-04 0.1015632960E-04 373.0000000 -0.3681569612E-01 -0.5312623962E-04 0.8698843577E-05 373.5000000 -0.3700599154E-01 -0.4860257708E-04 0.5508745436E-05 374.0000000 -0.3719739962E-01 -0.4452124239E-04 0.2392994998E-05 374.5000000 -0.3738962602E-01 -0.4090455966E-04 0.1623622964E-05 375.0000000 -0.3758182471E-01 -0.3855410567E-04 0.4332212939E-05 375.5000000 -0.3777325767E-01 -0.3848117385E-04 0.9583372414E-05 376.0000000 -0.3796395787E-01 -0.4075978254E-04 0.1480829287E-04 376.5000000 -0.3815478893E-01 -0.4399203790E-04 0.1733940873E-04 377.0000000 -0.3834676941E-01 -0.4618163090E-04 0.1595682912E-04 377.5000000 -0.3854016153E-01 -0.4630323025E-04 0.1142824641E-04 378.0000000 -0.3873411071E-01 -0.4499953836E-04 0.5736745594E-05 378.5000000 -0.3892723576E-01 -0.4381818315E-04 0.6075152219E-06 379.0000000 -0.3911877016E-01 -0.4390973764E-04 -0.3521159259E-05 379.5000000 -0.3930930965E-01 -0.4540804294E-04 -0.7256928497E-05 380.0000000 -0.3950043291E-01 -0.4766895000E-04 -0.1110771036E-04 380.5000000 -0.3969335569E-01 -0.4973978658E-04 -0.1461360292E-04 381.0000000 -0.3988778388E-01 -0.5071362115E-04 -0.1663835706E-04 381.5000000 -0.4008210851E-01 -0.5004864764E-04 -0.1652709418E-04 382.0000000 -0.4027487042E-01 -0.4781519010E-04 -0.1499245822E-04 382.5000000 -0.4046608883E-01 -0.4464085549E-04 -0.1381080226E-04 383.0000000 -0.4065720992E-01 -0.4130498786E-04 -0.1437661710E-04 383.5000000 -0.4084985133E-01 -0.3828736465E-04 -0.1631819759E-04 384.0000000 -0.4104462247E-01 -0.3563494439E-04 -0.1758313811E-04 384.5000000 -0.4124100954E-01 -0.3318891050E-04 -0.1615520754E-04 385.0000000 -0.4143808106E-01 -0.3087177665E-04 -0.1188917825E-04 385.5000000 -0.4163513594E-01 -0.2881480691E-04 -0.6591503445E-05 386.0000000 -0.4183176181E-01 -0.2736317941E-04 -0.2273497105E-05 386.5000000 -0.4202761051E-01 -0.2709368543E-04 0.6208244762E-06 387.0000000 -0.4222250156E-01 -0.2862159034E-04 0.3238972734E-05 387.5000000 -0.4241691519E-01 -0.3205382503E-04 0.6764444683E-05 388.0000000 -0.4261219621E-01 -0.3663961252E-04 0.1092511064E-04 388.5000000 -0.4280993474E-01 -0.4126433588E-04 0.1405696926E-04 389.0000000 -0.4301084912E-01 -0.4543785403E-04 0.1464701237E-04 389.5000000 -0.4321412751E-01 -0.4950615437E-04 0.1283577952E-04 390.0000000 -0.4341783496E-01 -0.5376657947E-04 0.1022132230E-04 390.5000000 -0.4362013205E-01 -0.5764857431E-04 0.8182604381E-05 391.0000000 -0.4382037127E-01 -0.6009261215E-04 0.6725988658E-05 391.5000000 -0.4401921974E-01 -0.6076313076E-04 0.5238779591E-05 392.0000000 -0.4421778654E-01 -0.6070560138E-04 0.3978840611E-05 392.5000000 -0.4441668508E-01 -0.6157095016E-04 0.4107815706E-05 393.0000000 -0.4461599590E-01 -0.6399463778E-04 0.6151156174E-05 393.5000000 -0.4481597034E-01 -0.6682715058E-04 0.8981207528E-05 394.0000000 -0.4501733198E-01 -0.6832226236E-04 0.1067253273E-04 394.5000000 -0.4522059481E-01 -0.6809453586E-04 0.1015533082E-04 395.0000000 -0.4542522627E-01 -0.6737660369E-04 0.7871470272E-05 395.5000000 -0.4562982545E-01 -0.6721982106E-04 0.4847945521E-05 396.0000000 -0.4583323912E-01 -0.6693517046E-04 0.1449010793E-05 396.5000000 -0.4603543171E-01 -0.6473965022E-04 -0.2671760903E-05 397.0000000 -0.4623739329E-01 -0.5965920723E-04 -0.7348344116E-05 397.5000000 -0.4644040775E-01 -0.5255158646E-04 -0.1116068001E-04 398.0000000 -0.4664534648E-01 -0.4553452354E-04 -0.1272470214E-04 398.5000000 -0.4685224725E-01 -0.4063622025E-04 -0.1265973948E-04 399.0000000 -0.4706023720E-01 -0.3871456170E-04 -0.1339466871E-04 399.5000000 -0.4726787576E-01 -0.3914133616E-04 -0.1657670816E-04 400.0000000 -0.4747395355E-01 -0.4034842045E-04 -0.2128373002E-04 400.5000000 -0.4767840504E-01 -0.4078127004E-04 -0.2525275187E-04 401.0000000 -0.4788263874E-01 -0.3976400140E-04 -0.2713381897E-04 401.5000000 -0.4808869159E-01 -0.3774042821E-04 -0.2675804308E-04 402.0000000 -0.4829760892E-01 -0.3549796842E-04 -0.2385128781E-04 402.5000000 -0.4850849531E-01 -0.3291420675E-04 -0.1798780408E-04 403.0000000 -0.4871930722E-01 -0.2888055929E-04 -0.1011547579E-04 403.5000000 -0.4892870893E-01 -0.2296841427E-04 -0.2871442685E-05 404.0000000 -0.4913712912E-01 -0.1683773372E-04 0.1647696117E-05 404.5000000 -0.4934600435E-01 -0.1345664421E-04 0.3850189372E-05 405.0000000 -0.4955620873E-01 -0.1487411284E-04 0.5387021632E-05 405.5000000 -0.4976750554E-01 -0.2078158429E-04 0.6292663613E-05 406.0000000 -0.4997933189E-01 -0.2896693949E-04 0.4794152436E-05 406.5000000 -0.5019153541E-01 -0.3667500790E-04 0.2948205134E-06 407.0000000 -0.5040407944E-01 -0.4172947735E-04 -0.4836331573E-05 407.5000000 -0.5061655390E-01 -0.4326946003E-04 -0.7541670118E-05 408.0000000 -0.5082852875E-01 -0.4231541521E-04 -0.7485666503E-05 408.5000000 -0.5104025066E-01 -0.4132162467E-04 -0.6978411041E-05 409.0000000 -0.5125247208E-01 -0.4211762780E-04 -0.7486797302E-05 409.5000000 -0.5146563660E-01 -0.4420931409E-04 -0.7325472838E-05 410.0000000 -0.5167973789E-01 -0.4574200554E-04 -0.3770413504E-05 410.5000000 -0.5189492456E-01 -0.4581353404E-04 0.3058823590E-05 411.0000000 -0.5211151663E-01 -0.4488859282E-04 0.9538549241E-05 411.5000000 -0.5232920585E-01 -0.4340350570E-04 0.1215916069E-04 412.0000000 -0.5254686783E-01 -0.4129873885E-04 0.1087138674E-04 412.5000000 -0.5276349394E-01 -0.3878042399E-04 0.8338851468E-05 413.0000000 -0.5297900728E-01 -0.3658678249E-04 0.6688418309E-05 413.5000000 -0.5319413179E-01 -0.3538537954E-04 0.5984449097E-05 414.0000000 -0.5340977090E-01 -0.3496201320E-04 0.5403027662E-05 414.5000000 -0.5362651210E-01 -0.3409811632E-04 0.4555413609E-05 415.0000000 -0.5384440593E-01 -0.3188111893E-04 0.3270848805E-05 415.5000000 -0.5406312398E-01 -0.2904473999E-04 0.8737127231E-06 416.0000000 -0.5428239873E-01 -0.2673520317E-04 -0.3283464055E-05 416.5000000 -0.5450223691E-01 -0.2391098703E-04 -0.8247236607E-05 417.0000000 -0.5472256160E-01 -0.1802181172E-04 -0.1118324423E-04 417.5000000 -0.5494278368E-01 -0.9076970833E-05 -0.1012403848E-04 418.0000000 -0.5516227988E-01 -0.1018659330E-05 -0.7086349101E-05 418.5000000 -0.5538143660E-01 0.2271233380E-05 -0.6546311752E-05 419.0000000 -0.5560145284E-01 0.6230105860E-06 -0.9787414038E-05 419.5000000 -0.5582264520E-01 -0.3961528296E-05 -0.1277471591E-04 420.0000000 -0.5604376031E-01 -0.1036965362E-04 -0.1152233546E-04 420.5000000 -0.5626367794E-01 -0.1801557171E-04 -0.7558521744E-05 421.0000000 -0.5648307994E-01 -0.2533612341E-04 -0.4999314119E-05 421.5000000 -0.5670360826E-01 -0.3060989839E-04 -0.3693766168E-05 422.0000000 -0.5692573802E-01 -0.3344560315E-04 0.7329134657E-07 422.5000000 -0.5714834358E-01 -0.3433565626E-04 0.6467013087E-05 423.0000000 -0.5737035885E-01 -0.3322112387E-04 0.1080540253E-04 423.5000000 -0.5759194851E-01 -0.2946279347E-04 0.1002767871E-04 424.0000000 -0.5781367290E-01 -0.2295879757E-04 0.5868272057E-05 424.5000000 -0.5803547499E-01 -0.1382496483E-04 0.8068934649E-06 425.0000000 -0.5825730802E-01 -0.1321641132E-05 -0.4551770717E-05 425.5000000 -0.5848005005E-01 0.1413178757E-04 -0.8724452850E-05 426.0000000 -0.5870454047E-01 0.2798560601E-04 -0.7892390800E-05 426.5000000 -0.5893013735E-01 0.3452776801E-04 0.2285379118E-06 427.0000000 -0.5915558550E-01 0.3326503611E-04 0.1282091449E-04 427.5000000 -0.5938103005E-01 0.2874280494E-04 0.2416856518E-04 428.0000000 -0.5960736872E-01 0.2380472498E-04 0.3054986986E-04 428.5000000 -0.5983394205E-01 0.1704587360E-04 0.3169109497E-04 429.0000000 -0.6005923960E-01 0.7212748630E-05 0.2845805017E-04 429.5000000 -0.6028408991E-01 -0.3651513498E-05 0.2143359298E-04 430.0000000 -0.6051143433E-01 -0.1220307211E-04 0.1200069046E-04 430.5000000 -0.6074218906E-01 -0.1630805209E-04 0.3106193484E-05 431.0000000 -0.6097381086E-01 -0.1590647248E-04 -0.2381607316E-05 431.5000000 -0.6120401334E-01 -0.1335659872E-04 -0.3885549134E-05 432.0000000 -0.6143351955E-01 -0.1225429871E-04 -0.3408086766E-05 432.5000000 -0.6166382753E-01 -0.1496153369E-04 -0.3537240398E-05 433.0000000 -0.6189443827E-01 -0.2133858029E-04 -0.5304099599E-05 433.5000000 -0.6212398462E-01 -0.2913484239E-04 -0.8557724676E-05 434.0000000 -0.6235266617E-01 -0.3591705568E-04 -0.1297186080E-04 434.5000000 -0.6258187863E-01 -0.4161694136E-04 -0.1693399827E-04 435.0000000 -0.6281207986E-01 -0.4801545661E-04 -0.1762703644E-04 435.5000000 -0.6304249296E-01 -0.5545549182E-04 -0.1439691625E-04 436.0000000 -0.6327277612E-01 -0.6166015268E-04 -0.9594730141E-05 436.5000000 -0.6350356988E-01 -0.6366674620E-04 -0.4656353988E-05 437.0000000 -0.6373523876E-01 -0.5992402610E-04 0.1305859731E-05 437.5000000 -0.6396716511E-01 -0.5148311411E-04 0.7601154233E-05 438.0000000 -0.6419856047E-01 -0.4170121988E-04 0.1074881287E-04 438.5000000 -0.6442948029E-01 -0.3357690669E-04 0.9266360162E-05 439.0000000 -0.6466092838E-01 -0.2750331253E-04 0.5560051133E-05 439.5000000 -0.6489368417E-01 -0.2257006634E-04 0.7278788567E-06 440.0000000 -0.6512698789E-01 -0.1887329978E-04 -0.6988563656E-05 440.5000000 -0.6535927363E-01 -0.1735107478E-04 -0.1528234307E-04 441.0000000 -0.6559063202E-01 -0.1838185874E-04 -0.1630033654E-04 441.5000000 -0.6582324238E-01 -0.2044071285E-04 -0.6776222023E-05 442.0000000 -0.6605842714E-01 -0.2019283772E-04 0.6377028333E-05 442.5000000 -0.6629467440E-01 -0.1636658020E-04 0.1475685431E-04 443.0000000 -0.6652977350E-01 -0.1349122677E-04 0.1742088379E-04 443.5000000 -0.6676353970E-01 -0.1777103474E-04 0.1776767769E-04 444.0000000 -0.6699707736E-01 -0.2824557021E-04 0.1669151077E-04 444.5000000 -0.6723080355E-01 -0.3674028519E-04 0.1314118554E-04 445.0000000 -0.6746480825E-01 -0.3764259254E-04 0.7219070498E-05 445.5000000 -0.6770002281E-01 -0.3239260753E-04 -0.9388799504E-06 446.0000000 -0.6793722010E-01 -0.2405375226E-04 -0.1141564013E-04 446.5000000 -0.6817566160E-01 -0.1336299244E-04 -0.2122258206E-04 447.0000000 -0.6841402279E-01 -0.1827548417E-05 -0.2509178198E-04 447.5000000 -0.6865167615E-01 0.6352652193E-05 -0.2123657568E-04 448.0000000 -0.6888868200E-01 0.8422018016E-05 -0.1298374110E-04 448.5000000 -0.6912610232E-01 0.5865119373E-05 -0.5445211601E-05 449.0000000 -0.6936568592E-01 0.1761070785E-05 -0.2600788035E-05 449.5000000 -0.6960713066E-01 -0.2057252255E-05 -0.4363942967E-05 450.0000000 -0.6984763203E-01 -0.5513719992E-05 -0.6455339658E-05 450.5000000 -0.7008616433E-01 -0.9058776146E-05 -0.6574589949E-05 451.0000000 -0.7032503704E-01 -0.1228402756E-04 -0.7155925623E-05 451.5000000 -0.7056588369E-01 -0.1415490963E-04 -0.8532324264E-05 452.0000000 -0.7080762470E-01 -0.1430251111E-04 -0.6576795114E-05 452.5000000 -0.7104930592E-01 -0.1460990097E-04 -0.1936882781E-05 453.0000000 -0.7129180707E-01 -0.1865250404E-04 -0.1948343554E-05 453.5000000 -0.7153549766E-01 -0.2654171037E-04 -0.7699511519E-05 454.0000000 -0.7177880542E-01 -0.3180495222E-04 -0.1050377701E-04 454.5000000 -0.7202067862E-01 -0.2825686020E-04 -0.5962848046E-05 455.0000000 -0.7226230499E-01 -0.1782014113E-04 0.7179633718E-06 455.5000000 -0.7250491845E-01 -0.7033048316E-05 0.5937615323E-05 456.0000000 -0.7274819556E-01 -0.2431816328E-06 0.1200228284E-04 456.5000000 -0.7299190355E-01 0.9644055370E-06 0.1995724573E-04 457.0000000 -0.7323626566E-01 -0.2047202415E-05 0.2664703083E-04 457.5000000 -0.7348059853E-01 -0.4205414702E-05 0.2868656491E-04 458.0000000 -0.7372449991E-01 -0.1387298972E-05 0.2671261401E-04 458.5000000 -0.7396872938E-01 0.3839419612E-05 0.2418292854E-04 459.0000000 -0.7421300510E-01 0.4736830917E-05 0.2208785130E-04 459.5000000 -0.7445626606E-01 -0.4914626744E-06 0.1882269508E-04 460.0000000 -0.7469918076E-01 -0.6599436797E-05 0.1478385756E-04 460.5000000 -0.7494262964E-01 -0.9079040474E-05 0.1175663950E-04 461.0000000 -0.7518616359E-01 -0.7572122248E-05 0.9432092273E-05 461.5000000 -0.7543069412E-01 -0.3158258843E-05 0.7530843020E-05 462.0000000 -0.7567780700E-01 0.1507794746E-05 0.7834171033E-05 462.5000000 -0.7592581140E-01 0.3291035813E-05 0.9992562543E-05 463.0000000 -0.7617207274E-01 0.2582589953E-05 0.9728145628E-05 463.5000000 -0.7641751049E-01 0.4980817317E-06 0.6377236580E-05 464.0000000 -0.7666430800E-01 -0.3355294884E-05 0.5742711490E-05 464.5000000 -0.7691241749E-01 -0.4820800163E-05 0.8958151655E-05 465.0000000 -0.7716139952E-01 0.1425722092E-05 0.9731166479E-05 465.5000000 -0.7741185376E-01 0.1174451150E-04 0.7554314140E-05 466.0000000 -0.7766272270E-01 0.1759736963E-04 0.7405854087E-05 466.5000000 -0.7791158185E-01 0.1462981169E-04 0.6822805412E-05 467.0000000 -0.7815860721E-01 0.4617603485E-05 0.2118671974E-05 467.5000000 -0.7840656490E-01 -0.6265189337E-05 -0.5874693636E-06 468.0000000 -0.7865694723E-01 -0.1289585203E-04 0.2253560228E-05 468.5000000 -0.7890876928E-01 -0.1506876791E-04 0.3505751830E-05 469.0000000 -0.7916035179E-01 -0.1359318156E-04 0.6507846744E-06 469.5000000 -0.7941013594E-01 -0.8847857574E-05 0.6689807381E-06 470.0000000 -0.7965809350E-01 -0.3832648261E-05 0.4825399627E-05 470.5000000 -0.7990710057E-01 -0.3297488978E-06 0.6073304981E-05 471.0000000 -0.8015956110E-01 0.2108710422E-05 0.2848980241E-05 471.5000000 -0.8041331747E-01 -0.1433691943E-05 0.1034187312E-05 472.0000000 -0.8066451307E-01 -0.1546002714E-04 0.2767866173E-05 472.5000000 -0.8091359300E-01 -0.2962004921E-04 0.3337913635E-05 473.0000000 -0.8116475440E-01 -0.2899055596E-04 0.2637033229E-06 473.5000000 -0.8141975803E-01 -0.1607529806E-04 -0.3305510839E-05 474.0000000 -0.8167584027E-01 -0.1589723715E-05 -0.5321219972E-05 474.5000000 -0.8193017905E-01 0.1319756396E-04 -0.6184006497E-05 475.0000000 -0.8218335701E-01 0.2516994563E-04 -0.4456980351E-05 475.5000000 -0.8243695281E-01 0.2574284564E-04 0.1684438391E-05 476.0000000 -0.8269107892E-01 0.1879610492E-04 0.8627764971E-05 476.5000000 -0.8294623295E-01 0.1553512396E-04 0.1021881341E-04 477.0000000 -0.8320283573E-01 0.1419366140E-04 0.7693726627E-05 477.5000000 -0.8345933053E-01 0.5042436305E-05 0.5894281685E-05 478.0000000 -0.8371456596E-01 -0.1199807774E-04 0.4340586731E-05 478.5000000 -0.8396958895E-01 -0.2840749202E-04 0.2814515661E-05 479.0000000 -0.8422561411E-01 -0.3992233814E-04 0.3776865373E-05 479.5000000 -0.8448232375E-01 -0.4695699643E-04 0.6400270914E-05 480.0000000 -0.8473885334E-01 -0.4885648683E-04 0.9542229646E-05 480.5000000 -0.8499507053E-01 -0.4633914544E-04 0.1462519430E-04 481.0000000 -0.8525179540E-01 -0.4375056976E-04 0.1923813634E-04 481.5000000 -0.8550919236E-01 -0.4473296306E-04 0.2031598636E-04 482.0000000 -0.8576628369E-01 -0.4766509844E-04 0.2120142256E-04 482.5000000 -0.8602333506E-01 -0.4777164588E-04 0.2295099105E-04 483.0000000 -0.8628135445E-01 -0.3890592909E-04 0.2114819807E-04 483.5000000 -0.8654030362E-01 -0.1786691339E-04 0.1716145587E-04 484.0000000 -0.8680003926E-01 0.4851442450E-05 0.1669632819E-04 484.5000000 -0.8706000630E-01 0.1561118947E-04 0.1763774613E-04 485.0000000 -0.8731950240E-01 0.1577781567E-04 0.1398926639E-04 485.5000000 -0.8757915336E-01 0.1314269406E-04 0.6125588297E-05 486.0000000 -0.8783912383E-01 0.1076606250E-04 -0.1596473410E-05 486.5000000 -0.8809939446E-01 0.8305477628E-05 -0.5597273102E-05 487.0000000 -0.8836097926E-01 0.2678005322E-05 -0.4312872017E-05 487.5000000 -0.8862331896E-01 -0.6156372172E-05 -0.2812482595E-05 488.0000000 -0.8888459601E-01 -0.1377448892E-04 -0.9129452939E-05 488.5000000 -0.8914527807E-01 -0.1812881573E-04 -0.2116381355E-04 489.0000000 -0.8940665166E-01 -0.2139427730E-04 -0.2641617428E-04 489.5000000 -0.8966855355E-01 -0.2640083482E-04 -0.1790079476E-04 490.0000000 -0.8993048928E-01 -0.3196613822E-04 -0.5946246595E-05 490.5000000 -0.9019208769E-01 -0.3664543616E-04 -0.4290383341E-05 491.0000000 -0.9045368367E-01 -0.4105315014E-04 -0.8152712932E-05 491.5000000 -0.9071643431E-01 -0.4370647861E-04 -0.4584682339E-05 492.0000000 -0.9098060112E-01 -0.4289553154E-04 0.2073759061E-05 492.5000000 -0.9124493583E-01 -0.3914149769E-04 0.1731629497E-05 493.0000000 -0.9150899991E-01 -0.3448801456E-04 -0.2329886672E-05 493.5000000 -0.9177419343E-01 -0.3163785163E-04 -0.8836514414E-05 494.0000000 -0.9204010814E-01 -0.2937224968E-04 -0.1891358886E-04 494.5000000 -0.9230530083E-01 -0.2254262980E-04 -0.2188407366E-04 495.0000000 -0.9257130204E-01 -0.1231933373E-04 -0.1479571920E-04 495.5000000 -0.9283894739E-01 -0.6444911164E-05 -0.1022140508E-04 496.0000000 -0.9310592867E-01 -0.3714031711E-05 -0.1097619280E-04 496.5000000 -0.9337149335E-01 0.3124857420E-05 -0.6916297341E-05 497.0000000 -0.9363777177E-01 0.1070401770E-04 0.3692162317E-05 497.5000000 -0.9390515350E-01 0.1229471317E-04 0.1431713983E-04 498.0000000 -0.9417128692E-01 0.1043436752E-04 0.2097767743E-04 498.5000000 -0.9443583668E-01 0.4842085726E-05 0.2067479975E-04 499.0000000 -0.9470078086E-01 -0.8218530763E-05 0.1480144919E-04 499.5000000 -0.9496631114E-01 -0.2303808683E-04 0.6932153320E-05 500.0000000 -0.9523320457E-01 -0.3707781056E-04 -0.6160247848E-05 500.5000000 -0.9550316501E-01 -0.5015470867E-04 -0.2182212867E-04 501.0000000 -0.9577351996E-01 -0.4875857739E-04 -0.2729928325E-04 501.5000000 -0.9604172332E-01 -0.3114375880E-04 -0.2039821710E-04 502.0000000 -0.9631019909E-01 -0.2051758386E-04 -0.1169076059E-04 502.5000000 -0.9658112344E-01 -0.2649649998E-04 -0.8153911649E-05 503.0000000 -0.9685343256E-01 -0.3652228476E-04 -0.9043478826E-05 503.5000000 -0.9712491173E-01 -0.4287217353E-04 -0.9383252180E-05 504.0000000 -0.9739464405E-01 -0.4360362996E-04 -0.5389698026E-05 504.5000000 -0.9766374811E-01 -0.4029467245E-04 -0.9233415308E-07 505.0000000 -0.9793353295E-01 -0.3414247518E-04 0.1175419309E-05 505.5000000 -0.9820512943E-01 -0.2140368260E-04 -0.2770044820E-05 506.0000000 -0.9847916881E-01 -0.7053805770E-05 -0.8799151607E-05 506.5000000 -0.9875246712E-01 -0.1700951813E-05 -0.1500251242E-04 507.0000000 -0.9902233662E-01 -0.7862473505E-05 -0.2161047746E-04 507.5000000 -0.9929256285E-01 -0.1927808397E-04 -0.2318434531E-04 508.0000000 -0.9956625578E-01 -0.2669955846E-04 -0.1845241837E-04 508.5000000 -0.9984099758E-01 -0.2758447829E-04 -0.1624846949E-04 509.0000000 -0.1001148404 -0.2559798823E-04 -0.1975428543E-04 509.5000000 -0.1003878164 -0.2616663453E-04 -0.2432949727E-04 510.0000000 -0.1006613872 -0.3373675427E-04 -0.2412244469E-04 510.5000000 -0.1009364738 -0.4203770581E-04 -0.1726293576E-04 511.0000000 -0.1012116071 -0.4423018270E-04 -0.8171082722E-05 elk-6.3.2/examples/TDDFT-time-evolution/Si-ramp/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741022111 xustar0030 mtime=1569569249.250638993 30 atime=1569569249.250638993 30 ctime=1569569249.250638993 elk-6.3.2/examples/TDDFT-time-evolution/Si-ramp/elk.in0000644002504400250440000000174713543334741024171 0ustar00dewhurstdewhurst00000000000000 ! Silicon exposed to an intense, linearly increasing electric field. See the ! manual for details on the 'ramp' vector potential. This is a computationally ! expensive example that is best run with MPI on a cluster. tasks 0 450 460 ! no shifting of the atomic positions for the ground-state run tshift .false. xctype 20 highq .true. nxoapwlo 1 mixtype 3 nempty 20.0 autokpt .false. tstime 500 dtimes 0.5 ! vector potential ramp parameters ! 1 - 3 : polarisation vector (including amplitude) ! 4 : start time of ramp ! 5 : linear coefficient ! 6 : quadratic coefficient ramp 1 1.0 0.0 0.0 0.0 0.0 0.0025 ngridk 12 12 12 vkloff 0.25 0.5 0.625 avec 5.13 5.13 0.0 5.13 0.0 5.13 0.0 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 elk-6.3.2/examples/TDDFT-time-evolution/PaxHeaders.21352/Ni-laser-pulse0000644000000000000000000000013013543334741022217 xustar0029 mtime=1569569249.25563899 30 atime=1569569249.254638991 29 ctime=1569569249.25563899 elk-6.3.2/examples/TDDFT-time-evolution/Ni-laser-pulse/0000755002504400250440000000000013543334741024345 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/TDDFT-time-evolution/Ni-laser-pulse/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334741023400 xustar0030 mtime=1569569249.257638989 29 atime=1569569249.25663899 30 ctime=1569569249.257638989 elk-6.3.2/examples/TDDFT-time-evolution/Ni-laser-pulse/elk.in0000644002504400250440000000476413543334741025463 0ustar00dewhurstdewhurst00000000000000 ! Simulation of an intense ultra-short laser pulse acting on fcc nickel. ! The laser pulse is represented by a time-dependent vector potential which is ! constructed from an arbitrary superposition of planes waves each multiplied ! with a Gaussian envelope function. ! The time-dependent vector potential and laser pulse parameters are written to ! AFIELDT.OUT and TD_INFO.OUT, respectively. The power density of the laser ! pulse is written to AFPDT.OUT. Time units are atomic, one of which is equal to ! 24.18884328 attoseconds. ! The total macroscopic current is written to the file CURRENT_TD.OUT and may be ! directly plotted. The total moment magnitude as a function of time is stored ! in the file MOMENTM_TD.OUT. Observe that the moment declines considerably ! after the laser pulse has stopped. ! This example is insufficiently converged for a production run, and all ! observables should be carefully checked for convergence with respect to the ! usual parameters. tasks 0 450 460 ! no shifting of the atomic positions for the ground-state run tshift .false. ! tight ground-state convergence epspot 1.e-7 lradstp 5 rgkmax 8.0 ngridk 8 8 8 ! automatic conversion of species to LAPW + linearised l.o. instead of APW+l.o. nxoapwlo 1 ! large number of empty states required nempty 16 ! total simulation time tstime 500.0 ! Simulation time step, ideally about 1 attosecond. It is critically important ! to make sure that the time evolution is stable, particularly for magnetism ! which can diverge even in the absence of a laser field. Any simulation should ! be run first with a laser field of amplitude zero to make sure that all ! observables remain constant over the total simulation time. Reducing the time ! step can improve stability. dtimes 0.1 ! laser pulse parameters ! 1 - 3 : polarisation vector (including amplitude) ! 4 : frequency ! 5 : phase in degrees ! 6 : chirp rate ! 7 : peak time ! 8 : full-width at half-maximum pulse 1 : number of laser pulses 0.0 0.0 250.0 0.03 0.0 0.0 240.0 120.0 ! plot the 2D magnetisation every ntswrite time steps tdmag2d .true. ntswrite 100 spinpol .true. spinorb .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/PaxHeaders.21352/hybrids0000644000000000000000000000013213543334741015242 xustar0030 mtime=1569569249.267638983 30 atime=1569569249.260638987 30 ctime=1569569249.267638983 elk-6.3.2/examples/hybrids/0000755002504400250440000000000013543334741017366 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/hybrids/PaxHeaders.21352/Si-libxc0000644000000000000000000000013213543334741016714 xustar0030 mtime=1569569249.264638984 30 atime=1569569249.260638987 30 ctime=1569569249.264638984 elk-6.3.2/examples/hybrids/Si-libxc/0000755002504400250440000000000013543334741021040 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/hybrids/Si-libxc/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020074 xustar0030 mtime=1569569249.265638984 30 atime=1569569249.264638984 30 ctime=1569569249.265638984 elk-6.3.2/examples/hybrids/Si-libxc/elk.in0000644002504400250440000000112713543334741022144 0ustar00dewhurstdewhurst00000000000000 ! Hybrid functional example using libxc. Note that the DFT step should be run ! separately with task=0. Then the hybrid step should be run with task=5. ! Example by Tyrel McQueen. tasks 0 ! first run task=0 with PBE... xctype 100 101 130 !...then uncomment the following and run with task=5 for hybrid GGA ! (note that only the correlation functional is set) !xctype ! 100 0 406 lmaxo 6 gmaxvr 10.0 ngridk 2 2 2 nempty 8 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 'Si.in' 2 0.00 0.00 0.00 0.25 0.25 0.25 elk-6.3.2/examples/hybrids/PaxHeaders.21352/Si0000644000000000000000000000013213543334741015615 xustar0030 mtime=1569569249.270638981 30 atime=1569569249.269638981 30 ctime=1569569249.270638981 elk-6.3.2/examples/hybrids/Si/0000755002504400250440000000000013543334741017741 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/hybrids/Si/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334741016773 xustar0029 mtime=1569569249.27163898 30 atime=1569569249.270638981 29 ctime=1569569249.27163898 elk-6.3.2/examples/hybrids/Si/elk.in0000644002504400250440000000057413543334741021052 0ustar00dewhurstdewhurst00000000000000 ! Hybrid functional using the native PBE functional. ! Example by Tyrel McQueen. tasks 0 5 xctype 20 hybrid .true. ! hybrid mixing parameter hybmix 0.25 lmaxo 6 gmaxvr 10.0 ngridk 2 2 2 nempty 10 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 'Si.in' 2 0.00 0.00 0.00 0.25 0.25 0.25 elk-6.3.2/examples/PaxHeaders.21352/meta-GGA0000644000000000000000000000013213543334741015120 xustar0030 mtime=1569569249.280638974 30 atime=1569569249.275638977 30 ctime=1569569249.280638974 elk-6.3.2/examples/meta-GGA/0000755002504400250440000000000013543334741017244 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/meta-GGA/PaxHeaders.21352/GaAs-SCAN0000644000000000000000000000013213543334741016455 xustar0030 mtime=1569569249.277638976 30 atime=1569569249.277638976 30 ctime=1569569249.277638976 elk-6.3.2/examples/meta-GGA/GaAs-SCAN/0000755002504400250440000000000013543334741020601 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/meta-GGA/GaAs-SCAN/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017635 xustar0030 mtime=1569569249.278638976 30 atime=1569569249.278638976 30 ctime=1569569249.278638976 elk-6.3.2/examples/meta-GGA/GaAs-SCAN/elk.in0000644002504400250440000000152013543334741021702 0ustar00dewhurstdewhurst00000000000000 ! Variational meta-GGA example using the strongly constrained and appropriately normed (SCAN) ! functional of J. Sun, A. Ruzsinszky and J. P. Perdew [Phys. Rev. Lett. 115, 036402 (2015)]. ! ! This example requires the Libxc functional library. tasks 0 20 highq .true. ! set additional options required for meta-GGA metagga .true. xctype 100 263 267 ngridk 4 4 4 plot1d 7 200 0.0 0.0 1.0 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 avec 5.3435 5.3435 0.0000 5.3435 0.0000 5.3435 0.0000 5.3435 5.3435 sppath '../../../species/' atoms 2 : nspecies 'Ga.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'As.in' 1 0.25 0.25 0.25 elk-6.3.2/examples/meta-GGA/PaxHeaders.21352/Si-Tran-Blaha0000644000000000000000000000013213543334741017402 xustar0030 mtime=1569569249.283638972 30 atime=1569569249.282638973 30 ctime=1569569249.283638972 elk-6.3.2/examples/meta-GGA/Si-Tran-Blaha/0000755002504400250440000000000013543334741021526 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/meta-GGA/Si-Tran-Blaha/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741020562 xustar0030 mtime=1569569249.284638972 30 atime=1569569249.284638972 30 ctime=1569569249.284638972 elk-6.3.2/examples/meta-GGA/Si-Tran-Blaha/elk.in0000644002504400250440000000225313543334741022633 0ustar00dewhurstdewhurst00000000000000 ! Band structure of silicon using meta-GGA. Note that the libxc library has to ! be linked into the code. See the manual for instructions on how to do this. ! LAPW appears to be required to obtain accurate kinetic energy densities. ! Compare the meta-GGA and LDA band structures and band gaps. tasks 0 20 ! use the Tran-Blaha meta-GGA functional for exchange and LDA for correlation ! [Phys. Rev. Lett. 102, 226401 (2009)] xctype 100 208 12 ! double the number of points in the muffin-tin nrmtscf 2 ! use LAPW nxoapwlo 1 ! smooth the gradients to ensure convergence msmooth 2 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 14 14 14 ! These are the vertices to be joined for the band structure plot plot1d 7 200 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/PaxHeaders.21352/phonons-superconductivity0000644000000000000000000000013213543334741021063 xustar0030 mtime=1569569249.575638786 30 atime=1569569249.289638968 30 ctime=1569569249.575638786 elk-6.3.2/examples/phonons-superconductivity/0000755002504400250440000000000013543334741023207 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/GaAs-DFPT0000644000000000000000000000013013543334741022427 xustar0029 mtime=1569569249.30363896 30 atime=1569569249.290638968 29 ctime=1569569249.30363896 elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/0000755002504400250440000000000013543334741024555 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/PaxHeaders.21352/PHDISP.OUT0000644000000000000000000000013213543334741024066 xustar0030 mtime=1569569249.296638964 30 atime=1569569249.292638967 30 ctime=1569569249.296638964 elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/PHDISP.OUT0000644002504400250440000012662413543334741026150 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.1536768326E-10 0.1588994284E-01 0.1350455454E-04 0.3177988568E-01 0.2703428035E-04 0.4766982851E-01 0.4061314416E-04 0.6355977135E-01 0.5426273974E-04 0.7944971419E-01 0.6800118985E-04 0.9533965703E-01 0.8184215000E-04 0.1112295999 0.9579394125E-04 0.1271195427 0.1098588339E-03 0.1430094855 0.1240324987E-03 0.1588994284 0.1383036361E-03 0.1747893712 0.1526537889E-03 0.1906793141 0.1670573397E-03 0.2065692569 0.1814816874E-03 0.2224591997 0.1958875971E-03 0.2383491426 0.2102297134E-03 0.2542390854 0.2244572224E-03 0.2701290283 0.2385146522E-03 0.2860189711 0.2523427910E-03 0.3019089139 0.2658797097E-03 0.3177988568 0.2790618645E-03 0.3336887996 0.2918252581E-03 0.3495787424 0.3041066308E-03 0.3654686853 0.3158446474E-03 0.3813586281 0.3269810433E-03 0.3972485710 0.3374616830E-03 0.4131385138 0.3472374834E-03 0.4290284566 0.3562651510E-03 0.4449183995 0.3645076847E-03 0.4608083423 0.3719346028E-03 0.4766982851 0.3785218708E-03 0.4925882280 0.3842515242E-03 0.5084781708 0.3891110109E-03 0.5243681137 0.3930923066E-03 0.5402580565 0.3961908851E-03 0.5561479993 0.3984046472E-03 0.5720379422 0.3997329241E-03 0.5879278850 0.4001756680E-03 0.6039174156 0.4028763589E-03 0.6199069461 0.4108045080E-03 0.6358964767 0.4234740900E-03 0.6518860072 0.4401784201E-03 0.6678755378 0.4601015819E-03 0.6838650683 0.4824169885E-03 0.6998545989 0.5063567717E-03 0.7158441294 0.5312512913E-03 0.7318336600 0.5565458692E-03 0.7478231905 0.5818030409E-03 0.7638127211 0.6066967268E-03 0.7798022516 0.6310023339E-03 0.7957917822 0.6545849451E-03 0.8117813127 0.6773866193E-03 0.8277708433 0.6716945882E-03 0.8437603738 0.6366422122E-03 0.8597499044 0.6039116923E-03 0.8757394349 0.5749954450E-03 0.8917289655 0.5513433532E-03 0.9077184961 0.5342994788E-03 0.9237080266 0.5249126663E-03 0.9396975572 0.5236898661E-03 0.9556870877 0.5303413087E-03 0.9716766183 0.5434697864E-03 0.9876661488 0.5598214953E-03 1.003655679 0.5723949441E-03 1.019645210 0.5717049985E-03 1.035634740 0.5576272869E-03 1.051624271 0.5365952268E-03 1.067613802 0.5123777815E-03 1.083603332 0.4865636392E-03 1.099592863 0.4599038630E-03 1.115582393 0.4328260101E-03 1.131571924 0.4056149529E-03 1.147561454 0.3784821208E-03 1.163550985 0.3515945070E-03 1.179540515 0.3250876449E-03 1.195530046 0.2990716344E-03 1.211519577 0.2736339815E-03 1.227509107 0.2488409541E-03 1.243498638 0.2247382916E-03 1.259488168 0.2013517094E-03 1.275477699 0.1786874469E-03 1.291467229 0.1567329992E-03 1.307456760 0.1354581091E-03 1.323446290 0.1148160477E-03 1.339435821 0.9474517726E-04 1.355425351 0.7517076156E-04 1.371414882 0.5600697027E-04 1.387404413 0.3715901639E-04 1.403393943 0.1852536941E-04 1.419383474 0.1536768326E-10 1.435294739 0.1278302379E-04 1.451206004 0.2553441114E-04 1.467117269 0.3822261477E-04 1.483028534 0.5081626546E-04 1.498939799 0.6328426049E-04 1.514851064 0.7559585124E-04 1.530762330 0.8772072986E-04 1.546673595 0.9962911437E-04 1.562584860 0.1112918323E-03 1.578496125 0.1226804020E-03 1.594407390 0.1337671114E-03 1.610318655 0.1445250942E-03 1.626229920 0.1549284020E-03 1.642141185 0.1649520729E-03 1.658052451 0.1745721951E-03 1.673963716 0.1837659659E-03 1.689874981 0.1925117449E-03 1.705786246 0.2007891010E-03 1.721697511 0.2085788534E-03 1.737608776 0.2158631050E-03 1.753520041 0.2226252700E-03 1.769431306 0.2288500938E-03 1.785342572 0.2345236666E-03 1.801253837 0.2396334308E-03 1.817165102 0.2441681828E-03 1.833076367 0.2481180696E-03 1.848987632 0.2514745828E-03 1.864898897 0.2542305487E-03 1.880810162 0.2563801179E-03 1.896721427 0.2579187548E-03 1.912632693 0.2588432274E-03 1.928543958 0.2591515999E-03 1.944455223 0.2596108136E-03 1.960366488 0.2609785784E-03 1.976277753 0.2632258395E-03 1.992189018 0.2663060073E-03 2.008100283 0.2701574505E-03 2.024011548 0.2747065365E-03 2.039922814 0.2798708875E-03 2.055834079 0.2855625640E-03 2.071745344 0.2916909558E-03 2.087656609 0.2981652504E-03 2.103567874 0.3048964240E-03 2.119479139 0.3117987658E-03 2.135390404 0.3187909793E-03 2.151301669 0.3257969280E-03 2.167212935 0.3327460942E-03 2.183124200 0.3395738155E-03 2.199035465 0.3462213535E-03 2.214946730 0.3526358384E-03 2.230857995 0.3587701215E-03 2.246769260 0.3645825591E-03 2.262680525 0.3700367441E-03 2.278591790 0.3751011956E-03 2.294503056 0.3797490169E-03 2.310414321 0.3839575277E-03 2.326325586 0.3877078789E-03 2.342236851 0.3909846582E-03 2.358148116 0.3937754972E-03 2.374059381 0.3960706924E-03 2.389970646 0.3978628515E-03 2.405881911 0.3991465804E-03 2.421793177 0.3999182235E-03 2.437704442 0.4001756680E-03 2.453176228 0.4018541590E-03 2.468648015 0.4068371567E-03 2.484119801 0.4149736908E-03 2.499591588 0.4260318459E-03 2.515063374 0.4397228232E-03 2.530535160 0.4557261304E-03 2.546006947 0.4737115720E-03 2.561478733 0.4933556337E-03 2.576950520 0.5143516144E-03 2.592422306 0.5364139154E-03 2.607894093 0.5592771219E-03 2.623365879 0.5826899485E-03 2.638837666 0.6064025592E-03 2.654309452 0.6301420874E-03 2.669781238 0.6535615835E-03 2.685253025 0.6761192769E-03 2.700724811 0.6921926342E-03 2.716196598 0.6999453049E-03 2.731668384 0.7026367756E-03 2.747065710 0.6914659010E-03 2.762463036 0.6741923307E-03 2.777860361 0.6558633073E-03 2.793257687 0.6369568790E-03 2.808655013 0.6176074688E-03 2.824052339 0.5978879996E-03 2.839449664 0.5778558392E-03 2.854846990 0.5575651559E-03 2.870244316 0.5370716009E-03 2.885641641 0.5164347640E-03 2.901038967 0.4957199475E-03 2.916436293 0.4749998079E-03 2.931833619 0.4543561085E-03 2.947230944 0.4338817115E-03 2.962628270 0.4136828879E-03 2.978025596 0.3938819780E-03 2.993422921 0.3746203719E-03 3.008820247 0.3560616754E-03 3.024217573 0.3383947406E-03 3.039614899 0.3218359623E-03 3.055012224 0.3066298379E-03 3.070409550 0.2930463154E-03 3.085806876 0.2813730876E-03 3.101204201 0.2719010714E-03 3.116601527 0.2649023831E-03 3.131998853 0.2606025030E-03 3.147396179 0.2591515999E-03 0.000000000 0.2057951587E-10 0.1588994284E-01 0.3110564968E-04 0.3177988568E-01 0.6230316667E-04 0.4766982851E-01 0.9368103042E-04 0.6355977135E-01 0.1253210607E-03 0.7944971419E-01 0.1572953703E-03 0.9533965703E-01 0.1896636350E-03 0.1112295999 0.2224707575E-03 0.1271195427 0.2557449738E-03 0.1430094855 0.2894964349E-03 0.1588994284 0.3237162687E-03 0.1747893712 0.3583761139E-03 0.1906793141 0.3934280991E-03 0.2065692569 0.4288052305E-03 0.2224591997 0.4644221450E-03 0.2383491426 0.5001761804E-03 0.2542390854 0.5359487100E-03 0.2701290283 0.5716066927E-03 0.2860189711 0.6070043837E-03 0.3019089139 0.6419851547E-03 0.3177988568 0.6763833667E-03 0.3336887996 0.7100262346E-03 0.3495787424 0.7427356077E-03 0.3654686853 0.7743295674E-03 0.3813586281 0.8046236948E-03 0.3972485710 0.7988229102E-03 0.4131385138 0.7584331479E-03 0.4290284566 0.7165580645E-03 0.4449183995 0.6737949399E-03 0.4608083423 0.6307650378E-03 0.4766982851 0.5881891810E-03 0.4925882280 0.5469396936E-03 0.5084781708 0.5080846446E-03 0.5243681137 0.4729191786E-03 0.5402580565 0.4429603290E-03 0.5561479993 0.4198624858E-03 0.5720379422 0.4052077900E-03 0.5879278850 0.4001756680E-03 0.6039174156 0.4044883437E-03 0.6199069461 0.4170658042E-03 0.6358964767 0.4369304278E-03 0.6518860072 0.4627338675E-03 0.6678755378 0.4930137051E-03 0.6838650683 0.5263700854E-03 0.6998545989 0.5615458684E-03 0.7158441294 0.5974339343E-03 0.7318336600 0.6330367221E-03 0.7478231905 0.6673815004E-03 0.7638127211 0.6993286643E-03 0.7798022516 0.7267043273E-03 0.7957917822 0.7358157616E-03 0.8117813127 0.7071885772E-03 0.8277708433 0.6994132245E-03 0.8437603738 0.7207209567E-03 0.8597499044 0.7414025728E-03 0.8757394349 0.7615732616E-03 0.8917289655 0.7781466716E-03 0.9077184961 0.7644481306E-03 0.9237080266 0.7485495541E-03 0.9396975572 0.7310963524E-03 0.9556870877 0.7127962975E-03 0.9716766183 0.6947696209E-03 0.9876661488 0.6794547302E-03 1.003655679 0.6727193688E-03 1.019645210 0.6828036620E-03 1.035634740 0.7086214213E-03 1.051624271 0.7426378713E-03 1.067613802 0.7801049841E-03 1.083603332 0.7845689880E-03 1.099592863 0.7538843613E-03 1.115582393 0.7218257036E-03 1.131571924 0.6885401191E-03 1.147561454 0.6541606780E-03 1.163550985 0.6188137421E-03 1.179540515 0.5826213488E-03 1.195530046 0.5457014376E-03 1.211519577 0.5081670770E-03 1.227509107 0.4701252398E-03 1.243498638 0.4316754243E-03 1.259488168 0.3929083058E-03 1.275477699 0.3539045465E-03 1.291467229 0.3147338592E-03 1.307456760 0.2754543994E-03 1.323446290 0.2361125396E-03 1.339435821 0.1967430596E-03 1.355425351 0.1573697690E-03 1.371414882 0.1180065534E-03 1.387404413 0.7865881659E-04 1.403393943 0.3932527005E-04 1.419383474 0.2062956135E-10 1.435294739 0.1278302379E-04 1.451206004 0.2553441114E-04 1.467117269 0.3822261477E-04 1.483028534 0.5081626546E-04 1.498939799 0.6328426049E-04 1.514851064 0.7559585124E-04 1.530762330 0.8772072986E-04 1.546673595 0.9962911437E-04 1.562584860 0.1112918323E-03 1.578496125 0.1226804020E-03 1.594407390 0.1337671114E-03 1.610318655 0.1445250942E-03 1.626229920 0.1549284020E-03 1.642141185 0.1649520729E-03 1.658052451 0.1745721951E-03 1.673963716 0.1837659659E-03 1.689874981 0.1925117449E-03 1.705786246 0.2007891010E-03 1.721697511 0.2085788534E-03 1.737608776 0.2158631050E-03 1.753520041 0.2226252700E-03 1.769431306 0.2288500938E-03 1.785342572 0.2345236666E-03 1.801253837 0.2396334308E-03 1.817165102 0.2441681828E-03 1.833076367 0.2481180696E-03 1.848987632 0.2514745828E-03 1.864898897 0.2542305487E-03 1.880810162 0.2563801179E-03 1.896721427 0.2579187548E-03 1.912632693 0.2588432274E-03 1.928543958 0.2591515999E-03 1.944455223 0.2637865572E-03 1.960366488 0.2771826440E-03 1.976277753 0.2980381792E-03 1.992189018 0.3247323342E-03 2.008100283 0.3557154944E-03 2.024011548 0.3896886245E-03 2.039922814 0.4256276570E-03 2.055834079 0.4627404322E-03 2.071745344 0.5004085975E-03 2.087656609 0.5381339233E-03 2.103567874 0.5754904535E-03 2.119479139 0.6120725301E-03 2.135390404 0.6474081977E-03 2.151301669 0.6807272655E-03 2.167212935 0.7100575456E-03 2.183124200 0.7283357327E-03 2.199035465 0.7235382139E-03 2.214946730 0.7034775348E-03 2.230857995 0.6782652923E-03 2.246769260 0.6509205439E-03 2.262680525 0.6225172646E-03 2.278591790 0.5936700152E-03 2.294503056 0.5648771377E-03 2.310414321 0.5366250083E-03 2.326325586 0.5094294701E-03 2.342236851 0.4838548740E-03 2.358148116 0.4605197668E-03 2.374059381 0.4400884339E-03 2.389970646 0.4232439087E-03 2.405881911 0.4106386216E-03 2.421793177 0.4028245931E-03 2.437704442 0.4001756680E-03 2.453176228 0.4023951121E-03 2.468648015 0.4089415919E-03 2.484119801 0.4194978660E-03 2.499591588 0.4335894170E-03 2.515063374 0.4506461070E-03 2.530535160 0.4700606662E-03 2.546006947 0.4912334753E-03 2.561478733 0.5136004590E-03 2.576950520 0.5366457484E-03 2.592422306 0.5599024508E-03 2.607894093 0.5829443978E-03 2.623365879 0.6053702922E-03 2.638837666 0.6267799939E-03 2.654309452 0.6467413484E-03 2.669781238 0.6647462641E-03 2.685253025 0.6801606033E-03 2.700724811 0.6967556747E-03 2.716196598 0.7130121950E-03 2.731668384 0.7197483539E-03 2.747065710 0.7304152402E-03 2.762463036 0.7461789831E-03 2.777860361 0.7619987966E-03 2.793257687 0.7414120412E-03 2.808655013 0.7184687137E-03 2.824052339 0.6946506685E-03 2.839449664 0.6701858322E-03 2.854846990 0.6452212670E-03 2.870244316 0.6198673989E-03 2.885641641 0.5942185036E-03 2.901038967 0.5683634927E-03 2.916436293 0.5423925094E-03 2.931833619 0.5164017391E-03 2.947230944 0.4904976101E-03 2.962628270 0.4648010440E-03 2.978025596 0.4394521784E-03 2.993422921 0.4146158544E-03 3.008820247 0.3904880317E-03 3.024217573 0.3673030771E-03 3.039614899 0.3453414520E-03 3.055012224 0.3249365478E-03 3.070409550 0.3064781372E-03 3.085806876 0.2904081696E-03 3.101204201 0.2772030397E-03 3.116601527 0.2673367064E-03 3.131998853 0.2612237212E-03 3.147396179 0.2591515999E-03 0.000000000 0.2062956135E-10 0.1588994284E-01 0.5515240561E-04 0.3177988568E-01 0.1101136541E-03 0.4766982851E-01 0.1646942073E-03 0.6355977135E-01 0.2187077414E-03 0.7944971419E-01 0.2719726946E-03 0.9533965703E-01 0.3243137444E-03 0.1112295999 0.3755631861E-03 0.1271195427 0.4255621869E-03 0.1430094855 0.4741618799E-03 0.1588994284 0.5212242543E-03 0.1747893712 0.5666227755E-03 0.1906793141 0.6102426289E-03 0.2065692569 0.6519803948E-03 0.2224591997 0.6917427762E-03 0.2383491426 0.7294435767E-03 0.2542390854 0.7649970412E-03 0.2701290283 0.7983026333E-03 0.2860189711 0.8292064747E-03 0.3019089139 0.8573864443E-03 0.3177988568 0.8819205193E-03 0.3336887996 0.8991874613E-03 0.3495787424 0.8967304349E-03 0.3654686853 0.8713912056E-03 0.3813586281 0.8369815720E-03 0.3972485710 0.8334317717E-03 0.4131385138 0.8605655043E-03 0.4290284566 0.8858325282E-03 0.4449183995 0.9090313235E-03 0.4608083423 0.9299405988E-03 0.4766982851 0.9482996507E-03 0.4925882280 0.9637799291E-03 0.5084781708 0.9759797013E-03 0.5243681137 0.9845761935E-03 0.5402580565 0.9897567375E-03 0.5561479993 0.9924110162E-03 0.5720379422 0.9935710983E-03 0.5879278850 0.9938893502E-03 0.6039174156 0.9933177239E-03 0.6199069461 0.9915213567E-03 0.6358964767 0.9882026540E-03 0.6518860072 0.9826567417E-03 0.6678755378 0.9735148719E-03 0.6838650683 0.9592391593E-03 0.6998545989 0.9395561915E-03 0.7158441294 0.9152815229E-03 0.7318336600 0.8872972579E-03 0.7478231905 0.8563581568E-03 0.7638127211 0.8233014314E-03 0.7798022516 0.7899039038E-03 0.7957917822 0.7693259174E-03 0.8117813127 0.7804129148E-03 0.8277708433 0.7918981964E-03 0.8437603738 0.7969795994E-03 0.8597499044 0.7955813442E-03 0.8757394349 0.7888704023E-03 0.8917289655 0.7813558346E-03 0.9077184961 0.8008642845E-03 0.9237080266 0.8201829526E-03 0.9396975572 0.8393329455E-03 0.9556870877 0.8581973903E-03 0.9716766183 0.8762897062E-03 0.9876661488 0.8917888473E-03 1.003655679 0.8978935468E-03 1.019645210 0.8868239288E-03 1.035634740 0.8659199380E-03 1.051624271 0.8410006015E-03 1.067613802 0.8136985113E-03 1.083603332 0.8185270823E-03 1.099592863 0.8561306946E-03 1.115582393 0.8905463565E-03 1.131571924 0.9139627848E-03 1.147561454 0.9077930243E-03 1.163550985 0.8810448618E-03 1.179540515 0.8468468485E-03 1.195530046 0.8081516491E-03 1.211519577 0.7657776486E-03 1.227509107 0.7200989734E-03 1.243498638 0.6713697247E-03 1.259488168 0.6198100212E-03 1.275477699 0.5656345917E-03 1.291467229 0.5090635820E-03 1.307456760 0.4503267512E-03 1.323446290 0.3896648333E-03 1.339435821 0.3273295229E-03 1.355425351 0.2635827142E-03 1.371414882 0.1986952901E-03 1.387404413 0.1329456161E-03 1.403393943 0.6661783166E-04 1.419383474 0.2089859716E-10 1.435294739 0.4999015884E-04 1.451206004 0.9985964513E-04 1.467117269 0.1494880696E-03 1.483028534 0.1987556081E-03 1.498939799 0.2475432817E-03 1.514851064 0.2957332324E-03 1.530762330 0.3432089937E-03 1.546673595 0.3898557550E-03 1.562584860 0.4355606155E-03 1.578496125 0.4802128266E-03 1.594407390 0.5237040174E-03 1.610318655 0.5659283977E-03 1.626229920 0.6067829279E-03 1.642141185 0.6461674423E-03 1.658052451 0.6839846978E-03 1.673963716 0.7201403050E-03 1.689874981 0.7545424581E-03 1.705786246 0.7871013024E-03 1.721697511 0.8177276117E-03 1.737608776 0.8463300413E-03 1.753520041 0.8728091943E-03 1.769431306 0.8970437633E-03 1.785342572 0.9188543107E-03 1.801253837 0.9378938493E-03 1.817165102 0.9532718592E-03 1.833076367 0.9625983076E-03 1.848987632 0.9639316217E-03 1.864898897 0.9611086724E-03 1.880810162 0.9576746910E-03 1.896721427 0.9548520533E-03 1.912632693 0.9530553723E-03 1.928543958 0.9524422393E-03 1.944455223 0.9518748369E-03 1.960366488 0.9501617672E-03 1.976277753 0.9472709582E-03 1.992189018 0.9431506425E-03 2.008100283 0.9377318561E-03 2.024011548 0.9309320996E-03 2.039922814 0.9226606331E-03 2.055834079 0.9128261125E-03 2.071745344 0.9013473585E-03 2.087656609 0.8881682059E-03 2.103567874 0.8732785356E-03 2.119479139 0.8567486396E-03 2.135390404 0.8388033370E-03 2.151301669 0.8200433776E-03 2.167212935 0.8023390149E-03 2.183124200 0.7927090762E-03 2.199035465 0.8031808031E-03 2.214946730 0.8259854172E-03 2.230857995 0.8510890639E-03 2.246769260 0.8755801093E-03 2.262680525 0.8985190924E-03 2.278591790 0.9194520110E-03 2.294503056 0.9380680046E-03 2.310414321 0.9541003250E-03 2.326325586 0.9673037137E-03 2.342236851 0.9774940466E-03 2.358148116 0.9846777967E-03 2.374059381 0.9892153832E-03 2.389970646 0.9917878098E-03 2.405881911 0.9931136746E-03 2.421793177 0.9937178375E-03 2.437704442 0.9938893502E-03 2.453176228 0.9935782877E-03 2.468648015 0.9926283060E-03 2.484119801 0.9909910466E-03 2.499591588 0.9885928534E-03 2.515063374 0.9853455665E-03 2.530535160 0.9811614284E-03 2.546006947 0.9759702237E-03 2.561478733 0.9697353667E-03 2.576950520 0.9624656387E-03 2.592422306 0.9542212730E-03 2.607894093 0.9393557415E-03 2.623365879 0.9217045984E-03 2.638837666 0.9030441286E-03 2.654309452 0.8836105402E-03 2.669781238 0.8637284450E-03 2.685253025 0.8439274424E-03 2.700724811 0.8252614772E-03 2.716196598 0.8101873235E-03 2.731668384 0.8038452601E-03 2.747065710 0.7976432339E-03 2.762463036 0.7825297867E-03 2.777860361 0.7630642809E-03 2.793257687 0.7774075421E-03 2.808655013 0.7922863854E-03 2.824052339 0.8065829971E-03 2.839449664 0.8202660411E-03 2.854846990 0.8333133718E-03 2.870244316 0.8457080427E-03 2.885641641 0.8574367008E-03 2.901038967 0.8684888513E-03 2.916436293 0.8788564770E-03 2.931833619 0.8885338123E-03 2.947230944 0.8975171847E-03 2.962628270 0.9058048845E-03 2.978025596 0.9133970461E-03 2.993422921 0.9202955328E-03 3.008820247 0.9265038203E-03 3.024217573 0.9320268729E-03 3.039614899 0.9368709961E-03 3.055012224 0.9410436407E-03 3.070409550 0.9445531213E-03 3.085806876 0.9474082116E-03 3.101204201 0.9496175938E-03 3.116601527 0.9511891743E-03 3.131998853 0.9521293350E-03 3.147396179 0.9524422393E-03 0.000000000 0.1215508796E-02 0.1588994284E-01 0.1215045359E-02 0.3177988568E-01 0.1213660368E-02 0.4766982851E-01 0.1211369681E-02 0.6355977135E-01 0.1208199405E-02 0.7944971419E-01 0.1204185417E-02 0.9533965703E-01 0.1199372717E-02 0.1112295999 0.1193814626E-02 0.1271195427 0.1187571858E-02 0.1430094855 0.1180711486E-02 0.1588994284 0.1173305831E-02 0.1747893712 0.1165431302E-02 0.1906793141 0.1156295538E-02 0.2065692569 0.1142705128E-02 0.2224591997 0.1127162975E-02 0.2383491426 0.1109574042E-02 0.2542390854 0.1089876206E-02 0.2701290283 0.1068058695E-02 0.2860189711 0.1044203525E-02 0.3019089139 0.1018602973E-02 0.3177988568 0.9921936170E-03 0.3336887996 0.9686579670E-03 0.3495787424 0.9605632952E-03 0.3654686853 0.9712302778E-03 0.3813586281 0.9870651557E-03 0.3972485710 0.1003025032E-02 0.4131385138 0.1017937657E-02 0.4290284566 0.1031479698E-02 0.4449183995 0.1033015405E-02 0.4608083423 0.1028977324E-02 0.4766982851 0.1025826252E-02 0.4925882280 0.1023776420E-02 0.5084781708 0.1023126367E-02 0.5243681137 0.1024108485E-02 0.5402580565 0.1026459359E-02 0.5561479993 0.1029228779E-02 0.5720379422 0.1031340711E-02 0.5879278850 0.1032116111E-02 0.6039174156 0.1030936506E-02 0.6199069461 0.1027353821E-02 0.6358964767 0.1021345467E-02 0.6518860072 0.1013252742E-02 0.6678755378 0.1004211916E-02 0.6838650683 0.9957542780E-03 0.6998545989 0.9883640603E-03 0.7158441294 0.9816085568E-03 0.7318336600 0.9751417077E-03 0.7478231905 0.9689367373E-03 0.7638127211 0.9632389855E-03 0.7798022516 0.9585605508E-03 0.7957917822 0.9557157435E-03 0.8117813127 0.9557851352E-03 0.8277708433 0.9597927194E-03 0.8437603738 0.9680462650E-03 0.8597499044 0.9797375112E-03 0.8757394349 0.9933560783E-03 0.8917289655 0.1007375117E-02 0.9077184961 0.1020560658E-02 0.9237080266 0.1016356759E-02 0.9396975572 0.1001941711E-02 0.9556870877 0.9862562934E-03 0.9716766183 0.9698227389E-03 0.9876661488 0.9544781957E-03 1.003655679 0.9470185628E-03 1.019645210 0.9551970120E-03 1.035634740 0.9716276078E-03 1.051624271 0.9904297361E-03 1.067613802 0.1009898570E-02 1.083603332 0.1023281117E-02 1.099592863 0.1005955624E-02 1.115582393 0.9872802280E-03 1.131571924 0.9744912035E-03 1.147561454 0.9857691278E-03 1.163550985 0.1011841178E-02 1.179540515 0.1039437449E-02 1.195530046 0.1065574564E-02 1.211519577 0.1089503025E-02 1.227509107 0.1111006458E-02 1.243498638 0.1130065776E-02 1.259488168 0.1146759961E-02 1.275477699 0.1161222603E-02 1.291467229 0.1173615229E-02 1.307456760 0.1184107638E-02 1.323446290 0.1192863132E-02 1.339435821 0.1200028417E-02 1.355425351 0.1205727902E-02 1.371414882 0.1210061516E-02 1.387404413 0.1213104840E-02 1.403393943 0.1214910340E-02 1.419383474 0.1215508796E-02 1.435294739 0.1214951550E-02 1.451206004 0.1213283672E-02 1.467117269 0.1210516743E-02 1.483028534 0.1206670068E-02 1.498939799 0.1201770689E-02 1.514851064 0.1195853388E-02 1.530762330 0.1188960702E-02 1.546673595 0.1181142923E-02 1.562584860 0.1172458100E-02 1.578496125 0.1162972029E-02 1.594407390 0.1152758224E-02 1.610318655 0.1141897877E-02 1.626229920 0.1130479793E-02 1.642141185 0.1118600305E-02 1.658052451 0.1106363178E-02 1.673963716 0.1093879528E-02 1.689874981 0.1081267818E-02 1.705786246 0.1068654059E-02 1.721697511 0.1056172539E-02 1.737608776 0.1043967773E-02 1.753520041 0.1032199425E-02 1.769431306 0.1021054921E-02 1.785342572 0.1010784187E-02 1.801253837 0.1001807355E-02 1.817165102 0.9950888210E-03 1.833076367 0.9930911290E-03 1.848987632 0.9978247977E-03 1.864898897 0.1005516105E-02 1.880810162 0.1012675013E-02 1.896721427 0.1018124404E-02 1.912632693 0.1021483302E-02 1.928543958 0.1022614840E-02 1.944455223 0.1022710705E-02 1.960366488 0.1022998736E-02 1.976277753 0.1023479895E-02 1.992189018 0.1024154758E-02 2.008100283 0.1025022388E-02 2.024011548 0.1026079348E-02 2.039922814 0.1027319049E-02 2.055834079 0.1028731449E-02 2.071745344 0.1030302934E-02 2.087656609 0.1032016164E-02 2.103567874 0.1033849542E-02 2.119479139 0.1035775759E-02 2.135390404 0.1037758358E-02 2.151301669 0.1039743754E-02 2.167212935 0.1041642284E-02 2.183124200 0.1043281924E-02 2.199035465 0.1044305511E-02 2.214946730 0.1044081603E-02 2.230857995 0.1042171749E-02 2.246769260 0.1039084597E-02 2.262680525 0.1035637539E-02 2.278591790 0.1032334240E-02 2.294503056 0.1029454130E-02 2.310414321 0.1027200130E-02 2.326325586 0.1025764976E-02 2.342236851 0.1025323860E-02 2.358148116 0.1025929275E-02 2.374059381 0.1027355204E-02 2.389970646 0.1029112226E-02 2.405881911 0.1030690744E-02 2.421793177 0.1031747935E-02 2.437704442 0.1032116111E-02 2.453176228 0.1031486963E-02 2.468648015 0.1029560591E-02 2.484119801 0.1026230634E-02 2.499591588 0.1021353411E-02 2.515063374 0.1014791072E-02 2.530535160 0.1006452493E-02 2.546006947 0.9963153767E-03 2.561478733 0.9844247977E-03 2.576950520 0.9708773539E-03 2.592422306 0.9558035202E-03 2.607894093 0.9451161570E-03 2.623365879 0.9353203575E-03 2.638837666 0.9250680973E-03 2.654309452 0.9146759168E-03 2.669781238 0.9045737552E-03 2.685253025 0.8953447242E-03 2.700724811 0.8877486622E-03 2.716196598 0.8826639240E-03 2.731668384 0.8808627427E-03 2.747065710 0.8864827383E-03 2.762463036 0.8998519360E-03 2.777860361 0.9164165412E-03 2.793257687 0.9340206416E-03 2.808655013 0.9517820555E-03 2.824052339 0.9693022349E-03 2.839449664 0.9863758533E-03 2.854846990 0.1002883787E-02 2.870244316 0.1018749617E-02 2.885641641 0.1033920086E-02 2.901038967 0.1047487540E-02 2.916436293 0.1044568009E-02 2.931833619 0.1041802597E-02 2.947230944 0.1039199953E-02 2.962628270 0.1036768223E-02 2.978025596 0.1034514919E-02 2.993422921 0.1032446775E-02 3.008820247 0.1030569574E-02 3.024217573 0.1028887974E-02 3.039614899 0.1027405350E-02 3.055012224 0.1026123674E-02 3.070409550 0.1025043501E-02 3.085806876 0.1024164093E-02 3.101204201 0.1023483711E-02 3.116601527 0.1023000090E-02 3.131998853 0.1022711005E-02 3.147396179 0.1022614840E-02 0.000000000 0.1215508796E-02 0.1588994284E-01 0.1215232460E-02 0.3177988568E-01 0.1214390359E-02 0.4766982851E-01 0.1212943637E-02 0.6355977135E-01 0.1210828906E-02 0.7944971419E-01 0.1207960252E-02 0.9533965703E-01 0.1204231918E-02 0.1112295999 0.1199521576E-02 0.1271195427 0.1193694056E-02 0.1430094855 0.1186605445E-02 0.1588994284 0.1178107435E-02 0.1747893712 0.1168051879E-02 0.1906793141 0.1157167219E-02 0.2065692569 0.1148594638E-02 0.2224591997 0.1139795211E-02 0.2383491426 0.1130850107E-02 0.2542390854 0.1121839012E-02 0.2701290283 0.1112839228E-02 0.2860189711 0.1103924908E-02 0.3019089139 0.1095166430E-02 0.3177988568 0.1086629952E-02 0.3336887996 0.1078377174E-02 0.3495787424 0.1070465354E-02 0.3654686853 0.1062947647E-02 0.3813586281 0.1055873899E-02 0.3972485710 0.1049292082E-02 0.4131385138 0.1043250773E-02 0.4290284566 0.1037803372E-02 0.4449183995 0.1043566598E-02 0.4608083423 0.1054198839E-02 0.4766982851 0.1063411454E-02 0.4925882280 0.1071253486E-02 0.5084781708 0.1077777963E-02 0.5243681137 0.1083036194E-02 0.5402580565 0.1087074110E-02 0.5561479993 0.1089929746E-02 0.5720379422 0.1091631457E-02 0.5879278850 0.1092196726E-02 0.6039174156 0.1091624661E-02 0.6199069461 0.1090048593E-02 0.6358964767 0.1087834051E-02 0.6518860072 0.1085423808E-02 0.6678755378 0.1083169226E-02 0.6838650683 0.1081244716E-02 0.6998545989 0.1079670328E-02 0.7158441294 0.1078379261E-02 0.7318336600 0.1077273552E-02 0.7478231905 0.1076255416E-02 0.7638127211 0.1075242232E-02 0.7798022516 0.1074173547E-02 0.7957917822 0.1073014570E-02 0.8117813127 0.1071758062E-02 0.8277708433 0.1070425424E-02 0.8437603738 0.1066831607E-02 0.8597499044 0.1059511801E-02 0.8757394349 0.1050872057E-02 0.8917289655 0.1040831451E-02 0.9077184961 0.1029333314E-02 0.9237080266 0.1031957523E-02 0.9396975572 0.1040869556E-02 0.9556870877 0.1047120536E-02 0.9716766183 0.1051321285E-02 0.9876661488 0.1054351121E-02 1.003655679 0.1056584196E-02 1.019645210 0.1057426905E-02 1.035634740 0.1055167141E-02 1.051624271 0.1048507012E-02 1.067613802 0.1037680158E-02 1.083603332 0.1029401678E-02 1.099592863 0.1048590881E-02 1.115582393 0.1067216609E-02 1.131571924 0.1085076255E-02 1.147561454 0.1101999160E-02 1.163550985 0.1117843217E-02 1.179540515 0.1132495277E-02 1.195530046 0.1145872472E-02 1.211519577 0.1157923248E-02 1.227509107 0.1168627562E-02 1.243498638 0.1177951634E-02 1.259488168 0.1185104751E-02 1.275477699 0.1191512810E-02 1.291467229 0.1197118965E-02 1.307456760 0.1201899115E-02 1.323446290 0.1205862095E-02 1.339435821 0.1209045865E-02 1.355425351 0.1211509844E-02 1.371414882 0.1213324504E-02 1.387404413 0.1214559918E-02 1.403393943 0.1215274992E-02 1.419383474 0.1215508796E-02 1.435294739 0.1215386730E-02 1.451206004 0.1215021653E-02 1.467117269 0.1214416915E-02 1.483028534 0.1213578075E-02 1.498939799 0.1212512851E-02 1.514851064 0.1211231065E-02 1.530762330 0.1209744561E-02 1.546673595 0.1208067114E-02 1.562584860 0.1206214316E-02 1.578496125 0.1204203448E-02 1.594407390 0.1202053335E-02 1.610318655 0.1199784188E-02 1.626229920 0.1197417424E-02 1.642141185 0.1194975483E-02 1.658052451 0.1192481620E-02 1.673963716 0.1189959694E-02 1.689874981 0.1187433943E-02 1.705786246 0.1184928754E-02 1.721697511 0.1182468423E-02 1.737608776 0.1180076915E-02 1.753520041 0.1177777625E-02 1.769431306 0.1175593133E-02 1.785342572 0.1173544974E-02 1.801253837 0.1171653409E-02 1.817165102 0.1169937210E-02 1.833076367 0.1168413456E-02 1.848987632 0.1167097352E-02 1.864898897 0.1166002057E-02 1.880810162 0.1165138545E-02 1.896721427 0.1164515479E-02 1.912632693 0.1164139116E-02 1.928543958 0.1164013240E-02 1.944455223 0.1163384047E-02 1.960366488 0.1161511457E-02 1.976277753 0.1158440343E-02 1.992189018 0.1154245086E-02 2.008100283 0.1149028617E-02 2.024011548 0.1142920434E-02 2.039922814 0.1136073055E-02 2.055834079 0.1128656491E-02 2.071745344 0.1120850698E-02 2.087656609 0.1112836596E-02 2.103567874 0.1104787123E-02 2.119479139 0.1096860504E-02 2.135390404 0.1089198439E-02 2.151301669 0.1081932727E-02 2.167212935 0.1075206693E-02 2.183124200 0.1069226842E-02 2.199035465 0.1064372595E-02 2.214946730 0.1061292828E-02 2.230857995 0.1060445777E-02 2.246769260 0.1061351676E-02 2.262680525 0.1063237566E-02 2.278591790 0.1065666018E-02 2.294503056 0.1068451145E-02 2.310414321 0.1071512780E-02 2.326325586 0.1074798148E-02 2.342236851 0.1078235017E-02 2.358148116 0.1081700403E-02 2.374059381 0.1085009279E-02 2.389970646 0.1087930639E-02 2.405881911 0.1090225906E-02 2.421793177 0.1091692443E-02 2.437704442 0.1092196726E-02 2.453176228 0.1091948329E-02 2.468648015 0.1091247608E-02 2.484119801 0.1090217503E-02 2.499591588 0.1089029181E-02 2.515063374 0.1087858681E-02 2.530535160 0.1086845776E-02 2.546006947 0.1086071668E-02 2.561478733 0.1085516184E-02 2.576950520 0.1084981585E-02 2.592422306 0.1084714485E-02 2.607894093 0.1084694469E-02 2.623365879 0.1084877857E-02 2.638837666 0.1085207169E-02 2.654309452 0.1085619572E-02 2.669781238 0.1086053529E-02 2.685253025 0.1086453621E-02 2.700724811 0.1086773898E-02 2.716196598 0.1086952998E-02 2.731668384 0.1086994557E-02 2.747065710 0.1083051786E-02 2.762463036 0.1079125039E-02 2.777860361 0.1075253064E-02 2.793257687 0.1071446368E-02 2.808655013 0.1067715341E-02 2.824052339 0.1064070281E-02 2.839449664 0.1060521394E-02 2.854846990 0.1057078783E-02 2.870244316 0.1053752423E-02 2.885641641 0.1050552135E-02 2.901038967 0.1048355528E-02 2.916436293 0.1062024830E-02 2.931833619 0.1074902608E-02 2.947230944 0.1086967556E-02 2.962628270 0.1098201422E-02 2.978025596 0.1108588362E-02 2.993422921 0.1118114514E-02 3.008820247 0.1126767709E-02 3.024217573 0.1134537273E-02 3.039614899 0.1141413884E-02 3.055012224 0.1147389478E-02 3.070409550 0.1152457168E-02 3.085806876 0.1156611200E-02 3.101204201 0.1159846907E-02 3.116601527 0.1162160686E-02 3.131998853 0.1163549974E-02 3.147396179 0.1164013240E-02 0.000000000 0.1215508796E-02 0.1588994284E-01 0.1215361805E-02 0.3177988568E-01 0.1214920247E-02 0.4766982851E-01 0.1214182418E-02 0.6355977135E-01 0.1213145633E-02 0.7944971419E-01 0.1211806459E-02 0.9533965703E-01 0.1210161035E-02 0.1112295999 0.1208205465E-02 0.1271195427 0.1205936280E-02 0.1430094855 0.1203350961E-02 0.1588994284 0.1200448489E-02 0.1747893712 0.1197229939E-02 0.1906793141 0.1193699057E-02 0.2065692569 0.1189862837E-02 0.2224591997 0.1185732056E-02 0.2383491426 0.1181321744E-02 0.2542390854 0.1176651578E-02 0.2701290283 0.1171746156E-02 0.2860189711 0.1166635160E-02 0.3019089139 0.1161353354E-02 0.3177988568 0.1155940429E-02 0.3336887996 0.1150440667E-02 0.3495787424 0.1144902434E-02 0.3654686853 0.1139377489E-02 0.3813586281 0.1133920146E-02 0.3972485710 0.1128586294E-02 0.4131385138 0.1123432325E-02 0.4290284566 0.1118514010E-02 0.4449183995 0.1113885379E-02 0.4608083423 0.1109597664E-02 0.4766982851 0.1105698346E-02 0.4925882280 0.1102230364E-02 0.5084781708 0.1099231506E-02 0.5243681137 0.1096733988E-02 0.5402580565 0.1094764212E-02 0.5561479993 0.1093342669E-02 0.5720379422 0.1092483936E-02 0.5879278850 0.1092196726E-02 0.6039174156 0.1092208608E-02 0.6199069461 0.1092239466E-02 0.6358964767 0.1092274809E-02 0.6518860072 0.1092290097E-02 0.6678755378 0.1092250215E-02 0.6838650683 0.1092108871E-02 0.6998545989 0.1091808024E-02 0.7158441294 0.1091277501E-02 0.7318336600 0.1090434951E-02 0.7478231905 0.1089186299E-02 0.7638127211 0.1087426807E-02 0.7798022516 0.1085042839E-02 0.7957917822 0.1081914311E-02 0.8117813127 0.1077917764E-02 0.8277708433 0.1072929926E-02 0.8437603738 0.1069067610E-02 0.8597499044 0.1067766700E-02 0.8757394349 0.1066639670E-02 0.8917289655 0.1065846912E-02 0.9077184961 0.1065607649E-02 0.9237080266 0.1066209880E-02 0.9396975572 0.1067928282E-02 0.9556870877 0.1070670977E-02 0.9716766183 0.1073649203E-02 0.9876661488 0.1075856125E-02 1.003655679 0.1076816488E-02 1.019645210 0.1077035751E-02 1.035634740 0.1078145530E-02 1.051624271 0.1081374186E-02 1.067613802 0.1086447053E-02 1.083603332 0.1092810231E-02 1.099592863 0.1100118218E-02 1.115582393 0.1108145275E-02 1.131571924 0.1116709142E-02 1.147561454 0.1125640892E-02 1.163550985 0.1134775216E-02 1.179540515 0.1143948735E-02 1.195530046 0.1153001489E-02 1.211519577 0.1161779776E-02 1.227509107 0.1170139741E-02 1.243498638 0.1177996011E-02 1.259488168 0.1186067784E-02 1.275477699 0.1192907457E-02 1.291467229 0.1198600698E-02 1.307456760 0.1203249031E-02 1.323446290 0.1206963860E-02 1.339435821 0.1209860005E-02 1.355425351 0.1212049067E-02 1.371414882 0.1213632956E-02 1.387404413 0.1214697937E-02 1.403393943 0.1215309563E-02 1.419383474 0.1215508796E-02 1.435294739 0.1215386730E-02 1.451206004 0.1215021653E-02 1.467117269 0.1214416915E-02 1.483028534 0.1213578075E-02 1.498939799 0.1212512851E-02 1.514851064 0.1211231065E-02 1.530762330 0.1209744561E-02 1.546673595 0.1208067114E-02 1.562584860 0.1206214316E-02 1.578496125 0.1204203448E-02 1.594407390 0.1202053335E-02 1.610318655 0.1199784188E-02 1.626229920 0.1197417424E-02 1.642141185 0.1194975483E-02 1.658052451 0.1192481620E-02 1.673963716 0.1189959694E-02 1.689874981 0.1187433943E-02 1.705786246 0.1184928754E-02 1.721697511 0.1182468423E-02 1.737608776 0.1180076915E-02 1.753520041 0.1177777625E-02 1.769431306 0.1175593133E-02 1.785342572 0.1173544974E-02 1.801253837 0.1171653409E-02 1.817165102 0.1169937210E-02 1.833076367 0.1168413456E-02 1.848987632 0.1167097352E-02 1.864898897 0.1166002057E-02 1.880810162 0.1165138545E-02 1.896721427 0.1164515479E-02 1.912632693 0.1164139116E-02 1.928543958 0.1164013240E-02 1.944455223 0.1163839485E-02 1.960366488 0.1163319882E-02 1.976277753 0.1162459397E-02 1.992189018 0.1161266268E-02 2.008100283 0.1159751927E-02 2.024011548 0.1157930914E-02 2.039922814 0.1155820750E-02 2.055834079 0.1153441783E-02 2.071745344 0.1150817014E-02 2.087656609 0.1147971885E-02 2.103567874 0.1144934040E-02 2.119479139 0.1141733066E-02 2.135390404 0.1138400198E-02 2.151301669 0.1134968006E-02 2.167212935 0.1131470060E-02 2.183124200 0.1127940574E-02 2.199035465 0.1124414044E-02 2.214946730 0.1120924877E-02 2.230857995 0.1117507014E-02 2.246769260 0.1114193574E-02 2.262680525 0.1111016494E-02 2.278591790 0.1108006207E-02 2.294503056 0.1105191340E-02 2.310414321 0.1102598440E-02 2.326325586 0.1100251748E-02 2.342236851 0.1098173001E-02 2.358148116 0.1096381277E-02 2.374059381 0.1094892871E-02 2.389970646 0.1093721210E-02 2.405881911 0.1092876786E-02 2.421793177 0.1092367118E-02 2.437704442 0.1092196726E-02 2.453176228 0.1092009082E-02 2.468648015 0.1091466122E-02 2.484119801 0.1090625740E-02 2.499591588 0.1089577513E-02 2.515063374 0.1088432016E-02 2.530535160 0.1087306207E-02 2.546006947 0.1086306945E-02 2.561478733 0.1085560352E-02 2.576950520 0.1085294685E-02 2.592422306 0.1085234883E-02 2.607894093 0.1085332499E-02 2.623365879 0.1085538754E-02 2.638837666 0.1085808709E-02 2.654309452 0.1086103013E-02 2.669781238 0.1086388480E-02 2.685253025 0.1086638162E-02 2.700724811 0.1086831258E-02 2.716196598 0.1086980130E-02 2.731668384 0.1087051244E-02 2.747065710 0.1091027506E-02 2.762463036 0.1095054557E-02 2.777860361 0.1099093130E-02 2.793257687 0.1103131829E-02 2.808655013 0.1107158956E-02 2.824052339 0.1111162432E-02 2.839449664 0.1115129736E-02 2.854846990 0.1119047842E-02 2.870244316 0.1122903174E-02 2.885641641 0.1126681568E-02 2.901038967 0.1130368262E-02 2.916436293 0.1133947906E-02 2.931833619 0.1137404609E-02 2.947230944 0.1140722020E-02 2.962628270 0.1143883446E-02 2.978025596 0.1146872011E-02 2.993422921 0.1149670853E-02 3.008820247 0.1152263344E-02 3.024217573 0.1154633340E-02 3.039614899 0.1156765448E-02 3.055012224 0.1158645295E-02 3.070409550 0.1160259791E-02 3.085806876 0.1161597384E-02 3.101204201 0.1162648283E-02 3.116601527 0.1163404660E-02 3.131998853 0.1163860803E-02 3.147396179 0.1164013240E-02 elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/PaxHeaders.21352/PHDLINES.OUT0000644000000000000000000000013213543334741024305 xustar0030 mtime=1569569249.300638961 30 atime=1569569249.299638962 30 ctime=1569569249.300638961 elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/PHDLINES.OUT0000644002504400250440000000106013543334741026351 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.9116315967E-03 0.000000000 0.1823263193E-02 0.5879278850 -0.9116315967E-03 0.5879278850 0.1823263193E-02 1.419383474 -0.9116315967E-03 1.419383474 0.1823263193E-02 1.928543958 -0.9116315967E-03 1.928543958 0.1823263193E-02 2.437704442 -0.9116315967E-03 2.437704442 0.1823263193E-02 2.731668384 -0.9116315967E-03 2.731668384 0.1823263193E-02 3.147396179 -0.9116315967E-03 3.147396179 0.1823263193E-02 elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334741023610 xustar0030 mtime=1569569249.304638959 29 atime=1569569249.30363896 30 ctime=1569569249.304638959 elk-6.3.2/examples/phonons-superconductivity/GaAs-DFPT/elk.in0000644002504400250440000000177613543334741025673 0ustar00dewhurstdewhurst00000000000000 ! Phonon dispersion of GaAs calculated with density functional perturbation ! theory (DFPT). Note the large number of radial mesh points required for ! convergence. This is because the gradients calculated in the muffin-tin ! have to be particularly accurate. ! Also note that the LO-TO splitting is not included in the dispersion. tasks 0 : ground state calculation 205 : phonon calculation with DFPT 220 : phonon dispersion plot ! scale up the number of radial mesh points nrmtscf 6.0 ngridq 2 2 2 ngridk 4 4 4 plot1d 7 200 0.0 0.0 1.0 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 avec 5.3435 5.3435 0.0000 5.3435 0.0000 5.3435 0.0000 5.3435 5.3435 sppath '../../../species/' atoms 2 : nspecies 'Ga.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'As.in' 1 0.25 0.25 0.25 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Nb-DFPT0000644000000000000000000000013213543334741022155 xustar0030 mtime=1569569249.352638928 30 atime=1569569249.308638956 30 ctime=1569569249.352638928 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/0000755002504400250440000000000013543334741024301 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/ALPHA2F.OUT0000644000000000000000000000013213543334741023640 xustar0030 mtime=1569569249.312638954 30 atime=1569569249.309638956 30 ctime=1569569249.312638954 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/ALPHA2F.OUT0000644002504400250440000004410413543334741025712 0ustar00dewhurstdewhurst00000000000000 -0.1214788429E-03 0.000000000 -0.1188063098E-03 0.000000000 -0.1161337768E-03 0.000000000 -0.1134612437E-03 0.000000000 -0.1107887107E-03 0.000000000 -0.1081161776E-03 0.000000000 -0.1054436446E-03 0.000000000 -0.1027711115E-03 0.000000000 -0.1000985785E-03 0.000000000 -0.9742604544E-04 0.000000000 -0.9475351239E-04 0.000000000 -0.9208097934E-04 0.000000000 -0.8940844629E-04 0.000000000 -0.8673591325E-04 0.000000000 -0.8406338020E-04 0.000000000 -0.8139084715E-04 0.000000000 -0.7871831410E-04 0.000000000 -0.7604578106E-04 0.000000000 -0.7337324801E-04 0.000000000 -0.7070071496E-04 0.000000000 -0.6802818191E-04 0.000000000 -0.6535564886E-04 0.000000000 -0.6268311582E-04 0.000000000 -0.6001058277E-04 0.000000000 -0.5733804972E-04 0.000000000 -0.5466551667E-04 0.000000000 -0.5199298362E-04 0.000000000 -0.4932045058E-04 0.000000000 -0.4664791753E-04 0.000000000 -0.4397538448E-04 0.000000000 -0.4130285143E-04 0.000000000 -0.3863031839E-04 0.000000000 -0.3595778534E-04 0.000000000 -0.3328525229E-04 0.000000000 -0.3061271924E-04 0.000000000 -0.2794018619E-04 0.000000000 -0.2526765315E-04 0.000000000 -0.2259512010E-04 0.000000000 -0.1992258705E-04 0.000000000 -0.1725005400E-04 0.000000000 -0.1457752095E-04 0.000000000 -0.1190498791E-04 0.000000000 -0.9232454859E-05 0.000000000 -0.6559921811E-05 0.000000000 -0.3887388763E-05 0.3801108487E-34 -0.1214855715E-05 0.3801108487E-34 0.1457677333E-05 0.6197129300E-09 0.4130210381E-05 0.6197129300E-09 0.6802743429E-05 0.1048194789E-07 0.9475276476E-05 0.9862234962E-08 0.1214780952E-04 0.9862234962E-08 0.1482034257E-04 0.4948219052E-07 0.1749287562E-04 0.4974567115E-07 0.2016540867E-04 0.2065159609E-06 0.2283794172E-04 0.2064282313E-06 0.2551047476E-04 0.4700093407E-06 0.2818300781E-04 0.1098097410E-05 0.3085554086E-04 0.1450322615E-05 0.3352807391E-04 0.2249805080E-05 0.3620060696E-04 0.2299490027E-05 0.3887314000E-04 0.2738248309E-05 0.4154567305E-04 0.4184096368E-05 0.4421820610E-04 0.6220368978E-05 0.4689073915E-04 0.7450004557E-05 0.4956327219E-04 0.1217122090E-04 0.5223580524E-04 0.1348206585E-04 0.5490833829E-04 0.1793631065E-04 0.5758087134E-04 0.1201078497E-04 0.6025340439E-04 0.2863514237E-04 0.6292593743E-04 0.2432934426E-04 0.6559847048E-04 0.3380218137E-04 0.6827100353E-04 0.3625309382E-04 0.7094353658E-04 0.4896928584E-04 0.7361606963E-04 0.5640155106E-04 0.7628860267E-04 0.5212492429E-04 0.7896113572E-04 0.7148191658E-04 0.8163366877E-04 0.8023089039E-04 0.8430620182E-04 0.8918821089E-04 0.8697873486E-04 0.9698401649E-04 0.8965126791E-04 0.1248459045E-03 0.9232380096E-04 0.1532548832E-03 0.9499633401E-04 0.1775887565E-03 0.9766886706E-04 0.1651870442E-03 0.1003414001E-03 0.1595840128E-03 0.1030139332E-03 0.2002683335E-03 0.1056864662E-03 0.2432766462E-03 0.1083589992E-03 0.2977323840E-03 0.1110315323E-03 0.2488172994E-03 0.1137040653E-03 0.3042284579E-03 0.1163765984E-03 0.3193929675E-03 0.1190491314E-03 0.4153687199E-03 0.1217216645E-03 0.4162909873E-03 0.1243941975E-03 0.4190759288E-03 0.1270667306E-03 0.5076066717E-03 0.1297392636E-03 0.5643792185E-03 0.1324117967E-03 0.6538184349E-03 0.1350843297E-03 0.6840598363E-03 0.1377568628E-03 0.7125154847E-03 0.1404293958E-03 0.7520137824E-03 0.1431019289E-03 0.7945140122E-03 0.1457744619E-03 0.8334516714E-03 0.1484469950E-03 0.9639524481E-03 0.1511195280E-03 0.9407677873E-03 0.1537920611E-03 0.1105787418E-02 0.1564645941E-03 0.1094633362E-02 0.1591371272E-03 0.1382073439E-02 0.1618096602E-03 0.1510714936E-02 0.1644821933E-03 0.1503748880E-02 0.1671547263E-03 0.1493542777E-02 0.1698272593E-03 0.1426354195E-02 0.1724997924E-03 0.1795407753E-02 0.1751723254E-03 0.2007551769E-02 0.1778448585E-03 0.2364998769E-02 0.1805173915E-03 0.2397984943E-02 0.1831899246E-03 0.2166709217E-02 0.1858624576E-03 0.2295813505E-02 0.1885349907E-03 0.2380975557E-02 0.1912075237E-03 0.2890545885E-02 0.1938800568E-03 0.3021138090E-02 0.1965525898E-03 0.3362073456E-02 0.1992251229E-03 0.3411429583E-02 0.2018976559E-03 0.3676574442E-02 0.2045701890E-03 0.3670684092E-02 0.2072427220E-03 0.3976415244E-02 0.2099152551E-03 0.4042918245E-02 0.2125877881E-03 0.4335465177E-02 0.2152603212E-03 0.4887157290E-02 0.2179328542E-03 0.5265472417E-02 0.2206053873E-03 0.5815736242E-02 0.2232779203E-03 0.5385582407E-02 0.2259504534E-03 0.5798599839E-02 0.2286229864E-03 0.5807222779E-02 0.2312955195E-03 0.6907092080E-02 0.2339680525E-03 0.7309227343E-02 0.2366405855E-03 0.8012009442E-02 0.2393131186E-03 0.7954803591E-02 0.2419856516E-03 0.7821591299E-02 0.2446581847E-03 0.7836098194E-02 0.2473307177E-03 0.8777246007E-02 0.2500032508E-03 0.9704545101E-02 0.2526757838E-03 0.1060571434E-01 0.2553483169E-03 0.1072647748E-01 0.2580208499E-03 0.1102255967E-01 0.2606933830E-03 0.1215533748E-01 0.2633659160E-03 0.1253633775E-01 0.2660384491E-03 0.1289422321E-01 0.2687109821E-03 0.1330075107E-01 0.2713835152E-03 0.1394043649E-01 0.2740560482E-03 0.1444152571E-01 0.2767285813E-03 0.1640975639E-01 0.2794011143E-03 0.1726860966E-01 0.2820736474E-03 0.1896692422E-01 0.2847461804E-03 0.1743672972E-01 0.2874187135E-03 0.1792206139E-01 0.2900912465E-03 0.1938982919E-01 0.2927637796E-03 0.2120087331E-01 0.2954363126E-03 0.2335018978E-01 0.2981088456E-03 0.2438911718E-01 0.3007813787E-03 0.2486007452E-01 0.3034539117E-03 0.2479545003E-01 0.3061264448E-03 0.2608320728E-01 0.3087989778E-03 0.2931329628E-01 0.3114715109E-03 0.3162515556E-01 0.3141440439E-03 0.3303621955E-01 0.3168165770E-03 0.3250297945E-01 0.3194891100E-03 0.3477157241E-01 0.3221616431E-03 0.3587087857E-01 0.3248341761E-03 0.3891490992E-01 0.3275067092E-03 0.4001779060E-01 0.3301792422E-03 0.4200440680E-01 0.3328517753E-03 0.4425786496E-01 0.3355243083E-03 0.4640391288E-01 0.3381968414E-03 0.4765271090E-01 0.3408693744E-03 0.4743674831E-01 0.3435419075E-03 0.4936986665E-01 0.3462144405E-03 0.5363899618E-01 0.3488869736E-03 0.5594309531E-01 0.3515595066E-03 0.5826045873E-01 0.3542320397E-03 0.5930710359E-01 0.3569045727E-03 0.6277595126E-01 0.3595771057E-03 0.6378059226E-01 0.3622496388E-03 0.6562482763E-01 0.3649221718E-03 0.6914307563E-01 0.3675947049E-03 0.7278953692E-01 0.3702672379E-03 0.7499796490E-01 0.3729397710E-03 0.7791020244E-01 0.3756123040E-03 0.7806831823E-01 0.3782848371E-03 0.8275036362E-01 0.3809573701E-03 0.8092061116E-01 0.3836299032E-03 0.8898054424E-01 0.3863024362E-03 0.9040715724E-01 0.3889749693E-03 0.9398954972E-01 0.3916475023E-03 0.9484933384E-01 0.3943200354E-03 0.9533566316E-01 0.3969925684E-03 0.1039066884 0.3996651015E-03 0.1055013963 0.4023376345E-03 0.1101860358 0.4050101676E-03 0.1073569943 0.4076827006E-03 0.1131476057 0.4103552337E-03 0.1170992170 0.4130277667E-03 0.1231283768 0.4157002998E-03 0.1217433843 0.4183728328E-03 0.1242152489 0.4210453658E-03 0.1269776060 0.4237178989E-03 0.1343215863 0.4263904319E-03 0.1372672256 0.4290629650E-03 0.1370632022 0.4317354980E-03 0.1413184658 0.4344080311E-03 0.1453467990 0.4370805641E-03 0.1507673067 0.4397530972E-03 0.1488766473 0.4424256302E-03 0.1539609019 0.4450981633E-03 0.1582496413 0.4477706963E-03 0.1650402630 0.4504432294E-03 0.1629777178 0.4531157624E-03 0.1684302922 0.4557882955E-03 0.1719300701 0.4584608285E-03 0.1812745933 0.4611333616E-03 0.1828809171 0.4638058946E-03 0.1782969942 0.4664784277E-03 0.1849448512 0.4691509607E-03 0.1916399665 0.4718234938E-03 0.2019819946 0.4744960268E-03 0.2010402177 0.4771685599E-03 0.1994405493 0.4798410929E-03 0.2066676925 0.4825136260E-03 0.2135437372 0.4851861590E-03 0.2171768366 0.4878586920E-03 0.2207986965 0.4905312251E-03 0.2211230339 0.4932037581E-03 0.2313735936 0.4958762912E-03 0.2317286698 0.4985488242E-03 0.2381004427 0.5012213573E-03 0.2427764728 0.5038938903E-03 0.2436529986 0.5065664234E-03 0.2524296141 0.5092389564E-03 0.2473656774 0.5119114895E-03 0.2623987259 0.5145840225E-03 0.2646717608 0.5172565556E-03 0.2757509348 0.5199290886E-03 0.2780320578 0.5226016217E-03 0.2758757714 0.5252741547E-03 0.2857883350 0.5279466878E-03 0.2920473763 0.5306192208E-03 0.2990592002 0.5332917539E-03 0.3009050367 0.5359642869E-03 0.3049301612 0.5386368200E-03 0.3165226534 0.5413093530E-03 0.3202720960 0.5439818861E-03 0.3251660549 0.5466544191E-03 0.3255216505 0.5493269521E-03 0.3369994677 0.5519994852E-03 0.3420418147 0.5546720182E-03 0.3538806734 0.5573445513E-03 0.3548220022 0.5600170843E-03 0.3647379743 0.5626896174E-03 0.3684875239 0.5653621504E-03 0.3776358778 0.5680346835E-03 0.3731853237 0.5707072165E-03 0.3939817216 0.5733797496E-03 0.3933171693 0.5760522826E-03 0.4188199621 0.5787248157E-03 0.4105824635 0.5813973487E-03 0.4316033827 0.5840698818E-03 0.4304621177 0.5867424148E-03 0.4438654690 0.5894149479E-03 0.4470284470 0.5920874809E-03 0.4646107440 0.5947600140E-03 0.4726783460 0.5974325470E-03 0.4907477298 0.6001050801E-03 0.4954350476 0.6027776131E-03 0.5070039135 0.6054501462E-03 0.5122571605 0.6081226792E-03 0.5355186415 0.6107952122E-03 0.5476397259 0.6134677453E-03 0.5717653354 0.6161402783E-03 0.5831796272 0.6188128114E-03 0.5989144327 0.6214853444E-03 0.6127570490 0.6241578775E-03 0.6315707160 0.6268304105E-03 0.6556930482 0.6295029436E-03 0.6827056442 0.6321754766E-03 0.7051576177 0.6348480097E-03 0.7385509500 0.6375205427E-03 0.7589178219 0.6401930758E-03 0.8012969822 0.6428656088E-03 0.8434709491 0.6455381419E-03 0.9043850337 0.6482106749E-03 0.9555189678 0.6508832080E-03 1.039483134 0.6535557410E-03 1.198302673 0.6562282741E-03 1.330433549 0.6589008071E-03 1.410226950 0.6615733402E-03 1.400075953 0.6642458732E-03 1.393698961 0.6669184063E-03 1.422295416 0.6695909393E-03 1.435087850 0.6722634723E-03 1.465921975 0.6749360054E-03 1.435054345 0.6776085384E-03 1.401581055 0.6802810715E-03 1.390710068 0.6829536045E-03 1.397865635 0.6856261376E-03 1.415513287 0.6882986706E-03 1.390013872 0.6909712037E-03 1.328049771 0.6936437367E-03 1.234834057 0.6963162698E-03 1.139339604 0.6989888028E-03 1.060964831 0.7016613359E-03 1.040424565 0.7043338689E-03 1.009748699 0.7070064020E-03 0.9836978182 0.7096789350E-03 0.9435322817 0.7123514681E-03 0.9188764339 0.7150240011E-03 0.9166038680 0.7176965342E-03 0.9082401543 0.7203690672E-03 0.8838319721 0.7230416003E-03 0.8663986326 0.7257141333E-03 0.8339612588 0.7283866664E-03 0.8192783905 0.7310591994E-03 0.8011895524 0.7337317325E-03 0.7906379347 0.7364042655E-03 0.7849605620 0.7390767985E-03 0.7846813588 0.7417493316E-03 0.7801081205 0.7444218646E-03 0.7701009651 0.7470943977E-03 0.7610295139 0.7497669307E-03 0.7605096297 0.7524394638E-03 0.7785767961 0.7551119968E-03 0.7865848636 0.7577845299E-03 0.7833013308 0.7604570629E-03 0.7791675893 0.7631295960E-03 0.7704813660 0.7658021290E-03 0.7676567724 0.7684746621E-03 0.7511666722 0.7711471951E-03 0.7499188564 0.7738197282E-03 0.7352130537 0.7764922612E-03 0.7311604909 0.7791647943E-03 0.7184396044 0.7818373273E-03 0.7133594686 0.7845098604E-03 0.7122242387 0.7871823934E-03 0.7214013334 0.7898549265E-03 0.7111458630 0.7925274595E-03 0.7000665206 0.7951999926E-03 0.7002378800 0.7978725256E-03 0.7230918813 0.8005450586E-03 0.7200840918 0.8032175917E-03 0.7102563562 0.8058901247E-03 0.7273084882 0.8085626578E-03 0.7338158860 0.8112351908E-03 0.7411002780 0.8139077239E-03 0.7233228556 0.8165802569E-03 0.7332277474 0.8192527900E-03 0.7098855825 0.8219253230E-03 0.6955255638 0.8245978561E-03 0.6934405186 0.8272703891E-03 0.6972495319 0.8299429222E-03 0.6897723557 0.8326154552E-03 0.6444056507 0.8352879883E-03 0.6171330889 0.8379605213E-03 0.5906650028 0.8406330544E-03 0.5897145780 0.8433055874E-03 0.5814302819 0.8459781205E-03 0.5689990725 0.8486506535E-03 0.5423747917 0.8513231866E-03 0.5205646947 0.8539957196E-03 0.5183550017 0.8566682527E-03 0.5271656642 0.8593407857E-03 0.5155779911 0.8620133187E-03 0.4988970558 0.8646858518E-03 0.4730481307 0.8673583848E-03 0.4843320374 0.8700309179E-03 0.4866108742 0.8727034509E-03 0.4735469427 0.8753759840E-03 0.4582666772 0.8780485170E-03 0.4353765691 0.8807210501E-03 0.4536383972 0.8833935831E-03 0.4413576219 0.8860661162E-03 0.4446697070 0.8887386492E-03 0.4196600318 0.8914111823E-03 0.4248223729 0.8940837153E-03 0.4187493058 0.8967562484E-03 0.4239028291 0.8994287814E-03 0.4189333357 0.9021013145E-03 0.3989226643 0.9047738475E-03 0.4005302367 0.9074463806E-03 0.4005588488 0.9101189136E-03 0.4078645452 0.9127914467E-03 0.3860197496 0.9154639797E-03 0.3829378326 0.9181365128E-03 0.3887746111 0.9208090458E-03 0.3943779298 0.9234815789E-03 0.3901873651 0.9261541119E-03 0.3952848882 0.9288266449E-03 0.4001578096 0.9314991780E-03 0.3969627570 0.9341717110E-03 0.4089410770 0.9368442441E-03 0.4174107664 0.9395167771E-03 0.4285201815 0.9421893102E-03 0.4197015964 0.9448618432E-03 0.4471285176 0.9475343763E-03 0.4584103255 0.9502069093E-03 0.4766426141 0.9528794424E-03 0.4767209631 0.9555519754E-03 0.5149901077 0.9582245085E-03 0.5216695729 0.9608970415E-03 0.5591493003 0.9635695746E-03 0.5721179976 0.9662421076E-03 0.6236149057 0.9689146407E-03 0.6394987348 0.9715871737E-03 0.6584890717 0.9742597068E-03 0.6835154458 0.9769322398E-03 0.7126965147 0.9796047729E-03 0.7487999089 0.9822773059E-03 0.7818140382 0.9849498390E-03 0.8201599442 0.9876223720E-03 0.8790247155 0.9902949050E-03 0.9391473392 0.9929674381E-03 1.043182426 0.9956399711E-03 1.109772721 0.9983125042E-03 1.169400266 0.1000985037E-02 1.192040552 0.1003657570E-02 1.237823939 0.1006330103E-02 1.299862616 0.1009002636E-02 1.337869241 0.1011675169E-02 1.358360615 0.1014347702E-02 1.331886403 0.1017020236E-02 1.319069590 0.1019692769E-02 1.288845428 0.1022365302E-02 1.282806695 0.1025037835E-02 1.254628576 0.1027710368E-02 1.249106660 0.1030382901E-02 1.238733919 0.1033055434E-02 1.252617764 0.1035727967E-02 1.242812453 0.1038400500E-02 1.164393981 0.1041073033E-02 1.028982367 0.1043745566E-02 0.8743320304 0.1046418099E-02 0.7690782054 0.1049090632E-02 0.6923536142 0.1051763165E-02 0.6287611563 0.1054435698E-02 0.5701736492 0.1057108231E-02 0.5063996662 0.1059780764E-02 0.4356629499 0.1062453297E-02 0.3188856820 0.1065125830E-02 0.2070466528 0.1067798363E-02 0.1202692498 0.1070470896E-02 0.9458962199E-01 0.1073143430E-02 0.8381588436E-01 0.1075815963E-02 0.7926804998E-01 0.1078488496E-02 0.7155949018E-01 0.1081161029E-02 0.6567912531E-01 0.1083833562E-02 0.5892432356E-01 0.1086506095E-02 0.5383654684E-01 0.1089178628E-02 0.4839037985E-01 0.1091851161E-02 0.4161728390E-01 0.1094523694E-02 0.3555180480E-01 0.1097196227E-02 0.2900290594E-01 0.1099868760E-02 0.2220027873E-01 0.1102541293E-02 0.1247138479E-01 0.1105213826E-02 0.4897551404E-02 0.1107886359E-02 0.2792628519E-03 0.1110558892E-02 0.000000000 0.1113231425E-02 0.000000000 0.1115903958E-02 0.000000000 0.1118576491E-02 0.000000000 0.1121249024E-02 0.000000000 0.1123921557E-02 0.000000000 0.1126594090E-02 0.000000000 0.1129266624E-02 0.000000000 0.1131939157E-02 0.000000000 0.1134611690E-02 0.000000000 0.1137284223E-02 0.000000000 0.1139956756E-02 0.000000000 0.1142629289E-02 0.000000000 0.1145301822E-02 0.000000000 0.1147974355E-02 0.000000000 0.1150646888E-02 0.000000000 0.1153319421E-02 0.000000000 0.1155991954E-02 0.000000000 0.1158664487E-02 0.000000000 0.1161337020E-02 0.000000000 0.1164009553E-02 0.000000000 0.1166682086E-02 0.000000000 0.1169354619E-02 0.000000000 0.1172027152E-02 0.000000000 0.1174699685E-02 0.000000000 0.1177372218E-02 0.000000000 0.1180044751E-02 0.000000000 0.1182717284E-02 0.000000000 0.1185389818E-02 0.000000000 0.1188062351E-02 0.000000000 0.1190734884E-02 0.000000000 0.1193407417E-02 0.000000000 0.1196079950E-02 0.000000000 0.1198752483E-02 0.000000000 0.1201425016E-02 0.000000000 0.1204097549E-02 0.000000000 0.1206770082E-02 0.000000000 0.1209442615E-02 0.000000000 0.1212115148E-02 0.000000000 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/ELIASHBERG_GAP_T.OUT0000644000000000000000000000013213543334741025202 xustar0030 mtime=1569569249.316638951 30 atime=1569569249.315638952 30 ctime=1569569249.316638951 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/ELIASHBERG_GAP_T.OUT0000644002504400250440000000423013543334741027250 0ustar00dewhurstdewhurst00000000000000 4.641895546 0.1120506996E-03 2.101141314 6.592837152 0.1109092731E-03 2.100438923 8.543778758 0.1084305350E-03 2.100870512 10.49472036 0.1034312918E-03 2.103474471 12.44566197 0.9456550699E-04 2.109291107 14.39660358 0.8035593294E-04 2.118670638 16.34754518 0.5548320594E-04 2.132418902 18.29848679 0.6524183979E-07 2.145515563 20.24942840 0.1586296463E-09 2.145522420 22.20037000 0.8747859637E-10 2.145413019 24.15131161 0.8177930128E-10 2.145365447 26.10225321 0.4455281642E-10 2.145429476 28.05319482 0.4018356898E-10 2.145433057 30.00413643 0.3572715852E-10 2.145376528 31.95507803 0.3133564660E-10 2.145503799 33.90601964 0.2711170766E-10 2.145343631 35.85696125 0.2315706998E-10 2.145399025 37.80790285 0.1954084995E-10 2.145423321 39.75884446 0.1630383490E-10 2.145417662 41.70978607 0.1346079432E-10 2.145381783 43.66072767 0.1100581597E-10 2.145313985 45.61166928 0.8917681450E-11 2.145564840 47.56261088 0.7165505735E-11 2.145459957 49.51355249 0.5713685173E-11 2.145317782 51.46449410 0.4519035286E-11 2.145540374 53.41543570 0.3548509285E-11 2.145358556 55.36637731 0.2767949501E-11 2.145562933 57.31731892 0.2145787635E-11 2.145337200 59.26826052 0.1654042659E-11 2.145529720 61.21920213 0.1268288974E-11 2.145251669 63.17014373 0.9678114946E-12 2.145437652 65.12108534 0.7351873113E-12 2.145607235 67.07202695 0.5561825589E-12 2.145277821 69.02296855 0.4191819398E-12 2.145446808 70.97391016 0.3148133141E-12 2.145602106 72.92485177 0.2356776139E-12 2.145206374 74.87579337 0.1759225704E-12 2.145365976 76.82673498 0.1309578187E-12 2.145513623 78.77767658 0.9724010491E-13 2.145650478 80.72861819 0.7204139109E-13 2.145183350 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/MCMILLAN.OUT0000644000000000000000000000013213543334741024017 xustar0030 mtime=1569569249.320638949 30 atime=1569569249.319638949 30 ctime=1569569249.320638949 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/MCMILLAN.OUT0000644002504400250440000000053213543334741026066 0ustar00dewhurstdewhurst00000000000000 Electron-phonon coupling constant, lambda : 1.150620532 Logarithmic average frequency : 0.7088838913E-03 RMS average frequency : 0.7567470325E-03 Coulomb pseudopotential, mu* : 0.1500000000 McMillan-Allen-Dynes superconducting critical temperature [Eq. 34, Phys. Rev. B 12, 905 (1975)] (kelvin) : 16.14572364 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/PHDISP.OUT0000644000000000000000000000013213543334741023612 xustar0030 mtime=1569569249.328638944 30 atime=1569569249.323638947 30 ctime=1569569249.328638944 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PHDISP.OUT0000644002504400250440000012660213543334741025670 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.1104284254E-02 0.1640615945E-01 0.1103175681E-02 0.3281231890E-01 0.1099861896E-02 0.4921847835E-01 0.1094378639E-02 0.6562463780E-01 0.1086785263E-02 0.8203079725E-01 0.1077164413E-02 0.9843695670E-01 0.1065621560E-02 0.1148431162 0.1052284392E-02 0.1312492756 0.1037302030E-02 0.1476554351 0.1020844066E-02 0.1640615945 0.1003099378E-02 0.1804677540 0.9842746811E-03 0.1968739134 0.9645927891E-03 0.2132800729 0.9442904960E-03 0.2296862323 0.9236160341E-03 0.2460923918 0.9028260246E-03 0.2624985512 0.8821818547E-03 0.2789047107 0.8619454265E-03 0.2953108701 0.8423742573E-03 0.3117170296 0.8237159658E-03 0.3281231890 0.8062022592E-03 0.3445293485 0.7900426390E-03 0.3609355079 0.7754181559E-03 0.3773416674 0.7624756514E-03 0.3937478268 0.7513229917E-03 0.4101539863 0.7420258100E-03 0.4265601457 0.7346061933E-03 0.4429663052 0.7290435880E-03 0.4593724646 0.7252779673E-03 0.4757786241 0.7232150495E-03 0.4921847835 0.7227331267E-03 0.5085909430 0.7236909085E-03 0.5249971024 0.7259357238E-03 0.5414032619 0.7293114606E-03 0.5578094213 0.7336657305E-03 0.5742155808 0.7388558927E-03 0.5906217402 0.7447537252E-03 0.6070278997 0.7512486679E-03 0.6234340591 0.7582496650E-03 0.6398402186 0.7656857081E-03 0.6562463780 0.7735052235E-03 0.6726525375 0.7816744701E-03 0.6890586969 0.7901751238E-03 0.7054648564 0.7990012271E-03 0.7218710158 0.8081556831E-03 0.7382771753 0.8176464729E-03 0.7546833347 0.8274827744E-03 0.7710894942 0.8376711537E-03 0.7874956536 0.8482119959E-03 0.8039018131 0.8590963228E-03 0.8203079725 0.8703031260E-03 0.8367141320 0.8817973127E-03 0.8531202914 0.8935283273E-03 0.8695264509 0.9054294760E-03 0.8859326103 0.9174179414E-03 0.9023387698 0.9109937499E-03 0.9187449292 0.9037083620E-03 0.9351510887 0.8955474422E-03 0.9515572481 0.8865042980E-03 0.9679634076 0.8765797261E-03 0.9843695670 0.8657817803E-03 1.000775726 0.8541254677E-03 1.017181886 0.8416323767E-03 1.033588045 0.8283302449E-03 1.049994205 0.8142524693E-03 1.066400364 0.7994375669E-03 1.082806524 0.7839285892E-03 1.099212683 0.7677724989E-03 1.115618843 0.7510195117E-03 1.132025002 0.7337224133E-03 1.148431162 0.7159358560E-03 1.164837321 0.6977156438E-03 1.181243480 0.6791180134E-03 1.197649640 0.6601989202E-03 1.214055799 0.6410133383E-03 1.230461959 0.6216145846E-03 1.246868118 0.6020536764E-03 1.263274278 0.5823787347E-03 1.279680437 0.5626344417E-03 1.296086597 0.5428615651E-03 1.312492756 0.5230965582E-03 1.328898916 0.5033712446E-03 1.345305075 0.4837125973E-03 1.361711234 0.4641426156E-03 1.378117394 0.4446783068E-03 1.394523553 0.4253317718E-03 1.410929713 0.4061103935E-03 1.427335872 0.3870171247E-03 1.443742032 0.3680508647E-03 1.460148191 0.3492069166E-03 1.476554351 0.3304775087E-03 1.492960510 0.3118523647E-03 1.509366669 0.2933193051E-03 1.525772829 0.2748648592E-03 1.542178988 0.2564748699E-03 1.558585148 0.2381350713E-03 1.574991307 0.2198316234E-03 1.591397467 0.2015515865E-03 1.607803626 0.1832833250E-03 1.624209786 0.1650168292E-03 1.640615945 0.1467439500E-03 1.657022105 0.1284585419E-03 1.673428264 0.1101565156E-03 1.689834423 0.9183580177E-04 1.706240583 0.7349623257E-04 1.722646742 0.5513934762E-04 1.739052902 0.3676813500E-04 1.755459061 0.1838671793E-04 1.771865221 -0.4874794363E-10 1.788365009 0.1967239359E-04 1.804864797 0.3935006319E-04 1.821364585 0.5903744919E-04 1.837864373 0.7873740873E-04 1.854364161 0.9845063673E-04 1.870863949 0.1181753233E-03 1.887363737 0.1379070963E-03 1.903863525 0.1576392769E-03 1.920363314 0.1773634495E-03 1.936863102 0.1970703267E-03 1.953362890 0.2167508643E-03 1.969862678 0.2363975607E-03 1.986362466 0.2560058606E-03 2.002862254 0.2755755640E-03 2.019362042 0.2951121391E-03 2.035861830 0.3146278277E-03 2.052361618 0.3341424382E-03 2.068861406 0.3536837276E-03 2.085361195 0.3732872922E-03 2.101860983 0.3929959073E-03 2.118360771 0.4128582927E-03 2.134860559 0.4329273133E-03 2.151360347 0.4532576702E-03 2.167860135 0.4739031786E-03 2.184359923 0.4949137691E-03 2.200859711 0.5163323792E-03 2.217359499 0.5381919201E-03 2.233859287 0.5605125070E-03 2.250359076 0.5832991272E-03 2.266858864 0.6065398887E-03 2.283358652 0.6302049554E-03 2.299858440 0.6542462225E-03 2.316358228 0.6785977406E-03 2.332858016 0.7031768501E-03 2.349357804 0.7278859529E-03 2.365857592 0.7526148186E-03 2.382357380 0.7772433083E-03 2.398857168 0.8016443895E-03 2.415356957 0.8256873179E-03 2.431856745 0.8492408658E-03 2.448356533 0.8721764872E-03 2.464856321 0.8943713213E-03 2.481356109 0.9157109461E-03 2.497855897 0.9360918083E-03 2.514355685 0.9554232663E-03 2.530855473 0.9736291928E-03 2.547355261 0.9840986433E-03 2.563855049 0.9909031509E-03 2.580354838 0.9989373266E-03 2.596854626 0.1008074654E-02 2.613354414 0.1018120363E-02 2.629854202 0.1028822404E-02 2.646353990 0.1039885110E-02 2.662853778 0.1050984391E-02 2.679353566 0.1061783345E-02 2.695853354 0.1071947353E-02 2.712353142 0.1081157990E-02 2.728852930 0.1089125284E-02 2.745352719 0.1095598109E-02 2.761852507 0.1100372600E-02 2.778352295 0.1103298609E-02 2.794852083 0.1104284254E-02 2.810926771 0.1103244387E-02 2.827001458 0.1100133044E-02 2.843076146 0.1094974995E-02 2.859150834 0.1087811479E-02 2.875225521 0.1078700140E-02 2.891300209 0.1067714940E-02 2.907374897 0.1054946031E-02 2.923449585 0.1040499593E-02 2.939524272 0.1024497626E-02 2.955598960 0.1007077682E-02 2.971673648 0.9883925183E-03 2.987748335 0.9686096447E-03 3.003823023 0.9479107327E-03 3.019897711 0.9264908344E-03 3.035972399 0.9045573517E-03 3.052047086 0.8823286780E-03 3.068121774 0.8600324180E-03 3.084196462 0.8379030816E-03 3.100271149 0.8161791381E-03 3.116345837 0.7950993268E-03 3.132420525 0.7748981450E-03 3.148495213 0.7558004938E-03 3.164569900 0.7380155478E-03 3.180644588 0.7217300437E-03 3.196719276 0.7071013294E-03 3.212793963 0.6942506646E-03 3.228868651 0.6832573846E-03 3.244943339 0.6741545737E-03 3.261018027 0.6669268336E-03 3.277092714 0.6615105423E-03 3.293167402 0.6577967249E-03 3.309242090 0.6556363361E-03 3.325316777 0.6548474753E-03 3.341391465 0.6552238639E-03 3.357466153 0.6565438508E-03 3.373540841 0.6585792740E-03 3.389615528 0.6611036472E-03 3.405690216 0.6638993300E-03 3.421764904 0.6667635181E-03 3.437839591 0.6695130414E-03 3.453914279 0.6719880610E-03 3.469988967 0.6740548137E-03 3.486063655 0.6756075730E-03 3.502138342 0.6765699872E-03 3.518213030 0.6768959334E-03 3.534197200 0.6769430479E-03 3.550181370 0.6770965372E-03 3.566165539 0.6773922051E-03 3.582149709 0.6778876325E-03 3.598133879 0.6786591075E-03 3.614118048 0.6797974752E-03 3.630102218 0.6814030699E-03 3.646086388 0.6835799628E-03 3.662070558 0.6864298223E-03 3.678054727 0.6900457485E-03 3.694038897 0.6945064779E-03 3.710023067 0.6998713613E-03 3.726007236 0.7061764775E-03 3.741991406 0.7134321582E-03 3.757975576 0.7216220797E-03 3.773959746 0.7307039330E-03 3.789943915 0.7406115454E-03 3.805928085 0.7512582075E-03 3.821912255 0.7625408842E-03 3.837896424 0.7743449503E-03 3.853880594 0.7865491015E-03 3.869864764 0.7990301294E-03 3.885848934 0.8116673096E-03 3.901833103 0.8243462187E-03 3.917817273 0.8369618613E-03 3.933801443 0.8494210475E-03 3.949785613 0.8616440068E-03 3.965769782 0.8735652623E-03 3.981753952 0.8851338189E-03 3.997738122 0.8963127334E-03 4.013722291 0.9070781567E-03 4.029706461 0.9174179414E-03 4.045690631 0.9070781567E-03 4.061674801 0.8963127334E-03 4.077658970 0.8851338189E-03 4.093643140 0.8735652623E-03 4.109627310 0.8616440068E-03 4.125611479 0.8494210475E-03 4.141595649 0.8369618613E-03 4.157579819 0.8243462187E-03 4.173563989 0.8116673096E-03 4.189548158 0.7990301294E-03 4.205532328 0.7865491015E-03 4.221516498 0.7743449503E-03 4.237500668 0.7625408842E-03 4.253484837 0.7512582075E-03 4.269469007 0.7406115454E-03 4.285453177 0.7307039330E-03 4.301437346 0.7216220797E-03 4.317421516 0.7134321582E-03 4.333405686 0.7061764775E-03 4.349389856 0.6998713613E-03 4.365374025 0.6945064779E-03 4.381358195 0.6900457485E-03 4.397342365 0.6864298223E-03 4.413326534 0.6835799628E-03 4.429310704 0.6814030699E-03 4.445294874 0.6797974752E-03 4.461279044 0.6786591075E-03 4.477263213 0.6778876325E-03 4.493247383 0.6773922051E-03 4.509231553 0.6770965372E-03 4.525215722 0.6769430479E-03 4.541199892 0.6768959334E-03 4.557639914 0.6764106948E-03 4.574079935 0.6749578982E-03 4.590519957 0.6725462213E-03 4.606959978 0.6691898632E-03 4.623400000 0.6649081570E-03 4.639840021 0.6597250402E-03 4.656280043 0.6536683990E-03 4.672720064 0.6467693038E-03 4.689160086 0.6390611570E-03 4.705600107 0.6305787798E-03 4.722040129 0.6213574643E-03 4.738480151 0.6114320238E-03 4.754920172 0.6008358704E-03 4.771360194 0.5896001551E-03 4.787800215 0.5757737738E-03 4.804240237 0.5508936274E-03 4.820680258 0.5267076417E-03 4.837120280 0.5034609744E-03 4.853560301 0.4813514494E-03 4.870000323 0.4605190208E-03 4.886440344 0.4410370406E-03 4.902880366 0.4229066368E-03 4.919320387 0.4060554062E-03 4.935760409 0.3903411959E-03 4.952200430 0.3755610468E-03 4.968640452 0.3614645496E-03 4.985080473 0.3477701748E-03 5.001520495 0.3341827625E-03 5.017960517 0.3204103906E-03 5.034400538 0.3061792059E-03 5.050840560 0.2912453438E-03 5.067280581 0.2754036097E-03 5.083720603 0.2584930259E-03 5.100160624 0.2403996188E-03 5.116600646 0.2210569408E-03 5.133040667 0.2004448310E-03 5.149480689 0.1765112085E-03 5.165920710 0.1521156550E-03 5.182360732 0.1273516060E-03 5.198800753 0.1022721489E-03 5.215240775 0.7693478088E-04 5.231680796 0.5140065952E-04 5.248120818 0.2573376568E-04 5.264560839 -0.4874794363E-10 5.281046338 0.1617313168E-04 5.297531837 0.3237096913E-04 5.314017336 0.4861780442E-04 5.330502835 0.6493711182E-04 5.346988334 0.8135116247E-04 5.363473833 0.9788066643E-04 5.379959331 0.1145444492E-03 5.396444830 0.1313591688E-03 5.412930329 0.1483390785E-03 5.429415828 0.1654958371E-03 5.445901327 0.1828383695E-03 5.462386826 0.2003727762E-03 5.478872325 0.2181022918E-03 5.495357823 0.2360272894E-03 5.511843322 0.2541453269E-03 5.528328821 0.2724512328E-03 5.544814320 0.2909372255E-03 5.561299819 0.3095930623E-03 5.577785318 0.3284062121E-03 5.594270817 0.3473620486E-03 5.610756315 0.3664440578E-03 5.627241814 0.3856340551E-03 5.643727313 0.4049124099E-03 5.660212812 0.4242582712E-03 5.676698311 0.4436497921E-03 5.693183810 0.4630643500E-03 5.709669309 0.4824787596E-03 5.726154807 0.5018694752E-03 5.742640306 0.5212127828E-03 5.759125805 0.5404849769E-03 5.775611304 0.5596625238E-03 5.792096803 0.5787222076E-03 5.808582302 0.5976412606E-03 5.825067801 0.6163974754E-03 5.841553299 0.6349692999E-03 5.858038798 0.6510426388E-03 5.874524297 0.6596281489E-03 5.891009796 0.6673382833E-03 5.907495295 0.6741978783E-03 5.923980794 0.6802371930E-03 5.940466292 0.6854913285E-03 5.956951791 0.6899995094E-03 5.973437290 0.6938042211E-03 5.989922789 0.6969501996E-03 6.006408288 0.6994832781E-03 6.022893787 0.7014491053E-03 6.039379286 0.7028917656E-03 6.055864784 0.7038523616E-03 6.072350283 0.7043676544E-03 6.088835782 0.7044689194E-03 6.105321281 0.7041812480E-03 6.121806780 0.7035236165E-03 6.138292279 0.7025101135E-03 6.154777778 0.7011527143E-03 6.171263276 0.6994658059E-03 6.187748775 0.6974722019E-03 6.204234274 0.6952096290E-03 6.220719773 0.6927358502E-03 6.237205272 0.6901302478E-03 6.253690771 0.6874903239E-03 6.270176270 0.6849232012E-03 6.286661768 0.6825340300E-03 6.303147267 0.6804142079E-03 6.319632766 0.6786320470E-03 6.336118265 0.6772273724E-03 6.352603764 0.6762102557E-03 6.369089263 0.6755632070E-03 6.385574762 0.6752457734E-03 6.402060260 0.6752004909E-03 6.418545759 0.6753593175E-03 6.435031258 0.6756499143E-03 6.451516757 0.6760013596E-03 6.468002256 0.6763490570E-03 6.484487755 0.6766387308E-03 6.500973254 0.6768294830E-03 6.517458752 0.6768959334E-03 0.000000000 0.1104284254E-02 0.1640615945E-01 0.1103987669E-02 0.3281231890E-01 0.1103099680E-02 0.4921847835E-01 0.1101625596E-02 0.6562463780E-01 0.1099574289E-02 0.8203079725E-01 0.1096958240E-02 0.9843695670E-01 0.1093793576E-02 0.1148431162 0.1090100133E-02 0.1312492756 0.1085901506E-02 0.1476554351 0.1081225093E-02 0.1640615945 0.1076102128E-02 0.1804677540 0.1070567680E-02 0.1968739134 0.1064660627E-02 0.2132800729 0.1058423575E-02 0.2296862323 0.1051902726E-02 0.2460923918 0.1045147669E-02 0.2624985512 0.1038211108E-02 0.2789047107 0.1031148484E-02 0.2953108701 0.1024017515E-02 0.3117170296 0.1016877621E-02 0.3281231890 0.1009789260E-02 0.3445293485 0.1002813142E-02 0.3609355079 0.9960093573E-03 0.3773416674 0.9894364117E-03 0.3937478268 0.9831501862E-03 0.4101539863 0.9772028507E-03 0.4265601457 0.9716417532E-03 0.4429663052 0.9665083183E-03 0.4593724646 0.9618369923E-03 0.4757786241 0.9576542744E-03 0.4921847835 0.9539778709E-03 0.5085909430 0.9508160119E-03 0.5249971024 0.9481669599E-03 0.5414032619 0.9460187378E-03 0.5578094213 0.9443490904E-03 0.5742155808 0.9431256866E-03 0.5906217402 0.9423065568E-03 0.6070278997 0.9418407521E-03 0.6234340591 0.9416691993E-03 0.6398402186 0.9417257230E-03 0.6562463780 0.9419381982E-03 0.6726525375 0.9422297943E-03 0.6890586969 0.9425202740E-03 0.7054648564 0.9427273088E-03 0.7218710158 0.9427677790E-03 0.7382771753 0.9425590293E-03 0.7546833347 0.9420200554E-03 0.7710894942 0.9410726049E-03 0.7874956536 0.9396421769E-03 0.8039018131 0.9376589127E-03 0.8203079725 0.9350583719E-03 0.8367141320 0.9317821911E-03 0.8531202914 0.9277786270E-03 0.8695264509 0.9230029858E-03 0.8859326103 0.9174179414E-03 0.9023387698 0.9109937499E-03 0.9187449292 0.9037083620E-03 0.9351510887 0.8955474422E-03 0.9515572481 0.8865042980E-03 0.9679634076 0.8765797261E-03 0.9843695670 0.8657817803E-03 1.000775726 0.8541254677E-03 1.017181886 0.8416323767E-03 1.033588045 0.8283302449E-03 1.049994205 0.8142524693E-03 1.066400364 0.7994375669E-03 1.082806524 0.7839285892E-03 1.099212683 0.7677724989E-03 1.115618843 0.7510195117E-03 1.132025002 0.7337224133E-03 1.148431162 0.7159358560E-03 1.164837321 0.6977156438E-03 1.181243480 0.6791180134E-03 1.197649640 0.6601989202E-03 1.214055799 0.6410133383E-03 1.230461959 0.6216145846E-03 1.246868118 0.6020536764E-03 1.263274278 0.5823787347E-03 1.279680437 0.5626344417E-03 1.296086597 0.5428615651E-03 1.312492756 0.5230965582E-03 1.328898916 0.5033712446E-03 1.345305075 0.4837125973E-03 1.361711234 0.4641426156E-03 1.378117394 0.4446783068E-03 1.394523553 0.4253317718E-03 1.410929713 0.4061103935E-03 1.427335872 0.3870171247E-03 1.443742032 0.3680508647E-03 1.460148191 0.3492069166E-03 1.476554351 0.3304775087E-03 1.492960510 0.3118523647E-03 1.509366669 0.2933193051E-03 1.525772829 0.2748648592E-03 1.542178988 0.2564748699E-03 1.558585148 0.2381350713E-03 1.574991307 0.2198316234E-03 1.591397467 0.2015515865E-03 1.607803626 0.1832833250E-03 1.624209786 0.1650168292E-03 1.640615945 0.1467439500E-03 1.657022105 0.1284585419E-03 1.673428264 0.1101565156E-03 1.689834423 0.9183580177E-04 1.706240583 0.7349623257E-04 1.722646742 0.5513934762E-04 1.739052902 0.3676813500E-04 1.755459061 0.1838671793E-04 1.771865221 -0.4874794363E-10 1.788365009 0.1967239359E-04 1.804864797 0.3935006319E-04 1.821364585 0.5903744919E-04 1.837864373 0.7873740873E-04 1.854364161 0.9845063673E-04 1.870863949 0.1181753233E-03 1.887363737 0.1379070963E-03 1.903863525 0.1576392769E-03 1.920363314 0.1773634495E-03 1.936863102 0.1970703267E-03 1.953362890 0.2167508643E-03 1.969862678 0.2363975607E-03 1.986362466 0.2560058606E-03 2.002862254 0.2755755640E-03 2.019362042 0.2951121391E-03 2.035861830 0.3146278277E-03 2.052361618 0.3341424382E-03 2.068861406 0.3536837276E-03 2.085361195 0.3732872922E-03 2.101860983 0.3929959073E-03 2.118360771 0.4128582927E-03 2.134860559 0.4329273133E-03 2.151360347 0.4532576702E-03 2.167860135 0.4739031786E-03 2.184359923 0.4949137691E-03 2.200859711 0.5163323792E-03 2.217359499 0.5381919201E-03 2.233859287 0.5605125070E-03 2.250359076 0.5832991272E-03 2.266858864 0.6065398887E-03 2.283358652 0.6302049554E-03 2.299858440 0.6542462225E-03 2.316358228 0.6785977406E-03 2.332858016 0.7031768501E-03 2.349357804 0.7278859529E-03 2.365857592 0.7526148186E-03 2.382357380 0.7772433083E-03 2.398857168 0.8016443895E-03 2.415356957 0.8256873179E-03 2.431856745 0.8492408658E-03 2.448356533 0.8721764872E-03 2.464856321 0.8943713213E-03 2.481356109 0.9157109461E-03 2.497855897 0.9360918083E-03 2.514355685 0.9554232663E-03 2.530855473 0.9736291928E-03 2.547355261 0.9906490987E-03 2.563855049 0.1006438748E-02 2.580354838 0.1020970248E-02 2.596854626 0.1034231610E-02 2.613354414 0.1046225795E-02 2.629854202 0.1056969271E-02 2.646353990 0.1066490122E-02 2.662853778 0.1074825781E-02 2.679353566 0.1082020451E-02 2.695853354 0.1088122332E-02 2.712353142 0.1093180745E-02 2.728852930 0.1097243288E-02 2.745352719 0.1100353138E-02 2.761852507 0.1102546644E-02 2.778352295 0.1103851306E-02 2.794852083 0.1104284254E-02 2.810926771 0.1103888634E-02 2.827001458 0.1102704368E-02 2.843076146 0.1100739231E-02 2.859150834 0.1098006115E-02 2.875225521 0.1094522942E-02 2.891300209 0.1090312530E-02 2.907374897 0.1085402429E-02 2.923449585 0.1079824718E-02 2.939524272 0.1073615762E-02 2.955598960 0.1066815940E-02 2.971673648 0.1059469331E-02 2.987748335 0.1051623369E-02 3.003823023 0.1043328462E-02 3.019897711 0.1034637582E-02 3.035972399 0.1025605824E-02 3.052047086 0.1016289939E-02 3.068121774 0.1006747840E-02 3.084196462 0.9970380944E-03 3.100271149 0.9872193997E-03 3.116345837 0.9773500524E-03 3.132420525 0.9674874165E-03 3.148495213 0.9576874010E-03 3.164569900 0.9480039537E-03 3.180644588 0.9384885827E-03 3.196719276 0.9291899156E-03 3.212793963 0.9201533065E-03 3.228868651 0.9114205008E-03 3.244943339 0.9030293689E-03 3.261018027 0.8950137150E-03 3.277092714 0.8874031687E-03 3.293167402 0.8802231632E-03 3.309242090 0.8734950018E-03 3.325316777 0.8672360112E-03 3.341391465 0.8614597764E-03 3.357466153 0.8561764495E-03 3.373540841 0.8513931228E-03 3.389615528 0.8471142500E-03 3.405690216 0.8433421029E-03 3.421764904 0.8400772441E-03 3.437839591 0.8373189993E-03 3.453914279 0.8350659104E-03 3.469988967 0.8333161527E-03 3.486063655 0.8320678998E-03 3.502138342 0.8313196234E-03 3.518213030 0.8310703151E-03 3.534197200 0.8307506731E-03 3.550181370 0.8298052427E-03 3.566165539 0.8282743332E-03 3.582149709 0.8262245110E-03 3.598133879 0.8237475958E-03 3.614118048 0.8209591012E-03 3.630102218 0.8179959820E-03 3.646086388 0.8150135381E-03 3.662070558 0.8121813331E-03 3.678054727 0.8096780247E-03 3.694038897 0.8076850789E-03 3.710023067 0.8063794477E-03 3.726007236 0.8059254323E-03 3.741991406 0.8064661073E-03 3.757975576 0.8081148258E-03 3.773959746 0.8109474294E-03 3.789943915 0.8149958171E-03 3.805928085 0.8202434636E-03 3.821912255 0.8266233280E-03 3.837896424 0.8340183655E-03 3.853880594 0.8422646060E-03 3.869864764 0.8511565305E-03 3.885848934 0.8604542993E-03 3.901833103 0.8698922952E-03 3.917817273 0.8791884321E-03 3.933801443 0.8880537322E-03 3.949785613 0.8962017708E-03 3.965769782 0.9033576936E-03 3.981753952 0.9092666177E-03 3.997738122 0.9137013078E-03 4.013722291 0.9164690826E-03 4.029706461 0.9174179414E-03 4.045690631 0.9164690826E-03 4.061674801 0.9137013078E-03 4.077658970 0.9092666177E-03 4.093643140 0.9033576936E-03 4.109627310 0.8962017708E-03 4.125611479 0.8880537322E-03 4.141595649 0.8791884321E-03 4.157579819 0.8698922952E-03 4.173563989 0.8604542993E-03 4.189548158 0.8511565305E-03 4.205532328 0.8422646060E-03 4.221516498 0.8340183655E-03 4.237500668 0.8266233280E-03 4.253484837 0.8202434636E-03 4.269469007 0.8149958171E-03 4.285453177 0.8109474294E-03 4.301437346 0.8081148258E-03 4.317421516 0.8064661073E-03 4.333405686 0.8059254323E-03 4.349389856 0.8063794477E-03 4.365374025 0.8076850789E-03 4.381358195 0.8096780247E-03 4.397342365 0.8121813331E-03 4.413326534 0.8150135381E-03 4.429310704 0.8179959820E-03 4.445294874 0.8209591012E-03 4.461279044 0.8237475958E-03 4.477263213 0.8262245110E-03 4.493247383 0.8282743332E-03 4.509231553 0.8298052427E-03 4.525215722 0.8307506731E-03 4.541199892 0.8310703151E-03 4.557639914 0.8296073445E-03 4.574079935 0.8252376568E-03 4.590519957 0.8180187131E-03 4.606959978 0.8080455738E-03 4.623400000 0.7954498301E-03 4.639840021 0.7803980941E-03 4.656280043 0.7630900281E-03 4.672720064 0.7437558878E-03 4.689160086 0.7226535361E-03 4.705600107 0.7000648709E-03 4.722040129 0.6762915890E-03 4.738480151 0.6516501877E-03 4.754920172 0.6264660893E-03 4.771360194 0.6010667672E-03 4.787800215 0.5777530012E-03 4.804240237 0.5653188606E-03 4.820680258 0.5523180200E-03 4.837120280 0.5387662779E-03 4.853560301 0.5246748084E-03 4.870000323 0.5100502189E-03 4.886440344 0.4948948030E-03 4.902880366 0.4792069797E-03 4.919320387 0.4629819030E-03 4.935760409 0.4462122201E-03 4.952200430 0.4288889467E-03 4.968640452 0.4110024279E-03 4.985080473 0.3925433471E-03 5.001520495 0.3735037457E-03 5.017960517 0.3538780161E-03 5.034400538 0.3336638354E-03 5.050840560 0.3128630064E-03 5.067280581 0.2914821828E-03 5.083720603 0.2695334547E-03 5.100160624 0.2470347813E-03 5.116600646 0.2240102608E-03 5.133040667 0.2004902318E-03 5.149480689 0.1785868633E-03 5.165920710 0.1555468513E-03 5.182360732 0.1314246896E-03 5.198800753 0.1063517415E-03 5.215240775 0.8048591808E-04 5.231680796 0.5400655315E-04 5.248120818 0.2710914290E-04 5.264560839 -0.4874794363E-10 5.281046338 0.1710293184E-04 5.297531837 0.3430846660E-04 5.314017336 0.5171396775E-04 5.330502835 0.6940672583E-04 5.346988334 0.8745988214E-04 5.363473833 0.1059293631E-03 5.379959331 0.1248519586E-03 5.396444830 0.1442445584E-03 5.412930329 0.1641044553E-03 5.429415828 0.1844105506E-03 5.445901327 0.2051252502E-03 5.462386826 0.2261968245E-03 5.478872325 0.2475620130E-03 5.495357823 0.2691486776E-03 5.511843322 0.2908783486E-03 5.528328821 0.3126685477E-03 5.544814320 0.3344348182E-03 5.561299819 0.3560924320E-03 5.577785318 0.3775577763E-03 5.594270817 0.3987494496E-03 5.610756315 0.4195891075E-03 5.627241814 0.4400021095E-03 5.643727313 0.4599180153E-03 5.660212812 0.4792709742E-03 5.676698311 0.4980000424E-03 5.693183810 0.5160494567E-03 5.709669309 0.5333688808E-03 5.726154807 0.5499136353E-03 5.742640306 0.5656449148E-03 5.759125805 0.5805299908E-03 5.775611304 0.5945423958E-03 5.792096803 0.6076620804E-03 5.808582302 0.6198755343E-03 5.825067801 0.6311758607E-03 5.841553299 0.6415627926E-03 5.858038798 0.6533359146E-03 5.874524297 0.6714772924E-03 5.891009796 0.6893742426E-03 5.907495295 0.7070084375E-03 5.923980794 0.7243624247E-03 5.940466292 0.7414196254E-03 5.956951791 0.7581643196E-03 5.973437290 0.7745816203E-03 5.989922789 0.7906574377E-03 6.006408288 0.8063784351E-03 6.022893787 0.8217319786E-03 6.039379286 0.8367060819E-03 6.055864784 0.8512893477E-03 6.072350283 0.8654709086E-03 6.088835782 0.8792403672E-03 6.105321281 0.8925877386E-03 6.121806780 0.9031061025E-03 6.138292279 0.8914959268E-03 6.154777778 0.8803915169E-03 6.171263276 0.8700073172E-03 6.187748775 0.8605297644E-03 6.204234274 0.8521059188E-03 6.220719773 0.8448337745E-03 6.237205272 0.8387566887E-03 6.253690771 0.8338637471E-03 6.270176270 0.8300962573E-03 6.286661768 0.8273586916E-03 6.303147267 0.8255313233E-03 6.319632766 0.8244819675E-03 6.336118265 0.8240752666E-03 6.352603764 0.8241791223E-03 6.369089263 0.8246686625E-03 6.385574762 0.8254284458E-03 6.402060260 0.8263535876E-03 6.418545759 0.8273503312E-03 6.435031258 0.8283363966E-03 6.451516757 0.8292412847E-03 6.468002256 0.8300066063E-03 6.484487755 0.8305864385E-03 6.500973254 0.8309476737E-03 6.517458752 0.8310703151E-03 0.000000000 0.1104284254E-02 0.1640615945E-01 0.1103987669E-02 0.3281231890E-01 0.1103099680E-02 0.4921847835E-01 0.1101625596E-02 0.6562463780E-01 0.1099574289E-02 0.8203079725E-01 0.1096958240E-02 0.9843695670E-01 0.1093793576E-02 0.1148431162 0.1090100133E-02 0.1312492756 0.1085901506E-02 0.1476554351 0.1081225093E-02 0.1640615945 0.1076102128E-02 0.1804677540 0.1070567680E-02 0.1968739134 0.1064660627E-02 0.2132800729 0.1058423575E-02 0.2296862323 0.1051902726E-02 0.2460923918 0.1045147669E-02 0.2624985512 0.1038211108E-02 0.2789047107 0.1031148484E-02 0.2953108701 0.1024017515E-02 0.3117170296 0.1016877621E-02 0.3281231890 0.1009789260E-02 0.3445293485 0.1002813142E-02 0.3609355079 0.9960093573E-03 0.3773416674 0.9894364117E-03 0.3937478268 0.9831501862E-03 0.4101539863 0.9772028507E-03 0.4265601457 0.9716417532E-03 0.4429663052 0.9665083183E-03 0.4593724646 0.9618369923E-03 0.4757786241 0.9576542744E-03 0.4921847835 0.9539778709E-03 0.5085909430 0.9508160119E-03 0.5249971024 0.9481669599E-03 0.5414032619 0.9460187378E-03 0.5578094213 0.9443490904E-03 0.5742155808 0.9431256866E-03 0.5906217402 0.9423065568E-03 0.6070278997 0.9418407521E-03 0.6234340591 0.9416691993E-03 0.6398402186 0.9417257230E-03 0.6562463780 0.9419381982E-03 0.6726525375 0.9422297943E-03 0.6890586969 0.9425202740E-03 0.7054648564 0.9427273088E-03 0.7218710158 0.9427677790E-03 0.7382771753 0.9425590293E-03 0.7546833347 0.9420200554E-03 0.7710894942 0.9410726049E-03 0.7874956536 0.9396421769E-03 0.8039018131 0.9376589127E-03 0.8203079725 0.9350583719E-03 0.8367141320 0.9317821911E-03 0.8531202914 0.9277786270E-03 0.8695264509 0.9230029858E-03 0.8859326103 0.9174179414E-03 0.9023387698 0.9293954435E-03 0.9187449292 0.9412494739E-03 0.9351510887 0.9528550121E-03 0.9515572481 0.9640766202E-03 0.9679634076 0.9747708104E-03 0.9843695670 0.9847885839E-03 1.000775726 0.9939780467E-03 1.017181886 0.1002187023E-02 1.033588045 0.1009265599E-02 1.049994205 0.1015068540E-02 1.066400364 0.1019457555E-02 1.082806524 0.1022303352E-02 1.099212683 0.1023487502E-02 1.115618843 0.1022904065E-02 1.132025002 0.1020461000E-02 1.148431162 0.1016081339E-02 1.164837321 0.1009704139E-02 1.181243480 0.1001285207E-02 1.197649640 0.9907976157E-03 1.214055799 0.9782319981E-03 1.230461959 0.9635966484E-03 1.246868118 0.9469174187E-03 1.263274278 0.9282374290E-03 1.279680437 0.9076165925E-03 1.296086597 0.8851309651E-03 1.312492756 0.8608719245E-03 1.328898916 0.8349451872E-03 1.345305075 0.8074696669E-03 1.361711234 0.7785761840E-03 1.378117394 0.7484060294E-03 1.394523553 0.7171093901E-03 1.410929713 0.6848436417E-03 1.427335872 0.6517715142E-03 1.443742032 0.6180591354E-03 1.460148191 0.5838739598E-03 1.476554351 0.5493825892E-03 1.492960510 0.5147484936E-03 1.509366669 0.4801296433E-03 1.525772829 0.4456760677E-03 1.542178988 0.4115273616E-03 1.558585148 0.3778101675E-03 1.574991307 0.3446356745E-03 1.591397467 0.3120971873E-03 1.607803626 0.2802678370E-03 1.624209786 0.2491985224E-03 1.640615945 0.2189161952E-03 1.657022105 0.1894226150E-03 1.673428264 0.1606937159E-03 1.689834423 0.1326797263E-03 1.706240583 0.1053061691E-03 1.722646742 0.7847583133E-04 1.739052902 0.5207173794E-04 1.755459061 0.2596108484E-04 1.771865221 -0.4874794363E-10 1.788365009 0.3529691598E-04 1.804864797 0.7055922313E-04 1.821364585 0.1057537496E-03 1.837864373 0.1408500488E-03 1.854364161 0.1758214004E-03 1.870863949 0.2106454036E-03 1.887363737 0.2453040693E-03 1.903863525 0.2797833559E-03 1.920363314 0.3140721291E-03 1.936863102 0.3481605776E-03 1.953362890 0.3820381561E-03 1.969862678 0.4156911729E-03 1.986362466 0.4491001742E-03 2.002862254 0.4822373022E-03 2.019362042 0.5150638192E-03 2.035861830 0.5475279851E-03 2.052361618 0.5795634654E-03 2.068861406 0.6110884148E-03 2.085361195 0.6420053479E-03 2.101860983 0.6722018636E-03 2.118360771 0.7015522468E-03 2.134860559 0.7299199260E-03 2.151360347 0.7571607295E-03 2.167860135 0.7831268474E-03 2.184359923 0.8076713826E-03 2.200859711 0.8306533561E-03 2.217359499 0.8519430151E-03 2.233859287 0.8714272858E-03 2.250359076 0.8890152054E-03 2.266858864 0.9046431593E-03 2.283358652 0.9182797437E-03 2.299858440 0.9299300620E-03 2.316358228 0.9396392507E-03 2.332858016 0.9474950127E-03 2.349357804 0.9536289180E-03 2.365857592 0.9582162172E-03 2.382357380 0.9614739026E-03 2.398857168 0.9636567669E-03 2.415356957 0.9650512472E-03 2.431856745 0.9659669345E-03 2.448356533 0.9667257689E-03 2.464856321 0.9676491584E-03 2.481356109 0.9690435187E-03 2.497855897 0.9711850321E-03 2.514355685 0.9743046886E-03 2.530855473 0.9785748559E-03 2.547355261 0.9906490987E-03 2.563855049 0.1006438748E-02 2.580354838 0.1020970248E-02 2.596854626 0.1034231610E-02 2.613354414 0.1046225795E-02 2.629854202 0.1056969271E-02 2.646353990 0.1066490122E-02 2.662853778 0.1074825781E-02 2.679353566 0.1082020451E-02 2.695853354 0.1088122332E-02 2.712353142 0.1093180745E-02 2.728852930 0.1097243288E-02 2.745352719 0.1100353138E-02 2.761852507 0.1102546644E-02 2.778352295 0.1103851306E-02 2.794852083 0.1104284254E-02 2.810926771 0.1104024081E-02 2.827001458 0.1103247574E-02 2.843076146 0.1101966719E-02 2.859150834 0.1100201316E-02 2.875225521 0.1097978705E-02 2.891300209 0.1095333388E-02 2.907374897 0.1092306547E-02 2.923449585 0.1088945441E-02 2.939524272 0.1085302710E-02 2.955598960 0.1081435561E-02 2.971673648 0.1077404865E-02 2.987748335 0.1073274153E-02 3.003823023 0.1069108534E-02 3.019897711 0.1064973543E-02 3.035972399 0.1060933936E-02 3.052047086 0.1057052463E-02 3.068121774 0.1053388633E-02 3.084196462 0.1049997512E-02 3.100271149 0.1046928576E-02 3.116345837 0.1044224664E-02 3.132420525 0.1041921058E-02 3.148495213 0.1040044724E-02 3.164569900 0.1038613735E-02 3.180644588 0.1037636918E-02 3.196719276 0.1037113713E-02 3.212793963 0.1037034269E-02 3.228868651 0.1037379772E-02 3.244943339 0.1038122983E-02 3.261018027 0.1039228981E-02 3.277092714 0.1040656073E-02 3.293167402 0.1042356846E-02 3.309242090 0.1044279323E-02 3.325316777 0.1046368195E-02 3.341391465 0.1048566082E-02 3.357466153 0.1050814804E-02 3.373540841 0.1053056615E-02 3.389615528 0.1055235404E-02 3.405690216 0.1057297801E-02 3.421764904 0.1059194211E-02 3.437839591 0.1060879739E-02 3.453914279 0.1062314998E-02 3.469988967 0.1063466811E-02 3.486063655 0.1064308776E-02 3.502138342 0.1064821715E-02 3.518213030 0.1064993995E-02 3.534197200 0.1064701131E-02 3.550181370 0.1063829314E-02 3.566165539 0.1062398585E-02 3.582149709 0.1060441396E-02 3.598133879 0.1058001221E-02 3.614118048 0.1055130676E-02 3.630102218 0.1051889221E-02 3.646086388 0.1048340525E-02 3.662070558 0.1044549600E-02 3.678054727 0.1040579835E-02 3.694038897 0.1036490047E-02 3.710023067 0.1032331702E-02 3.726007236 0.1028146450E-02 3.741991406 0.1023964078E-02 3.757975576 0.1019801032E-02 3.773959746 0.1015659548E-02 3.789943915 0.1011527480E-02 3.805928085 0.1007378804E-02 3.821912255 0.1003174796E-02 3.837896424 0.9988657956E-03 3.853880594 0.9943934768E-03 3.869864764 0.9896934898E-03 3.885848934 0.9846983549E-03 3.901833103 0.9793404635E-03 3.917817273 0.9735550569E-03 3.933801443 0.9672830620E-03 3.949785613 0.9604736819E-03 3.965769782 0.9530866576E-03 3.981753952 0.9450941355E-03 3.997738122 0.9364820991E-03 4.013722291 0.9272513379E-03 4.029706461 0.9174179414E-03 4.045690631 0.9272513379E-03 4.061674801 0.9364820991E-03 4.077658970 0.9450941355E-03 4.093643140 0.9530866576E-03 4.109627310 0.9604736819E-03 4.125611479 0.9672830620E-03 4.141595649 0.9735550569E-03 4.157579819 0.9793404635E-03 4.173563989 0.9846983549E-03 4.189548158 0.9896934898E-03 4.205532328 0.9943934768E-03 4.221516498 0.9988657956E-03 4.237500668 0.1003174796E-02 4.253484837 0.1007378804E-02 4.269469007 0.1011527480E-02 4.285453177 0.1015659548E-02 4.301437346 0.1019801032E-02 4.317421516 0.1023964078E-02 4.333405686 0.1028146450E-02 4.349389856 0.1032331702E-02 4.365374025 0.1036490047E-02 4.381358195 0.1040579835E-02 4.397342365 0.1044549600E-02 4.413326534 0.1048340525E-02 4.429310704 0.1051889221E-02 4.445294874 0.1055130676E-02 4.461279044 0.1058001221E-02 4.477263213 0.1060441396E-02 4.493247383 0.1062398585E-02 4.509231553 0.1063829314E-02 4.525215722 0.1064701131E-02 4.541199892 0.1064993995E-02 4.557639914 0.1064196355E-02 4.574079935 0.1061803878E-02 4.590519957 0.1057817950E-02 4.606959978 0.1052241084E-02 4.623400000 0.1045077214E-02 4.639840021 0.1036332087E-02 4.656280043 0.1026013746E-02 4.672720064 0.1014133075E-02 4.689160086 0.1000704394E-02 4.705600107 0.9857460654E-03 4.722040129 0.9692811102E-03 4.738480151 0.9513377828E-03 4.754920172 0.9319500990E-03 4.771360194 0.9111582851E-03 4.787800215 0.8890091270E-03 4.804240237 0.8655562019E-03 4.820680258 0.8408599735E-03 4.837120280 0.8149877383E-03 4.853560301 0.7880134120E-03 4.870000323 0.7600171500E-03 4.886440344 0.7310847973E-03 4.902880366 0.7013071698E-03 4.919320387 0.6707791712E-03 4.935760409 0.6395987531E-03 4.952200430 0.6078657327E-03 4.968640452 0.5756804824E-03 4.985080473 0.5431425152E-03 5.001520495 0.5103489894E-03 5.017960517 0.4773931636E-03 5.034400538 0.4443628384E-03 5.050840560 0.4113388221E-03 5.067280581 0.3783934671E-03 5.083720603 0.3455893233E-03 5.100160624 0.3129779603E-03 5.116600646 0.2805990108E-03 5.133040667 0.2484794860E-03 5.149480689 0.2166334110E-03 5.165920710 0.1850618217E-03 5.182360732 0.1537531524E-03 5.198800753 0.1226840318E-03 5.215240775 0.9182048259E-04 5.231680796 0.6111950669E-04 5.248120818 0.3053100919E-04 5.264560839 -0.4874794363E-10 5.281046338 0.3030146633E-04 5.297531837 0.6064703647E-04 5.314017336 0.9107971365E-04 5.330502835 0.1216402785E-03 5.346988334 0.1523661276E-03 5.363473833 0.1832900605E-03 5.379959331 0.2144390148E-03 5.396444830 0.2458327607E-03 5.412930329 0.2774825815E-03 5.429415828 0.3093899838E-03 5.445901327 0.3415454944E-03 5.462386826 0.3739276098E-03 5.478872325 0.4065019713E-03 5.495357823 0.4392208277E-03 5.511843322 0.4720228409E-03 5.528328821 0.5048332650E-03 5.544814320 0.5375645077E-03 5.561299819 0.5701170589E-03 5.577785318 0.6023807486E-03 5.594270817 0.6342362829E-03 5.610756315 0.6655569957E-03 5.627241814 0.6962107522E-03 5.643727313 0.7260619444E-03 5.660212812 0.7549735220E-03 5.676698311 0.7828090150E-03 5.693183810 0.8094345107E-03 5.709669309 0.8347205575E-03 5.726154807 0.8585439752E-03 5.742640306 0.8807895596E-03 5.759125805 0.9013516707E-03 5.775611304 0.9201357016E-03 5.792096803 0.9370594232E-03 5.808582302 0.9520542058E-03 5.825067801 0.9650661173E-03 5.841553299 0.9760568979E-03 5.858038798 0.9850048134E-03 5.874524297 0.9919053885E-03 5.891009796 0.9967720188E-03 5.907495295 0.9996364641E-03 5.923980794 0.1000549221E-02 5.940466292 0.9995797719E-03 5.956951791 0.9968167089E-03 5.973437290 0.9923677202E-03 5.989922789 0.9863594315E-03 6.006408288 0.9789370790E-03 6.022893787 0.9702639837E-03 6.039379286 0.9605207787E-03 6.055864784 0.9499043141E-03 6.072350283 0.9386261286E-03 6.088835782 0.9269103205E-03 6.105321281 0.9149905844E-03 6.121806780 0.9055033965E-03 6.138292279 0.9179780231E-03 6.154777778 0.9300025653E-03 6.171263276 0.9415681974E-03 6.187748775 0.9526662913E-03 6.204234274 0.9632883942E-03 6.220719773 0.9734262158E-03 6.237205272 0.9830716223E-03 6.253690771 0.9922166401E-03 6.270176270 0.1000853467E-02 6.286661768 0.1008974490E-02 6.303147267 0.1016572313E-02 6.319632766 0.1023639785E-02 6.336118265 0.1030170039E-02 6.352603764 0.1036156534E-02 6.369089263 0.1041593092E-02 6.385574762 0.1046473951E-02 6.402060260 0.1050793803E-02 6.418545759 0.1054547844E-02 6.435031258 0.1057731811E-02 6.451516757 0.1060342026E-02 6.468002256 0.1062375427E-02 6.484487755 0.1063829602E-02 6.500973254 0.1064702809E-02 6.517458752 0.1064993995E-02 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/PHDLINES.OUT0000644000000000000000000000013213543334741024031 xustar0030 mtime=1569569249.332638941 30 atime=1569569249.331638942 30 ctime=1569569249.332638941 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PHDLINES.OUT0000644002504400250440000000132013543334741026074 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.8282132761E-03 0.000000000 0.1656426406E-02 0.8859326103 -0.8282132761E-03 0.8859326103 0.1656426406E-02 1.771865221 -0.8282132761E-03 1.771865221 0.1656426406E-02 2.794852083 -0.8282132761E-03 2.794852083 0.1656426406E-02 3.518213030 -0.8282132761E-03 3.518213030 0.1656426406E-02 4.029706461 -0.8282132761E-03 4.029706461 0.1656426406E-02 4.541199892 -0.8282132761E-03 4.541199892 0.1656426406E-02 5.264560839 -0.8282132761E-03 5.264560839 0.1656426406E-02 6.517458752 -0.8282132761E-03 6.517458752 0.1656426406E-02 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/PHDOS.OUT0000644000000000000000000000013213543334741023500 xustar0030 mtime=1569569249.337638938 30 atime=1569569249.335638939 30 ctime=1569569249.337638938 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PHDOS.OUT0000644002504400250440000004410413543334741025552 0ustar00dewhurstdewhurst00000000000000 -0.1214788429E-03 0.000000000 -0.1188063098E-03 0.000000000 -0.1161337768E-03 0.000000000 -0.1134612437E-03 0.000000000 -0.1107887107E-03 0.000000000 -0.1081161776E-03 0.000000000 -0.1054436446E-03 0.000000000 -0.1027711115E-03 0.000000000 -0.1000985785E-03 0.000000000 -0.9742604544E-04 0.000000000 -0.9475351239E-04 0.000000000 -0.9208097934E-04 0.000000000 -0.8940844629E-04 0.000000000 -0.8673591325E-04 0.000000000 -0.8406338020E-04 0.000000000 -0.8139084715E-04 0.000000000 -0.7871831410E-04 0.000000000 -0.7604578106E-04 0.000000000 -0.7337324801E-04 0.000000000 -0.7070071496E-04 0.000000000 -0.6802818191E-04 0.000000000 -0.6535564886E-04 0.000000000 -0.6268311582E-04 0.000000000 -0.6001058277E-04 0.000000000 -0.5733804972E-04 0.000000000 -0.5466551667E-04 0.000000000 -0.5199298362E-04 0.000000000 -0.4932045058E-04 0.000000000 -0.4664791753E-04 0.000000000 -0.4397538448E-04 0.000000000 -0.4130285143E-04 0.000000000 -0.3863031839E-04 0.000000000 -0.3595778534E-04 0.000000000 -0.3328525229E-04 0.000000000 -0.3061271924E-04 0.000000000 -0.2794018619E-04 0.000000000 -0.2526765315E-04 0.000000000 -0.2259512010E-04 0.000000000 -0.1992258705E-04 0.000000000 -0.1725005400E-04 0.000000000 -0.1457752095E-04 0.000000000 -0.1190498791E-04 0.000000000 -0.9232454859E-05 0.000000000 -0.6559921811E-05 0.000000000 -0.3887388763E-05 0.3741768510 -0.1214855715E-05 0.3741768510 0.1457677333E-05 1.122530553 0.4130210381E-05 0.7483537020 0.6802743429E-05 1.496707404 0.9475276476E-05 0.7483537020 0.1214780952E-04 0.7483537020 0.1482034257E-04 0.7483537020 0.1749287562E-04 1.496707404 0.2016540867E-04 3.741768510 0.2283794172E-04 7.483537020 0.2551047476E-04 12.72201293 0.2818300781E-04 14.21872034 0.3085554086E-04 14.21872034 0.3352807391E-04 11.97365923 0.3620060696E-04 10.22750059 0.3887314000E-04 10.97585430 0.4154567305E-04 14.71762281 0.4421820610E-04 23.19896476 0.4689073915E-04 26.94073327 0.4956327219E-04 31.43085548 0.5223580524E-04 30.68250178 0.5490833829E-04 32.42866042 0.5758087134E-04 22.70006229 0.6025340439E-04 30.18359931 0.6292593743E-04 30.68250178 0.6559847048E-04 44.15286842 0.6827100353E-04 47.14628322 0.7094353658E-04 53.88146654 0.7361606963E-04 49.39134433 0.7628860267E-04 49.89024680 0.7896113572E-04 44.65177088 0.8163366877E-04 56.62543012 0.8430620182E-04 56.87488135 0.8697873486E-04 65.85512577 0.8965126791E-04 71.84195539 0.9232380096E-04 77.82878500 0.9499633401E-04 86.06067573 0.9766886706E-04 74.08701649 0.1003414001E-03 68.84854058 0.1030139332E-03 73.33866279 0.1056864662E-03 86.06067573 0.1083589992E-03 99.53104236 0.1110315323E-03 90.05189547 0.1137040653E-03 105.7673232 0.1163765984E-03 109.2596405 0.1190491314E-03 116.4937263 0.1217216645E-03 102.2750059 0.1243941975E-03 98.78268866 0.1270667306E-03 115.2464701 0.1297392636E-03 127.2201293 0.1324117967E-03 142.9355571 0.1350843297E-03 145.9289719 0.1377568628E-03 143.6839108 0.1404293958E-03 143.6839108 0.1431019289E-03 135.4520201 0.1457744619E-03 148.1740330 0.1484469950E-03 146.6773256 0.1511195280E-03 161.6443996 0.1537920611E-03 170.6246440 0.1564645941E-03 174.8653150 0.1591371272E-03 183.0972057 0.1618096602E-03 189.8323891 0.1644821933E-03 190.8301940 0.1671547263E-03 184.8433644 0.1698272593E-03 175.8631200 0.1724997924E-03 195.5697674 0.1751723254E-03 215.7753174 0.1778448585E-03 242.7160507 0.1805173915E-03 243.9633068 0.1831899246E-03 223.0094032 0.1858624576E-03 217.7709273 0.1885349907E-03 214.0291588 0.1912075237E-03 246.2083679 0.1938800568E-03 256.6853198 0.1965525898E-03 276.6414185 0.1992251229E-03 265.4161130 0.2018976559E-03 276.6414185 0.2045701890E-03 266.4139179 0.2072427220E-03 285.8711142 0.2099152551E-03 275.3941623 0.2125877881E-03 292.6062975 0.2152603212E-03 311.3151400 0.2179328542E-03 326.2822141 0.2206053873E-03 353.2229473 0.2232779203E-03 326.2822141 0.2259504534E-03 336.0108122 0.2286229864E-03 321.0437381 0.2312955195E-03 358.4614232 0.2339680525E-03 373.1790460 0.2366405855E-03 391.3889861 0.2393131186E-03 391.3889861 0.2419856516E-03 372.9295948 0.2446581847E-03 370.4350825 0.2473307177E-03 400.3692306 0.2500032508E-03 421.3231342 0.2526757838E-03 444.5220990 0.2553483169E-03 425.0649027 0.2580208499E-03 431.0517323 0.2606933830E-03 472.2111859 0.2633659160E-03 475.9529544 0.2660384491E-03 483.4364915 0.2687109821E-03 470.7144785 0.2713835152E-03 484.1848452 0.2740560482E-03 489.1738699 0.2767285813E-03 526.5915549 0.2794011143E-03 553.5322882 0.2820736474E-03 580.7224727 0.2847461804E-03 534.3245432 0.2874187135E-03 537.3179580 0.2900912465E-03 569.4971672 0.2927637796E-03 594.1928394 0.2954363126E-03 623.3786337 0.2981088456E-03 629.3654634 0.3007813787E-03 639.8424152 0.3034539117E-03 625.1247924 0.3061264448E-03 649.8204645 0.3087989778E-03 693.9733330 0.3114715109E-03 715.4261391 0.3141440439E-03 711.4349193 0.3168165770E-03 697.9645527 0.3194891100E-03 721.9118712 0.3221616431E-03 731.8899205 0.3248341761E-03 763.3207760 0.3275067092E-03 795.4999852 0.3301792422E-03 815.7055351 0.3328517753E-03 838.1561462 0.3355243083E-03 838.9044999 0.3381968414E-03 860.6067573 0.3408693744E-03 830.6726092 0.3435419075E-03 865.8452332 0.3462144405E-03 914.4882238 0.3488869736E-03 956.3960311 0.3515595066E-03 957.8927385 0.3542320397E-03 956.1465799 0.3569045727E-03 987.5774354 0.3595771057E-03 999.5510946 0.3622496388E-03 988.5752403 0.3649221718E-03 1043.205061 0.3675947049E-03 1079.126038 0.3702672379E-03 1116.543723 0.3729397710E-03 1114.548113 0.3756123040E-03 1107.812930 0.3782848371E-03 1142.237200 0.3809573701E-03 1118.040431 0.3836299032E-03 1194.372508 0.3863024362E-03 1209.339582 0.3889749693E-03 1232.538547 0.3916475023E-03 1233.286901 0.3943200354E-03 1234.035255 0.3969925684E-03 1309.369527 0.3996651015E-03 1315.356357 0.4023376345E-03 1347.535566 0.4050101676E-03 1304.380503 0.4076827006E-03 1351.526786 0.4103552337E-03 1395.679654 0.4130277667E-03 1454.051243 0.4157002998E-03 1426.362156 0.4183728328E-03 1428.607217 0.4210453658E-03 1438.335815 0.4237178989E-03 1503.442587 0.4263904319E-03 1528.138259 0.4290629650E-03 1521.403076 0.4317354980E-03 1561.814176 0.4344080311E-03 1560.317469 0.4370805641E-03 1603.472532 0.4397530972E-03 1582.518628 0.4424256302E-03 1626.671497 0.4450981633E-03 1655.358389 0.4477706963E-03 1701.257416 0.4504432294E-03 1675.065036 0.4531157624E-03 1724.456381 0.4557882955E-03 1736.928942 0.4584608285E-03 1812.512666 0.4611333616E-03 1811.015959 0.4638058946E-03 1745.909187 0.4664784277E-03 1793.803824 0.4691509607E-03 1858.162242 0.4718234938E-03 1937.487734 0.4744960268E-03 1925.514075 0.4771685599E-03 1886.599683 0.4798410929E-03 1934.244868 0.4825136260E-03 1980.642798 0.4851861590E-03 1995.609872 0.4878586920E-03 2022.051703 0.4905312251E-03 2025.793471 0.4932037581E-03 2079.674938 0.4958762912E-03 2085.661767 0.4985488242E-03 2115.595915 0.5012213573E-03 2156.007015 0.5038938903E-03 2158.252076 0.5065664234E-03 2197.166469 0.5092389564E-03 2145.530064 0.5119114895E-03 2253.292997 0.5145840225E-03 2267.511717 0.5172565556E-03 2349.082270 0.5199290886E-03 2345.340502 0.5226016217E-03 2309.419524 0.5252741547E-03 2373.777943 0.5279466878E-03 2404.460444 0.5306192208E-03 2468.818863 0.5332917539E-03 2474.805692 0.5359642869E-03 2484.534291 0.5386368200E-03 2551.137770 0.5413093530E-03 2566.853198 0.5439818861E-03 2596.038992 0.5466544191E-03 2594.542285 0.5493269521E-03 2661.894118 0.5519994852E-03 2696.318388 0.5546720182E-03 2775.643881 0.5573445513E-03 2786.869186 0.5600170843E-03 2840.002299 0.5626896174E-03 2843.744067 0.5653621504E-03 2904.111266 0.5680346835E-03 2855.468275 0.5707072165E-03 3000.648894 0.5733797496E-03 2967.970782 0.5760522826E-03 3153.562500 0.5787248157E-03 3060.766641 0.5813973487E-03 3201.457137 0.5840698818E-03 3158.052622 0.5867424148E-03 3260.577079 0.5894149479E-03 3255.338604 0.5920874809E-03 3378.068611 0.5947600140E-03 3402.015929 0.5974325470E-03 3525.743741 0.6001050801E-03 3533.227278 0.6027776131E-03 3596.088989 0.6054501462E-03 3605.568136 0.6081226792E-03 3741.519059 0.6107952122E-03 3805.877477 0.6134677453E-03 3951.058095 0.6161402783E-03 4008.930781 0.6188128114E-03 4080.772737 0.6214853444E-03 4142.137740 0.6241578775E-03 4240.920429 0.6268304105E-03 4367.392205 0.6295029436E-03 4511.076115 0.6321754766E-03 4618.839049 0.6348480097E-03 4802.934059 0.6375205427E-03 4884.504613 0.6401930758E-03 5103.023894 0.6428656088E-03 5314.807991 0.6455381419E-03 5633.606668 0.6482106749E-03 5862.353450 0.6508832080E-03 6250.749021 0.6535557410E-03 7040.262177 0.6562282741E-03 7678.857336 0.6589008071E-03 8091.200226 0.6615733402E-03 8005.139550 0.6642458732E-03 7987.927415 0.6669184063E-03 8132.359679 0.6695909393E-03 8211.934623 0.6722634723E-03 8393.784572 0.6749360054E-03 8192.477427 0.6776085384E-03 7958.741620 0.6802810715E-03 7821.044539 0.6829536045E-03 7797.097221 0.6856261376E-03 7836.011613 0.6882986706E-03 7692.701879 0.6909712037E-03 7375.524635 0.6936437367E-03 6913.790401 0.6963162698E-03 6383.581803 0.6989888028E-03 5971.862542 0.7016613359E-03 5889.543634 0.7043338689E-03 5750.724023 0.7070064020E-03 5606.665935 0.7096789350E-03 5374.676288 0.7123514681E-03 5250.823750 0.7150240011E-03 5266.165001 0.7176965342E-03 5244.462743 0.7203690672E-03 5121.233834 0.7230416003E-03 5029.435780 0.7257141333E-03 4860.557294 0.7283866664E-03 4766.140002 0.7310591994E-03 4671.223808 0.7337317325E-03 4620.585207 0.7364042655E-03 4603.248346 0.7390767985E-03 4627.070939 0.7417493316E-03 4606.366487 0.7444218646E-03 4547.994898 0.7470943977E-03 4503.093676 0.7497669307E-03 4495.610139 0.7524394638E-03 4623.079720 0.7551119968E-03 4678.208442 0.7577845299E-03 4693.175516 0.7604570629E-03 4656.630910 0.7631295960E-03 4625.075329 0.7658021290E-03 4633.806123 0.7684746621E-03 4587.782370 0.7711471951E-03 4594.642279 0.7738197282E-03 4489.373858 0.7764922612E-03 4508.082701 0.7791647943E-03 4449.461661 0.7818373273E-03 4456.196844 0.7845098604E-03 4465.177088 0.7871823934E-03 4509.579408 0.7898549265E-03 4484.883736 0.7925274595E-03 4442.227575 0.7951999926E-03 4477.400199 0.7978725256E-03 4592.896120 0.8005450586E-03 4588.530724 0.8032175917E-03 4568.948802 0.8058901247E-03 4682.449113 0.8085626578E-03 4745.186099 0.8112351908E-03 4796.198876 0.8139077239E-03 4737.328385 0.8165802569E-03 4794.951620 0.8192527900E-03 4685.941430 0.8219253230E-03 4607.114841 0.8245978561E-03 4610.108255 0.8272703891E-03 4645.031428 0.8299429222E-03 4631.311610 0.8326154552E-03 4357.414155 0.8352879883E-03 4191.279633 0.8379605213E-03 4018.659380 0.8406330544E-03 4043.604503 0.8433055874E-03 4010.676940 0.8459781205E-03 3939.583338 0.8486506535E-03 3767.212536 0.8513231866E-03 3622.031918 0.8539957196E-03 3632.758321 0.8566682527E-03 3698.363995 0.8593407857E-03 3630.513259 0.8620133187E-03 3519.507460 0.8646858518E-03 3358.361963 0.8673583848E-03 3443.424834 0.8700309179E-03 3480.094165 0.8727034509E-03 3397.525807 0.8753759840E-03 3283.776044 0.8780485170E-03 3116.893169 0.8807210501E-03 3260.327628 0.8833935831E-03 3221.787413 0.8860661162E-03 3240.496255 0.8887386492E-03 3062.138623 0.8914111823E-03 3093.195301 0.8940837153E-03 3074.486459 0.8967562484E-03 3132.858048 0.8994287814E-03 3095.190911 0.9021013145E-03 2953.752062 0.9047738475E-03 2951.257549 0.9074463806E-03 2977.699380 0.9101189136E-03 3037.068774 0.9127914467E-03 2902.365107 0.9154639797E-03 2868.689191 0.9181365128E-03 2917.082730 0.9208090458E-03 2963.854837 0.9234815789E-03 2933.920689 0.9261541119E-03 2989.049411 0.9288266449E-03 3014.493437 0.9314991780E-03 3015.241791 0.9341717110E-03 3093.070576 0.9368442441E-03 3167.656495 0.9395167771E-03 3239.248999 0.9421893102E-03 3185.991160 0.9448618432E-03 3403.762088 0.9475343763E-03 3480.343617 0.9502069093E-03 3615.795637 0.9528794424E-03 3600.703837 0.9555519754E-03 3920.999221 0.9582245085E-03 3953.677333 0.9608970415E-03 4210.362653 0.9635695746E-03 4268.235339 0.9662421076E-03 4663.241368 0.9689146407E-03 4794.327992 0.9715871737E-03 4933.646506 0.9742597068E-03 5137.572890 0.9769322398E-03 5388.895008 0.9796047729E-03 5715.177222 0.9822773059E-03 5993.938976 0.9849498390E-03 6335.437715 0.9876223720E-03 6834.839086 0.9902949050E-03 7385.627410 0.9929674381E-03 8308.098074 0.9956399711E-03 8876.722161 0.9983125042E-03 9378.119142 0.1000985037E-02 9482.888660 0.1003657570E-02 9817.028588 0.1006330103E-02 10212.53352 0.1009002636E-02 10434.79457 0.1011675169E-02 10438.16216 0.1014347702E-02 10057.25013 0.1017020236E-02 9732.215168 0.1019692769E-02 9356.666336 0.1022365302E-02 9114.948090 0.1025037835E-02 8779.436180 0.1027710368E-02 8560.043820 0.1030382901E-02 8375.574632 0.1033055434E-02 8349.881155 0.1035727967E-02 8185.118615 0.1038400500E-02 7596.912605 0.1041073033E-02 6648.499014 0.1043745566E-02 5612.029137 0.1046418099E-02 4892.861229 0.1049090632E-02 4363.650436 0.1051763165E-02 3916.883276 0.1054435698E-02 3532.977827 0.1057108231E-02 3120.260760 0.1059780764E-02 2688.834851 0.1062453297E-02 2050.863320 0.1065125830E-02 1493.713989 0.1067798363E-02 1063.909513 0.1070470896E-02 929.5800235 0.1073143430E-02 836.7841644 0.1075815963E-02 805.2285833 0.1078488496E-02 739.3734575 0.1081161029E-02 691.8529975 0.1083833562E-02 630.1138171 0.1086506095E-02 584.4642412 0.1089178628E-02 533.3267383 0.1091851161E-02 465.9749051 0.1094523694E-02 404.6099015 0.1097196227E-02 335.2624585 0.1099868760E-02 260.1776370 0.1102541293E-02 147.5504049 0.1105213826E-02 58.49631437 0.1107886359E-02 3.367591659 0.1110558892E-02 0.000000000 0.1113231425E-02 0.000000000 0.1115903958E-02 0.000000000 0.1118576491E-02 0.000000000 0.1121249024E-02 0.000000000 0.1123921557E-02 0.000000000 0.1126594090E-02 0.000000000 0.1129266624E-02 0.000000000 0.1131939157E-02 0.000000000 0.1134611690E-02 0.000000000 0.1137284223E-02 0.000000000 0.1139956756E-02 0.000000000 0.1142629289E-02 0.000000000 0.1145301822E-02 0.000000000 0.1147974355E-02 0.000000000 0.1150646888E-02 0.000000000 0.1153319421E-02 0.000000000 0.1155991954E-02 0.000000000 0.1158664487E-02 0.000000000 0.1161337020E-02 0.000000000 0.1164009553E-02 0.000000000 0.1166682086E-02 0.000000000 0.1169354619E-02 0.000000000 0.1172027152E-02 0.000000000 0.1174699685E-02 0.000000000 0.1177372218E-02 0.000000000 0.1180044751E-02 0.000000000 0.1182717284E-02 0.000000000 0.1185389818E-02 0.000000000 0.1188062351E-02 0.000000000 0.1190734884E-02 0.000000000 0.1193407417E-02 0.000000000 0.1196079950E-02 0.000000000 0.1198752483E-02 0.000000000 0.1201425016E-02 0.000000000 0.1204097549E-02 0.000000000 0.1206770082E-02 0.000000000 0.1209442615E-02 0.000000000 0.1212115148E-02 0.000000000 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/PHLWIDTH.OUT0000644000000000000000000000013213543334741024046 xustar0030 mtime=1569569249.345638933 30 atime=1569569249.340638936 30 ctime=1569569249.345638933 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PHLWIDTH.OUT0000644002504400250440000012660213543334741026124 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.1054834577E-04 0.1640615945E-01 0.1054426906E-04 0.3281231890E-01 0.1053224948E-04 0.4921847835E-01 0.1051291115E-04 0.6562463780E-01 0.1048726943E-04 0.8203079725E-01 0.1045669506E-04 0.9843695670E-01 0.1042286651E-04 0.1148431162 0.1038771301E-04 0.1312492756 0.1035335081E-04 0.1476554351 0.1032201555E-04 0.1640615945 0.1029599337E-04 0.1804677540 0.1027755320E-04 0.1968739134 0.1026888230E-04 0.2132800729 0.1027202659E-04 0.2296862323 0.1028883686E-04 0.2460923918 0.1032092148E-04 0.2624985512 0.1036960608E-04 0.2789047107 0.1043589994E-04 0.2953108701 0.1052046948E-04 0.3117170296 0.1062361856E-04 0.3281231890 0.1074527583E-04 0.3445293485 0.1088498952E-04 0.3609355079 0.1104193002E-04 0.3773416674 0.1121490100E-04 0.3937478268 0.1140235969E-04 0.4101539863 0.1160244679E-04 0.4265601457 0.1181302643E-04 0.4429663052 0.1203173592E-04 0.4593724646 0.1225604474E-04 0.4757786241 0.1235715223E-04 0.4921847835 0.1232117761E-04 0.5085909430 0.1230211703E-04 0.5249971024 0.1230319825E-04 0.5414032619 0.1232707044E-04 0.5578094213 0.1237573160E-04 0.5742155808 0.1245046998E-04 0.5906217402 0.1255181836E-04 0.6070278997 0.1267952119E-04 0.6234340591 0.1283251463E-04 0.6398402186 0.1300892134E-04 0.6562463780 0.1320606214E-04 0.6726525375 0.1342048754E-04 0.6890586969 0.1364803207E-04 0.7054648564 0.1388389412E-04 0.7218710158 0.1412274272E-04 0.7382771753 0.1435885137E-04 0.7546833347 0.1458625685E-04 0.7710894942 0.1479893888E-04 0.7874956536 0.1499101419E-04 0.8039018131 0.1515693680E-04 0.8203079725 0.1529169463E-04 0.8367141320 0.1534477832E-04 0.8531202914 0.1538531932E-04 0.8695264509 0.1541996037E-04 0.8859326103 0.1544698628E-04 0.9023387698 0.1538058083E-04 0.9187449292 0.1527217934E-04 0.9351510887 0.1512369552E-04 0.9515572481 0.1493797262E-04 0.9679634076 0.1471863602E-04 0.9843695670 0.1446991558E-04 1.000775726 0.1419644783E-04 1.017181886 0.1390306852E-04 1.033588045 0.1359460603E-04 1.049994205 0.1327568534E-04 1.066400364 0.1295055054E-04 1.082806524 0.1262291236E-04 1.099212683 0.1229582502E-04 1.115618843 0.1197159525E-04 1.132025002 0.1165172428E-04 1.148431162 0.1133688276E-04 1.164837321 0.1102691786E-04 1.181243480 0.1072089095E-04 1.197649640 0.1041714488E-04 1.214055799 0.9777600309E-05 1.230461959 0.9099967529E-05 1.246868118 0.8410024987E-05 1.263274278 0.7715588455E-05 1.279680437 0.7024540575E-05 1.296086597 0.6344592768E-05 1.312492756 0.5683056486E-05 1.328898916 0.5046634419E-05 1.345305075 0.4441241004E-05 1.361711234 0.3871859762E-05 1.378117394 0.3342442719E-05 1.394523553 0.2855854678E-05 1.410929713 0.2413862481E-05 1.427335872 0.2017166951E-05 1.443742032 0.1665472985E-05 1.460148191 0.1357591512E-05 1.476554351 0.1091565743E-05 1.492960510 0.8648135035E-06 1.509366669 0.6742772993E-06 1.525772829 0.5165742427E-06 1.542178988 0.3881388419E-06 1.558585148 0.2853529263E-06 1.574991307 0.2046584482E-06 1.591397467 0.1426504762E-06 1.607803626 0.9614923659E-07 1.624209786 0.6225146469E-07 1.640615945 0.3836252037E-07 1.657022105 0.2221164456E-07 1.673428264 0.1185336640E-07 1.689834423 0.5658417901E-08 1.706240583 0.2297598172E-08 1.722646742 0.7218952595E-09 1.739052902 0.1418656213E-09 1.755459061 0.8838830962E-11 1.771865221 0.3660200637E-35 1.788365009 0.8932626533E-10 1.804864797 0.1415136414E-08 1.821364585 0.7047244014E-08 1.837864373 0.2176823466E-07 1.854364161 0.5161263052E-07 1.870863949 0.1032958840E-06 1.887363737 0.1835954396E-06 1.903863525 0.2987489043E-06 1.920363314 0.4539291341E-06 1.936863102 0.6528438813E-06 1.953362890 0.8974905434E-06 1.969862678 0.1188077092E-05 1.986362466 0.1523101129E-05 2.002862254 0.1899562630E-05 2.019362042 0.2313274129E-05 2.035861830 0.2759225805E-05 2.052361618 0.3231962306E-05 2.068861406 0.3725932535E-05 2.085361195 0.4235781728E-05 2.101860983 0.4756565504E-05 2.118360771 0.5283876579E-05 2.134860559 0.5813885136E-05 2.151360347 0.6343302461E-05 2.167860135 0.6869283813E-05 2.184359923 0.7389290391E-05 2.200859711 0.7900931827E-05 2.217359499 0.8401810253E-05 2.233859287 0.8889384889E-05 2.250359076 0.9360872867E-05 2.266858864 0.9813197806E-05 2.283358652 0.1024299286E-04 2.299858440 0.1064665981E-04 2.316358228 0.1102048051E-04 2.332858016 0.1136077214E-04 2.349357804 0.1166407323E-04 2.365857592 0.1192734441E-04 2.382357380 0.1214816579E-04 2.398857168 0.1232491308E-04 2.415356957 0.1245689589E-04 2.431856745 0.1254444546E-04 2.448356533 0.1258894344E-04 2.464856321 0.1259278914E-04 2.481356109 0.1255930810E-04 2.497855897 0.1249261027E-04 2.514355685 0.1239740994E-04 2.530855473 0.1227882220E-04 2.547355261 0.1214215190E-04 2.563855049 0.1199268984E-04 2.580354838 0.1183552954E-04 2.596854626 0.1167541420E-04 2.613354414 0.1151662052E-04 2.629854202 0.1136288209E-04 2.646353990 0.1121735185E-04 2.662853778 0.1108260049E-04 2.679353566 0.1096064543E-04 2.695853354 0.1085300388E-04 2.712353142 0.1076076258E-04 2.728852930 0.1068465674E-04 2.745352719 0.1062515100E-04 2.761852507 0.1058251570E-04 2.778352295 0.1055689268E-04 2.794852083 0.1054834577E-04 2.810926771 0.1053722989E-04 2.827001458 0.1050420196E-04 2.843076146 0.1045021086E-04 2.859150834 0.1037680425E-04 2.875225521 0.1028607971E-04 2.891300209 0.1018062002E-04 2.907374897 0.1006341580E-04 2.923449585 0.9937779442E-05 2.939524272 0.9807254234E-05 2.955598960 0.9675522938E-05 2.971673648 0.9546319337E-05 2.987748335 0.9423346015E-05 3.003823023 0.9310200733E-05 3.019897711 0.9210312918E-05 3.035972399 0.9126890847E-05 3.052047086 0.9062879185E-05 3.068121774 0.9020925735E-05 3.084196462 0.9003355626E-05 3.100271149 0.9012150729E-05 3.116345837 0.9048931959E-05 3.132420525 0.9114942219E-05 3.148495213 0.9211028107E-05 3.164569900 0.9337619132E-05 3.180644588 0.9494703930E-05 3.196719276 0.9681803855E-05 3.212793963 0.9897945252E-05 3.228868651 0.1014163252E-04 3.244943339 0.1041082482E-04 3.261018027 0.1070291978E-04 3.277092714 0.1101474774E-04 3.293167402 0.1134258013E-04 3.309242090 0.1168215497E-04 3.325316777 0.1202872212E-04 3.341391465 0.1237710957E-04 3.357466153 0.1272181122E-04 3.373540841 0.1305709509E-04 3.389615528 0.1337712963E-04 3.405690216 0.1367612453E-04 3.421764904 0.1394848116E-04 3.437839591 0.1356105511E-04 3.453914279 0.1319186101E-04 3.469988967 0.1290028453E-04 3.486063655 0.1268972879E-04 3.502138342 0.1256250599E-04 3.518213030 0.1251995279E-04 3.534197200 0.1254047020E-04 3.550181370 0.1260128515E-04 3.566165539 0.1270021334E-04 3.582149709 0.1283370691E-04 3.598133879 0.1299699598E-04 3.614118048 0.1318429001E-04 3.630102218 0.1338903773E-04 3.646086388 0.1360423938E-04 3.662070558 0.1382279828E-04 3.678054727 0.1403789158E-04 3.694038897 0.1424333450E-04 3.710023067 0.1443390871E-04 3.726007236 0.1460562622E-04 3.741991406 0.1475590390E-04 3.757975576 0.1488363199E-04 3.773959746 0.1498912954E-04 3.789943915 0.1488650472E-04 3.805928085 0.1452024652E-04 3.821912255 0.1425889212E-04 3.837896424 0.1409542607E-04 3.853880594 0.1402087280E-04 3.869864764 0.1402458528E-04 3.885848934 0.1409450734E-04 3.901833103 0.1421744360E-04 3.917817273 0.1437936814E-04 3.933801443 0.1456579301E-04 3.949785613 0.1476220272E-04 3.965769782 0.1495454444E-04 3.981753952 0.1512974832E-04 3.997738122 0.1527624132E-04 4.013722291 0.1538441217E-04 4.029706461 0.1544698628E-04 4.045690631 0.1538441217E-04 4.061674801 0.1527624132E-04 4.077658970 0.1512974832E-04 4.093643140 0.1495454444E-04 4.109627310 0.1476220272E-04 4.125611479 0.1456579301E-04 4.141595649 0.1437936814E-04 4.157579819 0.1421744360E-04 4.173563989 0.1409450734E-04 4.189548158 0.1402458528E-04 4.205532328 0.1402087280E-04 4.221516498 0.1409542607E-04 4.237500668 0.1425889212E-04 4.253484837 0.1452024652E-04 4.269469007 0.1488650472E-04 4.285453177 0.1498912954E-04 4.301437346 0.1488363199E-04 4.317421516 0.1475590390E-04 4.333405686 0.1460562622E-04 4.349389856 0.1443390871E-04 4.365374025 0.1424333450E-04 4.381358195 0.1403789158E-04 4.397342365 0.1382279828E-04 4.413326534 0.1360423938E-04 4.429310704 0.1338903773E-04 4.445294874 0.1318429001E-04 4.461279044 0.1299699598E-04 4.477263213 0.1283370691E-04 4.493247383 0.1270021334E-04 4.509231553 0.1260128515E-04 4.525215722 0.1254047020E-04 4.541199892 0.1251995279E-04 4.557639914 0.1246695510E-04 4.574079935 0.1230996500E-04 4.590519957 0.1205485143E-04 4.606959978 0.1171094311E-04 4.623400000 0.1129039646E-04 4.639840021 0.1080739847E-04 4.656280043 0.1027727909E-04 4.672720064 0.9715611473E-05 4.689160086 0.9137373629E-05 4.705600107 0.8556232231E-05 4.722040129 0.7983990861E-05 4.738480151 0.7430224101E-05 4.754920172 0.6902098424E-05 4.771360194 0.6404363683E-05 4.787800215 0.5939486916E-05 4.804240237 0.5507894145E-05 4.820680258 0.5108285499E-05 4.837120280 0.4737993175E-05 4.853560301 0.4393358514E-05 4.870000323 0.4070111711E-05 4.886440344 0.3763743571E-05 4.902880366 0.3469861771E-05 4.919320387 0.3184524093E-05 4.935760409 0.2904538254E-05 4.952200430 0.2627713723E-05 4.968640452 0.2353046931E-05 4.985080473 0.2080819449E-05 5.001520495 0.1812590507E-05 5.017960517 0.1551071619E-05 5.034400538 0.1299881714E-05 5.050840560 0.1063195205E-05 5.067280581 0.8453105848E-06 5.083720603 0.6501811297E-06 5.100160624 0.4809592438E-06 5.116600646 0.3396098588E-06 5.133040667 0.2266445319E-06 5.149480689 0.1410163558E-06 5.165920710 0.8019748571E-07 5.182360732 0.4043830627E-07 5.198800753 0.1718311419E-07 5.215240775 0.5595247892E-08 5.231680796 0.1128232826E-08 5.248120818 0.7139362773E-10 5.264560839 0.3660200637E-35 5.281046338 0.1157181683E-10 5.297531837 0.1859975642E-09 5.314017336 0.9486846086E-09 5.330502835 0.3029022438E-08 5.346988334 0.7489035783E-08 5.363473833 0.1575965431E-07 5.379959331 0.2968073469E-07 5.396444830 0.5153989973E-07 5.412930329 0.8410430656E-07 5.429415828 0.1306387300E-06 5.445901327 0.1949029760E-06 5.462386826 0.2811217578E-06 5.478872325 0.3939208904E-06 5.495357823 0.5382250678E-06 5.511843322 0.7191146082E-06 5.528328821 0.9416413240E-06 5.544814320 0.1210606980E-05 5.561299819 0.1530311407E-05 5.577785318 0.1904281000E-05 5.594270817 0.2334991631E-05 5.610756315 0.2823602735E-05 5.627241814 0.3369720992E-05 5.643727313 0.3971212468E-05 5.660212812 0.4594868291E-05 5.676698311 0.5153141893E-05 5.693183810 0.5732080910E-05 5.709669309 0.6327286738E-05 5.726154807 0.6934094126E-05 5.742640306 0.7547661040E-05 5.759125805 0.8163058282E-05 5.775611304 0.8775353257E-05 5.792096803 0.9379674969E-05 5.808582302 0.9971211304E-05 5.825067801 0.1054480672E-04 5.841553299 0.1108660120E-04 5.858038798 0.1135240616E-04 5.874524297 0.1149071808E-04 5.891009796 0.1161832377E-04 5.907495295 0.1174174170E-04 5.923980794 0.1186477707E-04 5.940466292 0.1199032710E-04 5.956951791 0.1212054732E-04 5.973437290 0.1225687944E-04 5.989922789 0.1240007008E-04 6.006408288 0.1255020191E-04 6.022893787 0.1270674162E-04 6.039379286 0.1286860490E-04 6.055864784 0.1303423723E-04 6.072350283 0.1320170851E-04 6.088835782 0.1336881836E-04 6.105321281 0.1353320778E-04 6.121806780 0.1369247121E-04 6.138292279 0.1384426075E-04 6.154777778 0.1398637052E-04 6.171263276 0.1411678124E-04 6.187748775 0.1423362492E-04 6.204234274 0.1433496739E-04 6.220719773 0.1441809076E-04 6.237205272 0.1447713426E-04 6.253690771 0.1449564473E-04 6.270176270 0.1444141124E-04 6.286661768 0.1431459175E-04 6.303147267 0.1415178368E-04 6.319632766 0.1397429326E-04 6.336118265 0.1379143575E-04 6.352603764 0.1360867360E-04 6.369089263 0.1343019623E-04 6.385574762 0.1325966868E-04 6.402060260 0.1310044687E-04 6.418545759 0.1295561831E-04 6.435031258 0.1282798085E-04 6.451516757 0.1272000067E-04 6.468002256 0.1263376657E-04 6.484487755 0.1257094849E-04 6.500973254 0.1253276381E-04 6.517458752 0.1251995279E-04 0.000000000 0.1054834577E-04 0.1640615945E-01 0.1054426906E-04 0.3281231890E-01 0.1053224948E-04 0.4921847835E-01 0.1051291115E-04 0.6562463780E-01 0.1048726943E-04 0.8203079725E-01 0.1045669506E-04 0.9843695670E-01 0.1042286651E-04 0.1148431162 0.1038771301E-04 0.1312492756 0.1035335081E-04 0.1476554351 0.1032201555E-04 0.1640615945 0.1029599337E-04 0.1804677540 0.1027755320E-04 0.1968739134 0.1026888230E-04 0.2132800729 0.1027202659E-04 0.2296862323 0.1028883686E-04 0.2460923918 0.1032092148E-04 0.2624985512 0.1036960608E-04 0.2789047107 0.1043589994E-04 0.2953108701 0.1052046948E-04 0.3117170296 0.1062361856E-04 0.3281231890 0.1074527583E-04 0.3445293485 0.1088498952E-04 0.3609355079 0.1104193002E-04 0.3773416674 0.1121490100E-04 0.3937478268 0.1140235969E-04 0.4101539863 0.1160244679E-04 0.4265601457 0.1181302643E-04 0.4429663052 0.1203173592E-04 0.4593724646 0.1225604474E-04 0.4757786241 0.1248332142E-04 0.4921847835 0.1271090646E-04 0.5085909430 0.1293618870E-04 0.5249971024 0.1315668217E-04 0.5414032619 0.1337010003E-04 0.5578094213 0.1357442214E-04 0.5742155808 0.1376795293E-04 0.5906217402 0.1394936641E-04 0.6070278997 0.1411773591E-04 0.6234340591 0.1427254689E-04 0.6398402186 0.1441369162E-04 0.6562463780 0.1454144609E-04 0.6726525375 0.1465642959E-04 0.6890586969 0.1475954901E-04 0.7054648564 0.1485192987E-04 0.7218710158 0.1493483703E-04 0.7382771753 0.1500958826E-04 0.7546833347 0.1507746393E-04 0.7710894942 0.1513961607E-04 0.7874956536 0.1519698017E-04 0.8039018131 0.1525019257E-04 0.8203079725 0.1529951636E-04 0.8367141320 0.1534477832E-04 0.8531202914 0.1538531932E-04 0.8695264509 0.1541996037E-04 0.8859326103 0.1544698628E-04 0.9023387698 0.1546414893E-04 0.9187449292 0.1546869132E-04 0.9351510887 0.1545739405E-04 0.9515572481 0.1542664430E-04 0.9679634076 0.1537252771E-04 0.9843695670 0.1529094174E-04 1.000775726 0.1517772874E-04 1.017181886 0.1502882532E-04 1.033588045 0.1484042350E-04 1.049994205 0.1460913796E-04 1.066400364 0.1433217268E-04 1.082806524 0.1400747923E-04 1.099212683 0.1363389892E-04 1.115618843 0.1321128067E-04 1.132025002 0.1274056742E-04 1.148431162 0.1222384449E-04 1.164837321 0.1166434541E-04 1.181243480 0.1106641231E-04 1.197649640 0.1043541066E-04 1.214055799 0.9777600309E-05 1.230461959 0.9099967529E-05 1.246868118 0.8410024987E-05 1.263274278 0.7715588455E-05 1.279680437 0.7024540575E-05 1.296086597 0.6344592768E-05 1.312492756 0.5683056486E-05 1.328898916 0.5046634419E-05 1.345305075 0.4441241004E-05 1.361711234 0.3871859762E-05 1.378117394 0.3342442719E-05 1.394523553 0.2855854678E-05 1.410929713 0.2413862481E-05 1.427335872 0.2017166951E-05 1.443742032 0.1665472985E-05 1.460148191 0.1357591512E-05 1.476554351 0.1091565743E-05 1.492960510 0.8648135035E-06 1.509366669 0.6742772993E-06 1.525772829 0.5165742427E-06 1.542178988 0.3881388419E-06 1.558585148 0.2853529263E-06 1.574991307 0.2046584482E-06 1.591397467 0.1426504762E-06 1.607803626 0.9614923659E-07 1.624209786 0.6225146469E-07 1.640615945 0.3836252037E-07 1.657022105 0.2221164456E-07 1.673428264 0.1185336640E-07 1.689834423 0.5658417901E-08 1.706240583 0.2297598172E-08 1.722646742 0.7218952595E-09 1.739052902 0.1418656213E-09 1.755459061 0.8838830962E-11 1.771865221 0.3660200637E-35 1.788365009 0.8932626533E-10 1.804864797 0.1415136414E-08 1.821364585 0.7047244014E-08 1.837864373 0.2176823466E-07 1.854364161 0.5161263052E-07 1.870863949 0.1032958840E-06 1.887363737 0.1835954396E-06 1.903863525 0.2987489043E-06 1.920363314 0.4539291341E-06 1.936863102 0.6528438813E-06 1.953362890 0.8974905434E-06 1.969862678 0.1188077092E-05 1.986362466 0.1523101129E-05 2.002862254 0.1899562630E-05 2.019362042 0.2313274129E-05 2.035861830 0.2759225805E-05 2.052361618 0.3231962306E-05 2.068861406 0.3725932535E-05 2.085361195 0.4235781728E-05 2.101860983 0.4756565504E-05 2.118360771 0.5283876579E-05 2.134860559 0.5813885136E-05 2.151360347 0.6343302461E-05 2.167860135 0.6869283813E-05 2.184359923 0.7389290391E-05 2.200859711 0.7900931827E-05 2.217359499 0.8401810253E-05 2.233859287 0.8889384889E-05 2.250359076 0.9360872867E-05 2.266858864 0.9813197806E-05 2.283358652 0.1024299286E-04 2.299858440 0.1064665981E-04 2.316358228 0.1102048051E-04 2.332858016 0.1136077214E-04 2.349357804 0.1166407323E-04 2.365857592 0.1192734441E-04 2.382357380 0.1214816579E-04 2.398857168 0.1232491308E-04 2.415356957 0.1245689589E-04 2.431856745 0.1254444546E-04 2.448356533 0.1258894344E-04 2.464856321 0.1259278914E-04 2.481356109 0.1255930810E-04 2.497855897 0.1249261027E-04 2.514355685 0.1239740994E-04 2.530855473 0.1227882220E-04 2.547355261 0.1214215190E-04 2.563855049 0.1199268984E-04 2.580354838 0.1183552954E-04 2.596854626 0.1167541420E-04 2.613354414 0.1151662052E-04 2.629854202 0.1136288209E-04 2.646353990 0.1121735185E-04 2.662853778 0.1108260049E-04 2.679353566 0.1096064543E-04 2.695853354 0.1085300388E-04 2.712353142 0.1076076258E-04 2.728852930 0.1068465674E-04 2.745352719 0.1062515100E-04 2.761852507 0.1058251570E-04 2.778352295 0.1055689268E-04 2.794852083 0.1054834577E-04 2.810926771 0.1056683174E-04 2.827001458 0.1062226349E-04 2.843076146 0.1071456062E-04 2.859150834 0.1084358265E-04 2.875225521 0.1100911964E-04 2.891300209 0.1121087962E-04 2.907374897 0.1144847348E-04 2.923449585 0.1172139808E-04 2.939524272 0.1202901813E-04 2.955598960 0.1237054801E-04 2.971673648 0.1274503419E-04 2.987748335 0.1315133910E-04 3.003823023 0.1358812738E-04 3.019897711 0.1405385507E-04 3.035972399 0.1454676247E-04 3.052047086 0.1506487097E-04 3.068121774 0.1560598434E-04 3.084196462 0.1616769443E-04 3.100271149 0.1674739147E-04 3.116345837 0.1734227862E-04 3.132420525 0.1794939051E-04 3.148495213 0.1856561536E-04 3.164569900 0.1918772011E-04 3.180644588 0.1981237786E-04 3.196719276 0.2043619703E-04 3.212793963 0.2105575147E-04 3.228868651 0.2134954376E-04 3.244943339 0.2089825959E-04 3.261018027 0.2036670290E-04 3.277092714 0.1976950811E-04 3.293167402 0.1912241958E-04 3.309242090 0.1844173480E-04 3.325316777 0.1774376981E-04 3.341391465 0.1704437363E-04 3.357466153 0.1635851371E-04 3.373540841 0.1569994809E-04 3.389615528 0.1508099252E-04 3.405690216 0.1451238378E-04 3.421764904 0.1400323280E-04 3.437839591 0.1418894696E-04 3.453914279 0.1439276751E-04 3.469988967 0.1455582950E-04 3.486063655 0.1467478843E-04 3.502138342 0.1474717476E-04 3.518213030 0.1477147370E-04 3.534197200 0.1477062742E-04 3.550181370 0.1476833660E-04 3.566165539 0.1476532445E-04 3.582149709 0.1476272833E-04 3.598133879 0.1476200336E-04 3.614118048 0.1476479813E-04 3.630102218 0.1477281176E-04 3.646086388 0.1478764293E-04 3.662070558 0.1481064170E-04 3.678054727 0.1484277451E-04 3.694038897 0.1488451194E-04 3.710023067 0.1493574739E-04 3.726007236 0.1499575329E-04 3.741991406 0.1506317928E-04 3.757975576 0.1513609511E-04 3.773959746 0.1521207796E-04 3.789943915 0.1507399107E-04 3.805928085 0.1514083914E-04 3.821912255 0.1519300574E-04 3.837896424 0.1523417105E-04 3.853880594 0.1526799021E-04 3.869864764 0.1529773828E-04 3.885848934 0.1532600028E-04 3.901833103 0.1535442911E-04 3.917817273 0.1538358874E-04 3.933801443 0.1541289510E-04 3.949785613 0.1544066111E-04 3.965769782 0.1546424724E-04 3.981753952 0.1548031205E-04 3.997738122 0.1547362522E-04 4.013722291 0.1545431222E-04 4.029706461 0.1544698628E-04 4.045690631 0.1545431222E-04 4.061674801 0.1547362522E-04 4.077658970 0.1548031205E-04 4.093643140 0.1546424724E-04 4.109627310 0.1544066111E-04 4.125611479 0.1541289510E-04 4.141595649 0.1538358874E-04 4.157579819 0.1535442911E-04 4.173563989 0.1532600028E-04 4.189548158 0.1529773828E-04 4.205532328 0.1526799021E-04 4.221516498 0.1523417105E-04 4.237500668 0.1519300574E-04 4.253484837 0.1514083914E-04 4.269469007 0.1507399107E-04 4.285453177 0.1521207796E-04 4.301437346 0.1513609511E-04 4.317421516 0.1506317928E-04 4.333405686 0.1499575329E-04 4.349389856 0.1493574739E-04 4.365374025 0.1488451194E-04 4.381358195 0.1484277451E-04 4.397342365 0.1481064170E-04 4.413326534 0.1478764293E-04 4.429310704 0.1477281176E-04 4.445294874 0.1476479813E-04 4.461279044 0.1476200336E-04 4.477263213 0.1476272833E-04 4.493247383 0.1476532445E-04 4.509231553 0.1476833660E-04 4.525215722 0.1477062742E-04 4.541199892 0.1477147370E-04 4.557639914 0.1470901098E-04 4.574079935 0.1452430448E-04 4.590519957 0.1422519394E-04 4.606959978 0.1382408389E-04 4.623400000 0.1333702618E-04 4.639840021 0.1278257482E-04 4.656280043 0.1218052865E-04 4.672720064 0.1155068102E-04 4.689160086 0.1091168418E-04 4.705600107 0.1028011181E-04 4.722040129 0.9669771544E-05 4.738480151 0.9091284989E-05 4.754920172 0.8551921707E-05 4.771360194 0.8055650474E-05 4.787800215 0.7603358265E-05 4.804240237 0.7193185640E-05 4.820680258 0.6820934945E-05 4.837120280 0.6480521436E-05 4.853560301 0.6164452982E-05 4.870000323 0.5864336687E-05 4.886440344 0.5571417287E-05 4.902880366 0.5277150357E-05 4.919320387 0.4973803418E-05 4.935760409 0.4655062135E-05 4.952200430 0.4316600679E-05 4.968640452 0.3956559847E-05 4.985080473 0.3575868257E-05 5.001520495 0.3178344517E-05 5.017960517 0.2770533429E-05 5.034400538 0.2361256315E-05 5.050840560 0.1960891322E-05 5.067280581 0.1580438945E-05 5.083720603 0.1230464449E-05 5.100160624 0.9200360014E-06 5.116600646 0.6557894261E-06 5.133040667 0.4412443202E-06 5.149480689 0.2764710817E-06 5.165920710 0.1581667999E-06 5.182360732 0.8014524257E-07 5.198800753 0.3418980647E-07 5.215240775 0.1116666638E-07 5.231680796 0.2256457924E-08 5.248120818 0.1429677656E-09 5.264560839 0.3660200637E-35 5.281046338 0.2477821740E-10 5.297531837 0.3952335424E-09 5.314017336 0.1990636964E-08 5.330502835 0.6246405822E-08 5.346988334 0.1510998601E-07 5.363473833 0.3098092474E-07 5.379959331 0.5663690360E-07 5.396444830 0.9514791197E-07 5.412930329 0.1497810849E-06 5.429415828 0.2238989951E-06 5.445901327 0.3208543686E-06 5.462386826 0.4438842832E-06 5.478872325 0.5960069044E-06 5.495357823 0.7799237137E-06 5.511843322 0.9979299998E-06 5.528328821 0.1251836110E-05 5.544814320 0.1542901613E-05 5.561299819 0.1871784127E-05 5.577785318 0.2238504086E-05 5.594270817 0.2642426267E-05 5.610756315 0.3082258336E-05 5.627241814 0.3556066227E-05 5.643727313 0.4061305612E-05 5.660212812 0.4624081026E-05 5.676698311 0.5322428285E-05 5.693183810 0.6058506301E-05 5.709669309 0.6822868901E-05 5.726154807 0.7604621301E-05 5.742640306 0.8391761001E-05 5.759125805 0.9171596240E-05 5.775611304 0.9931222326E-05 5.792096803 0.1065803127E-04 5.808582302 0.1087066782E-04 5.825067801 0.1105638559E-04 5.841553299 0.1123163366E-04 5.858038798 0.1164182145E-04 5.874524297 0.1213994627E-04 5.891009796 0.1261085892E-04 5.907495295 0.1304971065E-04 5.923980794 0.1345430427E-04 5.940466292 0.1382321257E-04 5.956951791 0.1415555249E-04 5.973437290 0.1445091343E-04 5.989922789 0.1443179199E-04 6.006408288 0.1438250142E-04 6.022893787 0.1431754103E-04 6.039379286 0.1424904912E-04 6.055864784 0.1418895778E-04 6.072350283 0.1414871540E-04 6.088835782 0.1413906492E-04 6.105321281 0.1416987432E-04 6.121806780 0.1425001080E-04 6.138292279 0.1438724573E-04 6.154777778 0.1458817548E-04 6.171263276 0.1485814341E-04 6.187748775 0.1520115027E-04 6.204234274 0.1520427075E-04 6.220719773 0.1508419235E-04 6.237205272 0.1495917836E-04 6.253690771 0.1484802130E-04 6.270176270 0.1478578931E-04 6.286661768 0.1477565883E-04 6.303147267 0.1478478151E-04 6.319632766 0.1479593408E-04 6.336118265 0.1480412304E-04 6.352603764 0.1480834226E-04 6.369089263 0.1480888454E-04 6.385574762 0.1480648497E-04 6.402060260 0.1480200257E-04 6.418545759 0.1479628468E-04 6.435031258 0.1479010420E-04 6.451516757 0.1478412979E-04 6.468002256 0.1477891260E-04 6.484487755 0.1477488120E-04 6.500973254 0.1477234075E-04 6.517458752 0.1477147370E-04 0.000000000 0.1054834577E-04 0.1640615945E-01 0.1056207525E-04 0.3281231890E-01 0.1060293411E-04 0.4921847835E-01 0.1066993838E-04 0.6562463780E-01 0.1076146428E-04 0.8203079725E-01 0.1087527433E-04 0.9843695670E-01 0.1100855685E-04 0.1148431162 0.1115798135E-04 0.1312492756 0.1131977182E-04 0.1476554351 0.1148979922E-04 0.1640615945 0.1166369312E-04 0.1804677540 0.1183697094E-04 0.1968739134 0.1200518128E-04 0.2132800729 0.1216405636E-04 0.2296862323 0.1230966673E-04 0.2460923918 0.1243857079E-04 0.2624985512 0.1254795083E-04 0.2789047107 0.1263572786E-04 0.2953108701 0.1270064827E-04 0.3117170296 0.1274233693E-04 0.3281231890 0.1276131347E-04 0.3445293485 0.1275897089E-04 0.3609355079 0.1273751772E-04 0.3773416674 0.1269988775E-04 0.3937478268 0.1264962258E-04 0.4101539863 0.1259073417E-04 0.4265601457 0.1252755464E-04 0.4429663052 0.1246458107E-04 0.4593724646 0.1240632213E-04 0.4757786241 0.1248332142E-04 0.4921847835 0.1271090646E-04 0.5085909430 0.1293618870E-04 0.5249971024 0.1315668217E-04 0.5414032619 0.1337010003E-04 0.5578094213 0.1357442214E-04 0.5742155808 0.1376795293E-04 0.5906217402 0.1394936641E-04 0.6070278997 0.1411773591E-04 0.6234340591 0.1427254689E-04 0.6398402186 0.1441369162E-04 0.6562463780 0.1454144609E-04 0.6726525375 0.1465642959E-04 0.6890586969 0.1475954901E-04 0.7054648564 0.1485192987E-04 0.7218710158 0.1493483703E-04 0.7382771753 0.1500958826E-04 0.7546833347 0.1507746393E-04 0.7710894942 0.1513961607E-04 0.7874956536 0.1519698017E-04 0.8039018131 0.1525019257E-04 0.8203079725 0.1529951636E-04 0.8367141320 0.1539099209E-04 0.8531202914 0.1545140810E-04 0.8695264509 0.1547052008E-04 0.8859326103 0.1544698628E-04 0.9023387698 0.1546414893E-04 0.9187449292 0.1546869132E-04 0.9351510887 0.1545739405E-04 0.9515572481 0.1542664430E-04 0.9679634076 0.1537252771E-04 0.9843695670 0.1529094174E-04 1.000775726 0.1517772874E-04 1.017181886 0.1502882532E-04 1.033588045 0.1484042350E-04 1.049994205 0.1460913796E-04 1.066400364 0.1433217268E-04 1.082806524 0.1400747923E-04 1.099212683 0.1363389892E-04 1.115618843 0.1321128067E-04 1.132025002 0.1274056742E-04 1.148431162 0.1222384449E-04 1.164837321 0.1166434541E-04 1.181243480 0.1106641231E-04 1.197649640 0.1043541066E-04 1.214055799 0.1011339914E-04 1.230461959 0.9806871688E-05 1.246868118 0.9494425746E-05 1.263274278 0.9172739135E-05 1.279680437 0.8838492804E-05 1.296086597 0.8488573531E-05 1.312492756 0.8120283992E-05 1.328898916 0.7731551352E-05 1.345305075 0.7321123655E-05 1.361711234 0.6888741821E-05 1.378117394 0.6435274304E-05 1.394523553 0.5962801736E-05 1.410929713 0.5474640284E-05 1.427335872 0.4975295184E-05 1.443742032 0.4470339785E-05 1.460148191 0.3966220397E-05 1.476554351 0.3469992795E-05 1.492960510 0.2989002049E-05 1.509366669 0.2530522848E-05 1.525772829 0.2101382121E-05 1.542178988 0.1707588996E-05 1.558585148 0.1353998581E-05 1.574991307 0.1044035377E-05 1.591397467 0.7794992683E-06 1.607803626 0.5604720197E-06 1.624209786 0.3853354346E-06 1.640615945 0.2509042102E-06 1.657022105 0.1526677470E-06 1.673428264 0.8512646524E-07 1.689834423 0.4220030883E-07 1.706240583 0.1768080138E-07 1.722646742 0.5693860207E-08 1.739052902 0.1138995734E-08 1.755459061 0.7172885624E-10 1.771865221 0.3660200637E-35 1.788365009 0.1659161240E-09 1.804864797 0.2629173768E-08 1.821364585 0.1309806660E-07 1.837864373 0.4047669917E-07 1.854364161 0.9601080077E-07 1.870863949 0.1922068135E-06 1.887363737 0.3416260997E-06 1.903863525 0.5556677803E-06 1.920363314 0.8434544697E-06 1.936863102 0.1210924842E-05 1.953362890 0.1660216454E-05 1.969862678 0.2189393546E-05 1.986362466 0.2792540533E-05 2.002862254 0.3460206128E-05 2.019362042 0.4180149275E-05 2.035861830 0.4938310050E-05 2.052361618 0.5719909311E-05 2.068861406 0.6510572242E-05 2.085361195 0.7297373714E-05 2.101860983 0.8069716696E-05 2.118360771 0.8819976798E-05 2.134860559 0.9543873082E-05 2.151360347 0.1024055372E-04 2.167860135 0.1091241124E-04 2.184359923 0.1156466245E-04 2.200859711 0.1220474128E-04 2.217359499 0.1284155727E-04 2.233859287 0.1348467014E-04 2.250359076 0.1414342402E-04 2.266858864 0.1482607572E-04 2.283358652 0.1553894529E-04 2.299858440 0.1628561389E-04 2.316358228 0.1706619792E-04 2.332858016 0.1787673667E-04 2.349357804 0.1870874229E-04 2.365857592 0.1954897202E-04 2.382357380 0.2037948757E-04 2.398857168 0.2117806265E-04 2.415356957 0.2191898173E-04 2.431856745 0.2257424232E-04 2.448356533 0.2311512991E-04 2.464856321 0.2351408414E-04 2.481356109 0.2374672503E-04 2.497855897 0.2379386642E-04 2.514355685 0.2364331927E-04 2.530855473 0.2329128689E-04 2.547355261 0.2274318046E-04 2.563855049 0.2201373613E-04 2.580354838 0.2112638888E-04 2.596854626 0.2011194376E-04 2.613354414 0.1900667091E-04 2.629854202 0.1785002212E-04 2.646353990 0.1668221388E-04 2.662853778 0.1554193557E-04 2.679353566 0.1446441820E-04 2.695853354 0.1348004232E-04 2.712353142 0.1261358124E-04 2.728852930 0.1188407966E-04 2.745352719 0.1130527477E-04 2.761852507 0.1088639015E-04 2.778352295 0.1063308680E-04 2.794852083 0.1054834577E-04 2.810926771 0.1059201403E-04 2.827001458 0.1072273776E-04 2.843076146 0.1093963969E-04 2.859150834 0.1124114764E-04 2.875225521 0.1162484183E-04 2.891300209 0.1208726497E-04 2.907374897 0.1262371669E-04 2.923449585 0.1322805663E-04 2.939524272 0.1389254165E-04 2.955598960 0.1460772134E-04 2.971673648 0.1536241268E-04 2.987748335 0.1614376971E-04 3.003823023 0.1693745735E-04 3.019897711 0.1772793119E-04 3.035972399 0.1849881677E-04 3.052047086 0.1923337464E-04 3.068121774 0.1991503004E-04 3.084196462 0.2052794083E-04 3.100271149 0.2105757331E-04 3.116345837 0.2149125380E-04 3.132420525 0.2181866453E-04 3.148495213 0.2203225486E-04 3.164569900 0.2212754384E-04 3.180644588 0.2210329629E-04 3.196719276 0.2196156254E-04 3.212793963 0.2170758006E-04 3.228868651 0.2166761086E-04 3.244943339 0.2226837071E-04 3.261018027 0.2285468127E-04 3.277092714 0.2342327500E-04 3.293167402 0.2397099196E-04 3.309242090 0.2449480281E-04 3.325316777 0.2499182932E-04 3.341391465 0.2545936206E-04 3.357466153 0.2589487534E-04 3.373540841 0.2629603955E-04 3.389615528 0.2666073085E-04 3.405690216 0.2698703860E-04 3.421764904 0.2727327082E-04 3.437839591 0.2751795784E-04 3.453914279 0.2771985464E-04 3.469988967 0.2787794215E-04 3.486063655 0.2799142777E-04 3.502138342 0.2805974547E-04 3.518213030 0.2808255576E-04 3.534197200 0.2797669282E-04 3.550181370 0.2766338570E-04 3.566165539 0.2715519339E-04 3.582149709 0.2647212166E-04 3.598133879 0.2564032923E-04 3.614118048 0.2469049377E-04 3.630102218 0.2365598843E-04 3.646086388 0.2257102903E-04 3.662070558 0.2146894229E-04 3.678054727 0.2038068023E-04 3.694038897 0.1933366779E-04 3.710023067 0.1835102680E-04 3.726007236 0.1745117500E-04 3.741991406 0.1664776037E-04 3.757975576 0.1594986263E-04 3.773959746 0.1536237838E-04 3.789943915 0.1528834174E-04 3.805928085 0.1536190223E-04 3.821912255 0.1542976931E-04 3.837896424 0.1548915445E-04 3.853880594 0.1553767911E-04 3.869864764 0.1557356849E-04 3.885848934 0.1559581501E-04 3.901833103 0.1560429724E-04 3.917817273 0.1559984290E-04 3.933801443 0.1558422894E-04 3.949785613 0.1556011645E-04 3.965769782 0.1553092360E-04 3.981753952 0.1550064445E-04 3.997738122 0.1548515049E-04 4.013722291 0.1547509993E-04 4.029706461 0.1544698628E-04 4.045690631 0.1547509993E-04 4.061674801 0.1548515049E-04 4.077658970 0.1550064445E-04 4.093643140 0.1553092360E-04 4.109627310 0.1556011645E-04 4.125611479 0.1558422894E-04 4.141595649 0.1559984290E-04 4.157579819 0.1560429724E-04 4.173563989 0.1559581501E-04 4.189548158 0.1557356849E-04 4.205532328 0.1553767911E-04 4.221516498 0.1548915445E-04 4.237500668 0.1542976931E-04 4.253484837 0.1536190223E-04 4.269469007 0.1528834174E-04 4.285453177 0.1536237838E-04 4.301437346 0.1594986263E-04 4.317421516 0.1664776037E-04 4.333405686 0.1745117500E-04 4.349389856 0.1835102680E-04 4.365374025 0.1933366779E-04 4.381358195 0.2038068023E-04 4.397342365 0.2146894229E-04 4.413326534 0.2257102903E-04 4.429310704 0.2365598843E-04 4.445294874 0.2469049377E-04 4.461279044 0.2564032923E-04 4.477263213 0.2647212166E-04 4.493247383 0.2715519339E-04 4.509231553 0.2766338570E-04 4.525215722 0.2797669282E-04 4.541199892 0.2808255576E-04 4.557639914 0.2796923447E-04 4.574079935 0.2763455254E-04 4.590519957 0.2709393256E-04 4.606959978 0.2637171675E-04 4.623400000 0.2549928623E-04 4.639840021 0.2451272755E-04 4.656280043 0.2345029201E-04 4.672720064 0.2234989619E-04 4.689160086 0.2124688240E-04 4.705600107 0.2017220051E-04 4.722040129 0.1915110114E-04 4.738480151 0.1820235630E-04 4.754920172 0.1733796045E-04 4.771360194 0.1656322304E-04 4.787800215 0.1587714685E-04 4.804240237 0.1527299610E-04 4.820680258 0.1473898725E-04 4.837120280 0.1425907517E-04 4.853560301 0.1381384503E-04 4.870000323 0.1338154649E-04 4.886440344 0.1293931069E-04 4.902880366 0.1246457152E-04 4.919320387 0.1193667037E-04 4.935760409 0.1133856736E-04 4.952200430 0.1065852275E-04 4.968640452 0.9891564474E-05 4.985080473 0.9040533452E-05 5.001520495 0.8116508733E-05 5.017960517 0.7138461737E-05 5.034400538 0.6132071447E-05 5.050840560 0.5127739543E-05 5.067280581 0.4157961125E-05 5.083720603 0.3254314005E-05 5.100160624 0.2444408761E-05 5.116600646 0.1749177352E-05 5.133040667 0.1180860487E-05 5.149480689 0.7419820054E-06 5.165920710 0.4254795286E-06 5.182360732 0.2160102523E-06 5.198800753 0.9229010774E-07 5.215240775 0.3017759525E-07 5.231680796 0.6102964183E-08 5.248120818 0.3868660582E-09 5.264560839 0.3660200637E-35 5.281046338 0.8176172578E-10 5.297531837 0.1298980946E-08 5.314017336 0.6499188863E-08 5.330502835 0.2020548315E-07 5.346988334 0.4829872089E-07 5.363473833 0.9760406135E-07 5.379959331 0.1754104602E-06 5.396444830 0.2889560528E-06 5.412930329 0.4449142619E-06 5.429415828 0.6489148232E-06 5.445901327 0.9051308401E-06 5.462386826 0.1215957744E-05 5.478872325 0.1581803104E-05 5.495357823 0.2000998167E-05 5.511843322 0.2469833459E-05 5.528328821 0.2982712401E-05 5.544814320 0.3532409317E-05 5.561299819 0.4110411930E-05 5.577785318 0.4707323905E-05 5.594270817 0.5313300438E-05 5.610756315 0.5918489338E-05 5.627241814 0.6513451494E-05 5.643727313 0.7089537737E-05 5.660212812 0.7639203650E-05 5.676698311 0.8156249231E-05 5.693183810 0.8635976233E-05 5.709669309 0.9075261788E-05 5.726154807 0.9472552331E-05 5.742640306 0.9827786558E-05 5.759125805 0.1014226014E-04 5.775611304 0.1041844912E-04 5.792096803 0.1065981713E-04 5.808582302 0.1134022694E-04 5.825067801 0.1196731657E-04 5.841553299 0.1253055065E-04 5.858038798 0.1302328567E-04 5.874524297 0.1344124983E-04 5.891009796 0.1378269775E-04 5.907495295 0.1404844805E-04 5.923980794 0.1424180563E-04 5.940466292 0.1436837788E-04 5.956951791 0.1443580106E-04 5.973437290 0.1445339804E-04 5.989922789 0.1470930997E-04 6.006408288 0.1493113688E-04 6.022893787 0.1511712212E-04 6.039379286 0.1526827786E-04 6.055864784 0.1538585064E-04 6.072350283 0.1547127266E-04 6.088835782 0.1552611655E-04 6.105321281 0.1555205632E-04 6.121806780 0.1555083791E-04 6.138292279 0.1552426437E-04 6.154777778 0.1547420309E-04 6.171263276 0.1540263041E-04 6.187748775 0.1531174834E-04 6.204234274 0.1561974464E-04 6.220719773 0.1611489034E-04 6.237205272 0.1668581442E-04 6.253690771 0.1732984569E-04 6.270176270 0.1804225965E-04 6.286661768 0.1881615024E-04 6.303147267 0.1964235125E-04 6.319632766 0.2050943040E-04 6.336118265 0.2140377664E-04 6.352603764 0.2230979618E-04 6.369089263 0.2321022581E-04 6.385574762 0.2408656323E-04 6.402060260 0.2491960447E-04 6.418545759 0.2569006918E-04 6.435031258 0.2637928576E-04 6.451516757 0.2696990138E-04 6.468002256 0.2744657759E-04 6.484487755 0.2779663083E-04 6.500973254 0.2801057838E-04 6.517458752 0.2808255576E-04 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/PHLWLINES.OUT0000644000000000000000000000013013543334741024166 xustar0029 mtime=1569569249.34963893 30 atime=1569569249.348638931 29 ctime=1569569249.34963893 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PHLWLINES.OUT0000644002504400250440000000132013543334741026233 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.2106191682E-04 0.000000000 0.4212383364E-04 0.8859326103 -0.2106191682E-04 0.8859326103 0.4212383364E-04 1.771865221 -0.2106191682E-04 1.771865221 0.4212383364E-04 2.794852083 -0.2106191682E-04 2.794852083 0.4212383364E-04 3.518213030 -0.2106191682E-04 3.518213030 0.4212383364E-04 4.029706461 -0.2106191682E-04 4.029706461 0.4212383364E-04 4.541199892 -0.2106191682E-04 4.541199892 0.4212383364E-04 5.264560839 -0.2106191682E-04 5.264560839 0.4212383364E-04 6.517458752 -0.2106191682E-04 6.517458752 0.4212383364E-04 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741023335 xustar0030 mtime=1569569249.353638928 30 atime=1569569249.352638928 30 ctime=1569569249.353638928 elk-6.3.2/examples/phonons-superconductivity/Nb-DFPT/elk.in0000644002504400250440000000357013543334741025411 0ustar00dewhurstdewhurst00000000000000 ! This example generates a good quality phonon dispersion for bcc niobium using ! density functional perturbation theory (DFPT). The superconducting critical ! temperature is also computed using McMillan's formula and by solving the ! Eliashberg equations. ! The phonon dispersion and vertex location lines are included with this ! example in the files PHDISP.OUT and PHDLINES.OUT, respectively. tasks 0 : generate the ground-state 205 : generate the dynamical matrices with DFPT ! number of phonon q-points ngridq 4 4 4 ! add extra local-orbitals for accurate electron-phonon coupling nxlo 1 ! larger cut-off required rgkmax 8.0 ngridk 8 8 8 ! larger smearing width required for stable phonon dispersion swidth 0.005 stype 1 ! increase the number of muffin-tin points (for accurate gradients) nrmtscf 2.0 ! after all the dynamical matrix DYN---.OUT files have been calculated then ! uncomment the following lines and run again ! large k-point required for accurate electron-phonon coupling !ngridk ! 24 24 24 !tasks ! 1 : ground state with larger k-point set ! 210 : phonon DOS ! 220 : plot the phonon dispersion ! 240 : electron-phonon matrix elements ! 245 : phonon line-widths ! 250 : Eliashberg function, alpha^2F ! 260 : solving the Eliashberg equations ! number of temperature steps for Eliashberg calculation ntemp 40 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 ! use LDA equilibrium lattice constant scale 3.071 sppath '../../../species/' atoms 1 : nspecies 'Nb.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 plot1d 9 400 0.5 0.5 0.5 0.25 0.25 0.25 0.0 0.0 0.0 -0.5 0.5 0.5 -0.5 0.5 0.0 -0.75 0.25 0.25 -0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.0 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Si-DFPT0000644000000000000000000000013213543334741022171 xustar0030 mtime=1569569249.357638925 30 atime=1569569249.356638926 30 ctime=1569569249.357638925 elk-6.3.2/examples/phonons-superconductivity/Si-DFPT/0000755002504400250440000000000013543334741024315 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Si-DFPT/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741023351 xustar0030 mtime=1569569249.359638924 30 atime=1569569249.358638924 30 ctime=1569569249.359638924 elk-6.3.2/examples/phonons-superconductivity/Si-DFPT/elk.in0000644002504400250440000000245713543334741025430 0ustar00dewhurstdewhurst00000000000000 ! Phonon dispersion of silicon. ! You can submit the same job (with task=205) on as many machines as you like, ! but they must be be able to see the same directory. Each machine with compute ! a row of a particular dynamical matrix. When run with task=220, the code ! assembles all the pieces to construct the dynamical matrices throughout the ! Brillouin zone. ! The final output (PHDISP.OUT and PHDLINES.OUT) is included with this example. tasks 0 205 220 ! scale the number of radial mesh points in the muffin-tins; this is so that ! gradients are accurately calculated nrmtscf 4 ! limit the maximum number of self-consistent loops maxscl 30 ! phonon q-point grid ngridq 4 4 4 ! k-point grid should be commensurate with the q-point grid ngridk 4 4 4 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ! These are the vertices to be joined for the phonon dispersion plot plot1d 7 200 : nvp1d, npp1d 1.0 0.0 0.0 0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Al-DFPT0000644000000000000000000000013213543334741022152 xustar0030 mtime=1569569249.402638896 30 atime=1569569249.362638922 30 ctime=1569569249.402638896 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/0000755002504400250440000000000013543334741024276 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/ALPHA2F.OUT0000644000000000000000000000013013543334741023633 xustar0029 mtime=1569569249.36563892 30 atime=1569569249.363638921 29 ctime=1569569249.36563892 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/ALPHA2F.OUT0000644002504400250440000004410413543334741025707 0ustar00dewhurstdewhurst00000000000000 -0.1808426262E-03 0.1486312544E-03 -0.1768640889E-03 0.2753909944E-03 -0.1728855515E-03 0.3165147133E-03 -0.1689070142E-03 0.2884110037E-03 -0.1649284769E-03 0.2320821422E-03 -0.1609499396E-03 0.2240698940E-03 -0.1569714023E-03 0.2167077218E-03 -0.1529928650E-03 0.2133926103E-03 -0.1490143276E-03 0.2129562529E-03 -0.1450357903E-03 0.2603005795E-03 -0.1410572530E-03 0.3002895587E-03 -0.1370787157E-03 0.3102669636E-03 -0.1331001784E-03 0.2713891658E-03 -0.1291216411E-03 0.2500962101E-03 -0.1251431037E-03 0.2720685095E-03 -0.1211645664E-03 0.2216094825E-03 -0.1171860291E-03 0.2061627561E-03 -0.1132074918E-03 0.1463786740E-03 -0.1092289545E-03 0.1977499514E-03 -0.1052504172E-03 0.1737908679E-03 -0.1012718798E-03 0.1611302992E-03 -0.9729334252E-04 0.2317900946E-03 -0.9331480520E-04 0.2768366039E-03 -0.8933626789E-04 0.2917724209E-03 -0.8535773057E-04 0.2026799998E-03 -0.8137919325E-04 0.1840666610E-03 -0.7740065594E-04 0.2044289657E-03 -0.7342211862E-04 0.2121815827E-03 -0.6944358130E-04 0.2059031140E-03 -0.6546504399E-04 0.1775189099E-03 -0.6148650667E-04 0.1617404912E-03 -0.5750796936E-04 0.1222544583E-03 -0.5352943204E-04 0.1000401154E-03 -0.4955089472E-04 0.9859881892E-04 -0.4557235741E-04 0.1000872450E-03 -0.4159382009E-04 0.8798463219E-04 -0.3761528277E-04 0.9673748333E-04 -0.3363674546E-04 0.1045200063E-03 -0.2965820814E-04 0.1101424008E-03 -0.2567967082E-04 0.5696841541E-04 -0.2170113351E-04 0.3869062916E-04 -0.1772259619E-04 0.1875315966E-04 -0.1374405887E-04 0.1656432473E-04 -0.9765521557E-05 0.2598969075E-04 -0.5786984241E-05 0.2598388555E-04 -0.1808446924E-05 0.1838916113E-04 0.2170090392E-05 0.1994680648E-34 0.6148627709E-05 0.000000000 0.1012716503E-04 0.2218403550E-04 0.1410570234E-04 0.4787310539E-04 0.1808423966E-04 0.6420324930E-04 0.2206277697E-04 0.4916274521E-04 0.2604131429E-04 0.3220684438E-04 0.3001985161E-04 0.4309974714E-04 0.3399838892E-04 0.9650969800E-04 0.3797692624E-04 0.1403258254E-03 0.4195546356E-04 0.1431741251E-03 0.4593400087E-04 0.1034711681E-03 0.4991253819E-04 0.9335027807E-04 0.5389107551E-04 0.1276632621E-03 0.5786961282E-04 0.1766534470E-03 0.6184815014E-04 0.2248696725E-03 0.6582668746E-04 0.2246347252E-03 0.6980522477E-04 0.1787944409E-03 0.7378376209E-04 0.2251448482E-03 0.7776229941E-04 0.2127447560E-03 0.8174083672E-04 0.2535864456E-03 0.8571937404E-04 0.2288816815E-03 0.8969791136E-04 0.2904202352E-03 0.9367644867E-04 0.3200839161E-03 0.9765498599E-04 0.2845678599E-03 0.1016335233E-03 0.3137292230E-03 0.1056120606E-03 0.3180206108E-03 0.1095905979E-03 0.3750613816E-03 0.1135691353E-03 0.3837076242E-03 0.1175476726E-03 0.4491293821E-03 0.1215262099E-03 0.4246863469E-03 0.1255047472E-03 0.3597768359E-03 0.1294832845E-03 0.3297324056E-03 0.1334618218E-03 0.4025997736E-03 0.1374403592E-03 0.4600787617E-03 0.1414188965E-03 0.5094009577E-03 0.1453974338E-03 0.4840432849E-03 0.1493759711E-03 0.6284412188E-03 0.1533545084E-03 0.6679803478E-03 0.1573330457E-03 0.6766543411E-03 0.1613115831E-03 0.6151494974E-03 0.1652901204E-03 0.6643016460E-03 0.1692686577E-03 0.7085920604E-03 0.1732471950E-03 0.6660286656E-03 0.1772257323E-03 0.6654779798E-03 0.1812042696E-03 0.7014597529E-03 0.1851828070E-03 0.7225200558E-03 0.1891613443E-03 0.7378954393E-03 0.1931398816E-03 0.8600541734E-03 0.1971184189E-03 0.1091399779E-02 0.2010969562E-03 0.1014132482E-02 0.2050754935E-03 0.1015129517E-02 0.2090540309E-03 0.1067431675E-02 0.2130325682E-03 0.1168961083E-02 0.2170111055E-03 0.1042104049E-02 0.2209896428E-03 0.9021205989E-03 0.2249681801E-03 0.1012719292E-02 0.2289467174E-03 0.1129863955E-02 0.2329252547E-03 0.1300706611E-02 0.2369037921E-03 0.1427621736E-02 0.2408823294E-03 0.1538465356E-02 0.2448608667E-03 0.1446370985E-02 0.2488394040E-03 0.1482648841E-02 0.2528179413E-03 0.1484611225E-02 0.2567964786E-03 0.1582069839E-02 0.2607750160E-03 0.1632624786E-02 0.2647535533E-03 0.1714429157E-02 0.2687320906E-03 0.1599440907E-02 0.2727106279E-03 0.1750142895E-02 0.2766891652E-03 0.1929977047E-02 0.2806677025E-03 0.2189485375E-02 0.2846462399E-03 0.2211244815E-02 0.2886247772E-03 0.2219822499E-02 0.2926033145E-03 0.2368556009E-02 0.2965818518E-03 0.2135515801E-02 0.3005603891E-03 0.2159421066E-02 0.3045389264E-03 0.2328511436E-02 0.3085174638E-03 0.2732961175E-02 0.3124960011E-03 0.2835254183E-02 0.3164745384E-03 0.2869947978E-02 0.3204530757E-03 0.2769680048E-02 0.3244316130E-03 0.3054715816E-02 0.3284101503E-03 0.3050040907E-02 0.3323886877E-03 0.3458168471E-02 0.3363672250E-03 0.3441137514E-02 0.3403457623E-03 0.3493550465E-02 0.3443242996E-03 0.3516756189E-02 0.3483028369E-03 0.3600129383E-02 0.3522813742E-03 0.3935056926E-02 0.3562599116E-03 0.4226933007E-02 0.3602384489E-03 0.4375147570E-02 0.3642169862E-03 0.4413146248E-02 0.3681955235E-03 0.4605127099E-02 0.3721740608E-03 0.5057373727E-02 0.3761525981E-03 0.5232686880E-02 0.3801311355E-03 0.5319776849E-02 0.3841096728E-03 0.5197525198E-02 0.3880882101E-03 0.5734402925E-02 0.3920667474E-03 0.5831294903E-02 0.3960452847E-03 0.6221608148E-02 0.4000238220E-03 0.6535844309E-02 0.4040023594E-03 0.6871682882E-02 0.4079808967E-03 0.7238239431E-02 0.4119594340E-03 0.7323356675E-02 0.4159379713E-03 0.7599023801E-02 0.4199165086E-03 0.8024245233E-02 0.4238950459E-03 0.8414231803E-02 0.4278735833E-03 0.8942037838E-02 0.4318521206E-03 0.8931046801E-02 0.4358306579E-03 0.9203890298E-02 0.4398091952E-03 0.9428727404E-02 0.4437877325E-03 0.1011251296E-01 0.4477662698E-03 0.1084704921E-01 0.4517448072E-03 0.1118935648E-01 0.4557233445E-03 0.1159552872E-01 0.4597018818E-03 0.1113327044E-01 0.4636804191E-03 0.1223187780E-01 0.4676589564E-03 0.1227517067E-01 0.4716374937E-03 0.1345803737E-01 0.4756160311E-03 0.1294898566E-01 0.4795945684E-03 0.1311446425E-01 0.4835731057E-03 0.1469673749E-01 0.4875516430E-03 0.1529466756E-01 0.4915301803E-03 0.1642395971E-01 0.4955087176E-03 0.1520149124E-01 0.4994872550E-03 0.1543291611E-01 0.5034657923E-03 0.1674337054E-01 0.5074443296E-03 0.1782900470E-01 0.5114228669E-03 0.1881774503E-01 0.5154014042E-03 0.1794071218E-01 0.5193799415E-03 0.1863130449E-01 0.5233584789E-03 0.2006884822E-01 0.5273370162E-03 0.2063862220E-01 0.5313155535E-03 0.2096983475E-01 0.5352940908E-03 0.2116463184E-01 0.5392726281E-03 0.2238200045E-01 0.5432511654E-03 0.2360094328E-01 0.5472297028E-03 0.2338253607E-01 0.5512082401E-03 0.2489123880E-01 0.5551867774E-03 0.2509053463E-01 0.5591653147E-03 0.2653248691E-01 0.5631438520E-03 0.2736793609E-01 0.5671223893E-03 0.2843714857E-01 0.5711009267E-03 0.3014281374E-01 0.5750794640E-03 0.3045490887E-01 0.5790580013E-03 0.3140099968E-01 0.5830365386E-03 0.3232095031E-01 0.5870150759E-03 0.3386776011E-01 0.5909936132E-03 0.3574338830E-01 0.5949721506E-03 0.3682164546E-01 0.5989506879E-03 0.3853152349E-01 0.6029292252E-03 0.3875430179E-01 0.6069077625E-03 0.4097374130E-01 0.6108862998E-03 0.4269065619E-01 0.6148648371E-03 0.4571207272E-01 0.6188433745E-03 0.4685513204E-01 0.6228219118E-03 0.4840474223E-01 0.6268004491E-03 0.4935430712E-01 0.6307789864E-03 0.5314571074E-01 0.6347575237E-03 0.5666719747E-01 0.6387360610E-03 0.6057865782E-01 0.6427145984E-03 0.6337276414E-01 0.6466931357E-03 0.6615064369E-01 0.6506716730E-03 0.7351737953E-01 0.6546502103E-03 0.8495394851E-01 0.6586287476E-03 0.9401315163E-01 0.6626072849E-03 0.9934982598E-01 0.6665858222E-03 0.9931249569E-01 0.6705643596E-03 0.9866897590E-01 0.6745428969E-03 0.1000356873 0.6785214342E-03 0.9820695841E-01 0.6824999715E-03 0.1003124350 0.6864785088E-03 0.9993789894E-01 0.6904570461E-03 0.1013390590 0.6944355835E-03 0.1013055510 0.6984141208E-03 0.1013599617 0.7023926581E-03 0.1025349587 0.7063711954E-03 0.1052821559 0.7103497327E-03 0.1046298997 0.7143282700E-03 0.1038352439 0.7183068074E-03 0.1039809692 0.7222853447E-03 0.1049796447 0.7262638820E-03 0.1070143813 0.7302424193E-03 0.1056572193 0.7342209566E-03 0.1076130716 0.7381994939E-03 0.1073588040 0.7421780313E-03 0.1110851318 0.7461565686E-03 0.1114080943 0.7501351059E-03 0.1138148963 0.7541136432E-03 0.1112376319 0.7580921805E-03 0.1138904212 0.7620707178E-03 0.1150064108 0.7660492552E-03 0.1175893430 0.7700277925E-03 0.1193693357 0.7740063298E-03 0.1186857088 0.7779848671E-03 0.1228244178 0.7819634044E-03 0.1230314153 0.7859419417E-03 0.1263817748 0.7899204791E-03 0.1275278645 0.7938990164E-03 0.1285792735 0.7978775537E-03 0.1322864369 0.8018560910E-03 0.1342809495 0.8058346283E-03 0.1385208960 0.8098131656E-03 0.1430014037 0.8137917030E-03 0.1438504478 0.8177702403E-03 0.1488915840 0.8217487776E-03 0.1511634864 0.8257273149E-03 0.1588005720 0.8297058522E-03 0.1620030724 0.8336843895E-03 0.1626881929 0.8376629269E-03 0.1644354384 0.8416414642E-03 0.1648815495 0.8456200015E-03 0.1695779929 0.8495985388E-03 0.1713657024 0.8535770761E-03 0.1713606293 0.8575556134E-03 0.1698323733 0.8615341508E-03 0.1705420826 0.8655126881E-03 0.1736562887 0.8694912254E-03 0.1795133876 0.8734697627E-03 0.1790268017 0.8774483000E-03 0.1820236860 0.8814268373E-03 0.1831938618 0.8854053747E-03 0.1875852800 0.8893839120E-03 0.1923586788 0.8933624493E-03 0.1957722773 0.8973409866E-03 0.1977402506 0.9013195239E-03 0.2018452446 0.9052980612E-03 0.2066319004 0.9092765986E-03 0.2139487245 0.9132551359E-03 0.2167484516 0.9172336732E-03 0.2211033051 0.9212122105E-03 0.2251974387 0.9251907478E-03 0.2310381146 0.9291692851E-03 0.2317076612 0.9331478225E-03 0.2353180169 0.9371263598E-03 0.2382216661 0.9411048971E-03 0.2421412845 0.9450834344E-03 0.2483303874 0.9490619717E-03 0.2490668583 0.9530405090E-03 0.2525791625 0.9570190464E-03 0.2508793529 0.9609975837E-03 0.2566859204 0.9649761210E-03 0.2619856195 0.9689546583E-03 0.2681458890 0.9729331956E-03 0.2710465786 0.9769117329E-03 0.2703863540 0.9808902703E-03 0.2613794021 0.9848688076E-03 0.2483481155 0.9888473449E-03 0.2344887179 0.9928258822E-03 0.2288416251 0.9968044195E-03 0.2227325632 0.1000782957E-02 0.2194011752 0.1004761494E-02 0.2080731751 0.1008740031E-02 0.2006605170 0.1012718569E-02 0.1910309064 0.1016697106E-02 0.1839813975 0.1020675643E-02 0.1749247443 0.1024654181E-02 0.1732813098 0.1028632718E-02 0.1757118588 0.1032611255E-02 0.1740543929 0.1036589793E-02 0.1740947797 0.1040568330E-02 0.1709899669 0.1044546867E-02 0.1758168492 0.1048525405E-02 0.1761891776 0.1052503942E-02 0.1779508245 0.1056482479E-02 0.1790024020 0.1060461017E-02 0.1813385796 0.1064439554E-02 0.1825473769 0.1068418091E-02 0.1814675107 0.1072396629E-02 0.1807581721 0.1076375166E-02 0.1853673518 0.1080353703E-02 0.1867457737 0.1084332240E-02 0.1869655623 0.1088310778E-02 0.1856120859 0.1092289315E-02 0.1894987356 0.1096267852E-02 0.1911077841 0.1100246390E-02 0.1917944789 0.1104224927E-02 0.1924879828 0.1108203464E-02 0.1924253558 0.1112182002E-02 0.1936426584 0.1116160539E-02 0.1953169230 0.1120139076E-02 0.1965597864 0.1124117614E-02 0.1973668019 0.1128096151E-02 0.2001622165 0.1132074688E-02 0.2007574921 0.1136053226E-02 0.1992229527 0.1140031763E-02 0.1986392473 0.1144010300E-02 0.2028906719 0.1147988838E-02 0.2029594156 0.1151967375E-02 0.2023527120 0.1155945912E-02 0.1991991118 0.1159924449E-02 0.2029245090 0.1163902987E-02 0.2023281927 0.1167881524E-02 0.2008925690 0.1171860061E-02 0.2020783836 0.1175838599E-02 0.1985854804 0.1179817136E-02 0.1974281360 0.1183795673E-02 0.1954981927 0.1187774211E-02 0.1962874992 0.1191752748E-02 0.1965853909 0.1195731285E-02 0.1904580289 0.1199709823E-02 0.1875463461 0.1203688360E-02 0.1858981315 0.1207666897E-02 0.1825039869 0.1211645435E-02 0.1822688813 0.1215623972E-02 0.1763724978 0.1219602509E-02 0.1768565139 0.1223581047E-02 0.1677340098 0.1227559584E-02 0.1665880688 0.1231538121E-02 0.1588844622 0.1235516659E-02 0.1532208807 0.1239495196E-02 0.1445122878 0.1243473733E-02 0.1383919029 0.1247452270E-02 0.1372399777 0.1251430808E-02 0.1338844742 0.1255409345E-02 0.1371080758 0.1259387882E-02 0.1379617535 0.1263366420E-02 0.1439094481 0.1267344957E-02 0.1476638246 0.1271323494E-02 0.1535207268 0.1275302032E-02 0.1576453872 0.1279280569E-02 0.1628440168 0.1283259106E-02 0.1707980298 0.1287237644E-02 0.1829418594 0.1291216181E-02 0.1896015698 0.1295194718E-02 0.1998189510 0.1299173256E-02 0.2066539814 0.1303151793E-02 0.2160904116 0.1307130330E-02 0.2279832237 0.1311108868E-02 0.2390745819 0.1315087405E-02 0.2537601060 0.1319065942E-02 0.2666619982 0.1323044479E-02 0.2752657496 0.1327023017E-02 0.2951972187 0.1331001554E-02 0.3067240221 0.1334980091E-02 0.3245073068 0.1338958629E-02 0.3384719098 0.1342937166E-02 0.3523048840 0.1346915703E-02 0.3771866355 0.1350894241E-02 0.4001234273 0.1354872778E-02 0.4307752699 0.1358851315E-02 0.4591587293 0.1362829853E-02 0.5004092261 0.1366808390E-02 0.5461501132 0.1370786927E-02 0.5836726613 0.1374765465E-02 0.5901836825 0.1378744002E-02 0.5834320238 0.1382722539E-02 0.5682518069 0.1386701077E-02 0.5570240047 0.1390679614E-02 0.5430294693 0.1394658151E-02 0.5353694019 0.1398636688E-02 0.5303436486 0.1402615226E-02 0.5329456414 0.1406593763E-02 0.5317442884 0.1410572300E-02 0.5388568577 0.1414550838E-02 0.5382934827 0.1418529375E-02 0.5438753913 0.1422507912E-02 0.5450922247 0.1426486450E-02 0.5541694744 0.1430464987E-02 0.5676624393 0.1434443524E-02 0.5782366855 0.1438422062E-02 0.5999985072 0.1442400599E-02 0.6106097701 0.1446379136E-02 0.6420668651 0.1450357674E-02 0.6833438147 0.1454336211E-02 0.7212229106 0.1458314748E-02 0.7516990083 0.1462293286E-02 0.7348204976 0.1466271823E-02 0.7081069182 0.1470250360E-02 0.6593678456 0.1474228898E-02 0.6338603324 0.1478207435E-02 0.6141880135 0.1482185972E-02 0.6026401763 0.1486164509E-02 0.5757216947 0.1490143047E-02 0.5458649432 0.1494121584E-02 0.4994360228 0.1498100121E-02 0.4602342753 0.1502078659E-02 0.4274304091 0.1506057196E-02 0.4062400705 0.1510035733E-02 0.3764532731 0.1514014271E-02 0.3423280617 0.1517992808E-02 0.3052712112 0.1521971345E-02 0.2753850627 0.1525949883E-02 0.2579603264 0.1529928420E-02 0.2415304756 0.1533906957E-02 0.2246154773 0.1537885495E-02 0.2075639988 0.1541864032E-02 0.1884399387 0.1545842569E-02 0.1747149108 0.1549821107E-02 0.1510549896 0.1553799644E-02 0.1318714882 0.1557778181E-02 0.1016814986 0.1561756718E-02 0.7592465735E-01 0.1565735256E-02 0.5707736455E-01 0.1569713793E-02 0.5530535482E-01 0.1573692330E-02 0.5070682221E-01 0.1577670868E-02 0.4919879505E-01 0.1581649405E-02 0.4569132903E-01 0.1585627942E-02 0.4625558295E-01 0.1589606480E-02 0.4219434041E-01 0.1593585017E-02 0.3996641807E-01 0.1597563554E-02 0.3616406166E-01 0.1601542092E-02 0.3723839475E-01 0.1605520629E-02 0.3243074884E-01 0.1609499166E-02 0.3236621632E-01 0.1613477704E-02 0.2836988713E-01 0.1617456241E-02 0.2633458359E-01 0.1621434778E-02 0.2473928504E-01 0.1625413316E-02 0.2220849431E-01 0.1629391853E-02 0.1977182607E-01 0.1633370390E-02 0.1575852557E-01 0.1637348927E-02 0.1206676176E-01 0.1641327465E-02 0.7160197122E-02 0.1645306002E-02 0.3107037115E-02 0.1649284539E-02 0.4152109777E-04 0.1653263077E-02 0.000000000 0.1657241614E-02 0.000000000 0.1661220151E-02 0.000000000 0.1665198689E-02 0.000000000 0.1669177226E-02 0.000000000 0.1673155763E-02 0.000000000 0.1677134301E-02 0.000000000 0.1681112838E-02 0.000000000 0.1685091375E-02 0.000000000 0.1689069913E-02 0.000000000 0.1693048450E-02 0.000000000 0.1697026987E-02 0.000000000 0.1701005525E-02 0.000000000 0.1704984062E-02 0.000000000 0.1708962599E-02 0.000000000 0.1712941136E-02 0.000000000 0.1716919674E-02 0.000000000 0.1720898211E-02 0.000000000 0.1724876748E-02 0.000000000 0.1728855286E-02 0.000000000 0.1732833823E-02 0.000000000 0.1736812360E-02 0.000000000 0.1740790898E-02 0.000000000 0.1744769435E-02 0.000000000 0.1748747972E-02 0.000000000 0.1752726510E-02 0.000000000 0.1756705047E-02 0.000000000 0.1760683584E-02 0.000000000 0.1764662122E-02 0.000000000 0.1768640659E-02 0.000000000 0.1772619196E-02 0.000000000 0.1776597734E-02 0.000000000 0.1780576271E-02 0.000000000 0.1784554808E-02 0.000000000 0.1788533346E-02 0.000000000 0.1792511883E-02 0.000000000 0.1796490420E-02 0.000000000 0.1800468957E-02 0.000000000 0.1804447495E-02 0.000000000 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/ELIASHBERG_GAP_T.OUT0000644000000000000000000000013213543334741025177 xustar0030 mtime=1569569249.370638917 30 atime=1569569249.369638917 30 ctime=1569569249.370638917 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/ELIASHBERG_GAP_T.OUT0000644002504400250440000001046013543334741027247 0ustar00dewhurstdewhurst00000000000000 0.1165486246 0.4552402555E-05 1.420983284 0.1475569742 0.4552938572E-05 1.420981757 0.1785653239 0.4552717911E-05 1.420979836 0.2095736736 0.4549299004E-05 1.420977344 0.2405820232 0.4541859195E-05 1.420974476 0.2715903729 0.4529830978E-05 1.420971531 0.3025987225 0.4509266570E-05 1.420968891 0.3336070722 0.4478685366E-05 1.420965929 0.3646154218 0.4436646796E-05 1.420963814 0.3956237715 0.4383357043E-05 1.420961579 0.4266321212 0.4317956452E-05 1.420960056 0.4576404708 0.4233422063E-05 1.420958113 0.4886488205 0.4135280324E-05 1.420956880 0.5196571701 0.4019366591E-05 1.420956676 0.5506655198 0.3879118541E-05 1.420955951 0.5816738695 0.3720175841E-05 1.420956102 0.6126822191 0.3524844898E-05 1.420957407 0.6436905688 0.3306251083E-05 1.420958238 0.6746989184 0.3051145288E-05 1.420960166 0.7057072681 0.2736902359E-05 1.420962255 0.7367156177 0.2356544574E-05 1.420964242 0.7677239674 0.1873202066E-05 1.420967109 0.7987323171 0.1135679257E-05 1.420970527 0.8297406667 0.1612068212E-06 1.420973459 0.8607490164 0.1014285074E-08 1.420973018 0.8917573660 0.3090708148E-09 1.420973260 0.9227657157 0.3058819562E-09 1.420973239 0.9537740653 0.1732715892E-09 1.420973456 0.9847824150 0.1704154311E-09 1.420972642 1.015790765 0.1221315618E-09 1.420972960 1.046799114 0.1193788232E-09 1.420973027 1.077807464 0.1164411394E-09 1.420973179 1.108815814 0.8692591807E-10 1.420973751 1.139824163 0.8425204931E-10 1.420973025 1.170832513 0.8150922992E-10 1.420973277 1.201840863 0.7867187104E-10 1.420972679 1.232849212 0.6217049624E-10 1.420973616 1.263857562 0.5964292132E-10 1.420971873 1.294865912 0.5711566594E-10 1.420972114 1.325874261 0.5458352572E-10 1.420972286 1.356882611 0.5205039631E-10 1.420972556 1.387890961 0.4952434538E-10 1.420973091 1.418899310 0.4701509238E-10 1.420974058 1.449907660 0.4453272493E-10 1.420973018 1.480916010 0.4209715523E-10 1.420972633 1.511924359 0.3970688711E-10 1.420973072 1.542932709 0.3737938168E-10 1.420971723 1.573941059 0.3511185225E-10 1.420971422 1.604949408 0.3291913086E-10 1.420972338 1.635957758 0.3079721213E-10 1.420971688 1.666966107 0.2875840157E-10 1.420972478 1.697974457 0.2680536908E-10 1.420971816 1.728982807 0.2493253717E-10 1.420972815 1.759991156 0.2314865216E-10 1.420972475 1.790999506 0.2145413587E-10 1.420974018 1.822007856 0.1984868512E-10 1.420974333 1.853016205 0.1833142660E-10 1.420973422 1.884024555 0.1690098591E-10 1.420971279 1.915032905 0.1555555575E-10 1.420971359 1.946041254 0.1429295777E-10 1.420973826 1.977049604 0.1311073771E-10 1.420971727 2.008057954 0.1200621091E-10 1.420972128 2.039066303 0.1097647484E-10 1.420971522 2.070074653 0.1001848377E-10 1.420973641 2.101083003 0.9132507558E-11 1.420971081 2.132091352 0.8311503069E-11 1.420971357 2.163099702 0.7552136187E-11 1.420974632 2.194108052 0.6851120695E-11 1.420973179 2.225116401 0.6205219904E-11 1.420970828 2.256124751 0.5613524349E-11 1.420971650 2.287133101 0.5070291318E-11 1.420971688 2.318141450 0.4572432423E-11 1.420970944 2.349149800 0.4118744521E-11 1.420973651 2.380158150 0.3704343015E-11 1.420971399 2.411166499 0.3326468409E-11 1.420972710 2.442174849 0.2983837193E-11 1.420973349 2.473183199 0.2672408382E-11 1.420973318 2.504191548 0.2390920329E-11 1.420972617 2.535199898 0.2135846495E-11 1.420971245 2.566208248 0.1905074615E-11 1.420973826 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/MCMILLAN.OUT0000644000000000000000000000013213543334741024014 xustar0030 mtime=1569569249.373638915 30 atime=1569569249.373638915 30 ctime=1569569249.373638915 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/MCMILLAN.OUT0000644002504400250440000000053213543334741026063 0ustar00dewhurstdewhurst00000000000000 Electron-phonon coupling constant, lambda : 0.4237123761 Logarithmic average frequency : 0.1068940640E-02 RMS average frequency : 0.1161090651E-02 Coulomb pseudopotential, mu* : 0.1500000000 McMillan-Allen-Dynes superconducting critical temperature [Eq. 34, Phys. Rev. B 12, 905 (1975)] (kelvin) : 0.5132416494 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/PHDISP.OUT0000644000000000000000000000013013543334741023605 xustar0029 mtime=1569569249.38063891 30 atime=1569569249.377638912 29 ctime=1569569249.38063891 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PHDISP.OUT0000644002504400250440000005331213543334741025662 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.3420208952E-10 0.1367793241E-01 0.1395975825E-04 0.2735586482E-01 0.2811116802E-04 0.4103379724E-01 0.4263638565E-04 0.5471172965E-01 0.5769959260E-04 0.6838966206E-01 0.7344031904E-04 0.8206759447E-01 0.8996898946E-04 0.9574552688E-01 0.1073647223E-03 0.1094234593 0.1256751165E-03 0.1231013917 0.1449175914E-03 0.1367793241 0.1650818093E-03 0.1504572565 0.1861327570E-03 0.1641351889 0.2080141521E-03 0.1778131214 0.2306519397E-03 0.1914910538 0.2539577266E-03 0.2051689862 0.2778320642E-03 0.2188469186 0.3021675364E-03 0.2325248510 0.3268516307E-03 0.2462027834 0.3517693906E-03 0.2598807158 0.3768058469E-03 0.2735586482 0.4018482323E-03 0.2872365807 0.4267879789E-03 0.3009145131 0.4515224963E-03 0.3145924455 0.4759567251E-03 0.3282703779 0.5000044597E-03 0.3419483103 0.5235894294E-03 0.3556262427 0.5466461283E-03 0.3693041751 0.5691203841E-03 0.3829821075 0.5909696551E-03 0.3966600400 0.6121630513E-03 0.4103379724 0.6326810726E-03 0.4240159048 0.6525150689E-03 0.4376938372 0.6716664277E-03 0.4513717696 0.6901455040E-03 0.4650497020 0.7079703165E-03 0.4787276344 0.7251650399E-03 0.4924055668 0.7417583354E-03 0.5060834992 0.7577815682E-03 0.5197614317 0.7732669673E-03 0.5334393641 0.7882457918E-03 0.5471172965 0.8027465676E-03 0.5607952289 0.8167934605E-03 0.5744731613 0.8304048486E-03 0.5881510937 0.8435921480E-03 0.6018290261 0.8563589386E-03 0.6155069585 0.8687004217E-03 0.6291848910 0.8806032273E-03 0.6428628234 0.8920455733E-03 0.6565407558 0.9029977638E-03 0.6702186882 0.9134229989E-03 0.6838966206 0.9232784567E-03 0.6975745530 0.9325165990E-03 0.7112524854 0.9410866446E-03 0.7249304178 0.9489361531E-03 0.7386083503 0.9560126588E-03 0.7522862827 0.9622652970E-03 0.7659642151 0.9676463705E-03 0.7796421475 0.9721128052E-03 0.7933200799 0.9756274546E-03 0.8069980123 0.9781602152E-03 0.8206759447 0.9796889239E-03 0.8343538771 0.9802000156E-03 0.8482356956 0.9800119746E-03 0.8621175141 0.9794484320E-03 0.8759993325 0.9785111233E-03 0.8898811510 0.9772029234E-03 0.9037629694 0.9755278196E-03 0.9176447879 0.9734908747E-03 0.9315266063 0.9710981796E-03 0.9454084248 0.9683567957E-03 0.9592902433 0.9652746882E-03 0.9731720617 0.9618606501E-03 0.9870538802 0.9581242167E-03 1.000935699 0.9540755731E-03 1.014817517 0.9497254534E-03 1.028699336 0.9450850337E-03 1.042581154 0.9401658186E-03 1.056462972 0.9349795237E-03 1.070344791 0.9295379529E-03 1.084226609 0.9238528741E-03 1.098108428 0.9179358925E-03 1.111990246 0.9117983239E-03 1.125872065 0.9054510692E-03 1.139753883 0.8989044905E-03 1.153635702 0.8921682923E-03 1.167517520 0.8852514070E-03 1.181399339 0.8781618880E-03 1.195281157 0.8709068102E-03 1.209162975 0.8634921812E-03 1.223044794 0.8559228627E-03 1.236926612 0.8482025043E-03 1.250808431 0.8403334907E-03 1.264690249 0.8323169032E-03 1.278572068 0.8241524954E-03 1.292453886 0.8158386854E-03 1.306335705 0.8073725629E-03 1.320217523 0.7987499122E-03 1.334099342 0.7899652517E-03 1.347981160 0.7810118872E-03 1.361862979 0.7718819810E-03 1.375744797 0.7625666343E-03 1.389626615 0.7530559821E-03 1.403508434 0.7433392998E-03 1.417390252 0.7334051198E-03 1.431272071 0.7232413569E-03 1.445153889 0.7128354400E-03 1.459035708 0.7021744503E-03 1.472917526 0.6912452620E-03 1.486799345 0.6800346858E-03 1.500681163 0.6685296127E-03 1.514562982 0.6567171566E-03 1.528444800 0.6445847946E-03 1.542326618 0.6321205026E-03 1.556208437 0.6193128872E-03 1.570090255 0.6061513098E-03 1.583972074 0.5926260046E-03 1.597853892 0.5787281877E-03 1.611735711 0.5644501584E-03 1.625617529 0.5497853900E-03 1.639499348 0.5347286120E-03 1.653381166 0.5192758811E-03 1.667262985 0.5034246429E-03 1.681144803 0.4871737824E-03 1.695026621 0.4705236645E-03 1.708908440 0.4534761639E-03 1.722790258 0.4360346849E-03 1.736672077 0.4182041715E-03 1.750553895 0.3999911068E-03 1.764435714 0.3814035037E-03 1.778317532 0.3624508865E-03 1.792199351 0.3431442632E-03 1.806081169 0.3234960901E-03 1.819962988 0.3035202275E-03 1.833844806 0.2832318892E-03 1.847726625 0.2626475838E-03 1.861608443 0.2417850498E-03 1.875490261 0.2206631848E-03 1.889372080 0.1993019688E-03 1.903253898 0.1777223822E-03 1.917135717 0.1559463192E-03 1.931017535 0.1339964970E-03 1.944899354 0.1118963613E-03 1.958781172 0.8966998794E-04 1.972662991 0.6734198276E-04 1.986544809 0.4493737796E-04 2.000426628 0.2248152738E-04 2.014308446 -0.3420208952E-10 2.027941873 0.2370354388E-04 2.041575301 0.4736585954E-04 2.055208728 0.7094588699E-04 2.068842156 0.9440290202E-04 2.082475583 0.1176966823E-03 2.096109011 0.1407876711E-03 2.109742438 0.1636371386E-03 2.123375865 0.1862073390E-03 2.137009293 0.2084616636E-03 2.150642720 0.2303647889E-03 2.164276148 0.2518828185E-03 2.177909575 0.2729834193E-03 2.191543002 0.2936359494E-03 2.205176430 0.3138115788E-03 2.218809857 0.3334834017E-03 2.232443285 0.3526265385E-03 2.246076712 0.3712182287E-03 2.259710140 0.3892379126E-03 2.273343567 0.4066673017E-03 2.286976994 0.4234904369E-03 2.300610422 0.4396937341E-03 2.314243849 0.4552660161E-03 2.327877277 0.4701985311E-03 2.341510704 0.4844849558E-03 2.355144132 0.4981213836E-03 2.368777559 0.5111062973E-03 2.382410986 0.5234405258E-03 2.396044414 0.5351271831E-03 2.409677841 0.5461715923E-03 2.423311269 0.5565811908E-03 2.436944696 0.5663654194E-03 2.450578123 0.5755355941E-03 2.464211551 0.5841047609E-03 2.477844978 0.5920875345E-03 2.491478406 0.5994999209E-03 2.505111833 0.6063591254E-03 2.518745261 0.6126833465E-03 2.532378688 0.6184915582E-03 2.546012115 0.6238032803E-03 2.559645543 0.6286383419E-03 2.573278970 0.6330166366E-03 2.586912398 0.6369578758E-03 2.600545825 0.6404813395E-03 2.614179253 0.6436056306E-03 2.627812680 0.6463484338E-03 2.641446107 0.6487262841E-03 2.655079535 0.6507543468E-03 2.668712962 0.6524462147E-03 2.682346390 0.6538137227E-03 2.695979817 0.6548667865E-03 2.709613245 0.6556132653E-03 2.723246672 0.6560588526E-03 2.736880099 0.6562069967E-03 0.000000000 -0.3420208952E-10 0.1367793241E-01 0.1395975825E-04 0.2735586482E-01 0.2811116802E-04 0.4103379724E-01 0.4263638565E-04 0.5471172965E-01 0.5769959260E-04 0.6838966206E-01 0.7344031904E-04 0.8206759447E-01 0.8996898946E-04 0.9574552688E-01 0.1073647223E-03 0.1094234593 0.1256751165E-03 0.1231013917 0.1449175914E-03 0.1367793241 0.1650818093E-03 0.1504572565 0.1861327570E-03 0.1641351889 0.2080141521E-03 0.1778131214 0.2306519397E-03 0.1914910538 0.2539577266E-03 0.2051689862 0.2778320642E-03 0.2188469186 0.3021675364E-03 0.2325248510 0.3268516307E-03 0.2462027834 0.3517693906E-03 0.2598807158 0.3768058469E-03 0.2735586482 0.4018482323E-03 0.2872365807 0.4267879789E-03 0.3009145131 0.4515224963E-03 0.3145924455 0.4759567251E-03 0.3282703779 0.5000044597E-03 0.3419483103 0.5235894294E-03 0.3556262427 0.5466461283E-03 0.3693041751 0.5691203841E-03 0.3829821075 0.5909696551E-03 0.3966600400 0.6121630513E-03 0.4103379724 0.6326810726E-03 0.4240159048 0.6525150689E-03 0.4376938372 0.6716664277E-03 0.4513717696 0.6901455040E-03 0.4650497020 0.7079703165E-03 0.4787276344 0.7251650399E-03 0.4924055668 0.7417583354E-03 0.5060834992 0.7577815682E-03 0.5197614317 0.7732669673E-03 0.5334393641 0.7882457918E-03 0.5471172965 0.8027465676E-03 0.5607952289 0.8167934605E-03 0.5744731613 0.8304048486E-03 0.5881510937 0.8435921480E-03 0.6018290261 0.8563589386E-03 0.6155069585 0.8687004217E-03 0.6291848910 0.8806032273E-03 0.6428628234 0.8920455733E-03 0.6565407558 0.9029977638E-03 0.6702186882 0.9134229989E-03 0.6838966206 0.9232784567E-03 0.6975745530 0.9325165990E-03 0.7112524854 0.9410866446E-03 0.7249304178 0.9489361531E-03 0.7386083503 0.9560126588E-03 0.7522862827 0.9622652970E-03 0.7659642151 0.9676463705E-03 0.7796421475 0.9721128052E-03 0.7933200799 0.9756274546E-03 0.8069980123 0.9781602152E-03 0.8206759447 0.9796889239E-03 0.8343538771 0.9802000156E-03 0.8482356956 0.9812857104E-03 0.8621175141 0.9845284034E-03 0.8759993325 0.9898854379E-03 0.8898811510 0.9972873991E-03 0.9037629694 0.1006640482E-02 0.9176447879 0.1017829524E-02 0.9315266063 0.1030721476E-02 0.9454084248 0.1045169078E-02 0.9592902433 0.1061014512E-02 0.9731720617 0.1078092876E-02 0.9870538802 0.1096235330E-02 1.000935699 0.1115271842E-02 1.014817517 0.1135033509E-02 1.028699336 0.1155354433E-02 1.042581154 0.1176073193E-02 1.056462972 0.1197033951E-02 1.070344791 0.1218087240E-02 1.084226609 0.1239090495E-02 1.098108428 0.1259908360E-02 1.111990246 0.1280412835E-02 1.125872065 0.1300483298E-02 1.139753883 0.1320006424E-02 1.153635702 0.1338876045E-02 1.167517520 0.1356992958E-02 1.181399339 0.1374261544E-02 1.195281157 0.1355591700E-02 1.209162975 0.1336647769E-02 1.223044794 0.1317465419E-02 1.236926612 0.1298078700E-02 1.250808431 0.1278519808E-02 1.264690249 0.1258818849E-02 1.278572068 0.1239003633E-02 1.292453886 0.1219099474E-02 1.306335705 0.1199129018E-02 1.320217523 0.1179112086E-02 1.334099342 0.1159065554E-02 1.347981160 0.1139003257E-02 1.361862979 0.1118935919E-02 1.375744797 0.1098871125E-02 1.389626615 0.1078813321E-02 1.403508434 0.1058763851E-02 1.417390252 0.1038721029E-02 1.431272071 0.1018680247E-02 1.445153889 0.9986341138E-03 1.459035708 0.9785726288E-03 1.472917526 0.9584833850E-03 1.486799345 0.9383517992E-03 1.500681163 0.9181613655E-03 1.514562982 0.8978939299E-03 1.528444800 0.8775299802E-03 1.542326618 0.8570489479E-03 1.556208437 0.8364295183E-03 1.570090255 0.8156499427E-03 1.583972074 0.7946883499E-03 1.597853892 0.7735230527E-03 1.611735711 0.7521328446E-03 1.625617529 0.7304972840E-03 1.639499348 0.7085969635E-03 1.653381166 0.6864137596E-03 1.667262985 0.6639310623E-03 1.681144803 0.6411339822E-03 1.695026621 0.6180095336E-03 1.708908440 0.5945467927E-03 1.722790258 0.5707370309E-03 1.736672077 0.5465738215E-03 1.750553895 0.5220531222E-03 1.764435714 0.4971733315E-03 1.778317532 0.4719353209E-03 1.792199351 0.4463424441E-03 1.806081169 0.4204005225E-03 1.819962988 0.3941178100E-03 1.833844806 0.3675049373E-03 1.847726625 0.3405748369E-03 1.861608443 0.3133426509E-03 1.875490261 0.2858256218E-03 1.889372080 0.2580429691E-03 1.903253898 0.2300157515E-03 1.917135717 0.2017667173E-03 1.931017535 0.1733201437E-03 1.944899354 0.1447016666E-03 1.958781172 0.1159381014E-03 1.972662991 0.8705725766E-04 1.986544809 0.5808774701E-04 2.000426628 0.2905878676E-04 2.014308446 -0.3420208952E-10 2.027941873 0.2370354388E-04 2.041575301 0.4736585954E-04 2.055208728 0.7094588699E-04 2.068842156 0.9440290202E-04 2.082475583 0.1176966823E-03 2.096109011 0.1407876711E-03 2.109742438 0.1636371386E-03 2.123375865 0.1862073390E-03 2.137009293 0.2084616636E-03 2.150642720 0.2303647889E-03 2.164276148 0.2518828185E-03 2.177909575 0.2729834193E-03 2.191543002 0.2936359494E-03 2.205176430 0.3138115788E-03 2.218809857 0.3334834017E-03 2.232443285 0.3526265385E-03 2.246076712 0.3712182287E-03 2.259710140 0.3892379126E-03 2.273343567 0.4066673017E-03 2.286976994 0.4234904369E-03 2.300610422 0.4396937341E-03 2.314243849 0.4552660161E-03 2.327877277 0.4701985311E-03 2.341510704 0.4844849558E-03 2.355144132 0.4981213836E-03 2.368777559 0.5111062973E-03 2.382410986 0.5234405258E-03 2.396044414 0.5351271831E-03 2.409677841 0.5461715923E-03 2.423311269 0.5565811908E-03 2.436944696 0.5663654194E-03 2.450578123 0.5755355941E-03 2.464211551 0.5841047609E-03 2.477844978 0.5920875345E-03 2.491478406 0.5994999209E-03 2.505111833 0.6063591254E-03 2.518745261 0.6126833465E-03 2.532378688 0.6184915582E-03 2.546012115 0.6238032803E-03 2.559645543 0.6286383419E-03 2.573278970 0.6330166366E-03 2.586912398 0.6369578758E-03 2.600545825 0.6404813395E-03 2.614179253 0.6436056306E-03 2.627812680 0.6463484338E-03 2.641446107 0.6487262841E-03 2.655079535 0.6507543468E-03 2.668712962 0.6524462147E-03 2.682346390 0.6538137227E-03 2.695979817 0.6548667865E-03 2.709613245 0.6556132653E-03 2.723246672 0.6560588526E-03 2.736880099 0.6562069967E-03 0.000000000 -0.3420208952E-10 0.1367793241E-01 0.3823884523E-04 0.2735586482E-01 0.7655998645E-04 0.4103379724E-01 0.1150412827E-03 0.5471172965E-01 0.1537519379E-03 0.6838966206E-01 0.1927487035E-03 0.8206759447E-01 0.2320726719E-03 0.9574552688E-01 0.2717467869E-03 0.1094234593 0.3117741532E-03 0.1231013917 0.3521371737E-03 0.1367793241 0.3927975063E-03 0.1504572565 0.4336967888E-03 0.1641351889 0.4747580608E-03 0.1778131214 0.5158877861E-03 0.1914910538 0.5569783745E-03 0.2051689862 0.5979110955E-03 0.2188469186 0.6385592786E-03 0.2325248510 0.6787916997E-03 0.2462027834 0.7184760577E-03 0.2598807158 0.7574824543E-03 0.2735586482 0.7956867946E-03 0.2872365807 0.8329740310E-03 0.3009145131 0.8692411810E-03 0.3145924455 0.9044000482E-03 0.3282703779 0.9383795843E-03 0.3419483103 0.9711278272E-03 0.3556262427 0.1002613358E-02 0.3693041751 0.1032826223E-02 0.3829821075 0.1061778263E-02 0.3966600400 0.1089502819E-02 0.4103379724 0.1116053772E-02 0.4240159048 0.1141503910E-02 0.4376938372 0.1165942611E-02 0.4513717696 0.1189472885E-02 0.4650497020 0.1212207812E-02 0.4787276344 0.1234266480E-02 0.4924055668 0.1255769519E-02 0.5060834992 0.1276834407E-02 0.5197614317 0.1297570705E-02 0.5334393641 0.1318075430E-02 0.5471172965 0.1338428772E-02 0.5607952289 0.1358690347E-02 0.5744731613 0.1378896178E-02 0.5881510937 0.1399056545E-02 0.6018290261 0.1419154813E-02 0.6155069585 0.1439147272E-02 0.6291848910 0.1458964002E-02 0.6428628234 0.1478510694E-02 0.6565407558 0.1497671319E-02 0.6702186882 0.1516311521E-02 0.6838966206 0.1534282560E-02 0.6975745530 0.1551425638E-02 0.7112524854 0.1567576449E-02 0.7249304178 0.1582569772E-02 0.7386083503 0.1596243986E-02 0.7522862827 0.1608445368E-02 0.7659642151 0.1619032074E-02 0.7796421475 0.1627877728E-02 0.7933200799 0.1634874537E-02 0.8069980123 0.1639935904E-02 0.8206759447 0.1642998481E-02 0.8343538771 0.1644023664E-02 0.8482356956 0.1643523278E-02 0.8621175141 0.1642023593E-02 0.8759993325 0.1639529018E-02 0.8898811510 0.1636046875E-02 0.9037629694 0.1631587366E-02 0.9176447879 0.1626163520E-02 0.9315266063 0.1619791124E-02 0.9454084248 0.1612488649E-02 0.9592902433 0.1604277149E-02 0.9731720617 0.1595180158E-02 0.9870538802 0.1585223561E-02 1.000935699 0.1574435464E-02 1.014817517 0.1562846035E-02 1.028699336 0.1550487351E-02 1.042581154 0.1537393212E-02 1.056462972 0.1523598957E-02 1.070344791 0.1509141263E-02 1.084226609 0.1494057931E-02 1.098108428 0.1478387666E-02 1.111990246 0.1462169841E-02 1.125872065 0.1445444263E-02 1.139753883 0.1428250919E-02 1.153635702 0.1410629725E-02 1.167517520 0.1392620268E-02 1.181399339 0.1374264711E-02 1.195281157 0.1390605367E-02 1.209162975 0.1405935262E-02 1.223044794 0.1420180772E-02 1.236926612 0.1433274069E-02 1.250808431 0.1445152897E-02 1.264690249 0.1455760355E-02 1.278572068 0.1465044687E-02 1.292453886 0.1472959085E-02 1.306335705 0.1479461501E-02 1.320217523 0.1484514475E-02 1.334099342 0.1488084963E-02 1.347981160 0.1490144177E-02 1.361862979 0.1490667441E-02 1.375744797 0.1489634042E-02 1.389626615 0.1487027091E-02 1.403508434 0.1482833397E-02 1.417390252 0.1477043333E-02 1.431272071 0.1469650719E-02 1.445153889 0.1460652698E-02 1.459035708 0.1450049623E-02 1.472917526 0.1437844943E-02 1.486799345 0.1424045092E-02 1.500681163 0.1408659378E-02 1.514562982 0.1391699882E-02 1.528444800 0.1373181350E-02 1.542326618 0.1353121088E-02 1.556208437 0.1331538864E-02 1.570090255 0.1308456807E-02 1.583972074 0.1283899307E-02 1.597853892 0.1257892918E-02 1.611735711 0.1230466265E-02 1.625617529 0.1201649948E-02 1.639499348 0.1171476449E-02 1.653381166 0.1139980042E-02 1.667262985 0.1107196704E-02 1.681144803 0.1073164026E-02 1.695026621 0.1037921130E-02 1.708908440 0.1001508584E-02 1.722790258 0.9639683170E-03 1.736672077 0.9253435454E-03 1.750553895 0.8856786904E-03 1.764435714 0.8450193042E-03 1.778317532 0.8034119960E-03 1.792199351 0.7609043610E-03 1.806081169 0.7175449105E-03 1.819962988 0.6733830052E-03 1.833844806 0.6284687898E-03 1.847726625 0.5828531304E-03 1.861608443 0.5365875529E-03 1.875490261 0.4897241846E-03 1.889372080 0.4423156964E-03 1.903253898 0.3944152475E-03 1.917135717 0.3460764318E-03 1.931017535 0.2973532253E-03 1.944899354 0.2482999353E-03 1.958781172 0.1989711506E-03 1.972662991 0.1494216932E-03 1.986544809 0.9970657006E-04 2.000426628 0.4988092658E-04 2.014308446 -0.3420208952E-10 2.027941873 0.4422954981E-04 2.041575301 0.8842365389E-04 2.055208728 0.1325468703E-03 2.068842156 0.1765637650E-03 2.082475583 0.2204389163E-03 2.096109011 0.2641369200E-03 2.109742438 0.3076223952E-03 2.123375865 0.3508599919E-03 2.137009293 0.3938143989E-03 2.150642720 0.4364503535E-03 2.164276148 0.4787326531E-03 2.177909575 0.5206261685E-03 2.191543002 0.5620958584E-03 2.205176430 0.6031067865E-03 2.218809857 0.6436241411E-03 2.232443285 0.6836132554E-03 2.246076712 0.7230396319E-03 2.259710140 0.7618689670E-03 2.273343567 0.8000671799E-03 2.286976994 0.8376004421E-03 2.300610422 0.8744352099E-03 2.314243849 0.9105382586E-03 2.327877277 0.9458767196E-03 2.341510704 0.9804181181E-03 2.355144132 0.1014130414E-02 2.368777559 0.1046982043E-02 2.382410986 0.1078941962E-02 2.396044414 0.1109979692E-02 2.409677841 0.1140065364E-02 2.423311269 0.1169169768E-02 2.436944696 0.1197264401E-02 2.450578123 0.1224321512E-02 2.464211551 0.1250314155E-02 2.477844978 0.1275216233E-02 2.491478406 0.1299002553E-02 2.505111833 0.1321648869E-02 2.518745261 0.1343131930E-02 2.532378688 0.1363429530E-02 2.546012115 0.1382520552E-02 2.559645543 0.1400385009E-02 2.573278970 0.1417004094E-02 2.586912398 0.1432360212E-02 2.600545825 0.1446437026E-02 2.614179253 0.1459219488E-02 2.627812680 0.1470693877E-02 2.641446107 0.1480847829E-02 2.655079535 0.1489670365E-02 2.668712962 0.1497151916E-02 2.682346390 0.1503284347E-02 2.695979817 0.1508060976E-02 2.709613245 0.1511476589E-02 2.723246672 0.1513527453E-02 2.736880099 0.1514211324E-02 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/PHDLINES.OUT0000644000000000000000000000013213543334741024026 xustar0030 mtime=1569569249.384638908 30 atime=1569569249.383638908 30 ctime=1569569249.384638908 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PHDLINES.OUT0000644002504400250440000000050013543334741026070 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.1233017808E-02 0.000000000 0.2466035513E-02 0.8343538771 -0.1233017808E-02 0.8343538771 0.2466035513E-02 2.014308446 -0.1233017808E-02 2.014308446 0.2466035513E-02 2.736880099 -0.1233017808E-02 2.736880099 0.2466035513E-02 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/PHDOS.OUT0000644000000000000000000000013213543334741023475 xustar0030 mtime=1569569249.389638905 30 atime=1569569249.387638906 30 ctime=1569569249.389638905 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PHDOS.OUT0000644002504400250440000004410413543334741025547 0ustar00dewhurstdewhurst00000000000000 -0.1808426262E-03 15.08091925 -0.1768640889E-03 30.49697004 -0.1728855515E-03 34.51854850 -0.1689070142E-03 31.66993042 -0.1649284769E-03 26.97808888 -0.1609499396E-03 26.47539157 -0.1569714023E-03 28.48618080 -0.1529928650E-03 23.62677349 -0.1490143276E-03 24.63216811 -0.1450357903E-03 26.14026003 -0.1410572530E-03 35.69150889 -0.1370787157E-03 36.69690351 -0.1331001784E-03 38.20499543 -0.1291216411E-03 32.34019350 -0.1251431037E-03 35.85907466 -0.1211645664E-03 28.31861503 -0.1171860291E-03 26.14026003 -0.1132074918E-03 19.10249772 -0.1092289545E-03 23.12407618 -0.1052504172E-03 25.13486542 -0.1012718798E-03 26.64295734 -0.9729334252E-04 33.17802235 -0.9331480520E-04 37.70229812 -0.8933626789E-04 37.03203505 -0.8535773057E-04 28.98887811 -0.8137919325E-04 24.96729965 -0.7740065594E-04 27.64835196 -0.7342211862E-04 26.64295734 -0.6944358130E-04 25.13486542 -0.6546504399E-04 22.11868157 -0.6148650667E-04 20.61058964 -0.5750796936E-04 20.10789233 -0.5352943204E-04 17.09170848 -0.4955089472E-04 20.94572118 -0.4557235741E-04 18.43223464 -0.4159382009E-04 16.42144540 -0.3761528277E-04 14.07552463 -0.3363674546E-04 14.07552463 -0.2965820814E-04 12.56743271 -0.2567967082E-04 5.529670391 -0.2170113351E-04 5.026973083 -0.1772259619E-04 5.026973083 -0.1374405887E-04 5.529670391 -0.9765521557E-05 4.524275775 -0.5786984241E-05 3.770229812 -0.1808446924E-05 2.262137887 0.2170090392E-05 0.2513486542 0.6148627709E-05 0.000000000 0.1012716503E-04 4.524275775 0.1410570234E-04 9.048551549 0.1808423966E-04 12.56743271 0.2206277697E-04 12.06473540 0.2604131429E-04 8.043156933 0.3001985161E-04 9.551248858 0.3399838892E-04 13.07013002 0.3797692624E-04 17.25927425 0.4195546356E-04 19.27006349 0.4593400087E-04 18.26466887 0.4991253819E-04 19.60519502 0.5389107551E-04 22.62137887 0.5786961282E-04 23.62677349 0.6184815014E-04 26.97808888 0.6582668746E-04 33.51315389 0.6980522477E-04 34.51854850 0.7378376209E-04 38.20499543 0.7776229941E-04 33.68071966 0.8174083672E-04 38.37256120 0.8571937404E-04 37.36716658 0.8969791136E-04 41.38874505 0.9367644867E-04 45.74545506 0.9765498599E-04 48.76163891 0.1016335233E-03 48.76163891 0.1056120606E-03 46.24815236 0.1095905979E-03 55.29670391 0.1135691353E-03 57.81019046 0.1175476726E-03 69.87492585 0.1215262099E-03 64.34525546 0.1255047472E-03 64.84795277 0.1294832845E-03 57.47505892 0.1334618218E-03 63.50742662 0.1374403592E-03 67.02630777 0.1414188965E-03 74.39920163 0.1453974338E-03 74.90189894 0.1493759711E-03 88.47472626 0.1533545084E-03 86.46393703 0.1573330457E-03 89.48012088 0.1613115831E-03 84.28558203 0.1652901204E-03 101.3772905 0.1692686577E-03 104.8961717 0.1732471950E-03 106.2366978 0.1772257323E-03 94.17196242 0.1812042696E-03 95.17735704 0.1851828070E-03 95.00979127 0.1891613443E-03 107.0745267 0.1931398816E-03 121.1500513 0.1971184189E-03 140.2525490 0.2010969562E-03 127.6851163 0.2050754935E-03 125.1716298 0.2090540309E-03 123.6635378 0.2130325682E-03 145.2795221 0.2170111055E-03 144.2741275 0.2209896428E-03 140.9228121 0.2249681801E-03 133.2147867 0.2289467174E-03 139.2471544 0.2329252547E-03 141.5930752 0.2369037921E-03 172.4251767 0.2408823294E-03 185.4953068 0.2448608667E-03 192.5330691 0.2488394040E-03 171.9224794 0.2528179413E-03 162.3712306 0.2567964786E-03 166.3928090 0.2607750160E-03 193.5384637 0.2647535533E-03 211.1328695 0.2687320906E-03 199.7383972 0.2727106279E-03 193.5384637 0.2766891652E-03 190.0195825 0.2806677025E-03 223.0300391 0.2846462399E-03 238.2785241 0.2886247772E-03 250.8459568 0.2926033145E-03 247.8297730 0.2965818518E-03 219.1760264 0.3005603891E-03 216.1598426 0.3045389264E-03 242.3001026 0.3085174638E-03 283.0185846 0.3124960011E-03 288.3806892 0.3164745384E-03 273.4673357 0.3204530757E-03 247.3270757 0.3244316130E-03 284.1915450 0.3284101503E-03 301.1156877 0.3323886877E-03 336.3044993 0.3363672250E-03 319.7154881 0.3403457623E-03 309.6615419 0.3443242996E-03 309.9966735 0.3483028369E-03 323.0668035 0.3522813742E-03 342.1693012 0.3562599116E-03 364.4555485 0.3602384489E-03 366.4663378 0.3642169862E-03 375.1797578 0.3681955235E-03 378.0283758 0.3721740608E-03 412.2117928 0.3761525981E-03 415.0604109 0.3801311355E-03 432.8223825 0.3841096728E-03 414.7252794 0.3880882101E-03 449.9140909 0.3920667474E-03 440.6979736 0.3960452847E-03 461.3085633 0.4000238220E-03 481.4164556 0.4040023594E-03 505.2107948 0.4079808967E-03 533.3618441 0.4119594340E-03 528.3348710 0.4159379713E-03 546.9346714 0.4199165086E-03 555.9832230 0.4238950459E-03 585.1396669 0.4278735833E-03 607.0907827 0.4318521206E-03 607.0907827 0.4358306579E-03 620.6636100 0.4398091952E-03 631.8905165 0.4437877325E-03 668.5874200 0.4477662698E-03 702.1005739 0.4517448072E-03 718.1868878 0.4557233445E-03 749.3541209 0.4597018818E-03 720.5328086 0.4636804191E-03 764.7701717 0.4676589564E-03 769.1268817 0.4716374937E-03 820.2344414 0.4756160311E-03 802.1373383 0.4795945684E-03 797.2779310 0.4835731057E-03 873.1852245 0.4875516430E-03 898.6552215 0.4915301803E-03 948.9249523 0.4955087176E-03 899.6606161 0.4994872550E-03 912.8983119 0.5034657923E-03 956.1302804 0.5074443296E-03 988.4704739 0.5114228669E-03 1034.551060 0.5154014042E-03 1001.875735 0.5193799415E-03 1029.859219 0.5233584789E-03 1070.242569 0.5273370162E-03 1093.869343 0.5313155535E-03 1119.004208 0.5352940908E-03 1125.539273 0.5392726281E-03 1167.095584 0.5432511654E-03 1192.230450 0.5472297028E-03 1186.868345 0.5512082401E-03 1244.846101 0.5551867774E-03 1245.851496 0.5591653147E-03 1292.434780 0.5631438520E-03 1307.515699 0.5671223893E-03 1333.991090 0.5711009267E-03 1412.914568 0.5750794640E-03 1408.390292 0.5790580013E-03 1434.698118 0.5830365386E-03 1432.184631 0.5870150759E-03 1488.989427 0.5909936132E-03 1548.475275 0.5949721506E-03 1578.972245 0.5989506879E-03 1605.615203 0.6029292252E-03 1612.988097 0.6069077625E-03 1674.484734 0.6108862998E-03 1739.332687 0.6148648371E-03 1813.731888 0.6188433745E-03 1826.802018 0.6228219118E-03 1856.796291 0.6268004491E-03 1864.001619 0.6307789864E-03 1985.654368 0.6347575237E-03 2057.204951 0.6387360610E-03 2169.138885 0.6427145984E-03 2197.792632 0.6466931357E-03 2267.667558 0.6506716730E-03 2431.379315 0.6546502103E-03 2677.030732 0.6586287476E-03 2872.915117 0.6626072849E-03 3007.637996 0.6665858222E-03 3034.616084 0.6705643596E-03 3059.080687 0.6745428969E-03 3103.485616 0.6785214342E-03 3095.610025 0.6824999715E-03 3176.879423 0.6864785088E-03 3220.111391 0.6904570461E-03 3289.316054 0.6944355835E-03 3321.488682 0.6984141208E-03 3386.671766 0.7023926581E-03 3458.557481 0.7063711954E-03 3563.286087 0.7103497327E-03 3533.794512 0.7143282700E-03 3500.616489 0.7183068074E-03 3489.054451 0.7222853447E-03 3478.497808 0.7262638820E-03 3530.610762 0.7302424193E-03 3480.676163 0.7342209566E-03 3537.648524 0.7381994939E-03 3507.989383 0.7421780313E-03 3595.961412 0.7461565686E-03 3577.696743 0.7501351059E-03 3630.479961 0.7541136432E-03 3552.059180 0.7580921805E-03 3603.837003 0.7620707178E-03 3603.837003 0.7660492552E-03 3653.604037 0.7700277925E-03 3673.376798 0.7740063298E-03 3632.155618 0.7779848671E-03 3716.608766 0.7819634044E-03 3705.884557 0.7859419417E-03 3776.262180 0.7899204791E-03 3757.159682 0.7938990164E-03 3766.710931 0.7978775537E-03 3828.542700 0.8018560910E-03 3867.250393 0.8058346283E-03 3930.757819 0.8098131656E-03 3994.600378 0.8137917030E-03 3975.497880 0.8177702403E-03 4082.404841 0.8217487776E-03 4117.090955 0.8257273149E-03 4258.851596 0.8297058522E-03 4290.018829 0.8336843895E-03 4269.408239 0.8376629269E-03 4275.943304 0.8416414642E-03 4231.873507 0.8456200015E-03 4276.613568 0.8495985388E-03 4248.462518 0.8535770761E-03 4153.285161 0.8575556134E-03 4025.600045 0.8615341508E-03 3957.233211 0.8655126881E-03 3951.703541 0.8694912254E-03 4009.513731 0.8734697627E-03 3916.012032 0.8774483000E-03 3922.714662 0.8814268373E-03 3877.974602 0.8854053747E-03 3889.033943 0.8893839120E-03 3905.455388 0.8933624493E-03 3901.433810 0.8973409866E-03 3885.347496 0.9013195239E-03 3876.801642 0.9052980612E-03 3893.893350 0.9092765986E-03 3948.687357 0.9132551359E-03 3927.071372 0.9172336732E-03 3917.520124 0.9212122105E-03 3905.120257 0.9251907478E-03 3916.179597 0.9291692851E-03 3857.364012 0.9331478225E-03 3822.510332 0.9371263598E-03 3799.888953 0.9411048971E-03 3772.240602 0.9450834344E-03 3796.370072 0.9490619717E-03 3758.667774 0.9530405090E-03 3718.954687 0.9570190464E-03 3633.998842 0.9609975837E-03 3609.366674 0.9649761210E-03 3629.139434 0.9689546583E-03 3653.771603 0.9729331956E-03 3625.117856 0.9769117329E-03 3557.086154 0.9808902703E-03 3436.941497 0.9848688076E-03 3325.845392 0.9888473449E-03 3195.646789 0.9928258822E-03 3125.771863 0.9968044195E-03 3028.751283 0.1000782957E-02 2974.459973 0.1004761494E-02 2815.607624 0.1008740031E-02 2669.825404 0.1012718569E-02 2516.167594 0.1016697106E-02 2382.450110 0.1020675643E-02 2269.343215 0.1024654181E-02 2223.430195 0.1028632718E-02 2252.083941 0.1032611255E-02 2213.376248 0.1036589793E-02 2212.873551 0.1040568330E-02 2176.176648 0.1044546867E-02 2225.943681 0.1048525405E-02 2220.916708 0.1052503942E-02 2226.949076 0.1056482479E-02 2231.473352 0.1060461017E-02 2247.727231 0.1064439554E-02 2258.786572 0.1068418091E-02 2238.175982 0.1072396629E-02 2225.440984 0.1076375166E-02 2255.100125 0.1080353703E-02 2269.678347 0.1084332240E-02 2255.602822 0.1088310778E-02 2230.467957 0.1092289315E-02 2260.629795 0.1096267852E-02 2266.662163 0.1100246390E-02 2266.662163 0.1104224927E-02 2254.597428 0.1108203464E-02 2242.700258 0.1112182002E-02 2234.657101 0.1116160539E-02 2240.186772 0.1120139076E-02 2244.543482 0.1124117614E-02 2233.986838 0.1128096151E-02 2244.543482 0.1132074688E-02 2230.970654 0.1136053226E-02 2201.814210 0.1140031763E-02 2179.695529 0.1144010300E-02 2197.289935 0.1147988838E-02 2176.679345 0.1151967375E-02 2154.560663 0.1155945912E-02 2104.458498 0.1159924449E-02 2124.566391 0.1163902987E-02 2087.869487 0.1167881524E-02 2053.015807 0.1171860061E-02 2044.469953 0.1175838599E-02 1996.713709 0.1179817136E-02 1965.546475 0.1183795673E-02 1925.833388 0.1187774211E-02 1909.747074 0.1191752748E-02 1900.698523 0.1195731285E-02 1820.769651 0.1199709823E-02 1780.051169 0.1203688360E-02 1744.024528 0.1207666897E-02 1697.273679 0.1211645435E-02 1679.679273 0.1215623972E-02 1608.128689 0.1219602509E-02 1602.599019 0.1223581047E-02 1498.037979 0.1227559584E-02 1477.427389 0.1231538121E-02 1390.963452 0.1235516659E-02 1333.655959 0.1239495196E-02 1240.154260 0.1243473733E-02 1176.814399 0.1247452270E-02 1152.182231 0.1251430808E-02 1114.647498 0.1255409345E-02 1130.231115 0.1259387882E-02 1129.225720 0.1263366420E-02 1169.273939 0.1267344957E-02 1189.381831 0.1271323494E-02 1223.062551 0.1275302032E-02 1249.202811 0.1279280569E-02 1281.375439 0.1283259106E-02 1337.174840 0.1287237644E-02 1421.627988 0.1291216181E-02 1466.535614 0.1295194718E-02 1535.907843 0.1299173256E-02 1574.615535 0.1303151793E-02 1639.798620 0.1307130330E-02 1715.203216 0.1311108868E-02 1795.132088 0.1315087405E-02 1888.131090 0.1319065942E-02 1978.616605 0.1323044479E-02 2021.848574 0.1327023017E-02 2168.133491 0.1331001554E-02 2229.127431 0.1334980091E-02 2354.801758 0.1338958629E-02 2432.719841 0.1342937166E-02 2529.572855 0.1346915703E-02 2685.409021 0.1350894241E-02 2834.710122 0.1354872778E-02 3039.307926 0.1358851315E-02 3220.278957 0.1362829853E-02 3490.394977 0.1366808390E-02 3788.494481 0.1370786927E-02 4033.308070 0.1374765465E-02 4061.291554 0.1378744002E-02 3987.897747 0.1382722539E-02 3865.239604 0.1386701077E-02 3764.700142 0.1390679614E-02 3654.274300 0.1394658151E-02 3589.426347 0.1398636688E-02 3536.643130 0.1402615226E-02 3539.994445 0.1406593763E-02 3511.340699 0.1410572300E-02 3551.053786 0.1414550838E-02 3527.091881 0.1418529375E-02 3550.215957 0.1422507912E-02 3537.648524 0.1426486450E-02 3588.756084 0.1430464987E-02 3656.620221 0.1434443524E-02 3707.057517 0.1438422062E-02 3829.715660 0.1442400599E-02 3879.985391 0.1446379136E-02 4061.291554 0.1450357674E-02 4289.683698 0.1454336211E-02 4507.351632 0.1458314748E-02 4684.971348 0.1462293286E-02 4583.761623 0.1466271823E-02 4427.590326 0.1470250360E-02 4128.317862 0.1474228898E-02 3968.627683 0.1478207435E-02 3836.920989 0.1482185972E-02 3755.148893 0.1486164509E-02 3577.696743 0.1490143047E-02 3387.677161 0.1494121584E-02 3101.642392 0.1498100121E-02 2858.839592 0.1502078659E-02 2653.739091 0.1506057196E-02 2516.670291 0.1510035733E-02 2309.391434 0.1514014271E-02 2050.334755 0.1517992808E-02 1780.553866 0.1521971345E-02 1571.431786 0.1525949883E-02 1464.357259 0.1529928420E-02 1362.309706 0.1533906957E-02 1260.764849 0.1537885495E-02 1161.733479 0.1541864032E-02 1051.642769 0.1545842569E-02 976.2381727 0.1549821107E-02 843.5260833 0.1553799644E-02 740.9758324 0.1557778181E-02 582.1234830 0.1561756718E-02 446.8979071 0.1565735256E-02 348.3692347 0.1569713793E-02 340.3260777 0.1573692330E-02 312.1750285 0.1577670868E-02 302.6237796 0.1581649405E-02 281.0077953 0.1585627942E-02 284.5266765 0.1589606480E-02 259.3918111 0.1593585017E-02 245.8189838 0.1597563554E-02 222.1922103 0.1601542092E-02 228.7272753 0.1605520629E-02 199.0681341 0.1609499166E-02 198.5654368 0.1613477704E-02 173.9332687 0.1617456241E-02 161.3658360 0.1621434778E-02 151.3118898 0.1625413316E-02 135.7282732 0.1629391853E-02 120.6473540 0.1633370390E-02 96.01518589 0.1637348927E-02 73.39380701 0.1641327465E-02 43.48331717 0.1645306002E-02 18.85114906 0.1649284539E-02 0.2513486542 0.1653263077E-02 0.000000000 0.1657241614E-02 0.000000000 0.1661220151E-02 0.000000000 0.1665198689E-02 0.000000000 0.1669177226E-02 0.000000000 0.1673155763E-02 0.000000000 0.1677134301E-02 0.000000000 0.1681112838E-02 0.000000000 0.1685091375E-02 0.000000000 0.1689069913E-02 0.000000000 0.1693048450E-02 0.000000000 0.1697026987E-02 0.000000000 0.1701005525E-02 0.000000000 0.1704984062E-02 0.000000000 0.1708962599E-02 0.000000000 0.1712941136E-02 0.000000000 0.1716919674E-02 0.000000000 0.1720898211E-02 0.000000000 0.1724876748E-02 0.000000000 0.1728855286E-02 0.000000000 0.1732833823E-02 0.000000000 0.1736812360E-02 0.000000000 0.1740790898E-02 0.000000000 0.1744769435E-02 0.000000000 0.1748747972E-02 0.000000000 0.1752726510E-02 0.000000000 0.1756705047E-02 0.000000000 0.1760683584E-02 0.000000000 0.1764662122E-02 0.000000000 0.1768640659E-02 0.000000000 0.1772619196E-02 0.000000000 0.1776597734E-02 0.000000000 0.1780576271E-02 0.000000000 0.1784554808E-02 0.000000000 0.1788533346E-02 0.000000000 0.1792511883E-02 0.000000000 0.1796490420E-02 0.000000000 0.1800468957E-02 0.000000000 0.1804447495E-02 0.000000000 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/PHLWIDTH.OUT0000644000000000000000000000013213543334741024043 xustar0030 mtime=1569569249.395638901 30 atime=1569569249.392638903 30 ctime=1569569249.395638901 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PHLWIDTH.OUT0000644002504400250440000005331213543334741026116 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.1248848272E-35 0.1367793241E-01 0.8178770349E-11 0.2735586482E-01 0.1298112073E-09 0.4103379724E-01 0.6484169145E-09 0.5471172965E-01 0.2011243509E-08 0.6838966206E-01 0.4793427485E-08 0.8206759447E-01 0.9651822037E-08 0.9574552688E-01 0.1727210258E-07 0.1094234593 0.2831326937E-07 0.1231013917 0.4335384407E-07 0.1367793241 0.6284389144E-07 0.1504572565 0.8706650488E-07 0.1641351889 0.1161116194E-06 0.1778131214 0.1498640245E-06 0.1914910538 0.1880063284E-06 0.2051689862 0.2300364665E-06 0.2188469186 0.2752982539E-06 0.2325248510 0.3230225369E-06 0.2462027834 0.3723757861E-06 0.2598807158 0.4225125450E-06 0.2735586482 0.4726280295E-06 0.2872365807 0.5220073730E-06 0.3009145131 0.5700684905E-06 0.3145924455 0.6163962485E-06 0.3282703779 0.6607664880E-06 0.3419483103 0.7031593803E-06 0.3556262427 0.7437624925E-06 0.3693041751 0.7829647183E-06 0.3829821075 0.8213428154E-06 0.3966600400 0.8596426208E-06 0.4103379724 0.8987570722E-06 0.4240159048 0.9397029414E-06 0.4376938372 0.9835977241E-06 0.4513717696 0.1031637489E-05 0.4650497020 0.1085075754E-05 0.4787276344 0.1145202719E-05 0.4924055668 0.1213323559E-05 0.5060834992 0.1290734039E-05 0.5197614317 0.1378691549E-05 0.5334393641 0.1478379811E-05 0.5471172965 0.1590865996E-05 0.5607952289 0.1717049755E-05 0.5744731613 0.1857604748E-05 0.5881510937 0.2012914382E-05 0.6018290261 0.2183004732E-05 0.6155069585 0.2367478712E-05 0.6291848910 0.2565456439E-05 0.6428628234 0.2775527282E-05 0.6565407558 0.2995719149E-05 0.6702186882 0.3223490141E-05 0.6838966206 0.3455746788E-05 0.6975745530 0.3688891637E-05 0.7112524854 0.3918901175E-05 0.7249304178 0.4141433008E-05 0.7386083503 0.4351959045E-05 0.7522862827 0.4545919343E-05 0.7659642151 0.4718889444E-05 0.7796421475 0.4866752651E-05 0.7933200799 0.4985867807E-05 0.8069980123 0.5073223004E-05 0.8206759447 0.5126566119E-05 0.8343538771 0.5144504277E-05 0.8482356956 0.5133400461E-05 0.8621175141 0.5100235552E-05 0.8759993325 0.5045446034E-05 0.8898811510 0.4969749029E-05 0.9037629694 0.4874127082E-05 0.9176447879 0.4759807466E-05 0.9315266063 0.4628236582E-05 0.9454084248 0.4481050180E-05 0.9592902433 0.4320040209E-05 0.9731720617 0.4147119206E-05 0.9870538802 0.3964283167E-05 1.000935699 0.3773573887E-05 1.014817517 0.3577041707E-05 1.028699336 0.3376709608E-05 1.042581154 0.3174539494E-05 1.056462972 0.2972401409E-05 1.070344791 0.2772046359E-05 1.084226609 0.2575083210E-05 1.098108428 0.2382960066E-05 1.111990246 0.2196950325E-05 1.125872065 0.2018143491E-05 1.139753883 0.1847440673E-05 1.153635702 0.1685554560E-05 1.167517520 0.1533013548E-05 1.181399339 0.1390169593E-05 1.195281157 0.1257209272E-05 1.209162975 0.1134167489E-05 1.223044794 0.1020943217E-05 1.236926612 0.9173166592E-06 1.250808431 0.8229672051E-06 1.264690249 0.7374916249E-06 1.278572068 0.6604219478E-06 1.292453886 0.5912425673E-06 1.306335705 0.5294061740E-06 1.320217523 0.4743482055E-06 1.334099342 0.4254995872E-06 1.347981160 0.3822976251E-06 1.361862979 0.3441949952E-06 1.375744797 0.3106668481E-06 1.389626615 0.2812161199E-06 1.403508434 0.2553771899E-06 1.417390252 0.2327180737E-06 1.431272071 0.2128413687E-06 1.445153889 0.1953841823E-06 1.459035708 0.1800172807E-06 1.472917526 0.1664436837E-06 1.486799345 0.1543969131E-06 1.500681163 0.1436390766E-06 1.514562982 0.1339589325E-06 1.528444800 0.1251700481E-06 1.542326618 0.1171091237E-06 1.556208437 0.1096345194E-06 1.570090255 0.1026249882E-06 1.583972074 0.9597858998E-07 1.597853892 0.8961173958E-07 1.611735711 0.8345832740E-07 1.625617529 0.7746884187E-07 1.639499348 0.7160942480E-07 1.653381166 0.6586079597E-07 1.667262985 0.6021699672E-07 1.681144803 0.5468391899E-07 1.695026621 0.4927760730E-07 1.708908440 0.4402234286E-07 1.722790258 0.3894854130E-07 1.736672077 0.3409051591E-07 1.750553895 0.2948417548E-07 1.764435714 0.2516473916E-07 1.778317532 0.2116455819E-07 1.792199351 0.1751113686E-07 1.806081169 0.1422544076E-07 1.819962988 0.1132057077E-07 1.833844806 0.8800866390E-08 1.847726625 0.6661482340E-08 1.861608443 0.4888459901E-08 1.875490261 0.3459289640E-08 1.889372080 0.2343937166E-08 1.903253898 0.1506279255E-08 1.917135717 0.9058759521E-09 1.931017535 0.4999861129E-09 1.944899354 0.2457205189E-09 1.958781172 0.1022188990E-09 1.972662991 0.3273549994E-10 1.986544809 0.6522336193E-11 2.000426628 0.4097646550E-12 2.014308446 0.1248848272E-35 2.027941873 0.8440570852E-12 2.041575301 0.1348520908E-10 2.055208728 0.6810280710E-10 2.068842156 0.2145049900E-09 2.082475583 0.5213966953E-09 2.096109011 0.1075363278E-08 2.109742438 0.1979578242E-08 2.123375865 0.3352246150E-08 2.137009293 0.5324794422E-08 2.150642720 0.8039830475E-08 2.164276148 0.1164888345E-07 2.177909575 0.1630995267E-07 2.191543002 0.2218488789E-07 2.205176430 0.2943662922E-07 2.218809857 0.3822633764E-07 2.232443285 0.4871044962E-07 2.246076712 0.6103769191E-07 2.259710140 0.7534609511E-07 2.273343567 0.9176004636E-07 2.286976994 0.1103874233E-06 2.300610422 0.1313168523E-06 2.314243849 0.1546151351E-06 2.327877277 0.1803248867E-06 2.341510704 0.2084624282E-06 2.355144132 0.2390159747E-06 2.368777559 0.2719441587E-06 2.382410986 0.3071749224E-06 2.396044414 0.3446048130E-06 2.409677841 0.3840987054E-06 2.423311269 0.4254899757E-06 2.436944696 0.4685811383E-06 2.450578123 0.5131449560E-06 2.464211551 0.5589260227E-06 2.477844978 0.6056428115E-06 2.491478406 0.6529901729E-06 2.505111833 0.7006422588E-06 2.518745261 0.7482558407E-06 2.532378688 0.7954739822E-06 2.546012115 0.8419300196E-06 2.559645543 0.8872517943E-06 2.573278970 0.9310660794E-06 2.586912398 0.9730031342E-06 2.600545825 0.1012701318E-05 2.614179253 0.1049811689E-05 2.627812680 0.1084002524E-05 2.641446107 0.1114963667E-05 2.655079535 0.1142410661E-05 2.668712962 0.1166088567E-05 2.682346390 0.1185775430E-05 2.695979817 0.1201285309E-05 2.709613245 0.1212470842E-05 2.723246672 0.1219225280E-05 2.736880099 0.1221483977E-05 0.000000000 0.1248848272E-35 0.1367793241E-01 0.8178770349E-11 0.2735586482E-01 0.1298112073E-09 0.4103379724E-01 0.6484169145E-09 0.5471172965E-01 0.2011243509E-08 0.6838966206E-01 0.4793427485E-08 0.8206759447E-01 0.9651822037E-08 0.9574552688E-01 0.1727210258E-07 0.1094234593 0.2831326937E-07 0.1231013917 0.4335384407E-07 0.1367793241 0.6284389144E-07 0.1504572565 0.8706650488E-07 0.1641351889 0.1161116194E-06 0.1778131214 0.1498640245E-06 0.1914910538 0.1880063284E-06 0.2051689862 0.2300364665E-06 0.2188469186 0.2752982539E-06 0.2325248510 0.3230225369E-06 0.2462027834 0.3723757861E-06 0.2598807158 0.4225125450E-06 0.2735586482 0.4726280295E-06 0.2872365807 0.5220073730E-06 0.3009145131 0.5700684905E-06 0.3145924455 0.6163962485E-06 0.3282703779 0.6607664880E-06 0.3419483103 0.7031593803E-06 0.3556262427 0.7437624925E-06 0.3693041751 0.7829647183E-06 0.3829821075 0.8213428154E-06 0.3966600400 0.8596426208E-06 0.4103379724 0.8987570722E-06 0.4240159048 0.9397029414E-06 0.4376938372 0.9835977241E-06 0.4513717696 0.1031637489E-05 0.4650497020 0.1085075754E-05 0.4787276344 0.1145202719E-05 0.4924055668 0.1213323559E-05 0.5060834992 0.1290734039E-05 0.5197614317 0.1378691549E-05 0.5334393641 0.1478379811E-05 0.5471172965 0.1590865996E-05 0.5607952289 0.1717049755E-05 0.5744731613 0.1857604748E-05 0.5881510937 0.2012914382E-05 0.6018290261 0.2183004732E-05 0.6155069585 0.2367478712E-05 0.6291848910 0.2565456439E-05 0.6428628234 0.2775527282E-05 0.6565407558 0.2995719149E-05 0.6702186882 0.3223490141E-05 0.6838966206 0.3455746788E-05 0.6975745530 0.3688891637E-05 0.7112524854 0.3918901175E-05 0.7249304178 0.4141433008E-05 0.7386083503 0.4351959045E-05 0.7522862827 0.4545919343E-05 0.7659642151 0.4718889444E-05 0.7796421475 0.4866752651E-05 0.7933200799 0.4985867807E-05 0.8069980123 0.5073223004E-05 0.8206759447 0.5126566119E-05 0.8343538771 0.5144504277E-05 0.8482356956 0.5147653980E-05 0.8621175141 0.5157121649E-05 0.8759993325 0.5172962519E-05 0.8898811510 0.5195267152E-05 0.9037629694 0.5224159197E-05 0.9176447879 0.5259792264E-05 0.9315266063 0.5302345898E-05 0.9454084248 0.5352020681E-05 0.9592902433 0.5409032441E-05 0.9731720617 0.5473605583E-05 0.9870538802 0.5545965542E-05 1.000935699 0.5626330356E-05 1.014817517 0.5714901371E-05 1.028699336 0.5811853092E-05 1.042581154 0.5917322202E-05 1.056462972 0.6031395804E-05 1.070344791 0.6154098943E-05 1.084226609 0.6285381529E-05 1.098108428 0.6425104771E-05 1.111990246 0.6272629671E-05 1.125872065 0.6016061340E-05 1.139753883 0.5761430185E-05 1.153635702 0.5509771100E-05 1.167517520 0.5262010121E-05 1.181399339 0.5018962088E-05 1.195281157 0.4781330238E-05 1.209162975 0.4549707594E-05 1.223044794 0.4324579953E-05 1.236926612 0.4106330297E-05 1.250808431 0.3895244406E-05 1.264690249 0.3691517475E-05 1.278572068 0.3495261514E-05 1.292453886 0.3306513328E-05 1.306335705 0.3125242886E-05 1.320217523 0.2951361890E-05 1.334099342 0.2784732392E-05 1.347981160 0.2625175304E-05 1.361862979 0.2472478676E-05 1.375744797 0.2326405639E-05 1.389626615 0.2186701911E-05 1.403508434 0.2053102805E-05 1.417390252 0.1925339669E-05 1.431272071 0.1803145711E-05 1.445153889 0.1686261183E-05 1.459035708 0.1574437881E-05 1.472917526 0.1467442957E-05 1.486799345 0.1365062012E-05 1.500681163 0.1267101478E-05 1.514562982 0.1173390284E-05 1.528444800 0.1083780799E-05 1.542326618 0.9981490754E-06 1.556208437 0.9163944103E-06 1.570090255 0.8384382403E-06 1.583972074 0.7642224199E-06 1.597853892 0.6937069232E-06 1.611735711 0.6268670313E-06 1.625617529 0.5636900752E-06 1.639499348 0.5041718205E-06 1.653381166 0.4483125874E-06 1.667262985 0.3961132120E-06 1.681144803 0.3475709657E-06 1.695026621 0.3026755507E-06 1.708908440 0.2614052978E-06 1.722790258 0.2237236887E-06 1.736672077 0.1895763220E-06 1.750553895 0.1588884345E-06 1.764435714 0.1315630740E-06 1.778317532 0.1074800070E-06 1.792199351 0.8649542086E-07 1.806081169 0.6844245845E-07 1.819962988 0.5313259825E-07 1.833844806 0.4035786319E-07 1.847726625 0.2989381616E-07 1.861608443 0.2150327121E-07 1.875490261 0.1494062425E-07 1.889372080 0.9956683590E-08 1.903253898 0.6303860990E-08 1.917135717 0.3741568514E-08 1.931017535 0.2041656368E-08 1.944899354 0.9937222230E-09 1.958781172 0.4101239176E-09 1.972662991 0.1305347796E-09 1.986544809 0.2589392672E-10 2.000426628 0.1622487919E-11 2.014308446 0.1248848272E-35 2.027941873 0.8440570852E-12 2.041575301 0.1348520908E-10 2.055208728 0.6810280710E-10 2.068842156 0.2145049900E-09 2.082475583 0.5213966953E-09 2.096109011 0.1075363278E-08 2.109742438 0.1979578242E-08 2.123375865 0.3352246150E-08 2.137009293 0.5324794422E-08 2.150642720 0.8039830475E-08 2.164276148 0.1164888345E-07 2.177909575 0.1630995267E-07 2.191543002 0.2218488789E-07 2.205176430 0.2943662922E-07 2.218809857 0.3822633764E-07 2.232443285 0.4871044962E-07 2.246076712 0.6103769191E-07 2.259710140 0.7534609511E-07 2.273343567 0.9176004636E-07 2.286976994 0.1103874233E-06 2.300610422 0.1313168523E-06 2.314243849 0.1546151351E-06 2.327877277 0.1803248867E-06 2.341510704 0.2084624282E-06 2.355144132 0.2390159747E-06 2.368777559 0.2719441587E-06 2.382410986 0.3071749224E-06 2.396044414 0.3446048130E-06 2.409677841 0.3840987054E-06 2.423311269 0.4254899757E-06 2.436944696 0.4685811383E-06 2.450578123 0.5131449560E-06 2.464211551 0.5589260227E-06 2.477844978 0.6056428115E-06 2.491478406 0.6529901729E-06 2.505111833 0.7006422588E-06 2.518745261 0.7482558407E-06 2.532378688 0.7954739822E-06 2.546012115 0.8419300196E-06 2.559645543 0.8872517943E-06 2.573278970 0.9310660794E-06 2.586912398 0.9730031342E-06 2.600545825 0.1012701318E-05 2.614179253 0.1049811689E-05 2.627812680 0.1084002524E-05 2.641446107 0.1114963667E-05 2.655079535 0.1142410661E-05 2.668712962 0.1166088567E-05 2.682346390 0.1185775430E-05 2.695979817 0.1201285309E-05 2.709613245 0.1212470842E-05 2.723246672 0.1219225280E-05 2.736880099 0.1221483977E-05 0.000000000 0.1248848272E-35 0.1367793241E-01 0.3025605838E-10 0.2735586482E-01 0.4786753773E-09 0.4103379724E-01 0.2378325366E-08 0.5471172965E-01 0.7322747245E-08 0.6838966206E-01 0.1728949802E-07 0.8206759447E-01 0.3442280939E-07 0.9574552688E-01 0.6080046791E-07 0.1094234593 0.9821134716E-07 0.1231013917 0.1479681097E-06 0.1367793241 0.2107747816E-06 0.1504572565 0.2866619010E-06 0.1641351889 0.3749937384E-06 0.1778131214 0.4745437755E-06 0.1914910538 0.5836272800E-06 0.2051689862 0.7002742942E-06 0.2188469186 0.8224232453E-06 0.2325248510 0.9481148775E-06 0.2462027834 0.1075668147E-05 0.2598807158 0.1203823596E-05 0.2735586482 0.1331844818E-05 0.2872365807 0.1459574084E-05 0.3009145131 0.1587443260E-05 0.3145924455 0.1716445094E-05 0.3282703779 0.1848072433E-05 0.3419483103 0.1984233806E-05 0.3556262427 0.2127153221E-05 0.3693041751 0.2279260444E-05 0.3829821075 0.2443075907E-05 0.3966600400 0.2621092425E-05 0.4103379724 0.2815654500E-05 0.4240159048 0.3028835565E-05 0.4376938372 0.3262314193E-05 0.4513717696 0.3517251871E-05 0.4650497020 0.3794177131E-05 0.4787276344 0.4092883165E-05 0.4924055668 0.4412347838E-05 0.5060834992 0.4750685919E-05 0.5197614317 0.5105142831E-05 0.5334393641 0.5472137252E-05 0.5471172965 0.5847356436E-05 0.5607952289 0.6225903660E-05 0.5744731613 0.6602492097E-05 0.5881510937 0.6971674469E-05 0.6018290261 0.7328093612E-05 0.6155069585 0.7666736227E-05 0.6291848910 0.7983170989E-05 0.6428628234 0.8273753029E-05 0.6565407558 0.8535779447E-05 0.6702186882 0.8767584749E-05 0.6838966206 0.8968570271E-05 0.6975745530 0.9139167234E-05 0.7112524854 0.9280738373E-05 0.7249304178 0.9395427562E-05 0.7386083503 0.9485970095E-05 0.7522862827 0.9555478087E-05 0.7659642151 0.9607215803E-05 0.7796421475 0.9644378863E-05 0.7933200799 0.9669889473E-05 0.8069980123 0.9686217526E-05 0.8206759447 0.9695234985E-05 0.8343538771 0.9698108709E-05 0.8482356956 0.9686913394E-05 0.8621175141 0.9653424234E-05 0.8759993325 0.9597930021E-05 0.8898811510 0.9520906905E-05 0.9037629694 0.9423010775E-05 0.9176447879 0.9305066833E-05 0.9315266063 0.9168056604E-05 0.9454084248 0.9013102693E-05 0.9592902433 0.8841451611E-05 0.9731720617 0.8654455067E-05 0.9870538802 0.8453550121E-05 1.000935699 0.8240238632E-05 1.014817517 0.8016066415E-05 1.028699336 0.7782602530E-05 1.042581154 0.7541419096E-05 1.056462972 0.7294072003E-05 1.070344791 0.7042082853E-05 1.084226609 0.6786922411E-05 1.098108428 0.6529995806E-05 1.111990246 0.6573027340E-05 1.125872065 0.6728791473E-05 1.139753883 0.6891909311E-05 1.153635702 0.7061749835E-05 1.167517520 0.7237526771E-05 1.181399339 0.7418287944E-05 1.195281157 0.7602906555E-05 1.209162975 0.7790074926E-05 1.223044794 0.7978301240E-05 1.236926612 0.8165909834E-05 1.250808431 0.8351045546E-05 1.264690249 0.8531682607E-05 1.278572068 0.8705638464E-05 1.292453886 0.8870592840E-05 1.306335705 0.9024112199E-05 1.320217523 0.9163679661E-05 1.334099342 0.9286730202E-05 1.347981160 0.9390690839E-05 1.361862979 0.9473025258E-05 1.375744797 0.9531282180E-05 1.389626615 0.9563146546E-05 1.403508434 0.9566492419E-05 1.417390252 0.9539436340E-05 1.431272071 0.9480389753E-05 1.445153889 0.9388108985E-05 1.459035708 0.9261741235E-05 1.472917526 0.9100865014E-05 1.486799345 0.8905523515E-05 1.500681163 0.8676249498E-05 1.514562982 0.8414080439E-05 1.528444800 0.8120562884E-05 1.542326618 0.7797745232E-05 1.556208437 0.7448158461E-05 1.570090255 0.7074784664E-05 1.583972074 0.6681013604E-05 1.597853892 0.6270587914E-05 1.611735711 0.5847537922E-05 1.625617529 0.5416107443E-05 1.639499348 0.4980672255E-05 1.653381166 0.4545653240E-05 1.667262985 0.4115426448E-05 1.681144803 0.3694232498E-05 1.695026621 0.3286087876E-05 1.708908440 0.2894700693E-05 1.722790258 0.2523393417E-05 1.736672077 0.2175034970E-05 1.750553895 0.1851984344E-05 1.764435714 0.1556047587E-05 1.778317532 0.1288449645E-05 1.792199351 0.1049822114E-05 1.806081169 0.8402074748E-06 1.819962988 0.6590798683E-06 1.833844806 0.5053819580E-06 1.847726625 0.3775769006E-06 1.861608443 0.2737139468E-06 1.875490261 0.1915057441E-06 1.889372080 0.1284150082E-06 1.903253898 0.8174790454E-07 1.917135717 0.4875123636E-07 1.931017535 0.2671038609E-07 1.944899354 0.1304490639E-07 1.958781172 0.5398711750E-08 1.972662991 0.1721976962E-08 1.986544809 0.3421030654E-09 2.000426628 0.2145526544E-10 2.014308446 0.1248848272E-35 2.027941873 0.3708983310E-10 2.041575301 0.5903600893E-09 2.055208728 0.2962911867E-08 2.068842156 0.9251341716E-08 2.082475583 0.2223667460E-07 2.096109011 0.4523905914E-07 2.109742438 0.8194317487E-07 2.123375865 0.1362026842E-06 2.137009293 0.2118330367E-06 2.150642720 0.3124024524E-06 2.164276148 0.4410309540E-06 2.177909575 0.6002068834E-06 2.191543002 0.7916294540E-06 2.205176430 0.1016084605E-05 2.218809857 0.1273359798E-05 2.232443285 0.1562201533E-05 2.246076712 0.1880317324E-05 2.259710140 0.2224421792E-05 2.273343567 0.2590324524E-05 2.286976994 0.2973055442E-05 2.300610422 0.3367021791E-05 2.314243849 0.3766189554E-05 2.327877277 0.4164281116E-05 2.341510704 0.4554980502E-05 2.355144132 0.4932137374E-05 2.368777559 0.5289961319E-05 2.382410986 0.5623198651E-05 2.396044414 0.5927285026E-05 2.409677841 0.6198468517E-05 2.423311269 0.6433899326E-05 2.436944696 0.6631684006E-05 2.450578123 0.6790903761E-05 2.464211551 0.6911598023E-05 2.477844978 0.6994716010E-05 2.491478406 0.7042040281E-05 2.505111833 0.7056087264E-05 2.518745261 0.7039990492E-05 2.532378688 0.6997372606E-05 2.546012115 0.6932212216E-05 2.559645543 0.6848711426E-05 2.573278970 0.6751169228E-05 2.586912398 0.6643865132E-05 2.600545825 0.6530956421E-05 2.614179253 0.6416391268E-05 2.627812680 0.6303838836E-05 2.641446107 0.6196636344E-05 2.655079535 0.6097752075E-05 2.668712962 0.6009762480E-05 2.682346390 0.5934840880E-05 2.695979817 0.5874754882E-05 2.709613245 0.5830869496E-05 2.723246672 0.5804153083E-05 2.736880099 0.5795183581E-05 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/PHLWLINES.OUT0000644000000000000000000000013213543334741024165 xustar0030 mtime=1569569249.399638898 30 atime=1569569249.398638899 30 ctime=1569569249.399638898 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PHLWLINES.OUT0000644002504400250440000000050013543334741026227 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.7273581532E-05 0.000000000 0.1454716306E-04 0.8343538771 -0.7273581532E-05 0.8343538771 0.1454716306E-04 2.014308446 -0.7273581532E-05 2.014308446 0.1454716306E-04 2.736880099 -0.7273581532E-05 2.736880099 0.1454716306E-04 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741023332 xustar0030 mtime=1569569249.403638896 30 atime=1569569249.402638896 30 ctime=1569569249.403638896 elk-6.3.2/examples/phonons-superconductivity/Al-DFPT/elk.in0000644002504400250440000000346413543334741025410 0ustar00dewhurstdewhurst00000000000000 ! Phonon spectrum and solving the Eliashberg equations to find the temperature- ! dependent superconducting gap. This uses density functional perturbation ! theory (DFPT) to calculate the phonon modes. ! You can submit the same phonon job (task=205) on as many machines as you like, ! but they must be be able to see the same directory. Each machine will compute ! a row of a particular dynamical matrix. The code assembles all the pieces to ! construct the dynamical and electron-phonon coupling matrices throughout the ! Brillouin zone. ! Example by Antonio Sanna. tasks 0 205 ! phonon q-point grid ngridq 4 4 4 ! add extra local-orbitals for accurate electron-phonon coupling nxlo 1 ngridk 8 8 8 ! larger smearing width required for stable phonon dispersion swidth 0.005 stype 1 ! increase the number of muffin-tin points (for accurate gradients) nrmtscf 1.5 ! uncomment the following lines for electron-phonon and Eliashberg calculations !ngridk ! 28 28 28 !tasks ! 1 : ground-state run ! 210 : phonon DOS ! 220 : phonon dispersion ! 240 : electron-phonon matrix elements ! 245 : phonon line-widths ! 250 : Eliashberg function, alpha^2F ! 260 : solving the Eliashberg equations ! number of temperature steps for Eliashberg calculation ntemp 80 ! use Broyden mixing mixtype 3 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 ! we use the LDA equilibrium lattice constant scale 3.7653 sppath '../../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 plot1d 4 200 : nvp1d, npp1d 0.0 0.0 0.0 : vlvp1d 0.5 0.5 0.0 1.0 0.0 0.0 0.5 0.0 0.0 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Nb-supercell0000644000000000000000000000013213543334741023416 xustar0030 mtime=1569569249.407638893 30 atime=1569569249.407638893 30 ctime=1569569249.407638893 elk-6.3.2/examples/phonons-superconductivity/Nb-supercell/0000755002504400250440000000000013543334741025542 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Nb-supercell/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741024576 xustar0030 mtime=1569569249.409638892 30 atime=1569569249.408638892 30 ctime=1569569249.409638892 elk-6.3.2/examples/phonons-superconductivity/Nb-supercell/elk.in0000644002504400250440000000700513543334741026647 0ustar00dewhurstdewhurst00000000000000 ! Example of how to determine the electron-phonon coupling parameters and ! superconducting transition temperature T_c. ! Note that these calculations are very time-consuming and require many ! computers sharing a common directory to run efficiently. It is also important ! to make sure the results are converged with respect to the various input ! parameters and err on the side of caution. Electron-phonon coupling is still ! an experimental feature at this stage. ! Follow the steps below for niobium on a 4x4x4 q-point grid. This is a time- ! consuming example, so the main results are included in this directory. avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 ! LDA equilibrium lattice parameter scale 3.071 sppath '../../../species/' atoms 1 : nspecies 'Nb.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 ! use efficient Broyden mixing mixtype 3 ! larger smearing width required swidth 0.005 stype 1 !--------------------------------------------------------------------------! ! Step 1: Compute the dynamical matrices and potential derivatives ! !--------------------------------------------------------------------------! ! This step should be run on as many computers as possible which share the same ! directory on a networked file system - just keep submitting jobs to the queue ! from the same directory. As usual, each job can be individually parallel ! using OpenMP. ! The code works by determining which DYN_Qqqqq_qqqq_qqqq_Sss_Aaa_Pp.OUT files ! need to be calculated. These files contain a single row of a dynamical matrix. ! If a calculation fails to complete, just delete that particular DYN file and ! re-run the code. All the DYN files must be calculated before proceeding to the ! next step. tasks 200 ! the q-point grid ngridq 4 4 4 ! add extra local-orbitals for accurate electron-phonon coupling nxlo 1 ! larger cut-off required rgkmax 8.0 ! this is an important parameter which fixes the k-point density irrespective ! of the size of the phonon supercell radkpt 40.0 !-----------------------------------------------------------------------! ! Step 2: Phonon dispersion curves and electron-phonon coupling ! !-----------------------------------------------------------------------! ! This should be run on one computer. You can plot the dispersion curves in the ! file PHDISP.OUT along with lines corresponding to high symmetry points stored ! in PHDLINES.OUT. The phonon linewidths along the same directions are in the ! file PHLWIDTH.OUT (PHLWLINES.OUT). The electron-phonon coupling parameter, ! lambda, and the estimated T_c is stored in MCMILLAN.OUT. You can also plot the ! Eliashberg function in ALPHA2F.OUT. Compare with the results of Bauer et al. ! in PRB 57, 11276 (1998). ! Uncomment the tasks below and run. !tasks ! 0 ! ground-state run ! 220 ! plot the phonon dispersion ! 240 ! generate the q-dependent phonon linewidths and coupling constants ! 245 ! plot the phonon linewidths ! 250 ! Eliashberg function, coupling constant, and superconducting T_c ! fine k-point grid required for accurate electron-phonon coupling; it should ! also be commensurate with the q-point grid ngridk 32 32 32 ! vertex location lines for the dispersion curves and phonon linewidths plot1d 9 400 0.5 0.5 0.5 0.25 0.25 0.25 0.0 0.0 0.0 -0.5 0.5 0.5 -0.5 0.5 0.0 -0.75 0.25 0.25 -0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.0 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Al-supercell0000644000000000000000000000013113543334741023412 xustar0030 mtime=1569569249.413638889 29 atime=1569569249.41263889 30 ctime=1569569249.413638889 elk-6.3.2/examples/phonons-superconductivity/Al-supercell/0000755002504400250440000000000013543334741025537 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Al-supercell/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741024573 xustar0030 mtime=1569569249.414638889 30 atime=1569569249.414638889 30 ctime=1569569249.414638889 elk-6.3.2/examples/phonons-superconductivity/Al-supercell/elk.in0000644002504400250440000000354713543334741026653 0ustar00dewhurstdewhurst00000000000000 ! Phonon spectrum and solving the Eliashberg equations to find the temperature- ! dependent superconducting gap. This example uses finite displacements and a ! supercell to determine the phonon modes. ! You can submit the same phonon job (task=200) on as many machines as you like, ! but they must be be able to see the same directory. Each machine will compute ! a row of a particular dynamical matrix. The code assembles all the pieces to ! construct the dynamical and electron-phonon coupling matrices throughout the ! Brillouin zone. ! Example by Antonio Sanna. tasks 200 ! phonon q-point grid ngridq 4 4 4 ! add extra local-orbitals for accurate electron-phonon coupling nxlo 1 swidth 0.005 stype 1 ! uncomment the following lines for electron-phonon and Eliashberg calculations !tasks ! 0 : ground-state run ! 210 : phonon DOS ! 220 : phonon dispersion ! 240 : electron-phonon matrix elements ! 245 : phonon line-widths ! 250 : Eliashberg function, alpha^2F ! 260 : solving the Eliashberg equations ! number of temperature steps for Eliashberg calculation ntemp 80 ! k-point grid density is determined by the radius radkpt ! (only used for the phonon calculation) radkpt 40.0 ! fine k-point mesh required for the electron-phonon coupling (must be ! commensurate with q-point mesh) ngridk 24 24 24 ! use Broyden mixing mixtype 3 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 ! we use the LDA equilibrium lattice constant scale 3.7653 sppath '../../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 plot1d 4 200 : nvp1d, npp1d 0.0 0.0 0.0 : vlvp1d 0.5 0.5 0.0 1.0 0.0 0.0 0.5 0.0 0.0 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Ni-supercell0000644000000000000000000000013213543334741023425 xustar0030 mtime=1569569249.430638878 30 atime=1569569249.417638887 30 ctime=1569569249.430638878 elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/0000755002504400250440000000000013543334741025551 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/PaxHeaders.21352/PHDISP.OUT0000644000000000000000000000013213543334741025062 xustar0030 mtime=1569569249.423638883 30 atime=1569569249.419638885 30 ctime=1569569249.423638883 elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/PHDISP.OUT0000644002504400250440000012660213543334741027140 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.3394132962E-10 0.1025457845E-01 0.1888579557E-04 0.2050915690E-01 0.3774855680E-04 0.3076373535E-01 0.5656537833E-04 0.4101831380E-01 0.7531361194E-04 0.5127289224E-01 0.9397099299E-04 0.6152747069E-01 0.1125157644E-03 0.7178204914E-01 0.1309267971E-03 0.8203662759E-01 0.1491837067E-03 0.9229120604E-01 0.1672669646E-03 0.1025457845 0.1851580040E-03 0.1128003629 0.2028393184E-03 0.1230549414 0.2202945538E-03 0.1333095198 0.2375085924E-03 0.1435640983 0.2544676267E-03 0.1538186767 0.2711592258E-03 0.1640732552 0.2875723900E-03 0.1743278336 0.3036975955E-03 0.1845824121 0.3195268278E-03 0.1948369905 0.3350536033E-03 0.2050915690 0.3502729785E-03 0.2153461474 0.3651815471E-03 0.2256007259 0.3797774247E-03 0.2358553043 0.3940602199E-03 0.2461098828 0.4080309931E-03 0.2563644612 0.4216922031E-03 0.2666190397 0.4350476401E-03 0.2768736181 0.4481023480E-03 0.2871281966 0.4608625340E-03 0.2973827750 0.4733354689E-03 0.3076373535 0.4855293761E-03 0.3178919319 0.4974533127E-03 0.3281465104 0.5091170432E-03 0.3384010888 0.5205309060E-03 0.3486556673 0.5317056765E-03 0.3589102457 0.5426524259E-03 0.3691648242 0.5533823796E-03 0.3794194026 0.5639067756E-03 0.3896739811 0.5742367252E-03 0.3999285595 0.5843830783E-03 0.4101831380 0.5943562938E-03 0.4204377164 0.6041663188E-03 0.4306922949 0.6138224763E-03 0.4409468733 0.6233333642E-03 0.4512014517 0.6327067665E-03 0.4614560302 0.6419495770E-03 0.4717106086 0.6510677385E-03 0.4819651871 0.6600661954E-03 0.4922197655 0.6689488615E-03 0.5024743440 0.6777186039E-03 0.5127289224 0.6863772404E-03 0.5229835009 0.6949255519E-03 0.5332380793 0.7033633083E-03 0.5434926578 0.7116893071E-03 0.5537472362 0.7199014233E-03 0.5640018147 0.7279966696E-03 0.5742563931 0.7359712654E-03 0.5845109716 0.7438207130E-03 0.5947655500 0.7515398791E-03 0.6050201285 0.7591230814E-03 0.6152747069 0.7665641761E-03 0.6255292854 0.7738566482E-03 0.6357838638 0.7809936999E-03 0.6460384423 0.7879683377E-03 0.6562930207 0.7947734566E-03 0.6665475992 0.8014019204E-03 0.6768021776 0.8078466355E-03 0.6870567561 0.8141006205E-03 0.6973113345 0.8201570684E-03 0.7075659130 0.8260094010E-03 0.7178204914 0.8316513171E-03 0.7280750699 0.8370768322E-03 0.7383296483 0.8422803105E-03 0.7485842268 0.8472564895E-03 0.7588388052 0.8520004965E-03 0.7690933837 0.8565078592E-03 0.7793479621 0.8607745077E-03 0.7896025406 0.8647967719E-03 0.7998571190 0.8685713725E-03 0.8101116975 0.8720954070E-03 0.8203662759 0.8753663316E-03 0.8306208544 0.8783819399E-03 0.8408754328 0.8811403384E-03 0.8511300113 0.8836399205E-03 0.8613845897 0.8858793394E-03 0.8716391682 0.8878574806E-03 0.8818937466 0.8895734352E-03 0.8921483250 0.8910264741E-03 0.9024029035 0.8922160243E-03 0.9126574819 0.8931416479E-03 0.9229120604 0.8938030241E-03 0.9331666388 0.8941999341E-03 0.9434212173 0.8943322513E-03 0.9434212173 0.8943322513E-03 0.9535655315 0.8943189294E-03 0.9637098456 0.8942790429E-03 0.9738541598 0.8942128294E-03 0.9839984740 0.8941206825E-03 0.9941427881 0.8940031484E-03 1.004287102 0.8938609212E-03 1.014431416 0.8936948370E-03 1.024575731 0.8935058665E-03 1.034720045 0.8932951070E-03 1.044864359 0.8930637731E-03 1.055008673 0.8928131868E-03 1.065152987 0.8925447664E-03 1.075297301 0.8922600150E-03 1.085441616 0.8919605092E-03 1.095585930 0.8916478862E-03 1.105730244 0.8913238320E-03 1.115874558 0.8909900687E-03 1.126018872 0.8906483419E-03 1.136163186 0.8903004094E-03 1.146307501 0.8899480289E-03 1.156451815 0.8895929470E-03 1.166596129 0.8892368888E-03 1.176740443 0.8888815480E-03 1.186884757 0.8885285774E-03 1.197029071 0.8881795816E-03 1.207173386 0.8878361087E-03 1.217317700 0.8874996447E-03 1.227462014 0.8871716080E-03 1.237606328 0.8868533448E-03 1.247750642 0.8865461255E-03 1.257894956 0.8862511429E-03 1.268039271 0.8859695098E-03 1.278183585 0.8857022585E-03 1.288327899 0.8854503408E-03 1.298472213 0.8852146283E-03 1.308616527 0.8849959136E-03 1.318760841 0.8847949122E-03 1.328905156 0.8846122641E-03 1.339049470 0.8844485359E-03 1.349193784 0.8843042235E-03 1.359338098 0.8841797544E-03 1.369482412 0.8840754898E-03 1.379626726 0.8839917270E-03 1.389771041 0.8839287014E-03 1.399915355 0.8838865878E-03 1.410059669 0.8838655021E-03 1.420203983 0.8838655021E-03 1.430348297 0.8838865878E-03 1.440492611 0.8839287014E-03 1.450636926 0.8839917270E-03 1.460781240 0.8840754898E-03 1.470925554 0.8841797544E-03 1.481069868 0.8843042235E-03 1.491214182 0.8844485359E-03 1.501358496 0.8846122641E-03 1.511502811 0.8847949122E-03 1.521647125 0.8849959136E-03 1.531791439 0.8852146283E-03 1.541935753 0.8854503408E-03 1.552080067 0.8857022585E-03 1.562224381 0.8859695098E-03 1.572368695 0.8862511429E-03 1.582513010 0.8865461255E-03 1.592657324 0.8868533448E-03 1.602801638 0.8871716080E-03 1.612945952 0.8874996447E-03 1.623090266 0.8878361087E-03 1.633234580 0.8881795816E-03 1.643378895 0.8885285774E-03 1.653523209 0.8888815480E-03 1.663667523 0.8892368888E-03 1.673811837 0.8895929470E-03 1.683956151 0.8899480289E-03 1.694100465 0.8903004094E-03 1.704244780 0.8906483419E-03 1.714389094 0.8909900687E-03 1.724533408 0.8913238320E-03 1.734677722 0.8916478862E-03 1.744822036 0.8919605092E-03 1.754966350 0.8922600150E-03 1.765110665 0.8925447664E-03 1.775254979 0.8928131868E-03 1.785399293 0.8930637731E-03 1.795543607 0.8932951070E-03 1.805687921 0.8935058665E-03 1.815832235 0.8936948370E-03 1.825976550 0.8938609212E-03 1.836120864 0.8940031484E-03 1.846265178 0.8941206825E-03 1.856409492 0.8942128294E-03 1.866553806 0.8942790429E-03 1.876698120 0.8943189294E-03 1.886842435 0.8943322513E-03 1.886842435 0.8943322513E-03 1.897027160 0.8942714923E-03 1.907211886 0.8940892138E-03 1.917396612 0.8937854115E-03 1.927581338 0.8933600781E-03 1.937766064 0.8928132038E-03 1.947950789 0.8921447763E-03 1.958135515 0.8913547813E-03 1.968320241 0.8904432028E-03 1.978504967 0.8894100234E-03 1.988689693 0.8882552249E-03 1.998874418 0.8869787889E-03 2.009059144 0.8855806975E-03 2.019243870 0.8840609337E-03 2.029428596 0.8824194822E-03 2.039613322 0.8806563305E-03 2.049798047 0.8787714693E-03 2.059982773 0.8767648936E-03 2.070167499 0.8746366036E-03 2.080352225 0.8723866054E-03 2.090536951 0.8700149124E-03 2.100721677 0.8675215461E-03 2.110906402 0.8649065370E-03 2.121091128 0.8621699258E-03 2.131275854 0.8593117646E-03 2.141460580 0.8563321177E-03 2.151645306 0.8532310632E-03 2.161830031 0.8500086935E-03 2.172014757 0.8466651168E-03 2.182199483 0.8432004582E-03 2.192384209 0.8396148606E-03 2.202568935 0.8359084861E-03 2.212753660 0.8320815168E-03 2.222938386 0.8281341562E-03 2.233123112 0.8240666297E-03 2.243307838 0.8198791865E-03 2.253492564 0.8155720995E-03 2.263677289 0.8111456673E-03 2.273862015 0.8066002143E-03 2.284046741 0.8019360923E-03 2.294231467 0.7971536806E-03 2.304416193 0.7922533876E-03 2.314600918 0.7872356508E-03 2.324785644 0.7821009381E-03 2.334970370 0.7768497481E-03 2.345155096 0.7714826107E-03 2.355339822 0.7660000880E-03 2.365524547 0.7604027742E-03 2.375709273 0.7546912965E-03 2.385893999 0.7488663152E-03 2.396078725 0.7429285241E-03 2.406263451 0.7368786507E-03 2.416448176 0.7307174561E-03 2.426632902 0.7244457358E-03 2.436817628 0.7180643188E-03 2.447002354 0.7115740682E-03 2.457187080 0.7049758810E-03 2.467371806 0.6982706876E-03 2.477556531 0.6914594519E-03 2.487741257 0.6845431709E-03 2.497925983 0.6775228742E-03 2.508110709 0.6703996238E-03 2.518295435 0.6631745133E-03 2.528480160 0.6558486676E-03 2.538664886 0.6484232422E-03 2.548849612 0.6408994224E-03 2.559034338 0.6332784229E-03 2.569219064 0.6255614865E-03 2.579403789 0.6177498837E-03 2.589588515 0.6098449118E-03 2.599773241 0.6018478937E-03 2.609957967 0.5937601772E-03 2.620142693 0.5855831337E-03 2.630327418 0.5773181576E-03 2.640512144 0.5689666647E-03 2.650696870 0.5605300915E-03 2.660881596 0.5520098939E-03 2.671066322 0.5434075462E-03 2.681251047 0.5347245395E-03 2.691435773 0.5259623811E-03 2.701620499 0.5171225929E-03 2.711805225 0.5082067102E-03 2.721989951 0.4992162808E-03 2.732174676 0.4901528635E-03 2.742359402 0.4810180267E-03 2.752544128 0.4718133480E-03 2.762728854 0.4625404119E-03 2.772913580 0.4532008097E-03 2.783098305 0.4437961373E-03 2.793283031 0.4343279951E-03 2.803467757 0.4247979860E-03 2.813652483 0.4152077148E-03 2.823837209 0.4055587871E-03 2.834021935 0.3958528081E-03 2.844206660 0.3860913817E-03 2.854391386 0.3762761096E-03 2.864576112 0.3664085904E-03 2.874760838 0.3564904186E-03 2.884945564 0.3465231840E-03 2.895130289 0.3365084707E-03 2.905315015 0.3264478566E-03 2.915499741 0.3163429126E-03 2.925684467 0.3061952021E-03 2.935869193 0.2960062803E-03 2.946053918 0.2857776941E-03 2.956238644 0.2755109810E-03 2.966423370 0.2652076694E-03 2.976608096 0.2548692780E-03 2.986792822 0.2444973154E-03 2.996977547 0.2340932802E-03 3.007162273 0.2236586608E-03 3.017346999 0.2131949351E-03 3.027531725 0.2027035709E-03 3.037716451 0.1921860256E-03 3.047901176 0.1816437465E-03 3.058085902 0.1710781707E-03 3.068270628 0.1604907259E-03 3.078455354 0.1498828301E-03 3.088640080 0.1392558919E-03 3.098824805 0.1286113115E-03 3.109009531 0.1179504805E-03 3.119194257 0.1072747825E-03 3.129378983 0.9658559397E-04 3.139563709 0.8588428426E-04 3.149748434 0.7517221653E-04 3.159933160 0.6445074829E-04 3.170117886 0.5372123199E-04 3.180302612 0.4298501573E-04 3.190487338 0.3224344396E-04 3.200672064 0.2149785816E-04 3.210856789 0.1074959759E-04 3.221041515 -0.3394132962E-10 3.221041515 -0.3394132962E-10 3.231254349 0.1251907998E-04 3.241467184 0.2503301127E-04 3.251680018 0.3753664830E-04 3.261892852 0.5002485164E-04 3.272105686 0.6249249112E-04 3.282318521 0.7493444889E-04 3.292531355 0.8734562243E-04 3.302744189 0.9972092760E-04 3.312957023 0.1120553016E-03 3.323169858 0.1243437059E-03 3.333382692 0.1365811293E-03 3.343595526 0.1487625906E-03 3.353808360 0.1608831416E-03 3.364021195 0.1729378697E-03 3.374234029 0.1849219007E-03 3.384446863 0.1968304017E-03 3.394659698 0.2086585833E-03 3.404872532 0.2204017022E-03 3.415085366 0.2320550641E-03 3.425298200 0.2436140256E-03 3.435511035 0.2550739966E-03 3.445723869 0.2664304427E-03 3.455936703 0.2776788874E-03 3.466149537 0.2888149139E-03 3.476362372 0.2998341673E-03 3.486575206 0.3107323565E-03 3.496788040 0.3215052559E-03 3.507000874 0.3321487071E-03 3.517213709 0.3426586210E-03 3.527426543 0.3530309784E-03 3.537639377 0.3632618324E-03 3.547852211 0.3733473094E-03 3.558065046 0.3832836099E-03 3.568277880 0.3930670107E-03 3.578490714 0.4026938649E-03 3.588703548 0.4121606035E-03 3.598916383 0.4214637363E-03 3.609129217 0.4305998523E-03 3.619342051 0.4395656210E-03 3.629554885 0.4483577925E-03 3.639767720 0.4569731982E-03 3.649980554 0.4654087515E-03 3.660193388 0.4736614481E-03 3.670406222 0.4817283658E-03 3.680619057 0.4896066656E-03 3.690831891 0.4972935913E-03 3.701044725 0.5047864695E-03 3.711257560 0.5120827101E-03 3.721470394 0.5191798058E-03 3.731683228 0.5260753323E-03 3.741896062 0.5327669482E-03 3.752108897 0.5392523944E-03 3.762321731 0.5455294943E-03 3.772534565 0.5515961533E-03 3.782747399 0.5574503584E-03 3.792960234 0.5630901781E-03 3.803173068 0.5685137617E-03 3.813385902 0.5737193393E-03 3.823598736 0.5787052206E-03 3.833811571 0.5834697955E-03 3.844024405 0.5880115327E-03 3.854237239 0.5923289796E-03 3.864450073 0.5964207619E-03 3.874662908 0.6002855831E-03 3.884875742 0.6039222236E-03 3.895088576 0.6073295407E-03 3.905301410 0.6105064680E-03 3.915514245 0.6134520149E-03 3.925727079 0.6161652659E-03 3.935939913 0.6186453809E-03 3.946152747 0.6208915938E-03 3.956365582 0.6229032129E-03 3.966578416 0.6246796205E-03 3.976791250 0.6262202719E-03 3.987004084 0.6275246960E-03 3.997216919 0.6285924945E-03 4.007429753 0.6294233417E-03 4.017642587 0.6300169847E-03 4.027855422 0.6303732426E-03 4.038068256 0.6304920073E-03 0.000000000 -0.3394132962E-10 0.1025457845E-01 0.1888579557E-04 0.2050915690E-01 0.3774855680E-04 0.3076373535E-01 0.5656537833E-04 0.4101831380E-01 0.7531361194E-04 0.5127289224E-01 0.9397099299E-04 0.6152747069E-01 0.1125157644E-03 0.7178204914E-01 0.1309267971E-03 0.8203662759E-01 0.1491837067E-03 0.9229120604E-01 0.1672669646E-03 0.1025457845 0.1851580040E-03 0.1128003629 0.2028393184E-03 0.1230549414 0.2202945538E-03 0.1333095198 0.2375085924E-03 0.1435640983 0.2544676267E-03 0.1538186767 0.2711592258E-03 0.1640732552 0.2875723900E-03 0.1743278336 0.3036975955E-03 0.1845824121 0.3195268278E-03 0.1948369905 0.3350536033E-03 0.2050915690 0.3502729785E-03 0.2153461474 0.3651815471E-03 0.2256007259 0.3797774247E-03 0.2358553043 0.3940602199E-03 0.2461098828 0.4080309931E-03 0.2563644612 0.4216922031E-03 0.2666190397 0.4350476401E-03 0.2768736181 0.4481023480E-03 0.2871281966 0.4608625340E-03 0.2973827750 0.4733354689E-03 0.3076373535 0.4855293761E-03 0.3178919319 0.4974533127E-03 0.3281465104 0.5091170432E-03 0.3384010888 0.5205309060E-03 0.3486556673 0.5317056765E-03 0.3589102457 0.5426524259E-03 0.3691648242 0.5533823796E-03 0.3794194026 0.5639067756E-03 0.3896739811 0.5742367252E-03 0.3999285595 0.5843830783E-03 0.4101831380 0.5943562938E-03 0.4204377164 0.6041663188E-03 0.4306922949 0.6138224763E-03 0.4409468733 0.6233333642E-03 0.4512014517 0.6327067665E-03 0.4614560302 0.6419495770E-03 0.4717106086 0.6510677385E-03 0.4819651871 0.6600661954E-03 0.4922197655 0.6689488615E-03 0.5024743440 0.6777186039E-03 0.5127289224 0.6863772404E-03 0.5229835009 0.6949255519E-03 0.5332380793 0.7033633083E-03 0.5434926578 0.7116893071E-03 0.5537472362 0.7199014233E-03 0.5640018147 0.7279966696E-03 0.5742563931 0.7359712654E-03 0.5845109716 0.7438207130E-03 0.5947655500 0.7515398791E-03 0.6050201285 0.7591230814E-03 0.6152747069 0.7665641761E-03 0.6255292854 0.7738566482E-03 0.6357838638 0.7809936999E-03 0.6460384423 0.7879683377E-03 0.6562930207 0.7947734566E-03 0.6665475992 0.8014019204E-03 0.6768021776 0.8078466355E-03 0.6870567561 0.8141006205E-03 0.6973113345 0.8201570684E-03 0.7075659130 0.8260094010E-03 0.7178204914 0.8316513171E-03 0.7280750699 0.8370768322E-03 0.7383296483 0.8422803105E-03 0.7485842268 0.8472564895E-03 0.7588388052 0.8520004965E-03 0.7690933837 0.8565078592E-03 0.7793479621 0.8607745077E-03 0.7896025406 0.8647967719E-03 0.7998571190 0.8685713725E-03 0.8101116975 0.8720954070E-03 0.8203662759 0.8753663316E-03 0.8306208544 0.8783819399E-03 0.8408754328 0.8811403384E-03 0.8511300113 0.8836399205E-03 0.8613845897 0.8858793394E-03 0.8716391682 0.8878574806E-03 0.8818937466 0.8895734352E-03 0.8921483250 0.8910264741E-03 0.9024029035 0.8922160243E-03 0.9126574819 0.8931416479E-03 0.9229120604 0.8938030241E-03 0.9331666388 0.8941999341E-03 0.9434212173 0.8943322513E-03 0.9434212173 0.8943322513E-03 0.9535655315 0.8944054692E-03 0.9637098456 0.8946248999E-03 0.9738541598 0.8949898793E-03 0.9839984740 0.8954993181E-03 0.9941427881 0.8961517261E-03 1.004287102 0.8969452468E-03 1.014431416 0.8978776996E-03 1.024575731 0.8989466297E-03 1.034720045 0.9001493625E-03 1.044864359 0.9014830646E-03 1.055008673 0.9029448051E-03 1.065152987 0.9045316205E-03 1.075297301 0.9062405774E-03 1.085441616 0.9080688342E-03 1.095585930 0.9100136988E-03 1.105730244 0.9120726809E-03 1.115874558 0.9142435382E-03 1.126018872 0.9165243144E-03 1.136163186 0.9189133681E-03 1.146307501 0.9214093923E-03 1.156451815 0.9240114232E-03 1.166596129 0.9267188376E-03 1.176740443 0.9295313399E-03 1.186884757 0.9324489374E-03 1.197029071 0.9354719049E-03 1.207173386 0.9386007387E-03 1.217317700 0.9418361018E-03 1.227462014 0.9451787596E-03 1.237606328 0.9486295090E-03 1.247750642 0.9521891010E-03 1.257894956 0.9558581595E-03 1.268039271 0.9596370964E-03 1.278183585 0.9635260269E-03 1.288327899 0.9675246846E-03 1.298472213 0.9716323399E-03 1.308616527 0.9758477226E-03 1.318760841 0.9801689507E-03 1.328905156 0.9845934676E-03 1.339049470 0.9891179870E-03 1.349193784 0.9937384508E-03 1.359338098 0.9984499962E-03 1.369482412 0.1003246937E-02 1.379626726 0.1008122758E-02 1.389771041 0.1013070122E-02 1.399915355 0.1018080888E-02 1.410059669 0.1023146150E-02 1.420203983 0.1023146150E-02 1.430348297 0.1018080888E-02 1.440492611 0.1013070122E-02 1.450636926 0.1008122758E-02 1.460781240 0.1003246937E-02 1.470925554 0.9984499962E-03 1.481069868 0.9937384508E-03 1.491214182 0.9891179870E-03 1.501358496 0.9845934676E-03 1.511502811 0.9801689507E-03 1.521647125 0.9758477226E-03 1.531791439 0.9716323399E-03 1.541935753 0.9675246846E-03 1.552080067 0.9635260269E-03 1.562224381 0.9596370964E-03 1.572368695 0.9558581595E-03 1.582513010 0.9521891010E-03 1.592657324 0.9486295090E-03 1.602801638 0.9451787596E-03 1.612945952 0.9418361018E-03 1.623090266 0.9386007387E-03 1.633234580 0.9354719049E-03 1.643378895 0.9324489374E-03 1.653523209 0.9295313399E-03 1.663667523 0.9267188376E-03 1.673811837 0.9240114232E-03 1.683956151 0.9214093923E-03 1.694100465 0.9189133681E-03 1.704244780 0.9165243144E-03 1.714389094 0.9142435382E-03 1.724533408 0.9120726809E-03 1.734677722 0.9100136988E-03 1.744822036 0.9080688342E-03 1.754966350 0.9062405774E-03 1.765110665 0.9045316205E-03 1.775254979 0.9029448051E-03 1.785399293 0.9014830646E-03 1.795543607 0.9001493625E-03 1.805687921 0.8989466297E-03 1.815832235 0.8978776996E-03 1.825976550 0.8969452468E-03 1.836120864 0.8961517261E-03 1.846265178 0.8954993181E-03 1.856409492 0.8949898793E-03 1.866553806 0.8946248999E-03 1.876698120 0.8944054692E-03 1.886842435 0.8943322513E-03 1.886842435 0.8943322513E-03 1.897027160 0.8944779425E-03 1.907211886 0.8949145542E-03 1.917396612 0.8956407038E-03 1.927581338 0.8966540951E-03 1.937766064 0.8979515299E-03 1.947950789 0.8995289250E-03 1.958135515 0.9013813328E-03 1.968320241 0.9035029662E-03 1.978504967 0.9058872268E-03 1.988689693 0.9085267373E-03 1.998874418 0.9114133755E-03 2.009059144 0.9145383121E-03 2.019243870 0.9178920491E-03 2.029428596 0.9214644611E-03 2.039613322 0.9252448367E-03 2.049798047 0.9292219212E-03 2.059982773 0.9333839594E-03 2.070167499 0.9377187382E-03 2.080352225 0.9422136294E-03 2.090536951 0.9468556309E-03 2.100721677 0.9516314077E-03 2.110906402 0.9565273315E-03 2.121091128 0.9615295191E-03 2.131275854 0.9666238685E-03 2.141460580 0.9717960949E-03 2.151645306 0.9770317636E-03 2.161830031 0.9823163220E-03 2.172014757 0.9876351296E-03 2.182199483 0.9929734861E-03 2.192384209 0.9983166583E-03 2.202568935 0.1003649905E-02 2.212753660 0.1008958500E-02 2.222938386 0.1014227755E-02 2.233123112 0.1019443037E-02 2.243307838 0.1024589794E-02 2.253492564 0.1029653563E-02 2.263677289 0.1034619997E-02 2.273862015 0.1039474872E-02 2.284046741 0.1044204106E-02 2.294231467 0.1048793774E-02 2.304416193 0.1045990072E-02 2.314600918 0.1040269913E-02 2.324785644 0.1034413404E-02 2.334970370 0.1028420353E-02 2.345155096 0.1022290545E-02 2.355339822 0.1016023740E-02 2.365524547 0.1009619677E-02 2.375709273 0.1003078071E-02 2.385893999 0.9963986186E-03 2.396078725 0.9895809965E-03 2.406263451 0.9826248638E-03 2.416448176 0.9755298640E-03 2.426632902 0.9682956267E-03 2.436817628 0.9609217697E-03 2.447002354 0.9534079015E-03 2.457187080 0.9457536233E-03 2.467371806 0.9379585316E-03 2.477556531 0.9300222213E-03 2.487741257 0.9219442879E-03 2.497925983 0.9137243310E-03 2.508110709 0.9053619571E-03 2.518295435 0.8968567825E-03 2.528480160 0.8882084372E-03 2.538664886 0.8794165676E-03 2.548849612 0.8704808404E-03 2.559034338 0.8614009459E-03 2.569219064 0.8521766016E-03 2.579403789 0.8428075556E-03 2.589588515 0.8332935905E-03 2.599773241 0.8236345270E-03 2.609957967 0.8138302273E-03 2.620142693 0.8038805990E-03 2.630327418 0.7937855988E-03 2.640512144 0.7835452358E-03 2.650696870 0.7731595754E-03 2.660881596 0.7626287425E-03 2.671066322 0.7519529251E-03 2.681251047 0.7411323779E-03 2.691435773 0.7301674251E-03 2.701620499 0.7190584642E-03 2.711805225 0.7078059685E-03 2.721989951 0.6964104906E-03 2.732174676 0.6848726647E-03 2.742359402 0.6731932099E-03 2.752544128 0.6613729324E-03 2.762728854 0.6494127281E-03 2.772913580 0.6373135847E-03 2.783098305 0.6250765839E-03 2.793283031 0.6127029034E-03 2.803467757 0.6001938185E-03 2.813652483 0.5875507037E-03 2.823837209 0.5747750341E-03 2.834021935 0.5618683866E-03 2.844206660 0.5488324408E-03 2.854391386 0.5356689799E-03 2.864576112 0.5223798911E-03 2.874760838 0.5089671659E-03 2.884945564 0.4954329007E-03 2.895130289 0.4817792962E-03 2.905315015 0.4680086575E-03 2.915499741 0.4541233932E-03 2.925684467 0.4401260154E-03 2.935869193 0.4260191380E-03 2.946053918 0.4118054762E-03 2.956238644 0.3974878449E-03 2.966423370 0.3830691570E-03 2.976608096 0.3685524224E-03 2.986792822 0.3539407451E-03 2.996977547 0.3392373218E-03 3.007162273 0.3244454393E-03 3.017346999 0.3095684721E-03 3.027531725 0.2946098798E-03 3.037716451 0.2795732040E-03 3.047901176 0.2644620656E-03 3.058085902 0.2492801614E-03 3.068270628 0.2340312610E-03 3.078455354 0.2187192030E-03 3.088640080 0.2033478918E-03 3.098824805 0.1879212934E-03 3.109009531 0.1724434319E-03 3.119194257 0.1569183854E-03 3.129378983 0.1413502816E-03 3.139563709 0.1257432943E-03 3.149748434 0.1101016382E-03 3.159933160 0.9442956517E-04 3.170117886 0.7873135965E-04 3.180302612 0.6301133401E-04 3.190487338 0.4727382404E-04 3.200672064 0.3152318433E-04 3.210856789 0.1576378360E-04 3.221041515 -0.3394132962E-10 3.221041515 -0.3394132962E-10 3.231254349 0.1251907998E-04 3.241467184 0.2503301127E-04 3.251680018 0.3753664830E-04 3.261892852 0.5002485164E-04 3.272105686 0.6249249112E-04 3.282318521 0.7493444889E-04 3.292531355 0.8734562243E-04 3.302744189 0.9972092760E-04 3.312957023 0.1120553016E-03 3.323169858 0.1243437059E-03 3.333382692 0.1365811293E-03 3.343595526 0.1487625906E-03 3.353808360 0.1608831416E-03 3.364021195 0.1729378697E-03 3.374234029 0.1849219007E-03 3.384446863 0.1968304017E-03 3.394659698 0.2086585833E-03 3.404872532 0.2204017022E-03 3.415085366 0.2320550641E-03 3.425298200 0.2436140256E-03 3.435511035 0.2550739966E-03 3.445723869 0.2664304427E-03 3.455936703 0.2776788874E-03 3.466149537 0.2888149139E-03 3.476362372 0.2998341673E-03 3.486575206 0.3107323565E-03 3.496788040 0.3215052559E-03 3.507000874 0.3321487071E-03 3.517213709 0.3426586210E-03 3.527426543 0.3530309784E-03 3.537639377 0.3632618324E-03 3.547852211 0.3733473094E-03 3.558065046 0.3832836099E-03 3.568277880 0.3930670107E-03 3.578490714 0.4026938649E-03 3.588703548 0.4121606035E-03 3.598916383 0.4214637363E-03 3.609129217 0.4305998523E-03 3.619342051 0.4395656210E-03 3.629554885 0.4483577925E-03 3.639767720 0.4569731982E-03 3.649980554 0.4654087515E-03 3.660193388 0.4736614481E-03 3.670406222 0.4817283658E-03 3.680619057 0.4896066656E-03 3.690831891 0.4972935913E-03 3.701044725 0.5047864695E-03 3.711257560 0.5120827101E-03 3.721470394 0.5191798058E-03 3.731683228 0.5260753323E-03 3.741896062 0.5327669482E-03 3.752108897 0.5392523944E-03 3.762321731 0.5455294943E-03 3.772534565 0.5515961533E-03 3.782747399 0.5574503584E-03 3.792960234 0.5630901781E-03 3.803173068 0.5685137617E-03 3.813385902 0.5737193393E-03 3.823598736 0.5787052206E-03 3.833811571 0.5834697955E-03 3.844024405 0.5880115327E-03 3.854237239 0.5923289796E-03 3.864450073 0.5964207619E-03 3.874662908 0.6002855831E-03 3.884875742 0.6039222236E-03 3.895088576 0.6073295407E-03 3.905301410 0.6105064680E-03 3.915514245 0.6134520149E-03 3.925727079 0.6161652659E-03 3.935939913 0.6186453809E-03 3.946152747 0.6208915938E-03 3.956365582 0.6229032129E-03 3.966578416 0.6246796205E-03 3.976791250 0.6262202719E-03 3.987004084 0.6275246960E-03 3.997216919 0.6285924945E-03 4.007429753 0.6294233417E-03 4.017642587 0.6300169847E-03 4.027855422 0.6303732426E-03 4.038068256 0.6304920073E-03 0.000000000 -0.3394132962E-10 0.1025457845E-01 0.2450379401E-04 0.2050915690E-01 0.4899861705E-04 0.3076373535E-01 0.7347543114E-04 0.4101831380E-01 0.9792506537E-04 0.5127289224E-01 0.1223381526E-03 0.6152747069E-01 0.1467050695E-03 0.7178204914E-01 0.1710158815E-03 0.8203662759E-01 0.1952602932E-03 0.9229120604E-01 0.2194276058E-03 0.1025457845 0.2435066815E-03 0.1128003629 0.2674859161E-03 0.1230549414 0.2913532211E-03 0.1333095198 0.3150960143E-03 0.1435640983 0.3387012196E-03 0.1538186767 0.3621552779E-03 0.1640732552 0.3854441659E-03 0.1743278336 0.4085534262E-03 0.1845824121 0.4314682057E-03 0.1948369905 0.4541733035E-03 0.2050915690 0.4766532275E-03 0.2153461474 0.4988922587E-03 0.2256007259 0.5208745227E-03 0.2358553043 0.5425840684E-03 0.2461098828 0.5640049515E-03 0.2563644612 0.5851213237E-03 0.2666190397 0.6059175246E-03 0.2768736181 0.6263781778E-03 0.2871281966 0.6464882872E-03 0.2973827750 0.6662333351E-03 0.3076373535 0.6855993795E-03 0.3178919319 0.7045731495E-03 0.3281465104 0.7231421390E-03 0.3384010888 0.7412946957E-03 0.3486556673 0.7590201062E-03 0.3589102457 0.7763086753E-03 0.3691648242 0.7931517980E-03 0.3794194026 0.8095420252E-03 0.3896739811 0.8254731193E-03 0.3999285595 0.8409401027E-03 0.4101831380 0.8559392943E-03 0.4204377164 0.8704683376E-03 0.4306922949 0.8845262160E-03 0.4409468733 0.8981132578E-03 0.4512014517 0.9112311295E-03 0.4614560302 0.9238828164E-03 0.4717106086 0.9360725923E-03 0.4819651871 0.9478059764E-03 0.4922197655 0.9590896794E-03 0.5024743440 0.9699315373E-03 0.5127289224 0.9803404355E-03 0.5229835009 0.9903262219E-03 0.5332380793 0.9998996109E-03 0.5434926578 0.1009072079E-02 0.5537472362 0.1017855753E-02 0.5640018147 0.1026263293E-02 0.5742563931 0.1034307769E-02 0.5845109716 0.1042002534E-02 0.5947655500 0.1049361099E-02 0.6050201285 0.1056397002E-02 0.6152747069 0.1063123686E-02 0.6255292854 0.1069554372E-02 0.6357838638 0.1075701942E-02 0.6460384423 0.1081578828E-02 0.6562930207 0.1087196909E-02 0.6665475992 0.1092567415E-02 0.6768021776 0.1097700846E-02 0.6870567561 0.1102606900E-02 0.6973113345 0.1107294416E-02 0.7075659130 0.1111771327E-02 0.7178204914 0.1116044632E-02 0.7280750699 0.1120120383E-02 0.7383296483 0.1124003677E-02 0.7485842268 0.1127698678E-02 0.7588388052 0.1131208635E-02 0.7690933837 0.1134535931E-02 0.7793479621 0.1137682128E-02 0.7896025406 0.1140648033E-02 0.7998571190 0.1143433770E-02 0.8101116975 0.1146038859E-02 0.8203662759 0.1148462305E-02 0.8306208544 0.1150702684E-02 0.8408754328 0.1152758244E-02 0.8511300113 0.1154626990E-02 0.8613845897 0.1156306784E-02 0.8716391682 0.1157795435E-02 0.8818937466 0.1159090782E-02 0.8921483250 0.1160190776E-02 0.9024029035 0.1161093552E-02 0.9126574819 0.1161797493E-02 0.9229120604 0.1162301286E-02 0.9331666388 0.1162603958E-02 0.9434212173 0.1162704916E-02 0.9434212173 0.1162704916E-02 0.9535655315 0.1162659450E-02 0.9637098456 0.1162522668E-02 0.9738541598 0.1162293427E-02 0.9839984740 0.1161969840E-02 0.9941427881 0.1161549316E-02 1.004287102 0.1161028606E-02 1.014431416 0.1160403855E-02 1.024575731 0.1159670681E-02 1.034720045 0.1158824248E-02 1.044864359 0.1157859357E-02 1.055008673 0.1156770539E-02 1.065152987 0.1155552159E-02 1.075297301 0.1154198516E-02 1.085441616 0.1152703957E-02 1.095585930 0.1151062979E-02 1.105730244 0.1149270341E-02 1.115874558 0.1147321165E-02 1.126018872 0.1145211041E-02 1.136163186 0.1142936122E-02 1.146307501 0.1140493210E-02 1.156451815 0.1137879843E-02 1.166596129 0.1135094363E-02 1.176740443 0.1132135981E-02 1.186884757 0.1129004829E-02 1.197029071 0.1125702001E-02 1.207173386 0.1122229581E-02 1.217317700 0.1118590657E-02 1.227462014 0.1114789331E-02 1.237606328 0.1110830706E-02 1.247750642 0.1106720867E-02 1.257894956 0.1102466846E-02 1.268039271 0.1098076579E-02 1.278183585 0.1093558849E-02 1.288327899 0.1088923221E-02 1.298472213 0.1084179962E-02 1.308616527 0.1079339958E-02 1.318760841 0.1074414622E-02 1.328905156 0.1069415793E-02 1.339049470 0.1064355634E-02 1.349193784 0.1059246521E-02 1.359338098 0.1054100936E-02 1.369482412 0.1048931352E-02 1.379626726 0.1043750130E-02 1.389771041 0.1038569407E-02 1.399915355 0.1033400994E-02 1.410059669 0.1028256282E-02 1.420203983 0.1028256282E-02 1.430348297 0.1033400994E-02 1.440492611 0.1038569407E-02 1.450636926 0.1043750130E-02 1.460781240 0.1048931352E-02 1.470925554 0.1054100936E-02 1.481069868 0.1059246521E-02 1.491214182 0.1064355634E-02 1.501358496 0.1069415793E-02 1.511502811 0.1074414622E-02 1.521647125 0.1079339958E-02 1.531791439 0.1084179962E-02 1.541935753 0.1088923221E-02 1.552080067 0.1093558849E-02 1.562224381 0.1098076579E-02 1.572368695 0.1102466846E-02 1.582513010 0.1106720867E-02 1.592657324 0.1110830706E-02 1.602801638 0.1114789331E-02 1.612945952 0.1118590657E-02 1.623090266 0.1122229581E-02 1.633234580 0.1125702001E-02 1.643378895 0.1129004829E-02 1.653523209 0.1132135981E-02 1.663667523 0.1135094363E-02 1.673811837 0.1137879843E-02 1.683956151 0.1140493210E-02 1.694100465 0.1142936122E-02 1.704244780 0.1145211041E-02 1.714389094 0.1147321165E-02 1.724533408 0.1149270341E-02 1.734677722 0.1151062979E-02 1.744822036 0.1152703957E-02 1.754966350 0.1154198516E-02 1.765110665 0.1155552159E-02 1.775254979 0.1156770539E-02 1.785399293 0.1157859357E-02 1.795543607 0.1158824248E-02 1.805687921 0.1159670681E-02 1.815832235 0.1160403855E-02 1.825976550 0.1161028606E-02 1.836120864 0.1161549316E-02 1.846265178 0.1161969840E-02 1.856409492 0.1162293427E-02 1.866553806 0.1162522668E-02 1.876698120 0.1162659450E-02 1.886842435 0.1162704916E-02 1.886842435 0.1162704916E-02 1.897027160 0.1162634620E-02 1.907211886 0.1162423743E-02 1.917396612 0.1162072312E-02 1.927581338 0.1161580373E-02 1.937766064 0.1160947990E-02 1.947950789 0.1160175244E-02 1.958135515 0.1159262232E-02 1.968320241 0.1158209069E-02 1.978504967 0.1157015885E-02 1.988689693 0.1155682823E-02 1.998874418 0.1154210042E-02 2.009059144 0.1152597710E-02 2.019243870 0.1150846009E-02 2.029428596 0.1148955129E-02 2.039613322 0.1146925270E-02 2.049798047 0.1144756636E-02 2.059982773 0.1142449440E-02 2.070167499 0.1140003897E-02 2.080352225 0.1137420223E-02 2.090536951 0.1134698637E-02 2.100721677 0.1131839355E-02 2.110906402 0.1128842591E-02 2.121091128 0.1125708554E-02 2.131275854 0.1122437446E-02 2.141460580 0.1119029461E-02 2.151645306 0.1115484786E-02 2.161830031 0.1111803593E-02 2.172014757 0.1107986042E-02 2.182199483 0.1104032280E-02 2.192384209 0.1099942436E-02 2.202568935 0.1095716622E-02 2.212753660 0.1091354932E-02 2.222938386 0.1086857440E-02 2.233123112 0.1082224198E-02 2.243307838 0.1077455237E-02 2.253492564 0.1072550563E-02 2.263677289 0.1067510160E-02 2.273862015 0.1062333988E-02 2.284046741 0.1057021981E-02 2.294231467 0.1051574047E-02 2.304416193 0.1053230117E-02 2.314600918 0.1057499554E-02 2.324785644 0.1061588700E-02 2.334970370 0.1065484368E-02 2.345155096 0.1069173586E-02 2.355339822 0.1072643604E-02 2.365524547 0.1075881905E-02 2.375709273 0.1078876211E-02 2.385893999 0.1081614497E-02 2.396078725 0.1084084996E-02 2.406263451 0.1086276207E-02 2.416448176 0.1088176907E-02 2.426632902 0.1089776153E-02 2.436817628 0.1091063295E-02 2.447002354 0.1092027982E-02 2.457187080 0.1092660168E-02 2.467371806 0.1092950123E-02 2.477556531 0.1092888433E-02 2.487741257 0.1092466018E-02 2.497925983 0.1091674127E-02 2.508110709 0.1090504354E-02 2.518295435 0.1088948641E-02 2.528480160 0.1086999282E-02 2.538664886 0.1084648935E-02 2.548849612 0.1081890624E-02 2.559034338 0.1078717746E-02 2.569219064 0.1075124078E-02 2.579403789 0.1071103780E-02 2.589588515 0.1066651403E-02 2.599773241 0.1061761894E-02 2.609957967 0.1056430598E-02 2.620142693 0.1050653266E-02 2.630327418 0.1044426060E-02 2.640512144 0.1037745551E-02 2.650696870 0.1030608731E-02 2.660881596 0.1023013013E-02 2.671066322 0.1014956230E-02 2.681251047 0.1006436645E-02 2.691435773 0.9974529505E-03 2.701620499 0.9880042695E-03 2.711805225 0.9780901587E-03 2.721989951 0.9677106099E-03 2.732174676 0.9568660507E-03 2.742359402 0.9455573456E-03 2.752544128 0.9337857958E-03 2.762728854 0.9215531395E-03 2.772913580 0.9088615513E-03 2.783098305 0.8957136408E-03 2.793283031 0.8821124519E-03 2.803467757 0.8680614606E-03 2.813652483 0.8535645726E-03 2.823837209 0.8386261209E-03 2.834021935 0.8232508628E-03 2.844206660 0.8074439759E-03 2.854391386 0.7912110543E-03 2.864576112 0.7745581042E-03 2.874760838 0.7574915390E-03 2.884945564 0.7400181739E-03 2.895130289 0.7221452202E-03 2.905315015 0.7038802791E-03 2.915499741 0.6852313348E-03 2.925684467 0.6662067480E-03 2.935869193 0.6468152477E-03 2.946053918 0.6270659240E-03 2.956238644 0.6069682194E-03 2.966423370 0.5865319202E-03 2.976608096 0.5657671472E-03 2.986792822 0.5446843468E-03 2.996977547 0.5232942803E-03 3.007162273 0.5016080146E-03 3.017346999 0.4796369109E-03 3.027531725 0.4573926141E-03 3.037716451 0.4348870416E-03 3.047901176 0.4121323717E-03 3.058085902 0.3891410316E-03 3.068270628 0.3659256853E-03 3.078455354 0.3424992213E-03 3.088640080 0.3188747398E-03 3.098824805 0.2950655398E-03 3.109009531 0.2710851058E-03 3.119194257 0.2469470943E-03 3.129378983 0.2226653205E-03 3.139563709 0.1982537444E-03 3.149748434 0.1737264566E-03 3.159933160 0.1490976643E-03 3.170117886 0.1243816772E-03 3.180302612 0.9959289295E-04 3.190487338 0.7474578252E-04 3.200672064 0.4985487587E-04 3.210856789 0.2493474715E-04 3.221041515 -0.3394132962E-10 3.221041515 -0.3394132962E-10 3.231254349 0.2795954070E-04 3.241467184 0.5589940460E-04 3.251680018 0.8379994864E-04 3.261892852 0.1116415972E-03 3.272105686 0.1394048755E-03 3.282318521 0.1670704431E-03 3.292531355 0.1946191269E-03 3.302744189 0.2220319537E-03 3.312957023 0.2492901828E-03 3.323169858 0.2763753375E-03 3.333382692 0.3032692364E-03 3.343595526 0.3299540244E-03 3.353808360 0.3564122022E-03 3.364021195 0.3826266559E-03 3.374234029 0.4085806852E-03 3.384446863 0.4342580308E-03 3.394659698 0.4596429013E-03 3.404872532 0.4847199987E-03 3.415085366 0.5094745426E-03 3.425298200 0.5338922937E-03 3.435511035 0.5579595760E-03 3.445723869 0.5816632978E-03 3.455936703 0.6049909708E-03 3.466149537 0.6279307287E-03 3.476362372 0.6504713437E-03 3.486575206 0.6726022415E-03 3.496788040 0.6943135155E-03 3.507000874 0.7155959382E-03 3.517213709 0.7364409719E-03 3.527426543 0.7568407771E-03 3.537639377 0.7767882198E-03 3.547852211 0.7962768758E-03 3.558065046 0.8153010344E-03 3.568277880 0.8338556996E-03 3.578490714 0.8519365893E-03 3.588703548 0.8695401325E-03 3.598916383 0.8866634648E-03 3.609129217 0.9033044218E-03 3.619342051 0.9194615301E-03 3.629554885 0.9351339963E-03 3.639767720 0.9503216946E-03 3.649980554 0.9650251511E-03 3.660193388 0.9792455273E-03 3.670406222 0.9929846003E-03 3.680619057 0.1006244742E-02 3.690831891 0.1019028895E-02 3.701044725 0.1031340550E-02 3.711257560 0.1043183713E-02 3.721470394 0.1054562881E-02 3.731683228 0.1065483012E-02 3.741896062 0.1075949485E-02 3.752108897 0.1085968074E-02 3.762321731 0.1095544906E-02 3.772534565 0.1104686425E-02 3.782747399 0.1113399356E-02 3.792960234 0.1121690661E-02 3.803173068 0.1129567499E-02 3.813385902 0.1137037185E-02 3.823598736 0.1144107146E-02 3.833811571 0.1150784878E-02 3.844024405 0.1157077904E-02 3.854237239 0.1162993726E-02 3.864450073 0.1168539785E-02 3.874662908 0.1173723417E-02 3.884875742 0.1178551808E-02 3.895088576 0.1183031954E-02 3.905301410 0.1187170619E-02 3.915514245 0.1190974296E-02 3.925727079 0.1194449164E-02 3.935939913 0.1197601059E-02 3.946152747 0.1200435434E-02 3.956365582 0.1202957325E-02 3.966578416 0.1205171326E-02 3.976791250 0.1207081557E-02 3.987004084 0.1208691641E-02 3.997216919 0.1210004682E-02 4.007429753 0.1211023246E-02 4.017642587 0.1211749343E-02 4.027855422 0.1212184421E-02 4.038068256 0.1212329350E-02 elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/PaxHeaders.21352/PHDLINES.OUT0000644000000000000000000000012713543334741025305 xustar0029 mtime=1569569249.42863888 29 atime=1569569249.42763888 29 ctime=1569569249.42863888 elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/PHDLINES.OUT0000644002504400250440000000062013543334741027346 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.9092470720E-03 0.000000000 0.1818494042E-02 0.9434212173 -0.9092470720E-03 0.9434212173 0.1818494042E-02 1.886842435 -0.9092470720E-03 1.886842435 0.1818494042E-02 3.221041515 -0.9092470720E-03 3.221041515 0.1818494042E-02 4.038068256 -0.9092470720E-03 4.038068256 0.1818494042E-02 elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741024605 xustar0030 mtime=1569569249.432638877 30 atime=1569569249.431638878 30 ctime=1569569249.432638877 elk-6.3.2/examples/phonons-superconductivity/Ni-supercell/elk.in0000644002504400250440000000202013543334741026646 0ustar00dewhurstdewhurst00000000000000 ! Ferromagnetic nickel phonon example. Note that 'task=200' can be run on as ! many computers as you like, but within the same network file system (NFS) ! directory. Once all the DYN_Qqqqq_qqqq_qqqq_Sss_Aaa_Pp.OUT files are ! generated, run 'task=220' to generate the phonon dispersion and compare to ! arXiv:cond-mat/0609352v1. A previously calculated dispersion has been included ! in this directory. tasks 200 rgkmax 8.2 lmaxapw 8 beta0 0.01 ! this variable determines the density of k-points for the phonon calculation radkpt 50.0 ngridq 4 4 4 epspot 5.e-7 nempty 8 spinpol .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt plot1d 5 400 0.0 0.0 0.0 0.5 0.5 0.0 0.5 0.0 -0.5 0.0 0.0 0.0 0.5 0.0 0.0 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/MgB2-DFPT0000644000000000000000000000013213543334741022345 xustar0030 mtime=1569569249.572638788 30 atime=1569569249.435638875 30 ctime=1569569249.572638788 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/0000755002504400250440000000000013543334741024471 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/ALPHA2F.OUT0000644000000000000000000000013213543334741024030 xustar0030 mtime=1569569249.439638873 30 atime=1569569249.436638875 30 ctime=1569569249.439638873 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/ALPHA2F.OUT0000644002504400250440000004410413543334741026102 0ustar00dewhurstdewhurst00000000000000 -0.4146949408E-03 0.000000000 -0.4055716522E-03 0.000000000 -0.3964483635E-03 0.000000000 -0.3873250748E-03 0.000000000 -0.3782017861E-03 0.7060295733E-05 -0.3690784974E-03 0.3561110381E-04 -0.3599552087E-03 0.6417078950E-04 -0.3508319200E-03 0.9972925321E-04 -0.3417086313E-03 0.1100743673E-03 -0.3325853426E-03 0.1365092142E-03 -0.3234620539E-03 0.1431960285E-03 -0.3143387652E-03 0.1410519769E-03 -0.3052154765E-03 0.1594449500E-03 -0.2960921878E-03 0.1818666244E-03 -0.2869688991E-03 0.2167108714E-03 -0.2778456104E-03 0.1977085804E-03 -0.2687223217E-03 0.1882796868E-03 -0.2595990330E-03 0.1635410514E-03 -0.2504757443E-03 0.1630268805E-03 -0.2413524556E-03 0.1752428656E-03 -0.2322291669E-03 0.2251333365E-03 -0.2231058782E-03 0.2335862144E-03 -0.2139825895E-03 0.2150904379E-03 -0.2048593008E-03 0.1915918297E-03 -0.1957360121E-03 0.2205750474E-03 -0.1866127234E-03 0.2407905904E-03 -0.1774894347E-03 0.2246329127E-03 -0.1683661460E-03 0.2032855089E-03 -0.1592428573E-03 0.1833765712E-03 -0.1501195686E-03 0.1864607827E-03 -0.1409962799E-03 0.1699878938E-03 -0.1318729912E-03 0.1675186956E-03 -0.1227497025E-03 0.1384001647E-03 -0.1136264138E-03 0.1329809789E-03 -0.1045031251E-03 0.1365549215E-03 -0.9537983640E-04 0.1472038050E-03 -0.8625654770E-04 0.1413793701E-03 -0.7713325900E-04 0.1157751984E-03 -0.6800997030E-04 0.1143801262E-03 -0.5888668160E-04 0.9650278758E-04 -0.4976339290E-04 0.8376924751E-04 -0.4064010420E-04 0.5385874636E-04 -0.3151681550E-04 0.4382728590E-04 -0.2239352681E-04 0.3549365371E-04 -0.1327023811E-04 0.3072164102E-04 -0.4146949408E-05 0.1994402483E-04 0.4976339290E-05 0.1159881232E-04 0.1409962799E-04 0.1776908483E-04 0.2322291669E-04 0.3195766880E-04 0.3234620539E-04 0.7113177584E-04 0.4146949408E-04 0.7551357497E-04 0.5059278278E-04 0.9940985382E-04 0.5971607148E-04 0.9900794116E-04 0.6883936018E-04 0.1201567335E-03 0.7796264888E-04 0.1322784699E-03 0.8708593758E-04 0.1355663767E-03 0.9620922628E-04 0.1652296620E-03 0.1053325150E-03 0.1986935219E-03 0.1144558037E-03 0.2457898481E-03 0.1235790924E-03 0.2596522497E-03 0.1327023811E-03 0.2695527014E-03 0.1418256698E-03 0.2393523662E-03 0.1509489585E-03 0.2738768233E-03 0.1600722472E-03 0.3264718820E-03 0.1691955359E-03 0.3748500666E-03 0.1783188246E-03 0.3858901617E-03 0.1874421133E-03 0.3600261992E-03 0.1965654020E-03 0.4286062611E-03 0.2056886907E-03 0.5119832669E-03 0.2148119794E-03 0.5907814476E-03 0.2239352681E-03 0.6556097928E-03 0.2330585568E-03 0.6435099023E-03 0.2421818455E-03 0.7379263332E-03 0.2513051342E-03 0.7609926821E-03 0.2604284229E-03 0.8445345562E-03 0.2695517116E-03 0.8611203083E-03 0.2786750003E-03 0.9483364492E-03 0.2877982889E-03 0.1009740197E-02 0.2969215776E-03 0.1082168363E-02 0.3060448663E-03 0.1168864994E-02 0.3151681550E-03 0.1364866174E-02 0.3242914437E-03 0.1484872943E-02 0.3334147324E-03 0.1675443634E-02 0.3425380211E-03 0.1769316360E-02 0.3516613098E-03 0.1904038147E-02 0.3607845985E-03 0.1978312668E-02 0.3699078872E-03 0.2080773664E-02 0.3790311759E-03 0.2190800758E-02 0.3881544646E-03 0.2378606735E-02 0.3972777533E-03 0.2540697124E-02 0.4064010420E-03 0.2790871290E-02 0.4155243307E-03 0.2944674458E-02 0.4246476194E-03 0.3215136015E-02 0.4337709081E-03 0.3514989439E-02 0.4428941968E-03 0.3781195979E-02 0.4520174855E-03 0.3990863743E-02 0.4611407742E-03 0.4180260164E-02 0.4702640629E-03 0.4404702744E-02 0.4793873516E-03 0.4665727215E-02 0.4885106403E-03 0.4855327094E-02 0.4976339290E-03 0.5253265576E-02 0.5067572177E-03 0.5617301427E-02 0.5158805064E-03 0.6092427460E-02 0.5250037951E-03 0.6424090676E-02 0.5341270838E-03 0.6658060098E-02 0.5432503725E-03 0.7034624293E-02 0.5523736612E-03 0.7219902605E-02 0.5614969499E-03 0.7699827861E-02 0.5706202386E-03 0.7906119451E-02 0.5797435273E-03 0.8549540251E-02 0.5888668160E-03 0.9062331745E-02 0.5979901047E-03 0.9595143732E-02 0.6071133934E-03 0.1000269635E-01 0.6162366821E-03 0.1019561665E-01 0.6253599708E-03 0.1058305947E-01 0.6344832595E-03 0.1086409983E-01 0.6436065482E-03 0.1163835864E-01 0.6527298369E-03 0.1226033541E-01 0.6618531256E-03 0.1299941494E-01 0.6709764143E-03 0.1343597678E-01 0.6800997030E-03 0.1381206203E-01 0.6892229917E-03 0.1407260651E-01 0.6983462804E-03 0.1449838217E-01 0.7074695691E-03 0.1534345756E-01 0.7165928578E-03 0.1618691855E-01 0.7257161465E-03 0.1684013887E-01 0.7348394352E-03 0.1746211021E-01 0.7439627239E-03 0.1793970577E-01 0.7530860126E-03 0.1839881145E-01 0.7622093013E-03 0.1901010557E-01 0.7713325900E-03 0.2007319171E-01 0.7804558787E-03 0.2134214359E-01 0.7895791674E-03 0.2249178851E-01 0.7987024561E-03 0.2333937915E-01 0.8078257448E-03 0.2383382541E-01 0.8169490335E-03 0.2487971858E-01 0.8260723222E-03 0.2636058070E-01 0.8351956109E-03 0.2810041556E-01 0.8443188996E-03 0.2899272906E-01 0.8534421883E-03 0.2954106807E-01 0.8625654770E-03 0.3080103005E-01 0.8716887657E-03 0.3242226419E-01 0.8808120544E-03 0.3437463622E-01 0.8899353431E-03 0.3600836472E-01 0.8990586318E-03 0.3706263389E-01 0.9081819205E-03 0.3839587293E-01 0.9173052092E-03 0.3928729407E-01 0.9264284979E-03 0.4120001066E-01 0.9355517866E-03 0.4208605358E-01 0.9446750753E-03 0.4280121125E-01 0.9537983640E-03 0.4376869419E-01 0.9629216527E-03 0.4572905876E-01 0.9720449414E-03 0.4779664359E-01 0.9811682300E-03 0.4932578658E-01 0.9902915187E-03 0.5098569489E-01 0.9994148074E-03 0.5286260728E-01 0.1008538096E-02 0.5355246874E-01 0.1017661385E-02 0.5534933626E-01 0.1026784674E-02 0.5763244016E-01 0.1035907962E-02 0.6012735386E-01 0.1045031251E-02 0.6230062326E-01 0.1054154540E-02 0.6349787094E-01 0.1063277828E-02 0.6586261853E-01 0.1072401117E-02 0.6740046973E-01 0.1081524406E-02 0.6919688284E-01 0.1090647694E-02 0.7197481921E-01 0.1099770983E-02 0.7361276846E-01 0.1108894272E-02 0.7696382886E-01 0.1118017561E-02 0.7871521751E-01 0.1127140849E-02 0.8225562040E-01 0.1136264138E-02 0.8500320742E-01 0.1145387427E-02 0.8893222195E-01 0.1154510715E-02 0.9074677637E-01 0.1163634004E-02 0.9349650202E-01 0.1172757293E-02 0.9412753373E-01 0.1181880581E-02 0.9685248248E-01 0.1191003870E-02 0.9770181239E-01 0.1200127159E-02 0.1001240710 0.1209250448E-02 0.1014180154 0.1218373736E-02 0.1024511938 0.1227497025E-02 0.1033756884 0.1236620314E-02 0.1043734816 0.1245743602E-02 0.1071774284 0.1254866891E-02 0.1101217112 0.1263990180E-02 0.1127619780 0.1273113468E-02 0.1167558490 0.1282236757E-02 0.1216384497 0.1291360046E-02 0.1309471752 0.1300483335E-02 0.1461177141 0.1309606623E-02 0.1664615509 0.1318729912E-02 0.1807633526 0.1327853201E-02 0.1790500329 0.1336976489E-02 0.1689847521 0.1346099778E-02 0.1685532093 0.1355223067E-02 0.1686165912 0.1364346355E-02 0.1565994181 0.1373469644E-02 0.1393991994 0.1382592933E-02 0.1425172024 0.1391716221E-02 0.1873885330 0.1400839510E-02 0.2439713343 0.1409962799E-02 0.2732880347 0.1419086088E-02 0.2561662514 0.1428209376E-02 0.2170762605 0.1437332665E-02 0.1902520419 0.1446455954E-02 0.1858520219 0.1455579242E-02 0.1975162093 0.1464702531E-02 0.2201565569 0.1473825820E-02 0.2591716238 0.1482949108E-02 0.2943843607 0.1492072397E-02 0.3138826635 0.1501195686E-02 0.3112678282 0.1510318975E-02 0.2994040412 0.1519442263E-02 0.2896274842 0.1528565552E-02 0.2785388763 0.1537688841E-02 0.2639327255 0.1546812129E-02 0.2451905202 0.1555935418E-02 0.2259613017 0.1565058707E-02 0.2074102199 0.1574181995E-02 0.1936141183 0.1583305284E-02 0.1809656771 0.1592428573E-02 0.1728520044 0.1601551862E-02 0.1771931757 0.1610675150E-02 0.1952540612 0.1619798439E-02 0.2180508986 0.1628921728E-02 0.2324922948 0.1638045016E-02 0.2345282342 0.1647168305E-02 0.2357681506 0.1656291594E-02 0.2360515921 0.1665414882E-02 0.2371862563 0.1674538171E-02 0.2388870238 0.1683661460E-02 0.2413718596 0.1692784749E-02 0.2499539076 0.1701908037E-02 0.2533449182 0.1711031326E-02 0.2531161421 0.1720154615E-02 0.2501017011 0.1729277903E-02 0.2569005481 0.1738401192E-02 0.2622087132 0.1747524481E-02 0.2721933576 0.1756647769E-02 0.2814443423 0.1765771058E-02 0.2912049165 0.1774894347E-02 0.3022473431 0.1784017636E-02 0.3171423616 0.1793140924E-02 0.3416589770 0.1802264213E-02 0.3509402967 0.1811387502E-02 0.3507767510 0.1820510790E-02 0.3536230635 0.1829634079E-02 0.3578074668 0.1838757368E-02 0.3707211535 0.1847880656E-02 0.3767493599 0.1857003945E-02 0.3865154231 0.1866127234E-02 0.3913235911 0.1875250523E-02 0.3910413339 0.1884373811E-02 0.3897829282 0.1893497100E-02 0.3858286089 0.1902620389E-02 0.3832881819 0.1911743677E-02 0.3817935350 0.1920866966E-02 0.3759909606 0.1929990255E-02 0.3759789972 0.1939113543E-02 0.3673280913 0.1948236832E-02 0.3612683429 0.1957360121E-02 0.3489114608 0.1966483410E-02 0.3482002439 0.1975606698E-02 0.3418979178 0.1984729987E-02 0.3391030962 0.1993853276E-02 0.3273631408 0.2002976564E-02 0.3262728754 0.2012099853E-02 0.3230550850 0.2021223142E-02 0.3161153471 0.2030346430E-02 0.3054466670 0.2039469719E-02 0.3000344536 0.2048593008E-02 0.2994686558 0.2057716296E-02 0.2958233095 0.2066839585E-02 0.2903630574 0.2075962874E-02 0.2853704110 0.2085086163E-02 0.2819975519 0.2094209451E-02 0.2811945470 0.2103332740E-02 0.2800147719 0.2112456029E-02 0.2887893560 0.2121579317E-02 0.3040202061 0.2130702606E-02 0.3332632388 0.2139825895E-02 0.3590479309 0.2148949183E-02 0.3628857083 0.2158072472E-02 0.3399819116 0.2167195761E-02 0.3173330728 0.2176319050E-02 0.2934815595 0.2185442338E-02 0.2810041989 0.2194565627E-02 0.2657713554 0.2203688916E-02 0.2499328158 0.2212812204E-02 0.2434059074 0.2221935493E-02 0.2387050469 0.2231058782E-02 0.2411747311 0.2240182070E-02 0.2479352167 0.2249305359E-02 0.2538439960 0.2258428648E-02 0.2607654924 0.2267551937E-02 0.2683286656 0.2276675225E-02 0.2733122251 0.2285798514E-02 0.2851225930 0.2294921803E-02 0.2952646134 0.2304045091E-02 0.3012639788 0.2313168380E-02 0.3093381103 0.2322291669E-02 0.3084593361 0.2331414957E-02 0.3160214549 0.2340538246E-02 0.3161254019 0.2349661535E-02 0.3197646154 0.2358784824E-02 0.3209206128 0.2367908112E-02 0.3259075060 0.2377031401E-02 0.3330001169 0.2386154690E-02 0.3324921156 0.2395277978E-02 0.3357122748 0.2404401267E-02 0.3422547595 0.2413524556E-02 0.3582238544 0.2422647844E-02 0.3633068058 0.2431771133E-02 0.3560236168 0.2440894422E-02 0.3352908906 0.2450017711E-02 0.3104626806 0.2459140999E-02 0.2950895503 0.2468264288E-02 0.2787045756 0.2477387577E-02 0.2686737264 0.2486510865E-02 0.2542536171 0.2495634154E-02 0.2426585265 0.2504757443E-02 0.2358210669 0.2513880731E-02 0.2272309645 0.2523004020E-02 0.2235747561 0.2532127309E-02 0.2114051959 0.2541250598E-02 0.1999487426 0.2550373886E-02 0.1951860812 0.2559497175E-02 0.1916250663 0.2568620464E-02 0.1945256643 0.2577743752E-02 0.1792297626 0.2586867041E-02 0.1773648193 0.2595990330E-02 0.1646245970 0.2605113618E-02 0.1713002268 0.2614236907E-02 0.1614748520 0.2623360196E-02 0.1600031571 0.2632483485E-02 0.1473474305 0.2641606773E-02 0.1512589458 0.2650730062E-02 0.1796771493 0.2659853351E-02 0.2144744669 0.2668976639E-02 0.2507634295 0.2678099928E-02 0.2650520790 0.2687223217E-02 0.2897451385 0.2696346505E-02 0.3115240024 0.2705469794E-02 0.3287122883 0.2714593083E-02 0.3438730592 0.2723716371E-02 0.3557458795 0.2732839660E-02 0.3875386709 0.2741962949E-02 0.4425657908 0.2751086238E-02 0.5141714383 0.2760209526E-02 0.5795034051 0.2769332815E-02 0.6445425149 0.2778456104E-02 0.7069513399 0.2787579392E-02 0.7950626329 0.2796702681E-02 0.8979412448 0.2805825970E-02 0.9809422116 0.2814949258E-02 1.030771986 0.2824072547E-02 1.023910284 0.2833195836E-02 1.020301863 0.2842319125E-02 1.011043855 0.2851442413E-02 1.010291397 0.2860565702E-02 1.014432895 0.2869688991E-02 0.9873274875 0.2878812279E-02 0.9879297933 0.2887935568E-02 0.9733608152 0.2897058857E-02 0.9686442055 0.2906182145E-02 0.9347056869 0.2915305434E-02 0.9301351098 0.2924428723E-02 0.9116659896 0.2933552012E-02 0.8871854023 0.2942675300E-02 0.8647887906 0.2951798589E-02 0.8516750782 0.2960921878E-02 0.8438738713 0.2970045166E-02 0.8033991181 0.2979168455E-02 0.7919974172 0.2988291744E-02 0.7693969736 0.2997415032E-02 0.7386356487 0.3006538321E-02 0.6856870914 0.3015661610E-02 0.6410720991 0.3024784899E-02 0.6073065971 0.3033908187E-02 0.5854578783 0.3043031476E-02 0.5588980700 0.3052154765E-02 0.5302205380 0.3061278053E-02 0.5117847164 0.3070401342E-02 0.4803588008 0.3079524631E-02 0.4655123740 0.3088647919E-02 0.4298229907 0.3097771208E-02 0.4331659634 0.3106894497E-02 0.4039686508 0.3116017786E-02 0.4051005950 0.3125141074E-02 0.3753070185 0.3134264363E-02 0.3722814090 0.3143387652E-02 0.3609964524 0.3152510940E-02 0.3611282012 0.3161634229E-02 0.3535765386 0.3170757518E-02 0.3338646218 0.3179880806E-02 0.3148368351 0.3189004095E-02 0.2942960966 0.3198127384E-02 0.2810099936 0.3207250673E-02 0.2664910479 0.3216373961E-02 0.2637409388 0.3225497250E-02 0.2575735347 0.3234620539E-02 0.2533268337 0.3243743827E-02 0.2479757214 0.3252867116E-02 0.2506620634 0.3261990405E-02 0.2526164537 0.3271113693E-02 0.2534723935 0.3280236982E-02 0.2500426306 0.3289360271E-02 0.2470975801 0.3298483560E-02 0.2419790098 0.3307606848E-02 0.2416086251 0.3316730137E-02 0.2388507586 0.3325853426E-02 0.2395869130 0.3334976714E-02 0.2323399745 0.3344100003E-02 0.2297672011 0.3353223292E-02 0.2226733771 0.3362346580E-02 0.2198927879 0.3371469869E-02 0.2116851747 0.3380593158E-02 0.2055806365 0.3389716447E-02 0.1948602459 0.3398839735E-02 0.1908988048 0.3407963024E-02 0.1851663531 0.3417086313E-02 0.1823440819 0.3426209601E-02 0.1786887379 0.3435332890E-02 0.1774115557 0.3444456179E-02 0.1745873411 0.3453579467E-02 0.1730332907 0.3462702756E-02 0.1705453545 0.3471826045E-02 0.1717405472 0.3480949333E-02 0.1715059216 0.3490072622E-02 0.1749061427 0.3499195911E-02 0.1731773946 0.3508319200E-02 0.1698267652 0.3517442488E-02 0.1619112873 0.3526565777E-02 0.1572107379 0.3535689066E-02 0.1521480547 0.3544812354E-02 0.1482635324 0.3553935643E-02 0.1440336238 0.3563058932E-02 0.1366832021 0.3572182220E-02 0.1256263027 0.3581305509E-02 0.1110548939 0.3590428798E-02 0.9660716608E-01 0.3599552087E-02 0.8307975284E-01 0.3608675375E-02 0.6665228245E-01 0.3617798664E-02 0.5141548943E-01 0.3626921953E-02 0.3784625979E-01 0.3636045241E-02 0.3111226278E-01 0.3645168530E-02 0.2702181172E-01 0.3654291819E-02 0.2476764021E-01 0.3663415107E-02 0.2232836457E-01 0.3672538396E-02 0.2002333499E-01 0.3681661685E-02 0.1758648623E-01 0.3690784974E-02 0.1546779628E-01 0.3699908262E-02 0.1374908376E-01 0.3709031551E-02 0.1224350433E-01 0.3718154840E-02 0.1129412170E-01 0.3727278128E-02 0.1047698716E-01 0.3736401417E-02 0.9709750383E-02 0.3745524706E-02 0.9220106380E-02 0.3754647994E-02 0.8475239978E-02 0.3763771283E-02 0.8083262571E-02 0.3772894572E-02 0.7485656106E-02 0.3782017861E-02 0.6966268304E-02 0.3791141149E-02 0.6514984231E-02 0.3800264438E-02 0.6073126968E-02 0.3809387727E-02 0.5705356347E-02 0.3818511015E-02 0.5371075660E-02 0.3827634304E-02 0.4941970565E-02 0.3836757593E-02 0.4695581581E-02 0.3845880881E-02 0.4459457983E-02 0.3855004170E-02 0.4124747788E-02 0.3864127459E-02 0.3947564545E-02 0.3873250748E-02 0.3621481770E-02 0.3882374036E-02 0.3474773004E-02 0.3891497325E-02 0.3203186001E-02 0.3900620614E-02 0.2932512508E-02 0.3909743902E-02 0.2688358038E-02 0.3918867191E-02 0.2448098631E-02 0.3927990480E-02 0.2270369138E-02 0.3937113768E-02 0.2132188814E-02 0.3946237057E-02 0.2010125838E-02 0.3955360346E-02 0.1835644548E-02 0.3964483635E-02 0.1651897324E-02 0.3973606923E-02 0.1383488282E-02 0.3982730212E-02 0.1129547588E-02 0.3991853501E-02 0.8606029585E-03 0.4000976789E-02 0.6469853584E-03 0.4010100078E-02 0.4612794374E-03 0.4019223367E-02 0.2615786762E-03 0.4028346655E-02 0.1128616003E-03 0.4037469944E-02 0.2003427351E-04 0.4046593233E-02 0.000000000 0.4055716522E-02 0.000000000 0.4064839810E-02 0.000000000 0.4073963099E-02 0.000000000 0.4083086388E-02 0.000000000 0.4092209676E-02 0.000000000 0.4101332965E-02 0.000000000 0.4110456254E-02 0.000000000 0.4119579542E-02 0.000000000 0.4128702831E-02 0.000000000 0.4137826120E-02 0.000000000 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/MCMILLAN.OUT0000644000000000000000000000013213543334741024207 xustar0030 mtime=1569569249.442638871 30 atime=1569569249.442638871 30 ctime=1569569249.442638871 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/MCMILLAN.OUT0000644002504400250440000000053213543334741026256 0ustar00dewhurstdewhurst00000000000000 Electron-phonon coupling constant, lambda : 0.7436375416 Logarithmic average frequency : 0.2094401639E-02 RMS average frequency : 0.2349850344E-02 Coulomb pseudopotential, mu* : 0.1500000000 McMillan-Allen-Dynes superconducting critical temperature [Eq. 34, Phys. Rev. B 12, 905 (1975)] (kelvin) : 17.91506869 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/MgB2.agr0000644000000000000000000000013213543334741023644 xustar0030 mtime=1569569249.467638855 30 atime=1569569249.446638868 30 ctime=1569569249.467638855 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/MgB2.agr0000644002504400250440000072234313543334741025726 0ustar00dewhurstdewhurst00000000000000# Grace project file # @version 50123 @page size 792, 612 @page scroll 5% @page inout 5% @link page off @map font 8 to "Courier", "Courier" @map font 10 to "Courier-Bold", "Courier-Bold" @map font 11 to "Courier-BoldOblique", "Courier-BoldOblique" @map font 9 to "Courier-Oblique", "Courier-Oblique" @map font 4 to "Helvetica", "Helvetica" @map font 6 to "Helvetica-Bold", "Helvetica-Bold" @map font 7 to "Helvetica-BoldOblique", "Helvetica-BoldOblique" @map font 5 to "Helvetica-Oblique", "Helvetica-Oblique" @map font 14 to "NimbusMonoL-BoldOblique", "NimbusMonoL-BoldOblique" @map font 15 to "NimbusMonoL-Regular", "NimbusMonoL-Regular" @map font 16 to "NimbusMonoL-RegularOblique", "NimbusMonoL-RegularOblique" @map font 17 to "NimbusRomanNo9L-Medium", "NimbusRomanNo9L-Medium" @map font 18 to "NimbusRomanNo9L-MediumItalic", "NimbusRomanNo9L-MediumItalic" @map font 19 to "NimbusRomanNo9L-Regular", "NimbusRomanNo9L-Regular" @map font 20 to "NimbusRomanNo9L-RegularItalic", "NimbusRomanNo9L-RegularItalic" @map font 21 to "NimbusSansL-Bold", "NimbusSansL-Bold" @map font 22 to "NimbusSansL-BoldCondensed", "NimbusSansL-BoldCondensed" @map font 23 to "NimbusSansL-BoldCondensedItalic", "NimbusSansL-BoldCondensedItalic" @map font 24 to "NimbusSansL-BoldItalic", "NimbusSansL-BoldItalic" @map font 25 to "NimbusSansL-Regular", "NimbusSansL-Regular" @map font 26 to "NimbusSansL-RegularCondensed", "NimbusSansL-RegularCondensed" @map font 27 to "NimbusSansL-RegularCondensedItalic", "NimbusSansL-RegularCondensedItalic" @map font 28 to "NimbusSansL-RegularItalic", "NimbusSansL-RegularItalic" @map font 29 to "StandardSymbolsL-Regular", "StandardSymbolsL-Regular" @map font 12 to "Symbol", "Symbol" @map font 31 to "Symbol-Regular", "Symbol-Regular" @map font 2 to "Times-Bold", "Times-Bold" @map font 3 to "Times-BoldItalic", "Times-BoldItalic" @map font 1 to "Times-Italic", "Times-Italic" @map font 0 to "Times-Roman", "Times-Roman" @map font 36 to "URWBookmanL-DemiBold", "URWBookmanL-DemiBold" @map font 37 to "URWBookmanL-DemiBoldItalic", "URWBookmanL-DemiBoldItalic" @map font 38 to "URWBookmanL-Light", "URWBookmanL-Light" @map font 39 to "URWBookmanL-LightItalic", "URWBookmanL-LightItalic" @map font 40 to "URWChanceryL-MediumItalic", "URWChanceryL-MediumItalic" @map font 41 to "URWGothicL-Book", "URWGothicL-Book" @map font 42 to "URWGothicL-BookOblique", "URWGothicL-BookOblique" @map font 43 to "URWGothicL-Demi", "URWGothicL-Demi" @map font 44 to "URWGothicL-DemiOblique", "URWGothicL-DemiOblique" @map font 45 to "URWPalladioL-Bold", "URWPalladioL-Bold" @map font 46 to "URWPalladioL-BoldItalic", "URWPalladioL-BoldItalic" @map font 47 to "URWPalladioL-Italic", "URWPalladioL-Italic" @map font 48 to "URWPalladioL-Roman", "URWPalladioL-Roman" @map font 13 to "ZapfDingbats", "ZapfDingbats" @map color 0 to (255, 255, 255), "white" @map color 1 to (0, 0, 0), "black" @map color 2 to (255, 0, 0), "red" @map color 3 to (0, 255, 0), "green" @map color 4 to (0, 0, 255), "blue" @map color 5 to (255, 255, 0), "yellow" @map color 6 to (188, 143, 143), "brown" @map color 7 to (220, 220, 220), "grey" @map color 8 to (148, 0, 211), "violet" @map color 9 to (0, 255, 255), "cyan" @map color 10 to (255, 0, 255), "magenta" @map color 11 to (255, 165, 0), "orange" @map color 12 to (114, 33, 188), "indigo" @map color 13 to (103, 7, 72), "maroon" @map color 14 to (64, 224, 208), "turquoise" @map color 15 to (0, 139, 0), "green4" @reference date 0 @date wrap off @date wrap year 1950 @default linewidth 1.0 @default linestyle 1 @default color 1 @default pattern 1 @default font 0 @default char size 1.000000 @default symbol size 1.000000 @default sformat "%.8g" @background color 0 @page background fill on @timestamp off @timestamp 0.03, 0.03 @timestamp color 1 @timestamp rot 0 @timestamp font 0 @timestamp char size 1.000000 @timestamp def "Fri Feb 12 10:00:36 2016" @with string @ string on @ string loctype view @ string 0.137254901961, 0.110294117647 @ string color 1 @ string rot 0 @ string font 0 @ string just 0 @ string char size 1.000000 @ string def "\xG" @with string @ string on @ string loctype view @ string 0.938725490196, 0.112745098039 @ string color 1 @ string rot 0 @ string font 0 @ string just 0 @ string char size 1.000000 @ string def "\xG" @with string @ string on @ string loctype view @ string 0.40318627451, 0.110294117647 @ string color 1 @ string rot 0 @ string font 0 @ string just 0 @ string char size 1.000000 @ string def "M" @with string @ string on @ string loctype view @ string 0.610294117647, 0.113970588235 @ string color 1 @ string rot 0 @ string font 0 @ string just 0 @ string char size 1.000000 @ string def "L" @with string @ string on @ string loctype view @ string 1.14338235294, 0.113970588235 @ string color 1 @ string rot 0 @ string font 0 @ string just 0 @ string char size 1.000000 @ string def "H" @r0 off @link r0 to g0 @r0 type above @r0 linestyle 1 @r0 linewidth 1.0 @r0 color 1 @r0 line 0, 0, 0, 0 @r1 off @link r1 to g0 @r1 type above @r1 linestyle 1 @r1 linewidth 1.0 @r1 color 1 @r1 line 0, 0, 0, 0 @r2 off @link r2 to g0 @r2 type above @r2 linestyle 1 @r2 linewidth 1.0 @r2 color 1 @r2 line 0, 0, 0, 0 @r3 off @link r3 to g0 @r3 type above @r3 linestyle 1 @r3 linewidth 1.0 @r3 color 1 @r3 line 0, 0, 0, 0 @r4 off @link r4 to g0 @r4 type above @r4 linestyle 1 @r4 linewidth 1.0 @r4 color 1 @r4 line 0, 0, 0, 0 @g0 on @g0 hidden false @g0 type XY @g0 stacked false @g0 bar hgap 0.000000 @g0 fixedpoint off @g0 fixedpoint type 0 @g0 fixedpoint xy 0.000000, 0.000000 @g0 fixedpoint format general general @g0 fixedpoint prec 6, 6 @with g0 @ world 0, -0, 2.35, 0.0045 @ stack world 0, 0, 0, 0 @ znorm 1 @ view 0.150000, 0.150000, 1.150000, 0.850000 @ title "" @ title font 0 @ title size 1.500000 @ title color 1 @ subtitle "MgB2 phonon dispersion" @ subtitle font 0 @ subtitle size 1.000000 @ subtitle color 1 @ xaxes scale Normal @ yaxes scale Normal @ xaxes invert off @ yaxes invert off @ xaxis on @ xaxis type zero false @ xaxis offset 0.000000 , 0.000000 @ xaxis bar on @ xaxis bar color 1 @ xaxis bar linestyle 1 @ xaxis bar linewidth 1.0 @ xaxis label "" @ xaxis label layout para @ xaxis label place auto @ xaxis label char size 1.000000 @ xaxis label font 0 @ xaxis label color 1 @ xaxis label place normal @ xaxis tick off @ xaxis tick major 0.5 @ xaxis tick minor ticks 1 @ xaxis tick default 6 @ xaxis tick place rounded true @ xaxis tick in @ xaxis tick major size 1.000000 @ xaxis tick major color 1 @ xaxis tick major linewidth 1.0 @ xaxis tick major linestyle 1 @ xaxis tick major grid off @ xaxis tick minor color 1 @ xaxis tick minor linewidth 1.0 @ xaxis tick minor linestyle 1 @ xaxis tick minor grid off @ xaxis tick minor size 0.500000 @ xaxis ticklabel off @ xaxis ticklabel format general @ xaxis ticklabel prec 5 @ xaxis ticklabel formula "" @ xaxis ticklabel append "" @ xaxis ticklabel prepend "" @ xaxis ticklabel angle 0 @ xaxis ticklabel skip 0 @ xaxis ticklabel stagger 0 @ xaxis ticklabel place normal @ xaxis ticklabel offset auto @ xaxis ticklabel offset 0.000000 , 0.010000 @ xaxis ticklabel start type auto @ xaxis ticklabel start 0.000000 @ xaxis ticklabel stop type auto @ xaxis ticklabel stop 0.000000 @ xaxis ticklabel char size 1.000000 @ xaxis ticklabel font 0 @ xaxis ticklabel color 1 @ xaxis tick place both @ xaxis tick spec type none @ yaxis on @ yaxis type zero false @ yaxis offset 0.000000 , 0.000000 @ yaxis bar on @ yaxis bar color 1 @ yaxis bar linestyle 1 @ yaxis bar linewidth 1.0 @ yaxis label "Energy (Ha)" @ yaxis label layout para @ yaxis label place auto @ yaxis label char size 1.000000 @ yaxis label font 0 @ yaxis label color 1 @ yaxis label place normal @ yaxis tick on @ yaxis tick major 0.001 @ yaxis tick minor ticks 1 @ yaxis tick default 6 @ yaxis tick place rounded true @ yaxis tick in @ yaxis tick major size 1.000000 @ yaxis tick major color 1 @ yaxis tick major linewidth 1.0 @ yaxis tick major linestyle 1 @ yaxis tick major grid off @ yaxis tick minor color 1 @ yaxis tick minor linewidth 1.0 @ yaxis tick minor linestyle 1 @ yaxis tick minor grid off @ yaxis tick minor size 0.500000 @ yaxis ticklabel on @ yaxis ticklabel format general @ yaxis ticklabel prec 5 @ yaxis ticklabel formula "" @ yaxis ticklabel append "" @ yaxis ticklabel prepend "" @ yaxis ticklabel angle 0 @ yaxis ticklabel skip 0 @ yaxis ticklabel stagger 0 @ yaxis ticklabel place normal @ yaxis ticklabel offset auto @ yaxis ticklabel offset 0.000000 , 0.010000 @ yaxis ticklabel start type auto @ yaxis ticklabel start 0.000000 @ yaxis ticklabel stop type auto @ yaxis ticklabel stop 0.000000 @ yaxis ticklabel char size 1.000000 @ yaxis ticklabel font 0 @ yaxis ticklabel color 1 @ yaxis tick place both @ yaxis tick spec type none @ altxaxis off @ altyaxis off @ legend on @ legend loctype view @ legend 0.85, 0.8 @ legend box color 1 @ legend box pattern 1 @ legend box linewidth 1.0 @ legend box linestyle 1 @ legend box fill color 0 @ legend box fill pattern 1 @ legend font 0 @ legend char size 1.000000 @ legend color 1 @ legend length 4 @ legend vgap 1 @ legend hgap 1 @ legend invert false @ frame type 0 @ frame linestyle 1 @ frame linewidth 1.0 @ frame color 1 @ frame pattern 1 @ frame background color 0 @ frame background pattern 0 @ s0 hidden false @ s0 type xy @ s0 symbol 0 @ s0 symbol size 1.000000 @ s0 symbol color 1 @ s0 symbol pattern 1 @ s0 symbol fill color 1 @ s0 symbol fill pattern 0 @ s0 symbol linewidth 1.0 @ s0 symbol linestyle 1 @ s0 symbol char 65 @ s0 symbol char font 0 @ s0 symbol skip 0 @ s0 line type 1 @ s0 line linestyle 1 @ s0 line linewidth 1.5 @ s0 line color 1 @ s0 line pattern 1 @ s0 baseline type 0 @ s0 baseline off @ s0 dropline off @ s0 fill type 0 @ s0 fill rule 0 @ s0 fill color 1 @ s0 fill pattern 1 @ s0 avalue off @ s0 avalue type 2 @ s0 avalue char size 1.000000 @ s0 avalue font 0 @ s0 avalue color 1 @ s0 avalue rot 0 @ s0 avalue format general @ s0 avalue prec 3 @ s0 avalue prepend "" @ s0 avalue append "" @ s0 avalue offset 0.000000 , 0.000000 @ s0 errorbar on @ s0 errorbar place both @ s0 errorbar color 1 @ s0 errorbar pattern 1 @ s0 errorbar size 1.000000 @ s0 errorbar linewidth 1.0 @ s0 errorbar linestyle 1 @ s0 errorbar riser linewidth 1.0 @ s0 errorbar riser linestyle 1 @ s0 errorbar riser clip off @ s0 errorbar riser clip length 0.100000 @ s0 comment "PHDISP.OUT" @ s0 legend "" @ s1 hidden false @ s1 type xy @ s1 symbol 0 @ s1 symbol size 1.000000 @ s1 symbol color 1 @ s1 symbol pattern 1 @ s1 symbol fill color 1 @ s1 symbol fill pattern 0 @ s1 symbol linewidth 1.0 @ s1 symbol linestyle 1 @ s1 symbol char 65 @ s1 symbol char font 0 @ s1 symbol skip 0 @ s1 line type 1 @ s1 line linestyle 1 @ s1 line linewidth 1.5 @ s1 line color 1 @ s1 line pattern 1 @ s1 baseline type 0 @ s1 baseline off @ s1 dropline off @ s1 fill type 0 @ s1 fill rule 0 @ s1 fill color 1 @ s1 fill pattern 1 @ s1 avalue off @ s1 avalue type 2 @ s1 avalue char size 1.000000 @ s1 avalue font 0 @ s1 avalue color 1 @ s1 avalue rot 0 @ s1 avalue format general @ s1 avalue prec 3 @ s1 avalue prepend "" @ s1 avalue append "" @ s1 avalue offset 0.000000 , 0.000000 @ s1 errorbar on @ s1 errorbar place both @ s1 errorbar color 1 @ s1 errorbar pattern 1 @ s1 errorbar size 1.000000 @ s1 errorbar linewidth 1.0 @ s1 errorbar linestyle 1 @ s1 errorbar riser linewidth 1.0 @ s1 errorbar riser linestyle 1 @ s1 errorbar riser clip off @ s1 errorbar riser clip length 0.100000 @ s1 comment "PHDISP.OUT" @ s1 legend "" @ s2 hidden false @ s2 type xy @ s2 symbol 0 @ s2 symbol size 1.000000 @ s2 symbol color 1 @ s2 symbol pattern 1 @ s2 symbol fill color 1 @ s2 symbol fill pattern 0 @ s2 symbol linewidth 1.0 @ s2 symbol linestyle 1 @ s2 symbol char 65 @ s2 symbol char font 0 @ s2 symbol skip 0 @ s2 line type 1 @ s2 line linestyle 1 @ s2 line linewidth 1.5 @ s2 line color 1 @ s2 line pattern 1 @ s2 baseline type 0 @ s2 baseline off @ s2 dropline off @ s2 fill type 0 @ s2 fill rule 0 @ s2 fill color 1 @ s2 fill pattern 1 @ s2 avalue off @ s2 avalue type 2 @ s2 avalue char size 1.000000 @ s2 avalue font 0 @ s2 avalue color 1 @ s2 avalue rot 0 @ s2 avalue format general @ s2 avalue prec 3 @ s2 avalue prepend "" @ s2 avalue append "" @ s2 avalue offset 0.000000 , 0.000000 @ s2 errorbar on @ s2 errorbar place both @ s2 errorbar color 1 @ s2 errorbar pattern 1 @ s2 errorbar size 1.000000 @ s2 errorbar linewidth 1.0 @ s2 errorbar linestyle 1 @ s2 errorbar riser linewidth 1.0 @ s2 errorbar riser linestyle 1 @ s2 errorbar riser clip off @ s2 errorbar riser clip length 0.100000 @ s2 comment "PHDISP.OUT" @ s2 legend "" @ s3 hidden false @ s3 type xy @ s3 symbol 0 @ s3 symbol size 1.000000 @ s3 symbol color 1 @ s3 symbol pattern 1 @ s3 symbol fill color 1 @ s3 symbol fill pattern 0 @ s3 symbol linewidth 1.0 @ s3 symbol linestyle 1 @ s3 symbol char 65 @ s3 symbol char font 0 @ s3 symbol skip 0 @ s3 line type 1 @ s3 line linestyle 1 @ s3 line linewidth 1.5 @ s3 line color 1 @ s3 line pattern 1 @ s3 baseline type 0 @ s3 baseline off @ s3 dropline off @ s3 fill type 0 @ s3 fill rule 0 @ s3 fill color 1 @ s3 fill pattern 1 @ s3 avalue off @ s3 avalue type 2 @ s3 avalue char size 1.000000 @ s3 avalue font 0 @ s3 avalue color 1 @ s3 avalue rot 0 @ s3 avalue format general @ s3 avalue prec 3 @ s3 avalue prepend "" @ s3 avalue append "" @ s3 avalue offset 0.000000 , 0.000000 @ s3 errorbar on @ s3 errorbar place both @ s3 errorbar color 1 @ s3 errorbar pattern 1 @ s3 errorbar size 1.000000 @ s3 errorbar linewidth 1.0 @ s3 errorbar linestyle 1 @ s3 errorbar riser linewidth 1.0 @ s3 errorbar riser linestyle 1 @ s3 errorbar riser clip off @ s3 errorbar riser clip length 0.100000 @ s3 comment "PHDISP.OUT" @ s3 legend "" @ s4 hidden false @ s4 type xy @ s4 symbol 0 @ s4 symbol size 1.000000 @ s4 symbol color 1 @ s4 symbol pattern 1 @ s4 symbol fill color 1 @ s4 symbol fill pattern 0 @ s4 symbol linewidth 1.0 @ s4 symbol linestyle 1 @ s4 symbol char 65 @ s4 symbol char font 0 @ s4 symbol skip 0 @ s4 line type 1 @ s4 line linestyle 1 @ s4 line linewidth 1.5 @ s4 line color 1 @ s4 line pattern 1 @ s4 baseline type 0 @ s4 baseline off @ s4 dropline off @ s4 fill type 0 @ s4 fill rule 0 @ s4 fill color 1 @ s4 fill pattern 1 @ s4 avalue off @ s4 avalue type 2 @ s4 avalue char size 1.000000 @ s4 avalue font 0 @ s4 avalue color 1 @ s4 avalue rot 0 @ s4 avalue format general @ s4 avalue prec 3 @ s4 avalue prepend "" @ s4 avalue append "" @ s4 avalue offset 0.000000 , 0.000000 @ s4 errorbar on @ s4 errorbar place both @ s4 errorbar color 1 @ s4 errorbar pattern 1 @ s4 errorbar size 1.000000 @ s4 errorbar linewidth 1.0 @ s4 errorbar linestyle 1 @ s4 errorbar riser linewidth 1.0 @ s4 errorbar riser linestyle 1 @ s4 errorbar riser clip off @ s4 errorbar riser clip length 0.100000 @ s4 comment "PHDISP.OUT" @ s4 legend "" @ s5 hidden false @ s5 type xy @ s5 symbol 0 @ s5 symbol size 1.000000 @ s5 symbol color 1 @ s5 symbol pattern 1 @ s5 symbol fill color 1 @ s5 symbol fill pattern 0 @ s5 symbol linewidth 1.0 @ s5 symbol linestyle 1 @ s5 symbol char 65 @ s5 symbol char font 0 @ s5 symbol skip 0 @ s5 line type 1 @ s5 line linestyle 1 @ s5 line linewidth 1.5 @ s5 line color 1 @ s5 line pattern 1 @ s5 baseline type 0 @ s5 baseline off @ s5 dropline off @ s5 fill type 0 @ s5 fill rule 0 @ s5 fill color 1 @ s5 fill pattern 1 @ s5 avalue off @ s5 avalue type 2 @ s5 avalue char size 1.000000 @ s5 avalue font 0 @ s5 avalue color 1 @ s5 avalue rot 0 @ s5 avalue format general @ s5 avalue prec 3 @ s5 avalue prepend "" @ s5 avalue append "" @ s5 avalue offset 0.000000 , 0.000000 @ s5 errorbar on @ s5 errorbar place both @ s5 errorbar color 1 @ s5 errorbar pattern 1 @ s5 errorbar size 1.000000 @ s5 errorbar linewidth 1.0 @ s5 errorbar linestyle 1 @ s5 errorbar riser linewidth 1.0 @ s5 errorbar riser linestyle 1 @ s5 errorbar riser clip off @ s5 errorbar riser clip length 0.100000 @ s5 comment "PHDISP.OUT" @ s5 legend "" @ s6 hidden false @ s6 type xy @ s6 symbol 0 @ s6 symbol size 1.000000 @ s6 symbol color 1 @ s6 symbol pattern 1 @ s6 symbol fill color 1 @ s6 symbol fill pattern 0 @ s6 symbol linewidth 1.0 @ s6 symbol linestyle 1 @ s6 symbol char 65 @ s6 symbol char font 0 @ s6 symbol skip 0 @ s6 line type 1 @ s6 line linestyle 1 @ s6 line linewidth 1.5 @ s6 line color 1 @ s6 line pattern 1 @ s6 baseline type 0 @ s6 baseline off @ s6 dropline off @ s6 fill type 0 @ s6 fill rule 0 @ s6 fill color 1 @ s6 fill pattern 1 @ s6 avalue off @ s6 avalue type 2 @ s6 avalue char size 1.000000 @ s6 avalue font 0 @ s6 avalue color 1 @ s6 avalue rot 0 @ s6 avalue format general @ s6 avalue prec 3 @ s6 avalue prepend "" @ s6 avalue append "" @ s6 avalue offset 0.000000 , 0.000000 @ s6 errorbar on @ s6 errorbar place both @ s6 errorbar color 1 @ s6 errorbar pattern 1 @ s6 errorbar size 1.000000 @ s6 errorbar linewidth 1.0 @ s6 errorbar linestyle 1 @ s6 errorbar riser linewidth 1.0 @ s6 errorbar riser linestyle 1 @ s6 errorbar riser clip off @ s6 errorbar riser clip length 0.100000 @ s6 comment "PHDISP.OUT" @ s6 legend "" @ s7 hidden false @ s7 type xy @ s7 symbol 0 @ s7 symbol size 1.000000 @ s7 symbol color 1 @ s7 symbol pattern 1 @ s7 symbol fill color 1 @ s7 symbol fill pattern 0 @ s7 symbol linewidth 1.0 @ s7 symbol linestyle 1 @ s7 symbol char 65 @ s7 symbol char font 0 @ s7 symbol skip 0 @ s7 line type 1 @ s7 line linestyle 1 @ s7 line linewidth 1.5 @ s7 line color 1 @ s7 line pattern 1 @ s7 baseline type 0 @ s7 baseline off @ s7 dropline off @ s7 fill type 0 @ s7 fill rule 0 @ s7 fill color 1 @ s7 fill pattern 1 @ s7 avalue off @ s7 avalue type 2 @ s7 avalue char size 1.000000 @ s7 avalue font 0 @ s7 avalue color 1 @ s7 avalue rot 0 @ s7 avalue format general @ s7 avalue prec 3 @ s7 avalue prepend "" @ s7 avalue append "" @ s7 avalue offset 0.000000 , 0.000000 @ s7 errorbar on @ s7 errorbar place both @ s7 errorbar color 1 @ s7 errorbar pattern 1 @ s7 errorbar size 1.000000 @ s7 errorbar linewidth 1.0 @ s7 errorbar linestyle 1 @ s7 errorbar riser linewidth 1.0 @ s7 errorbar riser linestyle 1 @ s7 errorbar riser clip off @ s7 errorbar riser clip length 0.100000 @ s7 comment "PHDISP.OUT" @ s7 legend "" @ s8 hidden false @ s8 type xy @ s8 symbol 0 @ s8 symbol size 1.000000 @ s8 symbol color 1 @ s8 symbol pattern 1 @ s8 symbol fill color 1 @ s8 symbol fill pattern 0 @ s8 symbol linewidth 1.0 @ s8 symbol linestyle 1 @ s8 symbol char 65 @ s8 symbol char font 0 @ s8 symbol skip 0 @ s8 line type 1 @ s8 line linestyle 1 @ s8 line linewidth 1.5 @ s8 line color 1 @ s8 line pattern 1 @ s8 baseline type 0 @ s8 baseline off @ s8 dropline off @ s8 fill type 0 @ s8 fill rule 0 @ s8 fill color 1 @ s8 fill pattern 1 @ s8 avalue off @ s8 avalue type 2 @ s8 avalue char size 1.000000 @ s8 avalue font 0 @ s8 avalue color 1 @ s8 avalue rot 0 @ s8 avalue format general @ s8 avalue prec 3 @ s8 avalue prepend "" @ s8 avalue append "" @ s8 avalue offset 0.000000 , 0.000000 @ s8 errorbar on @ s8 errorbar place both @ s8 errorbar color 1 @ s8 errorbar pattern 1 @ s8 errorbar size 1.000000 @ s8 errorbar linewidth 1.0 @ s8 errorbar linestyle 1 @ s8 errorbar riser linewidth 1.0 @ s8 errorbar riser linestyle 1 @ s8 errorbar riser clip off @ s8 errorbar riser clip length 0.100000 @ s8 comment "PHDISP.OUT" @ s8 legend "" @ s9 hidden false @ s9 type xy @ s9 symbol 0 @ s9 symbol size 1.000000 @ s9 symbol color 1 @ s9 symbol pattern 1 @ s9 symbol fill color 1 @ s9 symbol fill pattern 0 @ s9 symbol linewidth 1.0 @ s9 symbol linestyle 1 @ s9 symbol char 65 @ s9 symbol char font 0 @ s9 symbol skip 0 @ s9 line type 1 @ s9 line linestyle 1 @ s9 line linewidth 1.0 @ s9 line color 1 @ s9 line pattern 1 @ s9 baseline type 0 @ s9 baseline off @ s9 dropline off @ s9 fill type 0 @ s9 fill rule 0 @ s9 fill color 1 @ s9 fill pattern 1 @ s9 avalue off @ s9 avalue type 2 @ s9 avalue char size 1.000000 @ s9 avalue font 0 @ s9 avalue color 1 @ s9 avalue rot 0 @ s9 avalue format general @ s9 avalue prec 3 @ s9 avalue prepend "" @ s9 avalue append "" @ s9 avalue offset 0.000000 , 0.000000 @ s9 errorbar on @ s9 errorbar place both @ s9 errorbar color 1 @ s9 errorbar pattern 1 @ s9 errorbar size 1.000000 @ s9 errorbar linewidth 1.0 @ s9 errorbar linestyle 1 @ s9 errorbar riser linewidth 1.0 @ s9 errorbar riser linestyle 1 @ s9 errorbar riser clip off @ s9 errorbar riser clip length 0.100000 @ s9 comment "PHDLINES.OUT" @ s9 legend "" @ s10 hidden false @ s10 type xy @ s10 symbol 0 @ s10 symbol size 1.000000 @ s10 symbol color 1 @ s10 symbol pattern 1 @ s10 symbol fill color 1 @ s10 symbol fill pattern 0 @ s10 symbol linewidth 1.0 @ s10 symbol linestyle 1 @ s10 symbol char 65 @ s10 symbol char font 0 @ s10 symbol skip 0 @ s10 line type 1 @ s10 line linestyle 1 @ s10 line linewidth 1.0 @ s10 line color 1 @ s10 line pattern 1 @ s10 baseline type 0 @ s10 baseline off @ s10 dropline off @ s10 fill type 0 @ s10 fill rule 0 @ s10 fill color 1 @ s10 fill pattern 1 @ s10 avalue off @ s10 avalue type 2 @ s10 avalue char size 1.000000 @ s10 avalue font 0 @ s10 avalue color 1 @ s10 avalue rot 0 @ s10 avalue format general @ s10 avalue prec 3 @ s10 avalue prepend "" @ s10 avalue append "" @ s10 avalue offset 0.000000 , 0.000000 @ s10 errorbar on @ s10 errorbar place both @ s10 errorbar color 1 @ s10 errorbar pattern 1 @ s10 errorbar size 1.000000 @ s10 errorbar linewidth 1.0 @ s10 errorbar linestyle 1 @ s10 errorbar riser linewidth 1.0 @ s10 errorbar riser linestyle 1 @ s10 errorbar riser clip off @ s10 errorbar riser clip length 0.100000 @ s10 comment "PHDLINES.OUT" @ s10 legend "" @ s11 hidden false @ s11 type xy @ s11 symbol 0 @ s11 symbol size 1.000000 @ s11 symbol color 1 @ s11 symbol pattern 1 @ s11 symbol fill color 1 @ s11 symbol fill pattern 0 @ s11 symbol linewidth 1.0 @ s11 symbol linestyle 1 @ s11 symbol char 65 @ s11 symbol char font 0 @ s11 symbol skip 0 @ s11 line type 1 @ s11 line linestyle 1 @ s11 line linewidth 1.0 @ s11 line color 1 @ s11 line pattern 1 @ s11 baseline type 0 @ s11 baseline off @ s11 dropline off @ s11 fill type 0 @ s11 fill rule 0 @ s11 fill color 1 @ s11 fill pattern 1 @ s11 avalue off @ s11 avalue type 2 @ s11 avalue char size 1.000000 @ s11 avalue font 0 @ s11 avalue color 1 @ s11 avalue rot 0 @ s11 avalue format general @ s11 avalue prec 3 @ s11 avalue prepend "" @ s11 avalue append "" @ s11 avalue offset 0.000000 , 0.000000 @ s11 errorbar on @ s11 errorbar place both @ s11 errorbar color 1 @ s11 errorbar pattern 1 @ s11 errorbar size 1.000000 @ s11 errorbar linewidth 1.0 @ s11 errorbar linestyle 1 @ s11 errorbar riser linewidth 1.0 @ s11 errorbar riser linestyle 1 @ s11 errorbar riser clip off @ s11 errorbar riser clip length 0.100000 @ s11 comment "PHDLINES.OUT" @ s11 legend "" @ s12 hidden false @ s12 type xy @ s12 symbol 0 @ s12 symbol size 1.000000 @ s12 symbol color 1 @ s12 symbol pattern 1 @ s12 symbol fill color 1 @ s12 symbol fill pattern 0 @ s12 symbol linewidth 1.0 @ s12 symbol linestyle 1 @ s12 symbol char 65 @ s12 symbol char font 0 @ s12 symbol skip 0 @ s12 line type 1 @ s12 line linestyle 1 @ s12 line linewidth 1.0 @ s12 line color 1 @ s12 line pattern 1 @ s12 baseline type 0 @ s12 baseline off @ s12 dropline off @ s12 fill type 0 @ s12 fill rule 0 @ s12 fill color 1 @ s12 fill pattern 1 @ s12 avalue off @ s12 avalue type 2 @ s12 avalue char size 1.000000 @ s12 avalue font 0 @ s12 avalue color 1 @ s12 avalue rot 0 @ s12 avalue format general @ s12 avalue prec 3 @ s12 avalue prepend "" @ s12 avalue append "" @ s12 avalue offset 0.000000 , 0.000000 @ s12 errorbar on @ s12 errorbar place both @ s12 errorbar color 1 @ s12 errorbar pattern 1 @ s12 errorbar size 1.000000 @ s12 errorbar linewidth 1.0 @ s12 errorbar linestyle 1 @ s12 errorbar riser linewidth 1.0 @ s12 errorbar riser linestyle 1 @ s12 errorbar riser clip off @ s12 errorbar riser clip length 0.100000 @ s12 comment "PHDLINES.OUT" @ s12 legend "" @ s13 hidden false @ s13 type xy @ s13 symbol 0 @ s13 symbol size 1.000000 @ s13 symbol color 1 @ s13 symbol pattern 1 @ s13 symbol fill color 1 @ s13 symbol fill pattern 0 @ s13 symbol linewidth 1.0 @ s13 symbol linestyle 1 @ s13 symbol char 65 @ s13 symbol char font 0 @ s13 symbol skip 0 @ s13 line type 1 @ s13 line linestyle 1 @ s13 line linewidth 1.0 @ s13 line color 1 @ s13 line pattern 1 @ s13 baseline type 0 @ s13 baseline off @ s13 dropline off @ s13 fill type 0 @ s13 fill rule 0 @ s13 fill color 1 @ s13 fill pattern 1 @ s13 avalue off @ s13 avalue type 2 @ s13 avalue char size 1.000000 @ s13 avalue font 0 @ s13 avalue color 1 @ s13 avalue rot 0 @ s13 avalue format general @ s13 avalue prec 3 @ s13 avalue prepend "" @ s13 avalue append "" @ s13 avalue offset 0.000000 , 0.000000 @ s13 errorbar on @ s13 errorbar place both @ s13 errorbar color 1 @ s13 errorbar pattern 1 @ s13 errorbar size 1.000000 @ s13 errorbar linewidth 1.0 @ s13 errorbar linestyle 1 @ s13 errorbar riser linewidth 1.0 @ s13 errorbar riser linestyle 1 @ s13 errorbar riser clip off @ s13 errorbar riser clip length 0.100000 @ s13 comment "PHDLINES.OUT" @ s13 legend "" @target G0.S0 @type xy 0 -8.5633634e-11 0.0023473519 4.3743349e-06 0.0046947037 8.7554991e-06 0.0070420556 1.3150293e-05 0.0093894074 1.7565461e-05 0.011736759 2.2007662e-05 0.014084111 2.6483444e-05 0.016431463 3.0999219e-05 0.018778815 3.5561237e-05 0.021126167 4.0175566e-05 0.023473519 4.4848072e-05 0.02582087 4.9584399e-05 0.028168222 5.4389953e-05 0.030515574 5.9269889e-05 0.032862926 6.4229099e-05 0.035210278 6.9272202e-05 0.03755763 7.4403538e-05 0.039904982 7.9627159e-05 0.042252333 8.494683e-05 0.044599685 9.0366023e-05 0.046947037 9.5887922e-05 0.049294389 0.00010151542 0.051641741 0.00010725112 0.053989093 0.00011309734 0.056336444 0.00011905613 0.058683796 0.00012512927 0.061031148 0.00013131825 0.0633785 0.00013762433 0.065725852 0.00014404851 0.068073204 0.00015059154 0.070420556 0.00015725395 0.072767907 0.00016403603 0.075115259 0.00017093786 0.077462611 0.00017795931 0.079809963 0.00018510006 0.082157315 0.00019235959 0.084504667 0.0001997372 0.086852019 0.000207232 0.08919937 0.00021484297 0.091546722 0.0002225689 0.093894074 0.00023040844 0.096241426 0.0002383601 0.098588778 0.0002462889 0.10093613 0.00025220468 0.10328348 0.00025812376 0.10563083 0.0002640462 0.10797819 0.00026997202 0.11032554 0.00027590127 0.11267289 0.00028183398 0.11502024 0.00028777018 0.11736759 0.0002937099 0.11971494 0.00029965317 0.1220623 0.00030560003 0.12440965 0.00031155048 0.126757 0.00031750457 0.12910435 0.0003234623 0.1314517 0.0003294237 0.13379906 0.00033538879 0.13614641 0.00034135758 0.13849376 0.00034733009 0.14084111 0.00035330633 0.14318846 0.0003592863 0.14553581 0.00036527003 0.14788317 0.00037125751 0.15023052 0.00037724875 0.15257787 0.00038324376 0.15492522 0.00038924254 0.15727257 0.00039524508 0.15961993 0.0004012514 0.16196728 0.00040726148 0.16431463 0.00041327533 0.16666198 0.00041929293 0.16900933 0.00042531429 0.17135669 0.00043133939 0.17370404 0.00043736822 0.17605139 0.00044340077 0.17839874 0.00044943704 0.18074609 0.00045547699 0.18309344 0.00046152064 0.1854408 0.00046756794 0.18778815 0.00047361889 0.1901355 0.00047967346 0.19248285 0.00048573164 0.1948302 0.00049179341 0.19717756 0.00049785873 0.19952491 0.00050392758 0.20187226 0.00050999993 0.20421961 0.00051607577 0.20656696 0.00052215505 0.20891432 0.00052823774 0.21126167 0.00053432381 0.21360902 0.00054041323 0.21595637 0.00054650596 0.21830372 0.00055260195 0.22065107 0.00055870117 0.22299843 0.00056480358 0.22534578 0.00057090913 0.22769313 0.00057701776 0.23004048 0.00058312944 0.23238783 0.00058924412 0.23473519 0.00059536173 0.23708254 0.00060148221 0.23942989 0.00060760552 0.24177724 0.00061373159 0.24412459 0.00061986035 0.24647194 0.00062599173 0.2488193 0.00063212567 0.25116665 0.00063826208 0.253514 0.00064440089 0.25586135 0.00065054201 0.2582087 0.00065668536 0.26055606 0.00066283085 0.26290341 0.00066897838 0.26525076 0.00067512786 0.26759811 0.00068127917 0.26994546 0.0006874322 0.27229282 0.00069358685 0.27464017 0.00069974299 0.27698752 0.00070590049 0.27933487 0.00071205922 0.28168222 0.00071821904 0.28402957 0.0007243798 0.28637693 0.00073054135 0.28872428 0.00073670353 0.29107163 0.00074286616 0.29341898 0.00074902907 0.29576633 0.00075519208 0.29811369 0.00076135498 0.30046104 0.00076751757 0.30280839 0.00077367964 0.30515574 0.00077984096 0.30750309 0.0007860013 0.30985044 0.0007921604 0.3121978 0.000798318 0.31454515 0.00080447384 0.3168925 0.00081062763 0.31923985 0.00081677907 0.3215872 0.00082292785 0.32393456 0.00082907364 0.32628191 0.00083521611 0.32862926 0.00084135488 0.33097661 0.00084748959 0.33332396 0.00085361984 0.33567132 0.00085974524 0.33801867 0.00086586534 0.34036602 0.00087197971 0.34271337 0.00087808788 0.34506072 0.00088418936 0.34740807 0.00089028364 0.34975543 0.0008963702 0.35210278 0.00090244848 0.35445013 0.00090851792 0.35679748 0.0009145779 0.35914483 0.00092062781 0.36149219 0.000926667 0.36383954 0.00093269479 0.36618689 0.00093871049 0.36853424 0.00094471335 0.37088159 0.00095070262 0.37322894 0.00095667753 0.3755763 0.00096263724 0.37792365 0.00096858091 0.380271 0.00097450766 0.38261835 0.00098041659 0.3849657 0.00098630675 0.38731306 0.00099217717 0.38966041 0.00099802684 0.39200776 0.0010038547 0.39435511 0.0010096597 0.39670246 0.0010154408 0.39904982 0.0010211967 0.40139717 0.0010269263 0.40374452 0.0010326285 0.40609187 0.0010383019 0.40843922 0.0010439453 0.41078657 0.0010495573 0.41313393 0.0010551367 0.41548128 0.001060682 0.41782863 0.0010661919 0.42017598 0.0010716649 0.42252333 0.0010770996 0.42487069 0.0010824945 0.42721804 0.001087848 0.42956539 0.0010931587 0.43191274 0.0010984249 0.43426009 0.0011036452 0.43660744 0.0011088179 0.4389548 0.0011139414 0.44130215 0.0011190142 0.4436495 0.0011240346 0.44599685 0.001129001 0.4483442 0.0011339119 0.45069156 0.0011387655 0.45303891 0.0011435604 0.45538626 0.0011482949 0.45773361 0.0011529676 0.46008096 0.0011575768 0.46242832 0.0011621211 0.46477567 0.0011665991 0.46712302 0.0011710094 0.46947037 0.0011753505 0.47181772 0.0011796211 0.47416507 0.0011838201 0.47651243 0.0011879462 0.47885978 0.0011919983 0.48120713 0.0011959754 0.48355448 0.0011998764 0.48590183 0.0012037005 0.48824919 0.0012074468 0.49059654 0.0012111147 0.49294389 0.0012147035 0.49529124 0.0012182127 0.49763859 0.0012216417 0.49998594 0.0012249903 0.5023333 0.0012282582 0.50468065 0.0012314452 0.507028 0.0012345513 0.50937535 0.0012375764 0.5117227 0.0012405207 0.51407006 0.0012433844 0.51641741 0.0012461678 0.51876476 0.0012488713 0.52111211 0.0012514952 0.52345946 0.0012540402 0.52580682 0.0012565068 0.52815417 0.0012588958 0.53050152 0.0012612078 0.53284887 0.0012634436 0.53519622 0.0012656041 0.53754357 0.0012676903 0.53989093 0.0012697029 0.54223828 0.001271643 0.54458563 0.0012735117 0.54693298 0.0012753098 0.54928033 0.0012770386 0.55162769 0.001278699 0.55397504 0.0012797373 0.55632239 0.0012803496 0.55866974 0.0012809412 0.56101709 0.0012815118 0.56336444 0.0012820616 0.5657118 0.0012825904 0.56805915 0.0012830982 0.5704065 0.001283585 0.57275385 0.0012840506 0.5751012 0.0012844951 0.57744856 0.0012849183 0.57979591 0.0012853203 0.58214326 0.001285701 0.58449061 0.0012860602 0.58683796 0.001286398 0.58918532 0.0012867143 0.59153267 0.0012870091 0.59388002 0.0012872822 0.59622737 0.0012875337 0.59857472 0.0012877635 0.60092207 0.0012879716 0.60326943 0.0012881578 0.60561678 0.0012883222 0.60796413 0.0012884648 0.61031148 0.0012885855 0.61265883 0.0012886843 0.61500619 0.0012887611 0.61735354 0.001288816 0.61970089 0.001288849 0.62204824 0.00128886 0.62439527 0.0012887924 0.6267423 0.001288729 0.62908933 0.0012886701 0.63143636 0.0012886155 0.63378339 0.0012885655 0.63613042 0.0012885201 0.63847745 0.0012884793 0.64082448 0.0012884433 0.64317151 0.001288412 0.64551855 0.0012883857 0.64786558 0.0012883642 0.65021261 0.0012883477 0.65255964 0.0012883362 0.65490667 0.0012883297 0.6572537 0.0012883284 0.65960073 0.0012883322 0.66194776 0.0012883411 0.66429479 0.0012883553 0.66664182 0.0012883746 0.66898885 0.0012883992 0.67133588 0.001288429 0.67368291 0.001288464 0.67602994 0.0012885043 0.67837697 0.0012885499 0.680724 0.0012886007 0.68307103 0.0012886567 0.68541806 0.001288718 0.68776509 0.0012887844 0.69011212 0.001288856 0.69245915 0.0012889328 0.69480618 0.0012890146 0.69715321 0.0012891016 0.69950024 0.0012891935 0.70184727 0.0012892905 0.70419431 0.0012893924 0.70654134 0.0012894992 0.70888837 0.0012896107 0.7112354 0.0012897271 0.71358243 0.0012898481 0.71592946 0.0012899738 0.71827649 0.001290104 0.72062352 0.0012902387 0.72297055 0.0012903777 0.72531758 0.0012905211 0.72766461 0.0012906687 0.73001164 0.0012908204 0.73235867 0.0012909762 0.7347057 0.0012911358 0.73705273 0.0012912993 0.73939976 0.0012914666 0.74174679 0.0012916375 0.74409382 0.0012918119 0.74644085 0.0012919897 0.74878788 0.0012921708 0.75113491 0.0012923551 0.75348194 0.0012925425 0.75582897 0.0012927328 0.758176 0.001292926 0.76052303 0.001293122 0.76287006 0.0012933205 0.7652171 0.0012935215 0.76756413 0.0012937249 0.76991116 0.0012939305 0.77225819 0.0012941383 0.77460522 0.0012943481 0.77695225 0.0012945597 0.77929928 0.0012947732 0.78164631 0.0012949882 0.78399334 0.0012952048 0.78634037 0.0012954228 0.7886874 0.0012956421 0.79103443 0.0012958625 0.79338146 0.001296084 0.79572849 0.0012963064 0.79807552 0.0012965297 0.80042255 0.0012967536 0.80276958 0.0012969782 0.80511661 0.0012972032 0.80746364 0.0012974286 0.80981067 0.0012976543 0.8121577 0.0012978801 0.81450473 0.001298106 0.81685176 0.0012983319 0.81919879 0.0012985577 0.82154582 0.0012987832 0.82389285 0.0012990084 0.82623989 0.0012992332 0.82858692 0.0012994575 0.83093395 0.0012996813 0.83328098 0.0012999043 0.83562801 0.0013001267 0.83797504 0.0013003482 0.84032207 0.0013005689 0.8426691 0.0013007886 0.84501613 0.0013010073 0.84736316 0.0013012249 0.84971019 0.0013014413 0.85205722 0.0013016566 0.85440425 0.0013018706 0.85675128 0.0013020833 0.85909831 0.0013022947 0.86144534 0.0013025046 0.86379237 0.0013027131 0.8661394 0.0013029201 0.86848643 0.0013031256 0.87083346 0.0013033295 0.87318049 0.0013035319 0.87552752 0.0013037326 0.87787455 0.0013039317 0.88022158 0.0013041291 0.88256861 0.0013043248 0.88491565 0.0013045189 0.88726268 0.0013047112 0.88960971 0.0013049017 0.89195674 0.0013050905 0.89430377 0.0013052775 0.8966508 0.0013054628 0.89899783 0.0013056463 0.90134486 0.001305828 0.90369189 0.0013060079 0.90603892 0.001306186 0.90838595 0.0013063623 0.91073298 0.0013065368 0.91308001 0.0013067095 0.91542704 0.0013068804 0.91777407 0.0013070496 0.9201211 0.001307217 0.92246813 0.0013073825 0.92481516 0.0013075463 0.92716219 0.0013077084 0.92950922 0.0013078686 0.93185625 0.0013080272 0.93420328 0.0013081839 0.93655031 0.0013083389 0.93889734 0.0013084922 0.94124437 0.0013086438 0.94359141 0.0013087936 0.94593844 0.0013089417 0.94828547 0.001309088 0.9506325 0.0013092327 0.95297953 0.0013093757 0.95532656 0.0013095169 0.95767359 0.0013096564 0.96002062 0.0013097943 0.96236765 0.0013099304 0.96471468 0.0013100648 0.96706171 0.0013101975 0.96940874 0.0013103285 0.97175577 0.0013104577 0.9741028 0.0013105852 0.97644983 0.001310711 0.97879686 0.0013108351 0.98114389 0.0013109574 0.98349092 0.0013110779 0.98583795 0.0013111966 0.98818498 0.0013113136 0.99053201 0.0013114287 0.99287904 0.001311542 0.99522607 0.0013116535 0.9975731 0.0013117631 0.99992013 0.0013118707 1.0022672 0.0013119765 1.0046142 0.0013120803 1.0069612 0.0013121822 1.0093083 0.001312282 1.0116553 0.0013123798 1.0140023 0.0013124756 1.0163493 0.0013125692 1.0186964 0.0013126607 1.0210434 0.0013127501 1.0233904 0.0013128372 1.0257375 0.0013129222 1.0280845 0.0013130048 1.0304315 0.0013130851 1.0327786 0.0013131631 1.0351256 0.0013132386 1.0374726 0.0013133118 1.0398197 0.0013133824 1.0421667 0.0013134505 1.0445137 0.0013135161 1.0468607 0.001313579 1.0492078 0.0013136393 1.0515548 0.0013136968 1.0539018 0.0013137517 1.0562489 0.0013138037 1.0585959 0.0013138529 1.0609429 0.0013138992 1.06329 0.0013139426 1.065637 0.001313983 1.067984 0.0013140204 1.070331 0.0013140547 1.0726781 0.001314086 1.0750251 0.0013141141 1.0773721 0.0013141391 1.0797192 0.0013141608 1.0820662 0.0013141793 1.0844132 0.0013141945 1.0867603 0.0013142063 1.0891073 0.0013142149 1.0914543 0.00131422 1.0938014 0.0013142217 1.0961529 0.0013142189 1.0985044 0.0013142107 1.1008559 0.0013141969 1.1032074 0.0013141776 1.1055589 0.0013141528 1.1079104 0.0013141224 1.1102619 0.0013140866 1.1126134 0.0013140452 1.1149649 0.0013139982 1.1173165 0.0013139457 1.119668 0.0013138876 1.1220195 0.0013138239 1.124371 0.0013137546 1.1267225 0.0013136796 1.129074 0.0013135989 1.1314255 0.0013135126 1.133777 0.0013134205 1.1361285 0.0013133226 1.1384801 0.0013132189 1.1408316 0.0013131094 1.1431831 0.001312994 1.1455346 0.0013128726 1.1478861 0.0013127453 1.1502376 0.001312612 1.1525891 0.0013124726 1.1549406 0.0013123271 1.1572921 0.0013121754 1.1596437 0.0013120174 1.1619952 0.0013118532 1.1643467 0.0013116827 1.1666982 0.0013115057 1.1690497 0.0013113222 1.1714012 0.0013111323 1.1737527 0.0013109357 1.1761042 0.0013107324 1.1784557 0.0013105224 1.1808073 0.0013103055 1.1831588 0.0013100818 1.1855103 0.0013098511 1.1878618 0.0013096133 1.1902133 0.0013093684 1.1925648 0.0013091163 1.1949163 0.0013088568 1.1972678 0.00130859 1.1996193 0.0013083156 1.2019709 0.0013080337 1.2043224 0.0013077441 1.2066739 0.0013074468 1.2090254 0.0013071415 1.2113769 0.0013068283 1.2137284 0.001306507 1.2160799 0.0013061774 1.2184314 0.0013058396 1.2207829 0.0013054934 1.2231344 0.0013051386 1.225486 0.0013047752 1.2278375 0.001304403 1.230189 0.001304022 1.2325405 0.0013036319 1.234892 0.0013032326 1.2372435 0.0013028241 1.239595 0.0013024061 1.2419465 0.0013019786 1.244298 0.0013015414 1.2466496 0.0013010943 1.2490011 0.0013006372 1.2513526 0.0013001699 1.2537041 0.0012996923 1.2560556 0.0012992043 1.2584071 0.0012987056 1.2607586 0.001298196 1.2631101 0.0012976755 1.2654616 0.0012971437 1.2678132 0.0012966006 1.2701647 0.001296046 1.2725162 0.0012954796 1.2748677 0.0012949012 1.2772192 0.0012943107 1.2795707 0.0012937077 1.2819222 0.0012930922 1.2842737 0.0012924639 1.2866252 0.0012918224 1.2889768 0.0012911677 1.2913283 0.0012904995 1.2936798 0.0012898175 1.2960313 0.0012891214 1.2983828 0.0012884109 1.3007343 0.0012876859 1.3030858 0.001286946 1.3054373 0.001286191 1.3077888 0.0012854205 1.3101404 0.0012846342 1.3124919 0.0012838318 1.3148434 0.0012830129 1.3171949 0.0012821773 1.3195464 0.0012813247 1.3218979 0.0012804545 1.3242494 0.0012795665 1.3266009 0.0012786603 1.3289524 0.0012777355 1.331304 0.0012767918 1.3336555 0.0012758285 1.336007 0.0012748455 1.3383585 0.0012738422 1.34071 0.0012728181 1.3430615 0.0012717729 1.345413 0.001270706 1.3477645 0.0012696169 1.350116 0.0012685052 1.3524675 0.0012673703 1.3548191 0.0012662116 1.3571706 0.0012650286 1.3595221 0.0012638208 1.3618736 0.0012625876 1.3642251 0.0012613283 1.3665766 0.0012600424 1.3689281 0.0012587291 1.3712796 0.0012573879 1.3736311 0.0012560181 1.3759827 0.0012546189 1.3783342 0.0012531897 1.3806857 0.0012517297 1.3830372 0.0012502382 1.3853887 0.0012487144 1.3877402 0.0012471575 1.3900917 0.0012455667 1.3924432 0.0012439412 1.3947947 0.00124228 1.3971463 0.0012400049 1.3994978 0.0012365781 1.4018493 0.0012331059 1.4042008 0.0012295887 1.4065523 0.001226027 1.4089038 0.0012224212 1.4112553 0.0012187719 1.4136068 0.0012150796 1.4159583 0.0012113446 1.4183099 0.0012075674 1.4206614 0.0012037484 1.4230129 0.0011998882 1.4253644 0.0011959872 1.4277159 0.0011920457 1.4300674 0.0011880642 1.4324189 0.0011840431 1.4347704 0.0011799828 1.4371219 0.0011758838 1.4394735 0.0011717464 1.441825 0.001167571 1.4441765 0.001163358 1.446528 0.0011591078 1.4488795 0.0011548208 1.451231 0.0011504972 1.4535825 0.0011461376 1.455934 0.0011417422 1.4582855 0.0011373114 1.460637 0.0011328454 1.4629886 0.0011283447 1.4653401 0.0011238096 1.4676916 0.0011192404 1.4700431 0.0011146374 1.4723946 0.0011100008 1.4747461 0.0011053311 1.4770976 0.0011006284 1.4794491 0.0010958931 1.4818006 0.0010911254 1.4841522 0.0010863256 1.4865037 0.001081494 1.4888552 0.0010766308 1.4912067 0.0010717363 1.4935582 0.0010668106 1.4959097 0.0010618541 1.4982612 0.0010568669 1.5006127 0.0010518493 1.5029642 0.0010468015 1.5053158 0.0010417237 1.5076673 0.001036616 1.5100188 0.0010314788 1.5123703 0.001026312 1.5147218 0.001021116 1.5170733 0.001015891 1.5194248 0.0010106369 1.5217763 0.0010053542 1.5241278 0.0010000428 1.5264794 0.0009947029 1.5288309 0.00098933471 1.5311824 0.00098393833 1.5335339 0.0009785139 1.5358854 0.00097306153 1.5382369 0.00096758137 1.5405884 0.00096207352 1.5429399 0.00095653809 1.5452914 0.00095097521 1.547643 0.00094538497 1.5499945 0.00093976748 1.552346 0.00093412283 1.5546975 0.00092845113 1.557049 0.00092275247 1.5594005 0.00091702694 1.561752 0.00091127462 1.5641035 0.00090549561 1.566455 0.00089968999 1.5688065 0.00089385783 1.5711581 0.00088799924 1.5735096 0.00088211427 1.5758611 0.00087620302 1.5782126 0.00087026557 1.5805641 0.00086430198 1.5829156 0.00085831234 1.5852671 0.00085229674 1.5876186 0.00084625523 1.5899701 0.00084018792 1.5923217 0.00083409487 1.5946732 0.00082797617 1.5970247 0.00082183189 1.5993762 0.00081566213 1.6017277 0.00080946696 1.6040792 0.00080324648 1.6064307 0.00079700077 1.6087822 0.00079072992 1.6111337 0.00078443402 1.6134853 0.00077811317 1.6158368 0.00077176747 1.6181883 0.00076539701 1.6205398 0.00075900191 1.6228913 0.00075258226 1.6252428 0.00074613817 1.6275943 0.00073966976 1.6299458 0.00073317715 1.6322973 0.00072666044 1.6346489 0.00071999415 1.6370004 0.00071121319 1.6393519 0.00070239857 1.6417034 0.00069355218 1.6440549 0.00068467591 1.6464064 0.00067577162 1.6487579 0.00066684123 1.6511094 0.00065788663 1.6534609 0.00064890971 1.6558125 0.00063991238 1.658164 0.00063089655 1.6605155 0.00062186412 1.662867 0.000612817 1.6652185 0.0006037571 1.66757 0.00059468635 1.6699215 0.00058560664 1.672273 0.00057651989 1.6746245 0.00056742802 1.6769761 0.00055833294 1.6793276 0.00054923656 1.6816791 0.00054014079 1.6840306 0.00053104754 1.6863821 0.00052195871 1.6887336 0.00051287621 1.6910851 0.00050380193 1.6934366 0.00049473777 1.6957881 0.00048568561 1.6981396 0.00047664734 1.7004912 0.00046762483 1.7028427 0.00045861994 1.7051942 0.00044963454 1.7075457 0.00044067046 1.7098972 0.00043172954 1.7122487 0.0004228136 1.7146002 0.00041392446 1.7169517 0.00040506388 1.7193032 0.00039623366 1.7216548 0.00038743553 1.7240063 0.00037867124 1.7263578 0.00036994248 1.7287093 0.00036125093 1.7310608 0.00035259824 1.7334123 0.00034398604 1.7357638 0.0003354159 1.7381153 0.00032688937 1.7404668 0.00031840795 1.7428184 0.0003099731 1.7451699 0.00030158622 1.7475214 0.00029324866 1.7498729 0.00028496172 1.7522244 0.00027672661 1.7545759 0.0002685445 1.7569274 0.00026041645 1.7592789 0.00025234345 1.7616304 0.00024432639 1.763982 0.00023636603 1.7663335 0.00022846305 1.768685 0.00022061797 1.7710365 0.00021283118 1.773388 0.00020510287 1.7757395 0.00019743308 1.778091 0.00018982162 1.7804425 0.00018226805 1.782794 0.00017477166 1.7851456 0.00016733142 1.7874971 0.0001599459 1.7898486 0.00015261323 1.7922001 0.000145331 1.7945516 0.00013809616 1.7969031 0.00013090486 1.7992546 0.00012375224 1.8016061 0.00011663221 1.8039576 0.00010953704 1.8063091 0.00010245691 1.8086607 9.5379104e-05 1.8110122 8.8286956e-05 1.8133637 8.1158127e-05 1.8157152 7.3961847e-05 1.8180667 6.6654192e-05 1.8204182 5.9169428e-05 1.8227697 5.1402588e-05 1.8251212 4.3169489e-05 1.8274727 3.4094428e-05 1.8298243 2.3152628e-05 1.8321758 -4.2585116e-06 1.8345273 -2.2418924e-05 1.8368788 -3.032803e-05 1.8392303 -3.5665112e-05 1.8415818 -3.9515372e-05 1.8439333 -4.2311982e-05 1.8462848 -4.4277892e-05 1.8486363 -4.554174e-05 1.8509879 -4.618056e-05 1.8533394 -4.6238282e-05 1.8556909 -4.5733952e-05 1.8580424 -4.4664347e-05 1.8603939 -4.3002198e-05 1.8627454 -4.0689035e-05 1.8650969 -3.7618359e-05 1.8674484 -3.359601e-05 1.8697999 -2.8230879e-05 1.8721515 -2.0508607e-05 1.874503 -8.5633634e-11 1.87685 -2.6370597e-05 1.879197 -3.6317293e-05 1.8815441 -4.3241007e-05 1.8838911 -4.8447049e-05 1.8862381 -5.2441899e-05 1.8885851 -5.5480858e-05 1.8909322 -5.7708662e-05 1.8932792 -5.921083e-05 1.8956262 -6.0036033e-05 1.8979733 -6.0206519e-05 1.9003203 -5.9722471e-05 1.9026673 -5.8562364e-05 1.9050144 -5.6679469e-05 1.9073614 -5.3992997e-05 1.9097084 -5.0369231e-05 1.9120555 -4.5579635e-05 1.9144025 -3.9193104e-05 1.9167495 -3.0206027e-05 1.9190965 -1.4352857e-05 1.9214436 2.4155317e-05 1.9237906 3.816274e-05 1.9261376 4.9122862e-05 1.9284847 5.8768547e-05 1.9308317 6.7666092e-05 1.9331787 7.6079831e-05 1.9355258 8.4156048e-05 1.9378728 9.1984458e-05 1.9402198 9.9624028e-05 1.9425668 0.0001071155 1.9449139 0.00011448809 1.9472609 0.0001217634 1.9496079 0.00012895774 1.951955 0.00013608369 1.954302 0.00014315108 1.956649 0.00015016769 1.9589961 0.00015713974 1.9613431 0.00016407226 1.9636901 0.00017096931 1.9660372 0.00017783421 1.9683842 0.00018466967 1.9707312 0.0001914779 1.9730782 0.00019826072 1.9754253 0.0002050196 1.9777723 0.00021175575 1.9801193 0.00021847014 1.9824664 0.00022516353 1.9848134 0.00023183655 1.9871604 0.00023848965 1.9895075 0.00024512317 1.9918545 0.00025173738 1.9942015 0.00025833241 1.9965485 0.00026490835 1.9988956 0.00027146521 2.0012426 0.00027800295 2.0035896 0.00028452148 2.0059367 0.00029102066 2.0082837 0.00029750032 2.0106307 0.00030396025 2.0129778 0.00031040023 2.0153248 0.00031682001 2.0176718 0.00032321931 2.0200188 0.00032959784 2.0223659 0.0003359553 2.0247129 0.00034229137 2.0270599 0.00034860574 2.029407 0.00035489805 2.031754 0.00036116799 2.034101 0.0003674152 2.0364481 0.00037363935 2.0387951 0.00037984007 2.0411421 0.00038601704 2.0434892 0.00039216989 2.0458362 0.00039829828 2.0481832 0.00040440188 2.0505302 0.00041048033 2.0528773 0.00041653331 2.0552243 0.00042256048 2.0575713 0.00042856152 2.0599184 0.00043453611 2.0622654 0.00044048393 2.0646124 0.00044640467 2.0669595 0.00045229804 2.0693065 0.00045816375 2.0716535 0.0004640015 2.0740005 0.00046981103 2.0763476 0.00047559207 2.0786946 0.00048134436 2.0810416 0.00048706764 2.0833887 0.00049276169 2.0857357 0.00049842626 2.0880827 0.00050406114 2.0904298 0.00050966613 2.0927768 0.00051524101 2.0951238 0.0005207856 2.0974709 0.00052629971 2.0998179 0.00053178319 2.1021649 0.00053723587 2.1045119 0.00054265759 2.106859 0.00054804823 2.109206 0.00055340765 2.111553 0.00055873573 2.1139001 0.00056403237 2.1162471 0.00056929747 2.1185941 0.00057453093 2.1209412 0.00057973269 2.1232882 0.00058490267 2.1256352 0.00059004082 2.1279822 0.00059514708 2.1303293 0.00060022141 2.1326763 0.00060526378 2.1350233 0.00061027417 2.1373704 0.00061525256 2.1397174 0.00062019894 2.1420644 0.00062511332 2.1444115 0.00062999569 2.1467585 0.00063484608 2.1491055 0.00063966449 2.1514526 0.00064445096 2.1537996 0.00064920552 2.1561466 0.00065392819 2.1584936 0.00065861902 2.1608407 0.00066327805 2.1631877 0.00066790531 2.1655347 0.00067250087 2.1678818 0.00067706475 2.1702288 0.00068159701 2.1725758 0.0006860977 2.1749229 0.00069056685 2.1772699 0.00069500452 2.1796169 0.00069941073 2.1819639 0.00070378552 2.184311 0.00070812892 2.186658 0.00071244095 2.189005 0.00071672162 2.1913521 0.00072097094 2.1936991 0.00072518889 2.1960461 0.00072937547 2.1983932 0.00073353063 2.2007402 0.00073765433 2.2030872 0.00074174651 2.2054343 0.00074580707 2.2077813 0.00074983593 2.2101283 0.00075383294 2.2124753 0.00075779798 2.2148224 0.00076173085 2.2171694 0.00076563136 2.2195164 0.00076949928 2.2218635 0.00077333434 2.2242105 0.00077713624 2.2265575 0.00078090464 2.2289046 0.00078463918 2.2312516 0.00078833943 2.2335986 0.00079200492 2.2359456 0.00079563516 2.2382927 0.00079922957 2.2406397 0.00080278754 2.2429867 0.00080630841 2.2453338 0.00080979143 2.2476808 0.00081323582 2.2500278 0.00081664072 2.2523749 0.00082000519 2.2547219 0.00082332824 2.2570689 0.00082660878 2.2594159 0.00082984565 2.261763 0.00083303762 2.26411 0.00083618336 2.266457 0.00083928144 2.2688041 0.00084233036 2.2711511 0.00084532851 2.2734981 0.00084827419 2.2758452 0.0008511656 2.2781922 0.00085400082 2.2805392 0.00085677784 2.2828863 0.00085949455 2.2852333 0.00086214874 2.2875803 0.00086473806 2.2899273 0.0008672601 2.2922744 0.00086971233 2.2946214 0.00087209211 2.2969684 0.00087439672 2.2993155 0.00087662337 2.3016625 0.00087876915 2.3040095 0.00088083111 2.3063566 0.00088280623 2.3087036 0.00088469146 2.3110506 0.00088648368 2.3133976 0.00088817978 2.3157447 0.00088977666 2.3180917 0.00089127122 2.3204387 0.0008926604 2.3227858 0.00089394123 2.3251328 0.0008951108 2.3274798 0.00089616635 2.3298269 0.00089710521 2.3321739 0.00089792493 2.3345209 0.0008986232 2.336868 0.00089919795 2.339215 0.00089964735 2.341562 0.0008999698 2.343909 0.00090016399 2.3462561 0.00090022889 & @target G0.S1 @type xy 0 -7.8964045e-11 0.0023473519 5.837216e-06 0.0046947037 1.167453e-05 0.0070420556 1.7512038e-05 0.0093894074 2.334984e-05 0.011736759 2.9188031e-05 0.014084111 3.5026709e-05 0.016431463 4.086597e-05 0.018778815 4.6705911e-05 0.021126167 5.2546626e-05 0.023473519 5.838821e-05 0.02582087 6.4230758e-05 0.028168222 7.0074364e-05 0.030515574 7.5919119e-05 0.032862926 8.1765115e-05 0.035210278 8.7612443e-05 0.03755763 9.3461194e-05 0.039904982 9.9311454e-05 0.042252333 0.00010516331 0.044599685 0.00011101685 0.046947037 0.00011687217 0.049294389 0.00012272933 0.051641741 0.00012858843 0.053989093 0.00013444954 0.056336444 0.00014031275 0.058683796 0.00014617813 0.061031148 0.00015204575 0.0633785 0.00015791571 0.065725852 0.00016378805 0.068073204 0.00016966286 0.070420556 0.00017554021 0.072767907 0.00018142016 0.075115259 0.00018730278 0.077462611 0.00019318814 0.079809963 0.00019907629 0.082157315 0.00020496729 0.084504667 0.00021086121 0.086852019 0.00021675809 0.08919937 0.000222658 0.091546722 0.00022856099 0.093894074 0.0002344671 0.096241426 0.00024037639 0.098588778 0.00024642225 0.10093613 0.00025459312 0.10328348 0.00026287084 0.10563083 0.00027125341 0.10797819 0.0002797387 0.11032554 0.00028832451 0.11267289 0.00029700852 0.11502024 0.00030578831 0.11736759 0.00031466138 0.11971494 0.00032362514 0.1220623 0.00033267693 0.12440965 0.00034181398 0.126757 0.00035103348 0.12910435 0.00036033253 0.1314517 0.00036970818 0.13379906 0.0003791574 0.13614641 0.0003886771 0.13849376 0.00039826414 0.14084111 0.00040791533 0.14318846 0.00041762741 0.14553581 0.00042739709 0.14788317 0.000437221 0.15023052 0.00044709577 0.15257787 0.00045701794 0.15492522 0.00046698404 0.15727257 0.00047699055 0.15961993 0.00048703391 0.16196728 0.00049711052 0.16431463 0.00050721675 0.16666198 0.00051734895 0.16900933 0.00052750341 0.17135669 0.00053767641 0.17370404 0.00054786421 0.17605139 0.00055806303 0.17839874 0.00056826908 0.18074609 0.00057847852 0.18309344 0.00058868753 0.1854408 0.00059889224 0.18778815 0.00060908879 0.1901355 0.00061927329 0.19248285 0.00062944185 0.1948302 0.00063959058 0.19717756 0.00064971558 0.19952491 0.00065981294 0.20187226 0.00066987877 0.20421961 0.00067990917 0.20656696 0.00068990028 0.20891432 0.00069984824 0.21126167 0.00070974919 0.21360902 0.00071959934 0.21595637 0.00072939489 0.21830372 0.00073913211 0.22065107 0.00074880727 0.22299843 0.00075841674 0.22534578 0.0007679569 0.22769313 0.00077742421 0.23004048 0.0007868152 0.23238783 0.00079612646 0.23473519 0.00080535467 0.23708254 0.0008144966 0.23942989 0.00082354911 0.24177724 0.00083250916 0.24412459 0.00084137381 0.24647194 0.00085014026 0.2488193 0.00085880581 0.25116665 0.0008673679 0.253514 0.0008758241 0.25586135 0.00088417212 0.2582087 0.00089240981 0.26055606 0.0009005352 0.26290341 0.00090854644 0.26525076 0.00091644187 0.26759811 0.00092421997 0.26994546 0.0009318794 0.27229282 0.00093941898 0.27464017 0.00094683772 0.27698752 0.00095413479 0.27933487 0.00096130951 0.28168222 0.0009683614 0.28402957 0.00097529015 0.28637693 0.00098209558 0.28872428 0.00098877772 0.29107163 0.00099533673 0.29341898 0.0010017729 0.29576633 0.0010080868 0.29811369 0.001014279 0.30046104 0.0010203502 0.30280839 0.0010263013 0.30515574 0.0010321334 0.30750309 0.0010378476 0.30985044 0.0010434451 0.3121978 0.0010489273 0.31454515 0.0010542956 0.3168925 0.0010595516 0.31923985 0.0010646969 0.3215872 0.0010697332 0.32393456 0.0010746621 0.32628191 0.0010794855 0.32862926 0.0010842053 0.33097661 0.0010888234 0.33332396 0.0010933416 0.33567132 0.001097762 0.33801867 0.0011020865 0.34036602 0.0011063171 0.34271337 0.0011104558 0.34506072 0.0011145046 0.34740807 0.0011184655 0.34975543 0.0011223405 0.35210278 0.0011261317 0.35445013 0.0011298409 0.35679748 0.0011334701 0.35914483 0.0011370213 0.36149219 0.0011404964 0.36383954 0.0011438972 0.36618689 0.0011472256 0.36853424 0.0011504835 0.37088159 0.0011536726 0.37322894 0.0011567946 0.3755763 0.0011598514 0.37792365 0.0011628445 0.380271 0.0011657757 0.38261835 0.0011686465 0.3849657 0.0011714584 0.38731306 0.0011742131 0.38966041 0.001176912 0.39200776 0.0011795566 0.39435511 0.0011821481 0.39670246 0.0011846881 0.39904982 0.0011871779 0.40139717 0.0011896187 0.40374452 0.0011920117 0.40609187 0.0011943583 0.40843922 0.0011966595 0.41078657 0.0011989165 0.41313393 0.0012011304 0.41548128 0.0012033022 0.41782863 0.001205433 0.42017598 0.0012075238 0.42252333 0.0012095755 0.42487069 0.001211589 0.42721804 0.0012135653 0.42956539 0.0012155052 0.43191274 0.0012174094 0.43426009 0.0012192789 0.43660744 0.0012211144 0.4389548 0.0012229166 0.44130215 0.0012246863 0.4436495 0.001226424 0.44599685 0.0012281305 0.4483442 0.0012298064 0.45069156 0.0012314523 0.45303891 0.0012330687 0.45538626 0.0012346563 0.45773361 0.0012362156 0.46008096 0.001237747 0.46242832 0.0012392511 0.46477567 0.0012407283 0.46712302 0.001242179 0.46947037 0.0012436038 0.47181772 0.0012450029 0.47416507 0.0012463767 0.47651243 0.0012477257 0.47885978 0.0012490502 0.48120713 0.0012503505 0.48355448 0.0012516268 0.48590183 0.0012528796 0.48824919 0.0012541091 0.49059654 0.0012553154 0.49294389 0.001256499 0.49529124 0.0012576599 0.49763859 0.0012587985 0.49998594 0.0012599149 0.5023333 0.0012610092 0.50468065 0.0012620818 0.507028 0.0012631326 0.50937535 0.0012641619 0.5117227 0.0012651699 0.51407006 0.0012661565 0.51641741 0.001267122 0.51876476 0.0012680664 0.52111211 0.0012689897 0.52345946 0.0012698922 0.52580682 0.0012707738 0.52815417 0.0012716346 0.53050152 0.0012724747 0.53284887 0.001273294 0.53519622 0.0012740926 0.53754357 0.0012748706 0.53989093 0.0012756279 0.54223828 0.0012763645 0.54458563 0.0012770805 0.54693298 0.0012777757 0.54928033 0.0012784503 0.55162769 0.0012791042 0.55397504 0.0012802921 0.55632239 0.001281819 0.55866974 0.0012832808 0.56101709 0.0012846785 0.56336444 0.0012860133 0.5657118 0.0012872862 0.56805915 0.0012884982 0.5704065 0.0012896504 0.57275385 0.0012907437 0.5751012 0.0012917792 0.57744856 0.0012927577 0.57979591 0.0012936803 0.58214326 0.0012945477 0.58449061 0.0012953609 0.58683796 0.0012961205 0.58918532 0.0012968275 0.59153267 0.0012974825 0.59388002 0.0012980862 0.59622737 0.0012986392 0.59857472 0.0012991421 0.60092207 0.0012995954 0.60326943 0.0012999998 0.60561678 0.0013003555 0.60796413 0.0013006629 0.61031148 0.0013009225 0.61265883 0.0013011345 0.61500619 0.0013012992 0.61735354 0.0013014166 0.61970089 0.0013014871 0.62204824 0.0013015105 0.62439527 0.0013014285 0.6267423 0.0013013523 0.62908933 0.001301282 0.63143636 0.0013012177 0.63378339 0.0013011595 0.63613042 0.0013011076 0.63847745 0.0013010621 0.64082448 0.0013010231 0.64317151 0.0013009907 0.64551855 0.001300965 0.64786558 0.0013009462 0.65021261 0.0013009343 0.65255964 0.0013009295 0.65490667 0.0013009318 0.6572537 0.0013009414 0.65960073 0.0013009583 0.66194776 0.0013009827 0.66429479 0.0013010145 0.66664182 0.001301054 0.66898885 0.0013011011 0.67133588 0.001301156 0.67368291 0.0013012187 0.67602994 0.0013012893 0.67837697 0.0013013677 0.680724 0.0013014542 0.68307103 0.0013015487 0.68541806 0.0013016512 0.68776509 0.0013017618 0.69011212 0.0013018805 0.69245915 0.0013020074 0.69480618 0.0013021424 0.69715321 0.0013022856 0.69950024 0.001302437 0.70184727 0.0013025965 0.70419431 0.0013027642 0.70654134 0.00130294 0.70888837 0.0013031239 0.7112354 0.0013033159 0.71358243 0.001303516 0.71592946 0.0013037241 0.71827649 0.0013039402 0.72062352 0.0013041642 0.72297055 0.001304396 0.72531758 0.0013046357 0.72766461 0.001304883 0.73001164 0.0013051381 0.73235867 0.0013054007 0.7347057 0.0013056707 0.73705273 0.0013059482 0.73939976 0.001306233 0.74174679 0.001306525 0.74409382 0.0013068241 0.74644085 0.0013071301 0.74878788 0.001307443 0.75113491 0.0013077627 0.75348194 0.0013080889 0.75582897 0.0013084217 0.758176 0.0013087607 0.76052303 0.001309106 0.76287006 0.0013094574 0.7652171 0.0013098147 0.76756413 0.0013101777 0.76991116 0.0013105464 0.77225819 0.0013109205 0.77460522 0.0013112999 0.77695225 0.0013116845 0.77929928 0.001312074 0.78164631 0.0013124683 0.78399334 0.0013128672 0.78634037 0.0013132707 0.7886874 0.0013136784 0.79103443 0.0013140902 0.79338146 0.0013145059 0.79572849 0.0013149254 0.79807552 0.0013153484 0.80042255 0.0013157749 0.80276958 0.0013162045 0.80511661 0.0013166372 0.80746364 0.0013170727 0.80981067 0.0013175109 0.8121577 0.0013179515 0.81450473 0.0013183944 0.81685176 0.0013188394 0.81919879 0.0013192864 0.82154582 0.001319735 0.82389285 0.0013201852 0.82623989 0.0013206368 0.82858692 0.0013210896 0.83093395 0.0013215434 0.83328098 0.001321998 0.83562801 0.0013224532 0.83797504 0.0013229089 0.84032207 0.0013233649 0.8426691 0.0013238211 0.84501613 0.0013242772 0.84736316 0.0013247331 0.84971019 0.0013251885 0.85205722 0.0013256435 0.85440425 0.0013260977 0.85675128 0.0013265511 0.85909831 0.0013270035 0.86144534 0.0013274546 0.86379237 0.0013279045 0.8661394 0.0013283528 0.86848643 0.0013287995 0.87083346 0.0013292445 0.87318049 0.0013296875 0.87552752 0.0013301285 0.87787455 0.0013305674 0.88022158 0.0013310039 0.88256861 0.0013314379 0.88491565 0.0013318695 0.88726268 0.0013322983 0.88960971 0.0013327243 0.89195674 0.0013331474 0.89430377 0.0013335675 0.8966508 0.0013339845 0.89899783 0.0013343982 0.90134486 0.0013348086 0.90369189 0.0013352155 0.90603892 0.001335619 0.90838595 0.0013360188 0.91073298 0.0013364149 0.91308001 0.0013368072 0.91542704 0.0013371957 0.91777407 0.0013375803 0.9201211 0.0013379608 0.92246813 0.0013383372 0.92481516 0.0013387095 0.92716219 0.0013390776 0.92950922 0.0013394415 0.93185625 0.001339801 0.93420328 0.0013401561 0.93655031 0.0013405068 0.93889734 0.001340853 0.94124437 0.0013411947 0.94359141 0.0013415318 0.94593844 0.0013418643 0.94828547 0.0013421922 0.9506325 0.0013425154 0.95297953 0.0013428339 0.95532656 0.0013431476 0.95767359 0.0013434566 0.96002062 0.0013437608 0.96236765 0.0013440601 0.96471468 0.0013443546 0.96706171 0.0013446443 0.96940874 0.0013449291 0.97175577 0.0013452089 0.9741028 0.0013454839 0.97644983 0.0013457539 0.97879686 0.001346019 0.98114389 0.0013462791 0.98349092 0.0013465343 0.98583795 0.0013467844 0.98818498 0.0013470296 0.99053201 0.0013472698 0.99287904 0.001347505 0.99522607 0.0013477352 0.9975731 0.0013479604 0.99992013 0.0013481805 1.0022672 0.0013483956 1.0046142 0.0013486056 1.0069612 0.0013488106 1.0093083 0.0013490106 1.0116553 0.0013492055 1.0140023 0.0013493953 1.0163493 0.0013495801 1.0186964 0.0013497597 1.0210434 0.0013499343 1.0233904 0.0013501038 1.0257375 0.0013502681 1.0280845 0.0013504273 1.0304315 0.0013505814 1.0327786 0.0013507304 1.0351256 0.0013508742 1.0374726 0.0013510128 1.0398197 0.0013511462 1.0421667 0.0013512745 1.0445137 0.0013513975 1.0468607 0.0013515152 1.0492078 0.0013516277 1.0515548 0.001351735 1.0539018 0.0013518369 1.0562489 0.0013519336 1.0585959 0.0013520249 1.0609429 0.0013521108 1.06329 0.0013521913 1.065637 0.0013522665 1.067984 0.0013523362 1.070331 0.0013524004 1.0726781 0.0013524592 1.0750251 0.0013525124 1.0773721 0.0013525601 1.0797192 0.0013526022 1.0820662 0.0013526387 1.0844132 0.0013526696 1.0867603 0.0013526948 1.0891073 0.0013527143 1.0914543 0.001352728 1.0938014 0.001352736 1.0961529 0.0013527352 1.0985044 0.0013527391 1.1008559 0.0013527475 1.1032074 0.0013527604 1.1055589 0.0013527779 1.1079104 0.0013527999 1.1102619 0.0013528262 1.1126134 0.0013528569 1.1149649 0.0013528918 1.1173165 0.0013529308 1.119668 0.0013529739 1.1220195 0.0013530208 1.124371 0.0013530715 1.1267225 0.0013531257 1.129074 0.0013531834 1.1314255 0.0013532443 1.133777 0.0013533083 1.1361285 0.0013533752 1.1384801 0.0013534447 1.1408316 0.0013535167 1.1431831 0.0013535908 1.1455346 0.0013536668 1.1478861 0.0013537445 1.1502376 0.0013538236 1.1525891 0.0013539038 1.1549406 0.0013539848 1.1572921 0.0013540662 1.1596437 0.0013541478 1.1619952 0.0013542292 1.1643467 0.0013543101 1.1666982 0.00135439 1.1690497 0.0013544685 1.1714012 0.0013545454 1.1737527 0.0013546201 1.1761042 0.0013546922 1.1784557 0.0013547612 1.1808073 0.0013548268 1.1831588 0.0013548884 1.1855103 0.0013549454 1.1878618 0.0013549975 1.1902133 0.001355044 1.1925648 0.0013550844 1.1949163 0.0013551181 1.1972678 0.0013551445 1.1996193 0.0013551631 1.2019709 0.001355173 1.2043224 0.0013551738 1.2066739 0.0013551647 1.2090254 0.0013551451 1.2113769 0.0013551141 1.2137284 0.001355071 1.2160799 0.0013550152 1.2184314 0.0013549457 1.2207829 0.0013548617 1.2231344 0.0013547624 1.225486 0.001354647 1.2278375 0.0013545145 1.230189 0.001354364 1.2325405 0.0013541945 1.234892 0.0013540052 1.2372435 0.0013537949 1.239595 0.0013535627 1.2419465 0.0013533075 1.244298 0.0013530282 1.2466496 0.0013527238 1.2490011 0.0013523931 1.2513526 0.001352035 1.2537041 0.0013516484 1.2560556 0.0013512321 1.2584071 0.0013507848 1.2607586 0.0013503055 1.2631101 0.001349793 1.2654616 0.0013492459 1.2678132 0.0013486631 1.2701647 0.0013480435 1.2725162 0.0013473857 1.2748677 0.0013466886 1.2772192 0.0013459511 1.2795707 0.0013451719 1.2819222 0.0013443498 1.2842737 0.0013434839 1.2866252 0.0013425729 1.2889768 0.0013416158 1.2913283 0.0013406116 1.2936798 0.0013395593 1.2960313 0.0013384579 1.2983828 0.0013373066 1.3007343 0.0013361045 1.3030858 0.0013348508 1.3054373 0.0013335448 1.3077888 0.0013321857 1.3101404 0.0013307731 1.3124919 0.0013293062 1.3148434 0.0013277847 1.3171949 0.001326208 1.3195464 0.0013245759 1.3218979 0.001322888 1.3242494 0.001321144 1.3266009 0.0013193438 1.3289524 0.0013174872 1.331304 0.0013155742 1.3336555 0.0013136047 1.336007 0.0013115788 1.3383585 0.0013094965 1.34071 0.0013073579 1.3430615 0.0013051633 1.345413 0.0013029128 1.3477645 0.0013006067 1.350116 0.0012982452 1.3524675 0.0012958286 1.3548191 0.0012933574 1.3571706 0.0012908318 1.3595221 0.0012882522 1.3618736 0.0012856191 1.3642251 0.0012829328 1.3665766 0.0012801938 1.3689281 0.0012774025 1.3712796 0.0012745595 1.3736311 0.0012716651 1.3759827 0.0012687198 1.3783342 0.0012657242 1.3806857 0.0012626787 1.3830372 0.0012595838 1.3853887 0.00125644 1.3877402 0.0012532478 1.3900917 0.0012500077 1.3924432 0.0012467202 1.3947947 0.0012433858 1.3971463 0.0012405824 1.3994978 0.0012388474 1.4018493 0.0012370741 1.4042008 0.0012352615 1.4065523 0.0012334087 1.4089038 0.0012315147 1.4112553 0.0012295785 1.4136068 0.001227599 1.4159583 0.0012255752 1.4183099 0.001223506 1.4206614 0.0012213903 1.4230129 0.001219227 1.4253644 0.0012170149 1.4277159 0.0012147529 1.4300674 0.0012124398 1.4324189 0.0012100744 1.4347704 0.0012076554 1.4371219 0.0012051818 1.4394735 0.0012026521 1.441825 0.0012000651 1.4441765 0.0011974195 1.446528 0.0011947142 1.4488795 0.0011919477 1.451231 0.0011891187 1.4535825 0.001186226 1.455934 0.0011832682 1.4582855 0.0011802439 1.460637 0.001177152 1.4629886 0.001173991 1.4653401 0.0011707596 1.4676916 0.0011674566 1.4700431 0.0011640806 1.4723946 0.0011606303 1.4747461 0.0011571045 1.4770976 0.001153502 1.4794491 0.0011498215 1.4818006 0.0011460618 1.4841522 0.0011422217 1.4865037 0.0011383002 1.4888552 0.001134296 1.4912067 0.0011302082 1.4935582 0.0011260357 1.4959097 0.0011217776 1.4982612 0.0011174329 1.5006127 0.0011130008 1.5029642 0.0011084804 1.5053158 0.0011038709 1.5076673 0.0010991718 1.5100188 0.0010943823 1.5123703 0.0010895019 1.5147218 0.00108453 1.5170733 0.0010794663 1.5194248 0.0010743104 1.5217763 0.001069062 1.5241278 0.0010637209 1.5264794 0.0010582869 1.5288309 0.00105276 1.5311824 0.0010471402 1.5335339 0.0010414277 1.5358854 0.0010356225 1.5382369 0.0010297249 1.5405884 0.0010237353 1.5429399 0.001017654 1.5452914 0.0010114816 1.547643 0.0010052185 1.5499945 0.00099886544 1.552346 0.00099242304 1.5546975 0.0009858921 1.557049 0.00097927342 1.5594005 0.00097256789 1.561752 0.00096577648 1.5641035 0.0009589002 1.566455 0.00095194011 1.5688065 0.00094489734 1.5711581 0.00093777308 1.5735096 0.00093056855 1.5758611 0.00092328503 1.5782126 0.00091592385 1.5805641 0.00090848638 1.5829156 0.00090097403 1.5852671 0.00089338824 1.5876186 0.0008857305 1.5899701 0.00087800234 1.5923217 0.0008702053 1.5946732 0.00086234096 1.5970247 0.00085441094 1.5993762 0.00084641687 1.6017277 0.00083836041 1.6040792 0.00083024325 1.6064307 0.00082206709 1.6087822 0.00081383365 1.6111337 0.00080554468 1.6134853 0.00079720194 1.6158368 0.00078880719 1.6181883 0.00078036223 1.6205398 0.00077186885 1.6228913 0.00076332888 1.6252428 0.00075474412 1.6275943 0.00074611643 1.6299458 0.00073744763 1.6322973 0.00072873958 1.6346489 0.00072011977 1.6370004 0.00071355526 1.6393519 0.00070696705 1.6417034 0.00070035525 1.6440549 0.00069372001 1.6464064 0.00068706148 1.6487579 0.00068037979 1.6511094 0.0006736751 1.6534609 0.00066694756 1.6558125 0.00066019732 1.658164 0.00065342455 1.6605155 0.00064662941 1.662867 0.00063981207 1.6652185 0.00063297271 1.66757 0.00062611149 1.6699215 0.00061922861 1.672273 0.00061232425 1.6746245 0.00060539859 1.6769761 0.00059845183 1.6793276 0.00059148416 1.6816791 0.00058449579 1.6840306 0.00057748692 1.6863821 0.00057045776 1.6887336 0.00056340852 1.6910851 0.00055633942 1.6934366 0.00054925067 1.6957881 0.00054214249 1.6981396 0.00053501512 1.7004912 0.00052786877 1.7028427 0.00052070369 1.7051942 0.00051352011 1.7075457 0.00050631825 1.7098972 0.00049909837 1.7122487 0.00049186071 1.7146002 0.00048460551 1.7169517 0.00047733301 1.7193032 0.00047004347 1.7216548 0.00046273714 1.7240063 0.00045541427 1.7263578 0.00044807512 1.7287093 0.00044071994 1.7310608 0.00043334898 1.7334123 0.00042596251 1.7357638 0.00041856078 1.7381153 0.00041114404 1.7404668 0.00040371257 1.7428184 0.0003962666 1.7451699 0.0003888064 1.7475214 0.00038133223 1.7498729 0.00037384432 1.7522244 0.00036634294 1.7545759 0.00035882833 1.7569274 0.00035130073 1.7592789 0.00034376038 1.7616304 0.00033620751 1.763982 0.00032864235 1.7663335 0.00032106511 1.768685 0.00031347602 1.7710365 0.00030587525 1.773388 0.00029826302 1.7757395 0.00029063948 1.778091 0.0002830048 1.7804425 0.00027535912 1.782794 0.00026770257 1.7851456 0.00026003523 1.7874971 0.00025235717 1.7898486 0.00024466844 1.7922001 0.00023696903 1.7945516 0.00022925889 1.7969031 0.00022153792 1.7992546 0.00021380595 1.8016061 0.00020606275 1.8039576 0.000198308 1.8063091 0.00019054124 1.8086607 0.00018276191 1.8110122 0.00017496929 1.8133637 0.00016716243 1.8157152 0.00015934017 1.8180667 0.00015150099 1.8204182 0.00014364301 1.8227697 0.0001357638 1.8251212 0.00012786026 1.8274727 0.00011992836 1.8298243 0.00011196284 1.8321758 0.00010395669 1.8345273 9.5900402e-05 1.8368788 8.7780803e-05 1.8392303 7.9579084e-05 1.8415818 7.1267394e-05 1.8439333 6.2802495e-05 1.8462848 5.4112834e-05 1.8486363 4.5068734e-05 1.8509879 3.5399488e-05 1.8533394 2.4371564e-05 1.8556909 7.3277432e-06 1.8580424 -1.9177324e-05 1.8603939 -2.589408e-05 1.8627454 -2.9233595e-05 1.8650969 -3.0334541e-05 1.8674484 -2.945132e-05 1.8697999 -2.6388235e-05 1.8721515 -2.0179586e-05 1.874503 -7.8964045e-11 1.87685 -2.6370597e-05 1.879197 -3.6317293e-05 1.8815441 -4.3241007e-05 1.8838911 -4.8447049e-05 1.8862381 -5.2441899e-05 1.8885851 -5.5480858e-05 1.8909322 -5.7708662e-05 1.8932792 -5.921083e-05 1.8956262 -6.0036033e-05 1.8979733 -6.0206519e-05 1.9003203 -5.9722471e-05 1.9026673 -5.8562364e-05 1.9050144 -5.6679469e-05 1.9073614 -5.3992997e-05 1.9097084 -5.0369231e-05 1.9120555 -4.5579635e-05 1.9144025 -3.9193104e-05 1.9167495 -3.0206027e-05 1.9190965 -1.4352857e-05 1.9214436 2.4155317e-05 1.9237906 3.816274e-05 1.9261376 4.9122862e-05 1.9284847 5.8768547e-05 1.9308317 6.7666092e-05 1.9331787 7.6079831e-05 1.9355258 8.4156048e-05 1.9378728 9.1984458e-05 1.9402198 9.9624028e-05 1.9425668 0.0001071155 1.9449139 0.00011448809 1.9472609 0.0001217634 1.9496079 0.00012895774 1.951955 0.00013608369 1.954302 0.00014315108 1.956649 0.00015016769 1.9589961 0.00015713974 1.9613431 0.00016407226 1.9636901 0.00017096931 1.9660372 0.00017783421 1.9683842 0.00018466967 1.9707312 0.0001914779 1.9730782 0.00019826072 1.9754253 0.0002050196 1.9777723 0.00021175575 1.9801193 0.00021847014 1.9824664 0.00022516353 1.9848134 0.00023183655 1.9871604 0.00023848965 1.9895075 0.00024512317 1.9918545 0.00025173738 1.9942015 0.00025833241 1.9965485 0.00026490835 1.9988956 0.00027146521 2.0012426 0.00027800295 2.0035896 0.00028452148 2.0059367 0.00029102066 2.0082837 0.00029750032 2.0106307 0.00030396025 2.0129778 0.00031040023 2.0153248 0.00031682001 2.0176718 0.00032321931 2.0200188 0.00032959784 2.0223659 0.0003359553 2.0247129 0.00034229137 2.0270599 0.00034860574 2.029407 0.00035489805 2.031754 0.00036116799 2.034101 0.0003674152 2.0364481 0.00037363935 2.0387951 0.00037984007 2.0411421 0.00038601704 2.0434892 0.00039216989 2.0458362 0.00039829828 2.0481832 0.00040440188 2.0505302 0.00041048033 2.0528773 0.00041653331 2.0552243 0.00042256048 2.0575713 0.00042856152 2.0599184 0.00043453611 2.0622654 0.00044048393 2.0646124 0.00044640467 2.0669595 0.00045229804 2.0693065 0.00045816375 2.0716535 0.0004640015 2.0740005 0.00046981103 2.0763476 0.00047559207 2.0786946 0.00048134436 2.0810416 0.00048706764 2.0833887 0.00049276169 2.0857357 0.00049842626 2.0880827 0.00050406114 2.0904298 0.00050966613 2.0927768 0.00051524101 2.0951238 0.0005207856 2.0974709 0.00052629971 2.0998179 0.00053178319 2.1021649 0.00053723587 2.1045119 0.00054265759 2.106859 0.00054804823 2.109206 0.00055340765 2.111553 0.00055873573 2.1139001 0.00056403237 2.1162471 0.00056929747 2.1185941 0.00057453093 2.1209412 0.00057973269 2.1232882 0.00058490267 2.1256352 0.00059004082 2.1279822 0.00059514708 2.1303293 0.00060022141 2.1326763 0.00060526378 2.1350233 0.00061027417 2.1373704 0.00061525256 2.1397174 0.00062019894 2.1420644 0.00062511332 2.1444115 0.00062999569 2.1467585 0.00063484608 2.1491055 0.00063966449 2.1514526 0.00064445096 2.1537996 0.00064920552 2.1561466 0.00065392819 2.1584936 0.00065861902 2.1608407 0.00066327805 2.1631877 0.00066790531 2.1655347 0.00067250087 2.1678818 0.00067706475 2.1702288 0.00068159701 2.1725758 0.0006860977 2.1749229 0.00069056685 2.1772699 0.00069500452 2.1796169 0.00069941073 2.1819639 0.00070378552 2.184311 0.00070812892 2.186658 0.00071244095 2.189005 0.00071672162 2.1913521 0.00072097094 2.1936991 0.00072518889 2.1960461 0.00072937547 2.1983932 0.00073353063 2.2007402 0.00073765433 2.2030872 0.00074174651 2.2054343 0.00074580707 2.2077813 0.00074983593 2.2101283 0.00075383294 2.2124753 0.00075779798 2.2148224 0.00076173085 2.2171694 0.00076563136 2.2195164 0.00076949928 2.2218635 0.00077333434 2.2242105 0.00077713624 2.2265575 0.00078090464 2.2289046 0.00078463918 2.2312516 0.00078833943 2.2335986 0.00079200492 2.2359456 0.00079563516 2.2382927 0.00079922957 2.2406397 0.00080278754 2.2429867 0.00080630841 2.2453338 0.00080979143 2.2476808 0.00081323582 2.2500278 0.00081664072 2.2523749 0.00082000519 2.2547219 0.00082332824 2.2570689 0.00082660878 2.2594159 0.00082984565 2.261763 0.00083303762 2.26411 0.00083618336 2.266457 0.00083928144 2.2688041 0.00084233036 2.2711511 0.00084532851 2.2734981 0.00084827419 2.2758452 0.0008511656 2.2781922 0.00085400082 2.2805392 0.00085677784 2.2828863 0.00085949455 2.2852333 0.00086214874 2.2875803 0.00086473806 2.2899273 0.0008672601 2.2922744 0.00086971233 2.2946214 0.00087209211 2.2969684 0.00087439672 2.2993155 0.00087662337 2.3016625 0.00087876915 2.3040095 0.00088083111 2.3063566 0.00088280624 2.3087036 0.00088469146 2.3110506 0.00088648368 2.3133976 0.00088817978 2.3157447 0.00088977666 2.3180917 0.00089127122 2.3204387 0.0008926604 2.3227858 0.00089394123 2.3251328 0.0008951108 2.3274798 0.00089616635 2.3298269 0.00089710521 2.3321739 0.00089792493 2.3345209 0.0008986232 2.336868 0.00089919795 2.339215 0.00089964735 2.341562 0.0008999698 2.343909 0.00090016399 2.3462561 0.00090022889 & @target G0.S2 @type xy 0 -5.0081653e-11 0.0023473519 1.2598164e-05 0.0046947037 2.5197591e-05 0.0070420556 3.7799539e-05 0.0093894074 5.0405251e-05 0.011736759 6.3015951e-05 0.014084111 7.5632836e-05 0.016431463 8.825707e-05 0.018778815 0.00010088978 0.021126167 0.00011353204 0.023473519 0.00012618488 0.02582087 0.00013884928 0.028168222 0.00015152613 0.030515574 0.00016421629 0.032862926 0.00017692053 0.035210278 0.00018963953 0.03755763 0.00020237391 0.039904982 0.00021512419 0.042252333 0.00022789082 0.044599685 0.00024067413 0.046947037 0.00025347438 0.049294389 0.00026629172 0.051641741 0.0002791262 0.053989093 0.00029197778 0.056336444 0.0003048463 0.058683796 0.0003177315 0.061031148 0.00033063302 0.0633785 0.00034355038 0.065725852 0.00035648301 0.068073204 0.00036943022 0.070420556 0.00038239122 0.072767907 0.0003953651 0.075115259 0.00040835085 0.077462611 0.00042134736 0.079809963 0.00043435341 0.082157315 0.00044736766 0.084504667 0.00046038869 0.086852019 0.00047341497 0.08919937 0.00048644487 0.091546722 0.00049947664 0.093894074 0.00051250847 0.096241426 0.00052553842 0.098588778 0.00053856449 0.10093613 0.00055158456 0.10328348 0.00056459644 0.10563083 0.00057759783 0.10797819 0.00059058638 0.11032554 0.00060355962 0.11267289 0.00061651504 0.11502024 0.00062945002 0.11736759 0.00064236188 0.11971494 0.00065524788 0.1220623 0.00066810519 0.12440965 0.00068093092 0.126757 0.00069372215 0.12910435 0.00070647585 0.1314517 0.00071918898 0.13379906 0.00073185843 0.13614641 0.00074448104 0.13849376 0.00075705361 0.14084111 0.00076957292 0.14318846 0.0007820357 0.14553581 0.00079443864 0.14788317 0.00080677844 0.15023052 0.00081905176 0.15257787 0.00083125524 0.15492522 0.00084338554 0.15727257 0.0008554393 0.15961993 0.00086741318 0.16196728 0.00087930384 0.16431463 0.00089110797 0.16666198 0.00090282228 0.16900933 0.00091444354 0.17135669 0.00092596853 0.17370404 0.0009373941 0.17605139 0.00094871717 0.17839874 0.00095993471 0.18074609 0.00097104377 0.18309344 0.0009820415 0.1854408 0.00099292514 0.18778815 0.001003692 0.1901355 0.0010143396 0.19248285 0.0010248654 0.1948302 0.0010352671 0.19717756 0.0010455426 0.19952491 0.0010556899 0.20187226 0.001065707 0.20421961 0.0010755923 0.20656696 0.0010853441 0.20891432 0.0010949611 0.21126167 0.001104442 0.21360902 0.0011137857 0.21595637 0.0011229914 0.21830372 0.0011320583 0.22065107 0.0011409859 0.22299843 0.0011497738 0.22534578 0.0011584218 0.22769313 0.0011669299 0.23004048 0.0011752982 0.23238783 0.001183527 0.23473519 0.0011916168 0.23708254 0.0011995682 0.23942989 0.0012073819 0.24177724 0.0012150589 0.24412459 0.0012226002 0.24647194 0.0012300069 0.2488193 0.0012372804 0.25116665 0.001244422 0.253514 0.0012514332 0.25586135 0.0012583157 0.2582087 0.001265071 0.26055606 0.001271701 0.26290341 0.0012782074 0.26525076 0.0012845922 0.26759811 0.0012908572 0.26994546 0.0012970044 0.27229282 0.0013030359 0.27464017 0.0013089536 0.27698752 0.0013147597 0.27933487 0.0013204562 0.28168222 0.0013260452 0.28402957 0.0013315287 0.28637693 0.0013369089 0.28872428 0.0013421878 0.29107163 0.0013473674 0.29341898 0.00135245 0.29576633 0.0013574373 0.29811369 0.0013623316 0.30046104 0.0013671346 0.30280839 0.0013718485 0.30515574 0.001376475 0.30750309 0.0013810162 0.30985044 0.0013854738 0.3121978 0.0013898496 0.31454515 0.0013941455 0.3168925 0.0013983631 0.31923985 0.0014025042 0.3215872 0.0014065704 0.32393456 0.0014105633 0.32628191 0.0014144846 0.32862926 0.0014183357 0.33097661 0.0014221182 0.33332396 0.0014258334 0.33567132 0.0014294829 0.33801867 0.001433068 0.34036602 0.0014365901 0.34271337 0.0014400504 0.34506072 0.0014434502 0.34740807 0.0014467908 0.34975543 0.0014500733 0.35210278 0.001453299 0.35445013 0.0014564688 0.35679748 0.001459584 0.35914483 0.0014626456 0.36149219 0.0014656546 0.36383954 0.001468612 0.36618689 0.0014715187 0.36853424 0.0014743759 0.37088159 0.0014771842 0.37322894 0.0014799447 0.3755763 0.0014826581 0.37792365 0.0014853254 0.380271 0.0014879472 0.38261835 0.0014905245 0.3849657 0.001493058 0.38731306 0.0014955484 0.38966041 0.0014979964 0.39200776 0.0015004028 0.39435511 0.0015027682 0.39670246 0.0015050933 0.39904982 0.0015073787 0.40139717 0.001509625 0.40374452 0.0015118329 0.40609187 0.0015140029 0.40843922 0.0015161357 0.41078657 0.0015182317 0.41313393 0.0015202916 0.41548128 0.0015223158 0.41782863 0.0015243049 0.42017598 0.0015262594 0.42252333 0.0015281798 0.42487069 0.0015300665 0.42721804 0.00153192 0.42956539 0.0015337408 0.43191274 0.0015355293 0.43426009 0.0015372859 0.43660744 0.0015390111 0.4389548 0.0015407053 0.44130215 0.0015423689 0.4436495 0.0015440022 0.44599685 0.0015456057 0.4483442 0.0015471798 0.45069156 0.0015487247 0.45303891 0.0015502409 0.45538626 0.0015517288 0.45773361 0.0015531886 0.46008096 0.0015546206 0.46242832 0.0015560253 0.46477567 0.0015574029 0.46712302 0.0015587538 0.46947037 0.0015600782 0.47181772 0.0015613765 0.47416507 0.0015626489 0.47651243 0.0015638957 0.47885978 0.0015651173 0.48120713 0.0015663138 0.48355448 0.0015674856 0.48590183 0.001568633 0.48824919 0.001569756 0.49059654 0.0015708551 0.49294389 0.0015719305 0.49529124 0.0015729824 0.49763859 0.001574011 0.49998594 0.0015750166 0.5023333 0.0015759994 0.50468065 0.0015769596 0.507028 0.0015778974 0.50937535 0.001578813 0.5117227 0.0015797067 0.51407006 0.0015805786 0.51641741 0.001581429 0.51876476 0.0015822579 0.52111211 0.0015830657 0.52345946 0.0015838524 0.52580682 0.0015846183 0.52815417 0.0015853635 0.53050152 0.0015860882 0.53284887 0.0015867925 0.53519622 0.0015874767 0.53754357 0.0015881408 0.53989093 0.0015887851 0.54223828 0.0015894095 0.54458563 0.0015900144 0.54693298 0.0015905998 0.54928033 0.0015911659 0.55162769 0.0015917127 0.55397504 0.0015922404 0.55632239 0.0015927492 0.55866974 0.0015932391 0.56101709 0.0015937102 0.56336444 0.0015941627 0.5657118 0.0015945967 0.56805915 0.0015950122 0.5704065 0.0015954093 0.57275385 0.0015957882 0.5751012 0.0015961488 0.57744856 0.0015964914 0.57979591 0.001596816 0.58214326 0.0015971226 0.58449061 0.0015974113 0.58683796 0.0015976822 0.58918532 0.0015979353 0.59153267 0.0015981707 0.59388002 0.0015983885 0.59622737 0.0015985887 0.59857472 0.0015987713 0.60092207 0.0015989364 0.60326943 0.001599084 0.60561678 0.0015992142 0.60796413 0.001599327 0.61031148 0.0015994223 0.61265883 0.0015995003 0.61500619 0.001599561 0.61735354 0.0015996043 0.61970089 0.0015996303 0.62204824 0.0015996389 0.62439527 0.0015996651 0.6267423 0.0015996771 0.62908933 0.001599675 0.63143636 0.0015996587 0.63378339 0.0015996284 0.63613042 0.0015995839 0.63847745 0.0015995253 0.64082448 0.0015994528 0.64317151 0.0015993663 0.64551855 0.001599266 0.64786558 0.0015991519 0.65021261 0.0015990242 0.65255964 0.0015988829 0.65490667 0.0015987283 0.6572537 0.0015985604 0.65960073 0.0015983794 0.66194776 0.0015981856 0.66429479 0.0015979789 0.66664182 0.0015977598 0.66898885 0.0015975283 0.67133588 0.0015972847 0.67368291 0.0015970291 0.67602994 0.0015967619 0.67837697 0.0015964832 0.680724 0.0015961932 0.68307103 0.0015958923 0.68541806 0.0015955806 0.68776509 0.0015952585 0.69011212 0.0015949261 0.69245915 0.0015945838 0.69480618 0.0015942317 0.69715321 0.0015938702 0.69950024 0.0015934996 0.70184727 0.00159312 0.70419431 0.0015927318 0.70654134 0.0015923352 0.70888837 0.0015919306 0.7112354 0.0015915181 0.71358243 0.001591098 0.71592946 0.0015906707 0.71827649 0.0015902363 0.72062352 0.0015897951 0.72297055 0.0015893475 0.72531758 0.0015888935 0.72766461 0.0015884335 0.73001164 0.0015879678 0.73235867 0.0015874965 0.7347057 0.0015870199 0.73705273 0.0015865382 0.73939976 0.0015860517 0.74174679 0.0015855605 0.74409382 0.0015850649 0.74644085 0.0015845652 0.74878788 0.0015840614 0.75113491 0.0015835538 0.75348194 0.0015830425 0.75582897 0.0015825278 0.758176 0.0015820099 0.76052303 0.0015814889 0.76287006 0.0015809649 0.7652171 0.0015804381 0.76756413 0.0015799087 0.76991116 0.0015793769 0.77225819 0.0015788426 0.77460522 0.0015783062 0.77695225 0.0015777676 0.77929928 0.0015772271 0.78164631 0.0015766847 0.78399334 0.0015761406 0.78634037 0.0015755948 0.7886874 0.0015750474 0.79103443 0.0015744985 0.79338146 0.0015739483 0.79572849 0.0015733967 0.79807552 0.001572844 0.80042255 0.00157229 0.80276958 0.0015717349 0.80511661 0.0015711788 0.80746364 0.0015706217 0.80981067 0.0015700636 0.8121577 0.0015695047 0.81450473 0.0015689449 0.81685176 0.0015683843 0.81919879 0.001567823 0.82154582 0.0015672609 0.82389285 0.0015666982 0.82623989 0.0015661348 0.82858692 0.0015655707 0.83093395 0.0015650061 0.83328098 0.0015644409 0.83562801 0.0015638752 0.83797504 0.0015633089 0.84032207 0.0015627422 0.8426691 0.001562175 0.84501613 0.0015616073 0.84736316 0.0015610393 0.84971019 0.0015604709 0.85205722 0.0015599021 0.85440425 0.001559333 0.85675128 0.0015587635 0.85909831 0.0015581939 0.86144534 0.0015576239 0.86379237 0.0015570538 0.8661394 0.0015564835 0.86848643 0.0015559131 0.87083346 0.0015553426 0.87318049 0.001554772 0.87552752 0.0015542015 0.87787455 0.001553631 0.88022158 0.0015530606 0.88256861 0.0015524904 0.88491565 0.0015519204 0.88726268 0.0015513506 0.88960971 0.0015507812 0.89195674 0.0015502123 0.89430377 0.0015496438 0.8966508 0.0015490759 0.89899783 0.0015485086 0.90134486 0.001547942 0.90369189 0.0015473763 0.90603892 0.0015468115 0.90838595 0.0015462477 0.91073298 0.001545685 0.91308001 0.0015451235 0.91542704 0.0015445633 0.91777407 0.0015440046 0.9201211 0.0015434474 0.92246813 0.0015428919 0.92481516 0.0015423382 0.92716219 0.0015417864 0.92950922 0.0015412367 0.93185625 0.0015406892 0.93420328 0.0015401441 0.93655031 0.0015396014 0.93889734 0.0015390614 0.94124437 0.0015385242 0.94359141 0.0015379899 0.94593844 0.0015374587 0.94828547 0.0015369308 0.9506325 0.0015364064 0.95297953 0.0015358855 0.95532656 0.0015353685 0.95767359 0.0015348554 0.96002062 0.0015343464 0.96236765 0.0015338417 0.96471468 0.0015333415 0.96706171 0.0015328461 0.96940874 0.0015323554 0.97175577 0.0015318699 0.9741028 0.0015313895 0.97644983 0.0015309147 0.97879686 0.0015304454 0.98114389 0.001529982 0.98349092 0.0015295246 0.98583795 0.0015290734 0.98818498 0.0015286286 0.99053201 0.0015281904 0.99287904 0.001527759 0.99522607 0.0015273346 0.9975731 0.0015269174 0.99992013 0.0015265076 1.0022672 0.0015261054 1.0046142 0.0015257109 1.0069612 0.0015253244 1.0093083 0.0015249461 1.0116553 0.001524576 1.0140023 0.0015242145 1.0163493 0.0015238618 1.0186964 0.0015235179 1.0210434 0.001523183 1.0233904 0.0015228574 1.0257375 0.0015225412 1.0280845 0.0015222346 1.0304315 0.0015219378 1.0327786 0.0015216508 1.0351256 0.0015213739 1.0374726 0.0015211072 1.0398197 0.0015208509 1.0421667 0.0015206051 1.0445137 0.0015203699 1.0468607 0.0015201455 1.0492078 0.0015199321 1.0515548 0.0015197296 1.0539018 0.0015195383 1.0562489 0.0015193583 1.0585959 0.0015191896 1.0609429 0.0015190324 1.06329 0.0015188868 1.065637 0.0015187528 1.067984 0.0015186305 1.070331 0.0015185201 1.0726781 0.0015184215 1.0750251 0.0015183348 1.0773721 0.0015182602 1.0797192 0.0015181975 1.0820662 0.001518147 1.0844132 0.0015181085 1.0867603 0.0015180822 1.0891073 0.001518068 1.0914543 0.001518066 1.0938014 0.0015180761 1.0961529 0.0015180594 1.0985044 0.001518029 1.1008559 0.0015179848 1.1032074 0.0015179269 1.1055589 0.0015178553 1.1079104 0.0015177699 1.1102619 0.0015176708 1.1126134 0.0015175581 1.1149649 0.0015174316 1.1173165 0.0015172914 1.119668 0.0015171374 1.1220195 0.0015169697 1.124371 0.0015167883 1.1267225 0.0015165932 1.129074 0.0015163843 1.1314255 0.0015161616 1.133777 0.0015159251 1.1361285 0.0015156749 1.1384801 0.0015154109 1.1408316 0.0015151331 1.1431831 0.0015148415 1.1455346 0.0015145361 1.1478861 0.0015142169 1.1502376 0.001513884 1.1525891 0.0015135373 1.1549406 0.0015131768 1.1572921 0.0015128025 1.1596437 0.0015124146 1.1619952 0.001512013 1.1643467 0.0015115977 1.1666982 0.0015111688 1.1690497 0.0015107264 1.1714012 0.0015102705 1.1737527 0.0015098012 1.1761042 0.0015093186 1.1784557 0.0015088228 1.1808073 0.0015083138 1.1831588 0.0015077919 1.1855103 0.0015072571 1.1878618 0.0015067096 1.1902133 0.0015061496 1.1925648 0.0015055772 1.1949163 0.0015049926 1.1972678 0.0015043961 1.1996193 0.0015037879 1.2019709 0.0015031682 1.2043224 0.0015025374 1.2066739 0.0015018957 1.2090254 0.0015012434 1.2113769 0.001500581 1.2137284 0.0014999086 1.2160799 0.0014992269 1.2184314 0.001498536 1.2207829 0.0014978366 1.2231344 0.001497129 1.225486 0.0014964138 1.2278375 0.0014956915 1.230189 0.0014949625 1.2325405 0.0014942276 1.234892 0.0014934872 1.2372435 0.0014927421 1.239595 0.0014919928 1.2419465 0.00149124 1.244298 0.0014904845 1.2466496 0.0014897269 1.2490011 0.0014889681 1.2513526 0.0014882086 1.2537041 0.0014874495 1.2560556 0.0014866914 1.2584071 0.0014859351 1.2607586 0.0014851816 1.2631101 0.0014844316 1.2654616 0.0014836859 1.2678132 0.0014829455 1.2701647 0.0014822112 1.2725162 0.0014814838 1.2748677 0.0014807641 1.2772192 0.0014800531 1.2795707 0.0014793514 1.2819222 0.0014786599 1.2842737 0.0014779794 1.2866252 0.0014773105 1.2889768 0.001476654 1.2913283 0.0014760106 1.2936798 0.0014753808 1.2960313 0.0014747652 1.2983828 0.0014741644 1.3007343 0.0014735788 1.3030858 0.0014730088 1.3054373 0.0014724548 1.3077888 0.0014719171 1.3101404 0.0014713958 1.3124919 0.0014708912 1.3148434 0.0014704034 1.3171949 0.0014699322 1.3195464 0.0014694778 1.3218979 0.00146904 1.3242494 0.0014686186 1.3266009 0.0014682133 1.3289524 0.0014678238 1.331304 0.0014674497 1.3336555 0.0014670906 1.336007 0.001466746 1.3383585 0.0014664153 1.34071 0.0014660978 1.3430615 0.0014657928 1.345413 0.0014654997 1.3477645 0.0014652176 1.350116 0.0014649457 1.3524675 0.0014646831 1.3548191 0.0014644289 1.3571706 0.001464182 1.3595221 0.0014639415 1.3618736 0.0014637063 1.3642251 0.0014634752 1.3665766 0.0014632473 1.3689281 0.0014630213 1.3712796 0.001462796 1.3736311 0.0014625702 1.3759827 0.0014623427 1.3783342 0.0014621121 1.3806857 0.0014618771 1.3830372 0.0014616364 1.3853887 0.0014613886 1.3877402 0.0014611323 1.3900917 0.0014608662 1.3924432 0.0014605886 1.3947947 0.0014602982 1.3971463 0.0014599935 1.3994978 0.0014596728 1.4018493 0.0014593348 1.4042008 0.0014589777 1.4065523 0.0014586001 1.4089038 0.0014582002 1.4112553 0.0014577764 1.4136068 0.0014573271 1.4159583 0.0014568506 1.4183099 0.0014563452 1.4206614 0.0014558091 1.4230129 0.0014552407 1.4253644 0.0014546381 1.4277159 0.0014539996 1.4300674 0.0014533234 1.4324189 0.0014526077 1.4347704 0.0014518508 1.4371219 0.0014510508 1.4394735 0.0014502059 1.441825 0.0014493143 1.4441765 0.0014483742 1.446528 0.0014473838 1.4488795 0.0014463413 1.451231 0.0014452449 1.4535825 0.0014440928 1.455934 0.0014428833 1.4582855 0.0014416147 1.460637 0.0014402852 1.4629886 0.0014388932 1.4653401 0.0014374369 1.4676916 0.0014359147 1.4700431 0.0014343251 1.4723946 0.0014326665 1.4747461 0.0014309373 1.4770976 0.001429136 1.4794491 0.0014272613 1.4818006 0.0014253116 1.4841522 0.0014232856 1.4865037 0.001421182 1.4888552 0.0014189995 1.4912067 0.0014167368 1.4935582 0.0014143928 1.4959097 0.0014119663 1.4982612 0.0014094562 1.5006127 0.0014068614 1.5029642 0.0014041809 1.5053158 0.0014014136 1.5076673 0.0013985587 1.5100188 0.0013956152 1.5123703 0.0013925822 1.5147218 0.0013894588 1.5170733 0.0013862442 1.5194248 0.0013829377 1.5217763 0.0013795383 1.5241278 0.0013760455 1.5264794 0.0013724584 1.5288309 0.0013687764 1.5311824 0.0013649987 1.5335339 0.0013611246 1.5358854 0.0013571536 1.5382369 0.0013530849 1.5405884 0.001348918 1.5429399 0.0013446523 1.5452914 0.0013402871 1.547643 0.0013358219 1.5499945 0.0013312561 1.552346 0.0013265892 1.5546975 0.0013218206 1.557049 0.0013169499 1.5594005 0.0013119765 1.561752 0.0013069001 1.5641035 0.0013017201 1.566455 0.0012964361 1.5688065 0.0012910478 1.5711581 0.0012855548 1.5735096 0.0012799568 1.5758611 0.0012742534 1.5782126 0.0012684444 1.5805641 0.0012625296 1.5829156 0.0012565087 1.5852671 0.0012503817 1.5876186 0.0012441484 1.5899701 0.0012378088 1.5923217 0.0012313628 1.5946732 0.0012248104 1.5970247 0.0012181518 1.5993762 0.001211387 1.6017277 0.0012045162 1.6040792 0.0011975396 1.6064307 0.0011904576 1.6087822 0.0011832704 1.6111337 0.0011759784 1.6134853 0.001168582 1.6158368 0.0011610817 1.6181883 0.0011534781 1.6205398 0.0011457716 1.6228913 0.0011379629 1.6252428 0.0011300528 1.6275943 0.0011220419 1.6299458 0.0011139309 1.6322973 0.0011057208 1.6346489 0.0010974123 1.6370004 0.0010890064 1.6393519 0.0010805039 1.6417034 0.001071906 1.6440549 0.0010632136 1.6464064 0.0010544277 1.6487579 0.0010455495 1.6511094 0.0010365801 1.6534609 0.0010275206 1.6558125 0.0010183723 1.658164 0.0010091364 1.6605155 0.00099981408 1.662867 0.00099040666 1.6652185 0.00098091544 1.66757 0.00097134175 1.6699215 0.00096168694 1.672273 0.00095195239 1.6746245 0.00094213949 1.6769761 0.00093224964 1.6793276 0.0009222843 1.6816791 0.0009122449 1.6840306 0.00090213292 1.6863821 0.00089194983 1.6887336 0.00088169714 1.6910851 0.00087137636 1.6934366 0.00086098903 1.6957881 0.00085053667 1.6981396 0.00084002085 1.7004912 0.00082944312 1.7028427 0.00081880508 1.7051942 0.0008081083 1.7075457 0.00079735438 1.7098972 0.00078654494 1.7122487 0.00077568158 1.7146002 0.00076476594 1.7169517 0.00075379964 1.7193032 0.00074278433 1.7216548 0.00073172164 1.7240063 0.00072061324 1.7263578 0.00070946078 1.7287093 0.00069826591 1.7310608 0.0006870303 1.7334123 0.00067575561 1.7357638 0.00066444351 1.7381153 0.00065309565 1.7404668 0.00064171372 1.7428184 0.00063029935 1.7451699 0.00061885421 1.7475214 0.00060737995 1.7498729 0.00059587821 1.7522244 0.00058435062 1.7545759 0.0005727988 1.7569274 0.00056122437 1.7592789 0.00054962891 1.7616304 0.00053801401 1.763982 0.00052638122 1.7663335 0.00051473208 1.768685 0.00050306811 1.7710365 0.00049139078 1.773388 0.00047970158 1.7757395 0.00046800191 1.778091 0.00045629318 1.7804425 0.00044457674 1.782794 0.00043285391 1.7851456 0.00042112597 1.7874971 0.00040939415 1.7898486 0.00039765963 1.7922001 0.00038592352 1.7945516 0.00037418692 1.7969031 0.00036245083 1.7992546 0.00035071619 1.8016061 0.00033898389 1.8039576 0.00032725474 1.8063091 0.00031552947 1.8086607 0.00030380872 1.8110122 0.00029209307 1.8133637 0.00028038296 1.8157152 0.00026867877 1.8180667 0.00025698075 1.8204182 0.000245289 1.8227697 0.00023360351 1.8251212 0.0002219241 1.8274727 0.00021025041 1.8298243 0.00019858183 1.8321758 0.00018691752 1.8345273 0.00017525629 1.8368788 0.0001635965 1.8392303 0.00015193598 1.8415818 0.00014027178 1.8439333 0.00012859985 1.8462848 0.00011691453 1.8486363 0.00010520772 1.8509879 9.3467309e-05 1.8533394 8.167437e-05 1.8556909 6.9797291e-05 1.8580424 5.77785e-05 1.8603939 4.549906e-05 1.8627454 3.2657602e-05 1.8650969 1.8080338e-05 1.8674484 -1.221319e-05 1.8697999 -1.9028199e-05 1.8721515 -1.766895e-05 1.874503 -5.0081653e-11 1.87685 -2.5727768e-05 1.879197 -3.3238503e-05 1.8815441 -3.6438652e-05 1.8838911 -3.6469657e-05 1.8862381 -3.3328931e-05 1.8885851 -2.587299e-05 1.8909322 -2.2723076e-06 1.8932792 2.9707338e-05 1.8956262 4.465645e-05 1.8979733 5.7709086e-05 1.9003203 6.9938343e-05 1.9026673 8.1716975e-05 1.9050144 9.3217594e-05 1.9073614 0.00010453317 1.9097084 0.00011571878 1.9120555 0.00012680928 1.9144025 0.00013782784 1.9167495 0.0001487904 1.9190965 0.00015970827 1.9214436 0.00017058961 1.9237906 0.00018144043 1.9261376 0.00019226518 1.9284847 0.00020306721 1.9308317 0.00021384901 1.9331787 0.00022461244 1.9355258 0.00023535888 1.9378728 0.00024608932 1.9402198 0.00025680445 1.9425668 0.00026750474 1.9449139 0.00027819045 1.9472609 0.00028886169 1.9496079 0.00029951843 1.951955 0.00031016055 1.954302 0.00032078783 1.956649 0.00033139999 1.9589961 0.00034199669 1.9613431 0.00035257752 1.9636901 0.00036314203 1.9660372 0.00037368977 1.9683842 0.0003842202 1.9707312 0.00039473281 1.9730782 0.00040522703 1.9754253 0.00041570229 1.9777723 0.00042615801 1.9801193 0.00043659357 1.9824664 0.00044700837 1.9848134 0.00045740178 1.9871604 0.00046777319 1.9895075 0.00047812195 1.9918545 0.00048844743 1.9942015 0.00049874899 1.9965485 0.000509026 1.9988956 0.00051927781 2.0012426 0.00052950378 2.0035896 0.00053970328 2.0059367 0.00054987566 2.0082837 0.0005600203 2.0106307 0.00057013657 2.0129778 0.00058022384 2.0153248 0.00059028149 2.0176718 0.00060030889 2.0200188 0.00061030545 2.0223659 0.00062027056 2.0247129 0.00063020361 2.0270599 0.00064010401 2.029407 0.00064997118 2.031754 0.00065980453 2.034101 0.00066960351 2.0364481 0.00067936753 2.0387951 0.00068909605 2.0411421 0.00069878852 2.0434892 0.0007084444 2.0458362 0.00071806316 2.0481832 0.00072764428 2.0505302 0.00073718724 2.0528773 0.00074669154 2.0552243 0.00075615668 2.0575713 0.00076558219 2.0599184 0.00077496758 2.0622654 0.00078431239 2.0646124 0.00079361616 2.0669595 0.00080287845 2.0693065 0.00081209882 2.0716535 0.00082127685 2.0740005 0.00083041212 2.0763476 0.00083950423 2.0786946 0.00084855278 2.0810416 0.00085755739 2.0833887 0.00086651769 2.0857357 0.00087543331 2.0880827 0.00088430391 2.0904298 0.00089312914 2.0927768 0.00090190868 2.0951238 0.00091064221 2.0974709 0.00091932942 2.0998179 0.00092797002 2.1021649 0.00093656372 2.1045119 0.00094511024 2.106859 0.00095360934 2.109206 0.00096206076 2.111553 0.00097046425 2.1139001 0.00097881961 2.1162471 0.0009871266 2.1185941 0.00099538502 2.1209412 0.0010035947 2.1232882 0.0010117554 2.1256352 0.0010198671 2.1279822 0.0010279294 2.1303293 0.0010359424 2.1326763 0.0010439058 2.1350233 0.0010518196 2.1373704 0.0010596835 2.1397174 0.0010674977 2.1420644 0.0010752618 2.1444115 0.001082976 2.1467585 0.00109064 2.1491055 0.0010982539 2.1514526 0.0011058176 2.1537996 0.0011133311 2.1561466 0.0011207943 2.1584936 0.0011282074 2.1608407 0.0011355702 2.1631877 0.0011428828 2.1655347 0.0011501452 2.1678818 0.0011573575 2.1702288 0.0011645197 2.1725758 0.0011716318 2.1749229 0.001178694 2.1772699 0.0011857064 2.1796169 0.001192669 2.1819639 0.0011995819 2.184311 0.0012064452 2.186658 0.0012132592 2.189005 0.0012200238 2.1913521 0.0012267393 2.1936991 0.0012334059 2.1960461 0.0012400236 2.1983932 0.0012465927 2.2007402 0.0012531133 2.2030872 0.0012595857 2.2054343 0.00126601 2.2077813 0.0012723864 2.2101283 0.0012787152 2.2124753 0.0012849966 2.2148224 0.0012912308 2.2171694 0.0012974181 2.2195164 0.0012993614 2.2218635 0.001296547 2.2242105 0.0012937386 2.2265575 0.0012909371 2.2289046 0.0012881433 2.2312516 0.0012853581 2.2335986 0.0012825825 2.2359456 0.0012798175 2.2382927 0.001277064 2.2406397 0.0012743232 2.2429867 0.0012715962 2.2453338 0.0012688841 2.2476808 0.0012661881 2.2500278 0.0012635096 2.2523749 0.0012608498 2.2547219 0.0012582102 2.2570689 0.0012555921 2.2594159 0.0012529972 2.261763 0.001250427 2.26411 0.0012478831 2.266457 0.0012453674 2.2688041 0.0012428816 2.2711511 0.0012404276 2.2734981 0.0012380075 2.2758452 0.0012356232 2.2781922 0.001233277 2.2805392 0.0012309711 2.2828863 0.0012287078 2.2852333 0.0012264896 2.2875803 0.0012243189 2.2899273 0.0012221985 2.2922744 0.0012201309 2.2946214 0.001218119 2.2969684 0.0012161657 2.2993155 0.0012142738 2.3016625 0.0012124463 2.3040095 0.0012106863 2.3063566 0.0012089969 2.3087036 0.0012073812 2.3110506 0.0012058424 2.3133976 0.0012043836 2.3157447 0.001203008 2.3180917 0.0012017186 2.3204387 0.0012005185 2.3227858 0.0011994107 2.3251328 0.001198398 2.3274798 0.0011974831 2.3298269 0.0011966687 2.3321739 0.0011959572 2.3345209 0.0011953508 2.336868 0.0011948514 2.339215 0.0011944609 2.341562 0.0011941806 2.343909 0.0011940118 2.3462561 0.0011939554 & @target G0.S3 @type xy 0 0.0015388971 0.0023473519 0.0015388839 0.0046947037 0.0015388443 0.0070420556 0.0015387785 0.0093894074 0.0015386868 0.011736759 0.0015385695 0.014084111 0.0015384271 0.016431463 0.0015382601 0.018778815 0.0015380692 0.021126167 0.0015378552 0.023473519 0.0015376189 0.02582087 0.0015373613 0.028168222 0.0015370833 0.030515574 0.0015367861 0.032862926 0.0015364709 0.035210278 0.0015361388 0.03755763 0.0015357912 0.039904982 0.0015354294 0.042252333 0.001535055 0.044599685 0.0015346693 0.046947037 0.0015342739 0.049294389 0.0015338704 0.051641741 0.0015334604 0.053989093 0.0015330455 0.056336444 0.0015326274 0.058683796 0.0015322077 0.061031148 0.0015317882 0.0633785 0.0015313707 0.065725852 0.0015309568 0.068073204 0.0015305483 0.070420556 0.0015301469 0.072767907 0.0015297544 0.075115259 0.0015293726 0.077462611 0.0015290031 0.079809963 0.0015286477 0.082157315 0.0015283081 0.084504667 0.0015279861 0.086852019 0.0015276832 0.08919937 0.0015274013 0.091546722 0.0015271419 0.093894074 0.0015269068 0.096241426 0.0015266974 0.098588778 0.0015265154 0.10093613 0.0015263625 0.10328348 0.0015262401 0.10563083 0.0015261498 0.10797819 0.0015260931 0.11032554 0.0015260715 0.11267289 0.0015260866 0.11502024 0.0015261396 0.11736759 0.0015262321 0.11971494 0.0015263656 0.1220623 0.0015265413 0.12440965 0.0015267607 0.126757 0.0015270251 0.12910435 0.001527336 0.1314517 0.0015276946 0.13379906 0.0015281023 0.13614641 0.0015285604 0.13849376 0.0015290702 0.14084111 0.0015296329 0.14318846 0.00153025 0.14553581 0.0015309226 0.14788317 0.0015316522 0.15023052 0.0015324398 0.15257787 0.0015332869 0.15492522 0.0015341946 0.15727257 0.0015351643 0.15961993 0.0015361972 0.16196728 0.0015372946 0.16431463 0.0015384578 0.16666198 0.0015396881 0.16900933 0.0015409867 0.17135669 0.0015423549 0.17370404 0.001543794 0.17605139 0.0015453053 0.17839874 0.0015468901 0.18074609 0.0015485497 0.18309344 0.0015502854 0.1854408 0.0015520984 0.18778815 0.0015539901 0.1901355 0.0015559618 0.19248285 0.0015580148 0.1948302 0.0015601503 0.19717756 0.0015623696 0.19952491 0.001564674 0.20187226 0.0015670649 0.20421961 0.0015695433 0.20656696 0.0015721105 0.20891432 0.0015747678 0.21126167 0.0015775163 0.21360902 0.0015803571 0.21595637 0.0015832914 0.21830372 0.0015863203 0.22065107 0.0015894447 0.22299843 0.0015926656 0.22534578 0.001595984 0.22769313 0.0015994007 0.23004048 0.0016029164 0.23238783 0.0016065319 0.23473519 0.0016102479 0.23708254 0.0016140647 0.23942989 0.0016179829 0.24177724 0.0016220029 0.24412459 0.0016261247 0.24647194 0.0016303486 0.2488193 0.0016346744 0.25116665 0.0016391021 0.253514 0.0016436313 0.25586135 0.0016482616 0.2582087 0.0016529924 0.26055606 0.001657823 0.26290341 0.0016627525 0.26525076 0.0016677798 0.26759811 0.0016729037 0.26994546 0.0016781228 0.27229282 0.0016834354 0.27464017 0.0016888399 0.27698752 0.0016919042 0.27933487 0.0016909454 0.28168222 0.0016899927 0.28402957 0.0016890464 0.28637693 0.0016881071 0.28872428 0.0016871752 0.29107163 0.0016862511 0.29341898 0.0016853354 0.29576633 0.0016844284 0.29811369 0.0016835307 0.30046104 0.0016826429 0.30280839 0.0016817653 0.30515574 0.0016808986 0.30750309 0.0016800433 0.30985044 0.0016791999 0.3121978 0.001678369 0.31454515 0.0016775512 0.3168925 0.0016767471 0.31923985 0.0016759572 0.3215872 0.0016751822 0.32393456 0.0016744227 0.32628191 0.0016736793 0.32862926 0.0016729528 0.33097661 0.0016722438 0.33332396 0.0016715529 0.33567132 0.001670881 0.33801867 0.0016702287 0.34036602 0.0016695967 0.34271337 0.0016689859 0.34506072 0.0016683969 0.34740807 0.0016678307 0.34975543 0.001667288 0.35210278 0.0016667696 0.35445013 0.0016662764 0.35679748 0.0016658094 0.35914483 0.0016653693 0.36149219 0.001664957 0.36383954 0.0016645737 0.36618689 0.0016642201 0.36853424 0.0016638974 0.37088159 0.0016636064 0.37322894 0.0016633482 0.3755763 0.001663124 0.37792365 0.0016629347 0.380271 0.0016627815 0.38261835 0.0016626655 0.3849657 0.0016625879 0.38731306 0.0016625498 0.38966041 0.0016625525 0.39200776 0.0016625972 0.39435511 0.0016626851 0.39670246 0.0016628175 0.39904982 0.0016629958 0.40139717 0.0016632212 0.40374452 0.0016634951 0.40609187 0.0016638189 0.40843922 0.001664194 0.41078657 0.0016646218 0.41313393 0.0016651038 0.41548128 0.0016656414 0.41782863 0.0016662361 0.42017598 0.0016668894 0.42252333 0.0016676028 0.42487069 0.0016683778 0.42721804 0.0016692159 0.42956539 0.0016701188 0.43191274 0.0016710878 0.43426009 0.0016721246 0.43660744 0.0016732308 0.4389548 0.0016744077 0.44130215 0.0016756571 0.4436495 0.0016769803 0.44599685 0.0016783788 0.4483442 0.0016798542 0.45069156 0.0016814078 0.45303891 0.0016830411 0.45538626 0.0016847555 0.45773361 0.0016865521 0.46008096 0.0016884324 0.46242832 0.0016903974 0.46477567 0.0016924484 0.46712302 0.0016945864 0.46947037 0.0016968124 0.47181772 0.0016991274 0.47416507 0.001701532 0.47651243 0.0017040271 0.47885978 0.0017066133 0.48120713 0.0017092911 0.48355448 0.0017120608 0.48590183 0.0017149228 0.48824919 0.0017178772 0.49059654 0.0017209239 0.49294389 0.0017240629 0.49529124 0.0017272939 0.49763859 0.0017306164 0.49998594 0.00173403 0.5023333 0.0017375337 0.50468065 0.0017411268 0.507028 0.0017448081 0.50937535 0.0017485764 0.5117227 0.0017524304 0.51407006 0.0017563684 0.51641741 0.0017603886 0.51876476 0.0017644892 0.52111211 0.0017686678 0.52345946 0.0017729223 0.52580682 0.00177725 0.52815417 0.0017816482 0.53050152 0.0017861139 0.53284887 0.001790644 0.53519622 0.0017952349 0.53754357 0.0017998831 0.53989093 0.0018045847 0.54223828 0.0018093353 0.54458563 0.0018141307 0.54693298 0.0018189659 0.54928033 0.001823836 0.55162769 0.0018287354 0.55397504 0.0018336582 0.55632239 0.0018385984 0.55866974 0.0018435492 0.56101709 0.0018485033 0.56336444 0.0018534533 0.5657118 0.0018583907 0.56805915 0.0018633066 0.5704065 0.0018681917 0.57275385 0.0018730354 0.5751012 0.0018778267 0.57744856 0.0018825537 0.57979591 0.0018872034 0.58214326 0.001891762 0.58449061 0.0018962146 0.58683796 0.0019005451 0.58918532 0.0019047366 0.59153267 0.0019087708 0.59388002 0.0019126287 0.59622737 0.00191629 0.59857472 0.0019197339 0.60092207 0.0019229389 0.60326943 0.0019258832 0.60561678 0.0019285451 0.60796413 0.0019309035 0.61031148 0.0019329384 0.61265883 0.0019346313 0.61500619 0.0019359661 0.61735354 0.0019369296 0.61970089 0.0019375117 0.62204824 0.0019377065 0.62439527 0.0019377235 0.6267423 0.0019377745 0.62908933 0.0019378594 0.63143636 0.0019379782 0.63378339 0.0019381309 0.63613042 0.0019383175 0.63847745 0.0019385377 0.64082448 0.0019387915 0.64317151 0.0019390789 0.64551855 0.0019393997 0.64786558 0.0019397538 0.65021261 0.001940141 0.65255964 0.0019405612 0.65490667 0.0019410142 0.6572537 0.0019414999 0.65960073 0.0019420181 0.66194776 0.0019425685 0.66429479 0.001943151 0.66664182 0.0019437654 0.66898885 0.0019444114 0.67133588 0.0019450889 0.67368291 0.0019457975 0.67602994 0.001946537 0.67837697 0.0019473073 0.680724 0.001948108 0.68307103 0.0019489388 0.68541806 0.0019497996 0.68776509 0.00195069 0.69011212 0.0019516098 0.69245915 0.0019525586 0.69480618 0.0019535363 0.69715321 0.0019545425 0.69950024 0.0019555769 0.70184727 0.0019566392 0.70419431 0.0019577292 0.70654134 0.0019588466 0.70888837 0.001959991 0.7112354 0.0019611622 0.71358243 0.0019623598 0.71592946 0.0019635836 0.71827649 0.0019648333 0.72062352 0.0019661086 0.72297055 0.0019674091 0.72531758 0.0019687346 0.72766461 0.0019700849 0.73001164 0.0019714595 0.73235867 0.0019728581 0.7347057 0.0019742806 0.73705273 0.0019757267 0.73939976 0.0019771959 0.74174679 0.001978688 0.74409382 0.0019802028 0.74644085 0.0019817399 0.74878788 0.0019832991 0.75113491 0.00198488 0.75348194 0.0019864824 0.75582897 0.001988106 0.758176 0.0019897504 0.76052303 0.0019914155 0.76287006 0.0019931009 0.7652171 0.0019948063 0.76756413 0.0019965315 0.76991116 0.0019982761 0.77225819 0.0020000398 0.77460522 0.0020018225 0.77695225 0.0020036237 0.77929928 0.0020054432 0.78164631 0.0020072806 0.78399334 0.0020091358 0.78634037 0.0020110083 0.7886874 0.0020128979 0.79103443 0.0020148043 0.79338146 0.0020167271 0.79572849 0.0020186661 0.79807552 0.0020206209 0.80042255 0.0020225913 0.80276958 0.0020245768 0.80511661 0.0020265772 0.80746364 0.0020285922 0.80981067 0.0020306213 0.8121577 0.0020326643 0.81450473 0.0020347208 0.81685176 0.0020367905 0.81919879 0.0020388729 0.82154582 0.0020409678 0.82389285 0.0020430748 0.82623989 0.0020451934 0.82858692 0.0020473234 0.83093395 0.0020494643 0.83328098 0.0020516157 0.83562801 0.0020537772 0.83797504 0.0020559484 0.84032207 0.002058129 0.8426691 0.0020603184 0.84501613 0.0020625162 0.84736316 0.0020647221 0.84971019 0.0020669355 0.85205722 0.002069156 0.85440425 0.0020713831 0.85675128 0.0020736165 0.85909831 0.0020758555 0.86144534 0.0020780998 0.86379237 0.0020803488 0.8661394 0.002082602 0.86848643 0.0020843924 0.87083346 0.0020844555 0.87318049 0.0020845192 0.87552752 0.0020845836 0.87787455 0.0020846485 0.88022158 0.002084714 0.88256861 0.0020847801 0.88491565 0.0020848468 0.88726268 0.0020849139 0.88960971 0.0020849815 0.89195674 0.0020850496 0.89430377 0.0020851182 0.8966508 0.0020851871 0.89899783 0.0020852565 0.90134486 0.0020853262 0.90369189 0.0020853963 0.90603892 0.0020854667 0.90838595 0.0020855374 0.91073298 0.0020856083 0.91308001 0.0020856795 0.91542704 0.0020857508 0.91777407 0.0020858224 0.9201211 0.0020858941 0.92246813 0.0020859659 0.92481516 0.0020860378 0.92716219 0.0020861097 0.92950922 0.0020861817 0.93185625 0.0020862537 0.93420328 0.0020863256 0.93655031 0.0020863975 0.93889734 0.0020864692 0.94124437 0.0020865408 0.94359141 0.0020866123 0.94593844 0.0020866835 0.94828547 0.0020867546 0.9506325 0.0020868253 0.95297953 0.0020868958 0.95532656 0.0020869659 0.95767359 0.0020870356 0.96002062 0.0020871049 0.96236765 0.0020871739 0.96471468 0.0020872423 0.96706171 0.0020873102 0.96940874 0.0020873776 0.97175577 0.0020874445 0.9741028 0.0020875107 0.97644983 0.0020875763 0.97879686 0.0020876412 0.98114389 0.0020877054 0.98349092 0.0020877689 0.98583795 0.0020878317 0.98818498 0.0020878936 0.99053201 0.0020879547 0.99287904 0.0020880149 0.99522607 0.0020880742 0.9975731 0.0020881327 0.99992013 0.0020881901 1.0022672 0.0020882466 1.0046142 0.002088302 1.0069612 0.0020883565 1.0093083 0.0020884098 1.0116553 0.002088462 1.0140023 0.0020885131 1.0163493 0.0020885631 1.0186964 0.0020886119 1.0210434 0.0020886594 1.0233904 0.0020887057 1.0257375 0.0020887508 1.0280845 0.0020887946 1.0304315 0.002088837 1.0327786 0.0020888781 1.0351256 0.0020889179 1.0374726 0.0020889563 1.0398197 0.0020889933 1.0421667 0.0020890289 1.0445137 0.002089063 1.0468607 0.0020890957 1.0492078 0.0020891269 1.0515548 0.0020891566 1.0539018 0.0020891848 1.0562489 0.0020892114 1.0585959 0.0020892366 1.0609429 0.0020892601 1.06329 0.0020892821 1.065637 0.0020893026 1.067984 0.0020893214 1.070331 0.0020893386 1.0726781 0.0020893543 1.0750251 0.0020893683 1.0773721 0.0020893806 1.0797192 0.0020893914 1.0820662 0.0020894005 1.0844132 0.0020894079 1.0867603 0.0020894137 1.0891073 0.0020894178 1.0914543 0.0020894203 1.0938014 0.0020894212 1.0961529 0.0020894342 1.0985044 0.0020894731 1.1008559 0.002089538 1.1032074 0.0020896285 1.1055589 0.0020897445 1.1079104 0.0020898856 1.1102619 0.0020900514 1.1126134 0.0020902416 1.1149649 0.0020904555 1.1173165 0.0020906926 1.119668 0.0020909522 1.1220195 0.0020912337 1.124371 0.0020915362 1.1267225 0.0020918588 1.129074 0.0020922008 1.1314255 0.002092561 1.133777 0.0020929385 1.1361285 0.0020933322 1.1384801 0.002093741 1.1408316 0.0020941635 1.1431831 0.0020945987 1.1455346 0.0020950451 1.1478861 0.0020955015 1.1502376 0.0020959663 1.1525891 0.0020964383 1.1549406 0.0020969158 1.1572921 0.0020973973 1.1596437 0.0020978813 1.1619952 0.0020983661 1.1643467 0.00209885 1.1666982 0.0020993315 1.1690497 0.0020998088 1.1714012 0.0021002801 1.1737527 0.0021007436 1.1761042 0.0021011976 1.1784557 0.0021016403 1.1808073 0.0021020697 1.1831588 0.0021024841 1.1855103 0.0021028816 1.1878618 0.0021032602 1.1902133 0.0021036182 1.1925648 0.0021039536 1.1949163 0.0021042645 1.1972678 0.0021045489 1.1996193 0.0021048051 1.2019709 0.0021050311 1.2043224 0.002105225 1.2066739 0.0021053849 1.2090254 0.002105509 1.2113769 0.0021055954 1.2137284 0.0021056423 1.2160799 0.0021056478 1.2184314 0.0021056101 1.2207829 0.0021026115 1.2231344 0.0020989862 1.225486 0.002095341 1.2278375 0.0020916768 1.230189 0.0020879942 1.2325405 0.0020842941 1.234892 0.002080577 1.2372435 0.0020768437 1.239595 0.002073095 1.2419465 0.0020693314 1.244298 0.0020655537 1.2466496 0.0020617626 1.2490011 0.0020579587 1.2513526 0.0020541427 1.2537041 0.0020503152 1.2560556 0.002046477 1.2584071 0.0020426286 1.2607586 0.0020387708 1.2631101 0.0020349041 1.2654616 0.0020310293 1.2678132 0.0020271471 1.2701647 0.0020232579 1.2725162 0.0020193626 1.2748677 0.0020154618 1.2772192 0.0020115561 1.2795707 0.0020076463 1.2819222 0.0020037329 1.2842737 0.0019998166 1.2866252 0.0019958982 1.2889768 0.0019919783 1.2913283 0.0019880576 1.2936798 0.0019841367 1.2960313 0.0019802163 1.2983828 0.0019762972 1.3007343 0.00197238 1.3030858 0.0019684654 1.3054373 0.0019645541 1.3077888 0.0019606469 1.3101404 0.0019567444 1.3124919 0.0019528473 1.3148434 0.0019489564 1.3171949 0.0019450723 1.3195464 0.0019411959 1.3218979 0.0019373278 1.3242494 0.0019334688 1.3266009 0.0019296195 1.3289524 0.0019257808 1.331304 0.0019219534 1.3336555 0.0019181381 1.336007 0.0019143355 1.3383585 0.0019105465 1.34071 0.0019067718 1.3430615 0.0019030123 1.345413 0.0018992685 1.3477645 0.0018955415 1.350116 0.0018918318 1.3524675 0.0018881404 1.3548191 0.001884468 1.3571706 0.0018808154 1.3595221 0.0018771834 1.3618736 0.0018735728 1.3642251 0.0018699845 1.3665766 0.0018664192 1.3689281 0.0018628777 1.3712796 0.001859361 1.3736311 0.0018558699 1.3759827 0.0018524051 1.3783342 0.0018489675 1.3806857 0.001845558 1.3830372 0.0018421774 1.3853887 0.0018388266 1.3877402 0.0018355065 1.3900917 0.0018322179 1.3924432 0.0018289617 1.3947947 0.0018257387 1.3971463 0.0018225499 1.3994978 0.001819396 1.4018493 0.0018162782 1.4042008 0.001813197 1.4065523 0.0018101536 1.4089038 0.0018071487 1.4112553 0.0018041833 1.4136068 0.0018012582 1.4159583 0.0017983743 1.4183099 0.0017955325 1.4206614 0.0017927337 1.4230129 0.0017899786 1.4253644 0.0017872682 1.4277159 0.0017846032 1.4300674 0.0017819846 1.4324189 0.001779413 1.4347704 0.0017768894 1.4371219 0.0017744144 1.4394735 0.0017719887 1.441825 0.0017696132 1.4441765 0.0017672884 1.446528 0.0017650151 1.4488795 0.0017627937 1.451231 0.001760625 1.4535825 0.0017585093 1.455934 0.0017564473 1.4582855 0.0017544392 1.460637 0.0017524856 1.4629886 0.0017505866 1.4653401 0.0017487426 1.4676916 0.0017469538 1.4700431 0.0017452203 1.4723946 0.0017435421 1.4747461 0.0017419193 1.4770976 0.001739815 1.4794491 0.0017350162 1.4818006 0.0017302533 1.4841522 0.0017255279 1.4865037 0.0017208419 1.4888552 0.001716197 1.4912067 0.0017115946 1.4935582 0.0017070365 1.4959097 0.0017025241 1.4982612 0.001698059 1.5006127 0.0016936426 1.5029642 0.0016892762 1.5053158 0.0016849611 1.5076673 0.0016806987 1.5100188 0.0016764901 1.5123703 0.0016723364 1.5147218 0.0016682387 1.5170733 0.0016641981 1.5194248 0.0016602154 1.5217763 0.0016562914 1.5241278 0.0016524271 1.5264794 0.0016486231 1.5288309 0.00164488 1.5311824 0.0016411984 1.5335339 0.0016375789 1.5358854 0.0016340219 1.5382369 0.0016305277 1.5405884 0.0016270967 1.5429399 0.001623729 1.5452914 0.0016204249 1.547643 0.0016171845 1.5499945 0.0016140078 1.552346 0.0016108948 1.5546975 0.0016078454 1.557049 0.0016048594 1.5594005 0.0016019368 1.561752 0.0015990773 1.5641035 0.0015962806 1.566455 0.0015935463 1.5688065 0.0015908742 1.5711581 0.0015882638 1.5735096 0.0015857147 1.5758611 0.0015832263 1.5782126 0.0015807982 1.5805641 0.0015784299 1.5829156 0.0015761208 1.5852671 0.0015738702 1.5876186 0.0015716777 1.5899701 0.0015695425 1.5923217 0.0015674641 1.5946732 0.0015654417 1.5970247 0.0015634747 1.5993762 0.0015615624 1.6017277 0.0015597042 1.6040792 0.0015578993 1.6064307 0.001556147 1.6087822 0.0015544467 1.6111337 0.0015527976 1.6134853 0.001551199 1.6158368 0.0015496503 1.6181883 0.0015481507 1.6205398 0.0015466994 1.6228913 0.001545296 1.6252428 0.0015439395 1.6275943 0.0015426294 1.6299458 0.001541365 1.6322973 0.0015401456 1.6346489 0.0015389705 1.6370004 0.001537839 1.6393519 0.0015367506 1.6417034 0.0015357046 1.6440549 0.0015347004 1.6464064 0.0015337372 1.6487579 0.0015328146 1.6511094 0.0015319319 1.6534609 0.0015310884 1.6558125 0.0015302837 1.658164 0.0015295171 1.6605155 0.001528788 1.662867 0.0015280959 1.6652185 0.0015274403 1.66757 0.0015268205 1.6699215 0.001526236 1.672273 0.0015256862 1.6746245 0.0015251707 1.6769761 0.0015246889 1.6793276 0.0015242403 1.6816791 0.0015238244 1.6840306 0.0015234405 1.6863821 0.0015230883 1.6887336 0.0015227672 1.6910851 0.0015224767 1.6934366 0.0015222162 1.6957881 0.0015219853 1.6981396 0.0015217835 1.7004912 0.0015216102 1.7028427 0.0015214649 1.7051942 0.0015213471 1.7075457 0.0015212563 1.7098972 0.001521192 1.7122487 0.0015211536 1.7146002 0.0015211406 1.7169517 0.0015211525 1.7193032 0.0015211886 1.7216548 0.0015212485 1.7240063 0.0015213316 1.7263578 0.0015214373 1.7287093 0.001521565 1.7310608 0.0015217141 1.7334123 0.001521884 1.7357638 0.0015220741 1.7381153 0.0015222837 1.7404668 0.0015225123 1.7428184 0.0015227591 1.7451699 0.0015230234 1.7475214 0.0015233046 1.7498729 0.001523602 1.7522244 0.0015239147 1.7545759 0.0015242422 1.7569274 0.0015245835 1.7592789 0.001524938 1.7616304 0.0015253049 1.763982 0.0015256832 1.7663335 0.0015260722 1.768685 0.0015264711 1.7710365 0.0015268789 1.773388 0.0015272947 1.7757395 0.0015277177 1.778091 0.0015281469 1.7804425 0.0015285814 1.782794 0.0015290203 1.7851456 0.0015294624 1.7874971 0.0015299069 1.7898486 0.0015303527 1.7922001 0.0015307989 1.7945516 0.0015312444 1.7969031 0.0015316881 1.7992546 0.001532129 1.8016061 0.001532566 1.8039576 0.0015329982 1.8063091 0.0015334244 1.8086607 0.0015338435 1.8110122 0.0015342545 1.8133637 0.0015346564 1.8157152 0.0015350481 1.8180667 0.0015354285 1.8204182 0.0015357966 1.8227697 0.0015361514 1.8251212 0.0015364919 1.8274727 0.001536817 1.8298243 0.001537126 1.8321758 0.0015374177 1.8345273 0.0015376913 1.8368788 0.001537946 1.8392303 0.0015381809 1.8415818 0.0015383951 1.8439333 0.001538588 1.8462848 0.0015387589 1.8486363 0.0015389069 1.8509879 0.0015390316 1.8533394 0.0015391324 1.8556909 0.0015392087 1.8580424 0.0015392602 1.8603939 0.0015392863 1.8627454 0.0015392868 1.8650969 0.0015392613 1.8674484 0.0015392098 1.8697999 0.0015391319 1.8721515 0.0015390277 1.874503 0.0015388971 1.87685 0.0015391235 1.879197 0.0015393277 1.8815441 0.0015395094 1.8838911 0.0015396682 1.8862381 0.001539804 1.8885851 0.0015399164 1.8909322 0.0015400052 1.8932792 0.0015400701 1.8956262 0.0015401109 1.8979733 0.0015401273 1.9003203 0.0015401191 1.9026673 0.0015400859 1.9050144 0.0015400276 1.9073614 0.0015399439 1.9097084 0.0015398346 1.9120555 0.0015396994 1.9144025 0.0015395381 1.9167495 0.0015393505 1.9190965 0.0015391363 1.9214436 0.0015388953 1.9237906 0.0015386273 1.9261376 0.0015383321 1.9284847 0.0015380096 1.9308317 0.0015376594 1.9331787 0.0015372814 1.9355258 0.0015368754 1.9378728 0.0015364413 1.9402198 0.0015359788 1.9425668 0.0015354878 1.9449139 0.0015349682 1.9472609 0.0015344198 1.9496079 0.0015338424 1.951955 0.0015332359 1.954302 0.0015326003 1.956649 0.0015319353 1.9589961 0.0015312408 1.9613431 0.0015305168 1.9636901 0.0015297632 1.9660372 0.0015289798 1.9683842 0.0015281666 1.9707312 0.0015273235 1.9730782 0.0015264505 1.9754253 0.0015255475 1.9777723 0.0015246144 1.9801193 0.0015236512 1.9824664 0.001522658 1.9848134 0.0015216346 1.9871604 0.0015205811 1.9895075 0.0015194974 1.9918545 0.0015183836 1.9942015 0.0015172396 1.9965485 0.0015160656 1.9988956 0.0015148616 2.0012426 0.0015136275 2.0035896 0.0015123635 2.0059367 0.0015110695 2.0082837 0.0015097458 2.0106307 0.0015083923 2.0129778 0.0015070091 2.0153248 0.0015055964 2.0176718 0.0015041542 2.0200188 0.0015026827 2.0223659 0.001501182 2.0247129 0.0014996522 2.0270599 0.0014980935 2.029407 0.0014965059 2.031754 0.0014948898 2.034101 0.0014932452 2.0364481 0.0014915723 2.0387951 0.0014898713 2.0411421 0.0014881424 2.0434892 0.0014863858 2.0458362 0.0014846017 2.0481832 0.0014827903 2.0505302 0.0014809519 2.0528773 0.0014790866 2.0552243 0.0014771947 2.0575713 0.0014752765 2.0599184 0.0014733322 2.0622654 0.0014713621 2.0646124 0.0014693665 2.0669595 0.0014673455 2.0693065 0.0014652996 2.0716535 0.001463229 2.0740005 0.0014611339 2.0763476 0.0014590148 2.0786946 0.0014568718 2.0810416 0.0014547054 2.0833887 0.0014525158 2.0857357 0.0014503034 2.0880827 0.0014480685 2.0904298 0.0014458114 2.0927768 0.0014435324 2.0951238 0.0014412321 2.0974709 0.0014389106 2.0998179 0.0014365683 2.1021649 0.0014342057 2.1045119 0.001431823 2.106859 0.0014294206 2.109206 0.001426999 2.111553 0.0014245586 2.1139001 0.0014220996 2.1162471 0.0014196225 2.1185941 0.0014171276 2.1209412 0.0014146155 2.1232882 0.0014120864 2.1256352 0.0014095408 2.1279822 0.0014069792 2.1303293 0.0014044018 2.1326763 0.0014018092 2.1350233 0.0013992017 2.1373704 0.0013965798 2.1397174 0.0013939439 2.1420644 0.0013912944 2.1444115 0.0013886318 2.1467585 0.0013859565 2.1491055 0.001383269 2.1514526 0.0013805697 2.1537996 0.001377859 2.1561466 0.0013751374 2.1584936 0.0013724054 2.1608407 0.0013696634 2.1631877 0.0013669119 2.1655347 0.0013641514 2.1678818 0.0013613823 2.1702288 0.0013586051 2.1725758 0.0013558204 2.1749229 0.0013530286 2.1772699 0.0013502302 2.1796169 0.0013474257 2.1819639 0.0013446156 2.184311 0.0013418005 2.186658 0.001338981 2.189005 0.0013361574 2.1913521 0.0013333305 2.1936991 0.0013305007 2.1960461 0.0013276686 2.1983932 0.0013248349 2.2007402 0.0013220001 2.2030872 0.0013191649 2.2054343 0.0013163299 2.2077813 0.0013134957 2.2101283 0.001310663 2.2124753 0.0013078325 2.2148224 0.0013050049 2.2171694 0.0013021809 2.2195164 0.0012993614 2.2218635 0.001296547 2.2242105 0.0012937386 2.2265575 0.0012909371 2.2289046 0.0012881433 2.2312516 0.0012853581 2.2335986 0.0012825825 2.2359456 0.0012798175 2.2382927 0.001277064 2.2406397 0.0012743232 2.2429867 0.0012715962 2.2453338 0.0012688841 2.2476808 0.0012661881 2.2500278 0.0012635096 2.2523749 0.0012608498 2.2547219 0.0012582102 2.2570689 0.0012555921 2.2594159 0.0012529972 2.261763 0.001250427 2.26411 0.0012478831 2.266457 0.0012453674 2.2688041 0.0012428816 2.2711511 0.0012404276 2.2734981 0.0012380075 2.2758452 0.0012356232 2.2781922 0.001233277 2.2805392 0.0012309711 2.2828863 0.0012287078 2.2852333 0.0012264896 2.2875803 0.0012243189 2.2899273 0.0012221985 2.2922744 0.0012201309 2.2946214 0.001218119 2.2969684 0.0012161657 2.2993155 0.0012142738 2.3016625 0.0012124463 2.3040095 0.0012106863 2.3063566 0.0012089969 2.3087036 0.0012073812 2.3110506 0.0012058424 2.3133976 0.0012043836 2.3157447 0.001203008 2.3180917 0.0012017186 2.3204387 0.0012005185 2.3227858 0.0011994107 2.3251328 0.001198398 2.3274798 0.0011974831 2.3298269 0.0011966687 2.3321739 0.0011959572 2.3345209 0.0011953508 2.336868 0.0011948514 2.339215 0.0011944609 2.341562 0.0011941806 2.343909 0.0011940118 2.3462561 0.0011939554 & @target G0.S4 @type xy 0 0.0015388971 0.0023473519 0.001538927 0.0046947037 0.0015390169 0.0070420556 0.0015391667 0.0093894074 0.0015393765 0.011736759 0.0015396464 0.014084111 0.0015399765 0.016431463 0.0015403668 0.018778815 0.0015408175 0.021126167 0.0015413288 0.023473519 0.0015419008 0.02582087 0.0015425338 0.028168222 0.0015432278 0.030515574 0.0015439833 0.032862926 0.0015448003 0.035210278 0.0015456793 0.03755763 0.0015466204 0.039904982 0.001547624 0.042252333 0.0015486904 0.044599685 0.00154982 0.046947037 0.0015510131 0.049294389 0.00155227 0.051641741 0.0015535913 0.053989093 0.0015549773 0.056336444 0.0015564285 0.058683796 0.0015579453 0.061031148 0.0015595282 0.0633785 0.0015611777 0.065725852 0.0015628944 0.068073204 0.0015646787 0.070420556 0.0015665312 0.072767907 0.0015684525 0.075115259 0.0015704432 0.077462611 0.0015725039 0.079809963 0.0015746354 0.082157315 0.0015768381 0.084504667 0.001579113 0.086852019 0.0015814605 0.08919937 0.0015838816 0.091546722 0.001586377 0.093894074 0.0015889474 0.096241426 0.0015915937 0.098588778 0.0015943167 0.10093613 0.0015971174 0.10328348 0.0015999966 0.10563083 0.0016029552 0.10797819 0.0016059942 0.11032554 0.0016091147 0.11267289 0.0016123175 0.11502024 0.0016156038 0.11736759 0.0016189747 0.11971494 0.0016224312 0.1220623 0.0016259746 0.12440965 0.0016296058 0.126757 0.0016333262 0.12910435 0.001637137 0.1314517 0.0016410394 0.13379906 0.0016450347 0.13614641 0.0016491241 0.13849376 0.001653309 0.14084111 0.0016575907 0.14318846 0.0016619705 0.14553581 0.0016664498 0.14788317 0.0016710301 0.15023052 0.0016757125 0.15257787 0.0016804986 0.15492522 0.0016853897 0.15727257 0.0016903872 0.15961993 0.0016954923 0.16196728 0.0017007066 0.16431463 0.0017060312 0.16666198 0.0017114676 0.16900933 0.0017170168 0.17135669 0.0017226803 0.17370404 0.0017284591 0.17605139 0.0017338466 0.17839874 0.0017329426 0.18074609 0.0017320319 0.18309344 0.0017311147 0.1854408 0.0017301912 0.18778815 0.0017292616 0.1901355 0.0017283261 0.19248285 0.001727385 0.1948302 0.0017264385 0.19717756 0.0017254868 0.19952491 0.00172453 0.20187226 0.0017235686 0.20421961 0.0017226026 0.20656696 0.0017216324 0.20891432 0.0017206581 0.21126167 0.00171968 0.21360902 0.0017186984 0.21595637 0.0017177135 0.21830372 0.0017167256 0.22065107 0.001715735 0.22299843 0.0017147418 0.22534578 0.0017137464 0.22769313 0.0017127491 0.23004048 0.0017117502 0.23238783 0.0017107498 0.23473519 0.0017097484 0.23708254 0.0017087462 0.23942989 0.0017077435 0.24177724 0.0017067406 0.24412459 0.0017057379 0.24647194 0.0017047356 0.2488193 0.0017037341 0.25116665 0.0017027337 0.253514 0.0017017348 0.25586135 0.0017007376 0.2582087 0.0016997426 0.26055606 0.0016987501 0.26290341 0.0016977605 0.26525076 0.0016967741 0.26759811 0.0016957913 0.26994546 0.0016948125 0.27229282 0.0016938382 0.27464017 0.0016928686 0.27698752 0.0016943344 0.27933487 0.0016999167 0.28168222 0.0017055846 0.28402957 0.0017113356 0.28637693 0.0017171671 0.28872428 0.0017230764 0.29107163 0.0017290605 0.29341898 0.0017351163 0.29576633 0.0017412405 0.29811369 0.0017474298 0.30046104 0.0017536806 0.30280839 0.0017599893 0.30515574 0.001766352 0.30750309 0.0017727648 0.30985044 0.0017792237 0.3121978 0.0017857246 0.31454515 0.0017922632 0.3168925 0.0017988352 0.31923985 0.0018054363 0.3215872 0.0018120619 0.32393456 0.0018187076 0.32628191 0.0018253689 0.32862926 0.001832041 0.33097661 0.0018387194 0.33332396 0.0018453994 0.33567132 0.0018520763 0.33801867 0.0018587455 0.34036602 0.0018654023 0.34271337 0.0018720419 0.34506072 0.0018786598 0.34740807 0.0018852514 0.34975543 0.0018918119 0.35210278 0.0018983369 0.35445013 0.0019048218 0.35679748 0.0019112622 0.35914483 0.0019176537 0.36149219 0.0019239918 0.36383954 0.0019302724 0.36618689 0.0019364912 0.36853424 0.0019426441 0.37088159 0.001948727 0.37322894 0.0019547361 0.3755763 0.0019606675 0.37792365 0.0019665173 0.380271 0.001972282 0.38261835 0.0019779581 0.3849657 0.001983542 0.38731306 0.0019890306 0.38966041 0.0019944206 0.39200776 0.001999709 0.39435511 0.0020048928 0.39670246 0.0020099694 0.39904982 0.002014936 0.40139717 0.0020197901 0.40374452 0.0020245295 0.40609187 0.0020291519 0.40843922 0.0020336552 0.41078657 0.0020380376 0.41313393 0.0020422973 0.41548128 0.0020464328 0.41782863 0.0020504426 0.42017598 0.0020543256 0.42252333 0.0020580806 0.42487069 0.0020617067 0.42721804 0.0020652032 0.42956539 0.0020685695 0.43191274 0.0020718052 0.43426009 0.0020749101 0.43660744 0.0020778842 0.4389548 0.0020807274 0.44130215 0.0020834402 0.4436495 0.0020860229 0.44599685 0.0020884762 0.4483442 0.0020908008 0.45069156 0.0020929977 0.45303891 0.0020950679 0.45538626 0.0020970127 0.45773361 0.0020988334 0.46008096 0.0021005317 0.46242832 0.0021021091 0.46477567 0.0021035675 0.46712302 0.0021049089 0.46947037 0.0021061353 0.47181772 0.002107249 0.47416507 0.0021082522 0.47651243 0.0021091474 0.47885978 0.0021099371 0.48120713 0.002110624 0.48355448 0.0021112109 0.48590183 0.0021117004 0.48824919 0.0021120957 0.49059654 0.0021123996 0.49294389 0.0021126152 0.49529124 0.0021127458 0.49763859 0.0021127943 0.49998594 0.0021127642 0.5023333 0.0021126586 0.50468065 0.002112481 0.507028 0.0021122348 0.50937535 0.0021119232 0.5117227 0.0021115497 0.51407006 0.0021111179 0.51641741 0.0021106311 0.51876476 0.0021100928 0.52111211 0.0021095066 0.52345946 0.0021088758 0.52580682 0.0021082039 0.52815417 0.0021074943 0.53050152 0.0021067506 0.53284887 0.0021059761 0.53519622 0.0021051742 0.53754357 0.0021043482 0.53989093 0.0021035015 0.54223828 0.0021026373 0.54458563 0.0021017589 0.54693298 0.0021008694 0.54928033 0.002099972 0.55162769 0.0020990697 0.55397504 0.0020981655 0.55632239 0.0020972625 0.55866974 0.0020963634 0.56101709 0.0020954711 0.56336444 0.0020945883 0.5657118 0.0020937177 0.56805915 0.0020928619 0.5704065 0.0020920233 0.57275385 0.0020912044 0.5751012 0.0020904074 0.57744856 0.0020896347 0.57979591 0.0020888884 0.58214326 0.0020881705 0.58449061 0.002087483 0.58683796 0.0020868276 0.58918532 0.0020862062 0.59153267 0.0020856204 0.59388002 0.0020850718 0.59622737 0.0020845617 0.59857472 0.0020840915 0.60092207 0.0020836623 0.60326943 0.0020832754 0.60561678 0.0020829317 0.60796413 0.002082632 0.61031148 0.0020823771 0.61265883 0.0020821677 0.61500619 0.0020820043 0.61735354 0.0020818873 0.61970089 0.002081817 0.62204824 0.0020817935 0.62439527 0.0020817936 0.6267423 0.0020817939 0.62908933 0.0020817944 0.63143636 0.0020817951 0.63378339 0.002081796 0.63613042 0.0020817972 0.63847745 0.0020817985 0.64082448 0.0020818001 0.64317151 0.0020818018 0.64551855 0.0020818038 0.64786558 0.002081806 0.65021261 0.0020818085 0.65255964 0.0020818112 0.65490667 0.0020818141 0.6572537 0.0020818173 0.65960073 0.0020818207 0.66194776 0.0020818244 0.66429479 0.0020818284 0.66664182 0.0020818326 0.66898885 0.0020818372 0.67133588 0.002081842 0.67368291 0.0020818471 0.67602994 0.0020818526 0.67837697 0.0020818583 0.680724 0.0020818644 0.68307103 0.0020818709 0.68541806 0.0020818777 0.68776509 0.0020818849 0.69011212 0.0020818924 0.69245915 0.0020819003 0.69480618 0.0020819087 0.69715321 0.0020819174 0.69950024 0.0020819266 0.70184727 0.0020819362 0.70419431 0.0020819462 0.70654134 0.0020819568 0.70888837 0.0020819678 0.7112354 0.0020819792 0.71358243 0.0020819912 0.71592946 0.0020820037 0.71827649 0.0020820167 0.72062352 0.0020820303 0.72297055 0.0020820444 0.72531758 0.0020820591 0.72766461 0.0020820743 0.73001164 0.0020820902 0.73235867 0.0020821066 0.7347057 0.0020821237 0.73705273 0.0020821414 0.73939976 0.0020821598 0.74174679 0.0020821788 0.74409382 0.0020821984 0.74644085 0.0020822188 0.74878788 0.0020822398 0.75113491 0.0020822616 0.75348194 0.0020822841 0.75582897 0.0020823073 0.758176 0.0020823312 0.76052303 0.0020823559 0.76287006 0.0020823813 0.7652171 0.0020824076 0.76756413 0.0020824346 0.76991116 0.0020824624 0.77225819 0.0020824909 0.77460522 0.0020825203 0.77695225 0.0020825506 0.77929928 0.0020825816 0.78164631 0.0020826135 0.78399334 0.0020826462 0.78634037 0.0020826797 0.7886874 0.0020827141 0.79103443 0.0020827494 0.79338146 0.0020827855 0.79572849 0.0020828225 0.79807552 0.0020828604 0.80042255 0.0020828991 0.80276958 0.0020829387 0.80511661 0.0020829792 0.80746364 0.0020830205 0.80981067 0.0020830627 0.8121577 0.0020831059 0.81450473 0.0020831498 0.81685176 0.0020831947 0.81919879 0.0020832405 0.82154582 0.0020832871 0.82389285 0.0020833345 0.82623989 0.0020833829 0.82858692 0.0020834321 0.83093395 0.0020834822 0.83328098 0.0020835331 0.83562801 0.0020835848 0.83797504 0.0020836374 0.84032207 0.0020836908 0.8426691 0.0020837451 0.84501613 0.0020838001 0.84736316 0.002083856 0.84971019 0.0020839126 0.85205722 0.00208397 0.85440425 0.0020840282 0.85675128 0.0020840871 0.85909831 0.0020841467 0.86144534 0.0020842071 0.86379237 0.0020842682 0.8661394 0.0020843299 0.86848643 0.0020848589 0.87083346 0.0020871191 0.87318049 0.0020893819 0.87552752 0.002091647 0.87787455 0.0020939136 0.88022158 0.0020961814 0.88256861 0.0020984496 0.88491565 0.0021007179 0.88726268 0.0021029856 0.88960971 0.0021052522 0.89195674 0.002107517 0.89430377 0.0021097796 0.8966508 0.0021120392 0.89899783 0.0021142954 0.90134486 0.0021165475 0.90369189 0.002118795 0.90603892 0.0021210371 0.90838595 0.0021232734 0.91073298 0.0021255032 0.91308001 0.0021277258 0.91542704 0.0021299407 0.91777407 0.0021321472 0.9201211 0.0021343447 0.92246813 0.0021365325 0.92481516 0.0021387101 0.92716219 0.0021408768 0.92950922 0.0021430318 0.93185625 0.0021451747 0.93420328 0.0021473048 0.93655031 0.0021494213 0.93889734 0.0021515237 0.94124437 0.0021536113 0.94359141 0.0021556835 0.94593844 0.0021577397 0.94828547 0.0021597791 0.9506325 0.0021618011 0.95297953 0.0021638052 0.95532656 0.0021657906 0.95767359 0.0021677567 0.96002062 0.0021697029 0.96236765 0.0021716286 0.96471468 0.0021735331 0.96706171 0.0021754158 0.96940874 0.0021772761 0.97175577 0.0021791134 0.9741028 0.002180927 0.97644983 0.0021827164 0.97879686 0.0021844809 0.98114389 0.00218622 0.98349092 0.002187933 0.98583795 0.0021896195 0.98818498 0.0021912787 0.99053201 0.0021929102 0.99287904 0.0021945134 0.99522607 0.0021960878 0.9975731 0.0021976327 0.99992013 0.0021991477 1.0022672 0.0022006322 1.0046142 0.0022020857 1.0069612 0.0022035077 1.0093083 0.0022048978 1.0116553 0.0022062553 1.0140023 0.0022075799 1.0163493 0.0022088711 1.0186964 0.0022101285 1.0210434 0.0022113515 1.0233904 0.0022125397 1.0257375 0.0022136928 1.0280845 0.0022148103 1.0304315 0.0022158918 1.0327786 0.002216937 1.0351256 0.0022179454 1.0374726 0.0022189167 1.0398197 0.0022198506 1.0421667 0.0022207467 1.0445137 0.0022216048 1.0468607 0.0022224244 1.0492078 0.0022232054 1.0515548 0.0022239473 1.0539018 0.0022246501 1.0562489 0.0022253134 1.0585959 0.0022259369 1.0609429 0.0022265206 1.06329 0.002227064 1.065637 0.0022275672 1.067984 0.0022280298 1.070331 0.0022284518 1.0726781 0.002228833 1.0750251 0.0022291732 1.0773721 0.0022294723 1.0797192 0.0022297303 1.0820662 0.002229947 1.0844132 0.0022301224 1.0867603 0.0022302564 1.0891073 0.002230349 1.0914543 0.0022304001 1.0938014 0.0022304098 1.0961529 0.0022303505 1.0985044 0.0022301593 1.1008559 0.0022298371 1.1032074 0.0022293847 1.1055589 0.0022288039 1.1079104 0.0022280963 1.1102619 0.0022272644 1.1126134 0.0022263107 1.1149649 0.0022252381 1.1173165 0.0022240495 1.119668 0.0022227484 1.1220195 0.0022213381 1.124371 0.0022198223 1.1267225 0.0022182044 1.129074 0.0022164881 1.1314255 0.0022146772 1.133777 0.0022127751 1.1361285 0.0022107856 1.1384801 0.002208712 1.1408316 0.0022065579 1.1431831 0.0022043264 1.1455346 0.0022020209 1.1478861 0.0021996445 1.1502376 0.0021972001 1.1525891 0.0021946905 1.1549406 0.0021921186 1.1572921 0.0021894868 1.1596437 0.0021867978 1.1619952 0.0021840538 1.1643467 0.0021812571 1.1666982 0.0021784099 1.1690497 0.0021755141 1.1714012 0.0021725717 1.1737527 0.0021695846 1.1761042 0.0021665544 1.1784557 0.0021634829 1.1808073 0.0021603716 1.1831588 0.002157222 1.1855103 0.0021540355 1.1878618 0.0021508135 1.1902133 0.0021475573 1.1925648 0.002144268 1.1949163 0.002140947 1.1972678 0.0021375953 1.1996193 0.002134214 1.2019709 0.0021308042 1.2043224 0.0021273668 1.2066739 0.0021239029 1.2090254 0.0021204133 1.2113769 0.002116899 1.2137284 0.0021133608 1.2160799 0.0021097996 1.2184314 0.0021062163 1.2207829 0.0021055275 1.2231344 0.0021053983 1.225486 0.0021052206 1.2278375 0.0021049929 1.230189 0.0021047134 1.2325405 0.0021043805 1.234892 0.0021039928 1.2372435 0.0021035485 1.239595 0.0021030463 1.2419465 0.0021024847 1.244298 0.0021018622 1.2466496 0.0021011775 1.2490011 0.0021004293 1.2513526 0.0020996164 1.2537041 0.0020987375 1.2560556 0.0020977915 1.2584071 0.0020967773 1.2607586 0.0020956938 1.2631101 0.0020945401 1.2654616 0.0020933153 1.2678132 0.0020920184 1.2701647 0.0020906488 1.2725162 0.0020892056 1.2748677 0.0020876882 1.2772192 0.0020860959 1.2795707 0.0020844283 1.2819222 0.0020826849 1.2842737 0.0020808652 1.2866252 0.0020789689 1.2889768 0.0020769957 1.2913283 0.0020749454 1.2936798 0.0020728178 1.2960313 0.0020706128 1.2983828 0.0020683304 1.3007343 0.0020659707 1.3030858 0.0020635338 1.3054373 0.0020610197 1.3077888 0.0020584288 1.3101404 0.0020557612 1.3124919 0.0020530175 1.3148434 0.0020501979 1.3171949 0.0020473029 1.3195464 0.0020443331 1.3218979 0.0020412891 1.3242494 0.0020381714 1.3266009 0.0020349808 1.3289524 0.002031718 1.331304 0.0020283837 1.3336555 0.0020249789 1.336007 0.0020215045 1.3383585 0.0020179613 1.34071 0.0020143504 1.3430615 0.0020106729 1.345413 0.0020069297 1.3477645 0.002003122 1.350116 0.0019992509 1.3524675 0.0019953178 1.3548191 0.0019913237 1.3571706 0.0019872701 1.3595221 0.0019831582 1.3618736 0.0019789893 1.3642251 0.0019747649 1.3665766 0.0019704864 1.3689281 0.0019661552 1.3712796 0.0019617728 1.3736311 0.0019573407 1.3759827 0.0019528605 1.3783342 0.0019483337 1.3806857 0.0019437619 1.3830372 0.0019391468 1.3853887 0.0019344899 1.3877402 0.001929793 1.3900917 0.0019250577 1.3924432 0.0019202858 1.3947947 0.0019154789 1.3971463 0.0019106389 1.3994978 0.0019057675 1.4018493 0.0019008665 1.4042008 0.0018959377 1.4065523 0.0018909829 1.4089038 0.001886004 1.4112553 0.0018810029 1.4136068 0.0018759814 1.4159583 0.0018709413 1.4183099 0.0018658847 1.4206614 0.0018608134 1.4230129 0.0018557294 1.4253644 0.0018506345 1.4277159 0.0018455309 1.4300674 0.0018404203 1.4324189 0.0018353048 1.4347704 0.0018301863 1.4371219 0.0018250669 1.4394735 0.0018199485 1.441825 0.0018148331 1.4441765 0.0018097228 1.446528 0.0018046194 1.4488795 0.0017995251 1.451231 0.0017944418 1.4535825 0.0017893714 1.455934 0.0017843161 1.4582855 0.0017792777 1.460637 0.0017742583 1.4629886 0.0017692597 1.4653401 0.001764284 1.4676916 0.0017593331 1.4700431 0.0017544089 1.4723946 0.0017495132 1.4747461 0.001744648 1.4770976 0.0017403518 1.4794491 0.0017388394 1.4818006 0.0017373819 1.4841522 0.001735979 1.4865037 0.0017346305 1.4888552 0.0017333357 1.4912067 0.0017320942 1.4935582 0.0017309054 1.4959097 0.0017297686 1.4982612 0.0017286832 1.5006127 0.0017276482 1.5029642 0.0017266627 1.5053158 0.001725726 1.5076673 0.0017248368 1.5100188 0.0017239941 1.5123703 0.0017231969 1.5147218 0.0017224437 1.5170733 0.0017217335 1.5194248 0.0017210649 1.5217763 0.0017204365 1.5241278 0.0017198468 1.5264794 0.0017192945 1.5288309 0.0017187779 1.5311824 0.0017182955 1.5335339 0.0017178458 1.5358854 0.0017174269 1.5382369 0.0017170374 1.5405884 0.0017166754 1.5429399 0.0017163391 1.5452914 0.0017160268 1.547643 0.0017157366 1.5499945 0.0017154666 1.552346 0.0017152148 1.5546975 0.0017149795 1.557049 0.0017147584 1.5594005 0.0017145495 1.561752 0.0017143509 1.5641035 0.0017141602 1.566455 0.0017139754 1.5688065 0.001713794 1.5711581 0.0017136139 1.5735096 0.0017134326 1.5758611 0.0017132477 1.5782126 0.0017130566 1.5805641 0.0017128568 1.5829156 0.0017126455 1.5852671 0.0017124199 1.5876186 0.0017121772 1.5899701 0.0017119144 1.5923217 0.0017116284 1.5946732 0.001711316 1.5970247 0.001710974 1.5993762 0.001710599 1.6017277 0.0017101874 1.6040792 0.0017097358 1.6064307 0.0017092404 1.6087822 0.0017086976 1.6111337 0.0017081035 1.6134853 0.0017074546 1.6158368 0.0017067469 1.6181883 0.0017059768 1.6205398 0.0017051408 1.6228913 0.0017042355 1.6252428 0.0017032576 1.6275943 0.0017022043 1.6299458 0.0017010731 1.6322973 0.0016998618 1.6346489 0.0016985689 1.6370004 0.0016971932 1.6393519 0.0016957344 1.6417034 0.0016941926 1.6440549 0.0016925685 1.6464064 0.0016908639 1.6487579 0.0016890806 1.6511094 0.0016872216 1.6534609 0.0016852902 1.6558125 0.0016832901 1.658164 0.0016812255 1.6605155 0.0016791011 1.662867 0.0016769217 1.6652185 0.0016746923 1.66757 0.001672418 1.6699215 0.0016701039 1.672273 0.0016677551 1.6746245 0.0016653765 1.6769761 0.0016629729 1.6793276 0.001660549 1.6816791 0.0016581093 1.6840306 0.0016556578 1.6863821 0.0016531985 1.6887336 0.0016507351 1.6910851 0.0016482711 1.6934366 0.0016458096 1.6957881 0.0016433537 1.6981396 0.0016409059 1.7004912 0.0016384688 1.7028427 0.0016360446 1.7051942 0.0016336356 1.7075457 0.0016312435 1.7098972 0.0016288701 1.7122487 0.001626517 1.7146002 0.0016241857 1.7169517 0.0016218773 1.7193032 0.0016195931 1.7216548 0.0016173341 1.7240063 0.0016151014 1.7263578 0.0016128956 1.7287093 0.0016107178 1.7310608 0.0016085684 1.7334123 0.0016064482 1.7357638 0.0016043577 1.7381153 0.0016022973 1.7404668 0.0016002677 1.7428184 0.0015982691 1.7451699 0.0015963019 1.7475214 0.0015943664 1.7498729 0.001592463 1.7522244 0.0015905918 1.7545759 0.001588753 1.7569274 0.001586947 1.7592789 0.0015851737 1.7616304 0.0015834334 1.763982 0.0015817262 1.7663335 0.0015800522 1.768685 0.0015784115 1.7710365 0.0015768042 1.773388 0.0015752302 1.7757395 0.0015736897 1.778091 0.0015721827 1.7804425 0.0015707093 1.782794 0.0015692693 1.7851456 0.0015678629 1.7874971 0.00156649 1.7898486 0.0015651507 1.7922001 0.0015638448 1.7945516 0.0015625724 1.7969031 0.0015613335 1.7992546 0.001560128 1.8016061 0.0015589558 1.8039576 0.001557817 1.8063091 0.0015567114 1.8086607 0.0015556391 1.8110122 0.0015546 1.8133637 0.0015535939 1.8157152 0.001552621 1.8180667 0.001551681 1.8204182 0.001550774 1.8227697 0.0015498999 1.8251212 0.0015490585 1.8274727 0.00154825 1.8298243 0.0015474742 1.8321758 0.001546731 1.8345273 0.0015460204 1.8368788 0.0015453423 1.8392303 0.0015446968 1.8415818 0.0015440837 1.8439333 0.001543503 1.8462848 0.0015429548 1.8486363 0.0015424388 1.8509879 0.0015419552 1.8533394 0.0015415039 1.8556909 0.001541085 1.8580424 0.0015406983 1.8603939 0.0015403439 1.8627454 0.0015400218 1.8650969 0.0015397321 1.8674484 0.0015394747 1.8697999 0.0015392497 1.8721515 0.0015390571 1.874503 0.0015388971 1.87685 0.0015391235 1.879197 0.0015393277 1.8815441 0.0015395094 1.8838911 0.0015396682 1.8862381 0.001539804 1.8885851 0.0015399164 1.8909322 0.0015400052 1.8932792 0.0015400701 1.8956262 0.0015401109 1.8979733 0.0015401273 1.9003203 0.0015401191 1.9026673 0.0015400859 1.9050144 0.0015400276 1.9073614 0.0015399439 1.9097084 0.0015398346 1.9120555 0.0015396994 1.9144025 0.0015395381 1.9167495 0.0015393505 1.9190965 0.0015391363 1.9214436 0.0015388953 1.9237906 0.0015386273 1.9261376 0.0015383321 1.9284847 0.0015380096 1.9308317 0.0015376594 1.9331787 0.0015372814 1.9355258 0.0015368754 1.9378728 0.0015364413 1.9402198 0.0015359788 1.9425668 0.0015354878 1.9449139 0.0015349682 1.9472609 0.0015344198 1.9496079 0.0015338424 1.951955 0.0015332359 1.954302 0.0015326003 1.956649 0.0015319353 1.9589961 0.0015312408 1.9613431 0.0015305168 1.9636901 0.0015297632 1.9660372 0.0015289798 1.9683842 0.0015281666 1.9707312 0.0015273235 1.9730782 0.0015264505 1.9754253 0.0015255475 1.9777723 0.0015246144 1.9801193 0.0015236512 1.9824664 0.001522658 1.9848134 0.0015216346 1.9871604 0.0015205811 1.9895075 0.0015194974 1.9918545 0.0015183836 1.9942015 0.0015172396 1.9965485 0.0015160656 1.9988956 0.0015148616 2.0012426 0.0015136275 2.0035896 0.0015123635 2.0059367 0.0015110695 2.0082837 0.0015097458 2.0106307 0.0015083923 2.0129778 0.0015070091 2.0153248 0.0015055964 2.0176718 0.0015041542 2.0200188 0.0015026827 2.0223659 0.001501182 2.0247129 0.0014996522 2.0270599 0.0014980935 2.029407 0.0014965059 2.031754 0.0014948898 2.034101 0.0014932452 2.0364481 0.0014915723 2.0387951 0.0014898713 2.0411421 0.0014881424 2.0434892 0.0014863858 2.0458362 0.0014846017 2.0481832 0.0014827903 2.0505302 0.0014809519 2.0528773 0.0014790866 2.0552243 0.0014771947 2.0575713 0.0014752765 2.0599184 0.0014733322 2.0622654 0.0014713621 2.0646124 0.0014693665 2.0669595 0.0014673455 2.0693065 0.0014652996 2.0716535 0.001463229 2.0740005 0.0014611339 2.0763476 0.0014590148 2.0786946 0.0014568718 2.0810416 0.0014547054 2.0833887 0.0014525158 2.0857357 0.0014503034 2.0880827 0.0014480685 2.0904298 0.0014458114 2.0927768 0.0014435324 2.0951238 0.0014412321 2.0974709 0.0014389106 2.0998179 0.0014365683 2.1021649 0.0014342057 2.1045119 0.001431823 2.106859 0.0014294206 2.109206 0.001426999 2.111553 0.0014245586 2.1139001 0.0014220996 2.1162471 0.0014196225 2.1185941 0.0014171276 2.1209412 0.0014146155 2.1232882 0.0014120864 2.1256352 0.0014095408 2.1279822 0.0014069792 2.1303293 0.0014044018 2.1326763 0.0014018092 2.1350233 0.0013992017 2.1373704 0.0013965798 2.1397174 0.0013939439 2.1420644 0.0013912944 2.1444115 0.0013886318 2.1467585 0.0013859565 2.1491055 0.001383269 2.1514526 0.0013805697 2.1537996 0.001377859 2.1561466 0.0013751374 2.1584936 0.0013724054 2.1608407 0.0013696634 2.1631877 0.0013669119 2.1655347 0.0013641514 2.1678818 0.0013613823 2.1702288 0.0013586051 2.1725758 0.0013558204 2.1749229 0.0013530286 2.1772699 0.0013502302 2.1796169 0.0013474257 2.1819639 0.0013446156 2.184311 0.0013418005 2.186658 0.001338981 2.189005 0.0013361574 2.1913521 0.0013333305 2.1936991 0.0013305007 2.1960461 0.0013276686 2.1983932 0.0013248349 2.2007402 0.0013220001 2.2030872 0.0013191649 2.2054343 0.0013163299 2.2077813 0.0013134957 2.2101283 0.001310663 2.2124753 0.0013078325 2.2148224 0.0013050049 2.2171694 0.0013021809 2.2195164 0.0013035587 2.2218635 0.0013096529 2.2242105 0.0013157008 2.2265575 0.0013217029 2.2289046 0.0013276593 2.2312516 0.0013335702 2.2335986 0.0013394361 2.2359456 0.0013452572 2.2382927 0.0013510336 2.2406397 0.0013567658 2.2429867 0.001362454 2.2453338 0.0013680984 2.2476808 0.0013736994 2.2500278 0.0013792572 2.2523749 0.0013847721 2.2547219 0.0013902443 2.2570689 0.0013956742 2.2594159 0.0014010618 2.261763 0.0014064076 2.26411 0.0014117117 2.266457 0.0014169743 2.2688041 0.0014221955 2.2711511 0.0014273757 2.2734981 0.0014325149 2.2758452 0.0014376132 2.2781922 0.0014426707 2.2805392 0.0014476875 2.2828863 0.0014526635 2.2852333 0.0014575987 2.2875803 0.0014624929 2.2899273 0.0014673459 2.2922744 0.0014721575 2.2946214 0.0014769271 2.2969684 0.0014816543 2.2993155 0.0014863382 2.3016625 0.0014909779 2.3040095 0.0014955721 2.3063566 0.0015001194 2.3087036 0.0015046176 2.3110506 0.0015090642 2.3133976 0.0015134558 2.3157447 0.0015177882 2.3180917 0.0015220556 2.3204387 0.0015262508 2.3227858 0.0015303636 2.3251328 0.0015343806 2.3274798 0.0015382831 2.3298269 0.0015420448 2.3321739 0.0015456287 2.3345209 0.0015489812 2.336868 0.0015520256 2.339215 0.0015546535 2.341562 0.0015567214 2.343909 0.0015580623 2.3462561 0.0015585297 & @target G0.S5 @type xy 0 0.0017713019 0.0023473519 0.0017712945 0.0046947037 0.0017712725 0.0070420556 0.0017712358 0.0093894074 0.0017711844 0.011736759 0.0017711184 0.014084111 0.0017710377 0.016431463 0.0017709424 0.018778815 0.0017708324 0.021126167 0.0017707079 0.023473519 0.0017705689 0.02582087 0.0017704153 0.028168222 0.0017702472 0.030515574 0.0017700646 0.032862926 0.0017698676 0.035210278 0.0017696562 0.03755763 0.0017694305 0.039904982 0.0017691905 0.042252333 0.0017689363 0.044599685 0.0017686679 0.046947037 0.0017683853 0.049294389 0.0017680887 0.051641741 0.001767778 0.053989093 0.0017674534 0.056336444 0.001767115 0.058683796 0.0017667627 0.061031148 0.0017663967 0.0633785 0.001766017 0.065725852 0.0017656238 0.068073204 0.001765217 0.070420556 0.0017647968 0.072767907 0.0017643633 0.075115259 0.0017639166 0.077462611 0.0017634567 0.079809963 0.0017629837 0.082157315 0.0017624978 0.084504667 0.0017619991 0.086852019 0.0017614875 0.08919937 0.0017609634 0.091546722 0.0017604266 0.093894074 0.0017598775 0.096241426 0.001759316 0.098588778 0.0017587423 0.10093613 0.0017581565 0.10328348 0.0017575587 0.10563083 0.0017569491 0.10797819 0.0017563278 0.11032554 0.0017556948 0.11267289 0.0017550504 0.11502024 0.0017543946 0.11736759 0.0017537276 0.11971494 0.0017530496 0.1220623 0.0017523606 0.12440965 0.0017516608 0.126757 0.0017509503 0.12910435 0.0017502294 0.1314517 0.001749498 0.13379906 0.0017487565 0.13614641 0.0017480049 0.13849376 0.0017472434 0.14084111 0.0017464721 0.14318846 0.0017456912 0.14553581 0.0017449009 0.14788317 0.0017441014 0.15023052 0.0017432927 0.15257787 0.0017424751 0.15492522 0.0017416487 0.15727257 0.0017408138 0.15961993 0.0017399704 0.16196728 0.0017391188 0.16431463 0.0017382591 0.16666198 0.0017373916 0.16900933 0.0017365164 0.17135669 0.0017356337 0.17370404 0.0017347437 0.17605139 0.0017343543 0.17839874 0.001740367 0.18074609 0.0017464982 0.18309344 0.0017527488 0.1854408 0.0017591197 0.18778815 0.0017656115 0.1901355 0.0017722249 0.19248285 0.0017789604 0.1948302 0.0017858184 0.19717756 0.0017927993 0.19952491 0.0017999031 0.20187226 0.00180713 0.20421961 0.0018144798 0.20656696 0.0018219522 0.20891432 0.001829547 0.21126167 0.0018372635 0.21360902 0.001845101 0.21595637 0.0018530587 0.21830372 0.0018611356 0.22065107 0.0018693305 0.22299843 0.0018776421 0.22534578 0.001886069 0.22769313 0.0018946094 0.23004048 0.0019032617 0.23238783 0.0019120239 0.23473519 0.001920894 0.23708254 0.0019298697 0.23942989 0.0019389489 0.24177724 0.0019481289 0.24412459 0.0019574074 0.24647194 0.0019667815 0.2488193 0.0019762487 0.25116665 0.001985806 0.253514 0.0019954505 0.25586135 0.0020051792 0.2582087 0.0020149891 0.26055606 0.0020248771 0.26290341 0.0020348399 0.26525076 0.0020448745 0.26759811 0.0020549775 0.26994546 0.0020651458 0.27229282 0.002075376 0.27464017 0.0020856649 0.27698752 0.0020960091 0.27933487 0.0021064056 0.28168222 0.0021168509 0.28402957 0.0021273419 0.28637693 0.0021378753 0.28872428 0.002148448 0.29107163 0.0021590568 0.29341898 0.0021696985 0.29576633 0.0021803702 0.29811369 0.0021910688 0.30046104 0.0022017912 0.30280839 0.0022125346 0.30515574 0.0022232961 0.30750309 0.0022340729 0.30985044 0.0022448621 0.3121978 0.002255661 0.31454515 0.0022664671 0.3168925 0.0022772776 0.31923985 0.0022880901 0.3215872 0.0022989021 0.32393456 0.002309711 0.32628191 0.0023205147 0.32862926 0.0023313107 0.33097661 0.0023420968 0.33332396 0.0023528709 0.33567132 0.0023636308 0.33801867 0.0023743744 0.34036602 0.0023850997 0.34271337 0.0023958049 0.34506072 0.0024064878 0.34740807 0.0024171469 0.34975543 0.0024277801 0.35210278 0.0024383859 0.35445013 0.0024489625 0.35679748 0.0024595083 0.35914483 0.0024700217 0.36149219 0.0024805012 0.36383954 0.0024909453 0.36618689 0.0025013526 0.36853424 0.0025117216 0.37088159 0.0025220511 0.37322894 0.0025323398 0.3755763 0.0025425864 0.37792365 0.0025527897 0.380271 0.0025629486 0.38261835 0.0025730618 0.3849657 0.0025831285 0.38731306 0.0025931474 0.38966041 0.0026031176 0.39200776 0.0026130382 0.39435511 0.0026229081 0.39670246 0.0026327267 0.39904982 0.0026424929 0.40139717 0.0026522059 0.40374452 0.0026618651 0.40609187 0.0026714696 0.40843922 0.0026810187 0.41078657 0.0026905118 0.41313393 0.0026999482 0.41548128 0.0027093273 0.41782863 0.0027186485 0.42017598 0.0027279113 0.42252333 0.0027305764 0.42487069 0.0027243462 0.42721804 0.0027180747 0.42956539 0.0027117624 0.43191274 0.0027054099 0.43426009 0.002699018 0.43660744 0.0026925871 0.4389548 0.0026861181 0.44130215 0.0026796115 0.4436495 0.002673068 0.44599685 0.0026664884 0.4483442 0.0026598733 0.45069156 0.0026532236 0.45303891 0.0026465401 0.45538626 0.0026398234 0.45773361 0.0026330744 0.46008096 0.002626294 0.46242832 0.002619483 0.46477567 0.0026126423 0.46712302 0.0026057729 0.46947037 0.0025988756 0.47181772 0.0025919514 0.47416507 0.0025850014 0.47651243 0.0025780265 0.47885978 0.0025710278 0.48120713 0.0025640064 0.48355448 0.0025569635 0.48590183 0.0025499002 0.48824919 0.0025428177 0.49059654 0.0025357172 0.49294389 0.0025286001 0.49529124 0.0025214677 0.49763859 0.0025143213 0.49998594 0.0025071625 0.5023333 0.0024999926 0.50468065 0.0024928134 0.507028 0.0024856264 0.50937535 0.0024784332 0.5117227 0.0024712357 0.51407006 0.0024640358 0.51641741 0.0024568353 0.51876476 0.0024496363 0.52111211 0.0024424409 0.52345946 0.0024352514 0.52580682 0.0024280702 0.52815417 0.0024208997 0.53050152 0.0024137426 0.53284887 0.0024066016 0.53519622 0.0023994798 0.53754357 0.0023923804 0.53989093 0.0023853066 0.54223828 0.002378262 0.54458563 0.0023712505 0.54693298 0.0023642762 0.54928033 0.0023573434 0.55162769 0.0023504569 0.55397504 0.0023436217 0.55632239 0.0023368433 0.55866974 0.0023301277 0.56101709 0.0023234811 0.56336444 0.0023169105 0.5657118 0.0023104233 0.56805915 0.0023040277 0.5704065 0.0022977324 0.57275385 0.002291547 0.5751012 0.0022854819 0.57744856 0.0022795483 0.57979591 0.0022737584 0.58214326 0.0022681253 0.58449061 0.0022626634 0.58683796 0.002257388 0.58918532 0.0022523155 0.59153267 0.0022474635 0.59388002 0.0022428507 0.59622737 0.0022384967 0.59857472 0.002234422 0.60092207 0.0022306475 0.60326943 0.0022271948 0.60561678 0.002224085 0.60796413 0.0022213391 0.61031148 0.0022189769 0.61265883 0.0022170164 0.61500619 0.0022154736 0.61735354 0.0022143618 0.61970089 0.0022136906 0.62204824 0.0022134662 0.62439527 0.0022135336 0.6267423 0.0022136358 0.62908933 0.0022137728 0.63143636 0.0022139444 0.63378339 0.0022141506 0.63613042 0.0022143911 0.63847745 0.0022146659 0.64082448 0.0022149747 0.64317151 0.0022153174 0.64551855 0.0022156937 0.64786558 0.0022161034 0.65021261 0.0022165464 0.65255964 0.0022170223 0.65490667 0.0022175308 0.6572537 0.0022180718 0.65960073 0.0022186449 0.66194776 0.0022192498 0.66429479 0.0022198863 0.66664182 0.0022205539 0.66898885 0.0022212524 0.67133588 0.0022219813 0.67368291 0.0022227404 0.67602994 0.0022235293 0.67837697 0.0022243476 0.680724 0.0022251949 0.68307103 0.0022260707 0.68541806 0.0022269748 0.68776509 0.0022279066 0.69011212 0.0022288658 0.69245915 0.0022298519 0.69480618 0.0022308644 0.69715321 0.0022319029 0.69950024 0.002232967 0.70184727 0.0022340562 0.70419431 0.0022351699 0.70654134 0.0022363078 0.70888837 0.0022374693 0.7112354 0.002238654 0.71358243 0.0022398613 0.71592946 0.0022410907 0.71827649 0.0022423418 0.72062352 0.0022436139 0.72297055 0.0022449067 0.72531758 0.0022462196 0.72766461 0.002247552 0.73001164 0.0022489034 0.73235867 0.0022502733 0.7347057 0.0022516611 0.73705273 0.0022530664 0.73939976 0.0022544886 0.74174679 0.002255927 0.74409382 0.0022573813 0.74644085 0.0022588508 0.74878788 0.0022603351 0.75113491 0.0022618335 0.75348194 0.0022633455 0.75582897 0.0022648705 0.758176 0.0022664081 0.76052303 0.0022679577 0.76287006 0.0022695186 0.7652171 0.0022710905 0.76756413 0.0022726727 0.76991116 0.0022742647 0.77225819 0.002275866 0.77460522 0.002277476 0.77695225 0.0022790942 0.77929928 0.0022807201 0.78164631 0.002282353 0.78399334 0.0022839926 0.78634037 0.0022856382 0.7886874 0.0022872894 0.79103443 0.0022889456 0.79338146 0.0022906063 0.79572849 0.0022922711 0.79807552 0.0022939393 0.80042255 0.0022956105 0.80276958 0.0022972842 0.80511661 0.00229896 0.80746364 0.0023006372 0.80981067 0.0023023154 0.8121577 0.0023039943 0.81450473 0.0023056731 0.81685176 0.0023073516 0.81919879 0.0023090292 0.82154582 0.0023107056 0.82389285 0.0023123801 0.82623989 0.0023140524 0.82858692 0.0023157221 0.83093395 0.0023173886 0.83328098 0.0023190517 0.83562801 0.0023207108 0.83797504 0.0023223655 0.84032207 0.0023240155 0.8426691 0.0023256603 0.84501613 0.0023272995 0.84736316 0.0023289327 0.84971019 0.0023305596 0.85205722 0.0023321798 0.85440425 0.0023337929 0.85675128 0.0023353985 0.85909831 0.0023369963 0.86144534 0.0023385859 0.86379237 0.002340167 0.8661394 0.0023417393 0.86848643 0.0023433023 0.87083346 0.0023448559 0.87318049 0.0023463996 0.87552752 0.0023479332 0.87787455 0.0023494564 0.88022158 0.0023509689 0.88256861 0.0023524703 0.88491565 0.0023539604 0.88726268 0.0023554389 0.88960971 0.0023569057 0.89195674 0.0023583602 0.89430377 0.0023598025 0.8966508 0.0023612321 0.89899783 0.0023626489 0.90134486 0.0023640526 0.90369189 0.0023654429 0.90603892 0.0023668198 0.90838595 0.0023681829 0.91073298 0.002369532 0.91308001 0.002370867 0.91542704 0.0023721876 0.91777407 0.0023734937 0.9201211 0.002374785 0.92246813 0.0023760614 0.92481516 0.0023773228 0.92716219 0.0023785689 0.92950922 0.0023797996 0.93185625 0.0023810148 0.93420328 0.0023822142 0.93655031 0.0023833978 0.93889734 0.0023845654 0.94124437 0.0023857169 0.94359141 0.0023868522 0.94593844 0.0023879711 0.94828547 0.0023890736 0.9506325 0.0023901594 0.95297953 0.0023912286 0.95532656 0.002392281 0.95767359 0.0023933165 0.96002062 0.002394335 0.96236765 0.0023953365 0.96471468 0.0023963208 0.96706171 0.002397288 0.96940874 0.0023982378 0.97175577 0.0023991703 0.9741028 0.0024000854 0.97644983 0.002400983 0.97879686 0.0024018631 0.98114389 0.0024027256 0.98349092 0.0024035705 0.98583795 0.0024043977 0.98818498 0.0024052072 0.99053201 0.0024059989 0.99287904 0.0024067729 0.99522607 0.002407529 0.9975731 0.0024082674 0.99992013 0.0024089878 1.0022672 0.0024096904 1.0046142 0.0024103751 1.0069612 0.0024110419 1.0093083 0.0024116907 1.0116553 0.0024123216 1.0140023 0.0024129346 1.0163493 0.0024135296 1.0186964 0.0024141066 1.0210434 0.0024146658 1.0233904 0.0024152069 1.0257375 0.0024157301 1.0280845 0.0024162354 1.0304315 0.0024167227 1.0327786 0.0024171921 1.0351256 0.0024176436 1.0374726 0.0024180771 1.0398197 0.0024184928 1.0421667 0.0024188906 1.0445137 0.0024192705 1.0468607 0.0024196325 1.0492078 0.0024199767 1.0515548 0.0024203031 1.0539018 0.0024206117 1.0562489 0.0024209025 1.0585959 0.0024211755 1.0609429 0.0024214308 1.06329 0.0024216683 1.065637 0.0024218881 1.067984 0.0024220903 1.070331 0.0024222747 1.0726781 0.0024224415 1.0750251 0.0024225907 1.0773721 0.0024227223 1.0797192 0.0024228362 1.0820662 0.0024229326 1.0844132 0.0024230114 1.0867603 0.0024230727 1.0891073 0.0024231164 1.0914543 0.0024231427 1.0938014 0.0024231514 1.0961529 0.0024232093 1.0985044 0.0024233827 1.1008559 0.002423671 1.1032074 0.0024240731 1.1055589 0.0024245874 1.1079104 0.0024252121 1.1102619 0.002425945 1.1126134 0.0024267834 1.1149649 0.0024277246 1.1173165 0.0024287654 1.119668 0.0024299027 1.1220195 0.0024311331 1.124371 0.002432453 1.1267225 0.0024338589 1.129074 0.0024353472 1.1314255 0.0024369143 1.133777 0.0024385566 1.1361285 0.0024402707 1.1384801 0.0024420531 1.1408316 0.0024439005 1.1431831 0.0024458097 1.1455346 0.0024477775 1.1478861 0.0024498009 1.1502376 0.0024518771 1.1525891 0.0024540033 1.1549406 0.0024561769 1.1572921 0.0024583954 1.1596437 0.0024606565 1.1619952 0.0024629579 1.1643467 0.0024652975 1.1666982 0.0024676734 1.1690497 0.0024700836 1.1714012 0.0024725264 1.1737527 0.0024750002 1.1761042 0.0024775033 1.1784557 0.0024800342 1.1808073 0.0024825917 1.1831588 0.0024851743 1.1855103 0.0024877809 1.1878618 0.0024904103 1.1902133 0.0024930615 1.1925648 0.0024957333 1.1949163 0.0024984249 1.1972678 0.0025011354 1.1996193 0.0025038639 1.2019709 0.0025066096 1.2043224 0.0025093719 1.2066739 0.0025121498 1.2090254 0.0025149429 1.2113769 0.0025177505 1.2137284 0.002520572 1.2160799 0.0025234068 1.2184314 0.0025262544 1.2207829 0.0025291144 1.2231344 0.0025319862 1.225486 0.0025348694 1.2278375 0.0025377635 1.230189 0.0025406683 1.2325405 0.0025435833 1.234892 0.0025465081 1.2372435 0.0025494424 1.239595 0.0025523858 1.2419465 0.0025553382 1.244298 0.002558299 1.2466496 0.0025612682 1.2490011 0.0025642453 1.2513526 0.0025672302 1.2537041 0.0025702225 1.2560556 0.002573222 1.2584071 0.0025762286 1.2607586 0.0025792419 1.2631101 0.0025822617 1.2654616 0.0025852879 1.2678132 0.0025883201 1.2701647 0.0025913582 1.2725162 0.0025944021 1.2748677 0.0025974514 1.2772192 0.0026005059 1.2795707 0.0026035656 1.2819222 0.0026066301 1.2842737 0.0026096994 1.2866252 0.0026127731 1.2889768 0.002615851 1.2913283 0.002618933 1.2936798 0.0026220189 1.2960313 0.0026251083 1.2983828 0.0026282012 1.3007343 0.0026312971 1.3030858 0.0026343959 1.3054373 0.0026374973 1.3077888 0.0026406009 1.3101404 0.0026437065 1.3124919 0.0026468135 1.3148434 0.0026499217 1.3171949 0.0026530305 1.3195464 0.0026561394 1.3218979 0.0026592476 1.3242494 0.0026623544 1.3266009 0.002665459 1.3289524 0.00266856 1.331304 0.0026716561 1.3336555 0.0026747455 1.336007 0.0026778258 1.3383585 0.0026808939 1.34071 0.0026839454 1.3430615 0.0026869746 1.345413 0.0026899728 1.3477645 0.0026929272 1.350116 0.0026958179 1.3524675 0.002698612 1.3548191 0.0027012519 1.3571706 0.0027036298 1.3595221 0.0027055287 1.3618736 0.0027064981 1.3642251 0.0027057213 1.3665766 0.0027024177 1.3689281 0.0026968269 1.3712796 0.0026898478 1.3736311 0.0026821353 1.3759827 0.0026740199 1.3783342 0.0026656624 1.3806857 0.0026571456 1.3830372 0.0026485153 1.3853887 0.0026397992 1.3877402 0.0026310148 1.3900917 0.0026221739 1.3924432 0.0026132849 1.3947947 0.0026043542 1.3971463 0.0025953867 1.3994978 0.0025863862 1.4018493 0.0025773562 1.4042008 0.0025682993 1.4065523 0.0025592183 1.4089038 0.0025501152 1.4112553 0.0025409924 1.4136068 0.0025318516 1.4159583 0.0025226947 1.4183099 0.0025135236 1.4206614 0.00250434 1.4230129 0.0024951455 1.4253644 0.0024859417 1.4277159 0.0024767303 1.4300674 0.0024675128 1.4324189 0.0024582908 1.4347704 0.0024490657 1.4371219 0.0024398393 1.4394735 0.0024306129 1.441825 0.002421388 1.4441765 0.0024121662 1.446528 0.002402949 1.4488795 0.0023937378 1.451231 0.0023845342 1.4535825 0.0023753396 1.455934 0.0023661555 1.4582855 0.0023569835 1.460637 0.0023478249 1.4629886 0.0023386814 1.4653401 0.0023295543 1.4676916 0.0023204453 1.4700431 0.0023113557 1.4723946 0.0023022871 1.4747461 0.002293241 1.4770976 0.002284219 1.4794491 0.0022752224 1.4818006 0.0022662529 1.4841522 0.002257312 1.4865037 0.0022484013 1.4888552 0.0022395222 1.4912067 0.0022306763 1.4935582 0.0022218652 1.4959097 0.0022130904 1.4982612 0.0022043536 1.5006127 0.0021956563 1.5029642 0.0021870001 1.5053158 0.0021783866 1.5076673 0.0021698175 1.5100188 0.0021612943 1.5123703 0.0021528188 1.5147218 0.0021443925 1.5170733 0.0021360171 1.5194248 0.0021276944 1.5217763 0.0021194259 1.5241278 0.0021112134 1.5264794 0.0021030586 1.5288309 0.0020949632 1.5311824 0.0020869289 1.5335339 0.0020789576 1.5358854 0.0020710509 1.5382369 0.0020632107 1.5405884 0.0020554387 1.5429399 0.0020477368 1.5452914 0.0020401067 1.547643 0.0020325504 1.5499945 0.0020250695 1.552346 0.0020176661 1.5546975 0.0020103421 1.557049 0.0020030992 1.5594005 0.0019959395 1.561752 0.001988865 1.5641035 0.0019818775 1.566455 0.0019749792 1.5688065 0.001968172 1.5711581 0.0019614581 1.5735096 0.0019548395 1.5758611 0.0019483185 1.5782126 0.0019418971 1.5805641 0.0019355777 1.5829156 0.0019293626 1.5852671 0.0019232542 1.5876186 0.0019172548 1.5899701 0.0019113669 1.5923217 0.0019055931 1.5946732 0.0018999361 1.5970247 0.0018943984 1.5993762 0.0018889829 1.6017277 0.0018836924 1.6040792 0.0018785296 1.6064307 0.0018734976 1.6087822 0.0018685993 1.6111337 0.0018638376 1.6134853 0.0018592154 1.6158368 0.0018547357 1.6181883 0.0018504011 1.6205398 0.0018462143 1.6228913 0.0018421777 1.6252428 0.0018382936 1.6275943 0.0018345639 1.6299458 0.0018309899 1.6322973 0.0018275728 1.6346489 0.0018243131 1.6370004 0.0018212107 1.6393519 0.0018182651 1.6417034 0.0018154749 1.6440549 0.0018128382 1.6464064 0.0018103523 1.6487579 0.001808014 1.6511094 0.0018058193 1.6534609 0.0018037639 1.6558125 0.0018018427 1.658164 0.0018000504 1.6605155 0.0017983814 1.662867 0.0017968295 1.6652185 0.0017953887 1.66757 0.0017940529 1.6699215 0.0017928158 1.672273 0.0017916712 1.6746245 0.0017906132 1.6769761 0.0017896359 1.6793276 0.0017887337 1.6816791 0.001787901 1.6840306 0.0017871328 1.6863821 0.0017864242 1.6887336 0.0017857705 1.6910851 0.0017851674 1.6934366 0.0017846108 1.6957881 0.0017840969 1.6981396 0.0017836221 1.7004912 0.0017831832 1.7028427 0.0017827771 1.7051942 0.0017824009 1.7075457 0.001782052 1.7098972 0.0017817279 1.7122487 0.0017814265 1.7146002 0.0017811455 1.7169517 0.0017808832 1.7193032 0.0017806377 1.7216548 0.0017804074 1.7240063 0.0017801908 1.7263578 0.0017799865 1.7287093 0.0017797932 1.7310608 0.0017796099 1.7334123 0.0017794353 1.7357638 0.0017792685 1.7381153 0.0017791087 1.7404668 0.001778955 1.7428184 0.0017788065 1.7451699 0.0017786628 1.7475214 0.001778523 1.7498729 0.0017783866 1.7522244 0.0017782532 1.7545759 0.0017781222 1.7569274 0.0017779931 1.7592789 0.0017778657 1.7616304 0.0017777395 1.763982 0.0017776143 1.7663335 0.0017774897 1.768685 0.0017773655 1.7710365 0.0017772415 1.773388 0.0017771174 1.7757395 0.0017769931 1.778091 0.0017768685 1.7804425 0.0017767434 1.782794 0.0017766178 1.7851456 0.0017764914 1.7874971 0.0017763643 1.7898486 0.0017762363 1.7922001 0.0017761075 1.7945516 0.0017759778 1.7969031 0.0017758472 1.7992546 0.0017757157 1.8016061 0.0017755832 1.8039576 0.0017754498 1.8063091 0.0017753156 1.8086607 0.0017751805 1.8110122 0.0017750446 1.8133637 0.0017749079 1.8157152 0.0017747705 1.8180667 0.0017746324 1.8204182 0.0017744937 1.8227697 0.0017743544 1.8251212 0.0017742146 1.8274727 0.0017740745 1.8298243 0.0017739339 1.8321758 0.0017737931 1.8345273 0.0017736522 1.8368788 0.0017735111 1.8392303 0.0017733699 1.8415818 0.0017732288 1.8439333 0.0017730878 1.8462848 0.0017729471 1.8486363 0.0017728066 1.8509879 0.0017726664 1.8533394 0.0017725267 1.8556909 0.0017723876 1.8580424 0.001772249 1.8603939 0.0017721111 1.8627454 0.0017719739 1.8650969 0.0017718376 1.8674484 0.0017717021 1.8697999 0.0017715677 1.8721515 0.0017714342 1.874503 0.0017713019 1.87685 0.0017715315 1.879197 0.0017717849 1.8815441 0.0017720618 1.8838911 0.0017723618 1.8862381 0.0017726846 1.8885851 0.0017730298 1.8909322 0.0017733969 1.8932792 0.0017737856 1.8956262 0.0017741955 1.8979733 0.0017746259 1.9003203 0.0017750766 1.9026673 0.0017755469 1.9050144 0.0017760364 1.9073614 0.0017765445 1.9097084 0.0017770706 1.9120555 0.0017776142 1.9144025 0.0017781746 1.9167495 0.0017787514 1.9190965 0.0017793438 1.9214436 0.0017799512 1.9237906 0.0017805729 1.9261376 0.0017812084 1.9284847 0.0017818569 1.9308317 0.0017825177 1.9331787 0.0017831902 1.9355258 0.0017838736 1.9378728 0.0017845673 1.9402198 0.0017852704 1.9425668 0.0017859822 1.9449139 0.0017867021 1.9472609 0.0017874292 1.9496079 0.0017881628 1.951955 0.0017889022 1.954302 0.0017896465 1.956649 0.001790395 1.9589961 0.0017911468 1.9613431 0.0017919013 1.9636901 0.0017926577 1.9660372 0.001793415 1.9683842 0.0017941726 1.9707312 0.0017949297 1.9730782 0.0017956855 1.9754253 0.0017964391 1.9777723 0.0017971898 1.9801193 0.0017979367 1.9824664 0.0017986792 1.9848134 0.0017994163 1.9871604 0.0018001474 1.9895075 0.0018008716 1.9918545 0.0018015881 1.9942015 0.0018022962 1.9965485 0.0018029951 1.9988956 0.001803684 2.0012426 0.0018043621 2.0035896 0.0018050288 2.0059367 0.0018056832 2.0082837 0.0018063246 2.0106307 0.0018069522 2.0129778 0.0018075654 2.0153248 0.0018081634 2.0176718 0.0018087454 2.0200188 0.0018093109 2.0223659 0.0018098589 2.0247129 0.001810389 2.0270599 0.0018109004 2.029407 0.0018113924 2.031754 0.0018118643 2.034101 0.0018123156 2.0364481 0.0018127456 2.0387951 0.0018131535 2.0411421 0.0018135389 2.0434892 0.0018139011 2.0458362 0.0018142396 2.0481832 0.0018145536 2.0505302 0.0018148427 2.0528773 0.0018151063 2.0552243 0.0018153439 2.0575713 0.0018155549 2.0599184 0.0018157387 2.0622654 0.001815895 2.0646124 0.0018160231 2.0669595 0.0018161227 2.0693065 0.0018161931 2.0716535 0.0018162341 2.0740005 0.001816245 2.0763476 0.0018162256 2.0786946 0.0018161754 2.0810416 0.001816094 2.0833887 0.0018159809 2.0857357 0.0018158359 2.0880827 0.0018156586 2.0904298 0.0018154485 2.0927768 0.0018152055 2.0951238 0.0018149292 2.0974709 0.0018146192 2.0998179 0.0018142753 2.1021649 0.0018138971 2.1045119 0.0018134846 2.106859 0.0018130373 2.109206 0.001812555 2.111553 0.0018120376 2.1139001 0.0018114848 2.1162471 0.0018108965 2.1185941 0.0018102724 2.1209412 0.0018096123 2.1232882 0.0018089162 2.1256352 0.0018081838 2.1279822 0.001807415 2.1303293 0.0018066098 2.1326763 0.001805768 2.1350233 0.0018048895 2.1373704 0.0018039742 2.1397174 0.001803022 2.1420644 0.001802033 2.1444115 0.0018010069 2.1467585 0.0017999439 2.1491055 0.0017988438 2.1514526 0.0017977066 2.1537996 0.0017965324 2.1561466 0.001795321 2.1584936 0.0017940726 2.1608407 0.0017927871 2.1631877 0.0017914645 2.1655347 0.001790105 2.1678818 0.0017887084 2.1702288 0.0017872749 2.1725758 0.0017858046 2.1749229 0.0017842974 2.1772699 0.0017827534 2.1796169 0.0017811727 2.1819639 0.0017795554 2.184311 0.0017779015 2.186658 0.0017762112 2.189005 0.0017744845 2.1913521 0.0017727215 2.1936991 0.0017709224 2.1960461 0.0017690871 2.1983932 0.0017672159 2.2007402 0.0017653087 2.2030872 0.0017633659 2.2054343 0.0017613873 2.2077813 0.0017593732 2.2101283 0.0017573237 2.2124753 0.0017552388 2.2148224 0.0017531187 2.2171694 0.0017509636 2.2195164 0.0017487734 2.2218635 0.0017465484 2.2242105 0.0017442887 2.2265575 0.0017419943 2.2289046 0.0017396654 2.2312516 0.0017373022 2.2335986 0.0017349046 2.2359456 0.0017324729 2.2382927 0.0017300072 2.2406397 0.0017275075 2.2429867 0.001724974 2.2453338 0.0017224069 2.2476808 0.0017198061 2.2500278 0.001717172 2.2523749 0.0017145045 2.2547219 0.0017118038 2.2570689 0.00170907 2.2594159 0.0017063033 2.261763 0.0017035039 2.26411 0.0017006717 2.266457 0.0016978072 2.2688041 0.0016949103 2.2711511 0.0016919813 2.2734981 0.0016890203 2.2758452 0.0016860277 2.2781922 0.0016830037 2.2805392 0.0016799485 2.2828863 0.0016768625 2.2852333 0.0016737461 2.2875803 0.0016705996 2.2899273 0.0016674237 2.2922744 0.0016642187 2.2946214 0.0016609856 2.2969684 0.001657725 2.2993155 0.0016544381 2.3016625 0.0016511259 2.3040095 0.0016477899 2.3063566 0.0016444319 2.3087036 0.0016410542 2.3110506 0.0016376594 2.3133976 0.0016342511 2.3157447 0.0016308337 2.3180917 0.001627413 2.3204387 0.0016239966 2.3227858 0.0016205945 2.3251328 0.0016172204 2.3274798 0.001613893 2.3298269 0.0016106386 2.3321739 0.0016074944 2.3345209 0.0016045139 2.336868 0.0016017739 2.339215 0.0015993828 2.341562 0.0015974841 2.343909 0.0015962447 2.3462561 0.0015958112 & @target G0.S6 @type xy 0 0.0026508996 0.0023473519 0.0026509809 0.0046947037 0.0026512249 0.0070420556 0.0026516312 0.0093894074 0.0026521993 0.011736759 0.0026529288 0.014084111 0.0026538187 0.016431463 0.0026548681 0.018778815 0.0026560759 0.021126167 0.0026574407 0.023473519 0.0026589612 0.02582087 0.0026606356 0.028168222 0.0026624622 0.030515574 0.0026644392 0.032862926 0.0026665643 0.035210278 0.0026688355 0.03755763 0.0026712505 0.039904982 0.0026738066 0.042252333 0.0026765015 0.044599685 0.0026793325 0.046947037 0.0026822966 0.049294389 0.0026853912 0.051641741 0.0026886131 0.053989093 0.0026919595 0.056336444 0.0026954271 0.058683796 0.0026990127 0.061031148 0.0027027132 0.0633785 0.0027065251 0.065725852 0.0027104452 0.068073204 0.00271447 0.070420556 0.0027185962 0.072767907 0.0027228201 0.075115259 0.0027271384 0.077462611 0.0027315475 0.079809963 0.0027360439 0.082157315 0.0027406241 0.084504667 0.0027452844 0.086852019 0.0027500214 0.08919937 0.0027548316 0.091546722 0.0027597113 0.093894074 0.0027646571 0.096241426 0.0027696655 0.098588778 0.0027747329 0.10093613 0.002779856 0.10328348 0.0027850313 0.10563083 0.0027902553 0.10797819 0.0027955248 0.11032554 0.0028008364 0.11267289 0.0028061867 0.11502024 0.0028115725 0.11736759 0.0028169905 0.11971494 0.0028224377 0.1220623 0.0028279108 0.12440965 0.0028334067 0.126757 0.0028389225 0.12910435 0.002844455 0.1314517 0.0028500014 0.13379906 0.0028555588 0.13614641 0.0028611242 0.13849376 0.0028666948 0.14084111 0.0028722681 0.14318846 0.0028778411 0.14553581 0.0028834114 0.14788317 0.0028889762 0.15023052 0.0028945331 0.15257787 0.0029000795 0.15492522 0.0029056131 0.15727257 0.0029111315 0.15961993 0.0029166324 0.16196728 0.0029221134 0.16431463 0.0029275724 0.16666198 0.0029330072 0.16900933 0.0029384158 0.17135669 0.0029437961 0.17370404 0.0029491461 0.17605139 0.0029544639 0.17839874 0.0029597475 0.18074609 0.0029649953 0.18309344 0.0029702054 0.1854408 0.0029753761 0.18778815 0.0029805058 0.1901355 0.0029855929 0.19248285 0.0029906358 0.1948302 0.0029956331 0.19717756 0.0030005833 0.19952491 0.003005485 0.20187226 0.003010337 0.20421961 0.0030151379 0.20656696 0.0030198866 0.20891432 0.0030245819 0.21126167 0.0030292227 0.21360902 0.003033808 0.21595637 0.0030383368 0.21830372 0.0030428082 0.22065107 0.0030472212 0.22299843 0.0030515751 0.22534578 0.003055869 0.22769313 0.0030601024 0.23004048 0.0030642745 0.23238783 0.0030683847 0.23473519 0.0030688946 0.23708254 0.0030666609 0.23942989 0.0030643815 0.24177724 0.0030620559 0.24412459 0.0030596839 0.24647194 0.003057265 0.2488193 0.0030547989 0.25116665 0.0030522853 0.253514 0.0030497238 0.25586135 0.0030471141 0.2582087 0.0030444558 0.26055606 0.0030417488 0.26290341 0.0030389926 0.26525076 0.0030361871 0.26759811 0.0030333318 0.26994546 0.0030304266 0.27229282 0.0030274712 0.27464017 0.0030244653 0.27698752 0.0030214088 0.27933487 0.0030183013 0.28168222 0.0030151427 0.28402957 0.0030119327 0.28637693 0.0030086712 0.28872428 0.003005358 0.29107163 0.0030019928 0.29341898 0.0029985756 0.29576633 0.0029951062 0.29811369 0.0029915844 0.30046104 0.0029880101 0.30280839 0.0029843832 0.30515574 0.0029807036 0.30750309 0.0029769711 0.30985044 0.0029731858 0.3121978 0.0029693474 0.31454515 0.002965456 0.3168925 0.0029615116 0.31923985 0.0029575139 0.3215872 0.0029534631 0.32393456 0.0029493592 0.32628191 0.002945202 0.32862926 0.0029409917 0.33097661 0.0029367281 0.33332396 0.0029324115 0.33567132 0.0029280418 0.33801867 0.002923619 0.34036602 0.0029191433 0.34271337 0.0029146146 0.34506072 0.0029100332 0.34740807 0.0029053991 0.34975543 0.0029007124 0.35210278 0.0028959733 0.35445013 0.0028911818 0.35679748 0.0028863382 0.35914483 0.0028814426 0.36149219 0.0028764953 0.36383954 0.0028714963 0.36618689 0.0028664458 0.36853424 0.0028613442 0.37088159 0.0028561917 0.37322894 0.0028509884 0.3755763 0.0028457346 0.37792365 0.0028404307 0.380271 0.0028350769 0.38261835 0.0028296734 0.3849657 0.0028242206 0.38731306 0.0028187189 0.38966041 0.0028131685 0.39200776 0.0028075698 0.39435511 0.0028019232 0.39670246 0.002796229 0.39904982 0.0027904876 0.40139717 0.0027846995 0.40374452 0.0027788651 0.40609187 0.0027729848 0.40843922 0.0027670589 0.41078657 0.0027610881 0.41313393 0.0027550728 0.41548128 0.0027490135 0.41782863 0.0027429106 0.42017598 0.0027367647 0.42252333 0.0027371151 0.42487069 0.0027462595 0.42721804 0.002755344 0.42956539 0.0027643681 0.43191274 0.0027733315 0.43426009 0.0027822338 0.43660744 0.0027910746 0.4389548 0.0027998536 0.44130215 0.0028085706 0.4436495 0.0028172253 0.44599685 0.0028258174 0.4483442 0.0028343467 0.45069156 0.002842813 0.45303891 0.0028512163 0.45538626 0.0028595563 0.45773361 0.0028678329 0.46008096 0.0028760461 0.46242832 0.0028841958 0.46477567 0.002892282 0.46712302 0.0029003046 0.46947037 0.0029082637 0.47181772 0.0029161594 0.47416507 0.0029239916 0.47651243 0.0029317605 0.47885978 0.0029394662 0.48120713 0.0029471088 0.48355448 0.0029546884 0.48590183 0.0029622053 0.48824919 0.0029696597 0.49059654 0.0029770517 0.49294389 0.0029843816 0.49529124 0.0029916496 0.49763859 0.0029988562 0.49998594 0.0030060015 0.5023333 0.0030130858 0.50468065 0.0030201096 0.507028 0.0030270732 0.50937535 0.003033977 0.5117227 0.0030408214 0.51407006 0.0030476067 0.51641741 0.0030543335 0.51876476 0.0030610022 0.52111211 0.0030676132 0.52345946 0.0030741671 0.52580682 0.0030806644 0.52815417 0.0030871055 0.53050152 0.0030934911 0.53284887 0.0030998216 0.53519622 0.0031060976 0.53754357 0.0031123197 0.53989093 0.0031184884 0.54223828 0.0031246044 0.54458563 0.0031306682 0.54693298 0.0031366805 0.54928033 0.0031426418 0.55162769 0.0031485528 0.55397504 0.0031544141 0.55632239 0.0031602262 0.55866974 0.0031659899 0.56101709 0.0031717056 0.56336444 0.003177374 0.5657118 0.0031829956 0.56805915 0.0031885711 0.5704065 0.0031941008 0.57275385 0.0031995854 0.5751012 0.0032050252 0.57744856 0.0032104206 0.57979591 0.003215772 0.58214326 0.0032210794 0.58449061 0.0032263431 0.58683796 0.0032315628 0.58918532 0.0032367383 0.59153267 0.0032418687 0.59388002 0.0032469531 0.59622737 0.0032519895 0.59857472 0.0032569752 0.60092207 0.003261906 0.60326943 0.0032667753 0.60561678 0.0032715728 0.60796413 0.0032762817 0.61031148 0.003280873 0.61265883 0.0032852947 0.61500619 0.0032894451 0.61735354 0.003293113 0.61970089 0.0032958542 0.62204824 0.0032969262 0.62439527 0.0032969259 0.6267423 0.0032969251 0.62908933 0.0032969237 0.63143636 0.0032969219 0.63378339 0.0032969195 0.63613042 0.0032969167 0.63847745 0.0032969134 0.64082448 0.0032969098 0.64317151 0.0032969057 0.64551855 0.0032969014 0.64786558 0.0032968968 0.65021261 0.0032968921 0.65255964 0.0032968872 0.65490667 0.0032968823 0.6572537 0.0032968774 0.65960073 0.0032968726 0.66194776 0.003296868 0.66429479 0.0032968637 0.66664182 0.0032968598 0.66898885 0.0032968565 0.67133588 0.0032968537 0.67368291 0.0032968517 0.67602994 0.0032968505 0.67837697 0.0032968503 0.680724 0.0032968512 0.68307103 0.0032968534 0.68541806 0.0032968569 0.68776509 0.0032968619 0.69011212 0.0032968686 0.69245915 0.0032968771 0.69480618 0.0032968876 0.69715321 0.0032969002 0.69950024 0.003296915 0.70184727 0.0032969323 0.70419431 0.0032969521 0.70654134 0.0032969748 0.70888837 0.0032970003 0.7112354 0.003297029 0.71358243 0.0032970609 0.71592946 0.0032970963 0.71827649 0.0032971352 0.72062352 0.003297178 0.72297055 0.0032972247 0.72531758 0.0032972756 0.72766461 0.0032973308 0.73001164 0.0032973905 0.73235867 0.0032974549 0.7347057 0.0032975241 0.73705273 0.0032975984 0.73939976 0.0032976779 0.74174679 0.0032977628 0.74409382 0.0032978532 0.74644085 0.0032979494 0.74878788 0.0032980514 0.75113491 0.0032981596 0.75348194 0.003298274 0.75582897 0.0032983947 0.758176 0.0032985221 0.76052303 0.0032986562 0.76287006 0.0032987972 0.7652171 0.0032989452 0.76756413 0.0032991004 0.76991116 0.0032992629 0.77225819 0.0032994329 0.77460522 0.0032996105 0.77695225 0.0032997959 0.77929928 0.0032999891 0.78164631 0.0033001904 0.78399334 0.0033003998 0.78634037 0.0033006174 0.7886874 0.0033008433 0.79103443 0.0033010777 0.79338146 0.0033013206 0.79572849 0.0033015722 0.79807552 0.0033018325 0.80042255 0.0033021015 0.80276958 0.0033023795 0.80511661 0.0033026664 0.80746364 0.0033029623 0.80981067 0.0033032672 0.8121577 0.0033035812 0.81450473 0.0033039044 0.81685176 0.0033042367 0.81919879 0.0033045782 0.82154582 0.0033049289 0.82389285 0.0033052888 0.82623989 0.0033056579 0.82858692 0.0033060362 0.83093395 0.0033064237 0.83328098 0.0033068203 0.83562801 0.0033064532 0.83797504 0.0033055789 0.84032207 0.0033047209 0.8426691 0.0033038795 0.84501613 0.003303055 0.84736316 0.0033022478 0.84971019 0.003301458 0.85205722 0.0033006861 0.85440425 0.0032999321 0.85675128 0.0032991963 0.85909831 0.0032984789 0.86144534 0.0032977802 0.86379237 0.0032971003 0.8661394 0.0032964392 0.86848643 0.0032957973 0.87083346 0.0032951744 0.87318049 0.0032945709 0.87552752 0.0032939866 0.87787455 0.0032934218 0.88022158 0.0032928763 0.88256861 0.0032923503 0.88491565 0.0032918437 0.88726268 0.0032913565 0.88960971 0.0032908886 0.89195674 0.0032904401 0.89430377 0.0032900107 0.8966508 0.0032896005 0.89899783 0.0032892093 0.90134486 0.003288837 0.90369189 0.0032884834 0.90603892 0.0032881484 0.90838595 0.0032878318 0.91073298 0.0032875333 0.91308001 0.0032872529 0.91542704 0.0032869903 0.91777407 0.0032867451 0.9201211 0.0032865173 0.92246813 0.0032863064 0.92481516 0.0032861123 0.92716219 0.0032859346 0.92950922 0.003285773 0.93185625 0.0032856272 0.93420328 0.0032854968 0.93655031 0.0032853816 0.93889734 0.0032852812 0.94124437 0.0032851951 0.94359141 0.0032851231 0.94593844 0.0032850647 0.94828547 0.0032850196 0.9506325 0.0032849873 0.95297953 0.0032849675 0.95532656 0.0032849597 0.95767359 0.0032849635 0.96002062 0.0032849785 0.96236765 0.0032850043 0.96471468 0.0032850403 0.96706171 0.0032850862 0.96940874 0.0032851416 0.97175577 0.0032852059 0.9741028 0.0032852787 0.97644983 0.0032853596 0.97879686 0.0032854481 0.98114389 0.0032855438 0.98349092 0.0032856461 0.98583795 0.0032857547 0.98818498 0.0032858691 0.99053201 0.0032859888 0.99287904 0.0032861133 0.99522607 0.0032862423 0.9975731 0.0032863753 0.99992013 0.0032865118 1.0022672 0.0032866513 1.0046142 0.0032867935 1.0069612 0.003286938 1.0093083 0.0032870842 1.0116553 0.0032872318 1.0140023 0.0032873803 1.0163493 0.0032875294 1.0186964 0.0032876786 1.0210434 0.0032878275 1.0233904 0.0032879758 1.0257375 0.0032881231 1.0280845 0.003288269 1.0304315 0.0032884132 1.0327786 0.0032885553 1.0351256 0.0032886949 1.0374726 0.0032888318 1.0398197 0.0032889656 1.0421667 0.0032890959 1.0445137 0.0032892226 1.0468607 0.0032893454 1.0492078 0.0032894639 1.0515548 0.0032895778 1.0539018 0.0032896871 1.0562489 0.0032897913 1.0585959 0.0032898903 1.0609429 0.0032899839 1.06329 0.0032900719 1.065637 0.0032901541 1.067984 0.0032902303 1.070331 0.0032903003 1.0726781 0.0032903642 1.0750251 0.0032904216 1.0773721 0.0032904725 1.0797192 0.0032905168 1.0820662 0.0032905544 1.0844132 0.0032905853 1.0867603 0.0032906094 1.0891073 0.0032906266 1.0914543 0.0032906369 1.0938014 0.0032906404 1.0961529 0.0032906198 1.0985044 0.0032905583 1.1008559 0.0032904558 1.1032074 0.0032903123 1.1055589 0.003290128 1.1079104 0.0032899031 1.1102619 0.0032896376 1.1126134 0.0032893318 1.1149649 0.0032889859 1.1173165 0.0032886001 1.119668 0.0032881747 1.1220195 0.00328771 1.124371 0.0032872063 1.1267225 0.0032866641 1.129074 0.0032860836 1.1314255 0.0032854653 1.133777 0.0032848097 1.1361285 0.0032841172 1.1384801 0.0032833883 1.1408316 0.0032826235 1.1431831 0.0032818234 1.1455346 0.0032809885 1.1478861 0.0032801194 1.1502376 0.0032792168 1.1525891 0.0032762335 1.1549406 0.0032724012 1.1572921 0.003268532 1.1596437 0.003264625 1.1619952 0.0032606795 1.1643467 0.0032566948 1.1666982 0.00325267 1.1690497 0.0032486043 1.1714012 0.0032444971 1.1737527 0.0032403475 1.1761042 0.0032361547 1.1784557 0.003231918 1.1808073 0.0032276366 1.1831588 0.0032233097 1.1855103 0.0032189367 1.1878618 0.0032145167 1.1902133 0.003210049 1.1925648 0.0032055329 1.1949163 0.0032009677 1.1972678 0.0031963527 1.1996193 0.0031916871 1.2019709 0.0031869703 1.2043224 0.0031822017 1.2066739 0.0031773806 1.2090254 0.0031725063 1.2113769 0.0031675783 1.2137284 0.0031625959 1.2160799 0.0031575586 1.2184314 0.0031524658 1.2207829 0.003147317 1.2231344 0.0031421115 1.225486 0.003136849 1.2278375 0.003131529 1.230189 0.0031261509 1.2325405 0.0031207144 1.234892 0.0031152191 1.2372435 0.0031096645 1.239595 0.0031040502 1.2419465 0.003098376 1.244298 0.0030926416 1.2466496 0.0030868465 1.2490011 0.0030809907 1.2513526 0.0030750737 1.2537041 0.0030690955 1.2560556 0.0030630559 1.2584071 0.0030569546 1.2607586 0.0030507916 1.2631101 0.0030445667 1.2654616 0.0030382799 1.2678132 0.0030319313 1.2701647 0.0030255206 1.2725162 0.0030190481 1.2748677 0.0030125137 1.2772192 0.0030059175 1.2795707 0.0029992597 1.2819222 0.0029925404 1.2842737 0.0029857597 1.2866252 0.0029789181 1.2889768 0.0029720156 1.2913283 0.0029650527 1.2936798 0.0029580295 1.2960313 0.0029509467 1.2983828 0.0029438044 1.3007343 0.0029366033 1.3030858 0.0029293439 1.3054373 0.0029220266 1.3077888 0.0029146522 1.3101404 0.0029072214 1.3124919 0.0028997348 1.3148434 0.0028921934 1.3171949 0.0028845981 1.3195464 0.0028769498 1.3218979 0.0028692498 1.3242494 0.0028614993 1.3266009 0.0028536999 1.3289524 0.0028458533 1.331304 0.0028379616 1.3336555 0.0028300271 1.336007 0.002822053 1.3383585 0.002814043 1.34071 0.0028060022 1.3430615 0.0027979371 1.345413 0.0027898572 1.3477645 0.002781776 1.350116 0.0027737143 1.3524675 0.0027657058 1.3548191 0.002757809 1.3571706 0.0027501326 1.3595221 0.0027428944 1.3618736 0.002736546 1.3642251 0.0027319048 1.3665766 0.0027297526 1.3689281 0.0027298507 1.3712796 0.0027313012 1.3736311 0.0027334503 1.3759827 0.0027359683 1.3783342 0.0027386958 1.3806857 0.0027415509 1.3830372 0.0027444887 1.3853887 0.002747483 1.3877402 0.0027505171 1.3900917 0.0027535805 1.3924432 0.0027566658 1.3947947 0.0027597678 1.3971463 0.0027628829 1.3994978 0.0027660083 1.4018493 0.0027691418 1.4042008 0.0027722818 1.4065523 0.002775427 1.4089038 0.0027785763 1.4112553 0.0027817288 1.4136068 0.0027848838 1.4159583 0.0027880407 1.4183099 0.0027911988 1.4206614 0.0027943578 1.4230129 0.0027975172 1.4253644 0.0028006767 1.4277159 0.0028038358 1.4300674 0.0028069943 1.4324189 0.0028101518 1.4347704 0.0028133082 1.4371219 0.0028164631 1.4394735 0.0028196163 1.441825 0.0028227675 1.4441765 0.0028259165 1.446528 0.0028290631 1.4488795 0.0028322071 1.451231 0.0028353482 1.4535825 0.0028384863 1.455934 0.0028416211 1.4582855 0.0028447523 1.460637 0.0028478799 1.4629886 0.0028510035 1.4653401 0.002854123 1.4676916 0.0028572381 1.4700431 0.0028603485 1.4723946 0.0028634542 1.4747461 0.0028665548 1.4770976 0.0028696501 1.4794491 0.0028727399 1.4818006 0.0028758239 1.4841522 0.0028789018 1.4865037 0.0028819735 1.4888552 0.0028850385 1.4912067 0.0028880968 1.4935582 0.0028911479 1.4959097 0.0028941916 1.4982612 0.0028972275 1.5006127 0.0029002555 1.5029642 0.0029032751 1.5053158 0.002906286 1.5076673 0.002909288 1.5100188 0.0029122806 1.5123703 0.0029152635 1.5147218 0.0029182364 1.5170733 0.0029211988 1.5194248 0.0029241504 1.5217763 0.0029270908 1.5241278 0.0029300195 1.5264794 0.0029329363 1.5288309 0.0029358405 1.5311824 0.0029387319 1.5335339 0.0029416099 1.5358854 0.002944474 1.5382369 0.0029473239 1.5405884 0.002950159 1.5429399 0.0029529788 1.5452914 0.0029557828 1.547643 0.0029585704 1.5499945 0.0029613413 1.552346 0.0029640947 1.5546975 0.0029668302 1.557049 0.0029695471 1.5594005 0.0029722449 1.561752 0.002974923 1.5641035 0.0029775807 1.566455 0.0029802174 1.5688065 0.0029828325 1.5711581 0.0029854253 1.5735096 0.002987995 1.5758611 0.002990541 1.5782126 0.0029930626 1.5805641 0.0029955589 1.5829156 0.0029980292 1.5852671 0.0030004727 1.5876186 0.0030028885 1.5899701 0.0030052756 1.5923217 0.0030076333 1.5946732 0.0030099604 1.5970247 0.0030122559 1.5993762 0.0030145187 1.6017277 0.0030167476 1.6040792 0.0030189414 1.6064307 0.0030210988 1.6087822 0.0030232181 1.6111337 0.0030252979 1.6134853 0.0030273364 1.6158368 0.0030293318 1.6181883 0.0030301053 1.6205398 0.0030273604 1.6228913 0.0030245628 1.6252428 0.0030217123 1.6275943 0.0030188086 1.6299458 0.0030158516 1.6322973 0.0030128413 1.6346489 0.0030097775 1.6370004 0.0030066602 1.6393519 0.0030034895 1.6417034 0.0030002654 1.6440549 0.0029969881 1.6464064 0.0029936577 1.6487579 0.0029902744 1.6511094 0.0029868386 1.6534609 0.0029833504 1.6558125 0.0029798103 1.658164 0.0029762187 1.6605155 0.0029725761 1.662867 0.0029688829 1.6652185 0.0029651398 1.66757 0.0029613473 1.6699215 0.0029575063 1.672273 0.0029536173 1.6746245 0.0029496813 1.6769761 0.002945699 1.6793276 0.0029416714 1.6816791 0.0029375994 1.6840306 0.0029334841 1.6863821 0.0029293266 1.6887336 0.002925128 1.6910851 0.0029208895 1.6934366 0.0029166124 1.6957881 0.002912298 1.6981396 0.0029079477 1.7004912 0.002903563 1.7028427 0.0028991454 1.7051942 0.0028946964 1.7075457 0.0028902178 1.7098972 0.0028857111 1.7122487 0.0028811781 1.7146002 0.0028766207 1.7169517 0.0028720407 1.7193032 0.0028674402 1.7216548 0.002862821 1.7240063 0.0028581852 1.7263578 0.002853535 1.7287093 0.0028488726 1.7310608 0.0028442001 1.7334123 0.0028395199 1.7357638 0.0028348343 1.7381153 0.0028301458 1.7404668 0.0028254567 1.7428184 0.0028207697 1.7451699 0.0028160873 1.7475214 0.002811412 1.7498729 0.0028067467 1.7522244 0.0028020939 1.7545759 0.0027974565 1.7569274 0.0027928373 1.7592789 0.002788239 1.7616304 0.0027836648 1.763982 0.0027791173 1.7663335 0.0027745998 1.768685 0.002770115 1.7710365 0.0027656661 1.773388 0.0027612562 1.7757395 0.0027568884 1.778091 0.0027525657 1.7804425 0.0027482913 1.782794 0.0027440684 1.7851456 0.0027399001 1.7874971 0.0027357896 1.7898486 0.0027317401 1.7922001 0.0027277548 1.7945516 0.0027238369 1.7969031 0.0027199896 1.7992546 0.002716216 1.8016061 0.0027125192 1.8039576 0.0027089025 1.8063091 0.0027053689 1.8086607 0.0027019216 1.8110122 0.0026985635 1.8133637 0.0026952976 1.8157152 0.002692127 1.8180667 0.0026890545 1.8204182 0.002686083 1.8227697 0.0026832152 1.8251212 0.002680454 1.8274727 0.0026778019 1.8298243 0.0026752616 1.8321758 0.0026728355 1.8345273 0.0026705259 1.8368788 0.0026683353 1.8392303 0.0026662659 1.8415818 0.0026643197 1.8439333 0.0026624986 1.8462848 0.0026608047 1.8486363 0.0026592397 1.8509879 0.0026578051 1.8533394 0.0026565025 1.8556909 0.0026553333 1.8580424 0.0026542987 1.8603939 0.0026533998 1.8627454 0.0026526375 1.8650969 0.0026520128 1.8674484 0.0026515261 1.8697999 0.0026511782 1.8721515 0.0026509693 1.874503 0.0026508996 1.87685 0.0026509313 1.879197 0.0026510262 1.8815441 0.0026511843 1.8838911 0.0026514054 1.8862381 0.0026516894 1.8885851 0.002652036 1.8909322 0.0026524448 1.8932792 0.0026529156 1.8956262 0.0026534477 1.8979733 0.0026540409 1.9003203 0.0026546944 1.9026673 0.0026554078 1.9050144 0.0026561804 1.9073614 0.0026570115 1.9097084 0.0026579002 1.9120555 0.0026588459 1.9144025 0.0026598477 1.9167495 0.0026609045 1.9190965 0.0026620156 1.9214436 0.0026631799 1.9237906 0.0026643962 1.9261376 0.0026656637 1.9284847 0.002666981 1.9308317 0.0026683471 1.9331787 0.0026697607 1.9355258 0.0026712205 1.9378728 0.0026727253 1.9402198 0.0026742737 1.9425668 0.0026758644 1.9449139 0.0026774958 1.9472609 0.0026791667 1.9496079 0.0026808756 1.951955 0.0026826209 1.954302 0.0026844011 1.956649 0.0026862147 1.9589961 0.0026880602 1.9613431 0.0026899358 1.9636901 0.0026918401 1.9660372 0.0026937713 1.9683842 0.0026957278 1.9707312 0.0026977081 1.9730782 0.0026997103 1.9754253 0.0027017328 1.9777723 0.0027037739 1.9801193 0.0027058318 1.9824664 0.002707905 1.9848134 0.0027099916 1.9871604 0.0027120899 1.9895075 0.0027141983 1.9918545 0.0027163148 1.9942015 0.002718438 1.9965485 0.002720566 1.9988956 0.002722697 2.0012426 0.0027248295 2.0035896 0.0027269617 2.0059367 0.0027290918 2.0082837 0.0027312183 2.0106307 0.0027333395 2.0129778 0.0027354536 2.0153248 0.002737559 2.0176718 0.0027396542 2.0200188 0.0027417375 2.0223659 0.0027438073 2.0247129 0.0027458621 2.0270599 0.0027479003 2.029407 0.0027499204 2.031754 0.0027519209 2.034101 0.0027539003 2.0364481 0.0027558572 2.0387951 0.0027577901 2.0411421 0.0027596978 2.0434892 0.0027615787 2.0458362 0.0027634316 2.0481832 0.0027652553 2.0505302 0.0027670483 2.0528773 0.0027688096 2.0552243 0.0027705379 2.0575713 0.0027722321 2.0599184 0.002773891 2.0622654 0.0027755136 2.0646124 0.0027770988 2.0669595 0.0027786456 2.0693065 0.002780153 2.0716535 0.0027816202 2.0740005 0.0027830463 2.0763476 0.0027844303 2.0786946 0.0027857716 2.0810416 0.0027870693 2.0833887 0.0027883227 2.0857357 0.0027895312 2.0880827 0.0027906941 2.0904298 0.0027918109 2.0927768 0.0027928809 2.0951238 0.0027939038 2.0974709 0.0027948791 2.0998179 0.0027958063 2.1021649 0.0027966852 2.1045119 0.0027975153 2.106859 0.0027982965 2.109206 0.0027990284 2.111553 0.002799711 2.1139001 0.0028003441 2.1162471 0.0028009276 2.1185941 0.0028014615 2.1209412 0.0028019457 2.1232882 0.0028023804 2.1256352 0.0028027656 2.1279822 0.0028031014 2.1303293 0.0028033882 2.1326763 0.002803626 2.1350233 0.0028038151 2.1373704 0.002803956 2.1397174 0.0028040488 2.1420644 0.0028040942 2.1444115 0.0028040924 2.1467585 0.002804044 2.1491055 0.0028039494 2.1514526 0.0028038094 2.1537996 0.0028036245 2.1561466 0.0028033953 2.1584936 0.0028031226 2.1608407 0.002802807 2.1631877 0.0028024494 2.1655347 0.0028020504 2.1678818 0.0028016111 2.1702288 0.0028011322 2.1725758 0.0028006147 2.1749229 0.0028000595 2.1772699 0.0027994675 2.1796169 0.0027988399 2.1819639 0.0027981776 2.184311 0.0027974817 2.186658 0.0027967532 2.189005 0.0027959934 2.1913521 0.0027952034 2.1936991 0.0027943844 2.1960461 0.0027935374 2.1983932 0.0027926639 2.2007402 0.002791765 2.2030872 0.002790842 2.2054343 0.0027898962 2.2077813 0.0027889289 2.2101283 0.0027879415 2.2124753 0.0027869352 2.2148224 0.0027859114 2.2171694 0.0027848715 2.2195164 0.0027838169 2.2218635 0.002782749 2.2242105 0.0027816692 2.2265575 0.0027805788 2.2289046 0.0027794793 2.2312516 0.0027783722 2.2335986 0.0027772588 2.2359456 0.0027761406 2.2382927 0.0027750189 2.2406397 0.0027738954 2.2429867 0.0027727712 2.2453338 0.002771648 2.2476808 0.002770527 2.2500278 0.0027694098 2.2523749 0.0027682977 2.2547219 0.002767192 2.2570689 0.0027660943 2.2594159 0.0027650058 2.261763 0.0027639279 2.26411 0.002762862 2.266457 0.0027618093 2.2688041 0.0027607712 2.2711511 0.002759749 2.2734981 0.0027587439 2.2758452 0.0027577572 2.2781922 0.00275679 2.2805392 0.0027558437 2.2828863 0.0027549192 2.2852333 0.0027540179 2.2875803 0.0027531407 2.2899273 0.0027522888 2.2922744 0.0027514633 2.2946214 0.002750665 2.2969684 0.0027498951 2.2993155 0.0027491544 2.3016625 0.0027484438 2.3040095 0.0027477643 2.3063566 0.0027471166 2.3087036 0.0027465017 2.3110506 0.0027459201 2.3133976 0.0027453726 2.3157447 0.0027448599 2.3180917 0.0027443827 2.3204387 0.0027439414 2.3227858 0.0027435367 2.3251328 0.002743169 2.3274798 0.0027428388 2.3298269 0.0027425465 2.3321739 0.0027422924 2.3345209 0.0027420769 2.336868 0.0027419002 2.339215 0.0027417626 2.341562 0.0027416642 2.343909 0.0027416051 2.3462561 0.0027415853 & @target G0.S7 @type xy 0 0.0026508996 0.0023473519 0.0026510195 0.0046947037 0.0026513789 0.0070420556 0.0026519777 0.0093894074 0.0026528152 0.011736759 0.0026538908 0.014084111 0.0026552036 0.016431463 0.0026567523 0.018778815 0.0026585356 0.021126167 0.0026605521 0.023473519 0.0026627999 0.02582087 0.0026652773 0.028168222 0.002667982 0.030515574 0.0026709118 0.032862926 0.0026740643 0.035210278 0.0026774369 0.03755763 0.0026810266 0.039904982 0.0026848308 0.042252333 0.0026888461 0.044599685 0.0026930695 0.046947037 0.0026974975 0.049294389 0.0027021266 0.051641741 0.0027069532 0.053989093 0.0027119736 0.056336444 0.002717184 0.058683796 0.0027225803 0.061031148 0.0027281586 0.0633785 0.0027339146 0.065725852 0.0027398443 0.068073204 0.0027459432 0.070420556 0.0027522071 0.072767907 0.0027586316 0.075115259 0.0027652121 0.077462611 0.0027719441 0.079809963 0.0027788232 0.082157315 0.0027858446 0.084504667 0.0027930038 0.086852019 0.0028002961 0.08919937 0.0028077168 0.091546722 0.0028152614 0.093894074 0.002822925 0.096241426 0.002830703 0.098588778 0.0028385907 0.10093613 0.0028465834 0.10328348 0.0028546765 0.10563083 0.0028628653 0.10797819 0.0028711451 0.11032554 0.0028795113 0.11267289 0.0028879593 0.11502024 0.0028964846 0.11736759 0.0029050826 0.11971494 0.0029137488 0.1220623 0.0029224788 0.12440965 0.0029312681 0.126757 0.0029401123 0.12910435 0.002949007 0.1314517 0.0029579481 0.13379906 0.0029669312 0.13614641 0.0029759521 0.13849376 0.0029850066 0.14084111 0.0029940907 0.14318846 0.0030032003 0.14553581 0.0030123315 0.14788317 0.0030214801 0.15023052 0.0030306425 0.15257787 0.0030398147 0.15492522 0.003048993 0.15727257 0.0030581736 0.15961993 0.0030673529 0.16196728 0.0030765273 0.16431463 0.0030856932 0.16666198 0.0030948472 0.16900933 0.0031039858 0.17135669 0.0031131058 0.17370404 0.0031123184 0.17605139 0.0031111191 0.17839874 0.0031098862 0.18074609 0.0031086191 0.18309344 0.0031073173 0.1854408 0.0031059803 0.18778815 0.0031046075 0.1901355 0.0031031985 0.19248285 0.0031017528 0.1948302 0.0031002697 0.19717756 0.0030987489 0.19952491 0.0030971899 0.20187226 0.0030955921 0.20421961 0.0030939551 0.20656696 0.0030922784 0.20891432 0.0030905615 0.21126167 0.003088804 0.21360902 0.0030870053 0.21595637 0.0030851651 0.21830372 0.0030832829 0.22065107 0.0030813582 0.22299843 0.0030793906 0.22534578 0.0030773798 0.22769313 0.0030753251 0.23004048 0.0030732263 0.23238783 0.003071083 0.23473519 0.0030724324 0.23708254 0.0030764173 0.23942989 0.0030803388 0.24177724 0.0030841965 0.24412459 0.0030879903 0.24647194 0.0030917196 0.2488193 0.0030953845 0.25116665 0.0030989846 0.253514 0.00310252 0.25586135 0.0031059905 0.2582087 0.0031093961 0.26055606 0.0031127369 0.26290341 0.0031160131 0.26525076 0.0031192248 0.26759811 0.0031223722 0.26994546 0.0031254557 0.27229282 0.0031284754 0.27464017 0.003131432 0.27698752 0.0031343257 0.27933487 0.0031371571 0.28168222 0.0031399268 0.28402957 0.0031426353 0.28637693 0.0031452834 0.28872428 0.0031478717 0.29107163 0.0031504011 0.29341898 0.0031528723 0.29576633 0.0031552862 0.29811369 0.0031576439 0.30046104 0.0031599462 0.30280839 0.0031621942 0.30515574 0.003164389 0.30750309 0.0031665317 0.30985044 0.0031686235 0.3121978 0.0031706658 0.31454515 0.0031726596 0.3168925 0.0031746065 0.31923985 0.0031765077 0.3215872 0.0031783648 0.32393456 0.0031801791 0.32628191 0.0031819522 0.32862926 0.0031836856 0.33097661 0.003185381 0.33332396 0.00318704 0.33567132 0.0031886642 0.33801867 0.0031902554 0.34036602 0.0031918152 0.34271337 0.0031933455 0.34506072 0.0031948481 0.34740807 0.0031963247 0.34975543 0.0031977773 0.35210278 0.0031992076 0.35445013 0.0032006177 0.35679748 0.0032020093 0.35914483 0.0032033844 0.36149219 0.0032047449 0.36383954 0.0032060928 0.36618689 0.0032074299 0.36853424 0.0032087582 0.37088159 0.0032100797 0.37322894 0.0032113961 0.3755763 0.0032127095 0.37792365 0.0032140217 0.380271 0.0032153345 0.38261835 0.0032166499 0.3849657 0.0032179696 0.38731306 0.0032192953 0.38966041 0.0032206289 0.39200776 0.0032219719 0.39435511 0.0032233261 0.39670246 0.0032246931 0.39904982 0.0032260743 0.40139717 0.0032274713 0.40374452 0.0032288854 0.40609187 0.0032303181 0.40843922 0.0032317706 0.41078657 0.003233244 0.41313393 0.0032347395 0.41548128 0.0032362582 0.41782863 0.0032378009 0.42017598 0.0032393686 0.42252333 0.0032409621 0.42487069 0.0032425819 0.42721804 0.0032442287 0.42956539 0.003245903 0.43191274 0.0032476051 0.43426009 0.0032493353 0.43660744 0.0032510938 0.4389548 0.0032528807 0.44130215 0.003254696 0.4436495 0.0032565395 0.44599685 0.003258411 0.4483442 0.0032603101 0.45069156 0.0032622365 0.45303891 0.0032641896 0.45538626 0.0032661688 0.45773361 0.0032681733 0.46008096 0.0032702024 0.46242832 0.0032722551 0.46477567 0.0032743305 0.46712302 0.0032764274 0.46947037 0.0032785447 0.47181772 0.0032806812 0.47416507 0.0032828355 0.47651243 0.0032850063 0.47885978 0.0032871922 0.48120713 0.0032893915 0.48355448 0.0032916029 0.48590183 0.0032938245 0.48824919 0.0032960549 0.49059654 0.0032982921 0.49294389 0.0033005346 0.49529124 0.0033027805 0.49763859 0.003305028 0.49998594 0.0033072751 0.5023333 0.0033095202 0.50468065 0.0033117612 0.507028 0.0033139962 0.50937535 0.0033162234 0.5117227 0.0033184408 0.51407006 0.0033206464 0.51641741 0.0033228383 0.51876476 0.0033250147 0.52111211 0.0033271735 0.52345946 0.0033293129 0.52580682 0.0033314309 0.52815417 0.0033335257 0.53050152 0.0033355954 0.53284887 0.0033376382 0.53519622 0.0033396521 0.53754357 0.0033416356 0.53989093 0.0033435866 0.54223828 0.0033455037 0.54458563 0.0033473849 0.54693298 0.0033492287 0.54928033 0.0033510334 0.55162769 0.0033527975 0.55397504 0.0033545193 0.55632239 0.0033561974 0.55866974 0.0033578303 0.56101709 0.0033594165 0.56336444 0.0033609547 0.5657118 0.0033624435 0.56805915 0.0033638817 0.5704065 0.0033652679 0.57275385 0.0033666011 0.5751012 0.00336788 0.57744856 0.0033691036 0.57979591 0.0033702708 0.58214326 0.0033713806 0.58449061 0.003372432 0.58683796 0.0033734243 0.58918532 0.0033717641 0.59153267 0.0033674179 0.59388002 0.0033630573 0.59622737 0.0033586847 0.59857472 0.0033543035 0.60092207 0.0033499182 0.60326943 0.0033455358 0.60561678 0.0033411671 0.60796413 0.0033368292 0.61031148 0.0033325512 0.61265883 0.0033283857 0.61500619 0.0033244342 0.61735354 0.0033209084 0.61970089 0.0033182523 0.62204824 0.0033172087 0.62439527 0.0033172008 0.6267423 0.003317209 0.62908933 0.0033172334 0.63143636 0.003317274 0.63378339 0.0033173307 0.63613042 0.0033174036 0.63847745 0.0033174925 0.64082448 0.0033175975 0.64317151 0.0033177183 0.64551855 0.0033178551 0.64786558 0.0033180077 0.65021261 0.0033181759 0.65255964 0.0033183597 0.65490667 0.0033185589 0.6572537 0.0033187734 0.65960073 0.0033190031 0.66194776 0.0033192478 0.66429479 0.0033195073 0.66664182 0.0033197814 0.66898885 0.00332007 0.67133588 0.0033203729 0.67368291 0.0033206898 0.67602994 0.0033210205 0.67837697 0.0033213648 0.680724 0.0033217224 0.68307103 0.0033220931 0.68541806 0.0033224767 0.68776509 0.0033228727 0.69011212 0.0033232811 0.69245915 0.0033237015 0.69480618 0.0033241335 0.69715321 0.0033245769 0.69950024 0.0033250314 0.70184727 0.0033254967 0.70419431 0.0033259724 0.70654134 0.0033264581 0.70888837 0.0033269536 0.7112354 0.0033274586 0.71358243 0.0033279726 0.71592946 0.0033284952 0.71827649 0.0033290262 0.72062352 0.0033295652 0.72297055 0.0033301118 0.72531758 0.0033306655 0.72766461 0.0033312261 0.73001164 0.0033317932 0.73235867 0.0033323663 0.7347057 0.0033329451 0.73705273 0.0033335291 0.73939976 0.003334118 0.74174679 0.0033347115 0.74409382 0.0033353089 0.74644085 0.0033359101 0.74878788 0.0033365146 0.75113491 0.0033371219 0.75348194 0.0033377318 0.75582897 0.0033383437 0.758176 0.0033389572 0.76052303 0.0033395721 0.76287006 0.0033390717 0.7652171 0.0033379414 0.76756413 0.0033368101 0.76991116 0.0033356784 0.77225819 0.0033345471 0.77460522 0.0033334167 0.77695225 0.0033322881 0.77929928 0.0033311618 0.78164631 0.0033300385 0.78399334 0.003328919 0.78634037 0.0033278039 0.7886874 0.0033266938 0.79103443 0.0033255893 0.79338146 0.0033244911 0.79572849 0.0033233999 0.79807552 0.0033223161 0.80042255 0.0033212406 0.80276958 0.0033201737 0.80511661 0.0033191161 0.80746364 0.0033180684 0.80981067 0.0033170311 0.8121577 0.0033160048 0.81450473 0.00331499 0.81685176 0.0033139872 0.81919879 0.0033129968 0.82154582 0.0033120195 0.82389285 0.0033110556 0.82623989 0.0033101056 0.82858692 0.00330917 0.83093395 0.0033082491 0.83328098 0.0033073433 0.83562801 0.0033072261 0.83797504 0.0033076409 0.84032207 0.0033080648 0.8426691 0.0033084977 0.84501613 0.0033089395 0.84736316 0.0033093901 0.84971019 0.0033098496 0.85205722 0.0033103176 0.85440425 0.0033107943 0.85675128 0.0033112794 0.85909831 0.0033117729 0.86144534 0.0033122746 0.86379237 0.0033127845 0.8661394 0.0033133023 0.86848643 0.0033138279 0.87083346 0.0033143611 0.87318049 0.0033149019 0.87552752 0.00331545 0.87787455 0.0033160052 0.88022158 0.0033165675 0.88256861 0.0033171364 0.88491565 0.003317712 0.88726268 0.0033182939 0.88960971 0.003318882 0.89195674 0.0033194759 0.89430377 0.0033200756 0.8966508 0.0033206807 0.89899783 0.003321291 0.90134486 0.0033219063 0.90369189 0.0033225262 0.90603892 0.0033231506 0.90838595 0.0033237792 0.91073298 0.0033244117 0.91308001 0.0033250478 0.91542704 0.0033256872 0.91777407 0.0033263296 0.9201211 0.0033269748 0.92246813 0.0033276224 0.92481516 0.0033282721 0.92716219 0.0033289236 0.92950922 0.0033295767 0.93185625 0.0033302309 0.93420328 0.003330886 0.93655031 0.0033315416 0.93889734 0.0033321975 0.94124437 0.0033328532 0.94359141 0.0033335085 0.94593844 0.0033341629 0.94828547 0.0033348163 0.9506325 0.0033354681 0.95297953 0.0033361182 0.95532656 0.003336766 0.95767359 0.0033374114 0.96002062 0.0033380539 0.96236765 0.0033386932 0.96471468 0.003339329 0.96706171 0.0033399609 0.96940874 0.0033405885 0.97175577 0.0033412116 0.9741028 0.0033418297 0.97644983 0.0033424425 0.97879686 0.0033430498 0.98114389 0.003343651 0.98349092 0.003344246 0.98583795 0.0033448343 0.98818498 0.0033454157 0.99053201 0.0033459897 0.99287904 0.0033465561 0.99522607 0.0033471146 0.9975731 0.0033476647 0.99992013 0.0033482063 1.0022672 0.003348739 1.0046142 0.0033492624 1.0069612 0.0033497763 1.0093083 0.0033502803 1.0116553 0.0033507742 1.0140023 0.0033512577 1.0163493 0.0033517305 1.0186964 0.0033521923 1.0210434 0.0033526428 1.0233904 0.0033530818 1.0257375 0.003353509 1.0280845 0.0033539241 1.0304315 0.003354327 1.0327786 0.0033547173 1.0351256 0.0033550948 1.0374726 0.0033554593 1.0398197 0.0033558106 1.0421667 0.0033561485 1.0445137 0.0033564727 1.0468607 0.0033567831 1.0492078 0.0033570794 1.0515548 0.0033573616 1.0539018 0.0033576293 1.0562489 0.0033578826 1.0585959 0.0033581211 1.0609429 0.0033583448 1.06329 0.0033585535 1.065637 0.0033587471 1.067984 0.0033589255 1.070331 0.0033590886 1.0726781 0.0033592362 1.0750251 0.0033593684 1.0773721 0.0033594849 1.0797192 0.0033595857 1.0820662 0.0033596709 1.0844132 0.0033597402 1.0867603 0.0033597937 1.0891073 0.0033598314 1.0914543 0.0033598532 1.0938014 0.003359859 1.0961529 0.003358277 1.0985044 0.0033554746 1.1008559 0.0033524352 1.1032074 0.0033493089 1.1055589 0.0033461324 1.1079104 0.0033429186 1.1102619 0.0033396727 1.1126134 0.0033363972 1.1149649 0.0033330935 1.1173165 0.0033297619 1.119668 0.0033264025 1.1220195 0.0033230154 1.124371 0.0033196001 1.1267225 0.0033161563 1.129074 0.0033126836 1.1314255 0.0033091815 1.133777 0.0033056492 1.1361285 0.0033020864 1.1384801 0.0032984923 1.1408316 0.0032948664 1.1431831 0.0032912078 1.1455346 0.0032875159 1.1478861 0.0032837901 1.1502376 0.0032800295 1.1525891 0.0032782813 1.1549406 0.0032773136 1.1572921 0.0032763143 1.1596437 0.0032752841 1.1619952 0.0032742238 1.1643467 0.0032731342 1.1666982 0.003272016 1.1690497 0.0032708699 1.1714012 0.0032696968 1.1737527 0.0032684976 1.1761042 0.003267273 1.1784557 0.0032660239 1.1808073 0.0032647511 1.1831588 0.0032634556 1.1855103 0.0032621383 1.1878618 0.0032607999 1.1902133 0.0032594416 1.1925648 0.0032580641 1.1949163 0.0032566684 1.1972678 0.0032552555 1.1996193 0.0032538262 1.2019709 0.0032523817 1.2043224 0.0032509227 1.2066739 0.0032494502 1.2090254 0.0032479653 1.2113769 0.0032464688 1.2137284 0.0032449618 1.2160799 0.0032434451 1.2184314 0.0032419197 1.2207829 0.0032403867 1.2231344 0.0032388468 1.225486 0.0032373011 1.2278375 0.0032357504 1.230189 0.0032341957 1.2325405 0.0032326379 1.234892 0.0032310779 1.2372435 0.0032295165 1.239595 0.0032279547 1.2419465 0.0032263932 1.244298 0.0032248329 1.2466496 0.0032232746 1.2490011 0.0032217191 1.2513526 0.0032201672 1.2537041 0.0032186197 1.2560556 0.0032170772 1.2584071 0.0032155406 1.2607586 0.0032140104 1.2631101 0.0032124873 1.2654616 0.0032109721 1.2678132 0.0032094652 1.2701647 0.0032079674 1.2725162 0.0032064791 1.2748677 0.0032050009 1.2772192 0.0032035333 1.2795707 0.0032020768 1.2819222 0.0032006319 1.2842737 0.003199199 1.2866252 0.0031977785 1.2889768 0.0031963707 1.2913283 0.0031949761 1.2936798 0.0031935948 1.2960313 0.0031922273 1.2983828 0.0031908738 1.3007343 0.0031895346 1.3030858 0.0031882098 1.3054373 0.0031868996 1.3077888 0.0031856042 1.3101404 0.0031843237 1.3124919 0.0031830582 1.3148434 0.0031818079 1.3171949 0.0031805727 1.3195464 0.0031793528 1.3218979 0.0031781481 1.3242494 0.0031769587 1.3266009 0.0031757844 1.3289524 0.0031746253 1.331304 0.0031734813 1.3336555 0.0031723523 1.336007 0.0031712381 1.3383585 0.0031701388 1.34071 0.0031690541 1.3430615 0.0031679839 1.345413 0.0031669281 1.3477645 0.0031658864 1.350116 0.0031648586 1.3524675 0.0031638446 1.3548191 0.0031628441 1.3571706 0.0031618569 1.3595221 0.0031608827 1.3618736 0.0031599213 1.3642251 0.0031589725 1.3665766 0.0031580359 1.3689281 0.0031571113 1.3712796 0.0031561984 1.3736311 0.0031552969 1.3759827 0.0031544065 1.3783342 0.0031535269 1.3806857 0.0031526578 1.3830372 0.0031517987 1.3853887 0.0031509496 1.3877402 0.0031501099 1.3900917 0.0031492793 1.3924432 0.0031484575 1.3947947 0.0031476442 1.3971463 0.003146839 1.3994978 0.0031460415 1.4018493 0.0031452514 1.4042008 0.0031444683 1.4065523 0.0031436918 1.4089038 0.0031429215 1.4112553 0.0031421571 1.4136068 0.0031413981 1.4159583 0.0031406442 1.4183099 0.003139895 1.4206614 0.00313915 1.4230129 0.0031384088 1.4253644 0.003137671 1.4277159 0.0031369362 1.4300674 0.0031362039 1.4324189 0.0031354736 1.4347704 0.0031347451 1.4371219 0.0031340177 1.4394735 0.003133291 1.441825 0.0031325645 1.4441765 0.0031318377 1.446528 0.0031311102 1.4488795 0.0031303814 1.451231 0.0031296509 1.4535825 0.003128918 1.455934 0.0031281823 1.4582855 0.0031274432 1.460637 0.0031267002 1.4629886 0.0031259527 1.4653401 0.0031252 1.4676916 0.0031244417 1.4700431 0.0031236771 1.4723946 0.0031229056 1.4747461 0.0031221266 1.4770976 0.0031213395 1.4794491 0.0031205435 1.4818006 0.0031197381 1.4841522 0.0031189225 1.4865037 0.0031180961 1.4888552 0.0031172582 1.4912067 0.003116408 1.4935582 0.003115545 1.4959097 0.0031146682 1.4982612 0.003113777 1.5006127 0.0031128707 1.5029642 0.0031119484 1.5053158 0.0031110095 1.5076673 0.003110053 1.5100188 0.0031090783 1.5123703 0.0031080844 1.5147218 0.0031070707 1.5170733 0.0031060363 1.5194248 0.0031049803 1.5217763 0.003103902 1.5241278 0.0031028004 1.5264794 0.0031016748 1.5288309 0.0031005243 1.5311824 0.0030993479 1.5335339 0.003098145 1.5358854 0.0030969146 1.5382369 0.0030956557 1.5405884 0.0030943677 1.5429399 0.0030930496 1.5452914 0.0030917004 1.547643 0.0030903195 1.5499945 0.0030889058 1.552346 0.0030874586 1.5546975 0.0030859769 1.557049 0.00308446 1.5594005 0.0030829069 1.561752 0.0030813169 1.5641035 0.003079689 1.566455 0.0030780225 1.5688065 0.0030763166 1.5711581 0.0030745704 1.5735096 0.0030727832 1.5758611 0.0030709541 1.5782126 0.0030690825 1.5805641 0.0030671676 1.5829156 0.0030652085 1.5852671 0.0030632048 1.5876186 0.0030611555 1.5899701 0.0030590601 1.5923217 0.003056918 1.5946732 0.0030547284 1.5970247 0.0030524908 1.5993762 0.0030502045 1.6017277 0.0030478692 1.6040792 0.0030454842 1.6064307 0.003043049 1.6087822 0.0030405631 1.6111337 0.0030380262 1.6134853 0.0030354379 1.6158368 0.0030327977 1.6181883 0.0030312818 1.6205398 0.0030331842 1.6228913 0.0030350364 1.6252428 0.0030368356 1.6275943 0.0030385784 1.6299458 0.0030402612 1.6322973 0.0030418799 1.6346489 0.0030434297 1.6370004 0.0030449052 1.6393519 0.0030463003 1.6417034 0.0030476077 1.6440549 0.0030488194 1.6464064 0.0030499258 1.6487579 0.003050916 1.6511094 0.0030517775 1.6534609 0.003052496 1.6558125 0.0030530549 1.658164 0.0030534359 1.6605155 0.0030536184 1.662867 0.0030535798 1.6652185 0.0030532962 1.66757 0.003052743 1.6699215 0.0030518958 1.672273 0.0030507323 1.6746245 0.0030492337 1.6769761 0.0030473862 1.6793276 0.0030451824 1.6816791 0.0030426218 1.6840306 0.0030397111 1.6863821 0.0030364626 1.6887336 0.0030328936 1.6910851 0.0030290245 1.6934366 0.0030248773 1.6957881 0.0030204746 1.6981396 0.0030158381 1.7004912 0.0030109888 1.7028427 0.0030059458 1.7051942 0.0030007268 1.7075457 0.0029953477 1.7098972 0.002989823 1.7122487 0.0029841656 1.7146002 0.0029783874 1.7169517 0.002972499 1.7193032 0.0029665101 1.7216548 0.0029604298 1.7240063 0.0029542663 1.7263578 0.0029480272 1.7287093 0.0029417199 1.7310608 0.0029353513 1.7334123 0.0029289278 1.7357638 0.0029224559 1.7381153 0.0029159415 1.7404668 0.0029093906 1.7428184 0.002902809 1.7451699 0.0028962024 1.7475214 0.0028895763 1.7498729 0.0028829365 1.7522244 0.0028762883 1.7545759 0.0028696372 1.7569274 0.0028629888 1.7592789 0.0028563485 1.7616304 0.0028497217 1.763982 0.002843114 1.7663335 0.0028365307 1.768685 0.0028299775 1.7710365 0.0028234597 1.773388 0.002816983 1.7757395 0.0028105528 1.778091 0.0028041746 1.7804425 0.0027978541 1.782794 0.0027915968 1.7851456 0.0027854082 1.7874971 0.002779294 1.7898486 0.0027732595 1.7922001 0.0027673105 1.7945516 0.0027614523 1.7969031 0.0027556905 1.7992546 0.0027500306 1.8016061 0.0027444781 1.8039576 0.0027390382 1.8063091 0.0027337163 1.8086607 0.0027285177 1.8110122 0.0027234477 1.8133637 0.0027185113 1.8157152 0.0027137136 1.8180667 0.0027090596 1.8204182 0.0027045542 1.8227697 0.002700202 1.8251212 0.0026960077 1.8274727 0.0026919759 1.8298243 0.0026881108 1.8321758 0.0026844168 1.8345273 0.0026808979 1.8368788 0.0026775579 1.8392303 0.0026744007 1.8415818 0.0026714298 1.8439333 0.0026686485 1.8462848 0.0026660601 1.8486363 0.0026636675 1.8509879 0.0026614734 1.8533394 0.0026594804 1.8556909 0.0026576909 1.8580424 0.0026561069 1.8603939 0.0026547303 1.8627454 0.0026535627 1.8650969 0.0026526055 1.8674484 0.0026518599 1.8697999 0.0026513266 1.8721515 0.0026510064 1.874503 0.0026508996 1.87685 0.0026509313 1.879197 0.0026510262 1.8815441 0.0026511843 1.8838911 0.0026514054 1.8862381 0.0026516894 1.8885851 0.002652036 1.8909322 0.0026524448 1.8932792 0.0026529156 1.8956262 0.0026534477 1.8979733 0.0026540409 1.9003203 0.0026546944 1.9026673 0.0026554078 1.9050144 0.0026561804 1.9073614 0.0026570115 1.9097084 0.0026579002 1.9120555 0.0026588459 1.9144025 0.0026598477 1.9167495 0.0026609045 1.9190965 0.0026620156 1.9214436 0.0026631799 1.9237906 0.0026643962 1.9261376 0.0026656637 1.9284847 0.002666981 1.9308317 0.0026683471 1.9331787 0.0026697607 1.9355258 0.0026712205 1.9378728 0.0026727253 1.9402198 0.0026742737 1.9425668 0.0026758644 1.9449139 0.0026774958 1.9472609 0.0026791667 1.9496079 0.0026808756 1.951955 0.0026826209 1.954302 0.0026844011 1.956649 0.0026862147 1.9589961 0.0026880602 1.9613431 0.0026899358 1.9636901 0.0026918401 1.9660372 0.0026937713 1.9683842 0.0026957278 1.9707312 0.0026977081 1.9730782 0.0026997103 1.9754253 0.0027017328 1.9777723 0.0027037739 1.9801193 0.0027058318 1.9824664 0.002707905 1.9848134 0.0027099916 1.9871604 0.0027120899 1.9895075 0.0027141983 1.9918545 0.0027163148 1.9942015 0.002718438 1.9965485 0.002720566 1.9988956 0.002722697 2.0012426 0.0027248295 2.0035896 0.0027269617 2.0059367 0.0027290918 2.0082837 0.0027312183 2.0106307 0.0027333395 2.0129778 0.0027354536 2.0153248 0.002737559 2.0176718 0.0027396542 2.0200188 0.0027417375 2.0223659 0.0027438073 2.0247129 0.0027458621 2.0270599 0.0027479003 2.029407 0.0027499204 2.031754 0.0027519209 2.034101 0.0027539003 2.0364481 0.0027558572 2.0387951 0.0027577901 2.0411421 0.0027596978 2.0434892 0.0027615787 2.0458362 0.0027634316 2.0481832 0.0027652553 2.0505302 0.0027670483 2.0528773 0.0027688096 2.0552243 0.0027705379 2.0575713 0.0027722321 2.0599184 0.002773891 2.0622654 0.0027755136 2.0646124 0.0027770988 2.0669595 0.0027786456 2.0693065 0.002780153 2.0716535 0.0027816202 2.0740005 0.0027830463 2.0763476 0.0027844303 2.0786946 0.0027857716 2.0810416 0.0027870693 2.0833887 0.0027883227 2.0857357 0.0027895312 2.0880827 0.0027906941 2.0904298 0.0027918109 2.0927768 0.0027928809 2.0951238 0.0027939038 2.0974709 0.0027948791 2.0998179 0.0027958063 2.1021649 0.0027966852 2.1045119 0.0027975153 2.106859 0.0027982965 2.109206 0.0027990284 2.111553 0.002799711 2.1139001 0.0028003441 2.1162471 0.0028009276 2.1185941 0.0028014615 2.1209412 0.0028019457 2.1232882 0.0028023804 2.1256352 0.0028027656 2.1279822 0.0028031014 2.1303293 0.0028033882 2.1326763 0.002803626 2.1350233 0.0028038151 2.1373704 0.002803956 2.1397174 0.0028040488 2.1420644 0.0028040942 2.1444115 0.0028040924 2.1467585 0.002804044 2.1491055 0.0028039494 2.1514526 0.0028038094 2.1537996 0.0028036245 2.1561466 0.0028033953 2.1584936 0.0028031226 2.1608407 0.002802807 2.1631877 0.0028024494 2.1655347 0.0028020504 2.1678818 0.0028016111 2.1702288 0.0028011322 2.1725758 0.0028006147 2.1749229 0.0028000595 2.1772699 0.0027994675 2.1796169 0.0027988399 2.1819639 0.0027981776 2.184311 0.0027974817 2.186658 0.0027967532 2.189005 0.0027959934 2.1913521 0.0027952034 2.1936991 0.0027943844 2.1960461 0.0027935374 2.1983932 0.0027926639 2.2007402 0.002791765 2.2030872 0.002790842 2.2054343 0.0027898962 2.2077813 0.0027889289 2.2101283 0.0027879415 2.2124753 0.0027869352 2.2148224 0.0027859114 2.2171694 0.0027848715 2.2195164 0.0027838169 2.2218635 0.002782749 2.2242105 0.0027816692 2.2265575 0.0027805788 2.2289046 0.0027794793 2.2312516 0.0027783722 2.2335986 0.0027772588 2.2359456 0.0027761406 2.2382927 0.0027750189 2.2406397 0.0027738954 2.2429867 0.0027727712 2.2453338 0.002771648 2.2476808 0.002770527 2.2500278 0.0027694098 2.2523749 0.0027682977 2.2547219 0.002767192 2.2570689 0.0027660943 2.2594159 0.0027650058 2.261763 0.0027639279 2.26411 0.002762862 2.266457 0.0027618093 2.2688041 0.0027607712 2.2711511 0.002759749 2.2734981 0.0027587439 2.2758452 0.0027577572 2.2781922 0.00275679 2.2805392 0.0027558437 2.2828863 0.0027549192 2.2852333 0.0027540179 2.2875803 0.0027531407 2.2899273 0.0027522888 2.2922744 0.0027514633 2.2946214 0.002750665 2.2969684 0.0027498951 2.2993155 0.0027491544 2.3016625 0.0027484438 2.3040095 0.0027477643 2.3063566 0.0027471166 2.3087036 0.0027465017 2.3110506 0.0027459201 2.3133976 0.0027453726 2.3157447 0.0027448599 2.3180917 0.0027443827 2.3204387 0.0027439414 2.3227858 0.0027435367 2.3251328 0.002743169 2.3274798 0.0027428388 2.3298269 0.0027425465 2.3321739 0.0027422924 2.3345209 0.0027420769 2.336868 0.0027419002 2.339215 0.0027417626 2.341562 0.0027416642 2.343909 0.0027416051 2.3462561 0.0027415853 & @target G0.S8 @type xy 0 0.0031427794 0.0023473519 0.0031427765 0.0046947037 0.0031427681 0.0070420556 0.0031427539 0.0093894074 0.0031427341 0.011736759 0.0031427085 0.014084111 0.0031426771 0.016431463 0.0031426398 0.018778815 0.0031425966 0.021126167 0.0031425473 0.023473519 0.0031424917 0.02582087 0.0031424299 0.028168222 0.0031423616 0.030515574 0.0031422867 0.032862926 0.0031422051 0.035210278 0.0031421165 0.03755763 0.0031420207 0.039904982 0.0031419176 0.042252333 0.0031418069 0.044599685 0.0031416884 0.046947037 0.0031415619 0.049294389 0.0031414271 0.051641741 0.0031412837 0.053989093 0.0031411315 0.056336444 0.0031409702 0.058683796 0.0031407995 0.061031148 0.003140619 0.0633785 0.0031404285 0.065725852 0.0031402276 0.068073204 0.003140016 0.070420556 0.0031397933 0.072767907 0.0031395592 0.075115259 0.0031393133 0.077462611 0.0031390552 0.079809963 0.0031387845 0.082157315 0.0031385009 0.084504667 0.0031382038 0.086852019 0.003137893 0.08919937 0.0031375679 0.091546722 0.0031372282 0.093894074 0.0031368733 0.096241426 0.003136503 0.098588778 0.0031361166 0.10093613 0.0031357137 0.10328348 0.003135294 0.10563083 0.0031348568 0.10797819 0.0031344018 0.11032554 0.0031339283 0.11267289 0.0031334361 0.11502024 0.0031329244 0.11736759 0.0031323929 0.11971494 0.0031318411 0.1220623 0.0031312683 0.12440965 0.0031306742 0.126757 0.0031300581 0.12910435 0.0031294197 0.1314517 0.0031287583 0.13379906 0.0031280733 0.13614641 0.0031273644 0.13849376 0.003126631 0.14084111 0.0031258724 0.14318846 0.0031250883 0.14553581 0.003124278 0.14788317 0.003123441 0.15023052 0.0031225768 0.15257787 0.0031216848 0.15492522 0.0031207645 0.15727257 0.0031198153 0.15961993 0.0031188368 0.16196728 0.0031178283 0.16431463 0.0031167894 0.16666198 0.0031157195 0.16900933 0.003114618 0.17135669 0.0031134845 0.17370404 0.0031222037 0.17605139 0.0031312763 0.17839874 0.0031403205 0.18074609 0.0031493331 0.18309344 0.0031583111 0.1854408 0.0031672515 0.18778815 0.0031761513 0.1901355 0.0031850077 0.19248285 0.0031938178 0.1948302 0.0032025788 0.19717756 0.0032112881 0.19952491 0.0032199431 0.20187226 0.003228541 0.20421961 0.0032370795 0.20656696 0.0032455561 0.20891432 0.0032539682 0.21126167 0.0032623137 0.21360902 0.0032705901 0.21595637 0.0032787953 0.21830372 0.0032869271 0.22065107 0.0032949833 0.22299843 0.003302962 0.22534578 0.003310861 0.22769313 0.0033186784 0.23004048 0.0033264123 0.23238783 0.003334061 0.23473519 0.0033416225 0.23708254 0.0033490952 0.23942989 0.0033564773 0.24177724 0.0033637673 0.24412459 0.0033709636 0.24647194 0.0033780646 0.2488193 0.0033850689 0.25116665 0.0033919751 0.253514 0.0033987817 0.25586135 0.0034054876 0.2582087 0.0034120913 0.26055606 0.0034185918 0.26290341 0.0034249878 0.26525076 0.0034312782 0.26759811 0.003437462 0.26994546 0.0034435381 0.27229282 0.0034495056 0.27464017 0.0034553636 0.27698752 0.0034611112 0.27933487 0.0034667476 0.28168222 0.0034722719 0.28402957 0.0034776836 0.28637693 0.0034829818 0.28872428 0.003488166 0.29107163 0.0034932356 0.29341898 0.00349819 0.29576633 0.0035030287 0.29811369 0.0035077513 0.30046104 0.0035123574 0.30280839 0.0035168466 0.30515574 0.0035212186 0.30750309 0.0035254731 0.30985044 0.0035296099 0.3121978 0.0035336288 0.31454515 0.0035375296 0.3168925 0.0035413122 0.31923985 0.0035449766 0.3215872 0.0035485228 0.32393456 0.0035519507 0.32628191 0.0035552604 0.32862926 0.003558452 0.33097661 0.0035615257 0.33332396 0.0035644816 0.33567132 0.0035673199 0.33801867 0.0035700408 0.34036602 0.0035726448 0.34271337 0.003575132 0.34506072 0.0035775028 0.34740807 0.0035797577 0.34975543 0.0035818971 0.35210278 0.0035839214 0.35445013 0.0035858311 0.35679748 0.0035876268 0.35914483 0.0035893091 0.36149219 0.0035908785 0.36383954 0.0035923356 0.36618689 0.0035936812 0.36853424 0.003594916 0.37088159 0.0035960406 0.37322894 0.0035970558 0.3755763 0.0035979625 0.37792365 0.0035987613 0.380271 0.0035994533 0.38261835 0.0036000391 0.3849657 0.0036005198 0.38731306 0.0036008963 0.38966041 0.0036011695 0.39200776 0.0036013403 0.39435511 0.0036014099 0.39670246 0.0036013791 0.39904982 0.0036012491 0.40139717 0.0036010209 0.40374452 0.0036006956 0.40609187 0.0036002743 0.40843922 0.0035997582 0.41078657 0.0035991484 0.41313393 0.003598446 0.41548128 0.0035976522 0.41782863 0.0035967683 0.42017598 0.0035957954 0.42252333 0.0035947348 0.42487069 0.0035935877 0.42721804 0.0035923553 0.42956539 0.003591039 0.43191274 0.00358964 0.43426009 0.0035881596 0.43660744 0.0035865992 0.4389548 0.0035849599 0.44130215 0.0035832431 0.4436495 0.0035814502 0.44599685 0.0035795824 0.4483442 0.0035776411 0.45069156 0.0035756276 0.45303891 0.0035735433 0.45538626 0.0035713894 0.45773361 0.0035691674 0.46008096 0.0035668785 0.46242832 0.0035645241 0.46477567 0.0035621055 0.46712302 0.0035596241 0.46947037 0.0035570811 0.47181772 0.0035544778 0.47416507 0.0035518157 0.47651243 0.0035490959 0.47885978 0.0035463198 0.48120713 0.0035434886 0.48355448 0.0035406036 0.48590183 0.0035376661 0.48824919 0.0035346773 0.49059654 0.0035316384 0.49294389 0.0035285507 0.49529124 0.0035254153 0.49763859 0.0035222334 0.49998594 0.0035190061 0.5023333 0.0035157347 0.50468065 0.0035124202 0.507028 0.0035090637 0.50937535 0.0035056663 0.5117227 0.0035022291 0.51407006 0.003498753 0.51641741 0.0034952391 0.51876476 0.0034916883 0.52111211 0.0034881017 0.52345946 0.0034844801 0.52580682 0.0034808244 0.52815417 0.0034771355 0.53050152 0.0034734142 0.53284887 0.0034696613 0.53519622 0.0034658777 0.53754357 0.0034620641 0.53989093 0.0034582211 0.54223828 0.0034543496 0.54458563 0.0034504501 0.54693298 0.0034465233 0.54928033 0.0034425698 0.55162769 0.0034385901 0.55397504 0.0034345849 0.55632239 0.0034305546 0.55866974 0.0034264998 0.56101709 0.0034224209 0.56336444 0.0034183184 0.5657118 0.0034141928 0.56805915 0.0034100444 0.5704065 0.0034058737 0.57275385 0.0034016811 0.5751012 0.0033974671 0.57744856 0.0033932322 0.57979591 0.0033889768 0.58214326 0.0033847015 0.58449061 0.0033804071 0.58683796 0.0033760943 0.58918532 0.0033743565 0.59153267 0.0033752278 0.59388002 0.0033760375 0.59622737 0.003376785 0.59857472 0.0033774696 0.60092207 0.0033780907 0.60326943 0.0033786479 0.60561678 0.0033791406 0.60796413 0.0033795684 0.61031148 0.003379931 0.61265883 0.0033802281 0.61500619 0.0033804594 0.61735354 0.0033806248 0.61970089 0.0033807241 0.62204824 0.0033807572 0.62439527 0.0033807693 0.6267423 0.0033807524 0.62908933 0.0033807065 0.63143636 0.0033806316 0.63378339 0.0033805277 0.63613042 0.003380395 0.63847745 0.0033802335 0.64082448 0.0033800432 0.64317151 0.0033798244 0.64551855 0.0033795771 0.64786558 0.0033793015 0.65021261 0.0033789978 0.65255964 0.0033786661 0.65490667 0.0033783068 0.6572537 0.0033779199 0.65960073 0.0033775058 0.66194776 0.0033770648 0.66429479 0.0033765971 0.66664182 0.0033761031 0.66898885 0.003375583 0.67133588 0.0033750373 0.67368291 0.0033744663 0.67602994 0.0033738703 0.67837697 0.0033732498 0.680724 0.0033726051 0.68307103 0.0033719368 0.68541806 0.0033712452 0.68776509 0.0033705309 0.69011212 0.0033697942 0.69245915 0.0033690358 0.69480618 0.003368256 0.69715321 0.0033674555 0.69950024 0.0033666347 0.70184727 0.0033657943 0.70419431 0.0033649347 0.70654134 0.0033640565 0.70888837 0.0033631604 0.7112354 0.0033622469 0.71358243 0.0033613167 0.71592946 0.0033603702 0.71827649 0.0033594083 0.72062352 0.0033584315 0.72297055 0.0033574405 0.72531758 0.0033564359 0.72766461 0.0033554183 0.73001164 0.0033543885 0.73235867 0.0033533471 0.7347057 0.0033522949 0.73705273 0.0033512324 0.73939976 0.0033501604 0.74174679 0.0033490796 0.74409382 0.0033479907 0.74644085 0.0033468944 0.74878788 0.0033457913 0.75113491 0.0033446823 0.75348194 0.0033435679 0.75582897 0.003342449 0.758176 0.0033413262 0.76052303 0.0033402002 0.76287006 0.0033401879 0.7652171 0.0033408041 0.76756413 0.0033414205 0.76991116 0.0033420366 0.77225819 0.003342652 0.77460522 0.0033432663 0.77695225 0.0033438792 0.77929928 0.0033444903 0.78164631 0.0033450992 0.78399334 0.0033457055 0.78634037 0.0033463089 0.7886874 0.003346909 0.79103443 0.0033475055 0.79338146 0.0033480981 0.79572849 0.0033486863 0.79807552 0.0033492698 0.80042255 0.0033498484 0.80276958 0.0033504217 0.80511661 0.0033509894 0.80746364 0.0033515512 0.80981067 0.0033521067 0.8121577 0.0033526558 0.81450473 0.003353198 0.81685176 0.0033537332 0.81919879 0.0033542611 0.82154582 0.0033547814 0.82389285 0.0033552938 0.82623989 0.0033557982 0.82858692 0.0033562943 0.83093395 0.0033567819 0.83328098 0.0033572607 0.83562801 0.0033577306 0.83797504 0.0033581914 0.84032207 0.0033586429 0.8426691 0.0033590849 0.84501613 0.0033595173 0.84736316 0.0033599398 0.84971019 0.0033603525 0.85205722 0.0033607551 0.85440425 0.0033611475 0.85675128 0.0033615296 0.85909831 0.0033619014 0.86144534 0.0033622627 0.86379237 0.0033626134 0.8661394 0.0033629535 0.86848643 0.0033632829 0.87083346 0.0033636016 0.87318049 0.0033639096 0.87552752 0.0033642067 0.87787455 0.0033644931 0.88022158 0.0033647686 0.88256861 0.0033650334 0.88491565 0.0033652874 0.88726268 0.0033655306 0.88960971 0.0033657631 0.89195674 0.0033659849 0.89430377 0.003366196 0.8966508 0.0033663967 0.89899783 0.0033665868 0.90134486 0.0033667665 0.90369189 0.0033669359 0.90603892 0.0033670951 0.90838595 0.0033672442 0.91073298 0.0033673834 0.91308001 0.0033675126 0.91542704 0.0033676321 0.91777407 0.0033677421 0.9201211 0.0033678426 0.92246813 0.0033679338 0.92481516 0.003368016 0.92716219 0.0033680892 0.92950922 0.0033681536 0.93185625 0.0033682095 0.93420328 0.0033682569 0.93655031 0.0033682962 0.93889734 0.0033683276 0.94124437 0.0033683511 0.94359141 0.0033683671 0.94593844 0.0033683758 0.94828547 0.0033683773 0.9506325 0.0033683719 0.95297953 0.0033683599 0.95532656 0.0033683415 0.95767359 0.0033683169 0.96002062 0.0033682864 0.96236765 0.0033682502 0.96471468 0.0033682085 0.96706171 0.0033681616 0.96940874 0.0033681099 0.97175577 0.0033680534 0.9741028 0.0033679925 0.97644983 0.0033679274 0.97879686 0.0033678584 0.98114389 0.0033677858 0.98349092 0.0033677097 0.98583795 0.0033676306 0.98818498 0.0033675485 0.99053201 0.0033674638 0.99287904 0.0033673768 0.99522607 0.0033672876 0.9975731 0.0033671966 0.99992013 0.003367104 1.0022672 0.00336701 1.0046142 0.0033669149 1.0069612 0.003366819 1.0093083 0.0033667224 1.0116553 0.0033666254 1.0140023 0.0033665283 1.0163493 0.0033664313 1.0186964 0.0033663345 1.0210434 0.0033662383 1.0233904 0.0033661428 1.0257375 0.0033660483 1.0280845 0.003365955 1.0304315 0.003365863 1.0327786 0.0033657726 1.0351256 0.003365684 1.0374726 0.0033655972 1.0398197 0.0033655127 1.0421667 0.0033654304 1.0445137 0.0033653506 1.0468607 0.0033652734 1.0492078 0.003365199 1.0515548 0.0033651275 1.0539018 0.003365059 1.0562489 0.0033649938 1.0585959 0.0033649319 1.0609429 0.0033648735 1.06329 0.0033648186 1.065637 0.0033647674 1.067984 0.0033647199 1.070331 0.0033646763 1.0726781 0.0033646366 1.0750251 0.0033646009 1.0773721 0.0033645692 1.0797192 0.0033645417 1.0820662 0.0033645183 1.0844132 0.0033644992 1.0867603 0.0033644842 1.0891073 0.0033644735 1.0914543 0.0033644671 1.0938014 0.003364465 1.0961529 0.0033660261 1.0985044 0.0033687632 1.1008559 0.0033716929 1.1032074 0.0033746648 1.1055589 0.003377642 1.1079104 0.0033806114 1.1102619 0.0033835673 1.1126134 0.0033865066 1.1149649 0.0033894277 1.1173165 0.0033923295 1.119668 0.0033952112 1.1220195 0.0033980723 1.124371 0.0034009121 1.1267225 0.0034037303 1.129074 0.0034065264 1.1314255 0.0034092999 1.133777 0.0034120503 1.1361285 0.0034147773 1.1384801 0.0034174802 1.1408316 0.0034201586 1.1431831 0.0034228118 1.1455346 0.0034254393 1.1478861 0.0034280405 1.1502376 0.0034306147 1.1525891 0.0034331612 1.1549406 0.0034356793 1.1572921 0.0034381683 1.1596437 0.0034406273 1.1619952 0.0034430556 1.1643467 0.0034454524 1.1666982 0.0034478169 1.1690497 0.003450148 1.1714012 0.003452445 1.1737527 0.0034547069 1.1761042 0.0034569328 1.1784557 0.0034591217 1.1808073 0.0034612726 1.1831588 0.0034633847 1.1855103 0.0034654568 1.1878618 0.003467488 1.1902133 0.0034694773 1.1925648 0.0034714236 1.1949163 0.0034733259 1.1972678 0.0034751833 1.1996193 0.0034769945 1.2019709 0.0034787588 1.2043224 0.0034804749 1.2066739 0.0034821419 1.2090254 0.0034837589 1.2113769 0.0034853247 1.2137284 0.0034868384 1.2160799 0.0034882991 1.2184314 0.0034897058 1.2207829 0.0034910575 1.2231344 0.0034923533 1.225486 0.0034935923 1.2278375 0.0034947737 1.230189 0.0034958965 1.2325405 0.0034969601 1.234892 0.0034979635 1.2372435 0.003498906 1.239595 0.0034997869 1.2419465 0.0035006056 1.244298 0.0035013612 1.2466496 0.0035020532 1.2490011 0.0035026811 1.2513526 0.0035032442 1.2537041 0.0035037421 1.2560556 0.0035041743 1.2584071 0.0035045404 1.2607586 0.0035048399 1.2631101 0.0035050727 1.2654616 0.0035052383 1.2678132 0.0035053366 1.2701647 0.0035053674 1.2725162 0.0035053305 1.2748677 0.0035052259 1.2772192 0.0035050535 1.2795707 0.0035048133 1.2819222 0.0035045055 1.2842737 0.00350413 1.2866252 0.0035036872 1.2889768 0.0035031771 1.2913283 0.0035026002 1.2936798 0.0035019567 1.2960313 0.003501247 1.2983828 0.0035004715 1.3007343 0.0034996308 1.3030858 0.0034987254 1.3054373 0.0034977559 1.3077888 0.0034967229 1.3101404 0.0034956271 1.3124919 0.0034944693 1.3148434 0.0034932502 1.3171949 0.0034919708 1.3195464 0.003490632 1.3218979 0.0034892346 1.3242494 0.0034877796 1.3266009 0.0034862682 1.3289524 0.0034847014 1.331304 0.0034830803 1.3336555 0.0034814061 1.336007 0.00347968 1.3383585 0.0034779032 1.34071 0.0034760771 1.3430615 0.003474203 1.345413 0.0034722823 1.3477645 0.0034703162 1.350116 0.0034683064 1.3524675 0.0034662542 1.3548191 0.0034641611 1.3571706 0.0034620287 1.3595221 0.0034598584 1.3618736 0.0034576519 1.3642251 0.0034554107 1.3665766 0.0034531365 1.3689281 0.0034508308 1.3712796 0.0034484953 1.3736311 0.0034461317 1.3759827 0.0034437415 1.3783342 0.0034413265 1.3806857 0.0034388883 1.3830372 0.0034364287 1.3853887 0.0034339492 1.3877402 0.0034314516 1.3900917 0.0034289374 1.3924432 0.0034264085 1.3947947 0.0034238664 1.3971463 0.0034213127 1.3994978 0.0034187492 1.4018493 0.0034161773 1.4042008 0.0034135988 1.4065523 0.003411015 1.4089038 0.0034084277 1.4112553 0.0034058383 1.4136068 0.0034032483 1.4159583 0.0034006592 1.4183099 0.0033980723 1.4206614 0.0033954891 1.4230129 0.0033929109 1.4253644 0.003390339 1.4277159 0.0033877747 1.4300674 0.0033852192 1.4324189 0.0033826736 1.4347704 0.003380139 1.4371219 0.0033776166 1.4394735 0.0033751073 1.441825 0.0033726122 1.4441765 0.003370132 1.446528 0.0033676676 1.4488795 0.0033652198 1.451231 0.0033627893 1.4535825 0.0033603768 1.455934 0.0033579828 1.4582855 0.0033556079 1.460637 0.0033532524 1.4629886 0.0033509168 1.4653401 0.0033486014 1.4676916 0.0033463064 1.4700431 0.003344032 1.4723946 0.0033417782 1.4747461 0.0033395451 1.4770976 0.0033373327 1.4794491 0.0033351407 1.4818006 0.0033329691 1.4841522 0.0033308174 1.4865037 0.0033286855 1.4888552 0.0033265728 1.4912067 0.0033244788 1.4935582 0.0033224031 1.4959097 0.0033203449 1.4982612 0.0033183036 1.5006127 0.0033162784 1.5029642 0.0033142684 1.5053158 0.0033122727 1.5076673 0.0033102904 1.5100188 0.0033083204 1.5123703 0.0033063616 1.5147218 0.0033044129 1.5170733 0.003302473 1.5194248 0.0033005407 1.5217763 0.0032986147 1.5241278 0.0032966935 1.5264794 0.0032947757 1.5288309 0.0032928598 1.5311824 0.0032909444 1.5335339 0.0032890278 1.5358854 0.0032871085 1.5382369 0.0032851847 1.5405884 0.0032832549 1.5429399 0.0032813173 1.5452914 0.0032793703 1.547643 0.0032774119 1.5499945 0.0032754405 1.552346 0.0032734542 1.5546975 0.0032714513 1.557049 0.00326943 1.5594005 0.0032673883 1.561752 0.0032653246 1.5641035 0.0032632369 1.566455 0.0032611234 1.5688065 0.0032589824 1.5711581 0.0032568121 1.5735096 0.0032546106 1.5758611 0.0032523763 1.5782126 0.0032501075 1.5805641 0.0032478024 1.5829156 0.0032454595 1.5852671 0.0032430772 1.5876186 0.003240654 1.5899701 0.0032381883 1.5923217 0.003235679 1.5946732 0.0032331246 1.5970247 0.0032305239 1.5993762 0.0032278759 1.6017277 0.0032251797 1.6040792 0.0032224343 1.6064307 0.003219639 1.6087822 0.0032167934 1.6111337 0.0032138971 1.6134853 0.0032109499 1.6158368 0.0032079519 1.6181883 0.0032049035 1.6205398 0.0032018053 1.6228913 0.0031986583 1.6252428 0.0031954639 1.6275943 0.0031922238 1.6299458 0.0031889404 1.6322973 0.0031856166 1.6346489 0.0031822559 1.6370004 0.0031788626 1.6393519 0.0031754419 1.6417034 0.0031720001 1.6440549 0.0031685445 1.6464064 0.0031650839 1.6487579 0.0031616285 1.6511094 0.0031581906 1.6534609 0.0031547839 1.6558125 0.0031514248 1.658164 0.0031481314 1.6605155 0.0031449243 1.662867 0.0031418261 1.6652185 0.003138861 1.66757 0.0031360538 1.6699215 0.0031334293 1.672273 0.0031310104 1.6746245 0.0031288167 1.6769761 0.0031268625 1.6793276 0.0031251564 1.6816791 0.0031236996 1.6840306 0.003122487 1.6863821 0.0031215073 1.6887336 0.0031207448 1.6910851 0.0031201805 1.6934366 0.003119794 1.6957881 0.0031195649 1.6981396 0.003119473 1.7004912 0.0031194997 1.7028427 0.003119628 1.7051942 0.0031198425 1.7075457 0.0031201298 1.7098972 0.003120478 1.7122487 0.0031208768 1.7146002 0.0031213174 1.7169517 0.0031217919 1.7193032 0.0031222939 1.7216548 0.0031228175 1.7240063 0.0031233579 1.7263578 0.0031239108 1.7287093 0.0031244726 1.7310608 0.0031250401 1.7334123 0.0031256106 1.7357638 0.0031261818 1.7381153 0.0031267516 1.7404668 0.0031273183 1.7428184 0.0031278805 1.7451699 0.0031284368 1.7475214 0.0031289861 1.7498729 0.0031295275 1.7522244 0.0031300601 1.7545759 0.0031305833 1.7569274 0.0031310966 1.7592789 0.0031315993 1.7616304 0.0031320911 1.763982 0.0031325717 1.7663335 0.0031330408 1.768685 0.0031334982 1.7710365 0.0031339437 1.773388 0.0031343772 1.7757395 0.0031347986 1.778091 0.0031352079 1.7804425 0.0031356051 1.782794 0.0031359901 1.7851456 0.003136363 1.7874971 0.0031367239 1.7898486 0.0031370728 1.7922001 0.0031374099 1.7945516 0.0031377352 1.7969031 0.0031380488 1.7992546 0.0031383509 1.8016061 0.0031386416 1.8039576 0.003138921 1.8063091 0.0031391893 1.8086607 0.0031394467 1.8110122 0.0031396932 1.8133637 0.0031399291 1.8157152 0.0031401545 1.8180667 0.0031403696 1.8204182 0.0031405745 1.8227697 0.0031407693 1.8251212 0.0031409543 1.8274727 0.0031411296 1.8298243 0.0031412952 1.8321758 0.0031414515 1.8345273 0.0031415985 1.8368788 0.0031417363 1.8392303 0.003141865 1.8415818 0.0031419849 1.8439333 0.0031420959 1.8462848 0.0031421983 1.8486363 0.0031422921 1.8509879 0.0031423774 1.8533394 0.0031424544 1.8556909 0.003142523 1.8580424 0.0031425833 1.8603939 0.0031426355 1.8627454 0.0031426796 1.8650969 0.0031427155 1.8674484 0.0031427435 1.8697999 0.0031427634 1.8721515 0.0031427754 1.874503 0.0031427794 1.87685 0.0031427715 1.879197 0.003142748 1.8815441 0.0031427088 1.8838911 0.0031426539 1.8862381 0.0031425832 1.8885851 0.0031424968 1.8909322 0.0031423945 1.8932792 0.0031422764 1.8956262 0.0031421423 1.8979733 0.0031419923 1.9003203 0.0031418262 1.9026673 0.0031416439 1.9050144 0.0031414454 1.9073614 0.0031412305 1.9097084 0.0031409992 1.9120555 0.0031407514 1.9144025 0.0031404869 1.9167495 0.0031402056 1.9190965 0.0031399073 1.9214436 0.0031395921 1.9237906 0.0031392596 1.9261376 0.0031389098 1.9284847 0.0031385425 1.9308317 0.0031381576 1.9331787 0.0031377548 1.9355258 0.0031373341 1.9378728 0.0031368952 1.9402198 0.003136438 1.9425668 0.0031359623 1.9449139 0.0031354679 1.9472609 0.0031349547 1.9496079 0.0031344224 1.951955 0.0031338709 1.954302 0.0031332999 1.956649 0.0031327093 1.9589961 0.0031320989 1.9613431 0.0031314685 1.9636901 0.0031308178 1.9660372 0.0031301467 1.9683842 0.0031294551 1.9707312 0.0031287426 1.9730782 0.0031280091 1.9754253 0.0031272545 1.9777723 0.0031264784 1.9801193 0.0031256808 1.9824664 0.0031248614 1.9848134 0.00312402 1.9871604 0.0031231566 1.9895075 0.0031222708 1.9918545 0.0031213625 1.9942015 0.0031204315 1.9965485 0.0031194777 1.9988956 0.0031185009 2.0012426 0.003117501 2.0035896 0.0031164778 2.0059367 0.0031154311 2.0082837 0.0031143609 2.0106307 0.0031132669 2.0129778 0.0031121492 2.0153248 0.0031110074 2.0176718 0.0031098417 2.0200188 0.0031086517 2.0223659 0.0031074376 2.0247129 0.0031061991 2.0270599 0.0031049362 2.029407 0.0031036489 2.031754 0.0031023371 2.034101 0.0031010007 2.0364481 0.0030996398 2.0387951 0.0030982542 2.0411421 0.0030968441 2.0434892 0.0030954095 2.0458362 0.0030939502 2.0481832 0.0030924665 2.0505302 0.0030909582 2.0528773 0.0030894255 2.0552243 0.0030878685 2.0575713 0.0030862872 2.0599184 0.0030846817 2.0622654 0.0030830522 2.0646124 0.0030813988 2.0669595 0.0030797216 2.0693065 0.0030780208 2.0716535 0.0030762965 2.0740005 0.003074549 2.0763476 0.0030727784 2.0786946 0.003070985 2.0810416 0.0030691691 2.0833887 0.0030673307 2.0857357 0.0030654703 2.0880827 0.0030635882 2.0904298 0.0030616845 2.0927768 0.0030597598 2.0951238 0.0030578141 2.0974709 0.0030558481 2.0998179 0.0030538619 2.1021649 0.003051856 2.1045119 0.0030498308 2.106859 0.0030477867 2.109206 0.0030457242 2.111553 0.0030436437 2.1139001 0.0030415456 2.1162471 0.0030394306 2.1185941 0.003037299 2.1209412 0.0030351514 2.1232882 0.0030329883 2.1256352 0.0030308103 2.1279822 0.003028618 2.1303293 0.003026412 2.1326763 0.0030241928 2.1350233 0.003021961 2.1373704 0.0030197174 2.1397174 0.0030174626 2.1420644 0.0030151972 2.1444115 0.0030129219 2.1467585 0.0030106374 2.1491055 0.0030083445 2.1514526 0.0030060438 2.1537996 0.0030037361 2.1561466 0.0030014222 2.1584936 0.0029991027 2.1608407 0.0029967786 2.1631877 0.0029944506 2.1655347 0.0029921195 2.1678818 0.0029897862 2.1702288 0.0029874514 2.1725758 0.002985116 2.1749229 0.0029827808 2.1772699 0.0029804468 2.1796169 0.0029781147 2.1819639 0.0029757856 2.184311 0.0029734602 2.186658 0.0029711395 2.189005 0.0029688243 2.1913521 0.0029665157 2.1936991 0.0029642144 2.1960461 0.0029619216 2.1983932 0.002959638 2.2007402 0.0029573646 2.2030872 0.0029551024 2.2054343 0.0029528524 2.2077813 0.0029506154 2.2101283 0.0029483924 2.2124753 0.0029461845 2.2148224 0.0029439924 2.2171694 0.0029418173 2.2195164 0.0029396601 2.2218635 0.0029375217 2.2242105 0.0029354031 2.2265575 0.0029333052 2.2289046 0.002931229 2.2312516 0.0029291755 2.2335986 0.0029271456 2.2359456 0.0029251402 2.2382927 0.0029231603 2.2406397 0.0029212069 2.2429867 0.0029192808 2.2453338 0.0029173829 2.2476808 0.0029155142 2.2500278 0.0029136756 2.2523749 0.002911868 2.2547219 0.0029100922 2.2570689 0.0029083491 2.2594159 0.0029066396 2.261763 0.0029049645 2.26411 0.0029033247 2.266457 0.0029017209 2.2688041 0.0029001541 2.2711511 0.0028986249 2.2734981 0.0028971342 2.2758452 0.0028956827 2.2781922 0.0028942711 2.2805392 0.0028929002 2.2828863 0.0028915707 2.2852333 0.0028902833 2.2875803 0.0028890386 2.2899273 0.0028878373 2.2922744 0.0028866801 2.2946214 0.0028855674 2.2969684 0.0028845 2.2993155 0.0028834783 2.3016625 0.002882503 2.3040095 0.0028815745 2.3063566 0.0028806933 2.3087036 0.0028798599 2.3110506 0.0028790747 2.3133976 0.0028783382 2.3157447 0.0028776508 2.3180917 0.0028770128 2.3204387 0.0028764245 2.3227858 0.0028758863 2.3251328 0.0028753985 2.3274798 0.0028749613 2.3298269 0.002874575 2.3321739 0.0028742398 2.3345209 0.0028739559 2.336868 0.0028737233 2.339215 0.0028735423 2.341562 0.002873413 2.343909 0.0028733353 2.3462561 0.0028733095 & @target G0.S9 @type xy 0 -0.0028064188 0 0.005432218 & @target G0.S10 @type xy 0.62204824 -0.0028064188 0.62204824 0.005432218 & @target G0.S11 @type xy 1.0938014 -0.0028064188 1.0938014 0.005432218 & @target G0.S12 @type xy 1.874503 -0.0028064188 1.874503 0.005432218 & @target G0.S13 @type xy 2.3462561 -0.0028064188 2.3462561 0.005432218 & elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/MgB2.pdf0000644000000000000000000000013013543334741023642 xustar0029 mtime=1569569249.47463885 30 atime=1569569249.470638853 29 ctime=1569569249.47463885 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/MgB2.pdf0000644002504400250440000012241613543334741025721 0ustar00dewhurstdewhurst00000000000000%PDF-1.4 % 4 0 obj << /Length 37 /Filter /FlateDecode >> stream x+2T0BC]#3]S\.}\C|@.`7M endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 686 481] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./MgB2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 6 0 R /Matrix [0 -1 1 0 0 595] /BBox [0 0 595 842] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 7 0 R >>/Font << /R9 8 0 R/R8 9 0 R>> >> /Length 40355 /Filter /FlateDecode >> stream xK5ˮ(JGf@}r44TKvg\+>ws?syv|~o?sϿ??.{m?7?߸ly7X_X|p1<-΃<Ϗ?zo;aߘp~sge?3w>1F|c91s=-~y>ߎǎS|]㩶n]u3X^Jn9e?r>0:_ Ͻ_eƘa8enyl),?&Fyߍ7Qsn;:^a9cpeG4ʶ9O8C 6mgEhL5~6s3b|ؙ#|F/ng|;Vspλă?o|˼M`1rBG8SkēX:ı< ׹iOǂFqbLdnY7L迳Lz#L,*b=gy,9Cgƍ'w'!CyN|p1#l^o#l|ᖏV6O;E>g9:mwӖсs}a>7&Йk=ܘd>;cćwULu[> bE,Vݷ3ۢuf[tҾt[gt[\}l}5^ӳ̶=ym7{oougK?{jwo{w63Ά=>ͅрUo lvYO+Ei3!G9w6|7{E |>9s-/>f́uXrŧO@n~Z<>L5G"-طg3K9-8;/X`8ͅu2 Z>Lk3n|q{V3#^Zm,xs}8N ,asxOdY<;oU#Y=xf_Ǜd},;ϸb癷M9:xg;wGpო%Ǯbߝ۟[6n`x.nxsg :7qî3vǰo~O~;[mg:oj+zlgyk촳r,{ Uș_k/3Ω͗\+z"}nuR vc^̯5XvS_ii 7'; 9i-bik<OFO?+ڸ:z+|˟s&^:2뼃KvǞCk+9 :1 Ad]u^8¾åqf]gbꜻ}w3ؙ/]wf~4f>pCOnocv9=ā/w=csq8|˞+Wۿ34q @aW=MdS N?&z"9>K sV>ܝlxpn=Î{zhyg U$v\rbr'Vc^ÛyGŤޜ1aAm$'f%ݤlLA^>Oχ1_:[.c.:oa%n3x˗pP7>-®oAvd %6¥0`97Σn9S]Dvy= Dap;,O˛}.8bty w]YOc9uSD^tIs9ױOlS ͐-3%Cel9+#tKFlh _²2 cɈߑ[ݱd=c3CY7C3]sawvl^> Z| [v͐Mx%C09Rl%C}Xw] ;wgȖ,CodȖ^ ?=_%oD?M$DY#pÉ1qʍ ā$N]7Ɠ*;]<;_l=pmd YLtB 2/xc,$ă;Ɠ;|ŌFO>Cu~nɐ9=y=i%ʙz3>OlgL2-fl7cƧH:RW|KX]'b!w%ܕxrte%raYb<]O\H^'GW.$ē/+=)W".2Oߊڞ'-sT6iaA'o0l zX*lcɰ>u>fFmktGl]mcg\T0<}1wY=6t%L.X0Yeֳ>&36sƜȇX9,_aDdZ,_{N α?p,,@#q[Ce|:5O?xYh3tNd֋_ֈOG7i6!I8c*^{ϐ[-Gœgj.<xY7ͤ~sfmL!~|,sXe2ۚF k7cwX>.wֵ"-/#Wu᪾aO'.da  ׬bZkF.O4,O`ygM ,ov:e~sFoa8g6slGMcr?|so@[Ƣj=#˓5Fbc<8a7Sn{d8s(.c`@qe@.}c;]klvg>g݊107nF2]lnŹX6>HR7x # =scys/ş=F ϭLԉu{{Fotۊ ׈ncz`f{;O=c|=nȷݞFƭ*{YI f{,mogSr}M6}iD7l8 6 #b#1C0w;nz{:b}y<F>{<8|W£}H?}TnFxt?gET~J9>wss,nrIJsgܾxӎy3<`/xy37۱~;L-ՎGD煳my} 2-;2̲dqpAWás rӫ 2J޸ $U@]vdd9 x/;dJ3267 K7$\Ҽa\ 7_0 _(op!v/q Gø^)q8pSNqx#Gó8]B8|0JġqG%(px܁,I pw4ag7=vp4 DZhjwSqN >d*8dTwyl;? pHwX vVpKx$Tʩ(< o"N#ҼiCqC6\ypERІ~w>iC~҆< n)m Yӆ3^6d҅І7Hpñxr6p((Іm5m( n8ЃІ2 =ɇӆLЃN6nhgUJ"d6dXIhCDLiCD6DUڐ1. -">B2.a"XMfJ:ІpIJ೦iCF6 2JH63{)mԴ!b g>6t? Ѱ!=6D*)mxYJޑj#aJ84mk*mȌ A`І$6dfӆLڐBPeцp, =U'~цChC^ Ɂ n Wohrx(nG =pk:&nD' a/6dNІVѴaeFjІ 5n!37Yy*px'GC%=Fr4a,!09<*rTFlkq^u rA~ߚ849$'ax9$!'፝WCNFDCRt KCuF&"D9" 5ryk0r19L> 4W#E%rfh3Oa6sy"s9LLvmHb40b4!q9LHa&=sH9a搬`39t:OCz07bS05>S0PɌ sHBLC`&ai F2 bY2Zn0bio1<)7sf"cPa@iHH0,幪P1-[8 S( Y7I쵙[Z AD%E J Bp?F*Q,;!v,KAw3Wb)Бe, xI̴4wcy \}e5PfW~, oƥf@U49PUs@gY m N9a*YB<=>h\e>#Iϴ;obQS t"A)в|}qaV.4`ʅ\O%Eݍ094:#m A4LIC\oG@ʅii;/GSqcNU5-MwZ_&5-ͤFXv^ /J(Ձo qOFpG"{,Ez e便)$w$dp _}8oxaWKCH ;$w:5k$rMKsiz~ ;O0mY cZޛ'iMKӸ/Y2ZI}_C!}@޴+ ֘cWׅaZNcJe_Os'Z~t-7Bg)ܯZ&Eb-p,oBZ&> eO6犜;ۓ˶ LþG6MPoeӤezoSNpP3vWC o&&o+] %,riiNcmii6>Z)ڴ3olYPj6-MF 5f_Tj#@4$3Hz ƀUh6B19 ,&21%AX IXRXu\EأN3JYA8(6NJK8)5gHft*l%|/,!yfI 6KļY͒np%7,fe.h@fSt55pAM'4fSkIY" ^r%+lB"kLY~Yx~YCo+5mQ5Rkl8MԶQ*5;fJ;l8PP1Rh|nC!al8xuUCOuHمxBf 3[Ho1~y0T_f6!fff ŵK~pG宨,$K e:Ef=s %fCOPSd63F+3;2ɀzdW;F ePLY6d}52˭]KY{ "MY޸*2Af1=~YgL~z)0kA 0K!Lfa[E@zZ #%fCS IJވT*1{VlD60=RTUقs eHX gSZ6FҲqSZ6rҲ6--elM.ll?lM߭lvhYlJ˞|`ج-|`gl,MY;z7+H<5,[mi ie#GiلnEr²m ˞n&'^|?l@r( &{ְ,VemXֳ}6,>ee^²t(,{ ƵGaY{Th'$x|1%",*~he6J:+QӲ }"B~PwGHx,^ؼ/Gy_J" CaWx$4]wEDQx_Y)] 7&~WBѧ=rwz*G_;#D_?v{&~=uGJc'X_.Bfy&~qJzz ʇ v=Me_!~^lʣįe"~#/n "/ySQ!~K/QM_`w £oP1l~ 2&/&/%&/%,&/. `Kߋӱ_R^!:oGMfK4LoR'fP#I4fx#Go&,7_fY3o5;>cVw|qfnao;oXYpmw ^;ܧ ;Z`B38#pd ;8}6;8H;.-o(`7;,I7sE9_dXxCc 7;la~Kp!<w ;p* ;KO%6; , xO$V;Я dF~&D#NS@n5;Pwe?H1b*w< LTjw~'4z,P~M);xnX ZE~aA~y';IhXTJMwݫxBW; 4;FwGV(>! /E!~!G*VD،( $}A~Mq+򻣆oC_7Tk|+w"$/S+"YNpo%~R/R6;R-KA;t3ݑ/o[cT7 GF~Pȯ[|6ۖD~$oY exB߲ET|7-_d |?=ܐ}M|s N;ZB孾D{KNi 8-H5[Z 婮q%Uk, -1.Cǜ ZmI9\#9-_W޹- %dn(9'|Cɹ(4\+Ic\lR)Xsʹ5ase)Ny=#r)ۜr)QL I) ߔrM)Fєo&7KSe)L97)s'kL e!skL,)٘2kd̝V0eƂ)S6pG/r[SI@0e2)? C`<w)ܖĔt#2@OnH @~ԺB<| ܖfBqFqF?a59QFRFHH9L,)*2uJ)*plJG^PJ M(eRnKRH}S\0e?](ǝC)'n Se(J2oB){h⢔$7̻@ϘA6Pe)J-NQ J)f$s|RFBiHF.a Q+2v2eIFAޟ2ü 0p| )%)e^,R@6,pmIn7qX- !y9-H %4ڌDJ6f޹lv/kLv]]e){0 CdɮK;“ tY~bKE. h,Q{XvTZ ~@eٖ pz,ovCZ%bT;Q ꣞(,]wY&s<ُSgx]]zM%]oO 2<-ߕ. /P6,J)T)l?d Ieegoz4牝iij,;{[tΥX[6vAծ|Bܦp]q(Eq7ZD)-E)%R-On) 7ji'(TdWSpwZ*G\U}kno3V"U'KPVA^DPq<;V&3M #'+=(*'Ĥ9ENa%Ζx>俶="' uԠo%5TNaЖx>D>DN!Go9('jHŽUM U[Q(K 0joDM QVT&E !TN- xhC %KL-)&H %u (K q1tARZoP Xhai5`Jw%uuڒ?bYnKbj-rnXv[!?cmE牢<99n5?? 8_c:] ?,RKcg D6,J7nSGx,~bu ϘhcKYaǀlc0vb?^cm,@\@9OIo). :G+Zo]pD7?Hd4?+l?#M79oCnso vclTCKa rh?7(`gM K*?{/ɝK=Lh?O K`lz?uN!4M viAyiA<-?B<-?B#)x?Jh(%ݟ ʋ egpC `٭?[3YHʭ? Oaza93MZ @n8-Mp+пR,п-M oq?Ȏ \*F@wCY1t  `g@3TOYCG|zAss -S*Jf bMSz }SW7aId MX&ԿFv B4c 6Jt` o OOOPp.^WϠZ +?S{+RQBO!fy?u 83k?ۦD?JOW.꿊?}s6'Nj2|A 4[T.5g0& ?* iVTjS?ʻ)0'/ ;ZighO[X~7.狷?N00p`/{b@޷)M0WZ /u}g"_V@L5`yf<D 2с1tcPDqM֘M]5T!D*" T("8"Da9W$nId[!YDH2%nI5D5D5D!j$ZHIE}D؁DHڹ5V[& LDHN5fl->;&B-0CTDfH(HE!E(Œ8"xG!DH5FDaDLDXխUHmUI[wQE!WѢNEvQR"@=E0ETck"XYD`D`6D ԚWqhMDfh"X$(Q/ExQ-@JDiQ #5DW`D +ܘ[)QEV*amQE '%!ڢQ" S]d?h_"] >]ZFZpB"]@]EL"PܷtRuzR"dE(({.B *]Z! .a-b-EH1E/S|nYt,B),BzZ!EHAE2W-AEeQYl"BK-}ײtյ,ˏ,,:3@eDkϹDh"2h"(PzTc5,DLS5HMT,$E:sGIK"1ZH"\$,!PaI?TfI\)ZPMzCE5Ej"W{5hMPI4$8_K$d~\%O)yr-yP3`\! 2 PPb ̰ķkP SZ-/Ȝ/ȴ/ 2 2# 2 2 ڒWbzAzAzA[R sJ@ ovRzA[R]%UP?.A0AYJ ʐ2%Ж(z*@pT@uoԈ(5PtjȖ@:9 [ s_[ f[ o[ u[ ~[ s[ S[ [ S[խ)ۭ9I- Hh'@@ƢuhMZ іH@P00(@fi,\:'E`ׇ[ #2WtK٨>Z`<"RA<7^d~T`_ rFs/-g2SL@2ʏ @=dK(  JoD`!~d-J`!2E["֜*Y,evXE [e2UK`Se`vxO-]=:F`u6J@ %)`IdvVNfZ @hK&LNPiUK,%TiKCeʒ2>E|i @NHK3ț/KW%QFR(~Cmy-g{ ,(>AP|F9*KP|HA"mA9xs69.( )(EiwA ϕQ|.xSIP|(d>#go(EU, ''w'Sc Wq|F+.Zv+ނRM)^ &>qw).8>Sq|0Ӌ8bI>Wn4̫<g.fg{VS{@tG*?YyfZJp|:g.3jp6?Ns8 u }mg4@Fq"eX->֏%_/Koথ6zW.^cC]L~t@.tcy&ۛҘ`O5Zj`Loec ?*#rQED'0D~n2 Ґf`+xWV6jVe36pm0mhtAg[Պ:`,H0jHnbԁ߉!cPRDFE`/Rn:,R~Ww:w:Ԟh"uKR~sTtF\ : B w:pgŏA^9XCxD΅ZeD瀈 !|9@S}"BK}s`Ј΁#:=$:TXCsl.KVXOs5J zKtzUlXpls`ȉ΁t:ABq#B4_Z ݧ8wDse)Gl< rNKsnA"~ "bi(r[4tpOPPP- *S,B@岬 xRot,.DBkǐ:A,E3;Rf6ʡ4\"*M3Vfl I3S[Chf -af.KH'T8>J3%if$Ul-ܾB3"4sl-鼸Cmq2LR ss! 1fs bĘc7acU<1p clP#iĘk ƈ,JM[S2ߔ1ؼ1Ę\#1Fh+cB16SWcܷ2/2<dld̥!c\oyxlȘ?Ał(-^1B,~Jސ1%2B c^^2I c^2;× XI2U(c7'3v) 3aG{z{+f<+PŒi3oŌyxaX0c/Xy,։Qc+xL-SQ(2"P[l9x+I3ĕl9j\>)^# Xie:j@)3: Y=YKB/;zyƶ#t /{Ɨ=5uˋu _&$2J뾂.|ysˋ _FDr+L+_& La!ca)LW~ 0|7Xսf΅`^? a >\QqfaF>P9B038"3.B03#3``~tiǸr$3\ïnw`h2/{li;3.䣠f`GK_zK%:</< f<iR@\qHk,E-XbP)T*brM,u|m,5t-,5uKj,5K obg޿Xi^TKbbbR6wvTA@U\6wY6wr?,+K?0+uNksoE58[ e$LnxC~%\FBʍ,宽.*P BV\]}05^jn*(P+TfʅիT_BJ2+T.0ڭTJBBS\'J*7rS>J*dr ^d,KpL܈?P͔Ϳj*P\6P|Br 1(T.'PW*wBL8r M[T.-rj?T.y-r!T.,r=Cr=?'jq';"T.rEP*7neNC*w2P䪄ʝ@*T.̚ʅ\P*w^?H.SS0X@M\_d"#Z%H.ArG ;XȞ#SBĬkYtD*J+o+ x5~~l:]`6.0LM &fcJ}YxAI˂Z__Z_A/  ԗe"ݑ(;).Ne}pl,tǷV ^D@7b{ݡ$e=笠^˱"=JJR^!BV]^[y,ZZ^-h.{ T%(eHywuΓPdZ]겷vȟpW#?X:XeWCE˒, #ePw(I}YК֗H"S[;dZKR^Bө^p-eODa]] m.{Ur9WfYG0+MZ˕rW8%rqnbXku -;=+˛a9LstTS"UlldZ1 _òjWv;iOiKZ|3[[[pO/5TK 4Ek*6+ABŲ3Plb}d}BcXbb>09YL,ȥL,gw!@ EbyU$6Fb}"VHIXϡ$[Hl.Z]H=-L,Fbp {6Eb}G̅HotwEb#ƠHoi_n͊z8㇈-_ QFDCqDJ_?9d~yɓ <0u_ސ-! &[m M4Q۲j$MCqW6mMQ۠URi۸{)mw/m㢥-dmcUi8AmI.7j#Em2 jEm=#-Oۍ&ܨ-o@.EWP[Ѥ-BZ ik+--Q[MjQ[ojkQ]PhҖ9!m-J iq?|y_֢v?hK RE@[*4hk,ܠr("RF@&"-Evm hˉ!Ԝ}T@[^VMA[PTԹЖB\&6ݠ-o4B"5RI[g)ti˲{&ݨ-6d%mYyTH[B|<6i:B5HI[Mbt,%me.6&mgd i`sA&i)i˫ 7i!t+i;#I[z%,,-`mc,*7hYMI!mCڎRr)iZzi0XW6JF`]I+iat%m#-Y&m=.-E+e`]8[ gp7h"K@۸ gPpm$= f8^8۶t"&ܠm[* "ږZj VۖJy@_4B\ahi@u!dR<,3-Kѯ),3phص--A`Wf"ZS *kd+\֕ ºO!+cveԃ52u%.3F3֧v};+-]++v L8֕ڽºE#+utJm]l,+vβy5P}a]).k8ue'*JxA]}g&jЖr 2LNӮ֛֛mȲ;]7ZwZow^dyŪ֛ z OP@WEVU7kKv)z3'Qn7eo / J@;§Bzl7%eQA 7+6‹;%7N qU7nJ W ^*{⻑H. ߍJ). ލһq VzZBFcw)~ nܔލ»Cx׫a?n$IR2A]8_Po(ϋt74PouPYP]W,J U7λPXRO7,+΃Bmy3^ZLTLLeeaIIIII-eIfo'` %Jfk l)lHcT(9"%88)GJ~#HuJ~_%#,nA>l J^5`,d&kCɃ˂PAɵ\KRqɵ<4|,ȃo.K⒱`?p㍜p̧h,9jBP:M%c# ^Xrmȅ%h,z%`8[dz|dX%T8j,%ױ<47ƒ6XrK+ccyl,9o%罷,=`XLfii:rB,0(_z,IS7~,ɸ mKB~9v !_F]!) /%d-KBף17KY~j, 2%2qP_ЯCS_J Me~D7f~qR*WHm /teN_ o"snpt_29P nqZP_|jaT7"JN[M" " b]uޗ)/Ǥ𾜞F}l8lܗԂF7~-/D~=aؖj B_Vn|~2eU6~W /.I?exݝ4_O~ meBLueƇI6K~A~24eb I5_##/k%b>BKg7z:B2gJ_B2wL_JB2O_ {GD_ 9WI}T79}oV-7TXA}Ŷ)n5z8^u"RMM7D}{ RxK8Q_9+z7S4k6k_6^E1}S7rp[4k?հt G? k8} z} Wմ=&e5v}Ӿ(燽} i_{"ii_{"i_5kYh_cp_Qq_CGq_A4k;`}[h_A6k@Vt5}Rӳ_C{ {>~ُ kN:xy}WKy_C$נ"i>,Kɽ`ƕq_Aq5t"p_{a&k A Mq,ظ=Q/q_{@kx5n}SDJi}sJ5=qI_T 7X퍚@!q꪿gXQ8!z6:{诽5lpm>q`Ú8p.YIgā .%8p7i`0ƞqmDEjdVE8AO`,0pWfqņY[Q`+_074/V.{E2(0 _0i_,00$ % LH``2?ęBmI`B?nn%7cUixs|T.KLZX0:.gStTZ0)m]-xT Ύr\pl8R-xT ՂI`dR-4^ &&傃[9 D^[M"]GOK`) c^o L[`%&lG̦4&Rc.C1anƄ@kL4&l_kLd<5&j@DҘ eiLCEҘ0\1ξ֘0/ Ԙ0d1֘'-2RkL#5&CkLۮ4& jL1mҘQkL`!xukL䩠5&yWǂ8d]1fKL你%&Jka.>Jc˜ hCD:AJc"b1ј"I4& i$t݉C&.䌉"0A׬LЕ%d"0؆LPL&E`Jc"0A1l#7̖H%HLPS$&qTEIL$a *DJ5Ƅ*ƭ5&$)Hj4՘7;eZt"UZt":D:ArlQ E"Ņ;(ܝwu֪hUP:HȰ Q+Tss#z#PgA})>b zDxpS}/D.X6@.fxD ϖH\W Db' 3_p'%h VPNp Kbt"3q1 ǣZ=X^~^>5-J\ 笼[b\4."gT$.f3D2D"q1H\& B-q1*dh\YJKE.@+"A0D.($"4ąg hKJ\eEYJb]PBŊH\-pJ|TТ,%_Ai)(KISDN(ST'V6Չ~ݨQXq2-򁧪:$Vx.D!-ZS+,%@-N(K"*BZZ‥eD,_\p/(K*-Z,H|_iف@~4ߏf-񅑐i]XKxkM >1f׳=?,[:ݻ$O BVA(wWz} 9~.<:[:!gDK'",@GQ.D6@2QDXV(;j\H rUZ TZ`Á(be eHũuEX`GQzǂ( PSQ  0BsG%^ uaDXY",z+#ƩȨ>S(t'ox@+'vU33J W]=p-``̝ ][$l5ut˚)z`;P=@)ʝeAHe2U2జ ,%OGuC0r-C2bk1M1Lo1J  H1 5H1C-b J!$Pb2[ B[ !$b"QbhB0xJnB孅`aC2C0d"`>b" @DILp-bZ~,b㏊!V4UwKf$uARo!A`B2B-`3rP[c*Q<lF g+!،TVB0?UB0?ۣBy*!،\VB0$.B0.H!K@k }n#⚭p,"`zK |D -1lZܪY'jr襆j\D ao5墆0>5Q!@HbYQCYˆAFH ""pkAi"ީ#2D"GZX*`ϊꥈ+|"#E_E>ZBE-`ՠ$ -Dꮗ&BC/M\L5q&^D)ҚQzECDK<㣼4̯#+#v5rޔ&y z`UG42[PZMC50-nwܲ[e&]\SK!j"!oMٚv5D0& {E.Aj"T`ْ*e((A2?nm*?ޖؿC(BmIۮ&4ݖDN^%IkXH'jݖ Gj0knKby F-Fraba4'| nKrFr9jQ!1jbe)`;QMQi:_)lf F@0j9@[0j 9V``Q_qX0jD(uY BD0j[PʅQnKzƸFݖ!Vu[-uY -5nKr< 7]¤!tYy+sZͿj,E7p--KҖ@lelNSe)5ֲcIԴUCҲCZT iZ/> ;4 ږZE ,@4Ѳ ׀hvz9T uDD DyhBw!D=!&DyHBDf $@<$"{w7zS~r1;|^VD4'zL8Q_s'z[‡j>ApC|(x[NC>tmUP$=‡2)_Qzi]& 50DW\)ـ(rn>tt6:CKC!vP|nAaFD*y"G+7#z,I4#JT#X-D4Yf4QEDFDc݈-(K 0G%$-FfC5#z,8 6#jjˆw=ˆô6#z,@|5"zvGL4h>f5R>F50C 6j =,͇fTQk@FM} I oZ<5{"D3 ь6!M&D39 ь!7!tWQw,@C rgKPw>vyj>‡˽P+Z6PD.)>4]͇iЌn4  fPQ m@͇W.>AC5d"fYŇ"*jH1Ckj:NwCŇKb Yh < 7 <7 hګh4 p[Ҁ͐Hk@4# 摺cqCsl>4Eь4!j("(> ͰIr L[O@43Yck>오^zV}@7b͐ȭ[R l+g@W@fj+b͙ xM.!Q0j&t sŽex{VsŹpp7WUnȾ=I$6qo!{oU=}1۳2n;eǞ0B;:s;6طg;|Cwco7F7.49̰S'`ܸ{nxŰJHJЬtWHJw-Y;tZ'CK#6guA0-5{9hvޝ4=緆kvDiyP̈hy@̎4ZG>Uc}=./=9;*p$z\oDž=#w cuZznz9!cQ.@kz\z=F??c56z\5`5{:}kqn}Y${i~=>!DYӚ=V(W {k}ܰd@ g' d YJ@hGY$,XldsM91䏣9uVU XJX7:س*3&|)[E%8 6*~ż'@I9qA`[ U9ۄI'dzAVzDw9 $.00q  rdޟ .0IA~b +1dь}2K r aY5v`#AY䭺AviT:A 1e[aU]y+ %0)r> o9myVU9 f `=AcYT |\י[ˠEׁBV'(d1WͩL!~WM@!W) dWmB:U@B!gAY宀WN ھY0ȫN4d1``U| 9(` g(%Njٚ!%@ȫ2+U y/ $I6BQ`lyu!1&&E@^ ,A ljAN8$"j#A^RlȁlO`A r9hCnY@WNFUO9 ]0ȫۺ:j!ˡ?Cȱ!dB*pA6fGCvA~ g ޓ r5[DEY& LdQHF`zcc+bz;ѲHwB{{:#E:"] }=D#t#Vz# }n F'pأ }{rȭ9dd: 72N`:#r6q:o =#1/N3~N' \ }X]j鄾e3':o }鄞w] }C052Fɦ}Fi>X|i>콎{iM#9yuʧ\(kt:ϥ`_}Un%_;A$"5* qM5O!_;#-_՘ V?M"D뷈#׉'$ߑA3gOb__ľ?2Db_ľ<?Aد)#}] uد}]r Db_*}] '2~>{=A`5N"_w1BnQ 5zj5^G:kAs="\C5\#y&\C)kGs {^c۞kGs{}ʛf{%ߢ }{Uk\S*r=Z}'2}s.oun{3ڞkkm'bUC-|j-h=JmCfis=wDDFUM5Gts舘8"jM'2Mϵs X,QKtTEz\l+D(:j~Ww8o ;N D/Ow8׍n9 ,tC`a WXhBz"@`Q#+,Bf+Jc}|;Wȓ}El`sm^ߖWG"FhŸ+ƃv㠮'ƨ+rt@] +F1 A](6yQ]9 à ^Wdž2@W#UdK}Em_QW$b%L}Ū档x mC_}Ū+R{* mZ^Ui.+an{rWh ^W+&-/B+i }E NXjD=UL @b9>hOʸ+* u25PWJ e|PVꊶX]C]1bUU :Ȧ磮.VW(u* Xݿ|بX]muŪ$+xbꀺE3X1[mwXKoE.^V(joE#C[M~h+ZpcmE.Nh+"pR[-0W r\61WDy~޶WH qEnW\Ik+"qZ\~⊭W(sELbsVW(7yE,Ț㏇+"GE{6WDeEc:iPU[-!qB#+ړdyEכn7= Q@^\""񰴽b+4 Ab@BX+bG!T+r @^u(h[O@^ PC^Q9;+Twv+)Ub%ESh58)ɃB-uP8)JIQ.{()Ts'E DP4I!>B*8) ]I R U~CJRH)QUbR3 R ٩ R PG%H) F 7`VBڑbˉ0RH!X"PQBc|jrH-(XG! > IRBgUAH!FB>hxdHQ:)Z~a)EllRD( ?zIQRR -)E|SJ!e$BX)jaV +`Vr8Jњ [)ZZZZ|R|R|R|R|RUKR(K%-E4P% q(rC0m1W \W:bcp)Ld Jٜ@?9a"cNh@愉9A96zEsDƜ< Mۜ$23q2s'(5qDFd +[V'(}qw'4mqw'(qw'4`mqx'(qx0'4msBn,ќP:Ü:*;Gsr*;#ۜs*/s20'm Sۜ 9A5$P'v:A3P'jP'$ TNP  Bj4410' B%aN{Tzq*!NP3 *8A'hAy'4>'y`k>aA_L&<;k /l ߾;)WV"'|} o ȕGxrUx@x7ye't . Mש#ҾоA)|YzFxC{AxOڸfGxdJa^~ܰ`ŢM9z rzPxYxXxpG -<#칞h`;P<i;3OAhnAѶ8IyUtTVd$qܑuSE2rcþ:?GlpGzlHm|cH!r 2j̭6@=ǦRGsGHHMXPms^}0qd$pccX5~0ލu )2hh6~0(|~~z$D~P]gh?Z~ E Ҩ~P3r@P!R@ 2@  I_P 'Pt(PU?| bt" zo T}-:b- @C<0 qW t @  WB A@% \a@(1 a# A*T!@DJJOaDPB"ԝN!BG,D(j#6"JF؈Pi#F= 8{FJ iA?@D=[Hz6po#)h5<$#K;Ҽ'2\|h||{pގws3k>w$Ƨ{h|ze^\^Z=KRw= -x&(5to#1=k衧WN^WT`36tāNNulK/Tga3ܰӽ+`v:#<5;Nvd Oӽ`v7N#҉4 p4:=f{ì#{4s]{vM=7yPszPszs0Գvr =ϩ9/h>\ =E3\X=:_y=獱=NS W^,CϹLpϝI1bpw$;#3"s=]ns+ sQ {rJ{jfnw >w> su Y;fnw|^Fcϝ3|G2jyEw0 >|nQE3J|Ā=0Ͻfy]5^e;Ga7 >sn ܻ1ƞ{csOd=\سVƞg-ۀ=kYkOcZ{jس,QgY=k1 Yp{ si=KY6p{Vܳ|s%4g>9/( TA k,y\H>N䳒P ce|~TE!gD~րU4Q!,J}~D5NYN!9y#,]g>n#,;gɀ?KhYϫ`~>,<}s>yf9'gm|\sqL>T9 }D8 " 6 %, y2,i U5-%fR,|&jA9/, Eu`U IBjIHWy B>*!<*"j6 *"-a "< y~k ڬb?y>-m.3F'2h*6!4ڬ$4fL60ڬJͪ#fU}mh 6;hU /LJ`A7JtDnV-+L7OdfUo* nD2d %x W Ej_yu]qۓGLongs_q> aʻ_[TW_u,~+[g 9:WGU^8bUN~ńE?x.?w;Y9 ++F{-WBz߲f 1Etޣ{X܉l]GθOԏx=՛'EGE xEOD_PO? :ԇO?-/e/?up_vy{pqGo_ |r_/w/_cJtu}0_ʏe{*ף8?є EUԩo~͏?˯>XcpB̓*e{_g7?}g om,<؛|SF/,}c|S|/e03%QU?CCZ7~ds4~54 endstream endobj 6 0 obj << /Producer (GPL Ghostscript 9.07) /CreationDate (D:20160212100336+01'00') /ModDate (D:20160212100336+01'00') /Creator (Grace-5.1.23) /Title (MgB2.agr) /Author (sharma) >> endobj 7 0 obj << /Type /ExtGState /OPM 1 >> endobj 8 0 obj << /BaseFont /Symbol /Type /Font /Encoding 10 0 R /Subtype /Type1 >> endobj 9 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 10 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 71/Gamma] >> endobj 2 0 obj << /XObject << /Im1 1 0 R >> /ProcSet [ /PDF ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 11 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 12 0 obj << /Producer (pdfTeX-1.40.13) /Creator (TeX) /CreationDate (D:20160212100455+01'00') /ModDate (D:20160212100455+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) kpathsea version 6.1.0) >> endobj xref 0 13 0000000000 65535 f 0000000235 00000 n 0000041399 00000 n 0000000131 00000 n 0000000015 00000 n 0000041464 00000 n 0000040916 00000 n 0000041104 00000 n 0000041149 00000 n 0000041233 00000 n 0000041305 00000 n 0000041521 00000 n 0000041571 00000 n trailer << /Size 13 /Root 11 0 R /Info 12 0 R /ID [ ] >> startxref 41837 %%EOF elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/MgB2.ps0000644000000000000000000000013213543334741023515 xustar0030 mtime=1569569249.491638839 30 atime=1569569249.477638848 30 ctime=1569569249.491638839 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/MgB2.ps0000644002504400250440000045340613543334741025600 0ustar00dewhurstdewhurst00000000000000%!PS-Adobe-3.0 %%BoundingBox: 0 0 612 792 %%LanguageLevel: 2 %%Creator: Grace-5.1.23 %%CreationDate: Fri Feb 12 10:03:15 2016 %%DocumentData: Clean8Bit %%Orientation: Landscape %%Pages: 1 %%PageOrder: Ascend %%Title: MgB2.agr %%For: sharma %%DocumentNeededResources: (atend) %%EndComments %%BeginProlog /PAGE_OFFSET_X 0 def /PAGE_OFFSET_Y 0 def /m {moveto} def /l {lineto} def /s {stroke} def /n {newpath} def /c {closepath} def /RL {rlineto} def /SLW {setlinewidth} def /GS {gsave} def /GR {grestore} def /SC {setcolor} def /SGRY {setgray} def /SRGB {setrgbcolor} def /SD {setdash} def /SLC {setlinecap} def /SLJ {setlinejoin} def /SCS {setcolorspace} def /FFSF {findfont setfont} def /CC {concat} def /PXL {n m 0 0 RL s} def /Color0 {1.0000 1.0000 1.0000} def /Color1 {0.0000 0.0000 0.0000} def /Color2 {1.0000 0.0000 0.0000} def /Color3 {0.0000 1.0000 0.0000} def /Color4 {0.0000 0.0000 1.0000} def /Color5 {1.0000 1.0000 0.0000} def /Color6 {0.7373 0.5608 0.5608} def /Color7 {0.8627 0.8627 0.8627} def /Color8 {0.5804 0.0000 0.8275} def /Color9 {0.0000 1.0000 1.0000} def /Color10 {1.0000 0.0000 1.0000} def /Color11 {1.0000 0.6471 0.0000} def /Color12 {0.4471 0.1294 0.7373} def /Color13 {0.4039 0.0275 0.2824} def /Color14 {0.2510 0.8784 0.8157} def /Color15 {0.0000 0.5451 0.0000} def /Color16 {0.7529 0.7529 0.7529} def /Color17 {0.5059 0.5059 0.5059} def /Color18 {0.2588 0.2588 0.2588} def /PTRN { /pat_bits exch def << /PaintType 2 /PatternType 1 /TilingType 1 /BBox[0 0 16 16] /XStep 16 /YStep 16 /PaintProc { pop 16 16 true [-1 0 0 -1 16 16] pat_bits imagemask } >> [0.0016 0 0 0.0016 0 0] makepattern } def /Pattern0 {<0000000000000000000000000000000000000000000000000000000000000000> PTRN} bind def /Pattern1 { PTRN} bind def /Pattern2 { PTRN} bind def /Pattern3 { PTRN} bind def /Pattern4 {<5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa> PTRN} bind def /Pattern5 {<1111444411114444111144441111444411114444111144441111444411114444> PTRN} bind def /Pattern6 {<1111000044440000111100004444000011110000444400001111000044440000> PTRN} bind def /Pattern7 {<1010000000000000010100000000000010100000000000000101000000000000> PTRN} bind def /Pattern8 {<0000000000000000000000000000000000000000000000000000000000000000> PTRN} bind def /Pattern9 {<1e1e0f0f8787c3c3e1e1f0f078783c3c1e1e0f0f8787c3c3e1e1f0f078783c3c> PTRN} bind def /Pattern10 {<7878f0f0e1e1c3c387870f0f1e1e3c3c7878f0f0e1e1c3c387870f0f1e1e3c3c> PTRN} bind def /Pattern11 {<3333333333333333333333333333333333333333333333333333333333333333> PTRN} bind def /Pattern12 { PTRN} bind def /Pattern13 {<8181424224241818181824244242818181814242242418181818242442428181> PTRN} bind def /Pattern14 {<8080404020201010080804040202010180804040202010100808040402020101> PTRN} bind def /Pattern15 {<0101020204040808101020204040808001010202040408081010202040408080> PTRN} bind def /Pattern16 {<2222222222222222222222222222222222222222222222222222222222222222> PTRN} bind def /Pattern17 {<0000ffff000000000000ffff000000000000ffff000000000000ffff00000000> PTRN} bind def /Pattern18 {<2222ffff222222222222ffff222222222222ffff222222222222ffff22222222> PTRN} bind def /Pattern19 { PTRN} bind def /Pattern20 {<0f0f0f0f0f0f0f0ff0f0f0f0f0f0f0f00f0f0f0f0f0f0f0ff0f0f0f0f0f0f0f0> PTRN} bind def /Pattern21 { PTRN} bind def /Pattern22 {<8001800180018001800180018001ffffffff8001800180018001800180018001> PTRN} bind def /Pattern23 { PTRN} bind def /Pattern24 {<040404040404ffff404040404040ffff040404040404ffff404040404040ffff> PTRN} bind def /Pattern25 {<180018001800180018001800ffffffff001800180018001800180018ffffffff> PTRN} bind def /Pattern26 {<1111b8b87c7c3a3a1111a3a3c7c78b8b1111b8b87c7c3a3a1111a3a3c7c78b8b> PTRN} bind def /Pattern27 {<101010102828c7c70101010182827c7c101010102828c7c70101010182827c7c> PTRN} bind def /Pattern28 {<1c1c121211112121c1c12121111112121c1c121211112121c1c1212111111212> PTRN} bind def /Pattern29 {<3e3e414180808080e3e31414080808083e3e414180808080e3e3141408080808> PTRN} bind def /Pattern30 {<4848888884848383848488884848383848488888848483838484888848483838> PTRN} bind def /Pattern31 {<03030404080808080c0c12122121c0c003030404080808080c0c12122121c0c0> PTRN} bind def /ellipsedict 8 dict def ellipsedict /mtrx matrix put /EARC { ellipsedict begin /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix end } def /TL { /kcomp exch def /linewidth exch def /offset exch def GS 0 offset rmoveto linewidth SLW dup stringwidth exch kcomp add exch RL s GR } def /KINIT { /kvector exch def /kid 0 def } def /KPROC { pop pop kvector kid get 0 rmoveto /kid 1 kid add def } def /DefEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProlog %%BeginSetup %%EndSetup %%Page: 1 1 PAGE_OFFSET_X PAGE_OFFSET_Y translate 612.00 612.00 scale 90 rotate 0.0 -1.0 translate n 0.0000 0.0000 m 0.0000 1.0000 l 1.2941 1.0000 l 1.2941 0.0000 l c [/DeviceRGB] SCS Color0 SC fill [/DeviceRGB] SCS Color1 SC [] 0 SD 0.0023 SLW 0 SLC 0 SLJ n 0.1500 0.1500 m 0.1510 0.1507 l 0.1520 0.1514 l 0.1530 0.1520 l 0.1540 0.1527 l 0.1550 0.1534 l 0.1560 0.1541 l 0.1570 0.1548 l 0.1580 0.1555 l 0.1590 0.1562 l 0.1600 0.1570 l 0.1610 0.1577 l 0.1620 0.1585 l 0.1630 0.1592 l 0.1640 0.1600 l 0.1650 0.1608 l 0.1660 0.1616 l 0.1670 0.1624 l 0.1680 0.1632 l 0.1690 0.1641 l 0.1700 0.1649 l 0.1710 0.1658 l 0.1720 0.1667 l 0.1730 0.1676 l 0.1740 0.1685 l 0.1750 0.1695 l 0.1760 0.1704 l 0.1770 0.1714 l 0.1780 0.1724 l 0.1790 0.1734 l 0.1800 0.1745 l 0.1810 0.1755 l 0.1820 0.1766 l 0.1830 0.1777 l 0.1840 0.1788 l 0.1850 0.1799 l 0.1860 0.1811 l 0.1870 0.1822 l 0.1880 0.1834 l 0.1890 0.1846 l 0.1900 0.1858 l 0.1910 0.1871 l 0.1920 0.1883 l 0.1930 0.1892 l 0.1940 0.1902 l 0.1949 0.1911 l 0.1959 0.1920 l 0.1969 0.1929 l 0.1979 0.1938 l 0.1989 0.1948 l 0.1999 0.1957 l 0.2009 0.1966 l 0.2019 0.1975 l 0.2029 0.1985 l 0.2039 0.1994 l 0.2049 0.2003 l 0.2059 0.2012 l 0.2069 0.2022 l 0.2079 0.2031 l 0.2089 0.2040 l 0.2099 0.2050 l 0.2109 0.2059 l 0.2119 0.2068 l 0.2129 0.2078 l 0.2139 0.2087 l 0.2149 0.2096 l 0.2159 0.2105 l 0.2169 0.2115 l 0.2179 0.2124 l 0.2189 0.2134 l 0.2199 0.2143 l 0.2209 0.2152 l 0.2219 0.2162 l 0.2229 0.2171 l 0.2239 0.2180 l 0.2249 0.2190 l 0.2259 0.2199 l 0.2269 0.2209 l 0.2279 0.2218 l 0.2289 0.2227 l 0.2299 0.2237 l 0.2309 0.2246 l 0.2319 0.2256 l 0.2329 0.2265 l 0.2339 0.2274 l 0.2349 0.2284 l 0.2359 0.2293 l 0.2369 0.2303 l 0.2379 0.2312 l 0.2389 0.2322 l 0.2399 0.2331 l 0.2409 0.2341 l 0.2419 0.2350 l 0.2429 0.2360 l 0.2439 0.2369 l 0.2449 0.2379 l 0.2459 0.2388 l 0.2469 0.2398 l 0.2479 0.2407 l 0.2489 0.2417 l 0.2499 0.2426 l 0.2509 0.2436 l 0.2519 0.2445 l 0.2529 0.2455 l 0.2539 0.2464 l 0.2549 0.2474 l 0.2559 0.2483 l 0.2569 0.2493 l 0.2579 0.2502 l 0.2589 0.2512 l 0.2599 0.2522 l 0.2609 0.2531 l 0.2619 0.2541 l 0.2629 0.2550 l 0.2639 0.2560 l 0.2649 0.2569 l 0.2659 0.2579 l 0.2669 0.2588 l 0.2679 0.2598 l 0.2689 0.2608 l 0.2699 0.2617 l 0.2709 0.2627 l 0.2719 0.2636 l 0.2729 0.2646 l 0.2739 0.2656 l 0.2749 0.2665 l 0.2759 0.2675 l 0.2769 0.2684 l 0.2779 0.2694 l 0.2789 0.2704 l 0.2799 0.2713 l 0.2809 0.2723 l 0.2819 0.2732 l 0.2829 0.2742 l 0.2838 0.2751 l 0.2848 0.2761 l 0.2858 0.2771 l 0.2868 0.2780 l 0.2878 0.2790 l 0.2888 0.2799 l 0.2898 0.2809 l 0.2908 0.2818 l 0.2918 0.2828 l 0.2928 0.2837 l 0.2938 0.2847 l 0.2948 0.2856 l 0.2958 0.2866 l 0.2968 0.2875 l 0.2978 0.2885 l 0.2988 0.2894 l 0.2998 0.2904 l 0.3008 0.2913 l 0.3018 0.2923 l 0.3028 0.2932 l 0.3038 0.2941 l 0.3048 0.2951 l 0.3058 0.2960 l 0.3068 0.2970 l 0.3078 0.2979 l 0.3088 0.2988 l 0.3098 0.2997 l 0.3108 0.3007 l 0.3118 0.3016 l 0.3128 0.3025 l 0.3138 0.3034 l 0.3148 0.3043 l 0.3158 0.3052 l 0.3168 0.3062 l 0.3178 0.3071 l 0.3188 0.3080 l 0.3198 0.3089 l 0.3208 0.3097 l 0.3218 0.3106 l 0.3228 0.3115 l 0.3238 0.3124 l 0.3248 0.3133 l 0.3258 0.3141 l 0.3268 0.3150 l 0.3278 0.3159 l 0.3288 0.3167 l 0.3298 0.3175 l 0.3308 0.3184 l 0.3318 0.3192 l 0.3328 0.3200 l 0.3338 0.3209 l 0.3348 0.3217 l 0.3358 0.3225 l 0.3368 0.3233 l 0.3378 0.3241 l 0.3388 0.3248 l 0.3398 0.3256 l 0.3408 0.3264 l 0.3418 0.3271 l 0.3428 0.3279 l 0.3438 0.3286 l 0.3448 0.3294 l 0.3458 0.3301 l 0.3468 0.3308 l 0.3478 0.3315 l 0.3488 0.3322 l 0.3498 0.3328 l 0.3508 0.3335 l 0.3518 0.3341 l 0.3528 0.3348 l 0.3538 0.3354 l 0.3548 0.3360 l 0.3558 0.3366 l 0.3568 0.3372 l 0.3578 0.3378 l 0.3588 0.3384 l 0.3598 0.3390 l 0.3608 0.3395 l 0.3618 0.3400 l 0.3628 0.3406 l 0.3638 0.3411 l 0.3648 0.3416 l 0.3658 0.3420 l 0.3668 0.3425 l 0.3678 0.3430 l 0.3688 0.3434 l 0.3698 0.3438 l 0.3708 0.3443 l 0.3717 0.3447 l 0.3727 0.3451 l 0.3737 0.3455 l 0.3747 0.3458 l 0.3757 0.3462 l 0.3767 0.3465 l 0.3777 0.3469 l 0.3787 0.3472 l 0.3797 0.3475 l 0.3807 0.3478 l 0.3817 0.3481 l 0.3827 0.3484 l 0.3837 0.3487 l 0.3847 0.3489 l 0.3857 0.3491 l 0.3867 0.3492 l 0.3877 0.3493 l 0.3887 0.3493 l 0.3897 0.3494 l 0.3907 0.3495 l 0.3917 0.3496 l 0.3927 0.3497 l 0.3937 0.3497 l 0.3947 0.3498 l 0.3957 0.3499 l 0.3967 0.3499 l 0.3977 0.3500 l 0.3987 0.3501 l 0.3997 0.3501 l 0.4007 0.3502 l 0.4017 0.3502 l 0.4027 0.3502 l 0.4037 0.3503 l 0.4047 0.3503 l 0.4057 0.3504 l 0.4067 0.3504 l 0.4077 0.3504 l 0.4087 0.3504 l 0.4097 0.3504 l 0.4107 0.3505 l 0.4117 0.3505 l 0.4127 0.3505 l 0.4137 0.3505 l 0.4147 0.3505 l 0.4157 0.3505 l 0.4167 0.3505 l 0.4177 0.3505 l 0.4187 0.3505 l 0.4197 0.3504 l 0.4207 0.3504 l 0.4217 0.3504 l 0.4227 0.3504 l 0.4237 0.3504 l 0.4247 0.3504 l 0.4257 0.3504 l 0.4267 0.3504 l 0.4277 0.3504 l 0.4287 0.3504 l 0.4297 0.3504 l 0.4307 0.3504 l 0.4317 0.3504 l 0.4327 0.3504 l 0.4337 0.3504 l 0.4347 0.3504 l 0.4357 0.3504 l 0.4367 0.3504 l 0.4377 0.3504 l 0.4387 0.3504 l 0.4397 0.3504 l 0.4407 0.3505 l 0.4417 0.3505 l 0.4427 0.3505 l 0.4437 0.3505 l 0.4447 0.3505 l 0.4457 0.3505 l 0.4467 0.3505 l 0.4477 0.3505 l 0.4487 0.3506 l 0.4497 0.3506 l 0.4507 0.3506 l 0.4517 0.3506 l 0.4527 0.3506 l 0.4537 0.3506 l 0.4547 0.3507 l 0.4556 0.3507 l 0.4566 0.3507 l 0.4576 0.3507 l 0.4586 0.3507 l 0.4596 0.3508 l 0.4606 0.3508 l 0.4616 0.3508 l 0.4626 0.3508 l 0.4636 0.3509 l 0.4646 0.3509 l 0.4656 0.3509 l 0.4666 0.3509 l 0.4676 0.3510 l 0.4686 0.3510 l 0.4696 0.3510 l 0.4706 0.3511 l 0.4716 0.3511 l 0.4726 0.3511 l 0.4736 0.3512 l 0.4746 0.3512 l 0.4756 0.3512 l 0.4766 0.3512 l 0.4776 0.3513 l 0.4786 0.3513 l 0.4796 0.3513 l 0.4806 0.3514 l 0.4816 0.3514 l 0.4826 0.3514 l 0.4836 0.3515 l 0.4846 0.3515 l 0.4856 0.3515 l 0.4866 0.3516 l 0.4876 0.3516 l 0.4886 0.3516 l 0.4896 0.3517 l 0.4906 0.3517 l 0.4916 0.3518 l 0.4926 0.3518 l 0.4936 0.3518 l 0.4946 0.3519 l 0.4956 0.3519 l 0.4966 0.3519 l 0.4976 0.3520 l 0.4986 0.3520 l 0.4996 0.3520 l 0.5006 0.3521 l 0.5016 0.3521 l 0.5026 0.3521 l 0.5036 0.3522 l 0.5046 0.3522 l 0.5056 0.3522 l 0.5066 0.3523 l 0.5076 0.3523 l 0.5086 0.3523 l 0.5096 0.3524 l 0.5106 0.3524 l 0.5116 0.3524 l 0.5126 0.3525 l 0.5136 0.3525 l 0.5146 0.3525 l 0.5156 0.3526 l 0.5166 0.3526 l 0.5176 0.3526 l 0.5186 0.3527 l 0.5196 0.3527 l 0.5206 0.3527 l 0.5216 0.3528 l 0.5226 0.3528 l 0.5236 0.3528 l 0.5246 0.3529 l 0.5256 0.3529 l 0.5266 0.3529 l 0.5276 0.3530 l 0.5286 0.3530 l 0.5296 0.3530 l 0.5306 0.3530 l 0.5316 0.3531 l 0.5326 0.3531 l 0.5336 0.3531 l 0.5345 0.3532 l 0.5355 0.3532 l 0.5365 0.3532 l 0.5375 0.3532 l 0.5385 0.3533 l 0.5395 0.3533 l 0.5405 0.3533 l 0.5415 0.3533 l 0.5425 0.3534 l 0.5435 0.3534 l 0.5445 0.3534 l 0.5455 0.3534 l 0.5465 0.3535 l 0.5475 0.3535 l 0.5485 0.3535 l 0.5495 0.3535 l 0.5505 0.3536 l 0.5515 0.3536 l 0.5525 0.3536 l 0.5535 0.3536 l 0.5545 0.3537 l 0.5555 0.3537 l 0.5565 0.3537 l 0.5575 0.3537 l 0.5585 0.3537 l 0.5595 0.3538 l 0.5605 0.3538 l 0.5615 0.3538 l 0.5625 0.3538 l 0.5635 0.3538 l 0.5645 0.3539 l 0.5655 0.3539 l 0.5665 0.3539 l 0.5675 0.3539 l 0.5685 0.3539 l 0.5695 0.3540 l 0.5705 0.3540 l 0.5715 0.3540 l 0.5725 0.3540 l 0.5735 0.3540 l 0.5745 0.3541 l 0.5755 0.3541 l 0.5765 0.3541 l 0.5775 0.3541 l 0.5785 0.3541 l 0.5795 0.3541 l 0.5805 0.3541 l 0.5815 0.3542 l 0.5825 0.3542 l 0.5835 0.3542 l 0.5845 0.3542 l 0.5855 0.3542 l 0.5865 0.3542 l 0.5875 0.3542 l 0.5885 0.3543 l 0.5895 0.3543 l 0.5905 0.3543 l 0.5915 0.3543 l 0.5925 0.3543 l 0.5935 0.3543 l 0.5945 0.3543 l 0.5955 0.3543 l 0.5965 0.3543 l 0.5975 0.3544 l 0.5985 0.3544 l 0.5995 0.3544 l 0.6005 0.3544 l 0.6015 0.3544 l 0.6025 0.3544 l 0.6035 0.3544 l 0.6045 0.3544 l 0.6055 0.3544 l 0.6065 0.3544 l 0.6075 0.3544 l 0.6085 0.3544 l 0.6095 0.3544 l 0.6105 0.3544 l 0.6115 0.3544 l 0.6125 0.3544 l 0.6134 0.3544 l 0.6144 0.3544 l 0.6154 0.3544 l 0.6164 0.3544 l 0.6174 0.3544 l 0.6184 0.3544 l 0.6194 0.3544 l 0.6205 0.3544 l 0.6215 0.3544 l 0.6225 0.3544 l 0.6235 0.3544 l 0.6245 0.3544 l 0.6255 0.3544 l 0.6265 0.3544 l 0.6275 0.3544 l 0.6285 0.3544 l 0.6295 0.3544 l 0.6305 0.3543 l 0.6315 0.3543 l 0.6325 0.3543 l 0.6335 0.3543 l 0.6345 0.3543 l 0.6355 0.3543 l 0.6365 0.3542 l 0.6375 0.3542 l 0.6385 0.3542 l 0.6395 0.3542 l 0.6405 0.3542 l 0.6415 0.3541 l 0.6425 0.3541 l 0.6435 0.3541 l 0.6445 0.3541 l 0.6455 0.3540 l 0.6465 0.3540 l 0.6475 0.3540 l 0.6485 0.3540 l 0.6495 0.3539 l 0.6505 0.3539 l 0.6515 0.3539 l 0.6525 0.3538 l 0.6535 0.3538 l 0.6545 0.3538 l 0.6555 0.3537 l 0.6565 0.3537 l 0.6575 0.3536 l 0.6585 0.3536 l 0.6595 0.3536 l 0.6605 0.3535 l 0.6615 0.3535 l 0.6625 0.3534 l 0.6635 0.3534 l 0.6645 0.3533 l 0.6655 0.3533 l 0.6665 0.3532 l 0.6675 0.3532 l 0.6685 0.3531 l 0.6695 0.3531 l 0.6705 0.3530 l 0.6715 0.3530 l 0.6725 0.3529 l 0.6735 0.3528 l 0.6745 0.3528 l 0.6755 0.3527 l 0.6765 0.3527 l 0.6775 0.3526 l 0.6785 0.3525 l 0.6795 0.3525 l 0.6805 0.3524 l 0.6815 0.3523 l 0.6825 0.3522 l 0.6835 0.3522 l 0.6845 0.3521 l 0.6855 0.3520 l 0.6865 0.3519 l 0.6875 0.3519 l 0.6885 0.3518 l 0.6895 0.3517 l 0.6905 0.3516 l 0.6915 0.3515 l 0.6925 0.3514 l 0.6935 0.3513 l 0.6945 0.3512 l 0.6955 0.3511 l 0.6965 0.3510 l 0.6975 0.3510 l 0.6985 0.3508 l 0.6995 0.3507 l 0.7005 0.3506 l 0.7015 0.3505 l 0.7025 0.3504 l 0.7035 0.3503 l 0.7045 0.3502 l 0.7055 0.3501 l 0.7065 0.3500 l 0.7075 0.3498 l 0.7085 0.3497 l 0.7095 0.3496 l 0.7105 0.3494 l 0.7115 0.3493 l 0.7125 0.3492 l 0.7135 0.3490 l 0.7145 0.3489 l 0.7155 0.3488 l 0.7165 0.3486 l 0.7175 0.3485 l 0.7185 0.3483 l 0.7195 0.3482 l 0.7205 0.3480 l 0.7215 0.3478 l 0.7225 0.3477 l 0.7235 0.3475 l 0.7245 0.3473 l 0.7255 0.3471 l 0.7265 0.3470 l 0.7275 0.3468 l 0.7285 0.3466 l 0.7295 0.3464 l 0.7305 0.3462 l 0.7315 0.3460 l 0.7325 0.3458 l 0.7335 0.3456 l 0.7345 0.3454 l 0.7355 0.3452 l 0.7365 0.3449 l 0.7375 0.3447 l 0.7385 0.3445 l 0.7395 0.3442 l 0.7405 0.3440 l 0.7415 0.3438 l 0.7425 0.3435 l 0.7435 0.3432 l 0.7445 0.3429 l 0.7455 0.3424 l 0.7465 0.3418 l 0.7475 0.3413 l 0.7485 0.3407 l 0.7495 0.3402 l 0.7505 0.3396 l 0.7515 0.3390 l 0.7525 0.3384 l 0.7535 0.3378 l 0.7545 0.3372 l 0.7555 0.3366 l 0.7565 0.3360 l 0.7575 0.3354 l 0.7585 0.3348 l 0.7595 0.3342 l 0.7605 0.3336 l 0.7615 0.3329 l 0.7625 0.3323 l 0.7635 0.3316 l 0.7645 0.3310 l 0.7655 0.3303 l 0.7665 0.3296 l 0.7675 0.3290 l 0.7685 0.3283 l 0.7695 0.3276 l 0.7705 0.3269 l 0.7715 0.3262 l 0.7725 0.3255 l 0.7735 0.3248 l 0.7745 0.3241 l 0.7756 0.3234 l 0.7766 0.3227 l 0.7776 0.3219 l 0.7786 0.3212 l 0.7796 0.3205 l 0.7806 0.3197 l 0.7816 0.3190 l 0.7826 0.3182 l 0.7836 0.3175 l 0.7846 0.3167 l 0.7856 0.3159 l 0.7866 0.3152 l 0.7876 0.3144 l 0.7886 0.3136 l 0.7896 0.3128 l 0.7906 0.3120 l 0.7916 0.3113 l 0.7926 0.3105 l 0.7936 0.3096 l 0.7946 0.3088 l 0.7956 0.3080 l 0.7966 0.3072 l 0.7976 0.3064 l 0.7986 0.3056 l 0.7996 0.3047 l 0.8006 0.3039 l 0.8016 0.3031 l 0.8026 0.3022 l 0.8036 0.3014 l 0.8046 0.3005 l 0.8056 0.2997 l 0.8066 0.2988 l 0.8076 0.2979 l 0.8086 0.2971 l 0.8096 0.2962 l 0.8106 0.2953 l 0.8116 0.2944 l 0.8126 0.2935 l 0.8136 0.2926 l 0.8146 0.2918 l 0.8156 0.2909 l 0.8166 0.2900 l 0.8176 0.2890 l 0.8186 0.2881 l 0.8196 0.2872 l 0.8206 0.2863 l 0.8216 0.2854 l 0.8226 0.2844 l 0.8236 0.2835 l 0.8246 0.2826 l 0.8256 0.2816 l 0.8266 0.2807 l 0.8276 0.2797 l 0.8286 0.2788 l 0.8296 0.2778 l 0.8306 0.2769 l 0.8316 0.2759 l 0.8326 0.2749 l 0.8336 0.2740 l 0.8346 0.2730 l 0.8356 0.2720 l 0.8366 0.2710 l 0.8376 0.2701 l 0.8386 0.2691 l 0.8396 0.2681 l 0.8406 0.2671 l 0.8416 0.2661 l 0.8426 0.2651 l 0.8436 0.2640 l 0.8446 0.2630 l 0.8456 0.2620 l 0.8466 0.2606 l 0.8476 0.2593 l 0.8486 0.2579 l 0.8496 0.2565 l 0.8506 0.2551 l 0.8516 0.2537 l 0.8526 0.2523 l 0.8536 0.2509 l 0.8546 0.2495 l 0.8556 0.2481 l 0.8566 0.2467 l 0.8576 0.2453 l 0.8586 0.2439 l 0.8596 0.2425 l 0.8606 0.2411 l 0.8616 0.2397 l 0.8626 0.2383 l 0.8636 0.2369 l 0.8646 0.2354 l 0.8656 0.2340 l 0.8666 0.2326 l 0.8676 0.2312 l 0.8686 0.2298 l 0.8696 0.2284 l 0.8706 0.2270 l 0.8716 0.2256 l 0.8726 0.2241 l 0.8736 0.2227 l 0.8746 0.2213 l 0.8756 0.2199 l 0.8766 0.2185 l 0.8776 0.2172 l 0.8786 0.2158 l 0.8796 0.2144 l 0.8806 0.2130 l 0.8816 0.2116 l 0.8826 0.2103 l 0.8836 0.2089 l 0.8846 0.2075 l 0.8856 0.2062 l 0.8866 0.2048 l 0.8876 0.2035 l 0.8886 0.2022 l 0.8896 0.2008 l 0.8906 0.1995 l 0.8916 0.1982 l 0.8926 0.1969 l 0.8936 0.1956 l 0.8946 0.1943 l 0.8956 0.1930 l 0.8966 0.1918 l 0.8976 0.1905 l 0.8986 0.1893 l 0.8996 0.1880 l 0.9006 0.1868 l 0.9016 0.1855 l 0.9026 0.1843 l 0.9036 0.1831 l 0.9046 0.1819 l 0.9056 0.1807 l 0.9066 0.1795 l 0.9076 0.1784 l 0.9086 0.1772 l 0.9096 0.1760 l 0.9106 0.1749 l 0.9116 0.1737 l 0.9126 0.1726 l 0.9136 0.1715 l 0.9146 0.1704 l 0.9156 0.1693 l 0.9166 0.1681 l 0.9176 0.1670 l 0.9186 0.1659 l 0.9196 0.1648 l 0.9206 0.1637 l 0.9216 0.1626 l 0.9226 0.1615 l 0.9236 0.1604 l 0.9246 0.1592 l 0.9256 0.1580 l 0.9266 0.1567 l 0.9276 0.1553 l 0.9286 0.1536 l 0.9295 0.1499 l s n 0.9476 0.1499 m 0.9477 0.1500 l 0.9477 0.1499 l s n 0.9670 0.1499 m 0.9676 0.1538 l 0.9686 0.1559 l 0.9696 0.1576 l 0.9706 0.1591 l 0.9716 0.1605 l 0.9726 0.1618 l 0.9736 0.1631 l 0.9746 0.1643 l 0.9756 0.1655 l 0.9766 0.1667 l 0.9776 0.1678 l 0.9786 0.1689 l 0.9796 0.1701 l 0.9806 0.1712 l 0.9816 0.1723 l 0.9826 0.1734 l 0.9836 0.1744 l 0.9846 0.1755 l 0.9856 0.1766 l 0.9866 0.1777 l 0.9876 0.1787 l 0.9886 0.1798 l 0.9896 0.1808 l 0.9906 0.1819 l 0.9916 0.1829 l 0.9926 0.1840 l 0.9936 0.1850 l 0.9946 0.1861 l 0.9956 0.1871 l 0.9966 0.1881 l 0.9976 0.1892 l 0.9986 0.1902 l 0.9996 0.1912 l 1.0006 0.1922 l 1.0016 0.1932 l 1.0026 0.1943 l 1.0036 0.1953 l 1.0046 0.1963 l 1.0056 0.1973 l 1.0066 0.1983 l 1.0076 0.1993 l 1.0086 0.2003 l 1.0096 0.2013 l 1.0106 0.2023 l 1.0116 0.2032 l 1.0126 0.2042 l 1.0136 0.2052 l 1.0146 0.2062 l 1.0156 0.2072 l 1.0166 0.2081 l 1.0176 0.2091 l 1.0186 0.2100 l 1.0196 0.2110 l 1.0206 0.2120 l 1.0216 0.2129 l 1.0226 0.2139 l 1.0236 0.2148 l 1.0246 0.2157 l 1.0256 0.2167 l 1.0266 0.2176 l 1.0276 0.2185 l 1.0286 0.2194 l 1.0296 0.2204 l 1.0306 0.2213 l 1.0316 0.2222 l 1.0326 0.2231 l 1.0336 0.2240 l 1.0346 0.2249 l 1.0355 0.2258 l 1.0365 0.2267 l 1.0375 0.2275 l 1.0385 0.2284 l 1.0395 0.2293 l 1.0405 0.2301 l 1.0415 0.2310 l 1.0425 0.2319 l 1.0435 0.2327 l 1.0445 0.2336 l 1.0455 0.2344 l 1.0465 0.2353 l 1.0475 0.2361 l 1.0485 0.2369 l 1.0495 0.2377 l 1.0505 0.2386 l 1.0515 0.2394 l 1.0525 0.2402 l 1.0535 0.2410 l 1.0545 0.2418 l 1.0555 0.2426 l 1.0565 0.2434 l 1.0575 0.2442 l 1.0585 0.2449 l 1.0595 0.2457 l 1.0605 0.2465 l 1.0615 0.2472 l 1.0625 0.2480 l 1.0635 0.2488 l 1.0645 0.2495 l 1.0655 0.2502 l 1.0665 0.2510 l 1.0675 0.2517 l 1.0685 0.2525 l 1.0695 0.2532 l 1.0705 0.2539 l 1.0715 0.2546 l 1.0725 0.2553 l 1.0735 0.2560 l 1.0745 0.2567 l 1.0755 0.2574 l 1.0765 0.2581 l 1.0775 0.2588 l 1.0785 0.2595 l 1.0795 0.2602 l 1.0805 0.2608 l 1.0815 0.2615 l 1.0825 0.2622 l 1.0835 0.2628 l 1.0845 0.2635 l 1.0855 0.2641 l 1.0865 0.2647 l 1.0875 0.2654 l 1.0885 0.2660 l 1.0895 0.2666 l 1.0905 0.2673 l 1.0915 0.2679 l 1.0925 0.2685 l 1.0935 0.2691 l 1.0945 0.2697 l 1.0955 0.2703 l 1.0965 0.2709 l 1.0975 0.2715 l 1.0985 0.2721 l 1.0995 0.2726 l 1.1005 0.2732 l 1.1015 0.2738 l 1.1025 0.2743 l 1.1035 0.2749 l 1.1045 0.2754 l 1.1055 0.2760 l 1.1065 0.2765 l 1.1075 0.2770 l 1.1085 0.2776 l 1.1095 0.2781 l 1.1105 0.2786 l 1.1115 0.2791 l 1.1125 0.2796 l 1.1135 0.2801 l 1.1144 0.2806 l 1.1154 0.2810 l 1.1164 0.2815 l 1.1174 0.2820 l 1.1184 0.2824 l 1.1194 0.2828 l 1.1204 0.2833 l 1.1214 0.2837 l 1.1224 0.2841 l 1.1234 0.2845 l 1.1244 0.2849 l 1.1254 0.2853 l 1.1264 0.2857 l 1.1274 0.2860 l 1.1284 0.2864 l 1.1294 0.2867 l 1.1304 0.2870 l 1.1314 0.2873 l 1.1324 0.2876 l 1.1334 0.2879 l 1.1344 0.2882 l 1.1354 0.2884 l 1.1364 0.2886 l 1.1374 0.2889 l 1.1384 0.2891 l 1.1394 0.2892 l 1.1404 0.2894 l 1.1414 0.2895 l 1.1424 0.2897 l 1.1434 0.2898 l 1.1444 0.2899 l 1.1454 0.2899 l 1.1464 0.2900 l 1.1474 0.2900 l 1.1484 0.2900 l s n 0.1500 0.1500 m 0.1510 0.1509 l 0.1520 0.1518 l 0.1530 0.1527 l 0.1540 0.1536 l 0.1550 0.1545 l 0.1560 0.1554 l 0.1570 0.1564 l 0.1580 0.1573 l 0.1590 0.1582 l 0.1600 0.1591 l 0.1610 0.1600 l 0.1620 0.1609 l 0.1630 0.1618 l 0.1640 0.1627 l 0.1650 0.1636 l 0.1660 0.1645 l 0.1670 0.1654 l 0.1680 0.1664 l 0.1690 0.1673 l 0.1700 0.1682 l 0.1710 0.1691 l 0.1720 0.1700 l 0.1730 0.1709 l 0.1740 0.1718 l 0.1750 0.1727 l 0.1760 0.1737 l 0.1770 0.1746 l 0.1780 0.1755 l 0.1790 0.1764 l 0.1800 0.1773 l 0.1810 0.1782 l 0.1820 0.1791 l 0.1830 0.1801 l 0.1840 0.1810 l 0.1850 0.1819 l 0.1860 0.1828 l 0.1870 0.1837 l 0.1880 0.1846 l 0.1890 0.1856 l 0.1900 0.1865 l 0.1910 0.1874 l 0.1920 0.1883 l 0.1930 0.1896 l 0.1940 0.1909 l 0.1949 0.1922 l 0.1959 0.1935 l 0.1969 0.1949 l 0.1979 0.1962 l 0.1989 0.1976 l 0.1999 0.1989 l 0.2009 0.2003 l 0.2019 0.2017 l 0.2029 0.2032 l 0.2039 0.2046 l 0.2049 0.2061 l 0.2059 0.2075 l 0.2069 0.2090 l 0.2079 0.2105 l 0.2089 0.2120 l 0.2099 0.2135 l 0.2109 0.2150 l 0.2119 0.2165 l 0.2129 0.2180 l 0.2139 0.2195 l 0.2149 0.2211 l 0.2159 0.2226 l 0.2169 0.2242 l 0.2179 0.2258 l 0.2189 0.2273 l 0.2199 0.2289 l 0.2209 0.2305 l 0.2219 0.2321 l 0.2229 0.2336 l 0.2239 0.2352 l 0.2249 0.2368 l 0.2259 0.2384 l 0.2269 0.2400 l 0.2279 0.2416 l 0.2289 0.2432 l 0.2299 0.2447 l 0.2309 0.2463 l 0.2319 0.2479 l 0.2329 0.2495 l 0.2339 0.2511 l 0.2349 0.2526 l 0.2359 0.2542 l 0.2369 0.2558 l 0.2379 0.2573 l 0.2389 0.2589 l 0.2399 0.2604 l 0.2409 0.2619 l 0.2419 0.2635 l 0.2429 0.2650 l 0.2439 0.2665 l 0.2449 0.2680 l 0.2459 0.2695 l 0.2469 0.2709 l 0.2479 0.2724 l 0.2489 0.2738 l 0.2499 0.2753 l 0.2509 0.2767 l 0.2519 0.2781 l 0.2529 0.2795 l 0.2539 0.2809 l 0.2549 0.2822 l 0.2559 0.2836 l 0.2569 0.2849 l 0.2579 0.2862 l 0.2589 0.2875 l 0.2599 0.2888 l 0.2609 0.2901 l 0.2619 0.2913 l 0.2629 0.2926 l 0.2639 0.2938 l 0.2649 0.2950 l 0.2659 0.2961 l 0.2669 0.2973 l 0.2679 0.2984 l 0.2689 0.2995 l 0.2699 0.3006 l 0.2709 0.3017 l 0.2719 0.3028 l 0.2729 0.3038 l 0.2739 0.3048 l 0.2749 0.3058 l 0.2759 0.3068 l 0.2769 0.3078 l 0.2779 0.3087 l 0.2789 0.3096 l 0.2799 0.3106 l 0.2809 0.3114 l 0.2819 0.3123 l 0.2829 0.3132 l 0.2838 0.3140 l 0.2848 0.3148 l 0.2858 0.3156 l 0.2868 0.3164 l 0.2878 0.3172 l 0.2888 0.3179 l 0.2898 0.3187 l 0.2908 0.3194 l 0.2918 0.3201 l 0.2928 0.3208 l 0.2938 0.3214 l 0.2948 0.3221 l 0.2958 0.3227 l 0.2968 0.3234 l 0.2978 0.3240 l 0.2988 0.3246 l 0.2998 0.3252 l 0.3008 0.3258 l 0.3018 0.3263 l 0.3028 0.3269 l 0.3038 0.3274 l 0.3048 0.3279 l 0.3058 0.3285 l 0.3068 0.3290 l 0.3078 0.3295 l 0.3088 0.3299 l 0.3098 0.3304 l 0.3108 0.3309 l 0.3118 0.3313 l 0.3128 0.3318 l 0.3138 0.3322 l 0.3148 0.3327 l 0.3158 0.3331 l 0.3168 0.3335 l 0.3178 0.3339 l 0.3188 0.3343 l 0.3198 0.3347 l 0.3208 0.3351 l 0.3218 0.3354 l 0.3228 0.3358 l 0.3238 0.3361 l 0.3248 0.3365 l 0.3258 0.3368 l 0.3268 0.3372 l 0.3278 0.3375 l 0.3288 0.3378 l 0.3298 0.3382 l 0.3308 0.3385 l 0.3318 0.3388 l 0.3328 0.3391 l 0.3338 0.3394 l 0.3348 0.3397 l 0.3358 0.3400 l 0.3368 0.3402 l 0.3378 0.3405 l 0.3388 0.3408 l 0.3398 0.3410 l 0.3408 0.3413 l 0.3418 0.3416 l 0.3428 0.3418 l 0.3438 0.3421 l 0.3448 0.3423 l 0.3458 0.3425 l 0.3468 0.3428 l 0.3478 0.3430 l 0.3488 0.3432 l 0.3498 0.3434 l 0.3508 0.3437 l 0.3518 0.3439 l 0.3528 0.3441 l 0.3538 0.3443 l 0.3548 0.3445 l 0.3558 0.3447 l 0.3568 0.3449 l 0.3578 0.3451 l 0.3588 0.3453 l 0.3598 0.3455 l 0.3608 0.3456 l 0.3618 0.3458 l 0.3628 0.3460 l 0.3638 0.3462 l 0.3648 0.3463 l 0.3658 0.3465 l 0.3668 0.3466 l 0.3678 0.3468 l 0.3688 0.3470 l 0.3698 0.3471 l 0.3708 0.3473 l 0.3717 0.3474 l 0.3727 0.3475 l 0.3737 0.3477 l 0.3747 0.3478 l 0.3757 0.3479 l 0.3767 0.3481 l 0.3777 0.3482 l 0.3787 0.3483 l 0.3797 0.3484 l 0.3807 0.3485 l 0.3817 0.3487 l 0.3827 0.3488 l 0.3837 0.3489 l 0.3847 0.3490 l 0.3857 0.3492 l 0.3867 0.3494 l 0.3877 0.3496 l 0.3887 0.3498 l 0.3897 0.3500 l 0.3907 0.3502 l 0.3917 0.3504 l 0.3927 0.3506 l 0.3937 0.3508 l 0.3947 0.3509 l 0.3957 0.3511 l 0.3967 0.3512 l 0.3977 0.3514 l 0.3987 0.3515 l 0.3997 0.3516 l 0.4007 0.3517 l 0.4017 0.3518 l 0.4027 0.3519 l 0.4037 0.3520 l 0.4047 0.3521 l 0.4057 0.3522 l 0.4067 0.3522 l 0.4077 0.3523 l 0.4087 0.3523 l 0.4097 0.3524 l 0.4107 0.3524 l 0.4117 0.3524 l 0.4127 0.3524 l 0.4137 0.3525 l 0.4147 0.3525 l 0.4157 0.3524 l 0.4167 0.3524 l 0.4177 0.3524 l 0.4187 0.3524 l 0.4197 0.3524 l 0.4207 0.3524 l 0.4217 0.3524 l 0.4227 0.3524 l 0.4237 0.3524 l 0.4247 0.3524 l 0.4257 0.3524 l 0.4267 0.3524 l 0.4277 0.3524 l 0.4287 0.3524 l 0.4297 0.3524 l 0.4307 0.3524 l 0.4317 0.3524 l 0.4327 0.3524 l 0.4337 0.3524 l 0.4347 0.3524 l 0.4357 0.3524 l 0.4367 0.3524 l 0.4377 0.3524 l 0.4387 0.3524 l 0.4397 0.3524 l 0.4407 0.3525 l 0.4417 0.3525 l 0.4427 0.3525 l 0.4437 0.3525 l 0.4447 0.3525 l 0.4457 0.3526 l 0.4467 0.3526 l 0.4477 0.3526 l 0.4487 0.3526 l 0.4497 0.3527 l 0.4507 0.3527 l 0.4517 0.3527 l 0.4527 0.3527 l 0.4537 0.3528 l 0.4547 0.3528 l 0.4556 0.3528 l 0.4566 0.3529 l 0.4576 0.3529 l 0.4586 0.3529 l 0.4596 0.3530 l 0.4606 0.3530 l 0.4616 0.3531 l 0.4626 0.3531 l 0.4636 0.3531 l 0.4646 0.3532 l 0.4656 0.3532 l 0.4666 0.3533 l 0.4676 0.3533 l 0.4686 0.3534 l 0.4696 0.3534 l 0.4706 0.3535 l 0.4716 0.3535 l 0.4726 0.3536 l 0.4736 0.3536 l 0.4746 0.3537 l 0.4756 0.3537 l 0.4766 0.3538 l 0.4776 0.3539 l 0.4786 0.3539 l 0.4796 0.3540 l 0.4806 0.3540 l 0.4816 0.3541 l 0.4826 0.3542 l 0.4836 0.3542 l 0.4846 0.3543 l 0.4856 0.3543 l 0.4866 0.3544 l 0.4876 0.3545 l 0.4886 0.3545 l 0.4896 0.3546 l 0.4906 0.3547 l 0.4916 0.3547 l 0.4926 0.3548 l 0.4936 0.3549 l 0.4946 0.3549 l 0.4956 0.3550 l 0.4966 0.3551 l 0.4976 0.3552 l 0.4986 0.3552 l 0.4996 0.3553 l 0.5006 0.3554 l 0.5016 0.3554 l 0.5026 0.3555 l 0.5036 0.3556 l 0.5046 0.3556 l 0.5056 0.3557 l 0.5066 0.3558 l 0.5076 0.3559 l 0.5086 0.3559 l 0.5096 0.3560 l 0.5106 0.3561 l 0.5116 0.3561 l 0.5126 0.3562 l 0.5136 0.3563 l 0.5146 0.3564 l 0.5156 0.3564 l 0.5166 0.3565 l 0.5176 0.3566 l 0.5186 0.3566 l 0.5196 0.3567 l 0.5206 0.3568 l 0.5216 0.3568 l 0.5226 0.3569 l 0.5236 0.3570 l 0.5246 0.3570 l 0.5256 0.3571 l 0.5266 0.3572 l 0.5276 0.3572 l 0.5286 0.3573 l 0.5296 0.3574 l 0.5306 0.3574 l 0.5316 0.3575 l 0.5326 0.3576 l 0.5336 0.3576 l 0.5345 0.3577 l 0.5355 0.3578 l 0.5365 0.3578 l 0.5375 0.3579 l 0.5385 0.3579 l 0.5395 0.3580 l 0.5405 0.3581 l 0.5415 0.3581 l 0.5425 0.3582 l 0.5435 0.3582 l 0.5445 0.3583 l 0.5455 0.3584 l 0.5465 0.3584 l 0.5475 0.3585 l 0.5485 0.3585 l 0.5495 0.3586 l 0.5505 0.3586 l 0.5515 0.3587 l 0.5525 0.3587 l 0.5535 0.3588 l 0.5545 0.3588 l 0.5555 0.3589 l 0.5565 0.3589 l 0.5575 0.3590 l 0.5585 0.3590 l 0.5595 0.3591 l 0.5605 0.3591 l 0.5615 0.3592 l 0.5625 0.3592 l 0.5635 0.3593 l 0.5645 0.3593 l 0.5655 0.3593 l 0.5665 0.3594 l 0.5675 0.3594 l 0.5685 0.3595 l 0.5695 0.3595 l 0.5705 0.3595 l 0.5715 0.3596 l 0.5725 0.3596 l 0.5735 0.3596 l 0.5745 0.3597 l 0.5755 0.3597 l 0.5765 0.3598 l 0.5775 0.3598 l 0.5785 0.3598 l 0.5795 0.3598 l 0.5805 0.3599 l 0.5815 0.3599 l 0.5825 0.3599 l 0.5835 0.3600 l 0.5845 0.3600 l 0.5855 0.3600 l 0.5865 0.3600 l 0.5875 0.3601 l 0.5885 0.3601 l 0.5895 0.3601 l 0.5905 0.3601 l 0.5915 0.3602 l 0.5925 0.3602 l 0.5935 0.3602 l 0.5945 0.3602 l 0.5955 0.3602 l 0.5965 0.3603 l 0.5975 0.3603 l 0.5985 0.3603 l 0.5995 0.3603 l 0.6005 0.3603 l 0.6015 0.3603 l 0.6025 0.3603 l 0.6035 0.3604 l 0.6045 0.3604 l 0.6055 0.3604 l 0.6065 0.3604 l 0.6075 0.3604 l 0.6085 0.3604 l 0.6095 0.3604 l 0.6105 0.3604 l 0.6115 0.3604 l 0.6125 0.3604 l 0.6134 0.3604 l 0.6144 0.3604 l 0.6154 0.3604 l 0.6164 0.3604 l 0.6174 0.3604 l 0.6184 0.3604 l 0.6194 0.3604 l 0.6205 0.3604 l 0.6215 0.3604 l 0.6225 0.3604 l 0.6235 0.3604 l 0.6245 0.3604 l 0.6255 0.3605 l 0.6265 0.3605 l 0.6275 0.3605 l 0.6285 0.3605 l 0.6295 0.3605 l 0.6305 0.3605 l 0.6315 0.3605 l 0.6325 0.3605 l 0.6335 0.3605 l 0.6345 0.3605 l 0.6355 0.3605 l 0.6365 0.3606 l 0.6375 0.3606 l 0.6385 0.3606 l 0.6395 0.3606 l 0.6405 0.3606 l 0.6415 0.3606 l 0.6425 0.3606 l 0.6435 0.3606 l 0.6445 0.3607 l 0.6455 0.3607 l 0.6465 0.3607 l 0.6475 0.3607 l 0.6485 0.3607 l 0.6495 0.3607 l 0.6505 0.3607 l 0.6515 0.3607 l 0.6525 0.3608 l 0.6535 0.3608 l 0.6545 0.3608 l 0.6555 0.3608 l 0.6565 0.3608 l 0.6575 0.3608 l 0.6585 0.3608 l 0.6595 0.3608 l 0.6605 0.3608 l 0.6615 0.3608 l 0.6625 0.3608 l 0.6635 0.3608 l 0.6645 0.3608 l 0.6655 0.3608 l 0.6665 0.3608 l 0.6675 0.3608 l 0.6685 0.3608 l 0.6695 0.3608 l 0.6705 0.3607 l 0.6715 0.3607 l 0.6725 0.3607 l 0.6735 0.3607 l 0.6745 0.3607 l 0.6755 0.3606 l 0.6765 0.3606 l 0.6775 0.3606 l 0.6785 0.3605 l 0.6795 0.3605 l 0.6805 0.3604 l 0.6815 0.3604 l 0.6825 0.3603 l 0.6835 0.3603 l 0.6845 0.3602 l 0.6855 0.3601 l 0.6865 0.3600 l 0.6875 0.3600 l 0.6885 0.3599 l 0.6895 0.3598 l 0.6905 0.3597 l 0.6915 0.3596 l 0.6925 0.3595 l 0.6935 0.3594 l 0.6945 0.3592 l 0.6955 0.3591 l 0.6965 0.3590 l 0.6975 0.3588 l 0.6985 0.3587 l 0.6995 0.3585 l 0.7005 0.3584 l 0.7015 0.3582 l 0.7025 0.3580 l 0.7035 0.3578 l 0.7045 0.3576 l 0.7055 0.3574 l 0.7065 0.3572 l 0.7075 0.3570 l 0.7085 0.3568 l 0.7095 0.3565 l 0.7105 0.3563 l 0.7115 0.3560 l 0.7125 0.3558 l 0.7135 0.3555 l 0.7145 0.3552 l 0.7155 0.3549 l 0.7165 0.3546 l 0.7175 0.3543 l 0.7185 0.3540 l 0.7195 0.3537 l 0.7205 0.3534 l 0.7215 0.3530 l 0.7225 0.3527 l 0.7235 0.3523 l 0.7245 0.3519 l 0.7255 0.3516 l 0.7265 0.3512 l 0.7275 0.3508 l 0.7285 0.3504 l 0.7295 0.3500 l 0.7305 0.3496 l 0.7315 0.3491 l 0.7325 0.3487 l 0.7335 0.3483 l 0.7345 0.3478 l 0.7355 0.3474 l 0.7365 0.3469 l 0.7375 0.3464 l 0.7385 0.3459 l 0.7395 0.3454 l 0.7405 0.3449 l 0.7415 0.3444 l 0.7425 0.3439 l 0.7435 0.3434 l 0.7445 0.3430 l 0.7455 0.3427 l 0.7465 0.3424 l 0.7475 0.3422 l 0.7485 0.3419 l 0.7495 0.3416 l 0.7505 0.3413 l 0.7515 0.3410 l 0.7525 0.3406 l 0.7535 0.3403 l 0.7545 0.3400 l 0.7555 0.3397 l 0.7565 0.3393 l 0.7575 0.3390 l 0.7585 0.3386 l 0.7595 0.3382 l 0.7605 0.3379 l 0.7615 0.3375 l 0.7625 0.3371 l 0.7635 0.3367 l 0.7645 0.3363 l 0.7655 0.3358 l 0.7665 0.3354 l 0.7675 0.3350 l 0.7685 0.3345 l 0.7695 0.3341 l 0.7705 0.3336 l 0.7715 0.3331 l 0.7725 0.3326 l 0.7735 0.3321 l 0.7745 0.3316 l 0.7756 0.3311 l 0.7766 0.3305 l 0.7776 0.3300 l 0.7786 0.3294 l 0.7796 0.3289 l 0.7806 0.3283 l 0.7816 0.3277 l 0.7826 0.3271 l 0.7836 0.3264 l 0.7846 0.3258 l 0.7856 0.3252 l 0.7866 0.3245 l 0.7876 0.3238 l 0.7886 0.3231 l 0.7896 0.3224 l 0.7906 0.3217 l 0.7916 0.3210 l 0.7926 0.3202 l 0.7936 0.3195 l 0.7946 0.3187 l 0.7956 0.3179 l 0.7966 0.3171 l 0.7976 0.3163 l 0.7986 0.3155 l 0.7996 0.3146 l 0.8006 0.3138 l 0.8016 0.3129 l 0.8026 0.3120 l 0.8036 0.3111 l 0.8046 0.3102 l 0.8056 0.3092 l 0.8066 0.3083 l 0.8076 0.3073 l 0.8086 0.3064 l 0.8096 0.3054 l 0.8106 0.3044 l 0.8116 0.3034 l 0.8126 0.3023 l 0.8136 0.3013 l 0.8146 0.3002 l 0.8156 0.2992 l 0.8166 0.2981 l 0.8176 0.2970 l 0.8186 0.2959 l 0.8196 0.2948 l 0.8206 0.2936 l 0.8216 0.2925 l 0.8226 0.2913 l 0.8236 0.2902 l 0.8246 0.2890 l 0.8256 0.2878 l 0.8266 0.2866 l 0.8276 0.2854 l 0.8286 0.2841 l 0.8296 0.2829 l 0.8306 0.2817 l 0.8316 0.2804 l 0.8326 0.2791 l 0.8336 0.2779 l 0.8346 0.2766 l 0.8356 0.2753 l 0.8366 0.2740 l 0.8376 0.2727 l 0.8386 0.2714 l 0.8396 0.2701 l 0.8406 0.2687 l 0.8416 0.2674 l 0.8426 0.2661 l 0.8436 0.2647 l 0.8446 0.2634 l 0.8456 0.2620 l 0.8466 0.2610 l 0.8476 0.2600 l 0.8486 0.2589 l 0.8496 0.2579 l 0.8506 0.2569 l 0.8516 0.2558 l 0.8526 0.2548 l 0.8536 0.2537 l 0.8546 0.2527 l 0.8556 0.2516 l 0.8566 0.2506 l 0.8576 0.2495 l 0.8586 0.2485 l 0.8596 0.2474 l 0.8606 0.2463 l 0.8616 0.2453 l 0.8626 0.2442 l 0.8636 0.2431 l 0.8646 0.2420 l 0.8656 0.2409 l 0.8666 0.2398 l 0.8676 0.2387 l 0.8686 0.2376 l 0.8696 0.2365 l 0.8706 0.2354 l 0.8716 0.2343 l 0.8726 0.2332 l 0.8736 0.2321 l 0.8746 0.2310 l 0.8756 0.2299 l 0.8766 0.2288 l 0.8776 0.2276 l 0.8786 0.2265 l 0.8796 0.2254 l 0.8806 0.2243 l 0.8816 0.2231 l 0.8826 0.2220 l 0.8836 0.2208 l 0.8846 0.2197 l 0.8856 0.2186 l 0.8866 0.2174 l 0.8876 0.2163 l 0.8886 0.2151 l 0.8896 0.2140 l 0.8906 0.2128 l 0.8916 0.2116 l 0.8926 0.2105 l 0.8936 0.2093 l 0.8946 0.2082 l 0.8956 0.2070 l 0.8966 0.2058 l 0.8976 0.2046 l 0.8986 0.2035 l 0.8996 0.2023 l 0.9006 0.2011 l 0.9016 0.1999 l 0.9026 0.1988 l 0.9036 0.1976 l 0.9046 0.1964 l 0.9056 0.1952 l 0.9066 0.1940 l 0.9076 0.1928 l 0.9086 0.1916 l 0.9096 0.1904 l 0.9106 0.1893 l 0.9116 0.1881 l 0.9126 0.1869 l 0.9136 0.1857 l 0.9146 0.1845 l 0.9156 0.1833 l 0.9166 0.1821 l 0.9176 0.1808 l 0.9186 0.1796 l 0.9196 0.1784 l 0.9206 0.1772 l 0.9216 0.1760 l 0.9226 0.1748 l 0.9236 0.1736 l 0.9246 0.1723 l 0.9256 0.1711 l 0.9266 0.1699 l 0.9276 0.1687 l 0.9286 0.1674 l 0.9296 0.1662 l 0.9306 0.1649 l 0.9317 0.1637 l 0.9327 0.1624 l 0.9337 0.1611 l 0.9347 0.1598 l 0.9357 0.1584 l 0.9367 0.1570 l 0.9377 0.1555 l 0.9387 0.1538 l 0.9397 0.1511 l 0.9400 0.1499 l s n 0.9476 0.1499 m 0.9477 0.1500 l 0.9477 0.1499 l s n 0.9670 0.1499 m 0.9676 0.1538 l 0.9686 0.1559 l 0.9696 0.1576 l 0.9706 0.1591 l 0.9716 0.1605 l 0.9726 0.1618 l 0.9736 0.1631 l 0.9746 0.1643 l 0.9756 0.1655 l 0.9766 0.1667 l 0.9776 0.1678 l 0.9786 0.1689 l 0.9796 0.1701 l 0.9806 0.1712 l 0.9816 0.1723 l 0.9826 0.1734 l 0.9836 0.1744 l 0.9846 0.1755 l 0.9856 0.1766 l 0.9866 0.1777 l 0.9876 0.1787 l 0.9886 0.1798 l 0.9896 0.1808 l 0.9906 0.1819 l 0.9916 0.1829 l 0.9926 0.1840 l 0.9936 0.1850 l 0.9946 0.1861 l 0.9956 0.1871 l 0.9966 0.1881 l 0.9976 0.1892 l 0.9986 0.1902 l 0.9996 0.1912 l 1.0006 0.1922 l 1.0016 0.1932 l 1.0026 0.1943 l 1.0036 0.1953 l 1.0046 0.1963 l 1.0056 0.1973 l 1.0066 0.1983 l 1.0076 0.1993 l 1.0086 0.2003 l 1.0096 0.2013 l 1.0106 0.2023 l 1.0116 0.2032 l 1.0126 0.2042 l 1.0136 0.2052 l 1.0146 0.2062 l 1.0156 0.2072 l 1.0166 0.2081 l 1.0176 0.2091 l 1.0186 0.2100 l 1.0196 0.2110 l 1.0206 0.2120 l 1.0216 0.2129 l 1.0226 0.2139 l 1.0236 0.2148 l 1.0246 0.2157 l 1.0256 0.2167 l 1.0266 0.2176 l 1.0276 0.2185 l 1.0286 0.2194 l 1.0296 0.2204 l 1.0306 0.2213 l 1.0316 0.2222 l 1.0326 0.2231 l 1.0336 0.2240 l 1.0346 0.2249 l 1.0355 0.2258 l 1.0365 0.2267 l 1.0375 0.2275 l 1.0385 0.2284 l 1.0395 0.2293 l 1.0405 0.2301 l 1.0415 0.2310 l 1.0425 0.2319 l 1.0435 0.2327 l 1.0445 0.2336 l 1.0455 0.2344 l 1.0465 0.2353 l 1.0475 0.2361 l 1.0485 0.2369 l 1.0495 0.2377 l 1.0505 0.2386 l 1.0515 0.2394 l 1.0525 0.2402 l 1.0535 0.2410 l 1.0545 0.2418 l 1.0555 0.2426 l 1.0565 0.2434 l 1.0575 0.2442 l 1.0585 0.2449 l 1.0595 0.2457 l 1.0605 0.2465 l 1.0615 0.2472 l 1.0625 0.2480 l 1.0635 0.2488 l 1.0645 0.2495 l 1.0655 0.2502 l 1.0665 0.2510 l 1.0675 0.2517 l 1.0685 0.2525 l 1.0695 0.2532 l 1.0705 0.2539 l 1.0715 0.2546 l 1.0725 0.2553 l 1.0735 0.2560 l 1.0745 0.2567 l 1.0755 0.2574 l 1.0765 0.2581 l 1.0775 0.2588 l 1.0785 0.2595 l 1.0795 0.2602 l 1.0805 0.2608 l 1.0815 0.2615 l 1.0825 0.2622 l 1.0835 0.2628 l 1.0845 0.2635 l 1.0855 0.2641 l 1.0865 0.2647 l 1.0875 0.2654 l 1.0885 0.2660 l 1.0895 0.2666 l 1.0905 0.2673 l 1.0915 0.2679 l 1.0925 0.2685 l 1.0935 0.2691 l 1.0945 0.2697 l 1.0955 0.2703 l 1.0965 0.2709 l 1.0975 0.2715 l 1.0985 0.2721 l 1.0995 0.2726 l 1.1005 0.2732 l 1.1015 0.2738 l 1.1025 0.2743 l 1.1035 0.2749 l 1.1045 0.2754 l 1.1055 0.2760 l 1.1065 0.2765 l 1.1075 0.2770 l 1.1085 0.2776 l 1.1095 0.2781 l 1.1105 0.2786 l 1.1115 0.2791 l 1.1125 0.2796 l 1.1135 0.2801 l 1.1144 0.2806 l 1.1154 0.2810 l 1.1164 0.2815 l 1.1174 0.2820 l 1.1184 0.2824 l 1.1194 0.2828 l 1.1204 0.2833 l 1.1214 0.2837 l 1.1224 0.2841 l 1.1234 0.2845 l 1.1244 0.2849 l 1.1254 0.2853 l 1.1264 0.2857 l 1.1274 0.2860 l 1.1284 0.2864 l 1.1294 0.2867 l 1.1304 0.2870 l 1.1314 0.2873 l 1.1324 0.2876 l 1.1334 0.2879 l 1.1344 0.2882 l 1.1354 0.2884 l 1.1364 0.2886 l 1.1374 0.2889 l 1.1384 0.2891 l 1.1394 0.2892 l 1.1404 0.2894 l 1.1414 0.2895 l 1.1424 0.2897 l 1.1434 0.2898 l 1.1444 0.2899 l 1.1454 0.2899 l 1.1464 0.2900 l 1.1474 0.2900 l 1.1484 0.2900 l s n 0.1500 0.1500 m 0.1510 0.1520 l 0.1520 0.1539 l 0.1530 0.1559 l 0.1540 0.1578 l 0.1550 0.1598 l 0.1560 0.1618 l 0.1570 0.1637 l 0.1580 0.1657 l 0.1590 0.1677 l 0.1600 0.1696 l 0.1610 0.1716 l 0.1620 0.1736 l 0.1630 0.1755 l 0.1640 0.1775 l 0.1650 0.1795 l 0.1660 0.1815 l 0.1670 0.1835 l 0.1680 0.1854 l 0.1690 0.1874 l 0.1700 0.1894 l 0.1710 0.1914 l 0.1720 0.1934 l 0.1730 0.1954 l 0.1740 0.1974 l 0.1750 0.1994 l 0.1760 0.2014 l 0.1770 0.2034 l 0.1780 0.2055 l 0.1790 0.2075 l 0.1800 0.2095 l 0.1810 0.2115 l 0.1820 0.2135 l 0.1830 0.2155 l 0.1840 0.2176 l 0.1850 0.2196 l 0.1860 0.2216 l 0.1870 0.2236 l 0.1880 0.2257 l 0.1890 0.2277 l 0.1900 0.2297 l 0.1910 0.2318 l 0.1920 0.2338 l 0.1930 0.2358 l 0.1940 0.2378 l 0.1949 0.2398 l 0.1959 0.2419 l 0.1969 0.2439 l 0.1979 0.2459 l 0.1989 0.2479 l 0.1999 0.2499 l 0.2009 0.2519 l 0.2019 0.2539 l 0.2029 0.2559 l 0.2039 0.2579 l 0.2049 0.2599 l 0.2059 0.2619 l 0.2069 0.2638 l 0.2079 0.2658 l 0.2089 0.2678 l 0.2099 0.2697 l 0.2109 0.2716 l 0.2119 0.2736 l 0.2129 0.2755 l 0.2139 0.2774 l 0.2149 0.2793 l 0.2159 0.2812 l 0.2169 0.2831 l 0.2179 0.2849 l 0.2189 0.2868 l 0.2199 0.2886 l 0.2209 0.2904 l 0.2219 0.2922 l 0.2229 0.2940 l 0.2239 0.2958 l 0.2249 0.2976 l 0.2259 0.2993 l 0.2269 0.3011 l 0.2279 0.3028 l 0.2289 0.3045 l 0.2299 0.3061 l 0.2309 0.3078 l 0.2319 0.3094 l 0.2329 0.3110 l 0.2339 0.3126 l 0.2349 0.3142 l 0.2359 0.3158 l 0.2369 0.3173 l 0.2379 0.3188 l 0.2389 0.3203 l 0.2399 0.3218 l 0.2409 0.3233 l 0.2419 0.3247 l 0.2429 0.3261 l 0.2439 0.3275 l 0.2449 0.3289 l 0.2459 0.3302 l 0.2469 0.3315 l 0.2479 0.3328 l 0.2489 0.3341 l 0.2499 0.3354 l 0.2509 0.3366 l 0.2519 0.3378 l 0.2529 0.3390 l 0.2539 0.3402 l 0.2549 0.3413 l 0.2559 0.3425 l 0.2569 0.3436 l 0.2579 0.3447 l 0.2589 0.3457 l 0.2599 0.3468 l 0.2609 0.3478 l 0.2619 0.3488 l 0.2629 0.3498 l 0.2639 0.3508 l 0.2649 0.3518 l 0.2659 0.3527 l 0.2669 0.3536 l 0.2679 0.3545 l 0.2689 0.3554 l 0.2699 0.3563 l 0.2709 0.3571 l 0.2719 0.3580 l 0.2729 0.3588 l 0.2739 0.3596 l 0.2749 0.3604 l 0.2759 0.3612 l 0.2769 0.3619 l 0.2779 0.3627 l 0.2789 0.3634 l 0.2799 0.3641 l 0.2809 0.3648 l 0.2819 0.3655 l 0.2829 0.3662 l 0.2838 0.3669 l 0.2848 0.3675 l 0.2858 0.3682 l 0.2868 0.3688 l 0.2878 0.3694 l 0.2888 0.3700 l 0.2898 0.3706 l 0.2908 0.3712 l 0.2918 0.3718 l 0.2928 0.3724 l 0.2938 0.3729 l 0.2948 0.3735 l 0.2958 0.3740 l 0.2968 0.3745 l 0.2978 0.3751 l 0.2988 0.3756 l 0.2998 0.3761 l 0.3008 0.3766 l 0.3018 0.3770 l 0.3028 0.3775 l 0.3038 0.3780 l 0.3048 0.3785 l 0.3058 0.3789 l 0.3068 0.3793 l 0.3078 0.3798 l 0.3088 0.3802 l 0.3098 0.3806 l 0.3108 0.3811 l 0.3118 0.3815 l 0.3128 0.3819 l 0.3138 0.3823 l 0.3148 0.3826 l 0.3158 0.3830 l 0.3168 0.3834 l 0.3178 0.3838 l 0.3188 0.3841 l 0.3198 0.3845 l 0.3208 0.3848 l 0.3218 0.3852 l 0.3228 0.3855 l 0.3238 0.3858 l 0.3248 0.3862 l 0.3258 0.3865 l 0.3268 0.3868 l 0.3278 0.3871 l 0.3288 0.3874 l 0.3298 0.3877 l 0.3308 0.3880 l 0.3318 0.3883 l 0.3328 0.3886 l 0.3338 0.3889 l 0.3348 0.3891 l 0.3358 0.3894 l 0.3368 0.3897 l 0.3378 0.3899 l 0.3388 0.3902 l 0.3398 0.3904 l 0.3408 0.3907 l 0.3418 0.3909 l 0.3428 0.3911 l 0.3438 0.3914 l 0.3448 0.3916 l 0.3458 0.3918 l 0.3468 0.3920 l 0.3478 0.3923 l 0.3488 0.3925 l 0.3498 0.3927 l 0.3508 0.3929 l 0.3518 0.3931 l 0.3528 0.3933 l 0.3538 0.3935 l 0.3548 0.3936 l 0.3558 0.3938 l 0.3568 0.3940 l 0.3578 0.3942 l 0.3588 0.3944 l 0.3598 0.3945 l 0.3608 0.3947 l 0.3618 0.3948 l 0.3628 0.3950 l 0.3638 0.3952 l 0.3648 0.3953 l 0.3658 0.3955 l 0.3668 0.3956 l 0.3678 0.3957 l 0.3688 0.3959 l 0.3698 0.3960 l 0.3708 0.3961 l 0.3717 0.3963 l 0.3727 0.3964 l 0.3737 0.3965 l 0.3747 0.3966 l 0.3757 0.3967 l 0.3767 0.3968 l 0.3777 0.3969 l 0.3787 0.3970 l 0.3797 0.3971 l 0.3807 0.3972 l 0.3817 0.3973 l 0.3827 0.3974 l 0.3837 0.3975 l 0.3847 0.3976 l 0.3857 0.3977 l 0.3867 0.3978 l 0.3877 0.3978 l 0.3887 0.3979 l 0.3897 0.3980 l 0.3907 0.3980 l 0.3917 0.3981 l 0.3927 0.3982 l 0.3937 0.3982 l 0.3947 0.3983 l 0.3957 0.3983 l 0.3967 0.3984 l 0.3977 0.3984 l 0.3987 0.3985 l 0.3997 0.3985 l 0.4007 0.3986 l 0.4017 0.3986 l 0.4027 0.3986 l 0.4037 0.3987 l 0.4047 0.3987 l 0.4057 0.3987 l 0.4067 0.3987 l 0.4077 0.3988 l 0.4087 0.3988 l 0.4097 0.3988 l 0.4107 0.3988 l 0.4117 0.3988 l 0.4127 0.3988 l 0.4137 0.3988 l 0.4147 0.3988 l 0.4157 0.3988 l 0.4167 0.3988 l 0.4177 0.3988 l 0.4187 0.3988 l 0.4197 0.3988 l 0.4207 0.3988 l 0.4217 0.3988 l 0.4227 0.3988 l 0.4237 0.3988 l 0.4247 0.3988 l 0.4257 0.3988 l 0.4267 0.3987 l 0.4277 0.3987 l 0.4287 0.3987 l 0.4297 0.3987 l 0.4307 0.3986 l 0.4317 0.3986 l 0.4327 0.3986 l 0.4337 0.3985 l 0.4347 0.3985 l 0.4357 0.3985 l 0.4367 0.3984 l 0.4377 0.3984 l 0.4387 0.3983 l 0.4397 0.3983 l 0.4407 0.3982 l 0.4417 0.3982 l 0.4427 0.3982 l 0.4437 0.3981 l 0.4447 0.3980 l 0.4457 0.3980 l 0.4467 0.3979 l 0.4477 0.3979 l 0.4487 0.3978 l 0.4497 0.3978 l 0.4507 0.3977 l 0.4517 0.3976 l 0.4527 0.3976 l 0.4537 0.3975 l 0.4547 0.3974 l 0.4556 0.3974 l 0.4566 0.3973 l 0.4576 0.3972 l 0.4586 0.3972 l 0.4596 0.3971 l 0.4606 0.3970 l 0.4616 0.3969 l 0.4626 0.3969 l 0.4636 0.3968 l 0.4646 0.3967 l 0.4656 0.3966 l 0.4666 0.3966 l 0.4676 0.3965 l 0.4686 0.3964 l 0.4696 0.3963 l 0.4706 0.3963 l 0.4716 0.3962 l 0.4726 0.3961 l 0.4736 0.3960 l 0.4746 0.3959 l 0.4756 0.3958 l 0.4766 0.3958 l 0.4776 0.3957 l 0.4786 0.3956 l 0.4796 0.3955 l 0.4806 0.3954 l 0.4816 0.3953 l 0.4826 0.3953 l 0.4836 0.3952 l 0.4846 0.3951 l 0.4856 0.3950 l 0.4866 0.3949 l 0.4876 0.3948 l 0.4886 0.3948 l 0.4896 0.3947 l 0.4906 0.3946 l 0.4916 0.3945 l 0.4926 0.3944 l 0.4936 0.3943 l 0.4946 0.3942 l 0.4956 0.3941 l 0.4966 0.3941 l 0.4976 0.3940 l 0.4986 0.3939 l 0.4996 0.3938 l 0.5006 0.3937 l 0.5016 0.3936 l 0.5026 0.3935 l 0.5036 0.3934 l 0.5046 0.3934 l 0.5056 0.3933 l 0.5066 0.3932 l 0.5076 0.3931 l 0.5086 0.3930 l 0.5096 0.3929 l 0.5106 0.3928 l 0.5116 0.3927 l 0.5126 0.3927 l 0.5136 0.3926 l 0.5146 0.3925 l 0.5156 0.3924 l 0.5166 0.3923 l 0.5176 0.3922 l 0.5186 0.3921 l 0.5196 0.3920 l 0.5206 0.3919 l 0.5216 0.3919 l 0.5226 0.3918 l 0.5236 0.3917 l 0.5246 0.3916 l 0.5256 0.3915 l 0.5266 0.3914 l 0.5276 0.3913 l 0.5286 0.3912 l 0.5296 0.3911 l 0.5306 0.3911 l 0.5316 0.3910 l 0.5326 0.3909 l 0.5336 0.3908 l 0.5345 0.3907 l 0.5355 0.3906 l 0.5365 0.3905 l 0.5375 0.3904 l 0.5385 0.3904 l 0.5395 0.3903 l 0.5405 0.3902 l 0.5415 0.3901 l 0.5425 0.3900 l 0.5435 0.3899 l 0.5445 0.3898 l 0.5455 0.3897 l 0.5465 0.3897 l 0.5475 0.3896 l 0.5485 0.3895 l 0.5495 0.3894 l 0.5505 0.3893 l 0.5515 0.3892 l 0.5525 0.3892 l 0.5535 0.3891 l 0.5545 0.3890 l 0.5555 0.3889 l 0.5565 0.3888 l 0.5575 0.3888 l 0.5585 0.3887 l 0.5595 0.3886 l 0.5605 0.3885 l 0.5615 0.3884 l 0.5625 0.3884 l 0.5635 0.3883 l 0.5645 0.3882 l 0.5655 0.3881 l 0.5665 0.3881 l 0.5675 0.3880 l 0.5685 0.3879 l 0.5695 0.3879 l 0.5705 0.3878 l 0.5715 0.3877 l 0.5725 0.3877 l 0.5735 0.3876 l 0.5745 0.3875 l 0.5755 0.3875 l 0.5765 0.3874 l 0.5775 0.3873 l 0.5785 0.3873 l 0.5795 0.3872 l 0.5805 0.3872 l 0.5815 0.3871 l 0.5825 0.3870 l 0.5835 0.3870 l 0.5845 0.3869 l 0.5855 0.3869 l 0.5865 0.3868 l 0.5875 0.3868 l 0.5885 0.3867 l 0.5895 0.3867 l 0.5905 0.3867 l 0.5915 0.3866 l 0.5925 0.3866 l 0.5935 0.3865 l 0.5945 0.3865 l 0.5955 0.3865 l 0.5965 0.3864 l 0.5975 0.3864 l 0.5985 0.3864 l 0.5995 0.3863 l 0.6005 0.3863 l 0.6015 0.3863 l 0.6025 0.3863 l 0.6035 0.3863 l 0.6045 0.3862 l 0.6055 0.3862 l 0.6065 0.3862 l 0.6075 0.3862 l 0.6085 0.3862 l 0.6095 0.3862 l 0.6105 0.3862 l 0.6115 0.3862 l 0.6125 0.3861 l 0.6134 0.3861 l 0.6144 0.3861 l 0.6154 0.3861 l 0.6164 0.3861 l 0.6174 0.3861 l 0.6184 0.3861 l 0.6194 0.3861 l 0.6205 0.3861 l 0.6215 0.3861 l 0.6225 0.3861 l 0.6235 0.3861 l 0.6245 0.3860 l 0.6255 0.3860 l 0.6265 0.3860 l 0.6275 0.3860 l 0.6285 0.3859 l 0.6295 0.3859 l 0.6305 0.3859 l 0.6315 0.3858 l 0.6325 0.3858 l 0.6335 0.3858 l 0.6345 0.3857 l 0.6355 0.3857 l 0.6365 0.3856 l 0.6375 0.3856 l 0.6385 0.3855 l 0.6395 0.3855 l 0.6405 0.3854 l 0.6415 0.3854 l 0.6425 0.3853 l 0.6435 0.3853 l 0.6445 0.3852 l 0.6455 0.3851 l 0.6465 0.3851 l 0.6475 0.3850 l 0.6485 0.3849 l 0.6495 0.3849 l 0.6505 0.3848 l 0.6515 0.3847 l 0.6525 0.3846 l 0.6535 0.3845 l 0.6545 0.3845 l 0.6555 0.3844 l 0.6565 0.3843 l 0.6575 0.3842 l 0.6585 0.3841 l 0.6595 0.3840 l 0.6605 0.3839 l 0.6615 0.3838 l 0.6625 0.3837 l 0.6635 0.3836 l 0.6645 0.3835 l 0.6655 0.3834 l 0.6665 0.3833 l 0.6675 0.3832 l 0.6685 0.3831 l 0.6695 0.3830 l 0.6705 0.3829 l 0.6715 0.3828 l 0.6725 0.3827 l 0.6735 0.3825 l 0.6745 0.3824 l 0.6755 0.3823 l 0.6765 0.3822 l 0.6775 0.3821 l 0.6785 0.3820 l 0.6795 0.3819 l 0.6805 0.3817 l 0.6815 0.3816 l 0.6825 0.3815 l 0.6835 0.3814 l 0.6845 0.3813 l 0.6855 0.3811 l 0.6865 0.3810 l 0.6875 0.3809 l 0.6885 0.3808 l 0.6895 0.3807 l 0.6905 0.3806 l 0.6915 0.3805 l 0.6925 0.3803 l 0.6935 0.3802 l 0.6945 0.3801 l 0.6955 0.3800 l 0.6965 0.3799 l 0.6975 0.3798 l 0.6985 0.3797 l 0.6995 0.3796 l 0.7005 0.3795 l 0.7015 0.3794 l 0.7025 0.3793 l 0.7035 0.3792 l 0.7045 0.3791 l 0.7055 0.3790 l 0.7065 0.3790 l 0.7075 0.3789 l 0.7085 0.3788 l 0.7095 0.3787 l 0.7105 0.3787 l 0.7115 0.3786 l 0.7125 0.3785 l 0.7135 0.3785 l 0.7145 0.3784 l 0.7155 0.3783 l 0.7165 0.3783 l 0.7175 0.3782 l 0.7185 0.3782 l 0.7195 0.3781 l 0.7205 0.3781 l 0.7215 0.3780 l 0.7225 0.3780 l 0.7235 0.3779 l 0.7245 0.3779 l 0.7255 0.3778 l 0.7265 0.3778 l 0.7275 0.3778 l 0.7285 0.3777 l 0.7295 0.3777 l 0.7305 0.3777 l 0.7315 0.3776 l 0.7325 0.3776 l 0.7335 0.3775 l 0.7345 0.3775 l 0.7355 0.3775 l 0.7365 0.3774 l 0.7375 0.3774 l 0.7385 0.3774 l 0.7395 0.3773 l 0.7405 0.3773 l 0.7415 0.3772 l 0.7425 0.3772 l 0.7435 0.3772 l 0.7445 0.3771 l 0.7455 0.3771 l 0.7465 0.3770 l 0.7475 0.3770 l 0.7485 0.3769 l 0.7495 0.3768 l 0.7505 0.3768 l 0.7515 0.3767 l 0.7525 0.3766 l 0.7535 0.3765 l 0.7545 0.3765 l 0.7555 0.3764 l 0.7565 0.3763 l 0.7575 0.3762 l 0.7585 0.3761 l 0.7595 0.3760 l 0.7605 0.3758 l 0.7615 0.3757 l 0.7625 0.3756 l 0.7635 0.3754 l 0.7645 0.3753 l 0.7655 0.3751 l 0.7665 0.3750 l 0.7675 0.3748 l 0.7685 0.3746 l 0.7695 0.3744 l 0.7705 0.3743 l 0.7715 0.3740 l 0.7725 0.3738 l 0.7735 0.3736 l 0.7745 0.3734 l 0.7756 0.3731 l 0.7766 0.3729 l 0.7776 0.3726 l 0.7786 0.3723 l 0.7796 0.3720 l 0.7806 0.3717 l 0.7816 0.3714 l 0.7826 0.3711 l 0.7836 0.3707 l 0.7846 0.3704 l 0.7856 0.3700 l 0.7866 0.3696 l 0.7876 0.3692 l 0.7886 0.3688 l 0.7896 0.3684 l 0.7906 0.3680 l 0.7916 0.3676 l 0.7926 0.3671 l 0.7936 0.3666 l 0.7946 0.3661 l 0.7956 0.3656 l 0.7966 0.3651 l 0.7976 0.3646 l 0.7986 0.3641 l 0.7996 0.3635 l 0.8006 0.3629 l 0.8016 0.3623 l 0.8026 0.3617 l 0.8036 0.3611 l 0.8046 0.3605 l 0.8056 0.3598 l 0.8066 0.3592 l 0.8076 0.3585 l 0.8086 0.3578 l 0.8096 0.3571 l 0.8106 0.3564 l 0.8116 0.3556 l 0.8126 0.3549 l 0.8136 0.3541 l 0.8146 0.3533 l 0.8156 0.3525 l 0.8166 0.3517 l 0.8176 0.3508 l 0.8186 0.3500 l 0.8196 0.3491 l 0.8206 0.3482 l 0.8216 0.3473 l 0.8226 0.3464 l 0.8236 0.3455 l 0.8246 0.3445 l 0.8256 0.3435 l 0.8266 0.3425 l 0.8276 0.3415 l 0.8286 0.3405 l 0.8296 0.3395 l 0.8306 0.3384 l 0.8316 0.3374 l 0.8326 0.3363 l 0.8336 0.3352 l 0.8346 0.3341 l 0.8356 0.3329 l 0.8366 0.3318 l 0.8376 0.3306 l 0.8386 0.3294 l 0.8396 0.3282 l 0.8406 0.3270 l 0.8416 0.3258 l 0.8426 0.3245 l 0.8436 0.3233 l 0.8446 0.3220 l 0.8456 0.3207 l 0.8466 0.3194 l 0.8476 0.3181 l 0.8486 0.3167 l 0.8496 0.3154 l 0.8506 0.3140 l 0.8516 0.3126 l 0.8526 0.3112 l 0.8536 0.3098 l 0.8546 0.3084 l 0.8556 0.3070 l 0.8566 0.3055 l 0.8576 0.3041 l 0.8586 0.3026 l 0.8596 0.3011 l 0.8606 0.2996 l 0.8616 0.2981 l 0.8626 0.2966 l 0.8636 0.2950 l 0.8646 0.2935 l 0.8656 0.2919 l 0.8666 0.2903 l 0.8676 0.2887 l 0.8686 0.2872 l 0.8696 0.2855 l 0.8706 0.2839 l 0.8716 0.2823 l 0.8726 0.2807 l 0.8736 0.2790 l 0.8746 0.2774 l 0.8756 0.2757 l 0.8766 0.2740 l 0.8776 0.2724 l 0.8786 0.2707 l 0.8796 0.2690 l 0.8806 0.2673 l 0.8816 0.2655 l 0.8826 0.2638 l 0.8836 0.2621 l 0.8846 0.2604 l 0.8856 0.2586 l 0.8866 0.2569 l 0.8876 0.2551 l 0.8886 0.2534 l 0.8896 0.2516 l 0.8906 0.2498 l 0.8916 0.2480 l 0.8926 0.2463 l 0.8936 0.2445 l 0.8946 0.2427 l 0.8956 0.2409 l 0.8966 0.2391 l 0.8976 0.2373 l 0.8986 0.2355 l 0.8996 0.2337 l 0.9006 0.2319 l 0.9016 0.2301 l 0.9026 0.2283 l 0.9036 0.2264 l 0.9046 0.2246 l 0.9056 0.2228 l 0.9066 0.2210 l 0.9076 0.2192 l 0.9086 0.2173 l 0.9096 0.2155 l 0.9106 0.2137 l 0.9116 0.2119 l 0.9126 0.2100 l 0.9136 0.2082 l 0.9146 0.2064 l 0.9156 0.2046 l 0.9166 0.2027 l 0.9176 0.2009 l 0.9186 0.1991 l 0.9196 0.1973 l 0.9206 0.1954 l 0.9216 0.1936 l 0.9226 0.1918 l 0.9236 0.1900 l 0.9246 0.1882 l 0.9256 0.1863 l 0.9266 0.1845 l 0.9276 0.1827 l 0.9286 0.1809 l 0.9296 0.1791 l 0.9306 0.1773 l 0.9317 0.1754 l 0.9327 0.1736 l 0.9337 0.1718 l 0.9347 0.1700 l 0.9357 0.1682 l 0.9367 0.1664 l 0.9377 0.1645 l 0.9387 0.1627 l 0.9397 0.1609 l 0.9407 0.1590 l 0.9417 0.1571 l 0.9427 0.1551 l 0.9437 0.1528 l 0.9443 0.1499 l s n 0.9476 0.1499 m 0.9477 0.1500 l 0.9477 0.1499 l s n 0.9547 0.1499 m 0.9557 0.1546 l 0.9566 0.1569 l 0.9576 0.1590 l 0.9586 0.1609 l 0.9596 0.1627 l 0.9606 0.1645 l 0.9616 0.1663 l 0.9626 0.1680 l 0.9636 0.1697 l 0.9646 0.1714 l 0.9656 0.1731 l 0.9666 0.1748 l 0.9676 0.1765 l 0.9686 0.1782 l 0.9696 0.1799 l 0.9706 0.1816 l 0.9716 0.1833 l 0.9726 0.1849 l 0.9736 0.1866 l 0.9746 0.1883 l 0.9756 0.1899 l 0.9766 0.1916 l 0.9776 0.1933 l 0.9786 0.1949 l 0.9796 0.1966 l 0.9806 0.1982 l 0.9816 0.1999 l 0.9826 0.2016 l 0.9836 0.2032 l 0.9846 0.2048 l 0.9856 0.2065 l 0.9866 0.2081 l 0.9876 0.2098 l 0.9886 0.2114 l 0.9896 0.2130 l 0.9906 0.2147 l 0.9916 0.2163 l 0.9926 0.2179 l 0.9936 0.2195 l 0.9946 0.2212 l 0.9956 0.2228 l 0.9966 0.2244 l 0.9976 0.2260 l 0.9986 0.2276 l 0.9996 0.2292 l 1.0006 0.2308 l 1.0016 0.2324 l 1.0026 0.2340 l 1.0036 0.2355 l 1.0046 0.2371 l 1.0056 0.2387 l 1.0066 0.2403 l 1.0076 0.2418 l 1.0086 0.2434 l 1.0096 0.2449 l 1.0106 0.2465 l 1.0116 0.2480 l 1.0126 0.2496 l 1.0136 0.2511 l 1.0146 0.2526 l 1.0156 0.2542 l 1.0166 0.2557 l 1.0176 0.2572 l 1.0186 0.2587 l 1.0196 0.2602 l 1.0206 0.2617 l 1.0216 0.2632 l 1.0226 0.2647 l 1.0236 0.2662 l 1.0246 0.2676 l 1.0256 0.2691 l 1.0266 0.2706 l 1.0276 0.2720 l 1.0286 0.2735 l 1.0296 0.2749 l 1.0306 0.2763 l 1.0316 0.2778 l 1.0326 0.2792 l 1.0336 0.2806 l 1.0346 0.2820 l 1.0355 0.2834 l 1.0365 0.2848 l 1.0375 0.2862 l 1.0385 0.2876 l 1.0395 0.2889 l 1.0405 0.2903 l 1.0415 0.2917 l 1.0425 0.2930 l 1.0435 0.2944 l 1.0445 0.2957 l 1.0455 0.2970 l 1.0465 0.2983 l 1.0475 0.2997 l 1.0485 0.3010 l 1.0495 0.3023 l 1.0505 0.3036 l 1.0515 0.3048 l 1.0525 0.3061 l 1.0535 0.3074 l 1.0545 0.3086 l 1.0555 0.3099 l 1.0565 0.3111 l 1.0575 0.3124 l 1.0585 0.3136 l 1.0595 0.3148 l 1.0605 0.3161 l 1.0615 0.3173 l 1.0625 0.3185 l 1.0635 0.3197 l 1.0645 0.3208 l 1.0655 0.3220 l 1.0665 0.3232 l 1.0675 0.3243 l 1.0685 0.3255 l 1.0695 0.3266 l 1.0705 0.3278 l 1.0715 0.3289 l 1.0725 0.3300 l 1.0735 0.3311 l 1.0745 0.3323 l 1.0755 0.3334 l 1.0765 0.3344 l 1.0775 0.3355 l 1.0785 0.3366 l 1.0795 0.3377 l 1.0805 0.3387 l 1.0815 0.3398 l 1.0825 0.3408 l 1.0835 0.3419 l 1.0845 0.3429 l 1.0855 0.3439 l 1.0865 0.3449 l 1.0875 0.3459 l 1.0885 0.3469 l 1.0895 0.3479 l 1.0905 0.3489 l 1.0915 0.3499 l 1.0925 0.3509 l 1.0935 0.3518 l 1.0945 0.3521 l 1.0955 0.3517 l 1.0965 0.3512 l 1.0975 0.3508 l 1.0985 0.3504 l 1.0995 0.3499 l 1.1005 0.3495 l 1.1015 0.3491 l 1.1025 0.3487 l 1.1035 0.3482 l 1.1045 0.3478 l 1.1055 0.3474 l 1.1065 0.3470 l 1.1075 0.3465 l 1.1085 0.3461 l 1.1095 0.3457 l 1.1105 0.3453 l 1.1115 0.3449 l 1.1125 0.3445 l 1.1135 0.3441 l 1.1144 0.3437 l 1.1154 0.3433 l 1.1164 0.3430 l 1.1174 0.3426 l 1.1184 0.3422 l 1.1194 0.3418 l 1.1204 0.3415 l 1.1214 0.3411 l 1.1224 0.3408 l 1.1234 0.3404 l 1.1244 0.3401 l 1.1254 0.3398 l 1.1264 0.3395 l 1.1274 0.3392 l 1.1284 0.3389 l 1.1294 0.3386 l 1.1304 0.3383 l 1.1314 0.3381 l 1.1324 0.3378 l 1.1334 0.3376 l 1.1344 0.3373 l 1.1354 0.3371 l 1.1364 0.3369 l 1.1374 0.3367 l 1.1384 0.3366 l 1.1394 0.3364 l 1.1404 0.3363 l 1.1414 0.3361 l 1.1424 0.3360 l 1.1434 0.3359 l 1.1444 0.3359 l 1.1454 0.3358 l 1.1464 0.3358 l 1.1474 0.3357 l 1.1484 0.3357 l s n 0.1500 0.3894 m 0.1510 0.3894 l 0.1520 0.3894 l 0.1530 0.3894 l 0.1540 0.3894 l 0.1550 0.3893 l 0.1560 0.3893 l 0.1570 0.3893 l 0.1580 0.3893 l 0.1590 0.3892 l 0.1600 0.3892 l 0.1610 0.3891 l 0.1620 0.3891 l 0.1630 0.3891 l 0.1640 0.3890 l 0.1650 0.3890 l 0.1660 0.3889 l 0.1670 0.3888 l 0.1680 0.3888 l 0.1690 0.3887 l 0.1700 0.3887 l 0.1710 0.3886 l 0.1720 0.3885 l 0.1730 0.3885 l 0.1740 0.3884 l 0.1750 0.3883 l 0.1760 0.3883 l 0.1770 0.3882 l 0.1780 0.3881 l 0.1790 0.3881 l 0.1800 0.3880 l 0.1810 0.3880 l 0.1820 0.3879 l 0.1830 0.3878 l 0.1840 0.3878 l 0.1850 0.3877 l 0.1860 0.3877 l 0.1870 0.3876 l 0.1880 0.3876 l 0.1890 0.3876 l 0.1900 0.3875 l 0.1910 0.3875 l 0.1920 0.3875 l 0.1930 0.3874 l 0.1940 0.3874 l 0.1949 0.3874 l 0.1959 0.3874 l 0.1969 0.3874 l 0.1979 0.3874 l 0.1989 0.3874 l 0.1999 0.3874 l 0.2009 0.3874 l 0.2019 0.3875 l 0.2029 0.3875 l 0.2039 0.3875 l 0.2049 0.3876 l 0.2059 0.3876 l 0.2069 0.3877 l 0.2079 0.3878 l 0.2089 0.3879 l 0.2099 0.3879 l 0.2109 0.3880 l 0.2119 0.3881 l 0.2129 0.3883 l 0.2139 0.3884 l 0.2149 0.3885 l 0.2159 0.3887 l 0.2169 0.3888 l 0.2179 0.3890 l 0.2189 0.3891 l 0.2199 0.3893 l 0.2209 0.3895 l 0.2219 0.3897 l 0.2229 0.3899 l 0.2239 0.3901 l 0.2249 0.3904 l 0.2259 0.3906 l 0.2269 0.3909 l 0.2279 0.3912 l 0.2289 0.3914 l 0.2299 0.3917 l 0.2309 0.3920 l 0.2319 0.3924 l 0.2329 0.3927 l 0.2339 0.3930 l 0.2349 0.3934 l 0.2359 0.3938 l 0.2369 0.3942 l 0.2379 0.3946 l 0.2389 0.3950 l 0.2399 0.3954 l 0.2409 0.3958 l 0.2419 0.3963 l 0.2429 0.3968 l 0.2439 0.3972 l 0.2449 0.3977 l 0.2459 0.3983 l 0.2469 0.3988 l 0.2479 0.3993 l 0.2489 0.3999 l 0.2499 0.4005 l 0.2509 0.4011 l 0.2519 0.4017 l 0.2529 0.4023 l 0.2539 0.4030 l 0.2549 0.4036 l 0.2559 0.4043 l 0.2569 0.4050 l 0.2579 0.4057 l 0.2589 0.4064 l 0.2599 0.4071 l 0.2609 0.4079 l 0.2619 0.4087 l 0.2629 0.4094 l 0.2639 0.4102 l 0.2649 0.4110 l 0.2659 0.4119 l 0.2669 0.4127 l 0.2679 0.4132 l 0.2689 0.4130 l 0.2699 0.4129 l 0.2709 0.4127 l 0.2719 0.4126 l 0.2729 0.4124 l 0.2739 0.4123 l 0.2749 0.4122 l 0.2759 0.4120 l 0.2769 0.4119 l 0.2779 0.4117 l 0.2789 0.4116 l 0.2799 0.4115 l 0.2809 0.4113 l 0.2819 0.4112 l 0.2829 0.4111 l 0.2838 0.4110 l 0.2848 0.4108 l 0.2858 0.4107 l 0.2868 0.4106 l 0.2878 0.4105 l 0.2888 0.4104 l 0.2898 0.4102 l 0.2908 0.4101 l 0.2918 0.4100 l 0.2928 0.4099 l 0.2938 0.4098 l 0.2948 0.4097 l 0.2958 0.4096 l 0.2968 0.4095 l 0.2978 0.4094 l 0.2988 0.4094 l 0.2998 0.4093 l 0.3008 0.4092 l 0.3018 0.4091 l 0.3028 0.4091 l 0.3038 0.4090 l 0.3048 0.4089 l 0.3058 0.4089 l 0.3068 0.4088 l 0.3078 0.4088 l 0.3088 0.4087 l 0.3098 0.4087 l 0.3108 0.4087 l 0.3118 0.4087 l 0.3128 0.4086 l 0.3138 0.4086 l 0.3148 0.4086 l 0.3158 0.4086 l 0.3168 0.4086 l 0.3178 0.4086 l 0.3188 0.4087 l 0.3198 0.4087 l 0.3208 0.4087 l 0.3218 0.4088 l 0.3228 0.4088 l 0.3238 0.4089 l 0.3248 0.4089 l 0.3258 0.4090 l 0.3268 0.4091 l 0.3278 0.4092 l 0.3288 0.4093 l 0.3298 0.4094 l 0.3308 0.4095 l 0.3318 0.4097 l 0.3328 0.4098 l 0.3338 0.4099 l 0.3348 0.4101 l 0.3358 0.4103 l 0.3368 0.4105 l 0.3378 0.4107 l 0.3388 0.4109 l 0.3398 0.4111 l 0.3408 0.4113 l 0.3418 0.4116 l 0.3428 0.4118 l 0.3438 0.4121 l 0.3448 0.4124 l 0.3458 0.4126 l 0.3468 0.4130 l 0.3478 0.4133 l 0.3488 0.4136 l 0.3498 0.4139 l 0.3508 0.4143 l 0.3518 0.4147 l 0.3528 0.4151 l 0.3538 0.4155 l 0.3548 0.4159 l 0.3558 0.4163 l 0.3568 0.4168 l 0.3578 0.4172 l 0.3588 0.4177 l 0.3598 0.4182 l 0.3608 0.4187 l 0.3618 0.4192 l 0.3628 0.4197 l 0.3638 0.4203 l 0.3648 0.4208 l 0.3658 0.4214 l 0.3668 0.4220 l 0.3678 0.4226 l 0.3688 0.4232 l 0.3698 0.4238 l 0.3708 0.4245 l 0.3717 0.4251 l 0.3727 0.4258 l 0.3737 0.4265 l 0.3747 0.4271 l 0.3757 0.4278 l 0.3767 0.4285 l 0.3777 0.4293 l 0.3787 0.4300 l 0.3797 0.4307 l 0.3807 0.4315 l 0.3817 0.4322 l 0.3827 0.4330 l 0.3837 0.4337 l 0.3847 0.4345 l 0.3857 0.4352 l 0.3867 0.4360 l 0.3877 0.4368 l 0.3887 0.4375 l 0.3897 0.4383 l 0.3907 0.4391 l 0.3917 0.4398 l 0.3927 0.4406 l 0.3937 0.4414 l 0.3947 0.4421 l 0.3957 0.4428 l 0.3967 0.4436 l 0.3977 0.4443 l 0.3987 0.4450 l 0.3997 0.4456 l 0.4007 0.4463 l 0.4017 0.4469 l 0.4027 0.4475 l 0.4037 0.4481 l 0.4047 0.4486 l 0.4057 0.4491 l 0.4067 0.4496 l 0.4077 0.4500 l 0.4087 0.4504 l 0.4097 0.4507 l 0.4107 0.4509 l 0.4117 0.4512 l 0.4127 0.4513 l 0.4137 0.4514 l 0.4147 0.4514 l 0.4157 0.4514 l 0.4167 0.4514 l 0.4177 0.4514 l 0.4187 0.4515 l 0.4197 0.4515 l 0.4207 0.4515 l 0.4217 0.4516 l 0.4227 0.4516 l 0.4237 0.4516 l 0.4247 0.4517 l 0.4257 0.4517 l 0.4267 0.4518 l 0.4277 0.4519 l 0.4287 0.4519 l 0.4297 0.4520 l 0.4307 0.4521 l 0.4317 0.4522 l 0.4327 0.4523 l 0.4337 0.4524 l 0.4347 0.4525 l 0.4357 0.4526 l 0.4367 0.4527 l 0.4377 0.4528 l 0.4387 0.4529 l 0.4397 0.4530 l 0.4407 0.4532 l 0.4417 0.4533 l 0.4427 0.4534 l 0.4437 0.4536 l 0.4447 0.4537 l 0.4457 0.4539 l 0.4467 0.4540 l 0.4477 0.4542 l 0.4487 0.4544 l 0.4497 0.4545 l 0.4507 0.4547 l 0.4517 0.4549 l 0.4527 0.4551 l 0.4537 0.4553 l 0.4547 0.4554 l 0.4556 0.4556 l 0.4566 0.4558 l 0.4576 0.4560 l 0.4586 0.4562 l 0.4596 0.4565 l 0.4606 0.4567 l 0.4616 0.4569 l 0.4626 0.4571 l 0.4636 0.4573 l 0.4646 0.4576 l 0.4656 0.4578 l 0.4666 0.4580 l 0.4676 0.4583 l 0.4686 0.4585 l 0.4696 0.4588 l 0.4706 0.4590 l 0.4716 0.4593 l 0.4726 0.4595 l 0.4736 0.4598 l 0.4746 0.4600 l 0.4756 0.4603 l 0.4766 0.4606 l 0.4776 0.4608 l 0.4786 0.4611 l 0.4796 0.4614 l 0.4806 0.4617 l 0.4816 0.4620 l 0.4826 0.4622 l 0.4836 0.4625 l 0.4846 0.4628 l 0.4856 0.4631 l 0.4866 0.4634 l 0.4876 0.4637 l 0.4886 0.4640 l 0.4896 0.4643 l 0.4906 0.4646 l 0.4916 0.4649 l 0.4926 0.4652 l 0.4936 0.4656 l 0.4946 0.4659 l 0.4956 0.4662 l 0.4966 0.4665 l 0.4976 0.4668 l 0.4986 0.4672 l 0.4996 0.4675 l 0.5006 0.4678 l 0.5016 0.4681 l 0.5026 0.4685 l 0.5036 0.4688 l 0.5046 0.4691 l 0.5056 0.4695 l 0.5066 0.4698 l 0.5076 0.4702 l 0.5086 0.4705 l 0.5096 0.4708 l 0.5106 0.4712 l 0.5116 0.4715 l 0.5126 0.4719 l 0.5136 0.4722 l 0.5146 0.4726 l 0.5156 0.4729 l 0.5166 0.4733 l 0.5176 0.4736 l 0.5186 0.4740 l 0.5196 0.4742 l 0.5206 0.4742 l 0.5216 0.4743 l 0.5226 0.4743 l 0.5236 0.4743 l 0.5246 0.4743 l 0.5256 0.4743 l 0.5266 0.4743 l 0.5276 0.4743 l 0.5286 0.4743 l 0.5296 0.4743 l 0.5306 0.4744 l 0.5316 0.4744 l 0.5326 0.4744 l 0.5336 0.4744 l 0.5345 0.4744 l 0.5355 0.4744 l 0.5365 0.4744 l 0.5375 0.4744 l 0.5385 0.4744 l 0.5395 0.4745 l 0.5405 0.4745 l 0.5415 0.4745 l 0.5425 0.4745 l 0.5435 0.4745 l 0.5445 0.4745 l 0.5455 0.4745 l 0.5465 0.4745 l 0.5475 0.4745 l 0.5485 0.4746 l 0.5495 0.4746 l 0.5505 0.4746 l 0.5515 0.4746 l 0.5525 0.4746 l 0.5535 0.4746 l 0.5545 0.4746 l 0.5555 0.4746 l 0.5565 0.4746 l 0.5575 0.4746 l 0.5585 0.4747 l 0.5595 0.4747 l 0.5605 0.4747 l 0.5615 0.4747 l 0.5625 0.4747 l 0.5635 0.4747 l 0.5645 0.4747 l 0.5655 0.4747 l 0.5665 0.4747 l 0.5675 0.4748 l 0.5685 0.4748 l 0.5695 0.4748 l 0.5705 0.4748 l 0.5715 0.4748 l 0.5725 0.4748 l 0.5735 0.4748 l 0.5745 0.4748 l 0.5755 0.4748 l 0.5765 0.4748 l 0.5775 0.4748 l 0.5785 0.4749 l 0.5795 0.4749 l 0.5805 0.4749 l 0.5815 0.4749 l 0.5825 0.4749 l 0.5835 0.4749 l 0.5845 0.4749 l 0.5855 0.4749 l 0.5865 0.4749 l 0.5875 0.4749 l 0.5885 0.4749 l 0.5895 0.4749 l 0.5905 0.4749 l 0.5915 0.4749 l 0.5925 0.4750 l 0.5935 0.4750 l 0.5945 0.4750 l 0.5955 0.4750 l 0.5965 0.4750 l 0.5975 0.4750 l 0.5985 0.4750 l 0.5995 0.4750 l 0.6005 0.4750 l 0.6015 0.4750 l 0.6025 0.4750 l 0.6035 0.4750 l 0.6045 0.4750 l 0.6055 0.4750 l 0.6065 0.4750 l 0.6075 0.4750 l 0.6085 0.4750 l 0.6095 0.4750 l 0.6105 0.4750 l 0.6115 0.4750 l 0.6125 0.4750 l 0.6134 0.4750 l 0.6144 0.4750 l 0.6154 0.4750 l 0.6164 0.4750 l 0.6174 0.4750 l 0.6184 0.4750 l 0.6194 0.4751 l 0.6205 0.4751 l 0.6215 0.4751 l 0.6225 0.4751 l 0.6235 0.4751 l 0.6245 0.4752 l 0.6255 0.4752 l 0.6265 0.4753 l 0.6275 0.4753 l 0.6285 0.4754 l 0.6295 0.4754 l 0.6305 0.4755 l 0.6315 0.4755 l 0.6325 0.4756 l 0.6335 0.4756 l 0.6345 0.4757 l 0.6355 0.4758 l 0.6365 0.4758 l 0.6375 0.4759 l 0.6385 0.4760 l 0.6395 0.4760 l 0.6405 0.4761 l 0.6415 0.4762 l 0.6425 0.4763 l 0.6435 0.4763 l 0.6445 0.4764 l 0.6455 0.4765 l 0.6465 0.4766 l 0.6475 0.4766 l 0.6485 0.4767 l 0.6495 0.4768 l 0.6505 0.4769 l 0.6515 0.4769 l 0.6525 0.4770 l 0.6535 0.4771 l 0.6545 0.4771 l 0.6555 0.4772 l 0.6565 0.4772 l 0.6575 0.4773 l 0.6585 0.4773 l 0.6595 0.4774 l 0.6605 0.4774 l 0.6615 0.4774 l 0.6625 0.4775 l 0.6635 0.4775 l 0.6645 0.4775 l 0.6655 0.4775 l 0.6665 0.4775 l 0.6675 0.4775 l 0.6685 0.4775 l 0.6695 0.4771 l 0.6705 0.4765 l 0.6715 0.4759 l 0.6725 0.4754 l 0.6735 0.4748 l 0.6745 0.4742 l 0.6755 0.4736 l 0.6765 0.4731 l 0.6775 0.4725 l 0.6785 0.4719 l 0.6795 0.4713 l 0.6805 0.4707 l 0.6815 0.4701 l 0.6825 0.4695 l 0.6835 0.4689 l 0.6845 0.4683 l 0.6855 0.4677 l 0.6865 0.4671 l 0.6875 0.4665 l 0.6885 0.4659 l 0.6895 0.4653 l 0.6905 0.4647 l 0.6915 0.4641 l 0.6925 0.4635 l 0.6935 0.4629 l 0.6945 0.4623 l 0.6955 0.4617 l 0.6965 0.4611 l 0.6975 0.4605 l 0.6985 0.4599 l 0.6995 0.4593 l 0.7005 0.4586 l 0.7015 0.4580 l 0.7025 0.4574 l 0.7035 0.4568 l 0.7045 0.4562 l 0.7055 0.4556 l 0.7065 0.4550 l 0.7075 0.4544 l 0.7085 0.4538 l 0.7095 0.4532 l 0.7105 0.4526 l 0.7115 0.4520 l 0.7125 0.4514 l 0.7135 0.4508 l 0.7145 0.4502 l 0.7155 0.4496 l 0.7165 0.4490 l 0.7175 0.4484 l 0.7185 0.4478 l 0.7195 0.4472 l 0.7205 0.4466 l 0.7215 0.4460 l 0.7225 0.4454 l 0.7235 0.4449 l 0.7245 0.4443 l 0.7255 0.4437 l 0.7265 0.4431 l 0.7275 0.4426 l 0.7285 0.4420 l 0.7295 0.4414 l 0.7305 0.4409 l 0.7315 0.4403 l 0.7325 0.4398 l 0.7335 0.4392 l 0.7345 0.4387 l 0.7355 0.4382 l 0.7365 0.4376 l 0.7375 0.4371 l 0.7385 0.4366 l 0.7395 0.4360 l 0.7405 0.4355 l 0.7415 0.4350 l 0.7425 0.4345 l 0.7435 0.4340 l 0.7445 0.4335 l 0.7455 0.4330 l 0.7465 0.4325 l 0.7475 0.4321 l 0.7485 0.4316 l 0.7495 0.4311 l 0.7505 0.4307 l 0.7515 0.4302 l 0.7525 0.4297 l 0.7535 0.4293 l 0.7545 0.4289 l 0.7555 0.4284 l 0.7565 0.4280 l 0.7575 0.4276 l 0.7585 0.4272 l 0.7595 0.4268 l 0.7605 0.4264 l 0.7615 0.4260 l 0.7625 0.4256 l 0.7635 0.4253 l 0.7645 0.4249 l 0.7655 0.4246 l 0.7665 0.4242 l 0.7675 0.4239 l 0.7685 0.4235 l 0.7695 0.4232 l 0.7705 0.4229 l 0.7715 0.4226 l 0.7725 0.4223 l 0.7735 0.4220 l 0.7745 0.4217 l 0.7756 0.4215 l 0.7766 0.4212 l 0.7776 0.4210 l 0.7786 0.4206 l 0.7796 0.4199 l 0.7806 0.4192 l 0.7816 0.4184 l 0.7826 0.4177 l 0.7836 0.4170 l 0.7846 0.4162 l 0.7856 0.4155 l 0.7866 0.4148 l 0.7876 0.4141 l 0.7886 0.4135 l 0.7896 0.4128 l 0.7906 0.4121 l 0.7916 0.4114 l 0.7926 0.4108 l 0.7936 0.4101 l 0.7946 0.4095 l 0.7956 0.4089 l 0.7966 0.4083 l 0.7976 0.4076 l 0.7986 0.4070 l 0.7996 0.4065 l 0.8006 0.4059 l 0.8016 0.4053 l 0.8026 0.4047 l 0.8036 0.4042 l 0.8046 0.4036 l 0.8056 0.4031 l 0.8066 0.4026 l 0.8076 0.4021 l 0.8086 0.4016 l 0.8096 0.4011 l 0.8106 0.4006 l 0.8116 0.4001 l 0.8126 0.3996 l 0.8136 0.3992 l 0.8146 0.3987 l 0.8156 0.3983 l 0.8166 0.3979 l 0.8176 0.3975 l 0.8186 0.3971 l 0.8196 0.3967 l 0.8206 0.3963 l 0.8216 0.3959 l 0.8226 0.3955 l 0.8236 0.3952 l 0.8246 0.3948 l 0.8256 0.3945 l 0.8266 0.3942 l 0.8276 0.3938 l 0.8286 0.3935 l 0.8296 0.3932 l 0.8306 0.3929 l 0.8316 0.3926 l 0.8326 0.3923 l 0.8336 0.3921 l 0.8346 0.3918 l 0.8356 0.3915 l 0.8366 0.3913 l 0.8376 0.3911 l 0.8386 0.3908 l 0.8396 0.3906 l 0.8406 0.3904 l 0.8416 0.3902 l 0.8426 0.3900 l 0.8436 0.3898 l 0.8446 0.3896 l 0.8456 0.3894 l 0.8466 0.3892 l 0.8476 0.3891 l 0.8486 0.3889 l 0.8496 0.3887 l 0.8506 0.3886 l 0.8516 0.3884 l 0.8526 0.3883 l 0.8536 0.3882 l 0.8546 0.3880 l 0.8556 0.3879 l 0.8566 0.3878 l 0.8576 0.3877 l 0.8586 0.3876 l 0.8596 0.3875 l 0.8606 0.3874 l 0.8616 0.3873 l 0.8626 0.3872 l 0.8636 0.3872 l 0.8646 0.3871 l 0.8656 0.3870 l 0.8666 0.3870 l 0.8676 0.3869 l 0.8686 0.3869 l 0.8696 0.3868 l 0.8706 0.3868 l 0.8716 0.3868 l 0.8726 0.3867 l 0.8736 0.3867 l 0.8746 0.3867 l 0.8756 0.3867 l 0.8766 0.3866 l 0.8776 0.3866 l 0.8786 0.3866 l 0.8796 0.3866 l 0.8806 0.3866 l 0.8816 0.3866 l 0.8826 0.3866 l 0.8836 0.3867 l 0.8846 0.3867 l 0.8856 0.3867 l 0.8866 0.3867 l 0.8876 0.3867 l 0.8886 0.3868 l 0.8896 0.3868 l 0.8906 0.3868 l 0.8916 0.3869 l 0.8926 0.3869 l 0.8936 0.3870 l 0.8946 0.3870 l 0.8956 0.3871 l 0.8966 0.3871 l 0.8976 0.3872 l 0.8986 0.3872 l 0.8996 0.3873 l 0.9006 0.3873 l 0.9016 0.3874 l 0.9026 0.3875 l 0.9036 0.3875 l 0.9046 0.3876 l 0.9056 0.3876 l 0.9066 0.3877 l 0.9076 0.3878 l 0.9086 0.3878 l 0.9096 0.3879 l 0.9106 0.3880 l 0.9116 0.3881 l 0.9126 0.3881 l 0.9136 0.3882 l 0.9146 0.3883 l 0.9156 0.3883 l 0.9166 0.3884 l 0.9176 0.3885 l 0.9186 0.3885 l 0.9196 0.3886 l 0.9206 0.3887 l 0.9216 0.3887 l 0.9226 0.3888 l 0.9236 0.3888 l 0.9246 0.3889 l 0.9256 0.3890 l 0.9266 0.3890 l 0.9276 0.3891 l 0.9286 0.3891 l 0.9296 0.3892 l 0.9306 0.3892 l 0.9317 0.3892 l 0.9327 0.3893 l 0.9337 0.3893 l 0.9347 0.3893 l 0.9357 0.3894 l 0.9367 0.3894 l 0.9377 0.3894 l 0.9387 0.3894 l 0.9397 0.3894 l 0.9407 0.3894 l 0.9417 0.3894 l 0.9427 0.3894 l 0.9437 0.3894 l 0.9447 0.3894 l 0.9457 0.3894 l 0.9467 0.3894 l 0.9477 0.3894 l 0.9487 0.3894 l 0.9497 0.3895 l 0.9507 0.3895 l 0.9517 0.3895 l 0.9527 0.3895 l 0.9537 0.3895 l 0.9547 0.3896 l 0.9557 0.3896 l 0.9566 0.3896 l 0.9576 0.3896 l 0.9586 0.3896 l 0.9596 0.3896 l 0.9606 0.3896 l 0.9616 0.3895 l 0.9626 0.3895 l 0.9636 0.3895 l 0.9646 0.3895 l 0.9656 0.3895 l 0.9666 0.3894 l 0.9676 0.3894 l 0.9686 0.3893 l 0.9696 0.3893 l 0.9706 0.3892 l 0.9716 0.3892 l 0.9726 0.3891 l 0.9736 0.3891 l 0.9746 0.3890 l 0.9756 0.3889 l 0.9766 0.3889 l 0.9776 0.3888 l 0.9786 0.3887 l 0.9796 0.3886 l 0.9806 0.3885 l 0.9816 0.3884 l 0.9826 0.3883 l 0.9836 0.3882 l 0.9846 0.3881 l 0.9856 0.3880 l 0.9866 0.3878 l 0.9876 0.3877 l 0.9886 0.3876 l 0.9896 0.3874 l 0.9906 0.3873 l 0.9916 0.3872 l 0.9926 0.3870 l 0.9936 0.3869 l 0.9946 0.3867 l 0.9956 0.3865 l 0.9966 0.3864 l 0.9976 0.3862 l 0.9986 0.3860 l 0.9996 0.3858 l 1.0006 0.3856 l 1.0016 0.3855 l 1.0026 0.3853 l 1.0036 0.3851 l 1.0046 0.3848 l 1.0056 0.3846 l 1.0066 0.3844 l 1.0076 0.3842 l 1.0086 0.3840 l 1.0096 0.3838 l 1.0106 0.3835 l 1.0116 0.3833 l 1.0126 0.3830 l 1.0136 0.3828 l 1.0146 0.3825 l 1.0156 0.3823 l 1.0166 0.3820 l 1.0176 0.3818 l 1.0186 0.3815 l 1.0196 0.3812 l 1.0206 0.3809 l 1.0216 0.3807 l 1.0226 0.3804 l 1.0236 0.3801 l 1.0246 0.3798 l 1.0256 0.3795 l 1.0266 0.3792 l 1.0276 0.3789 l 1.0286 0.3786 l 1.0296 0.3783 l 1.0306 0.3779 l 1.0316 0.3776 l 1.0326 0.3773 l 1.0336 0.3770 l 1.0346 0.3766 l 1.0355 0.3763 l 1.0365 0.3759 l 1.0375 0.3756 l 1.0385 0.3753 l 1.0395 0.3749 l 1.0405 0.3745 l 1.0415 0.3742 l 1.0425 0.3738 l 1.0435 0.3735 l 1.0445 0.3731 l 1.0455 0.3727 l 1.0465 0.3724 l 1.0475 0.3720 l 1.0485 0.3716 l 1.0495 0.3712 l 1.0505 0.3708 l 1.0515 0.3704 l 1.0525 0.3701 l 1.0535 0.3697 l 1.0545 0.3693 l 1.0555 0.3689 l 1.0565 0.3685 l 1.0575 0.3681 l 1.0585 0.3677 l 1.0595 0.3672 l 1.0605 0.3668 l 1.0615 0.3664 l 1.0625 0.3660 l 1.0635 0.3656 l 1.0645 0.3652 l 1.0655 0.3648 l 1.0665 0.3643 l 1.0675 0.3639 l 1.0685 0.3635 l 1.0695 0.3631 l 1.0705 0.3626 l 1.0715 0.3622 l 1.0725 0.3618 l 1.0735 0.3613 l 1.0745 0.3609 l 1.0755 0.3605 l 1.0765 0.3600 l 1.0775 0.3596 l 1.0785 0.3592 l 1.0795 0.3587 l 1.0805 0.3583 l 1.0815 0.3578 l 1.0825 0.3574 l 1.0835 0.3570 l 1.0845 0.3565 l 1.0855 0.3561 l 1.0865 0.3556 l 1.0875 0.3552 l 1.0885 0.3548 l 1.0895 0.3543 l 1.0905 0.3539 l 1.0915 0.3534 l 1.0925 0.3530 l 1.0935 0.3526 l 1.0945 0.3521 l 1.0955 0.3517 l 1.0965 0.3512 l 1.0975 0.3508 l 1.0985 0.3504 l 1.0995 0.3499 l 1.1005 0.3495 l 1.1015 0.3491 l 1.1025 0.3487 l 1.1035 0.3482 l 1.1045 0.3478 l 1.1055 0.3474 l 1.1065 0.3470 l 1.1075 0.3465 l 1.1085 0.3461 l 1.1095 0.3457 l 1.1105 0.3453 l 1.1115 0.3449 l 1.1125 0.3445 l 1.1135 0.3441 l 1.1144 0.3437 l 1.1154 0.3433 l 1.1164 0.3430 l 1.1174 0.3426 l 1.1184 0.3422 l 1.1194 0.3418 l 1.1204 0.3415 l 1.1214 0.3411 l 1.1224 0.3408 l 1.1234 0.3404 l 1.1244 0.3401 l 1.1254 0.3398 l 1.1264 0.3395 l 1.1274 0.3392 l 1.1284 0.3389 l 1.1294 0.3386 l 1.1304 0.3383 l 1.1314 0.3381 l 1.1324 0.3378 l 1.1334 0.3376 l 1.1344 0.3373 l 1.1354 0.3371 l 1.1364 0.3369 l 1.1374 0.3367 l 1.1384 0.3366 l 1.1394 0.3364 l 1.1404 0.3363 l 1.1414 0.3361 l 1.1424 0.3360 l 1.1434 0.3359 l 1.1444 0.3359 l 1.1454 0.3358 l 1.1464 0.3358 l 1.1474 0.3357 l 1.1484 0.3357 l s n 0.1500 0.3894 m 0.1510 0.3894 l 0.1520 0.3894 l 0.1530 0.3894 l 0.1540 0.3895 l 0.1550 0.3895 l 0.1560 0.3896 l 0.1570 0.3896 l 0.1580 0.3897 l 0.1590 0.3898 l 0.1600 0.3899 l 0.1610 0.3899 l 0.1620 0.3901 l 0.1630 0.3902 l 0.1640 0.3903 l 0.1650 0.3904 l 0.1660 0.3906 l 0.1670 0.3907 l 0.1680 0.3909 l 0.1690 0.3911 l 0.1700 0.3913 l 0.1710 0.3915 l 0.1720 0.3917 l 0.1730 0.3919 l 0.1740 0.3921 l 0.1750 0.3923 l 0.1760 0.3926 l 0.1770 0.3928 l 0.1780 0.3931 l 0.1790 0.3934 l 0.1800 0.3937 l 0.1810 0.3940 l 0.1820 0.3943 l 0.1830 0.3946 l 0.1840 0.3949 l 0.1850 0.3953 l 0.1860 0.3956 l 0.1870 0.3960 l 0.1880 0.3964 l 0.1890 0.3968 l 0.1900 0.3972 l 0.1910 0.3976 l 0.1920 0.3980 l 0.1930 0.3984 l 0.1940 0.3989 l 0.1949 0.3993 l 0.1959 0.3998 l 0.1969 0.4003 l 0.1979 0.4008 l 0.1989 0.4013 l 0.1999 0.4018 l 0.2009 0.4024 l 0.2019 0.4029 l 0.2029 0.4035 l 0.2039 0.4041 l 0.2049 0.4047 l 0.2059 0.4053 l 0.2069 0.4059 l 0.2079 0.4065 l 0.2089 0.4072 l 0.2099 0.4078 l 0.2109 0.4085 l 0.2119 0.4092 l 0.2129 0.4099 l 0.2139 0.4107 l 0.2149 0.4114 l 0.2159 0.4122 l 0.2169 0.4129 l 0.2179 0.4137 l 0.2189 0.4146 l 0.2199 0.4154 l 0.2209 0.4162 l 0.2219 0.4171 l 0.2229 0.4180 l 0.2239 0.4189 l 0.2249 0.4197 l 0.2259 0.4196 l 0.2269 0.4194 l 0.2279 0.4193 l 0.2289 0.4191 l 0.2299 0.4190 l 0.2309 0.4189 l 0.2319 0.4187 l 0.2329 0.4186 l 0.2339 0.4184 l 0.2349 0.4183 l 0.2359 0.4181 l 0.2369 0.4180 l 0.2379 0.4178 l 0.2389 0.4177 l 0.2399 0.4175 l 0.2409 0.4174 l 0.2419 0.4172 l 0.2429 0.4170 l 0.2439 0.4169 l 0.2449 0.4167 l 0.2459 0.4166 l 0.2469 0.4164 l 0.2479 0.4163 l 0.2489 0.4161 l 0.2499 0.4160 l 0.2509 0.4158 l 0.2519 0.4156 l 0.2529 0.4155 l 0.2539 0.4153 l 0.2549 0.4152 l 0.2559 0.4150 l 0.2569 0.4149 l 0.2579 0.4147 l 0.2589 0.4146 l 0.2599 0.4144 l 0.2609 0.4143 l 0.2619 0.4141 l 0.2629 0.4139 l 0.2639 0.4138 l 0.2649 0.4136 l 0.2659 0.4135 l 0.2669 0.4133 l 0.2679 0.4136 l 0.2689 0.4144 l 0.2699 0.4153 l 0.2709 0.4162 l 0.2719 0.4171 l 0.2729 0.4180 l 0.2739 0.4190 l 0.2749 0.4199 l 0.2759 0.4209 l 0.2769 0.4218 l 0.2779 0.4228 l 0.2789 0.4238 l 0.2799 0.4248 l 0.2809 0.4258 l 0.2819 0.4268 l 0.2829 0.4278 l 0.2838 0.4288 l 0.2848 0.4298 l 0.2858 0.4308 l 0.2868 0.4319 l 0.2878 0.4329 l 0.2888 0.4339 l 0.2898 0.4350 l 0.2908 0.4360 l 0.2918 0.4371 l 0.2928 0.4381 l 0.2938 0.4391 l 0.2948 0.4402 l 0.2958 0.4412 l 0.2968 0.4422 l 0.2978 0.4433 l 0.2988 0.4443 l 0.2998 0.4453 l 0.3008 0.4463 l 0.3018 0.4473 l 0.3028 0.4483 l 0.3038 0.4493 l 0.3048 0.4503 l 0.3058 0.4512 l 0.3068 0.4522 l 0.3078 0.4531 l 0.3088 0.4541 l 0.3098 0.4550 l 0.3108 0.4559 l 0.3118 0.4568 l 0.3128 0.4577 l 0.3138 0.4586 l 0.3148 0.4594 l 0.3158 0.4602 l 0.3168 0.4611 l 0.3178 0.4619 l 0.3188 0.4627 l 0.3198 0.4634 l 0.3208 0.4642 l 0.3218 0.4649 l 0.3228 0.4656 l 0.3238 0.4663 l 0.3248 0.4670 l 0.3258 0.4677 l 0.3268 0.4683 l 0.3278 0.4690 l 0.3288 0.4696 l 0.3298 0.4701 l 0.3308 0.4707 l 0.3318 0.4713 l 0.3328 0.4718 l 0.3338 0.4723 l 0.3348 0.4728 l 0.3358 0.4732 l 0.3368 0.4737 l 0.3378 0.4741 l 0.3388 0.4745 l 0.3398 0.4749 l 0.3408 0.4752 l 0.3418 0.4756 l 0.3428 0.4759 l 0.3438 0.4762 l 0.3448 0.4765 l 0.3458 0.4767 l 0.3468 0.4770 l 0.3478 0.4772 l 0.3488 0.4774 l 0.3498 0.4776 l 0.3508 0.4778 l 0.3518 0.4780 l 0.3528 0.4781 l 0.3538 0.4782 l 0.3548 0.4783 l 0.3558 0.4784 l 0.3568 0.4785 l 0.3578 0.4785 l 0.3588 0.4786 l 0.3598 0.4786 l 0.3608 0.4786 l 0.3618 0.4787 l 0.3628 0.4787 l 0.3638 0.4786 l 0.3648 0.4786 l 0.3658 0.4786 l 0.3668 0.4785 l 0.3678 0.4785 l 0.3688 0.4784 l 0.3698 0.4783 l 0.3708 0.4782 l 0.3717 0.4781 l 0.3727 0.4780 l 0.3737 0.4779 l 0.3747 0.4778 l 0.3757 0.4777 l 0.3767 0.4776 l 0.3777 0.4775 l 0.3787 0.4773 l 0.3797 0.4772 l 0.3807 0.4771 l 0.3817 0.4769 l 0.3827 0.4768 l 0.3837 0.4767 l 0.3847 0.4765 l 0.3857 0.4764 l 0.3867 0.4762 l 0.3877 0.4761 l 0.3887 0.4760 l 0.3897 0.4758 l 0.3907 0.4757 l 0.3917 0.4756 l 0.3927 0.4754 l 0.3937 0.4753 l 0.3947 0.4752 l 0.3957 0.4751 l 0.3967 0.4749 l 0.3977 0.4748 l 0.3987 0.4747 l 0.3997 0.4746 l 0.4007 0.4745 l 0.4017 0.4744 l 0.4027 0.4743 l 0.4037 0.4743 l 0.4047 0.4742 l 0.4057 0.4741 l 0.4067 0.4741 l 0.4077 0.4740 l 0.4087 0.4740 l 0.4097 0.4739 l 0.4107 0.4739 l 0.4117 0.4739 l 0.4127 0.4738 l 0.4137 0.4738 l 0.4147 0.4738 l 0.4157 0.4738 l 0.4167 0.4738 l 0.4177 0.4738 l 0.4187 0.4738 l 0.4197 0.4738 l 0.4207 0.4738 l 0.4217 0.4738 l 0.4227 0.4738 l 0.4237 0.4738 l 0.4247 0.4738 l 0.4257 0.4738 l 0.4267 0.4738 l 0.4277 0.4738 l 0.4287 0.4738 l 0.4297 0.4738 l 0.4307 0.4738 l 0.4317 0.4738 l 0.4327 0.4738 l 0.4337 0.4738 l 0.4347 0.4738 l 0.4357 0.4738 l 0.4367 0.4738 l 0.4377 0.4738 l 0.4387 0.4738 l 0.4397 0.4738 l 0.4407 0.4738 l 0.4417 0.4738 l 0.4427 0.4738 l 0.4437 0.4738 l 0.4447 0.4739 l 0.4457 0.4739 l 0.4467 0.4739 l 0.4477 0.4739 l 0.4487 0.4739 l 0.4497 0.4739 l 0.4507 0.4739 l 0.4517 0.4739 l 0.4527 0.4739 l 0.4537 0.4739 l 0.4547 0.4739 l 0.4556 0.4739 l 0.4566 0.4739 l 0.4576 0.4739 l 0.4586 0.4739 l 0.4596 0.4739 l 0.4606 0.4739 l 0.4616 0.4739 l 0.4626 0.4739 l 0.4636 0.4739 l 0.4646 0.4739 l 0.4656 0.4739 l 0.4666 0.4739 l 0.4676 0.4739 l 0.4686 0.4739 l 0.4696 0.4739 l 0.4706 0.4739 l 0.4716 0.4739 l 0.4726 0.4739 l 0.4736 0.4739 l 0.4746 0.4739 l 0.4756 0.4739 l 0.4766 0.4739 l 0.4776 0.4739 l 0.4786 0.4739 l 0.4796 0.4739 l 0.4806 0.4740 l 0.4816 0.4740 l 0.4826 0.4740 l 0.4836 0.4740 l 0.4846 0.4740 l 0.4856 0.4740 l 0.4866 0.4740 l 0.4876 0.4740 l 0.4886 0.4740 l 0.4896 0.4740 l 0.4906 0.4740 l 0.4916 0.4740 l 0.4926 0.4740 l 0.4936 0.4740 l 0.4946 0.4740 l 0.4956 0.4740 l 0.4966 0.4740 l 0.4976 0.4741 l 0.4986 0.4741 l 0.4996 0.4741 l 0.5006 0.4741 l 0.5016 0.4741 l 0.5026 0.4741 l 0.5036 0.4741 l 0.5046 0.4741 l 0.5056 0.4741 l 0.5066 0.4741 l 0.5076 0.4741 l 0.5086 0.4741 l 0.5096 0.4741 l 0.5106 0.4742 l 0.5116 0.4742 l 0.5126 0.4742 l 0.5136 0.4742 l 0.5146 0.4742 l 0.5156 0.4742 l 0.5166 0.4742 l 0.5176 0.4742 l 0.5186 0.4742 l 0.5196 0.4743 l 0.5206 0.4747 l 0.5216 0.4750 l 0.5226 0.4754 l 0.5236 0.4757 l 0.5246 0.4761 l 0.5256 0.4764 l 0.5266 0.4768 l 0.5276 0.4771 l 0.5286 0.4775 l 0.5296 0.4778 l 0.5306 0.4782 l 0.5316 0.4785 l 0.5326 0.4789 l 0.5336 0.4792 l 0.5345 0.4796 l 0.5355 0.4799 l 0.5365 0.4803 l 0.5375 0.4806 l 0.5385 0.4810 l 0.5395 0.4813 l 0.5405 0.4817 l 0.5415 0.4820 l 0.5425 0.4823 l 0.5435 0.4827 l 0.5445 0.4830 l 0.5455 0.4834 l 0.5465 0.4837 l 0.5475 0.4840 l 0.5485 0.4844 l 0.5495 0.4847 l 0.5505 0.4850 l 0.5515 0.4853 l 0.5525 0.4856 l 0.5535 0.4860 l 0.5545 0.4863 l 0.5555 0.4866 l 0.5565 0.4869 l 0.5575 0.4872 l 0.5585 0.4875 l 0.5595 0.4878 l 0.5605 0.4881 l 0.5615 0.4884 l 0.5625 0.4887 l 0.5635 0.4890 l 0.5645 0.4893 l 0.5655 0.4895 l 0.5665 0.4898 l 0.5675 0.4901 l 0.5685 0.4903 l 0.5695 0.4906 l 0.5705 0.4909 l 0.5715 0.4911 l 0.5725 0.4914 l 0.5735 0.4916 l 0.5745 0.4919 l 0.5755 0.4921 l 0.5765 0.4923 l 0.5775 0.4925 l 0.5785 0.4928 l 0.5795 0.4930 l 0.5805 0.4932 l 0.5815 0.4934 l 0.5825 0.4936 l 0.5835 0.4938 l 0.5845 0.4940 l 0.5855 0.4942 l 0.5865 0.4944 l 0.5875 0.4945 l 0.5885 0.4947 l 0.5895 0.4949 l 0.5905 0.4950 l 0.5915 0.4952 l 0.5925 0.4953 l 0.5935 0.4954 l 0.5945 0.4956 l 0.5955 0.4957 l 0.5965 0.4958 l 0.5975 0.4959 l 0.5985 0.4961 l 0.5995 0.4962 l 0.6005 0.4963 l 0.6015 0.4963 l 0.6025 0.4964 l 0.6035 0.4965 l 0.6045 0.4966 l 0.6055 0.4966 l 0.6065 0.4967 l 0.6075 0.4968 l 0.6085 0.4968 l 0.6095 0.4968 l 0.6105 0.4969 l 0.6115 0.4969 l 0.6125 0.4969 l 0.6134 0.4969 l 0.6144 0.4970 l 0.6154 0.4970 l 0.6164 0.4969 l 0.6174 0.4969 l 0.6184 0.4969 l 0.6194 0.4968 l 0.6205 0.4967 l 0.6215 0.4966 l 0.6225 0.4965 l 0.6235 0.4963 l 0.6245 0.4961 l 0.6255 0.4960 l 0.6265 0.4958 l 0.6275 0.4955 l 0.6285 0.4953 l 0.6295 0.4951 l 0.6305 0.4948 l 0.6315 0.4945 l 0.6325 0.4942 l 0.6335 0.4939 l 0.6345 0.4936 l 0.6355 0.4932 l 0.6365 0.4929 l 0.6375 0.4925 l 0.6385 0.4922 l 0.6395 0.4918 l 0.6405 0.4914 l 0.6415 0.4910 l 0.6425 0.4906 l 0.6435 0.4902 l 0.6445 0.4897 l 0.6455 0.4893 l 0.6465 0.4889 l 0.6475 0.4884 l 0.6485 0.4880 l 0.6495 0.4875 l 0.6505 0.4870 l 0.6515 0.4865 l 0.6525 0.4861 l 0.6535 0.4856 l 0.6545 0.4851 l 0.6555 0.4846 l 0.6565 0.4841 l 0.6575 0.4836 l 0.6585 0.4830 l 0.6595 0.4825 l 0.6605 0.4820 l 0.6615 0.4815 l 0.6625 0.4809 l 0.6635 0.4804 l 0.6645 0.4798 l 0.6655 0.4793 l 0.6665 0.4787 l 0.6675 0.4782 l 0.6685 0.4776 l 0.6695 0.4775 l 0.6705 0.4775 l 0.6715 0.4775 l 0.6725 0.4774 l 0.6735 0.4774 l 0.6745 0.4773 l 0.6755 0.4773 l 0.6765 0.4772 l 0.6775 0.4771 l 0.6785 0.4771 l 0.6795 0.4770 l 0.6805 0.4768 l 0.6815 0.4767 l 0.6825 0.4766 l 0.6835 0.4765 l 0.6845 0.4763 l 0.6855 0.4762 l 0.6865 0.4760 l 0.6875 0.4758 l 0.6885 0.4756 l 0.6895 0.4754 l 0.6905 0.4752 l 0.6915 0.4750 l 0.6925 0.4748 l 0.6935 0.4745 l 0.6945 0.4742 l 0.6955 0.4740 l 0.6965 0.4737 l 0.6975 0.4734 l 0.6985 0.4731 l 0.6995 0.4728 l 0.7005 0.4724 l 0.7015 0.4721 l 0.7025 0.4717 l 0.7035 0.4714 l 0.7045 0.4710 l 0.7055 0.4706 l 0.7065 0.4702 l 0.7075 0.4698 l 0.7085 0.4694 l 0.7095 0.4689 l 0.7105 0.4685 l 0.7115 0.4680 l 0.7125 0.4675 l 0.7135 0.4670 l 0.7145 0.4666 l 0.7155 0.4660 l 0.7165 0.4655 l 0.7175 0.4650 l 0.7185 0.4645 l 0.7195 0.4639 l 0.7205 0.4633 l 0.7215 0.4628 l 0.7225 0.4622 l 0.7235 0.4616 l 0.7245 0.4610 l 0.7255 0.4604 l 0.7265 0.4598 l 0.7275 0.4591 l 0.7285 0.4585 l 0.7295 0.4578 l 0.7305 0.4572 l 0.7315 0.4565 l 0.7325 0.4558 l 0.7335 0.4552 l 0.7345 0.4545 l 0.7355 0.4538 l 0.7365 0.4531 l 0.7375 0.4524 l 0.7385 0.4516 l 0.7395 0.4509 l 0.7405 0.4502 l 0.7415 0.4495 l 0.7425 0.4487 l 0.7435 0.4480 l 0.7445 0.4472 l 0.7455 0.4465 l 0.7465 0.4457 l 0.7475 0.4449 l 0.7485 0.4442 l 0.7495 0.4434 l 0.7505 0.4426 l 0.7515 0.4418 l 0.7525 0.4410 l 0.7535 0.4402 l 0.7545 0.4395 l 0.7555 0.4387 l 0.7565 0.4379 l 0.7575 0.4371 l 0.7585 0.4363 l 0.7595 0.4355 l 0.7605 0.4347 l 0.7615 0.4339 l 0.7625 0.4331 l 0.7635 0.4323 l 0.7645 0.4315 l 0.7655 0.4307 l 0.7665 0.4299 l 0.7675 0.4291 l 0.7685 0.4283 l 0.7695 0.4276 l 0.7705 0.4268 l 0.7715 0.4260 l 0.7725 0.4252 l 0.7735 0.4244 l 0.7745 0.4237 l 0.7756 0.4229 l 0.7766 0.4221 l 0.7776 0.4214 l 0.7786 0.4207 l 0.7796 0.4205 l 0.7806 0.4203 l 0.7816 0.4200 l 0.7826 0.4198 l 0.7836 0.4196 l 0.7846 0.4194 l 0.7856 0.4193 l 0.7866 0.4191 l 0.7876 0.4189 l 0.7886 0.4187 l 0.7896 0.4186 l 0.7906 0.4184 l 0.7916 0.4183 l 0.7926 0.4182 l 0.7936 0.4181 l 0.7946 0.4179 l 0.7956 0.4178 l 0.7966 0.4177 l 0.7976 0.4176 l 0.7986 0.4175 l 0.7996 0.4174 l 0.8006 0.4174 l 0.8016 0.4173 l 0.8026 0.4172 l 0.8036 0.4172 l 0.8046 0.4171 l 0.8056 0.4170 l 0.8066 0.4170 l 0.8076 0.4169 l 0.8086 0.4169 l 0.8096 0.4169 l 0.8106 0.4168 l 0.8116 0.4168 l 0.8126 0.4167 l 0.8136 0.4167 l 0.8146 0.4167 l 0.8156 0.4166 l 0.8166 0.4166 l 0.8176 0.4166 l 0.8186 0.4166 l 0.8196 0.4165 l 0.8206 0.4165 l 0.8216 0.4165 l 0.8226 0.4164 l 0.8236 0.4164 l 0.8246 0.4164 l 0.8256 0.4163 l 0.8266 0.4163 l 0.8276 0.4163 l 0.8286 0.4162 l 0.8296 0.4162 l 0.8306 0.4161 l 0.8316 0.4160 l 0.8326 0.4160 l 0.8336 0.4159 l 0.8346 0.4158 l 0.8356 0.4157 l 0.8366 0.4156 l 0.8376 0.4155 l 0.8386 0.4154 l 0.8396 0.4152 l 0.8406 0.4151 l 0.8416 0.4150 l 0.8426 0.4148 l 0.8436 0.4146 l 0.8446 0.4144 l 0.8456 0.4142 l 0.8466 0.4140 l 0.8476 0.4138 l 0.8486 0.4135 l 0.8496 0.4133 l 0.8506 0.4130 l 0.8516 0.4127 l 0.8526 0.4125 l 0.8536 0.4122 l 0.8546 0.4118 l 0.8556 0.4115 l 0.8566 0.4112 l 0.8576 0.4109 l 0.8586 0.4105 l 0.8596 0.4102 l 0.8606 0.4098 l 0.8616 0.4094 l 0.8626 0.4091 l 0.8636 0.4087 l 0.8646 0.4083 l 0.8656 0.4079 l 0.8666 0.4075 l 0.8676 0.4072 l 0.8686 0.4068 l 0.8696 0.4064 l 0.8706 0.4060 l 0.8716 0.4056 l 0.8726 0.4053 l 0.8736 0.4049 l 0.8746 0.4045 l 0.8756 0.4041 l 0.8766 0.4037 l 0.8776 0.4034 l 0.8786 0.4030 l 0.8796 0.4027 l 0.8806 0.4023 l 0.8816 0.4019 l 0.8826 0.4016 l 0.8836 0.4012 l 0.8846 0.4009 l 0.8856 0.4006 l 0.8866 0.4002 l 0.8876 0.3999 l 0.8886 0.3996 l 0.8896 0.3992 l 0.8906 0.3989 l 0.8916 0.3986 l 0.8926 0.3983 l 0.8936 0.3980 l 0.8946 0.3977 l 0.8956 0.3974 l 0.8966 0.3971 l 0.8976 0.3969 l 0.8986 0.3966 l 0.8996 0.3963 l 0.9006 0.3960 l 0.9016 0.3958 l 0.9026 0.3955 l 0.9036 0.3953 l 0.9046 0.3950 l 0.9056 0.3948 l 0.9066 0.3946 l 0.9076 0.3943 l 0.9086 0.3941 l 0.9096 0.3939 l 0.9106 0.3937 l 0.9116 0.3935 l 0.9126 0.3933 l 0.9136 0.3931 l 0.9146 0.3929 l 0.9156 0.3927 l 0.9166 0.3925 l 0.9176 0.3923 l 0.9186 0.3922 l 0.9196 0.3920 l 0.9206 0.3918 l 0.9216 0.3917 l 0.9226 0.3915 l 0.9236 0.3914 l 0.9246 0.3912 l 0.9256 0.3911 l 0.9266 0.3910 l 0.9276 0.3908 l 0.9286 0.3907 l 0.9296 0.3906 l 0.9306 0.3905 l 0.9317 0.3904 l 0.9327 0.3903 l 0.9337 0.3902 l 0.9347 0.3901 l 0.9357 0.3900 l 0.9367 0.3899 l 0.9377 0.3899 l 0.9387 0.3898 l 0.9397 0.3897 l 0.9407 0.3897 l 0.9417 0.3896 l 0.9427 0.3896 l 0.9437 0.3895 l 0.9447 0.3895 l 0.9457 0.3894 l 0.9467 0.3894 l 0.9477 0.3894 l 0.9487 0.3894 l 0.9497 0.3895 l 0.9507 0.3895 l 0.9517 0.3895 l 0.9527 0.3895 l 0.9537 0.3895 l 0.9547 0.3896 l 0.9557 0.3896 l 0.9566 0.3896 l 0.9576 0.3896 l 0.9586 0.3896 l 0.9596 0.3896 l 0.9606 0.3896 l 0.9616 0.3895 l 0.9626 0.3895 l 0.9636 0.3895 l 0.9646 0.3895 l 0.9656 0.3895 l 0.9666 0.3894 l 0.9676 0.3894 l 0.9686 0.3893 l 0.9696 0.3893 l 0.9706 0.3892 l 0.9716 0.3892 l 0.9726 0.3891 l 0.9736 0.3891 l 0.9746 0.3890 l 0.9756 0.3889 l 0.9766 0.3889 l 0.9776 0.3888 l 0.9786 0.3887 l 0.9796 0.3886 l 0.9806 0.3885 l 0.9816 0.3884 l 0.9826 0.3883 l 0.9836 0.3882 l 0.9846 0.3881 l 0.9856 0.3880 l 0.9866 0.3878 l 0.9876 0.3877 l 0.9886 0.3876 l 0.9896 0.3874 l 0.9906 0.3873 l 0.9916 0.3872 l 0.9926 0.3870 l 0.9936 0.3869 l 0.9946 0.3867 l 0.9956 0.3865 l 0.9966 0.3864 l 0.9976 0.3862 l 0.9986 0.3860 l 0.9996 0.3858 l 1.0006 0.3856 l 1.0016 0.3855 l 1.0026 0.3853 l 1.0036 0.3851 l 1.0046 0.3848 l 1.0056 0.3846 l 1.0066 0.3844 l 1.0076 0.3842 l 1.0086 0.3840 l 1.0096 0.3838 l 1.0106 0.3835 l 1.0116 0.3833 l 1.0126 0.3830 l 1.0136 0.3828 l 1.0146 0.3825 l 1.0156 0.3823 l 1.0166 0.3820 l 1.0176 0.3818 l 1.0186 0.3815 l 1.0196 0.3812 l 1.0206 0.3809 l 1.0216 0.3807 l 1.0226 0.3804 l 1.0236 0.3801 l 1.0246 0.3798 l 1.0256 0.3795 l 1.0266 0.3792 l 1.0276 0.3789 l 1.0286 0.3786 l 1.0296 0.3783 l 1.0306 0.3779 l 1.0316 0.3776 l 1.0326 0.3773 l 1.0336 0.3770 l 1.0346 0.3766 l 1.0355 0.3763 l 1.0365 0.3759 l 1.0375 0.3756 l 1.0385 0.3753 l 1.0395 0.3749 l 1.0405 0.3745 l 1.0415 0.3742 l 1.0425 0.3738 l 1.0435 0.3735 l 1.0445 0.3731 l 1.0455 0.3727 l 1.0465 0.3724 l 1.0475 0.3720 l 1.0485 0.3716 l 1.0495 0.3712 l 1.0505 0.3708 l 1.0515 0.3704 l 1.0525 0.3701 l 1.0535 0.3697 l 1.0545 0.3693 l 1.0555 0.3689 l 1.0565 0.3685 l 1.0575 0.3681 l 1.0585 0.3677 l 1.0595 0.3672 l 1.0605 0.3668 l 1.0615 0.3664 l 1.0625 0.3660 l 1.0635 0.3656 l 1.0645 0.3652 l 1.0655 0.3648 l 1.0665 0.3643 l 1.0675 0.3639 l 1.0685 0.3635 l 1.0695 0.3631 l 1.0705 0.3626 l 1.0715 0.3622 l 1.0725 0.3618 l 1.0735 0.3613 l 1.0745 0.3609 l 1.0755 0.3605 l 1.0765 0.3600 l 1.0775 0.3596 l 1.0785 0.3592 l 1.0795 0.3587 l 1.0805 0.3583 l 1.0815 0.3578 l 1.0825 0.3574 l 1.0835 0.3570 l 1.0845 0.3565 l 1.0855 0.3561 l 1.0865 0.3556 l 1.0875 0.3552 l 1.0885 0.3548 l 1.0895 0.3543 l 1.0905 0.3539 l 1.0915 0.3534 l 1.0925 0.3530 l 1.0935 0.3526 l 1.0945 0.3528 l 1.0955 0.3537 l 1.0965 0.3547 l 1.0975 0.3556 l 1.0985 0.3565 l 1.0995 0.3574 l 1.1005 0.3584 l 1.1015 0.3593 l 1.1025 0.3602 l 1.1035 0.3611 l 1.1045 0.3619 l 1.1055 0.3628 l 1.1065 0.3637 l 1.1075 0.3646 l 1.1085 0.3654 l 1.1095 0.3663 l 1.1105 0.3671 l 1.1115 0.3679 l 1.1125 0.3688 l 1.1135 0.3696 l 1.1144 0.3704 l 1.1154 0.3712 l 1.1164 0.3720 l 1.1174 0.3728 l 1.1184 0.3736 l 1.1194 0.3744 l 1.1204 0.3752 l 1.1214 0.3760 l 1.1224 0.3767 l 1.1234 0.3775 l 1.1244 0.3783 l 1.1254 0.3790 l 1.1264 0.3797 l 1.1274 0.3805 l 1.1284 0.3812 l 1.1294 0.3819 l 1.1304 0.3826 l 1.1314 0.3834 l 1.1324 0.3841 l 1.1334 0.3847 l 1.1344 0.3854 l 1.1354 0.3861 l 1.1364 0.3868 l 1.1374 0.3874 l 1.1384 0.3881 l 1.1394 0.3887 l 1.1404 0.3893 l 1.1414 0.3899 l 1.1424 0.3904 l 1.1434 0.3910 l 1.1444 0.3914 l 1.1454 0.3918 l 1.1464 0.3922 l 1.1474 0.3924 l 1.1484 0.3924 l s n 0.1500 0.4255 m 0.1510 0.4255 l 0.1520 0.4255 l 0.1530 0.4255 l 0.1540 0.4255 l 0.1550 0.4255 l 0.1560 0.4255 l 0.1570 0.4255 l 0.1580 0.4255 l 0.1590 0.4254 l 0.1600 0.4254 l 0.1610 0.4254 l 0.1620 0.4254 l 0.1630 0.4253 l 0.1640 0.4253 l 0.1650 0.4253 l 0.1660 0.4252 l 0.1670 0.4252 l 0.1680 0.4252 l 0.1690 0.4251 l 0.1700 0.4251 l 0.1710 0.4250 l 0.1720 0.4250 l 0.1730 0.4249 l 0.1740 0.4249 l 0.1750 0.4248 l 0.1760 0.4248 l 0.1770 0.4247 l 0.1780 0.4247 l 0.1790 0.4246 l 0.1800 0.4245 l 0.1810 0.4245 l 0.1820 0.4244 l 0.1830 0.4243 l 0.1840 0.4242 l 0.1850 0.4242 l 0.1860 0.4241 l 0.1870 0.4240 l 0.1880 0.4239 l 0.1890 0.4238 l 0.1900 0.4238 l 0.1910 0.4237 l 0.1920 0.4236 l 0.1930 0.4235 l 0.1940 0.4234 l 0.1949 0.4233 l 0.1959 0.4232 l 0.1969 0.4231 l 0.1979 0.4230 l 0.1989 0.4229 l 0.1999 0.4228 l 0.2009 0.4227 l 0.2019 0.4226 l 0.2029 0.4225 l 0.2039 0.4224 l 0.2049 0.4223 l 0.2059 0.4221 l 0.2069 0.4220 l 0.2079 0.4219 l 0.2089 0.4218 l 0.2099 0.4217 l 0.2109 0.4216 l 0.2119 0.4214 l 0.2129 0.4213 l 0.2139 0.4212 l 0.2149 0.4211 l 0.2159 0.4209 l 0.2169 0.4208 l 0.2179 0.4207 l 0.2189 0.4205 l 0.2199 0.4204 l 0.2209 0.4203 l 0.2219 0.4201 l 0.2229 0.4200 l 0.2239 0.4198 l 0.2249 0.4198 l 0.2259 0.4207 l 0.2269 0.4217 l 0.2279 0.4226 l 0.2289 0.4236 l 0.2299 0.4247 l 0.2309 0.4257 l 0.2319 0.4267 l 0.2329 0.4278 l 0.2339 0.4289 l 0.2349 0.4300 l 0.2359 0.4311 l 0.2369 0.4323 l 0.2379 0.4334 l 0.2389 0.4346 l 0.2399 0.4358 l 0.2409 0.4370 l 0.2419 0.4383 l 0.2429 0.4395 l 0.2439 0.4408 l 0.2449 0.4421 l 0.2459 0.4434 l 0.2469 0.4447 l 0.2479 0.4461 l 0.2489 0.4474 l 0.2499 0.4488 l 0.2509 0.4502 l 0.2519 0.4516 l 0.2529 0.4530 l 0.2539 0.4545 l 0.2549 0.4559 l 0.2559 0.4574 l 0.2569 0.4589 l 0.2579 0.4604 l 0.2589 0.4619 l 0.2599 0.4634 l 0.2609 0.4650 l 0.2619 0.4665 l 0.2629 0.4681 l 0.2639 0.4697 l 0.2649 0.4712 l 0.2659 0.4728 l 0.2669 0.4744 l 0.2679 0.4760 l 0.2689 0.4777 l 0.2699 0.4793 l 0.2709 0.4809 l 0.2719 0.4826 l 0.2729 0.4842 l 0.2739 0.4859 l 0.2749 0.4875 l 0.2759 0.4892 l 0.2769 0.4908 l 0.2779 0.4925 l 0.2789 0.4942 l 0.2799 0.4958 l 0.2809 0.4975 l 0.2819 0.4992 l 0.2829 0.5009 l 0.2838 0.5026 l 0.2848 0.5042 l 0.2858 0.5059 l 0.2868 0.5076 l 0.2878 0.5093 l 0.2888 0.5110 l 0.2898 0.5126 l 0.2908 0.5143 l 0.2918 0.5160 l 0.2928 0.5177 l 0.2938 0.5193 l 0.2948 0.5210 l 0.2958 0.5227 l 0.2968 0.5243 l 0.2978 0.5260 l 0.2988 0.5277 l 0.2998 0.5293 l 0.3008 0.5309 l 0.3018 0.5326 l 0.3028 0.5342 l 0.3038 0.5359 l 0.3048 0.5375 l 0.3058 0.5391 l 0.3068 0.5407 l 0.3078 0.5423 l 0.3088 0.5439 l 0.3098 0.5455 l 0.3108 0.5471 l 0.3118 0.5487 l 0.3128 0.5503 l 0.3138 0.5518 l 0.3148 0.5534 l 0.3158 0.5549 l 0.3168 0.5565 l 0.3178 0.5580 l 0.3188 0.5595 l 0.3198 0.5611 l 0.3208 0.5626 l 0.3218 0.5641 l 0.3228 0.5656 l 0.3238 0.5670 l 0.3248 0.5685 l 0.3258 0.5700 l 0.3268 0.5715 l 0.3278 0.5729 l 0.3288 0.5743 l 0.3298 0.5748 l 0.3308 0.5738 l 0.3318 0.5728 l 0.3328 0.5718 l 0.3338 0.5708 l 0.3348 0.5698 l 0.3358 0.5688 l 0.3368 0.5678 l 0.3378 0.5668 l 0.3388 0.5658 l 0.3398 0.5648 l 0.3408 0.5638 l 0.3418 0.5627 l 0.3428 0.5617 l 0.3438 0.5606 l 0.3448 0.5596 l 0.3458 0.5585 l 0.3468 0.5575 l 0.3478 0.5564 l 0.3488 0.5553 l 0.3498 0.5543 l 0.3508 0.5532 l 0.3518 0.5521 l 0.3528 0.5510 l 0.3538 0.5499 l 0.3548 0.5488 l 0.3558 0.5477 l 0.3568 0.5467 l 0.3578 0.5455 l 0.3588 0.5444 l 0.3598 0.5433 l 0.3608 0.5422 l 0.3618 0.5411 l 0.3628 0.5400 l 0.3638 0.5389 l 0.3648 0.5378 l 0.3658 0.5367 l 0.3668 0.5355 l 0.3678 0.5344 l 0.3688 0.5333 l 0.3698 0.5322 l 0.3708 0.5311 l 0.3717 0.5299 l 0.3727 0.5288 l 0.3737 0.5277 l 0.3747 0.5266 l 0.3757 0.5255 l 0.3767 0.5244 l 0.3777 0.5233 l 0.3787 0.5221 l 0.3797 0.5210 l 0.3807 0.5200 l 0.3817 0.5189 l 0.3827 0.5178 l 0.3837 0.5167 l 0.3847 0.5156 l 0.3857 0.5146 l 0.3867 0.5135 l 0.3877 0.5125 l 0.3887 0.5114 l 0.3897 0.5104 l 0.3907 0.5094 l 0.3917 0.5084 l 0.3927 0.5074 l 0.3937 0.5065 l 0.3947 0.5055 l 0.3957 0.5046 l 0.3967 0.5037 l 0.3977 0.5028 l 0.3987 0.5020 l 0.3997 0.5011 l 0.4007 0.5004 l 0.4017 0.4996 l 0.4027 0.4989 l 0.4037 0.4982 l 0.4047 0.4976 l 0.4057 0.4970 l 0.4067 0.4965 l 0.4077 0.4960 l 0.4087 0.4955 l 0.4097 0.4952 l 0.4107 0.4949 l 0.4117 0.4946 l 0.4127 0.4945 l 0.4137 0.4944 l 0.4147 0.4943 l 0.4157 0.4943 l 0.4167 0.4943 l 0.4177 0.4944 l 0.4187 0.4944 l 0.4197 0.4944 l 0.4207 0.4945 l 0.4217 0.4945 l 0.4227 0.4946 l 0.4237 0.4946 l 0.4247 0.4947 l 0.4257 0.4947 l 0.4267 0.4948 l 0.4277 0.4949 l 0.4287 0.4949 l 0.4297 0.4950 l 0.4307 0.4951 l 0.4317 0.4952 l 0.4327 0.4953 l 0.4337 0.4954 l 0.4347 0.4955 l 0.4357 0.4956 l 0.4367 0.4958 l 0.4377 0.4959 l 0.4387 0.4960 l 0.4397 0.4961 l 0.4407 0.4963 l 0.4417 0.4964 l 0.4427 0.4966 l 0.4437 0.4967 l 0.4447 0.4969 l 0.4457 0.4970 l 0.4467 0.4972 l 0.4477 0.4974 l 0.4487 0.4975 l 0.4497 0.4977 l 0.4507 0.4979 l 0.4517 0.4981 l 0.4527 0.4982 l 0.4537 0.4984 l 0.4547 0.4986 l 0.4556 0.4988 l 0.4566 0.4990 l 0.4576 0.4992 l 0.4586 0.4994 l 0.4596 0.4996 l 0.4606 0.4998 l 0.4616 0.5000 l 0.4626 0.5003 l 0.4636 0.5005 l 0.4646 0.5007 l 0.4656 0.5009 l 0.4666 0.5011 l 0.4676 0.5014 l 0.4686 0.5016 l 0.4696 0.5018 l 0.4706 0.5021 l 0.4716 0.5023 l 0.4726 0.5026 l 0.4736 0.5028 l 0.4746 0.5030 l 0.4756 0.5033 l 0.4766 0.5035 l 0.4776 0.5038 l 0.4786 0.5040 l 0.4796 0.5043 l 0.4806 0.5045 l 0.4816 0.5048 l 0.4826 0.5050 l 0.4836 0.5053 l 0.4846 0.5055 l 0.4856 0.5058 l 0.4866 0.5061 l 0.4876 0.5063 l 0.4886 0.5066 l 0.4896 0.5068 l 0.4906 0.5071 l 0.4916 0.5074 l 0.4926 0.5076 l 0.4936 0.5079 l 0.4946 0.5081 l 0.4956 0.5084 l 0.4966 0.5087 l 0.4976 0.5089 l 0.4986 0.5092 l 0.4996 0.5094 l 0.5006 0.5097 l 0.5016 0.5100 l 0.5026 0.5102 l 0.5036 0.5105 l 0.5046 0.5107 l 0.5056 0.5110 l 0.5066 0.5113 l 0.5076 0.5115 l 0.5086 0.5118 l 0.5096 0.5120 l 0.5106 0.5123 l 0.5116 0.5125 l 0.5126 0.5128 l 0.5136 0.5130 l 0.5146 0.5133 l 0.5156 0.5135 l 0.5166 0.5138 l 0.5176 0.5140 l 0.5186 0.5143 l 0.5196 0.5145 l 0.5206 0.5148 l 0.5216 0.5150 l 0.5226 0.5152 l 0.5236 0.5155 l 0.5246 0.5157 l 0.5256 0.5159 l 0.5266 0.5162 l 0.5276 0.5164 l 0.5286 0.5166 l 0.5296 0.5169 l 0.5306 0.5171 l 0.5316 0.5173 l 0.5326 0.5175 l 0.5336 0.5177 l 0.5345 0.5180 l 0.5355 0.5182 l 0.5365 0.5184 l 0.5375 0.5186 l 0.5385 0.5188 l 0.5395 0.5190 l 0.5405 0.5192 l 0.5415 0.5194 l 0.5425 0.5196 l 0.5435 0.5198 l 0.5445 0.5200 l 0.5455 0.5202 l 0.5465 0.5204 l 0.5475 0.5206 l 0.5485 0.5208 l 0.5495 0.5209 l 0.5505 0.5211 l 0.5515 0.5213 l 0.5525 0.5215 l 0.5535 0.5216 l 0.5545 0.5218 l 0.5555 0.5220 l 0.5565 0.5221 l 0.5575 0.5223 l 0.5585 0.5225 l 0.5595 0.5226 l 0.5605 0.5228 l 0.5615 0.5229 l 0.5625 0.5231 l 0.5635 0.5232 l 0.5645 0.5233 l 0.5655 0.5235 l 0.5665 0.5236 l 0.5675 0.5238 l 0.5685 0.5239 l 0.5695 0.5240 l 0.5705 0.5241 l 0.5715 0.5243 l 0.5725 0.5244 l 0.5735 0.5245 l 0.5745 0.5246 l 0.5755 0.5247 l 0.5765 0.5248 l 0.5775 0.5249 l 0.5785 0.5251 l 0.5795 0.5252 l 0.5805 0.5253 l 0.5815 0.5253 l 0.5825 0.5254 l 0.5835 0.5255 l 0.5845 0.5256 l 0.5855 0.5257 l 0.5865 0.5258 l 0.5875 0.5259 l 0.5885 0.5259 l 0.5895 0.5260 l 0.5905 0.5261 l 0.5915 0.5261 l 0.5925 0.5262 l 0.5935 0.5263 l 0.5945 0.5263 l 0.5955 0.5264 l 0.5965 0.5264 l 0.5975 0.5265 l 0.5985 0.5265 l 0.5995 0.5266 l 0.6005 0.5266 l 0.6015 0.5267 l 0.6025 0.5267 l 0.6035 0.5267 l 0.6045 0.5268 l 0.6055 0.5268 l 0.6065 0.5268 l 0.6075 0.5268 l 0.6085 0.5269 l 0.6095 0.5269 l 0.6105 0.5269 l 0.6115 0.5269 l 0.6125 0.5269 l 0.6134 0.5269 l 0.6144 0.5269 l 0.6154 0.5269 l 0.6164 0.5269 l 0.6174 0.5270 l 0.6184 0.5270 l 0.6194 0.5271 l 0.6205 0.5272 l 0.6215 0.5273 l 0.6225 0.5274 l 0.6235 0.5275 l 0.6245 0.5276 l 0.6255 0.5278 l 0.6265 0.5280 l 0.6275 0.5282 l 0.6285 0.5284 l 0.6295 0.5286 l 0.6305 0.5288 l 0.6315 0.5291 l 0.6325 0.5293 l 0.6335 0.5296 l 0.6345 0.5299 l 0.6355 0.5302 l 0.6365 0.5305 l 0.6375 0.5308 l 0.6385 0.5311 l 0.6395 0.5314 l 0.6405 0.5317 l 0.6415 0.5321 l 0.6425 0.5324 l 0.6435 0.5328 l 0.6445 0.5331 l 0.6455 0.5335 l 0.6465 0.5339 l 0.6475 0.5342 l 0.6485 0.5346 l 0.6495 0.5350 l 0.6505 0.5354 l 0.6515 0.5358 l 0.6525 0.5362 l 0.6535 0.5366 l 0.6545 0.5370 l 0.6555 0.5374 l 0.6565 0.5378 l 0.6575 0.5382 l 0.6585 0.5386 l 0.6595 0.5391 l 0.6605 0.5395 l 0.6615 0.5399 l 0.6625 0.5403 l 0.6635 0.5408 l 0.6645 0.5412 l 0.6655 0.5417 l 0.6665 0.5421 l 0.6675 0.5425 l 0.6685 0.5430 l 0.6695 0.5434 l 0.6705 0.5439 l 0.6715 0.5443 l 0.6725 0.5448 l 0.6735 0.5452 l 0.6745 0.5457 l 0.6755 0.5461 l 0.6765 0.5466 l 0.6775 0.5470 l 0.6785 0.5475 l 0.6795 0.5480 l 0.6805 0.5484 l 0.6815 0.5489 l 0.6825 0.5493 l 0.6835 0.5498 l 0.6845 0.5503 l 0.6855 0.5507 l 0.6865 0.5512 l 0.6875 0.5517 l 0.6885 0.5522 l 0.6895 0.5526 l 0.6905 0.5531 l 0.6915 0.5536 l 0.6925 0.5540 l 0.6935 0.5545 l 0.6945 0.5550 l 0.6955 0.5555 l 0.6965 0.5560 l 0.6975 0.5564 l 0.6985 0.5569 l 0.6995 0.5574 l 0.7005 0.5579 l 0.7015 0.5584 l 0.7025 0.5588 l 0.7035 0.5593 l 0.7045 0.5598 l 0.7055 0.5603 l 0.7065 0.5608 l 0.7075 0.5612 l 0.7085 0.5617 l 0.7095 0.5622 l 0.7105 0.5627 l 0.7115 0.5632 l 0.7125 0.5637 l 0.7135 0.5641 l 0.7145 0.5646 l 0.7155 0.5651 l 0.7165 0.5656 l 0.7175 0.5661 l 0.7185 0.5666 l 0.7195 0.5670 l 0.7205 0.5675 l 0.7215 0.5680 l 0.7225 0.5684 l 0.7235 0.5689 l 0.7245 0.5693 l 0.7255 0.5698 l 0.7265 0.5702 l 0.7275 0.5706 l 0.7285 0.5709 l 0.7295 0.5710 l 0.7305 0.5709 l 0.7315 0.5704 l 0.7325 0.5695 l 0.7335 0.5684 l 0.7345 0.5672 l 0.7355 0.5660 l 0.7365 0.5647 l 0.7375 0.5633 l 0.7385 0.5620 l 0.7395 0.5606 l 0.7405 0.5593 l 0.7415 0.5579 l 0.7425 0.5565 l 0.7435 0.5551 l 0.7445 0.5537 l 0.7455 0.5523 l 0.7465 0.5509 l 0.7475 0.5495 l 0.7485 0.5481 l 0.7495 0.5467 l 0.7505 0.5453 l 0.7515 0.5438 l 0.7525 0.5424 l 0.7535 0.5410 l 0.7545 0.5396 l 0.7555 0.5381 l 0.7565 0.5367 l 0.7575 0.5353 l 0.7585 0.5338 l 0.7595 0.5324 l 0.7605 0.5310 l 0.7615 0.5295 l 0.7625 0.5281 l 0.7635 0.5267 l 0.7645 0.5252 l 0.7655 0.5238 l 0.7665 0.5224 l 0.7675 0.5209 l 0.7685 0.5195 l 0.7695 0.5181 l 0.7705 0.5166 l 0.7715 0.5152 l 0.7725 0.5138 l 0.7735 0.5124 l 0.7745 0.5110 l 0.7756 0.5095 l 0.7766 0.5081 l 0.7776 0.5067 l 0.7786 0.5053 l 0.7796 0.5039 l 0.7806 0.5025 l 0.7816 0.5011 l 0.7826 0.4998 l 0.7836 0.4984 l 0.7846 0.4970 l 0.7856 0.4956 l 0.7866 0.4943 l 0.7876 0.4929 l 0.7886 0.4915 l 0.7896 0.4902 l 0.7906 0.4889 l 0.7916 0.4875 l 0.7926 0.4862 l 0.7936 0.4849 l 0.7946 0.4836 l 0.7956 0.4823 l 0.7966 0.4810 l 0.7976 0.4797 l 0.7986 0.4784 l 0.7996 0.4771 l 0.8006 0.4759 l 0.8016 0.4746 l 0.8026 0.4734 l 0.8036 0.4722 l 0.8046 0.4709 l 0.8056 0.4697 l 0.8066 0.4685 l 0.8076 0.4673 l 0.8086 0.4662 l 0.8096 0.4650 l 0.8106 0.4639 l 0.8116 0.4627 l 0.8126 0.4616 l 0.8136 0.4605 l 0.8146 0.4594 l 0.8156 0.4583 l 0.8166 0.4572 l 0.8176 0.4562 l 0.8186 0.4551 l 0.8196 0.4541 l 0.8206 0.4531 l 0.8216 0.4521 l 0.8226 0.4511 l 0.8236 0.4501 l 0.8246 0.4492 l 0.8256 0.4482 l 0.8266 0.4473 l 0.8276 0.4464 l 0.8286 0.4455 l 0.8296 0.4447 l 0.8306 0.4438 l 0.8316 0.4430 l 0.8326 0.4422 l 0.8336 0.4414 l 0.8346 0.4407 l 0.8356 0.4399 l 0.8366 0.4392 l 0.8376 0.4385 l 0.8386 0.4378 l 0.8396 0.4372 l 0.8406 0.4366 l 0.8416 0.4360 l 0.8426 0.4354 l 0.8436 0.4348 l 0.8446 0.4343 l 0.8456 0.4338 l 0.8466 0.4333 l 0.8476 0.4328 l 0.8486 0.4324 l 0.8496 0.4320 l 0.8506 0.4316 l 0.8516 0.4312 l 0.8526 0.4309 l 0.8536 0.4306 l 0.8546 0.4303 l 0.8556 0.4300 l 0.8566 0.4297 l 0.8576 0.4295 l 0.8586 0.4293 l 0.8596 0.4291 l 0.8606 0.4289 l 0.8616 0.4287 l 0.8626 0.4285 l 0.8636 0.4284 l 0.8646 0.4282 l 0.8656 0.4281 l 0.8666 0.4280 l 0.8676 0.4279 l 0.8686 0.4278 l 0.8696 0.4277 l 0.8706 0.4276 l 0.8716 0.4275 l 0.8726 0.4275 l 0.8736 0.4274 l 0.8746 0.4273 l 0.8756 0.4273 l 0.8766 0.4272 l 0.8776 0.4272 l 0.8786 0.4271 l 0.8796 0.4271 l 0.8806 0.4270 l 0.8816 0.4270 l 0.8826 0.4270 l 0.8836 0.4269 l 0.8846 0.4269 l 0.8856 0.4269 l 0.8866 0.4268 l 0.8876 0.4268 l 0.8886 0.4268 l 0.8896 0.4268 l 0.8906 0.4267 l 0.8916 0.4267 l 0.8926 0.4267 l 0.8936 0.4267 l 0.8946 0.4266 l 0.8956 0.4266 l 0.8966 0.4266 l 0.8976 0.4266 l 0.8986 0.4266 l 0.8996 0.4265 l 0.9006 0.4265 l 0.9016 0.4265 l 0.9026 0.4265 l 0.9036 0.4265 l 0.9046 0.4264 l 0.9056 0.4264 l 0.9066 0.4264 l 0.9076 0.4264 l 0.9086 0.4264 l 0.9096 0.4263 l 0.9106 0.4263 l 0.9116 0.4263 l 0.9126 0.4263 l 0.9136 0.4263 l 0.9146 0.4262 l 0.9156 0.4262 l 0.9166 0.4262 l 0.9176 0.4262 l 0.9186 0.4262 l 0.9196 0.4261 l 0.9206 0.4261 l 0.9216 0.4261 l 0.9226 0.4261 l 0.9236 0.4261 l 0.9246 0.4260 l 0.9256 0.4260 l 0.9266 0.4260 l 0.9276 0.4260 l 0.9286 0.4259 l 0.9296 0.4259 l 0.9306 0.4259 l 0.9317 0.4259 l 0.9327 0.4259 l 0.9337 0.4258 l 0.9347 0.4258 l 0.9357 0.4258 l 0.9367 0.4258 l 0.9377 0.4257 l 0.9387 0.4257 l 0.9397 0.4257 l 0.9407 0.4257 l 0.9417 0.4257 l 0.9427 0.4256 l 0.9437 0.4256 l 0.9447 0.4256 l 0.9457 0.4256 l 0.9467 0.4256 l 0.9477 0.4255 l 0.9487 0.4256 l 0.9497 0.4256 l 0.9507 0.4257 l 0.9517 0.4257 l 0.9527 0.4258 l 0.9537 0.4258 l 0.9547 0.4259 l 0.9557 0.4259 l 0.9566 0.4260 l 0.9576 0.4261 l 0.9586 0.4261 l 0.9596 0.4262 l 0.9606 0.4263 l 0.9616 0.4264 l 0.9626 0.4264 l 0.9636 0.4265 l 0.9646 0.4266 l 0.9656 0.4267 l 0.9666 0.4268 l 0.9676 0.4269 l 0.9686 0.4270 l 0.9696 0.4271 l 0.9706 0.4272 l 0.9716 0.4273 l 0.9726 0.4274 l 0.9736 0.4275 l 0.9746 0.4276 l 0.9756 0.4277 l 0.9766 0.4278 l 0.9776 0.4279 l 0.9786 0.4280 l 0.9796 0.4282 l 0.9806 0.4283 l 0.9816 0.4284 l 0.9826 0.4285 l 0.9836 0.4286 l 0.9846 0.4287 l 0.9856 0.4289 l 0.9866 0.4290 l 0.9876 0.4291 l 0.9886 0.4292 l 0.9896 0.4293 l 0.9906 0.4294 l 0.9916 0.4296 l 0.9926 0.4297 l 0.9936 0.4298 l 0.9946 0.4299 l 0.9956 0.4300 l 0.9966 0.4301 l 0.9976 0.4302 l 0.9986 0.4304 l 0.9996 0.4305 l 1.0006 0.4306 l 1.0016 0.4307 l 1.0026 0.4308 l 1.0036 0.4309 l 1.0046 0.4310 l 1.0056 0.4311 l 1.0066 0.4312 l 1.0076 0.4313 l 1.0086 0.4314 l 1.0096 0.4314 l 1.0106 0.4315 l 1.0116 0.4316 l 1.0126 0.4317 l 1.0136 0.4318 l 1.0146 0.4318 l 1.0156 0.4319 l 1.0166 0.4320 l 1.0176 0.4320 l 1.0186 0.4321 l 1.0196 0.4322 l 1.0206 0.4322 l 1.0216 0.4323 l 1.0226 0.4323 l 1.0236 0.4323 l 1.0246 0.4324 l 1.0256 0.4324 l 1.0266 0.4324 l 1.0276 0.4325 l 1.0286 0.4325 l 1.0296 0.4325 l 1.0306 0.4325 l 1.0316 0.4325 l 1.0326 0.4325 l 1.0336 0.4325 l 1.0346 0.4325 l 1.0355 0.4325 l 1.0365 0.4325 l 1.0375 0.4325 l 1.0385 0.4324 l 1.0395 0.4324 l 1.0405 0.4324 l 1.0415 0.4323 l 1.0425 0.4323 l 1.0435 0.4322 l 1.0445 0.4322 l 1.0455 0.4321 l 1.0465 0.4320 l 1.0475 0.4320 l 1.0485 0.4319 l 1.0495 0.4318 l 1.0505 0.4317 l 1.0515 0.4316 l 1.0525 0.4315 l 1.0535 0.4314 l 1.0545 0.4313 l 1.0555 0.4312 l 1.0565 0.4310 l 1.0575 0.4309 l 1.0585 0.4308 l 1.0595 0.4306 l 1.0605 0.4305 l 1.0615 0.4303 l 1.0625 0.4302 l 1.0635 0.4300 l 1.0645 0.4298 l 1.0655 0.4296 l 1.0665 0.4295 l 1.0675 0.4293 l 1.0685 0.4291 l 1.0695 0.4289 l 1.0705 0.4287 l 1.0715 0.4285 l 1.0725 0.4282 l 1.0735 0.4280 l 1.0745 0.4278 l 1.0755 0.4276 l 1.0765 0.4273 l 1.0775 0.4271 l 1.0785 0.4268 l 1.0795 0.4266 l 1.0805 0.4263 l 1.0815 0.4260 l 1.0825 0.4258 l 1.0835 0.4255 l 1.0845 0.4252 l 1.0855 0.4249 l 1.0865 0.4246 l 1.0875 0.4243 l 1.0885 0.4240 l 1.0895 0.4237 l 1.0905 0.4234 l 1.0915 0.4230 l 1.0925 0.4227 l 1.0935 0.4224 l 1.0945 0.4220 l 1.0955 0.4217 l 1.0965 0.4213 l 1.0975 0.4210 l 1.0985 0.4206 l 1.0995 0.4202 l 1.1005 0.4199 l 1.1015 0.4195 l 1.1025 0.4191 l 1.1035 0.4187 l 1.1045 0.4183 l 1.1055 0.4179 l 1.1065 0.4175 l 1.1075 0.4171 l 1.1085 0.4167 l 1.1095 0.4163 l 1.1105 0.4159 l 1.1115 0.4154 l 1.1125 0.4150 l 1.1135 0.4145 l 1.1144 0.4141 l 1.1154 0.4137 l 1.1164 0.4132 l 1.1174 0.4127 l 1.1184 0.4123 l 1.1194 0.4118 l 1.1204 0.4113 l 1.1214 0.4108 l 1.1224 0.4104 l 1.1234 0.4099 l 1.1244 0.4094 l 1.1254 0.4089 l 1.1264 0.4084 l 1.1274 0.4079 l 1.1284 0.4074 l 1.1294 0.4068 l 1.1304 0.4063 l 1.1314 0.4058 l 1.1324 0.4053 l 1.1334 0.4047 l 1.1344 0.4042 l 1.1354 0.4037 l 1.1364 0.4032 l 1.1374 0.4026 l 1.1384 0.4021 l 1.1394 0.4016 l 1.1404 0.4011 l 1.1414 0.4005 l 1.1424 0.4001 l 1.1434 0.3996 l 1.1444 0.3992 l 1.1454 0.3988 l 1.1464 0.3985 l 1.1474 0.3983 l 1.1484 0.3982 l s n 0.1500 0.5624 m 0.1510 0.5624 l 0.1520 0.5624 l 0.1530 0.5625 l 0.1540 0.5626 l 0.1550 0.5627 l 0.1560 0.5628 l 0.1570 0.5630 l 0.1580 0.5632 l 0.1590 0.5634 l 0.1600 0.5636 l 0.1610 0.5639 l 0.1620 0.5642 l 0.1630 0.5645 l 0.1640 0.5648 l 0.1650 0.5652 l 0.1660 0.5655 l 0.1670 0.5659 l 0.1680 0.5663 l 0.1690 0.5668 l 0.1700 0.5672 l 0.1710 0.5677 l 0.1720 0.5682 l 0.1730 0.5687 l 0.1740 0.5693 l 0.1750 0.5698 l 0.1760 0.5704 l 0.1770 0.5710 l 0.1780 0.5716 l 0.1790 0.5723 l 0.1800 0.5729 l 0.1810 0.5735 l 0.1820 0.5742 l 0.1830 0.5749 l 0.1840 0.5756 l 0.1850 0.5763 l 0.1860 0.5770 l 0.1870 0.5778 l 0.1880 0.5785 l 0.1890 0.5793 l 0.1900 0.5801 l 0.1910 0.5808 l 0.1920 0.5816 l 0.1930 0.5824 l 0.1940 0.5832 l 0.1949 0.5840 l 0.1959 0.5849 l 0.1969 0.5857 l 0.1979 0.5865 l 0.1989 0.5874 l 0.1999 0.5882 l 0.2009 0.5890 l 0.2019 0.5899 l 0.2029 0.5908 l 0.2039 0.5916 l 0.2049 0.5925 l 0.2059 0.5933 l 0.2069 0.5942 l 0.2079 0.5951 l 0.2089 0.5959 l 0.2099 0.5968 l 0.2109 0.5977 l 0.2119 0.5985 l 0.2129 0.5994 l 0.2139 0.6003 l 0.2149 0.6011 l 0.2159 0.6020 l 0.2169 0.6028 l 0.2179 0.6037 l 0.2189 0.6046 l 0.2199 0.6054 l 0.2209 0.6062 l 0.2219 0.6071 l 0.2229 0.6079 l 0.2239 0.6088 l 0.2249 0.6096 l 0.2259 0.6104 l 0.2269 0.6112 l 0.2279 0.6120 l 0.2289 0.6128 l 0.2299 0.6136 l 0.2309 0.6144 l 0.2319 0.6152 l 0.2329 0.6160 l 0.2339 0.6168 l 0.2349 0.6175 l 0.2359 0.6183 l 0.2369 0.6190 l 0.2379 0.6198 l 0.2389 0.6205 l 0.2399 0.6212 l 0.2409 0.6219 l 0.2419 0.6226 l 0.2429 0.6233 l 0.2439 0.6240 l 0.2449 0.6247 l 0.2459 0.6254 l 0.2469 0.6260 l 0.2479 0.6267 l 0.2489 0.6273 l 0.2499 0.6274 l 0.2509 0.6270 l 0.2519 0.6267 l 0.2529 0.6263 l 0.2539 0.6260 l 0.2549 0.6256 l 0.2559 0.6252 l 0.2569 0.6248 l 0.2579 0.6244 l 0.2589 0.6240 l 0.2599 0.6236 l 0.2609 0.6232 l 0.2619 0.6227 l 0.2629 0.6223 l 0.2639 0.6219 l 0.2649 0.6214 l 0.2659 0.6209 l 0.2669 0.6205 l 0.2679 0.6200 l 0.2689 0.6195 l 0.2699 0.6190 l 0.2709 0.6185 l 0.2719 0.6180 l 0.2729 0.6175 l 0.2739 0.6170 l 0.2749 0.6164 l 0.2759 0.6159 l 0.2769 0.6154 l 0.2779 0.6148 l 0.2789 0.6142 l 0.2799 0.6137 l 0.2809 0.6131 l 0.2819 0.6125 l 0.2829 0.6119 l 0.2838 0.6113 l 0.2848 0.6107 l 0.2858 0.6101 l 0.2868 0.6094 l 0.2878 0.6088 l 0.2888 0.6081 l 0.2898 0.6075 l 0.2908 0.6068 l 0.2918 0.6062 l 0.2928 0.6055 l 0.2938 0.6048 l 0.2948 0.6041 l 0.2958 0.6034 l 0.2968 0.6027 l 0.2978 0.6020 l 0.2988 0.6012 l 0.2998 0.6005 l 0.3008 0.5997 l 0.3018 0.5990 l 0.3028 0.5982 l 0.3038 0.5975 l 0.3048 0.5967 l 0.3058 0.5959 l 0.3068 0.5951 l 0.3078 0.5943 l 0.3088 0.5935 l 0.3098 0.5927 l 0.3108 0.5918 l 0.3118 0.5910 l 0.3128 0.5902 l 0.3138 0.5893 l 0.3148 0.5885 l 0.3158 0.5876 l 0.3168 0.5867 l 0.3178 0.5859 l 0.3188 0.5850 l 0.3198 0.5841 l 0.3208 0.5832 l 0.3218 0.5823 l 0.3228 0.5814 l 0.3238 0.5804 l 0.3248 0.5795 l 0.3258 0.5786 l 0.3268 0.5776 l 0.3278 0.5767 l 0.3288 0.5757 l 0.3298 0.5758 l 0.3308 0.5772 l 0.3318 0.5786 l 0.3328 0.5800 l 0.3338 0.5814 l 0.3348 0.5828 l 0.3358 0.5842 l 0.3368 0.5855 l 0.3378 0.5869 l 0.3388 0.5882 l 0.3398 0.5896 l 0.3408 0.5909 l 0.3418 0.5922 l 0.3428 0.5935 l 0.3438 0.5948 l 0.3448 0.5961 l 0.3458 0.5974 l 0.3468 0.5987 l 0.3478 0.5999 l 0.3488 0.6012 l 0.3498 0.6024 l 0.3508 0.6036 l 0.3518 0.6048 l 0.3528 0.6061 l 0.3538 0.6073 l 0.3548 0.6084 l 0.3558 0.6096 l 0.3568 0.6108 l 0.3578 0.6119 l 0.3588 0.6131 l 0.3598 0.6142 l 0.3608 0.6154 l 0.3618 0.6165 l 0.3628 0.6176 l 0.3638 0.6187 l 0.3648 0.6198 l 0.3658 0.6209 l 0.3668 0.6220 l 0.3678 0.6230 l 0.3688 0.6241 l 0.3698 0.6251 l 0.3708 0.6262 l 0.3717 0.6272 l 0.3727 0.6282 l 0.3737 0.6292 l 0.3747 0.6302 l 0.3757 0.6312 l 0.3767 0.6322 l 0.3777 0.6332 l 0.3787 0.6341 l 0.3797 0.6351 l 0.3807 0.6360 l 0.3817 0.6370 l 0.3827 0.6379 l 0.3837 0.6389 l 0.3847 0.6398 l 0.3857 0.6407 l 0.3867 0.6416 l 0.3877 0.6425 l 0.3887 0.6434 l 0.3897 0.6443 l 0.3907 0.6451 l 0.3917 0.6460 l 0.3927 0.6469 l 0.3937 0.6477 l 0.3947 0.6486 l 0.3957 0.6494 l 0.3967 0.6502 l 0.3977 0.6511 l 0.3987 0.6519 l 0.3997 0.6527 l 0.4007 0.6535 l 0.4017 0.6543 l 0.4027 0.6551 l 0.4037 0.6559 l 0.4047 0.6566 l 0.4057 0.6574 l 0.4067 0.6582 l 0.4077 0.6589 l 0.4087 0.6596 l 0.4097 0.6604 l 0.4107 0.6610 l 0.4117 0.6617 l 0.4127 0.6623 l 0.4137 0.6627 l 0.4147 0.6629 l 0.4157 0.6629 l 0.4167 0.6629 l 0.4177 0.6629 l 0.4187 0.6629 l 0.4197 0.6629 l 0.4207 0.6629 l 0.4217 0.6629 l 0.4227 0.6629 l 0.4237 0.6629 l 0.4247 0.6629 l 0.4257 0.6629 l 0.4267 0.6628 l 0.4277 0.6628 l 0.4287 0.6628 l 0.4297 0.6628 l 0.4307 0.6628 l 0.4317 0.6628 l 0.4327 0.6628 l 0.4337 0.6628 l 0.4347 0.6628 l 0.4357 0.6628 l 0.4367 0.6628 l 0.4377 0.6628 l 0.4387 0.6628 l 0.4397 0.6628 l 0.4407 0.6628 l 0.4417 0.6628 l 0.4427 0.6628 l 0.4437 0.6628 l 0.4447 0.6628 l 0.4457 0.6628 l 0.4467 0.6629 l 0.4477 0.6629 l 0.4487 0.6629 l 0.4497 0.6629 l 0.4507 0.6629 l 0.4517 0.6629 l 0.4527 0.6629 l 0.4537 0.6629 l 0.4547 0.6629 l 0.4556 0.6629 l 0.4566 0.6629 l 0.4576 0.6629 l 0.4586 0.6629 l 0.4596 0.6629 l 0.4606 0.6629 l 0.4616 0.6629 l 0.4626 0.6629 l 0.4636 0.6630 l 0.4646 0.6630 l 0.4656 0.6630 l 0.4666 0.6630 l 0.4676 0.6630 l 0.4686 0.6630 l 0.4696 0.6630 l 0.4706 0.6631 l 0.4716 0.6631 l 0.4726 0.6631 l 0.4736 0.6631 l 0.4746 0.6631 l 0.4756 0.6632 l 0.4766 0.6632 l 0.4776 0.6632 l 0.4786 0.6632 l 0.4796 0.6633 l 0.4806 0.6633 l 0.4816 0.6633 l 0.4826 0.6634 l 0.4836 0.6634 l 0.4846 0.6634 l 0.4856 0.6635 l 0.4866 0.6635 l 0.4876 0.6635 l 0.4886 0.6636 l 0.4896 0.6636 l 0.4906 0.6637 l 0.4916 0.6637 l 0.4926 0.6637 l 0.4936 0.6638 l 0.4946 0.6638 l 0.4956 0.6639 l 0.4966 0.6639 l 0.4976 0.6640 l 0.4986 0.6640 l 0.4996 0.6641 l 0.5006 0.6642 l 0.5016 0.6642 l 0.5026 0.6643 l 0.5036 0.6643 l 0.5046 0.6644 l 0.5056 0.6643 l 0.5066 0.6642 l 0.5076 0.6641 l 0.5086 0.6639 l 0.5096 0.6638 l 0.5106 0.6637 l 0.5116 0.6636 l 0.5126 0.6634 l 0.5136 0.6633 l 0.5146 0.6632 l 0.5156 0.6631 l 0.5166 0.6630 l 0.5176 0.6629 l 0.5186 0.6628 l 0.5196 0.6627 l 0.5206 0.6626 l 0.5216 0.6625 l 0.5226 0.6624 l 0.5236 0.6623 l 0.5246 0.6622 l 0.5256 0.6621 l 0.5266 0.6621 l 0.5276 0.6620 l 0.5286 0.6619 l 0.5296 0.6618 l 0.5306 0.6618 l 0.5316 0.6617 l 0.5326 0.6617 l 0.5336 0.6616 l 0.5345 0.6615 l 0.5355 0.6615 l 0.5365 0.6614 l 0.5375 0.6614 l 0.5385 0.6614 l 0.5395 0.6613 l 0.5405 0.6613 l 0.5415 0.6612 l 0.5425 0.6612 l 0.5435 0.6612 l 0.5445 0.6611 l 0.5455 0.6611 l 0.5465 0.6611 l 0.5475 0.6611 l 0.5485 0.6611 l 0.5495 0.6610 l 0.5505 0.6610 l 0.5515 0.6610 l 0.5525 0.6610 l 0.5535 0.6610 l 0.5545 0.6610 l 0.5555 0.6610 l 0.5565 0.6610 l 0.5575 0.6610 l 0.5585 0.6610 l 0.5595 0.6610 l 0.5605 0.6610 l 0.5615 0.6610 l 0.5625 0.6610 l 0.5635 0.6610 l 0.5645 0.6610 l 0.5655 0.6611 l 0.5665 0.6611 l 0.5675 0.6611 l 0.5685 0.6611 l 0.5695 0.6611 l 0.5705 0.6611 l 0.5715 0.6612 l 0.5725 0.6612 l 0.5735 0.6612 l 0.5745 0.6612 l 0.5755 0.6612 l 0.5765 0.6613 l 0.5775 0.6613 l 0.5785 0.6613 l 0.5795 0.6613 l 0.5805 0.6613 l 0.5815 0.6614 l 0.5825 0.6614 l 0.5835 0.6614 l 0.5845 0.6614 l 0.5855 0.6615 l 0.5865 0.6615 l 0.5875 0.6615 l 0.5885 0.6615 l 0.5895 0.6616 l 0.5905 0.6616 l 0.5915 0.6616 l 0.5925 0.6616 l 0.5935 0.6616 l 0.5945 0.6617 l 0.5955 0.6617 l 0.5965 0.6617 l 0.5975 0.6617 l 0.5985 0.6617 l 0.5995 0.6617 l 0.6005 0.6618 l 0.6015 0.6618 l 0.6025 0.6618 l 0.6035 0.6618 l 0.6045 0.6618 l 0.6055 0.6618 l 0.6065 0.6618 l 0.6075 0.6618 l 0.6085 0.6619 l 0.6095 0.6619 l 0.6105 0.6619 l 0.6115 0.6619 l 0.6125 0.6619 l 0.6134 0.6619 l 0.6144 0.6619 l 0.6154 0.6619 l 0.6164 0.6619 l 0.6174 0.6619 l 0.6184 0.6618 l 0.6194 0.6618 l 0.6205 0.6618 l 0.6215 0.6618 l 0.6225 0.6617 l 0.6235 0.6617 l 0.6245 0.6616 l 0.6255 0.6616 l 0.6265 0.6615 l 0.6275 0.6614 l 0.6285 0.6613 l 0.6295 0.6613 l 0.6305 0.6612 l 0.6315 0.6611 l 0.6325 0.6610 l 0.6335 0.6609 l 0.6345 0.6607 l 0.6355 0.6606 l 0.6365 0.6605 l 0.6375 0.6604 l 0.6385 0.6602 l 0.6395 0.6601 l 0.6405 0.6596 l 0.6415 0.6590 l 0.6425 0.6584 l 0.6435 0.6578 l 0.6445 0.6572 l 0.6455 0.6566 l 0.6465 0.6560 l 0.6475 0.6553 l 0.6485 0.6547 l 0.6495 0.6541 l 0.6505 0.6534 l 0.6515 0.6527 l 0.6525 0.6521 l 0.6535 0.6514 l 0.6545 0.6507 l 0.6555 0.6500 l 0.6565 0.6493 l 0.6575 0.6486 l 0.6585 0.6479 l 0.6595 0.6472 l 0.6605 0.6465 l 0.6615 0.6458 l 0.6625 0.6450 l 0.6635 0.6443 l 0.6645 0.6435 l 0.6655 0.6427 l 0.6665 0.6420 l 0.6675 0.6412 l 0.6685 0.6404 l 0.6695 0.6396 l 0.6705 0.6388 l 0.6715 0.6380 l 0.6725 0.6371 l 0.6735 0.6363 l 0.6745 0.6354 l 0.6755 0.6346 l 0.6765 0.6337 l 0.6775 0.6329 l 0.6785 0.6320 l 0.6795 0.6311 l 0.6805 0.6302 l 0.6815 0.6293 l 0.6825 0.6283 l 0.6835 0.6274 l 0.6845 0.6265 l 0.6855 0.6255 l 0.6865 0.6246 l 0.6875 0.6236 l 0.6885 0.6226 l 0.6895 0.6216 l 0.6905 0.6206 l 0.6915 0.6196 l 0.6925 0.6186 l 0.6935 0.6176 l 0.6945 0.6166 l 0.6955 0.6155 l 0.6965 0.6145 l 0.6975 0.6134 l 0.6985 0.6123 l 0.6995 0.6112 l 0.7005 0.6101 l 0.7015 0.6090 l 0.7025 0.6079 l 0.7035 0.6068 l 0.7045 0.6057 l 0.7055 0.6045 l 0.7065 0.6034 l 0.7075 0.6022 l 0.7085 0.6011 l 0.7095 0.5999 l 0.7105 0.5987 l 0.7115 0.5975 l 0.7125 0.5963 l 0.7135 0.5951 l 0.7145 0.5939 l 0.7155 0.5927 l 0.7165 0.5915 l 0.7175 0.5902 l 0.7185 0.5890 l 0.7195 0.5877 l 0.7205 0.5865 l 0.7215 0.5852 l 0.7225 0.5840 l 0.7235 0.5827 l 0.7245 0.5815 l 0.7255 0.5802 l 0.7265 0.5790 l 0.7275 0.5778 l 0.7285 0.5767 l 0.7295 0.5757 l 0.7305 0.5750 l 0.7315 0.5746 l 0.7325 0.5746 l 0.7335 0.5749 l 0.7345 0.5752 l 0.7355 0.5756 l 0.7365 0.5760 l 0.7375 0.5765 l 0.7385 0.5769 l 0.7395 0.5774 l 0.7405 0.5779 l 0.7415 0.5783 l 0.7425 0.5788 l 0.7435 0.5793 l 0.7445 0.5798 l 0.7455 0.5803 l 0.7465 0.5808 l 0.7475 0.5812 l 0.7485 0.5817 l 0.7495 0.5822 l 0.7505 0.5827 l 0.7515 0.5832 l 0.7525 0.5837 l 0.7535 0.5842 l 0.7545 0.5847 l 0.7555 0.5852 l 0.7565 0.5857 l 0.7575 0.5862 l 0.7585 0.5866 l 0.7595 0.5871 l 0.7605 0.5876 l 0.7615 0.5881 l 0.7625 0.5886 l 0.7635 0.5891 l 0.7645 0.5896 l 0.7655 0.5901 l 0.7665 0.5906 l 0.7675 0.5911 l 0.7685 0.5915 l 0.7695 0.5920 l 0.7705 0.5925 l 0.7715 0.5930 l 0.7725 0.5935 l 0.7735 0.5940 l 0.7745 0.5945 l 0.7756 0.5949 l 0.7766 0.5954 l 0.7776 0.5959 l 0.7786 0.5964 l 0.7796 0.5969 l 0.7806 0.5974 l 0.7816 0.5978 l 0.7826 0.5983 l 0.7836 0.5988 l 0.7846 0.5993 l 0.7856 0.5997 l 0.7866 0.6002 l 0.7876 0.6007 l 0.7886 0.6012 l 0.7896 0.6016 l 0.7906 0.6021 l 0.7916 0.6026 l 0.7926 0.6030 l 0.7936 0.6035 l 0.7946 0.6039 l 0.7956 0.6044 l 0.7966 0.6049 l 0.7976 0.6053 l 0.7986 0.6058 l 0.7996 0.6062 l 0.8006 0.6067 l 0.8016 0.6071 l 0.8026 0.6076 l 0.8036 0.6080 l 0.8046 0.6085 l 0.8056 0.6089 l 0.8066 0.6094 l 0.8076 0.6098 l 0.8086 0.6102 l 0.8096 0.6107 l 0.8106 0.6111 l 0.8116 0.6115 l 0.8126 0.6119 l 0.8136 0.6123 l 0.8146 0.6128 l 0.8156 0.6132 l 0.8166 0.6136 l 0.8176 0.6140 l 0.8186 0.6144 l 0.8196 0.6148 l 0.8206 0.6152 l 0.8216 0.6156 l 0.8226 0.6160 l 0.8236 0.6164 l 0.8246 0.6167 l 0.8256 0.6171 l 0.8266 0.6175 l 0.8276 0.6179 l 0.8286 0.6182 l 0.8296 0.6186 l 0.8306 0.6189 l 0.8316 0.6193 l 0.8326 0.6196 l 0.8336 0.6199 l 0.8346 0.6203 l 0.8356 0.6206 l 0.8366 0.6209 l 0.8376 0.6212 l 0.8386 0.6213 l 0.8396 0.6209 l 0.8406 0.6205 l 0.8416 0.6200 l 0.8426 0.6196 l 0.8436 0.6191 l 0.8446 0.6187 l 0.8456 0.6182 l 0.8466 0.6177 l 0.8476 0.6172 l 0.8486 0.6167 l 0.8496 0.6162 l 0.8506 0.6157 l 0.8516 0.6152 l 0.8526 0.6146 l 0.8536 0.6141 l 0.8546 0.6135 l 0.8556 0.6130 l 0.8566 0.6124 l 0.8576 0.6118 l 0.8586 0.6112 l 0.8596 0.6107 l 0.8606 0.6101 l 0.8616 0.6095 l 0.8626 0.6088 l 0.8636 0.6082 l 0.8646 0.6076 l 0.8656 0.6070 l 0.8666 0.6063 l 0.8676 0.6057 l 0.8686 0.6050 l 0.8696 0.6044 l 0.8706 0.6037 l 0.8716 0.6030 l 0.8726 0.6023 l 0.8736 0.6017 l 0.8746 0.6010 l 0.8756 0.6003 l 0.8766 0.5996 l 0.8776 0.5989 l 0.8786 0.5982 l 0.8796 0.5975 l 0.8806 0.5968 l 0.8816 0.5960 l 0.8826 0.5953 l 0.8836 0.5946 l 0.8846 0.5939 l 0.8856 0.5932 l 0.8866 0.5924 l 0.8876 0.5917 l 0.8886 0.5910 l 0.8896 0.5902 l 0.8906 0.5895 l 0.8916 0.5888 l 0.8926 0.5881 l 0.8936 0.5873 l 0.8946 0.5866 l 0.8956 0.5859 l 0.8966 0.5852 l 0.8976 0.5844 l 0.8986 0.5837 l 0.8996 0.5830 l 0.9006 0.5823 l 0.9016 0.5816 l 0.9026 0.5809 l 0.9036 0.5802 l 0.9046 0.5795 l 0.9056 0.5788 l 0.9066 0.5782 l 0.9076 0.5775 l 0.9086 0.5769 l 0.9096 0.5762 l 0.9106 0.5756 l 0.9116 0.5749 l 0.9126 0.5743 l 0.9136 0.5737 l 0.9146 0.5731 l 0.9156 0.5725 l 0.9166 0.5719 l 0.9176 0.5714 l 0.9186 0.5708 l 0.9196 0.5703 l 0.9206 0.5698 l 0.9216 0.5693 l 0.9226 0.5688 l 0.9236 0.5683 l 0.9246 0.5678 l 0.9256 0.5674 l 0.9266 0.5670 l 0.9276 0.5665 l 0.9286 0.5662 l 0.9296 0.5658 l 0.9306 0.5654 l 0.9317 0.5651 l 0.9327 0.5648 l 0.9337 0.5644 l 0.9347 0.5642 l 0.9357 0.5639 l 0.9367 0.5637 l 0.9377 0.5634 l 0.9387 0.5632 l 0.9397 0.5631 l 0.9407 0.5629 l 0.9417 0.5628 l 0.9427 0.5626 l 0.9437 0.5625 l 0.9447 0.5625 l 0.9457 0.5624 l 0.9467 0.5624 l 0.9477 0.5624 l 0.9487 0.5624 l 0.9497 0.5624 l 0.9507 0.5624 l 0.9517 0.5624 l 0.9527 0.5625 l 0.9537 0.5625 l 0.9547 0.5626 l 0.9557 0.5627 l 0.9566 0.5628 l 0.9576 0.5629 l 0.9586 0.5630 l 0.9596 0.5631 l 0.9606 0.5632 l 0.9616 0.5633 l 0.9626 0.5635 l 0.9636 0.5636 l 0.9646 0.5638 l 0.9656 0.5639 l 0.9666 0.5641 l 0.9676 0.5643 l 0.9686 0.5645 l 0.9696 0.5647 l 0.9706 0.5649 l 0.9716 0.5651 l 0.9726 0.5653 l 0.9736 0.5655 l 0.9746 0.5658 l 0.9756 0.5660 l 0.9766 0.5662 l 0.9776 0.5665 l 0.9786 0.5668 l 0.9796 0.5670 l 0.9806 0.5673 l 0.9816 0.5676 l 0.9826 0.5679 l 0.9836 0.5681 l 0.9846 0.5684 l 0.9856 0.5687 l 0.9866 0.5690 l 0.9876 0.5693 l 0.9886 0.5696 l 0.9896 0.5700 l 0.9906 0.5703 l 0.9916 0.5706 l 0.9926 0.5709 l 0.9936 0.5712 l 0.9946 0.5716 l 0.9956 0.5719 l 0.9966 0.5722 l 0.9976 0.5725 l 0.9986 0.5729 l 0.9996 0.5732 l 1.0006 0.5735 l 1.0016 0.5739 l 1.0026 0.5742 l 1.0036 0.5745 l 1.0046 0.5749 l 1.0056 0.5752 l 1.0066 0.5755 l 1.0076 0.5758 l 1.0086 0.5762 l 1.0096 0.5765 l 1.0106 0.5768 l 1.0116 0.5771 l 1.0126 0.5775 l 1.0136 0.5778 l 1.0146 0.5781 l 1.0156 0.5784 l 1.0166 0.5787 l 1.0176 0.5790 l 1.0186 0.5793 l 1.0196 0.5796 l 1.0206 0.5799 l 1.0216 0.5802 l 1.0226 0.5804 l 1.0236 0.5807 l 1.0246 0.5810 l 1.0256 0.5812 l 1.0266 0.5815 l 1.0276 0.5817 l 1.0286 0.5820 l 1.0296 0.5822 l 1.0306 0.5825 l 1.0316 0.5827 l 1.0326 0.5829 l 1.0336 0.5831 l 1.0346 0.5833 l 1.0355 0.5835 l 1.0365 0.5837 l 1.0375 0.5839 l 1.0385 0.5841 l 1.0395 0.5843 l 1.0405 0.5844 l 1.0415 0.5846 l 1.0425 0.5848 l 1.0435 0.5849 l 1.0445 0.5850 l 1.0455 0.5852 l 1.0465 0.5853 l 1.0475 0.5854 l 1.0485 0.5855 l 1.0495 0.5856 l 1.0505 0.5857 l 1.0515 0.5858 l 1.0525 0.5859 l 1.0535 0.5859 l 1.0545 0.5860 l 1.0555 0.5860 l 1.0565 0.5861 l 1.0575 0.5861 l 1.0585 0.5861 l 1.0595 0.5862 l 1.0605 0.5862 l 1.0615 0.5862 l 1.0625 0.5862 l 1.0635 0.5862 l 1.0645 0.5862 l 1.0655 0.5861 l 1.0665 0.5861 l 1.0675 0.5861 l 1.0685 0.5860 l 1.0695 0.5860 l 1.0705 0.5859 l 1.0715 0.5859 l 1.0725 0.5858 l 1.0735 0.5857 l 1.0745 0.5857 l 1.0755 0.5856 l 1.0765 0.5855 l 1.0775 0.5854 l 1.0785 0.5853 l 1.0795 0.5852 l 1.0805 0.5851 l 1.0815 0.5849 l 1.0825 0.5848 l 1.0835 0.5847 l 1.0845 0.5846 l 1.0855 0.5844 l 1.0865 0.5843 l 1.0875 0.5841 l 1.0885 0.5840 l 1.0895 0.5838 l 1.0905 0.5837 l 1.0915 0.5835 l 1.0925 0.5834 l 1.0935 0.5832 l 1.0945 0.5830 l 1.0955 0.5829 l 1.0965 0.5827 l 1.0975 0.5825 l 1.0985 0.5824 l 1.0995 0.5822 l 1.1005 0.5820 l 1.1015 0.5818 l 1.1025 0.5817 l 1.1035 0.5815 l 1.1045 0.5813 l 1.1055 0.5811 l 1.1065 0.5810 l 1.1075 0.5808 l 1.1085 0.5806 l 1.1095 0.5805 l 1.1105 0.5803 l 1.1115 0.5801 l 1.1125 0.5799 l 1.1135 0.5798 l 1.1144 0.5796 l 1.1154 0.5795 l 1.1164 0.5793 l 1.1174 0.5791 l 1.1184 0.5790 l 1.1194 0.5788 l 1.1204 0.5787 l 1.1214 0.5785 l 1.1224 0.5784 l 1.1234 0.5783 l 1.1244 0.5781 l 1.1254 0.5780 l 1.1264 0.5779 l 1.1274 0.5778 l 1.1284 0.5776 l 1.1294 0.5775 l 1.1304 0.5774 l 1.1314 0.5773 l 1.1324 0.5772 l 1.1334 0.5771 l 1.1344 0.5771 l 1.1354 0.5770 l 1.1364 0.5769 l 1.1374 0.5768 l 1.1384 0.5768 l 1.1394 0.5767 l 1.1404 0.5767 l 1.1414 0.5766 l 1.1424 0.5766 l 1.1434 0.5765 l 1.1444 0.5765 l 1.1454 0.5765 l 1.1464 0.5765 l 1.1474 0.5765 l 1.1484 0.5765 l s n 0.1500 0.5624 m 0.1510 0.5624 l 0.1520 0.5624 l 0.1530 0.5625 l 0.1540 0.5627 l 0.1550 0.5628 l 0.1560 0.5630 l 0.1570 0.5633 l 0.1580 0.5635 l 0.1590 0.5639 l 0.1600 0.5642 l 0.1610 0.5646 l 0.1620 0.5650 l 0.1630 0.5655 l 0.1640 0.5660 l 0.1650 0.5665 l 0.1660 0.5670 l 0.1670 0.5676 l 0.1680 0.5683 l 0.1690 0.5689 l 0.1700 0.5696 l 0.1710 0.5703 l 0.1720 0.5711 l 0.1730 0.5719 l 0.1740 0.5727 l 0.1750 0.5735 l 0.1760 0.5744 l 0.1770 0.5753 l 0.1780 0.5762 l 0.1790 0.5771 l 0.1800 0.5781 l 0.1810 0.5791 l 0.1820 0.5801 l 0.1830 0.5812 l 0.1840 0.5823 l 0.1850 0.5834 l 0.1860 0.5845 l 0.1870 0.5856 l 0.1880 0.5868 l 0.1890 0.5879 l 0.1900 0.5891 l 0.1910 0.5903 l 0.1920 0.5916 l 0.1930 0.5928 l 0.1940 0.5941 l 0.1949 0.5953 l 0.1959 0.5966 l 0.1969 0.5979 l 0.1979 0.5992 l 0.1989 0.6006 l 0.1999 0.6019 l 0.2009 0.6032 l 0.2019 0.6046 l 0.2029 0.6060 l 0.2039 0.6074 l 0.2049 0.6087 l 0.2059 0.6101 l 0.2069 0.6115 l 0.2079 0.6129 l 0.2089 0.6143 l 0.2099 0.6157 l 0.2109 0.6172 l 0.2119 0.6186 l 0.2129 0.6200 l 0.2139 0.6214 l 0.2149 0.6229 l 0.2159 0.6243 l 0.2169 0.6257 l 0.2179 0.6271 l 0.2189 0.6286 l 0.2199 0.6300 l 0.2209 0.6314 l 0.2219 0.6328 l 0.2229 0.6343 l 0.2239 0.6341 l 0.2249 0.6340 l 0.2259 0.6338 l 0.2269 0.6336 l 0.2279 0.6334 l 0.2289 0.6332 l 0.2299 0.6329 l 0.2309 0.6327 l 0.2319 0.6325 l 0.2329 0.6323 l 0.2339 0.6320 l 0.2349 0.6318 l 0.2359 0.6315 l 0.2369 0.6313 l 0.2379 0.6310 l 0.2389 0.6308 l 0.2399 0.6305 l 0.2409 0.6302 l 0.2419 0.6299 l 0.2429 0.6296 l 0.2439 0.6293 l 0.2449 0.6290 l 0.2459 0.6287 l 0.2469 0.6284 l 0.2479 0.6281 l 0.2489 0.6277 l 0.2499 0.6279 l 0.2509 0.6286 l 0.2519 0.6292 l 0.2529 0.6298 l 0.2539 0.6304 l 0.2549 0.6309 l 0.2559 0.6315 l 0.2569 0.6321 l 0.2579 0.6326 l 0.2589 0.6332 l 0.2599 0.6337 l 0.2609 0.6342 l 0.2619 0.6347 l 0.2629 0.6352 l 0.2639 0.6357 l 0.2649 0.6362 l 0.2659 0.6367 l 0.2669 0.6371 l 0.2679 0.6376 l 0.2689 0.6380 l 0.2699 0.6384 l 0.2709 0.6389 l 0.2719 0.6393 l 0.2729 0.6397 l 0.2739 0.6401 l 0.2749 0.6404 l 0.2759 0.6408 l 0.2769 0.6412 l 0.2779 0.6415 l 0.2789 0.6419 l 0.2799 0.6422 l 0.2809 0.6426 l 0.2819 0.6429 l 0.2829 0.6432 l 0.2838 0.6435 l 0.2848 0.6438 l 0.2858 0.6441 l 0.2868 0.6444 l 0.2878 0.6447 l 0.2888 0.6450 l 0.2898 0.6452 l 0.2908 0.6455 l 0.2918 0.6458 l 0.2928 0.6460 l 0.2938 0.6463 l 0.2948 0.6465 l 0.2958 0.6467 l 0.2968 0.6470 l 0.2978 0.6472 l 0.2988 0.6474 l 0.2998 0.6477 l 0.3008 0.6479 l 0.3018 0.6481 l 0.3028 0.6483 l 0.3038 0.6485 l 0.3048 0.6487 l 0.3058 0.6489 l 0.3068 0.6491 l 0.3078 0.6493 l 0.3088 0.6496 l 0.3098 0.6498 l 0.3108 0.6500 l 0.3118 0.6502 l 0.3128 0.6504 l 0.3138 0.6506 l 0.3148 0.6508 l 0.3158 0.6510 l 0.3168 0.6512 l 0.3178 0.6514 l 0.3188 0.6516 l 0.3198 0.6518 l 0.3208 0.6521 l 0.3218 0.6523 l 0.3228 0.6525 l 0.3238 0.6527 l 0.3248 0.6529 l 0.3258 0.6532 l 0.3268 0.6534 l 0.3278 0.6537 l 0.3288 0.6539 l 0.3298 0.6541 l 0.3308 0.6544 l 0.3318 0.6547 l 0.3328 0.6549 l 0.3338 0.6552 l 0.3348 0.6555 l 0.3358 0.6557 l 0.3368 0.6560 l 0.3378 0.6563 l 0.3388 0.6566 l 0.3398 0.6569 l 0.3408 0.6572 l 0.3418 0.6575 l 0.3428 0.6578 l 0.3438 0.6581 l 0.3448 0.6584 l 0.3458 0.6587 l 0.3468 0.6590 l 0.3478 0.6593 l 0.3488 0.6597 l 0.3498 0.6600 l 0.3508 0.6603 l 0.3518 0.6607 l 0.3528 0.6610 l 0.3538 0.6613 l 0.3548 0.6617 l 0.3558 0.6620 l 0.3568 0.6624 l 0.3578 0.6627 l 0.3588 0.6631 l 0.3598 0.6634 l 0.3608 0.6638 l 0.3618 0.6641 l 0.3628 0.6645 l 0.3638 0.6648 l 0.3648 0.6652 l 0.3658 0.6655 l 0.3668 0.6659 l 0.3678 0.6662 l 0.3688 0.6665 l 0.3698 0.6669 l 0.3708 0.6672 l 0.3717 0.6676 l 0.3727 0.6679 l 0.3737 0.6682 l 0.3747 0.6685 l 0.3757 0.6689 l 0.3767 0.6692 l 0.3777 0.6695 l 0.3787 0.6698 l 0.3797 0.6701 l 0.3807 0.6704 l 0.3817 0.6707 l 0.3827 0.6710 l 0.3837 0.6713 l 0.3847 0.6715 l 0.3857 0.6718 l 0.3867 0.6721 l 0.3877 0.6723 l 0.3887 0.6726 l 0.3897 0.6728 l 0.3907 0.6730 l 0.3917 0.6733 l 0.3927 0.6735 l 0.3937 0.6737 l 0.3947 0.6739 l 0.3957 0.6741 l 0.3967 0.6743 l 0.3977 0.6744 l 0.3987 0.6746 l 0.3997 0.6748 l 0.4007 0.6745 l 0.4017 0.6738 l 0.4027 0.6731 l 0.4037 0.6725 l 0.4047 0.6718 l 0.4057 0.6711 l 0.4067 0.6704 l 0.4077 0.6697 l 0.4087 0.6691 l 0.4097 0.6684 l 0.4107 0.6677 l 0.4117 0.6671 l 0.4127 0.6666 l 0.4137 0.6662 l 0.4147 0.6660 l 0.4157 0.6660 l 0.4167 0.6660 l 0.4177 0.6660 l 0.4187 0.6660 l 0.4197 0.6660 l 0.4207 0.6660 l 0.4217 0.6661 l 0.4227 0.6661 l 0.4237 0.6661 l 0.4247 0.6661 l 0.4257 0.6661 l 0.4267 0.6662 l 0.4277 0.6662 l 0.4287 0.6662 l 0.4297 0.6663 l 0.4307 0.6663 l 0.4317 0.6663 l 0.4327 0.6664 l 0.4337 0.6664 l 0.4347 0.6665 l 0.4357 0.6665 l 0.4367 0.6666 l 0.4377 0.6666 l 0.4387 0.6667 l 0.4397 0.6667 l 0.4407 0.6668 l 0.4417 0.6668 l 0.4427 0.6669 l 0.4437 0.6670 l 0.4447 0.6670 l 0.4457 0.6671 l 0.4467 0.6672 l 0.4477 0.6672 l 0.4487 0.6673 l 0.4497 0.6674 l 0.4507 0.6674 l 0.4517 0.6675 l 0.4527 0.6676 l 0.4537 0.6677 l 0.4547 0.6678 l 0.4556 0.6678 l 0.4566 0.6679 l 0.4576 0.6680 l 0.4586 0.6681 l 0.4596 0.6682 l 0.4606 0.6683 l 0.4616 0.6684 l 0.4626 0.6685 l 0.4636 0.6685 l 0.4646 0.6686 l 0.4656 0.6687 l 0.4666 0.6688 l 0.4676 0.6689 l 0.4686 0.6690 l 0.4696 0.6691 l 0.4706 0.6692 l 0.4716 0.6693 l 0.4726 0.6694 l 0.4736 0.6695 l 0.4746 0.6694 l 0.4756 0.6692 l 0.4766 0.6691 l 0.4776 0.6689 l 0.4786 0.6687 l 0.4796 0.6685 l 0.4806 0.6684 l 0.4816 0.6682 l 0.4826 0.6680 l 0.4836 0.6678 l 0.4846 0.6677 l 0.4856 0.6675 l 0.4866 0.6673 l 0.4876 0.6671 l 0.4886 0.6670 l 0.4896 0.6668 l 0.4906 0.6666 l 0.4916 0.6665 l 0.4926 0.6663 l 0.4936 0.6661 l 0.4946 0.6660 l 0.4956 0.6658 l 0.4966 0.6657 l 0.4976 0.6655 l 0.4986 0.6654 l 0.4996 0.6652 l 0.5006 0.6651 l 0.5016 0.6649 l 0.5026 0.6648 l 0.5036 0.6646 l 0.5046 0.6645 l 0.5056 0.6645 l 0.5066 0.6645 l 0.5076 0.6646 l 0.5086 0.6647 l 0.5096 0.6647 l 0.5106 0.6648 l 0.5116 0.6649 l 0.5126 0.6649 l 0.5136 0.6650 l 0.5146 0.6651 l 0.5156 0.6652 l 0.5166 0.6652 l 0.5176 0.6653 l 0.5186 0.6654 l 0.5196 0.6655 l 0.5206 0.6656 l 0.5216 0.6657 l 0.5226 0.6657 l 0.5236 0.6658 l 0.5246 0.6659 l 0.5256 0.6660 l 0.5266 0.6661 l 0.5276 0.6662 l 0.5286 0.6663 l 0.5296 0.6664 l 0.5306 0.6665 l 0.5316 0.6666 l 0.5326 0.6666 l 0.5336 0.6667 l 0.5345 0.6668 l 0.5355 0.6669 l 0.5365 0.6670 l 0.5375 0.6671 l 0.5385 0.6672 l 0.5395 0.6673 l 0.5405 0.6674 l 0.5415 0.6675 l 0.5425 0.6676 l 0.5435 0.6677 l 0.5445 0.6678 l 0.5455 0.6679 l 0.5465 0.6680 l 0.5475 0.6681 l 0.5485 0.6682 l 0.5495 0.6683 l 0.5505 0.6684 l 0.5515 0.6685 l 0.5525 0.6686 l 0.5535 0.6687 l 0.5545 0.6689 l 0.5555 0.6690 l 0.5565 0.6691 l 0.5575 0.6692 l 0.5585 0.6693 l 0.5595 0.6694 l 0.5605 0.6695 l 0.5615 0.6695 l 0.5625 0.6696 l 0.5635 0.6697 l 0.5645 0.6698 l 0.5655 0.6699 l 0.5665 0.6700 l 0.5675 0.6701 l 0.5685 0.6702 l 0.5695 0.6703 l 0.5705 0.6704 l 0.5715 0.6705 l 0.5725 0.6706 l 0.5735 0.6707 l 0.5745 0.6707 l 0.5755 0.6708 l 0.5765 0.6709 l 0.5775 0.6710 l 0.5785 0.6711 l 0.5795 0.6712 l 0.5805 0.6712 l 0.5815 0.6713 l 0.5825 0.6714 l 0.5835 0.6715 l 0.5845 0.6715 l 0.5855 0.6716 l 0.5865 0.6717 l 0.5875 0.6717 l 0.5885 0.6718 l 0.5895 0.6718 l 0.5905 0.6719 l 0.5915 0.6720 l 0.5925 0.6720 l 0.5935 0.6721 l 0.5945 0.6721 l 0.5955 0.6722 l 0.5965 0.6722 l 0.5975 0.6723 l 0.5985 0.6723 l 0.5995 0.6723 l 0.6005 0.6724 l 0.6015 0.6724 l 0.6025 0.6724 l 0.6035 0.6725 l 0.6045 0.6725 l 0.6055 0.6725 l 0.6065 0.6725 l 0.6075 0.6726 l 0.6085 0.6726 l 0.6095 0.6726 l 0.6105 0.6726 l 0.6115 0.6726 l 0.6125 0.6726 l 0.6134 0.6726 l 0.6144 0.6726 l 0.6154 0.6726 l 0.6164 0.6724 l 0.6174 0.6720 l 0.6184 0.6715 l 0.6194 0.6710 l 0.6205 0.6705 l 0.6215 0.6700 l 0.6225 0.6695 l 0.6235 0.6690 l 0.6245 0.6685 l 0.6255 0.6680 l 0.6265 0.6674 l 0.6275 0.6669 l 0.6285 0.6664 l 0.6295 0.6658 l 0.6305 0.6653 l 0.6315 0.6648 l 0.6325 0.6642 l 0.6335 0.6637 l 0.6345 0.6631 l 0.6355 0.6625 l 0.6365 0.6620 l 0.6375 0.6614 l 0.6385 0.6608 l 0.6395 0.6602 l 0.6405 0.6600 l 0.6415 0.6598 l 0.6425 0.6596 l 0.6435 0.6595 l 0.6445 0.6593 l 0.6455 0.6592 l 0.6465 0.6590 l 0.6475 0.6588 l 0.6485 0.6586 l 0.6495 0.6584 l 0.6505 0.6582 l 0.6515 0.6580 l 0.6525 0.6579 l 0.6535 0.6576 l 0.6545 0.6574 l 0.6555 0.6572 l 0.6565 0.6570 l 0.6575 0.6568 l 0.6585 0.6566 l 0.6595 0.6564 l 0.6605 0.6562 l 0.6615 0.6559 l 0.6625 0.6557 l 0.6635 0.6555 l 0.6645 0.6552 l 0.6655 0.6550 l 0.6665 0.6548 l 0.6675 0.6545 l 0.6685 0.6543 l 0.6695 0.6541 l 0.6705 0.6538 l 0.6715 0.6536 l 0.6725 0.6533 l 0.6735 0.6531 l 0.6745 0.6529 l 0.6755 0.6526 l 0.6765 0.6524 l 0.6775 0.6521 l 0.6785 0.6519 l 0.6795 0.6516 l 0.6805 0.6514 l 0.6815 0.6512 l 0.6825 0.6509 l 0.6835 0.6507 l 0.6845 0.6504 l 0.6855 0.6502 l 0.6865 0.6500 l 0.6875 0.6497 l 0.6885 0.6495 l 0.6895 0.6493 l 0.6905 0.6490 l 0.6915 0.6488 l 0.6925 0.6486 l 0.6935 0.6483 l 0.6945 0.6481 l 0.6955 0.6479 l 0.6965 0.6477 l 0.6975 0.6474 l 0.6985 0.6472 l 0.6995 0.6470 l 0.7005 0.6468 l 0.7015 0.6466 l 0.7025 0.6464 l 0.7035 0.6461 l 0.7045 0.6459 l 0.7055 0.6457 l 0.7065 0.6455 l 0.7075 0.6453 l 0.7085 0.6451 l 0.7095 0.6449 l 0.7105 0.6448 l 0.7115 0.6446 l 0.7125 0.6444 l 0.7135 0.6442 l 0.7145 0.6440 l 0.7155 0.6438 l 0.7165 0.6437 l 0.7175 0.6435 l 0.7185 0.6433 l 0.7195 0.6431 l 0.7205 0.6430 l 0.7215 0.6428 l 0.7225 0.6426 l 0.7235 0.6425 l 0.7245 0.6423 l 0.7255 0.6422 l 0.7265 0.6420 l 0.7275 0.6418 l 0.7285 0.6417 l 0.7295 0.6415 l 0.7305 0.6414 l 0.7315 0.6413 l 0.7325 0.6411 l 0.7335 0.6410 l 0.7345 0.6408 l 0.7355 0.6407 l 0.7365 0.6405 l 0.7375 0.6404 l 0.7385 0.6403 l 0.7395 0.6401 l 0.7405 0.6400 l 0.7415 0.6399 l 0.7425 0.6398 l 0.7435 0.6396 l 0.7445 0.6395 l 0.7455 0.6394 l 0.7465 0.6393 l 0.7475 0.6391 l 0.7485 0.6390 l 0.7495 0.6389 l 0.7505 0.6388 l 0.7515 0.6387 l 0.7525 0.6385 l 0.7535 0.6384 l 0.7545 0.6383 l 0.7555 0.6382 l 0.7565 0.6381 l 0.7575 0.6380 l 0.7585 0.6379 l 0.7595 0.6377 l 0.7605 0.6376 l 0.7615 0.6375 l 0.7625 0.6374 l 0.7635 0.6373 l 0.7645 0.6372 l 0.7655 0.6371 l 0.7665 0.6369 l 0.7675 0.6368 l 0.7685 0.6367 l 0.7695 0.6366 l 0.7705 0.6365 l 0.7715 0.6364 l 0.7725 0.6363 l 0.7735 0.6361 l 0.7745 0.6360 l 0.7756 0.6359 l 0.7766 0.6358 l 0.7776 0.6357 l 0.7786 0.6355 l 0.7796 0.6354 l 0.7806 0.6353 l 0.7816 0.6352 l 0.7826 0.6350 l 0.7836 0.6349 l 0.7846 0.6348 l 0.7856 0.6346 l 0.7866 0.6345 l 0.7876 0.6344 l 0.7886 0.6342 l 0.7896 0.6341 l 0.7906 0.6339 l 0.7916 0.6338 l 0.7926 0.6336 l 0.7936 0.6335 l 0.7946 0.6333 l 0.7956 0.6332 l 0.7966 0.6330 l 0.7976 0.6328 l 0.7986 0.6327 l 0.7996 0.6325 l 0.8006 0.6323 l 0.8016 0.6321 l 0.8026 0.6319 l 0.8036 0.6317 l 0.8046 0.6315 l 0.8056 0.6313 l 0.8066 0.6311 l 0.8076 0.6309 l 0.8086 0.6307 l 0.8096 0.6305 l 0.8106 0.6303 l 0.8116 0.6300 l 0.8126 0.6298 l 0.8136 0.6296 l 0.8146 0.6293 l 0.8156 0.6291 l 0.8166 0.6288 l 0.8176 0.6285 l 0.8186 0.6283 l 0.8196 0.6280 l 0.8206 0.6277 l 0.8216 0.6274 l 0.8226 0.6271 l 0.8236 0.6268 l 0.8246 0.6265 l 0.8256 0.6262 l 0.8266 0.6259 l 0.8276 0.6255 l 0.8286 0.6252 l 0.8296 0.6248 l 0.8306 0.6245 l 0.8316 0.6241 l 0.8326 0.6237 l 0.8336 0.6234 l 0.8346 0.6230 l 0.8356 0.6226 l 0.8366 0.6222 l 0.8376 0.6218 l 0.8386 0.6215 l 0.8396 0.6218 l 0.8406 0.6221 l 0.8416 0.6224 l 0.8426 0.6227 l 0.8436 0.6229 l 0.8446 0.6232 l 0.8456 0.6234 l 0.8466 0.6237 l 0.8476 0.6239 l 0.8486 0.6241 l 0.8496 0.6243 l 0.8506 0.6244 l 0.8516 0.6246 l 0.8526 0.6247 l 0.8536 0.6248 l 0.8546 0.6249 l 0.8556 0.6250 l 0.8566 0.6250 l 0.8576 0.6250 l 0.8586 0.6250 l 0.8596 0.6249 l 0.8606 0.6247 l 0.8616 0.6246 l 0.8626 0.6243 l 0.8636 0.6240 l 0.8646 0.6237 l 0.8656 0.6233 l 0.8666 0.6228 l 0.8676 0.6223 l 0.8686 0.6218 l 0.8696 0.6212 l 0.8706 0.6205 l 0.8716 0.6199 l 0.8726 0.6191 l 0.8736 0.6184 l 0.8746 0.6176 l 0.8756 0.6168 l 0.8766 0.6159 l 0.8776 0.6151 l 0.8786 0.6142 l 0.8796 0.6133 l 0.8806 0.6124 l 0.8816 0.6115 l 0.8826 0.6105 l 0.8836 0.6096 l 0.8846 0.6086 l 0.8856 0.6076 l 0.8866 0.6066 l 0.8876 0.6056 l 0.8886 0.6046 l 0.8896 0.6036 l 0.8906 0.6026 l 0.8916 0.6015 l 0.8926 0.6005 l 0.8936 0.5995 l 0.8946 0.5985 l 0.8956 0.5974 l 0.8966 0.5964 l 0.8976 0.5954 l 0.8986 0.5943 l 0.8996 0.5933 l 0.9006 0.5923 l 0.9016 0.5912 l 0.9026 0.5902 l 0.9036 0.5892 l 0.9046 0.5882 l 0.9056 0.5872 l 0.9066 0.5862 l 0.9076 0.5852 l 0.9086 0.5842 l 0.9096 0.5833 l 0.9106 0.5823 l 0.9116 0.5814 l 0.9126 0.5805 l 0.9136 0.5796 l 0.9146 0.5787 l 0.9156 0.5778 l 0.9166 0.5769 l 0.9176 0.5761 l 0.9186 0.5752 l 0.9196 0.5744 l 0.9206 0.5736 l 0.9216 0.5729 l 0.9226 0.5721 l 0.9236 0.5714 l 0.9246 0.5707 l 0.9256 0.5700 l 0.9266 0.5694 l 0.9276 0.5688 l 0.9286 0.5682 l 0.9296 0.5676 l 0.9306 0.5670 l 0.9317 0.5665 l 0.9327 0.5660 l 0.9337 0.5656 l 0.9347 0.5651 l 0.9357 0.5647 l 0.9367 0.5643 l 0.9377 0.5640 l 0.9387 0.5637 l 0.9397 0.5634 l 0.9407 0.5632 l 0.9417 0.5630 l 0.9427 0.5628 l 0.9437 0.5626 l 0.9447 0.5625 l 0.9457 0.5624 l 0.9467 0.5624 l 0.9477 0.5624 l 0.9487 0.5624 l 0.9497 0.5624 l 0.9507 0.5624 l 0.9517 0.5624 l 0.9527 0.5625 l 0.9537 0.5625 l 0.9547 0.5626 l 0.9557 0.5627 l 0.9566 0.5628 l 0.9576 0.5629 l 0.9586 0.5630 l 0.9596 0.5631 l 0.9606 0.5632 l 0.9616 0.5633 l 0.9626 0.5635 l 0.9636 0.5636 l 0.9646 0.5638 l 0.9656 0.5639 l 0.9666 0.5641 l 0.9676 0.5643 l 0.9686 0.5645 l 0.9696 0.5647 l 0.9706 0.5649 l 0.9716 0.5651 l 0.9726 0.5653 l 0.9736 0.5655 l 0.9746 0.5658 l 0.9756 0.5660 l 0.9766 0.5662 l 0.9776 0.5665 l 0.9786 0.5668 l 0.9796 0.5670 l 0.9806 0.5673 l 0.9816 0.5676 l 0.9826 0.5679 l 0.9836 0.5681 l 0.9846 0.5684 l 0.9856 0.5687 l 0.9866 0.5690 l 0.9876 0.5693 l 0.9886 0.5696 l 0.9896 0.5700 l 0.9906 0.5703 l 0.9916 0.5706 l 0.9926 0.5709 l 0.9936 0.5712 l 0.9946 0.5716 l 0.9956 0.5719 l 0.9966 0.5722 l 0.9976 0.5725 l 0.9986 0.5729 l 0.9996 0.5732 l 1.0006 0.5735 l 1.0016 0.5739 l 1.0026 0.5742 l 1.0036 0.5745 l 1.0046 0.5749 l 1.0056 0.5752 l 1.0066 0.5755 l 1.0076 0.5758 l 1.0086 0.5762 l 1.0096 0.5765 l 1.0106 0.5768 l 1.0116 0.5771 l 1.0126 0.5775 l 1.0136 0.5778 l 1.0146 0.5781 l 1.0156 0.5784 l 1.0166 0.5787 l 1.0176 0.5790 l 1.0186 0.5793 l 1.0196 0.5796 l 1.0206 0.5799 l 1.0216 0.5802 l 1.0226 0.5804 l 1.0236 0.5807 l 1.0246 0.5810 l 1.0256 0.5812 l 1.0266 0.5815 l 1.0276 0.5817 l 1.0286 0.5820 l 1.0296 0.5822 l 1.0306 0.5825 l 1.0316 0.5827 l 1.0326 0.5829 l 1.0336 0.5831 l 1.0346 0.5833 l 1.0355 0.5835 l 1.0365 0.5837 l 1.0375 0.5839 l 1.0385 0.5841 l 1.0395 0.5843 l 1.0405 0.5844 l 1.0415 0.5846 l 1.0425 0.5848 l 1.0435 0.5849 l 1.0445 0.5850 l 1.0455 0.5852 l 1.0465 0.5853 l 1.0475 0.5854 l 1.0485 0.5855 l 1.0495 0.5856 l 1.0505 0.5857 l 1.0515 0.5858 l 1.0525 0.5859 l 1.0535 0.5859 l 1.0545 0.5860 l 1.0555 0.5860 l 1.0565 0.5861 l 1.0575 0.5861 l 1.0585 0.5861 l 1.0595 0.5862 l 1.0605 0.5862 l 1.0615 0.5862 l 1.0625 0.5862 l 1.0635 0.5862 l 1.0645 0.5862 l 1.0655 0.5861 l 1.0665 0.5861 l 1.0675 0.5861 l 1.0685 0.5860 l 1.0695 0.5860 l 1.0705 0.5859 l 1.0715 0.5859 l 1.0725 0.5858 l 1.0735 0.5857 l 1.0745 0.5857 l 1.0755 0.5856 l 1.0765 0.5855 l 1.0775 0.5854 l 1.0785 0.5853 l 1.0795 0.5852 l 1.0805 0.5851 l 1.0815 0.5849 l 1.0825 0.5848 l 1.0835 0.5847 l 1.0845 0.5846 l 1.0855 0.5844 l 1.0865 0.5843 l 1.0875 0.5841 l 1.0885 0.5840 l 1.0895 0.5838 l 1.0905 0.5837 l 1.0915 0.5835 l 1.0925 0.5834 l 1.0935 0.5832 l 1.0945 0.5830 l 1.0955 0.5829 l 1.0965 0.5827 l 1.0975 0.5825 l 1.0985 0.5824 l 1.0995 0.5822 l 1.1005 0.5820 l 1.1015 0.5818 l 1.1025 0.5817 l 1.1035 0.5815 l 1.1045 0.5813 l 1.1055 0.5811 l 1.1065 0.5810 l 1.1075 0.5808 l 1.1085 0.5806 l 1.1095 0.5805 l 1.1105 0.5803 l 1.1115 0.5801 l 1.1125 0.5799 l 1.1135 0.5798 l 1.1144 0.5796 l 1.1154 0.5795 l 1.1164 0.5793 l 1.1174 0.5791 l 1.1184 0.5790 l 1.1194 0.5788 l 1.1204 0.5787 l 1.1214 0.5785 l 1.1224 0.5784 l 1.1234 0.5783 l 1.1244 0.5781 l 1.1254 0.5780 l 1.1264 0.5779 l 1.1274 0.5778 l 1.1284 0.5776 l 1.1294 0.5775 l 1.1304 0.5774 l 1.1314 0.5773 l 1.1324 0.5772 l 1.1334 0.5771 l 1.1344 0.5771 l 1.1354 0.5770 l 1.1364 0.5769 l 1.1374 0.5768 l 1.1384 0.5768 l 1.1394 0.5767 l 1.1404 0.5767 l 1.1414 0.5766 l 1.1424 0.5766 l 1.1434 0.5765 l 1.1444 0.5765 l 1.1454 0.5765 l 1.1464 0.5765 l 1.1474 0.5765 l 1.1484 0.5765 l s n 0.1500 0.6389 m 0.1510 0.6389 l 0.1520 0.6389 l 0.1530 0.6389 l 0.1540 0.6389 l 0.1550 0.6389 l 0.1560 0.6389 l 0.1570 0.6389 l 0.1580 0.6388 l 0.1590 0.6388 l 0.1600 0.6388 l 0.1610 0.6388 l 0.1620 0.6388 l 0.1630 0.6388 l 0.1640 0.6388 l 0.1650 0.6388 l 0.1660 0.6388 l 0.1670 0.6387 l 0.1680 0.6387 l 0.1690 0.6387 l 0.1700 0.6387 l 0.1710 0.6387 l 0.1720 0.6386 l 0.1730 0.6386 l 0.1740 0.6386 l 0.1750 0.6386 l 0.1760 0.6385 l 0.1770 0.6385 l 0.1780 0.6385 l 0.1790 0.6384 l 0.1800 0.6384 l 0.1810 0.6384 l 0.1820 0.6383 l 0.1830 0.6383 l 0.1840 0.6383 l 0.1850 0.6382 l 0.1860 0.6382 l 0.1870 0.6381 l 0.1880 0.6381 l 0.1890 0.6380 l 0.1900 0.6380 l 0.1910 0.6379 l 0.1920 0.6378 l 0.1930 0.6378 l 0.1940 0.6377 l 0.1949 0.6376 l 0.1959 0.6376 l 0.1969 0.6375 l 0.1979 0.6374 l 0.1989 0.6373 l 0.1999 0.6373 l 0.2009 0.6372 l 0.2019 0.6371 l 0.2029 0.6370 l 0.2039 0.6369 l 0.2049 0.6368 l 0.2059 0.6367 l 0.2069 0.6366 l 0.2079 0.6365 l 0.2089 0.6364 l 0.2099 0.6362 l 0.2109 0.6361 l 0.2119 0.6360 l 0.2129 0.6359 l 0.2139 0.6357 l 0.2149 0.6356 l 0.2159 0.6355 l 0.2169 0.6353 l 0.2179 0.6352 l 0.2189 0.6350 l 0.2199 0.6348 l 0.2209 0.6347 l 0.2219 0.6345 l 0.2229 0.6343 l 0.2239 0.6357 l 0.2249 0.6371 l 0.2259 0.6385 l 0.2269 0.6399 l 0.2279 0.6413 l 0.2289 0.6427 l 0.2299 0.6441 l 0.2309 0.6454 l 0.2319 0.6468 l 0.2329 0.6482 l 0.2339 0.6495 l 0.2349 0.6509 l 0.2359 0.6522 l 0.2369 0.6535 l 0.2379 0.6549 l 0.2389 0.6562 l 0.2399 0.6575 l 0.2409 0.6588 l 0.2419 0.6600 l 0.2429 0.6613 l 0.2439 0.6626 l 0.2449 0.6638 l 0.2459 0.6650 l 0.2469 0.6662 l 0.2479 0.6674 l 0.2489 0.6686 l 0.2499 0.6698 l 0.2509 0.6710 l 0.2519 0.6721 l 0.2529 0.6733 l 0.2539 0.6744 l 0.2549 0.6755 l 0.2559 0.6766 l 0.2569 0.6776 l 0.2579 0.6787 l 0.2589 0.6797 l 0.2599 0.6808 l 0.2609 0.6818 l 0.2619 0.6828 l 0.2629 0.6838 l 0.2639 0.6847 l 0.2649 0.6857 l 0.2659 0.6866 l 0.2669 0.6875 l 0.2679 0.6884 l 0.2689 0.6893 l 0.2699 0.6901 l 0.2709 0.6910 l 0.2719 0.6918 l 0.2729 0.6926 l 0.2739 0.6934 l 0.2749 0.6942 l 0.2759 0.6949 l 0.2769 0.6957 l 0.2779 0.6964 l 0.2789 0.6971 l 0.2799 0.6977 l 0.2809 0.6984 l 0.2819 0.6991 l 0.2829 0.6997 l 0.2838 0.7003 l 0.2848 0.7009 l 0.2858 0.7014 l 0.2868 0.7020 l 0.2878 0.7025 l 0.2888 0.7030 l 0.2898 0.7035 l 0.2908 0.7040 l 0.2918 0.7045 l 0.2928 0.7049 l 0.2938 0.7053 l 0.2948 0.7057 l 0.2958 0.7061 l 0.2968 0.7065 l 0.2978 0.7069 l 0.2988 0.7072 l 0.2998 0.7075 l 0.3008 0.7078 l 0.3018 0.7081 l 0.3028 0.7083 l 0.3038 0.7086 l 0.3048 0.7088 l 0.3058 0.7090 l 0.3068 0.7092 l 0.3078 0.7094 l 0.3088 0.7095 l 0.3098 0.7097 l 0.3108 0.7098 l 0.3118 0.7099 l 0.3128 0.7100 l 0.3138 0.7101 l 0.3148 0.7101 l 0.3158 0.7102 l 0.3168 0.7102 l 0.3178 0.7102 l 0.3188 0.7102 l 0.3198 0.7102 l 0.3208 0.7102 l 0.3218 0.7101 l 0.3228 0.7100 l 0.3238 0.7100 l 0.3248 0.7099 l 0.3258 0.7098 l 0.3268 0.7096 l 0.3278 0.7095 l 0.3288 0.7093 l 0.3298 0.7092 l 0.3308 0.7090 l 0.3318 0.7088 l 0.3328 0.7086 l 0.3338 0.7084 l 0.3348 0.7082 l 0.3358 0.7079 l 0.3368 0.7077 l 0.3378 0.7074 l 0.3388 0.7071 l 0.3398 0.7068 l 0.3408 0.7065 l 0.3418 0.7062 l 0.3428 0.7059 l 0.3438 0.7055 l 0.3448 0.7052 l 0.3458 0.7048 l 0.3468 0.7045 l 0.3478 0.7041 l 0.3488 0.7037 l 0.3498 0.7033 l 0.3508 0.7029 l 0.3518 0.7025 l 0.3528 0.7021 l 0.3538 0.7016 l 0.3548 0.7012 l 0.3558 0.7008 l 0.3568 0.7003 l 0.3578 0.6998 l 0.3588 0.6994 l 0.3598 0.6989 l 0.3608 0.6984 l 0.3618 0.6979 l 0.3628 0.6974 l 0.3638 0.6969 l 0.3648 0.6964 l 0.3658 0.6959 l 0.3668 0.6953 l 0.3678 0.6948 l 0.3688 0.6943 l 0.3698 0.6937 l 0.3708 0.6932 l 0.3717 0.6926 l 0.3727 0.6920 l 0.3737 0.6915 l 0.3747 0.6909 l 0.3757 0.6903 l 0.3767 0.6897 l 0.3777 0.6891 l 0.3787 0.6885 l 0.3797 0.6879 l 0.3807 0.6873 l 0.3817 0.6867 l 0.3827 0.6861 l 0.3837 0.6855 l 0.3847 0.6849 l 0.3857 0.6843 l 0.3867 0.6836 l 0.3877 0.6830 l 0.3887 0.6824 l 0.3897 0.6817 l 0.3907 0.6811 l 0.3917 0.6805 l 0.3927 0.6798 l 0.3937 0.6792 l 0.3947 0.6785 l 0.3957 0.6778 l 0.3967 0.6772 l 0.3977 0.6765 l 0.3987 0.6758 l 0.3997 0.6752 l 0.4007 0.6749 l 0.4017 0.6750 l 0.4027 0.6752 l 0.4037 0.6753 l 0.4047 0.6754 l 0.4057 0.6755 l 0.4067 0.6756 l 0.4077 0.6756 l 0.4087 0.6757 l 0.4097 0.6758 l 0.4107 0.6758 l 0.4117 0.6758 l 0.4127 0.6759 l 0.4137 0.6759 l 0.4147 0.6759 l 0.4157 0.6759 l 0.4167 0.6759 l 0.4177 0.6759 l 0.4187 0.6759 l 0.4197 0.6759 l 0.4207 0.6758 l 0.4217 0.6758 l 0.4227 0.6758 l 0.4237 0.6758 l 0.4247 0.6757 l 0.4257 0.6757 l 0.4267 0.6756 l 0.4277 0.6756 l 0.4287 0.6755 l 0.4297 0.6755 l 0.4307 0.6754 l 0.4317 0.6753 l 0.4327 0.6752 l 0.4337 0.6752 l 0.4347 0.6751 l 0.4357 0.6750 l 0.4367 0.6749 l 0.4377 0.6748 l 0.4387 0.6747 l 0.4397 0.6746 l 0.4407 0.6745 l 0.4417 0.6744 l 0.4427 0.6743 l 0.4437 0.6742 l 0.4447 0.6741 l 0.4457 0.6740 l 0.4467 0.6738 l 0.4477 0.6737 l 0.4487 0.6736 l 0.4497 0.6734 l 0.4507 0.6733 l 0.4517 0.6732 l 0.4527 0.6730 l 0.4537 0.6729 l 0.4547 0.6727 l 0.4556 0.6726 l 0.4566 0.6724 l 0.4576 0.6723 l 0.4586 0.6721 l 0.4596 0.6720 l 0.4606 0.6718 l 0.4616 0.6716 l 0.4626 0.6715 l 0.4636 0.6713 l 0.4646 0.6711 l 0.4656 0.6710 l 0.4666 0.6708 l 0.4676 0.6706 l 0.4686 0.6705 l 0.4696 0.6703 l 0.4706 0.6701 l 0.4716 0.6699 l 0.4726 0.6698 l 0.4736 0.6696 l 0.4746 0.6696 l 0.4756 0.6697 l 0.4766 0.6698 l 0.4776 0.6699 l 0.4786 0.6700 l 0.4796 0.6701 l 0.4806 0.6702 l 0.4816 0.6703 l 0.4826 0.6703 l 0.4836 0.6704 l 0.4846 0.6705 l 0.4856 0.6706 l 0.4866 0.6707 l 0.4876 0.6708 l 0.4886 0.6709 l 0.4896 0.6710 l 0.4906 0.6711 l 0.4916 0.6712 l 0.4926 0.6713 l 0.4936 0.6714 l 0.4946 0.6714 l 0.4956 0.6715 l 0.4966 0.6716 l 0.4976 0.6717 l 0.4986 0.6718 l 0.4996 0.6719 l 0.5006 0.6719 l 0.5016 0.6720 l 0.5026 0.6721 l 0.5036 0.6722 l 0.5046 0.6722 l 0.5056 0.6723 l 0.5066 0.6724 l 0.5076 0.6725 l 0.5086 0.6725 l 0.5096 0.6726 l 0.5106 0.6727 l 0.5116 0.6727 l 0.5126 0.6728 l 0.5136 0.6728 l 0.5146 0.6729 l 0.5156 0.6730 l 0.5166 0.6730 l 0.5176 0.6731 l 0.5186 0.6731 l 0.5196 0.6732 l 0.5206 0.6732 l 0.5216 0.6733 l 0.5226 0.6733 l 0.5236 0.6734 l 0.5246 0.6734 l 0.5256 0.6734 l 0.5266 0.6735 l 0.5276 0.6735 l 0.5286 0.6736 l 0.5296 0.6736 l 0.5306 0.6736 l 0.5316 0.6737 l 0.5326 0.6737 l 0.5336 0.6737 l 0.5345 0.6737 l 0.5355 0.6738 l 0.5365 0.6738 l 0.5375 0.6738 l 0.5385 0.6738 l 0.5395 0.6739 l 0.5405 0.6739 l 0.5415 0.6739 l 0.5425 0.6739 l 0.5435 0.6739 l 0.5445 0.6739 l 0.5455 0.6739 l 0.5465 0.6739 l 0.5475 0.6740 l 0.5485 0.6740 l 0.5495 0.6740 l 0.5505 0.6740 l 0.5515 0.6740 l 0.5525 0.6740 l 0.5535 0.6740 l 0.5545 0.6740 l 0.5555 0.6740 l 0.5565 0.6740 l 0.5575 0.6740 l 0.5585 0.6740 l 0.5595 0.6740 l 0.5605 0.6739 l 0.5615 0.6739 l 0.5625 0.6739 l 0.5635 0.6739 l 0.5645 0.6739 l 0.5655 0.6739 l 0.5665 0.6739 l 0.5675 0.6739 l 0.5685 0.6739 l 0.5695 0.6739 l 0.5705 0.6738 l 0.5715 0.6738 l 0.5725 0.6738 l 0.5735 0.6738 l 0.5745 0.6738 l 0.5755 0.6738 l 0.5765 0.6738 l 0.5775 0.6737 l 0.5785 0.6737 l 0.5795 0.6737 l 0.5805 0.6737 l 0.5815 0.6737 l 0.5825 0.6737 l 0.5835 0.6737 l 0.5845 0.6736 l 0.5855 0.6736 l 0.5865 0.6736 l 0.5875 0.6736 l 0.5885 0.6736 l 0.5895 0.6736 l 0.5905 0.6736 l 0.5915 0.6735 l 0.5925 0.6735 l 0.5935 0.6735 l 0.5945 0.6735 l 0.5955 0.6735 l 0.5965 0.6735 l 0.5975 0.6735 l 0.5985 0.6735 l 0.5995 0.6734 l 0.6005 0.6734 l 0.6015 0.6734 l 0.6025 0.6734 l 0.6035 0.6734 l 0.6045 0.6734 l 0.6055 0.6734 l 0.6065 0.6734 l 0.6075 0.6734 l 0.6085 0.6734 l 0.6095 0.6734 l 0.6105 0.6734 l 0.6115 0.6734 l 0.6125 0.6734 l 0.6134 0.6734 l 0.6144 0.6734 l 0.6154 0.6734 l 0.6164 0.6736 l 0.6174 0.6740 l 0.6184 0.6745 l 0.6194 0.6749 l 0.6205 0.6754 l 0.6215 0.6759 l 0.6225 0.6763 l 0.6235 0.6768 l 0.6245 0.6772 l 0.6255 0.6777 l 0.6265 0.6781 l 0.6275 0.6786 l 0.6285 0.6790 l 0.6295 0.6795 l 0.6305 0.6799 l 0.6315 0.6803 l 0.6325 0.6808 l 0.6335 0.6812 l 0.6345 0.6816 l 0.6355 0.6820 l 0.6365 0.6824 l 0.6375 0.6828 l 0.6385 0.6833 l 0.6395 0.6837 l 0.6405 0.6840 l 0.6415 0.6844 l 0.6425 0.6848 l 0.6435 0.6852 l 0.6445 0.6856 l 0.6455 0.6860 l 0.6465 0.6863 l 0.6475 0.6867 l 0.6485 0.6870 l 0.6495 0.6874 l 0.6505 0.6877 l 0.6515 0.6881 l 0.6525 0.6884 l 0.6535 0.6887 l 0.6545 0.6891 l 0.6555 0.6894 l 0.6565 0.6897 l 0.6575 0.6900 l 0.6585 0.6903 l 0.6595 0.6906 l 0.6605 0.6909 l 0.6615 0.6911 l 0.6625 0.6914 l 0.6635 0.6917 l 0.6645 0.6919 l 0.6655 0.6922 l 0.6665 0.6924 l 0.6675 0.6926 l 0.6685 0.6928 l 0.6695 0.6931 l 0.6705 0.6933 l 0.6715 0.6934 l 0.6725 0.6936 l 0.6735 0.6938 l 0.6745 0.6940 l 0.6755 0.6941 l 0.6765 0.6943 l 0.6775 0.6944 l 0.6785 0.6945 l 0.6795 0.6947 l 0.6805 0.6948 l 0.6815 0.6949 l 0.6825 0.6949 l 0.6835 0.6950 l 0.6845 0.6951 l 0.6855 0.6952 l 0.6865 0.6952 l 0.6875 0.6952 l 0.6885 0.6953 l 0.6895 0.6953 l 0.6905 0.6953 l 0.6915 0.6953 l 0.6925 0.6953 l 0.6935 0.6952 l 0.6945 0.6952 l 0.6955 0.6951 l 0.6965 0.6951 l 0.6975 0.6950 l 0.6985 0.6949 l 0.6995 0.6948 l 0.7005 0.6947 l 0.7015 0.6946 l 0.7025 0.6945 l 0.7035 0.6944 l 0.7045 0.6942 l 0.7055 0.6941 l 0.7065 0.6939 l 0.7075 0.6938 l 0.7085 0.6936 l 0.7095 0.6934 l 0.7105 0.6932 l 0.7115 0.6930 l 0.7125 0.6928 l 0.7135 0.6925 l 0.7145 0.6923 l 0.7155 0.6921 l 0.7165 0.6918 l 0.7175 0.6916 l 0.7185 0.6913 l 0.7195 0.6910 l 0.7205 0.6907 l 0.7215 0.6904 l 0.7225 0.6901 l 0.7235 0.6898 l 0.7245 0.6895 l 0.7255 0.6892 l 0.7265 0.6889 l 0.7275 0.6885 l 0.7285 0.6882 l 0.7295 0.6879 l 0.7305 0.6875 l 0.7315 0.6872 l 0.7325 0.6868 l 0.7335 0.6864 l 0.7345 0.6861 l 0.7355 0.6857 l 0.7365 0.6853 l 0.7375 0.6849 l 0.7385 0.6846 l 0.7395 0.6842 l 0.7405 0.6838 l 0.7415 0.6834 l 0.7425 0.6830 l 0.7435 0.6826 l 0.7445 0.6822 l 0.7455 0.6818 l 0.7465 0.6814 l 0.7475 0.6810 l 0.7485 0.6806 l 0.7495 0.6802 l 0.7505 0.6798 l 0.7515 0.6794 l 0.7525 0.6790 l 0.7535 0.6786 l 0.7545 0.6782 l 0.7555 0.6778 l 0.7565 0.6774 l 0.7575 0.6770 l 0.7585 0.6766 l 0.7595 0.6762 l 0.7605 0.6758 l 0.7615 0.6754 l 0.7625 0.6750 l 0.7635 0.6746 l 0.7645 0.6742 l 0.7655 0.6739 l 0.7665 0.6735 l 0.7675 0.6731 l 0.7685 0.6727 l 0.7695 0.6724 l 0.7705 0.6720 l 0.7715 0.6716 l 0.7725 0.6713 l 0.7735 0.6709 l 0.7745 0.6705 l 0.7756 0.6702 l 0.7766 0.6698 l 0.7776 0.6695 l 0.7786 0.6691 l 0.7796 0.6688 l 0.7806 0.6685 l 0.7816 0.6681 l 0.7826 0.6678 l 0.7836 0.6675 l 0.7846 0.6671 l 0.7856 0.6668 l 0.7866 0.6665 l 0.7876 0.6662 l 0.7886 0.6659 l 0.7896 0.6656 l 0.7906 0.6652 l 0.7916 0.6649 l 0.7926 0.6646 l 0.7936 0.6643 l 0.7946 0.6640 l 0.7956 0.6637 l 0.7966 0.6634 l 0.7976 0.6631 l 0.7986 0.6628 l 0.7996 0.6625 l 0.8006 0.6622 l 0.8016 0.6619 l 0.8026 0.6616 l 0.8036 0.6613 l 0.8046 0.6610 l 0.8056 0.6607 l 0.8066 0.6604 l 0.8076 0.6601 l 0.8086 0.6598 l 0.8096 0.6595 l 0.8106 0.6592 l 0.8116 0.6589 l 0.8126 0.6586 l 0.8136 0.6583 l 0.8146 0.6579 l 0.8156 0.6576 l 0.8166 0.6573 l 0.8176 0.6570 l 0.8186 0.6566 l 0.8196 0.6563 l 0.8206 0.6559 l 0.8216 0.6556 l 0.8226 0.6552 l 0.8236 0.6548 l 0.8246 0.6545 l 0.8256 0.6541 l 0.8266 0.6537 l 0.8276 0.6533 l 0.8286 0.6529 l 0.8296 0.6525 l 0.8306 0.6521 l 0.8316 0.6517 l 0.8326 0.6513 l 0.8336 0.6508 l 0.8346 0.6504 l 0.8356 0.6499 l 0.8366 0.6495 l 0.8376 0.6490 l 0.8386 0.6485 l 0.8396 0.6481 l 0.8406 0.6476 l 0.8416 0.6471 l 0.8426 0.6466 l 0.8436 0.6461 l 0.8446 0.6455 l 0.8456 0.6450 l 0.8466 0.6445 l 0.8476 0.6440 l 0.8486 0.6434 l 0.8496 0.6429 l 0.8506 0.6423 l 0.8516 0.6418 l 0.8526 0.6413 l 0.8536 0.6407 l 0.8546 0.6402 l 0.8556 0.6397 l 0.8566 0.6392 l 0.8576 0.6387 l 0.8586 0.6383 l 0.8596 0.6378 l 0.8606 0.6374 l 0.8616 0.6370 l 0.8626 0.6367 l 0.8636 0.6364 l 0.8646 0.6361 l 0.8656 0.6359 l 0.8666 0.6357 l 0.8676 0.6356 l 0.8686 0.6354 l 0.8696 0.6354 l 0.8706 0.6353 l 0.8716 0.6353 l 0.8726 0.6353 l 0.8736 0.6353 l 0.8746 0.6353 l 0.8756 0.6353 l 0.8766 0.6354 l 0.8776 0.6354 l 0.8786 0.6355 l 0.8796 0.6355 l 0.8806 0.6356 l 0.8816 0.6357 l 0.8826 0.6358 l 0.8836 0.6359 l 0.8846 0.6359 l 0.8856 0.6360 l 0.8866 0.6361 l 0.8876 0.6362 l 0.8886 0.6363 l 0.8896 0.6364 l 0.8906 0.6365 l 0.8916 0.6366 l 0.8926 0.6366 l 0.8936 0.6367 l 0.8946 0.6368 l 0.8956 0.6369 l 0.8966 0.6370 l 0.8976 0.6371 l 0.8986 0.6371 l 0.8996 0.6372 l 0.9006 0.6373 l 0.9016 0.6374 l 0.9026 0.6374 l 0.9036 0.6375 l 0.9046 0.6376 l 0.9056 0.6376 l 0.9066 0.6377 l 0.9076 0.6378 l 0.9086 0.6378 l 0.9096 0.6379 l 0.9106 0.6379 l 0.9116 0.6380 l 0.9126 0.6380 l 0.9136 0.6381 l 0.9146 0.6381 l 0.9156 0.6382 l 0.9166 0.6382 l 0.9176 0.6383 l 0.9186 0.6383 l 0.9196 0.6384 l 0.9206 0.6384 l 0.9216 0.6384 l 0.9226 0.6385 l 0.9236 0.6385 l 0.9246 0.6385 l 0.9256 0.6386 l 0.9266 0.6386 l 0.9276 0.6386 l 0.9286 0.6386 l 0.9296 0.6387 l 0.9306 0.6387 l 0.9317 0.6387 l 0.9327 0.6387 l 0.9337 0.6388 l 0.9347 0.6388 l 0.9357 0.6388 l 0.9367 0.6388 l 0.9377 0.6388 l 0.9387 0.6388 l 0.9397 0.6388 l 0.9407 0.6388 l 0.9417 0.6389 l 0.9427 0.6389 l 0.9437 0.6389 l 0.9447 0.6389 l 0.9457 0.6389 l 0.9467 0.6389 l 0.9477 0.6389 l 0.9487 0.6389 l 0.9497 0.6389 l 0.9507 0.6389 l 0.9517 0.6389 l 0.9527 0.6388 l 0.9537 0.6388 l 0.9547 0.6388 l 0.9557 0.6388 l 0.9566 0.6388 l 0.9576 0.6388 l 0.9586 0.6387 l 0.9596 0.6387 l 0.9606 0.6387 l 0.9616 0.6386 l 0.9626 0.6386 l 0.9636 0.6386 l 0.9646 0.6385 l 0.9656 0.6385 l 0.9666 0.6384 l 0.9676 0.6384 l 0.9686 0.6383 l 0.9696 0.6383 l 0.9706 0.6382 l 0.9716 0.6382 l 0.9726 0.6381 l 0.9736 0.6380 l 0.9746 0.6380 l 0.9756 0.6379 l 0.9766 0.6378 l 0.9776 0.6377 l 0.9786 0.6377 l 0.9796 0.6376 l 0.9806 0.6375 l 0.9816 0.6374 l 0.9826 0.6373 l 0.9836 0.6372 l 0.9846 0.6371 l 0.9856 0.6370 l 0.9866 0.6369 l 0.9876 0.6368 l 0.9886 0.6367 l 0.9896 0.6366 l 0.9906 0.6365 l 0.9916 0.6363 l 0.9926 0.6362 l 0.9936 0.6361 l 0.9946 0.6360 l 0.9956 0.6358 l 0.9966 0.6357 l 0.9976 0.6355 l 0.9986 0.6354 l 0.9996 0.6353 l 1.0006 0.6351 l 1.0016 0.6349 l 1.0026 0.6348 l 1.0036 0.6346 l 1.0046 0.6345 l 1.0056 0.6343 l 1.0066 0.6341 l 1.0076 0.6339 l 1.0086 0.6338 l 1.0096 0.6336 l 1.0106 0.6334 l 1.0116 0.6332 l 1.0126 0.6330 l 1.0136 0.6328 l 1.0146 0.6326 l 1.0156 0.6324 l 1.0166 0.6322 l 1.0176 0.6320 l 1.0186 0.6317 l 1.0196 0.6315 l 1.0206 0.6313 l 1.0216 0.6311 l 1.0226 0.6308 l 1.0236 0.6306 l 1.0246 0.6303 l 1.0256 0.6301 l 1.0266 0.6298 l 1.0276 0.6296 l 1.0286 0.6293 l 1.0296 0.6291 l 1.0306 0.6288 l 1.0316 0.6285 l 1.0326 0.6283 l 1.0336 0.6280 l 1.0346 0.6277 l 1.0355 0.6274 l 1.0365 0.6271 l 1.0375 0.6269 l 1.0385 0.6266 l 1.0395 0.6263 l 1.0405 0.6260 l 1.0415 0.6257 l 1.0425 0.6254 l 1.0435 0.6250 l 1.0445 0.6247 l 1.0455 0.6244 l 1.0465 0.6241 l 1.0475 0.6238 l 1.0485 0.6235 l 1.0495 0.6231 l 1.0505 0.6228 l 1.0515 0.6225 l 1.0525 0.6221 l 1.0535 0.6218 l 1.0545 0.6215 l 1.0555 0.6211 l 1.0565 0.6208 l 1.0575 0.6204 l 1.0585 0.6201 l 1.0595 0.6197 l 1.0605 0.6194 l 1.0615 0.6190 l 1.0625 0.6187 l 1.0635 0.6183 l 1.0645 0.6180 l 1.0655 0.6176 l 1.0665 0.6172 l 1.0675 0.6169 l 1.0685 0.6165 l 1.0695 0.6162 l 1.0705 0.6158 l 1.0715 0.6154 l 1.0725 0.6151 l 1.0735 0.6147 l 1.0745 0.6144 l 1.0755 0.6140 l 1.0765 0.6136 l 1.0775 0.6133 l 1.0785 0.6129 l 1.0795 0.6125 l 1.0805 0.6122 l 1.0815 0.6118 l 1.0825 0.6115 l 1.0835 0.6111 l 1.0845 0.6107 l 1.0855 0.6104 l 1.0865 0.6100 l 1.0875 0.6097 l 1.0885 0.6093 l 1.0895 0.6090 l 1.0905 0.6086 l 1.0915 0.6083 l 1.0925 0.6080 l 1.0935 0.6076 l 1.0945 0.6073 l 1.0955 0.6069 l 1.0965 0.6066 l 1.0975 0.6063 l 1.0985 0.6060 l 1.0995 0.6056 l 1.1005 0.6053 l 1.1015 0.6050 l 1.1025 0.6047 l 1.1035 0.6044 l 1.1045 0.6041 l 1.1055 0.6038 l 1.1065 0.6035 l 1.1075 0.6032 l 1.1085 0.6030 l 1.1095 0.6027 l 1.1105 0.6024 l 1.1115 0.6021 l 1.1125 0.6019 l 1.1135 0.6016 l 1.1144 0.6014 l 1.1154 0.6011 l 1.1164 0.6009 l 1.1174 0.6007 l 1.1184 0.6004 l 1.1194 0.6002 l 1.1204 0.6000 l 1.1214 0.5998 l 1.1224 0.5996 l 1.1234 0.5994 l 1.1244 0.5992 l 1.1254 0.5990 l 1.1264 0.5989 l 1.1274 0.5987 l 1.1284 0.5985 l 1.1294 0.5984 l 1.1304 0.5982 l 1.1314 0.5981 l 1.1324 0.5980 l 1.1334 0.5979 l 1.1344 0.5977 l 1.1354 0.5976 l 1.1364 0.5975 l 1.1374 0.5974 l 1.1384 0.5974 l 1.1394 0.5973 l 1.1404 0.5972 l 1.1414 0.5972 l 1.1424 0.5971 l 1.1434 0.5971 l 1.1444 0.5970 l 1.1454 0.5970 l 1.1464 0.5970 l 1.1474 0.5970 l 1.1484 0.5970 l s [] 0 SD 0.0015 SLW n 0.1500 0.1499 m 0.1500 0.8501 l s n 0.4147 0.1499 m 0.4147 0.8501 l s n 0.6154 0.1499 m 0.6154 0.8501 l s n 0.9477 0.1499 m 0.9477 0.8501 l s n 1.1484 0.1499 m 1.1484 0.8501 l s n 0.1500 0.1500 m 1.1500 0.1500 l s n 0.1500 0.8500 m 1.1500 0.8500 l s n 0.1500 0.1500 m 0.1500 0.8500 l s n 1.1500 0.1500 m 1.1500 0.8500 l s n 0.1500 0.2278 m 0.1600 0.2278 l s n 1.1500 0.2278 m 1.1400 0.2278 l s n 0.1500 0.3833 m 0.1600 0.3833 l s n 1.1500 0.3833 m 1.1400 0.3833 l s n 0.1500 0.5389 m 0.1600 0.5389 l s n 1.1500 0.5389 m 1.1400 0.5389 l s n 0.1500 0.6944 m 0.1600 0.6944 l s n 1.1500 0.6944 m 1.1400 0.6944 l s n 0.1500 0.1500 m 0.1700 0.1500 l s n 1.1500 0.1500 m 1.1300 0.1500 l s n 0.1500 0.3056 m 0.1700 0.3056 l s n 1.1500 0.3056 m 1.1300 0.3056 l s n 0.1500 0.4611 m 0.1700 0.4611 l s n 1.1500 0.4611 m 1.1300 0.4611 l s n 0.1500 0.6167 m 0.1700 0.6167 l s n 1.1500 0.6167 m 1.1300 0.6167 l s n 0.1500 0.7722 m 0.1700 0.7722 l s n 1.1500 0.7722 m 1.1300 0.7722 l s /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding DefEncoding def currentdict end /Font35 exch definefont pop /Font35 FFSF 0.1267 0.1408 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (0) show GR /Font35 FFSF 0.0800 0.2981 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (0,001) show GR /Font35 FFSF 0.0776 0.4537 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (0,002) show GR /Font35 FFSF 0.0788 0.6092 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (0,003) show GR /Font35 FFSF 0.0776 0.7648 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (0,004) show GR /Font35 FFSF 0.0614 0.4312 m GS [0.0000 0.0280 -0.0280 0.0000 0 0] CC (Energy \(Ha\)) show GR n 0.1500 0.1500 m 0.1500 0.8500 l 1.1500 0.8500 l 1.1500 0.1500 l 0.1500 0.1500 l c s /Font35 FFSF 0.5078 0.8763 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (MgB2 phonon dispersion) show GR /Symbol findfont /Font30 exch definefont pop /Font30 FFSF 0.1373 0.1103 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (G) show GR /Font30 FFSF 0.9387 0.1127 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (G) show GR /Font35 FFSF 0.4032 0.1103 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (M) show GR /Font35 FFSF 0.6103 0.1140 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (L) show GR /Font35 FFSF 1.1434 0.1140 m GS [0.0280 0.0000 0.0000 0.0280 0 0] CC (H) show GR showpage %%PageTrailer %%Trailer %%DocumentNeededResources: font Symbol %%+ font Times-Roman %%EOF elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/PHDISP.OUT0000644000000000000000000000013213543334741024002 xustar0030 mtime=1569569249.524638818 30 atime=1569569249.495638837 30 ctime=1569569249.524638818 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PHDISP.OUT0000644002504400250440000121237613543334741026065 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.8563363408E-10 0.2347351854E-02 0.4374334896E-05 0.4694703708E-02 0.8755499097E-05 0.7042055561E-02 0.1315029329E-04 0.9389407415E-02 0.1756546124E-04 0.1173675927E-01 0.2200766220E-04 0.1408411112E-01 0.2648344421E-04 0.1643146298E-01 0.3099921870E-04 0.1877881483E-01 0.3556123657E-04 0.2112616668E-01 0.4017556600E-04 0.2347351854E-01 0.4484807216E-04 0.2582087039E-01 0.4958439892E-04 0.2816822225E-01 0.5438995276E-04 0.3051557410E-01 0.5926988875E-04 0.3286292595E-01 0.6422909883E-04 0.3521027781E-01 0.6927220221E-04 0.3755762966E-01 0.7440353786E-04 0.3990498151E-01 0.7962715907E-04 0.4225233337E-01 0.8494682990E-04 0.4459968522E-01 0.9036602344E-04 0.4694703708E-01 0.9588792173E-04 0.4929438893E-01 0.1015154171E-03 0.5164174078E-01 0.1072511151E-03 0.5398909264E-01 0.1130973383E-03 0.5633644449E-01 0.1190561311E-03 0.5868379634E-01 0.1251292662E-03 0.6103114820E-01 0.1313182506E-03 0.6337850005E-01 0.1376243333E-03 0.6572585191E-01 0.1440485126E-03 0.6807320376E-01 0.1505915447E-03 0.7042055561E-01 0.1572539516E-03 0.7276790747E-01 0.1640360302E-03 0.7511525932E-01 0.1709378604E-03 0.7746261117E-01 0.1779593143E-03 0.7980996303E-01 0.1851000642E-03 0.8215731488E-01 0.1923595920E-03 0.8450466674E-01 0.1997371970E-03 0.8685201859E-01 0.2072320041E-03 0.8919937044E-01 0.2148429723E-03 0.9154672230E-01 0.2225689022E-03 0.9389407415E-01 0.2304084436E-03 0.9624142601E-01 0.2383601028E-03 0.9858877786E-01 0.2462889012E-03 0.1009361297 0.2522046778E-03 0.1032834816 0.2581237632E-03 0.1056308334 0.2640461980E-03 0.1079781853 0.2699720210E-03 0.1103255371 0.2759012687E-03 0.1126728890 0.2818339758E-03 0.1150202408 0.2877701752E-03 0.1173675927 0.2937098977E-03 0.1197149445 0.2996531721E-03 0.1220622964 0.3056000256E-03 0.1244096483 0.3115504832E-03 0.1267570001 0.3175045683E-03 0.1291043520 0.3234623022E-03 0.1314517038 0.3294237045E-03 0.1337990557 0.3353887931E-03 0.1361464075 0.3413575839E-03 0.1384937594 0.3473300911E-03 0.1408411112 0.3533063272E-03 0.1431884631 0.3592863031E-03 0.1455358149 0.3652700277E-03 0.1478831668 0.3712575085E-03 0.1502305186 0.3772487513E-03 0.1525778705 0.3832437602E-03 0.1549252223 0.3892425376E-03 0.1572725742 0.3952450846E-03 0.1596199261 0.4012514006E-03 0.1619672779 0.4072614833E-03 0.1643146298 0.4132753291E-03 0.1666619816 0.4192929329E-03 0.1690093335 0.4253142878E-03 0.1713566853 0.4313393859E-03 0.1737040372 0.4373682174E-03 0.1760513890 0.4434007714E-03 0.1783987409 0.4494370352E-03 0.1807460927 0.4554769950E-03 0.1830934446 0.4615206354E-03 0.1854407964 0.4675679395E-03 0.1877881483 0.4736188891E-03 0.1901355002 0.4796734645E-03 0.1924828520 0.4857316444E-03 0.1948302039 0.4917934063E-03 0.1971775557 0.4978587260E-03 0.1995249076 0.5039275778E-03 0.2018722594 0.5099999347E-03 0.2042196113 0.5160757678E-03 0.2065669631 0.5221550469E-03 0.2089143150 0.5282377398E-03 0.2112616668 0.5343238131E-03 0.2136090187 0.5404132311E-03 0.2159563705 0.5465059568E-03 0.2183037224 0.5526019510E-03 0.2206510743 0.5587011729E-03 0.2229984261 0.5648035794E-03 0.2253457780 0.5709091254E-03 0.2276931298 0.5770177637E-03 0.2300404817 0.5831294449E-03 0.2323878335 0.5892441171E-03 0.2347351854 0.5953617260E-03 0.2370825372 0.6014822147E-03 0.2394298891 0.6076055236E-03 0.2417772409 0.6137315903E-03 0.2441245928 0.6198603493E-03 0.2464719446 0.6259917321E-03 0.2488192965 0.6321256668E-03 0.2511666484 0.6382620782E-03 0.2535140002 0.6444008872E-03 0.2558613521 0.6505420113E-03 0.2582087039 0.6566853636E-03 0.2605560558 0.6628308531E-03 0.2629034076 0.6689783844E-03 0.2652507595 0.6751278575E-03 0.2675981113 0.6812791674E-03 0.2699454632 0.6874322039E-03 0.2722928150 0.6935868517E-03 0.2746401669 0.6997429893E-03 0.2769875187 0.7059004898E-03 0.2793348706 0.7120592195E-03 0.2816822225 0.7182190387E-03 0.2840295743 0.7243798002E-03 0.2863769262 0.7305413502E-03 0.2887242780 0.7367035267E-03 0.2910716299 0.7428661603E-03 0.2934189817 0.7490290730E-03 0.2957663336 0.7551920781E-03 0.2981136854 0.7613549799E-03 0.3004610373 0.7675175730E-03 0.3028083891 0.7736796424E-03 0.3051557410 0.7798409622E-03 0.3075030928 0.7860012961E-03 0.3098504447 0.7921603960E-03 0.3121977966 0.7983180024E-03 0.3145451484 0.8044738430E-03 0.3168925003 0.8106276331E-03 0.3192398521 0.8167790740E-03 0.3215872040 0.8229278536E-03 0.3239345558 0.8290736448E-03 0.3262819077 0.8352161056E-03 0.3286292595 0.8413548782E-03 0.3309766114 0.8474895882E-03 0.3333239632 0.8536198447E-03 0.3356713151 0.8597452386E-03 0.3380186669 0.8658653429E-03 0.3403660188 0.8719797113E-03 0.3427133707 0.8780878781E-03 0.3450607225 0.8841893571E-03 0.3474080744 0.8902836410E-03 0.3497554262 0.8963702007E-03 0.3521027781 0.9024484846E-03 0.3544501299 0.9085179179E-03 0.3567974818 0.9145779018E-03 0.3591448336 0.9206278127E-03 0.3614921855 0.9266670015E-03 0.3638395373 0.9326947932E-03 0.3661868892 0.9387104855E-03 0.3685342410 0.9447133486E-03 0.3708815929 0.9507026245E-03 0.3732289448 0.9566775260E-03 0.3755762966 0.9626372362E-03 0.3779236485 0.9685809080E-03 0.3802710003 0.9745076633E-03 0.3826183522 0.9804165922E-03 0.3849657040 0.9863067531E-03 0.3873130559 0.9921771718E-03 0.3896604077 0.9980268410E-03 0.3920077596 0.1003854720E-02 0.3943551114 0.1009659735E-02 0.3967024633 0.1015440778E-02 0.3990498151 0.1021196707E-02 0.4013971670 0.1026926347E-02 0.4037445189 0.1032628487E-02 0.4060918707 0.1038301884E-02 0.4084392226 0.1043945263E-02 0.4107865744 0.1049557313E-02 0.4131339263 0.1055136695E-02 0.4154812781 0.1060682034E-02 0.4178286300 0.1066191929E-02 0.4201759818 0.1071664948E-02 0.4225233337 0.1077099630E-02 0.4248706855 0.1082494491E-02 0.4272180374 0.1087848021E-02 0.4295653892 0.1093158688E-02 0.4319127411 0.1098424940E-02 0.4342600929 0.1103645208E-02 0.4366074448 0.1108817909E-02 0.4389547967 0.1113941447E-02 0.4413021485 0.1119014219E-02 0.4436495004 0.1124034618E-02 0.4459968522 0.1129001034E-02 0.4483442041 0.1133911864E-02 0.4506915559 0.1138765508E-02 0.4530389078 0.1143560382E-02 0.4553862596 0.1148294915E-02 0.4577336115 0.1152967562E-02 0.4600809633 0.1157576800E-02 0.4624283152 0.1162121140E-02 0.4647756670 0.1166599130E-02 0.4671230189 0.1171009360E-02 0.4694703708 0.1175350465E-02 0.4718177226 0.1179621136E-02 0.4741650745 0.1183820118E-02 0.4765124263 0.1187946222E-02 0.4788597782 0.1191998323E-02 0.4812071300 0.1195975371E-02 0.4835544819 0.1199876388E-02 0.4859018337 0.1203700480E-02 0.4882491856 0.1207446835E-02 0.4905965374 0.1211114727E-02 0.4929438893 0.1214703520E-02 0.4952912411 0.1218212670E-02 0.4976385930 0.1221641726E-02 0.4999859449 0.1224990330E-02 0.5023332967 0.1228258222E-02 0.5046806486 0.1231445235E-02 0.5070280004 0.1234551296E-02 0.5093753523 0.1237576428E-02 0.5117227041 0.1240520744E-02 0.5140700560 0.1243384448E-02 0.5164174078 0.1246167829E-02 0.5187647597 0.1248871264E-02 0.5211121115 0.1251495207E-02 0.5234594634 0.1254040190E-02 0.5258068152 0.1256506817E-02 0.5281541671 0.1258895762E-02 0.5305015190 0.1261207759E-02 0.5328488708 0.1263443602E-02 0.5351962227 0.1265604137E-02 0.5375435745 0.1267690258E-02 0.5398909264 0.1269702900E-02 0.5422382782 0.1271643037E-02 0.5445856301 0.1273511671E-02 0.5469329819 0.1275309833E-02 0.5492803338 0.1277038573E-02 0.5516276856 0.1278698956E-02 0.5539750375 0.1279737302E-02 0.5563223893 0.1280349638E-02 0.5586697412 0.1280941158E-02 0.5610170931 0.1281511820E-02 0.5633644449 0.1282061580E-02 0.5657117968 0.1282590389E-02 0.5680591486 0.1283098197E-02 0.5704065005 0.1283584952E-02 0.5727538523 0.1284050598E-02 0.5751012042 0.1284495081E-02 0.5774485560 0.1284918342E-02 0.5797959079 0.1285320326E-02 0.5821432597 0.1285700975E-02 0.5844906116 0.1286060231E-02 0.5868379634 0.1286398040E-02 0.5891853153 0.1286714346E-02 0.5915326672 0.1287009097E-02 0.5938800190 0.1287282240E-02 0.5962273709 0.1287533727E-02 0.5985747227 0.1287763512E-02 0.6009220746 0.1287971552E-02 0.6032694264 0.1288157805E-02 0.6056167783 0.1288322236E-02 0.6079641301 0.1288464812E-02 0.6103114820 0.1288585503E-02 0.6126588338 0.1288684285E-02 0.6150061857 0.1288761136E-02 0.6173535375 0.1288816042E-02 0.6197008894 0.1288848990E-02 0.6220482413 0.1288859974E-02 0.6243952716 0.1288792372E-02 0.6267423020 0.1288729040E-02 0.6290893324 0.1288670064E-02 0.6314363628 0.1288615526E-02 0.6337833932 0.1288565505E-02 0.6361304236 0.1288520075E-02 0.6384774540 0.1288479309E-02 0.6408244844 0.1288443274E-02 0.6431715148 0.1288412035E-02 0.6455185452 0.1288385652E-02 0.6478655756 0.1288364181E-02 0.6502126060 0.1288347674E-02 0.6525596364 0.1288336179E-02 0.6549066668 0.1288329740E-02 0.6572536971 0.1288328397E-02 0.6596007275 0.1288332184E-02 0.6619477579 0.1288341132E-02 0.6642947883 0.1288355267E-02 0.6666418187 0.1288374610E-02 0.6689888491 0.1288399180E-02 0.6713358795 0.1288428988E-02 0.6736829099 0.1288464042E-02 0.6760299403 0.1288504345E-02 0.6783769707 0.1288549897E-02 0.6807240011 0.1288600691E-02 0.6830710315 0.1288656717E-02 0.6854180619 0.1288717959E-02 0.6877650922 0.1288784398E-02 0.6901121226 0.1288856010E-02 0.6924591530 0.1288932766E-02 0.6948061834 0.1289014632E-02 0.6971532138 0.1289101572E-02 0.6995002442 0.1289193542E-02 0.7018472746 0.1289290498E-02 0.7041943050 0.1289392387E-02 0.7065413354 0.1289499156E-02 0.7088883658 0.1289610746E-02 0.7112353962 0.1289727095E-02 0.7135824266 0.1289848134E-02 0.7159294570 0.1289973795E-02 0.7182764874 0.1290104003E-02 0.7206235177 0.1290238681E-02 0.7229705481 0.1290377747E-02 0.7253175785 0.1290521116E-02 0.7276646089 0.1290668702E-02 0.7300116393 0.1290820413E-02 0.7323586697 0.1290976155E-02 0.7347057001 0.1291135832E-02 0.7370527305 0.1291299345E-02 0.7393997609 0.1291466591E-02 0.7417467913 0.1291637467E-02 0.7440938217 0.1291811866E-02 0.7464408521 0.1291989680E-02 0.7487878825 0.1292170797E-02 0.7511349128 0.1292355107E-02 0.7534819432 0.1292542494E-02 0.7558289736 0.1292732843E-02 0.7581760040 0.1292926038E-02 0.7605230344 0.1293121960E-02 0.7628700648 0.1293320492E-02 0.7652170952 0.1293521513E-02 0.7675641256 0.1293724904E-02 0.7699111560 0.1293930542E-02 0.7722581864 0.1294138308E-02 0.7746052168 0.1294348080E-02 0.7769522472 0.1294559737E-02 0.7792992776 0.1294773158E-02 0.7816463080 0.1294988221E-02 0.7839933383 0.1295204807E-02 0.7863403687 0.1295422796E-02 0.7886873991 0.1295642070E-02 0.7910344295 0.1295862509E-02 0.7933814599 0.1296083997E-02 0.7957284903 0.1296306420E-02 0.7980755207 0.1296529661E-02 0.8004225511 0.1296753608E-02 0.8027695815 0.1296978151E-02 0.8051166119 0.1297203179E-02 0.8074636423 0.1297428584E-02 0.8098106727 0.1297654262E-02 0.8121577031 0.1297880108E-02 0.8145047335 0.1298106021E-02 0.8168517638 0.1298331901E-02 0.8191987942 0.1298557652E-02 0.8215458246 0.1298783180E-02 0.8238928550 0.1299008392E-02 0.8262398854 0.1299233199E-02 0.8285869158 0.1299457515E-02 0.8309339462 0.1299681255E-02 0.8332809766 0.1299904339E-02 0.8356280070 0.1300126689E-02 0.8379750374 0.1300348228E-02 0.8403220678 0.1300568886E-02 0.8426690982 0.1300788591E-02 0.8450161286 0.1301007277E-02 0.8473631589 0.1301224882E-02 0.8497101893 0.1301441343E-02 0.8520572197 0.1301656605E-02 0.8544042501 0.1301870611E-02 0.8567512805 0.1302083310E-02 0.8590983109 0.1302294654E-02 0.8614453413 0.1302504597E-02 0.8637923717 0.1302713095E-02 0.8661394021 0.1302920109E-02 0.8684864325 0.1303125601E-02 0.8708334629 0.1303329536E-02 0.8731804933 0.1303531884E-02 0.8755275237 0.1303732614E-02 0.8778745541 0.1303931700E-02 0.8802215844 0.1304129118E-02 0.8825686148 0.1304324846E-02 0.8849156452 0.1304518865E-02 0.8872626756 0.1304711158E-02 0.8896097060 0.1304901709E-02 0.8919567364 0.1305090506E-02 0.8943037668 0.1305277538E-02 0.8966507972 0.1305462795E-02 0.8989978276 0.1305646272E-02 0.9013448580 0.1305827961E-02 0.9036918884 0.1306007860E-02 0.9060389188 0.1306185965E-02 0.9083859492 0.1306362276E-02 0.9107329796 0.1306536792E-02 0.9130800099 0.1306709515E-02 0.9154270403 0.1306880447E-02 0.9177740707 0.1307049590E-02 0.9201211011 0.1307216950E-02 0.9224681315 0.1307382529E-02 0.9248151619 0.1307546334E-02 0.9271621923 0.1307708370E-02 0.9295092227 0.1307868642E-02 0.9318562531 0.1308027157E-02 0.9342032835 0.1308183921E-02 0.9365503139 0.1308338939E-02 0.9388973443 0.1308492218E-02 0.9412443747 0.1308643763E-02 0.9435914050 0.1308793580E-02 0.9459384354 0.1308941674E-02 0.9482854658 0.1309088050E-02 0.9506324962 0.1309232710E-02 0.9529795266 0.1309375659E-02 0.9553265570 0.1309516898E-02 0.9576735874 0.1309656430E-02 0.9600206178 0.1309794254E-02 0.9623676482 0.1309930370E-02 0.9647146786 0.1310064777E-02 0.9670617090 0.1310197471E-02 0.9694087394 0.1310328450E-02 0.9717557698 0.1310457707E-02 0.9741028002 0.1310585236E-02 0.9764498305 0.1310711030E-02 0.9787968609 0.1310835079E-02 0.9811438913 0.1310957372E-02 0.9834909217 0.1311077897E-02 0.9858379521 0.1311196640E-02 0.9881849825 0.1311313587E-02 0.9905320129 0.1311428721E-02 0.9928790433 0.1311542022E-02 0.9952260737 0.1311653473E-02 0.9975731041 0.1311763051E-02 0.9999201345 0.1311870733E-02 1.002267165 0.1311976495E-02 1.004614195 0.1312080312E-02 1.006961226 0.1312182156E-02 1.009308256 0.1312281999E-02 1.011655286 0.1312379810E-02 1.014002317 0.1312475557E-02 1.016349347 0.1312569209E-02 1.018696378 0.1312660731E-02 1.021043408 0.1312750088E-02 1.023390438 0.1312837243E-02 1.025737469 0.1312922160E-02 1.028084499 0.1313004798E-02 1.030431530 0.1313085119E-02 1.032778560 0.1313163083E-02 1.035125590 0.1313238647E-02 1.037472621 0.1313311771E-02 1.039819651 0.1313382411E-02 1.042166682 0.1313450525E-02 1.044513712 0.1313516068E-02 1.046860742 0.1313578997E-02 1.049207773 0.1313639267E-02 1.051554803 0.1313696834E-02 1.053901834 0.1313751653E-02 1.056248864 0.1313803680E-02 1.058595894 0.1313852870E-02 1.060942925 0.1313899179E-02 1.063289955 0.1313942564E-02 1.065636985 0.1313982979E-02 1.067984016 0.1314020384E-02 1.070331046 0.1314054735E-02 1.072678077 0.1314085992E-02 1.075025107 0.1314114113E-02 1.077372137 0.1314139058E-02 1.079719168 0.1314160790E-02 1.082066198 0.1314179272E-02 1.084413229 0.1314194466E-02 1.086760259 0.1314206339E-02 1.089107289 0.1314214858E-02 1.091454320 0.1314219990E-02 1.093801350 0.1314221708E-02 1.096152861 0.1314218948E-02 1.098504372 0.1314210674E-02 1.100855883 0.1314196887E-02 1.103207394 0.1314177586E-02 1.105558905 0.1314152770E-02 1.107910415 0.1314122433E-02 1.110261926 0.1314086568E-02 1.112613437 0.1314045165E-02 1.114964948 0.1313998211E-02 1.117316459 0.1313945691E-02 1.119667970 0.1313887588E-02 1.122019481 0.1313823882E-02 1.124370992 0.1313754551E-02 1.126722503 0.1313679570E-02 1.129074013 0.1313598913E-02 1.131425524 0.1313512551E-02 1.133777035 0.1313420451E-02 1.136128546 0.1313322580E-02 1.138480057 0.1313218902E-02 1.140831568 0.1313109379E-02 1.143183079 0.1312993969E-02 1.145534590 0.1312872631E-02 1.147886101 0.1312745320E-02 1.150237611 0.1312611988E-02 1.152589122 0.1312472586E-02 1.154940633 0.1312327063E-02 1.157292144 0.1312175365E-02 1.159643655 0.1312017437E-02 1.161995166 0.1311853221E-02 1.164346677 0.1311682658E-02 1.166698188 0.1311505686E-02 1.169049699 0.1311322241E-02 1.171401209 0.1311132256E-02 1.173752720 0.1310935665E-02 1.176104231 0.1310732398E-02 1.178455742 0.1310522382E-02 1.180807253 0.1310305543E-02 1.183158764 0.1310081805E-02 1.185510275 0.1309851090E-02 1.187861786 0.1309613319E-02 1.190213296 0.1309368408E-02 1.192564807 0.1309116272E-02 1.194916318 0.1308856827E-02 1.197267829 0.1308589982E-02 1.199619340 0.1308315646E-02 1.201970851 0.1308033727E-02 1.204322362 0.1307744129E-02 1.206673873 0.1307446753E-02 1.209025384 0.1307141501E-02 1.211376894 0.1306828268E-02 1.213728405 0.1306506951E-02 1.216079916 0.1306177441E-02 1.218431427 0.1305839628E-02 1.220782938 0.1305493399E-02 1.223134449 0.1305138639E-02 1.225485960 0.1304775229E-02 1.227837471 0.1304403049E-02 1.230188982 0.1304021973E-02 1.232540492 0.1303631874E-02 1.234892003 0.1303232622E-02 1.237243514 0.1302824084E-02 1.239595025 0.1302406123E-02 1.241946536 0.1301978597E-02 1.244298047 0.1301541363E-02 1.246649558 0.1301094274E-02 1.249001069 0.1300637177E-02 1.251352580 0.1300169919E-02 1.253704090 0.1299692339E-02 1.256055601 0.1299204274E-02 1.258407112 0.1298705556E-02 1.260758623 0.1298196014E-02 1.263110134 0.1297675469E-02 1.265461645 0.1297143742E-02 1.267813156 0.1296600645E-02 1.270164667 0.1296045987E-02 1.272516177 0.1295479572E-02 1.274867688 0.1294901196E-02 1.277219199 0.1294310654E-02 1.279570710 0.1293707730E-02 1.281922221 0.1293092206E-02 1.284273732 0.1292463856E-02 1.286625243 0.1291822448E-02 1.288976754 0.1291167744E-02 1.291328265 0.1290499498E-02 1.293679775 0.1289817458E-02 1.296031286 0.1289121365E-02 1.298382797 0.1288410950E-02 1.300734308 0.1287685939E-02 1.303085819 0.1286946050E-02 1.305437330 0.1286190991E-02 1.307788841 0.1285420462E-02 1.310140352 0.1284634156E-02 1.312491863 0.1283831753E-02 1.314843373 0.1283012929E-02 1.317194884 0.1282177345E-02 1.319546395 0.1281324655E-02 1.321897906 0.1280454503E-02 1.324249417 0.1279566520E-02 1.326600928 0.1278660329E-02 1.328952439 0.1277735540E-02 1.331303950 0.1276791751E-02 1.333655461 0.1275828550E-02 1.336006971 0.1274845510E-02 1.338358482 0.1273842194E-02 1.340709993 0.1272818149E-02 1.343061504 0.1271772913E-02 1.345413015 0.1270706005E-02 1.347764526 0.1269616934E-02 1.350116037 0.1268505192E-02 1.352467548 0.1267370257E-02 1.354819059 0.1266211591E-02 1.357170569 0.1265028641E-02 1.359522080 0.1263820838E-02 1.361873591 0.1262587596E-02 1.364225102 0.1261328311E-02 1.366576613 0.1260042363E-02 1.368928124 0.1258729115E-02 1.371279635 0.1257387909E-02 1.373631146 0.1256018071E-02 1.375982656 0.1254618907E-02 1.378334167 0.1253189703E-02 1.380685678 0.1251729728E-02 1.383037189 0.1250238227E-02 1.385388700 0.1248714428E-02 1.387740211 0.1247157536E-02 1.390091722 0.1245566736E-02 1.392443233 0.1243941193E-02 1.394794744 0.1242280047E-02 1.397146254 0.1240004933E-02 1.399497765 0.1236578142E-02 1.401849276 0.1233105897E-02 1.404200787 0.1229588680E-02 1.406552298 0.1226026968E-02 1.408903809 0.1222421233E-02 1.411255320 0.1218771945E-02 1.413606831 0.1215079567E-02 1.415958342 0.1211344556E-02 1.418309852 0.1207567364E-02 1.420661363 0.1203748441E-02 1.423012874 0.1199888225E-02 1.425364385 0.1195987154E-02 1.427715896 0.1192045656E-02 1.430067407 0.1188064155E-02 1.432418918 0.1184043068E-02 1.434770429 0.1179982806E-02 1.437121940 0.1175883774E-02 1.439473450 0.1171746370E-02 1.441824961 0.1167570985E-02 1.444176472 0.1163358005E-02 1.446527983 0.1159107809E-02 1.448879494 0.1154820767E-02 1.451231005 0.1150497246E-02 1.453582516 0.1146137603E-02 1.455934027 0.1141742190E-02 1.458285537 0.1137311352E-02 1.460637048 0.1132845427E-02 1.462988559 0.1128344745E-02 1.465340070 0.1123809630E-02 1.467691581 0.1119240398E-02 1.470043092 0.1114637360E-02 1.472394603 0.1110000817E-02 1.474746114 0.1105331066E-02 1.477097625 0.1100628394E-02 1.479449135 0.1095893082E-02 1.481800646 0.1091125404E-02 1.484152157 0.1086325628E-02 1.486503668 0.1081494012E-02 1.488855179 0.1076630810E-02 1.491206690 0.1071736266E-02 1.493558201 0.1066810619E-02 1.495909712 0.1061854100E-02 1.498261223 0.1056866933E-02 1.500612733 0.1051849336E-02 1.502964244 0.1046801520E-02 1.505315755 0.1041723688E-02 1.507667266 0.1036616037E-02 1.510018777 0.1031478758E-02 1.512370288 0.1026312035E-02 1.514721799 0.1021116046E-02 1.517073310 0.1015890962E-02 1.519424821 0.1010636948E-02 1.521776331 0.1005354165E-02 1.524127842 0.1000042766E-02 1.526479353 0.9947028997E-03 1.528830864 0.9893347082E-03 1.531182375 0.9839383292E-03 1.533533886 0.9785138952E-03 1.535885397 0.9730615339E-03 1.538236908 0.9675813681E-03 1.540588418 0.9620735164E-03 1.542939929 0.9565380931E-03 1.545291440 0.9509752083E-03 1.547642951 0.9453849686E-03 1.549994462 0.9397674768E-03 1.552345973 0.9341228327E-03 1.554697484 0.9284511326E-03 1.557048995 0.9227524702E-03 1.559400506 0.9170269366E-03 1.561752016 0.9112746206E-03 1.564103527 0.9054956086E-03 1.566455038 0.8996899854E-03 1.568806549 0.8938578340E-03 1.571158060 0.8879992362E-03 1.573509571 0.8821142726E-03 1.575861082 0.8762030227E-03 1.578212593 0.8702655656E-03 1.580564104 0.8643019798E-03 1.582915614 0.8583123437E-03 1.585267125 0.8522967358E-03 1.587618636 0.8462552346E-03 1.589970147 0.8401879193E-03 1.592321658 0.8340948698E-03 1.594673169 0.8279761669E-03 1.597024680 0.8218318924E-03 1.599376191 0.8156621295E-03 1.601727702 0.8094669630E-03 1.604079212 0.8032464792E-03 1.606430723 0.7970007665E-03 1.608782234 0.7907299152E-03 1.611133745 0.7844340179E-03 1.613485256 0.7781131695E-03 1.615836767 0.7717674676E-03 1.618188278 0.7653970124E-03 1.620539789 0.7590019069E-03 1.622891299 0.7525822570E-03 1.625242810 0.7461381719E-03 1.627594321 0.7396697638E-03 1.629945832 0.7331771483E-03 1.632297343 0.7266604444E-03 1.634648854 0.7199941475E-03 1.637000365 0.7112131859E-03 1.639351876 0.7023985719E-03 1.641703387 0.6935521838E-03 1.644054897 0.6846759050E-03 1.646406408 0.6757716237E-03 1.648757919 0.6668412326E-03 1.651109430 0.6578866280E-03 1.653460941 0.6489097098E-03 1.655812452 0.6399123811E-03 1.658163963 0.6308965474E-03 1.660515474 0.6218641166E-03 1.662866985 0.6128169984E-03 1.665218495 0.6037571042E-03 1.667570006 0.5946863463E-03 1.669921517 0.5856066379E-03 1.672273028 0.5765198923E-03 1.674624539 0.5674280228E-03 1.676976050 0.5583329421E-03 1.679327561 0.5492365618E-03 1.681679072 0.5401407921E-03 1.684030583 0.5310475408E-03 1.686382093 0.5219587133E-03 1.688733604 0.5128762114E-03 1.691085115 0.5038019331E-03 1.693436626 0.4947377715E-03 1.695788137 0.4856856142E-03 1.698139648 0.4766473426E-03 1.700491159 0.4676248305E-03 1.702842670 0.4586199435E-03 1.705194180 0.4496345379E-03 1.707545691 0.4406704592E-03 1.709897202 0.4317295412E-03 1.712248713 0.4228136046E-03 1.714600224 0.4139244550E-03 1.716951735 0.4050638822E-03 1.719303246 0.3962336574E-03 1.721654757 0.3874355324E-03 1.724006268 0.3786712367E-03 1.726357778 0.3699424757E-03 1.728709289 0.3612509283E-03 1.731060800 0.3525982441E-03 1.733412311 0.3439860410E-03 1.735763822 0.3354159016E-03 1.738115333 0.3268893703E-03 1.740466844 0.3184079496E-03 1.742818355 0.3099730958E-03 1.745169866 0.3015862150E-03 1.747521376 0.2932486584E-03 1.749872887 0.2849617167E-03 1.752224398 0.2767266142E-03 1.754575909 0.2685445030E-03 1.756927420 0.2604164549E-03 1.759278931 0.2523434539E-03 1.761630442 0.2443263869E-03 1.763981953 0.2363660333E-03 1.766333464 0.2284630533E-03 1.768684974 0.2206179744E-03 1.771036485 0.2128311755E-03 1.773387996 0.2051028691E-03 1.775739507 0.1974330795E-03 1.778091018 0.1898216175E-03 1.780442529 0.1822680501E-03 1.782794040 0.1747716637E-03 1.785145551 0.1673314193E-03 1.787497061 0.1599458972E-03 1.789848572 0.1526132275E-03 1.792200083 0.1453310026E-03 1.794551594 0.1380961649E-03 1.796903105 0.1309048594E-03 1.799254616 0.1237522400E-03 1.801606127 0.1166322067E-03 1.803957638 0.1095370439E-03 1.806309149 0.1024569110E-03 1.808660659 0.9537910437E-04 1.811012170 0.8828695596E-04 1.813363681 0.8115812702E-04 1.815715192 0.7396184691E-04 1.818066703 0.6665419192E-04 1.820418214 0.5916942811E-04 1.822769725 0.5140258789E-04 1.825121236 0.4316948885E-04 1.827472747 0.3409442845E-04 1.829824257 0.2315262841E-04 1.832175768 -0.4258511596E-05 1.834527279 -0.2241892396E-04 1.836878790 -0.3032803003E-04 1.839230301 -0.3566511243E-04 1.841581812 -0.3951537202E-04 1.843933323 -0.4231198237E-04 1.846284834 -0.4427789226E-04 1.848636345 -0.4554173956E-04 1.850987855 -0.4618055952E-04 1.853339366 -0.4623828152E-04 1.855690877 -0.4573395218E-04 1.858042388 -0.4466434737E-04 1.860393899 -0.4300219816E-04 1.862745410 -0.4068903528E-04 1.865096921 -0.3761835939E-04 1.867448432 -0.3359600995E-04 1.869799942 -0.2823087895E-04 1.872151453 -0.2050860705E-04 1.874502964 -0.8563363408E-10 1.876849995 -0.2637059676E-04 1.879197025 -0.3631729290E-04 1.881544055 -0.4324100709E-04 1.883891086 -0.4844704911E-04 1.886238116 -0.5244189882E-04 1.888585147 -0.5548085832E-04 1.890932177 -0.5770866213E-04 1.893279207 -0.5921083004E-04 1.895626238 -0.6003603339E-04 1.897973268 -0.6020651890E-04 1.900320299 -0.5972247149E-04 1.902667329 -0.5856236384E-04 1.905014359 -0.5667946862E-04 1.907361390 -0.5399299726E-04 1.909708420 -0.5036923061E-04 1.912055451 -0.4557963464E-04 1.914402481 -0.3919310402E-04 1.916749511 -0.3020602657E-04 1.919096542 -0.1435285739E-04 1.921443572 0.2415531654E-04 1.923790603 0.3816273999E-04 1.926137633 0.4912286236E-04 1.928484663 0.5876854651E-04 1.930831694 0.6766609166E-04 1.933178724 0.7607983052E-04 1.935525754 0.8415604797E-04 1.937872785 0.9198445827E-04 1.940219815 0.9962402751E-04 1.942566846 0.1071154958E-03 1.944913876 0.1144880897E-03 1.947260906 0.1217633977E-03 1.949607937 0.1289577408E-03 1.951954967 0.1360836903E-03 1.954301998 0.1431510775E-03 1.956649028 0.1501676861E-03 1.958996058 0.1571397406E-03 1.961343089 0.1640722586E-03 1.963690119 0.1709693096E-03 1.966037150 0.1778342092E-03 1.968384180 0.1846696663E-03 1.970731210 0.1914778975E-03 1.973078241 0.1982607153E-03 1.975425271 0.2050195989E-03 1.977772302 0.2117557498E-03 1.980119332 0.2184701370E-03 1.982466362 0.2251635338E-03 1.984813393 0.2318365479E-03 1.987160423 0.2384896461E-03 1.989507454 0.2451231749E-03 1.991854484 0.2517373779E-03 1.994201514 0.2583324102E-03 1.996548545 0.2649083508E-03 1.998895575 0.2714652131E-03 2.001242605 0.2780029535E-03 2.003589636 0.2845214799E-03 2.005936666 0.2910206574E-03 2.008283697 0.2975003150E-03 2.010630727 0.3039602499E-03 2.012977757 0.3104002323E-03 2.015324788 0.3168200094E-03 2.017671818 0.3232193083E-03 2.020018849 0.3295978395E-03 2.022365879 0.3359552995E-03 2.024712909 0.3422913731E-03 2.027059940 0.3486057356E-03 2.029406970 0.3548980545E-03 2.031754001 0.3611679918E-03 2.034101031 0.3674152047E-03 2.036448061 0.3736393480E-03 2.038795092 0.3798400745E-03 2.041142122 0.3860170366E-03 2.043489153 0.3921698873E-03 2.045836183 0.3982982813E-03 2.048183213 0.4044018754E-03 2.050530244 0.4104803299E-03 2.052877274 0.4165333089E-03 2.055224304 0.4225604810E-03 2.057571335 0.4285615203E-03 2.059918365 0.4345361067E-03 2.062265396 0.4404839262E-03 2.064612426 0.4464046717E-03 2.066959456 0.4522980434E-03 2.069306487 0.4581637492E-03 2.071653517 0.4640015049E-03 2.074000548 0.4698110346E-03 2.076347578 0.4755920712E-03 2.078694608 0.4813443564E-03 2.081041639 0.4870676412E-03 2.083388669 0.4927616857E-03 2.085735700 0.4984262600E-03 2.088082730 0.5040611438E-03 2.090429760 0.5096661264E-03 2.092776791 0.5152410077E-03 2.095123821 0.5207855972E-03 2.097470852 0.5262997150E-03 2.099817882 0.5317831913E-03 2.102164912 0.5372358666E-03 2.104511943 0.5426575917E-03 2.106858973 0.5480482280E-03 2.109206004 0.5534076468E-03 2.111553034 0.5587357298E-03 2.113900064 0.5640323689E-03 2.116247095 0.5692974661E-03 2.118594125 0.5745309333E-03 2.120941155 0.5797326921E-03 2.123288186 0.5849026738E-03 2.125635216 0.5900408193E-03 2.127982247 0.5951470785E-03 2.130329277 0.6002214105E-03 2.132676307 0.6052637829E-03 2.135023338 0.6102741719E-03 2.137370368 0.6152525617E-03 2.139717399 0.6201989445E-03 2.142064429 0.6251133195E-03 2.144411459 0.6299956931E-03 2.146758490 0.6348460782E-03 2.149105520 0.6396644937E-03 2.151452551 0.6444509641E-03 2.153799581 0.6492055190E-03 2.156146611 0.6539281922E-03 2.158493642 0.6586190214E-03 2.160840672 0.6632780477E-03 2.163187703 0.6679053145E-03 2.165534733 0.6725008668E-03 2.167881763 0.6770647509E-03 2.170228794 0.6815970131E-03 2.172575824 0.6860976990E-03 2.174922855 0.6905668528E-03 2.177269885 0.6950045160E-03 2.179616915 0.6994107266E-03 2.181963946 0.7037855180E-03 2.184310976 0.7081289179E-03 2.186658006 0.7124409473E-03 2.189005037 0.7167216190E-03 2.191352067 0.7209709365E-03 2.193699098 0.7251888925E-03 2.196046128 0.7293754679E-03 2.198393158 0.7335306299E-03 2.200740189 0.7376543306E-03 2.203087219 0.7417465055E-03 2.205434250 0.7458070717E-03 2.207781280 0.7498359264E-03 2.210128310 0.7538329446E-03 2.212475341 0.7577979777E-03 2.214822371 0.7617308513E-03 2.217169402 0.7656313629E-03 2.219516432 0.7694992802E-03 2.221863462 0.7733343386E-03 2.224210493 0.7771362388E-03 2.226557523 0.7809046444E-03 2.228904554 0.7846391798E-03 2.231251584 0.7883394267E-03 2.233598614 0.7920049225E-03 2.235945645 0.7956351564E-03 2.238292675 0.7992295674E-03 2.240639706 0.8027875408E-03 2.242986736 0.8063084053E-03 2.245333766 0.8097914300E-03 2.247680797 0.8132358208E-03 2.250027827 0.8166407175E-03 2.252374857 0.8200051903E-03 2.254721888 0.8233282365E-03 2.257068918 0.8266087770E-03 2.259415949 0.8298456532E-03 2.261762979 0.8330376230E-03 2.264110009 0.8361833584E-03 2.266457040 0.8392814416E-03 2.268804070 0.8423303622E-03 2.271151101 0.8453285144E-03 2.273498131 0.8482741942E-03 2.275845161 0.8511655970E-03 2.278192192 0.8540008161E-03 2.280539222 0.8567778405E-03 2.282886253 0.8594945547E-03 2.285233283 0.8621487376E-03 2.287580313 0.8647380638E-03 2.289927344 0.8672601041E-03 2.292274374 0.8697123284E-03 2.294621405 0.8720921088E-03 2.296968435 0.8743967243E-03 2.299315465 0.8766233666E-03 2.301662496 0.8787691480E-03 2.304009526 0.8808311101E-03 2.306356557 0.8828062349E-03 2.308703587 0.8846914571E-03 2.311050617 0.8864836784E-03 2.313397648 0.8881797840E-03 2.315744678 0.8897766604E-03 2.318091708 0.8912712154E-03 2.320438739 0.8926603990E-03 2.322785769 0.8939412267E-03 2.325132800 0.8951108030E-03 2.327479830 0.8961663463E-03 2.329826860 0.8971052143E-03 2.332173891 0.8979249287E-03 2.334520921 0.8986232006E-03 2.336867952 0.8991979538E-03 2.339214982 0.8996473472E-03 2.341562012 0.8999697953E-03 2.343909043 0.9001639856E-03 2.346256073 0.9002288938E-03 0.000000000 -0.7896404516E-10 0.2347351854E-02 0.5837215964E-05 0.4694703708E-02 0.1167452958E-04 0.7042055561E-02 0.1751203841E-04 0.9389407415E-02 0.2334983989E-04 0.1173675927E-01 0.2918803118E-04 0.1408411112E-01 0.3502670915E-04 0.1643146298E-01 0.4086597030E-04 0.1877881483E-01 0.4670591063E-04 0.2112616668E-01 0.5254662562E-04 0.2347351854E-01 0.5838821013E-04 0.2582087039E-01 0.6423075833E-04 0.2816822225E-01 0.7007436364E-04 0.3051557410E-01 0.7591911863E-04 0.3286292595E-01 0.8176511498E-04 0.3521027781E-01 0.8761244341E-04 0.3755762966E-01 0.9346119358E-04 0.3990498151E-01 0.9931145407E-04 0.4225233337E-01 0.1051633123E-03 0.4459968522E-01 0.1110168544E-03 0.4694703708E-01 0.1168721654E-03 0.4929438893E-01 0.1227293287E-03 0.5164174078E-01 0.1285884265E-03 0.5398909264E-01 0.1344495396E-03 0.5633644449E-01 0.1403127472E-03 0.5868379634E-01 0.1461781269E-03 0.6103114820E-01 0.1520457548E-03 0.6337850005E-01 0.1579157053E-03 0.6572585191E-01 0.1637880513E-03 0.6807320376E-01 0.1696628638E-03 0.7042055561E-01 0.1755402121E-03 0.7276790747E-01 0.1814201636E-03 0.7511525932E-01 0.1873027842E-03 0.7746261117E-01 0.1931881377E-03 0.7980996303E-01 0.1990762862E-03 0.8215731488E-01 0.2049672896E-03 0.8450466674E-01 0.2108612063E-03 0.8685201859E-01 0.2167580926E-03 0.8919937044E-01 0.2226580027E-03 0.9154672230E-01 0.2285609892E-03 0.9389407415E-01 0.2344671025E-03 0.9624142601E-01 0.2403763910E-03 0.9858877786E-01 0.2464222495E-03 0.1009361297 0.2545931239E-03 0.1032834816 0.2628708426E-03 0.1056308334 0.2712534053E-03 0.1079781853 0.2797387003E-03 0.1103255371 0.2883245102E-03 0.1126728890 0.2970085173E-03 0.1150202408 0.3057883086E-03 0.1173675927 0.3146613805E-03 0.1197149445 0.3236251433E-03 0.1220622964 0.3326769256E-03 0.1244096483 0.3418139783E-03 0.1267570001 0.3510334784E-03 0.1291043520 0.3603325326E-03 0.1314517038 0.3697081804E-03 0.1337990557 0.3791573979E-03 0.1361464075 0.3886771001E-03 0.1384937594 0.3982641444E-03 0.1408411112 0.4079153327E-03 0.1431884631 0.4176274142E-03 0.1455358149 0.4273970878E-03 0.1478831668 0.4372210044E-03 0.1502305186 0.4470957688E-03 0.1525778705 0.4570179421E-03 0.1549252223 0.4669840435E-03 0.1572725742 0.4769905520E-03 0.1596199261 0.4870339087E-03 0.1619672779 0.4971105185E-03 0.1643146298 0.5072167515E-03 0.1666619816 0.5173489453E-03 0.1690093335 0.5275034065E-03 0.1713566853 0.5376764125E-03 0.1737040372 0.5478642136E-03 0.1760513890 0.5580630345E-03 0.1783987409 0.5682690767E-03 0.1807460927 0.5784785204E-03 0.1830934446 0.5886875264E-03 0.1854407964 0.5988922388E-03 0.1877881483 0.6090887874E-03 0.1901355002 0.6192732898E-03 0.1924828520 0.6294418548E-03 0.1948302039 0.6395905848E-03 0.1971775557 0.6497155795E-03 0.1995249076 0.6598129386E-03 0.2018722594 0.6698787661E-03 0.2042196113 0.6799091734E-03 0.2065669631 0.6899002840E-03 0.2089143150 0.6998482376E-03 0.2112616668 0.7097491946E-03 0.2136090187 0.7195993412E-03 0.2159563705 0.7293948943E-03 0.2183037224 0.7391321071E-03 0.2206510743 0.7488072747E-03 0.2229984261 0.7584167400E-03 0.2253457780 0.7679568999E-03 0.2276931298 0.7774242116E-03 0.2300404817 0.7868151991E-03 0.2323878335 0.7961264601E-03 0.2347351854 0.8053546728E-03 0.2370825372 0.8144966029E-03 0.2394298891 0.8235491103E-03 0.2417772409 0.8325091566E-03 0.2441245928 0.8413738117E-03 0.2464719446 0.8501402610E-03 0.2488192965 0.8588058120E-03 0.2511666484 0.8673679007E-03 0.2535140002 0.8758240982E-03 0.2558613521 0.8841721165E-03 0.2582087039 0.8924098140E-03 0.2605560558 0.9005352010E-03 0.2629034076 0.9085464438E-03 0.2652507595 0.9164418692E-03 0.2675981113 0.9242199679E-03 0.2699454632 0.9318793974E-03 0.2722928150 0.9394189841E-03 0.2746401669 0.9468377247E-03 0.2769875187 0.9541347872E-03 0.2793348706 0.9613095106E-03 0.2816822225 0.9683614043E-03 0.2840295743 0.9752901465E-03 0.2863769262 0.9820955821E-03 0.2887242780 0.9887777194E-03 0.2910716299 0.9953367267E-03 0.2934189817 0.1001772928E-02 0.2957663336 0.1008086797E-02 0.2981136854 0.1014278955E-02 0.3004610373 0.1020350159E-02 0.3028083891 0.1026301301E-02 0.3051557410 0.1032133397E-02 0.3075030928 0.1037847583E-02 0.3098504447 0.1043445105E-02 0.3121977966 0.1048927312E-02 0.3145451484 0.1054295649E-02 0.3168925003 0.1059551649E-02 0.3192398521 0.1064696923E-02 0.3215872040 0.1069733154E-02 0.3239345558 0.1074662090E-02 0.3262819077 0.1079485534E-02 0.3286292595 0.1084205338E-02 0.3309766114 0.1088823395E-02 0.3333239632 0.1093341634E-02 0.3356713151 0.1097762008E-02 0.3380186669 0.1102086496E-02 0.3403660188 0.1106317088E-02 0.3427133707 0.1110455785E-02 0.3450607225 0.1114504592E-02 0.3474080744 0.1118465513E-02 0.3497554262 0.1122340546E-02 0.3521027781 0.1126131678E-02 0.3544501299 0.1129840883E-02 0.3567974818 0.1133470115E-02 0.3591448336 0.1137021310E-02 0.3614921855 0.1140496377E-02 0.3638395373 0.1143897200E-02 0.3661868892 0.1147225633E-02 0.3685342410 0.1150483497E-02 0.3708815929 0.1153672584E-02 0.3732289448 0.1156794647E-02 0.3755762966 0.1159851405E-02 0.3779236485 0.1162844540E-02 0.3802710003 0.1165775696E-02 0.3826183522 0.1168646476E-02 0.3849657040 0.1171458446E-02 0.3873130559 0.1174213133E-02 0.3896604077 0.1176912020E-02 0.3920077596 0.1179556555E-02 0.3943551114 0.1182148142E-02 0.3967024633 0.1184688147E-02 0.3990498151 0.1187177896E-02 0.4013971670 0.1189618676E-02 0.4037445189 0.1192011735E-02 0.4060918707 0.1194358280E-02 0.4084392226 0.1196659485E-02 0.4107865744 0.1198916482E-02 0.4131339263 0.1201130368E-02 0.4154812781 0.1203302203E-02 0.4178286300 0.1205433014E-02 0.4201759818 0.1207523789E-02 0.4225233337 0.1209575485E-02 0.4248706855 0.1211589025E-02 0.4272180374 0.1213565299E-02 0.4295653892 0.1215505164E-02 0.4319127411 0.1217409448E-02 0.4342600929 0.1219278947E-02 0.4366074448 0.1221114427E-02 0.4389547967 0.1222916626E-02 0.4413021485 0.1224686254E-02 0.4436495004 0.1226423991E-02 0.4459968522 0.1228130493E-02 0.4483442041 0.1229806389E-02 0.4506915559 0.1231452281E-02 0.4530389078 0.1233068748E-02 0.4553862596 0.1234656343E-02 0.4577336115 0.1236215599E-02 0.4600809633 0.1237747021E-02 0.4624283152 0.1239251095E-02 0.4647756670 0.1240728285E-02 0.4671230189 0.1242179033E-02 0.4694703708 0.1243603761E-02 0.4718177226 0.1245002870E-02 0.4741650745 0.1246376742E-02 0.4765124263 0.1247725740E-02 0.4788597782 0.1249050208E-02 0.4812071300 0.1250350473E-02 0.4835544819 0.1251626844E-02 0.4859018337 0.1252879612E-02 0.4882491856 0.1254109053E-02 0.4905965374 0.1255315424E-02 0.4929438893 0.1256498969E-02 0.4952912411 0.1257659916E-02 0.4976385930 0.1258798477E-02 0.4999859449 0.1259914850E-02 0.5023332967 0.1261009219E-02 0.5046806486 0.1262081754E-02 0.5070280004 0.1263132612E-02 0.5093753523 0.1264161938E-02 0.5117227041 0.1265169861E-02 0.5140700560 0.1266156502E-02 0.5164174078 0.1267121967E-02 0.5187647597 0.1268066353E-02 0.5211121115 0.1268989743E-02 0.5234594634 0.1269892213E-02 0.5258068152 0.1270773826E-02 0.5281541671 0.1271634637E-02 0.5305015190 0.1272474689E-02 0.5328488708 0.1273294017E-02 0.5351962227 0.1274092650E-02 0.5375435745 0.1274870605E-02 0.5398909264 0.1275627892E-02 0.5422382782 0.1276364515E-02 0.5445856301 0.1277080470E-02 0.5469329819 0.1277775745E-02 0.5492803338 0.1278450325E-02 0.5516276856 0.1279104187E-02 0.5539750375 0.1280292059E-02 0.5563223893 0.1281818963E-02 0.5586697412 0.1283280751E-02 0.5610170931 0.1284678503E-02 0.5633644449 0.1286013288E-02 0.5657117968 0.1287286167E-02 0.5680591486 0.1288498182E-02 0.5704065005 0.1289650357E-02 0.5727538523 0.1290743694E-02 0.5751012042 0.1291779167E-02 0.5774485560 0.1292757723E-02 0.5797959079 0.1293680275E-02 0.5821432597 0.1294547704E-02 0.5844906116 0.1295360855E-02 0.5868379634 0.1296120532E-02 0.5891853153 0.1296827501E-02 0.5915326672 0.1297482483E-02 0.5938800190 0.1298086159E-02 0.5962273709 0.1298639160E-02 0.5985747227 0.1299142076E-02 0.6009220746 0.1299595444E-02 0.6032694264 0.1299999757E-02 0.6056167783 0.1300355455E-02 0.6079641301 0.1300662930E-02 0.6103114820 0.1300922522E-02 0.6126588338 0.1301134521E-02 0.6150061857 0.1301299162E-02 0.6173535375 0.1301416630E-02 0.6197008894 0.1301487058E-02 0.6220482413 0.1301510526E-02 0.6243952716 0.1301428541E-02 0.6267423020 0.1301352325E-02 0.6290893324 0.1301282003E-02 0.6314363628 0.1301217699E-02 0.6337833932 0.1301159536E-02 0.6361304236 0.1301107637E-02 0.6384774540 0.1301062121E-02 0.6408244844 0.1301023106E-02 0.6431715148 0.1300990709E-02 0.6455185452 0.1300965041E-02 0.6478655756 0.1300946214E-02 0.6502126060 0.1300934335E-02 0.6525596364 0.1300929508E-02 0.6549066668 0.1300931834E-02 0.6572536971 0.1300941409E-02 0.6596007275 0.1300958327E-02 0.6619477579 0.1300982677E-02 0.6642947883 0.1301014543E-02 0.6666418187 0.1301054006E-02 0.6689888491 0.1301101140E-02 0.6713358795 0.1301156018E-02 0.6736829099 0.1301218704E-02 0.6760299403 0.1301289259E-02 0.6783769707 0.1301367738E-02 0.6807240011 0.1301454191E-02 0.6830710315 0.1301548662E-02 0.6854180619 0.1301651191E-02 0.6877650922 0.1301761809E-02 0.6901121226 0.1301880545E-02 0.6924591530 0.1302007419E-02 0.6948061834 0.1302142446E-02 0.6971532138 0.1302285636E-02 0.6995002442 0.1302436992E-02 0.7018472746 0.1302596512E-02 0.7041943050 0.1302764185E-02 0.7065413354 0.1302939997E-02 0.7088883658 0.1303123927E-02 0.7112353962 0.1303315946E-02 0.7135824266 0.1303516022E-02 0.7159294570 0.1303724115E-02 0.7182764874 0.1303940179E-02 0.7206235177 0.1304164163E-02 0.7229705481 0.1304396009E-02 0.7253175785 0.1304635653E-02 0.7276646089 0.1304883026E-02 0.7300116393 0.1305138054E-02 0.7323586697 0.1305400655E-02 0.7347057001 0.1305670743E-02 0.7370527305 0.1305948227E-02 0.7393997609 0.1306233010E-02 0.7417467913 0.1306524990E-02 0.7440938217 0.1306824059E-02 0.7464408521 0.1307130105E-02 0.7487878825 0.1307443011E-02 0.7511349128 0.1307762656E-02 0.7534819432 0.1308088913E-02 0.7558289736 0.1308421652E-02 0.7581760040 0.1308760737E-02 0.7605230344 0.1309106031E-02 0.7628700648 0.1309457389E-02 0.7652170952 0.1309814666E-02 0.7675641256 0.1310177711E-02 0.7699111560 0.1310546370E-02 0.7722581864 0.1310920488E-02 0.7746052168 0.1311299903E-02 0.7769522472 0.1311684454E-02 0.7792992776 0.1312073974E-02 0.7816463080 0.1312468296E-02 0.7839933383 0.1312867250E-02 0.7863403687 0.1313270662E-02 0.7886873991 0.1313678358E-02 0.7910344295 0.1314090162E-02 0.7933814599 0.1314505896E-02 0.7957284903 0.1314925381E-02 0.7980755207 0.1315348436E-02 0.8004225511 0.1315774878E-02 0.8027695815 0.1316204526E-02 0.8051166119 0.1316637197E-02 0.8074636423 0.1317072705E-02 0.8098106727 0.1317510867E-02 0.8121577031 0.1317951499E-02 0.8145047335 0.1318394415E-02 0.8168517638 0.1318839431E-02 0.8191987942 0.1319286363E-02 0.8215458246 0.1319735028E-02 0.8238928550 0.1320185242E-02 0.8262398854 0.1320636823E-02 0.8285869158 0.1321089590E-02 0.8309339462 0.1321543361E-02 0.8332809766 0.1321997959E-02 0.8356280070 0.1322453206E-02 0.8379750374 0.1322908924E-02 0.8403220678 0.1323364940E-02 0.8426690982 0.1323821080E-02 0.8450161286 0.1324277174E-02 0.8473631589 0.1324733053E-02 0.8497101893 0.1325188550E-02 0.8520572197 0.1325643501E-02 0.8544042501 0.1326097742E-02 0.8567512805 0.1326551115E-02 0.8590983109 0.1327003463E-02 0.8614453413 0.1327454630E-02 0.8637923717 0.1327904465E-02 0.8661394021 0.1328352819E-02 0.8684864325 0.1328799546E-02 0.8708334629 0.1329244503E-02 0.8731804933 0.1329687549E-02 0.8755275237 0.1330128549E-02 0.8778745541 0.1330567368E-02 0.8802215844 0.1331003876E-02 0.8825686148 0.1331437946E-02 0.8849156452 0.1331869453E-02 0.8872626756 0.1332298278E-02 0.8896097060 0.1332724303E-02 0.8919567364 0.1333147413E-02 0.8943037668 0.1333567500E-02 0.8966507972 0.1333984456E-02 0.8989978276 0.1334398178E-02 0.9013448580 0.1334808566E-02 0.9036918884 0.1335215523E-02 0.9060389188 0.1335618956E-02 0.9083859492 0.1336018777E-02 0.9107329796 0.1336414898E-02 0.9130800099 0.1336807236E-02 0.9154270403 0.1337195714E-02 0.9177740707 0.1337580254E-02 0.9201211011 0.1337960784E-02 0.9224681315 0.1338337235E-02 0.9248151619 0.1338709539E-02 0.9271621923 0.1339077635E-02 0.9295092227 0.1339441463E-02 0.9318562531 0.1339800965E-02 0.9342032835 0.1340156088E-02 0.9365503139 0.1340506780E-02 0.9388973443 0.1340852994E-02 0.9412443747 0.1341194685E-02 0.9435914050 0.1341531809E-02 0.9459384354 0.1341864327E-02 0.9482854658 0.1342192201E-02 0.9506324962 0.1342515397E-02 0.9529795266 0.1342833881E-02 0.9553265570 0.1343147624E-02 0.9576735874 0.1343456597E-02 0.9600206178 0.1343760773E-02 0.9623676482 0.1344060129E-02 0.9647146786 0.1344354643E-02 0.9670617090 0.1344644293E-02 0.9694087394 0.1344929061E-02 0.9717557698 0.1345208929E-02 0.9741028002 0.1345483882E-02 0.9764498305 0.1345753905E-02 0.9787968609 0.1346018983E-02 0.9811438913 0.1346279106E-02 0.9834909217 0.1346534262E-02 0.9858379521 0.1346784440E-02 0.9881849825 0.1347029631E-02 0.9905320129 0.1347269826E-02 0.9928790433 0.1347505016E-02 0.9952260737 0.1347735194E-02 0.9975731041 0.1347960353E-02 0.9999201345 0.1348180484E-02 1.002267165 0.1348395582E-02 1.004614195 0.1348605639E-02 1.006961226 0.1348810648E-02 1.009308256 0.1349010603E-02 1.011655286 0.1349205496E-02 1.014002317 0.1349395320E-02 1.016349347 0.1349580067E-02 1.018696378 0.1349759729E-02 1.021043408 0.1349934297E-02 1.023390438 0.1350103763E-02 1.025737469 0.1350268115E-02 1.028084499 0.1350427345E-02 1.030431530 0.1350581440E-02 1.032778560 0.1350730388E-02 1.035125590 0.1350874178E-02 1.037472621 0.1351012795E-02 1.039819651 0.1351146224E-02 1.042166682 0.1351274451E-02 1.044513712 0.1351397458E-02 1.046860742 0.1351515229E-02 1.049207773 0.1351627746E-02 1.051554803 0.1351734988E-02 1.053901834 0.1351836935E-02 1.056248864 0.1351933567E-02 1.058595894 0.1352024861E-02 1.060942925 0.1352110795E-02 1.063289955 0.1352191343E-02 1.065636985 0.1352266481E-02 1.067984016 0.1352336183E-02 1.070331046 0.1352400423E-02 1.072678077 0.1352459172E-02 1.075025107 0.1352512404E-02 1.077372137 0.1352560088E-02 1.079719168 0.1352602196E-02 1.082066198 0.1352638698E-02 1.084413229 0.1352669563E-02 1.086760259 0.1352694760E-02 1.089107289 0.1352714258E-02 1.091454320 0.1352728026E-02 1.093801350 0.1352736032E-02 1.096152861 0.1352735242E-02 1.098504372 0.1352739059E-02 1.100855883 0.1352747467E-02 1.103207394 0.1352760435E-02 1.105558905 0.1352777923E-02 1.107910415 0.1352799875E-02 1.110261926 0.1352826227E-02 1.112613437 0.1352856899E-02 1.114964948 0.1352891800E-02 1.117316459 0.1352930828E-02 1.119667970 0.1352973868E-02 1.122019481 0.1353020791E-02 1.124370992 0.1353071459E-02 1.126722503 0.1353125719E-02 1.129074013 0.1353183407E-02 1.131425524 0.1353244346E-02 1.133777035 0.1353308348E-02 1.136128546 0.1353375211E-02 1.138480057 0.1353444722E-02 1.140831568 0.1353516653E-02 1.143183079 0.1353590766E-02 1.145534590 0.1353666809E-02 1.147886101 0.1353744518E-02 1.150237611 0.1353823613E-02 1.152589122 0.1353903805E-02 1.154940633 0.1353984789E-02 1.157292144 0.1354066246E-02 1.159643655 0.1354147846E-02 1.161995166 0.1354229243E-02 1.164346677 0.1354310076E-02 1.166698188 0.1354389972E-02 1.169049699 0.1354468542E-02 1.171401209 0.1354545380E-02 1.173752720 0.1354620067E-02 1.176104231 0.1354692169E-02 1.178455742 0.1354761233E-02 1.180807253 0.1354826791E-02 1.183158764 0.1354888358E-02 1.185510275 0.1354945431E-02 1.187861786 0.1354997491E-02 1.190213296 0.1355043998E-02 1.192564807 0.1355084394E-02 1.194916318 0.1355118104E-02 1.197267829 0.1355144531E-02 1.199619340 0.1355163056E-02 1.201970851 0.1355173043E-02 1.204322362 0.1355173832E-02 1.206673873 0.1355164743E-02 1.209025384 0.1355145070E-02 1.211376894 0.1355114088E-02 1.213728405 0.1355071046E-02 1.216079916 0.1355015172E-02 1.218431427 0.1354945666E-02 1.220782938 0.1354861706E-02 1.223134449 0.1354762444E-02 1.225485960 0.1354647008E-02 1.227837471 0.1354514499E-02 1.230188982 0.1354363995E-02 1.232540492 0.1354194545E-02 1.234892003 0.1354005177E-02 1.237243514 0.1353794891E-02 1.239595025 0.1353562666E-02 1.241946536 0.1353307452E-02 1.244298047 0.1353028182E-02 1.246649558 0.1352723762E-02 1.249001069 0.1352393081E-02 1.251352580 0.1352035005E-02 1.253704090 0.1351648386E-02 1.256055601 0.1351232056E-02 1.258407112 0.1350784838E-02 1.260758623 0.1350305539E-02 1.263110134 0.1349792960E-02 1.265461645 0.1349245895E-02 1.267813156 0.1348663135E-02 1.270164667 0.1348043472E-02 1.272516177 0.1347385703E-02 1.274867688 0.1346688630E-02 1.277219199 0.1345951070E-02 1.279570710 0.1345171852E-02 1.281922221 0.1344349829E-02 1.284273732 0.1343483874E-02 1.286625243 0.1342572890E-02 1.288976754 0.1341615813E-02 1.291328265 0.1340611613E-02 1.293679775 0.1339559304E-02 1.296031286 0.1338457939E-02 1.298382797 0.1337306623E-02 1.300734308 0.1336104509E-02 1.303085819 0.1334850803E-02 1.305437330 0.1333544770E-02 1.307788841 0.1332185730E-02 1.310140352 0.1330773064E-02 1.312491863 0.1329306214E-02 1.314843373 0.1327784684E-02 1.317194884 0.1326208039E-02 1.319546395 0.1324575909E-02 1.321897906 0.1322887981E-02 1.324249417 0.1321144008E-02 1.326600928 0.1319343798E-02 1.328952439 0.1317487218E-02 1.331303950 0.1315574193E-02 1.333655461 0.1313604698E-02 1.336006971 0.1311578761E-02 1.338358482 0.1309496460E-02 1.340709993 0.1307357915E-02 1.343061504 0.1305163292E-02 1.345413015 0.1302912795E-02 1.347764526 0.1300606666E-02 1.350116037 0.1298245182E-02 1.352467548 0.1295828648E-02 1.354819059 0.1293357399E-02 1.357170569 0.1290831796E-02 1.359522080 0.1288252222E-02 1.361873591 0.1285619079E-02 1.364225102 0.1282932789E-02 1.366576613 0.1280193787E-02 1.368928124 0.1277402523E-02 1.371279635 0.1274559457E-02 1.373631146 0.1271665060E-02 1.375982656 0.1268719809E-02 1.378334167 0.1265724188E-02 1.380685678 0.1262678685E-02 1.383037189 0.1259583792E-02 1.385388700 0.1256440003E-02 1.387740211 0.1253247813E-02 1.390091722 0.1250007717E-02 1.392443233 0.1246720210E-02 1.394794744 0.1243385785E-02 1.397146254 0.1240582420E-02 1.399497765 0.1238847410E-02 1.401849276 0.1237074092E-02 1.404200787 0.1235261521E-02 1.406552298 0.1233408729E-02 1.408903809 0.1231514725E-02 1.411255320 0.1229578495E-02 1.413606831 0.1227599005E-02 1.415958342 0.1225575198E-02 1.418309852 0.1223505995E-02 1.420661363 0.1221390294E-02 1.423012874 0.1219226976E-02 1.425364385 0.1217014897E-02 1.427715896 0.1214752895E-02 1.430067407 0.1212439789E-02 1.432418918 0.1210074378E-02 1.434770429 0.1207655444E-02 1.437121940 0.1205181752E-02 1.439473450 0.1202652052E-02 1.441824961 0.1200065077E-02 1.444176472 0.1197419549E-02 1.446527983 0.1194714179E-02 1.448879494 0.1191947667E-02 1.451231005 0.1189118703E-02 1.453582516 0.1186225972E-02 1.455934027 0.1183268155E-02 1.458285537 0.1180243931E-02 1.460637048 0.1177151977E-02 1.462988559 0.1173990974E-02 1.465340070 0.1170759608E-02 1.467691581 0.1167456572E-02 1.470043092 0.1164080569E-02 1.472394603 0.1160630316E-02 1.474746114 0.1157104548E-02 1.477097625 0.1153502016E-02 1.479449135 0.1149821497E-02 1.481800646 0.1146061791E-02 1.484152157 0.1142221730E-02 1.486503668 0.1138300176E-02 1.488855179 0.1134296029E-02 1.491206690 0.1130208226E-02 1.493558201 0.1126035749E-02 1.495909712 0.1121777623E-02 1.498261223 0.1117432925E-02 1.500612733 0.1113000782E-02 1.502964244 0.1108480377E-02 1.505315755 0.1103870950E-02 1.507667266 0.1099171805E-02 1.510018777 0.1094382304E-02 1.512370288 0.1089501881E-02 1.514721799 0.1084530033E-02 1.517073310 0.1079466330E-02 1.519424821 0.1074310412E-02 1.521776331 0.1069061994E-02 1.524127842 0.1063720864E-02 1.526479353 0.1058286886E-02 1.528830864 0.1052760001E-02 1.531182375 0.1047140228E-02 1.533533886 0.1041427659E-02 1.535885397 0.1035622467E-02 1.538236908 0.1029724901E-02 1.540588418 0.1023735284E-02 1.542939929 0.1017654018E-02 1.545291440 0.1011481577E-02 1.547642951 0.1005218510E-02 1.549994462 0.9988654354E-03 1.552345973 0.9924230446E-03 1.554697484 0.9858920963E-03 1.557048995 0.9792734163E-03 1.559400506 0.9725678949E-03 1.561752016 0.9657764849E-03 1.564103527 0.9589001996E-03 1.566455038 0.9519401101E-03 1.568806549 0.9448973435E-03 1.571158060 0.9377730797E-03 1.573509571 0.9305685496E-03 1.575861082 0.9232850327E-03 1.578212593 0.9159238542E-03 1.580564104 0.9084863830E-03 1.582915614 0.9009740289E-03 1.585267125 0.8933882410E-03 1.587618636 0.8857305045E-03 1.589970147 0.8780023393E-03 1.592321658 0.8702052973E-03 1.594673169 0.8623409605E-03 1.597024680 0.8544109392E-03 1.599376191 0.8464168697E-03 1.601727702 0.8383604127E-03 1.604079212 0.8302432517E-03 1.606430723 0.8220670910E-03 1.608782234 0.8138336546E-03 1.611133745 0.8055446842E-03 1.613485256 0.7972019383E-03 1.615836767 0.7888071904E-03 1.618188278 0.7803622285E-03 1.620539789 0.7718688533E-03 1.622891299 0.7633288775E-03 1.625242810 0.7547441245E-03 1.627594321 0.7461164281E-03 1.629945832 0.7374476310E-03 1.632297343 0.7287395845E-03 1.634648854 0.7201197746E-03 1.637000365 0.7135552649E-03 1.639351876 0.7069670451E-03 1.641703387 0.7003552487E-03 1.644054897 0.6937200129E-03 1.646406408 0.6870614789E-03 1.648757919 0.6803797917E-03 1.651109430 0.6736751003E-03 1.653460941 0.6669475576E-03 1.655812452 0.6601973206E-03 1.658163963 0.6534245502E-03 1.660515474 0.6466294114E-03 1.662866985 0.6398120732E-03 1.665218495 0.6329727087E-03 1.667570006 0.6261114949E-03 1.669921517 0.6192286128E-03 1.672273028 0.6123242476E-03 1.674624539 0.6053985882E-03 1.676976050 0.5984518275E-03 1.679327561 0.5914841623E-03 1.681679072 0.5844957931E-03 1.684030583 0.5774869242E-03 1.686382093 0.5704577637E-03 1.688733604 0.5634085233E-03 1.691085115 0.5563394182E-03 1.693436626 0.5492506671E-03 1.695788137 0.5421424919E-03 1.698139648 0.5350151181E-03 1.700491159 0.5278687741E-03 1.702842670 0.5207036917E-03 1.705194180 0.5135201051E-03 1.707545691 0.5063182519E-03 1.709897202 0.4990983721E-03 1.712248713 0.4918607082E-03 1.714600224 0.4846055051E-03 1.716951735 0.4773330100E-03 1.719303246 0.4700434722E-03 1.721654757 0.4627371426E-03 1.724006268 0.4554142740E-03 1.726357778 0.4480751205E-03 1.728709289 0.4407199375E-03 1.731060800 0.4333489811E-03 1.733412311 0.4259625085E-03 1.735763822 0.4185607768E-03 1.738115333 0.4111440436E-03 1.740466844 0.4037125659E-03 1.742818355 0.3962666003E-03 1.745169866 0.3888064023E-03 1.747521376 0.3813322256E-03 1.749872887 0.3738443224E-03 1.752224398 0.3663429419E-03 1.754575909 0.3588283304E-03 1.756927420 0.3513007304E-03 1.759278931 0.3437603796E-03 1.761630442 0.3362075105E-03 1.763981953 0.3286423492E-03 1.766333464 0.3210651143E-03 1.768684974 0.3134760159E-03 1.771036485 0.3058752538E-03 1.773387996 0.2982630165E-03 1.775739507 0.2906394789E-03 1.778091018 0.2830048003E-03 1.780442529 0.2753591224E-03 1.782794040 0.2677025656E-03 1.785145551 0.2600352264E-03 1.787497061 0.2523571732E-03 1.789848572 0.2446684416E-03 1.792200083 0.2369690290E-03 1.794551594 0.2292588875E-03 1.796903105 0.2215379162E-03 1.799254616 0.2138059514E-03 1.801606127 0.2060627542E-03 1.803957638 0.1983079957E-03 1.806309149 0.1905412385E-03 1.808660659 0.1827619132E-03 1.811012170 0.1749692885E-03 1.813363681 0.1671624332E-03 1.815715192 0.1593401661E-03 1.818066703 0.1515009911E-03 1.820418214 0.1436430091E-03 1.822769725 0.1357637999E-03 1.825121236 0.1278602581E-03 1.827472747 0.1199283624E-03 1.829824257 0.1119628430E-03 1.832175768 0.1039566898E-03 1.834527279 0.9590040206E-04 1.836878790 0.8778080325E-04 1.839230301 0.7957908371E-04 1.841581812 0.7126739351E-04 1.843933323 0.6280249476E-04 1.846284834 0.5411283352E-04 1.848636345 0.4506873407E-04 1.850987855 0.3539948796E-04 1.853339366 0.2437156393E-04 1.855690877 0.7327743201E-05 1.858042388 -0.1917732364E-04 1.860393899 -0.2589408039E-04 1.862745410 -0.2923359463E-04 1.865096921 -0.3033454098E-04 1.867448432 -0.2945131954E-04 1.869799942 -0.2638823528E-04 1.872151453 -0.2017958626E-04 1.874502964 -0.7896404516E-10 1.876849995 -0.2637059676E-04 1.879197025 -0.3631729289E-04 1.881544055 -0.4324100709E-04 1.883891086 -0.4844704911E-04 1.886238116 -0.5244189882E-04 1.888585147 -0.5548085832E-04 1.890932177 -0.5770866213E-04 1.893279207 -0.5921083004E-04 1.895626238 -0.6003603338E-04 1.897973268 -0.6020651890E-04 1.900320299 -0.5972247149E-04 1.902667329 -0.5856236384E-04 1.905014359 -0.5667946862E-04 1.907361390 -0.5399299725E-04 1.909708420 -0.5036923060E-04 1.912055451 -0.4557963463E-04 1.914402481 -0.3919310401E-04 1.916749511 -0.3020602656E-04 1.919096542 -0.1435285739E-04 1.921443572 0.2415531654E-04 1.923790603 0.3816273999E-04 1.926137633 0.4912286236E-04 1.928484663 0.5876854651E-04 1.930831694 0.6766609167E-04 1.933178724 0.7607983052E-04 1.935525754 0.8415604797E-04 1.937872785 0.9198445828E-04 1.940219815 0.9962402752E-04 1.942566846 0.1071154958E-03 1.944913876 0.1144880897E-03 1.947260906 0.1217633977E-03 1.949607937 0.1289577408E-03 1.951954967 0.1360836903E-03 1.954301998 0.1431510775E-03 1.956649028 0.1501676861E-03 1.958996058 0.1571397406E-03 1.961343089 0.1640722586E-03 1.963690119 0.1709693096E-03 1.966037150 0.1778342092E-03 1.968384180 0.1846696663E-03 1.970731210 0.1914778975E-03 1.973078241 0.1982607153E-03 1.975425271 0.2050195990E-03 1.977772302 0.2117557498E-03 1.980119332 0.2184701370E-03 1.982466362 0.2251635338E-03 1.984813393 0.2318365479E-03 1.987160423 0.2384896461E-03 1.989507454 0.2451231749E-03 1.991854484 0.2517373779E-03 1.994201514 0.2583324103E-03 1.996548545 0.2649083509E-03 1.998895575 0.2714652131E-03 2.001242605 0.2780029535E-03 2.003589636 0.2845214799E-03 2.005936666 0.2910206574E-03 2.008283697 0.2975003150E-03 2.010630727 0.3039602499E-03 2.012977757 0.3104002324E-03 2.015324788 0.3168200094E-03 2.017671818 0.3232193083E-03 2.020018849 0.3295978395E-03 2.022365879 0.3359552995E-03 2.024712909 0.3422913731E-03 2.027059940 0.3486057356E-03 2.029406970 0.3548980545E-03 2.031754001 0.3611679918E-03 2.034101031 0.3674152047E-03 2.036448061 0.3736393480E-03 2.038795092 0.3798400745E-03 2.041142122 0.3860170366E-03 2.043489153 0.3921698874E-03 2.045836183 0.3982982813E-03 2.048183213 0.4044018755E-03 2.050530244 0.4104803299E-03 2.052877274 0.4165333089E-03 2.055224304 0.4225604810E-03 2.057571335 0.4285615204E-03 2.059918365 0.4345361067E-03 2.062265396 0.4404839262E-03 2.064612426 0.4464046717E-03 2.066959456 0.4522980435E-03 2.069306487 0.4581637493E-03 2.071653517 0.4640015049E-03 2.074000548 0.4698110346E-03 2.076347578 0.4755920712E-03 2.078694608 0.4813443564E-03 2.081041639 0.4870676412E-03 2.083388669 0.4927616858E-03 2.085735700 0.4984262601E-03 2.088082730 0.5040611438E-03 2.090429760 0.5096661265E-03 2.092776791 0.5152410077E-03 2.095123821 0.5207855972E-03 2.097470852 0.5262997150E-03 2.099817882 0.5317831913E-03 2.102164912 0.5372358666E-03 2.104511943 0.5426575918E-03 2.106858973 0.5480482280E-03 2.109206004 0.5534076468E-03 2.111553034 0.5587357298E-03 2.113900064 0.5640323690E-03 2.116247095 0.5692974662E-03 2.118594125 0.5745309333E-03 2.120941155 0.5797326921E-03 2.123288186 0.5849026738E-03 2.125635216 0.5900408193E-03 2.127982247 0.5951470785E-03 2.130329277 0.6002214105E-03 2.132676307 0.6052637829E-03 2.135023338 0.6102741719E-03 2.137370368 0.6152525618E-03 2.139717399 0.6201989445E-03 2.142064429 0.6251133195E-03 2.144411459 0.6299956931E-03 2.146758490 0.6348460782E-03 2.149105520 0.6396644937E-03 2.151452551 0.6444509642E-03 2.153799581 0.6492055190E-03 2.156146611 0.6539281922E-03 2.158493642 0.6586190215E-03 2.160840672 0.6632780478E-03 2.163187703 0.6679053145E-03 2.165534733 0.6725008668E-03 2.167881763 0.6770647509E-03 2.170228794 0.6815970131E-03 2.172575824 0.6860976990E-03 2.174922855 0.6905668528E-03 2.177269885 0.6950045160E-03 2.179616915 0.6994107266E-03 2.181963946 0.7037855180E-03 2.184310976 0.7081289179E-03 2.186658006 0.7124409473E-03 2.189005037 0.7167216190E-03 2.191352067 0.7209709365E-03 2.193699098 0.7251888926E-03 2.196046128 0.7293754680E-03 2.198393158 0.7335306299E-03 2.200740189 0.7376543306E-03 2.203087219 0.7417465055E-03 2.205434250 0.7458070718E-03 2.207781280 0.7498359264E-03 2.210128310 0.7538329447E-03 2.212475341 0.7577979778E-03 2.214822371 0.7617308513E-03 2.217169402 0.7656313629E-03 2.219516432 0.7694992802E-03 2.221863462 0.7733343386E-03 2.224210493 0.7771362388E-03 2.226557523 0.7809046445E-03 2.228904554 0.7846391798E-03 2.231251584 0.7883394268E-03 2.233598614 0.7920049225E-03 2.235945645 0.7956351564E-03 2.238292675 0.7992295674E-03 2.240639706 0.8027875408E-03 2.242986736 0.8063084054E-03 2.245333766 0.8097914300E-03 2.247680797 0.8132358208E-03 2.250027827 0.8166407175E-03 2.252374857 0.8200051903E-03 2.254721888 0.8233282366E-03 2.257068918 0.8266087771E-03 2.259415949 0.8298456532E-03 2.261762979 0.8330376230E-03 2.264110009 0.8361833584E-03 2.266457040 0.8392814416E-03 2.268804070 0.8423303622E-03 2.271151101 0.8453285144E-03 2.273498131 0.8482741942E-03 2.275845161 0.8511655971E-03 2.278192192 0.8540008161E-03 2.280539222 0.8567778406E-03 2.282886253 0.8594945547E-03 2.285233283 0.8621487376E-03 2.287580313 0.8647380638E-03 2.289927344 0.8672601041E-03 2.292274374 0.8697123285E-03 2.294621405 0.8720921089E-03 2.296968435 0.8743967243E-03 2.299315465 0.8766233666E-03 2.301662496 0.8787691480E-03 2.304009526 0.8808311102E-03 2.306356557 0.8828062350E-03 2.308703587 0.8846914571E-03 2.311050617 0.8864836784E-03 2.313397648 0.8881797840E-03 2.315744678 0.8897766605E-03 2.318091708 0.8912712154E-03 2.320438739 0.8926603990E-03 2.322785769 0.8939412267E-03 2.325132800 0.8951108030E-03 2.327479830 0.8961663464E-03 2.329826860 0.8971052143E-03 2.332173891 0.8979249288E-03 2.334520921 0.8986232007E-03 2.336867952 0.8991979538E-03 2.339214982 0.8996473473E-03 2.341562012 0.8999697953E-03 2.343909043 0.9001639857E-03 2.346256073 0.9002288938E-03 0.000000000 -0.5008165286E-10 0.2347351854E-02 0.1259816361E-04 0.4694703708E-02 0.2519759092E-04 0.7042055561E-02 0.3779953888E-04 0.9389407415E-02 0.5040525110E-04 0.1173675927E-01 0.6301595111E-04 0.1408411112E-01 0.7563283594E-04 0.1643146298E-01 0.8825706963E-04 0.1877881483E-01 0.1008897770E-03 0.2112616668E-01 0.1135320377E-03 0.2347351854E-01 0.1261848799E-03 0.2582087039E-01 0.1388492752E-03 0.2816822225E-01 0.1515261327E-03 0.3051557410E-01 0.1642162944E-03 0.3286292595E-01 0.1769205297E-03 0.3521027781E-01 0.1896395312E-03 0.3755762966E-01 0.2023739104E-03 0.3990498151E-01 0.2151241937E-03 0.4225233337E-01 0.2278908186E-03 0.4459968522E-01 0.2406741306E-03 0.4694703708E-01 0.2534743803E-03 0.4929438893E-01 0.2662917204E-03 0.5164174078E-01 0.2791262036E-03 0.5398909264E-01 0.2919777805E-03 0.5633644449E-01 0.3048462981E-03 0.5868379634E-01 0.3177314980E-03 0.6103114820E-01 0.3306330158E-03 0.6337850005E-01 0.3435503799E-03 0.6572585191E-01 0.3564830112E-03 0.6807320376E-01 0.3694302227E-03 0.7042055561E-01 0.3823912196E-03 0.7276790747E-01 0.3953650995E-03 0.7511525932E-01 0.4083508526E-03 0.7746261117E-01 0.4213473628E-03 0.7980996303E-01 0.4343534081E-03 0.8215731488E-01 0.4473676620E-03 0.8450466674E-01 0.4603886945E-03 0.8685201859E-01 0.4734149735E-03 0.8919937044E-01 0.4864448661E-03 0.9154672230E-01 0.4994766406E-03 0.9389407415E-01 0.5125084683E-03 0.9624142601E-01 0.5255384247E-03 0.9858877786E-01 0.5385644923E-03 0.1009361297 0.5515845623E-03 0.1032834816 0.5645964370E-03 0.1056308334 0.5775978316E-03 0.1079781853 0.5905863773E-03 0.1103255371 0.6035596232E-03 0.1126728890 0.6165150395E-03 0.1150202408 0.6294500194E-03 0.1173675927 0.6423618827E-03 0.1197149445 0.6552478781E-03 0.1220622964 0.6681051866E-03 0.1244096483 0.6809309246E-03 0.1267570001 0.6937221472E-03 0.1291043520 0.7064758515E-03 0.1314517038 0.7191889804E-03 0.1337990557 0.7318584265E-03 0.1361464075 0.7444810358E-03 0.1384937594 0.7570536123E-03 0.1408411112 0.7695729220E-03 0.1431884631 0.7820356980E-03 0.1455358149 0.7944386448E-03 0.1478831668 0.8067784441E-03 0.1502305186 0.8190517600E-03 0.1525778705 0.8312552446E-03 0.1549252223 0.8433855440E-03 0.1572725742 0.8554393048E-03 0.1596199261 0.8674131805E-03 0.1619672779 0.8793038383E-03 0.1643146298 0.8911079664E-03 0.1666619816 0.9028222815E-03 0.1690093335 0.9144435361E-03 0.1713566853 0.9259685267E-03 0.1737040372 0.9373941019E-03 0.1760513890 0.9487171704E-03 0.1783987409 0.9599347097E-03 0.1807460927 0.9710437744E-03 0.1830934446 0.9820415048E-03 0.1854407964 0.9929251355E-03 0.1877881483 0.1003692004E-02 0.1901355002 0.1014339557E-02 0.1924828520 0.1024865363E-02 0.1948302039 0.1035267115E-02 0.1971775557 0.1045542642E-02 0.1995249076 0.1055689912E-02 0.2018722594 0.1065707042E-02 0.2042196113 0.1075592303E-02 0.2065669631 0.1085344126E-02 0.2089143150 0.1094961102E-02 0.2112616668 0.1104441992E-02 0.2136090187 0.1113785728E-02 0.2159563705 0.1122991414E-02 0.2183037224 0.1132058327E-02 0.2206510743 0.1140985920E-02 0.2229984261 0.1149773820E-02 0.2253457780 0.1158421826E-02 0.2276931298 0.1166929908E-02 0.2300404817 0.1175298205E-02 0.2323878335 0.1183527016E-02 0.2347351854 0.1191616804E-02 0.2370825372 0.1199568182E-02 0.2394298891 0.1207381912E-02 0.2417772409 0.1215058898E-02 0.2441245928 0.1222600177E-02 0.2464719446 0.1230006912E-02 0.2488192965 0.1237280386E-02 0.2511666484 0.1244421991E-02 0.2535140002 0.1251433223E-02 0.2558613521 0.1258315669E-02 0.2582087039 0.1265071002E-02 0.2605560558 0.1271700972E-02 0.2629034076 0.1278207396E-02 0.2652507595 0.1284592150E-02 0.2675981113 0.1290857162E-02 0.2699454632 0.1297004403E-02 0.2722928150 0.1303035881E-02 0.2746401669 0.1308953631E-02 0.2769875187 0.1314759710E-02 0.2793348706 0.1320456190E-02 0.2816822225 0.1326045152E-02 0.2840295743 0.1331528681E-02 0.2863769262 0.1336908858E-02 0.2887242780 0.1342187756E-02 0.2910716299 0.1347367440E-02 0.2934189817 0.1352449954E-02 0.2957663336 0.1357437325E-02 0.2981136854 0.1362331558E-02 0.3004610373 0.1367134629E-02 0.3028083891 0.1371848486E-02 0.3051557410 0.1376475048E-02 0.3075030928 0.1381016197E-02 0.3098504447 0.1385473784E-02 0.3121977966 0.1389849621E-02 0.3145451484 0.1394145483E-02 0.3168925003 0.1398363108E-02 0.3192398521 0.1402504194E-02 0.3215872040 0.1406570398E-02 0.3239345558 0.1410563339E-02 0.3262819077 0.1414484594E-02 0.3286292595 0.1418335703E-02 0.3309766114 0.1422118163E-02 0.3333239632 0.1425833432E-02 0.3356713151 0.1429482929E-02 0.3380186669 0.1433068034E-02 0.3403660188 0.1436590089E-02 0.3427133707 0.1440050398E-02 0.3450607225 0.1443450226E-02 0.3474080744 0.1446790806E-02 0.3497554262 0.1450073331E-02 0.3521027781 0.1453298961E-02 0.3544501299 0.1456468823E-02 0.3567974818 0.1459584009E-02 0.3591448336 0.1462645580E-02 0.3614921855 0.1465654566E-02 0.3638395373 0.1468611964E-02 0.3661868892 0.1471518746E-02 0.3685342410 0.1474375851E-02 0.3708815929 0.1477184191E-02 0.3732289448 0.1479944654E-02 0.3755762966 0.1482658098E-02 0.3779236485 0.1485325358E-02 0.3802710003 0.1487947244E-02 0.3826183522 0.1490524542E-02 0.3849657040 0.1493058017E-02 0.3873130559 0.1495548411E-02 0.3896604077 0.1497996443E-02 0.3920077596 0.1500402813E-02 0.3943551114 0.1502768202E-02 0.3967024633 0.1505093271E-02 0.3990498151 0.1507378662E-02 0.4013971670 0.1509625001E-02 0.4037445189 0.1511832895E-02 0.4060918707 0.1514002935E-02 0.4084392226 0.1516135697E-02 0.4107865744 0.1518231740E-02 0.4131339263 0.1520291611E-02 0.4154812781 0.1522315839E-02 0.4178286300 0.1524304941E-02 0.4201759818 0.1526259422E-02 0.4225233337 0.1528179772E-02 0.4248706855 0.1530066470E-02 0.4272180374 0.1531919982E-02 0.4295653892 0.1533740763E-02 0.4319127411 0.1535529258E-02 0.4342600929 0.1537285898E-02 0.4366074448 0.1539011107E-02 0.4389547967 0.1540705297E-02 0.4413021485 0.1542368871E-02 0.4436495004 0.1544002222E-02 0.4459968522 0.1545605735E-02 0.4483442041 0.1547179783E-02 0.4506915559 0.1548724735E-02 0.4530389078 0.1550240948E-02 0.4553862596 0.1551728772E-02 0.4577336115 0.1553188550E-02 0.4600809633 0.1554620616E-02 0.4624283152 0.1556025297E-02 0.4647756670 0.1557402914E-02 0.4671230189 0.1558753778E-02 0.4694703708 0.1560078196E-02 0.4718177226 0.1561376467E-02 0.4741650745 0.1562648884E-02 0.4765124263 0.1563895733E-02 0.4788597782 0.1565117293E-02 0.4812071300 0.1566313839E-02 0.4835544819 0.1567485637E-02 0.4859018337 0.1568632951E-02 0.4882491856 0.1569756036E-02 0.4905965374 0.1570855143E-02 0.4929438893 0.1571930516E-02 0.4952912411 0.1572982394E-02 0.4976385930 0.1574011012E-02 0.4999859449 0.1575016599E-02 0.5023332967 0.1575999377E-02 0.5046806486 0.1576959566E-02 0.5070280004 0.1577897378E-02 0.5093753523 0.1578813022E-02 0.5117227041 0.1579706700E-02 0.5140700560 0.1580578612E-02 0.5164174078 0.1581428951E-02 0.5187647597 0.1582257905E-02 0.5211121115 0.1583065660E-02 0.5234594634 0.1583852393E-02 0.5258068152 0.1584618281E-02 0.5281541671 0.1585363493E-02 0.5305015190 0.1586088195E-02 0.5328488708 0.1586792548E-02 0.5351962227 0.1587476709E-02 0.5375435745 0.1588140830E-02 0.5398909264 0.1588785059E-02 0.5422382782 0.1589409540E-02 0.5445856301 0.1590014411E-02 0.5469329819 0.1590599807E-02 0.5492803338 0.1591165860E-02 0.5516276856 0.1591712695E-02 0.5539750375 0.1592240434E-02 0.5563223893 0.1592749195E-02 0.5586697412 0.1593239091E-02 0.5610170931 0.1593710234E-02 0.5633644449 0.1594162726E-02 0.5657117968 0.1594596671E-02 0.5680591486 0.1595012164E-02 0.5704065005 0.1595409299E-02 0.5727538523 0.1595788164E-02 0.5751012042 0.1596148846E-02 0.5774485560 0.1596491423E-02 0.5797959079 0.1596815974E-02 0.5821432597 0.1597122570E-02 0.5844906116 0.1597411281E-02 0.5868379634 0.1597682171E-02 0.5891853153 0.1597935301E-02 0.5915326672 0.1598170727E-02 0.5938800190 0.1598388504E-02 0.5962273709 0.1598588679E-02 0.5985747227 0.1598771297E-02 0.6009220746 0.1598936399E-02 0.6032694264 0.1599084023E-02 0.6056167783 0.1599214202E-02 0.6079641301 0.1599326964E-02 0.6103114820 0.1599422336E-02 0.6126588338 0.1599500338E-02 0.6150061857 0.1599560988E-02 0.6173535375 0.1599604300E-02 0.6197008894 0.1599630283E-02 0.6220482413 0.1599638943E-02 0.6243952716 0.1599665088E-02 0.6267423020 0.1599677111E-02 0.6290893324 0.1599674996E-02 0.6314363628 0.1599658740E-02 0.6337833932 0.1599628357E-02 0.6361304236 0.1599583872E-02 0.6384774540 0.1599525328E-02 0.6408244844 0.1599452781E-02 0.6431715148 0.1599366299E-02 0.6455185452 0.1599265967E-02 0.6478655756 0.1599151881E-02 0.6502126060 0.1599024151E-02 0.6525596364 0.1598882899E-02 0.6549066668 0.1598728261E-02 0.6572536971 0.1598560383E-02 0.6596007275 0.1598379423E-02 0.6619477579 0.1598185551E-02 0.6642947883 0.1597978946E-02 0.6666418187 0.1597759798E-02 0.6689888491 0.1597528305E-02 0.6713358795 0.1597284677E-02 0.6736829099 0.1597029127E-02 0.6760299403 0.1596761881E-02 0.6783769707 0.1596483168E-02 0.6807240011 0.1596193227E-02 0.6830710315 0.1595892300E-02 0.6854180619 0.1595580635E-02 0.6877650922 0.1595258485E-02 0.6901121226 0.1594926108E-02 0.6924591530 0.1594583763E-02 0.6948061834 0.1594231714E-02 0.6971532138 0.1593870226E-02 0.6995002442 0.1593499567E-02 0.7018472746 0.1593120005E-02 0.7041943050 0.1592731808E-02 0.7065413354 0.1592335246E-02 0.7088883658 0.1591930588E-02 0.7112353962 0.1591518100E-02 0.7135824266 0.1591098048E-02 0.7159294570 0.1590670698E-02 0.7182764874 0.1590236310E-02 0.7206235177 0.1589795143E-02 0.7229705481 0.1589347454E-02 0.7253175785 0.1588893495E-02 0.7276646089 0.1588433514E-02 0.7300116393 0.1587967755E-02 0.7323586697 0.1587496458E-02 0.7347057001 0.1587019857E-02 0.7370527305 0.1586538183E-02 0.7393997609 0.1586051660E-02 0.7417467913 0.1585560505E-02 0.7440938217 0.1585064934E-02 0.7464408521 0.1584565151E-02 0.7487878825 0.1584061360E-02 0.7511349128 0.1583553753E-02 0.7534819432 0.1583042521E-02 0.7558289736 0.1582527845E-02 0.7581760040 0.1582009900E-02 0.7605230344 0.1581488857E-02 0.7628700648 0.1580964877E-02 0.7652170952 0.1580438118E-02 0.7675641256 0.1579908728E-02 0.7699111560 0.1579376850E-02 0.7722581864 0.1578842623E-02 0.7746052168 0.1578306175E-02 0.7769522472 0.1577767631E-02 0.7792992776 0.1577227110E-02 0.7816463080 0.1576684722E-02 0.7839933383 0.1576140574E-02 0.7863403687 0.1575594767E-02 0.7886873991 0.1575047394E-02 0.7910344295 0.1574498545E-02 0.7933814599 0.1573948304E-02 0.7957284903 0.1573396748E-02 0.7980755207 0.1572843953E-02 0.8004225511 0.1572289987E-02 0.8027695815 0.1571734914E-02 0.8051166119 0.1571178795E-02 0.8074636423 0.1570621685E-02 0.8098106727 0.1570063639E-02 0.8121577031 0.1569504703E-02 0.8145047335 0.1568944925E-02 0.8168517638 0.1568384346E-02 0.8191987942 0.1567823006E-02 0.8215458246 0.1567260942E-02 0.8238928550 0.1566698189E-02 0.8262398854 0.1566134780E-02 0.8285869158 0.1565570746E-02 0.8309339462 0.1565006116E-02 0.8332809766 0.1564440918E-02 0.8356280070 0.1563875180E-02 0.8379750374 0.1563308928E-02 0.8403220678 0.1562742188E-02 0.8426690982 0.1562174986E-02 0.8450161286 0.1561607347E-02 0.8473631589 0.1561039298E-02 0.8497101893 0.1560470865E-02 0.8520572197 0.1559902075E-02 0.8544042501 0.1559332956E-02 0.8567512805 0.1558763538E-02 0.8590983109 0.1558193851E-02 0.8614453413 0.1557623928E-02 0.8637923717 0.1557053803E-02 0.8661394021 0.1556483512E-02 0.8684864325 0.1555913094E-02 0.8708334629 0.1555342589E-02 0.8731804933 0.1554772040E-02 0.8755275237 0.1554201495E-02 0.8778745541 0.1553631001E-02 0.8802215844 0.1553060612E-02 0.8825686148 0.1552490381E-02 0.8849156452 0.1551920368E-02 0.8872626756 0.1551350635E-02 0.8896097060 0.1550781246E-02 0.8919567364 0.1550212272E-02 0.8943037668 0.1549643786E-02 0.8966507972 0.1549075863E-02 0.8989978276 0.1548508585E-02 0.9013448580 0.1547942036E-02 0.9036918884 0.1547376306E-02 0.9060389188 0.1546811486E-02 0.9083859492 0.1546247673E-02 0.9107329796 0.1545684970E-02 0.9130800099 0.1545123480E-02 0.9154270403 0.1544563313E-02 0.9177740707 0.1544004583E-02 0.9201211011 0.1543447408E-02 0.9224681315 0.1542891908E-02 0.9248151619 0.1542338210E-02 0.9271621923 0.1541786444E-02 0.9295092227 0.1541236743E-02 0.9318562531 0.1540689246E-02 0.9342032835 0.1540144095E-02 0.9365503139 0.1539601434E-02 0.9388973443 0.1539061413E-02 0.9412443747 0.1538524185E-02 0.9435914050 0.1537989907E-02 0.9459384354 0.1537458738E-02 0.9482854658 0.1536930842E-02 0.9506324962 0.1536406384E-02 0.9529795266 0.1535885535E-02 0.9553265570 0.1535368466E-02 0.9576735874 0.1534855354E-02 0.9600206178 0.1534346374E-02 0.9623676482 0.1533841709E-02 0.9647146786 0.1533341539E-02 0.9670617090 0.1532846051E-02 0.9694087394 0.1532355430E-02 0.9717557698 0.1531869865E-02 0.9741028002 0.1531389546E-02 0.9764498305 0.1530914664E-02 0.9787968609 0.1530445413E-02 0.9811438913 0.1529981985E-02 0.9834909217 0.1529524575E-02 0.9858379521 0.1529073378E-02 0.9881849825 0.1528628590E-02 0.9905320129 0.1528190407E-02 0.9928790433 0.1527759023E-02 0.9952260737 0.1527334634E-02 0.9975731041 0.1526917436E-02 0.9999201345 0.1526507623E-02 1.002267165 0.1526105387E-02 1.004614195 0.1525710921E-02 1.006961226 0.1525324416E-02 1.009308256 0.1524946060E-02 1.011655286 0.1524576042E-02 1.014002317 0.1524214547E-02 1.016349347 0.1523861758E-02 1.018696378 0.1523517856E-02 1.021043408 0.1523183017E-02 1.023390438 0.1522857418E-02 1.025737469 0.1522541230E-02 1.028084499 0.1522234622E-02 1.030431530 0.1521937758E-02 1.032778560 0.1521650799E-02 1.035125590 0.1521373902E-02 1.037472621 0.1521107221E-02 1.039819651 0.1520850902E-02 1.042166682 0.1520605091E-02 1.044513712 0.1520369926E-02 1.046860742 0.1520145540E-02 1.049207773 0.1519932063E-02 1.051554803 0.1519729617E-02 1.053901834 0.1519538320E-02 1.056248864 0.1519358285E-02 1.058595894 0.1519189616E-02 1.060942925 0.1519032415E-02 1.063289955 0.1518886775E-02 1.065636985 0.1518752784E-02 1.067984016 0.1518630522E-02 1.070331046 0.1518520063E-02 1.072678077 0.1518421477E-02 1.075025107 0.1518334823E-02 1.077372137 0.1518260155E-02 1.079719168 0.1518197520E-02 1.082066198 0.1518146958E-02 1.084413229 0.1518108501E-02 1.086760259 0.1518082175E-02 1.089107289 0.1518067998E-02 1.091454320 0.1518065980E-02 1.093801350 0.1518076125E-02 1.096152861 0.1518059425E-02 1.098504372 0.1518028978E-02 1.100855883 0.1517984796E-02 1.103207394 0.1517926887E-02 1.105558905 0.1517855256E-02 1.107910415 0.1517769909E-02 1.110261926 0.1517670845E-02 1.112613437 0.1517558067E-02 1.114964948 0.1517431571E-02 1.117316459 0.1517291355E-02 1.119667970 0.1517137413E-02 1.122019481 0.1516969739E-02 1.124370992 0.1516788327E-02 1.126722503 0.1516593168E-02 1.129074013 0.1516384255E-02 1.131425524 0.1516161579E-02 1.133777035 0.1515925132E-02 1.136128546 0.1515674906E-02 1.138480057 0.1515410896E-02 1.140831568 0.1515133097E-02 1.143183079 0.1514841506E-02 1.145534590 0.1514536123E-02 1.147886101 0.1514216949E-02 1.150237611 0.1513883991E-02 1.152589122 0.1513537259E-02 1.154940633 0.1513176768E-02 1.157292144 0.1512802536E-02 1.159643655 0.1512414590E-02 1.161995166 0.1512012961E-02 1.164346677 0.1511597688E-02 1.166698188 0.1511168818E-02 1.169049699 0.1510726406E-02 1.171401209 0.1510270516E-02 1.173752720 0.1509801223E-02 1.176104231 0.1509318612E-02 1.178455742 0.1508822779E-02 1.180807253 0.1508313832E-02 1.183158764 0.1507791893E-02 1.185510275 0.1507257098E-02 1.187861786 0.1506709598E-02 1.190213296 0.1506149557E-02 1.192564807 0.1505577157E-02 1.194916318 0.1504992599E-02 1.197267829 0.1504396099E-02 1.199619340 0.1503787894E-02 1.201970851 0.1503168238E-02 1.204322362 0.1502537409E-02 1.206673873 0.1501895704E-02 1.209025384 0.1501243443E-02 1.211376894 0.1500580967E-02 1.213728405 0.1499908642E-02 1.216079916 0.1499226859E-02 1.218431427 0.1498536033E-02 1.220782938 0.1497836602E-02 1.223134449 0.1497129033E-02 1.225485960 0.1496413817E-02 1.227837471 0.1495691472E-02 1.230188982 0.1494962542E-02 1.232540492 0.1494227600E-02 1.234892003 0.1493487241E-02 1.237243514 0.1492742091E-02 1.239595025 0.1491992798E-02 1.241946536 0.1491240037E-02 1.244298047 0.1490484508E-02 1.246649558 0.1489726933E-02 1.249001069 0.1488968057E-02 1.251352580 0.1488208645E-02 1.253704090 0.1487449482E-02 1.256055601 0.1486691369E-02 1.258407112 0.1485935124E-02 1.260758623 0.1485181576E-02 1.263110134 0.1484431562E-02 1.265461645 0.1483685928E-02 1.267813156 0.1482945524E-02 1.270164667 0.1482211196E-02 1.272516177 0.1481483791E-02 1.274867688 0.1480764144E-02 1.277219199 0.1480053081E-02 1.279570710 0.1479351410E-02 1.281922221 0.1478659920E-02 1.284273732 0.1477979372E-02 1.286625243 0.1477310502E-02 1.288976754 0.1476654008E-02 1.291328265 0.1476010552E-02 1.293679775 0.1475380753E-02 1.296031286 0.1474765182E-02 1.298382797 0.1474164362E-02 1.300734308 0.1473578760E-02 1.303085819 0.1473008786E-02 1.305437330 0.1472454791E-02 1.307788841 0.1471917061E-02 1.310140352 0.1471395820E-02 1.312491863 0.1470891223E-02 1.314843373 0.1470403357E-02 1.317194884 0.1469932243E-02 1.319546395 0.1469477830E-02 1.321897906 0.1469039999E-02 1.324249417 0.1468618562E-02 1.326600928 0.1468213263E-02 1.328952439 0.1467823780E-02 1.331303950 0.1467449722E-02 1.333655461 0.1467090638E-02 1.336006971 0.1466746013E-02 1.338358482 0.1466415271E-02 1.340709993 0.1466097779E-02 1.343061504 0.1465792849E-02 1.345413015 0.1465499737E-02 1.347764526 0.1465217649E-02 1.350116037 0.1464945742E-02 1.352467548 0.1464683126E-02 1.354819059 0.1464428867E-02 1.357170569 0.1464181986E-02 1.359522080 0.1463941467E-02 1.361873591 0.1463706253E-02 1.364225102 0.1463475249E-02 1.366576613 0.1463247327E-02 1.368928124 0.1463021322E-02 1.371279635 0.1462796038E-02 1.373631146 0.1462570247E-02 1.375982656 0.1462342692E-02 1.378334167 0.1462112082E-02 1.380685678 0.1461877102E-02 1.383037189 0.1461636406E-02 1.385388700 0.1461388621E-02 1.387740211 0.1461132348E-02 1.390091722 0.1460866159E-02 1.392443233 0.1460588603E-02 1.394794744 0.1460298201E-02 1.397146254 0.1459993452E-02 1.399497765 0.1459672826E-02 1.401849276 0.1459334772E-02 1.404200787 0.1458977715E-02 1.406552298 0.1458600054E-02 1.408903809 0.1458200169E-02 1.411255320 0.1457776415E-02 1.413606831 0.1457327129E-02 1.415958342 0.1456850624E-02 1.418309852 0.1456345197E-02 1.420661363 0.1455809126E-02 1.423012874 0.1455240671E-02 1.425364385 0.1454638077E-02 1.427715896 0.1453999578E-02 1.430067407 0.1453323392E-02 1.432418918 0.1452607729E-02 1.434770429 0.1451850791E-02 1.437121940 0.1451050774E-02 1.439473450 0.1450205870E-02 1.441824961 0.1449314270E-02 1.444176472 0.1448374168E-02 1.446527983 0.1447383761E-02 1.448879494 0.1446341253E-02 1.451231005 0.1445244859E-02 1.453582516 0.1444092805E-02 1.455934027 0.1442883336E-02 1.458285537 0.1441614713E-02 1.460637048 0.1440285221E-02 1.462988559 0.1438893166E-02 1.465340070 0.1437436885E-02 1.467691581 0.1435914743E-02 1.470043092 0.1434325137E-02 1.472394603 0.1432666499E-02 1.474746114 0.1430937297E-02 1.477097625 0.1429136039E-02 1.479449135 0.1427261270E-02 1.481800646 0.1425311579E-02 1.484152157 0.1423285594E-02 1.486503668 0.1421181989E-02 1.488855179 0.1418999479E-02 1.491206690 0.1416736823E-02 1.493558201 0.1414392821E-02 1.495909712 0.1411966319E-02 1.498261223 0.1409456202E-02 1.500612733 0.1406861396E-02 1.502964244 0.1404180868E-02 1.505315755 0.1401413622E-02 1.507667266 0.1398558698E-02 1.510018777 0.1395615171E-02 1.512370288 0.1392582151E-02 1.514721799 0.1389458776E-02 1.517073310 0.1386244216E-02 1.519424821 0.1382937666E-02 1.521776331 0.1379538350E-02 1.524127842 0.1376045512E-02 1.526479353 0.1372458421E-02 1.528830864 0.1368776366E-02 1.531182375 0.1364998656E-02 1.533533886 0.1361124617E-02 1.535885397 0.1357153593E-02 1.538236908 0.1353084945E-02 1.540588418 0.1348918050E-02 1.542939929 0.1344652301E-02 1.545291440 0.1340287106E-02 1.547642951 0.1335821890E-02 1.549994462 0.1331256094E-02 1.552345973 0.1326589175E-02 1.554697484 0.1321820610E-02 1.557048995 0.1316949892E-02 1.559400506 0.1311976538E-02 1.561752016 0.1306900082E-02 1.564103527 0.1301720085E-02 1.566455038 0.1296436131E-02 1.568806549 0.1291047829E-02 1.571158060 0.1285554819E-02 1.573509571 0.1279956770E-02 1.575861082 0.1274253383E-02 1.578212593 0.1268444394E-02 1.580564104 0.1262529573E-02 1.582915614 0.1256508730E-02 1.585267125 0.1250381715E-02 1.587618636 0.1244148417E-02 1.589970147 0.1237808771E-02 1.592321658 0.1231362754E-02 1.594673169 0.1224810391E-02 1.597024680 0.1218151755E-02 1.599376191 0.1211386964E-02 1.601727702 0.1204516189E-02 1.604079212 0.1197539649E-02 1.606430723 0.1190457615E-02 1.608782234 0.1183270407E-02 1.611133745 0.1175978398E-02 1.613485256 0.1168582011E-02 1.615836767 0.1161081721E-02 1.618188278 0.1153478054E-02 1.620539789 0.1145771584E-02 1.622891299 0.1137962937E-02 1.625242810 0.1130052787E-02 1.627594321 0.1122041855E-02 1.629945832 0.1113930909E-02 1.632297343 0.1105720764E-02 1.634648854 0.1097412278E-02 1.637000365 0.1089006352E-02 1.639351876 0.1080503929E-02 1.641703387 0.1071905992E-02 1.644054897 0.1063213563E-02 1.646406408 0.1054427702E-02 1.648757919 0.1045549504E-02 1.651109430 0.1036580096E-02 1.653460941 0.1027520642E-02 1.655812452 0.1018372334E-02 1.658163963 0.1009136395E-02 1.660515474 0.9998140765E-03 1.662866985 0.9904066559E-03 1.665218495 0.9809154373E-03 1.667570006 0.9713417487E-03 1.669921517 0.9616869416E-03 1.672273028 0.9519523892E-03 1.674624539 0.9421394856E-03 1.676976050 0.9322496449E-03 1.679327561 0.9222842998E-03 1.681679072 0.9122449011E-03 1.684030583 0.9021329167E-03 1.686382093 0.8919498304E-03 1.688733604 0.8816971415E-03 1.691085115 0.8713763642E-03 1.693436626 0.8609890264E-03 1.695788137 0.8505366692E-03 1.698139648 0.8400208466E-03 1.700491159 0.8294431243E-03 1.702842670 0.8188050796E-03 1.705194180 0.8081083004E-03 1.707545691 0.7973543848E-03 1.709897202 0.7865449405E-03 1.712248713 0.7756815841E-03 1.714600224 0.7647659405E-03 1.716951735 0.7537996421E-03 1.719303246 0.7427843283E-03 1.721654757 0.7317216447E-03 1.724006268 0.7206132424E-03 1.726357778 0.7094607769E-03 1.728709289 0.6982659076E-03 1.731060800 0.6870302965E-03 1.733412311 0.6757556075E-03 1.735763822 0.6644435052E-03 1.738115333 0.6530956538E-03 1.740466844 0.6417137155E-03 1.742818355 0.6302993500E-03 1.745169866 0.6188542123E-03 1.747521376 0.6073799517E-03 1.749872887 0.5958782099E-03 1.752224398 0.5843506196E-03 1.754575909 0.5727988027E-03 1.756927420 0.5612243683E-03 1.759278931 0.5496289108E-03 1.761630442 0.5380140077E-03 1.763981953 0.5263812180E-03 1.766333464 0.5147320792E-03 1.768684974 0.5030681053E-03 1.771036485 0.4913907844E-03 1.773387996 0.4797015763E-03 1.775739507 0.4680019092E-03 1.778091018 0.4562931778E-03 1.780442529 0.4445767398E-03 1.782794040 0.4328539135E-03 1.785145551 0.4211259741E-03 1.787497061 0.4093941513E-03 1.789848572 0.3976596255E-03 1.792200083 0.3859235247E-03 1.794551594 0.3741869209E-03 1.796903105 0.3624508263E-03 1.799254616 0.3507161896E-03 1.801606127 0.3389838915E-03 1.803957638 0.3272547406E-03 1.806309149 0.3155294686E-03 1.808660659 0.3038087243E-03 1.811012170 0.2920930681E-03 1.813363681 0.2803829647E-03 1.815715192 0.2686787749E-03 1.818066703 0.2569807455E-03 1.820418214 0.2452889976E-03 1.822769725 0.2336035106E-03 1.825121236 0.2219241032E-03 1.827472747 0.2102504070E-03 1.829824257 0.1985818328E-03 1.832175768 0.1869175227E-03 1.834527279 0.1752562852E-03 1.836878790 0.1635965006E-03 1.839230301 0.1519359848E-03 1.841581812 0.1402717824E-03 1.843933323 0.1285998475E-03 1.846284834 0.1169145302E-03 1.848636345 0.1052077164E-03 1.850987855 0.9346730880E-04 1.853339366 0.8167437030E-04 1.855690877 0.6979729108E-04 1.858042388 0.5777849996E-04 1.860393899 0.4549905989E-04 1.862745410 0.3265760184E-04 1.865096921 0.1808033821E-04 1.867448432 -0.1221319007E-04 1.869799942 -0.1902819880E-04 1.872151453 -0.1766894953E-04 1.874502964 -0.5008165286E-10 1.876849995 -0.2572776823E-04 1.879197025 -0.3323850257E-04 1.881544055 -0.3643865180E-04 1.883891086 -0.3646965729E-04 1.886238116 -0.3332893077E-04 1.888585147 -0.2587298999E-04 1.890932177 -0.2272307575E-05 1.893279207 0.2970733809E-04 1.895626238 0.4465644959E-04 1.897973268 0.5770908614E-04 1.900320299 0.6993834328E-04 1.902667329 0.8171697462E-04 1.905014359 0.9321759444E-04 1.907361390 0.1045331684E-03 1.909708420 0.1157187765E-03 1.912055451 0.1268092816E-03 1.914402481 0.1378278407E-03 1.916749511 0.1487904050E-03 1.919096542 0.1597082713E-03 1.921443572 0.1705896112E-03 1.923790603 0.1814404288E-03 1.926137633 0.1922651846E-03 1.928484663 0.2030672128E-03 1.930831694 0.2138490102E-03 1.933178724 0.2246124397E-03 1.935525754 0.2353588765E-03 1.937872785 0.2460893157E-03 1.940219815 0.2568044529E-03 1.942566846 0.2675047444E-03 1.944913876 0.2781904540E-03 1.947260906 0.2888616891E-03 1.949607937 0.2995184290E-03 1.951954967 0.3101605477E-03 1.954301998 0.3207878316E-03 1.956649028 0.3313999942E-03 1.958996058 0.3419966883E-03 1.961343089 0.3525775153E-03 1.963690119 0.3631420336E-03 1.966037150 0.3736897654E-03 1.968384180 0.3842202021E-03 1.970731210 0.3947328095E-03 1.973078241 0.4052270316E-03 1.975425271 0.4157022941E-03 1.977772302 0.4261580077E-03 1.980119332 0.4365935702E-03 1.982466362 0.4470083694E-03 1.984813393 0.4574017845E-03 1.987160423 0.4677731885E-03 1.989507454 0.4781219490E-03 1.991854484 0.4884474301E-03 1.994201514 0.4987489935E-03 1.996548545 0.5090259995E-03 1.998895575 0.5192778082E-03 2.001242605 0.5295037801E-03 2.003589636 0.5397032770E-03 2.005936666 0.5498756630E-03 2.008283697 0.5600203049E-03 2.010630727 0.5701365726E-03 2.012977757 0.5802238403E-03 2.015324788 0.5902814864E-03 2.017671818 0.6003088943E-03 2.020018849 0.6103054527E-03 2.022365879 0.6202705562E-03 2.024712909 0.6302036053E-03 2.027059940 0.6401040073E-03 2.029406970 0.6499711760E-03 2.031754001 0.6598045326E-03 2.034101031 0.6696035055E-03 2.036448061 0.6793675309E-03 2.038795092 0.6890960529E-03 2.041142122 0.6987885237E-03 2.043489153 0.7084444040E-03 2.045836183 0.7180631630E-03 2.048183213 0.7276442788E-03 2.050530244 0.7371872383E-03 2.052877274 0.7466915377E-03 2.055224304 0.7561566825E-03 2.057571335 0.7655821876E-03 2.059918365 0.7749675775E-03 2.062265396 0.7843123867E-03 2.064612426 0.7936161593E-03 2.066959456 0.8028784496E-03 2.069306487 0.8120988219E-03 2.071653517 0.8212768509E-03 2.074000548 0.8304121216E-03 2.076347578 0.8395042295E-03 2.078694608 0.8485527805E-03 2.081041639 0.8575573914E-03 2.083388669 0.8665176895E-03 2.085735700 0.8754333132E-03 2.088082730 0.8843039116E-03 2.090429760 0.8931291447E-03 2.092776791 0.9019086839E-03 2.095123821 0.9106422114E-03 2.097470852 0.9193294207E-03 2.099817882 0.9279700166E-03 2.102164912 0.9365637151E-03 2.104511943 0.9451102436E-03 2.106858973 0.9536093409E-03 2.109206004 0.9620607573E-03 2.111553034 0.9704642545E-03 2.113900064 0.9788196060E-03 2.116247095 0.9871265965E-03 2.118594125 0.9953850226E-03 2.120941155 0.1003594692E-02 2.123288186 0.1011755426E-02 2.125635216 0.1019867054E-02 2.127982247 0.1027929420E-02 2.130329277 0.1035942380E-02 2.132676307 0.1043905800E-02 2.135023338 0.1051819557E-02 2.137370368 0.1059683543E-02 2.139717399 0.1067497660E-02 2.142064429 0.1075261820E-02 2.144411459 0.1082975950E-02 2.146758490 0.1090639986E-02 2.149105520 0.1098253877E-02 2.151452551 0.1105817583E-02 2.153799581 0.1113331077E-02 2.156146611 0.1120794342E-02 2.158493642 0.1128207373E-02 2.160840672 0.1135570178E-02 2.163187703 0.1142882773E-02 2.165534733 0.1150145188E-02 2.167881763 0.1157357464E-02 2.170228794 0.1164519652E-02 2.172575824 0.1171631816E-02 2.174922855 0.1178694029E-02 2.177269885 0.1185706375E-02 2.179616915 0.1192668952E-02 2.181963946 0.1199581863E-02 2.184310976 0.1206445226E-02 2.186658006 0.1213259167E-02 2.189005037 0.1220023824E-02 2.191352067 0.1226739342E-02 2.193699098 0.1233405879E-02 2.196046128 0.1240023600E-02 2.198393158 0.1246592680E-02 2.200740189 0.1253113304E-02 2.203087219 0.1259585665E-02 2.205434250 0.1266009964E-02 2.207781280 0.1272386410E-02 2.210128310 0.1278715222E-02 2.212475341 0.1284996624E-02 2.214822371 0.1291230849E-02 2.217169402 0.1297418134E-02 2.219516432 0.1299361355E-02 2.221863462 0.1296546993E-02 2.224210493 0.1293738631E-02 2.226557523 0.1290937113E-02 2.228904554 0.1288143313E-02 2.231251584 0.1285358140E-02 2.233598614 0.1282582541E-02 2.235945645 0.1279817500E-02 2.238292675 0.1277064042E-02 2.240639706 0.1274323236E-02 2.242986736 0.1271596199E-02 2.245333766 0.1268884095E-02 2.247680797 0.1266188140E-02 2.250027827 0.1263509607E-02 2.252374857 0.1260849825E-02 2.254721888 0.1258210184E-02 2.257068918 0.1255592138E-02 2.259415949 0.1252997208E-02 2.261762979 0.1250426985E-02 2.264110009 0.1247883135E-02 2.266457040 0.1245367398E-02 2.268804070 0.1242881592E-02 2.271151101 0.1240427618E-02 2.273498131 0.1238007463E-02 2.275845161 0.1235623197E-02 2.278192192 0.1233276979E-02 2.280539222 0.1230971058E-02 2.282886253 0.1228707773E-02 2.285233283 0.1226489553E-02 2.287580313 0.1224318918E-02 2.289927344 0.1222198477E-02 2.292274374 0.1220130923E-02 2.294621405 0.1218119035E-02 2.296968435 0.1216165668E-02 2.299315465 0.1214273752E-02 2.301662496 0.1212446279E-02 2.304009526 0.1210686300E-02 2.306356557 0.1208996910E-02 2.308703587 0.1207381237E-02 2.311050617 0.1205842429E-02 2.313397648 0.1204383635E-02 2.315744678 0.1203007992E-02 2.318091708 0.1201718599E-02 2.320438739 0.1200518501E-02 2.322785769 0.1199410667E-02 2.325132800 0.1198397961E-02 2.327479830 0.1197483122E-02 2.329826860 0.1196668738E-02 2.332173891 0.1195957222E-02 2.334520921 0.1195350786E-02 2.336867952 0.1194851418E-02 2.339214982 0.1194460860E-02 2.341562012 0.1194180590E-02 2.343909043 0.1194011800E-02 2.346256073 0.1193955389E-02 0.000000000 0.1538897067E-02 0.2347351854E-02 0.1538883859E-02 0.4694703708E-02 0.1538844287E-02 0.7042055561E-02 0.1538778508E-02 0.9389407415E-02 0.1538686784E-02 0.1173675927E-01 0.1538569478E-02 0.1408411112E-01 0.1538427057E-02 0.1643146298E-01 0.1538260084E-02 0.1877881483E-01 0.1538069221E-02 0.2112616668E-01 0.1537855225E-02 0.2347351854E-01 0.1537618941E-02 0.2582087039E-01 0.1537361305E-02 0.2816822225E-01 0.1537083334E-02 0.3051557410E-01 0.1536786125E-02 0.3286292595E-01 0.1536470853E-02 0.3521027781E-01 0.1536138760E-02 0.3755762966E-01 0.1535791158E-02 0.3990498151E-01 0.1535429419E-02 0.4225233337E-01 0.1535054971E-02 0.4459968522E-01 0.1534669295E-02 0.4694703708E-01 0.1534273920E-02 0.4929438893E-01 0.1533870415E-02 0.5164174078E-01 0.1533460387E-02 0.5398909264E-01 0.1533045476E-02 0.5633644449E-01 0.1532627351E-02 0.5868379634E-01 0.1532207702E-02 0.6103114820E-01 0.1531788240E-02 0.6337850005E-01 0.1531370690E-02 0.6572585191E-01 0.1530956789E-02 0.6807320376E-01 0.1530548278E-02 0.7042055561E-01 0.1530146906E-02 0.7276790747E-01 0.1529754420E-02 0.7511525932E-01 0.1529372563E-02 0.7746261117E-01 0.1529003075E-02 0.7980996303E-01 0.1528647685E-02 0.8215731488E-01 0.1528308115E-02 0.8450466674E-01 0.1527986071E-02 0.8685201859E-01 0.1527683245E-02 0.8919937044E-01 0.1527401315E-02 0.9154672230E-01 0.1527141939E-02 0.9389407415E-01 0.1526906759E-02 0.9624142601E-01 0.1526697394E-02 0.9858877786E-01 0.1526515447E-02 0.1009361297 0.1526362497E-02 0.1032834816 0.1526240104E-02 0.1056308334 0.1526149806E-02 0.1079781853 0.1526093121E-02 0.1103255371 0.1526071544E-02 0.1126728890 0.1526086552E-02 0.1150202408 0.1526139601E-02 0.1173675927 0.1526232129E-02 0.1197149445 0.1526365554E-02 0.1220622964 0.1526541277E-02 0.1244096483 0.1526760683E-02 0.1267570001 0.1527025140E-02 0.1291043520 0.1527336003E-02 0.1314517038 0.1527694612E-02 0.1337990557 0.1528102296E-02 0.1361464075 0.1528560374E-02 0.1384937594 0.1529070152E-02 0.1408411112 0.1529632930E-02 0.1431884631 0.1530250000E-02 0.1455358149 0.1530922648E-02 0.1478831668 0.1531652155E-02 0.1502305186 0.1532439798E-02 0.1525778705 0.1533286852E-02 0.1549252223 0.1534194589E-02 0.1572725742 0.1535164283E-02 0.1596199261 0.1536197206E-02 0.1619672779 0.1537294631E-02 0.1643146298 0.1538457834E-02 0.1666619816 0.1539688093E-02 0.1690093335 0.1540986687E-02 0.1713566853 0.1542354901E-02 0.1737040372 0.1543794020E-02 0.1760513890 0.1545305334E-02 0.1783987409 0.1546890136E-02 0.1807460927 0.1548549721E-02 0.1830934446 0.1550285384E-02 0.1854407964 0.1552098425E-02 0.1877881483 0.1553990140E-02 0.1901355002 0.1555961826E-02 0.1924828520 0.1558014775E-02 0.1948302039 0.1560150276E-02 0.1971775557 0.1562369610E-02 0.1995249076 0.1564674048E-02 0.2018722594 0.1567064850E-02 0.2042196113 0.1569543259E-02 0.2065669631 0.1572110500E-02 0.2089143150 0.1574767777E-02 0.2112616668 0.1577516264E-02 0.2136090187 0.1580357108E-02 0.2159563705 0.1583291418E-02 0.2183037224 0.1586320263E-02 0.2206510743 0.1589444667E-02 0.2229984261 0.1592665601E-02 0.2253457780 0.1595983979E-02 0.2276931298 0.1599400652E-02 0.2300404817 0.1602916400E-02 0.2323878335 0.1606531929E-02 0.2347351854 0.1610247858E-02 0.2370825372 0.1614064719E-02 0.2394298891 0.1617982946E-02 0.2417772409 0.1622002867E-02 0.2441245928 0.1626124702E-02 0.2464719446 0.1630348551E-02 0.2488192965 0.1634674390E-02 0.2511666484 0.1639102063E-02 0.2535140002 0.1643631276E-02 0.2558613521 0.1648261593E-02 0.2582087039 0.1652992427E-02 0.2605560558 0.1657823036E-02 0.2629034076 0.1662752522E-02 0.2652507595 0.1667779819E-02 0.2675981113 0.1672903696E-02 0.2699454632 0.1678122754E-02 0.2722928150 0.1683435418E-02 0.2746401669 0.1688839942E-02 0.2769875187 0.1691904167E-02 0.2793348706 0.1690945398E-02 0.2816822225 0.1689992677E-02 0.2840295743 0.1689046439E-02 0.2863769262 0.1688107130E-02 0.2887242780 0.1687175202E-02 0.2910716299 0.1686251120E-02 0.2934189817 0.1685335357E-02 0.2957663336 0.1684428396E-02 0.2981136854 0.1683530731E-02 0.3004610373 0.1682642868E-02 0.3028083891 0.1681765321E-02 0.3051557410 0.1680898618E-02 0.3075030928 0.1680043297E-02 0.3098504447 0.1679199911E-02 0.3121977966 0.1678369022E-02 0.3145451484 0.1677551205E-02 0.3168925003 0.1676747052E-02 0.3192398521 0.1675957163E-02 0.3215872040 0.1675182155E-02 0.3239345558 0.1674422661E-02 0.3262819077 0.1673679324E-02 0.3286292595 0.1672952805E-02 0.3309766114 0.1672243781E-02 0.3333239632 0.1671552943E-02 0.3356713151 0.1670881000E-02 0.3380186669 0.1670228677E-02 0.3403660188 0.1669596717E-02 0.3427133707 0.1668985879E-02 0.3450607225 0.1668396942E-02 0.3474080744 0.1667830704E-02 0.3497554262 0.1667287980E-02 0.3521027781 0.1666769606E-02 0.3544501299 0.1666276439E-02 0.3567974818 0.1665809355E-02 0.3591448336 0.1665369251E-02 0.3614921855 0.1664957046E-02 0.3638395373 0.1664573682E-02 0.3661868892 0.1664220122E-02 0.3685342410 0.1663897353E-02 0.3708815929 0.1663606384E-02 0.3732289448 0.1663348248E-02 0.3755762966 0.1663124002E-02 0.3779236485 0.1662934728E-02 0.3802710003 0.1662781532E-02 0.3826183522 0.1662665545E-02 0.3849657040 0.1662587922E-02 0.3873130559 0.1662549846E-02 0.3896604077 0.1662552522E-02 0.3920077596 0.1662597182E-02 0.3943551114 0.1662685083E-02 0.3967024633 0.1662817506E-02 0.3990498151 0.1662995758E-02 0.4013971670 0.1663221169E-02 0.4037445189 0.1663495095E-02 0.4060918707 0.1663818913E-02 0.4084392226 0.1664194023E-02 0.4107865744 0.1664621847E-02 0.4131339263 0.1665103827E-02 0.4154812781 0.1665641423E-02 0.4178286300 0.1666236115E-02 0.4201759818 0.1666889396E-02 0.4225233337 0.1667602776E-02 0.4248706855 0.1668377775E-02 0.4272180374 0.1669215922E-02 0.4295653892 0.1670118754E-02 0.4319127411 0.1671087812E-02 0.4342600929 0.1672124638E-02 0.4366074448 0.1673230770E-02 0.4389547967 0.1674407740E-02 0.4413021485 0.1675657072E-02 0.4436495004 0.1676980273E-02 0.4459968522 0.1678378831E-02 0.4483442041 0.1679854210E-02 0.4506915559 0.1681407847E-02 0.4530389078 0.1683041142E-02 0.4553862596 0.1684755457E-02 0.4577336115 0.1686552106E-02 0.4600809633 0.1688432353E-02 0.4624283152 0.1690397403E-02 0.4647756670 0.1692448397E-02 0.4671230189 0.1694586406E-02 0.4694703708 0.1696812421E-02 0.4718177226 0.1699127352E-02 0.4741650745 0.1701532016E-02 0.4765124263 0.1704027135E-02 0.4788597782 0.1706613326E-02 0.4812071300 0.1709291097E-02 0.4835544819 0.1712060838E-02 0.4859018337 0.1714922820E-02 0.4882491856 0.1717877181E-02 0.4905965374 0.1720923930E-02 0.4929438893 0.1724062933E-02 0.4952912411 0.1727293914E-02 0.4976385930 0.1730616447E-02 0.4999859449 0.1734029951E-02 0.5023332967 0.1737533687E-02 0.5046806486 0.1741126755E-02 0.5070280004 0.1744808087E-02 0.5093753523 0.1748576444E-02 0.5117227041 0.1752430413E-02 0.5140700560 0.1756368403E-02 0.5164174078 0.1760388642E-02 0.5187647597 0.1764489170E-02 0.5211121115 0.1768667835E-02 0.5234594634 0.1772922293E-02 0.5258068152 0.1777249997E-02 0.5281541671 0.1781648191E-02 0.5305015190 0.1786113909E-02 0.5328488708 0.1790643960E-02 0.5351962227 0.1795234922E-02 0.5375435745 0.1799883131E-02 0.5398909264 0.1804584669E-02 0.5422382782 0.1809335349E-02 0.5445856301 0.1814130698E-02 0.5469329819 0.1818965941E-02 0.5492803338 0.1823835976E-02 0.5516276856 0.1828735351E-02 0.5539750375 0.1833658238E-02 0.5563223893 0.1838598399E-02 0.5586697412 0.1843549153E-02 0.5610170931 0.1848503337E-02 0.5633644449 0.1853453259E-02 0.5657117968 0.1858390659E-02 0.5680591486 0.1863306649E-02 0.5704065005 0.1868191660E-02 0.5727538523 0.1873035388E-02 0.5751012042 0.1877826725E-02 0.5774485560 0.1882553701E-02 0.5797959079 0.1887203423E-02 0.5821432597 0.1891762016E-02 0.5844906116 0.1896214573E-02 0.5868379634 0.1900545116E-02 0.5891853153 0.1904736582E-02 0.5915326672 0.1908770828E-02 0.5938800190 0.1912628678E-02 0.5962273709 0.1916290011E-02 0.5985747227 0.1919733916E-02 0.6009220746 0.1922938903E-02 0.6032694264 0.1925883197E-02 0.6056167783 0.1928545119E-02 0.6079641301 0.1930903538E-02 0.6103114820 0.1932938400E-02 0.6126588338 0.1934631310E-02 0.6150061857 0.1935966134E-02 0.6173535375 0.1936929584E-02 0.6197008894 0.1937511746E-02 0.6220482413 0.1937706491E-02 0.6243952716 0.1937723486E-02 0.6267423020 0.1937774461E-02 0.6290893324 0.1937859390E-02 0.6314363628 0.1937978235E-02 0.6337833932 0.1938130944E-02 0.6361304236 0.1938317451E-02 0.6384774540 0.1938537679E-02 0.6408244844 0.1938791536E-02 0.6431715148 0.1939078918E-02 0.6455185452 0.1939399709E-02 0.6478655756 0.1939753782E-02 0.6502126060 0.1940140995E-02 0.6525596364 0.1940561199E-02 0.6549066668 0.1941014230E-02 0.6572536971 0.1941499916E-02 0.6596007275 0.1942018073E-02 0.6619477579 0.1942568508E-02 0.6642947883 0.1943151020E-02 0.6666418187 0.1943765396E-02 0.6689888491 0.1944411418E-02 0.6713358795 0.1945088857E-02 0.6736829099 0.1945797477E-02 0.6760299403 0.1946537037E-02 0.6783769707 0.1947307288E-02 0.6807240011 0.1948107975E-02 0.6830710315 0.1948938837E-02 0.6854180619 0.1949799607E-02 0.6877650922 0.1950690016E-02 0.6901121226 0.1951609789E-02 0.6924591530 0.1952558647E-02 0.6948061834 0.1953536308E-02 0.6971532138 0.1954542486E-02 0.6995002442 0.1955576895E-02 0.7018472746 0.1956639243E-02 0.7041943050 0.1957729239E-02 0.7065413354 0.1958846590E-02 0.7088883658 0.1959991001E-02 0.7112353962 0.1961162175E-02 0.7135824266 0.1962359817E-02 0.7159294570 0.1963583629E-02 0.7182764874 0.1964833315E-02 0.7206235177 0.1966108577E-02 0.7229705481 0.1967409119E-02 0.7253175785 0.1968734643E-02 0.7276646089 0.1970084853E-02 0.7300116393 0.1971459454E-02 0.7323586697 0.1972858150E-02 0.7347057001 0.1974280647E-02 0.7370527305 0.1975726652E-02 0.7393997609 0.1977195871E-02 0.7417467913 0.1978688013E-02 0.7440938217 0.1980202785E-02 0.7464408521 0.1981739898E-02 0.7487878825 0.1983299060E-02 0.7511349128 0.1984879983E-02 0.7534819432 0.1986482377E-02 0.7558289736 0.1988105953E-02 0.7581760040 0.1989750423E-02 0.7605230344 0.1991415499E-02 0.7628700648 0.1993100891E-02 0.7652170952 0.1994806311E-02 0.7675641256 0.1996531469E-02 0.7699111560 0.1998276076E-02 0.7722581864 0.2000039840E-02 0.7746052168 0.2001822470E-02 0.7769522472 0.2003623672E-02 0.7792992776 0.2005443152E-02 0.7816463080 0.2007280614E-02 0.7839933383 0.2009135758E-02 0.7863403687 0.2011008284E-02 0.7886873991 0.2012897890E-02 0.7910344295 0.2014804268E-02 0.7933814599 0.2016727111E-02 0.7957284903 0.2018666106E-02 0.7980755207 0.2020620937E-02 0.8004225511 0.2022591285E-02 0.8027695815 0.2024576827E-02 0.8051166119 0.2026577236E-02 0.8074636423 0.2028592178E-02 0.8098106727 0.2030621318E-02 0.8121577031 0.2032664314E-02 0.8145047335 0.2034720818E-02 0.8168517638 0.2036790479E-02 0.8191987942 0.2038872939E-02 0.8215458246 0.2040967834E-02 0.8238928550 0.2043074794E-02 0.8262398854 0.2045193444E-02 0.8285869158 0.2047323402E-02 0.8309339462 0.2049464278E-02 0.8332809766 0.2051615678E-02 0.8356280070 0.2053777199E-02 0.8379750374 0.2055948433E-02 0.8403220678 0.2058128962E-02 0.8426690982 0.2060318364E-02 0.8450161286 0.2062516208E-02 0.8473631589 0.2064722057E-02 0.8497101893 0.2066935464E-02 0.8520572197 0.2069155978E-02 0.8544042501 0.2071383137E-02 0.8567512805 0.2073616474E-02 0.8590983109 0.2075855514E-02 0.8614453413 0.2078099774E-02 0.8637923717 0.2080348763E-02 0.8661394021 0.2082601984E-02 0.8684864325 0.2084392381E-02 0.8708334629 0.2084455478E-02 0.8731804933 0.2084519211E-02 0.8755275237 0.2084583563E-02 0.8778745541 0.2084648514E-02 0.8802215844 0.2084714044E-02 0.8825686148 0.2084780132E-02 0.8849156452 0.2084846756E-02 0.8872626756 0.2084913895E-02 0.8896097060 0.2084981526E-02 0.8919567364 0.2085049625E-02 0.8943037668 0.2085118169E-02 0.8966507972 0.2085187132E-02 0.8989978276 0.2085256491E-02 0.9013448580 0.2085326218E-02 0.9036918884 0.2085396289E-02 0.9060389188 0.2085466676E-02 0.9083859492 0.2085537352E-02 0.9107329796 0.2085608289E-02 0.9130800099 0.2085679460E-02 0.9154270403 0.2085750835E-02 0.9177740707 0.2085822385E-02 0.9201211011 0.2085894081E-02 0.9224681315 0.2085965893E-02 0.9248151619 0.2086037791E-02 0.9271621923 0.2086109743E-02 0.9295092227 0.2086181719E-02 0.9318562531 0.2086253688E-02 0.9342032835 0.2086325617E-02 0.9365503139 0.2086397475E-02 0.9388973443 0.2086469229E-02 0.9412443747 0.2086540848E-02 0.9435914050 0.2086612298E-02 0.9459384354 0.2086683547E-02 0.9482854658 0.2086754561E-02 0.9506324962 0.2086825307E-02 0.9529795266 0.2086895753E-02 0.9553265570 0.2086965864E-02 0.9576735874 0.2087035607E-02 0.9600206178 0.2087104949E-02 0.9623676482 0.2087173856E-02 0.9647146786 0.2087242295E-02 0.9670617090 0.2087310231E-02 0.9694087394 0.2087377632E-02 0.9717557698 0.2087444464E-02 0.9741028002 0.2087510694E-02 0.9764498305 0.2087576289E-02 0.9787968609 0.2087641215E-02 0.9811438913 0.2087705440E-02 0.9834909217 0.2087768930E-02 0.9858379521 0.2087831654E-02 0.9881849825 0.2087893580E-02 0.9905320129 0.2087954675E-02 0.9928790433 0.2088014907E-02 0.9952260737 0.2088074246E-02 0.9975731041 0.2088132660E-02 0.9999201345 0.2088190119E-02 1.002267165 0.2088246592E-02 1.004614195 0.2088302049E-02 1.006961226 0.2088356462E-02 1.009308256 0.2088409801E-02 1.011655286 0.2088462038E-02 1.014002317 0.2088513145E-02 1.016349347 0.2088563094E-02 1.018696378 0.2088611858E-02 1.021043408 0.2088659412E-02 1.023390438 0.2088705728E-02 1.025737469 0.2088750783E-02 1.028084499 0.2088794551E-02 1.030431530 0.2088837010E-02 1.032778560 0.2088878134E-02 1.035125590 0.2088917903E-02 1.037472621 0.2088956293E-02 1.039819651 0.2088993285E-02 1.042166682 0.2089028857E-02 1.044513712 0.2089062990E-02 1.046860742 0.2089095665E-02 1.049207773 0.2089126863E-02 1.051554803 0.2089156569E-02 1.053901834 0.2089184764E-02 1.056248864 0.2089211433E-02 1.058595894 0.2089236562E-02 1.060942925 0.2089260137E-02 1.063289955 0.2089282143E-02 1.065636985 0.2089302569E-02 1.067984016 0.2089321404E-02 1.070331046 0.2089338637E-02 1.072678077 0.2089354257E-02 1.075025107 0.2089368258E-02 1.077372137 0.2089380629E-02 1.079719168 0.2089391366E-02 1.082066198 0.2089400460E-02 1.084413229 0.2089407908E-02 1.086760259 0.2089413706E-02 1.089107289 0.2089417849E-02 1.091454320 0.2089420336E-02 1.093801350 0.2089421165E-02 1.096152861 0.2089434168E-02 1.098504372 0.2089473142E-02 1.100855883 0.2089537981E-02 1.103207394 0.2089628509E-02 1.105558905 0.2089744483E-02 1.107910415 0.2089885587E-02 1.110261926 0.2090051438E-02 1.112613437 0.2090241583E-02 1.114964948 0.2090455502E-02 1.117316459 0.2090692608E-02 1.119667970 0.2090952247E-02 1.122019481 0.2091233700E-02 1.124370992 0.2091536183E-02 1.126722503 0.2091858849E-02 1.129074013 0.2092200788E-02 1.131425524 0.2092561029E-02 1.133777035 0.2092938542E-02 1.136128546 0.2093332239E-02 1.138480057 0.2093740974E-02 1.140831568 0.2094163545E-02 1.143183079 0.2094598699E-02 1.145534590 0.2095045129E-02 1.147886101 0.2095501477E-02 1.150237611 0.2095966340E-02 1.152589122 0.2096438265E-02 1.154940633 0.2096915758E-02 1.157292144 0.2097397279E-02 1.159643655 0.2097881251E-02 1.161995166 0.2098366056E-02 1.164346677 0.2098850042E-02 1.166698188 0.2099331523E-02 1.169049699 0.2099808781E-02 1.171401209 0.2100280070E-02 1.173752720 0.2100743616E-02 1.176104231 0.2101197621E-02 1.178455742 0.2101640267E-02 1.180807253 0.2102069714E-02 1.183158764 0.2102484106E-02 1.185510275 0.2102881575E-02 1.187861786 0.2103260238E-02 1.190213296 0.2103618204E-02 1.192564807 0.2103953577E-02 1.194916318 0.2104264455E-02 1.197267829 0.2104548935E-02 1.199619340 0.2104805117E-02 1.201970851 0.2105031102E-02 1.204322362 0.2105225000E-02 1.206673873 0.2105384927E-02 1.209025384 0.2105509015E-02 1.211376894 0.2105595406E-02 1.213728405 0.2105642262E-02 1.216079916 0.2105647761E-02 1.218431427 0.2105610105E-02 1.220782938 0.2102611522E-02 1.223134449 0.2098986185E-02 1.225485960 0.2095341025E-02 1.227837471 0.2091676792E-02 1.230188982 0.2087994226E-02 1.232540492 0.2084294052E-02 1.234892003 0.2080576984E-02 1.237243514 0.2076843728E-02 1.239595025 0.2073094978E-02 1.241946536 0.2069331423E-02 1.244298047 0.2065553744E-02 1.246649558 0.2061762618E-02 1.249001069 0.2057958714E-02 1.251352580 0.2054142700E-02 1.253704090 0.2050315241E-02 1.256055601 0.2046476997E-02 1.258407112 0.2042628627E-02 1.260758623 0.2038770791E-02 1.263110134 0.2034904145E-02 1.265461645 0.2031029348E-02 1.267813156 0.2027147056E-02 1.270164667 0.2023257928E-02 1.272516177 0.2019362623E-02 1.274867688 0.2015461802E-02 1.277219199 0.2011556128E-02 1.279570710 0.2007646265E-02 1.281922221 0.2003732880E-02 1.284273732 0.1999816643E-02 1.286625243 0.1995898225E-02 1.288976754 0.1991978303E-02 1.291328265 0.1988057555E-02 1.293679775 0.1984136661E-02 1.296031286 0.1980216308E-02 1.298382797 0.1976297184E-02 1.300734308 0.1972379981E-02 1.303085819 0.1968465396E-02 1.305437330 0.1964554128E-02 1.307788841 0.1960646882E-02 1.310140352 0.1956744365E-02 1.312491863 0.1952847291E-02 1.314843373 0.1948956374E-02 1.317194884 0.1945072335E-02 1.319546395 0.1941195900E-02 1.321897906 0.1937327797E-02 1.324249417 0.1933468759E-02 1.326600928 0.1929619524E-02 1.328952439 0.1925780834E-02 1.331303950 0.1921953436E-02 1.333655461 0.1918138080E-02 1.336006971 0.1914335522E-02 1.338358482 0.1910546522E-02 1.340709993 0.1906771845E-02 1.343061504 0.1903012260E-02 1.345413015 0.1899268542E-02 1.347764526 0.1895541468E-02 1.350116037 0.1891831823E-02 1.352467548 0.1888140395E-02 1.354819059 0.1884467977E-02 1.357170569 0.1880815367E-02 1.359522080 0.1877183370E-02 1.361873591 0.1873572793E-02 1.364225102 0.1869984450E-02 1.366576613 0.1866419159E-02 1.368928124 0.1862877744E-02 1.371279635 0.1859361035E-02 1.373631146 0.1855869864E-02 1.375982656 0.1852405072E-02 1.378334167 0.1848967502E-02 1.380685678 0.1845558005E-02 1.383037189 0.1842177433E-02 1.385388700 0.1838826646E-02 1.387740211 0.1835506508E-02 1.390091722 0.1832217886E-02 1.392443233 0.1828961652E-02 1.394794744 0.1825738682E-02 1.397146254 0.1822549854E-02 1.399497765 0.1819396049E-02 1.401849276 0.1816278151E-02 1.404200787 0.1813197045E-02 1.406552298 0.1810153616E-02 1.408903809 0.1807148749E-02 1.411255320 0.1804183328E-02 1.413606831 0.1801258235E-02 1.415958342 0.1798374346E-02 1.418309852 0.1795532534E-02 1.420661363 0.1792733665E-02 1.423012874 0.1789978595E-02 1.425364385 0.1787268171E-02 1.427715896 0.1784603227E-02 1.430067407 0.1781984582E-02 1.432418918 0.1779413040E-02 1.434770429 0.1776889382E-02 1.437121940 0.1774414371E-02 1.439473450 0.1771988741E-02 1.441824961 0.1769613203E-02 1.444176472 0.1767288433E-02 1.446527983 0.1765015075E-02 1.448879494 0.1762793736E-02 1.451231005 0.1760624984E-02 1.453582516 0.1758509341E-02 1.455934027 0.1756447284E-02 1.458285537 0.1754439240E-02 1.460637048 0.1752485583E-02 1.462988559 0.1750586631E-02 1.465340070 0.1748742643E-02 1.467691581 0.1746953815E-02 1.470043092 0.1745220282E-02 1.472394603 0.1743542109E-02 1.474746114 0.1741919293E-02 1.477097625 0.1739815046E-02 1.479449135 0.1735016208E-02 1.481800646 0.1730253251E-02 1.484152157 0.1725527923E-02 1.486503668 0.1720841934E-02 1.488855179 0.1716196956E-02 1.491206690 0.1711594616E-02 1.493558201 0.1707036497E-02 1.495909712 0.1702524135E-02 1.498261223 0.1698059012E-02 1.500612733 0.1693642560E-02 1.502964244 0.1689276154E-02 1.505315755 0.1684961110E-02 1.507667266 0.1680698685E-02 1.510018777 0.1676490073E-02 1.512370288 0.1672336405E-02 1.514721799 0.1668238745E-02 1.517073310 0.1664198090E-02 1.519424821 0.1660215371E-02 1.521776331 0.1656291446E-02 1.524127842 0.1652427106E-02 1.526479353 0.1648623071E-02 1.528830864 0.1644879989E-02 1.531182375 0.1641198439E-02 1.533533886 0.1637578930E-02 1.535885397 0.1634021900E-02 1.538236908 0.1630527718E-02 1.540588418 0.1627096686E-02 1.542939929 0.1623729040E-02 1.545291440 0.1620424949E-02 1.547642951 0.1617184520E-02 1.549994462 0.1614007798E-02 1.552345973 0.1610894767E-02 1.554697484 0.1607845356E-02 1.557048995 0.1604859437E-02 1.559400506 0.1601936830E-02 1.561752016 0.1599077305E-02 1.564103527 0.1596280583E-02 1.566455038 0.1593546341E-02 1.568806549 0.1590874215E-02 1.571158060 0.1588263798E-02 1.573509571 0.1585714650E-02 1.575861082 0.1583226295E-02 1.578212593 0.1580798225E-02 1.580564104 0.1578429904E-02 1.582915614 0.1576120769E-02 1.585267125 0.1573870234E-02 1.587618636 0.1571677693E-02 1.589970147 0.1569542518E-02 1.592321658 0.1567464067E-02 1.594673169 0.1565441684E-02 1.597024680 0.1563474698E-02 1.599376191 0.1561562431E-02 1.601727702 0.1559704195E-02 1.604079212 0.1557899295E-02 1.606430723 0.1556147032E-02 1.608782234 0.1554446704E-02 1.611133745 0.1552797607E-02 1.613485256 0.1551199036E-02 1.615836767 0.1549650287E-02 1.618188278 0.1548150657E-02 1.620539789 0.1546699448E-02 1.622891299 0.1545295965E-02 1.625242810 0.1543939517E-02 1.627594321 0.1542629418E-02 1.629945832 0.1541364990E-02 1.632297343 0.1540145561E-02 1.634648854 0.1538970464E-02 1.637000365 0.1537839043E-02 1.639351876 0.1536750647E-02 1.641703387 0.1535704633E-02 1.644054897 0.1534700370E-02 1.646406408 0.1533737230E-02 1.648757919 0.1532814598E-02 1.651109430 0.1531931864E-02 1.653460941 0.1531088428E-02 1.655812452 0.1530283698E-02 1.658163963 0.1529517091E-02 1.660515474 0.1528788029E-02 1.662866985 0.1528095943E-02 1.665218495 0.1527440273E-02 1.667570006 0.1526820463E-02 1.669921517 0.1526235965E-02 1.672273028 0.1525686237E-02 1.674624539 0.1525170742E-02 1.676976050 0.1524688949E-02 1.679327561 0.1524240330E-02 1.681679072 0.1523824362E-02 1.684030583 0.1523440526E-02 1.686382093 0.1523088306E-02 1.688733604 0.1522767187E-02 1.691085115 0.1522476655E-02 1.693436626 0.1522216200E-02 1.695788137 0.1521985310E-02 1.698139648 0.1521783471E-02 1.700491159 0.1521610172E-02 1.702842670 0.1521464897E-02 1.705194180 0.1521347129E-02 1.707545691 0.1521256345E-02 1.709897202 0.1521192022E-02 1.712248713 0.1521153628E-02 1.714600224 0.1521140627E-02 1.716951735 0.1521152478E-02 1.719303246 0.1521188631E-02 1.721654757 0.1521248527E-02 1.724006268 0.1521331600E-02 1.726357778 0.1521437274E-02 1.728709289 0.1521564963E-02 1.731060800 0.1521714069E-02 1.733412311 0.1521883982E-02 1.735763822 0.1522074080E-02 1.738115333 0.1522283727E-02 1.740466844 0.1522512275E-02 1.742818355 0.1522759059E-02 1.745169866 0.1523023400E-02 1.747521376 0.1523304603E-02 1.749872887 0.1523601956E-02 1.752224398 0.1523914731E-02 1.754575909 0.1524242182E-02 1.756927420 0.1524583547E-02 1.759278931 0.1524938043E-02 1.761630442 0.1525304872E-02 1.763981953 0.1525683215E-02 1.766333464 0.1526072237E-02 1.768684974 0.1526471081E-02 1.771036485 0.1526878875E-02 1.773387996 0.1527294726E-02 1.775739507 0.1527717726E-02 1.778091018 0.1528146947E-02 1.780442529 0.1528581443E-02 1.782794040 0.1529020256E-02 1.785145551 0.1529462406E-02 1.787497061 0.1529906904E-02 1.789848572 0.1530352743E-02 1.792200083 0.1530798905E-02 1.794551594 0.1531244360E-02 1.796903105 0.1531688069E-02 1.799254616 0.1532128982E-02 1.801606127 0.1532566045E-02 1.803957638 0.1532998196E-02 1.806309149 0.1533424373E-02 1.808660659 0.1533843511E-02 1.811012170 0.1534254547E-02 1.813363681 0.1534656421E-02 1.815715192 0.1535048080E-02 1.818066703 0.1535428479E-02 1.820418214 0.1535796584E-02 1.822769725 0.1536151377E-02 1.825121236 0.1536491855E-02 1.827472747 0.1536817035E-02 1.829824257 0.1537125959E-02 1.832175768 0.1537417693E-02 1.834527279 0.1537691331E-02 1.836878790 0.1537946003E-02 1.839230301 0.1538180869E-02 1.841581812 0.1538395131E-02 1.843933323 0.1538588030E-02 1.846284834 0.1538758851E-02 1.848636345 0.1538906926E-02 1.850987855 0.1539031636E-02 1.853339366 0.1539132413E-02 1.855690877 0.1539208743E-02 1.858042388 0.1539260170E-02 1.860393899 0.1539286294E-02 1.862745410 0.1539286777E-02 1.865096921 0.1539261340E-02 1.867448432 0.1539209768E-02 1.869799942 0.1539131913E-02 1.872151453 0.1539027686E-02 1.874502964 0.1538897067E-02 1.876849995 0.1539123544E-02 1.879197025 0.1539327741E-02 1.881544055 0.1539509390E-02 1.883891086 0.1539668224E-02 1.886238116 0.1539803976E-02 1.888585147 0.1539916383E-02 1.890932177 0.1540005180E-02 1.893279207 0.1540070105E-02 1.895626238 0.1540110897E-02 1.897973268 0.1540127299E-02 1.900320299 0.1540119055E-02 1.902667329 0.1540085913E-02 1.905014359 0.1540027624E-02 1.907361390 0.1539943941E-02 1.909708420 0.1539834622E-02 1.912055451 0.1539699429E-02 1.914402481 0.1539538129E-02 1.916749511 0.1539350491E-02 1.919096542 0.1539136291E-02 1.921443572 0.1538895310E-02 1.923790603 0.1538627332E-02 1.926137633 0.1538332150E-02 1.928484663 0.1538009558E-02 1.930831694 0.1537659361E-02 1.933178724 0.1537281367E-02 1.935525754 0.1536875391E-02 1.937872785 0.1536441255E-02 1.940219815 0.1535978786E-02 1.942566846 0.1535487820E-02 1.944913876 0.1534968199E-02 1.947260906 0.1534419773E-02 1.949607937 0.1533842398E-02 1.951954967 0.1533235938E-02 1.954301998 0.1532600266E-02 1.956649028 0.1531935261E-02 1.958996058 0.1531240810E-02 1.961343089 0.1530516811E-02 1.963690119 0.1529763165E-02 1.966037150 0.1528979785E-02 1.968384180 0.1528166593E-02 1.970731210 0.1527323516E-02 1.973078241 0.1526450492E-02 1.975425271 0.1525547467E-02 1.977772302 0.1524614396E-02 1.980119332 0.1523651243E-02 1.982466362 0.1522657978E-02 1.984813393 0.1521634585E-02 1.987160423 0.1520581052E-02 1.989507454 0.1519497378E-02 1.991854484 0.1518383572E-02 1.994201514 0.1517239650E-02 1.996548545 0.1516065638E-02 1.998895575 0.1514861572E-02 2.001242605 0.1513627494E-02 2.003589636 0.1512363458E-02 2.005936666 0.1511069526E-02 2.008283697 0.1509745769E-02 2.010630727 0.1508392267E-02 2.012977757 0.1507009108E-02 2.015324788 0.1505596391E-02 2.017671818 0.1504154222E-02 2.020018849 0.1502682716E-02 2.022365879 0.1501181999E-02 2.024712909 0.1499652202E-02 2.027059940 0.1498093469E-02 2.029406970 0.1496505949E-02 2.031754001 0.1494889801E-02 2.034101031 0.1493245192E-02 2.036448061 0.1491572300E-02 2.038795092 0.1489871307E-02 2.041142122 0.1488142406E-02 2.043489153 0.1486385798E-02 2.045836183 0.1484601691E-02 2.048183213 0.1482790302E-02 2.050530244 0.1480951855E-02 2.052877274 0.1479086582E-02 2.055224304 0.1477194724E-02 2.057571335 0.1475276526E-02 2.059918365 0.1473332244E-02 2.062265396 0.1471362140E-02 2.064612426 0.1469366482E-02 2.066959456 0.1467345546E-02 2.069306487 0.1465299616E-02 2.071653517 0.1463228981E-02 2.074000548 0.1461133936E-02 2.076347578 0.1459014785E-02 2.078694608 0.1456871836E-02 2.081041639 0.1454705405E-02 2.083388669 0.1452515812E-02 2.085735700 0.1450303384E-02 2.088082730 0.1448068454E-02 2.090429760 0.1445811361E-02 2.092776791 0.1443532448E-02 2.095123821 0.1441232064E-02 2.097470852 0.1438910563E-02 2.099817882 0.1436568304E-02 2.102164912 0.1434205652E-02 2.104511943 0.1431822976E-02 2.106858973 0.1429420648E-02 2.109206004 0.1426999048E-02 2.111553034 0.1424558556E-02 2.113900064 0.1422099560E-02 2.116247095 0.1419622451E-02 2.118594125 0.1417127624E-02 2.120941155 0.1414615476E-02 2.123288186 0.1412086412E-02 2.125635216 0.1409540837E-02 2.127982247 0.1406979161E-02 2.130329277 0.1404401798E-02 2.132676307 0.1401809165E-02 2.135023338 0.1399201685E-02 2.137370368 0.1396579780E-02 2.139717399 0.1393943880E-02 2.142064429 0.1391294415E-02 2.144411459 0.1388631822E-02 2.146758490 0.1385956539E-02 2.149105520 0.1383269008E-02 2.151452551 0.1380569677E-02 2.153799581 0.1377858996E-02 2.156146611 0.1375137418E-02 2.158493642 0.1372405404E-02 2.160840672 0.1369663415E-02 2.163187703 0.1366911920E-02 2.165534733 0.1364151391E-02 2.167881763 0.1361382307E-02 2.170228794 0.1358605150E-02 2.172575824 0.1355820409E-02 2.174922855 0.1353028581E-02 2.177269885 0.1350230166E-02 2.179616915 0.1347425676E-02 2.181963946 0.1344615625E-02 2.184310976 0.1341800540E-02 2.186658006 0.1338980954E-02 2.189005037 0.1336157412E-02 2.191352067 0.1333330467E-02 2.193699098 0.1330500684E-02 2.196046128 0.1327668640E-02 2.198393158 0.1324834925E-02 2.200740189 0.1322000142E-02 2.203087219 0.1319164911E-02 2.205434250 0.1316329865E-02 2.207781280 0.1313495656E-02 2.210128310 0.1310662955E-02 2.212475341 0.1307832451E-02 2.214822371 0.1305004856E-02 2.217169402 0.1302180905E-02 2.219516432 0.1299361355E-02 2.221863462 0.1296546993E-02 2.224210493 0.1293738631E-02 2.226557523 0.1290937113E-02 2.228904554 0.1288143313E-02 2.231251584 0.1285358140E-02 2.233598614 0.1282582541E-02 2.235945645 0.1279817500E-02 2.238292675 0.1277064042E-02 2.240639706 0.1274323236E-02 2.242986736 0.1271596199E-02 2.245333766 0.1268884095E-02 2.247680797 0.1266188141E-02 2.250027827 0.1263509607E-02 2.252374857 0.1260849825E-02 2.254721888 0.1258210184E-02 2.257068918 0.1255592138E-02 2.259415949 0.1252997208E-02 2.261762979 0.1250426986E-02 2.264110009 0.1247883135E-02 2.266457040 0.1245367398E-02 2.268804070 0.1242881592E-02 2.271151101 0.1240427619E-02 2.273498131 0.1238007463E-02 2.275845161 0.1235623197E-02 2.278192192 0.1233276979E-02 2.280539222 0.1230971058E-02 2.282886253 0.1228707773E-02 2.285233283 0.1226489553E-02 2.287580313 0.1224318918E-02 2.289927344 0.1222198477E-02 2.292274374 0.1220130923E-02 2.294621405 0.1218119035E-02 2.296968435 0.1216165668E-02 2.299315465 0.1214273752E-02 2.301662496 0.1212446279E-02 2.304009526 0.1210686300E-02 2.306356557 0.1208996910E-02 2.308703587 0.1207381237E-02 2.311050617 0.1205842429E-02 2.313397648 0.1204383635E-02 2.315744678 0.1203007992E-02 2.318091708 0.1201718599E-02 2.320438739 0.1200518501E-02 2.322785769 0.1199410667E-02 2.325132800 0.1198397961E-02 2.327479830 0.1197483122E-02 2.329826860 0.1196668738E-02 2.332173891 0.1195957222E-02 2.334520921 0.1195350786E-02 2.336867952 0.1194851418E-02 2.339214982 0.1194460860E-02 2.341562012 0.1194180590E-02 2.343909043 0.1194011800E-02 2.346256073 0.1193955389E-02 0.000000000 0.1538897067E-02 0.2347351854E-02 0.1538927020E-02 0.4694703708E-02 0.1539016890E-02 0.7042055561E-02 0.1539166708E-02 0.9389407415E-02 0.1539376524E-02 0.1173675927E-01 0.1539646411E-02 0.1408411112E-01 0.1539976459E-02 0.1643146298E-01 0.1540366782E-02 0.1877881483E-01 0.1540817512E-02 0.2112616668E-01 0.1541328801E-02 0.2347351854E-01 0.1541900821E-02 0.2582087039E-01 0.1542533764E-02 0.2816822225E-01 0.1543227842E-02 0.3051557410E-01 0.1543983286E-02 0.3286292595E-01 0.1544800345E-02 0.3521027781E-01 0.1545679290E-02 0.3755762966E-01 0.1546620410E-02 0.3990498151E-01 0.1547624011E-02 0.4225233337E-01 0.1548690421E-02 0.4459968522E-01 0.1549819984E-02 0.4694703708E-01 0.1551013066E-02 0.4929438893E-01 0.1552270049E-02 0.5164174078E-01 0.1553591336E-02 0.5398909264E-01 0.1554977347E-02 0.5633644449E-01 0.1556428524E-02 0.5868379634E-01 0.1557945325E-02 0.6103114820E-01 0.1559528229E-02 0.6337850005E-01 0.1561177737E-02 0.6572585191E-01 0.1562894365E-02 0.6807320376E-01 0.1564678655E-02 0.7042055561E-01 0.1566531165E-02 0.7276790747E-01 0.1568452477E-02 0.7511525932E-01 0.1570443194E-02 0.7746261117E-01 0.1572503941E-02 0.7980996303E-01 0.1574635365E-02 0.8215731488E-01 0.1576838136E-02 0.8450466674E-01 0.1579112950E-02 0.8685201859E-01 0.1581460524E-02 0.8919937044E-01 0.1583881602E-02 0.9154672230E-01 0.1586376953E-02 0.9389407415E-01 0.1588947372E-02 0.9624142601E-01 0.1591593679E-02 0.9858877786E-01 0.1594316724E-02 0.1009361297 0.1597117382E-02 0.1032834816 0.1599996557E-02 0.1056308334 0.1602955182E-02 0.1079781853 0.1605994217E-02 0.1103255371 0.1609114654E-02 0.1126728890 0.1612317511E-02 0.1150202408 0.1615603837E-02 0.1173675927 0.1618974710E-02 0.1197149445 0.1622431238E-02 0.1220622964 0.1625974555E-02 0.1244096483 0.1629605825E-02 0.1267570001 0.1633326241E-02 0.1291043520 0.1637137018E-02 0.1314517038 0.1641039402E-02 0.1337990557 0.1645034658E-02 0.1361464075 0.1649124077E-02 0.1384937594 0.1653308969E-02 0.1408411112 0.1657590663E-02 0.1431884631 0.1661970503E-02 0.1455358149 0.1666449848E-02 0.1478831668 0.1671030065E-02 0.1502305186 0.1675712528E-02 0.1525778705 0.1680498615E-02 0.1549252223 0.1685389702E-02 0.1572725742 0.1690387158E-02 0.1596199261 0.1695492342E-02 0.1619672779 0.1700706597E-02 0.1643146298 0.1706031243E-02 0.1666619816 0.1711467573E-02 0.1690093335 0.1717016848E-02 0.1713566853 0.1722680285E-02 0.1737040372 0.1728459055E-02 0.1760513890 0.1733846595E-02 0.1783987409 0.1732942589E-02 0.1807460927 0.1732031879E-02 0.1830934446 0.1731114669E-02 0.1854407964 0.1730191167E-02 0.1877881483 0.1729261584E-02 0.1901355002 0.1728326133E-02 0.1924828520 0.1727385032E-02 0.1948302039 0.1726438501E-02 0.1971775557 0.1725486764E-02 0.1995249076 0.1724530048E-02 0.2018722594 0.1723568586E-02 0.2042196113 0.1722602610E-02 0.2065669631 0.1721632361E-02 0.2089143150 0.1720658080E-02 0.2112616668 0.1719680013E-02 0.2136090187 0.1718698412E-02 0.2159563705 0.1717713530E-02 0.2183037224 0.1716725626E-02 0.2206510743 0.1715734964E-02 0.2229984261 0.1714741811E-02 0.2253457780 0.1713746439E-02 0.2276931298 0.1712749126E-02 0.2300404817 0.1711750152E-02 0.2323878335 0.1710749804E-02 0.2347351854 0.1709748375E-02 0.2370825372 0.1708746160E-02 0.2394298891 0.1707743463E-02 0.2417772409 0.1706740590E-02 0.2441245928 0.1705737855E-02 0.2464719446 0.1704735577E-02 0.2488192965 0.1703734081E-02 0.2511666484 0.1702733698E-02 0.2535140002 0.1701734764E-02 0.2558613521 0.1700737625E-02 0.2582087039 0.1699742629E-02 0.2605560558 0.1698750133E-02 0.2629034076 0.1697760502E-02 0.2652507595 0.1696774107E-02 0.2675981113 0.1695791325E-02 0.2699454632 0.1694812543E-02 0.2722928150 0.1693838154E-02 0.2746401669 0.1692868559E-02 0.2769875187 0.1694334405E-02 0.2793348706 0.1699916711E-02 0.2816822225 0.1705584591E-02 0.2840295743 0.1711335603E-02 0.2863769262 0.1717167137E-02 0.2887242780 0.1723076415E-02 0.2910716299 0.1729060497E-02 0.2934189817 0.1735116284E-02 0.2957663336 0.1741240524E-02 0.2981136854 0.1747429820E-02 0.3004610373 0.1753680631E-02 0.3028083891 0.1759989283E-02 0.3051557410 0.1766351977E-02 0.3075030928 0.1772764794E-02 0.3098504447 0.1779223703E-02 0.3121977966 0.1785724574E-02 0.3145451484 0.1792263179E-02 0.3168925003 0.1798835208E-02 0.3192398521 0.1805436273E-02 0.3215872040 0.1812061920E-02 0.3239345558 0.1818707636E-02 0.3262819077 0.1825368858E-02 0.3286292595 0.1832040984E-02 0.3309766114 0.1838719377E-02 0.3333239632 0.1845399378E-02 0.3356713151 0.1852076314E-02 0.3380186669 0.1858745504E-02 0.3403660188 0.1865402266E-02 0.3427133707 0.1872041930E-02 0.3450607225 0.1878659840E-02 0.3474080744 0.1885251366E-02 0.3497554262 0.1891811906E-02 0.3521027781 0.1898336898E-02 0.3544501299 0.1904821823E-02 0.3567974818 0.1911262212E-02 0.3591448336 0.1917653656E-02 0.3614921855 0.1923991805E-02 0.3638395373 0.1930272382E-02 0.3661868892 0.1936491182E-02 0.3685342410 0.1942644081E-02 0.3708815929 0.1948727041E-02 0.3732289448 0.1954736114E-02 0.3755762966 0.1960667450E-02 0.3779236485 0.1966517296E-02 0.3802710003 0.1972282008E-02 0.3826183522 0.1977958052E-02 0.3849657040 0.1983542008E-02 0.3873130559 0.1989030576E-02 0.3896604077 0.1994420580E-02 0.3920077596 0.1999708971E-02 0.3943551114 0.2004892834E-02 0.3967024633 0.2009969387E-02 0.3990498151 0.2014935991E-02 0.4013971670 0.2019790149E-02 0.4037445189 0.2024529511E-02 0.4060918707 0.2029151876E-02 0.4084392226 0.2033655197E-02 0.4107865744 0.2038037584E-02 0.4131339263 0.2042297304E-02 0.4154812781 0.2046432786E-02 0.4178286300 0.2050442623E-02 0.4201759818 0.2054325570E-02 0.4225233337 0.2058080553E-02 0.4248706855 0.2061706661E-02 0.4272180374 0.2065203157E-02 0.4295653892 0.2068569469E-02 0.4319127411 0.2071805197E-02 0.4342600929 0.2074910111E-02 0.4366074448 0.2077884151E-02 0.4389547967 0.2080727423E-02 0.4413021485 0.2083440204E-02 0.4436495004 0.2086022935E-02 0.4459968522 0.2088476222E-02 0.4483442041 0.2090800834E-02 0.4506915559 0.2092997698E-02 0.4530389078 0.2095067901E-02 0.4553862596 0.2097012682E-02 0.4577336115 0.2098833429E-02 0.4600809633 0.2100531680E-02 0.4624283152 0.2102109113E-02 0.4647756670 0.2103567546E-02 0.4671230189 0.2104908929E-02 0.4694703708 0.2106135342E-02 0.4718177226 0.2107248989E-02 0.4741650745 0.2108252191E-02 0.4765124263 0.2109147385E-02 0.4788597782 0.2109937114E-02 0.4812071300 0.2110624022E-02 0.4835544819 0.2111210852E-02 0.4859018337 0.2111700434E-02 0.4882491856 0.2112095685E-02 0.4905965374 0.2112399600E-02 0.4929438893 0.2112615244E-02 0.4952912411 0.2112745751E-02 0.4976385930 0.2112794314E-02 0.4999859449 0.2112764180E-02 0.5023332967 0.2112658644E-02 0.5046806486 0.2112481044E-02 0.5070280004 0.2112234754E-02 0.5093753523 0.2111923178E-02 0.5117227041 0.2111549745E-02 0.5140700560 0.2111117902E-02 0.5164174078 0.2110631111E-02 0.5187647597 0.2110092842E-02 0.5211121115 0.2109506566E-02 0.5234594634 0.2108875751E-02 0.5258068152 0.2108203861E-02 0.5281541671 0.2107494342E-02 0.5305015190 0.2106750626E-02 0.5328488708 0.2105976122E-02 0.5351962227 0.2105174209E-02 0.5375435745 0.2104348238E-02 0.5398909264 0.2103501523E-02 0.5422382782 0.2102637335E-02 0.5445856301 0.2101758903E-02 0.5469329819 0.2100869408E-02 0.5492803338 0.2099971976E-02 0.5516276856 0.2099069679E-02 0.5539750375 0.2098165527E-02 0.5563223893 0.2097262469E-02 0.5586697412 0.2096363383E-02 0.5610170931 0.2095471082E-02 0.5633644449 0.2094588300E-02 0.5657117968 0.2093717698E-02 0.5680591486 0.2092861857E-02 0.5704065005 0.2092023272E-02 0.5727538523 0.2091204358E-02 0.5751012042 0.2090407438E-02 0.5774485560 0.2089634745E-02 0.5797959079 0.2088888420E-02 0.5821432597 0.2088170508E-02 0.5844906116 0.2087482956E-02 0.5868379634 0.2086827613E-02 0.5891853153 0.2086206224E-02 0.5915326672 0.2085620431E-02 0.5938800190 0.2085071772E-02 0.5962273709 0.2084561676E-02 0.5985747227 0.2084091464E-02 0.6009220746 0.2083662349E-02 0.6032694264 0.2083275428E-02 0.6056167783 0.2082931691E-02 0.6079641301 0.2082632009E-02 0.6103114820 0.2082377143E-02 0.6126588338 0.2082167737E-02 0.6150061857 0.2082004316E-02 0.6173535375 0.2081887294E-02 0.6197008894 0.2081816962E-02 0.6220482413 0.2081793499E-02 0.6243952716 0.2081793600E-02 0.6267423020 0.2081793904E-02 0.6290893324 0.2081794411E-02 0.6314363628 0.2081795123E-02 0.6337833932 0.2081796041E-02 0.6361304236 0.2081797168E-02 0.6384774540 0.2081798506E-02 0.6408244844 0.2081800058E-02 0.6431715148 0.2081801827E-02 0.6455185452 0.2081803819E-02 0.6478655756 0.2081806037E-02 0.6502126060 0.2081808487E-02 0.6525596364 0.2081811173E-02 0.6549066668 0.2081814103E-02 0.6572536971 0.2081817281E-02 0.6596007275 0.2081820715E-02 0.6619477579 0.2081824412E-02 0.6642947883 0.2081828379E-02 0.6666418187 0.2081832625E-02 0.6689888491 0.2081837157E-02 0.6713358795 0.2081841985E-02 0.6736829099 0.2081847118E-02 0.6760299403 0.2081852564E-02 0.6783769707 0.2081858334E-02 0.6807240011 0.2081864437E-02 0.6830710315 0.2081870885E-02 0.6854180619 0.2081877688E-02 0.6877650922 0.2081884856E-02 0.6901121226 0.2081892401E-02 0.6924591530 0.2081900335E-02 0.6948061834 0.2081908669E-02 0.6971532138 0.2081917415E-02 0.6995002442 0.2081926585E-02 0.7018472746 0.2081936192E-02 0.7041943050 0.2081946247E-02 0.7065413354 0.2081956765E-02 0.7088883658 0.2081967757E-02 0.7112353962 0.2081979236E-02 0.7135824266 0.2081991215E-02 0.7159294570 0.2082003708E-02 0.7182764874 0.2082016727E-02 0.7206235177 0.2082030286E-02 0.7229705481 0.2082044398E-02 0.7253175785 0.2082059076E-02 0.7276646089 0.2082074333E-02 0.7300116393 0.2082090182E-02 0.7323586697 0.2082106636E-02 0.7347057001 0.2082123709E-02 0.7370527305 0.2082141413E-02 0.7393997609 0.2082159760E-02 0.7417467913 0.2082178765E-02 0.7440938217 0.2082198438E-02 0.7464408521 0.2082218793E-02 0.7487878825 0.2082239841E-02 0.7511349128 0.2082261595E-02 0.7534819432 0.2082284065E-02 0.7558289736 0.2082307264E-02 0.7581760040 0.2082331202E-02 0.7605230344 0.2082355891E-02 0.7628700648 0.2082381340E-02 0.7652170952 0.2082407561E-02 0.7675641256 0.2082434562E-02 0.7699111560 0.2082462353E-02 0.7722581864 0.2082490944E-02 0.7746052168 0.2082520343E-02 0.7769522472 0.2082550558E-02 0.7792992776 0.2082581597E-02 0.7816463080 0.2082613467E-02 0.7839933383 0.2082646176E-02 0.7863403687 0.2082679729E-02 0.7886873991 0.2082714133E-02 0.7910344295 0.2082749392E-02 0.7933814599 0.2082785513E-02 0.7957284903 0.2082822498E-02 0.7980755207 0.2082860352E-02 0.8004225511 0.2082899078E-02 0.8027695815 0.2082938679E-02 0.8051166119 0.2082979155E-02 0.8074636423 0.2083020510E-02 0.8098106727 0.2083062743E-02 0.8121577031 0.2083105854E-02 0.8145047335 0.2083149843E-02 0.8168517638 0.2083194709E-02 0.8191987942 0.2083240450E-02 0.8215458246 0.2083287064E-02 0.8238928550 0.2083334546E-02 0.8262398854 0.2083382893E-02 0.8285869158 0.2083432101E-02 0.8309339462 0.2083482164E-02 0.8332809766 0.2083533077E-02 0.8356280070 0.2083584831E-02 0.8379750374 0.2083637421E-02 0.8403220678 0.2083690838E-02 0.8426690982 0.2083745072E-02 0.8450161286 0.2083800115E-02 0.8473631589 0.2083855957E-02 0.8497101893 0.2083912585E-02 0.8520572197 0.2083969988E-02 0.8544042501 0.2084028155E-02 0.8567512805 0.2084087070E-02 0.8590983109 0.2084146722E-02 0.8614453413 0.2084207094E-02 0.8637923717 0.2084268173E-02 0.8661394021 0.2084329941E-02 0.8684864325 0.2084858931E-02 0.8708334629 0.2087119091E-02 0.8731804933 0.2089381945E-02 0.8755275237 0.2091646966E-02 0.8778745541 0.2093913618E-02 0.8802215844 0.2096181361E-02 0.8825686148 0.2098449647E-02 0.8849156452 0.2100717920E-02 0.8872626756 0.2102985619E-02 0.8896097060 0.2105252177E-02 0.8919567364 0.2107517019E-02 0.8943037668 0.2109779564E-02 0.8966507972 0.2112039227E-02 0.8989978276 0.2114295417E-02 0.9013448580 0.2116547535E-02 0.9036918884 0.2118794981E-02 0.9060389188 0.2121037146E-02 0.9083859492 0.2123273419E-02 0.9107329796 0.2125503184E-02 0.9130800099 0.2127725821E-02 0.9154270403 0.2129940704E-02 0.9177740707 0.2132147208E-02 0.9201211011 0.2134344700E-02 0.9224681315 0.2136532547E-02 0.9248151619 0.2138710113E-02 0.9271621923 0.2140876759E-02 0.9295092227 0.2143031843E-02 0.9318562531 0.2145174725E-02 0.9342032835 0.2147304759E-02 0.9365503139 0.2149421302E-02 0.9388973443 0.2151523709E-02 0.9412443747 0.2153611333E-02 0.9435914050 0.2155683530E-02 0.9459384354 0.2157739654E-02 0.9482854658 0.2159779062E-02 0.9506324962 0.2161801111E-02 0.9529795266 0.2163805160E-02 0.9553265570 0.2165790568E-02 0.9576735874 0.2167756700E-02 0.9600206178 0.2169702920E-02 0.9623676482 0.2171628597E-02 0.9647146786 0.2173533104E-02 0.9670617090 0.2175415815E-02 0.9694087394 0.2177276110E-02 0.9717557698 0.2179113375E-02 0.9741028002 0.2180926997E-02 0.9764498305 0.2182716372E-02 0.9787968609 0.2184480898E-02 0.9811438913 0.2186219983E-02 0.9834909217 0.2187933037E-02 0.9858379521 0.2189619480E-02 0.9881849825 0.2191278737E-02 0.9905320129 0.2192910240E-02 0.9928790433 0.2194513431E-02 0.9952260737 0.2196087758E-02 0.9975731041 0.2197632677E-02 0.9999201345 0.2199147654E-02 1.002267165 0.2200632163E-02 1.004614195 0.2202085687E-02 1.006961226 0.2203507719E-02 1.009308256 0.2204897762E-02 1.011655286 0.2206255328E-02 1.014002317 0.2207579941E-02 1.016349347 0.2208871135E-02 1.018696378 0.2210128455E-02 1.021043408 0.2211351456E-02 1.023390438 0.2212539706E-02 1.025737469 0.2213692784E-02 1.028084499 0.2214810282E-02 1.030431530 0.2215891802E-02 1.032778560 0.2216936960E-02 1.035125590 0.2217945384E-02 1.037472621 0.2218916716E-02 1.039819651 0.2219850610E-02 1.042166682 0.2220746733E-02 1.044513712 0.2221604766E-02 1.046860742 0.2222424403E-02 1.049207773 0.2223205352E-02 1.051554803 0.2223947336E-02 1.053901834 0.2224650091E-02 1.056248864 0.2225313367E-02 1.058595894 0.2225936928E-02 1.060942925 0.2226520554E-02 1.063289955 0.2227064039E-02 1.065636985 0.2227567191E-02 1.067984016 0.2228029834E-02 1.070331046 0.2228451806E-02 1.072678077 0.2228832959E-02 1.075025107 0.2229173162E-02 1.077372137 0.2229472299E-02 1.079719168 0.2229730268E-02 1.082066198 0.2229946982E-02 1.084413229 0.2230122371E-02 1.086760259 0.2230256379E-02 1.089107289 0.2230348966E-02 1.091454320 0.2230400107E-02 1.093801350 0.2230409791E-02 1.096152861 0.2230350468E-02 1.098504372 0.2230159342E-02 1.100855883 0.2229837067E-02 1.103207394 0.2229384737E-02 1.105558905 0.2228803862E-02 1.107910415 0.2228096343E-02 1.110261926 0.2227264438E-02 1.112613437 0.2226310723E-02 1.114964948 0.2225238055E-02 1.117316459 0.2224049522E-02 1.119667970 0.2222748406E-02 1.122019481 0.2221338139E-02 1.124370992 0.2219822259E-02 1.126722503 0.2218204377E-02 1.129074013 0.2216488135E-02 1.131425524 0.2214677182E-02 1.133777035 0.2212775139E-02 1.136128546 0.2210785581E-02 1.138480057 0.2208712013E-02 1.140831568 0.2206557854E-02 1.143183079 0.2204326426E-02 1.145534590 0.2202020942E-02 1.147886101 0.2199644500E-02 1.150237611 0.2197200076E-02 1.152589122 0.2194690525E-02 1.154940633 0.2192118575E-02 1.157292144 0.2189486832E-02 1.159643655 0.2186797781E-02 1.161995166 0.2184053786E-02 1.164346677 0.2181257097E-02 1.166698188 0.2178409852E-02 1.169049699 0.2175514082E-02 1.171401209 0.2172571717E-02 1.173752720 0.2169584588E-02 1.176104231 0.2166554438E-02 1.178455742 0.2163482919E-02 1.180807253 0.2160371603E-02 1.183158764 0.2157221988E-02 1.185510275 0.2154035497E-02 1.187861786 0.2150813486E-02 1.190213296 0.2147557252E-02 1.192564807 0.2144268030E-02 1.194916318 0.2140947002E-02 1.197267829 0.2137595302E-02 1.199619340 0.2134214016E-02 1.201970851 0.2130804186E-02 1.204322362 0.2127366817E-02 1.206673873 0.2123902876E-02 1.209025384 0.2120413298E-02 1.211376894 0.2116898985E-02 1.213728405 0.2113360812E-02 1.216079916 0.2109799630E-02 1.218431427 0.2106216265E-02 1.220782938 0.2105527519E-02 1.223134449 0.2105398257E-02 1.225485960 0.2105220598E-02 1.227837471 0.2104992856E-02 1.230188982 0.2104713376E-02 1.232540492 0.2104380541E-02 1.234892003 0.2103992771E-02 1.237243514 0.2103548526E-02 1.239595025 0.2103046309E-02 1.241946536 0.2102484665E-02 1.244298047 0.2101862188E-02 1.246649558 0.2101177519E-02 1.249001069 0.2100429348E-02 1.251352580 0.2099616417E-02 1.253704090 0.2098737521E-02 1.256055601 0.2097791508E-02 1.258407112 0.2096777286E-02 1.260758623 0.2095693815E-02 1.263110134 0.2094540116E-02 1.265461645 0.2093315271E-02 1.267813156 0.2092018420E-02 1.270164667 0.2090648765E-02 1.272516177 0.2089205570E-02 1.274867688 0.2087688165E-02 1.277219199 0.2086095939E-02 1.279570710 0.2084428348E-02 1.281922221 0.2082684911E-02 1.284273732 0.2080865214E-02 1.286625243 0.2078968904E-02 1.288976754 0.2076995697E-02 1.291328265 0.2074945372E-02 1.293679775 0.2072817771E-02 1.296031286 0.2070612805E-02 1.298382797 0.2068330445E-02 1.300734308 0.2065970729E-02 1.303085819 0.2063533755E-02 1.305437330 0.2061019688E-02 1.307788841 0.2058428751E-02 1.310140352 0.2055761231E-02 1.312491863 0.2053017474E-02 1.314843373 0.2050197888E-02 1.317194884 0.2047302936E-02 1.319546395 0.2044333141E-02 1.321897906 0.2041289083E-02 1.324249417 0.2038171397E-02 1.326600928 0.2034980772E-02 1.328952439 0.2031717951E-02 1.331303950 0.2028383727E-02 1.333655461 0.2024978946E-02 1.336006971 0.2021504503E-02 1.338358482 0.2017961340E-02 1.340709993 0.2014350447E-02 1.343061504 0.2010672859E-02 1.345413015 0.2006929655E-02 1.347764526 0.2003121957E-02 1.350116037 0.1999250930E-02 1.352467548 0.1995317777E-02 1.354819059 0.1991323741E-02 1.357170569 0.1987270104E-02 1.359522080 0.1983158181E-02 1.361873591 0.1978989327E-02 1.364225102 0.1974764927E-02 1.366576613 0.1970486401E-02 1.368928124 0.1966155199E-02 1.371279635 0.1961772804E-02 1.373631146 0.1957340726E-02 1.375982656 0.1952860506E-02 1.378334167 0.1948333709E-02 1.380685678 0.1943761929E-02 1.383037189 0.1939146786E-02 1.385388700 0.1934489922E-02 1.387740211 0.1929793004E-02 1.390091722 0.1925057722E-02 1.392443233 0.1920285789E-02 1.394794744 0.1915478936E-02 1.397146254 0.1910638918E-02 1.399497765 0.1905767506E-02 1.401849276 0.1900866494E-02 1.404200787 0.1895937690E-02 1.406552298 0.1890982922E-02 1.408903809 0.1886004035E-02 1.411255320 0.1881002887E-02 1.413606831 0.1875981356E-02 1.415958342 0.1870941329E-02 1.418309852 0.1865884712E-02 1.420661363 0.1860813421E-02 1.423012874 0.1855729386E-02 1.425364385 0.1850634545E-02 1.427715896 0.1845530852E-02 1.430067407 0.1840420266E-02 1.432418918 0.1835304756E-02 1.434770429 0.1830186301E-02 1.437121940 0.1825066883E-02 1.439473450 0.1819948491E-02 1.441824961 0.1814833119E-02 1.444176472 0.1809722764E-02 1.446527983 0.1804619421E-02 1.448879494 0.1799525090E-02 1.451231005 0.1794441764E-02 1.453582516 0.1789371438E-02 1.455934027 0.1784316098E-02 1.458285537 0.1779277723E-02 1.460637048 0.1774258285E-02 1.462988559 0.1769259743E-02 1.465340070 0.1764284043E-02 1.467691581 0.1759333116E-02 1.470043092 0.1754408873E-02 1.472394603 0.1749513207E-02 1.474746114 0.1744647983E-02 1.477097625 0.1740351762E-02 1.479449135 0.1738839368E-02 1.481800646 0.1737381894E-02 1.484152157 0.1735979046E-02 1.486503668 0.1734630454E-02 1.488855179 0.1733335674E-02 1.491206690 0.1732094187E-02 1.493558201 0.1730905397E-02 1.495909712 0.1729768636E-02 1.498261223 0.1728683161E-02 1.500612733 0.1727648158E-02 1.502964244 0.1726662740E-02 1.505315755 0.1725725953E-02 1.507667266 0.1724836778E-02 1.510018777 0.1723994127E-02 1.512370288 0.1723196851E-02 1.514721799 0.1722443743E-02 1.517073310 0.1721733534E-02 1.519424821 0.1721064903E-02 1.521776331 0.1720436473E-02 1.524127842 0.1719846819E-02 1.526479353 0.1719294465E-02 1.528830864 0.1718777890E-02 1.531182375 0.1718295525E-02 1.533533886 0.1717845762E-02 1.535885397 0.1717426950E-02 1.538236908 0.1717037396E-02 1.540588418 0.1716675370E-02 1.542939929 0.1716339100E-02 1.545291440 0.1716026780E-02 1.547642951 0.1715736561E-02 1.549994462 0.1715466558E-02 1.552345973 0.1715214843E-02 1.554697484 0.1714979451E-02 1.557048995 0.1714758370E-02 1.559400506 0.1714549547E-02 1.561752016 0.1714350879E-02 1.564103527 0.1714160216E-02 1.566455038 0.1713975352E-02 1.568806549 0.1713794026E-02 1.571158060 0.1713613915E-02 1.573509571 0.1713432632E-02 1.575861082 0.1713247719E-02 1.578212593 0.1713056645E-02 1.580564104 0.1712856798E-02 1.582915614 0.1712645483E-02 1.585267125 0.1712419914E-02 1.587618636 0.1712177213E-02 1.589970147 0.1711914402E-02 1.592321658 0.1711628406E-02 1.594673169 0.1711316042E-02 1.597024680 0.1710974029E-02 1.599376191 0.1710598982E-02 1.601727702 0.1710187420E-02 1.604079212 0.1709735772E-02 1.606430723 0.1709240390E-02 1.608782234 0.1708697564E-02 1.611133745 0.1708103544E-02 1.613485256 0.1707454568E-02 1.615836767 0.1706746894E-02 1.618188278 0.1705976844E-02 1.620539789 0.1705140848E-02 1.622891299 0.1704235504E-02 1.625242810 0.1703257632E-02 1.627594321 0.1702204345E-02 1.629945832 0.1701073113E-02 1.632297343 0.1699861833E-02 1.634648854 0.1698568893E-02 1.637000365 0.1697193234E-02 1.639351876 0.1695734396E-02 1.641703387 0.1694192554E-02 1.644054897 0.1692568544E-02 1.646406408 0.1690863861E-02 1.648757919 0.1689080644E-02 1.651109430 0.1687221645E-02 1.653460941 0.1685290180E-02 1.655812452 0.1683290061E-02 1.658163963 0.1681225520E-02 1.660515474 0.1679101136E-02 1.662866985 0.1676921738E-02 1.665218495 0.1674692333E-02 1.667570006 0.1672418016E-02 1.669921517 0.1670103902E-02 1.672273028 0.1667755060E-02 1.674624539 0.1665376454E-02 1.676976050 0.1662972901E-02 1.679327561 0.1660549030E-02 1.681679072 0.1658109257E-02 1.684030583 0.1655657768E-02 1.686382093 0.1653198499E-02 1.688733604 0.1650735139E-02 1.691085115 0.1648271126E-02 1.693436626 0.1645809648E-02 1.695788137 0.1643353653E-02 1.698139648 0.1640905857E-02 1.700491159 0.1638468755E-02 1.702842670 0.1636044632E-02 1.705194180 0.1633635578E-02 1.707545691 0.1631243496E-02 1.709897202 0.1628870122E-02 1.712248713 0.1626517030E-02 1.714600224 0.1624185651E-02 1.716951735 0.1621877278E-02 1.719303246 0.1619593085E-02 1.721654757 0.1617334127E-02 1.724006268 0.1615101361E-02 1.726357778 0.1612895646E-02 1.728709289 0.1610717757E-02 1.731060800 0.1608568389E-02 1.733412311 0.1606448168E-02 1.735763822 0.1604357653E-02 1.738115333 0.1602297346E-02 1.740466844 0.1600267693E-02 1.742818355 0.1598269096E-02 1.745169866 0.1596301908E-02 1.747521376 0.1594366446E-02 1.749872887 0.1592462989E-02 1.752224398 0.1590591784E-02 1.754575909 0.1588753049E-02 1.756927420 0.1586946972E-02 1.759278931 0.1585173720E-02 1.761630442 0.1583433435E-02 1.763981953 0.1581726242E-02 1.766333464 0.1580052244E-02 1.768684974 0.1578411529E-02 1.771036485 0.1576804169E-02 1.773387996 0.1575230223E-02 1.775739507 0.1573689737E-02 1.778091018 0.1572182744E-02 1.780442529 0.1570709268E-02 1.782794040 0.1569269322E-02 1.785145551 0.1567862910E-02 1.787497061 0.1566490029E-02 1.789848572 0.1565150667E-02 1.792200083 0.1563844807E-02 1.794551594 0.1562572423E-02 1.796903105 0.1561333485E-02 1.799254616 0.1560127959E-02 1.801606127 0.1558955804E-02 1.803957638 0.1557816976E-02 1.806309149 0.1556711427E-02 1.808660659 0.1555639107E-02 1.811012170 0.1554599961E-02 1.813363681 0.1553593934E-02 1.815715192 0.1552620969E-02 1.818066703 0.1551681006E-02 1.820418214 0.1550773987E-02 1.822769725 0.1549899850E-02 1.825121236 0.1549058538E-02 1.827472747 0.1548249991E-02 1.829824257 0.1547474151E-02 1.832175768 0.1546730963E-02 1.834527279 0.1546020373E-02 1.836878790 0.1545342331E-02 1.839230301 0.1544696790E-02 1.841581812 0.1544083705E-02 1.843933323 0.1543503038E-02 1.846284834 0.1542954753E-02 1.848636345 0.1542438823E-02 1.850987855 0.1541955223E-02 1.853339366 0.1541503936E-02 1.855690877 0.1541084951E-02 1.858042388 0.1540698264E-02 1.860393899 0.1540343879E-02 1.862745410 0.1540021807E-02 1.865096921 0.1539732065E-02 1.867448432 0.1539474681E-02 1.869799942 0.1539249690E-02 1.872151453 0.1539057135E-02 1.874502964 0.1538897067E-02 1.876849995 0.1539123544E-02 1.879197025 0.1539327741E-02 1.881544055 0.1539509390E-02 1.883891086 0.1539668224E-02 1.886238116 0.1539803977E-02 1.888585147 0.1539916383E-02 1.890932177 0.1540005180E-02 1.893279207 0.1540070105E-02 1.895626238 0.1540110897E-02 1.897973268 0.1540127299E-02 1.900320299 0.1540119055E-02 1.902667329 0.1540085913E-02 1.905014359 0.1540027624E-02 1.907361390 0.1539943941E-02 1.909708420 0.1539834622E-02 1.912055451 0.1539699430E-02 1.914402481 0.1539538129E-02 1.916749511 0.1539350491E-02 1.919096542 0.1539136291E-02 1.921443572 0.1538895310E-02 1.923790603 0.1538627332E-02 1.926137633 0.1538332150E-02 1.928484663 0.1538009558E-02 1.930831694 0.1537659361E-02 1.933178724 0.1537281367E-02 1.935525754 0.1536875391E-02 1.937872785 0.1536441255E-02 1.940219815 0.1535978786E-02 1.942566846 0.1535487820E-02 1.944913876 0.1534968199E-02 1.947260906 0.1534419773E-02 1.949607937 0.1533842398E-02 1.951954967 0.1533235938E-02 1.954301998 0.1532600266E-02 1.956649028 0.1531935261E-02 1.958996058 0.1531240811E-02 1.961343089 0.1530516811E-02 1.963690119 0.1529763165E-02 1.966037150 0.1528979786E-02 1.968384180 0.1528166593E-02 1.970731210 0.1527323516E-02 1.973078241 0.1526450492E-02 1.975425271 0.1525547467E-02 1.977772302 0.1524614396E-02 1.980119332 0.1523651243E-02 1.982466362 0.1522657978E-02 1.984813393 0.1521634585E-02 1.987160423 0.1520581052E-02 1.989507454 0.1519497378E-02 1.991854484 0.1518383572E-02 1.994201514 0.1517239650E-02 1.996548545 0.1516065638E-02 1.998895575 0.1514861572E-02 2.001242605 0.1513627494E-02 2.003589636 0.1512363458E-02 2.005936666 0.1511069526E-02 2.008283697 0.1509745769E-02 2.010630727 0.1508392267E-02 2.012977757 0.1507009108E-02 2.015324788 0.1505596391E-02 2.017671818 0.1504154222E-02 2.020018849 0.1502682716E-02 2.022365879 0.1501181999E-02 2.024712909 0.1499652202E-02 2.027059940 0.1498093469E-02 2.029406970 0.1496505949E-02 2.031754001 0.1494889801E-02 2.034101031 0.1493245193E-02 2.036448061 0.1491572300E-02 2.038795092 0.1489871307E-02 2.041142122 0.1488142406E-02 2.043489153 0.1486385798E-02 2.045836183 0.1484601691E-02 2.048183213 0.1482790302E-02 2.050530244 0.1480951855E-02 2.052877274 0.1479086582E-02 2.055224304 0.1477194724E-02 2.057571335 0.1475276526E-02 2.059918365 0.1473332244E-02 2.062265396 0.1471362140E-02 2.064612426 0.1469366482E-02 2.066959456 0.1467345546E-02 2.069306487 0.1465299616E-02 2.071653517 0.1463228981E-02 2.074000548 0.1461133936E-02 2.076347578 0.1459014785E-02 2.078694608 0.1456871836E-02 2.081041639 0.1454705405E-02 2.083388669 0.1452515812E-02 2.085735700 0.1450303384E-02 2.088082730 0.1448068455E-02 2.090429760 0.1445811361E-02 2.092776791 0.1443532448E-02 2.095123821 0.1441232064E-02 2.097470852 0.1438910563E-02 2.099817882 0.1436568304E-02 2.102164912 0.1434205652E-02 2.104511943 0.1431822976E-02 2.106858973 0.1429420648E-02 2.109206004 0.1426999048E-02 2.111553034 0.1424558556E-02 2.113900064 0.1422099561E-02 2.116247095 0.1419622451E-02 2.118594125 0.1417127624E-02 2.120941155 0.1414615477E-02 2.123288186 0.1412086412E-02 2.125635216 0.1409540837E-02 2.127982247 0.1406979161E-02 2.130329277 0.1404401798E-02 2.132676307 0.1401809166E-02 2.135023338 0.1399201685E-02 2.137370368 0.1396579780E-02 2.139717399 0.1393943880E-02 2.142064429 0.1391294415E-02 2.144411459 0.1388631822E-02 2.146758490 0.1385956539E-02 2.149105520 0.1383269008E-02 2.151452551 0.1380569677E-02 2.153799581 0.1377858996E-02 2.156146611 0.1375137418E-02 2.158493642 0.1372405404E-02 2.160840672 0.1369663415E-02 2.163187703 0.1366911920E-02 2.165534733 0.1364151391E-02 2.167881763 0.1361382307E-02 2.170228794 0.1358605150E-02 2.172575824 0.1355820409E-02 2.174922855 0.1353028581E-02 2.177269885 0.1350230167E-02 2.179616915 0.1347425676E-02 2.181963946 0.1344615625E-02 2.184310976 0.1341800540E-02 2.186658006 0.1338980954E-02 2.189005037 0.1336157412E-02 2.191352067 0.1333330467E-02 2.193699098 0.1330500684E-02 2.196046128 0.1327668640E-02 2.198393158 0.1324834925E-02 2.200740189 0.1322000143E-02 2.203087219 0.1319164911E-02 2.205434250 0.1316329865E-02 2.207781280 0.1313495656E-02 2.210128310 0.1310662955E-02 2.212475341 0.1307832451E-02 2.214822371 0.1305004856E-02 2.217169402 0.1302180905E-02 2.219516432 0.1303558726E-02 2.221863462 0.1309652876E-02 2.224210493 0.1315700840E-02 2.226557523 0.1321702879E-02 2.228904554 0.1327659259E-02 2.231251584 0.1333570250E-02 2.233598614 0.1339436125E-02 2.235945645 0.1345257158E-02 2.238292675 0.1351033626E-02 2.240639706 0.1356765808E-02 2.242986736 0.1362453981E-02 2.245333766 0.1368098422E-02 2.247680797 0.1373699407E-02 2.250027827 0.1379257207E-02 2.252374857 0.1384772091E-02 2.254721888 0.1390244321E-02 2.257068918 0.1395674153E-02 2.259415949 0.1401061833E-02 2.261762979 0.1406407598E-02 2.264110009 0.1411711669E-02 2.266457040 0.1416974256E-02 2.268804070 0.1422195547E-02 2.271151101 0.1427375712E-02 2.273498131 0.1432514893E-02 2.275845161 0.1437613205E-02 2.278192192 0.1442670727E-02 2.280539222 0.1447687497E-02 2.282886253 0.1452663506E-02 2.285233283 0.1457598687E-02 2.287580313 0.1462492907E-02 2.289927344 0.1467345950E-02 2.292274374 0.1472157503E-02 2.294621405 0.1476927139E-02 2.296968435 0.1481654283E-02 2.299315465 0.1486338188E-02 2.301662496 0.1490977889E-02 2.304009526 0.1495572149E-02 2.306356557 0.1500119387E-02 2.308703587 0.1504617586E-02 2.311050617 0.1509064161E-02 2.313397648 0.1513455789E-02 2.315744678 0.1517788159E-02 2.318091708 0.1522055639E-02 2.320438739 0.1526250782E-02 2.322785769 0.1530363616E-02 2.325132800 0.1534380602E-02 2.327479830 0.1538283063E-02 2.329826860 0.1542044835E-02 2.332173891 0.1545628712E-02 2.334520921 0.1548981243E-02 2.336867952 0.1552025597E-02 2.339214982 0.1554653530E-02 2.341562012 0.1556721382E-02 2.343909043 0.1558062343E-02 2.346256073 0.1558529682E-02 0.000000000 0.1771301852E-02 0.2347351854E-02 0.1771294509E-02 0.4694703708E-02 0.1771272483E-02 0.7042055561E-02 0.1771235777E-02 0.9389407415E-02 0.1771184400E-02 0.1173675927E-01 0.1771118362E-02 0.1408411112E-01 0.1771037678E-02 0.1643146298E-01 0.1770942365E-02 0.1877881483E-01 0.1770832441E-02 0.2112616668E-01 0.1770707932E-02 0.2347351854E-01 0.1770568863E-02 0.2582087039E-01 0.1770415263E-02 0.2816822225E-01 0.1770247165E-02 0.3051557410E-01 0.1770064604E-02 0.3286292595E-01 0.1769867618E-02 0.3521027781E-01 0.1769656249E-02 0.3755762966E-01 0.1769430542E-02 0.3990498151E-01 0.1769190543E-02 0.4225233337E-01 0.1768936302E-02 0.4459968522E-01 0.1768667874E-02 0.4694703708E-01 0.1768385314E-02 0.4929438893E-01 0.1768088681E-02 0.5164174078E-01 0.1767778036E-02 0.5398909264E-01 0.1767453445E-02 0.5633644449E-01 0.1767114975E-02 0.5868379634E-01 0.1766762696E-02 0.6103114820E-01 0.1766396681E-02 0.6337850005E-01 0.1766017006E-02 0.6572585191E-01 0.1765623750E-02 0.6807320376E-01 0.1765216993E-02 0.7042055561E-01 0.1764796819E-02 0.7276790747E-01 0.1764363315E-02 0.7511525932E-01 0.1763916571E-02 0.7746261117E-01 0.1763456676E-02 0.7980996303E-01 0.1762983727E-02 0.8215731488E-01 0.1762497820E-02 0.8450466674E-01 0.1761999053E-02 0.8685201859E-01 0.1761487530E-02 0.8919937044E-01 0.1760963354E-02 0.9154672230E-01 0.1760426632E-02 0.9389407415E-01 0.1759877473E-02 0.9624142601E-01 0.1759315990E-02 0.9858877786E-01 0.1758742297E-02 0.1009361297 0.1758156509E-02 0.1032834816 0.1757558746E-02 0.1056308334 0.1756949129E-02 0.1079781853 0.1756327782E-02 0.1103255371 0.1755694831E-02 0.1126728890 0.1755050404E-02 0.1150202408 0.1754394633E-02 0.1173675927 0.1753727649E-02 0.1197149445 0.1753049589E-02 0.1220622964 0.1752360590E-02 0.1244096483 0.1751660792E-02 0.1267570001 0.1750950338E-02 0.1291043520 0.1750229371E-02 0.1314517038 0.1749498041E-02 0.1337990557 0.1748756495E-02 0.1361464075 0.1748004885E-02 0.1384937594 0.1747243366E-02 0.1408411112 0.1746472094E-02 0.1431884631 0.1745691227E-02 0.1455358149 0.1744900928E-02 0.1478831668 0.1744101360E-02 0.1502305186 0.1743292689E-02 0.1525778705 0.1742475084E-02 0.1549252223 0.1741648715E-02 0.1572725742 0.1740813758E-02 0.1596199261 0.1739970387E-02 0.1619672779 0.1739118782E-02 0.1643146298 0.1738259125E-02 0.1666619816 0.1737391599E-02 0.1690093335 0.1736516392E-02 0.1713566853 0.1735633694E-02 0.1737040372 0.1734743696E-02 0.1760513890 0.1734354276E-02 0.1783987409 0.1740367001E-02 0.1807460927 0.1746498217E-02 0.1830934446 0.1752748832E-02 0.1854407964 0.1759119671E-02 0.1877881483 0.1765611467E-02 0.1901355002 0.1772224854E-02 0.1924828520 0.1778960358E-02 0.1948302039 0.1785818393E-02 0.1971775557 0.1792799252E-02 0.1995249076 0.1799903102E-02 0.2018722594 0.1807129976E-02 0.2042196113 0.1814479771E-02 0.2065669631 0.1821952240E-02 0.2089143150 0.1829546989E-02 0.2112616668 0.1837263474E-02 0.2136090187 0.1845100999E-02 0.2159563705 0.1853058712E-02 0.2183037224 0.1861135607E-02 0.2206510743 0.1869330520E-02 0.2229984261 0.1877642133E-02 0.2253457780 0.1886068975E-02 0.2276931298 0.1894609423E-02 0.2300404817 0.1903261707E-02 0.2323878335 0.1912023911E-02 0.2347351854 0.1920893984E-02 0.2370825372 0.1929869738E-02 0.2394298891 0.1938948859E-02 0.2417772409 0.1948128914E-02 0.2441245928 0.1957407354E-02 0.2464719446 0.1966781526E-02 0.2488192965 0.1976248679E-02 0.2511666484 0.1985805972E-02 0.2535140002 0.1995450485E-02 0.2558613521 0.2005179223E-02 0.2582087039 0.2014989128E-02 0.2605560558 0.2024877089E-02 0.2629034076 0.2034839945E-02 0.2652507595 0.2044874499E-02 0.2675981113 0.2054977524E-02 0.2699454632 0.2065145769E-02 0.2722928150 0.2075375969E-02 0.2746401669 0.2085664853E-02 0.2769875187 0.2096009148E-02 0.2793348706 0.2106405586E-02 0.2816822225 0.2116850915E-02 0.2840295743 0.2127341896E-02 0.2863769262 0.2137875318E-02 0.2887242780 0.2148447995E-02 0.2910716299 0.2159056775E-02 0.2934189817 0.2169698542E-02 0.2957663336 0.2180370220E-02 0.2981136854 0.2191068779E-02 0.3004610373 0.2201791234E-02 0.3028083891 0.2212534649E-02 0.3051557410 0.2223296140E-02 0.3075030928 0.2234072878E-02 0.3098504447 0.2244862086E-02 0.3121977966 0.2255661046E-02 0.3145451484 0.2266467096E-02 0.3168925003 0.2277277635E-02 0.3192398521 0.2288090118E-02 0.3215872040 0.2298902061E-02 0.3239345558 0.2309711039E-02 0.3262819077 0.2320514688E-02 0.3286292595 0.2331310703E-02 0.3309766114 0.2342096839E-02 0.3333239632 0.2352870909E-02 0.3356713151 0.2363630786E-02 0.3380186669 0.2374374401E-02 0.3403660188 0.2385099743E-02 0.3427133707 0.2395804857E-02 0.3450607225 0.2406487844E-02 0.3474080744 0.2417146862E-02 0.3497554262 0.2427780122E-02 0.3521027781 0.2438385889E-02 0.3544501299 0.2448962483E-02 0.3567974818 0.2459508272E-02 0.3591448336 0.2470021678E-02 0.3614921855 0.2480501172E-02 0.3638395373 0.2490945274E-02 0.3661868892 0.2501352552E-02 0.3685342410 0.2511721621E-02 0.3708815929 0.2522051144E-02 0.3732289448 0.2532339827E-02 0.3755762966 0.2542586422E-02 0.3779236485 0.2552789723E-02 0.3802710003 0.2562948569E-02 0.3826183522 0.2573061839E-02 0.3849657040 0.2583128453E-02 0.3873130559 0.2593147372E-02 0.3896604077 0.2603117595E-02 0.3920077596 0.2613038162E-02 0.3943551114 0.2622908148E-02 0.3967024633 0.2632726667E-02 0.3990498151 0.2642492869E-02 0.4013971670 0.2652205939E-02 0.4037445189 0.2661865098E-02 0.4060918707 0.2671469601E-02 0.4084392226 0.2681018736E-02 0.4107865744 0.2690511826E-02 0.4131339263 0.2699948226E-02 0.4154812781 0.2709327321E-02 0.4178286300 0.2718648531E-02 0.4201759818 0.2727911305E-02 0.4225233337 0.2730576421E-02 0.4248706855 0.2724346202E-02 0.4272180374 0.2718074652E-02 0.4295653892 0.2711762358E-02 0.4319127411 0.2705409924E-02 0.4342600929 0.2699017970E-02 0.4366074448 0.2692587134E-02 0.4389547967 0.2686118073E-02 0.4413021485 0.2679611461E-02 0.4436495004 0.2673067989E-02 0.4459968522 0.2666488371E-02 0.4483442041 0.2659873337E-02 0.4506915559 0.2653223640E-02 0.4530389078 0.2646540051E-02 0.4553862596 0.2639823365E-02 0.4577336115 0.2633074398E-02 0.4600809633 0.2626293989E-02 0.4624283152 0.2619483000E-02 0.4647756670 0.2612642320E-02 0.4671230189 0.2605772861E-02 0.4694703708 0.2598875564E-02 0.4718177226 0.2591951397E-02 0.4741650745 0.2585001356E-02 0.4765124263 0.2578026470E-02 0.4788597782 0.2571027798E-02 0.4812071300 0.2564006433E-02 0.4835544819 0.2556963505E-02 0.4859018337 0.2549900179E-02 0.4882491856 0.2542817661E-02 0.4905965374 0.2535717199E-02 0.4929438893 0.2528600084E-02 0.4952912411 0.2521467655E-02 0.4976385930 0.2514321302E-02 0.4999859449 0.2507162465E-02 0.5023332967 0.2499992645E-02 0.5046806486 0.2492813401E-02 0.5070280004 0.2485626360E-02 0.5093753523 0.2478433215E-02 0.5117227041 0.2471235739E-02 0.5140700560 0.2464035783E-02 0.5164174078 0.2456835286E-02 0.5187647597 0.2449636284E-02 0.5211121115 0.2442440912E-02 0.5234594634 0.2435251418E-02 0.5258068152 0.2428070170E-02 0.5281541671 0.2420899668E-02 0.5305015190 0.2413742553E-02 0.5328488708 0.2406601623E-02 0.5351962227 0.2399479846E-02 0.5375435745 0.2392380375E-02 0.5398909264 0.2385306568E-02 0.5422382782 0.2378262005E-02 0.5445856301 0.2371250510E-02 0.5469329819 0.2364276178E-02 0.5492803338 0.2357343397E-02 0.5516276856 0.2350456883E-02 0.5539750375 0.2343621707E-02 0.5563223893 0.2336843335E-02 0.5586697412 0.2330127665E-02 0.5610170931 0.2323481071E-02 0.5633644449 0.2316910454E-02 0.5657117968 0.2310423287E-02 0.5680591486 0.2304027674E-02 0.5704065005 0.2297732410E-02 0.5727538523 0.2291547039E-02 0.5751012042 0.2285481924E-02 0.5774485560 0.2279548307E-02 0.5797959079 0.2273758377E-02 0.5821432597 0.2268125328E-02 0.5844906116 0.2262663412E-02 0.5868379634 0.2257387978E-02 0.5891853153 0.2252315492E-02 0.5915326672 0.2247463532E-02 0.5938800190 0.2242850741E-02 0.5962273709 0.2238496740E-02 0.5985747227 0.2234421981E-02 0.6009220746 0.2230647527E-02 0.6032694264 0.2227194764E-02 0.6056167783 0.2224085024E-02 0.6079641301 0.2221339127E-02 0.6103114820 0.2218976858E-02 0.6126588338 0.2217016384E-02 0.6150061857 0.2215473650E-02 0.6173535375 0.2214361798E-02 0.6197008894 0.2213690636E-02 0.6220482413 0.2213466232E-02 0.6243952716 0.2213533573E-02 0.6267423020 0.2213635785E-02 0.6290893324 0.2213772769E-02 0.6314363628 0.2213944410E-02 0.6337833932 0.2214150578E-02 0.6361304236 0.2214391128E-02 0.6384774540 0.2214665898E-02 0.6408244844 0.2214974712E-02 0.6431715148 0.2215317380E-02 0.6455185452 0.2215693696E-02 0.6478655756 0.2216103440E-02 0.6502126060 0.2216546378E-02 0.6525596364 0.2217022263E-02 0.6549066668 0.2217530832E-02 0.6572536971 0.2218071812E-02 0.6596007275 0.2218644915E-02 0.6619477579 0.2219249840E-02 0.6642947883 0.2219886275E-02 0.6666418187 0.2220553895E-02 0.6689888491 0.2221252363E-02 0.6713358795 0.2221981332E-02 0.6736829099 0.2222740441E-02 0.6760299403 0.2223529322E-02 0.6783769707 0.2224347592E-02 0.6807240011 0.2225194863E-02 0.6830710315 0.2226070732E-02 0.6854180619 0.2226974789E-02 0.6877650922 0.2227906616E-02 0.6901121226 0.2228865783E-02 0.6924591530 0.2229851854E-02 0.6948061834 0.2230864384E-02 0.6971532138 0.2231902919E-02 0.6995002442 0.2232967000E-02 0.7018472746 0.2234056158E-02 0.7041943050 0.2235169918E-02 0.7065413354 0.2236307800E-02 0.7088883658 0.2237469316E-02 0.7112353962 0.2238653972E-02 0.7135824266 0.2239861269E-02 0.7159294570 0.2241090704E-02 0.7182764874 0.2242341767E-02 0.7206235177 0.2243613944E-02 0.7229705481 0.2244906717E-02 0.7253175785 0.2246219565E-02 0.7276646089 0.2247551962E-02 0.7300116393 0.2248903378E-02 0.7323586697 0.2250273281E-02 0.7347057001 0.2251661138E-02 0.7370527305 0.2253066410E-02 0.7393997609 0.2254488558E-02 0.7417467913 0.2255927042E-02 0.7440938217 0.2257381317E-02 0.7464408521 0.2258850842E-02 0.7487878825 0.2260335070E-02 0.7511349128 0.2261833455E-02 0.7534819432 0.2263345453E-02 0.7558289736 0.2264870517E-02 0.7581760040 0.2266408100E-02 0.7605230344 0.2267957658E-02 0.7628700648 0.2269518645E-02 0.7652170952 0.2271090518E-02 0.7675641256 0.2272672733E-02 0.7699111560 0.2274264749E-02 0.7722581864 0.2275866026E-02 0.7746052168 0.2277476027E-02 0.7769522472 0.2279094215E-02 0.7792992776 0.2280720058E-02 0.7816463080 0.2282353024E-02 0.7839933383 0.2283992586E-02 0.7863403687 0.2285638218E-02 0.7886873991 0.2287289398E-02 0.7910344295 0.2288945609E-02 0.7933814599 0.2290606335E-02 0.7957284903 0.2292271065E-02 0.7980755207 0.2293939292E-02 0.8004225511 0.2295610514E-02 0.8027695815 0.2297284232E-02 0.8051166119 0.2298959952E-02 0.8074636423 0.2300637184E-02 0.8098106727 0.2302315443E-02 0.8121577031 0.2303994251E-02 0.8145047335 0.2305673133E-02 0.8168517638 0.2307351619E-02 0.8191987942 0.2309029246E-02 0.8215458246 0.2310705555E-02 0.8238928550 0.2312380094E-02 0.8262398854 0.2314052415E-02 0.8285869158 0.2315722077E-02 0.8309339462 0.2317388646E-02 0.8332809766 0.2319051692E-02 0.8356280070 0.2320710793E-02 0.8379750374 0.2322365531E-02 0.8403220678 0.2324015496E-02 0.8426690982 0.2325660284E-02 0.8450161286 0.2327299498E-02 0.8473631589 0.2328932747E-02 0.8497101893 0.2330559645E-02 0.8520572197 0.2332179817E-02 0.8544042501 0.2333792889E-02 0.8567512805 0.2335398499E-02 0.8590983109 0.2336996289E-02 0.8614453413 0.2338585907E-02 0.8637923717 0.2340167010E-02 0.8661394021 0.2341739260E-02 0.8684864325 0.2343302328E-02 0.8708334629 0.2344855890E-02 0.8731804933 0.2346399630E-02 0.8755275237 0.2347933239E-02 0.8778745541 0.2349456412E-02 0.8802215844 0.2350968856E-02 0.8825686148 0.2352470280E-02 0.8849156452 0.2353960403E-02 0.8872626756 0.2355438950E-02 0.8896097060 0.2356905652E-02 0.8919567364 0.2358360248E-02 0.8943037668 0.2359802483E-02 0.8966507972 0.2361232108E-02 0.8989978276 0.2362648883E-02 0.9013448580 0.2364052573E-02 0.9036918884 0.2365442949E-02 0.9060389188 0.2366819790E-02 0.9083859492 0.2368182881E-02 0.9107329796 0.2369532014E-02 0.9130800099 0.2370866985E-02 0.9154270403 0.2372187600E-02 0.9177740707 0.2373493668E-02 0.9201211011 0.2374785007E-02 0.9224681315 0.2376061438E-02 0.9248151619 0.2377322792E-02 0.9271621923 0.2378568902E-02 0.9295092227 0.2379799610E-02 0.9318562531 0.2381014761E-02 0.9342032835 0.2382214210E-02 0.9365503139 0.2383397812E-02 0.9388973443 0.2384565433E-02 0.9412443747 0.2385716942E-02 0.9435914050 0.2386852212E-02 0.9459384354 0.2387971125E-02 0.9482854658 0.2389073565E-02 0.9506324962 0.2390159423E-02 0.9529795266 0.2391228594E-02 0.9553265570 0.2392280979E-02 0.9576735874 0.2393316484E-02 0.9600206178 0.2394335017E-02 0.9623676482 0.2395336496E-02 0.9647146786 0.2396320838E-02 0.9670617090 0.2397287968E-02 0.9694087394 0.2398237814E-02 0.9717557698 0.2399170309E-02 0.9741028002 0.2400085390E-02 0.9764498305 0.2400982999E-02 0.9787968609 0.2401863079E-02 0.9811438913 0.2402725580E-02 0.9834909217 0.2403570455E-02 0.9858379521 0.2404397660E-02 0.9881849825 0.2405207155E-02 0.9905320129 0.2405998903E-02 0.9928790433 0.2406772872E-02 0.9952260737 0.2407529031E-02 0.9975731041 0.2408267354E-02 0.9999201345 0.2408987818E-02 1.002267165 0.2409690400E-02 1.004614195 0.2410375084E-02 1.006961226 0.2411041854E-02 1.009308256 0.2411690698E-02 1.011655286 0.2412321606E-02 1.014002317 0.2412934570E-02 1.016349347 0.2413529584E-02 1.018696378 0.2414106646E-02 1.021043408 0.2414665756E-02 1.023390438 0.2415206912E-02 1.025737469 0.2415730120E-02 1.028084499 0.2416235382E-02 1.030431530 0.2416722706E-02 1.032778560 0.2417192099E-02 1.035125590 0.2417643572E-02 1.037472621 0.2418077133E-02 1.039819651 0.2418492796E-02 1.042166682 0.2418890573E-02 1.044513712 0.2419270479E-02 1.046860742 0.2419632528E-02 1.049207773 0.2419976738E-02 1.051554803 0.2420303123E-02 1.053901834 0.2420611703E-02 1.056248864 0.2420902494E-02 1.058595894 0.2421175515E-02 1.060942925 0.2421430786E-02 1.063289955 0.2421668324E-02 1.065636985 0.2421888150E-02 1.067984016 0.2422090283E-02 1.070331046 0.2422274742E-02 1.072678077 0.2422441546E-02 1.075025107 0.2422590716E-02 1.077372137 0.2422722269E-02 1.079719168 0.2422836226E-02 1.082066198 0.2422932603E-02 1.084413229 0.2423011420E-02 1.086760259 0.2423072693E-02 1.089107289 0.2423116440E-02 1.091454320 0.2423142677E-02 1.093801350 0.2423151419E-02 1.096152861 0.2423209296E-02 1.098504372 0.2423382709E-02 1.100855883 0.2423670996E-02 1.103207394 0.2424073062E-02 1.105558905 0.2424587400E-02 1.107910415 0.2425212119E-02 1.110261926 0.2425944974E-02 1.112613437 0.2426783406E-02 1.114964948 0.2427724585E-02 1.117316459 0.2428765448E-02 1.119667970 0.2429902749E-02 1.122019481 0.2431133094E-02 1.124370992 0.2432452988E-02 1.126722503 0.2433858872E-02 1.129074013 0.2435347155E-02 1.131425524 0.2436914251E-02 1.133777035 0.2438556601E-02 1.136128546 0.2440270704E-02 1.138480057 0.2442053130E-02 1.140831568 0.2443900540E-02 1.143183079 0.2445809700E-02 1.145534590 0.2447777491E-02 1.147886101 0.2449800913E-02 1.150237611 0.2451877094E-02 1.152589122 0.2454003291E-02 1.154940633 0.2456176890E-02 1.157292144 0.2458395408E-02 1.159643655 0.2460656489E-02 1.161995166 0.2462957903E-02 1.164346677 0.2465297541E-02 1.166698188 0.2467673412E-02 1.169049699 0.2470083637E-02 1.171401209 0.2472526448E-02 1.173752720 0.2475000178E-02 1.176104231 0.2477503259E-02 1.178455742 0.2480034217E-02 1.180807253 0.2482591665E-02 1.183158764 0.2485174301E-02 1.185510275 0.2487780900E-02 1.187861786 0.2490410312E-02 1.190213296 0.2493061455E-02 1.192564807 0.2495733314E-02 1.194916318 0.2498424934E-02 1.197267829 0.2501135417E-02 1.199619340 0.2503863919E-02 1.201970851 0.2506609646E-02 1.204322362 0.2509371851E-02 1.206673873 0.2512149829E-02 1.209025384 0.2514942919E-02 1.211376894 0.2517750495E-02 1.213728405 0.2520571969E-02 1.216079916 0.2523406783E-02 1.218431427 0.2526254412E-02 1.220782938 0.2529114360E-02 1.223134449 0.2531986157E-02 1.225485960 0.2534869358E-02 1.227837471 0.2537763540E-02 1.230188982 0.2540668304E-02 1.232540492 0.2543583270E-02 1.234892003 0.2546508075E-02 1.237243514 0.2549442376E-02 1.239595025 0.2552385843E-02 1.241946536 0.2555338164E-02 1.244298047 0.2558299038E-02 1.246649558 0.2561268179E-02 1.249001069 0.2564245310E-02 1.251352580 0.2567230167E-02 1.253704090 0.2570222496E-02 1.256055601 0.2573222049E-02 1.258407112 0.2576228590E-02 1.260758623 0.2579241887E-02 1.263110134 0.2582261715E-02 1.265461645 0.2585287858E-02 1.267813156 0.2588320101E-02 1.270164667 0.2591358236E-02 1.272516177 0.2594402055E-02 1.274867688 0.2597451357E-02 1.277219199 0.2600505939E-02 1.279570710 0.2603565602E-02 1.281922221 0.2606630144E-02 1.284273732 0.2609699363E-02 1.286625243 0.2612773057E-02 1.288976754 0.2615851018E-02 1.291328265 0.2618933033E-02 1.293679775 0.2622018884E-02 1.296031286 0.2625108344E-02 1.298382797 0.2628201176E-02 1.300734308 0.2631297129E-02 1.303085819 0.2634395935E-02 1.305437330 0.2637497309E-02 1.307788841 0.2640600937E-02 1.310140352 0.2643706478E-02 1.312491863 0.2646813549E-02 1.314843373 0.2649921724E-02 1.317194884 0.2653030514E-02 1.319546395 0.2656139356E-02 1.321897906 0.2659247593E-02 1.324249417 0.2662354444E-02 1.326600928 0.2665458967E-02 1.328952439 0.2668560009E-02 1.331303950 0.2671656135E-02 1.333655461 0.2674745520E-02 1.336006971 0.2677825803E-02 1.338358482 0.2680893854E-02 1.340709993 0.2683945427E-02 1.343061504 0.2686974590E-02 1.345413015 0.2689972793E-02 1.347764526 0.2692927242E-02 1.350116037 0.2695817948E-02 1.352467548 0.2698612019E-02 1.354819059 0.2701251935E-02 1.357170569 0.2703629832E-02 1.359522080 0.2705528744E-02 1.361873591 0.2706498085E-02 1.364225102 0.2705721338E-02 1.366576613 0.2702417679E-02 1.368928124 0.2696826935E-02 1.371279635 0.2689847832E-02 1.373631146 0.2682135259E-02 1.375982656 0.2674019924E-02 1.378334167 0.2665662445E-02 1.380685678 0.2657145573E-02 1.383037189 0.2648515325E-02 1.385388700 0.2639799211E-02 1.387740211 0.2631014775E-02 1.390091722 0.2622173870E-02 1.392443233 0.2613284928E-02 1.394794744 0.2604354237E-02 1.397146254 0.2595386684E-02 1.399497765 0.2586386222E-02 1.401849276 0.2577356155E-02 1.404200787 0.2568299331E-02 1.406552298 0.2559218268E-02 1.408903809 0.2550115245E-02 1.411255320 0.2540992359E-02 1.413606831 0.2531851571E-02 1.415958342 0.2522694742E-02 1.418309852 0.2513523649E-02 1.420661363 0.2504340008E-02 1.423012874 0.2495145488E-02 1.425364385 0.2485941717E-02 1.427715896 0.2476730293E-02 1.430067407 0.2467512790E-02 1.432418918 0.2458290763E-02 1.434770429 0.2449065749E-02 1.437121940 0.2439839274E-02 1.439473450 0.2430612855E-02 1.441824961 0.2421387999E-02 1.444176472 0.2412166208E-02 1.446527983 0.2402948979E-02 1.448879494 0.2393737806E-02 1.451231005 0.2384534179E-02 1.453582516 0.2375339590E-02 1.455934027 0.2366155527E-02 1.458285537 0.2356983479E-02 1.460637048 0.2347824937E-02 1.462988559 0.2338681392E-02 1.465340070 0.2329554339E-02 1.467691581 0.2320445274E-02 1.470043092 0.2311355697E-02 1.472394603 0.2302287112E-02 1.474746114 0.2293241027E-02 1.477097625 0.2284218955E-02 1.479449135 0.2275222414E-02 1.481800646 0.2266252929E-02 1.484152157 0.2257312031E-02 1.486503668 0.2248401256E-02 1.488855179 0.2239522150E-02 1.491206690 0.2230676265E-02 1.493558201 0.2221865162E-02 1.495909712 0.2213090409E-02 1.498261223 0.2204353587E-02 1.500612733 0.2195656281E-02 1.502964244 0.2187000091E-02 1.505315755 0.2178386623E-02 1.507667266 0.2169817495E-02 1.510018777 0.2161294336E-02 1.512370288 0.2152818787E-02 1.514721799 0.2144392498E-02 1.517073310 0.2136017131E-02 1.519424821 0.2127694363E-02 1.521776331 0.2119425878E-02 1.524127842 0.2111213377E-02 1.526479353 0.2103058569E-02 1.528830864 0.2094963179E-02 1.531182375 0.2086928943E-02 1.533533886 0.2078957612E-02 1.535885397 0.2071050949E-02 1.538236908 0.2063210730E-02 1.540588418 0.2055438747E-02 1.542939929 0.2047736807E-02 1.545291440 0.2040106729E-02 1.547642951 0.2032550353E-02 1.549994462 0.2025069532E-02 1.552345973 0.2017666137E-02 1.554697484 0.2010342061E-02 1.557048995 0.2003099215E-02 1.559400506 0.1995939534E-02 1.561752016 0.1988864974E-02 1.564103527 0.1981877520E-02 1.566455038 0.1974979184E-02 1.568806549 0.1968172012E-02 1.571158060 0.1961458082E-02 1.573509571 0.1954839510E-02 1.575861082 0.1948318453E-02 1.578212593 0.1941897114E-02 1.580564104 0.1935577744E-02 1.582915614 0.1929362648E-02 1.585267125 0.1923254187E-02 1.587618636 0.1917254783E-02 1.589970147 0.1911366920E-02 1.592321658 0.1905593149E-02 1.594673169 0.1899936089E-02 1.597024680 0.1894398426E-02 1.599376191 0.1888982911E-02 1.601727702 0.1883692357E-02 1.604079212 0.1878529630E-02 1.606430723 0.1873497638E-02 1.608782234 0.1868599318E-02 1.611133745 0.1863837609E-02 1.613485256 0.1859215434E-02 1.615836767 0.1854735659E-02 1.618188278 0.1850401059E-02 1.620539789 0.1846214269E-02 1.622891299 0.1842177730E-02 1.625242810 0.1838293634E-02 1.627594321 0.1834563855E-02 1.629945832 0.1830989887E-02 1.632297343 0.1827572779E-02 1.634648854 0.1824313068E-02 1.637000365 0.1821210723E-02 1.639351876 0.1818265100E-02 1.641703387 0.1815474906E-02 1.644054897 0.1812838182E-02 1.646406408 0.1810352300E-02 1.648757919 0.1808013981E-02 1.651109430 0.1805819332E-02 1.653460941 0.1803763898E-02 1.655812452 0.1801842727E-02 1.658163963 0.1800050448E-02 1.660515474 0.1798381355E-02 1.662866985 0.1796829494E-02 1.665218495 0.1795388747E-02 1.667570006 0.1794052916E-02 1.669921517 0.1792815796E-02 1.672273028 0.1791671246E-02 1.674624539 0.1790613243E-02 1.676976050 0.1789635930E-02 1.679327561 0.1788733656E-02 1.681679072 0.1787901002E-02 1.684030583 0.1787132806E-02 1.686382093 0.1786424170E-02 1.688733604 0.1785770470E-02 1.691085115 0.1785167358E-02 1.693436626 0.1784610759E-02 1.695788137 0.1784096862E-02 1.698139648 0.1783622115E-02 1.700491159 0.1783183213E-02 1.702842670 0.1782777085E-02 1.705194180 0.1782400886E-02 1.707545691 0.1782051979E-02 1.709897202 0.1781727926E-02 1.712248713 0.1781426472E-02 1.714600224 0.1781145538E-02 1.716951735 0.1780883203E-02 1.719303246 0.1780637698E-02 1.721654757 0.1780407392E-02 1.724006268 0.1780190783E-02 1.726357778 0.1779986490E-02 1.728709289 0.1779793240E-02 1.731060800 0.1779609867E-02 1.733412311 0.1779435298E-02 1.735763822 0.1779268546E-02 1.738115333 0.1779108709E-02 1.740466844 0.1778954960E-02 1.742818355 0.1778806540E-02 1.745169866 0.1778662758E-02 1.747521376 0.1778522980E-02 1.749872887 0.1778386630E-02 1.752224398 0.1778253183E-02 1.754575909 0.1778122162E-02 1.756927420 0.1777993135E-02 1.759278931 0.1777865709E-02 1.761630442 0.1777739533E-02 1.763981953 0.1777614290E-02 1.766333464 0.1777489694E-02 1.768684974 0.1777365494E-02 1.771036485 0.1777241464E-02 1.773387996 0.1777117406E-02 1.775739507 0.1776993146E-02 1.778091018 0.1776868534E-02 1.780442529 0.1776743440E-02 1.782794040 0.1776617754E-02 1.785145551 0.1776491384E-02 1.787497061 0.1776364256E-02 1.789848572 0.1776236311E-02 1.792200083 0.1776107503E-02 1.794551594 0.1775977802E-02 1.796903105 0.1775847188E-02 1.799254616 0.1775715654E-02 1.801606127 0.1775583202E-02 1.803957638 0.1775449844E-02 1.806309149 0.1775315602E-02 1.808660659 0.1775180504E-02 1.811012170 0.1775044587E-02 1.813363681 0.1774907892E-02 1.815715192 0.1774770469E-02 1.818066703 0.1774632371E-02 1.820418214 0.1774493656E-02 1.822769725 0.1774354389E-02 1.825121236 0.1774214633E-02 1.827472747 0.1774074460E-02 1.829824257 0.1773933941E-02 1.832175768 0.1773793150E-02 1.834527279 0.1773652165E-02 1.836878790 0.1773511062E-02 1.839230301 0.1773369920E-02 1.841581812 0.1773228819E-02 1.843933323 0.1773087840E-02 1.846284834 0.1772947062E-02 1.848636345 0.1772806566E-02 1.850987855 0.1772666432E-02 1.853339366 0.1772526738E-02 1.855690877 0.1772387563E-02 1.858042388 0.1772248985E-02 1.860393899 0.1772111079E-02 1.862745410 0.1771973922E-02 1.865096921 0.1771837585E-02 1.867448432 0.1771702140E-02 1.869799942 0.1771567658E-02 1.872151453 0.1771434207E-02 1.874502964 0.1771301852E-02 1.876849995 0.1771531508E-02 1.879197025 0.1771784933E-02 1.881544055 0.1772061815E-02 1.883891086 0.1772361821E-02 1.886238116 0.1772684596E-02 1.888585147 0.1773029758E-02 1.890932177 0.1773396906E-02 1.893279207 0.1773785618E-02 1.895626238 0.1774195450E-02 1.897973268 0.1774625936E-02 1.900320299 0.1775076592E-02 1.902667329 0.1775546915E-02 1.905014359 0.1776036383E-02 1.907361390 0.1776544453E-02 1.909708420 0.1777070570E-02 1.912055451 0.1777614157E-02 1.914402481 0.1778174624E-02 1.916749511 0.1778751363E-02 1.919096542 0.1779343754E-02 1.921443572 0.1779951160E-02 1.923790603 0.1780572931E-02 1.926137633 0.1781208404E-02 1.928484663 0.1781856904E-02 1.930831694 0.1782517744E-02 1.933178724 0.1783190225E-02 1.935525754 0.1783873639E-02 1.937872785 0.1784567266E-02 1.940219815 0.1785270380E-02 1.942566846 0.1785982242E-02 1.944913876 0.1786702108E-02 1.947260906 0.1787429226E-02 1.949607937 0.1788162837E-02 1.951954967 0.1788902176E-02 1.954301998 0.1789646473E-02 1.956649028 0.1790394951E-02 1.958996058 0.1791146831E-02 1.961343089 0.1791901329E-02 1.963690119 0.1792657658E-02 1.966037150 0.1793415028E-02 1.968384180 0.1794172649E-02 1.970731210 0.1794929727E-02 1.973078241 0.1795685467E-02 1.975425271 0.1796439077E-02 1.977772302 0.1797189760E-02 1.980119332 0.1797936725E-02 1.982466362 0.1798679179E-02 1.984813393 0.1799416332E-02 1.987160423 0.1800147394E-02 1.989507454 0.1800871581E-02 1.991854484 0.1801588111E-02 1.994201514 0.1802296204E-02 1.996548545 0.1802995087E-02 1.998895575 0.1803683990E-02 2.001242605 0.1804362148E-02 2.003589636 0.1805028802E-02 2.005936666 0.1805683199E-02 2.008283697 0.1806324592E-02 2.010630727 0.1806952241E-02 2.012977757 0.1807565413E-02 2.015324788 0.1808163383E-02 2.017671818 0.1808745434E-02 2.020018849 0.1809310856E-02 2.022365879 0.1809858949E-02 2.024712909 0.1810389022E-02 2.027059940 0.1810900393E-02 2.029406970 0.1811392389E-02 2.031754001 0.1811864349E-02 2.034101031 0.1812315619E-02 2.036448061 0.1812745560E-02 2.038795092 0.1813153539E-02 2.041142122 0.1813538938E-02 2.043489153 0.1813901148E-02 2.045836183 0.1814239572E-02 2.048183213 0.1814553627E-02 2.050530244 0.1814842739E-02 2.052877274 0.1815106348E-02 2.055224304 0.1815343906E-02 2.057571335 0.1815554879E-02 2.059918365 0.1815738742E-02 2.062265396 0.1815894988E-02 2.064612426 0.1816023119E-02 2.066959456 0.1816122653E-02 2.069306487 0.1816193120E-02 2.071653517 0.1816234064E-02 2.074000548 0.1816245041E-02 2.076347578 0.1816225624E-02 2.078694608 0.1816175397E-02 2.081041639 0.1816093959E-02 2.083388669 0.1815980922E-02 2.085735700 0.1815835912E-02 2.088082730 0.1815658570E-02 2.090429760 0.1815448550E-02 2.092776791 0.1815205519E-02 2.095123821 0.1814929160E-02 2.097470852 0.1814619169E-02 2.099817882 0.1814275254E-02 2.102164912 0.1813897140E-02 2.104511943 0.1813484563E-02 2.106858973 0.1813037273E-02 2.109206004 0.1812555036E-02 2.111553034 0.1812037627E-02 2.113900064 0.1811484839E-02 2.116247095 0.1810896474E-02 2.118594125 0.1810272350E-02 2.120941155 0.1809612295E-02 2.123288186 0.1808916154E-02 2.125635216 0.1808183779E-02 2.127982247 0.1807415039E-02 2.130329277 0.1806609811E-02 2.132676307 0.1805767989E-02 2.135023338 0.1804889473E-02 2.137370368 0.1803974178E-02 2.139717399 0.1803022029E-02 2.142064429 0.1802032963E-02 2.144411459 0.1801006925E-02 2.146758490 0.1799943873E-02 2.149105520 0.1798843775E-02 2.151452551 0.1797706606E-02 2.153799581 0.1796532354E-02 2.156146611 0.1795321014E-02 2.158493642 0.1794072590E-02 2.160840672 0.1792787095E-02 2.163187703 0.1791464550E-02 2.165534733 0.1790104985E-02 2.167881763 0.1788708436E-02 2.170228794 0.1787274946E-02 2.172575824 0.1785804566E-02 2.174922855 0.1784297353E-02 2.177269885 0.1782753369E-02 2.179616915 0.1781172685E-02 2.181963946 0.1779555374E-02 2.184310976 0.1777901516E-02 2.186658006 0.1776211194E-02 2.189005037 0.1774484498E-02 2.191352067 0.1772721519E-02 2.193699098 0.1770922353E-02 2.196046128 0.1769087101E-02 2.198393158 0.1767215865E-02 2.200740189 0.1765308749E-02 2.203087219 0.1763365862E-02 2.205434250 0.1761387313E-02 2.207781280 0.1759373213E-02 2.210128310 0.1757323675E-02 2.212475341 0.1755238813E-02 2.214822371 0.1753118742E-02 2.217169402 0.1750963578E-02 2.219516432 0.1748773437E-02 2.221863462 0.1746548437E-02 2.224210493 0.1744288693E-02 2.226557523 0.1741994323E-02 2.228904554 0.1739665444E-02 2.231251584 0.1737302173E-02 2.233598614 0.1734904627E-02 2.235945645 0.1732472923E-02 2.238292675 0.1730007178E-02 2.240639706 0.1727507509E-02 2.242986736 0.1724974034E-02 2.245333766 0.1722406871E-02 2.247680797 0.1719806141E-02 2.250027827 0.1717171965E-02 2.252374857 0.1714504467E-02 2.254721888 0.1711803773E-02 2.257068918 0.1709070014E-02 2.259415949 0.1706303327E-02 2.261762979 0.1703503853E-02 2.264110009 0.1700671743E-02 2.266457040 0.1697807157E-02 2.268804070 0.1694910267E-02 2.271151101 0.1691981261E-02 2.273498131 0.1689020344E-02 2.275845161 0.1686027742E-02 2.278192192 0.1683003709E-02 2.280539222 0.1679948532E-02 2.282886253 0.1676862535E-02 2.285233283 0.1673746091E-02 2.287580313 0.1670599630E-02 2.289927344 0.1667423652E-02 2.292274374 0.1664218745E-02 2.294621405 0.1660985603E-02 2.296968435 0.1657725050E-02 2.299315465 0.1654438075E-02 2.301662496 0.1651125872E-02 2.304009526 0.1647789893E-02 2.306356557 0.1644431923E-02 2.308703587 0.1641054169E-02 2.311050617 0.1637659392E-02 2.313397648 0.1634251081E-02 2.315744678 0.1630833694E-02 2.318091708 0.1627413001E-02 2.320438739 0.1623996571E-02 2.322785769 0.1620594483E-02 2.325132800 0.1617220370E-02 2.327479830 0.1613892987E-02 2.329826860 0.1610638565E-02 2.332173891 0.1607494360E-02 2.334520921 0.1604513858E-02 2.336867952 0.1601773912E-02 2.339214982 0.1599382774E-02 2.341562012 0.1597484095E-02 2.343909043 0.1596244666E-02 2.346256073 0.1595811181E-02 0.000000000 0.2650899602E-02 0.2347351854E-02 0.2650980947E-02 0.4694703708E-02 0.2651224895E-02 0.7042055561E-02 0.2651631176E-02 0.9389407415E-02 0.2652199346E-02 0.1173675927E-01 0.2652928782E-02 0.1408411112E-01 0.2653818690E-02 0.1643146298E-01 0.2654868101E-02 0.1877881483E-01 0.2656075879E-02 0.2112616668E-01 0.2657440722E-02 0.2347351854E-01 0.2658961167E-02 0.2582087039E-01 0.2660635596E-02 0.2816822225E-01 0.2662462236E-02 0.3051557410E-01 0.2664439169E-02 0.3286292595E-01 0.2666564336E-02 0.3521027781E-01 0.2668835542E-02 0.3755762966E-01 0.2671250462E-02 0.3990498151E-01 0.2673806649E-02 0.4225233337E-01 0.2676501539E-02 0.4459968522E-01 0.2679332459E-02 0.4694703708E-01 0.2682296631E-02 0.4929438893E-01 0.2685391182E-02 0.5164174078E-01 0.2688613149E-02 0.5398909264E-01 0.2691959487E-02 0.5633644449E-01 0.2695427074E-02 0.5868379634E-01 0.2699012720E-02 0.6103114820E-01 0.2702713172E-02 0.6337850005E-01 0.2706525122E-02 0.6572585191E-01 0.2710445210E-02 0.6807320376E-01 0.2714470035E-02 0.7042055561E-01 0.2718596160E-02 0.7276790747E-01 0.2722820114E-02 0.7511525932E-01 0.2727138402E-02 0.7746261117E-01 0.2731547509E-02 0.7980996303E-01 0.2736043906E-02 0.8215731488E-01 0.2740624053E-02 0.8450466674E-01 0.2745284406E-02 0.8685201859E-01 0.2750021422E-02 0.8919937044E-01 0.2754831561E-02 0.9154672230E-01 0.2759711291E-02 0.9389407415E-01 0.2764657093E-02 0.9624142601E-01 0.2769665466E-02 0.9858877786E-01 0.2774732924E-02 0.1009361297 0.2779856008E-02 0.1032834816 0.2785031283E-02 0.1056308334 0.2790255343E-02 0.1079781853 0.2795524813E-02 0.1103255371 0.2800836352E-02 0.1126728890 0.2806186656E-02 0.1150202408 0.2811572458E-02 0.1173675927 0.2816990531E-02 0.1197149445 0.2822437689E-02 0.1220622964 0.2827910793E-02 0.1244096483 0.2833406745E-02 0.1267570001 0.2838922495E-02 0.1291043520 0.2844455041E-02 0.1314517038 0.2850001428E-02 0.1337990557 0.2855558753E-02 0.1361464075 0.2861124160E-02 0.1384937594 0.2866694848E-02 0.1408411112 0.2872268066E-02 0.1431884631 0.2877841115E-02 0.1455358149 0.2883411350E-02 0.1478831668 0.2888976181E-02 0.1502305186 0.2894533069E-02 0.1525778705 0.2900079532E-02 0.1549252223 0.2905613141E-02 0.1572725742 0.2911131523E-02 0.1596199261 0.2916632360E-02 0.1619672779 0.2922113390E-02 0.1643146298 0.2927572403E-02 0.1666619816 0.2933007249E-02 0.1690093335 0.2938415831E-02 0.1713566853 0.2943796109E-02 0.1737040372 0.2949146098E-02 0.1760513890 0.2954463869E-02 0.1783987409 0.2959747548E-02 0.1807460927 0.2964995317E-02 0.1830934446 0.2970205416E-02 0.1854407964 0.2975376137E-02 0.1877881483 0.2980505830E-02 0.1901355002 0.2985592899E-02 0.1924828520 0.2990635806E-02 0.1948302039 0.2995633066E-02 0.1971775557 0.3000583250E-02 0.1995249076 0.3005484986E-02 0.2018722594 0.3010336956E-02 0.2042196113 0.3015137896E-02 0.2065669631 0.3019886600E-02 0.2089143150 0.3024581915E-02 0.2112616668 0.3029222745E-02 0.2136090187 0.3033808047E-02 0.2159563705 0.3038336835E-02 0.2183037224 0.3042808178E-02 0.2206510743 0.3047221199E-02 0.2229984261 0.3051575076E-02 0.2253457780 0.3055869044E-02 0.2276931298 0.3060102391E-02 0.2300404817 0.3064274460E-02 0.2323878335 0.3068384651E-02 0.2347351854 0.3068894619E-02 0.2370825372 0.3066660927E-02 0.2394298891 0.3064381490E-02 0.2417772409 0.3062055934E-02 0.2441245928 0.3059683889E-02 0.2464719446 0.3057264996E-02 0.2488192965 0.3054798903E-02 0.2511666484 0.3052285270E-02 0.2535140002 0.3049723762E-02 0.2558613521 0.3047114054E-02 0.2582087039 0.3044455831E-02 0.2605560558 0.3041748787E-02 0.2629034076 0.3038992626E-02 0.2652507595 0.3036187060E-02 0.2675981113 0.3033331811E-02 0.2699454632 0.3030426611E-02 0.2722928150 0.3027471203E-02 0.2746401669 0.3024465339E-02 0.2769875187 0.3021408781E-02 0.2793348706 0.3018301300E-02 0.2816822225 0.3015142681E-02 0.2840295743 0.3011932715E-02 0.2863769262 0.3008671207E-02 0.2887242780 0.3005357971E-02 0.2910716299 0.3001992831E-02 0.2934189817 0.2998575623E-02 0.2957663336 0.2995106194E-02 0.2981136854 0.2991584402E-02 0.3004610373 0.2988010115E-02 0.3028083891 0.2984383212E-02 0.3051557410 0.2980703585E-02 0.3075030928 0.2976971136E-02 0.3098504447 0.2973185779E-02 0.3121977966 0.2969347438E-02 0.3145451484 0.2965456050E-02 0.3168925003 0.2961511564E-02 0.3192398521 0.2957513938E-02 0.3215872040 0.2953463145E-02 0.3239345558 0.2949359168E-02 0.3262819077 0.2945202001E-02 0.3286292595 0.2940991652E-02 0.3309766114 0.2936728139E-02 0.3333239632 0.2932411494E-02 0.3356713151 0.2928041758E-02 0.3380186669 0.2923618988E-02 0.3403660188 0.2919143251E-02 0.3427133707 0.2914614625E-02 0.3450607225 0.2910033203E-02 0.3474080744 0.2905399089E-02 0.3497554262 0.2900712398E-02 0.3521027781 0.2895973261E-02 0.3544501299 0.2891181818E-02 0.3567974818 0.2886338223E-02 0.3591448336 0.2881442642E-02 0.3614921855 0.2876495256E-02 0.3638395373 0.2871496255E-02 0.3661868892 0.2866445844E-02 0.3685342410 0.2861344241E-02 0.3708815929 0.2856191677E-02 0.3732289448 0.2850988394E-02 0.3755762966 0.2845734649E-02 0.3779236485 0.2840430711E-02 0.3802710003 0.2835076863E-02 0.3826183522 0.2829673401E-02 0.3849657040 0.2824220635E-02 0.3873130559 0.2818718886E-02 0.3896604077 0.2813168491E-02 0.3920077596 0.2807569799E-02 0.3943551114 0.2801923175E-02 0.3967024633 0.2796228994E-02 0.3990498151 0.2790487650E-02 0.4013971670 0.2784699545E-02 0.4037445189 0.2778865101E-02 0.4060918707 0.2772984750E-02 0.4084392226 0.2767058941E-02 0.4107865744 0.2761088136E-02 0.4131339263 0.2755072814E-02 0.4154812781 0.2749013465E-02 0.4178286300 0.2742910599E-02 0.4201759818 0.2736764738E-02 0.4225233337 0.2737115123E-02 0.4248706855 0.2746259495E-02 0.4272180374 0.2755343962E-02 0.4295653892 0.2764368092E-02 0.4319127411 0.2773331483E-02 0.4342600929 0.2782233762E-02 0.4366074448 0.2791074584E-02 0.4389547967 0.2799853631E-02 0.4413021485 0.2808570614E-02 0.4436495004 0.2817225268E-02 0.4459968522 0.2825817357E-02 0.4483442041 0.2834346672E-02 0.4506915559 0.2842813029E-02 0.4530389078 0.2851216270E-02 0.4553862596 0.2859556262E-02 0.4577336115 0.2867832899E-02 0.4600809633 0.2876046098E-02 0.4624283152 0.2884195804E-02 0.4647756670 0.2892281982E-02 0.4671230189 0.2900304624E-02 0.4694703708 0.2908263747E-02 0.4718177226 0.2916159390E-02 0.4741650745 0.2923991616E-02 0.4765124263 0.2931760511E-02 0.4788597782 0.2939466185E-02 0.4812071300 0.2947108771E-02 0.4835544819 0.2954688422E-02 0.4859018337 0.2962205317E-02 0.4882491856 0.2969659654E-02 0.4905965374 0.2977051655E-02 0.4929438893 0.2984381562E-02 0.4952912411 0.2991649638E-02 0.4976385930 0.2998856168E-02 0.4999859449 0.3006001457E-02 0.5023332967 0.3013085830E-02 0.5046806486 0.3020109633E-02 0.5070280004 0.3027073230E-02 0.5093753523 0.3033977004E-02 0.5117227041 0.3040821358E-02 0.5140700560 0.3047606712E-02 0.5164174078 0.3054333505E-02 0.5187647597 0.3061002191E-02 0.5211121115 0.3067613243E-02 0.5234594634 0.3074167148E-02 0.5258068152 0.3080664410E-02 0.5281541671 0.3087105547E-02 0.5305015190 0.3093491092E-02 0.5328488708 0.3099821588E-02 0.5351962227 0.3106097594E-02 0.5375435745 0.3112319678E-02 0.5398909264 0.3118488420E-02 0.5422382782 0.3124604408E-02 0.5445856301 0.3130668237E-02 0.5469329819 0.3136680511E-02 0.5492803338 0.3142641836E-02 0.5516276856 0.3148552823E-02 0.5539750375 0.3154414083E-02 0.5563223893 0.3160226227E-02 0.5586697412 0.3165989859E-02 0.5610170931 0.3171705578E-02 0.5633644449 0.3177373972E-02 0.5657117968 0.3182995613E-02 0.5680591486 0.3188571050E-02 0.5704065005 0.3194100807E-02 0.5727538523 0.3199585370E-02 0.5751012042 0.3205025177E-02 0.5774485560 0.3210420608E-02 0.5797959079 0.3215771962E-02 0.5821432597 0.3221079436E-02 0.5844906116 0.3226343092E-02 0.5868379634 0.3231562816E-02 0.5891853153 0.3236738252E-02 0.5915326672 0.3241868713E-02 0.5938800190 0.3246953055E-02 0.5962273709 0.3251989474E-02 0.5985747227 0.3256975199E-02 0.6009220746 0.3261905992E-02 0.6032694264 0.3266775310E-02 0.6056167783 0.3271572823E-02 0.6079641301 0.3276281671E-02 0.6103114820 0.3280873038E-02 0.6126588338 0.3285294690E-02 0.6150061857 0.3289445088E-02 0.6173535375 0.3293112950E-02 0.6197008894 0.3295854225E-02 0.6220482413 0.3296926173E-02 0.6243952716 0.3296925902E-02 0.6267423020 0.3296925091E-02 0.6290893324 0.3296923749E-02 0.6314363628 0.3296921889E-02 0.6337833932 0.3296919532E-02 0.6361304236 0.3296916703E-02 0.6384774540 0.3296913436E-02 0.6408244844 0.3296909769E-02 0.6431715148 0.3296905746E-02 0.6455185452 0.3296901417E-02 0.6478655756 0.3296896838E-02 0.6502126060 0.3296892072E-02 0.6525596364 0.3296887185E-02 0.6549066668 0.3296882252E-02 0.6572536971 0.3296877351E-02 0.6596007275 0.3296872566E-02 0.6619477579 0.3296867988E-02 0.6642947883 0.3296863710E-02 0.6666418187 0.3296859834E-02 0.6689888491 0.3296856465E-02 0.6713358795 0.3296853712E-02 0.6736829099 0.3296851691E-02 0.6760299403 0.3296850522E-02 0.6783769707 0.3296850327E-02 0.6807240011 0.3296851237E-02 0.6830710315 0.3296853384E-02 0.6854180619 0.3296856904E-02 0.6877650922 0.3296861938E-02 0.6901121226 0.3296868632E-02 0.6924591530 0.3296877132E-02 0.6948061834 0.3296887590E-02 0.6971532138 0.3296900162E-02 0.6995002442 0.3296915003E-02 0.7018472746 0.3296932276E-02 0.7041943050 0.3296952143E-02 0.7065413354 0.3296974769E-02 0.7088883658 0.3297000322E-02 0.7112353962 0.3297028973E-02 0.7135824266 0.3297060891E-02 0.7159294570 0.3297096252E-02 0.7182764874 0.3297135228E-02 0.7206235177 0.3297177995E-02 0.7229705481 0.3297224731E-02 0.7253175785 0.3297275612E-02 0.7276646089 0.3297330816E-02 0.7300116393 0.3297390521E-02 0.7323586697 0.3297454905E-02 0.7347057001 0.3297524145E-02 0.7370527305 0.3297598418E-02 0.7393997609 0.3297677902E-02 0.7417467913 0.3297762772E-02 0.7440938217 0.3297853201E-02 0.7464408521 0.3297949364E-02 0.7487878825 0.3298051432E-02 0.7511349128 0.3298159573E-02 0.7534819432 0.3298273955E-02 0.7558289736 0.3298394744E-02 0.7581760040 0.3298522102E-02 0.7605230344 0.3298656188E-02 0.7628700648 0.3298797158E-02 0.7652170952 0.3298945167E-02 0.7675641256 0.3299100364E-02 0.7699111560 0.3299262895E-02 0.7722581864 0.3299432903E-02 0.7746052168 0.3299610524E-02 0.7769522472 0.3299795893E-02 0.7792992776 0.3299989138E-02 0.7816463080 0.3300190384E-02 0.7839933383 0.3300399751E-02 0.7863403687 0.3300617351E-02 0.7886873991 0.3300843293E-02 0.7910344295 0.3301077682E-02 0.7933814599 0.3301320612E-02 0.7957284903 0.3301572177E-02 0.7980755207 0.3301832461E-02 0.8004225511 0.3302101543E-02 0.8027695815 0.3302379494E-02 0.8051166119 0.3302666382E-02 0.8074636423 0.3302962265E-02 0.8098106727 0.3303267194E-02 0.8121577031 0.3303581215E-02 0.8145047335 0.3303904366E-02 0.8168517638 0.3304236676E-02 0.8191987942 0.3304578170E-02 0.8215458246 0.3304928862E-02 0.8238928550 0.3305288760E-02 0.8262398854 0.3305657864E-02 0.8285869158 0.3306036167E-02 0.8309339462 0.3306423652E-02 0.8332809766 0.3306820296E-02 0.8356280070 0.3306453152E-02 0.8379750374 0.3305578891E-02 0.8403220678 0.3304720901E-02 0.8426690982 0.3303879515E-02 0.8450161286 0.3303055049E-02 0.8473631589 0.3302247801E-02 0.8497101893 0.3301458049E-02 0.8520572197 0.3300686055E-02 0.8544042501 0.3299932060E-02 0.8567512805 0.3299196288E-02 0.8590983109 0.3298478943E-02 0.8614453413 0.3297780210E-02 0.8637923717 0.3297100256E-02 0.8661394021 0.3296439227E-02 0.8684864325 0.3295797252E-02 0.8708334629 0.3295174440E-02 0.8731804933 0.3294570881E-02 0.8755275237 0.3293986645E-02 0.8778745541 0.3293421785E-02 0.8802215844 0.3292876333E-02 0.8825686148 0.3292350304E-02 0.8849156452 0.3291843695E-02 0.8872626756 0.3291356481E-02 0.8896097060 0.3290888623E-02 0.8919567364 0.3290440061E-02 0.8943037668 0.3290010717E-02 0.8966507972 0.3289600499E-02 0.8989978276 0.3289209293E-02 0.9013448580 0.3288836970E-02 0.9036918884 0.3288483385E-02 0.9060389188 0.3288148374E-02 0.9083859492 0.3287831759E-02 0.9107329796 0.3287533345E-02 0.9130800099 0.3287252923E-02 0.9154270403 0.3286990266E-02 0.9177740707 0.3286745134E-02 0.9201211011 0.3286517273E-02 0.9224681315 0.3286306413E-02 0.9248151619 0.3286112274E-02 0.9271621923 0.3285934559E-02 0.9295092227 0.3285772960E-02 0.9318562531 0.3285627158E-02 0.9342032835 0.3285496819E-02 0.9365503139 0.3285381602E-02 0.9388973443 0.3285281151E-02 0.9412443747 0.3285195103E-02 0.9435914050 0.3285123084E-02 0.9459384354 0.3285064710E-02 0.9482854658 0.3285019589E-02 0.9506324962 0.3284987320E-02 0.9529795266 0.3284967497E-02 0.9553265570 0.3284959703E-02 0.9576735874 0.3284963518E-02 0.9600206178 0.3284978513E-02 0.9623676482 0.3285004255E-02 0.9647146786 0.3285040307E-02 0.9670617090 0.3285086226E-02 0.9694087394 0.3285141566E-02 0.9717557698 0.3285205877E-02 0.9741028002 0.3285278707E-02 0.9764498305 0.3285359602E-02 0.9787968609 0.3285448106E-02 0.9811438913 0.3285543762E-02 0.9834909217 0.3285646113E-02 0.9858379521 0.3285754701E-02 0.9881849825 0.3285869070E-02 0.9905320129 0.3285988764E-02 0.9928790433 0.3286113330E-02 0.9952260737 0.3286242316E-02 0.9975731041 0.3286375273E-02 0.9999201345 0.3286511756E-02 1.002267165 0.3286651323E-02 1.004614195 0.3286793536E-02 1.006961226 0.3286937964E-02 1.009308256 0.3287084178E-02 1.011655286 0.3287231757E-02 1.014002317 0.3287380285E-02 1.016349347 0.3287529355E-02 1.018696378 0.3287678564E-02 1.021043408 0.3287827519E-02 1.023390438 0.3287975833E-02 1.025737469 0.3288123129E-02 1.028084499 0.3288269039E-02 1.030431530 0.3288413202E-02 1.032778560 0.3288555270E-02 1.035125590 0.3288694902E-02 1.037472621 0.3288831768E-02 1.039819651 0.3288965551E-02 1.042166682 0.3289095942E-02 1.044513712 0.3289222644E-02 1.046860742 0.3289345373E-02 1.049207773 0.3289463857E-02 1.051554803 0.3289577833E-02 1.053901834 0.3289687055E-02 1.056248864 0.3289791286E-02 1.058595894 0.3289890304E-02 1.060942925 0.3289983900E-02 1.063289955 0.3290071877E-02 1.065636985 0.3290154053E-02 1.067984016 0.3290230260E-02 1.070331046 0.3290300341E-02 1.072678077 0.3290364157E-02 1.075025107 0.3290421580E-02 1.077372137 0.3290472498E-02 1.079719168 0.3290516813E-02 1.082066198 0.3290554441E-02 1.084413229 0.3290585313E-02 1.086760259 0.3290609373E-02 1.089107289 0.3290626583E-02 1.091454320 0.3290636915E-02 1.093801350 0.3290640359E-02 1.096152861 0.3290619838E-02 1.098504372 0.3290558290E-02 1.100855883 0.3290455755E-02 1.103207394 0.3290312304E-02 1.105558905 0.3290128040E-02 1.107910415 0.3289903092E-02 1.110261926 0.3289637619E-02 1.112613437 0.3289331810E-02 1.114964948 0.3288985883E-02 1.117316459 0.3288600083E-02 1.119667970 0.3288174687E-02 1.122019481 0.3287709996E-02 1.124370992 0.3287206344E-02 1.126722503 0.3286664090E-02 1.129074013 0.3286083620E-02 1.131425524 0.3285465350E-02 1.133777035 0.3284809720E-02 1.136128546 0.3284117200E-02 1.138480057 0.3283388283E-02 1.140831568 0.3282623489E-02 1.143183079 0.3281823363E-02 1.145534590 0.3280988477E-02 1.147886101 0.3280119424E-02 1.150237611 0.3279216824E-02 1.152589122 0.3276233451E-02 1.154940633 0.3272401192E-02 1.157292144 0.3268531963E-02 1.159643655 0.3264624999E-02 1.161995166 0.3260679529E-02 1.164346677 0.3256694781E-02 1.166698188 0.3252669979E-02 1.169049699 0.3248604346E-02 1.171401209 0.3244497104E-02 1.173752720 0.3240347479E-02 1.176104231 0.3236154696E-02 1.178455742 0.3231917988E-02 1.180807253 0.3227636587E-02 1.183158764 0.3223309737E-02 1.185510275 0.3218936683E-02 1.187861786 0.3214516683E-02 1.190213296 0.3210049001E-02 1.192564807 0.3205532910E-02 1.194916318 0.3200967695E-02 1.197267829 0.3196352654E-02 1.199619340 0.3191687095E-02 1.201970851 0.3186970339E-02 1.204322362 0.3182201725E-02 1.206673873 0.3177380603E-02 1.209025384 0.3172506340E-02 1.211376894 0.3167578319E-02 1.213728405 0.3162595943E-02 1.216079916 0.3157558628E-02 1.218431427 0.3152465813E-02 1.220782938 0.3147316955E-02 1.223134449 0.3142111530E-02 1.225485960 0.3136849036E-02 1.227837471 0.3131528991E-02 1.230188982 0.3126150935E-02 1.232540492 0.3120714433E-02 1.234892003 0.3115219069E-02 1.237243514 0.3109664454E-02 1.239595025 0.3104050221E-02 1.241946536 0.3098376029E-02 1.244298047 0.3092641562E-02 1.246649558 0.3086846529E-02 1.249001069 0.3080990666E-02 1.251352580 0.3075073736E-02 1.253704090 0.3069095528E-02 1.256055601 0.3063055861E-02 1.258407112 0.3056954580E-02 1.260758623 0.3050791561E-02 1.263110134 0.3044566706E-02 1.265461645 0.3038279950E-02 1.267813156 0.3031931257E-02 1.270164667 0.3025520621E-02 1.272516177 0.3019048068E-02 1.274867688 0.3012513658E-02 1.277219199 0.3005917480E-02 1.279570710 0.2999259658E-02 1.281922221 0.2992540350E-02 1.284273732 0.2985759749E-02 1.286625243 0.2978918083E-02 1.288976754 0.2972015618E-02 1.291328265 0.2965052656E-02 1.293679775 0.2958029540E-02 1.296031286 0.2950946653E-02 1.298382797 0.2943804422E-02 1.300734308 0.2936603319E-02 1.303085819 0.2929343864E-02 1.305437330 0.2922026629E-02 1.307788841 0.2914652242E-02 1.310140352 0.2907221393E-02 1.312491863 0.2899734843E-02 1.314843373 0.2892193427E-02 1.317194884 0.2884598073E-02 1.319546395 0.2876949812E-02 1.321897906 0.2869249800E-02 1.324249417 0.2861499347E-02 1.326600928 0.2853699949E-02 1.328952439 0.2845853344E-02 1.331303950 0.2837961581E-02 1.333655461 0.2830027123E-02 1.336006971 0.2822052999E-02 1.338358482 0.2814043032E-02 1.340709993 0.2806002187E-02 1.343061504 0.2797937142E-02 1.345413015 0.2789857217E-02 1.347764526 0.2781775997E-02 1.350116037 0.2773714293E-02 1.352467548 0.2765705837E-02 1.354819059 0.2757809013E-02 1.357170569 0.2750132570E-02 1.359522080 0.2742894384E-02 1.361873591 0.2736545968E-02 1.364225102 0.2731904788E-02 1.366576613 0.2729752637E-02 1.368928124 0.2729850675E-02 1.371279635 0.2731301182E-02 1.373631146 0.2733450292E-02 1.375982656 0.2735968336E-02 1.378334167 0.2738695754E-02 1.380685678 0.2741550867E-02 1.383037189 0.2744488745E-02 1.385388700 0.2747482980E-02 1.387740211 0.2750517142E-02 1.390091722 0.2753580506E-02 1.392443233 0.2756665780E-02 1.394794744 0.2759767829E-02 1.397146254 0.2762882927E-02 1.399497765 0.2766008296E-02 1.401849276 0.2769141814E-02 1.404200787 0.2772281825E-02 1.406552298 0.2775427011E-02 1.408903809 0.2778576303E-02 1.411255320 0.2781728818E-02 1.413606831 0.2784883817E-02 1.415958342 0.2788040671E-02 1.418309852 0.2791198834E-02 1.420661363 0.2794357831E-02 1.423012874 0.2797517238E-02 1.425364385 0.2800676675E-02 1.427715896 0.2803835797E-02 1.430067407 0.2806994286E-02 1.432418918 0.2810151847E-02 1.434770429 0.2813308203E-02 1.437121940 0.2816463093E-02 1.439473450 0.2819616268E-02 1.441824961 0.2822767486E-02 1.444176472 0.2825916517E-02 1.446527983 0.2829063134E-02 1.448879494 0.2832207114E-02 1.451231005 0.2835348241E-02 1.453582516 0.2838486296E-02 1.455934027 0.2841621065E-02 1.458285537 0.2844752333E-02 1.460637048 0.2847879884E-02 1.462988559 0.2851003501E-02 1.465340070 0.2854122965E-02 1.467691581 0.2857238056E-02 1.470043092 0.2860348548E-02 1.472394603 0.2863454214E-02 1.474746114 0.2866554820E-02 1.477097625 0.2869650130E-02 1.479449135 0.2872739900E-02 1.481800646 0.2875823884E-02 1.484152157 0.2878901827E-02 1.486503668 0.2881973469E-02 1.488855179 0.2885038542E-02 1.491206690 0.2888096770E-02 1.493558201 0.2891147874E-02 1.495909712 0.2894191561E-02 1.498261223 0.2897227533E-02 1.500612733 0.2900255483E-02 1.502964244 0.2903275096E-02 1.505315755 0.2906286046E-02 1.507667266 0.2909287999E-02 1.510018777 0.2912280610E-02 1.512370288 0.2915263525E-02 1.514721799 0.2918236380E-02 1.517073310 0.2921198800E-02 1.519424821 0.2924150400E-02 1.521776331 0.2927090784E-02 1.524127842 0.2930019547E-02 1.526479353 0.2932936269E-02 1.528830864 0.2935840523E-02 1.531182375 0.2938731867E-02 1.533533886 0.2941609852E-02 1.535885397 0.2944474014E-02 1.538236908 0.2947323878E-02 1.540588418 0.2950158958E-02 1.542939929 0.2952978755E-02 1.545291440 0.2955782759E-02 1.547642951 0.2958570447E-02 1.549994462 0.2961341282E-02 1.552345973 0.2964094716E-02 1.554697484 0.2966830188E-02 1.557048995 0.2969547121E-02 1.559400506 0.2972244925E-02 1.561752016 0.2974922995E-02 1.564103527 0.2977580711E-02 1.566455038 0.2980217436E-02 1.568806549 0.2982832515E-02 1.571158060 0.2985425276E-02 1.573509571 0.2987995025E-02 1.575861082 0.2990541048E-02 1.578212593 0.2993062607E-02 1.580564104 0.2995558938E-02 1.582915614 0.2998029248E-02 1.585267125 0.3000472714E-02 1.587618636 0.3002888477E-02 1.589970147 0.3005275640E-02 1.592321658 0.3007633262E-02 1.594673169 0.3009960351E-02 1.597024680 0.3012255861E-02 1.599376191 0.3014518682E-02 1.601727702 0.3016747632E-02 1.604079212 0.3018941447E-02 1.606430723 0.3021098767E-02 1.608782234 0.3023218126E-02 1.611133745 0.3025297931E-02 1.613485256 0.3027336445E-02 1.615836767 0.3029331766E-02 1.618188278 0.3030105283E-02 1.620539789 0.3027360429E-02 1.622891299 0.3024562842E-02 1.625242810 0.3021712298E-02 1.627594321 0.3018808614E-02 1.629945832 0.3015851646E-02 1.632297343 0.3012841290E-02 1.634648854 0.3009777486E-02 1.637000365 0.3006660216E-02 1.639351876 0.3003489509E-02 1.641703387 0.3000265435E-02 1.644054897 0.2996988115E-02 1.646406408 0.2993657713E-02 1.648757919 0.2990274444E-02 1.651109430 0.2986838570E-02 1.653460941 0.2983350406E-02 1.655812452 0.2979810315E-02 1.658163963 0.2976218712E-02 1.660515474 0.2972576065E-02 1.662866985 0.2968882896E-02 1.665218495 0.2965139779E-02 1.667570006 0.2961347345E-02 1.669921517 0.2957506279E-02 1.672273028 0.2953617322E-02 1.674624539 0.2949681271E-02 1.676976050 0.2945698982E-02 1.679327561 0.2941671368E-02 1.681679072 0.2937599399E-02 1.684030583 0.2933484107E-02 1.686382093 0.2929326579E-02 1.688733604 0.2925127966E-02 1.691085115 0.2920889475E-02 1.693436626 0.2916612376E-02 1.695788137 0.2912297999E-02 1.698139648 0.2907947735E-02 1.700491159 0.2903563034E-02 1.702842670 0.2899145411E-02 1.705194180 0.2894696439E-02 1.707545691 0.2890217753E-02 1.709897202 0.2885711051E-02 1.712248713 0.2881178090E-02 1.714600224 0.2876620690E-02 1.716951735 0.2872040730E-02 1.719303246 0.2867440151E-02 1.721654757 0.2862820953E-02 1.724006268 0.2858185198E-02 1.726357778 0.2853535006E-02 1.728709289 0.2848872556E-02 1.731060800 0.2844200085E-02 1.733412311 0.2839519888E-02 1.735763822 0.2834834318E-02 1.738115333 0.2830145781E-02 1.740466844 0.2825456742E-02 1.742818355 0.2820769716E-02 1.745169866 0.2816087273E-02 1.747521376 0.2811412034E-02 1.749872887 0.2806746669E-02 1.752224398 0.2802093899E-02 1.754575909 0.2797456490E-02 1.756927420 0.2792837254E-02 1.759278931 0.2788239046E-02 1.761630442 0.2783664764E-02 1.763981953 0.2779117342E-02 1.766333464 0.2774599755E-02 1.768684974 0.2770115010E-02 1.771036485 0.2765666147E-02 1.773387996 0.2761256235E-02 1.775739507 0.2756888371E-02 1.778091018 0.2752565674E-02 1.780442529 0.2748291284E-02 1.782794040 0.2744068357E-02 1.785145551 0.2739900065E-02 1.787497061 0.2735789589E-02 1.789848572 0.2731740115E-02 1.792200083 0.2727754831E-02 1.794551594 0.2723836926E-02 1.796903105 0.2719989581E-02 1.799254616 0.2716215965E-02 1.801606127 0.2712519233E-02 1.803957638 0.2708902522E-02 1.806309149 0.2705368941E-02 1.808660659 0.2701921571E-02 1.811012170 0.2698563458E-02 1.813363681 0.2695297607E-02 1.815715192 0.2692126980E-02 1.818066703 0.2689054484E-02 1.820418214 0.2686082975E-02 1.822769725 0.2683215243E-02 1.825121236 0.2680454013E-02 1.827472747 0.2677801937E-02 1.829824257 0.2675261588E-02 1.832175768 0.2672835455E-02 1.834527279 0.2670525940E-02 1.836878790 0.2668335347E-02 1.839230301 0.2666265884E-02 1.841581812 0.2664319650E-02 1.843933323 0.2662498638E-02 1.846284834 0.2660804723E-02 1.848636345 0.2659239662E-02 1.850987855 0.2657805088E-02 1.853339366 0.2656502507E-02 1.855690877 0.2655333292E-02 1.858042388 0.2654298682E-02 1.860393899 0.2653399775E-02 1.862745410 0.2652637532E-02 1.865096921 0.2652012765E-02 1.867448432 0.2651526143E-02 1.869799942 0.2651178186E-02 1.872151453 0.2650969266E-02 1.874502964 0.2650899602E-02 1.876849995 0.2650931253E-02 1.879197025 0.2651026179E-02 1.881544055 0.2651184292E-02 1.883891086 0.2651405447E-02 1.886238116 0.2651689440E-02 1.888585147 0.2652036012E-02 1.890932177 0.2652444845E-02 1.893279207 0.2652915564E-02 1.895626238 0.2653447738E-02 1.897973268 0.2654040880E-02 1.900320299 0.2654694448E-02 1.902667329 0.2655407845E-02 1.905014359 0.2656180420E-02 1.907361390 0.2657011470E-02 1.909708420 0.2657900239E-02 1.912055451 0.2658845918E-02 1.914402481 0.2659847651E-02 1.916749511 0.2660904529E-02 1.919096542 0.2662015598E-02 1.921443572 0.2663179853E-02 1.923790603 0.2664396248E-02 1.926137633 0.2665663687E-02 1.928484663 0.2666981034E-02 1.930831694 0.2668347109E-02 1.933178724 0.2669760693E-02 1.935525754 0.2671220525E-02 1.937872785 0.2672725308E-02 1.940219815 0.2674273708E-02 1.942566846 0.2675864356E-02 1.944913876 0.2677495848E-02 1.947260906 0.2679166750E-02 1.949607937 0.2680875598E-02 1.951954967 0.2682620896E-02 1.954301998 0.2684401124E-02 1.956649028 0.2686214736E-02 1.958996058 0.2688060162E-02 1.961343089 0.2689935808E-02 1.963690119 0.2691840062E-02 1.966037150 0.2693771292E-02 1.968384180 0.2695727849E-02 1.970731210 0.2697708069E-02 1.973078241 0.2699710274E-02 1.975425271 0.2701732773E-02 1.977772302 0.2703773868E-02 1.980119332 0.2705831849E-02 1.982466362 0.2707905000E-02 1.984813393 0.2709991601E-02 1.987160423 0.2712089927E-02 1.989507454 0.2714198251E-02 1.991854484 0.2716314848E-02 1.994201514 0.2718437993E-02 1.996548545 0.2720565962E-02 1.998895575 0.2722697040E-02 2.001242605 0.2724829514E-02 2.003589636 0.2726961681E-02 2.005936666 0.2729091848E-02 2.008283697 0.2731218330E-02 2.010630727 0.2733339458E-02 2.012977757 0.2735453574E-02 2.015324788 0.2737559035E-02 2.017671818 0.2739654218E-02 2.020018849 0.2741737515E-02 2.022365879 0.2743807338E-02 2.024712909 0.2745862119E-02 2.027059940 0.2747900315E-02 2.029406970 0.2749920403E-02 2.031754001 0.2751920886E-02 2.034101031 0.2753900293E-02 2.036448061 0.2755857179E-02 2.038795092 0.2757790127E-02 2.041142122 0.2759697751E-02 2.043489153 0.2761578692E-02 2.045836183 0.2763431626E-02 2.048183213 0.2765255257E-02 2.050530244 0.2767048327E-02 2.052877274 0.2768809607E-02 2.055224304 0.2770537908E-02 2.057571335 0.2772232073E-02 2.059918365 0.2773890984E-02 2.062265396 0.2775513559E-02 2.064612426 0.2777098756E-02 2.066959456 0.2778645570E-02 2.069306487 0.2780153036E-02 2.071653517 0.2781620232E-02 2.074000548 0.2783046273E-02 2.076347578 0.2784430317E-02 2.078694608 0.2785771565E-02 2.081041639 0.2787069259E-02 2.083388669 0.2788322685E-02 2.085735700 0.2789531172E-02 2.088082730 0.2790694093E-02 2.090429760 0.2791810863E-02 2.092776791 0.2792880946E-02 2.095123821 0.2793903845E-02 2.097470852 0.2794879113E-02 2.099817882 0.2795806345E-02 2.102164912 0.2796685183E-02 2.104511943 0.2797515314E-02 2.106858973 0.2798296470E-02 2.109206004 0.2799028429E-02 2.111553034 0.2799711014E-02 2.113900064 0.2800344096E-02 2.116247095 0.2800927589E-02 2.118594125 0.2801461454E-02 2.120941155 0.2801945697E-02 2.123288186 0.2802380370E-02 2.125635216 0.2802765568E-02 2.127982247 0.2803101433E-02 2.130329277 0.2803388152E-02 2.132676307 0.2803625955E-02 2.135023338 0.2803815117E-02 2.137370368 0.2803955955E-02 2.139717399 0.2804048832E-02 2.142064429 0.2804094151E-02 2.144411459 0.2804092361E-02 2.146758490 0.2804043951E-02 2.149105520 0.2803949450E-02 2.151452551 0.2803809431E-02 2.153799581 0.2803624505E-02 2.156146611 0.2803395325E-02 2.158493642 0.2803122580E-02 2.160840672 0.2802807000E-02 2.163187703 0.2802449352E-02 2.165534733 0.2802050440E-02 2.167881763 0.2801611104E-02 2.170228794 0.2801132220E-02 2.172575824 0.2800614697E-02 2.174922855 0.2800059479E-02 2.177269885 0.2799467542E-02 2.179616915 0.2798839896E-02 2.181963946 0.2798177580E-02 2.184310976 0.2797481662E-02 2.186658006 0.2796753240E-02 2.189005037 0.2795993442E-02 2.191352067 0.2795203420E-02 2.193699098 0.2794384352E-02 2.196046128 0.2793537442E-02 2.198393158 0.2792663916E-02 2.200740189 0.2791765024E-02 2.203087219 0.2790842035E-02 2.205434250 0.2789896238E-02 2.207781280 0.2788928944E-02 2.210128310 0.2787941477E-02 2.212475341 0.2786935180E-02 2.214822371 0.2785911408E-02 2.217169402 0.2784871533E-02 2.219516432 0.2783816936E-02 2.221863462 0.2782749011E-02 2.224210493 0.2781669159E-02 2.226557523 0.2780578791E-02 2.228904554 0.2779479324E-02 2.231251584 0.2778372179E-02 2.233598614 0.2777258782E-02 2.235945645 0.2776140561E-02 2.238292675 0.2775018945E-02 2.240639706 0.2773895360E-02 2.242986736 0.2772771234E-02 2.245333766 0.2771647987E-02 2.247680797 0.2770527038E-02 2.250027827 0.2769409796E-02 2.252374857 0.2768297664E-02 2.254721888 0.2767192034E-02 2.257068918 0.2766094289E-02 2.259415949 0.2765005798E-02 2.261762979 0.2763927915E-02 2.264110009 0.2762861982E-02 2.266457040 0.2761809321E-02 2.268804070 0.2760771236E-02 2.271151101 0.2759749013E-02 2.273498131 0.2758743915E-02 2.275845161 0.2757757185E-02 2.278192192 0.2756790039E-02 2.280539222 0.2755843669E-02 2.282886253 0.2754919241E-02 2.285233283 0.2754017893E-02 2.287580313 0.2753140734E-02 2.289927344 0.2752288840E-02 2.292274374 0.2751463259E-02 2.294621405 0.2750665004E-02 2.296968435 0.2749895055E-02 2.299315465 0.2749154355E-02 2.301662496 0.2748443814E-02 2.304009526 0.2747764301E-02 2.306356557 0.2747116650E-02 2.308703587 0.2746501653E-02 2.311050617 0.2745920065E-02 2.313397648 0.2745372596E-02 2.315744678 0.2744859917E-02 2.318091708 0.2744382655E-02 2.320438739 0.2743941395E-02 2.322785769 0.2743536676E-02 2.325132800 0.2743168993E-02 2.327479830 0.2742838796E-02 2.329826860 0.2742546489E-02 2.332173891 0.2742292430E-02 2.334520921 0.2742076929E-02 2.336867952 0.2741900249E-02 2.339214982 0.2741762607E-02 2.341562012 0.2741664171E-02 2.343909043 0.2741605061E-02 2.346256073 0.2741585349E-02 0.000000000 0.2650899602E-02 0.2347351854E-02 0.2651019460E-02 0.4694703708E-02 0.2651378930E-02 0.7042055561E-02 0.2651977700E-02 0.9389407415E-02 0.2652815247E-02 0.1173675927E-01 0.2653890845E-02 0.1408411112E-01 0.2655203560E-02 0.1643146298E-01 0.2656752259E-02 0.1877881483E-01 0.2658535607E-02 0.2112616668E-01 0.2660552072E-02 0.2347351854E-01 0.2662799931E-02 0.2582087039E-01 0.2665277271E-02 0.2816822225E-01 0.2667981996E-02 0.3051557410E-01 0.2670911830E-02 0.3286292595E-01 0.2674064323E-02 0.3521027781E-01 0.2677436857E-02 0.3755762966E-01 0.2681026650E-02 0.3990498151E-01 0.2684830765E-02 0.4225233337E-01 0.2688846115E-02 0.4459968522E-01 0.2693069468E-02 0.4694703708E-01 0.2697497456E-02 0.4929438893E-01 0.2702126580E-02 0.5164174078E-01 0.2706953218E-02 0.5398909264E-01 0.2711973633E-02 0.5633644449E-01 0.2717183978E-02 0.5868379634E-01 0.2722580303E-02 0.6103114820E-01 0.2728158564E-02 0.6337850005E-01 0.2733914628E-02 0.6572585191E-01 0.2739844283E-02 0.6807320376E-01 0.2745943241E-02 0.7042055561E-01 0.2752207147E-02 0.7276790747E-01 0.2758631585E-02 0.7511525932E-01 0.2765212085E-02 0.7746261117E-01 0.2771944131E-02 0.7980996303E-01 0.2778823162E-02 0.8215731488E-01 0.2785844585E-02 0.8450466674E-01 0.2793003774E-02 0.8685201859E-01 0.2800296082E-02 0.8919937044E-01 0.2807716842E-02 0.9154672230E-01 0.2815261375E-02 0.9389407415E-01 0.2822924991E-02 0.9624142601E-01 0.2830703000E-02 0.9858877786E-01 0.2838590712E-02 0.1009361297 0.2846583442E-02 0.1032834816 0.2854676515E-02 0.1056308334 0.2862865272E-02 0.1079781853 0.2871145070E-02 0.1103255371 0.2879511286E-02 0.1126728890 0.2887959325E-02 0.1150202408 0.2896484618E-02 0.1173675927 0.2905082625E-02 0.1197149445 0.2913748843E-02 0.1220622964 0.2922478804E-02 0.1244096483 0.2931268077E-02 0.1267570001 0.2940112274E-02 0.1291043520 0.2949007049E-02 0.1314517038 0.2957948101E-02 0.1337990557 0.2966931176E-02 0.1361464075 0.2975952068E-02 0.1384937594 0.2985006621E-02 0.1408411112 0.2994090731E-02 0.1431884631 0.3003200345E-02 0.1455358149 0.3012331465E-02 0.1478831668 0.3021480146E-02 0.1502305186 0.3030642500E-02 0.1525778705 0.3039814695E-02 0.1549252223 0.3048992956E-02 0.1572725742 0.3058173566E-02 0.1596199261 0.3067352865E-02 0.1619672779 0.3076527252E-02 0.1643146298 0.3085693188E-02 0.1666619816 0.3094847189E-02 0.1690093335 0.3103985834E-02 0.1713566853 0.3113105761E-02 0.1737040372 0.3112318394E-02 0.1760513890 0.3111119137E-02 0.1783987409 0.3109886222E-02 0.1807460927 0.3108619123E-02 0.1830934446 0.3107317321E-02 0.1854407964 0.3105980295E-02 0.1877881483 0.3104607532E-02 0.1901355002 0.3103198520E-02 0.1924828520 0.3101752751E-02 0.1948302039 0.3100269724E-02 0.1971775557 0.3098748937E-02 0.1995249076 0.3097189899E-02 0.2018722594 0.3095592118E-02 0.2042196113 0.3093955112E-02 0.2065669631 0.3092278400E-02 0.2089143150 0.3090561510E-02 0.2112616668 0.3088803973E-02 0.2136090187 0.3087005329E-02 0.2159563705 0.3085165120E-02 0.2183037224 0.3083282898E-02 0.2206510743 0.3081358219E-02 0.2229984261 0.3079390647E-02 0.2253457780 0.3077379753E-02 0.2276931298 0.3075325115E-02 0.2300404817 0.3073226317E-02 0.2323878335 0.3071082952E-02 0.2347351854 0.3072432418E-02 0.2370825372 0.3076417270E-02 0.2394298891 0.3080338772E-02 0.2417772409 0.3084196542E-02 0.2441245928 0.3087990255E-02 0.2464719446 0.3091719642E-02 0.2488192965 0.3095384488E-02 0.2511666484 0.3098984632E-02 0.2535140002 0.3102519971E-02 0.2558613521 0.3105990456E-02 0.2582087039 0.3109396093E-02 0.2605560558 0.3112736944E-02 0.2629034076 0.3116013126E-02 0.2652507595 0.3119224811E-02 0.2675981113 0.3122372226E-02 0.2699454632 0.3125455656E-02 0.2722928150 0.3128475437E-02 0.2746401669 0.3131431963E-02 0.2769875187 0.3134325683E-02 0.2793348706 0.3137157099E-02 0.2816822225 0.3139926770E-02 0.2840295743 0.3142635308E-02 0.2863769262 0.3145283380E-02 0.2887242780 0.3147871707E-02 0.2910716299 0.3150401065E-02 0.2934189817 0.3152872282E-02 0.2957663336 0.3155286241E-02 0.2981136854 0.3157643876E-02 0.3004610373 0.3159946174E-02 0.3028083891 0.3162194175E-02 0.3051557410 0.3164388969E-02 0.3075030928 0.3166531697E-02 0.3098504447 0.3168623550E-02 0.3121977966 0.3170665770E-02 0.3145451484 0.3172659643E-02 0.3168925003 0.3174606508E-02 0.3192398521 0.3176507746E-02 0.3215872040 0.3178364785E-02 0.3239345558 0.3180179097E-02 0.3262819077 0.3181952197E-02 0.3286292595 0.3183685642E-02 0.3309766114 0.3185381028E-02 0.3333239632 0.3187039989E-02 0.3356713151 0.3188664195E-02 0.3380186669 0.3190255354E-02 0.3403660188 0.3191815202E-02 0.3427133707 0.3193345510E-02 0.3450607225 0.3194848073E-02 0.3474080744 0.3196324716E-02 0.3497554262 0.3197777284E-02 0.3521027781 0.3199207646E-02 0.3544501299 0.3200617685E-02 0.3567974818 0.3202009303E-02 0.3591448336 0.3203384412E-02 0.3614921855 0.3204744931E-02 0.3638395373 0.3206092789E-02 0.3661868892 0.3207429913E-02 0.3685342410 0.3208758229E-02 0.3708815929 0.3210079660E-02 0.3732289448 0.3211396116E-02 0.3755762966 0.3212709498E-02 0.3779236485 0.3214021686E-02 0.3802710003 0.3215334542E-02 0.3826183522 0.3216649901E-02 0.3849657040 0.3217969568E-02 0.3873130559 0.3219295314E-02 0.3896604077 0.3220628874E-02 0.3920077596 0.3221971937E-02 0.3943551114 0.3223326147E-02 0.3967024633 0.3224693097E-02 0.3990498151 0.3226074324E-02 0.4013971670 0.3227471303E-02 0.4037445189 0.3228885450E-02 0.4060918707 0.3230318109E-02 0.4084392226 0.3231770553E-02 0.4107865744 0.3233243980E-02 0.4131339263 0.3234739510E-02 0.4154812781 0.3236258177E-02 0.4178286300 0.3237800934E-02 0.4201759818 0.3239368640E-02 0.4225233337 0.3240962067E-02 0.4248706855 0.3242581891E-02 0.4272180374 0.3244228691E-02 0.4295653892 0.3245902951E-02 0.4319127411 0.3247605051E-02 0.4342600929 0.3249335275E-02 0.4366074448 0.3251093802E-02 0.4389547967 0.3252880710E-02 0.4413021485 0.3254695974E-02 0.4436495004 0.3256539466E-02 0.4459968522 0.3258410957E-02 0.4483442041 0.3260310115E-02 0.4506915559 0.3262236509E-02 0.4530389078 0.3264189609E-02 0.4553862596 0.3266168788E-02 0.4577336115 0.3268173322E-02 0.4600809633 0.3270202395E-02 0.4624283152 0.3272255104E-02 0.4647756670 0.3274330452E-02 0.4671230189 0.3276427365E-02 0.4694703708 0.3278544681E-02 0.4718177226 0.3280681166E-02 0.4741650745 0.3282835508E-02 0.4765124263 0.3285006327E-02 0.4788597782 0.3287192177E-02 0.4812071300 0.3289391549E-02 0.4835544819 0.3291602877E-02 0.4859018337 0.3293824540E-02 0.4882491856 0.3296054869E-02 0.4905965374 0.3298292149E-02 0.4929438893 0.3300534624E-02 0.4952912411 0.3302780504E-02 0.4976385930 0.3305027963E-02 0.4999859449 0.3307275150E-02 0.5023332967 0.3309520190E-02 0.5046806486 0.3311761187E-02 0.5070280004 0.3313996231E-02 0.5093753523 0.3316223400E-02 0.5117227041 0.3318440763E-02 0.5140700560 0.3320646387E-02 0.5164174078 0.3322838338E-02 0.5187647597 0.3325014685E-02 0.5211121115 0.3327173503E-02 0.5234594634 0.3329312877E-02 0.5258068152 0.3331430906E-02 0.5281541671 0.3333525702E-02 0.5305015190 0.3335595400E-02 0.5328488708 0.3337638151E-02 0.5351962227 0.3339652134E-02 0.5375435745 0.3341635553E-02 0.5398909264 0.3343586640E-02 0.5422382782 0.3345503658E-02 0.5445856301 0.3347384903E-02 0.5469329819 0.3349228705E-02 0.5492803338 0.3351033430E-02 0.5516276856 0.3352797483E-02 0.5539750375 0.3354519308E-02 0.5563223893 0.3356197391E-02 0.5586697412 0.3357830259E-02 0.5610170931 0.3359416482E-02 0.5633644449 0.3360954677E-02 0.5657117968 0.3362443504E-02 0.5680591486 0.3363881672E-02 0.5704065005 0.3365267936E-02 0.5727538523 0.3366601101E-02 0.5751012042 0.3367880018E-02 0.5774485560 0.3369103592E-02 0.5797959079 0.3370270775E-02 0.5821432597 0.3371380572E-02 0.5844906116 0.3372432038E-02 0.5868379634 0.3373424282E-02 0.5891853153 0.3371764088E-02 0.5915326672 0.3367417851E-02 0.5938800190 0.3363057285E-02 0.5962273709 0.3358684733E-02 0.5985747227 0.3354303464E-02 0.6009220746 0.3349918171E-02 0.6032694264 0.3345535814E-02 0.6056167783 0.3341167092E-02 0.6079641301 0.3336829195E-02 0.6103114820 0.3332551226E-02 0.6126588338 0.3328385659E-02 0.6150061857 0.3324434231E-02 0.6173535375 0.3320908381E-02 0.6197008894 0.3318252269E-02 0.6220482413 0.3317208701E-02 0.6243952716 0.3317200774E-02 0.6267423020 0.3317209016E-02 0.6290893324 0.3317233434E-02 0.6314363628 0.3317274018E-02 0.6337833932 0.3317330750E-02 0.6361304236 0.3317403598E-02 0.6384774540 0.3317492519E-02 0.6408244844 0.3317597458E-02 0.6431715148 0.3317718348E-02 0.6455185452 0.3317855109E-02 0.6478655756 0.3318007652E-02 0.6502126060 0.3318175874E-02 0.6525596364 0.3318359661E-02 0.6549066668 0.3318558888E-02 0.6572536971 0.3318773417E-02 0.6596007275 0.3319003102E-02 0.6619477579 0.3319247783E-02 0.6642947883 0.3319507289E-02 0.6666418187 0.3319781440E-02 0.6689888491 0.3320070043E-02 0.6713358795 0.3320372897E-02 0.6736829099 0.3320689787E-02 0.6760299403 0.3321020492E-02 0.6783769707 0.3321364778E-02 0.6807240011 0.3321722403E-02 0.6830710315 0.3322093115E-02 0.6854180619 0.3322476651E-02 0.6877650922 0.3322872741E-02 0.6901121226 0.3323281105E-02 0.6924591530 0.3323701456E-02 0.6948061834 0.3324133496E-02 0.6971532138 0.3324576922E-02 0.6995002442 0.3325031421E-02 0.7018472746 0.3325496673E-02 0.7041943050 0.3325972351E-02 0.7065413354 0.3326458122E-02 0.7088883658 0.3326953645E-02 0.7112353962 0.3327458573E-02 0.7135824266 0.3327972554E-02 0.7159294570 0.3328495229E-02 0.7182764874 0.3329026236E-02 0.7206235177 0.3329565205E-02 0.7229705481 0.3330111764E-02 0.7253175785 0.3330665535E-02 0.7276646089 0.3331226137E-02 0.7300116393 0.3331793186E-02 0.7323586697 0.3332366293E-02 0.7347057001 0.3332945067E-02 0.7370527305 0.3333529116E-02 0.7393997609 0.3334118044E-02 0.7417467913 0.3334711454E-02 0.7440938217 0.3335308947E-02 0.7464408521 0.3335910123E-02 0.7487878825 0.3336514583E-02 0.7511349128 0.3337121926E-02 0.7534819432 0.3337731751E-02 0.7558289736 0.3338343659E-02 0.7581760040 0.3338957249E-02 0.7605230344 0.3339572125E-02 0.7628700648 0.3339071677E-02 0.7652170952 0.3337941429E-02 0.7675641256 0.3336810113E-02 0.7699111560 0.3335678426E-02 0.7722581864 0.3334547062E-02 0.7746052168 0.3333416711E-02 0.7769522472 0.3332288057E-02 0.7792992776 0.3331161778E-02 0.7816463080 0.3330038547E-02 0.7839933383 0.3328919029E-02 0.7863403687 0.3327803881E-02 0.7886873991 0.3326693755E-02 0.7910344295 0.3325589291E-02 0.7933814599 0.3324491122E-02 0.7957284903 0.3323399870E-02 0.7980755207 0.3322316148E-02 0.8004225511 0.3321240557E-02 0.8027695815 0.3320173689E-02 0.8051166119 0.3319116121E-02 0.8074636423 0.3318068421E-02 0.8098106727 0.3317031141E-02 0.8121577031 0.3316004823E-02 0.8145047335 0.3314989994E-02 0.8168517638 0.3313987165E-02 0.8191987942 0.3312996836E-02 0.8215458246 0.3312019490E-02 0.8238928550 0.3311055595E-02 0.8262398854 0.3310105603E-02 0.8285869158 0.3309169951E-02 0.8309339462 0.3308249059E-02 0.8332809766 0.3307343331E-02 0.8356280070 0.3307226067E-02 0.8379750374 0.3307640926E-02 0.8403220678 0.3308064823E-02 0.8426690982 0.3308497703E-02 0.8450161286 0.3308939501E-02 0.8473631589 0.3309390144E-02 0.8497101893 0.3309849552E-02 0.8520572197 0.3310317635E-02 0.8544042501 0.3310794294E-02 0.8567512805 0.3311279425E-02 0.8590983109 0.3311772912E-02 0.8614453413 0.3312274634E-02 0.8637923717 0.3312784460E-02 0.8661394021 0.3313302250E-02 0.8684864325 0.3313827858E-02 0.8708334629 0.3314361129E-02 0.8731804933 0.3314901899E-02 0.8755275237 0.3315449999E-02 0.8778745541 0.3316005248E-02 0.8802215844 0.3316567461E-02 0.8825686148 0.3317136443E-02 0.8849156452 0.3317711993E-02 0.8872626756 0.3318293901E-02 0.8896097060 0.3318881952E-02 0.8919567364 0.3319475921E-02 0.8943037668 0.3320075579E-02 0.8966507972 0.3320680687E-02 0.8989978276 0.3321291003E-02 0.9013448580 0.3321906274E-02 0.9036918884 0.3322526244E-02 0.9060389188 0.3323150650E-02 0.9083859492 0.3323779222E-02 0.9107329796 0.3324411685E-02 0.9130800099 0.3325047759E-02 0.9154270403 0.3325687156E-02 0.9177740707 0.3326329586E-02 0.9201211011 0.3326974752E-02 0.9224681315 0.3327622352E-02 0.9248151619 0.3328272081E-02 0.9271621923 0.3328923627E-02 0.9295092227 0.3329576677E-02 0.9318562531 0.3330230912E-02 0.9342032835 0.3330886009E-02 0.9365503139 0.3331541644E-02 0.9388973443 0.3332197486E-02 0.9412443747 0.3332853205E-02 0.9435914050 0.3333508465E-02 0.9459384354 0.3334162931E-02 0.9482854658 0.3334816263E-02 0.9506324962 0.3335468119E-02 0.9529795266 0.3336118158E-02 0.9553265570 0.3336766034E-02 0.9576735874 0.3337411404E-02 0.9600206178 0.3338053921E-02 0.9623676482 0.3338693238E-02 0.9647146786 0.3339329009E-02 0.9670617090 0.3339960886E-02 0.9694087394 0.3340588523E-02 0.9717557698 0.3341211573E-02 0.9741028002 0.3341829692E-02 0.9764498305 0.3342442535E-02 0.9787968609 0.3343049758E-02 0.9811438913 0.3343651020E-02 0.9834909217 0.3344245983E-02 0.9858379521 0.3344834307E-02 0.9881849825 0.3345415659E-02 0.9905320129 0.3345989706E-02 0.9928790433 0.3346556118E-02 0.9952260737 0.3347114570E-02 0.9975731041 0.3347664738E-02 0.9999201345 0.3348206304E-02 1.002267165 0.3348738952E-02 1.004614195 0.3349262372E-02 1.006961226 0.3349776257E-02 1.009308256 0.3350280305E-02 1.011655286 0.3350774221E-02 1.014002317 0.3351257711E-02 1.016349347 0.3351730492E-02 1.018696378 0.3352192281E-02 1.021043408 0.3352642805E-02 1.023390438 0.3353081794E-02 1.025737469 0.3353508988E-02 1.028084499 0.3353924130E-02 1.030431530 0.3354326972E-02 1.032778560 0.3354717272E-02 1.035125590 0.3355094795E-02 1.037472621 0.3355459313E-02 1.039819651 0.3355810607E-02 1.042166682 0.3356148464E-02 1.044513712 0.3356472680E-02 1.046860742 0.3356783059E-02 1.049207773 0.3357079412E-02 1.051554803 0.3357361559E-02 1.053901834 0.3357629330E-02 1.056248864 0.3357882560E-02 1.058595894 0.3358121097E-02 1.060942925 0.3358344795E-02 1.063289955 0.3358553517E-02 1.065636985 0.3358747136E-02 1.067984016 0.3358925535E-02 1.070331046 0.3359088604E-02 1.072678077 0.3359236244E-02 1.075025107 0.3359368366E-02 1.077372137 0.3359484888E-02 1.079719168 0.3359585741E-02 1.082066198 0.3359670862E-02 1.084413229 0.3359740201E-02 1.086760259 0.3359793715E-02 1.089107289 0.3359831373E-02 1.091454320 0.3359853152E-02 1.093801350 0.3359859041E-02 1.096152861 0.3358276987E-02 1.098504372 0.3355474632E-02 1.100855883 0.3352435200E-02 1.103207394 0.3349308899E-02 1.105558905 0.3346132428E-02 1.107910415 0.3342918551E-02 1.110261926 0.3339672650E-02 1.112613437 0.3336397226E-02 1.114964948 0.3333093463E-02 1.117316459 0.3329761861E-02 1.119667970 0.3326402539E-02 1.122019481 0.3323015377E-02 1.124370992 0.3319600103E-02 1.126722503 0.3316156339E-02 1.129074013 0.3312683626E-02 1.131425524 0.3309181451E-02 1.133777035 0.3305649250E-02 1.136128546 0.3302086427E-02 1.138480057 0.3298492350E-02 1.140831568 0.3294866363E-02 1.143183079 0.3291207790E-02 1.145534590 0.3287515932E-02 1.147886101 0.3283790076E-02 1.150237611 0.3280029495E-02 1.152589122 0.3278281317E-02 1.154940633 0.3277313569E-02 1.157292144 0.3276314266E-02 1.159643655 0.3275284115E-02 1.161995166 0.3274223845E-02 1.164346677 0.3273134206E-02 1.166698188 0.3272015965E-02 1.169049699 0.3270869908E-02 1.171401209 0.3269696840E-02 1.173752720 0.3268497582E-02 1.176104231 0.3267272971E-02 1.178455742 0.3266023859E-02 1.180807253 0.3264751113E-02 1.183158764 0.3263455613E-02 1.185510275 0.3262138252E-02 1.187861786 0.3260799932E-02 1.190213296 0.3259441568E-02 1.192564807 0.3258064083E-02 1.194916318 0.3256668408E-02 1.197267829 0.3255255482E-02 1.199619340 0.3253826249E-02 1.201970851 0.3252381659E-02 1.204322362 0.3250922664E-02 1.206673873 0.3249450221E-02 1.209025384 0.3247965285E-02 1.211376894 0.3246468814E-02 1.213728405 0.3244961764E-02 1.216079916 0.3243445089E-02 1.218431427 0.3241919738E-02 1.220782938 0.3240386658E-02 1.223134449 0.3238846786E-02 1.225485960 0.3237301057E-02 1.227837471 0.3235750393E-02 1.230188982 0.3234195709E-02 1.232540492 0.3232637908E-02 1.234892003 0.3231077882E-02 1.237243514 0.3229516509E-02 1.239595025 0.3227954653E-02 1.241946536 0.3226393163E-02 1.244298047 0.3224832871E-02 1.246649558 0.3223274592E-02 1.249001069 0.3221719123E-02 1.251352580 0.3220167239E-02 1.253704090 0.3218619698E-02 1.256055601 0.3217077234E-02 1.258407112 0.3215540561E-02 1.260758623 0.3214010368E-02 1.263110134 0.3212487322E-02 1.265461645 0.3210972065E-02 1.267813156 0.3209465214E-02 1.270164667 0.3207967361E-02 1.272516177 0.3206479071E-02 1.274867688 0.3205000884E-02 1.277219199 0.3203533311E-02 1.279570710 0.3202076839E-02 1.281922221 0.3200631926E-02 1.284273732 0.3199199001E-02 1.286625243 0.3197778468E-02 1.288976754 0.3196370702E-02 1.291328265 0.3194976051E-02 1.293679775 0.3193594834E-02 1.296031286 0.3192227344E-02 1.298382797 0.3190873847E-02 1.300734308 0.3189534582E-02 1.303085819 0.3188209759E-02 1.305437330 0.3186899565E-02 1.307788841 0.3185604160E-02 1.310140352 0.3184323678E-02 1.312491863 0.3183058229E-02 1.314843373 0.3181807898E-02 1.317194884 0.3180572747E-02 1.319546395 0.3179352815E-02 1.321897906 0.3178148118E-02 1.324249417 0.3176958650E-02 1.326600928 0.3175784386E-02 1.328952439 0.3174625278E-02 1.331303950 0.3173481261E-02 1.333655461 0.3172352250E-02 1.336006971 0.3171238142E-02 1.338358482 0.3170138816E-02 1.340709993 0.3169054136E-02 1.343061504 0.3167983950E-02 1.345413015 0.3166928090E-02 1.347764526 0.3165886374E-02 1.350116037 0.3164858608E-02 1.352467548 0.3163844584E-02 1.354819059 0.3162844081E-02 1.357170569 0.3161856869E-02 1.359522080 0.3160882704E-02 1.361873591 0.3159921334E-02 1.364225102 0.3158972497E-02 1.366576613 0.3158035922E-02 1.368928124 0.3157111329E-02 1.371279635 0.3156198429E-02 1.373631146 0.3155296928E-02 1.375982656 0.3154406522E-02 1.378334167 0.3153526902E-02 1.380685678 0.3152657751E-02 1.383037189 0.3151798747E-02 1.385388700 0.3150949562E-02 1.387740211 0.3150109861E-02 1.390091722 0.3149279305E-02 1.392443233 0.3148457548E-02 1.394794744 0.3147644239E-02 1.397146254 0.3146839024E-02 1.399497765 0.3146041541E-02 1.401849276 0.3145251424E-02 1.404200787 0.3144468302E-02 1.406552298 0.3143691797E-02 1.408903809 0.3142921529E-02 1.411255320 0.3142157108E-02 1.413606831 0.3141398144E-02 1.415958342 0.3140644235E-02 1.418309852 0.3139894978E-02 1.420661363 0.3139149962E-02 1.423012874 0.3138408770E-02 1.425364385 0.3137670976E-02 1.427715896 0.3136936151E-02 1.430067407 0.3136203856E-02 1.432418918 0.3135473646E-02 1.434770429 0.3134745067E-02 1.437121940 0.3134017660E-02 1.439473450 0.3133290953E-02 1.441824961 0.3132564469E-02 1.444176472 0.3131837722E-02 1.446527983 0.3131110215E-02 1.448879494 0.3130381442E-02 1.451231005 0.3129650889E-02 1.453582516 0.3128918030E-02 1.455934027 0.3128182330E-02 1.458285537 0.3127443243E-02 1.460637048 0.3126700211E-02 1.462988559 0.3125952669E-02 1.465340070 0.3125200036E-02 1.467691581 0.3124441722E-02 1.470043092 0.3123677127E-02 1.472394603 0.3122905637E-02 1.474746114 0.3122126627E-02 1.477097625 0.3121339461E-02 1.479449135 0.3120543489E-02 1.481800646 0.3119738053E-02 1.484152157 0.3118922479E-02 1.486503668 0.3118096084E-02 1.488855179 0.3117258172E-02 1.491206690 0.3116408035E-02 1.493558201 0.3115544955E-02 1.495909712 0.3114668202E-02 1.498261223 0.3113777033E-02 1.500612733 0.3112870696E-02 1.502964244 0.3111948430E-02 1.505315755 0.3111009459E-02 1.507667266 0.3110053000E-02 1.510018777 0.3109078261E-02 1.512370288 0.3108084439E-02 1.514721799 0.3107070724E-02 1.517073310 0.3106036295E-02 1.519424821 0.3104980325E-02 1.521776331 0.3103901981E-02 1.524127842 0.3102800420E-02 1.526479353 0.3101674797E-02 1.528830864 0.3100524258E-02 1.531182375 0.3099347946E-02 1.533533886 0.3098145000E-02 1.535885397 0.3096914556E-02 1.538236908 0.3095655747E-02 1.540588418 0.3094367705E-02 1.542939929 0.3093049560E-02 1.545291440 0.3091700443E-02 1.547642951 0.3090319487E-02 1.549994462 0.3088905826E-02 1.552345973 0.3087458595E-02 1.554697484 0.3085976936E-02 1.557048995 0.3084459994E-02 1.559400506 0.3082906920E-02 1.561752016 0.3081316873E-02 1.564103527 0.3079689018E-02 1.566455038 0.3078022532E-02 1.568806549 0.3076316598E-02 1.571158060 0.3074570415E-02 1.573509571 0.3072783189E-02 1.575861082 0.3070954145E-02 1.578212593 0.3069082519E-02 1.580564104 0.3067167564E-02 1.582915614 0.3065208549E-02 1.585267125 0.3063204763E-02 1.587618636 0.3061155512E-02 1.589970147 0.3059060125E-02 1.592321658 0.3056917951E-02 1.594673169 0.3054728362E-02 1.597024680 0.3052490754E-02 1.599376191 0.3050204550E-02 1.601727702 0.3047869196E-02 1.604079212 0.3045484169E-02 1.606430723 0.3043048973E-02 1.608782234 0.3040563143E-02 1.611133745 0.3038026244E-02 1.613485256 0.3035437875E-02 1.615836767 0.3032797665E-02 1.618188278 0.3031281797E-02 1.620539789 0.3033184218E-02 1.622891299 0.3035036444E-02 1.625242810 0.3036835589E-02 1.627594321 0.3038578406E-02 1.629945832 0.3040261231E-02 1.632297343 0.3041879911E-02 1.634648854 0.3043429715E-02 1.637000365 0.3044905240E-02 1.639351876 0.3046300289E-02 1.641703387 0.3047607741E-02 1.644054897 0.3048819390E-02 1.646406408 0.3049925780E-02 1.648757919 0.3050916010E-02 1.651109430 0.3051777533E-02 1.653460941 0.3052495972E-02 1.655812452 0.3053054940E-02 1.658163963 0.3053435948E-02 1.660515474 0.3053618407E-02 1.662866985 0.3053579820E-02 1.665218495 0.3053296223E-02 1.667570006 0.3052742954E-02 1.669921517 0.3051895770E-02 1.672273028 0.3050732302E-02 1.674624539 0.3049233690E-02 1.676976050 0.3047386178E-02 1.679327561 0.3045182366E-02 1.681679072 0.3042621843E-02 1.684030583 0.3039711077E-02 1.686382093 0.3036462580E-02 1.688733604 0.3032893581E-02 1.691085115 0.3029024472E-02 1.693436626 0.3024877310E-02 1.695788137 0.3020474555E-02 1.698139648 0.3015838129E-02 1.700491159 0.3010988794E-02 1.702842670 0.3005945807E-02 1.705194180 0.3000726781E-02 1.707545691 0.2995347690E-02 1.709897202 0.2989822958E-02 1.712248713 0.2984165601E-02 1.714600224 0.2978387384E-02 1.716951735 0.2972498983E-02 1.719303246 0.2966510142E-02 1.721654757 0.2960429809E-02 1.724006268 0.2954266263E-02 1.726357778 0.2948027224E-02 1.728709289 0.2941719947E-02 1.731060800 0.2935351302E-02 1.733412311 0.2928927845E-02 1.735763822 0.2922455873E-02 1.738115333 0.2915941479E-02 1.740466844 0.2909390584E-02 1.742818355 0.2902808984E-02 1.745169866 0.2896202368E-02 1.747521376 0.2889576350E-02 1.749872887 0.2882936485E-02 1.752224398 0.2876288287E-02 1.754575909 0.2869637245E-02 1.756927420 0.2862988829E-02 1.759278931 0.2856348503E-02 1.761630442 0.2849721732E-02 1.763981953 0.2843113985E-02 1.766333464 0.2836530741E-02 1.768684974 0.2829977489E-02 1.771036485 0.2823459732E-02 1.773387996 0.2816982985E-02 1.775739507 0.2810552777E-02 1.778091018 0.2804174648E-02 1.780442529 0.2797854146E-02 1.782794040 0.2791596826E-02 1.785145551 0.2785408244E-02 1.787497061 0.2779293957E-02 1.789848572 0.2773259513E-02 1.792200083 0.2767310451E-02 1.794551594 0.2761452292E-02 1.796903105 0.2755690534E-02 1.799254616 0.2750030644E-02 1.801606127 0.2744478057E-02 1.803957638 0.2739038160E-02 1.806309149 0.2733716291E-02 1.808660659 0.2728517729E-02 1.811012170 0.2723447688E-02 1.813363681 0.2718511303E-02 1.815715192 0.2713713630E-02 1.818066703 0.2709059629E-02 1.820418214 0.2704554163E-02 1.822769725 0.2700201983E-02 1.825121236 0.2696007721E-02 1.827472747 0.2691975884E-02 1.829824257 0.2688110841E-02 1.832175768 0.2684416815E-02 1.834527279 0.2680897878E-02 1.836878790 0.2677557935E-02 1.839230301 0.2674400724E-02 1.841581812 0.2671429801E-02 1.843933323 0.2668648535E-02 1.846284834 0.2666060101E-02 1.848636345 0.2663667470E-02 1.850987855 0.2661473404E-02 1.853339366 0.2659480447E-02 1.855690877 0.2657690924E-02 1.858042388 0.2656106929E-02 1.860393899 0.2654730323E-02 1.862745410 0.2653562729E-02 1.865096921 0.2652605527E-02 1.867448432 0.2651859853E-02 1.869799942 0.2651326593E-02 1.872151453 0.2651006381E-02 1.874502964 0.2650899602E-02 1.876849995 0.2650931253E-02 1.879197025 0.2651026179E-02 1.881544055 0.2651184292E-02 1.883891086 0.2651405447E-02 1.886238116 0.2651689440E-02 1.888585147 0.2652036012E-02 1.890932177 0.2652444845E-02 1.893279207 0.2652915564E-02 1.895626238 0.2653447738E-02 1.897973268 0.2654040880E-02 1.900320299 0.2654694448E-02 1.902667329 0.2655407845E-02 1.905014359 0.2656180420E-02 1.907361390 0.2657011470E-02 1.909708420 0.2657900239E-02 1.912055451 0.2658845918E-02 1.914402481 0.2659847651E-02 1.916749511 0.2660904529E-02 1.919096542 0.2662015598E-02 1.921443572 0.2663179853E-02 1.923790603 0.2664396248E-02 1.926137633 0.2665663687E-02 1.928484663 0.2666981034E-02 1.930831694 0.2668347109E-02 1.933178724 0.2669760693E-02 1.935525754 0.2671220525E-02 1.937872785 0.2672725309E-02 1.940219815 0.2674273708E-02 1.942566846 0.2675864356E-02 1.944913876 0.2677495848E-02 1.947260906 0.2679166750E-02 1.949607937 0.2680875598E-02 1.951954967 0.2682620896E-02 1.954301998 0.2684401124E-02 1.956649028 0.2686214737E-02 1.958996058 0.2688060162E-02 1.961343089 0.2689935808E-02 1.963690119 0.2691840062E-02 1.966037150 0.2693771292E-02 1.968384180 0.2695727849E-02 1.970731210 0.2697708069E-02 1.973078241 0.2699710274E-02 1.975425271 0.2701732774E-02 1.977772302 0.2703773868E-02 1.980119332 0.2705831849E-02 1.982466362 0.2707905000E-02 1.984813393 0.2709991601E-02 1.987160423 0.2712089927E-02 1.989507454 0.2714198252E-02 1.991854484 0.2716314849E-02 1.994201514 0.2718437993E-02 1.996548545 0.2720565962E-02 1.998895575 0.2722697040E-02 2.001242605 0.2724829514E-02 2.003589636 0.2726961681E-02 2.005936666 0.2729091848E-02 2.008283697 0.2731218330E-02 2.010630727 0.2733339458E-02 2.012977757 0.2735453574E-02 2.015324788 0.2737559036E-02 2.017671818 0.2739654218E-02 2.020018849 0.2741737515E-02 2.022365879 0.2743807338E-02 2.024712909 0.2745862120E-02 2.027059940 0.2747900315E-02 2.029406970 0.2749920403E-02 2.031754001 0.2751920886E-02 2.034101031 0.2753900293E-02 2.036448061 0.2755857179E-02 2.038795092 0.2757790127E-02 2.041142122 0.2759697751E-02 2.043489153 0.2761578692E-02 2.045836183 0.2763431626E-02 2.048183213 0.2765255257E-02 2.050530244 0.2767048327E-02 2.052877274 0.2768809607E-02 2.055224304 0.2770537908E-02 2.057571335 0.2772232073E-02 2.059918365 0.2773890984E-02 2.062265396 0.2775513559E-02 2.064612426 0.2777098756E-02 2.066959456 0.2778645570E-02 2.069306487 0.2780153037E-02 2.071653517 0.2781620232E-02 2.074000548 0.2783046273E-02 2.076347578 0.2784430317E-02 2.078694608 0.2785771565E-02 2.081041639 0.2787069259E-02 2.083388669 0.2788322685E-02 2.085735700 0.2789531172E-02 2.088082730 0.2790694093E-02 2.090429760 0.2791810863E-02 2.092776791 0.2792880946E-02 2.095123821 0.2793903845E-02 2.097470852 0.2794879113E-02 2.099817882 0.2795806346E-02 2.102164912 0.2796685184E-02 2.104511943 0.2797515314E-02 2.106858973 0.2798296470E-02 2.109206004 0.2799028429E-02 2.111553034 0.2799711014E-02 2.113900064 0.2800344096E-02 2.116247095 0.2800927589E-02 2.118594125 0.2801461454E-02 2.120941155 0.2801945697E-02 2.123288186 0.2802380370E-02 2.125635216 0.2802765568E-02 2.127982247 0.2803101434E-02 2.130329277 0.2803388153E-02 2.132676307 0.2803625955E-02 2.135023338 0.2803815117E-02 2.137370368 0.2803955955E-02 2.139717399 0.2804048832E-02 2.142064429 0.2804094151E-02 2.144411459 0.2804092362E-02 2.146758490 0.2804043951E-02 2.149105520 0.2803949450E-02 2.151452551 0.2803809431E-02 2.153799581 0.2803624505E-02 2.156146611 0.2803395325E-02 2.158493642 0.2803122580E-02 2.160840672 0.2802807000E-02 2.163187703 0.2802449353E-02 2.165534733 0.2802050441E-02 2.167881763 0.2801611105E-02 2.170228794 0.2801132220E-02 2.172575824 0.2800614697E-02 2.174922855 0.2800059479E-02 2.177269885 0.2799467543E-02 2.179616915 0.2798839896E-02 2.181963946 0.2798177580E-02 2.184310976 0.2797481662E-02 2.186658006 0.2796753241E-02 2.189005037 0.2795993443E-02 2.191352067 0.2795203420E-02 2.193699098 0.2794384352E-02 2.196046128 0.2793537442E-02 2.198393158 0.2792663917E-02 2.200740189 0.2791765024E-02 2.203087219 0.2790842035E-02 2.205434250 0.2789896239E-02 2.207781280 0.2788928944E-02 2.210128310 0.2787941477E-02 2.212475341 0.2786935180E-02 2.214822371 0.2785911408E-02 2.217169402 0.2784871533E-02 2.219516432 0.2783816936E-02 2.221863462 0.2782749011E-02 2.224210493 0.2781669159E-02 2.226557523 0.2780578791E-02 2.228904554 0.2779479324E-02 2.231251584 0.2778372179E-02 2.233598614 0.2777258782E-02 2.235945645 0.2776140561E-02 2.238292675 0.2775018945E-02 2.240639706 0.2773895360E-02 2.242986736 0.2772771234E-02 2.245333766 0.2771647987E-02 2.247680797 0.2770527038E-02 2.250027827 0.2769409796E-02 2.252374857 0.2768297664E-02 2.254721888 0.2767192034E-02 2.257068918 0.2766094289E-02 2.259415949 0.2765005798E-02 2.261762979 0.2763927915E-02 2.264110009 0.2762861982E-02 2.266457040 0.2761809321E-02 2.268804070 0.2760771236E-02 2.271151101 0.2759749013E-02 2.273498131 0.2758743916E-02 2.275845161 0.2757757185E-02 2.278192192 0.2756790039E-02 2.280539222 0.2755843669E-02 2.282886253 0.2754919242E-02 2.285233283 0.2754017894E-02 2.287580313 0.2753140734E-02 2.289927344 0.2752288840E-02 2.292274374 0.2751463259E-02 2.294621405 0.2750665004E-02 2.296968435 0.2749895055E-02 2.299315465 0.2749154355E-02 2.301662496 0.2748443814E-02 2.304009526 0.2747764301E-02 2.306356557 0.2747116650E-02 2.308703587 0.2746501653E-02 2.311050617 0.2745920065E-02 2.313397648 0.2745372596E-02 2.315744678 0.2744859917E-02 2.318091708 0.2744382655E-02 2.320438739 0.2743941395E-02 2.322785769 0.2743536676E-02 2.325132800 0.2743168993E-02 2.327479830 0.2742838796E-02 2.329826860 0.2742546490E-02 2.332173891 0.2742292430E-02 2.334520921 0.2742076929E-02 2.336867952 0.2741900249E-02 2.339214982 0.2741762607E-02 2.341562012 0.2741664171E-02 2.343909043 0.2741605061E-02 2.346256073 0.2741585349E-02 0.000000000 0.3142779369E-02 0.2347351854E-02 0.3142776548E-02 0.4694703708E-02 0.3142768080E-02 0.7042055561E-02 0.3142753944E-02 0.9389407415E-02 0.3142734106E-02 0.1173675927E-01 0.3142708519E-02 0.1408411112E-01 0.3142677122E-02 0.1643146298E-01 0.3142639840E-02 0.1877881483E-01 0.3142596587E-02 0.2112616668E-01 0.3142547260E-02 0.2347351854E-01 0.3142491746E-02 0.2582087039E-01 0.3142429918E-02 0.2816822225E-01 0.3142361635E-02 0.3051557410E-01 0.3142286743E-02 0.3286292595E-01 0.3142205075E-02 0.3521027781E-01 0.3142116454E-02 0.3755762966E-01 0.3142020687E-02 0.3990498151E-01 0.3141917569E-02 0.4225233337E-01 0.3141806885E-02 0.4459968522E-01 0.3141688404E-02 0.4694703708E-01 0.3141561886E-02 0.4929438893E-01 0.3141427079E-02 0.5164174078E-01 0.3141283716E-02 0.5398909264E-01 0.3141131522E-02 0.5633644449E-01 0.3140970210E-02 0.5868379634E-01 0.3140799480E-02 0.6103114820E-01 0.3140619022E-02 0.6337850005E-01 0.3140428517E-02 0.6572585191E-01 0.3140227631E-02 0.6807320376E-01 0.3140016024E-02 0.7042055561E-01 0.3139793344E-02 0.7276790747E-01 0.3139559230E-02 0.7511525932E-01 0.3139313308E-02 0.7746261117E-01 0.3139055200E-02 0.7980996303E-01 0.3138784514E-02 0.8215731488E-01 0.3138500852E-02 0.8450466674E-01 0.3138203805E-02 0.8685201859E-01 0.3137892958E-02 0.8919937044E-01 0.3137567885E-02 0.9154672230E-01 0.3137228155E-02 0.9389407415E-01 0.3136873327E-02 0.9624142601E-01 0.3136502955E-02 0.9858877786E-01 0.3136116582E-02 0.1009361297 0.3135713748E-02 0.1032834816 0.3135293985E-02 0.1056308334 0.3134856818E-02 0.1079781853 0.3134401768E-02 0.1103255371 0.3133928347E-02 0.1126728890 0.3133436065E-02 0.1150202408 0.3132924425E-02 0.1173675927 0.3132392925E-02 0.1197149445 0.3131841060E-02 0.1220622964 0.3131268318E-02 0.1244096483 0.3130674186E-02 0.1267570001 0.3130058146E-02 0.1291043520 0.3129419676E-02 0.1314517038 0.3128758251E-02 0.1337990557 0.3128073345E-02 0.1361464075 0.3127364427E-02 0.1384937594 0.3126630965E-02 0.1408411112 0.3125872425E-02 0.1431884631 0.3125088272E-02 0.1455358149 0.3124277967E-02 0.1478831668 0.3123440974E-02 0.1502305186 0.3122576753E-02 0.1525778705 0.3121684764E-02 0.1549252223 0.3120764467E-02 0.1572725742 0.3119815324E-02 0.1596199261 0.3118836794E-02 0.1619672779 0.3117828338E-02 0.1643146298 0.3116789419E-02 0.1666619816 0.3115719500E-02 0.1690093335 0.3114618045E-02 0.1713566853 0.3113484520E-02 0.1737040372 0.3122203666E-02 0.1760513890 0.3131276309E-02 0.1783987409 0.3140320507E-02 0.1807460927 0.3149333139E-02 0.1830934446 0.3158311143E-02 0.1854407964 0.3167251519E-02 0.1877881483 0.3176151326E-02 0.1901355002 0.3185007682E-02 0.1924828520 0.3193817766E-02 0.1948302039 0.3202578816E-02 0.1971775557 0.3211288131E-02 0.1995249076 0.3219943067E-02 0.2018722594 0.3228541040E-02 0.2042196113 0.3237079525E-02 0.2065669631 0.3245556056E-02 0.2089143150 0.3253968222E-02 0.2112616668 0.3262313675E-02 0.2136090187 0.3270590120E-02 0.2159563705 0.3278795321E-02 0.2183037224 0.3286927101E-02 0.2206510743 0.3294983335E-02 0.2229984261 0.3302961959E-02 0.2253457780 0.3310860962E-02 0.2276931298 0.3318678390E-02 0.2300404817 0.3326412343E-02 0.2323878335 0.3334060977E-02 0.2347351854 0.3341622503E-02 0.2370825372 0.3349095184E-02 0.2394298891 0.3356477340E-02 0.2417772409 0.3363767341E-02 0.2441245928 0.3370963614E-02 0.2464719446 0.3378064635E-02 0.2488192965 0.3385068934E-02 0.2511666484 0.3391975094E-02 0.2535140002 0.3398781749E-02 0.2558613521 0.3405487584E-02 0.2582087039 0.3412091335E-02 0.2605560558 0.3418591789E-02 0.2629034076 0.3424987783E-02 0.2652507595 0.3431278203E-02 0.2675981113 0.3437461987E-02 0.2699454632 0.3443538121E-02 0.2722928150 0.3449505637E-02 0.2746401669 0.3455363621E-02 0.2769875187 0.3461111202E-02 0.2793348706 0.3466747560E-02 0.2816822225 0.3472271920E-02 0.2840295743 0.3477683557E-02 0.2863769262 0.3482981789E-02 0.2887242780 0.3488165983E-02 0.2910716299 0.3493235552E-02 0.2934189817 0.3498189952E-02 0.2957663336 0.3503028687E-02 0.2981136854 0.3507751305E-02 0.3004610373 0.3512357397E-02 0.3028083891 0.3516846599E-02 0.3051557410 0.3521218592E-02 0.3075030928 0.3525473099E-02 0.3098504447 0.3529609886E-02 0.3121977966 0.3533628760E-02 0.3145451484 0.3537529574E-02 0.3168925003 0.3541312220E-02 0.3192398521 0.3544976631E-02 0.3215872040 0.3548522782E-02 0.3239345558 0.3551950688E-02 0.3262819077 0.3555260404E-02 0.3286292595 0.3558452026E-02 0.3309766114 0.3561525687E-02 0.3333239632 0.3564481561E-02 0.3356713151 0.3567319858E-02 0.3380186669 0.3570040828E-02 0.3403660188 0.3572644757E-02 0.3427133707 0.3575131969E-02 0.3450607225 0.3577502824E-02 0.3474080744 0.3579757717E-02 0.3497554262 0.3581897081E-02 0.3521027781 0.3583921381E-02 0.3544501299 0.3585831118E-02 0.3567974818 0.3587626828E-02 0.3591448336 0.3589309078E-02 0.3614921855 0.3590878470E-02 0.3638395373 0.3592335637E-02 0.3661868892 0.3593681245E-02 0.3685342410 0.3594915990E-02 0.3708815929 0.3596040599E-02 0.3732289448 0.3597055830E-02 0.3755762966 0.3597962469E-02 0.3779236485 0.3598761331E-02 0.3802710003 0.3599453260E-02 0.3826183522 0.3600039126E-02 0.3849657040 0.3600519829E-02 0.3873130559 0.3600896291E-02 0.3896604077 0.3601169464E-02 0.3920077596 0.3601340320E-02 0.3943551114 0.3601409859E-02 0.3967024633 0.3601379103E-02 0.3990498151 0.3601249096E-02 0.4013971670 0.3601020905E-02 0.4037445189 0.3600695619E-02 0.4060918707 0.3600274344E-02 0.4084392226 0.3599758209E-02 0.4107865744 0.3599148360E-02 0.4131339263 0.3598445962E-02 0.4154812781 0.3597652197E-02 0.4178286300 0.3596768263E-02 0.4201759818 0.3595795373E-02 0.4225233337 0.3594734755E-02 0.4248706855 0.3593587652E-02 0.4272180374 0.3592355317E-02 0.4295653892 0.3591039018E-02 0.4319127411 0.3589640032E-02 0.4342600929 0.3588159647E-02 0.4366074448 0.3586599159E-02 0.4389547967 0.3584959873E-02 0.4413021485 0.3583243102E-02 0.4436495004 0.3581450163E-02 0.4459968522 0.3579582382E-02 0.4483442041 0.3577641084E-02 0.4506915559 0.3575627601E-02 0.4530389078 0.3573543267E-02 0.4553862596 0.3571389415E-02 0.4577336115 0.3569167381E-02 0.4600809633 0.3566878498E-02 0.4624283152 0.3564524097E-02 0.4647756670 0.3562105508E-02 0.4671230189 0.3559624055E-02 0.4694703708 0.3557081058E-02 0.4718177226 0.3554477830E-02 0.4741650745 0.3551815677E-02 0.4765124263 0.3549095897E-02 0.4788597782 0.3546319779E-02 0.4812071300 0.3543488601E-02 0.4835544819 0.3540603630E-02 0.4859018337 0.3537666120E-02 0.4882491856 0.3534677312E-02 0.4905965374 0.3531638432E-02 0.4929438893 0.3528550690E-02 0.4952912411 0.3525415280E-02 0.4976385930 0.3522233379E-02 0.4999859449 0.3519006145E-02 0.5023332967 0.3515734716E-02 0.5046806486 0.3512420210E-02 0.5070280004 0.3509063723E-02 0.5093753523 0.3505666329E-02 0.5117227041 0.3502229080E-02 0.5140700560 0.3498753003E-02 0.5164174078 0.3495239100E-02 0.5187647597 0.3491688348E-02 0.5211121115 0.3488101697E-02 0.5234594634 0.3484480073E-02 0.5258068152 0.3480824370E-02 0.5281541671 0.3477135458E-02 0.5305015190 0.3473414177E-02 0.5328488708 0.3469661336E-02 0.5351962227 0.3465877719E-02 0.5375435745 0.3462064077E-02 0.5398909264 0.3458221134E-02 0.5422382782 0.3454349581E-02 0.5445856301 0.3450450084E-02 0.5469329819 0.3446523275E-02 0.5492803338 0.3442569762E-02 0.5516276856 0.3438590122E-02 0.5539750375 0.3434584906E-02 0.5563223893 0.3430554638E-02 0.5586697412 0.3426499821E-02 0.5610170931 0.3422420933E-02 0.5633644449 0.3418318435E-02 0.5657117968 0.3414192772E-02 0.5680591486 0.3410044378E-02 0.5704065005 0.3405873683E-02 0.5727538523 0.3401681118E-02 0.5751012042 0.3397467127E-02 0.5774485560 0.3393232182E-02 0.5797959079 0.3388976792E-02 0.5821432597 0.3384701538E-02 0.5844906116 0.3380407093E-02 0.5868379634 0.3376094271E-02 0.5891853153 0.3374356463E-02 0.5915326672 0.3375227794E-02 0.5938800190 0.3376037541E-02 0.5962273709 0.3376785023E-02 0.5985747227 0.3377469613E-02 0.6009220746 0.3378090738E-02 0.6032694264 0.3378647878E-02 0.6056167783 0.3379140569E-02 0.6079641301 0.3379568399E-02 0.6103114820 0.3379931012E-02 0.6126588338 0.3380228107E-02 0.6150061857 0.3380459437E-02 0.6173535375 0.3380624811E-02 0.6197008894 0.3380724089E-02 0.6220482413 0.3380757191E-02 0.6243952716 0.3380769275E-02 0.6267423020 0.3380752364E-02 0.6290893324 0.3380706456E-02 0.6314363628 0.3380631566E-02 0.6337833932 0.3380527732E-02 0.6361304236 0.3380395011E-02 0.6384774540 0.3380233480E-02 0.6408244844 0.3380043237E-02 0.6431715148 0.3379824398E-02 0.6455185452 0.3379577100E-02 0.6478655756 0.3379301501E-02 0.6502126060 0.3378997777E-02 0.6525596364 0.3378666123E-02 0.6549066668 0.3378306756E-02 0.6572536971 0.3377919911E-02 0.6596007275 0.3377505840E-02 0.6619477579 0.3377064816E-02 0.6642947883 0.3376597132E-02 0.6666418187 0.3376103096E-02 0.6689888491 0.3375583038E-02 0.6713358795 0.3375037301E-02 0.6736829099 0.3374466251E-02 0.6760299403 0.3373870269E-02 0.6783769707 0.3373249751E-02 0.6807240011 0.3372605114E-02 0.6830710315 0.3371936788E-02 0.6854180619 0.3371245220E-02 0.6877650922 0.3370530875E-02 0.6901121226 0.3369794229E-02 0.6924591530 0.3369035777E-02 0.6948061834 0.3368256025E-02 0.6971532138 0.3367455497E-02 0.6995002442 0.3366634728E-02 0.7018472746 0.3365794266E-02 0.7041943050 0.3364934674E-02 0.7065413354 0.3364056525E-02 0.7088883658 0.3363160405E-02 0.7112353962 0.3362246912E-02 0.7135824266 0.3361316653E-02 0.7159294570 0.3360370247E-02 0.7182764874 0.3359408322E-02 0.7206235177 0.3358431515E-02 0.7229705481 0.3357440473E-02 0.7253175785 0.3356435850E-02 0.7276646089 0.3355418308E-02 0.7300116393 0.3354388516E-02 0.7323586697 0.3353347150E-02 0.7347057001 0.3352294891E-02 0.7370527305 0.3351232426E-02 0.7393997609 0.3350160447E-02 0.7417467913 0.3349079649E-02 0.7440938217 0.3347990732E-02 0.7464408521 0.3346894397E-02 0.7487878825 0.3345791349E-02 0.7511349128 0.3344682295E-02 0.7534819432 0.3343567941E-02 0.7558289736 0.3342448995E-02 0.7581760040 0.3341326165E-02 0.7605230344 0.3340200157E-02 0.7628700648 0.3340187889E-02 0.7652170952 0.3340804146E-02 0.7675641256 0.3341420505E-02 0.7699111560 0.3342036574E-02 0.7722581864 0.3342651967E-02 0.7746052168 0.3343266300E-02 0.7769522472 0.3343879193E-02 0.7792992776 0.3344490269E-02 0.7816463080 0.3345099156E-02 0.7839933383 0.3345705487E-02 0.7863403687 0.3346308898E-02 0.7886873991 0.3346909032E-02 0.7910344295 0.3347505538E-02 0.7933814599 0.3348098068E-02 0.7957284903 0.3348686283E-02 0.7980755207 0.3349269848E-02 0.8004225511 0.3349848437E-02 0.8027695815 0.3350421729E-02 0.8051166119 0.3350989410E-02 0.8074636423 0.3351551175E-02 0.8098106727 0.3352106725E-02 0.8121577031 0.3352655771E-02 0.8145047335 0.3353198029E-02 0.8168517638 0.3353733226E-02 0.8191987942 0.3354261097E-02 0.8215458246 0.3354781384E-02 0.8238928550 0.3355293840E-02 0.8262398854 0.3355798226E-02 0.8285869158 0.3356294312E-02 0.8309339462 0.3356781879E-02 0.8332809766 0.3357260715E-02 0.8356280070 0.3357730620E-02 0.8379750374 0.3358191403E-02 0.8403220678 0.3358642882E-02 0.8426690982 0.3359084886E-02 0.8450161286 0.3359517255E-02 0.8473631589 0.3359939837E-02 0.8497101893 0.3360352492E-02 0.8520572197 0.3360755089E-02 0.8544042501 0.3361147509E-02 0.8567512805 0.3361529643E-02 0.8590983109 0.3361901391E-02 0.8614453413 0.3362262665E-02 0.8637923717 0.3362613387E-02 0.8661394021 0.3362953490E-02 0.8684864325 0.3363282917E-02 0.8708334629 0.3363601620E-02 0.8731804933 0.3363909565E-02 0.8755275237 0.3364206725E-02 0.8778745541 0.3364493085E-02 0.8802215844 0.3364768640E-02 0.8825686148 0.3365033395E-02 0.8849156452 0.3365287365E-02 0.8872626756 0.3365530575E-02 0.8896097060 0.3365763061E-02 0.8919567364 0.3365984867E-02 0.8943037668 0.3366196048E-02 0.8966507972 0.3366396667E-02 0.8989978276 0.3366586799E-02 0.9013448580 0.3366766526E-02 0.9036918884 0.3366935939E-02 0.9060389188 0.3367095140E-02 0.9083859492 0.3367244238E-02 0.9107329796 0.3367383351E-02 0.9130800099 0.3367512605E-02 0.9154270403 0.3367632134E-02 0.9177740707 0.3367742082E-02 0.9201211011 0.3367842598E-02 0.9224681315 0.3367933839E-02 0.9248151619 0.3368015971E-02 0.9271621923 0.3368089167E-02 0.9295092227 0.3368153603E-02 0.9318562531 0.3368209467E-02 0.9342032835 0.3368256949E-02 0.9365503139 0.3368296247E-02 0.9388973443 0.3368327565E-02 0.9412443747 0.3368351112E-02 0.9435914050 0.3368367101E-02 0.9459384354 0.3368375752E-02 0.9482854658 0.3368377289E-02 0.9506324962 0.3368371940E-02 0.9529795266 0.3368359938E-02 0.9553265570 0.3368341517E-02 0.9576735874 0.3368316919E-02 0.9600206178 0.3368286385E-02 0.9623676482 0.3368250162E-02 0.9647146786 0.3368208498E-02 0.9670617090 0.3368161643E-02 0.9694087394 0.3368109851E-02 0.9717557698 0.3368053376E-02 0.9741028002 0.3367992473E-02 0.9764498305 0.3367927400E-02 0.9787968609 0.3367858414E-02 0.9811438913 0.3367785774E-02 0.9834909217 0.3367709737E-02 0.9858379521 0.3367630562E-02 0.9881849825 0.3367548508E-02 0.9905320129 0.3367463831E-02 0.9928790433 0.3367376787E-02 0.9952260737 0.3367287632E-02 0.9975731041 0.3367196619E-02 0.9999201345 0.3367103998E-02 1.002267165 0.3367010021E-02 1.004614195 0.3366914932E-02 1.006961226 0.3366818977E-02 1.009308256 0.3366722397E-02 1.011655286 0.3366625429E-02 1.014002317 0.3366528308E-02 1.016349347 0.3366431265E-02 1.018696378 0.3366334526E-02 1.021043408 0.3366238313E-02 1.023390438 0.3366142845E-02 1.025737469 0.3366048335E-02 1.028084499 0.3365954991E-02 1.030431530 0.3365863015E-02 1.032778560 0.3365772605E-02 1.035125590 0.3365683953E-02 1.037472621 0.3365597245E-02 1.039819651 0.3365512662E-02 1.042166682 0.3365430377E-02 1.044513712 0.3365350557E-02 1.046860742 0.3365273364E-02 1.049207773 0.3365198951E-02 1.051554803 0.3365127466E-02 1.053901834 0.3365059050E-02 1.056248864 0.3364993835E-02 1.058595894 0.3364931947E-02 1.060942925 0.3364873506E-02 1.063289955 0.3364818620E-02 1.065636985 0.3364767395E-02 1.067984016 0.3364719925E-02 1.070331046 0.3364676299E-02 1.072678077 0.3364636595E-02 1.075025107 0.3364600886E-02 1.077372137 0.3364569235E-02 1.079719168 0.3364541699E-02 1.082066198 0.3364518324E-02 1.084413229 0.3364499151E-02 1.086760259 0.3364484210E-02 1.089107289 0.3364473525E-02 1.091454320 0.3364467110E-02 1.093801350 0.3364464971E-02 1.096152861 0.3366026108E-02 1.098504372 0.3368763186E-02 1.100855883 0.3371692876E-02 1.103207394 0.3374664796E-02 1.105558905 0.3377642001E-02 1.107910415 0.3380611413E-02 1.110261926 0.3383567264E-02 1.112613437 0.3386506601E-02 1.114964948 0.3389427718E-02 1.117316459 0.3392329525E-02 1.119667970 0.3395211250E-02 1.122019481 0.3398072291E-02 1.124370992 0.3400912136E-02 1.126722503 0.3403730317E-02 1.129074013 0.3406526383E-02 1.131425524 0.3409299880E-02 1.133777035 0.3412050344E-02 1.136128546 0.3414777290E-02 1.138480057 0.3417480211E-02 1.140831568 0.3420158572E-02 1.143183079 0.3422811810E-02 1.145534590 0.3425439329E-02 1.147886101 0.3428040508E-02 1.150237611 0.3430614690E-02 1.152589122 0.3433161191E-02 1.154940633 0.3435679296E-02 1.157292144 0.3438168261E-02 1.159643655 0.3440627312E-02 1.161995166 0.3443055650E-02 1.164346677 0.3445452449E-02 1.166698188 0.3447816856E-02 1.169049699 0.3450147999E-02 1.171401209 0.3452444979E-02 1.173752720 0.3454706879E-02 1.176104231 0.3456932762E-02 1.178455742 0.3459121675E-02 1.180807253 0.3461272647E-02 1.183158764 0.3463384697E-02 1.185510275 0.3465456828E-02 1.187861786 0.3467488034E-02 1.190213296 0.3469477303E-02 1.192564807 0.3471423613E-02 1.194916318 0.3473325942E-02 1.197267829 0.3475183262E-02 1.199619340 0.3476994545E-02 1.201970851 0.3478758768E-02 1.204322362 0.3480474908E-02 1.206673873 0.3482141948E-02 1.209025384 0.3483758882E-02 1.211376894 0.3485324711E-02 1.213728405 0.3486838447E-02 1.216079916 0.3488299118E-02 1.218431427 0.3489705768E-02 1.220782938 0.3491057455E-02 1.223134449 0.3492353261E-02 1.225485960 0.3493592287E-02 1.227837471 0.3494773659E-02 1.230188982 0.3495896527E-02 1.232540492 0.3496960068E-02 1.234892003 0.3497963488E-02 1.237243514 0.3498906025E-02 1.239595025 0.3499786948E-02 1.241946536 0.3500605558E-02 1.244298047 0.3501361196E-02 1.246649558 0.3502053235E-02 1.249001069 0.3502681090E-02 1.251352580 0.3503244214E-02 1.253704090 0.3503742102E-02 1.256055601 0.3504174289E-02 1.258407112 0.3504540358E-02 1.260758623 0.3504839933E-02 1.263110134 0.3505072685E-02 1.265461645 0.3505238332E-02 1.267813156 0.3505336640E-02 1.270164667 0.3505367423E-02 1.272516177 0.3505330545E-02 1.274867688 0.3505225920E-02 1.277219199 0.3505053512E-02 1.279570710 0.3504813338E-02 1.281922221 0.3504505465E-02 1.284273732 0.3504130013E-02 1.286625243 0.3503687155E-02 1.288976754 0.3503177117E-02 1.291328265 0.3502600177E-02 1.293679775 0.3501956666E-02 1.296031286 0.3501246969E-02 1.298382797 0.3500471523E-02 1.300734308 0.3499630820E-02 1.303085819 0.3498725402E-02 1.305437330 0.3497755865E-02 1.307788841 0.3496722856E-02 1.310140352 0.3495627075E-02 1.312491863 0.3494469271E-02 1.314843373 0.3493250246E-02 1.317194884 0.3491970847E-02 1.319546395 0.3490631976E-02 1.321897906 0.3489234579E-02 1.324249417 0.3487779649E-02 1.326600928 0.3486268227E-02 1.328952439 0.3484701399E-02 1.331303950 0.3483080293E-02 1.333655461 0.3481406081E-02 1.336006971 0.3479679977E-02 1.338358482 0.3477903233E-02 1.340709993 0.3476077142E-02 1.343061504 0.3474203032E-02 1.345413015 0.3472282268E-02 1.347764526 0.3470316248E-02 1.350116037 0.3468306403E-02 1.352467548 0.3466254194E-02 1.354819059 0.3464161111E-02 1.357170569 0.3462028669E-02 1.359522080 0.3459858411E-02 1.361873591 0.3457651901E-02 1.364225102 0.3455410724E-02 1.366576613 0.3453136483E-02 1.368928124 0.3450830799E-02 1.371279635 0.3448495307E-02 1.373631146 0.3446131654E-02 1.375982656 0.3443741497E-02 1.378334167 0.3441326501E-02 1.380685678 0.3438888336E-02 1.383037189 0.3436428675E-02 1.385388700 0.3433949191E-02 1.387740211 0.3431451555E-02 1.390091722 0.3428937436E-02 1.392443233 0.3426408493E-02 1.394794744 0.3423866378E-02 1.397146254 0.3421312730E-02 1.399497765 0.3418749175E-02 1.401849276 0.3416177319E-02 1.404200787 0.3413598752E-02 1.406552298 0.3411015042E-02 1.408903809 0.3408427730E-02 1.411255320 0.3405838332E-02 1.413606831 0.3403248336E-02 1.415958342 0.3400659195E-02 1.418309852 0.3398072329E-02 1.420661363 0.3395489124E-02 1.423012874 0.3392910922E-02 1.425364385 0.3390339029E-02 1.427715896 0.3387774703E-02 1.430067407 0.3385219158E-02 1.432418918 0.3382673561E-02 1.434770429 0.3380139027E-02 1.437121940 0.3377616619E-02 1.439473450 0.3375107348E-02 1.441824961 0.3372612166E-02 1.444176472 0.3370131968E-02 1.446527983 0.3367667589E-02 1.448879494 0.3365219805E-02 1.451231005 0.3362789326E-02 1.453582516 0.3360376799E-02 1.455934027 0.3357982805E-02 1.458285537 0.3355607858E-02 1.460637048 0.3353252403E-02 1.462988559 0.3350916817E-02 1.465340070 0.3348601406E-02 1.467691581 0.3346306404E-02 1.470043092 0.3344031976E-02 1.472394603 0.3341778212E-02 1.474746114 0.3339545130E-02 1.477097625 0.3337332677E-02 1.479449135 0.3335140722E-02 1.481800646 0.3332969066E-02 1.484152157 0.3330817433E-02 1.486503668 0.3328685475E-02 1.488855179 0.3326572773E-02 1.491206690 0.3324478833E-02 1.493558201 0.3322403091E-02 1.495909712 0.3320344912E-02 1.498261223 0.3318303590E-02 1.500612733 0.3316278352E-02 1.502964244 0.3314268354E-02 1.505315755 0.3312272688E-02 1.507667266 0.3310290380E-02 1.510018777 0.3308320391E-02 1.512370288 0.3306361622E-02 1.514721799 0.3304412913E-02 1.517073310 0.3302473044E-02 1.519424821 0.3300540740E-02 1.521776331 0.3298614671E-02 1.524127842 0.3296693455E-02 1.526479353 0.3294775661E-02 1.528830864 0.3292859809E-02 1.531182375 0.3290944375E-02 1.533533886 0.3289027793E-02 1.535885397 0.3287108457E-02 1.538236908 0.3285184726E-02 1.540588418 0.3283254923E-02 1.542939929 0.3281317343E-02 1.545291440 0.3279370252E-02 1.547642951 0.3277411894E-02 1.549994462 0.3275440489E-02 1.552345973 0.3273454244E-02 1.554697484 0.3271451350E-02 1.557048995 0.3269429991E-02 1.559400506 0.3267388342E-02 1.561752016 0.3265324579E-02 1.564103527 0.3263236880E-02 1.566455038 0.3261123431E-02 1.568806549 0.3258982427E-02 1.571158060 0.3256812083E-02 1.573509571 0.3254610633E-02 1.575861082 0.3252376339E-02 1.578212593 0.3250107494E-02 1.580564104 0.3247802431E-02 1.582915614 0.3245459526E-02 1.585267125 0.3243077208E-02 1.587618636 0.3240653961E-02 1.589970147 0.3238188339E-02 1.592321658 0.3235678968E-02 1.594673169 0.3233124559E-02 1.597024680 0.3230523916E-02 1.599376191 0.3227875948E-02 1.601727702 0.3225179680E-02 1.604079212 0.3222434271E-02 1.606430723 0.3219639023E-02 1.608782234 0.3216793403E-02 1.611133745 0.3213897061E-02 1.613485256 0.3210949855E-02 1.615836767 0.3207951872E-02 1.618188278 0.3204903463E-02 1.620539789 0.3201805274E-02 1.622891299 0.3198658287E-02 1.625242810 0.3195463868E-02 1.627594321 0.3192223820E-02 1.629945832 0.3188940449E-02 1.632297343 0.3185616635E-02 1.634648854 0.3182255925E-02 1.637000365 0.3178862630E-02 1.639351876 0.3175441948E-02 1.641703387 0.3172000100E-02 1.644054897 0.3168544488E-02 1.646406408 0.3165083866E-02 1.648757919 0.3161628541E-02 1.651109430 0.3158190563E-02 1.653460941 0.3154783931E-02 1.655812452 0.3151424753E-02 1.658163963 0.3148131359E-02 1.660515474 0.3144924290E-02 1.662866985 0.3141826108E-02 1.665218495 0.3138860962E-02 1.667570006 0.3136053819E-02 1.669921517 0.3133429342E-02 1.672273028 0.3131010446E-02 1.674624539 0.3128816659E-02 1.676976050 0.3126862528E-02 1.679327561 0.3125156371E-02 1.681679072 0.3123699638E-02 1.684030583 0.3122487034E-02 1.686382093 0.3121507343E-02 1.688733604 0.3120744762E-02 1.691085115 0.3120180454E-02 1.693436626 0.3119794047E-02 1.695788137 0.3119564895E-02 1.698139648 0.3119473022E-02 1.700491159 0.3119499739E-02 1.702842670 0.3119627995E-02 1.705194180 0.3119842511E-02 1.707545691 0.3120129782E-02 1.709897202 0.3120477976E-02 1.712248713 0.3120876803E-02 1.714600224 0.3121317351E-02 1.716951735 0.3121791923E-02 1.719303246 0.3122293885E-02 1.721654757 0.3122817522E-02 1.724006268 0.3123357914E-02 1.726357778 0.3123910822E-02 1.728709289 0.3124472597E-02 1.731060800 0.3125040091E-02 1.733412311 0.3125610593E-02 1.735763822 0.3126181765E-02 1.738115333 0.3126751589E-02 1.740466844 0.3127318328E-02 1.742818355 0.3127880485E-02 1.745169866 0.3128436771E-02 1.747521376 0.3128986080E-02 1.749872887 0.3129527465E-02 1.752224398 0.3130060116E-02 1.754575909 0.3130583344E-02 1.756927420 0.3131096569E-02 1.759278931 0.3131599301E-02 1.761630442 0.3132091134E-02 1.763981953 0.3132571734E-02 1.766333464 0.3133040831E-02 1.768684974 0.3133498211E-02 1.771036485 0.3133943712E-02 1.773387996 0.3134377212E-02 1.775739507 0.3134798632E-02 1.778091018 0.3135207926E-02 1.780442529 0.3135605079E-02 1.782794040 0.3135990101E-02 1.785145551 0.3136363028E-02 1.787497061 0.3136723916E-02 1.789848572 0.3137072838E-02 1.792200083 0.3137409885E-02 1.794551594 0.3137735160E-02 1.796903105 0.3138048777E-02 1.799254616 0.3138350863E-02 1.801606127 0.3138641552E-02 1.803957638 0.3138920982E-02 1.806309149 0.3139189301E-02 1.808660659 0.3139446659E-02 1.811012170 0.3139693209E-02 1.813363681 0.3139929107E-02 1.815715192 0.3140154510E-02 1.818066703 0.3140369575E-02 1.820418214 0.3140574459E-02 1.822769725 0.3140769316E-02 1.825121236 0.3140954301E-02 1.827472747 0.3141129562E-02 1.829824257 0.3141295248E-02 1.832175768 0.3141451501E-02 1.834527279 0.3141598460E-02 1.836878790 0.3141736259E-02 1.839230301 0.3141865025E-02 1.841581812 0.3141984883E-02 1.843933323 0.3142095947E-02 1.846284834 0.3142198329E-02 1.848636345 0.3142292129E-02 1.850987855 0.3142377445E-02 1.853339366 0.3142454364E-02 1.855690877 0.3142522967E-02 1.858042388 0.3142583327E-02 1.860393899 0.3142635507E-02 1.862745410 0.3142679564E-02 1.865096921 0.3142715545E-02 1.867448432 0.3142743491E-02 1.869799942 0.3142763430E-02 1.872151453 0.3142775385E-02 1.874502964 0.3142779369E-02 1.876849995 0.3142771531E-02 1.879197025 0.3142748013E-02 1.881544055 0.3142708803E-02 1.883891086 0.3142653882E-02 1.886238116 0.3142583220E-02 1.888585147 0.3142496784E-02 1.890932177 0.3142394528E-02 1.893279207 0.3142276401E-02 1.895626238 0.3142142344E-02 1.897973268 0.3141992291E-02 1.900320299 0.3141826167E-02 1.902667329 0.3141643891E-02 1.905014359 0.3141445373E-02 1.907361390 0.3141230518E-02 1.909708420 0.3140999222E-02 1.912055451 0.3140751377E-02 1.914402481 0.3140486866E-02 1.916749511 0.3140205566E-02 1.919096542 0.3139907347E-02 1.921443572 0.3139592076E-02 1.923790603 0.3139259612E-02 1.926137633 0.3138909807E-02 1.928484663 0.3138542510E-02 1.930831694 0.3138157566E-02 1.933178724 0.3137754811E-02 1.935525754 0.3137334080E-02 1.937872785 0.3136895203E-02 1.940219815 0.3136438005E-02 1.942566846 0.3135962309E-02 1.944913876 0.3135467932E-02 1.947260906 0.3134954691E-02 1.949607937 0.3134422398E-02 1.951954967 0.3133870864E-02 1.954301998 0.3133299897E-02 1.956649028 0.3132709303E-02 1.958996058 0.3132098887E-02 1.961343089 0.3131468455E-02 1.963690119 0.3130817808E-02 1.966037150 0.3130146750E-02 1.968384180 0.3129455085E-02 1.970731210 0.3128742615E-02 1.973078241 0.3128009145E-02 1.975425271 0.3127254481E-02 1.977772302 0.3126478429E-02 1.980119332 0.3125680798E-02 1.982466362 0.3124861400E-02 1.984813393 0.3124020049E-02 1.987160423 0.3123156561E-02 1.989507454 0.3122270757E-02 1.991854484 0.3121362462E-02 1.994201514 0.3120431504E-02 1.996548545 0.3119477717E-02 1.998895575 0.3118500939E-02 2.001242605 0.3117501015E-02 2.003589636 0.3116477794E-02 2.005936666 0.3115431132E-02 2.008283697 0.3114360892E-02 2.010630727 0.3113266945E-02 2.012977757 0.3112149166E-02 2.015324788 0.3111007442E-02 2.017671818 0.3109841666E-02 2.020018849 0.3108651739E-02 2.022365879 0.3107437572E-02 2.024712909 0.3106199086E-02 2.027059940 0.3104936210E-02 2.029406970 0.3103648884E-02 2.031754001 0.3102337058E-02 2.034101031 0.3101000694E-02 2.036448061 0.3099639764E-02 2.038795092 0.3098254250E-02 2.041142122 0.3096844149E-02 2.043489153 0.3095409468E-02 2.045836183 0.3093950226E-02 2.048183213 0.3092466456E-02 2.050530244 0.3090958204E-02 2.052877274 0.3089425528E-02 2.055224304 0.3087868500E-02 2.057571335 0.3086287207E-02 2.059918365 0.3084681750E-02 2.062265396 0.3083052242E-02 2.064612426 0.3081398813E-02 2.066959456 0.3079721607E-02 2.069306487 0.3078020783E-02 2.071653517 0.3076296517E-02 2.074000548 0.3074548997E-02 2.076347578 0.3072778429E-02 2.078694608 0.3070985035E-02 2.081041639 0.3069169052E-02 2.083388669 0.3067330734E-02 2.085735700 0.3065470350E-02 2.088082730 0.3063588188E-02 2.090429760 0.3061684550E-02 2.092776791 0.3059759755E-02 2.095123821 0.3057814141E-02 2.097470852 0.3055848059E-02 2.099817882 0.3053861881E-02 2.102164912 0.3051855992E-02 2.104511943 0.3049830798E-02 2.106858973 0.3047786718E-02 2.109206004 0.3045724192E-02 2.111553034 0.3043643673E-02 2.113900064 0.3041545633E-02 2.116247095 0.3039430562E-02 2.118594125 0.3037298965E-02 2.120941155 0.3035151364E-02 2.123288186 0.3032988298E-02 2.125635216 0.3030810324E-02 2.127982247 0.3028618013E-02 2.130329277 0.3026411955E-02 2.132676307 0.3024192753E-02 2.135023338 0.3021961029E-02 2.137370368 0.3019717420E-02 2.139717399 0.3017462578E-02 2.142064429 0.3015197171E-02 2.144411459 0.3012921882E-02 2.146758490 0.3010637410E-02 2.149105520 0.3008344467E-02 2.151452551 0.3006043781E-02 2.153799581 0.3003736093E-02 2.156146611 0.3001422159E-02 2.158493642 0.2999102748E-02 2.160840672 0.2996778642E-02 2.163187703 0.2994450636E-02 2.165534733 0.2992119539E-02 2.167881763 0.2989786169E-02 2.170228794 0.2987451358E-02 2.172575824 0.2985115950E-02 2.174922855 0.2982780797E-02 2.177269885 0.2980446764E-02 2.179616915 0.2978114725E-02 2.181963946 0.2975785563E-02 2.184310976 0.2973460171E-02 2.186658006 0.2971139451E-02 2.189005037 0.2968824310E-02 2.191352067 0.2966515667E-02 2.193699098 0.2964214444E-02 2.196046128 0.2961921571E-02 2.198393158 0.2959637984E-02 2.200740189 0.2957364624E-02 2.203087219 0.2955102437E-02 2.205434250 0.2952852372E-02 2.207781280 0.2950615382E-02 2.210128310 0.2948392423E-02 2.212475341 0.2946184454E-02 2.214822371 0.2943992434E-02 2.217169402 0.2941817324E-02 2.219516432 0.2939660084E-02 2.221863462 0.2937521675E-02 2.224210493 0.2935403056E-02 2.226557523 0.2933305185E-02 2.228904554 0.2931229016E-02 2.231251584 0.2929175502E-02 2.233598614 0.2927145591E-02 2.235945645 0.2925140227E-02 2.238292675 0.2923160347E-02 2.240639706 0.2921206884E-02 2.242986736 0.2919280764E-02 2.245333766 0.2917382905E-02 2.247680797 0.2915514218E-02 2.250027827 0.2913675605E-02 2.252374857 0.2911867956E-02 2.254721888 0.2910092155E-02 2.257068918 0.2908349073E-02 2.259415949 0.2906639568E-02 2.261762979 0.2904964488E-02 2.264110009 0.2903324667E-02 2.266457040 0.2901720926E-02 2.268804070 0.2900154071E-02 2.271151101 0.2898624894E-02 2.273498131 0.2897134169E-02 2.275845161 0.2895682657E-02 2.278192192 0.2894271099E-02 2.280539222 0.2892900221E-02 2.282886253 0.2891570729E-02 2.285233283 0.2890283311E-02 2.287580313 0.2889038635E-02 2.289927344 0.2887837349E-02 2.292274374 0.2886680082E-02 2.294621405 0.2885567439E-02 2.296968435 0.2884500007E-02 2.299315465 0.2883478348E-02 2.301662496 0.2882503002E-02 2.304009526 0.2881574486E-02 2.306356557 0.2880693294E-02 2.308703587 0.2879859895E-02 2.311050617 0.2879074735E-02 2.313397648 0.2878338232E-02 2.315744678 0.2877650783E-02 2.318091708 0.2877012755E-02 2.320438739 0.2876424493E-02 2.322785769 0.2875886313E-02 2.325132800 0.2875398506E-02 2.327479830 0.2874961335E-02 2.329826860 0.2874575037E-02 2.332173891 0.2874239820E-02 2.334520921 0.2873955867E-02 2.336867952 0.2873723331E-02 2.339214982 0.2873542339E-02 2.341562012 0.2873412988E-02 2.343909043 0.2873335350E-02 2.346256073 0.2873309465E-02 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/PHDLINES.OUT0000644000000000000000000000013213543334741024221 xustar0030 mtime=1569569249.528638816 30 atime=1569569249.527638816 30 ctime=1569569249.528638816 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PHDLINES.OUT0000644002504400250440000000062013543334741026266 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.2806418802E-02 0.000000000 0.5432218048E-02 0.6220482413 -0.2806418802E-02 0.6220482413 0.5432218048E-02 1.093801350 -0.2806418802E-02 1.093801350 0.5432218048E-02 1.874502964 -0.2806418802E-02 1.874502964 0.5432218048E-02 2.346256073 -0.2806418802E-02 2.346256073 0.5432218048E-02 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/PHDOS.OUT0000644000000000000000000000013213543334741023670 xustar0030 mtime=1569569249.533638813 30 atime=1569569249.531638814 30 ctime=1569569249.533638813 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PHDOS.OUT0000644002504400250440000004410413543334741025742 0ustar00dewhurstdewhurst00000000000000 -0.4146949408E-03 0.000000000 -0.4055716522E-03 0.000000000 -0.3964483635E-03 0.000000000 -0.3873250748E-03 0.000000000 -0.3782017861E-03 0.5845845187 -0.3690784974E-03 2.630630334 -0.3599552087E-03 5.042041474 -0.3508319200E-03 7.599598744 -0.3417086313E-03 8.184183262 -0.3325853426E-03 10.23022908 -0.3234620539E-03 10.88788666 -0.3143387652E-03 11.18017892 -0.3052154765E-03 11.10710586 -0.2960921878E-03 12.56856715 -0.2869688991E-03 14.83383216 -0.2778456104E-03 14.24924764 -0.2687223217E-03 12.93393248 -0.2595990330E-03 10.59559440 -0.2504757443E-03 10.52252134 -0.2413524556E-03 11.83783650 -0.2322291669E-03 14.17617458 -0.2231058782E-03 14.24924764 -0.2139825895E-03 12.93393248 -0.2048593008E-03 12.20320183 -0.1957360121E-03 13.22622474 -0.1866127234E-03 14.46846684 -0.1774894347E-03 14.17617458 -0.1683661460E-03 13.95695539 -0.1592428573E-03 13.08007861 -0.1501195686E-03 12.86085941 -0.1409962799E-03 12.20320183 -0.1318729912E-03 11.39939812 -0.1227497025E-03 10.30330214 -0.1136264138E-03 9.353352300 -0.1045031251E-03 9.426425365 -0.9537983640E-04 9.572571495 -0.8625654770E-04 9.499498430 -0.7713325900E-04 8.111110198 -0.6800997030E-04 7.307306484 -0.5888668160E-04 6.503502771 -0.4976339290E-04 6.247747044 -0.4064010420E-04 5.590089461 -0.3151681550E-04 4.786285747 -0.2239352681E-04 3.434434048 -0.1327023811E-04 2.374874607 -0.4146949408E-05 1.278778635 0.4976339290E-05 1.205705570 0.1409962799E-04 1.899899686 0.2322291669E-04 3.617116710 0.3234620539E-04 5.918918252 0.4146949408E-04 7.818817938 0.5059278278E-04 9.097596573 0.5971607148E-04 10.23022908 0.6883936018E-04 10.92442319 0.7796264888E-04 13.81080926 0.8708593758E-04 17.39138943 0.9620922628E-04 19.47397178 0.1053325150E-03 22.06806558 0.1144558037E-03 24.51601326 0.1235790924E-03 27.65815504 0.1327023811E-03 29.63112779 0.1418256698E-03 28.97347021 0.1509489585E-03 32.91941571 0.1600722472E-03 35.62311911 0.1691955359E-03 38.76526090 0.1783188246E-03 40.62862405 0.1874421133E-03 43.07657173 0.1965654020E-03 48.41090546 0.2056886907E-03 53.19719121 0.2148119794E-03 56.96045405 0.2239352681E-03 59.51801132 0.2330585568E-03 59.91991317 0.2421818455E-03 63.64663948 0.2513051342E-03 67.70219458 0.2604284229E-03 71.83082274 0.2695517116E-03 73.94994162 0.2786750003E-03 78.62661777 0.2877982889E-03 83.12061126 0.2969215776E-03 86.22621652 0.3060448663E-03 87.72421434 0.3151681550E-03 94.19118058 0.3242914437E-03 100.5120007 0.3334147324E-03 107.8193072 0.3425380211E-03 112.1306180 0.3516613098E-03 116.1131000 0.3607845985E-03 118.0495363 0.3699078872E-03 120.6070935 0.3790311759E-03 121.8493356 0.3881544646E-03 131.3853706 0.3972777533E-03 139.0945789 0.4064010420E-03 146.9133969 0.4155243307E-03 148.2287120 0.4246476194E-03 152.6130959 0.4337709081E-03 163.3548365 0.4428941968E-03 169.9314123 0.4520174855E-03 172.9274080 0.4611407742E-03 177.8233033 0.4702640629E-03 188.2362150 0.4793873516E-03 195.6165946 0.4885106403E-03 196.8953732 0.4976339290E-03 201.1336110 0.5067572177E-03 210.2312076 0.5158805064E-03 225.1015763 0.5250037951E-03 230.2532273 0.5341270838E-03 239.6065796 0.5432503725E-03 245.5620344 0.5523736612E-03 252.5039756 0.5614969499E-03 256.3768480 0.5706202386E-03 263.0995700 0.5797435273E-03 277.4218907 0.5888668160E-03 291.1961634 0.5979901047E-03 299.6361024 0.6071133934E-03 310.0490141 0.6162366821E-03 315.1641287 0.6253599708E-03 323.6040677 0.6344832595E-03 326.8923556 0.6436065482E-03 341.7261877 0.6527298369E-03 360.9444038 0.6618531256E-03 377.7877452 0.6709764143E-03 387.5064629 0.6800997030E-03 392.7311870 0.6892229917E-03 400.8422972 0.6983462804E-03 412.6801337 0.7074695691E-03 430.6561077 0.7165928578E-03 450.8608101 0.7257161465E-03 468.3983456 0.7348394352E-03 479.1766227 0.7439627239E-03 494.1566010 0.7530860126E-03 505.4829261 0.7622093013E-03 521.6686099 0.7713325900E-03 544.6500888 0.7804558787E-03 571.4679036 0.7895791674E-03 601.1355679 0.7987024561E-03 616.9193499 0.8078257448E-03 636.1375660 0.8169490335E-03 659.9228486 0.8260723222E-03 686.5214442 0.8351956109E-03 716.0794989 0.8443188996E-03 738.1475645 0.8534421883E-03 759.6310456 0.8625654770E-03 787.4718833 0.8716887657E-03 814.3993077 0.8808120544E-03 853.2011051 0.8899353431E-03 890.4318317 0.8990586318E-03 909.4308285 0.9081819205E-03 929.4893848 0.9173052092E-03 936.7236182 0.9264284979E-03 960.4358278 0.9355517866E-03 976.0369271 0.9446750753E-03 992.2226110 0.9537983640E-03 1013.779165 0.9629216527E-03 1040.048932 0.9720449414E-03 1067.049429 0.9811682300E-03 1100.918795 0.9902915187E-03 1126.640514 0.9994148074E-03 1163.652021 0.1008538096E-02 1178.631999 0.1017661385E-02 1225.873736 0.1026784674E-02 1259.231590 0.1035907962E-02 1310.419272 0.1045031251E-02 1350.755604 0.1054154540E-02 1394.489833 0.1063277828E-02 1449.586924 0.1072401117E-02 1502.053384 0.1081524406E-02 1570.340163 0.1090647694E-02 1640.453769 0.1099770983E-02 1706.511820 0.1108894272E-02 1791.386185 0.1118017561E-02 1883.714002 0.1127140849E-02 1986.673950 0.1136264138E-02 2094.931696 0.1145387427E-02 2216.707959 0.1154510715E-02 2337.790027 0.1163634004E-02 2499.975694 0.1172757293E-02 2657.484686 0.1181880581E-02 2873.525202 0.1191003870E-02 3173.855498 0.1200127159E-02 3556.246847 0.1209250448E-02 3958.148703 0.1218373736E-02 4295.161678 0.1227497025E-02 4625.159639 0.1236620314E-02 4988.259698 0.1245743602E-02 5389.869263 0.1254866891E-02 5856.879220 0.1263990180E-02 6416.143922 0.1273113468E-02 7147.276472 0.1282236757E-02 8243.737810 0.1291360046E-02 9605.381301 0.1300483335E-02 11019.74701 0.1309606623E-02 11685.29648 0.1318729912E-02 11498.96017 0.1327853201E-02 10683.09940 0.1336976489E-02 10218.09895 0.1346099778E-02 10759.89919 0.1355223067E-02 10437.24507 0.1364346355E-02 8525.507548 0.1373469644E-02 5732.362718 0.1382592933E-02 4205.318345 0.1391716221E-02 4464.362360 0.1400839510E-02 5116.502927 0.1409962799E-02 5514.568448 0.1419086088E-02 5327.537939 0.1428209376E-02 4851.174629 0.1437332665E-02 4437.909911 0.1446455954E-02 4314.379895 0.1455579242E-02 4464.289287 0.1464702531E-02 4974.960401 0.1473825820E-02 6069.923741 0.1482949108E-02 7116.256956 0.1492072397E-02 7775.449074 0.1501195686E-02 7811.839461 0.1510318975E-02 7542.565217 0.1519442263E-02 7040.041750 0.1528565552E-02 6348.259045 0.1537688841E-02 5585.193565 0.1546812129E-02 4809.376836 0.1555935418E-02 3991.031583 0.1565058707E-02 3262.931564 0.1574181995E-02 2702.388084 0.1583305284E-02 2199.901154 0.1592428573E-02 1656.822136 0.1601551862E-02 1303.294648 0.1610675150E-02 1228.833195 0.1619798439E-02 1465.516852 0.1628921728E-02 1718.386193 0.1638045016E-02 1899.899686 0.1647168305E-02 2067.419687 0.1656291594E-02 2236.620369 0.1665414882E-02 2425.696924 0.1674538171E-02 2672.428127 0.1683661460E-02 3004.325988 0.1692784749E-02 3532.534637 0.1701908037E-02 4116.790327 0.1711031326E-02 4447.409409 0.1720154615E-02 4233.743767 0.1729277903E-02 3744.884964 0.1738401192E-02 3333.447072 0.1747524481E-02 3231.327464 0.1756647769E-02 3263.443076 0.1765771058E-02 3318.795923 0.1774894347E-02 3384.853973 0.1784017636E-02 3501.990096 0.1793140924E-02 3648.391982 0.1802264213E-02 3629.758350 0.1811387502E-02 3399.760878 0.1820510790E-02 3120.256405 0.1829634079E-02 2921.680352 0.1838757368E-02 2854.343522 0.1847880656E-02 2803.484669 0.1857003945E-02 2788.760447 0.1866127234E-02 2775.022711 0.1875250523E-02 2774.291980 0.1884373811E-02 2781.745432 0.1893497100E-02 2790.623810 0.1902620389E-02 2780.430117 0.1911743677E-02 2789.491177 0.1920866966E-02 2774.840028 0.1929990255E-02 2804.617302 0.1939113543E-02 2774.840028 0.1948236832E-02 2762.965655 0.1957360121E-02 2728.986680 0.1966483410E-02 2766.400089 0.1975606698E-02 2774.547736 0.1984729987E-02 2812.911095 0.1993853276E-02 2808.599784 0.2002976564E-02 2870.931108 0.2012099853E-02 2923.214886 0.2021223142E-02 2977.471637 0.2030346430E-02 3032.349508 0.2039469719E-02 3110.464615 0.2048593008E-02 3226.796934 0.2057716296E-02 3349.596219 0.2066839585E-02 3575.647745 0.2075962874E-02 3971.667220 0.2085086163E-02 4139.150685 0.2094209451E-02 4077.111653 0.2103332740E-02 3726.908990 0.2112456029E-02 3561.435034 0.2121579317E-02 3562.092692 0.2130702606E-02 3713.536619 0.2139825895E-02 3854.458024 0.2148949183E-02 3775.539114 0.2158072472E-02 3499.688295 0.2167195761E-02 3190.771913 0.2176319050E-02 2909.148321 0.2185442338E-02 2710.024219 0.2194565627E-02 2524.418635 0.2203688916E-02 2356.533268 0.2212812204E-02 2227.632382 0.2221935493E-02 2117.584346 0.2231058782E-02 2057.993262 0.2240182070E-02 2043.232503 0.2249305359E-02 2045.570841 0.2258428648E-02 2067.785052 0.2267551937E-02 2095.735500 0.2276675225E-02 2128.362623 0.2285798514E-02 2179.221476 0.2294921803E-02 2249.408155 0.2304045091E-02 2275.385630 0.2313168380E-02 2341.480217 0.2322291669E-02 2349.554790 0.2331414957E-02 2431.104331 0.2340538246E-02 2472.427149 0.2349661535E-02 2543.381095 0.2358784824E-02 2593.363071 0.2367908112E-02 2654.671373 0.2377031401E-02 2726.209903 0.2386154690E-02 2733.882575 0.2395277978E-02 2783.608796 0.2404401267E-02 2854.818497 0.2413524556E-02 2978.713879 0.2422647844E-02 3029.024684 0.2431771133E-02 3005.604767 0.2440894422E-02 2908.417590 0.2450017711E-02 2767.313502 0.2459140999E-02 2675.935635 0.2468264288E-02 2591.792000 0.2477387577E-02 2544.148362 0.2486510865E-02 2479.734455 0.2495634154E-02 2420.654883 0.2504757443E-02 2424.308536 0.2513880731E-02 2394.385116 0.2523004020E-02 2403.555785 0.2532127309E-02 2331.615353 0.2541250598E-02 2264.351597 0.2550373886E-02 2273.303047 0.2559497175E-02 2249.956203 0.2568620464E-02 2313.493233 0.2577743752E-02 2178.052307 0.2586867041E-02 2224.453703 0.2595990330E-02 2113.857620 0.2605113618E-02 2212.615867 0.2614236907E-02 2113.199962 0.2623360196E-02 2166.397153 0.2632483485E-02 2055.801070 0.2641606773E-02 2094.054819 0.2650730062E-02 2084.664930 0.2659853351E-02 2126.024285 0.2668976639E-02 2117.474737 0.2678099928E-02 2075.055822 0.2687223217E-02 2082.655421 0.2696346505E-02 2078.636403 0.2705469794E-02 2089.926191 0.2714593083E-02 2096.283548 0.2723716371E-02 2109.363626 0.2732839660E-02 2134.171932 0.2741962949E-02 2180.134890 0.2751086238E-02 2226.390140 0.2760209526E-02 2250.796543 0.2769332815E-02 2265.411156 0.2778456104E-02 2289.525268 0.2787579392E-02 2362.379113 0.2796702681E-02 2428.254481 0.2805825970E-02 2491.389609 0.2814949258E-02 2515.321038 0.2824072547E-02 2530.191407 0.2833195836E-02 2558.324537 0.2842319125E-02 2586.530740 0.2851442413E-02 2600.341549 0.2860565702E-02 2646.560263 0.2869688991E-02 2719.012206 0.2878812279E-02 2848.424604 0.2887935568E-02 2908.563737 0.2897058857E-02 2934.248919 0.2906182145E-02 2846.999679 0.2915305434E-02 2706.955151 0.2924428723E-02 2540.969684 0.2933552012E-02 2391.681412 0.2942675300E-02 2299.718960 0.2951798589E-02 2211.446698 0.2960921878E-02 2139.871631 0.2970045166E-02 2073.886653 0.2979168455E-02 2018.241514 0.2988291744E-02 1962.340620 0.2997415032E-02 1920.469754 0.3006538321E-02 1894.309596 0.3015661610E-02 1892.153941 0.3024784899E-02 1863.984275 0.3033908187E-02 1874.287577 0.3043031476E-02 1883.165954 0.3052154765E-02 1918.752537 0.3061278053E-02 1929.786569 0.3070401342E-02 1961.390670 0.3079524631E-02 2041.369139 0.3088647919E-02 2095.479744 0.3097771208E-02 2205.162414 0.3106894497E-02 2244.585333 0.3116017786E-02 2338.301538 0.3125141074E-02 2383.058791 0.3134264363E-02 2448.714939 0.3143387652E-02 2435.159886 0.3152510940E-02 2330.519257 0.3161634229E-02 2240.566314 0.3170757518E-02 2190.218973 0.3179880806E-02 2201.070323 0.3189004095E-02 2193.909162 0.3198127384E-02 2199.170423 0.3207250673E-02 2200.631884 0.3216373961E-02 2217.219470 0.3225497250E-02 2227.961211 0.3234620539E-02 2226.061311 0.3243743827E-02 2234.537786 0.3252867116E-02 2240.529778 0.3261990405E-02 2288.758001 0.3271113693E-02 2299.061303 0.3280236982E-02 2312.177918 0.3289360271E-02 2322.481220 0.3298483560E-02 2358.250485 0.3307606848E-02 2495.993212 0.3316730137E-02 2679.004703 0.3325853426E-02 2839.290471 0.3334976714E-02 2910.171344 0.3344100003E-02 2940.496666 0.3353223292E-02 2971.114280 0.3362346580E-02 3030.961120 0.3371469869E-02 3047.073731 0.3380593158E-02 3065.341997 0.3389716447E-02 3025.590250 0.3398839735E-02 3060.153810 0.3407963024E-02 3086.825478 0.3417086313E-02 3166.548192 0.3426209601E-02 3257.268402 0.3435332890E-02 3397.605223 0.3444456179E-02 3520.660264 0.3453579467E-02 3638.490581 0.3462702756E-02 3740.683262 0.3471826045E-02 3838.126194 0.3480949333E-02 3975.576629 0.3490072622E-02 4121.978515 0.3499195911E-02 4128.153189 0.3508319200E-02 4010.542091 0.3517442488E-02 3816.386958 0.3526565777E-02 3759.499577 0.3535689066E-02 3705.754337 0.3544812354E-02 3703.817901 0.3553935643E-02 3687.559144 0.3563058932E-02 3634.142734 0.3572182220E-02 3501.222829 0.3581305509E-02 3287.922553 0.3590428798E-02 3069.616771 0.3599552087E-02 2884.888063 0.3608675375E-02 2646.706409 0.3617798664E-02 2454.414639 0.3626921953E-02 2265.630375 0.3636045241E-02 2214.954205 0.3645168530E-02 2207.902654 0.3654291819E-02 2282.692936 0.3663415107E-02 2274.143388 0.3672538396E-02 2152.038296 0.3681661685E-02 1925.548332 0.3690784974E-02 1647.432247 0.3699908262E-02 1351.632480 0.3709031551E-02 1074.320199 0.3718154840E-02 903.9868852 0.3727278128E-02 832.1560624 0.3736401417E-02 789.0064176 0.3745524706E-02 769.2036171 0.3754647994E-02 734.3112286 0.3763771283E-02 718.0159352 0.3772894572E-02 688.9693919 0.3782017861E-02 662.6996251 0.3791141149E-02 638.2566849 0.3800264438E-02 620.8287589 0.3809387727E-02 601.3182506 0.3818511015E-02 583.0865209 0.3827634304E-02 553.7842219 0.3836757593E-02 537.8542938 0.3845880881E-02 524.0069480 0.3855004170E-02 499.1255694 0.3864127459E-02 489.6991441 0.3873250748E-02 467.0099574 0.3882374036E-02 459.6295779 0.3891497325E-02 441.3247751 0.3900620614E-02 426.5274795 0.3909743902E-02 411.6936473 0.3918867191E-02 396.0925480 0.3927990480E-02 381.8067638 0.3937113768E-02 368.6536121 0.3946237057E-02 359.5925521 0.3955360346E-02 342.4203819 0.3964483635E-02 326.4173807 0.3973606923E-02 290.3923597 0.3982730212E-02 252.2482198 0.3991853501E-02 208.8793559 0.4000976789E-02 171.1371179 0.4010100078E-02 134.3082932 0.4019223367E-02 82.17066142 0.4028346655E-02 37.92492065 0.4037469944E-02 7.088087290 0.4046593233E-02 0.000000000 0.4055716522E-02 0.000000000 0.4064839810E-02 0.000000000 0.4073963099E-02 0.000000000 0.4083086388E-02 0.000000000 0.4092209676E-02 0.000000000 0.4101332965E-02 0.000000000 0.4110456254E-02 0.000000000 0.4119579542E-02 0.000000000 0.4128702831E-02 0.000000000 0.4137826120E-02 0.000000000 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/PHLWIDTH.OUT0000644000000000000000000000013213543334741024236 xustar0030 mtime=1569569249.565638792 30 atime=1569569249.536638811 30 ctime=1569569249.565638792 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PHLWIDTH.OUT0000644002504400250440000121237613543334741026321 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.4060669998E-11 0.2347351854E-02 0.3622806146E-11 0.4694703708E-02 0.2450184464E-11 0.7042055561E-02 0.9850377777E-12 0.9389407415E-02 0.2926167469E-13 0.1173675927E-01 0.8424848521E-12 0.1408411112E-01 0.5278519874E-11 0.1643146298E-01 0.1595392821E-10 0.1877881483E-01 0.3643432663E-10 0.2112616668E-01 0.7141474532E-10 0.2347351854E-01 0.1268640217E-09 0.2582087039E-01 0.2101048080E-09 0.2816822225E-01 0.3298124857E-09 0.3051557410E-01 0.4959347335E-09 0.3286292595E-01 0.7195508135E-09 0.3521027781E-01 0.1012698583E-08 0.3755762966E-01 0.1388195803E-08 0.3990498151E-01 0.1859473935E-08 0.4225233337E-01 0.2440432709E-08 0.4459968522E-01 0.3145316005E-08 0.4694703708E-01 0.3988605420E-08 0.4929438893E-01 0.4984926491E-08 0.5164174078E-01 0.6148962937E-08 0.5398909264E-01 0.7495375306E-08 0.5633644449E-01 0.9038721587E-08 0.5868379634E-01 0.1079337827E-07 0.6103114820E-01 0.1277346109E-07 0.6337850005E-01 0.1499274515E-07 0.6572585191E-01 0.1746458445E-07 0.6807320376E-01 0.2020183099E-07 0.7042055561E-01 0.2321675378E-07 0.7276790747E-01 0.2652095808E-07 0.7511525932E-01 0.3012530539E-07 0.7746261117E-01 0.3403983434E-07 0.7980996303E-01 0.3827368320E-07 0.8215731488E-01 0.4283501407E-07 0.8450466674E-01 0.4773093935E-07 0.8685201859E-01 0.5296745088E-07 0.8919937044E-01 0.5854935187E-07 0.9154672230E-01 0.6448019222E-07 0.9389407415E-01 0.7076220745E-07 0.9624142601E-01 0.7739626154E-07 0.9858877786E-01 0.8438179407E-07 0.1009361297 0.9171677186E-07 0.1032834816 0.9939764547E-07 0.1056308334 0.1074193108E-06 0.1079781853 0.1157750761E-06 0.1103255371 0.1244566343E-06 0.1126728890 0.1334540418E-06 0.1150202408 0.1427557023E-06 0.1173675927 0.1523483580E-06 0.1197149445 0.1622170863E-06 0.1220622964 0.1723453035E-06 0.1244096483 0.1827147753E-06 0.1267570001 0.1933056334E-06 0.1291043520 0.2040964004E-06 0.1314517038 0.2150640202E-06 0.1337990557 0.2261838966E-06 0.1361464075 0.2374299387E-06 0.1384937594 0.2487746129E-06 0.1408411112 0.2601890034E-06 0.1431884631 0.2716428783E-06 0.1455358149 0.2831047641E-06 0.1478831668 0.2945420263E-06 0.1502305186 0.3059209577E-06 0.1525778705 0.3172068732E-06 0.1549252223 0.3283642115E-06 0.1572725742 0.3393566433E-06 0.1596199261 0.3501471859E-06 0.1619672779 0.3606983246E-06 0.1643146298 0.3709721392E-06 0.1666619816 0.3809304372E-06 0.1690093335 0.3905348925E-06 0.1713566853 0.3997471885E-06 0.1737040372 0.4085291676E-06 0.1760513890 0.4168429844E-06 0.1783987409 0.4246512637E-06 0.1807460927 0.4319172626E-06 0.1830934446 0.4386050361E-06 0.1854407964 0.4446796063E-06 0.1877881483 0.4501071342E-06 0.1901355002 0.4548550943E-06 0.1924828520 0.4588924515E-06 0.1948302039 0.4621898389E-06 0.1971775557 0.4647197377E-06 0.1995249076 0.4664566575E-06 0.2018722594 0.4673773168E-06 0.2042196113 0.4674608236E-06 0.2065669631 0.4666888550E-06 0.2089143150 0.4650458359E-06 0.2112616668 0.4625191160E-06 0.2136090187 0.4590991447E-06 0.2159563705 0.4547796429E-06 0.2183037224 0.4495577720E-06 0.2206510743 0.4434342990E-06 0.2229984261 0.4364137575E-06 0.2253457780 0.4285046034E-06 0.2276931298 0.4197193657E-06 0.2300404817 0.4100747914E-06 0.2323878335 0.3995919835E-06 0.2347351854 0.3882965322E-06 0.2370825372 0.3762186390E-06 0.2394298891 0.3633932316E-06 0.2417772409 0.3498600711E-06 0.2441245928 0.3356638487E-06 0.2464719446 0.3208542737E-06 0.2488192965 0.3054861495E-06 0.2511666484 0.2896194390E-06 0.2535140002 0.2733193174E-06 0.2558613521 0.2566562117E-06 0.2582087039 0.2397058265E-06 0.2605560558 0.2225491542E-06 0.2629034076 0.2052724686E-06 0.2652507595 0.1879672995E-06 0.2675981113 0.1707303879E-06 0.2699454632 0.1536636170E-06 0.2722928150 0.1368739169E-06 0.2746401669 0.1204731384E-06 0.2769875187 0.1045778897E-06 0.2793348706 0.8930932718E-07 0.2816822225 0.7479289073E-07 0.2840295743 0.6115796619E-07 0.2863769262 0.4853745328E-07 0.2887242780 0.3706720541E-07 0.2910716299 0.2688529063E-07 0.2934189817 0.1813099176E-07 0.2957663336 0.1094340353E-07 0.2981136854 0.5459348233E-08 0.3004610373 0.1809967043E-08 0.3028083891 0.1141302673E-09 0.3051557410 0.4615493317E-09 0.3075030928 0.2846207865E-08 0.3098504447 0.6721300260E-08 0.3121977966 0.9467254308E-08 0.3145451484 0.1056195914E-07 0.3168925003 0.1127436692E-07 0.3192398521 0.1189252439E-07 0.3215872040 0.1248315942E-07 0.3239345558 0.1306890981E-07 0.3262819077 0.1365962720E-07 0.3286292595 0.1426038343E-07 0.3309766114 0.1487413134E-07 0.3333239632 0.1550276228E-07 0.3356713151 0.1614758424E-07 0.3380186669 0.1680955996E-07 0.3403660188 0.1748943478E-07 0.3427133707 0.1818780951E-07 0.3450607225 0.1890518406E-07 0.3474080744 0.1964198447E-07 0.3497554262 0.2039858037E-07 0.3521027781 0.2117529639E-07 0.3544501299 0.2197241984E-07 0.3567974818 0.2279020597E-07 0.3591448336 0.2362888156E-07 0.3614921855 0.2448864736E-07 0.3638395373 0.7771109053E-08 0.3661868892 0.2808054232E-09 0.3685342410 0.2755109382E-08 0.3708815929 0.1429441250E-07 0.3732289448 0.3401514959E-07 0.3755762966 0.6105381462E-07 0.3779236485 0.9457039271E-07 0.3802710003 0.1337512749E-06 0.3826183522 0.1778117134E-06 0.3849657040 0.2259978676E-06 0.3873130559 0.2775884827E-06 0.3896604077 0.3318962413E-06 0.3920077596 0.3882688178E-06 0.3943551114 0.4460896681E-06 0.3967024633 0.5047785772E-06 0.3990498151 0.5637919902E-06 0.4013971670 0.6226231458E-06 0.4037445189 0.6808020307E-06 0.4060918707 0.7378951718E-06 0.4084392226 0.7935052816E-06 0.4107865744 0.8472707695E-06 0.4131339263 0.8988651326E-06 0.4154812781 0.9479962373E-06 0.4178286300 0.9944055019E-06 0.4201759818 0.1037866991E-05 0.4225233337 0.1078186429E-05 0.4248706855 0.1115200149E-05 0.4272180374 0.1148773968E-05 0.4295653892 0.1178802021E-05 0.4319127411 0.1205205538E-05 0.4342600929 0.1227931584E-05 0.4366074448 0.1246951765E-05 0.4389547967 0.1262260910E-05 0.4413021485 0.1273875725E-05 0.4436495004 0.1281833437E-05 0.4459968522 0.1286190422E-05 0.4483442041 0.1287020837E-05 0.4506915559 0.1284415241E-05 0.4530389078 0.1278479227E-05 0.4553862596 0.1269332065E-05 0.4577336115 0.1257105349E-05 0.4600809633 0.1241941672E-05 0.4624283152 0.1223993314E-05 0.4647756670 0.1203420960E-05 0.4671230189 0.1180392441E-05 0.4694703708 0.1155081514E-05 0.4718177226 0.1127666666E-05 0.4741650745 0.1098329964E-05 0.4765124263 0.1067255938E-05 0.4788597782 0.1034630513E-05 0.4812071300 0.1000639974E-05 0.4835544819 0.9654699935E-06 0.4859018337 0.9293046881E-06 0.4882491856 0.8923257393E-06 0.4905965374 0.8547115579E-06 0.4929438893 0.8166365018E-06 0.4952912411 0.7782701472E-06 0.4976385930 0.7397766137E-06 0.4999859449 0.7013139430E-06 0.5023332967 0.6630335333E-06 0.5046806486 0.6250796285E-06 0.5070280004 0.5875888630E-06 0.5093753523 0.5506898607E-06 0.5117227041 0.5145028905E-06 0.5140700560 0.4791395749E-06 0.5164174078 0.4447026535E-06 0.5187647597 0.4112857996E-06 0.5211121115 0.3789734890E-06 0.5234594634 0.3478409206E-06 0.5258068152 0.3179539873E-06 0.5281541671 0.2893692960E-06 0.5305015190 0.2621342347E-06 0.5328488708 0.2362870871E-06 0.5351962227 0.2118571904E-06 0.5375435745 0.1888651368E-06 0.5398909264 0.1673230160E-06 0.5422382782 0.1472346962E-06 0.5445856301 0.1285961425E-06 0.5469329819 0.1113957706E-06 0.5492803338 0.9561483238E-07 0.5516276856 0.8122783210E-07 0.5539750375 0.6820297072E-07 0.5563223893 0.5650261515E-07 0.5586697412 0.4608379026E-07 0.5610170931 0.3689869056E-07 0.5633644449 0.2889520857E-07 0.5657117968 0.2201747657E-07 0.5680591486 0.1620641806E-07 0.5704065005 0.1140030497E-07 0.5727538523 0.7535316015E-08 0.5751012042 0.4546090758E-08 0.5774485560 0.2366273127E-08 0.5797959079 0.9290365077E-09 0.5821432597 0.1675806816E-09 0.5844906116 0.1558811566E-10 0.5868379634 0.4076232588E-09 0.5891853153 0.1279453064E-08 0.5915326672 0.2568259221E-08 0.5938800190 0.4212701572E-08 0.5962273709 0.6152776643E-08 0.5985747227 0.8329393676E-08 0.6009220746 0.1068356232E-07 0.6032694264 0.1315505352E-07 0.6056167783 0.1568037049E-07 0.6079641301 0.1818988932E-07 0.6103114820 0.2060419941E-07 0.6126588338 0.2283021041E-07 0.6150061857 0.2475882846E-07 0.6173535375 0.2626804917E-07 0.6197008894 0.2723680795E-07 0.6220482413 0.2757164265E-07 0.6243952716 0.2757112246E-07 0.6267423020 0.2756956575E-07 0.6290893324 0.2756698412E-07 0.6314363628 0.2756339684E-07 0.6337833932 0.2755883087E-07 0.6361304236 0.2755332081E-07 0.6384774540 0.2754690885E-07 0.6408244844 0.2753964469E-07 0.6431715148 0.2753158548E-07 0.6455185452 0.2752279578E-07 0.6478655756 0.2751334738E-07 0.6502126060 0.2750331930E-07 0.6525596364 0.2749279761E-07 0.6549066668 0.2748187533E-07 0.6572536971 0.2747065232E-07 0.6596007275 0.2745923516E-07 0.6619477579 0.2744773695E-07 0.6642947883 0.2743627724E-07 0.6666418187 0.2742498183E-07 0.6689888491 0.2741398262E-07 0.6713358795 0.2740341748E-07 0.6736829099 0.2739343007E-07 0.6760299403 0.2738416964E-07 0.6783769707 0.2737579093E-07 0.6807240011 0.2736845394E-07 0.6830710315 0.2736232381E-07 0.6854180619 0.2735757061E-07 0.6877650922 0.2735436918E-07 0.6901121226 0.2735289899E-07 0.6924591530 0.2735334393E-07 0.6948061834 0.2735589218E-07 0.6971532138 0.2736073605E-07 0.6995002442 0.2736807178E-07 0.7018472746 0.2737809945E-07 0.7041943050 0.2739102278E-07 0.7065413354 0.2740704902E-07 0.7088883658 0.2742638879E-07 0.7112353962 0.2744925596E-07 0.7135824266 0.2747586751E-07 0.7159294570 0.2750644344E-07 0.7182764874 0.2754120660E-07 0.7206235177 0.2758038266E-07 0.7229705481 0.2762419993E-07 0.7253175785 0.2767288932E-07 0.7276646089 0.2772668423E-07 0.7300116393 0.2778582046E-07 0.7323586697 0.2785053616E-07 0.7347057001 0.2792107173E-07 0.7370527305 0.2799766977E-07 0.7393997609 0.2808057504E-07 0.7417467913 0.2817003436E-07 0.7440938217 0.2826629659E-07 0.7464408521 0.2836961257E-07 0.7487878825 0.2848023508E-07 0.7511349128 0.2859841882E-07 0.7534819432 0.2872442032E-07 0.7558289736 0.2885849794E-07 0.7581760040 0.2900091180E-07 0.7605230344 0.2915192379E-07 0.7628700648 0.2931179746E-07 0.7652170952 0.2948079802E-07 0.7675641256 0.2965919228E-07 0.7699111560 0.2984724858E-07 0.7722581864 0.3004523676E-07 0.7746052168 0.3025342807E-07 0.7769522472 0.3047209509E-07 0.7792992776 0.3070151167E-07 0.7816463080 0.3094195284E-07 0.7839933383 0.3119369466E-07 0.7863403687 0.3145701415E-07 0.7886873991 0.3173218914E-07 0.7910344295 0.3201949815E-07 0.7933814599 0.3231922018E-07 0.7957284903 0.3263163460E-07 0.7980755207 0.3295702090E-07 0.8004225511 0.3329565852E-07 0.8027695815 0.3364782663E-07 0.8051166119 0.3401380381E-07 0.8074636423 0.3439386790E-07 0.8098106727 0.3478829559E-07 0.8121577031 0.3519736220E-07 0.8145047335 0.3562134131E-07 0.8168517638 0.3606050443E-07 0.8191987942 0.3651512057E-07 0.8215458246 0.3698545592E-07 0.8238928550 0.3747177336E-07 0.8262398854 0.3797433207E-07 0.8285869158 0.3849338701E-07 0.8309339462 0.3902918848E-07 0.8332809766 0.3958198157E-07 0.8356280070 0.4015200565E-07 0.8379750374 0.4073949380E-07 0.8403220678 0.4134467222E-07 0.8426690982 0.4196775968E-07 0.8450161286 0.4260896682E-07 0.8473631589 0.4326849561E-07 0.8497101893 0.4394653861E-07 0.8520572197 0.4464327835E-07 0.8544042501 0.4535888663E-07 0.8567512805 0.4609352381E-07 0.8590983109 0.4684733809E-07 0.8614453413 0.4762046482E-07 0.8637923717 0.4841302571E-07 0.8661394021 0.4922512814E-07 0.8684864325 0.5005686438E-07 0.8708334629 0.5090831083E-07 0.8731804933 0.5177952730E-07 0.8755275237 0.5267055622E-07 0.8778745541 0.5358142188E-07 0.8802215844 0.5451212974E-07 0.8825686148 0.5546266561E-07 0.8849156452 0.5643299495E-07 0.8872626756 0.5742306217E-07 0.8896097060 0.5843278988E-07 0.8919567364 0.5946207820E-07 0.8943037668 0.6051080412E-07 0.8966507972 0.6157882081E-07 0.8989978276 0.6266595701E-07 0.9013448580 0.6377201638E-07 0.9036918884 0.6489677701E-07 0.9060389188 0.6603999078E-07 0.9083859492 0.6720138290E-07 0.9107329796 0.6838065143E-07 0.9130800099 0.6957746682E-07 0.9154270403 0.7079147153E-07 0.9177740707 0.7202227965E-07 0.9201211011 0.7326947661E-07 0.9224681315 0.7453261892E-07 0.9248151619 0.7581123394E-07 0.9271621923 0.7710481970E-07 0.9295092227 0.7841284481E-07 0.9318562531 0.7973474843E-07 0.9342032835 0.8106994018E-07 0.9365503139 0.8241780030E-07 0.9388973443 0.8377767968E-07 0.9412443747 0.8514890009E-07 0.9435914050 0.8653075439E-07 0.9459384354 0.8792250684E-07 0.9482854658 0.8932339344E-07 0.9506324962 0.9073262238E-07 0.9529795266 0.9214937450E-07 0.9553265570 0.9357280390E-07 0.9576735874 0.9500203847E-07 0.9600206178 0.9643618065E-07 0.9623676482 0.9787430813E-07 0.9647146786 0.9931547468E-07 0.9670617090 0.1007587110E-06 0.9694087394 0.1022030257E-06 0.9717557698 0.1036474063E-06 0.9741028002 0.1050908201E-06 0.9764498305 0.1065322157E-06 0.9787968609 0.1079705237E-06 0.9811438913 0.1094046582E-06 0.9834909217 0.1108335181E-06 0.9858379521 0.1122559885E-06 0.9881849825 0.1136709416E-06 0.9905320129 0.1150772388E-06 0.9928790433 0.1164737318E-06 0.9952260737 0.1178592642E-06 0.9975731041 0.1192326728E-06 0.9999201345 0.1205927899E-06 1.002267165 0.1219384442E-06 1.004614195 0.1232684627E-06 1.006961226 0.1245816727E-06 1.009308256 0.1258769028E-06 1.011655286 0.1271529856E-06 1.014002317 0.1284087586E-06 1.016349347 0.1296430664E-06 1.018696378 0.1308547622E-06 1.021043408 0.1320427100E-06 1.023390438 0.1332057860E-06 1.025737469 0.1343428804E-06 1.028084499 0.1354528996E-06 1.030431530 0.1365347672E-06 1.032778560 0.1375874264E-06 1.035125590 0.1366403997E-06 1.037472621 0.1332602589E-06 1.039819651 0.1300339331E-06 1.042166682 0.1269601479E-06 1.044513712 0.1240375450E-06 1.046860742 0.1212646971E-06 1.049207773 0.1186401219E-06 1.051554803 0.1161622966E-06 1.053901834 0.1138296721E-06 1.056248864 0.1116406871E-06 1.058595894 0.1095937819E-06 1.060942925 0.1076874118E-06 1.063289955 0.1059200599E-06 1.065636985 0.1042902498E-06 1.067984016 0.1027965576E-06 1.070331046 0.1014376228E-06 1.072678077 0.1002121594E-06 1.075025107 0.9911896517E-07 1.077372137 0.9815693115E-07 1.079719168 0.9732504954E-07 1.082066198 0.9662242111E-07 1.084413229 0.9604826150E-07 1.086760259 0.9560190662E-07 1.089107289 0.9528281705E-07 1.091454320 0.9509058143E-07 1.093801350 0.9502491883E-07 1.096152861 0.9514144875E-07 1.098504372 0.9548841147E-07 1.100855883 0.9606672883E-07 1.103207394 0.9687789828E-07 1.105558905 0.9792398117E-07 1.107910415 0.9920758611E-07 1.110261926 0.1007318476E-06 1.112613437 0.1025003998E-06 1.114964948 0.1045173455E-06 1.117316459 0.1067872207E-06 1.119667970 0.1093149537E-06 1.122019481 0.1121058202E-06 1.124370992 0.1107440661E-06 1.126722503 0.1048696620E-06 1.129074013 0.9876899562E-07 1.131425524 0.9248352130E-07 1.133777035 0.8605644620E-07 1.136128546 0.7953252673E-07 1.138480057 0.7295785759E-07 1.140831568 0.6637965490E-07 1.143183079 0.5984603458E-07 1.145534590 0.5340578697E-07 1.147886101 0.4710814897E-07 1.150237611 0.4100257468E-07 1.152589122 0.3513850569E-07 1.154940633 0.2956514199E-07 1.157292144 0.2433121457E-07 1.159643655 0.1948476043E-07 1.161995166 0.1507290116E-07 1.164346677 0.1114162571E-07 1.166698188 0.7735578099E-08 1.169049699 0.4897851005E-08 1.171401209 0.2669785663E-08 1.173752720 0.1090778835E-08 1.176104231 0.1980973965E-09 1.178455742 0.2670108034E-10 1.180807253 0.6090738775E-09 1.183158764 0.1975064565E-08 1.185510275 0.4151736785E-08 1.187861786 0.7163229070E-08 1.190213296 0.1103062519E-07 1.192564807 0.1577183513E-07 1.194916318 0.2140148706E-07 1.197267829 0.2793083047E-07 1.199619340 0.3536765088E-07 1.201970851 0.4371619615E-07 1.204322362 0.5297711482E-07 1.206673873 0.6314740642E-07 1.209025384 0.7422038405E-07 1.211376894 0.8618564929E-07 1.213728405 0.9902907961E-07 1.216079916 0.1127328282E-06 1.218431427 0.1272753362E-06 1.220782938 0.1426313582E-06 1.223134449 0.1587719991E-06 1.225485960 0.1756647646E-06 1.227837471 0.1932736234E-06 1.230188982 0.2115590822E-06 1.232540492 0.2304782727E-06 1.234892003 0.2499850509E-06 1.237243514 0.2700301079E-06 1.239595025 0.2905610928E-06 1.241946536 0.3115227472E-06 1.244298047 0.3328570504E-06 1.246649558 0.3545033761E-06 1.249001069 0.3763986597E-06 1.251352580 0.3984775757E-06 1.253704090 0.4206727254E-06 1.256055601 0.4429148341E-06 1.258407112 0.4651329576E-06 1.260758623 0.4872546979E-06 1.263110134 0.5092064267E-06 1.265461645 0.5309135175E-06 1.267813156 0.5523005852E-06 1.270164667 0.5732917325E-06 1.272516177 0.5938108034E-06 1.274867688 0.6137816422E-06 1.277219199 0.6331283592E-06 1.279570710 0.6517756000E-06 1.281922221 0.6696488211E-06 1.284273732 0.6866745684E-06 1.286625243 0.7027807599E-06 1.288976754 0.7178969711E-06 1.291328265 0.7319547228E-06 1.293679775 0.7448877718E-06 1.296031286 0.7566324018E-06 1.298382797 0.7671277159E-06 1.300734308 0.7763159294E-06 1.303085819 0.7841426623E-06 1.305437330 0.7905572311E-06 1.307788841 0.7955129399E-06 1.310140352 0.7989673687E-06 1.312491863 0.8008826604E-06 1.314843373 0.8012258045E-06 1.317194884 0.7999689180E-06 1.319546395 0.7970895217E-06 1.321897906 0.7925708131E-06 1.324249417 0.7864019337E-06 1.326600928 0.7785782315E-06 1.328952439 0.7691015179E-06 1.331303950 0.7579803171E-06 1.333655461 0.7452301104E-06 1.336006971 0.7308735718E-06 1.338358482 0.7149407962E-06 1.340709993 0.6974695198E-06 1.343061504 0.6785053306E-06 1.345413015 0.6581018704E-06 1.347764526 0.6363210261E-06 1.350116037 0.6132331111E-06 1.352467548 0.5889170348E-06 1.354819059 0.5634604608E-06 1.357170569 0.5369599522E-06 1.359522080 0.5095211042E-06 1.361873591 0.4812586619E-06 1.364225102 0.4522966240E-06 1.366576613 0.4227683304E-06 1.368928124 0.3928165328E-06 1.371279635 0.3625934484E-06 1.373631146 0.3322607935E-06 1.375982656 0.3019897978E-06 1.378334167 0.2719611966E-06 1.380685678 0.2423652002E-06 1.383037189 0.2134014377E-06 1.385388700 0.1852788752E-06 1.387740211 0.1582157038E-06 1.390091722 0.1324391977E-06 1.392443233 0.1081855378E-06 1.394794744 0.8569959853E-07 1.397146254 0.6523469559E-07 1.399497765 0.4705228962E-07 1.401849276 0.3142164283E-07 1.404200787 0.1861942367E-07 1.406552298 0.8929254814E-08 1.408903809 0.2641198685E-08 1.411255320 0.5117451061E-10 1.413606831 0.1460299774E-08 1.415958342 0.7174148332E-08 1.418309852 0.1750191639E-07 1.420661363 0.3275548646E-07 1.423012874 0.5324837819E-07 1.425364385 0.7929457343E-07 1.427715896 0.1112072015E-06 1.430067407 0.1492970679E-06 1.432418918 0.1938710093E-06 1.434770429 0.2452300511E-06 1.437121940 0.3036673459E-06 1.439473450 0.3694658608E-06 1.441824961 0.4428957818E-06 1.444176472 0.5242115907E-06 1.446527983 0.6136487653E-06 1.448879494 0.7114200351E-06 1.451231005 0.8177111083E-06 1.453582516 0.9326757538E-06 1.455934027 0.1056430078E-05 1.458285537 0.1189045768E-05 1.460637048 0.1330541952E-05 1.462988559 0.1335311961E-05 1.465340070 0.1336238653E-05 1.467691581 0.1336851734E-05 1.470043092 0.1337119904E-05 1.472394603 0.1337009651E-05 1.474746114 0.1336485185E-05 1.477097625 0.1335508295E-05 1.479449135 0.1334038131E-05 1.481800646 0.1332030856E-05 1.484152157 0.1329439148E-05 1.486503668 0.1326211469E-05 1.488855179 0.1322291027E-05 1.491206690 0.1317614289E-05 1.493558201 0.1312108888E-05 1.495909712 0.1305690664E-05 1.498261223 0.1298259538E-05 1.500612733 0.1289693913E-05 1.502964244 0.1279843438E-05 1.505315755 0.1268520601E-05 1.507667266 0.1255493344E-05 1.510018777 0.1240484387E-05 1.512370288 0.1223188258E-05 1.514721799 0.1203319675E-05 1.517073310 0.1180695581E-05 1.519424821 0.1155320469E-05 1.521776331 0.1127418029E-05 1.524127842 0.1097379762E-05 1.526479353 0.1065666209E-05 1.528830864 0.1032720750E-05 1.531182375 0.9989245516E-06 1.533533886 0.9645863122E-06 1.535885397 0.9299498789E-06 1.538236908 0.8952072884E-06 1.540588418 0.8605112940E-06 1.542939929 0.8259854705E-06 1.545291440 0.7917317672E-06 1.547642951 0.7578359561E-06 1.549994462 0.7243714988E-06 1.552345973 0.6914022780E-06 1.554697484 0.6589845245E-06 1.557048995 0.6271681828E-06 1.559400506 0.5959978820E-06 1.561752016 0.5655136301E-06 1.564103527 0.5357513137E-06 1.566455038 0.5067430600E-06 1.568806549 0.4785175022E-06 1.571158060 0.4510999765E-06 1.573509571 0.4245126705E-06 1.575861082 0.3987747394E-06 1.578212593 0.3739023995E-06 1.580564104 0.3499090065E-06 1.582915614 0.3268051258E-06 1.585267125 0.3045985980E-06 1.587618636 0.2832946019E-06 1.589970147 0.2628957199E-06 1.592321658 0.2434020042E-06 1.594673169 0.2248110474E-06 1.597024680 0.2071180575E-06 1.599376191 0.1903159370E-06 1.601727702 0.1743953685E-06 1.604079212 0.1593449039E-06 1.606430723 0.1451510609E-06 1.608782234 0.1317984229E-06 1.611133745 0.1192697451E-06 1.613485256 0.1075460645E-06 1.615836767 0.9660681530E-07 1.618188278 0.8642994687E-07 1.620539789 0.7699204639E-07 1.622891299 0.6826846393E-07 1.625242810 0.6023344028E-07 1.627594321 0.5286023666E-07 1.629945832 0.4612126600E-07 1.632297343 0.3998822501E-07 1.634648854 0.3443222667E-07 1.637000365 0.2942393238E-07 1.639351876 0.2493368339E-07 1.641703387 0.2093163076E-07 1.644054897 0.1738786346E-07 1.646406408 0.1427253392E-07 1.648757919 0.1155598056E-07 1.651109430 0.9208846762E-08 1.653460941 0.7202195803E-08 1.655812452 0.5507621233E-08 1.658163963 0.4097352264E-08 1.660515474 0.2944353747E-08 1.662866985 0.2022420308E-08 1.665218495 0.1306264309E-08 1.667570006 0.7715972703E-09 1.669921517 0.3952044681E-09 1.672273028 0.1550124330E-09 1.674624539 0.3014912625E-10 1.676976050 0.9966003029E-12 1.679327561 0.4923599481E-10 1.681679072 0.1578847553E-09 1.684030583 0.3113260046E-09 1.686382093 0.4953300353E-09 1.688733604 0.6970679339E-09 1.691085115 0.9051173853E-09 1.693436626 0.1109460746E-08 1.695788137 0.1301475516E-08 1.698139648 0.1473917369E-08 1.700491159 0.1620895952E-08 1.702842670 0.1737843678E-08 1.705194180 0.1821477791E-08 1.707545691 0.1869756002E-08 1.709897202 0.1881826017E-08 1.712248713 0.1857969323E-08 1.714600224 0.1799539604E-08 1.716951735 0.1708896176E-08 1.719303246 0.1589332872E-08 1.721654757 0.1445002775E-08 1.724006268 0.1280839243E-08 1.726357778 0.1102473628E-08 1.728709289 0.9161501203E-09 1.731060800 0.7286380625E-09 1.733412311 0.5471420969E-09 1.735763822 0.3792103805E-09 1.738115333 0.2326410212E-09 1.740466844 0.1153867023E-09 1.742818355 0.3545719563E-10 1.745169866 0.8190439677E-12 1.747521376 0.1929102163E-10 1.749872887 0.9843288174E-10 1.752224398 0.2454230467E-09 1.754575909 0.4669176787E-09 1.756927420 0.7688777744E-09 1.759278931 0.1156340101E-08 1.761630442 0.1633086684E-08 1.763981953 0.2201124558E-08 1.766333464 0.2859795598E-08 1.768684974 0.3604131419E-08 1.771036485 0.4421599002E-08 1.773387996 0.5285345945E-08 1.775739507 0.6140373839E-08 1.778091018 0.6881330572E-08 1.780442529 0.7352451405E-08 1.782794040 0.7452116997E-08 1.785145551 0.7244439639E-08 1.787497061 0.6864651259E-08 1.789848572 0.6409908735E-08 1.792200083 0.5932116158E-08 1.794551594 0.5457252848E-08 1.796903105 0.4998301859E-08 1.799254616 0.4561692515E-08 1.801606127 0.4150411870E-08 1.803957638 0.3765558732E-08 1.806309149 0.3407158655E-08 1.808660659 0.3074612850E-08 1.811012170 0.2766956806E-08 1.813363681 0.2483015365E-08 1.815715192 0.2221499130E-08 1.818066703 0.1981066511E-08 1.820418214 0.1760365152E-08 1.822769725 0.1558060913E-08 1.825121236 0.1372859467E-08 1.827472747 0.1203523814E-08 1.829824257 0.1048889973E-08 1.832175768 0.9078823067E-09 1.834527279 0.7795292505E-09 1.836878790 0.6629792699E-09 1.839230301 0.5575155774E-09 1.841581812 0.4625663936E-09 1.843933323 0.3777055821E-09 1.846284834 0.3026370816E-09 1.848636345 0.2371570329E-09 1.850987855 0.1810912955E-09 1.853339366 0.1342135877E-09 1.855690877 0.9615885427E-10 1.858042388 0.6635338497E-10 1.860393899 0.4398320884E-10 1.862745410 0.2801403042E-10 1.865096921 0.1726264230E-10 1.867448432 0.1050700623E-10 1.869799942 0.6614524024E-11 1.872151453 0.4666583358E-11 1.874502964 0.4060669998E-11 1.876849995 0.6622612306E-11 1.879197025 0.1775299433E-10 1.881544055 0.4807226412E-10 1.883891086 0.1151470080E-09 1.886238116 0.2434012488E-09 1.888585147 0.4639932472E-09 1.890932177 0.8146587267E-09 1.893279207 0.1339521825E-08 1.895626238 0.2088875533E-08 1.897973268 0.3118933902E-08 1.900320299 0.4491558873E-08 1.902667329 0.6273965205E-08 1.905014359 0.8538407536E-08 1.907361390 0.1136185414E-07 1.909708420 0.1482565223E-07 1.912055451 0.1901518987E-07 1.914402481 0.2401955900E-07 1.916749511 0.2993122394E-07 1.919096542 0.3684569824E-07 1.921443572 0.4486123182E-07 1.923790603 0.5407850872E-07 1.926137633 0.6460035435E-07 1.928484663 0.7653145002E-07 1.930831694 0.8997805139E-07 1.933178724 0.1050477073E-06 1.935525754 0.1169101108E-06 1.937872785 0.1246661765E-06 1.940219815 0.1328979571E-06 1.942566846 0.1371493436E-06 1.944913876 0.1404844444E-06 1.947260906 0.1439508139E-06 1.949607937 0.1475494846E-06 1.951954967 0.1512814073E-06 1.954301998 0.1551474432E-06 1.956649028 0.1591483553E-06 1.958996058 0.1632848009E-06 1.961343089 0.1675573237E-06 1.963690119 0.1719663465E-06 1.966037150 0.1765121638E-06 1.968384180 0.1811949352E-06 1.970731210 0.1860146785E-06 1.973078241 0.1909712635E-06 1.975425271 0.1960644063E-06 1.977772302 0.2012936635E-06 1.980119332 0.2066584274E-06 1.982466362 0.2121579209E-06 1.984813393 0.2177911935E-06 1.987160423 0.2235571175E-06 1.989507454 0.2294543845E-06 1.991854484 0.2354815024E-06 1.994201514 0.2416367936E-06 1.996548545 0.2479183922E-06 1.998895575 0.2543242437E-06 2.001242605 0.2608521031E-06 2.003589636 0.2674995352E-06 2.005936666 0.2742639148E-06 2.008283697 0.2811424269E-06 2.010630727 0.2881320685E-06 2.012977757 0.2952296501E-06 2.015324788 0.3024317980E-06 2.017671818 0.3097349571E-06 2.020018849 0.3171353943E-06 2.022365879 0.3246292023E-06 2.024712909 0.3322123036E-06 2.027059940 0.3398804559E-06 2.029406970 0.3476292570E-06 2.031754001 0.3554541504E-06 2.034101031 0.3633504317E-06 2.036448061 0.3713132553E-06 2.038795092 0.3793376410E-06 2.041142122 0.3874184818E-06 2.043489153 0.3955505514E-06 2.045836183 0.4037285124E-06 2.048183213 0.4119469248E-06 2.050530244 0.4202002547E-06 2.052877274 0.4284828832E-06 2.055224304 0.4367891159E-06 2.057571335 0.4451131922E-06 2.059918365 0.4534492951E-06 2.062265396 0.4617915612E-06 2.064612426 0.4701340904E-06 2.066959456 0.4784709564E-06 2.069306487 0.4867962169E-06 2.071653517 0.4951039237E-06 2.074000548 0.5033881335E-06 2.076347578 0.5116429177E-06 2.078694608 0.5198623733E-06 2.081041639 0.5280406330E-06 2.083388669 0.5361718754E-06 2.085735700 0.5442503353E-06 2.088082730 0.5522703136E-06 2.090429760 0.5602261874E-06 2.092776791 0.5681124197E-06 2.095123821 0.5759235688E-06 2.097470852 0.5836542974E-06 2.099817882 0.5912993825E-06 2.102164912 0.5988537233E-06 2.104511943 0.6063123501E-06 2.106858973 0.6136704326E-06 2.109206004 0.6209232879E-06 2.111553034 0.6280663876E-06 2.113900064 0.6350953655E-06 2.116247095 0.6420060241E-06 2.118594125 0.6487943411E-06 2.120941155 0.6554564757E-06 2.123288186 0.6619887739E-06 2.125635216 0.6683877738E-06 2.127982247 0.6746502105E-06 2.130329277 0.6807730203E-06 2.132676307 0.6867533446E-06 2.135023338 0.6925885333E-06 2.137370368 0.6982761480E-06 2.139717399 0.7038139642E-06 2.142064429 0.7091999736E-06 2.144411459 0.7144323854E-06 2.146758490 0.7195096280E-06 2.149105520 0.7244303490E-06 2.151452551 0.7291934160E-06 2.153799581 0.7337979160E-06 2.156146611 0.7382431549E-06 2.158493642 0.7425286566E-06 2.160840672 0.7466541610E-06 2.163187703 0.7506196225E-06 2.165534733 0.7544252077E-06 2.167881763 0.7580712922E-06 2.170228794 0.7615584580E-06 2.172575824 0.7648874896E-06 2.174922855 0.7495633796E-06 2.177269885 0.7333544878E-06 2.179616915 0.7169499770E-06 2.181963946 0.7003729482E-06 2.184310976 0.6836468697E-06 2.186658006 0.6667955141E-06 2.189005037 0.6498428921E-06 2.191352067 0.6328131829E-06 2.193699098 0.6157306626E-06 2.196046128 0.5986196304E-06 2.198393158 0.5815043332E-06 2.200740189 0.5644088891E-06 2.203087219 0.5473572107E-06 2.205434250 0.5303729280E-06 2.207781280 0.5134793118E-06 2.210128310 0.4966991985E-06 2.212475341 0.4800549155E-06 2.214822371 0.4635682100E-06 2.217169402 0.4472601786E-06 2.219516432 0.4311512014E-06 2.221863462 0.4152608784E-06 2.224210493 0.3996079698E-06 2.226557523 0.3842103410E-06 2.228904554 0.3690849113E-06 2.231251584 0.3542476077E-06 2.233598614 0.3397133237E-06 2.235945645 0.3254958834E-06 2.238292675 0.3116080105E-06 2.240639706 0.2980613037E-06 2.242986736 0.2848662170E-06 2.245333766 0.2720320458E-06 2.247680797 0.2595669195E-06 2.250027827 0.2474777987E-06 2.252374857 0.2357704791E-06 2.254721888 0.2244496005E-06 2.257068918 0.2135186612E-06 2.259415949 0.2029800386E-06 2.261762979 0.1928350139E-06 2.264110009 0.1830838029E-06 2.266457040 0.1737255906E-06 2.268804070 0.1647585717E-06 2.271151101 0.1561799938E-06 2.273498131 0.1479862060E-06 2.275845161 0.1401727109E-06 2.278192192 0.1327342194E-06 2.280539222 0.1256647094E-06 2.282886253 0.1189574869E-06 2.285233283 0.1126052500E-06 2.287580313 0.1066001540E-06 2.289927344 0.1009338792E-06 2.292274374 0.9559769957E-07 2.294621405 0.9058255274E-07 2.296968435 0.8587911009E-07 2.299315465 0.8147784759E-07 2.301662496 0.7736911628E-07 2.304009526 0.7354321236E-07 2.306356557 0.6999044645E-07 2.308703587 0.6670121161E-07 2.311050617 0.6366604995E-07 2.313397648 0.6087571728E-07 2.315744678 0.5832124572E-07 2.318091708 0.5599400372E-07 2.320438739 0.5388575337E-07 2.322785769 0.5198870472E-07 2.325132800 0.5029556668E-07 2.327479830 0.4879959447E-07 2.329826860 0.4749463323E-07 2.332173891 0.4637515771E-07 2.334520921 0.4543630769E-07 2.336867952 0.4467391917E-07 2.339214982 0.4408455097E-07 2.341562012 0.4366550678E-07 2.343909043 0.4341485243E-07 2.346256073 0.4333142841E-07 0.000000000 0.1925887973E-08 0.2347351854E-02 0.1917441084E-08 0.4694703708E-02 0.1892476998E-08 0.7042055561E-02 0.1852103521E-08 0.9389407415E-02 0.1798093426E-08 0.1173675927E-01 0.1732773343E-08 0.1408411112E-01 0.1658869097E-08 0.1643146298E-01 0.1579313869E-08 0.1877881483E-01 0.1497033606E-08 0.2112616668E-01 0.1414733501E-08 0.2347351854E-01 0.1334715668E-08 0.2582087039E-01 0.1258756591E-08 0.2816822225E-01 0.1188061193E-08 0.3051557410E-01 0.1123291976E-08 0.3286292595E-01 0.1064654345E-08 0.3521027781E-01 0.1012010322E-08 0.3755762966E-01 0.9649942980E-09 0.3990498151E-01 0.9231128541E-09 0.4225233337E-01 0.8858206469E-09 0.4459968522E-01 0.8525720318E-09 0.4694703708E-01 0.8228523592E-09 0.4929438893E-01 0.7961942226E-09 0.5164174078E-01 0.7721836026E-09 0.5398909264E-01 0.7504597988E-09 0.5633644449E-01 0.7307119076E-09 0.5868379634E-01 0.7126736431E-09 0.6103114820E-01 0.6961175884E-09 0.6337850005E-01 0.6808494808E-09 0.6572585191E-01 0.6667028183E-09 0.6807320376E-01 0.6535338798E-09 0.7042055561E-01 0.6412171240E-09 0.7276790747E-01 0.6296408467E-09 0.7511525932E-01 0.6187028958E-09 0.7746261117E-01 0.6083061495E-09 0.7980996303E-01 0.5983533112E-09 0.8215731488E-01 0.5887403125E-09 0.8450466674E-01 0.5793471229E-09 0.8685201859E-01 0.5700238032E-09 0.8919937044E-01 0.5605676642E-09 0.9154672230E-01 0.5506830820E-09 0.9389407415E-01 0.5399054431E-09 0.9624142601E-01 0.5274451013E-09 0.9858877786E-01 0.5118356697E-09 0.1009361297 0.4900494128E-09 0.1032834816 0.4550107128E-09 0.1056308334 0.3886496576E-09 0.1079781853 0.2575725563E-09 0.1103255371 0.8752648915E-10 0.1126728890 0.5990857769E-12 0.1150202408 0.7310057905E-10 0.1173675927 0.3302363014E-09 0.1197149445 0.7798624844E-09 0.1220622964 0.1423865929E-08 0.1244096483 0.2261393646E-08 0.1267570001 0.3289908406E-08 0.1291043520 0.4505593354E-08 0.1314517038 0.5903531569E-08 0.1337990557 0.7477798476E-08 0.1361464075 0.9221517986E-08 0.1384937594 0.1112690325E-07 0.1408411112 0.1318529138E-07 0.1431884631 0.1538717665E-07 0.1455358149 0.1772224443E-07 0.1478831668 0.2017940719E-07 0.1502305186 0.2274684308E-07 0.1525778705 0.2541203760E-07 0.1549252223 0.2816182849E-07 0.1572725742 0.3098245394E-07 0.1596199261 0.3385960415E-07 0.1619672779 0.3677847620E-07 0.1643146298 0.3972383231E-07 0.1666619816 0.4268006111E-07 0.1690093335 0.4563124223E-07 0.1713566853 0.4856121377E-07 0.1737040372 0.5145364269E-07 0.1760513890 0.5429209789E-07 0.1783987409 0.5706012599E-07 0.1807460927 0.5974132943E-07 0.1830934446 0.6231944688E-07 0.1854407964 0.6477843576E-07 0.1877881483 0.6710255663E-07 0.1901355002 0.6927645928E-07 0.1924828520 0.7128527035E-07 0.1948302039 0.7311468222E-07 0.1971775557 0.7475104303E-07 0.1995249076 0.7618144750E-07 0.2018722594 0.7739382842E-07 0.2042196113 0.7837704858E-07 0.2065669631 0.7912099286E-07 0.2089143150 0.7961666021E-07 0.2112616668 0.7985625547E-07 0.2136090187 0.7983328054E-07 0.2159563705 0.7954262489E-07 0.2183037224 0.7898065501E-07 0.2206510743 0.7814530268E-07 0.2229984261 0.7703615177E-07 0.2253457780 0.7565452341E-07 0.2276931298 0.7400355920E-07 0.2300404817 0.7208830244E-07 0.2323878335 0.6991577700E-07 0.2347351854 0.6749506373E-07 0.2370825372 0.6483737436E-07 0.2394298891 0.6195612251E-07 0.2417772409 0.5886699191E-07 0.2441245928 0.5558800166E-07 0.2464719446 0.5213956854E-07 0.2488192965 0.4854456622E-07 0.2511666484 0.4482838170E-07 0.2535140002 0.4101896883E-07 0.2558613521 0.3714689933E-07 0.2582087039 0.3324541154E-07 0.2605560558 0.2935045723E-07 0.2629034076 0.2550074726E-07 0.2652507595 0.2173779654E-07 0.2675981113 0.1810596924E-07 0.2699454632 0.1465252494E-07 0.2722928150 0.1142766648E-07 0.2746401669 0.8484589167E-08 0.2769875187 0.5879528938E-08 0.2793348706 0.3671801428E-08 0.2816822225 0.1923809197E-08 0.2840295743 0.7009558049E-09 0.2863769262 0.7129429400E-10 0.2887242780 0.1043789099E-09 0.2910716299 0.8674188949E-09 0.2934189817 0.2410174668E-08 0.2957663336 0.4685277882E-08 0.2981136854 0.7064205525E-08 0.3004610373 0.8338621837E-08 0.3028083891 0.9059626806E-08 0.3051557410 0.9709418768E-08 0.3075030928 0.1050187728E-07 0.3098504447 0.1210297611E-07 0.3121977966 0.1720944383E-07 0.3145451484 0.2638357981E-07 0.3168925003 0.3835816791E-07 0.3192398521 0.5280928767E-07 0.3215872040 0.6960445462E-07 0.3239345558 0.8864156102E-07 0.3262819077 0.1098390396E-06 0.3286292595 0.1331473675E-06 0.3309766114 0.1585570985E-06 0.3333239632 0.1860978555E-06 0.3356713151 0.2158305866E-06 0.3380186669 0.2478376633E-06 0.3403660188 0.2822141284E-06 0.3427133707 0.3190613342E-06 0.3450607225 0.3584828648E-06 0.3474080744 0.4005821437E-06 0.3497554262 0.3130183681E-06 0.3521027781 0.2266443213E-06 0.3544501299 0.1556481466E-06 0.3567974818 0.9916278131E-07 0.3591448336 0.5629536805E-07 0.3614921855 0.2613699399E-07 0.3638395373 0.2536967979E-07 0.3661868892 0.2627213213E-07 0.3685342410 0.2719613521E-07 0.3708815929 0.2814179790E-07 0.3732289448 0.2910920734E-07 0.3755762966 0.3009842907E-07 0.3779236485 0.3110950701E-07 0.3802710003 0.3214246334E-07 0.3826183522 0.3319729837E-07 0.3849657040 0.3427399036E-07 0.3873130559 0.3537249524E-07 0.3896604077 0.3649274643E-07 0.3920077596 0.3763465457E-07 0.3943551114 0.3879810725E-07 0.3967024633 0.3998296880E-07 0.3990498151 0.4118908001E-07 0.4013971670 0.4241625793E-07 0.4037445189 0.4366429564E-07 0.4060918707 0.4493296207E-07 0.4084392226 0.4622200182E-07 0.4107865744 0.4753113500E-07 0.4131339263 0.4886005711E-07 0.4154812781 0.5020843893E-07 0.4178286300 0.5157592644E-07 0.4201759818 0.5296214078E-07 0.4225233337 0.5436667824E-07 0.4248706855 0.5578911023E-07 0.4272180374 0.5722898337E-07 0.4295653892 0.5868581953E-07 0.4319127411 0.6015911595E-07 0.4342600929 0.6164834535E-07 0.4366074448 0.6315295615E-07 0.4389547967 0.6467237262E-07 0.4413021485 0.6620599516E-07 0.4436495004 0.6775320052E-07 0.4459968522 0.6931334218E-07 0.4483442041 0.7088575060E-07 0.4506915559 0.7246973367E-07 0.4530389078 0.7406457708E-07 0.4553862596 0.7566954476E-07 0.4577336115 0.7728387935E-07 0.4600809633 0.7890680275E-07 0.4624283152 0.8053751662E-07 0.4647756670 0.8217520294E-07 0.4671230189 0.8381902468E-07 0.4694703708 0.8546812638E-07 0.4718177226 0.8712163484E-07 0.4741650745 0.8877865984E-07 0.4765124263 0.9043829483E-07 0.4788597782 0.9209961772E-07 0.4812071300 0.9376169165E-07 0.4835544819 0.9542356584E-07 0.4859018337 0.9708427637E-07 0.4882491856 0.9874284711E-07 0.4905965374 0.1003982906E-06 0.4929438893 0.1020496089E-06 0.4952912411 0.1036957946E-06 0.4976385930 0.1053358318E-06 0.4999859449 0.1069686971E-06 0.5023332967 0.1085933604E-06 0.5046806486 0.1102087861E-06 0.5070280004 0.1118139342E-06 0.5093753523 0.1134077613E-06 0.5117227041 0.1149892214E-06 0.5140700560 0.1165572673E-06 0.5164174078 0.1181108516E-06 0.5187647597 0.1196489277E-06 0.5211121115 0.1211704511E-06 0.5234594634 0.1226743802E-06 0.5258068152 0.1241596777E-06 0.5281541671 0.1256253116E-06 0.5305015190 0.1270702563E-06 0.5328488708 0.1284934938E-06 0.5351962227 0.1298940146E-06 0.5375435745 0.1312708193E-06 0.5398909264 0.1326229190E-06 0.5422382782 0.1339493371E-06 0.5445856301 0.1352491099E-06 0.5469329819 0.1365212880E-06 0.5492803338 0.1377649371E-06 0.5516276856 0.1389791394E-06 0.5539750375 0.1401629942E-06 0.5563223893 0.1413156196E-06 0.5586697412 0.1424361527E-06 0.5610170931 0.1435237512E-06 0.5633644449 0.1445775941E-06 0.5657117968 0.1455968829E-06 0.5680591486 0.1465808423E-06 0.5704065005 0.1475287210E-06 0.5727538523 0.1484397930E-06 0.5751012042 0.1493133582E-06 0.5774485560 0.1501487431E-06 0.5797959079 0.1509453018E-06 0.5821432597 0.1517024168E-06 0.5844906116 0.1524194996E-06 0.5868379634 0.1530959914E-06 0.5891853153 0.1500399739E-06 0.5915326672 0.1409495451E-06 0.5938800190 0.1325117498E-06 0.5962273709 0.1246926811E-06 0.5985747227 0.1174629032E-06 0.6009220746 0.1107987769E-06 0.6032694264 0.1046842751E-06 0.6056167783 0.9911344956E-07 0.6079641301 0.9409368800E-07 0.6103114820 0.8964972894E-07 0.6126588338 0.8582786607E-07 0.6150061857 0.8269853791E-07 0.6173535375 0.8035345420E-07 0.6197008894 0.7889191716E-07 0.6220482413 0.7839428212E-07 0.6243952716 0.7840518201E-07 0.6267423020 0.7852212619E-07 0.6290893324 0.7874528080E-07 0.6314363628 0.7907494748E-07 0.6337833932 0.7951156196E-07 0.6361304236 0.8005569187E-07 0.6384774540 0.8070803392E-07 0.6408244844 0.8146941032E-07 0.6431715148 0.8234076452E-07 0.6455185452 0.8332315638E-07 0.6478655756 0.8441775651E-07 0.6502126060 0.8562584014E-07 0.6525596364 0.8694878033E-07 0.6549066668 0.8838804055E-07 0.6572536971 0.8994516675E-07 0.6596007275 0.9162177892E-07 0.6619477579 0.9341956214E-07 0.6642947883 0.9534025711E-07 0.6666418187 0.9738565035E-07 0.6689888491 0.9955756397E-07 0.6713358795 0.1018578450E-06 0.6736829099 0.1042883547E-06 0.6760299403 0.1068509570E-06 0.6783769707 0.1095475075E-06 0.6807240011 0.1123798417E-06 0.6830710315 0.1153497632E-06 0.6854180619 0.1184590320E-06 0.6877650922 0.1217093525E-06 0.6901121226 0.1251023616E-06 0.6924591530 0.1286396169E-06 0.6948061834 0.1323225848E-06 0.6971532138 0.1361526290E-06 0.6995002442 0.1401309987E-06 0.7018472746 0.1442588175E-06 0.7041943050 0.1485370722E-06 0.7065413354 0.1529666025E-06 0.7088883658 0.1575480898E-06 0.7112353962 0.1622820478E-06 0.7135824266 0.1671688125E-06 0.7159294570 0.1722085334E-06 0.7182764874 0.1774011642E-06 0.7206235177 0.1827464553E-06 0.7229705481 0.1882439455E-06 0.7253175785 0.1938929556E-06 0.7276646089 0.1996925814E-06 0.7300116393 0.2056416885E-06 0.7323586697 0.2117389064E-06 0.7347057001 0.2179826248E-06 0.7370527305 0.2243709893E-06 0.7393997609 0.2309018987E-06 0.7417467913 0.2375730026E-06 0.7440938217 0.2443816997E-06 0.7464408521 0.2513251372E-06 0.7487878825 0.2584002106E-06 0.7511349128 0.2656035645E-06 0.7534819432 0.2729315943E-06 0.7558289736 0.2803804479E-06 0.7581760040 0.2879460293E-06 0.7605230344 0.2956240019E-06 0.7628700648 0.3034097936E-06 0.7652170952 0.3112986012E-06 0.7675641256 0.3192853974E-06 0.7699111560 0.3273649365E-06 0.7722581864 0.3355317625E-06 0.7746052168 0.3437802166E-06 0.7769522472 0.3521044463E-06 0.7792992776 0.3604984144E-06 0.7816463080 0.3689559090E-06 0.7839933383 0.3774705538E-06 0.7863403687 0.3860358194E-06 0.7886873991 0.3946450342E-06 0.7910344295 0.4032913969E-06 0.7933814599 0.4119679886E-06 0.7957284903 0.4206677853E-06 0.7980755207 0.4293836716E-06 0.8004225511 0.4381084533E-06 0.8027695815 0.4468348717E-06 0.8051166119 0.4555556175E-06 0.8074636423 0.4642633444E-06 0.8098106727 0.4729506836E-06 0.8121577031 0.4816102585E-06 0.8145047335 0.4902346984E-06 0.8168517638 0.4988166537E-06 0.8191987942 0.5073488096E-06 0.8215458246 0.5158239009E-06 0.8238928550 0.5242347262E-06 0.8262398854 0.5325741616E-06 0.8285869158 0.5408351752E-06 0.8309339462 0.5490108404E-06 0.8332809766 0.5570943494E-06 0.8356280070 0.5650790262E-06 0.8379750374 0.5729583396E-06 0.8403220678 0.5807259157E-06 0.8426690982 0.5883755494E-06 0.8450161286 0.5959012165E-06 0.8473631589 0.6032970846E-06 0.8497101893 0.6090599691E-06 0.8520572197 0.6085812089E-06 0.8544042501 0.6077509455E-06 0.8567512805 0.6065698948E-06 0.8590983109 0.6050395278E-06 0.8614453413 0.6031620734E-06 0.8637923717 0.6009405195E-06 0.8661394021 0.5983786107E-06 0.8684864325 0.5954808423E-06 0.8708334629 0.5922524518E-06 0.8731804933 0.5886994060E-06 0.8755275237 0.5848283853E-06 0.8778745541 0.5806467632E-06 0.8802215844 0.5761625832E-06 0.8825686148 0.5713845309E-06 0.8849156452 0.5663219028E-06 0.8872626756 0.5609845710E-06 0.8896097060 0.5553829447E-06 0.8919567364 0.5495279283E-06 0.8943037668 0.5434308760E-06 0.8966507972 0.5371035442E-06 0.8989978276 0.5305580412E-06 0.9013448580 0.5238067753E-06 0.9036918884 0.5168624014E-06 0.9060389188 0.5097377668E-06 0.9083859492 0.5024458573E-06 0.9107329796 0.4949997428E-06 0.9130800099 0.4874125249E-06 0.9154270403 0.4796972859E-06 0.9177740707 0.4718670393E-06 0.9201211011 0.4639346845E-06 0.9224681315 0.4559129628E-06 0.9248151619 0.4478144188E-06 0.9271621923 0.4396513642E-06 0.9295092227 0.4314358465E-06 0.9318562531 0.4231796213E-06 0.9342032835 0.4148941296E-06 0.9365503139 0.4065904779E-06 0.9388973443 0.3982794239E-06 0.9412443747 0.3899713641E-06 0.9435914050 0.3816763267E-06 0.9459384354 0.3734039660E-06 0.9482854658 0.3651635610E-06 0.9506324962 0.3569640150E-06 0.9529795266 0.3488138583E-06 0.9553265570 0.3407212521E-06 0.9576735874 0.3326939931E-06 0.9600206178 0.3247395201E-06 0.9623676482 0.3168649204E-06 0.9647146786 0.3090769363E-06 0.9670617090 0.3013819726E-06 0.9694087394 0.2937861028E-06 0.9717557698 0.2862950764E-06 0.9741028002 0.2789143244E-06 0.9764498305 0.2716489655E-06 0.9787968609 0.2645038116E-06 0.9811438913 0.2574833723E-06 0.9834909217 0.2505918596E-06 0.9858379521 0.2438331923E-06 0.9881849825 0.2372109998E-06 0.9905320129 0.2307286260E-06 0.9928790433 0.2243891328E-06 0.9952260737 0.2181953044E-06 0.9975731041 0.2121496506E-06 0.9999201345 0.2062544117E-06 1.002267165 0.2005115623E-06 1.004614195 0.1949228169E-06 1.006961226 0.1894896350E-06 1.009308256 0.1842132274E-06 1.011655286 0.1790945626E-06 1.014002317 0.1741343742E-06 1.016349347 0.1693331690E-06 1.018696378 0.1646912358E-06 1.021043408 0.1602086543E-06 1.023390438 0.1558853059E-06 1.025737469 0.1517208837E-06 1.028084499 0.1477149046E-06 1.030431530 0.1438667207E-06 1.032778560 0.1401755320E-06 1.035125590 0.1386098417E-06 1.037472621 0.1396010000E-06 1.039819651 0.1405599131E-06 1.042166682 0.1414856188E-06 1.044513712 0.1423771825E-06 1.046860742 0.1432336992E-06 1.049207773 0.1440542948E-06 1.051554803 0.1448381274E-06 1.053901834 0.1455843890E-06 1.056248864 0.1462923070E-06 1.058595894 0.1469611452E-06 1.060942925 0.1475902053E-06 1.063289955 0.1481788280E-06 1.065636985 0.1487263945E-06 1.067984016 0.1492323270E-06 1.070331046 0.1496960903E-06 1.072678077 0.1501171923E-06 1.075025107 0.1504951852E-06 1.077372137 0.1508296661E-06 1.079719168 0.1511202778E-06 1.082066198 0.1513667094E-06 1.084413229 0.1515686970E-06 1.086760259 0.1517260239E-06 1.089107289 0.1518385211E-06 1.091454320 0.1519060679E-06 1.093801350 0.1519285915E-06 1.096152861 0.1516618155E-06 1.098504372 0.1508631778E-06 1.100855883 0.1495377423E-06 1.103207394 0.1476939231E-06 1.105558905 0.1453434469E-06 1.107910415 0.1425012991E-06 1.110261926 0.1391856553E-06 1.112613437 0.1354177979E-06 1.114964948 0.1312220173E-06 1.117316459 0.1266254998E-06 1.119667970 0.1216582002E-06 1.122019481 0.1163527024E-06 1.124370992 0.1151653936E-06 1.126722503 0.1184994901E-06 1.129074013 0.1221141102E-06 1.131425524 0.1260153748E-06 1.133777035 0.1302094569E-06 1.136128546 0.1347025099E-06 1.138480057 0.1395005899E-06 1.140831568 0.1446095749E-06 1.143183079 0.1500350795E-06 1.145534590 0.1557823650E-06 1.147886101 0.1618562458E-06 1.150237611 0.1682609919E-06 1.152589122 0.1750002268E-06 1.154940633 0.1820768223E-06 1.157292144 0.1894927889E-06 1.159643655 0.1972491637E-06 1.161995166 0.2053458930E-06 1.164346677 0.2137817142E-06 1.166698188 0.2225540327E-06 1.169049699 0.2316587977E-06 1.171401209 0.2410903757E-06 1.173752720 0.2508414230E-06 1.176104231 0.2609027583E-06 1.178455742 0.2712632360E-06 1.180807253 0.2819096227E-06 1.183158764 0.2928264789E-06 1.185510275 0.3039960477E-06 1.187861786 0.3153981553E-06 1.190213296 0.3270101261E-06 1.192564807 0.3388067182E-06 1.194916318 0.3507600860E-06 1.197267829 0.3628397756E-06 1.199619340 0.3750127625E-06 1.201970851 0.3872435407E-06 1.204322362 0.3994942732E-06 1.206673873 0.4117250151E-06 1.209025384 0.4238940187E-06 1.211376894 0.4359581316E-06 1.213728405 0.4478732942E-06 1.216079916 0.4595951409E-06 1.218431427 0.4710797036E-06 1.220782938 0.4822842092E-06 1.223134449 0.4931679558E-06 1.225485960 0.5036932415E-06 1.227837471 0.5138263117E-06 1.230188982 0.5235382830E-06 1.232540492 0.5328059958E-06 1.234892003 0.5416127465E-06 1.237243514 0.5499488531E-06 1.239595025 0.5578120158E-06 1.241946536 0.5652074494E-06 1.244298047 0.5721477763E-06 1.246649558 0.5786526907E-06 1.249001069 0.5847484173E-06 1.251352580 0.5904670040E-06 1.253704090 0.5958454938E-06 1.256055601 0.6009250275E-06 1.258407112 0.6057499250E-06 1.260758623 0.6103667876E-06 1.263110134 0.6148236574E-06 1.265461645 0.6191692567E-06 1.267813156 0.6234523237E-06 1.270164667 0.6277210501E-06 1.272516177 0.6320226215E-06 1.274867688 0.6364028514E-06 1.277219199 0.6409059019E-06 1.279570710 0.6455740776E-06 1.281922221 0.6504476795E-06 1.284273732 0.6555649075E-06 1.286625243 0.6609617975E-06 1.288976754 0.6666721835E-06 1.291328265 0.6727276734E-06 1.293679775 0.6791576312E-06 1.296031286 0.6859891571E-06 1.298382797 0.6932470595E-06 1.300734308 0.7009538142E-06 1.303085819 0.7091295052E-06 1.305437330 0.7177917457E-06 1.307788841 0.7269555742E-06 1.310140352 0.7366333258E-06 1.312491863 0.7468344760E-06 1.314843373 0.7575654574E-06 1.317194884 0.7688294493E-06 1.319546395 0.7806261423E-06 1.321897906 0.7929514795E-06 1.324249417 0.8057973788E-06 1.326600928 0.8191514429E-06 1.328952439 0.8329966638E-06 1.331303950 0.8473111320E-06 1.333655461 0.8620677647E-06 1.336006971 0.8772340679E-06 1.338358482 0.8927719523E-06 1.340709993 0.9086376259E-06 1.343061504 0.9247815891E-06 1.345413015 0.9411487606E-06 1.347764526 0.9576787628E-06 1.350116037 0.9743063954E-06 1.352467548 0.9909623204E-06 1.354819059 0.1007573974E-05 1.357170569 0.1024066712E-05 1.359522080 0.1040365169E-05 1.361873591 0.1056394803E-05 1.364225102 0.1072083570E-05 1.366576613 0.1087363645E-05 1.368928124 0.1102173094E-05 1.371279635 0.1116457401E-05 1.373631146 0.1130170737E-05 1.375982656 0.1143276893E-05 1.378334167 0.1155749811E-05 1.380685678 0.1167573694E-05 1.383037189 0.1178742707E-05 1.385388700 0.1189260310E-05 1.387740211 0.1199138309E-05 1.390091722 0.1208395697E-05 1.392443233 0.1217057390E-05 1.394794744 0.1225152930E-05 1.397146254 0.1232715235E-05 1.399497765 0.1239779432E-05 1.401849276 0.1246381819E-05 1.404200787 0.1252558965E-05 1.406552298 0.1258346955E-05 1.408903809 0.1263780770E-05 1.411255320 0.1268893792E-05 1.413606831 0.1273717414E-05 1.415958342 0.1278280751E-05 1.418309852 0.1282610415E-05 1.420661363 0.1286730359E-05 1.423012874 0.1290661766E-05 1.425364385 0.1294422976E-05 1.427715896 0.1298029444E-05 1.430067407 0.1301493713E-05 1.432418918 0.1304825413E-05 1.434770429 0.1308031269E-05 1.437121940 0.1311115118E-05 1.439473450 0.1314077939E-05 1.441824961 0.1316917885E-05 1.444176472 0.1319630333E-05 1.446527983 0.1322207927E-05 1.448879494 0.1324640639E-05 1.451231005 0.1326915825E-05 1.453582516 0.1329018297E-05 1.455934027 0.1330930387E-05 1.458285537 0.1332632018E-05 1.460637048 0.1334100775E-05 1.462988559 0.1480875157E-05 1.465340070 0.1639926538E-05 1.467691581 0.1807485005E-05 1.470043092 0.1983224000E-05 1.472394603 0.1988970647E-05 1.474746114 0.1957183821E-05 1.477097625 0.1924244478E-05 1.479449135 0.1890406425E-05 1.481800646 0.1855853312E-05 1.484152157 0.1820727164E-05 1.486503668 0.1785145617E-05 1.488855179 0.1749212989E-05 1.491206690 0.1713028127E-05 1.493558201 0.1676690737E-05 1.495909712 0.1640307311E-05 1.498261223 0.1603997444E-05 1.500612733 0.1567901154E-05 1.502964244 0.1532187515E-05 1.505315755 0.1497064234E-05 1.507667266 0.1462786061E-05 1.510018777 0.1429656325E-05 1.512370288 0.1398010647E-05 1.514721799 0.1368169146E-05 1.517073310 0.1340354872E-05 1.519424821 0.1314608759E-05 1.521776331 0.1290758106E-05 1.524127842 0.1268467918E-05 1.526479353 0.1247339459E-05 1.528830864 0.1226996075E-05 1.531182375 0.1207127731E-05 1.533533886 0.1187500629E-05 1.535885397 0.1167948873E-05 1.538236908 0.1148360647E-05 1.540588418 0.1128664894E-05 1.542939929 0.1108820409E-05 1.545291440 0.1088807525E-05 1.547642951 0.1068621950E-05 1.549994462 0.1048270248E-05 1.552345973 0.1027766539E-05 1.554697484 0.1007130067E-05 1.557048995 0.9863834205E-06 1.559400506 0.9655512183E-06 1.561752016 0.9446591398E-06 1.564103527 0.9237332169E-06 1.566455038 0.9027993177E-06 1.568806549 0.8818827775E-06 1.571158060 0.8610081384E-06 1.573509571 0.8401989737E-06 1.575861082 0.8194777743E-06 1.578212593 0.7988658821E-06 1.580564104 0.7783834585E-06 1.582915614 0.7580494778E-06 1.585267125 0.7378817400E-06 1.587618636 0.7178968952E-06 1.589970147 0.6981104775E-06 1.592321658 0.6785369444E-06 1.594673169 0.6591897186E-06 1.597024680 0.6400812322E-06 1.599376191 0.6212229702E-06 1.601727702 0.6026255140E-06 1.604079212 0.5842985826E-06 1.606430723 0.5662510734E-06 1.608782234 0.5484910994E-06 1.611133745 0.5310260259E-06 1.613485256 0.5138625039E-06 1.615836767 0.4970065020E-06 1.618188278 0.4804633366E-06 1.620539789 0.4642376994E-06 1.622891299 0.4483336841E-06 1.625242810 0.4327548111E-06 1.627594321 0.4175040504E-06 1.629945832 0.4025838444E-06 1.632297343 0.3879961278E-06 1.634648854 0.3737423486E-06 1.637000365 0.3598234861E-06 1.639351876 0.3462400699E-06 1.641703387 0.3329921971E-06 1.644054897 0.3200795494E-06 1.646406408 0.3075014096E-06 1.648757919 0.2952566778E-06 1.651109430 0.2833438872E-06 1.653460941 0.2717612193E-06 1.655812452 0.2605065195E-06 1.658163963 0.2495773121E-06 1.660515474 0.2389708149E-06 1.662866985 0.2286839540E-06 1.665218495 0.2187133786E-06 1.667570006 0.2090554754E-06 1.669921517 0.1997063827E-06 1.672273028 0.1906620051E-06 1.674624539 0.1819180274E-06 1.676976050 0.1734699289E-06 1.679327561 0.1653129969E-06 1.681679072 0.1574423414E-06 1.684030583 0.1498529081E-06 1.686382093 0.1425394922E-06 1.688733604 0.1354967522E-06 1.691085115 0.1287192228E-06 1.693436626 0.1222013282E-06 1.695788137 0.1159373952E-06 1.698139648 0.1099216654E-06 1.700491159 0.1041483085E-06 1.702842670 0.9861143403E-07 1.705194180 0.9330510346E-07 1.707545691 0.8822334223E-07 1.709897202 0.8336015117E-07 1.712248713 0.7870951778E-07 1.714600224 0.7426542734E-07 1.716951735 0.7002187364E-07 1.719303246 0.6597286963E-07 1.721654757 0.6211245772E-07 1.724006268 0.5843472010E-07 1.726357778 0.5493378880E-07 1.728709289 0.5160385586E-07 1.731060800 0.4843918360E-07 1.733412311 0.4543411517E-07 1.735763822 0.4258308572E-07 1.738115333 0.3988063443E-07 1.740466844 0.3732141814E-07 1.742818355 0.3490022717E-07 1.745169866 0.3261200469E-07 1.747521376 0.3045187149E-07 1.749872887 0.2841515908E-07 1.752224398 0.2649745600E-07 1.754575909 0.2469467514E-07 1.756927420 0.2300315610E-07 1.759278931 0.2141982685E-07 1.761630442 0.1994247060E-07 1.763981953 0.1857018607E-07 1.766333464 0.1730422198E-07 1.768684974 0.1614957047E-07 1.771036485 0.1511817414E-07 1.773387996 0.1423563739E-07 1.775739507 0.1355501338E-07 1.778091018 0.1317897482E-07 1.780442529 0.1325983753E-07 1.782794040 0.1389496605E-07 1.785145551 0.1501514583E-07 1.787497061 0.1647914061E-07 1.789848572 0.1818280500E-07 1.792200083 0.2006612350E-07 1.794551594 0.2209362602E-07 1.796903105 0.2424094470E-07 1.799254616 0.2648724222E-07 1.801606127 0.2880933093E-07 1.803957638 0.3117220283E-07 1.806309149 0.3350001535E-07 1.808660659 0.3553821991E-07 1.811012170 0.3610837325E-07 1.813363681 0.3369108424E-07 1.815715192 0.3022793016E-07 1.818066703 0.2680518041E-07 1.820418214 0.2362624949E-07 1.822769725 0.2073123379E-07 1.825121236 0.1812184089E-07 1.827472747 0.1578752844E-07 1.829824257 0.1371303238E-07 1.832175768 0.1188109802E-07 1.834527279 0.1027365928E-07 1.836878790 0.8872426674E-08 1.839230301 0.7659221580E-08 1.841581812 0.6616193241E-08 1.843933323 0.5725981997E-08 1.846284834 0.4971862964E-08 1.848636345 0.4337890169E-08 1.850987855 0.3809050815E-08 1.853339366 0.3371428526E-08 1.855690877 0.3012363252E-08 1.858042388 0.2720587563E-08 1.860393899 0.2486318471E-08 1.862745410 0.2301291742E-08 1.865096921 0.2158738682E-08 1.867448432 0.2053317985E-08 1.869799942 0.1981022678E-08 1.872151453 0.1939083647E-08 1.874502964 0.1925887973E-08 1.876849995 0.1971763652E-08 1.879197025 0.2115782261E-08 1.881544055 0.2368149328E-08 1.883891086 0.2745926863E-08 1.886238116 0.3273002220E-08 1.888585147 0.3980044072E-08 1.890932177 0.4904445121E-08 1.893279207 0.6090250927E-08 1.895626238 0.7588073955E-08 1.897973268 0.9454991540E-08 1.900320299 0.1175442605E-07 1.902667329 0.1455600509E-07 1.905014359 0.1793539900E-07 1.907361390 0.2197413283E-07 1.909708420 0.2675936939E-07 1.912055451 0.3238366031E-07 1.914402481 0.3894466224E-07 1.916749511 0.4654481618E-07 1.919096542 0.5529098887E-07 1.921443572 0.6529407665E-07 1.923790603 0.7666857380E-07 1.926137633 0.8953210861E-07 1.928484663 0.9635749799E-07 1.930831694 0.1027701667E-06 1.933178724 0.1096161623E-06 1.935525754 0.1169101109E-06 1.937872785 0.1246661765E-06 1.940219815 0.1328979571E-06 1.942566846 0.1416183789E-06 1.944913876 0.1508395903E-06 1.947260906 0.1605728565E-06 1.949607937 0.1708284526E-06 1.951954967 0.1816155580E-06 1.954301998 0.1929421502E-06 1.956649028 0.2048148996E-06 1.958996058 0.2172390639E-06 1.961343089 0.2302183832E-06 1.963690119 0.2437549753E-06 1.966037150 0.2578492313E-06 1.968384180 0.2724997107E-06 1.970731210 0.2877030372E-06 1.973078241 0.3034537930E-06 1.975425271 0.3197444130E-06 1.977772302 0.3365650777E-06 1.980119332 0.3539036050E-06 1.982466362 0.3717453397E-06 1.984813393 0.3900730417E-06 1.987160423 0.4088667719E-06 1.989507454 0.4281037765E-06 1.991854484 0.4477583698E-06 1.994201514 0.4678018173E-06 1.996548545 0.4882022201E-06 1.998895575 0.5089244042E-06 2.001242605 0.5299298181E-06 2.003589636 0.5511764465E-06 2.005936666 0.5726187457E-06 2.008283697 0.5942076140E-06 2.010630727 0.6158904097E-06 2.012977757 0.6376110341E-06 2.015324788 0.6593100999E-06 2.017671818 0.6809252072E-06 2.020018849 0.7023913510E-06 2.022365879 0.7236414817E-06 2.024712909 0.7446072358E-06 2.027059940 0.7652198428E-06 2.029406970 0.7854112003E-06 2.031754001 0.8051150879E-06 2.034101031 0.8242684693E-06 2.036448061 0.8428128068E-06 2.038795092 0.8606952974E-06 2.041142122 0.8778699309E-06 2.043489153 0.8942982788E-06 2.045836183 0.9099499439E-06 2.048183213 0.9248026362E-06 2.050530244 0.9388418797E-06 2.052877274 0.9520603962E-06 2.055224304 0.9644572402E-06 2.057571335 0.9760367762E-06 2.059918365 0.9868075909E-06 2.062265396 0.9967814226E-06 2.064612426 0.1005972172E-05 2.066959456 0.1014395038E-05 2.069306487 0.1022065794E-05 2.071653517 0.1029000220E-05 2.074000548 0.1035213676E-05 2.076347578 0.1040720797E-05 2.078694608 0.1045535306E-05 2.081041639 0.1049669907E-05 2.083388669 0.1053136248E-05 2.085735700 0.1055944942E-05 2.088082730 0.1058105617E-05 2.090429760 0.1059627001E-05 2.092776791 0.1060517015E-05 2.095123821 0.1060782882E-05 2.097470852 0.1060431239E-05 2.099817882 0.1059468248E-05 2.102164912 0.1057899708E-05 2.104511943 0.1055731160E-05 2.106858973 0.1052967989E-05 2.109206004 0.1049615520E-05 2.111553034 0.1045679111E-05 2.113900064 0.1041164234E-05 2.116247095 0.1036076553E-05 2.118594125 0.1030422004E-05 2.120941155 0.1024206852E-05 2.123288186 0.1017437762E-05 2.125635216 0.1010121851E-05 2.127982247 0.1002266743E-05 2.130329277 0.9938806135E-06 2.132676307 0.9849722361E-06 2.135023338 0.9755510177E-06 2.137370368 0.9656270339E-06 2.139717399 0.9552110582E-06 2.142064429 0.9443145875E-06 2.144411459 0.9329498627E-06 2.146758490 0.9211298845E-06 2.149105520 0.9088684259E-06 2.151452551 0.8961800384E-06 2.153799581 0.8830800550E-06 2.156146611 0.8695845873E-06 2.158493642 0.8557105185E-06 2.160840672 0.8414754906E-06 2.163187703 0.8268978878E-06 2.165534733 0.8119968135E-06 2.167881763 0.7967920632E-06 2.170228794 0.7813040922E-06 2.172575824 0.7655539783E-06 2.174922855 0.7495633797E-06 2.177269885 0.7333544879E-06 2.179616915 0.7169499772E-06 2.181963946 0.7003729483E-06 2.184310976 0.6836468698E-06 2.186658006 0.6667955142E-06 2.189005037 0.6498428922E-06 2.191352067 0.6328131831E-06 2.193699098 0.6157306628E-06 2.196046128 0.5986196305E-06 2.198393158 0.5815043333E-06 2.200740189 0.5644088892E-06 2.203087219 0.5473572108E-06 2.205434250 0.5303729281E-06 2.207781280 0.5134793119E-06 2.210128310 0.4966991986E-06 2.212475341 0.4800549156E-06 2.214822371 0.4635682100E-06 2.217169402 0.4472601787E-06 2.219516432 0.4311512015E-06 2.221863462 0.4152608784E-06 2.224210493 0.3996079699E-06 2.226557523 0.3842103411E-06 2.228904554 0.3690849114E-06 2.231251584 0.3542476078E-06 2.233598614 0.3397133238E-06 2.235945645 0.3254958834E-06 2.238292675 0.3116080106E-06 2.240639706 0.2980613038E-06 2.242986736 0.2848662170E-06 2.245333766 0.2720320458E-06 2.247680797 0.2595669195E-06 2.250027827 0.2474777988E-06 2.252374857 0.2357704792E-06 2.254721888 0.2244496005E-06 2.257068918 0.2135186613E-06 2.259415949 0.2029800387E-06 2.261762979 0.1928350140E-06 2.264110009 0.1830838029E-06 2.266457040 0.1737255907E-06 2.268804070 0.1647585717E-06 2.271151101 0.1561799938E-06 2.273498131 0.1479862061E-06 2.275845161 0.1401727109E-06 2.278192192 0.1327342194E-06 2.280539222 0.1256647094E-06 2.282886253 0.1189574870E-06 2.285233283 0.1126052500E-06 2.287580313 0.1066001540E-06 2.289927344 0.1009338792E-06 2.292274374 0.9559769958E-07 2.294621405 0.9058255275E-07 2.296968435 0.8587911011E-07 2.299315465 0.8147784760E-07 2.301662496 0.7736911629E-07 2.304009526 0.7354321238E-07 2.306356557 0.6999044646E-07 2.308703587 0.6670121163E-07 2.311050617 0.6366604996E-07 2.313397648 0.6087571730E-07 2.315744678 0.5832124573E-07 2.318091708 0.5599400373E-07 2.320438739 0.5388575338E-07 2.322785769 0.5198870473E-07 2.325132800 0.5029556669E-07 2.327479830 0.4879959448E-07 2.329826860 0.4749463324E-07 2.332173891 0.4637515771E-07 2.334520921 0.4543630770E-07 2.336867952 0.4467391918E-07 2.339214982 0.4408455098E-07 2.341562012 0.4366550679E-07 2.343909043 0.4341485243E-07 2.346256073 0.4333142842E-07 0.000000000 0.3567811038E-07 0.2347351854E-02 0.3576675135E-07 0.4694703708E-02 0.3603329182E-07 0.7042055561E-02 0.3647958297E-07 0.9389407415E-02 0.3710870534E-07 0.1173675927E-01 0.3792496163E-07 0.1408411112E-01 0.3893386676E-07 0.1643146298E-01 0.4014213509E-07 0.1877881483E-01 0.4155766510E-07 0.2112616668E-01 0.4318952130E-07 0.2347351854E-01 0.4504791378E-07 0.2582087039E-01 0.4714417528E-07 0.2816822225E-01 0.4949073599E-07 0.3051557410E-01 0.5210109614E-07 0.3286292595E-01 0.5498979657E-07 0.3521027781E-01 0.5817238729E-07 0.3755762966E-01 0.6166539428E-07 0.3990498151E-01 0.6548628445E-07 0.4225233337E-01 0.6430690563E-07 0.4459968522E-01 0.6154671122E-07 0.4694703708E-01 0.5872020601E-07 0.4929438893E-01 0.5583908182E-07 0.5164174078E-01 0.5291528630E-07 0.5398909264E-01 0.4996097633E-07 0.5633644449E-01 0.4698847037E-07 0.5868379634E-01 0.4401019991E-07 0.6103114820E-01 0.4103866016E-07 0.6337850005E-01 0.3808636030E-07 0.6572585191E-01 0.3516577333E-07 0.6807320376E-01 0.3228928589E-07 0.7042055561E-01 0.2946914815E-07 0.7276790747E-01 0.2671742418E-07 0.7511525932E-01 0.2404594305E-07 0.7746261117E-01 0.2146625103E-07 0.7980996303E-01 0.1898956568E-07 0.8215731488E-01 0.1662673231E-07 0.8450466674E-01 0.1438818454E-07 0.8685201859E-01 0.1228391091E-07 0.8919937044E-01 0.1032343211E-07 0.9154672230E-01 0.8515797197E-08 0.9389407415E-01 0.6869617636E-08 0.9624142601E-01 0.5393183332E-08 0.9858877786E-01 0.4094776540E-08 0.1009361297 0.2983521003E-08 0.1032834816 0.2071835496E-08 0.1056308334 0.1382349868E-08 0.1079781853 0.9522069149E-09 0.1103255371 0.7585731032E-09 0.1126728890 0.6814170767E-09 0.1150202408 0.6456090142E-09 0.1173675927 0.6262327828E-09 0.1197149445 0.6148181272E-09 0.1220622964 0.6079524223E-09 0.1244096483 0.6040459748E-09 0.1267570001 0.6022750088E-09 0.1291043520 0.6021792460E-09 0.1314517038 0.6034882655E-09 0.1337990557 0.6060387695E-09 0.1361464075 0.6097319232E-09 0.1384937594 0.6145099111E-09 0.1408411112 0.6203423667E-09 0.1431884631 0.6272181777E-09 0.1455358149 0.6351403612E-09 0.1478831668 0.6441227705E-09 0.1502305186 0.6541879319E-09 0.1525778705 0.6653656028E-09 0.1549252223 0.6776918037E-09 0.1572725742 0.6912081684E-09 0.1596199261 0.7059615129E-09 0.1619672779 0.7220035587E-09 0.1643146298 0.7393907659E-09 0.1666619816 0.7581842463E-09 0.1690093335 0.7784497355E-09 0.1713566853 0.8002576088E-09 0.1737040372 0.8236829306E-09 0.1760513890 0.8488055281E-09 0.1783987409 0.8757100852E-09 0.1807460927 0.9044862498E-09 0.1830934446 0.9352287532E-09 0.1854407964 0.9680375370E-09 0.1877881483 0.1003017886E-08 0.1901355002 0.1040280566E-08 0.1924828520 0.1079941963E-08 0.1948302039 0.1122124225E-08 0.1971775557 0.1166955407E-08 0.1995249076 0.1214569609E-08 0.2018722594 0.1265107119E-08 0.2042196113 0.1318714554E-08 0.2065669631 0.1375544998E-08 0.2089143150 0.1435758137E-08 0.2112616668 0.1499520399E-08 0.2136090187 0.1567005083E-08 0.2159563705 0.1638392495E-08 0.2183037224 0.1713870081E-08 0.2206510743 0.1793632561E-08 0.2229984261 0.1877882068E-08 0.2253457780 0.1966828288E-08 0.2276931298 0.2060688617E-08 0.2300404817 0.2159688318E-08 0.2323878335 0.2264060704E-08 0.2347351854 0.2374047348E-08 0.2370825372 0.2489898318E-08 0.2394298891 0.2611872462E-08 0.2417772409 0.2740237758E-08 0.2441245928 0.2875271743E-08 0.2464719446 0.3017262058E-08 0.2488192965 0.3166507142E-08 0.2511666484 0.3323317141E-08 0.2535140002 0.3488015099E-08 0.2558613521 0.3660938550E-08 0.2582087039 0.3842441666E-08 0.2605560558 0.4032898214E-08 0.2629034076 0.4232705661E-08 0.2652507595 0.4442291012E-08 0.2675981113 0.4662119251E-08 0.2699454632 0.4892705857E-08 0.2722928150 0.5134635863E-08 0.2746401669 0.5388593864E-08 0.2769875187 0.5655413118E-08 0.2793348706 0.5936159749E-08 0.2816822225 0.6232285749E-08 0.2840295743 0.6545927694E-08 0.2863769262 0.6880546112E-08 0.2887242780 0.7242469854E-08 0.2910716299 0.7645297472E-08 0.2934189817 0.8125797130E-08 0.2957663336 0.8824765978E-08 0.2981136854 0.1047289722E-07 0.3004610373 0.1439258425E-07 0.3028083891 0.2016497994E-07 0.3051557410 0.2747492103E-07 0.3075030928 0.3637659434E-07 0.3098504447 0.4701784695E-07 0.3121977966 0.5959314655E-07 0.3145451484 0.7433816347E-07 0.3168925003 0.9153086396E-07 0.3192398521 0.1114902595E-06 0.3215872040 0.1345682557E-06 0.3239345558 0.1611330429E-06 0.3262819077 0.1915471739E-06 0.3286292595 0.2261475846E-06 0.3309766114 0.2652344181E-06 0.3333239632 0.3090704795E-06 0.3356713151 0.3578879936E-06 0.3380186669 0.4118977503E-06 0.3403660188 0.4712971993E-06 0.3427133707 0.5362761998E-06 0.3450607225 0.5351698646E-06 0.3474080744 0.4156002753E-06 0.3497554262 0.4454611263E-06 0.3521027781 0.4932196255E-06 0.3544501299 0.5439549805E-06 0.3567974818 0.5977618993E-06 0.3591448336 0.6547323750E-06 0.3614921855 0.7149556293E-06 0.3638395373 0.7785180556E-06 0.3661868892 0.8455031510E-06 0.3685342410 0.9159914348E-06 0.3708815929 0.9900603514E-06 0.3732289448 0.1067784160E-05 0.3755762966 0.1149233814E-05 0.3779236485 0.1234476830E-05 0.3802710003 0.1323577152E-05 0.3826183522 0.1416595006E-05 0.3849657040 0.1513586760E-05 0.3873130559 0.1614604774E-05 0.3896604077 0.1719697252E-05 0.3920077596 0.1828908098E-05 0.3943551114 0.1942276767E-05 0.3967024633 0.2059838127E-05 0.3990498151 0.2181622316E-05 0.4013971670 0.2307654610E-05 0.4037445189 0.2437955287E-05 0.4060918707 0.2572539507E-05 0.4084392226 0.2711417189E-05 0.4107865744 0.2854592896E-05 0.4131339263 0.3002065730E-05 0.4154812781 0.3153829230E-05 0.4178286300 0.3309871276E-05 0.4201759818 0.3470174008E-05 0.4225233337 0.3634713746E-05 0.4248706855 0.3803460919E-05 0.4272180374 0.3976380005E-05 0.4295653892 0.4027156559E-05 0.4319127411 0.3931430390E-05 0.4342600929 0.3835283661E-05 0.4366074448 0.3738845095E-05 0.4389547967 0.3642241719E-05 0.4413021485 0.3545598585E-05 0.4436495004 0.3449038501E-05 0.4459968522 0.3352681768E-05 0.4483442041 0.3256645938E-05 0.4506915559 0.3161045587E-05 0.4530389078 0.3065992090E-05 0.4553862596 0.2971593425E-05 0.4577336115 0.2877953984E-05 0.4600809633 0.2785174395E-05 0.4624283152 0.2693351366E-05 0.4647756670 0.2602577543E-05 0.4671230189 0.2512941373E-05 0.4694703708 0.2424526993E-05 0.4718177226 0.2337414127E-05 0.4741650745 0.2251678003E-05 0.4765124263 0.2167389274E-05 0.4788597782 0.2084613963E-05 0.4812071300 0.2003413419E-05 0.4835544819 0.1923844282E-05 0.4859018337 0.1845958469E-05 0.4882491856 0.1769803168E-05 0.4905965374 0.1695420843E-05 0.4929438893 0.1622849259E-05 0.4952912411 0.1552121511E-05 0.4976385930 0.1483266068E-05 0.4999859449 0.1416306835E-05 0.5023332967 0.1351263209E-05 0.5046806486 0.1288150168E-05 0.5070280004 0.1226978349E-05 0.5093753523 0.1167754151E-05 0.5117227041 0.1110479840E-05 0.5140700560 0.1055153665E-05 0.5164174078 0.1001769982E-05 0.5187647597 0.9503193846E-06 0.5211121115 0.9007888439E-06 0.5234594634 0.8531618554E-06 0.5258068152 0.8074185901E-06 0.5281541671 0.7635360532E-06 0.5305015190 0.7214882469E-06 0.5328488708 0.6812463389E-06 0.5351962227 0.6427788334E-06 0.5375435745 0.6060517475E-06 0.5398909264 0.5710287884E-06 0.5422382782 0.5376715345E-06 0.5445856301 0.5059396176E-06 0.5469329819 0.4757909054E-06 0.5492803338 0.4471816862E-06 0.5516276856 0.4200668515E-06 0.5539750375 0.3944000802E-06 0.5563223893 0.3701340198E-06 0.5586697412 0.3472204675E-06 0.5610170931 0.3256105489E-06 0.5633644449 0.3052548955E-06 0.5657117968 0.2861038198E-06 0.5680591486 0.2681074897E-06 0.5704065005 0.2512161017E-06 0.5727538523 0.2353800553E-06 0.5751012042 0.2205501302E-06 0.5774485560 0.2066776692E-06 0.5797959079 0.1937147724E-06 0.5821432597 0.1816145072E-06 0.5844906116 0.1703311463E-06 0.5868379634 0.1598204445E-06 0.5891853153 0.1537313638E-06 0.5915326672 0.1543251196E-06 0.5938800190 0.1548767931E-06 0.5962273709 0.1553859508E-06 0.5985747227 0.1558521920E-06 0.6009220746 0.1562751492E-06 0.6032694264 0.1566544884E-06 0.6056167783 0.1569899099E-06 0.6079641301 0.1572811482E-06 0.6103114820 0.1575279726E-06 0.6126588338 0.1577301875E-06 0.6150061857 0.1578876326E-06 0.6173535375 0.1580001827E-06 0.6197008894 0.1580677485E-06 0.6220482413 0.1580902764E-06 0.6243952716 0.1579486685E-06 0.6267423020 0.1579692906E-06 0.6290893324 0.1581521741E-06 0.6314363628 0.1584974317E-06 0.6337833932 0.1590052555E-06 0.6361304236 0.1596759149E-06 0.6384774540 0.1605097533E-06 0.6408244844 0.1615071831E-06 0.6431715148 0.1626686806E-06 0.6455185452 0.1639947790E-06 0.6478655756 0.1654860608E-06 0.6502126060 0.1671431488E-06 0.6525596364 0.1689666970E-06 0.6549066668 0.1709573795E-06 0.6572536971 0.1731158797E-06 0.6596007275 0.1754428775E-06 0.6619477579 0.1779390367E-06 0.6642947883 0.1806049913E-06 0.6666418187 0.1834413316E-06 0.6689888491 0.1864485890E-06 0.6713358795 0.1896272207E-06 0.6736829099 0.1929775948E-06 0.6760299403 0.1964999735E-06 0.6783769707 0.2001944975E-06 0.6807240011 0.2040611693E-06 0.6830710315 0.2080998370E-06 0.6854180619 0.2123101777E-06 0.6877650922 0.2166916812E-06 0.6901121226 0.2212436339E-06 0.6924591530 0.2259651027E-06 0.6948061834 0.2308549195E-06 0.6971532138 0.2359116663E-06 0.6995002442 0.2411336598E-06 0.7018472746 0.2465189380E-06 0.7041943050 0.2520652463E-06 0.7065413354 0.2577700251E-06 0.7088883658 0.2636303977E-06 0.7112353962 0.2696431591E-06 0.7135824266 0.2758047663E-06 0.7159294570 0.2821113288E-06 0.7182764874 0.2885586009E-06 0.7206235177 0.2951419746E-06 0.7229705481 0.3018564739E-06 0.7253175785 0.3086967504E-06 0.7276646089 0.3156570801E-06 0.7300116393 0.3227313613E-06 0.7323586697 0.3299131144E-06 0.7347057001 0.3371954823E-06 0.7370527305 0.3445712329E-06 0.7393997609 0.3520327629E-06 0.7417467913 0.3595721025E-06 0.7440938217 0.3671809220E-06 0.7464408521 0.3748505401E-06 0.7487878825 0.3825719332E-06 0.7511349128 0.3903357460E-06 0.7534819432 0.3981323042E-06 0.7558289736 0.4059516279E-06 0.7581760040 0.4137834469E-06 0.7605230344 0.4216172169E-06 0.7628700648 0.4294421376E-06 0.7652170952 0.4372471714E-06 0.7675641256 0.4450210641E-06 0.7699111560 0.4527523659E-06 0.7722581864 0.4604294545E-06 0.7746052168 0.4680405583E-06 0.7769522472 0.4755737816E-06 0.7792992776 0.4830171299E-06 0.7816463080 0.4903585368E-06 0.7839933383 0.4975858911E-06 0.7863403687 0.5046870649E-06 0.7886873991 0.5116499428E-06 0.7910344295 0.5184624508E-06 0.7933814599 0.5251125864E-06 0.7957284903 0.5315884489E-06 0.7980755207 0.5378782702E-06 0.8004225511 0.5439704453E-06 0.8027695815 0.5498535641E-06 0.8051166119 0.5555164419E-06 0.8074636423 0.5609481508E-06 0.8098106727 0.5661380509E-06 0.8121577031 0.5710758215E-06 0.8145047335 0.5757514910E-06 0.8168517638 0.5801554680E-06 0.8191987942 0.5842785710E-06 0.8215458246 0.5881120574E-06 0.8238928550 0.5916476528E-06 0.8262398854 0.5948775787E-06 0.8285869158 0.5977945799E-06 0.8309339462 0.6003919510E-06 0.8332809766 0.6026635615E-06 0.8356280070 0.6046038804E-06 0.8379750374 0.6062079989E-06 0.8403220678 0.6074716526E-06 0.8426690982 0.6083912415E-06 0.8450161286 0.6089638489E-06 0.8473631589 0.6091872584E-06 0.8497101893 0.6105575236E-06 0.8520572197 0.6176771161E-06 0.8544042501 0.6246506665E-06 0.8567512805 0.6314732106E-06 0.8590983109 0.6381400233E-06 0.8614453413 0.6446466270E-06 0.8637923717 0.6509887983E-06 0.8661394021 0.6571625751E-06 0.8684864325 0.6631642617E-06 0.8708334629 0.6689904348E-06 0.8731804933 0.6746379477E-06 0.8755275237 0.6801039341E-06 0.8778745541 0.6853858117E-06 0.8802215844 0.6904812845E-06 0.8825686148 0.6953883446E-06 0.8849156452 0.7001052738E-06 0.8872626756 0.7046306437E-06 0.8896097060 0.7089633159E-06 0.8919567364 0.7131024413E-06 0.8943037668 0.7170474586E-06 0.8966507972 0.7207980920E-06 0.8989978276 0.7243543493E-06 0.9013448580 0.7277165181E-06 0.9036918884 0.7308851623E-06 0.9060389188 0.7338611178E-06 0.9083859492 0.7366454874E-06 0.9107329796 0.7392396360E-06 0.9130800099 0.7416451839E-06 0.9154270403 0.7438640014E-06 0.9177740707 0.7458982014E-06 0.9201211011 0.7477501324E-06 0.9224681315 0.7494223715E-06 0.9248151619 0.7509177154E-06 0.9271621923 0.7522391735E-06 0.9295092227 0.7533899582E-06 0.9318562531 0.7543734770E-06 0.9342032835 0.7551933227E-06 0.9365503139 0.7558532650E-06 0.9388973443 0.7563572403E-06 0.9412443747 0.7567093425E-06 0.9435914050 0.7569138133E-06 0.9459384354 0.7569750323E-06 0.9482854658 0.7568975069E-06 0.9506324962 0.7566858629E-06 0.9529795266 0.7563448341E-06 0.9553265570 0.7558792523E-06 0.9576735874 0.7552940380E-06 0.9600206178 0.7545941897E-06 0.9623676482 0.7537847749E-06 0.9647146786 0.7528709199E-06 0.9670617090 0.7518578004E-06 0.9694087394 0.7507506321E-06 0.9717557698 0.7495546617E-06 0.9741028002 0.7482751572E-06 0.9764498305 0.7469173998E-06 0.9787968609 0.7454866745E-06 0.9811438913 0.7439882623E-06 0.9834909217 0.7424274314E-06 0.9858379521 0.7408094298E-06 0.9881849825 0.7391394772E-06 0.9905320129 0.7374227576E-06 0.9928790433 0.7356644124E-06 0.9952260737 0.7338695332E-06 0.9975731041 0.7320431555E-06 0.9999201345 0.7301902521E-06 1.002267165 0.7283157273E-06 1.004614195 0.7264244111E-06 1.006961226 0.7245210538E-06 1.009308256 0.7226103207E-06 1.011655286 0.7073898742E-06 1.014002317 0.6829336762E-06 1.016349347 0.6593553367E-06 1.018696378 0.6366506719E-06 1.021043408 0.6148142484E-06 1.023390438 0.5938394669E-06 1.025737469 0.5737186483E-06 1.028084499 0.5544431230E-06 1.030431530 0.5360033221E-06 1.032778560 0.5183888713E-06 1.035125590 0.5015886856E-06 1.037472621 0.4855910653E-06 1.039819651 0.4703837932E-06 1.042166682 0.4559542319E-06 1.044513712 0.4422894208E-06 1.046860742 0.4293761729E-06 1.049207773 0.4172011709E-06 1.051554803 0.4057510613E-06 1.053901834 0.3950125478E-06 1.056248864 0.3849724817E-06 1.058595894 0.3756179504E-06 1.060942925 0.3669363627E-06 1.063289955 0.3589155314E-06 1.065636985 0.3515437514E-06 1.067984016 0.3448098751E-06 1.070331046 0.3387033823E-06 1.072678077 0.3332144468E-06 1.075025107 0.3283339973E-06 1.077372137 0.3240537735E-06 1.079719168 0.3203663771E-06 1.082066198 0.3172653171E-06 1.084413229 0.3147450493E-06 1.086760259 0.3128010098E-06 1.089107289 0.3114296432E-06 1.091454320 0.3106284236E-06 1.093801350 0.3103958701E-06 1.096152861 0.3105500432E-06 1.098504372 0.3110750681E-06 1.100855883 0.3119712354E-06 1.103207394 0.3132390434E-06 1.105558905 0.3148791909E-06 1.107910415 0.3168925667E-06 1.110261926 0.3192802364E-06 1.112613437 0.3220434258E-06 1.114964948 0.3251835025E-06 1.117316459 0.3287019541E-06 1.119667970 0.3326003642E-06 1.122019481 0.3368803863E-06 1.124370992 0.3415437156E-06 1.126722503 0.3465920582E-06 1.129074013 0.3520270997E-06 1.131425524 0.3578504717E-06 1.133777035 0.3640637169E-06 1.136128546 0.3706682534E-06 1.138480057 0.3776653384E-06 1.140831568 0.3850560309E-06 1.143183079 0.3928411547E-06 1.145534590 0.4010212605E-06 1.147886101 0.4095965890E-06 1.150237611 0.4185670340E-06 1.152589122 0.4279321057E-06 1.154940633 0.4376908960E-06 1.157292144 0.4478420431E-06 1.159643655 0.4583836988E-06 1.161995166 0.4693134962E-06 1.164346677 0.4806285188E-06 1.166698188 0.4923252712E-06 1.169049699 0.5043996514E-06 1.171401209 0.5168469241E-06 1.173752720 0.5296616957E-06 1.176104231 0.5428378902E-06 1.178455742 0.5563687264E-06 1.180807253 0.5702466959E-06 1.183158764 0.5844635415E-06 1.185510275 0.5990102358E-06 1.187861786 0.6092267013E-06 1.190213296 0.6081323599E-06 1.192564807 0.6072220530E-06 1.194916318 0.6065077086E-06 1.197267829 0.6060012999E-06 1.199619340 0.6057148479E-06 1.201970851 0.6056604235E-06 1.204322362 0.6058501514E-06 1.206673873 0.6062962148E-06 1.209025384 0.6070108611E-06 1.211376894 0.6080064074E-06 1.213728405 0.6092952482E-06 1.216079916 0.6108898621E-06 1.218431427 0.6128028200E-06 1.220782938 0.6150467933E-06 1.223134449 0.6176345619E-06 1.225485960 0.6205790225E-06 1.227837471 0.6238931970E-06 1.230188982 0.6275902404E-06 1.232540492 0.6316834479E-06 1.234892003 0.6361862619E-06 1.237243514 0.6411122783E-06 1.239595025 0.6464752510E-06 1.241946536 0.6522890963E-06 1.244298047 0.6585678952E-06 1.246649558 0.6653258947E-06 1.249001069 0.6725775071E-06 1.251352580 0.6803373078E-06 1.253704090 0.6886200307E-06 1.256055601 0.6974405622E-06 1.258407112 0.7068139316E-06 1.260758623 0.7167553006E-06 1.263110134 0.7272799488E-06 1.265461645 0.7384032579E-06 1.267813156 0.7501406916E-06 1.270164667 0.7625077740E-06 1.272516177 0.7755200639E-06 1.274867688 0.7891931266E-06 1.277219199 0.8035425028E-06 1.279570710 0.8185836736E-06 1.281922221 0.8343320231E-06 1.284273732 0.8508027973E-06 1.286625243 0.8680110601E-06 1.288976754 0.8859716464E-06 1.291328265 0.9046991118E-06 1.293679775 0.9242076794E-06 1.296031286 0.9445111837E-06 1.298382797 0.9656230127E-06 1.300734308 0.9875560456E-06 1.303085819 0.1010322590E-05 1.305437330 0.1033934315E-05 1.307788841 0.1058402187E-05 1.310140352 0.1083736392E-05 1.312491863 0.1109946276E-05 1.314843373 0.1137040264E-05 1.317194884 0.1165025788E-05 1.319546395 0.1193909220E-05 1.321897906 0.1223695789E-05 1.324249417 0.1254389514E-05 1.326600928 0.1285993130E-05 1.328952439 0.1318508013E-05 1.331303950 0.1351934114E-05 1.333655461 0.1386269884E-05 1.336006971 0.1421512215E-05 1.338358482 0.1457656371E-05 1.340709993 0.1494695927E-05 1.343061504 0.1532622718E-05 1.345413015 0.1571426779E-05 1.347764526 0.1587827664E-05 1.350116037 0.1598227458E-05 1.352467548 0.1608877171E-05 1.354819059 0.1619811538E-05 1.357170569 0.1631062491E-05 1.359522080 0.1642657975E-05 1.361873591 0.1654620684E-05 1.364225102 0.1666966806E-05 1.366576613 0.1679704816E-05 1.368928124 0.1692834462E-05 1.371279635 0.1706345992E-05 1.373631146 0.1720219755E-05 1.375982656 0.1734426211E-05 1.378334167 0.1748926414E-05 1.380685678 0.1763672939E-05 1.383037189 0.1778611234E-05 1.385388700 0.1793681292E-05 1.387740211 0.1808819554E-05 1.390091722 0.1823960917E-05 1.392443233 0.1839040727E-05 1.394794744 0.1853996650E-05 1.397146254 0.1868770339E-05 1.399497765 0.1883308839E-05 1.401849276 0.1897565682E-05 1.404200787 0.1911501672E-05 1.406552298 0.1925085367E-05 1.408903809 0.1938293261E-05 1.411255320 0.1951109718E-05 1.413606831 0.1963526672E-05 1.415958342 0.1975543134E-05 1.418309852 0.1987164531E-05 1.420661363 0.1998401890E-05 1.423012874 0.2009270884E-05 1.425364385 0.2019790721E-05 1.427715896 0.2029982841E-05 1.430067407 0.2039869350E-05 1.432418918 0.2049471053E-05 1.434770429 0.2058804872E-05 1.437121940 0.2067880240E-05 1.439473450 0.2076693809E-05 1.441824961 0.2085221270E-05 1.444176472 0.2093404103E-05 1.446527983 0.2101127256E-05 1.448879494 0.2108180462E-05 1.451231005 0.2114190759E-05 1.453582516 0.2118510634E-05 1.455934027 0.2120069080E-05 1.458285537 0.2117319667E-05 1.460637048 0.2108668502E-05 1.462988559 0.2093487404E-05 1.465340070 0.2072577153E-05 1.467691581 0.2047397076E-05 1.470043092 0.2019232418E-05 1.472394603 0.2166668016E-05 1.474746114 0.2287042205E-05 1.477097625 0.2300708897E-05 1.479449135 0.2315528703E-05 1.481800646 0.2331387013E-05 1.484152157 0.2348204059E-05 1.486503668 0.2365911929E-05 1.488855179 0.2384425030E-05 1.491206690 0.2403557503E-05 1.493558201 0.2422544334E-05 1.495909712 0.2433412499E-05 1.498261223 0.2414033246E-05 1.500612733 0.2387504604E-05 1.502964244 0.2360901854E-05 1.505315755 0.2334929529E-05 1.507667266 0.2309759585E-05 1.510018777 0.2285459322E-05 1.512370288 0.2262061910E-05 1.514721799 0.2239584452E-05 1.517073310 0.2218033830E-05 1.519424821 0.2197408866E-05 1.521776331 0.2177701249E-05 1.524127842 0.2158896019E-05 1.526479353 0.2140971943E-05 1.528830864 0.2123901920E-05 1.531182375 0.2107653440E-05 1.533533886 0.2092189136E-05 1.535885397 0.2077467397E-05 1.538236908 0.2063443025E-05 1.540588418 0.2050067923E-05 1.542939929 0.2037291773E-05 1.545291440 0.2025062687E-05 1.547642951 0.2013327821E-05 1.549994462 0.2002033924E-05 1.552345973 0.1991127829E-05 1.554697484 0.1980556865E-05 1.557048995 0.1970269211E-05 1.559400506 0.1960214174E-05 1.561752016 0.1950342419E-05 1.564103527 0.1940606133E-05 1.566455038 0.1930959151E-05 1.568806549 0.1921357045E-05 1.571158060 0.1911757174E-05 1.573509571 0.1902118713E-05 1.575861082 0.1892402670E-05 1.578212593 0.1882571873E-05 1.580564104 0.1872590963E-05 1.582915614 0.1862426370E-05 1.585267125 0.1852046291E-05 1.587618636 0.1841420660E-05 1.589970147 0.1830521128E-05 1.592321658 0.1819321032E-05 1.594673169 0.1807795376E-05 1.597024680 0.1795920810E-05 1.599376191 0.1783675610E-05 1.601727702 0.1771039664E-05 1.604079212 0.1757994460E-05 1.606430723 0.1744523077E-05 1.608782234 0.1730610173E-05 1.611133745 0.1716241988E-05 1.613485256 0.1701406330E-05 1.615836767 0.1686092580E-05 1.618188278 0.1670291687E-05 1.620539789 0.1653996167E-05 1.622891299 0.1637200101E-05 1.625242810 0.1619899136E-05 1.627594321 0.1602090480E-05 1.629945832 0.1583772900E-05 1.632297343 0.1564946717E-05 1.634648854 0.1545613799E-05 1.637000365 0.1525777555E-05 1.639351876 0.1505442920E-05 1.641703387 0.1484616347E-05 1.644054897 0.1463305787E-05 1.646406408 0.1441520672E-05 1.648757919 0.1419271892E-05 1.651109430 0.1396571771E-05 1.653460941 0.1373434038E-05 1.655812452 0.1349873793E-05 1.658163963 0.1325907473E-05 1.660515474 0.1301552814E-05 1.662866985 0.1276828802E-05 1.665218495 0.1251755634E-05 1.667570006 0.1226354662E-05 1.669921517 0.1200648340E-05 1.672273028 0.1174660168E-05 1.674624539 0.1148414629E-05 1.676976050 0.1121937126E-05 1.679327561 0.1095253913E-05 1.681679072 0.1068392023E-05 1.684030583 0.1041379200E-05 1.686382093 0.1014243814E-05 1.688733604 0.9870147886E-06 1.691085115 0.9597215177E-06 1.693436626 0.9323937813E-06 1.695788137 0.9050616615E-06 1.698139648 0.8777554552E-06 1.700491159 0.8505055868E-06 1.702842670 0.8233425190E-06 1.705194180 0.7962966634E-06 1.707545691 0.7693982908E-06 1.709897202 0.7426774416E-06 1.712248713 0.7161638362E-06 1.714600224 0.6898867861E-06 1.716951735 0.6638751067E-06 1.719303246 0.6381570303E-06 1.721654757 0.6127601217E-06 1.724006268 0.5877111953E-06 1.726357778 0.5630362350E-06 1.728709289 0.5387603162E-06 1.731060800 0.5149075313E-06 1.733412311 0.4915009180E-06 1.735763822 0.4685623920E-06 1.738115333 0.4461126825E-06 1.740466844 0.4241712730E-06 1.742818355 0.4027563457E-06 1.745169866 0.3818847313E-06 1.747521376 0.3615718627E-06 1.749872887 0.3418317354E-06 1.752224398 0.3226768717E-06 1.754575909 0.3041182918E-06 1.756927420 0.2861654895E-06 1.759278931 0.2688264149E-06 1.761630442 0.2521074622E-06 1.763981953 0.2360134647E-06 1.766333464 0.2205476956E-06 1.768684974 0.2057118754E-06 1.771036485 0.1915061869E-06 1.773387996 0.1779292968E-06 1.775739507 0.1649783853E-06 1.778091018 0.1526491847E-06 1.780442529 0.1409360281E-06 1.782794040 0.1298319101E-06 1.785145551 0.1193285647E-06 1.787497061 0.1094165677E-06 1.789848572 0.1000854772E-06 1.792200083 0.9132404165E-07 1.794551594 0.8312053661E-07 1.796903105 0.7546336918E-07 1.799254616 0.6834230693E-07 1.801606127 0.6175135610E-07 1.803957638 0.5569679499E-07 1.806309149 0.5022549860E-07 1.808660659 0.4556249382E-07 1.811012170 0.4285602884E-07 1.813363681 0.4359461648E-07 1.815715192 0.4580517188E-07 1.818066703 0.4836938134E-07 1.820418214 0.5105136601E-07 1.822769725 0.5377827661E-07 1.825121236 0.5651550431E-07 1.827472747 0.5924068624E-07 1.829824257 0.6193632109E-07 1.832175768 0.6458717582E-07 1.834527279 0.6717922633E-07 1.836878790 0.6633869939E-07 1.839230301 0.6221369444E-07 1.841581812 0.5845999763E-07 1.843933323 0.5505723938E-07 1.846284834 0.5198610779E-07 1.848636345 0.4922841758E-07 1.850987855 0.4676717461E-07 1.853339366 0.4458663589E-07 1.855690877 0.4267236489E-07 1.858042388 0.4101128218E-07 1.860393899 0.3959171109E-07 1.862745410 0.3840341856E-07 1.865096921 0.3743765088E-07 1.867448432 0.3668716446E-07 1.869799942 0.3614625142E-07 1.872151453 0.3581076011E-07 1.874502964 0.3567811038E-07 1.876849995 0.3581876320E-07 1.879197025 0.3613685183E-07 1.881544055 0.3663447130E-07 1.883891086 0.3731484058E-07 1.886238116 0.3818228684E-07 1.888585147 0.3924222361E-07 1.890932177 0.4050112308E-07 1.893279207 0.4196648251E-07 1.895626238 0.4364678483E-07 1.897973268 0.4555145384E-07 1.900320299 0.4769080377E-07 1.902667329 0.5007598378E-07 1.905014359 0.5271891729E-07 1.907361390 0.5563223655E-07 1.909708420 0.5882921258E-07 1.912055451 0.6232368081E-07 1.914402481 0.6612996252E-07 1.916749511 0.7026278261E-07 1.919096542 0.7473718365E-07 1.921443572 0.7956843684E-07 1.923790603 0.8477194988E-07 1.926137633 0.9036317223E-07 1.928484663 0.9635749801E-07 1.930831694 0.1027701667E-06 1.933178724 0.1096161623E-06 1.935525754 0.1218489753E-06 1.937872785 0.1308684602E-06 1.940219815 0.1339444057E-06 1.942566846 0.1416183789E-06 1.944913876 0.1508395904E-06 1.947260906 0.1605728565E-06 1.949607937 0.1708284526E-06 1.951954967 0.1816155580E-06 1.954301998 0.1929421502E-06 1.956649028 0.2048148997E-06 1.958996058 0.2172390640E-06 1.961343089 0.2302183833E-06 1.963690119 0.2437549754E-06 1.966037150 0.2578492313E-06 1.968384180 0.2724997108E-06 1.970731210 0.2877030373E-06 1.973078241 0.3034537931E-06 1.975425271 0.3197444131E-06 1.977772302 0.3365650778E-06 1.980119332 0.3539036051E-06 1.982466362 0.3717453398E-06 1.984813393 0.3900730418E-06 1.987160423 0.4088667720E-06 1.989507454 0.4281037765E-06 1.991854484 0.4477583699E-06 1.994201514 0.4678018174E-06 1.996548545 0.4882022202E-06 1.998895575 0.5089244043E-06 2.001242605 0.5299298182E-06 2.003589636 0.5511764466E-06 2.005936666 0.5726187458E-06 2.008283697 0.5942076141E-06 2.010630727 0.6158904098E-06 2.012977757 0.6376110342E-06 2.015324788 0.6593101000E-06 2.017671818 0.6809252073E-06 2.020018849 0.7023913511E-06 2.022365879 0.7236414818E-06 2.024712909 0.7446072359E-06 2.027059940 0.7652198430E-06 2.029406970 0.7854112004E-06 2.031754001 0.8051150880E-06 2.034101031 0.8242684695E-06 2.036448061 0.8428128070E-06 2.038795092 0.8606952976E-06 2.041142122 0.8778699311E-06 2.043489153 0.8942982789E-06 2.045836183 0.9099499441E-06 2.048183213 0.9248026364E-06 2.050530244 0.9388418799E-06 2.052877274 0.9520603964E-06 2.055224304 0.9644572404E-06 2.057571335 0.9760367764E-06 2.059918365 0.9868075911E-06 2.062265396 0.9967814228E-06 2.064612426 0.1005972173E-05 2.066959456 0.1014395038E-05 2.069306487 0.1022065794E-05 2.071653517 0.1029000220E-05 2.074000548 0.1035213676E-05 2.076347578 0.1040720797E-05 2.078694608 0.1045535306E-05 2.081041639 0.1049669907E-05 2.083388669 0.1053136248E-05 2.085735700 0.1055944942E-05 2.088082730 0.1058105617E-05 2.090429760 0.1059627001E-05 2.092776791 0.1060517015E-05 2.095123821 0.1060782882E-05 2.097470852 0.1060431239E-05 2.099817882 0.1059468248E-05 2.102164912 0.1057899708E-05 2.104511943 0.1055731160E-05 2.106858973 0.1052967989E-05 2.109206004 0.1049615521E-05 2.111553034 0.1045679111E-05 2.113900064 0.1041164234E-05 2.116247095 0.1036076554E-05 2.118594125 0.1030422004E-05 2.120941155 0.1024206852E-05 2.123288186 0.1017437762E-05 2.125635216 0.1010121851E-05 2.127982247 0.1002266743E-05 2.130329277 0.9938806137E-06 2.132676307 0.9849722363E-06 2.135023338 0.9755510179E-06 2.137370368 0.9656270340E-06 2.139717399 0.9552110584E-06 2.142064429 0.9443145877E-06 2.144411459 0.9329498629E-06 2.146758490 0.9211298847E-06 2.149105520 0.9088684261E-06 2.151452551 0.8961800386E-06 2.153799581 0.8830800552E-06 2.156146611 0.8695845875E-06 2.158493642 0.8557105186E-06 2.160840672 0.8414754908E-06 2.163187703 0.8268978880E-06 2.165534733 0.8119968136E-06 2.167881763 0.7967920633E-06 2.170228794 0.7813040923E-06 2.172575824 0.7655539784E-06 2.174922855 0.7680593706E-06 2.177269885 0.7710752792E-06 2.179616915 0.7739365839E-06 2.181963946 0.7766448384E-06 2.184310976 0.7792017768E-06 2.186658006 0.7816093082E-06 2.189005037 0.7838695109E-06 2.191352067 0.7859846267E-06 2.193699098 0.7879570545E-06 2.196046128 0.7897893446E-06 2.198393158 0.7914841915E-06 2.200740189 0.7930444276E-06 2.203087219 0.7944730165E-06 2.205434250 0.7957730459E-06 2.207781280 0.7969477205E-06 2.210128310 0.7980003549E-06 2.212475341 0.7989343665E-06 2.214822371 0.7997532681E-06 2.217169402 0.8004606605E-06 2.219516432 0.8010602251E-06 2.221863462 0.8015557170E-06 2.224210493 0.8019509569E-06 2.226557523 0.8022498245E-06 2.228904554 0.8024562505E-06 2.231251584 0.8025742100E-06 2.233598614 0.8026077148E-06 2.235945645 0.8025608064E-06 2.238292675 0.8024375493E-06 2.240639706 0.8022420237E-06 2.242986736 0.8019783187E-06 2.245333766 0.8016505259E-06 2.247680797 0.8012627325E-06 2.250027827 0.8008190151E-06 2.252374857 0.8003234334E-06 2.254721888 0.7997800238E-06 2.257068918 0.7991927941E-06 2.259415949 0.7985657167E-06 2.261762979 0.7979027241E-06 2.264110009 0.7972077025E-06 2.266457040 0.7964844871E-06 2.268804070 0.7957368569E-06 2.271151101 0.7949685296E-06 2.273498131 0.7941831572E-06 2.275845161 0.7933843210E-06 2.278192192 0.7925755278E-06 2.280539222 0.7917602054E-06 2.282886253 0.7909416988E-06 2.285233283 0.7901232660E-06 2.287580313 0.7893080752E-06 2.289927344 0.7884992004E-06 2.292274374 0.7876996190E-06 2.294621405 0.7869122080E-06 2.296968435 0.7861397416E-06 2.299315465 0.7853848884E-06 2.301662496 0.7846502084E-06 2.304009526 0.7839381512E-06 2.306356557 0.7832510532E-06 2.308703587 0.7825911358E-06 2.311050617 0.7819605032E-06 2.313397648 0.7813611408E-06 2.315744678 0.7807949135E-06 2.318091708 0.7802635637E-06 2.320438739 0.7797687106E-06 2.322785769 0.7793118482E-06 2.325132800 0.7788943445E-06 2.327479830 0.7785174404E-06 2.329826860 0.7781822487E-06 2.332173891 0.7778897532E-06 2.334520921 0.7776408079E-06 2.336867952 0.7774361366E-06 2.339214982 0.7772763321E-06 2.341562012 0.7771618561E-06 2.343909043 0.7770930384E-06 2.346256073 0.7770700772E-06 0.000000000 0.3567811039E-07 0.2347351854E-02 0.3588265322E-07 0.4694703708E-02 0.3649932401E-07 0.7042055561E-02 0.3753721093E-07 0.9389407415E-02 0.3901133230E-07 0.1173675927E-01 0.4094244521E-07 0.1408411112E-01 0.4335678025E-07 0.1643146298E-01 0.4628570579E-07 0.1877881483E-01 0.4976532546E-07 0.2112616668E-01 0.5383601426E-07 0.2347351854E-01 0.5854189961E-07 0.2582087039E-01 0.6393029504E-07 0.2816822225E-01 0.7005109568E-07 0.3051557410E-01 0.7672750563E-07 0.3286292595E-01 0.7446219395E-07 0.3521027781E-01 0.7207748635E-07 0.3755762966E-01 0.6958314479E-07 0.3990498151E-01 0.6698939863E-07 0.4225233337E-01 0.6965342913E-07 0.4459968522E-01 0.7418606588E-07 0.4694703708E-01 0.7910425907E-07 0.4929438893E-01 0.8442885895E-07 0.5164174078E-01 0.9018145957E-07 0.5398909264E-01 0.9638435557E-07 0.5633644449E-01 0.1030604978E-06 0.5868379634E-01 0.1102334478E-06 0.6103114820E-01 0.1179273317E-06 0.6337850005E-01 0.1261667929E-06 0.6572585191E-01 0.1349769433E-06 0.6807320376E-01 0.1443833155E-06 0.7042055561E-01 0.1544118116E-06 0.7276790747E-01 0.1650886540E-06 0.7511525932E-01 0.1764403331E-06 0.7746261117E-01 0.1884935560E-06 0.7980996303E-01 0.2012751937E-06 0.8215731488E-01 0.2148122278E-06 0.8450466674E-01 0.2291316972E-06 0.8685201859E-01 0.2442606432E-06 0.8919937044E-01 0.2602260553E-06 0.9154672230E-01 0.2770548154E-06 0.9389407415E-01 0.2947736429E-06 0.9624142601E-01 0.3134090380E-06 0.9858877786E-01 0.3329872256E-06 0.1009361297 0.3535340990E-06 0.1032834816 0.3750751625E-06 0.1056308334 0.3976354751E-06 0.1079781853 0.4212395926E-06 0.1103255371 0.4459115112E-06 0.1126728890 0.4716746098E-06 0.1150202408 0.4985515927E-06 0.1173675927 0.5265644332E-06 0.1197149445 0.5557343160E-06 0.1220622964 0.5860815809E-06 0.1244096483 0.6176256663E-06 0.1267570001 0.6503850529E-06 0.1291043520 0.6843772082E-06 0.1314517038 0.7196185309E-06 0.1337990557 0.7561242964E-06 0.1361464075 0.7939086023E-06 0.1384937594 0.8329843145E-06 0.1408411112 0.8733630145E-06 0.1431884631 0.9150549468E-06 0.1455358149 0.9580689671E-06 0.1478831668 0.1002412492E-05 0.1502305186 0.1048091447E-05 0.1525778705 0.1095110220E-05 0.1549252223 0.1143471611E-05 0.1572725742 0.1193176785E-05 0.1596199261 0.1244225226E-05 0.1619672779 0.1296614692E-05 0.1643146298 0.1350341166E-05 0.1666619816 0.1405398821E-05 0.1690093335 0.1461779968E-05 0.1713566853 0.1519475023E-05 0.1737040372 0.1578472459E-05 0.1760513890 0.1638758772E-05 0.1783987409 0.1700318443E-05 0.1807460927 0.1763133895E-05 0.1830934446 0.1827185465E-05 0.1854407964 0.1892451362E-05 0.1877881483 0.1958907635E-05 0.1901355002 0.2026528142E-05 0.1924828520 0.2095284516E-05 0.1948302039 0.2165146132E-05 0.1971775557 0.2236080079E-05 0.1995249076 0.2308051128E-05 0.2018722594 0.2381021703E-05 0.2042196113 0.2454951851E-05 0.2065669631 0.2529799214E-05 0.2089143150 0.2605518999E-05 0.2112616668 0.2682063948E-05 0.2136090187 0.2759384306E-05 0.2159563705 0.2837427791E-05 0.2183037224 0.2916139559E-05 0.2206510743 0.2995462166E-05 0.2229984261 0.3075335530E-05 0.2253457780 0.3155696882E-05 0.2276931298 0.3236480715E-05 0.2300404817 0.3317618726E-05 0.2323878335 0.3399039742E-05 0.2347351854 0.3480669635E-05 0.2370825372 0.3562431220E-05 0.2394298891 0.3644244126E-05 0.2417772409 0.3726024643E-05 0.2441245928 0.3807685524E-05 0.2464719446 0.3889135738E-05 0.2488192965 0.3970280160E-05 0.2511666484 0.4051019166E-05 0.2535140002 0.4131248122E-05 0.2558613521 0.4210856703E-05 0.2582087039 0.4289728014E-05 0.2605560558 0.4367737412E-05 0.2629034076 0.4444750933E-05 0.2652507595 0.4520623148E-05 0.2675981113 0.4595194224E-05 0.2699454632 0.4668285816E-05 0.2722928150 0.4739695240E-05 0.2746401669 0.4809187048E-05 0.2769875187 0.4876480602E-05 0.2793348706 0.4941231314E-05 0.2816822225 0.5003001567E-05 0.2840295743 0.5061214332E-05 0.2863769262 0.5115076758E-05 0.2887242780 0.5163449847E-05 0.2910716299 0.5204618068E-05 0.2934189817 0.5235868678E-05 0.2957663336 0.5252710402E-05 0.2981136854 0.5247468088E-05 0.3004610373 0.5207199510E-05 0.3028083891 0.5112805618E-05 0.3051557410 0.4945969865E-05 0.3075030928 0.4705448420E-05 0.3098504447 0.4410593489E-05 0.3121977966 0.4085520840E-05 0.3145451484 0.3748309105E-05 0.3168925003 0.3410500711E-05 0.3192398521 0.3079338562E-05 0.3215872040 0.2759499813E-05 0.3239345558 0.2454097268E-05 0.3262819077 0.2165231622E-05 0.3286292595 0.1894305192E-05 0.3309766114 0.1642210825E-05 0.3333239632 0.1409453592E-05 0.3356713151 0.1196234507E-05 0.3380186669 0.1002511578E-05 0.3403660188 0.8280464817E-06 0.3427133707 0.6724415460E-06 0.3450607225 0.6070205079E-06 0.3474080744 0.6837135861E-06 0.3497554262 0.7665373319E-06 0.3521027781 0.8556721731E-06 0.3544501299 0.9512968185E-06 0.3567974818 0.1053587835E-05 0.3591448336 0.1162719149E-05 0.3614921855 0.1278861518E-05 0.3638395373 0.1402182009E-05 0.3661868892 0.1532843484E-05 0.3685342410 0.1671004100E-05 0.3708815929 0.1816816833E-05 0.3732289448 0.1970429017E-05 0.3755762966 0.2131981897E-05 0.3779236485 0.2301610201E-05 0.3802710003 0.2479441725E-05 0.3826183522 0.2665596929E-05 0.3849657040 0.2860188552E-05 0.3873130559 0.3063321233E-05 0.3896604077 0.3275091150E-05 0.3920077596 0.3495585666E-05 0.3943551114 0.3724882993E-05 0.3967024633 0.3963051866E-05 0.3990498151 0.4210151229E-05 0.4013971670 0.4466229937E-05 0.4037445189 0.4731326469E-05 0.4060918707 0.4932382763E-05 0.4084392226 0.4848089274E-05 0.4107865744 0.4762065054E-05 0.4131339263 0.4674437852E-05 0.4154812781 0.4585337100E-05 0.4178286300 0.4494893546E-05 0.4201759818 0.4403238888E-05 0.4225233337 0.4310505419E-05 0.4248706855 0.4216825666E-05 0.4272180374 0.4122332054E-05 0.4295653892 0.4153429479E-05 0.4319127411 0.4334561766E-05 0.4342600929 0.4519723213E-05 0.4366074448 0.4708854058E-05 0.4389547967 0.4651492422E-05 0.4413021485 0.4575286319E-05 0.4436495004 0.4499077972E-05 0.4459968522 0.4422872361E-05 0.4483442041 0.4346680171E-05 0.4506915559 0.4270517844E-05 0.4530389078 0.4194407494E-05 0.4553862596 0.4118376685E-05 0.4577336115 0.4042458100E-05 0.4600809633 0.3966689133E-05 0.4624283152 0.3891111398E-05 0.4647756670 0.3815770206E-05 0.4671230189 0.3740714005E-05 0.4694703708 0.3665993811E-05 0.4718177226 0.3591662641E-05 0.4741650745 0.3517774960E-05 0.4765124263 0.3444386148E-05 0.4788597782 0.3371552007E-05 0.4812071300 0.3299328293E-05 0.4835544819 0.3227770293E-05 0.4859018337 0.3156932445E-05 0.4882491856 0.3086867997E-05 0.4905965374 0.3017628705E-05 0.4929438893 0.2949264578E-05 0.4952912411 0.2881823659E-05 0.4976385930 0.2815351837E-05 0.4999859449 0.2749892701E-05 0.5023332967 0.2685487422E-05 0.5046806486 0.2622174662E-05 0.5070280004 0.2559990510E-05 0.5093753523 0.2498968443E-05 0.5117227041 0.2439139307E-05 0.5140700560 0.2380531316E-05 0.5164174078 0.2323170067E-05 0.5187647597 0.2267078575E-05 0.5211121115 0.2212277312E-05 0.5234594634 0.2158784264E-05 0.5258068152 0.2106614998E-05 0.5281541671 0.2055782731E-05 0.5305015190 0.2006298413E-05 0.5328488708 0.1958170811E-05 0.5351962227 0.1911406605E-05 0.5375435745 0.1866010479E-05 0.5398909264 0.1821985220E-05 0.5422382782 0.1779331823E-05 0.5445856301 0.1738049594E-05 0.5469329819 0.1698136252E-05 0.5492803338 0.1659588036E-05 0.5516276856 0.1622399817E-05 0.5539750375 0.1586565194E-05 0.5563223893 0.1552076609E-05 0.5586697412 0.1518925450E-05 0.5610170931 0.1487102156E-05 0.5633644449 0.1456596319E-05 0.5657117968 0.1427396794E-05 0.5680591486 0.1399491799E-05 0.5704065005 0.1372869025E-05 0.5727538523 0.1347515742E-05 0.5751012042 0.1323418912E-05 0.5774485560 0.1300565310E-05 0.5797959079 0.1278941658E-05 0.5821432597 0.1258534763E-05 0.5844906116 0.1239331694E-05 0.5868379634 0.1221319965E-05 0.5891853153 0.1204487765E-05 0.5915326672 0.1188824222E-05 0.5938800190 0.1174319700E-05 0.5962273709 0.1160966144E-05 0.5985747227 0.1148757432E-05 0.6009220746 0.1137689735E-05 0.6032694264 0.1127761808E-05 0.6056167783 0.1118975174E-05 0.6079641301 0.1111334109E-05 0.6103114820 0.1104845352E-05 0.6126588338 0.1099517503E-05 0.6150061857 0.1095360094E-05 0.6173535375 0.1092382427E-05 0.6197008894 0.1090592328E-05 0.6220482413 0.1089995016E-05 0.6243952716 0.1090424864E-05 0.6267423020 0.1091736422E-05 0.6290893324 0.1093929670E-05 0.6314363628 0.1097004599E-05 0.6337833932 0.1100961185E-05 0.6361304236 0.1105799360E-05 0.6384774540 0.1111518960E-05 0.6408244844 0.1118119673E-05 0.6431715148 0.1125600962E-05 0.6455185452 0.1133961974E-05 0.6478655756 0.1143201418E-05 0.6502126060 0.1153317416E-05 0.6525596364 0.1164307294E-05 0.6549066668 0.1176167314E-05 0.6572536971 0.1188892289E-05 0.6596007275 0.1202475036E-05 0.6619477579 0.1216905552E-05 0.6642947883 0.1232169750E-05 0.6666418187 0.1248247401E-05 0.6689888491 0.1265108661E-05 0.6713358795 0.1282707932E-05 0.6736829099 0.1300972473E-05 0.6760299403 0.1319780427E-05 0.6783769707 0.1338917646E-05 0.6807240011 0.1357997945E-05 0.6830710315 0.1376359784E-05 0.6854180619 0.1393123535E-05 0.6877650922 0.1407739423E-05 0.6901121226 0.1420494163E-05 0.6924591530 0.1432090683E-05 0.6948061834 0.1443097715E-05 0.6971532138 0.1453854299E-05 0.6995002442 0.1464547637E-05 0.7018472746 0.1475281472E-05 0.7041943050 0.1486114592E-05 0.7065413354 0.1497080829E-05 0.7088883658 0.1508199539E-05 0.7112353962 0.1519481282E-05 0.7135824266 0.1530931029E-05 0.7159294570 0.1542550052E-05 0.7182764874 0.1554337077E-05 0.7206235177 0.1566289008E-05 0.7229705481 0.1578401405E-05 0.7253175785 0.1590668802E-05 0.7276646089 0.1603084923E-05 0.7300116393 0.1615642840E-05 0.7323586697 0.1628335083E-05 0.7347057001 0.1641153724E-05 0.7370527305 0.1654090438E-05 0.7393997609 0.1667136555E-05 0.7417467913 0.1680283094E-05 0.7440938217 0.1693520801E-05 0.7464408521 0.1706840173E-05 0.7487878825 0.1720231482E-05 0.7511349128 0.1733684795E-05 0.7534819432 0.1747189993E-05 0.7558289736 0.1760736790E-05 0.7581760040 0.1774314748E-05 0.7605230344 0.1787913296E-05 0.7628700648 0.1801521739E-05 0.7652170952 0.1815129280E-05 0.7675641256 0.1828725032E-05 0.7699111560 0.1842298033E-05 0.7722581864 0.1855837261E-05 0.7746052168 0.1869331651E-05 0.7769522472 0.1882770108E-05 0.7792992776 0.1896141522E-05 0.7816463080 0.1909434784E-05 0.7839933383 0.1922638804E-05 0.7863403687 0.1935742522E-05 0.7886873991 0.1948734925E-05 0.7910344295 0.1961605066E-05 0.7933814599 0.1974342074E-05 0.7957284903 0.1986935175E-05 0.7980755207 0.1999373703E-05 0.8004225511 0.2011647120E-05 0.8027695815 0.2023745027E-05 0.8051166119 0.2035657184E-05 0.8074636423 0.2047373521E-05 0.8098106727 0.2058884156E-05 0.8121577031 0.2070179408E-05 0.8145047335 0.2081249814E-05 0.8168517638 0.2092086139E-05 0.8191987942 0.2102679394E-05 0.8215458246 0.2113020849E-05 0.8238928550 0.2123102043E-05 0.8262398854 0.2132914800E-05 0.8285869158 0.2142451241E-05 0.8309339462 0.2151703793E-05 0.8332809766 0.2160665202E-05 0.8356280070 0.2169328545E-05 0.8379750374 0.2177687234E-05 0.8403220678 0.2185735034E-05 0.8426690982 0.2193466062E-05 0.8450161286 0.2200874799E-05 0.8473631589 0.2207956098E-05 0.8497101893 0.2214705183E-05 0.8520572197 0.2221117659E-05 0.8544042501 0.2227189514E-05 0.8567512805 0.2232917116E-05 0.8590983109 0.2238297217E-05 0.8614453413 0.2243326948E-05 0.8637923717 0.2248003813E-05 0.8661394021 0.2252325683E-05 0.8684864325 0.2256290782E-05 0.8708334629 0.2259897671E-05 0.8731804933 0.2263145222E-05 0.8755275237 0.2266032585E-05 0.8778745541 0.2268559145E-05 0.8802215844 0.2270724458E-05 0.8825686148 0.2272528160E-05 0.8849156452 0.2273969843E-05 0.8872626756 0.2275048873E-05 0.8896097060 0.2275764110E-05 0.8919567364 0.2276113486E-05 0.8943037668 0.2276093328E-05 0.8966507972 0.2275697227E-05 0.8989978276 0.2274914076E-05 0.9013448580 0.2273724435E-05 0.9036918884 0.2272093335E-05 0.9060389188 0.2269954727E-05 0.9083859492 0.2267174030E-05 0.9107329796 0.2263444547E-05 0.9130800099 0.2257949837E-05 0.9154270403 0.2248152716E-05 0.9177740707 0.2227723092E-05 0.9201211011 0.2194292986E-05 0.9224681315 0.2154444374E-05 0.9248151619 0.2112181526E-05 0.9271621923 0.2068835801E-05 0.9295092227 0.2024913039E-05 0.9318562531 0.1980657684E-05 0.9342032835 0.1936215669E-05 0.9365503139 0.1891689597E-05 0.9388973443 0.1847160443E-05 0.9412443747 0.1802697147E-05 0.9435914050 0.1758361258E-05 0.9459384354 0.1714209340E-05 0.9482854658 0.1670294288E-05 0.9506324962 0.1626666077E-05 0.9529795266 0.1583372188E-05 0.9553265570 0.1540457868E-05 0.9576735874 0.1497966278E-05 0.9600206178 0.1455938574E-05 0.9623676482 0.1414413952E-05 0.9647146786 0.1373429671E-05 0.9670617090 0.1333021055E-05 0.9694087394 0.1293221493E-05 0.9717557698 0.1254062430E-05 0.9741028002 0.1215573359E-05 0.9764498305 0.1177781815E-05 0.9787968609 0.1140713367E-05 0.9811438913 0.1104391618E-05 0.9834909217 0.1068838207E-05 0.9858379521 0.1034072814E-05 0.9881849825 0.1000113170E-05 0.9905320129 0.9669750763E-06 0.9928790433 0.9346724226E-06 0.9952260737 0.9032172162E-06 0.9975731041 0.8726196136E-06 0.9999201345 0.8428879583E-06 1.002267165 0.8140288237E-06 1.004614195 0.7860470620E-06 1.006961226 0.7589458574E-06 1.009308256 0.7327267850E-06 1.011655286 0.7206967876E-06 1.014002317 0.7187849359E-06 1.016349347 0.7168791485E-06 1.018696378 0.7149837056E-06 1.021043408 0.7131027815E-06 1.023390438 0.7112404404E-06 1.025737469 0.7094006339E-06 1.028084499 0.7075871975E-06 1.030431530 0.7058038482E-06 1.032778560 0.7040541822E-06 1.035125590 0.7023416723E-06 1.037472621 0.7006696659E-06 1.039819651 0.6990413836E-06 1.042166682 0.6974599172E-06 1.044513712 0.6959282282E-06 1.046860742 0.6944491470E-06 1.049207773 0.6930253713E-06 1.051554803 0.6916594657E-06 1.053901834 0.6903538602E-06 1.056248864 0.6891108503E-06 1.058595894 0.6879325959E-06 1.060942925 0.6868211212E-06 1.063289955 0.6857783140E-06 1.065636985 0.6848059260E-06 1.067984016 0.6839055722E-06 1.070331046 0.6830787311E-06 1.072678077 0.6823267443E-06 1.075025107 0.6816508170E-06 1.077372137 0.6810520181E-06 1.079719168 0.6805312797E-06 1.082066198 0.6800893980E-06 1.084413229 0.6797270331E-06 1.086760259 0.6794447095E-06 1.089107289 0.6792428161E-06 1.091454320 0.6791216064E-06 1.093801350 0.6790811992E-06 1.096152861 0.6790034997E-06 1.098504372 0.6787707181E-06 1.100855883 0.6783837998E-06 1.103207394 0.6778443115E-06 1.105558905 0.6771544321E-06 1.107910415 0.6763169399E-06 1.110261926 0.6753351976E-06 1.112613437 0.6742131348E-06 1.114964948 0.6729552280E-06 1.117316459 0.6715664795E-06 1.119667970 0.6700523949E-06 1.122019481 0.6684189598E-06 1.124370992 0.6666726162E-06 1.126722503 0.6648202386E-06 1.129074013 0.6628691104E-06 1.131425524 0.6608269006E-06 1.133777035 0.6587016407E-06 1.136128546 0.6565017033E-06 1.138480057 0.6542357798E-06 1.140831568 0.6519128602E-06 1.143183079 0.6495422132E-06 1.145534590 0.6471333665E-06 1.147886101 0.6446960891E-06 1.150237611 0.6422403731E-06 1.152589122 0.6397764171E-06 1.154940633 0.6373146098E-06 1.157292144 0.6348655146E-06 1.159643655 0.6324398547E-06 1.161995166 0.6300484994E-06 1.164346677 0.6277024506E-06 1.166698188 0.6254128302E-06 1.169049699 0.6231908690E-06 1.171401209 0.6210478951E-06 1.173752720 0.6189953246E-06 1.176104231 0.6170446528E-06 1.178455742 0.6152074453E-06 1.180807253 0.6134953323E-06 1.183158764 0.6119200016E-06 1.185510275 0.6104931943E-06 1.187861786 0.6138769602E-06 1.190213296 0.6290530834E-06 1.192564807 0.6445271391E-06 1.194916318 0.6602868034E-06 1.197267829 0.6763188724E-06 1.199619340 0.6926092386E-06 1.201970851 0.7091428697E-06 1.204322362 0.7259037880E-06 1.206673873 0.7428750560E-06 1.209025384 0.7600387681E-06 1.211376894 0.7773760534E-06 1.213728405 0.7948670940E-06 1.216079916 0.8124911645E-06 1.218431427 0.8302266970E-06 1.220782938 0.8480513789E-06 1.223134449 0.8659422868E-06 1.225485960 0.8838760608E-06 1.227837471 0.9018291189E-06 1.230188982 0.9197779078E-06 1.232540492 0.9376991828E-06 1.234892003 0.9555703026E-06 1.237243514 0.9733695235E-06 1.239595025 0.9910762712E-06 1.241946536 0.1008671370E-05 1.244298047 0.1026137214E-05 1.246649558 0.1043457859E-05 1.249001069 0.1060619042E-05 1.251352580 0.1077608121E-05 1.253704090 0.1094413954E-05 1.256055601 0.1111026723E-05 1.258407112 0.1127437746E-05 1.260758623 0.1143639272E-05 1.263110134 0.1159624297E-05 1.265461645 0.1175386408E-05 1.267813156 0.1190919668E-05 1.270164667 0.1206218531E-05 1.272516177 0.1221277813E-05 1.274867688 0.1236092687E-05 1.277219199 0.1250658717E-05 1.279570710 0.1264971907E-05 1.281922221 0.1279028777E-05 1.284273732 0.1292826446E-05 1.286625243 0.1306362717E-05 1.288976754 0.1319636173E-05 1.291328265 0.1332646267E-05 1.293679775 0.1345393417E-05 1.296031286 0.1357879088E-05 1.298382797 0.1370105883E-05 1.300734308 0.1382077625E-05 1.303085819 0.1393799437E-05 1.305437330 0.1405277822E-05 1.307788841 0.1416520742E-05 1.310140352 0.1427537697E-05 1.312491863 0.1438339798E-05 1.314843373 0.1448939850E-05 1.317194884 0.1459352424E-05 1.319546395 0.1469593931E-05 1.321897906 0.1479682695E-05 1.324249417 0.1489639016E-05 1.326600928 0.1499485220E-05 1.328952439 0.1509245702E-05 1.331303950 0.1518946941E-05 1.333655461 0.1528617480E-05 1.336006971 0.1538287877E-05 1.338358482 0.1547990590E-05 1.340709993 0.1557759797E-05 1.343061504 0.1567631132E-05 1.345413015 0.1577641316E-05 1.347764526 0.1611096301E-05 1.350116037 0.1651617589E-05 1.352467548 0.1692975021E-05 1.354819059 0.1735151019E-05 1.357170569 0.1778126024E-05 1.359522080 0.1821878479E-05 1.361873591 0.1866384816E-05 1.364225102 0.1911619454E-05 1.366576613 0.1957554806E-05 1.368928124 0.2004161292E-05 1.371279635 0.2051407360E-05 1.373631146 0.2099259522E-05 1.375982656 0.2147682388E-05 1.378334167 0.2196638726E-05 1.380685678 0.2246089514E-05 1.383037189 0.2295994013E-05 1.385388700 0.2346309851E-05 1.387740211 0.2396993106E-05 1.390091722 0.2447998410E-05 1.392443233 0.2499279058E-05 1.394794744 0.2550787127E-05 1.397146254 0.2602473603E-05 1.399497765 0.2642574657E-05 1.401849276 0.2638746691E-05 1.404200787 0.2633852777E-05 1.406552298 0.2627886077E-05 1.408903809 0.2620839982E-05 1.411255320 0.2612708327E-05 1.413606831 0.2603485688E-05 1.415958342 0.2593167752E-05 1.418309852 0.2581751782E-05 1.420661363 0.2569237173E-05 1.423012874 0.2555626129E-05 1.425364385 0.2540924489E-05 1.427715896 0.2525142743E-05 1.430067407 0.2508297327E-05 1.432418918 0.2490412319E-05 1.434770429 0.2471521764E-05 1.437121940 0.2451673003E-05 1.439473450 0.2430931679E-05 1.441824961 0.2409389594E-05 1.444176472 0.2387177590E-05 1.446527983 0.2364487442E-05 1.448879494 0.2341610050E-05 1.451231005 0.2319002358E-05 1.453582516 0.2297398593E-05 1.455934027 0.2277958534E-05 1.458285537 0.2262318722E-05 1.460637048 0.2252163780E-05 1.462988559 0.2248212513E-05 1.465340070 0.2249753965E-05 1.467691581 0.2255417185E-05 1.470043092 0.2264003295E-05 1.472394603 0.2274708683E-05 1.474746114 0.2357141971E-05 1.477097625 0.2553691077E-05 1.479449135 0.2671123909E-05 1.481800646 0.2636831368E-05 1.484152157 0.2603318075E-05 1.486503668 0.2570616052E-05 1.488855179 0.2538792966E-05 1.491206690 0.2508028238E-05 1.493558201 0.2479087590E-05 1.495909712 0.2459948797E-05 1.498261223 0.2472747088E-05 1.500612733 0.2494390788E-05 1.502964244 0.2517809306E-05 1.505315755 0.2542299821E-05 1.507667266 0.2567687951E-05 1.510018777 0.2593898818E-05 1.512370288 0.2620885637E-05 1.514721799 0.2648610908E-05 1.517073310 0.2677039980E-05 1.519424821 0.2706138444E-05 1.521776331 0.2735870952E-05 1.524127842 0.2766200640E-05 1.526479353 0.2797088840E-05 1.528830864 0.2828494935E-05 1.531182375 0.2860376291E-05 1.533533886 0.2892688241E-05 1.535885397 0.2925384095E-05 1.538236908 0.2958415169E-05 1.540588418 0.2991730825E-05 1.542939929 0.3025278528E-05 1.545291440 0.3059003901E-05 1.547642951 0.3092850800E-05 1.549994462 0.3126761380E-05 1.552345973 0.3160676187E-05 1.554697484 0.3194534237E-05 1.557048995 0.3228273115E-05 1.559400506 0.3261829075E-05 1.561752016 0.3295137149E-05 1.564103527 0.3328131256E-05 1.566455038 0.3360744329E-05 1.568806549 0.3392908440E-05 1.571158060 0.3424554931E-05 1.573509571 0.3455614557E-05 1.575861082 0.3486017631E-05 1.578212593 0.3515694174E-05 1.580564104 0.3544574075E-05 1.582915614 0.3572587250E-05 1.585267125 0.3599663811E-05 1.587618636 0.3625734235E-05 1.589970147 0.3650729539E-05 1.592321658 0.3674581461E-05 1.594673169 0.3697222635E-05 1.597024680 0.3718586775E-05 1.599376191 0.3685694938E-05 1.601727702 0.3648886463E-05 1.604079212 0.3611156675E-05 1.606430723 0.3572525360E-05 1.608782234 0.3533012903E-05 1.611133745 0.3492640323E-05 1.613485256 0.3451429294E-05 1.615836767 0.3409402171E-05 1.618188278 0.3366582012E-05 1.620539789 0.3322992594E-05 1.622891299 0.3278658430E-05 1.625242810 0.3233604783E-05 1.627594321 0.3187857674E-05 1.629945832 0.3141443895E-05 1.632297343 0.3094391010E-05 1.634648854 0.3046727361E-05 1.637000365 0.2998482065E-05 1.639351876 0.2949685013E-05 1.641703387 0.2900366864E-05 1.644054897 0.2850559034E-05 1.646406408 0.2800293689E-05 1.648757919 0.2749603727E-05 1.651109430 0.2698522761E-05 1.653460941 0.2647085101E-05 1.655812452 0.2595325725E-05 1.658163963 0.2543280261E-05 1.660515474 0.2490984948E-05 1.662866985 0.2438476610E-05 1.665218495 0.2385792619E-05 1.667570006 0.2332970851E-05 1.669921517 0.2280049651E-05 1.672273028 0.2227067783E-05 1.674624539 0.2174064383E-05 1.676976050 0.2121078906E-05 1.679327561 0.2068151072E-05 1.681679072 0.2015320804E-05 1.684030583 0.1962628174E-05 1.686382093 0.1910113329E-05 1.688733604 0.1857816429E-05 1.691085115 0.1805777574E-05 1.693436626 0.1754036728E-05 1.695788137 0.1702633644E-05 1.698139648 0.1651607785E-05 1.700491159 0.1600998238E-05 1.702842670 0.1550843632E-05 1.705194180 0.1501182051E-05 1.707545691 0.1452050944E-05 1.709897202 0.1403487036E-05 1.712248713 0.1355526238E-05 1.714600224 0.1308203553E-05 1.716951735 0.1261552987E-05 1.719303246 0.1215607457E-05 1.721654757 0.1170398698E-05 1.724006268 0.1125957181E-05 1.726357778 0.1082312022E-05 1.728709289 0.1039490897E-05 1.731060800 0.9975199687E-06 1.733412311 0.9564238035E-06 1.735763822 0.9162253045E-06 1.738115333 0.8769456445E-06 1.740466844 0.8386042057E-06 1.742818355 0.8012185264E-06 1.745169866 0.7648042539E-06 1.747521376 0.7293751051E-06 1.749872887 0.6949428342E-06 1.752224398 0.6615172094E-06 1.754575909 0.6291059961E-06 1.756927420 0.5977149502E-06 1.759278931 0.5673478185E-06 1.761630442 0.5380063477E-06 1.763981953 0.5096903027E-06 1.766333464 0.4823974921E-06 1.768684974 0.4561238019E-06 1.771036485 0.4308632376E-06 1.773387996 0.4066079735E-06 1.775739507 0.3833484088E-06 1.778091018 0.3610732314E-06 1.780442529 0.3397694871E-06 1.782794040 0.3194226556E-06 1.785145551 0.3000167315E-06 1.787497061 0.2815343105E-06 1.789848572 0.2639566799E-06 1.792200083 0.2472639134E-06 1.794551594 0.2314349694E-06 1.796903105 0.2164477920E-06 1.799254616 0.2022794148E-06 1.801606127 0.1889060665E-06 1.803957638 0.1763032786E-06 1.806309149 0.1644459935E-06 1.808660659 0.1533086733E-06 1.811012170 0.1428654098E-06 1.813363681 0.1330900328E-06 1.815715192 0.1239562193E-06 1.818066703 0.1154376004E-06 1.820418214 0.1075078680E-06 1.822769725 0.1001408791E-06 1.825121236 0.9331075829E-07 1.827472747 0.8699199854E-07 1.829824257 0.8115955840E-07 1.832175768 0.7578895713E-07 1.834527279 0.7085636654E-07 1.836878790 0.6969913229E-07 1.839230301 0.7213371438E-07 1.841581812 0.7446745840E-07 1.843933323 0.7602622279E-07 1.846284834 0.6937595954E-07 1.848636345 0.6336282730E-07 1.850987855 0.5808094480E-07 1.853339366 0.5347762870E-07 1.855690877 0.4950187632E-07 1.858042388 0.4610661528E-07 1.860393899 0.4324933454E-07 1.862745410 0.4089246668E-07 1.865096921 0.3900368164E-07 1.867448432 0.3755612443E-07 1.869799942 0.3652860635E-07 1.872151453 0.3590575297E-07 1.874502964 0.3567811039E-07 1.876849995 0.3581876320E-07 1.879197025 0.3613685184E-07 1.881544055 0.3663447131E-07 1.883891086 0.3731484059E-07 1.886238116 0.3818228685E-07 1.888585147 0.3924222361E-07 1.890932177 0.4050112309E-07 1.893279207 0.4196648251E-07 1.895626238 0.4364678484E-07 1.897973268 0.4555145385E-07 1.900320299 0.4769080378E-07 1.902667329 0.5007598379E-07 1.905014359 0.5271891730E-07 1.907361390 0.5563223656E-07 1.909708420 0.5882921259E-07 1.912055451 0.6232368082E-07 1.914402481 0.6612996254E-07 1.916749511 0.7026278262E-07 1.919096542 0.7473718366E-07 1.921443572 0.7956843685E-07 1.923790603 0.8477194989E-07 1.926137633 0.9036317225E-07 1.928484663 0.1040049522E-06 1.930831694 0.1202095058E-06 1.933178724 0.1250985912E-06 1.935525754 0.1279202802E-06 1.937872785 0.1404911315E-06 1.940219815 0.1610838707E-06 1.942566846 0.1837369984E-06 1.944913876 0.2085601112E-06 1.947260906 0.2356622690E-06 1.949607937 0.2651516579E-06 1.951954967 0.2971352477E-06 1.954301998 0.3317184443E-06 1.956649028 0.3690047407E-06 1.958996058 0.4090953674E-06 1.961343089 0.4520889455E-06 1.963690119 0.4980811441E-06 1.966037150 0.5471643433E-06 1.968384180 0.5994273048E-06 1.970731210 0.6549548522E-06 1.973078241 0.7138275606E-06 1.975425271 0.7761214583E-06 1.977772302 0.8419077411E-06 1.980119332 0.9112524992E-06 1.982466362 0.9440147395E-06 1.984813393 0.9545368162E-06 1.987160423 0.9652477304E-06 1.989507454 0.9761496031E-06 1.991854484 0.9872455349E-06 1.994201514 0.9985397310E-06 1.996548545 0.1010037632E-05 1.998895575 0.1021746045E-05 2.001242605 0.1033673280E-05 2.003589636 0.1045829266E-05 2.005936666 0.1058225666E-05 2.008283697 0.1070875951E-05 2.010630727 0.1083795445E-05 2.012977757 0.1097001300E-05 2.015324788 0.1110512403E-05 2.017671818 0.1124349173E-05 2.020018849 0.1138533239E-05 2.022365879 0.1153086966E-05 2.024712909 0.1168032821E-05 2.027059940 0.1183392560E-05 2.029406970 0.1199186265E-05 2.031754001 0.1215431230E-05 2.034101031 0.1232140780E-05 2.036448061 0.1249323068E-05 2.038795092 0.1266979962E-05 2.041142122 0.1285106108E-05 2.043489153 0.1303688271E-05 2.045836183 0.1322705009E-05 2.048183213 0.1342126731E-05 2.050530244 0.1361916121E-05 2.052877274 0.1382028886E-05 2.055224304 0.1402414752E-05 2.057571335 0.1423018626E-05 2.059918365 0.1443781810E-05 2.062265396 0.1464643207E-05 2.064612426 0.1485540439E-05 2.066959456 0.1506410842E-05 2.069306487 0.1527192313E-05 2.071653517 0.1547824003E-05 2.074000548 0.1568246868E-05 2.076347578 0.1588404085E-05 2.078694608 0.1608241356E-05 2.081041639 0.1627707128E-05 2.083388669 0.1646752723E-05 2.085735700 0.1665332432E-05 2.088082730 0.1683403544E-05 2.090429760 0.1700926363E-05 2.092776791 0.1717864188E-05 2.095123821 0.1734183283E-05 2.097470852 0.1749852839E-05 2.099817882 0.1764844919E-05 2.102164912 0.1779134409E-05 2.104511943 0.1792698959E-05 2.106858973 0.1805518922E-05 2.109206004 0.1817577294E-05 2.111553034 0.1828859648E-05 2.113900064 0.1839354072E-05 2.116247095 0.1849051101E-05 2.118594125 0.1857943645E-05 2.120941155 0.1866026923E-05 2.123288186 0.1873298388E-05 2.125635216 0.1879757647E-05 2.127982247 0.1885406389E-05 2.130329277 0.1890248298E-05 2.132676307 0.1894288974E-05 2.135023338 0.1897535842E-05 2.137370368 0.1899998068E-05 2.139717399 0.1901686462E-05 2.142064429 0.1902613390E-05 2.144411459 0.1902792676E-05 2.146758490 0.1902239506E-05 2.149105520 0.1900970330E-05 2.151452551 0.1899002766E-05 2.153799581 0.1896355499E-05 2.156146611 0.1893048184E-05 2.158493642 0.1889101347E-05 2.160840672 0.1884536290E-05 2.163187703 0.1879374995E-05 2.165534733 0.1873640031E-05 2.167881763 0.1867354464E-05 2.170228794 0.1860541767E-05 2.172575824 0.1853225737E-05 2.174922855 0.1845430413E-05 2.177269885 0.1837179997E-05 2.179616915 0.1828498783E-05 2.181963946 0.1819411084E-05 2.184310976 0.1809941168E-05 2.186658006 0.1800113198E-05 2.189005037 0.1789951174E-05 2.191352067 0.1779478882E-05 2.193699098 0.1768719847E-05 2.196046128 0.1757697288E-05 2.198393158 0.1746434081E-05 2.200740189 0.1734952724E-05 2.203087219 0.1723275307E-05 2.205434250 0.1711423484E-05 2.207781280 0.1699418454E-05 2.210128310 0.1687280936E-05 2.212475341 0.1675031158E-05 2.214822371 0.1662688842E-05 2.217169402 0.1650273194E-05 2.219516432 0.1637802895E-05 2.221863462 0.1625296101E-05 2.224210493 0.1612770434E-05 2.226557523 0.1600242983E-05 2.228904554 0.1587730306E-05 2.231251584 0.1575248431E-05 2.233598614 0.1562812862E-05 2.235945645 0.1550438578E-05 2.238292675 0.1538140046E-05 2.240639706 0.1525931222E-05 2.242986736 0.1513825563E-05 2.245333766 0.1501836031E-05 2.247680797 0.1489975104E-05 2.250027827 0.1478254785E-05 2.252374857 0.1466686611E-05 2.254721888 0.1455281663E-05 2.257068918 0.1444050575E-05 2.259415949 0.1433003546E-05 2.261762979 0.1422150348E-05 2.264110009 0.1411500339E-05 2.266457040 0.1401062470E-05 2.268804070 0.1390845297E-05 2.271151101 0.1380856993E-05 2.273498131 0.1371105355E-05 2.275845161 0.1361597815E-05 2.278192192 0.1352341452E-05 2.280539222 0.1343342999E-05 2.282886253 0.1334608858E-05 2.285233283 0.1326145100E-05 2.287580313 0.1317957485E-05 2.289927344 0.1310051465E-05 2.292274374 0.1302432194E-05 2.294621405 0.1295104540E-05 2.296968435 0.1288073088E-05 2.299315465 0.1281342153E-05 2.301662496 0.1274915788E-05 2.304009526 0.1268797790E-05 2.306356557 0.1262991707E-05 2.308703587 0.1257500848E-05 2.311050617 0.1252328288E-05 2.313397648 0.1247476878E-05 2.315744678 0.1242949245E-05 2.318091708 0.1238747804E-05 2.320438739 0.1234874762E-05 2.322785769 0.1231332122E-05 2.325132800 0.1228121689E-05 2.327479830 0.1225245076E-05 2.329826860 0.1222703703E-05 2.332173891 0.1220498809E-05 2.334520921 0.1218631446E-05 2.336867952 0.1217102491E-05 2.339214982 0.1215912640E-05 2.341562012 0.1215062417E-05 2.343909043 0.1214552171E-05 2.346256073 0.1214382078E-05 0.000000000 0.9192247033E-07 0.2347351854E-02 0.9182728064E-07 0.4694703708E-02 0.9154209634E-07 0.7042055561E-02 0.9106807035E-07 0.9389407415E-02 0.9040711951E-07 0.1173675927E-01 0.8956191745E-07 0.1408411112E-01 0.8853588479E-07 0.1643146298E-01 0.8733317647E-07 0.1877881483E-01 0.8595866636E-07 0.2112616668E-01 0.8441792923E-07 0.2347351854E-01 0.8271722004E-07 0.2582087039E-01 0.8086345060E-07 0.2816822225E-01 0.7886416387E-07 0.3051557410E-01 0.7695614621E-07 0.3286292595E-01 0.8469859297E-07 0.3521027781E-01 0.9333223367E-07 0.3755762966E-01 0.1029108787E-06 0.3990498151E-01 0.1134877391E-06 0.4225233337E-01 0.1251148554E-06 0.4459968522E-01 0.1378425835E-06 0.4694703708E-01 0.1517191486E-06 0.4929438893E-01 0.1667902803E-06 0.5164174078E-01 0.1830989371E-06 0.5398909264E-01 0.2006851248E-06 0.5633644449E-01 0.2195858108E-06 0.5868379634E-01 0.2398349319E-06 0.6103114820E-01 0.2614634873E-06 0.6337850005E-01 0.2844997074E-06 0.6572585191E-01 0.3089692835E-06 0.6807320376E-01 0.3348956428E-06 0.7042055561E-01 0.3623002503E-06 0.7276790747E-01 0.3912029221E-06 0.7511525932E-01 0.4216221309E-06 0.7746261117E-01 0.4535752920E-06 0.7980996303E-01 0.4870790151E-06 0.8215731488E-01 0.5221493162E-06 0.8450466674E-01 0.5588017810E-06 0.8685201859E-01 0.5970516790E-06 0.8919937044E-01 0.6369140281E-06 0.9154672230E-01 0.6784036118E-06 0.9389407415E-01 0.7215349529E-06 0.9624142601E-01 0.7663222497E-06 0.9858877786E-01 0.8127792798E-06 0.1009361297 0.8609192780E-06 0.1032834816 0.9107547946E-06 0.1056308334 0.9622975393E-06 0.1079781853 0.1015558215E-05 0.1103255371 0.1070546349E-05 0.1126728890 0.1127270120E-05 0.1150202408 0.1185736189E-05 0.1173675927 0.1245949536E-05 0.1197149445 0.1307913301E-05 0.1220622964 0.1371628631E-05 0.1244096483 0.1437094543E-05 0.1267570001 0.1504307787E-05 0.1291043520 0.1573262728E-05 0.1314517038 0.1643951234E-05 0.1337990557 0.1716362570E-05 0.1361464075 0.1790483313E-05 0.1384937594 0.1866297268E-05 0.1408411112 0.1943785398E-05 0.1431884631 0.2022925764E-05 0.1455358149 0.2103693471E-05 0.1478831668 0.2186060628E-05 0.1502305186 0.2269996317E-05 0.1525778705 0.2355466564E-05 0.1549252223 0.2442434327E-05 0.1572725742 0.2530859490E-05 0.1596199261 0.2620698860E-05 0.1619672779 0.2711906180E-05 0.1643146298 0.2804432144E-05 0.1666619816 0.2898224423E-05 0.1690093335 0.2993227694E-05 0.1713566853 0.3089383681E-05 0.1737040372 0.3186631203E-05 0.1760513890 0.3284906221E-05 0.1783987409 0.3384141904E-05 0.1807460927 0.3484268692E-05 0.1830934446 0.3585214366E-05 0.1854407964 0.3686904132E-05 0.1877881483 0.3789260700E-05 0.1901355002 0.3892204376E-05 0.1924828520 0.3995653157E-05 0.1948302039 0.4099522832E-05 0.1971775557 0.4203727087E-05 0.1995249076 0.4308177617E-05 0.2018722594 0.4412784237E-05 0.2042196113 0.4517455008E-05 0.2065669631 0.4622096354E-05 0.2089143150 0.4726613193E-05 0.2112616668 0.4830909067E-05 0.2136090187 0.4934886275E-05 0.2159563705 0.5038446014E-05 0.2183037224 0.5141488514E-05 0.2206510743 0.5243913184E-05 0.2229984261 0.5345618758E-05 0.2253457780 0.5446503440E-05 0.2276931298 0.5546465050E-05 0.2300404817 0.5645401180E-05 0.2323878335 0.5743209343E-05 0.2347351854 0.5839787121E-05 0.2370825372 0.5935032326E-05 0.2394298891 0.6028843147E-05 0.2417772409 0.6121118304E-05 0.2441245928 0.6211757205E-05 0.2464719446 0.6300660098E-05 0.2488192965 0.6387728221E-05 0.2511666484 0.6472863956E-05 0.2535140002 0.6555970983E-05 0.2558613521 0.6636954424E-05 0.2582087039 0.6715720999E-05 0.2605560558 0.6792179169E-05 0.2629034076 0.6866239286E-05 0.2652507595 0.6937813735E-05 0.2675981113 0.7006817082E-05 0.2699454632 0.7073166217E-05 0.2722928150 0.7136780493E-05 0.2746401669 0.7197581869E-05 0.2769875187 0.7255495050E-05 0.2793348706 0.7310447629E-05 0.2816822225 0.7362370224E-05 0.2840295743 0.7411196621E-05 0.2863769262 0.7456863912E-05 0.2887242780 0.7499312642E-05 0.2910716299 0.7538486949E-05 0.2934189817 0.7574334715E-05 0.2957663336 0.7459016616E-05 0.2981136854 0.7119338445E-05 0.3004610373 0.6804238400E-05 0.3028083891 0.6536485098E-05 0.3051557410 0.6338007540E-05 0.3075030928 0.6213499855E-05 0.3098504447 0.6146813979E-05 0.3121977966 0.6116731289E-05 0.3145451484 0.6107724976E-05 0.3168925003 0.6110440813E-05 0.3192398521 0.6119458615E-05 0.3215872040 0.6131569226E-05 0.3239345558 0.6144792811E-05 0.3262819077 0.6157852084E-05 0.3286292595 0.6169887255E-05 0.3309766114 0.6180297048E-05 0.3333239632 0.6188646788E-05 0.3356713151 0.6194613341E-05 0.3380186669 0.6197951020E-05 0.3403660188 0.6198469834E-05 0.3427133707 0.6196021233E-05 0.3450607225 0.6190488535E-05 0.3474080744 0.6181780367E-05 0.3497554262 0.6169826071E-05 0.3521027781 0.6154572430E-05 0.3544501299 0.6135981297E-05 0.3567974818 0.6114027839E-05 0.3591448336 0.6088699216E-05 0.3614921855 0.6059993571E-05 0.3638395373 0.6027919223E-05 0.3661868892 0.5992494027E-05 0.3685342410 0.5953744829E-05 0.3708815929 0.5911707009E-05 0.3732289448 0.5866424065E-05 0.3755762966 0.5817947236E-05 0.3779236485 0.5766335151E-05 0.3802710003 0.5711653483E-05 0.3826183522 0.5653974616E-05 0.3849657040 0.5593377308E-05 0.3873130559 0.5529946358E-05 0.3896604077 0.5463772265E-05 0.3920077596 0.5394950883E-05 0.3943551114 0.5323583071E-05 0.3967024633 0.5249774339E-05 0.3990498151 0.5173634483E-05 0.4013971670 0.5095277223E-05 0.4037445189 0.5014819833E-05 0.4060918707 0.5005468660E-05 0.4084392226 0.5288673441E-05 0.4107865744 0.5569425212E-05 0.4131339263 0.5492369572E-05 0.4154812781 0.5415449725E-05 0.4178286300 0.5338665274E-05 0.4201759818 0.5262009192E-05 0.4225233337 0.5185469260E-05 0.4248706855 0.5109029547E-05 0.4272180374 0.5032671876E-05 0.4295653892 0.4956377252E-05 0.4319127411 0.4880127203E-05 0.4342600929 0.4803905008E-05 0.4366074448 0.4727696786E-05 0.4389547967 0.4901888417E-05 0.4413021485 0.5098754277E-05 0.4436495004 0.5299373501E-05 0.4459968522 0.5503661844E-05 0.4483442041 0.5711528969E-05 0.4506915559 0.5922878490E-05 0.4530389078 0.6137608011E-05 0.4553862596 0.6355609181E-05 0.4577336115 0.6576767757E-05 0.4600809633 0.6800963681E-05 0.4624283152 0.7028071162E-05 0.4647756670 0.7257958774E-05 0.4671230189 0.7490489555E-05 0.4694703708 0.7725521127E-05 0.4718177226 0.7962905817E-05 0.4741650745 0.8202490791E-05 0.4765124263 0.8444118201E-05 0.4788597782 0.8687625331E-05 0.4812071300 0.8932844767E-05 0.4835544819 0.9179604561E-05 0.4859018337 0.9427728418E-05 0.4882491856 0.9515407986E-05 0.4905965374 0.9177665451E-05 0.4929438893 0.8845393331E-05 0.4952912411 0.8519337714E-05 0.4976385930 0.8200062348E-05 0.4999859449 0.7887996991E-05 0.5023332967 0.7583470443E-05 0.5046806486 0.7286733539E-05 0.5070280004 0.6997975471E-05 0.5093753523 0.6717335601E-05 0.5117227041 0.6444912168E-05 0.5140700560 0.6180768848E-05 0.5164174078 0.5924939779E-05 0.5187647597 0.5677433507E-05 0.5211121115 0.5438236133E-05 0.5234594634 0.5207313894E-05 0.5258068152 0.4984615307E-05 0.5281541671 0.4770072998E-05 0.5305015190 0.4563605296E-05 0.5328488708 0.4365117635E-05 0.5351962227 0.4174503833E-05 0.5375435745 0.3991647246E-05 0.5398909264 0.3816421849E-05 0.5422382782 0.3648693253E-05 0.5445856301 0.3488319659E-05 0.5469329819 0.3335152785E-05 0.5492803338 0.3189038741E-05 0.5516276856 0.3049818894E-05 0.5539750375 0.2917330686E-05 0.5563223893 0.2791408453E-05 0.5586697412 0.2671884202E-05 0.5610170931 0.2558588385E-05 0.5633644449 0.2451350643E-05 0.5657117968 0.2350000535E-05 0.5680591486 0.2254368249E-05 0.5704065005 0.2164285287E-05 0.5727538523 0.2079585127E-05 0.5751012042 0.2000103862E-05 0.5774485560 0.1925680804E-05 0.5797959079 0.1856159056E-05 0.5821432597 0.1791386045E-05 0.5844906116 0.1731214007E-05 0.5868379634 0.1675500413E-05 0.5891853153 0.1624108347E-05 0.5915326672 0.1576906802E-05 0.5938800190 0.1533770913E-05 0.5962273709 0.1494582126E-05 0.5985747227 0.1459228303E-05 0.6009220746 0.1427603812E-05 0.6032694264 0.1399609622E-05 0.6056167783 0.1375153495E-05 0.6079641301 0.1354150330E-05 0.6103114820 0.1336522739E-05 0.6126588338 0.1322201911E-05 0.6150061857 0.1311128753E-05 0.6173535375 0.1303255228E-05 0.6197008894 0.1298545746E-05 0.6220482413 0.1296978388E-05 0.6243952716 0.1297159520E-05 0.6267423020 0.1297678903E-05 0.6290893324 0.1298536532E-05 0.6314363628 0.1299732342E-05 0.6337833932 0.1301266221E-05 0.6361304236 0.1303138028E-05 0.6384774540 0.1305347610E-05 0.6408244844 0.1307894833E-05 0.6431715148 0.1310779626E-05 0.6455185452 0.1314002031E-05 0.6478655756 0.1317562286E-05 0.6502126060 0.1321460927E-05 0.6525596364 0.1325698942E-05 0.6549066668 0.1330277991E-05 0.6572536971 0.1335200731E-05 0.6596007275 0.1340471303E-05 0.6619477579 0.1346096085E-05 0.6642947883 0.1352084901E-05 0.6666418187 0.1358453003E-05 0.6689888491 0.1365224472E-05 0.6713358795 0.1372438293E-05 0.6736829099 0.1380159659E-05 0.6760299403 0.1388501882E-05 0.6783769707 0.1397669485E-05 0.6807240011 0.1408037877E-05 0.6830710315 0.1420256598E-05 0.6854180619 0.1435191976E-05 0.6877650922 0.1453379119E-05 0.6901121226 0.1474515201E-05 0.6924591530 0.1497879679E-05 0.6948061834 0.1522884629E-05 0.6971532138 0.1549170188E-05 0.6995002442 0.1576526633E-05 0.7018472746 0.1604825951E-05 0.7041943050 0.1633983285E-05 0.7065413354 0.1663936883E-05 0.7088883658 0.1694637582E-05 0.7112353962 0.1726043090E-05 0.7135824266 0.1758114746E-05 0.7159294570 0.1790815607E-05 0.7182764874 0.1824109278E-05 0.7206235177 0.1857959172E-05 0.7229705481 0.1892328028E-05 0.7253175785 0.1927177599E-05 0.7276646089 0.1962468438E-05 0.7300116393 0.1998159763E-05 0.7323586697 0.2034209368E-05 0.7347057001 0.2070573575E-05 0.7370527305 0.2107207207E-05 0.7393997609 0.2144063594E-05 0.7417467913 0.2181094584E-05 0.7440938217 0.2218250582E-05 0.7464408521 0.2255480594E-05 0.7487878825 0.2292732286E-05 0.7511349128 0.2329952053E-05 0.7534819432 0.2367085100E-05 0.7558289736 0.2404075532E-05 0.7581760040 0.2440866449E-05 0.7605230344 0.2477400058E-05 0.7628700648 0.2513617783E-05 0.7652170952 0.2549460393E-05 0.7675641256 0.2584868126E-05 0.7699111560 0.2619780832E-05 0.7722581864 0.2654138109E-05 0.7746052168 0.2687879458E-05 0.7769522472 0.2720944436E-05 0.7792992776 0.2753272812E-05 0.7816463080 0.2784804733E-05 0.7839933383 0.2815480886E-05 0.7863403687 0.2845242676E-05 0.7886873991 0.2874032385E-05 0.7910344295 0.2901793357E-05 0.7933814599 0.2928470159E-05 0.7957284903 0.2954008761E-05 0.7980755207 0.2978356703E-05 0.8004225511 0.3001463264E-05 0.8027695815 0.3023279626E-05 0.8051166119 0.3043759036E-05 0.8074636423 0.3062856957E-05 0.8098106727 0.3080531222E-05 0.8121577031 0.3096742171E-05 0.8145047335 0.3111452784E-05 0.8168517638 0.3124628808E-05 0.8191987942 0.3136238867E-05 0.8215458246 0.3146254568E-05 0.8238928550 0.3154650589E-05 0.8262398854 0.3161404763E-05 0.8285869158 0.3166498142E-05 0.8309339462 0.3169915051E-05 0.8332809766 0.3171643129E-05 0.8356280070 0.3171673358E-05 0.8379750374 0.3170000076E-05 0.8403220678 0.3166620979E-05 0.8426690982 0.3161537107E-05 0.8450161286 0.3154752823E-05 0.8473631589 0.3146275773E-05 0.8497101893 0.3136116842E-05 0.8520572197 0.3124290094E-05 0.8544042501 0.3110812703E-05 0.8567512805 0.3095704881E-05 0.8590983109 0.3078989786E-05 0.8614453413 0.3060693440E-05 0.8637923717 0.3040844627E-05 0.8661394021 0.3019474797E-05 0.8684864325 0.2996617963E-05 0.8708334629 0.2972310601E-05 0.8731804933 0.2946591551E-05 0.8755275237 0.2919501923E-05 0.8778745541 0.2891085017E-05 0.8802215844 0.2861386252E-05 0.8825686148 0.2830453122E-05 0.8849156452 0.2798335195E-05 0.8872626756 0.2765084156E-05 0.8896097060 0.2730753955E-05 0.8919567364 0.2695401099E-05 0.8943037668 0.2659085195E-05 0.8966507972 0.2621869948E-05 0.8989978276 0.2583824995E-05 0.9013448580 0.2545029413E-05 0.9036918884 0.2505578784E-05 0.9060389188 0.2465600621E-05 0.9083859492 0.2425291694E-05 0.9107329796 0.2385021496E-05 0.9130800099 0.2345669738E-05 0.9154270403 0.2309837237E-05 0.9177740707 0.2283917961E-05 0.9201211011 0.2270343881E-05 0.9224681315 0.2262597025E-05 0.9248151619 0.2256737014E-05 0.9271621923 0.2242347238E-05 0.9295092227 0.2211325031E-05 0.9318562531 0.2181957817E-05 0.9342032835 0.2154191551E-05 0.9365503139 0.2127973680E-05 0.9388973443 0.2103253112E-05 0.9412443747 0.2079980185E-05 0.9435914050 0.2058106627E-05 0.9459384354 0.2037585507E-05 0.9482854658 0.2018371184E-05 0.9506324962 0.2000419253E-05 0.9529795266 0.1983686485E-05 0.9553265570 0.1968130767E-05 0.9576735874 0.1953711040E-05 0.9600206178 0.1940387236E-05 0.9623676482 0.1928120214E-05 0.9647146786 0.1916871701E-05 0.9670617090 0.1906604226E-05 0.9694087394 0.1897281066E-05 0.9717557698 0.1888866186E-05 0.9741028002 0.1881324188E-05 0.9764498305 0.1874620258E-05 0.9787968609 0.1868720116E-05 0.9811438913 0.1863589980E-05 0.9834909217 0.1859196519E-05 0.9858379521 0.1855506820E-05 0.9881849825 0.1852488356E-05 0.9905320129 0.1850108956E-05 0.9928790433 0.1848336786E-05 0.9952260737 0.1847140326E-05 0.9975731041 0.1846488354E-05 0.9999201345 0.1846349937E-05 1.002267165 0.1846694423E-05 1.004614195 0.1847491436E-05 1.006961226 0.1848710879E-05 1.009308256 0.1850322934E-05 1.011655286 0.1852298073E-05 1.014002317 0.1854607065E-05 1.016349347 0.1857220992E-05 1.018696378 0.1860111268E-05 1.021043408 0.1863249651E-05 1.023390438 0.1866608273E-05 1.025737469 0.1870159662E-05 1.028084499 0.1873876767E-05 1.030431530 0.1877732989E-05 1.032778560 0.1881702211E-05 1.035125590 0.1885758830E-05 1.037472621 0.1889877793E-05 1.039819651 0.1894034629E-05 1.042166682 0.1898205486E-05 1.044513712 0.1902367170E-05 1.046860742 0.1906497178E-05 1.049207773 0.1910573739E-05 1.051554803 0.1914189205E-05 1.053901834 0.1910095666E-05 1.056248864 0.1906212812E-05 1.058595894 0.1902544734E-05 1.060942925 0.1899095275E-05 1.063289955 0.1895868036E-05 1.065636985 0.1892866371E-05 1.067984016 0.1890093387E-05 1.070331046 0.1887551944E-05 1.072678077 0.1885244655E-05 1.075025107 0.1883173884E-05 1.077372137 0.1881341749E-05 1.079719168 0.1879750118E-05 1.082066198 0.1878400610E-05 1.084413229 0.1877294596E-05 1.086760259 0.1876433198E-05 1.089107289 0.1875817289E-05 1.091454320 0.1875447494E-05 1.093801350 0.1875324187E-05 1.096152861 0.1876447936E-05 1.098504372 0.1879813123E-05 1.100855883 0.1885396790E-05 1.103207394 0.1893138352E-05 1.105558905 0.1902867354E-05 1.107910415 0.1913994115E-05 1.110261926 0.1923941697E-05 1.112613437 0.1926650868E-05 1.114964948 0.1923434676E-05 1.117316459 0.1918055360E-05 1.119667970 0.1911572037E-05 1.122019481 0.1904285031E-05 1.124370992 0.1896313377E-05 1.126722503 0.1887720264E-05 1.129074013 0.1878548116E-05 1.131425524 0.1868830755E-05 1.133777035 0.1858598331E-05 1.136128546 0.1847879565E-05 1.138480057 0.1836702853E-05 1.140831568 0.1825096847E-05 1.143183079 0.1813090779E-05 1.145534590 0.1800714642E-05 1.147886101 0.1787999293E-05 1.150237611 0.1774976516E-05 1.152589122 0.1761679056E-05 1.154940633 0.1748140642E-05 1.157292144 0.1734395996E-05 1.159643655 0.1720480850E-05 1.161995166 0.1706431947E-05 1.164346677 0.1692287056E-05 1.166698188 0.1678084983E-05 1.169049699 0.1663865588E-05 1.171401209 0.1649669807E-05 1.173752720 0.1635539676E-05 1.176104231 0.1621518363E-05 1.178455742 0.1607650200E-05 1.180807253 0.1593980725E-05 1.183158764 0.1580556720E-05 1.185510275 0.1567426253E-05 1.187861786 0.1554638717E-05 1.190213296 0.1542244865E-05 1.192564807 0.1530296830E-05 1.194916318 0.1518848136E-05 1.197267829 0.1507953682E-05 1.199619340 0.1497669692E-05 1.201970851 0.1488053632E-05 1.204322362 0.1479164060E-05 1.206673873 0.1471060427E-05 1.209025384 0.1463802782E-05 1.211376894 0.1457451398E-05 1.213728405 0.1452066281E-05 1.216079916 0.1447706577E-05 1.218431427 0.1444429847E-05 1.220782938 0.1442291238E-05 1.223134449 0.1441342535E-05 1.225485960 0.1441631143E-05 1.227837471 0.1443199004E-05 1.230188982 0.1446081520E-05 1.232540492 0.1450306515E-05 1.234892003 0.1455893318E-05 1.237243514 0.1462852015E-05 1.239595025 0.1471182927E-05 1.241946536 0.1480876374E-05 1.244298047 0.1491912734E-05 1.246649558 0.1504262808E-05 1.249001069 0.1517888470E-05 1.251352580 0.1532743569E-05 1.253704090 0.1548774998E-05 1.256055601 0.1565923894E-05 1.258407112 0.1584126877E-05 1.260758623 0.1603317265E-05 1.263110134 0.1623426219E-05 1.265461645 0.1644383774E-05 1.267813156 0.1666119726E-05 1.270164667 0.1688564372E-05 1.272516177 0.1711649097E-05 1.274867688 0.1735306826E-05 1.277219199 0.1759472343E-05 1.279570710 0.1784082505E-05 1.281922221 0.1809076369E-05 1.284273732 0.1834395239E-05 1.286625243 0.1859982669E-05 1.288976754 0.1885784410E-05 1.291328265 0.1911748340E-05 1.293679775 0.1937824360E-05 1.296031286 0.1963964288E-05 1.298382797 0.1990121734E-05 1.300734308 0.2016251982E-05 1.303085819 0.2042311862E-05 1.305437330 0.2068259630E-05 1.307788841 0.2094054849E-05 1.310140352 0.2119658274E-05 1.312491863 0.2145031745E-05 1.314843373 0.2170138085E-05 1.317194884 0.2194941006E-05 1.319546395 0.2219405022E-05 1.321897906 0.2243495374E-05 1.324249417 0.2267177962E-05 1.326600928 0.2290419288E-05 1.328952439 0.2313186414E-05 1.331303950 0.2335446928E-05 1.333655461 0.2357168929E-05 1.336006971 0.2378321024E-05 1.338358482 0.2398872341E-05 1.340709993 0.2418792559E-05 1.343061504 0.2438051955E-05 1.345413015 0.2456621463E-05 1.347764526 0.2474472752E-05 1.350116037 0.2491578314E-05 1.352467548 0.2507911561E-05 1.354819059 0.2523446931E-05 1.357170569 0.2538159992E-05 1.359522080 0.2552027549E-05 1.361873591 0.2565027732E-05 1.364225102 0.2577140079E-05 1.366576613 0.2588345592E-05 1.368928124 0.2598626772E-05 1.371279635 0.2607967619E-05 1.373631146 0.2616353606E-05 1.375982656 0.2623771613E-05 1.378334167 0.2630209835E-05 1.380685678 0.2635657651E-05 1.383037189 0.2640105480E-05 1.385388700 0.2643544609E-05 1.387740211 0.2645967016E-05 1.390091722 0.2647365192E-05 1.392443233 0.2647731977E-05 1.394794744 0.2647060404E-05 1.397146254 0.2645343592E-05 1.399497765 0.2654288523E-05 1.401849276 0.2706181115E-05 1.404200787 0.2758099964E-05 1.406552298 0.2809993166E-05 1.408903809 0.2861808508E-05 1.411255320 0.2913493648E-05 1.413606831 0.2964996303E-05 1.415958342 0.3016264451E-05 1.418309852 0.3067246537E-05 1.420661363 0.3117891688E-05 1.423012874 0.3168149948E-05 1.425364385 0.3217972512E-05 1.427715896 0.3267311988E-05 1.430067407 0.3316122672E-05 1.432418918 0.3364360843E-05 1.434770429 0.3411985100E-05 1.437121940 0.3433771501E-05 1.439473450 0.3382655998E-05 1.441824961 0.3332773832E-05 1.444176472 0.3284085352E-05 1.446527983 0.3236550040E-05 1.448879494 0.3190126819E-05 1.451231005 0.3144774430E-05 1.453582516 0.3100451899E-05 1.455934027 0.3057119061E-05 1.458285537 0.3014737131E-05 1.460637048 0.2973269301E-05 1.462988559 0.2932681348E-05 1.465340070 0.2892942218E-05 1.467691581 0.2854024579E-05 1.470043092 0.2815905330E-05 1.472394603 0.2778566060E-05 1.474746114 0.2741993486E-05 1.477097625 0.2706179920E-05 1.479449135 0.2754948810E-05 1.481800646 0.2958913471E-05 1.484152157 0.3162570940E-05 1.486503668 0.3361303815E-05 1.488855179 0.3548208081E-05 1.491206690 0.3714184446E-05 1.493558201 0.3850720103E-05 1.495909712 0.3955044302E-05 1.498261223 0.4031622984E-05 1.500612733 0.4087886725E-05 1.502964244 0.4130236201E-05 1.505315755 0.4163040253E-05 1.507667266 0.4189058583E-05 1.510018777 0.4210018401E-05 1.512370288 0.4227021172E-05 1.514721799 0.4240789786E-05 1.517073310 0.4251813656E-05 1.519424821 0.4260434361E-05 1.521776331 0.4266897242E-05 1.524127842 0.4271383303E-05 1.526479353 0.4274029453E-05 1.528830864 0.4274941693E-05 1.531182375 0.4274203906E-05 1.533533886 0.4271883856E-05 1.535885397 0.4268037360E-05 1.538236908 0.4262711246E-05 1.540588418 0.4255945483E-05 1.542939929 0.4247774751E-05 1.545291440 0.4238229599E-05 1.547642951 0.4227337326E-05 1.549994462 0.4215122651E-05 1.552345973 0.4201608234E-05 1.554697484 0.4186815087E-05 1.557048995 0.4170762898E-05 1.559400506 0.4153470298E-05 1.561752016 0.4134955070E-05 1.564103527 0.4115234334E-05 1.566455038 0.4094324696E-05 1.568806549 0.4072242373E-05 1.571158060 0.4049003311E-05 1.573509571 0.4024623276E-05 1.575861082 0.3999117944E-05 1.578212593 0.3972502977E-05 1.580564104 0.3944794098E-05 1.582915614 0.3916007149E-05 1.585267125 0.3886158157E-05 1.587618636 0.3855263385E-05 1.589970147 0.3823339385E-05 1.592321658 0.3790403049E-05 1.594673169 0.3756471651E-05 1.597024680 0.3721562891E-05 1.599376191 0.3738608861E-05 1.601727702 0.3757225318E-05 1.604079212 0.3774374205E-05 1.606430723 0.3789995395E-05 1.608782234 0.3804030757E-05 1.611133745 0.3816424336E-05 1.613485256 0.3827122527E-05 1.615836767 0.3836074251E-05 1.618188278 0.3843231119E-05 1.620539789 0.3848547596E-05 1.622891299 0.3851981160E-05 1.625242810 0.3853492446E-05 1.627594321 0.3853045395E-05 1.629945832 0.3850607382E-05 1.632297343 0.3846149345E-05 1.634648854 0.3839645899E-05 1.637000365 0.3831075444E-05 1.639351876 0.3820420257E-05 1.641703387 0.3807666578E-05 1.644054897 0.3792804681E-05 1.646406408 0.3775828938E-05 1.648757919 0.3756737861E-05 1.651109430 0.3735534140E-05 1.653460941 0.3712224666E-05 1.655812452 0.3686820540E-05 1.658163963 0.3659337062E-05 1.660515474 0.3629793721E-05 1.662866985 0.3598214158E-05 1.665218495 0.3564626121E-05 1.667570006 0.3529061408E-05 1.669921517 0.3491555790E-05 1.672273028 0.3452148930E-05 1.674624539 0.3410884283E-05 1.676976050 0.3367808985E-05 1.679327561 0.3322973731E-05 1.681679072 0.3276432639E-05 1.684030583 0.3228243108E-05 1.686382093 0.3178465661E-05 1.688733604 0.3127163783E-05 1.691085115 0.3074403743E-05 1.693436626 0.3020254421E-05 1.695788137 0.2964787116E-05 1.698139648 0.2908075355E-05 1.700491159 0.2850194698E-05 1.702842670 0.2791222536E-05 1.705194180 0.2731237895E-05 1.707545691 0.2670321229E-05 1.709897202 0.2608554225E-05 1.712248713 0.2546019604E-05 1.714600224 0.2482800928E-05 1.716951735 0.2418982419E-05 1.719303246 0.2354648775E-05 1.721654757 0.2289885005E-05 1.724006268 0.2224776273E-05 1.726357778 0.2159407750E-05 1.728709289 0.2093864488E-05 1.731060800 0.2028231300E-05 1.733412311 0.1962592669E-05 1.735763822 0.1897032656E-05 1.738115333 0.1831634841E-05 1.740466844 0.1766482270E-05 1.742818355 0.1701657418E-05 1.745169866 0.1637242164E-05 1.747521376 0.1573317772E-05 1.749872887 0.1509964878E-05 1.752224398 0.1447263470E-05 1.754575909 0.1385292864E-05 1.756927420 0.1324131657E-05 1.759278931 0.1263857655E-05 1.761630442 0.1204547771E-05 1.763981953 0.1146277873E-05 1.766333464 0.1089122584E-05 1.768684974 0.1033155027E-05 1.771036485 0.9784465029E-06 1.773387996 0.9250661121E-06 1.775739507 0.8730803119E-06 1.778091018 0.8225524229E-06 1.780442529 0.7735420911E-06 1.782794040 0.7261047203E-06 1.785145551 0.6802908929E-06 1.787497061 0.6361457958E-06 1.789848572 0.5937086739E-06 1.792200083 0.5530123302E-06 1.794551594 0.5140826911E-06 1.796903105 0.4769384535E-06 1.799254616 0.4415908269E-06 1.801606127 0.4080433795E-06 1.803957638 0.3762919930E-06 1.806309149 0.3463249286E-06 1.808660659 0.3181229986E-06 1.811012170 0.2916598415E-06 1.813363681 0.2669022884E-06 1.815715192 0.2438108124E-06 1.818066703 0.2223400491E-06 1.820418214 0.2024393747E-06 1.822769725 0.1840535314E-06 1.825121236 0.1671232868E-06 1.827472747 0.1515861177E-06 1.829824257 0.1373769085E-06 1.832175768 0.1244286592E-06 1.834527279 0.1126732041E-06 1.836878790 0.1020419737E-06 1.839230301 0.9246698743E-07 1.841581812 0.8388391530E-07 1.843933323 0.7688896675E-07 1.846284834 0.7884076656E-07 1.848636345 0.8082082064E-07 1.850987855 0.8266631364E-07 1.853339366 0.8436538782E-07 1.855690877 0.8590913831E-07 1.858042388 0.8728980005E-07 1.860393899 0.8850050982E-07 1.862745410 0.8953527222E-07 1.865096921 0.9038896874E-07 1.867448432 0.9105737678E-07 1.869799942 0.9153718910E-07 1.872151453 0.9182603050E-07 1.874502964 0.9192247033E-07 1.876849995 0.9197320809E-07 1.879197025 0.9212547147E-07 1.881544055 0.9237941044E-07 1.883891086 0.9273527417E-07 1.886238116 0.9319340972E-07 1.888585147 0.9375426032E-07 1.890932177 0.9441836311E-07 1.893279207 0.9518634648E-07 1.895626238 0.9605892683E-07 1.897973268 0.9703690496E-07 1.900320299 0.9812116195E-07 1.902667329 0.9931265466E-07 1.905014359 0.1006124108E-06 1.907361390 0.1020215234E-06 1.909708420 0.1035411455E-06 1.912055451 0.1051724835E-06 1.914402481 0.1069167913E-06 1.916749511 0.1087753630E-06 1.919096542 0.1107495263E-06 1.921443572 0.1128406349E-06 1.923790603 0.1150500611E-06 1.926137633 0.1173791876E-06 1.928484663 0.1198294003E-06 1.930831694 0.1224020793E-06 1.933178724 0.1382697720E-06 1.935525754 0.1583108175E-06 1.937872785 0.1804582315E-06 1.940219815 0.2048375859E-06 1.942566846 0.2315739003E-06 1.944913876 0.2607911157E-06 1.947260906 0.2926115780E-06 1.949607937 0.3271555337E-06 1.951954967 0.3645406380E-06 1.954301998 0.4048814763E-06 1.956649028 0.4482890988E-06 1.958996058 0.4948705698E-06 1.961343089 0.5447285308E-06 1.963690119 0.5979607783E-06 1.966037150 0.6546598580E-06 1.968384180 0.7149126740E-06 1.970731210 0.7788001161E-06 1.973078241 0.8463967038E-06 1.975425271 0.9135726006E-06 1.977772302 0.9235328131E-06 1.980119332 0.9336802408E-06 1.982466362 0.9440147397E-06 1.984813393 0.9545368164E-06 1.987160423 0.9652477306E-06 1.989507454 0.9761496033E-06 1.991854484 0.9872455351E-06 1.994201514 0.9985397312E-06 1.996548545 0.1010037632E-05 1.998895575 0.1021746045E-05 2.001242605 0.1033673280E-05 2.003589636 0.1045829266E-05 2.005936666 0.1058225666E-05 2.008283697 0.1070875952E-05 2.010630727 0.1083795445E-05 2.012977757 0.1097001300E-05 2.015324788 0.1110512403E-05 2.017671818 0.1124349173E-05 2.020018849 0.1138533239E-05 2.022365879 0.1153086967E-05 2.024712909 0.1168032821E-05 2.027059940 0.1183392560E-05 2.029406970 0.1199186265E-05 2.031754001 0.1215431230E-05 2.034101031 0.1232140780E-05 2.036448061 0.1249323068E-05 2.038795092 0.1266979962E-05 2.041142122 0.1285106108E-05 2.043489153 0.1303688271E-05 2.045836183 0.1322705009E-05 2.048183213 0.1342126732E-05 2.050530244 0.1361916122E-05 2.052877274 0.1382028886E-05 2.055224304 0.1402414752E-05 2.057571335 0.1423018626E-05 2.059918365 0.1443781811E-05 2.062265396 0.1464643208E-05 2.064612426 0.1485540440E-05 2.066959456 0.1506410843E-05 2.069306487 0.1527192313E-05 2.071653517 0.1547824004E-05 2.074000548 0.1568246869E-05 2.076347578 0.1588404085E-05 2.078694608 0.1608241357E-05 2.081041639 0.1627707128E-05 2.083388669 0.1646752724E-05 2.085735700 0.1665332432E-05 2.088082730 0.1683403545E-05 2.090429760 0.1700926364E-05 2.092776791 0.1717864188E-05 2.095123821 0.1734183284E-05 2.097470852 0.1749852839E-05 2.099817882 0.1764844919E-05 2.102164912 0.1779134409E-05 2.104511943 0.1792698959E-05 2.106858973 0.1805518923E-05 2.109206004 0.1817577294E-05 2.111553034 0.1828859648E-05 2.113900064 0.1839354073E-05 2.116247095 0.1849051101E-05 2.118594125 0.1857943645E-05 2.120941155 0.1866026924E-05 2.123288186 0.1873298388E-05 2.125635216 0.1879757647E-05 2.127982247 0.1885406389E-05 2.130329277 0.1890248298E-05 2.132676307 0.1894288974E-05 2.135023338 0.1897535843E-05 2.137370368 0.1899998068E-05 2.139717399 0.1901686463E-05 2.142064429 0.1902613391E-05 2.144411459 0.1902792677E-05 2.146758490 0.1902239506E-05 2.149105520 0.1900970331E-05 2.151452551 0.1899002767E-05 2.153799581 0.1896355500E-05 2.156146611 0.1893048184E-05 2.158493642 0.1889101347E-05 2.160840672 0.1884536290E-05 2.163187703 0.1879374995E-05 2.165534733 0.1873640031E-05 2.167881763 0.1867354464E-05 2.170228794 0.1860541767E-05 2.172575824 0.1853225737E-05 2.174922855 0.1845430413E-05 2.177269885 0.1837179998E-05 2.179616915 0.1828498783E-05 2.181963946 0.1819411084E-05 2.184310976 0.1809941168E-05 2.186658006 0.1800113198E-05 2.189005037 0.1789951174E-05 2.191352067 0.1779478883E-05 2.193699098 0.1768719848E-05 2.196046128 0.1757697289E-05 2.198393158 0.1746434081E-05 2.200740189 0.1734952724E-05 2.203087219 0.1723275307E-05 2.205434250 0.1711423485E-05 2.207781280 0.1699418454E-05 2.210128310 0.1687280936E-05 2.212475341 0.1675031158E-05 2.214822371 0.1662688842E-05 2.217169402 0.1650273194E-05 2.219516432 0.1637802896E-05 2.221863462 0.1625296102E-05 2.224210493 0.1612770434E-05 2.226557523 0.1600242983E-05 2.228904554 0.1587730306E-05 2.231251584 0.1575248431E-05 2.233598614 0.1562812862E-05 2.235945645 0.1550438578E-05 2.238292675 0.1538140046E-05 2.240639706 0.1525931223E-05 2.242986736 0.1513825563E-05 2.245333766 0.1501836031E-05 2.247680797 0.1489975104E-05 2.250027827 0.1478254785E-05 2.252374857 0.1466686611E-05 2.254721888 0.1455281663E-05 2.257068918 0.1444050575E-05 2.259415949 0.1433003546E-05 2.261762979 0.1422150349E-05 2.264110009 0.1411500339E-05 2.266457040 0.1401062470E-05 2.268804070 0.1390845298E-05 2.271151101 0.1380856993E-05 2.273498131 0.1371105355E-05 2.275845161 0.1361597815E-05 2.278192192 0.1352341452E-05 2.280539222 0.1343343000E-05 2.282886253 0.1334608858E-05 2.285233283 0.1326145100E-05 2.287580313 0.1317957485E-05 2.289927344 0.1310051465E-05 2.292274374 0.1302432195E-05 2.294621405 0.1295104540E-05 2.296968435 0.1288073088E-05 2.299315465 0.1281342153E-05 2.301662496 0.1274915789E-05 2.304009526 0.1268797790E-05 2.306356557 0.1262991707E-05 2.308703587 0.1257500848E-05 2.311050617 0.1252328289E-05 2.313397648 0.1247476878E-05 2.315744678 0.1242949245E-05 2.318091708 0.1238747804E-05 2.320438739 0.1234874762E-05 2.322785769 0.1231332122E-05 2.325132800 0.1228121690E-05 2.327479830 0.1225245076E-05 2.329826860 0.1222703704E-05 2.332173891 0.1220498809E-05 2.334520921 0.1218631447E-05 2.336867952 0.1217102491E-05 2.339214982 0.1215912641E-05 2.341562012 0.1215062417E-05 2.343909043 0.1214552171E-05 2.346256073 0.1214382078E-05 0.000000000 0.6934289852E-06 0.2347351854E-02 0.6940854293E-06 0.4694703708E-02 0.6960563101E-06 0.7042055561E-02 0.6993462681E-06 0.9389407415E-02 0.7039630218E-06 0.1173675927E-01 0.7099173433E-06 0.1408411112E-01 0.7172230252E-06 0.1643146298E-01 0.7258968376E-06 0.1877881483E-01 0.7359584756E-06 0.2112616668E-01 0.7474304977E-06 0.2347351854E-01 0.7603382544E-06 0.2582087039E-01 0.7747098082E-06 0.2816822225E-01 0.7905758441E-06 0.3051557410E-01 0.8079695711E-06 0.3286292595E-01 0.8269266150E-06 0.3521027781E-01 0.8474849025E-06 0.3755762966E-01 0.8696845370E-06 0.3990498151E-01 0.8935676658E-06 0.4225233337E-01 0.9191783397E-06 0.4459968522E-01 0.9465623646E-06 0.4694703708E-01 0.9757671454E-06 0.4929438893E-01 0.1006841524E-05 0.5164174078E-01 0.1039835608E-05 0.5398909264E-01 0.1074800597E-05 0.5633644449E-01 0.1111788598E-05 0.5868379634E-01 0.1150852438E-05 0.6103114820E-01 0.1192045475E-05 0.6337850005E-01 0.1235421392E-05 0.6572585191E-01 0.1281034004E-05 0.6807320376E-01 0.1328937045E-05 0.7042055561E-01 0.1379183962E-05 0.7276790747E-01 0.1431827701E-05 0.7511525932E-01 0.1486920494E-05 0.7746261117E-01 0.1544513639E-05 0.7980996303E-01 0.1604657286E-05 0.8215731488E-01 0.1667400214E-05 0.8450466674E-01 0.1732789611E-05 0.8685201859E-01 0.1800870856E-05 0.8919937044E-01 0.1871687298E-05 0.9154672230E-01 0.1945280037E-05 0.9389407415E-01 0.2021687707E-05 0.9624142601E-01 0.2100946259E-05 0.9858877786E-01 0.2183088749E-05 0.1009361297 0.2268145123E-05 0.1032834816 0.2356142012E-05 0.1056308334 0.2447102524E-05 0.1079781853 0.2541046042E-05 0.1103255371 0.2637988026E-05 0.1126728890 0.2737939821E-05 0.1150202408 0.2840908460E-05 0.1173675927 0.2946896487E-05 0.1197149445 0.3055901766E-05 0.1220622964 0.3167917312E-05 0.1244096483 0.3282931114E-05 0.1267570001 0.3400925971E-05 0.1291043520 0.3521879324E-05 0.1314517038 0.3645763100E-05 0.1337990557 0.3772543561E-05 0.1361464075 0.3902181145E-05 0.1384937594 0.4034630328E-05 0.1408411112 0.4169839475E-05 0.1431884631 0.4307750700E-05 0.1455358149 0.4448299729E-05 0.1478831668 0.4591415759E-05 0.1502305186 0.4737021326E-05 0.1525778705 0.4885032163E-05 0.1549252223 0.5035357064E-05 0.1572725742 0.5187897741E-05 0.1596199261 0.5342548679E-05 0.1619672779 0.5499196982E-05 0.1643146298 0.5657722217E-05 0.1666619816 0.5817996239E-05 0.1690093335 0.5979883016E-05 0.1713566853 0.6143238426E-05 0.1737040372 0.6307910047E-05 0.1760513890 0.6473736918E-05 0.1783987409 0.6640549282E-05 0.1807460927 0.6808168292E-05 0.1830934446 0.6976405688E-05 0.1854407964 0.7145063438E-05 0.1877881483 0.7313933325E-05 0.1901355002 0.7482796490E-05 0.1924828520 0.7651422912E-05 0.1948302039 0.7819570823E-05 0.1971775557 0.7986986047E-05 0.1995249076 0.8153401250E-05 0.2018722594 0.8318535095E-05 0.2042196113 0.8482091284E-05 0.2065669631 0.8643757483E-05 0.2089143150 0.8803204102E-05 0.2112616668 0.8960082924E-05 0.2136090187 0.9114025566E-05 0.2159563705 0.9264641743E-05 0.2183037224 0.9411517336E-05 0.2206510743 0.9554212227E-05 0.2229984261 0.9692257894E-05 0.2253457780 0.9825154748E-05 0.2276931298 0.9952369204E-05 0.2300404817 0.1007333048E-04 0.2323878335 0.1018742712E-04 0.2347351854 0.1029400329E-04 0.2370825372 0.1039235490E-04 0.2394298891 0.1048172552E-04 0.2417772409 0.1056130238E-04 0.2441245928 0.1063021256E-04 0.2464719446 0.1068751955E-04 0.2488192965 0.1073222067E-04 0.2511666484 0.1076324579E-04 0.2535140002 0.1077945803E-04 0.2558613521 0.1077965723E-04 0.2582087039 0.1076258737E-04 0.2605560558 0.1072694918E-04 0.2629034076 0.1067141949E-04 0.2652507595 0.1059467894E-04 0.2675981113 0.1049544994E-04 0.2699454632 0.1037254617E-04 0.2722928150 0.1022493498E-04 0.2746401669 0.1005181280E-04 0.2769875187 0.9852692899E-05 0.2793348706 0.9627503721E-05 0.2816822225 0.9376695529E-05 0.2840295743 0.9101354240E-05 0.2863769262 0.8803326275E-05 0.2887242780 0.8485369856E-05 0.2910716299 0.8151372784E-05 0.2934189817 0.7806724689E-05 0.2957663336 0.7606807712E-05 0.2981136854 0.7635861763E-05 0.3004610373 0.7661456899E-05 0.3028083891 0.7683557524E-05 0.3051557410 0.7702132590E-05 0.3075030928 0.7717155780E-05 0.3098504447 0.7728605694E-05 0.3121977966 0.7736466053E-05 0.3145451484 0.7740725906E-05 0.3168925003 0.7741379850E-05 0.3192398521 0.7738428264E-05 0.3215872040 0.7731877547E-05 0.3239345558 0.7721740372E-05 0.3262819077 0.7708035940E-05 0.3286292595 0.7690790247E-05 0.3309766114 0.7670036349E-05 0.3333239632 0.7645814625E-05 0.3356713151 0.7618173034E-05 0.3380186669 0.7587167353E-05 0.3403660188 0.7552861398E-05 0.3427133707 0.7515327206E-05 0.3450607225 0.7474645177E-05 0.3474080744 0.7430904152E-05 0.3497554262 0.7384201432E-05 0.3521027781 0.7334642701E-05 0.3544501299 0.7282341854E-05 0.3567974818 0.7227420712E-05 0.3591448336 0.7170008609E-05 0.3614921855 0.7110241838E-05 0.3638395373 0.7048262962E-05 0.3661868892 0.6984219963E-05 0.3685342410 0.6918265246E-05 0.3708815929 0.6850554508E-05 0.3732289448 0.6781245466E-05 0.3755762966 0.6710496478E-05 0.3779236485 0.6638465078E-05 0.3802710003 0.6565306453E-05 0.3826183522 0.6491171897E-05 0.3849657040 0.6416207288E-05 0.3873130559 0.6340551614E-05 0.3896604077 0.6264335607E-05 0.3920077596 0.6187680513E-05 0.3943551114 0.6110697036E-05 0.3967024633 0.6033484494E-05 0.3990498151 0.5956130204E-05 0.4013971670 0.5878709121E-05 0.4037445189 0.5801283744E-05 0.4060918707 0.5723904277E-05 0.4084392226 0.5646609055E-05 0.4107865744 0.5580946599E-05 0.4131339263 0.5882282554E-05 0.4154812781 0.6192664145E-05 0.4178286300 0.6512062441E-05 0.4201759818 0.6840436563E-05 0.4225233337 0.7177733527E-05 0.4248706855 0.7523888103E-05 0.4272180374 0.7878822692E-05 0.4295653892 0.8242447227E-05 0.4319127411 0.8614659083E-05 0.4342600929 0.8995343014E-05 0.4366074448 0.9384371111E-05 0.4389547967 0.9781602774E-05 0.4413021485 0.1018688471E-04 0.4436495004 0.1060005093E-04 0.4459968522 0.1102092283E-04 0.4483442041 0.1144930918E-04 0.4506915559 0.1188500629E-04 0.4530389078 0.1232779800E-04 0.4553862596 0.1277745590E-04 0.4577336115 0.1286661224E-04 0.4600809633 0.1281151989E-04 0.4624283152 0.1272123046E-04 0.4647756670 0.1258434711E-04 0.4671230189 0.1239459925E-04 0.4694703708 0.1215441444E-04 0.4718177226 0.1187333827E-04 0.4741650745 0.1156316281E-04 0.4765124263 0.1123427879E-04 0.4788597782 0.1089453190E-04 0.4812071300 0.1054946942E-04 0.4835544819 0.1020293901E-04 0.4859018337 0.9857620471E-05 0.4882491856 0.9677035875E-05 0.4905965374 0.9927342507E-05 0.4929438893 0.1017846012E-04 0.4952912411 0.1043019699E-04 0.4976385930 0.1068235804E-04 0.4999859449 0.1093474510E-04 0.5023332967 0.1118715713E-04 0.5046806486 0.1143939046E-04 0.5070280004 0.1169123905E-04 0.5093753523 0.1194249470E-04 0.5117227041 0.1219294736E-04 0.5140700560 0.1244238536E-04 0.5164174078 0.1269059569E-04 0.5187647597 0.1293736425E-04 0.5211121115 0.1318247614E-04 0.5234594634 0.1342571596E-04 0.5258068152 0.1366686804E-04 0.5281541671 0.1390571676E-04 0.5305015190 0.1414204682E-04 0.5328488708 0.1437564352E-04 0.5351962227 0.1460629308E-04 0.5375435745 0.1483378288E-04 0.5398909264 0.1505790178E-04 0.5422382782 0.1527844038E-04 0.5445856301 0.1549519135E-04 0.5469329819 0.1570794967E-04 0.5492803338 0.1591651291E-04 0.5516276856 0.1612068157E-04 0.5539750375 0.1632025927E-04 0.5563223893 0.1651505310E-04 0.5586697412 0.1670487384E-04 0.5610170931 0.1688953626E-04 0.5633644449 0.1706885935E-04 0.5657117968 0.1724266660E-04 0.5680591486 0.1741078624E-04 0.5704065005 0.1757305147E-04 0.5727538523 0.1772930073E-04 0.5751012042 0.1787937790E-04 0.5774485560 0.1802313255E-04 0.5797959079 0.1816042013E-04 0.5821432597 0.1829110220E-04 0.5844906116 0.1841504660E-04 0.5868379634 0.1853212770E-04 0.5891853153 0.1864222649E-04 0.5915326672 0.1874523084E-04 0.5938800190 0.1884103563E-04 0.5962273709 0.1892954287E-04 0.5985747227 0.1901066190E-04 0.6009220746 0.1908430948E-04 0.6032694264 0.1915040993E-04 0.6056167783 0.1920889524E-04 0.6079641301 0.1925970516E-04 0.6103114820 0.1930278730E-04 0.6126588338 0.1933809718E-04 0.6150061857 0.1936559835E-04 0.6173535375 0.1938526237E-04 0.6197008894 0.1939706893E-04 0.6220482413 0.1940100581E-04 0.6243952716 0.1939971115E-04 0.6267423020 0.1939582839E-04 0.6290893324 0.1938936126E-04 0.6314363628 0.1938031609E-04 0.6337833932 0.1936870176E-04 0.6361304236 0.1935452973E-04 0.6384774540 0.1933781402E-04 0.6408244844 0.1931857113E-04 0.6431715148 0.1929682011E-04 0.6455185452 0.1927258247E-04 0.6478655756 0.1924588215E-04 0.6502126060 0.1921674554E-04 0.6525596364 0.1918520136E-04 0.6549066668 0.1915128072E-04 0.6572536971 0.1911501700E-04 0.6596007275 0.1907644582E-04 0.6619477579 0.1903560503E-04 0.6642947883 0.1899253461E-04 0.6666418187 0.1894727665E-04 0.6689888491 0.1889987527E-04 0.6713358795 0.1885037659E-04 0.6736829099 0.1879882864E-04 0.6760299403 0.1874528129E-04 0.6783769707 0.1868978625E-04 0.6807240011 0.1863239692E-04 0.6830710315 0.1857316836E-04 0.6854180619 0.1851215722E-04 0.6877650922 0.1844942167E-04 0.6901121226 0.1838502132E-04 0.6924591530 0.1831901713E-04 0.6948061834 0.1825147137E-04 0.6971532138 0.1818244749E-04 0.6995002442 0.1811201010E-04 0.7018472746 0.1804022485E-04 0.7041943050 0.1796715838E-04 0.7065413354 0.1789287819E-04 0.7088883658 0.1781745263E-04 0.7112353962 0.1774095075E-04 0.7135824266 0.1766344227E-04 0.7159294570 0.1758499745E-04 0.7182764874 0.1745542758E-04 0.7206235177 0.1717669328E-04 0.7229705481 0.1689625597E-04 0.7253175785 0.1661438315E-04 0.7276646089 0.1633133956E-04 0.7300116393 0.1604738680E-04 0.7323586697 0.1576278290E-04 0.7347057001 0.1547778200E-04 0.7370527305 0.1519263397E-04 0.7393997609 0.1490758407E-04 0.7417467913 0.1462287262E-04 0.7440938217 0.1433873469E-04 0.7464408521 0.1405539981E-04 0.7487878825 0.1377309169E-04 0.7511349128 0.1349202797E-04 0.7534819432 0.1321241993E-04 0.7558289736 0.1293447234E-04 0.7581760040 0.1265838321E-04 0.7605230344 0.1238434358E-04 0.7628700648 0.1211253740E-04 0.7652170952 0.1184314136E-04 0.7675641256 0.1157632474E-04 0.7699111560 0.1131224933E-04 0.7722581864 0.1105106930E-04 0.7746052168 0.1079293114E-04 0.7769522472 0.1053797362E-04 0.7792992776 0.1028632772E-04 0.7816463080 0.1003811661E-04 0.7839933383 0.9793455682E-05 0.7863403687 0.9552452506E-05 0.7886873991 0.9315206904E-05 0.7910344295 0.9081810976E-05 0.7933814599 0.8852349163E-05 0.7957284903 0.8626898322E-05 0.7980755207 0.8405527819E-05 0.8004225511 0.8188299628E-05 0.8027695815 0.7975268457E-05 0.8051166119 0.7766481868E-05 0.8074636423 0.7561980428E-05 0.8098106727 0.7361797857E-05 0.8121577031 0.7165961192E-05 0.8145047335 0.6974490964E-05 0.8168517638 0.6787401378E-05 0.8191987942 0.6604700502E-05 0.8215458246 0.6426390471E-05 0.8238928550 0.6252467686E-05 0.8262398854 0.6082923027E-05 0.8285869158 0.5917742069E-05 0.8309339462 0.5756905304E-05 0.8332809766 0.5600388362E-05 0.8356280070 0.5448162236E-05 0.8379750374 0.5300193519E-05 0.8403220678 0.5156444624E-05 0.8426690982 0.5016874023E-05 0.8450161286 0.4881436472E-05 0.8473631589 0.4750083246E-05 0.8497101893 0.4622762368E-05 0.8520572197 0.4499418833E-05 0.8544042501 0.4379994839E-05 0.8567512805 0.4264430007E-05 0.8590983109 0.4152661602E-05 0.8614453413 0.4044624749E-05 0.8637923717 0.3940252647E-05 0.8661394021 0.3839476777E-05 0.8684864325 0.3742227108E-05 0.8708334629 0.3648432297E-05 0.8731804933 0.3558019880E-05 0.8755275237 0.3470916470E-05 0.8778745541 0.3387047934E-05 0.8802215844 0.3306339578E-05 0.8825686148 0.3228716321E-05 0.8849156452 0.3154102859E-05 0.8872626756 0.3082423833E-05 0.8896097060 0.3013603983E-05 0.8919567364 0.2947568297E-05 0.8943037668 0.2884242156E-05 0.8966507972 0.2823551470E-05 0.8989978276 0.2765422805E-05 0.9013448580 0.2709783509E-05 0.9036918884 0.2656561822E-05 0.9060389188 0.2605686979E-05 0.9083859492 0.2557089314E-05 0.9107329796 0.2510700338E-05 0.9130800099 0.2466452823E-05 0.9154270403 0.2424280866E-05 0.9177740707 0.2384119952E-05 0.9201211011 0.2345906995E-05 0.9224681315 0.2309580382E-05 0.9248151619 0.2275079996E-05 0.9271621923 0.2251496160E-05 0.9295092227 0.2246431961E-05 0.9318562531 0.2241362864E-05 0.9342032835 0.2236205280E-05 0.9365503139 0.2230918291E-05 0.9388973443 0.2225481846E-05 0.9412443747 0.2219887068E-05 0.9435914050 0.2214131512E-05 0.9459384354 0.2208216661E-05 0.9482854658 0.2202146517E-05 0.9506324962 0.2195926773E-05 0.9529795266 0.2189564284E-05 0.9553265570 0.2183066739E-05 0.9576735874 0.2176442435E-05 0.9600206178 0.2169700114E-05 0.9623676482 0.2162848858E-05 0.9647146786 0.2155897999E-05 0.9670617090 0.2148857059E-05 0.9694087394 0.2141735697E-05 0.9717557698 0.2134543673E-05 0.9741028002 0.2127290808E-05 0.9764498305 0.2119986960E-05 0.9787968609 0.2112642000E-05 0.9811438913 0.2105265787E-05 0.9834909217 0.2097868153E-05 0.9858379521 0.2090458882E-05 0.9881849825 0.2083047696E-05 0.9905320129 0.2075644243E-05 0.9928790433 0.2068258079E-05 0.9952260737 0.2060898658E-05 0.9975731041 0.2053575323E-05 0.9999201345 0.2046297290E-05 1.002267165 0.2039073642E-05 1.004614195 0.2031913318E-05 1.006961226 0.2024825103E-05 1.009308256 0.2017817625E-05 1.011655286 0.2010899339E-05 1.014002317 0.2004078527E-05 1.016349347 0.1997363288E-05 1.018696378 0.1990761531E-05 1.021043408 0.1984280970E-05 1.023390438 0.1977929121E-05 1.025737469 0.1971713293E-05 1.028084499 0.1965640584E-05 1.030431530 0.1959717881E-05 1.032778560 0.1953951850E-05 1.035125590 0.1948348935E-05 1.037472621 0.1942915357E-05 1.039819651 0.1937657108E-05 1.042166682 0.1932579947E-05 1.044513712 0.1927689404E-05 1.046860742 0.1922990769E-05 1.049207773 0.1918489098E-05 1.051554803 0.1914575852E-05 1.053901834 0.1918483320E-05 1.056248864 0.1922276791E-05 1.058595894 0.1925937791E-05 1.060942925 0.1929448764E-05 1.063289955 0.1932793102E-05 1.065636985 0.1935955183E-05 1.067984016 0.1938920399E-05 1.070331046 0.1941675192E-05 1.072678077 0.1944207077E-05 1.075025107 0.1946504672E-05 1.077372137 0.1948557723E-05 1.079719168 0.1950357125E-05 1.082066198 0.1951894945E-05 1.084413229 0.1953164436E-05 1.086760259 0.1954160055E-05 1.089107289 0.1954877475E-05 1.091454320 0.1955313596E-05 1.093801350 0.1955466548E-05 1.096152861 0.1955144737E-05 1.098504372 0.1954200930E-05 1.100855883 0.1952664610E-05 1.103207394 0.1950607208E-05 1.105558905 0.1948214311E-05 1.107910415 0.1946094964E-05 1.110261926 0.1946849641E-05 1.112613437 0.1956565209E-05 1.114964948 0.1973960254E-05 1.117316459 0.1995308075E-05 1.119667970 0.2019588875E-05 1.122019481 0.2046545313E-05 1.124370992 0.2076104848E-05 1.126722503 0.2108254157E-05 1.129074013 0.2143003893E-05 1.131425524 0.2180376346E-05 1.133777035 0.2220400341E-05 1.136128546 0.2263108808E-05 1.138480057 0.2308537485E-05 1.140831568 0.2356724137E-05 1.143183079 0.2407708028E-05 1.145534590 0.2461529533E-05 1.147886101 0.2518229820E-05 1.150237611 0.2577850574E-05 1.152589122 0.2640433744E-05 1.154940633 0.2706021301E-05 1.157292144 0.2774655011E-05 1.159643655 0.2846376204E-05 1.161995166 0.2921225548E-05 1.164346677 0.2999242823E-05 1.166698188 0.3080466695E-05 1.169049699 0.3164934489E-05 1.171401209 0.3252681953E-05 1.173752720 0.3343743031E-05 1.176104231 0.3438149622E-05 1.178455742 0.3535931336E-05 1.180807253 0.3637115248E-05 1.183158764 0.3741725645E-05 1.185510275 0.3849783752E-05 1.187861786 0.3961307463E-05 1.190213296 0.4076311047E-05 1.192564807 0.4194804831E-05 1.194916318 0.4316794872E-05 1.197267829 0.4442282587E-05 1.199619340 0.4571264347E-05 1.201970851 0.4703731026E-05 1.204322362 0.4839667478E-05 1.206673873 0.4979051937E-05 1.209025384 0.5121855307E-05 1.211376894 0.5268040302E-05 1.213728405 0.5417560405E-05 1.216079916 0.5570358556E-05 1.218431427 0.5726365482E-05 1.220782938 0.5885497510E-05 1.223134449 0.6047653640E-05 1.225485960 0.6212711503E-05 1.227837471 0.6380521578E-05 1.230188982 0.6550898626E-05 1.232540492 0.6723608353E-05 1.234892003 0.6898345548E-05 1.237243514 0.7074695822E-05 1.239595025 0.7252063339E-05 1.241946536 0.7429521229E-05 1.244298047 0.7605466067E-05 1.246649558 0.7776710915E-05 1.249001069 0.7935785333E-05 1.251352580 0.8063070016E-05 1.253704090 0.8120642946E-05 1.256055601 0.8100173704E-05 1.258407112 0.8039559343E-05 1.260758623 0.7963972583E-05 1.263110134 0.7882865914E-05 1.265461645 0.7799904138E-05 1.267813156 0.7716726274E-05 1.270164667 0.7634168177E-05 1.272516177 0.7552704720E-05 1.274867688 0.7472630973E-05 1.277219199 0.7394144845E-05 1.279570710 0.7317388236E-05 1.281922221 0.7242469106E-05 1.284273732 0.7169474056E-05 1.286625243 0.7098475908E-05 1.288976754 0.7029538505E-05 1.291328265 0.6962719893E-05 1.293679775 0.6898074530E-05 1.296031286 0.6835654882E-05 1.298382797 0.6775512642E-05 1.300734308 0.6717699670E-05 1.303085819 0.6662268781E-05 1.305437330 0.6609274390E-05 1.307788841 0.6558773067E-05 1.310140352 0.6510824019E-05 1.312491863 0.6465489489E-05 1.314843373 0.6422835079E-05 1.317194884 0.6382929970E-05 1.319546395 0.6345847006E-05 1.321897906 0.6311662588E-05 1.324249417 0.6280456272E-05 1.326600928 0.6252309910E-05 1.328952439 0.6227306080E-05 1.331303950 0.6205525304E-05 1.333655461 0.6187041237E-05 1.336006971 0.6171912181E-05 1.338358482 0.6160165718E-05 1.340709993 0.6151769624E-05 1.343061504 0.6146573441E-05 1.345413015 0.6144182227E-05 1.347764526 0.6143659308E-05 1.350116037 0.6142766468E-05 1.352467548 0.6136015413E-05 1.354819059 0.6111531248E-05 1.357170569 0.6056688264E-05 1.359522080 0.5976129383E-05 1.361873591 0.5883085731E-05 1.364225102 0.5785368005E-05 1.366576613 0.5686372188E-05 1.368928124 0.5587607731E-05 1.371279635 0.5489806382E-05 1.373631146 0.5393352165E-05 1.375982656 0.5298458620E-05 1.378334167 0.5205248570E-05 1.380685678 0.5113793114E-05 1.383037189 0.5024132094E-05 1.385388700 0.4936285519E-05 1.387740211 0.4850260285E-05 1.390091722 0.4766054312E-05 1.392443233 0.4683659189E-05 1.394794744 0.4603061935E-05 1.397146254 0.4524246189E-05 1.399497765 0.4447193048E-05 1.401849276 0.4371881664E-05 1.404200787 0.4298289667E-05 1.406552298 0.4226393474E-05 1.408903809 0.4156168497E-05 1.411255320 0.4087589294E-05 1.413606831 0.4020629648E-05 1.415958342 0.3955262614E-05 1.418309852 0.3891460511E-05 1.420661363 0.3829194892E-05 1.423012874 0.3768436483E-05 1.425364385 0.3709155097E-05 1.427715896 0.3651319545E-05 1.430067407 0.3594897531E-05 1.432418918 0.3539855570E-05 1.434770429 0.3486158911E-05 1.437121940 0.3458956728E-05 1.439473450 0.3505240126E-05 1.441824961 0.3550803299E-05 1.444176472 0.3595618459E-05 1.446527983 0.3639662744E-05 1.448879494 0.3682919129E-05 1.451231005 0.3725377594E-05 1.453582516 0.3767036636E-05 1.455934027 0.3807905303E-05 1.458285537 0.3848005962E-05 1.460637048 0.3887378147E-05 1.462988559 0.3926084033E-05 1.465340070 0.3964216392E-05 1.467691581 0.4001910422E-05 1.470043092 0.4039361784E-05 1.472394603 0.4076854828E-05 1.474746114 0.4114808009E-05 1.477097625 0.4153849003E-05 1.479449135 0.4194942082E-05 1.481800646 0.4239607503E-05 1.484152157 0.4290295539E-05 1.486503668 0.4350975255E-05 1.488855179 0.4427817206E-05 1.491206690 0.4529103231E-05 1.493558201 0.4662447897E-05 1.495909712 0.4829648496E-05 1.498261223 0.5025198525E-05 1.500612733 0.5240570524E-05 1.502964244 0.5468223992E-05 1.505315755 0.5702623097E-05 1.507667266 0.5939831745E-05 1.510018777 0.6176956079E-05 1.512370288 0.6411757520E-05 1.514721799 0.6642425151E-05 1.517073310 0.6867449018E-05 1.519424821 0.7085550851E-05 1.521776331 0.7295646046E-05 1.524127842 0.7496821975E-05 1.526479353 0.7688324270E-05 1.528830864 0.7869546399E-05 1.531182375 0.8040020062E-05 1.533533886 0.8199405196E-05 1.535885397 0.8347479164E-05 1.538236908 0.8484125142E-05 1.540588418 0.8609319976E-05 1.542939929 0.8723121859E-05 1.545291440 0.8825658222E-05 1.547642951 0.8917114159E-05 1.549994462 0.8997721656E-05 1.552345973 0.9067749801E-05 1.554697484 0.9127496085E-05 1.557048995 0.9177278824E-05 1.559400506 0.9217430685E-05 1.561752016 0.9248293258E-05 1.564103527 0.9270212592E-05 1.566455038 0.9283535586E-05 1.568806549 0.9288607146E-05 1.571158060 0.9285767978E-05 1.573509571 0.9275352942E-05 1.575861082 0.9257689858E-05 1.578212593 0.9233098684E-05 1.580564104 0.9201890999E-05 1.582915614 0.9164369725E-05 1.585267125 0.9120829033E-05 1.587618636 0.9071554392E-05 1.589970147 0.9016822717E-05 1.592321658 0.8956902606E-05 1.594673169 0.8892054609E-05 1.597024680 0.8822531542E-05 1.599376191 0.8748578813E-05 1.601727702 0.8670434752E-05 1.604079212 0.8588330936E-05 1.606430723 0.8502492506E-05 1.608782234 0.8413138465E-05 1.611133745 0.8320481962E-05 1.613485256 0.8224730546E-05 1.615836767 0.8126086411E-05 1.618188278 0.8024746605E-05 1.620539789 0.7920903228E-05 1.622891299 0.7814743597E-05 1.625242810 0.7706450403E-05 1.627594321 0.7596201834E-05 1.629945832 0.7484171690E-05 1.632297343 0.7370529477E-05 1.634648854 0.7255440482E-05 1.637000365 0.7139065835E-05 1.639351876 0.7021562562E-05 1.641703387 0.6903083621E-05 1.644054897 0.6783777927E-05 1.646406408 0.6663790370E-05 1.648757919 0.6543261827E-05 1.651109430 0.6422329161E-05 1.653460941 0.6301125221E-05 1.655812452 0.6179778831E-05 1.658163963 0.6058414782E-05 1.660515474 0.5937153815E-05 1.662866985 0.5816112610E-05 1.665218495 0.5695403766E-05 1.667570006 0.5575135785E-05 1.669921517 0.5455413061E-05 1.672273028 0.5336335861E-05 1.674624539 0.5218000319E-05 1.676976050 0.5100498425E-05 1.679327561 0.4983918022E-05 1.681679072 0.4868342806E-05 1.684030583 0.4753852329E-05 1.686382093 0.4640522009E-05 1.688733604 0.4528423148E-05 1.691085115 0.4417622949E-05 1.693436626 0.4308184546E-05 1.695788137 0.4200167038E-05 1.698139648 0.4093625528E-05 1.700491159 0.3988611171E-05 1.702842670 0.3885171228E-05 1.705194180 0.3783349128E-05 1.707545691 0.3683184534E-05 1.709897202 0.3584713418E-05 1.712248713 0.3487968142E-05 1.714600224 0.3392977545E-05 1.716951735 0.3299767036E-05 1.719303246 0.3208358691E-05 1.721654757 0.3118771358E-05 1.724006268 0.3031020762E-05 1.726357778 0.2945119620E-05 1.728709289 0.2861077752E-05 1.731060800 0.2778902205E-05 1.733412311 0.2698597364E-05 1.735763822 0.2620165084E-05 1.738115333 0.2543604804E-05 1.740466844 0.2468913678E-05 1.742818355 0.2396086689E-05 1.745169866 0.2325116779E-05 1.747521376 0.2255994968E-05 1.749872887 0.2188710469E-05 1.752224398 0.2123250813E-05 1.754575909 0.2059601958E-05 1.756927420 0.1997748401E-05 1.759278931 0.1937673294E-05 1.761630442 0.1879358539E-05 1.763981953 0.1822784903E-05 1.766333464 0.1767932106E-05 1.768684974 0.1714778925E-05 1.771036485 0.1663303282E-05 1.773387996 0.1613482333E-05 1.775739507 0.1565292558E-05 1.778091018 0.1518709837E-05 1.780442529 0.1473709535E-05 1.782794040 0.1430266575E-05 1.785145551 0.1388355514E-05 1.787497061 0.1347950611E-05 1.789848572 0.1309025900E-05 1.792200083 0.1271555254E-05 1.794551594 0.1235512448E-05 1.796903105 0.1200871225E-05 1.799254616 0.1167605355E-05 1.801606127 0.1135688692E-05 1.803957638 0.1105095236E-05 1.806309149 0.1075799186E-05 1.808660659 0.1047774997E-05 1.811012170 0.1020997429E-05 1.813363681 0.9954416063E-06 1.815715192 0.9710830635E-06 1.818066703 0.9478977973E-06 1.820418214 0.9258623156E-06 1.822769725 0.9049536845E-06 1.825121236 0.8851495755E-06 1.827472747 0.8664283101E-06 1.829824257 0.8487689041E-06 1.832175768 0.8321511102E-06 1.834527279 0.8165554589E-06 1.836878790 0.8019632982E-06 1.839230301 0.7883568316E-06 1.841581812 0.7757191545E-06 1.843933323 0.7640342889E-06 1.846284834 0.7532872154E-06 1.848636345 0.7434639048E-06 1.850987855 0.7345513462E-06 1.853339366 0.7265375735E-06 1.855690877 0.7194116901E-06 1.858042388 0.7131638904E-06 1.860393899 0.7077854795E-06 1.862745410 0.7032688904E-06 1.865096921 0.6996076984E-06 1.867448432 0.6967966332E-06 1.869799942 0.6948315881E-06 1.872151453 0.6937096263E-06 1.874502964 0.6934289852E-06 1.876849995 0.6933303063E-06 1.879197025 0.6934957097E-06 1.881544055 0.6939249250E-06 1.883891086 0.6946176036E-06 1.886238116 0.6955733178E-06 1.888585147 0.6967915601E-06 1.890932177 0.6982717417E-06 1.893279207 0.7000131915E-06 1.895626238 0.7020151543E-06 1.897973268 0.7042767890E-06 1.900320299 0.7067971667E-06 1.902667329 0.7095752689E-06 1.905014359 0.7126099849E-06 1.907361390 0.7159001101E-06 1.909708420 0.7194443436E-06 1.912055451 0.7232412862E-06 1.914402481 0.7272894386E-06 1.916749511 0.7315871999E-06 1.919096542 0.7361328654E-06 1.921443572 0.7409246267E-06 1.923790603 0.7459605702E-06 1.926137633 0.7512386774E-06 1.928484663 0.7567568257E-06 1.930831694 0.7625127893E-06 1.933178724 0.7685042420E-06 1.935525754 0.7747287602E-06 1.937872785 0.7811838274E-06 1.940219815 0.7878668401E-06 1.942566846 0.7947751150E-06 1.944913876 0.8019058983E-06 1.947260906 0.8092563763E-06 1.949607937 0.8168236885E-06 1.951954967 0.8246049434E-06 1.954301998 0.8325972366E-06 1.956649028 0.8407976716E-06 1.958996058 0.8492033851E-06 1.961343089 0.8578115742E-06 1.963690119 0.8666195296E-06 1.966037150 0.8756246724E-06 1.968384180 0.8848245955E-06 1.970731210 0.8942171117E-06 1.973078241 0.9038003069E-06 1.975425271 0.9135726008E-06 1.977772302 0.9235328133E-06 1.980119332 0.9336802410E-06 1.982466362 0.9842164587E-06 1.984813393 0.1060854739E-05 1.987160423 0.1141216621E-05 1.989507454 0.1225345343E-05 1.991854484 0.1313277894E-05 1.994201514 0.1405044846E-05 1.996548545 0.1500670187E-05 1.998895575 0.1600171176E-05 2.001242605 0.1703558226E-05 2.003589636 0.1810834787E-05 2.005936666 0.1921997262E-05 2.008283697 0.2037034938E-05 2.010630727 0.2155929929E-05 2.012977757 0.2278657146E-05 2.015324788 0.2405184277E-05 2.017671818 0.2535471790E-05 2.020018849 0.2669472953E-05 2.022365879 0.2807133869E-05 2.024712909 0.2948393526E-05 2.027059940 0.3093183865E-05 2.029406970 0.3241429863E-05 2.031754001 0.3393049631E-05 2.034101031 0.3547954516E-05 2.036448061 0.3706049227E-05 2.038795092 0.3867231959E-05 2.041142122 0.4031394536E-05 2.043489153 0.4198422544E-05 2.045836183 0.4368195485E-05 2.048183213 0.4540586915E-05 2.050530244 0.4715464583E-05 2.052877274 0.4892690565E-05 2.055224304 0.5072121375E-05 2.057571335 0.5253608059E-05 2.059918365 0.5436996251E-05 2.062265396 0.5622126194E-05 2.064612426 0.5808832696E-05 2.066959456 0.5996945010E-05 2.069306487 0.6186286619E-05 2.071653517 0.6376674888E-05 2.074000548 0.6567920539E-05 2.076347578 0.6759826922E-05 2.078694608 0.6952188991E-05 2.081041639 0.7144791928E-05 2.083388669 0.7337409315E-05 2.085735700 0.7529800742E-05 2.088082730 0.7721708758E-05 2.090429760 0.7912855067E-05 2.092776791 0.8102935993E-05 2.095123821 0.8291617393E-05 2.097470852 0.8478529601E-05 2.099817882 0.8663263595E-05 2.102164912 0.8845370422E-05 2.104511943 0.9024366857E-05 2.106858973 0.9199750433E-05 2.109206004 0.9371025503E-05 2.111553034 0.9537737938E-05 2.113900064 0.9699510579E-05 2.116247095 0.9856068277E-05 2.118594125 0.1000724404E-04 2.120941155 0.1015296575E-04 2.123288186 0.1029323079E-04 2.125635216 0.1042807816E-04 2.127982247 0.1055756542E-04 2.130329277 0.1068175315E-04 2.132676307 0.1080069637E-04 2.135023338 0.1091444106E-04 2.137370368 0.1102302393E-04 2.139717399 0.1112647374E-04 2.142064429 0.1122481331E-04 2.144411459 0.1131806173E-04 2.146758490 0.1140623638E-04 2.149105520 0.1148935463E-04 2.151452551 0.1156743533E-04 2.153799581 0.1164050001E-04 2.156146611 0.1170857381E-04 2.158493642 0.1177168618E-04 2.160840672 0.1182987148E-04 2.163187703 0.1188316934E-04 2.165534733 0.1193162496E-04 2.167881763 0.1197528933E-04 2.170228794 0.1201421928E-04 2.172575824 0.1204847754E-04 2.174922855 0.1207813272E-04 2.177269885 0.1210325924E-04 2.179616915 0.1212393721E-04 2.181963946 0.1214025229E-04 2.184310976 0.1215229553E-04 2.186658006 0.1216016315E-04 2.189005037 0.1216395635E-04 2.191352067 0.1216378103E-04 2.193699098 0.1215974762E-04 2.196046128 0.1215197072E-04 2.198393158 0.1214056892E-04 2.200740189 0.1212566444E-04 2.203087219 0.1210738290E-04 2.205434250 0.1208585304E-04 2.207781280 0.1206120635E-04 2.210128310 0.1203357687E-04 2.212475341 0.1200310083E-04 2.214822371 0.1196991637E-04 2.217169402 0.1193416328E-04 2.219516432 0.1189598266E-04 2.221863462 0.1185551666E-04 2.224210493 0.1181290822E-04 2.226557523 0.1176830075E-04 2.228904554 0.1172183789E-04 2.231251584 0.1167366324E-04 2.233598614 0.1162392011E-04 2.235945645 0.1157275128E-04 2.238292675 0.1152029872E-04 2.240639706 0.1146670343E-04 2.242986736 0.1141210516E-04 2.245333766 0.1135664223E-04 2.247680797 0.1130045135E-04 2.250027827 0.1124366738E-04 2.252374857 0.1118642319E-04 2.254721888 0.1112884948E-04 2.257068918 0.1107107463E-04 2.259415949 0.1101322456E-04 2.261762979 0.1095542256E-04 2.264110009 0.1089778922E-04 2.266457040 0.1084044227E-04 2.268804070 0.1078349649E-04 2.271151101 0.1072706364E-04 2.273498131 0.1067125233E-04 2.275845161 0.1061616799E-04 2.278192192 0.1056191280E-04 2.280539222 0.1050858558E-04 2.282886253 0.1045628182E-04 2.285233283 0.1040509360E-04 2.287580313 0.1035510956E-04 2.289927344 0.1030641487E-04 2.292274374 0.1025909124E-04 2.294621405 0.1021321687E-04 2.296968435 0.1016886648E-04 2.299315465 0.1012611128E-04 2.301662496 0.1008501900E-04 2.304009526 0.1004565389E-04 2.306356557 0.1000807670E-04 2.308703587 0.9972344757E-05 2.311050617 0.9938511925E-05 2.313397648 0.9906628656E-05 2.315744678 0.9876742003E-05 2.318091708 0.9848895642E-05 2.320438739 0.9823129894E-05 2.322785769 0.9799481751E-05 2.325132800 0.9777984897E-05 2.327479830 0.9758669731E-05 2.329826860 0.9741563386E-05 2.332173891 0.9726689756E-05 2.334520921 0.9714069505E-05 2.336867952 0.9703720091E-05 2.339214982 0.9695655778E-05 2.341562012 0.9689887646E-05 2.343909043 0.9686423605E-05 2.346256073 0.9685268397E-05 0.000000000 0.6934289853E-06 0.2347351854E-02 0.6943006809E-06 0.4694703708E-02 0.6969201150E-06 0.7042055561E-02 0.7013003459E-06 0.9389407415E-02 0.7074631939E-06 0.1173675927E-01 0.7154393259E-06 0.1408411112E-01 0.7252683693E-06 0.1643146298E-01 0.7369990557E-06 0.1877881483E-01 0.7506893885E-06 0.2112616668E-01 0.7664068309E-06 0.2347351854E-01 0.7842285084E-06 0.2582087039E-01 0.8042414184E-06 0.2816822225E-01 0.8265426390E-06 0.3051557410E-01 0.8512395269E-06 0.3286292595E-01 0.8784498947E-06 0.3521027781E-01 0.9083021540E-06 0.3755762966E-01 0.9409354115E-06 0.3990498151E-01 0.9764995064E-06 0.4225233337E-01 0.1015154973E-05 0.4459968522E-01 0.1057072916E-05 0.4694703708E-01 0.1102434789E-05 0.4929438893E-01 0.1151432066E-05 0.5164174078E-01 0.1204265789E-05 0.5398909264E-01 0.1261146012E-05 0.5633644449E-01 0.1322291110E-05 0.5868379634E-01 0.1387926986E-05 0.6103114820E-01 0.1458286170E-05 0.6337850005E-01 0.1533606822E-05 0.6572585191E-01 0.1614131662E-05 0.6807320376E-01 0.1700106846E-05 0.7042055561E-01 0.1791780793E-05 0.7276790747E-01 0.1889403001E-05 0.7511525932E-01 0.1993222864E-05 0.7746261117E-01 0.2103488495E-05 0.7980996303E-01 0.2220445590E-05 0.8215731488E-01 0.2344336325E-05 0.8450466674E-01 0.2475398309E-05 0.8685201859E-01 0.2613863583E-05 0.8919937044E-01 0.2759957681E-05 0.9154672230E-01 0.2913898741E-05 0.9389407415E-01 0.3075896672E-05 0.9624142601E-01 0.3246152371E-05 0.9858877786E-01 0.3424856987E-05 0.1009361297 0.3612191223E-05 0.1032834816 0.3808324682E-05 0.1056308334 0.4013415243E-05 0.1079781853 0.4227608469E-05 0.1103255371 0.4451037046E-05 0.1126728890 0.4683820247E-05 0.1150202408 0.4926063422E-05 0.1173675927 0.5177857510E-05 0.1197149445 0.5439278583E-05 0.1220622964 0.5710387402E-05 0.1244096483 0.5991229015E-05 0.1267570001 0.6281832361E-05 0.1291043520 0.6582209918E-05 0.1314517038 0.6892357368E-05 0.1337990557 0.7212253296E-05 0.1361464075 0.7541858916E-05 0.1384937594 0.7881117829E-05 0.1408411112 0.8229955813E-05 0.1431884631 0.8588280646E-05 0.1455358149 0.8955981966E-05 0.1478831668 0.9332931158E-05 0.1502305186 0.9718981289E-05 0.1525778705 0.1011396707E-04 0.1549252223 0.1051770484E-04 0.1572725742 0.1092999265E-04 0.1596199261 0.1135061028E-04 0.1619672779 0.1177931940E-04 0.1643146298 0.1221586371E-04 0.1666619816 0.1265996911E-04 0.1690093335 0.1311134396E-04 0.1713566853 0.1356967931E-04 0.1737040372 0.1403464925E-04 0.1760513890 0.1450591119E-04 0.1783987409 0.1498310629E-04 0.1807460927 0.1546585984E-04 0.1830934446 0.1595378173E-04 0.1854407964 0.1644646691E-04 0.1877881483 0.1694349588E-04 0.1901355002 0.1744443531E-04 0.1924828520 0.1794883853E-04 0.1948302039 0.1845624619E-04 0.1971775557 0.1896618687E-04 0.1995249076 0.1947817774E-04 0.2018722594 0.1999172524E-04 0.2042196113 0.2050632581E-04 0.2065669631 0.2102146657E-04 0.2089143150 0.2153662611E-04 0.2112616668 0.2205127522E-04 0.2136090187 0.2256487769E-04 0.2159563705 0.2307689107E-04 0.2183037224 0.2358676750E-04 0.2206510743 0.2409395448E-04 0.2229984261 0.2459789571E-04 0.2253457780 0.2509803186E-04 0.2276931298 0.2559380140E-04 0.2300404817 0.2608464135E-04 0.2323878335 0.2656998810E-04 0.2347351854 0.2704927817E-04 0.2370825372 0.2752194889E-04 0.2394298891 0.2798743916E-04 0.2417772409 0.2844519004E-04 0.2441245928 0.2889464543E-04 0.2464719446 0.2933525255E-04 0.2488192965 0.2976646242E-04 0.2511666484 0.3018773022E-04 0.2535140002 0.3059851552E-04 0.2558613521 0.3099828239E-04 0.2582087039 0.3138649929E-04 0.2605560558 0.3176263872E-04 0.2629034076 0.3212617664E-04 0.2652507595 0.3247659142E-04 0.2675981113 0.3281336239E-04 0.2699454632 0.3313596775E-04 0.2722928150 0.3344388162E-04 0.2746401669 0.3373657005E-04 0.2769875187 0.3401348563E-04 0.2793348706 0.3427405999E-04 0.2816822225 0.3451769376E-04 0.2840295743 0.3474374264E-04 0.2863769262 0.3495149808E-04 0.2887242780 0.3488114371E-04 0.2910716299 0.3392509580E-04 0.2934189817 0.3306023477E-04 0.2957663336 0.3228126705E-04 0.2981136854 0.3158257253E-04 0.3004610373 0.3095833204E-04 0.3028083891 0.3040265885E-04 0.3051557410 0.2990972301E-04 0.3075030928 0.2947385997E-04 0.3098504447 0.2908965808E-04 0.3121977966 0.2875202284E-04 0.3145451484 0.2845621853E-04 0.3168925003 0.2819788969E-04 0.3192398521 0.2797306603E-04 0.3215872040 0.2777815472E-04 0.3239345558 0.2760992345E-04 0.3262819077 0.2746547779E-04 0.3286292595 0.2734223504E-04 0.3309766114 0.2723789682E-04 0.3333239632 0.2715042164E-04 0.3356713151 0.2707799849E-04 0.3380186669 0.2701902191E-04 0.3403660188 0.2697206908E-04 0.3427133707 0.2633940543E-04 0.3450607225 0.2556136237E-04 0.3474080744 0.2481356041E-04 0.3497554262 0.2409627537E-04 0.3521027781 0.2340940428E-04 0.3544501299 0.2275258558E-04 0.3567974818 0.2212527983E-04 0.3591448336 0.2152682509E-04 0.3614921855 0.2095647564E-04 0.3638395373 0.2041342987E-04 0.3661868892 0.1989685060E-04 0.3685342410 0.1940588030E-04 0.3708815929 0.1893965269E-04 0.3732289448 0.1849730184E-04 0.3755762966 0.1807796934E-04 0.3779236485 0.1768081014E-04 0.3802710003 0.1730499730E-04 0.3826183522 0.1694972594E-04 0.3849657040 0.1661421642E-04 0.3873130559 0.1629771707E-04 0.3896604077 0.1599950620E-04 0.3920077596 0.1571889378E-04 0.3943551114 0.1545522253E-04 0.3967024633 0.1520786854E-04 0.3990498151 0.1497624145E-04 0.4013971670 0.1475978413E-04 0.4037445189 0.1455797189E-04 0.4060918707 0.1437031117E-04 0.4084392226 0.1419633774E-04 0.4107865744 0.1403561446E-04 0.4131339263 0.1388772841E-04 0.4154812781 0.1375228752E-04 0.4178286300 0.1362891661E-04 0.4201759818 0.1351725268E-04 0.4225233337 0.1341693939E-04 0.4248706855 0.1332762049E-04 0.4272180374 0.1324893189E-04 0.4295653892 0.1318049179E-04 0.4319127411 0.1312188824E-04 0.4342600929 0.1307266283E-04 0.4366074448 0.1303228884E-04 0.4389547967 0.1300014090E-04 0.4413021485 0.1297545187E-04 0.4436495004 0.1295724990E-04 0.4459968522 0.1294426447E-04 0.4483442041 0.1293478384E-04 0.4506915559 0.1292643676E-04 0.4530389078 0.1291586147E-04 0.4553862596 0.1289822516E-04 0.4577336115 0.1323373941E-04 0.4600809633 0.1369639597E-04 0.4624283152 0.1416516118E-04 0.4647756670 0.1463975907E-04 0.4671230189 0.1474697726E-04 0.4694703708 0.1466208639E-04 0.4718177226 0.1463314391E-04 0.4741650745 0.1464836586E-04 0.4765124263 0.1469734734E-04 0.4788597782 0.1477220614E-04 0.4812071300 0.1486733599E-04 0.4835544819 0.1497880777E-04 0.4859018337 0.1510383771E-04 0.4882491856 0.1524040527E-04 0.4905965374 0.1538699785E-04 0.4929438893 0.1554244417E-04 0.4952912411 0.1570580535E-04 0.4976385930 0.1587630315E-04 0.4999859449 0.1605327196E-04 0.5023332967 0.1623612610E-04 0.5046806486 0.1642433724E-04 0.5070280004 0.1661741855E-04 0.5093753523 0.1681491346E-04 0.5117227041 0.1701638748E-04 0.5140700560 0.1722142231E-04 0.5164174078 0.1742961152E-04 0.5187647597 0.1764055734E-04 0.5211121115 0.1785386836E-04 0.5234594634 0.1806915776E-04 0.5258068152 0.1828604211E-04 0.5281541671 0.1850414052E-04 0.5305015190 0.1872307402E-04 0.5328488708 0.1894246523E-04 0.5351962227 0.1916193819E-04 0.5375435745 0.1938111834E-04 0.5398909264 0.1959963258E-04 0.5422382782 0.1981710951E-04 0.5445856301 0.2003317965E-04 0.5469329819 0.2024747583E-04 0.5492803338 0.2045963355E-04 0.5516276856 0.2066929143E-04 0.5539750375 0.2087609172E-04 0.5563223893 0.2107968076E-04 0.5586697412 0.2127970959E-04 0.5610170931 0.2147583443E-04 0.5633644449 0.2166771734E-04 0.5657117968 0.2185502674E-04 0.5680591486 0.2203743804E-04 0.5704065005 0.2221463424E-04 0.5727538523 0.2238630652E-04 0.5751012042 0.2255215484E-04 0.5774485560 0.2271188855E-04 0.5797959079 0.2286522692E-04 0.5821432597 0.2301189980E-04 0.5844906116 0.2315164808E-04 0.5868379634 0.2328422433E-04 0.5891853153 0.2340939322E-04 0.5915326672 0.2352693212E-04 0.5938800190 0.2363663153E-04 0.5962273709 0.2373829551E-04 0.5985747227 0.2383174219E-04 0.6009220746 0.2391680408E-04 0.6032694264 0.2399332852E-04 0.6056167783 0.2406117795E-04 0.6079641301 0.2412023027E-04 0.6103114820 0.2417037911E-04 0.6126588338 0.2421153402E-04 0.6150061857 0.2424362073E-04 0.6173535375 0.2426658132E-04 0.6197008894 0.2428037429E-04 0.6220482413 0.2428497472E-04 0.6243952716 0.2428015625E-04 0.6267423020 0.2426570690E-04 0.6290893324 0.2424164473E-04 0.6314363628 0.2420799981E-04 0.6337833932 0.2416481414E-04 0.6361304236 0.2411214157E-04 0.6384774540 0.2405004771E-04 0.6408244844 0.2397860975E-04 0.6431715148 0.2389791637E-04 0.6455185452 0.2380806751E-04 0.6478655756 0.2370917421E-04 0.6502126060 0.2360135834E-04 0.6525596364 0.2348475242E-04 0.6549066668 0.2335949932E-04 0.6572536971 0.2322575198E-04 0.6596007275 0.2308367311E-04 0.6619477579 0.2293343488E-04 0.6642947883 0.2277521858E-04 0.6666418187 0.2260921429E-04 0.6689888491 0.2243562044E-04 0.6713358795 0.2225464351E-04 0.6736829099 0.2206649760E-04 0.6760299403 0.2187140401E-04 0.6783769707 0.2166959082E-04 0.6807240011 0.2146129250E-04 0.6830710315 0.2124674940E-04 0.6854180619 0.2102620735E-04 0.6877650922 0.2079991722E-04 0.6901121226 0.2056813440E-04 0.6924591530 0.2033111836E-04 0.6948061834 0.2008913220E-04 0.6971532138 0.1984244215E-04 0.6995002442 0.1959131711E-04 0.7018472746 0.1933602814E-04 0.7041943050 0.1907684806E-04 0.7065413354 0.1881405088E-04 0.7088883658 0.1854791140E-04 0.7112353962 0.1827870474E-04 0.7135824266 0.1800670584E-04 0.7159294570 0.1773218902E-04 0.7182764874 0.1750568708E-04 0.7206235177 0.1742558230E-04 0.7229705481 0.1734475461E-04 0.7253175785 0.1726327572E-04 0.7276646089 0.1718121752E-04 0.7300116393 0.1709865197E-04 0.7323586697 0.1701565100E-04 0.7347057001 0.1693228648E-04 0.7370527305 0.1684863009E-04 0.7393997609 0.1676475327E-04 0.7417467913 0.1668072713E-04 0.7440938217 0.1659662236E-04 0.7464408521 0.1651250916E-04 0.7487878825 0.1642845715E-04 0.7511349128 0.1634453532E-04 0.7534819432 0.1626081191E-04 0.7558289736 0.1617735434E-04 0.7581760040 0.1609422917E-04 0.7605230344 0.1601150197E-04 0.7628700648 0.1592923726E-04 0.7652170952 0.1584749846E-04 0.7675641256 0.1576634776E-04 0.7699111560 0.1568584609E-04 0.7722581864 0.1560605301E-04 0.7746052168 0.1552702666E-04 0.7769522472 0.1544882366E-04 0.7792992776 0.1537149906E-04 0.7816463080 0.1529510627E-04 0.7839933383 0.1521969694E-04 0.7863403687 0.1514532095E-04 0.7886873991 0.1507202632E-04 0.7910344295 0.1499985912E-04 0.7933814599 0.1492886346E-04 0.7957284903 0.1485908138E-04 0.7980755207 0.1479055282E-04 0.8004225511 0.1472331556E-04 0.8027695815 0.1465740518E-04 0.8051166119 0.1459285502E-04 0.8074636423 0.1452969612E-04 0.8098106727 0.1446795720E-04 0.8121577031 0.1440766468E-04 0.8145047335 0.1434884257E-04 0.8168517638 0.1429151256E-04 0.8191987942 0.1423569393E-04 0.8215458246 0.1418140361E-04 0.8238928550 0.1412865619E-04 0.8262398854 0.1407746392E-04 0.8285869158 0.1402783674E-04 0.8309339462 0.1397978235E-04 0.8332809766 0.1393330620E-04 0.8356280070 0.1388841163E-04 0.8379750374 0.1384509983E-04 0.8403220678 0.1380337000E-04 0.8426690982 0.1376321937E-04 0.8450161286 0.1372464331E-04 0.8473631589 0.1368763543E-04 0.8497101893 0.1365218761E-04 0.8520572197 0.1361829018E-04 0.8544042501 0.1358593197E-04 0.8567512805 0.1355510042E-04 0.8590983109 0.1352578170E-04 0.8614453413 0.1349796080E-04 0.8637923717 0.1347162160E-04 0.8661394021 0.1344674706E-04 0.8684864325 0.1342331923E-04 0.8708334629 0.1340131939E-04 0.8731804933 0.1338072812E-04 0.8755275237 0.1336152541E-04 0.8778745541 0.1334369071E-04 0.8802215844 0.1332720305E-04 0.8825686148 0.1331204106E-04 0.8849156452 0.1329818305E-04 0.8872626756 0.1328560710E-04 0.8896097060 0.1327429105E-04 0.8919567364 0.1326421257E-04 0.8943037668 0.1325534923E-04 0.8966507972 0.1324767846E-04 0.8989978276 0.1324117762E-04 0.9013448580 0.1323582401E-04 0.9036918884 0.1323159488E-04 0.9060389188 0.1322846741E-04 0.9083859492 0.1322641876E-04 0.9107329796 0.1322542602E-04 0.9130800099 0.1322546622E-04 0.9154270403 0.1322651635E-04 0.9177740707 0.1322855326E-04 0.9201211011 0.1323155377E-04 0.9224681315 0.1323549452E-04 0.9248151619 0.1324035205E-04 0.9271621923 0.1324610274E-04 0.9295092227 0.1325272278E-04 0.9318562531 0.1326018817E-04 0.9342032835 0.1326847469E-04 0.9365503139 0.1327755786E-04 0.9388973443 0.1328741298E-04 0.9412443747 0.1329801505E-04 0.9435914050 0.1330933877E-04 0.9459384354 0.1332135854E-04 0.9482854658 0.1333404845E-04 0.9506324962 0.1334738224E-04 0.9529795266 0.1336133333E-04 0.9553265570 0.1337587477E-04 0.9576735874 0.1339097929E-04 0.9600206178 0.1340661925E-04 0.9623676482 0.1342276666E-04 0.9647146786 0.1343939319E-04 0.9670617090 0.1345647018E-04 0.9694087394 0.1347396861E-04 0.9717557698 0.1349185919E-04 0.9741028002 0.1351011227E-04 0.9764498305 0.1352869795E-04 0.9787968609 0.1354758605E-04 0.9811438913 0.1356674614E-04 0.9834909217 0.1358614757E-04 0.9858379521 0.1360575947E-04 0.9881849825 0.1362555081E-04 0.9905320129 0.1364549042E-04 0.9928790433 0.1366554700E-04 0.9952260737 0.1368568918E-04 0.9975731041 0.1370588555E-04 0.9999201345 0.1372610465E-04 1.002267165 0.1374631507E-04 1.004614195 0.1376648546E-04 1.006961226 0.1378658457E-04 1.009308256 0.1380658126E-04 1.011655286 0.1382644461E-04 1.014002317 0.1384614388E-04 1.016349347 0.1386564861E-04 1.018696378 0.1388492864E-04 1.021043408 0.1390395416E-04 1.023390438 0.1392269572E-04 1.025737469 0.1394112432E-04 1.028084499 0.1395921142E-04 1.030431530 0.1397692902E-04 1.032778560 0.1399424962E-04 1.035125590 0.1401114637E-04 1.037472621 0.1402759302E-04 1.039819651 0.1400016013E-04 1.042166682 0.1395909660E-04 1.044513712 0.1391981126E-04 1.046860742 0.1388231038E-04 1.049207773 0.1384659995E-04 1.051554803 0.1381268568E-04 1.053901834 0.1378057297E-04 1.056248864 0.1375026695E-04 1.058595894 0.1372177248E-04 1.060942925 0.1369509412E-04 1.063289955 0.1367023616E-04 1.065636985 0.1364720262E-04 1.067984016 0.1362599725E-04 1.070331046 0.1360662350E-04 1.072678077 0.1358908458E-04 1.075025107 0.1357338341E-04 1.077372137 0.1355952266E-04 1.079719168 0.1354750472E-04 1.082066198 0.1353733170E-04 1.084413229 0.1352900546E-04 1.086760259 0.1352252759E-04 1.089107289 0.1351789941E-04 1.091454320 0.1351512195E-04 1.093801350 0.1351419601E-04 1.096152861 0.1351525773E-04 1.098504372 0.1351844163E-04 1.100855883 0.1352374391E-04 1.103207394 0.1353115825E-04 1.105558905 0.1354067587E-04 1.107910415 0.1355228549E-04 1.110261926 0.1356597342E-04 1.112613437 0.1358172356E-04 1.114964948 0.1359951747E-04 1.117316459 0.1361933439E-04 1.119667970 0.1364115133E-04 1.122019481 0.1366494311E-04 1.124370992 0.1369068243E-04 1.126722503 0.1371833993E-04 1.129074013 0.1374788426E-04 1.131425524 0.1371591706E-04 1.133777035 0.1365119061E-04 1.136128546 0.1358307823E-04 1.138480057 0.1351167175E-04 1.140831568 0.1343706685E-04 1.143183079 0.1335936278E-04 1.145534590 0.1327866216E-04 1.147886101 0.1319507072E-04 1.150237611 0.1310869711E-04 1.152589122 0.1301965263E-04 1.154940633 0.1292805098E-04 1.157292144 0.1283400803E-04 1.159643655 0.1273764156E-04 1.161995166 0.1263907102E-04 1.164346677 0.1253841730E-04 1.166698188 0.1243580246E-04 1.169049699 0.1233134948E-04 1.171401209 0.1222518206E-04 1.173752720 0.1211742435E-04 1.176104231 0.1200820074E-04 1.178455742 0.1189763563E-04 1.180807253 0.1178585320E-04 1.183158764 0.1167297726E-04 1.185510275 0.1155913097E-04 1.187861786 0.1144443674E-04 1.190213296 0.1132901600E-04 1.192564807 0.1121298909E-04 1.194916318 0.1109647510E-04 1.197267829 0.1097959177E-04 1.199619340 0.1086245539E-04 1.201970851 0.1074518080E-04 1.204322362 0.1062788131E-04 1.206673873 0.1051066877E-04 1.209025384 0.1039365372E-04 1.211376894 0.1027694552E-04 1.213728405 0.1016065272E-04 1.216079916 0.1004488354E-04 1.218431427 0.9929746579E-05 1.220782938 0.9815351974E-05 1.223134449 0.9701813002E-05 1.225485960 0.9589248620E-05 1.227837471 0.9477787396E-05 1.230188982 0.9367573825E-05 1.232540492 0.9258778866E-05 1.234892003 0.9151618311E-05 1.237243514 0.9046386645E-05 1.239595025 0.8943523694E-05 1.241946536 0.8843757003E-05 1.244298047 0.8748438033E-05 1.246649558 0.8660436959E-05 1.249001069 0.8586826722E-05 1.251352580 0.8546727400E-05 1.253704090 0.8577432342E-05 1.256055601 0.8686477327E-05 1.258407112 0.8834956867E-05 1.260758623 0.8996414463E-05 1.263110134 0.9159761920E-05 1.265461645 0.9319257595E-05 1.267813156 0.9470654067E-05 1.270164667 0.9609913069E-05 1.272516177 0.9732786738E-05 1.274867688 0.9834834428E-05 1.277219199 0.9911800490E-05 1.279570710 0.9960293135E-05 1.281922221 0.9978542180E-05 1.284273732 0.9966858265E-05 1.286625243 0.9927511502E-05 1.288976754 0.9864097972E-05 1.291328265 0.9780742398E-05 1.293679775 0.9681461041E-05 1.296031286 0.9569803821E-05 1.298382797 0.9448731223E-05 1.300734308 0.9320630668E-05 1.303085819 0.9187393819E-05 1.305437330 0.9050508587E-05 1.307788841 0.8911144364E-05 1.310140352 0.8770223224E-05 1.312491863 0.8628476433E-05 1.314843373 0.8486488204E-05 1.317194884 0.8344729208E-05 1.319546395 0.8203582239E-05 1.321897906 0.8063362021E-05 1.324249417 0.7924330753E-05 1.326600928 0.7786710697E-05 1.328952439 0.7650694946E-05 1.331303950 0.7516457434E-05 1.333655461 0.7384163551E-05 1.336006971 0.7253983278E-05 1.338358482 0.7126110348E-05 1.340709993 0.7000794440E-05 1.343061504 0.6878402164E-05 1.345413015 0.6759545423E-05 1.347764526 0.6645380412E-05 1.350116037 0.6538368851E-05 1.352467548 0.6444227674E-05 1.354819059 0.6375066462E-05 1.357170569 0.6343752342E-05 1.359522080 0.6345891018E-05 1.361873591 0.6368507488E-05 1.364225102 0.6404054794E-05 1.366576613 0.6449408249E-05 1.368928124 0.6503337070E-05 1.371279635 0.6565395224E-05 1.373631146 0.6635491018E-05 1.375982656 0.6713709353E-05 1.378334167 0.6800231385E-05 1.380685678 0.6895294944E-05 1.383037189 0.6999173471E-05 1.385388700 0.7112164028E-05 1.387740211 0.7234580072E-05 1.390091722 0.7366746890E-05 1.392443233 0.7508998619E-05 1.394794744 0.7661676276E-05 1.397146254 0.7825126457E-05 1.399497765 0.7999700516E-05 1.401849276 0.8185754103E-05 1.404200787 0.8383646964E-05 1.406552298 0.8593742945E-05 1.408903809 0.8816410149E-05 1.411255320 0.9052021200E-05 1.413606831 0.9300953575E-05 1.415958342 0.9563589972E-05 1.418309852 0.9840318680E-05 1.420661363 0.1013153392E-04 1.423012874 0.1043763613E-04 1.425364385 0.1075903216E-04 1.427715896 0.1109613540E-04 1.430067407 0.1144936569E-04 1.432418918 0.1181914915E-04 1.434770429 0.1220591777E-04 1.437121940 0.1261010873E-04 1.439473450 0.1303216347E-04 1.441824961 0.1347252632E-04 1.444176472 0.1393164274E-04 1.446527983 0.1440995680E-04 1.448879494 0.1490790801E-04 1.451231005 0.1542592690E-04 1.453582516 0.1596442917E-04 1.455934027 0.1652380772E-04 1.458285537 0.1710442171E-04 1.460637048 0.1770658125E-04 1.462988559 0.1833052567E-04 1.465340070 0.1897639214E-04 1.467691581 0.1964416913E-04 1.470043092 0.2033362610E-04 1.472394603 0.2104420412E-04 1.474746114 0.2177484123E-04 1.477097625 0.2237901517E-04 1.479449135 0.2261434224E-04 1.481800646 0.2286612514E-04 1.484152157 0.2313570889E-04 1.486503668 0.2342453678E-04 1.488855179 0.2373415093E-04 1.491206690 0.2406619099E-04 1.493558201 0.2442239077E-04 1.495909712 0.2480457248E-04 1.498261223 0.2521463836E-04 1.500612733 0.2565455967E-04 1.502964244 0.2612636304E-04 1.505315755 0.2663211432E-04 1.507667266 0.2717390048E-04 1.510018777 0.2775381011E-04 1.512370288 0.2837391316E-04 1.514721799 0.2866029500E-04 1.517073310 0.2863406783E-04 1.519424821 0.2859602557E-04 1.521776331 0.2854727034E-04 1.524127842 0.2848859842E-04 1.526479353 0.2842059845E-04 1.528830864 0.2834371508E-04 1.531182375 0.2825829137E-04 1.533533886 0.2816459760E-04 1.535885397 0.2806285131E-04 1.538236908 0.2795323153E-04 1.540588418 0.2783588903E-04 1.542939929 0.2771095385E-04 1.545291440 0.2757854091E-04 1.547642951 0.2743875430E-04 1.549994462 0.2729169047E-04 1.552345973 0.2713744085E-04 1.554697484 0.2697609377E-04 1.557048995 0.2680773607E-04 1.559400506 0.2663245436E-04 1.561752016 0.2645033607E-04 1.564103527 0.2626147024E-04 1.566455038 0.2606594827E-04 1.568806549 0.2586386445E-04 1.571158060 0.2565531644E-04 1.573509571 0.2544040566E-04 1.575861082 0.2521923763E-04 1.578212593 0.2499192226E-04 1.580564104 0.2475857402E-04 1.582915614 0.2451931217E-04 1.585267125 0.2427426091E-04 1.587618636 0.2402354946E-04 1.589970147 0.2376731220E-04 1.592321658 0.2350568868E-04 1.594673169 0.2323882370E-04 1.597024680 0.2296686731E-04 1.599376191 0.2268997480E-04 1.601727702 0.2240830670E-04 1.604079212 0.2212202871E-04 1.606430723 0.2183131165E-04 1.608782234 0.2153633139E-04 1.611133745 0.2123726874E-04 1.613485256 0.2093430937E-04 1.615836767 0.2062764363E-04 1.618188278 0.2031746647E-04 1.620539789 0.2000397723E-04 1.622891299 0.1968737950E-04 1.625242810 0.1936788092E-04 1.627594321 0.1904569299E-04 1.629945832 0.1872103084E-04 1.632297343 0.1839411301E-04 1.634648854 0.1806516122E-04 1.637000365 0.1773440010E-04 1.639351876 0.1740205696E-04 1.641703387 0.1706836147E-04 1.644054897 0.1673354540E-04 1.646406408 0.1639784231E-04 1.648757919 0.1606148727E-04 1.651109430 0.1572471652E-04 1.653460941 0.1538776715E-04 1.655812452 0.1505087679E-04 1.658163963 0.1471428324E-04 1.660515474 0.1437822414E-04 1.662866985 0.1404293664E-04 1.665218495 0.1370865700E-04 1.667570006 0.1337562029E-04 1.669921517 0.1304405997E-04 1.672273028 0.1271420755E-04 1.674624539 0.1238629226E-04 1.676976050 0.1206054061E-04 1.679327561 0.1173717609E-04 1.681679072 0.1141641875E-04 1.684030583 0.1109848489E-04 1.686382093 0.1078358665E-04 1.688733604 0.1047193169E-04 1.691085115 0.1016372280E-04 1.693436626 0.9859157572E-05 1.695788137 0.9558428068E-05 1.698139648 0.9261720452E-05 1.700491159 0.8969214676E-05 1.702842670 0.8681084150E-05 1.705194180 0.8397495428E-05 1.707545691 0.8118607900E-05 1.709897202 0.7844573486E-05 1.712248713 0.7575536347E-05 1.714600224 0.7311632603E-05 1.716951735 0.7052990055E-05 1.719303246 0.6799727920E-05 1.721654757 0.6551956574E-05 1.724006268 0.6309777304E-05 1.726357778 0.6073282069E-05 1.728709289 0.5842553268E-05 1.731060800 0.5617663524E-05 1.733412311 0.5398675467E-05 1.735763822 0.5185641543E-05 1.738115333 0.4978603823E-05 1.740466844 0.4777593831E-05 1.742818355 0.4582632394E-05 1.745169866 0.4393729503E-05 1.747521376 0.4210884210E-05 1.749872887 0.4034084547E-05 1.752224398 0.3863307490E-05 1.754575909 0.3698518960E-05 1.756927420 0.3539673882E-05 1.759278931 0.3386716304E-05 1.761630442 0.3239579588E-05 1.763981953 0.3098186677E-05 1.766333464 0.2962450451E-05 1.768684974 0.2832274177E-05 1.771036485 0.2707552051E-05 1.773387996 0.2588169841E-05 1.775739507 0.2474005621E-05 1.778091018 0.2364930594E-05 1.780442529 0.2260809986E-05 1.782794040 0.2161504002E-05 1.785145551 0.2066868831E-05 1.787497061 0.1976757661E-05 1.789848572 0.1891021704E-05 1.792200083 0.1809511195E-05 1.794551594 0.1732076352E-05 1.796903105 0.1658568272E-05 1.799254616 0.1588839759E-05 1.801606127 0.1522746060E-05 1.803957638 0.1460145510E-05 1.806309149 0.1400900085E-05 1.808660659 0.1344875852E-05 1.811012170 0.1291943336E-05 1.813363681 0.1241977796E-05 1.815715192 0.1194859421E-05 1.818066703 0.1150473471E-05 1.820418214 0.1108710344E-05 1.822769725 0.1069465608E-05 1.825121236 0.1032639989E-05 1.827472747 0.9981393262E-06 1.829824257 0.9658745167E-06 1.832175768 0.9357614338E-06 1.834527279 0.9077208436E-06 1.836878790 0.8816783155E-06 1.839230301 0.8575641326E-06 1.841581812 0.8353132051E-06 1.843933323 0.8148649884E-06 1.846284834 0.7961634076E-06 1.848636345 0.7791567886E-06 1.850987855 0.7637977972E-06 1.853339366 0.7500433851E-06 1.855690877 0.7378547439E-06 1.858042388 0.7271972647E-06 1.860393899 0.7180405048E-06 1.862745410 0.7103581591E-06 1.865096921 0.7041280371E-06 1.867448432 0.6993320433E-06 1.869799942 0.6959561611E-06 1.872151453 0.6939904400E-06 1.874502964 0.6934289853E-06 1.876849995 0.6933303065E-06 1.879197025 0.6934957098E-06 1.881544055 0.6939249251E-06 1.883891086 0.6946176037E-06 1.886238116 0.6955733179E-06 1.888585147 0.6967915602E-06 1.890932177 0.6982717418E-06 1.893279207 0.7000131916E-06 1.895626238 0.7020151544E-06 1.897973268 0.7042767891E-06 1.900320299 0.7067971669E-06 1.902667329 0.7095752691E-06 1.905014359 0.7126099851E-06 1.907361390 0.7159001103E-06 1.909708420 0.7194443437E-06 1.912055451 0.7232412863E-06 1.914402481 0.7272894388E-06 1.916749511 0.7315872000E-06 1.919096542 0.7361328656E-06 1.921443572 0.7409246269E-06 1.923790603 0.7459605704E-06 1.926137633 0.7512386776E-06 1.928484663 0.7567568258E-06 1.930831694 0.7625127894E-06 1.933178724 0.7685042421E-06 1.935525754 0.7747287603E-06 1.937872785 0.7811838275E-06 1.940219815 0.7878668402E-06 1.942566846 0.7947751152E-06 1.944913876 0.8019058985E-06 1.947260906 0.8092563764E-06 1.949607937 0.8168236886E-06 1.951954967 0.8246049436E-06 1.954301998 0.8325972367E-06 1.956649028 0.8407976718E-06 1.958996058 0.8492033852E-06 1.961343089 0.8578115743E-06 1.963690119 0.8666195298E-06 1.966037150 0.8756246726E-06 1.968384180 0.8848245957E-06 1.970731210 0.8942171118E-06 1.973078241 0.9038003071E-06 1.975425271 0.9177702502E-06 1.977772302 0.9929815450E-06 1.980119332 0.1072084058E-05 1.982466362 0.1155123666E-05 1.984813393 0.1242138397E-05 1.987160423 0.1333158207E-05 1.989507454 0.1428204771E-05 1.991854484 0.1527291305E-05 1.994201514 0.1630422412E-05 1.996548545 0.1737593953E-05 1.998895575 0.1848792946E-05 2.001242605 0.1963997492E-05 2.003589636 0.2083176727E-05 2.005936666 0.2206290804E-05 2.008283697 0.2333290899E-05 2.010630727 0.2464119249E-05 2.012977757 0.2598709216E-05 2.015324788 0.2736985379E-05 2.017671818 0.2878863654E-05 2.020018849 0.3024251441E-05 2.022365879 0.3173047801E-05 2.024712909 0.3325143661E-05 2.027059940 0.3480422036E-05 2.029406970 0.3638758295E-05 2.031754001 0.3800020442E-05 2.034101031 0.3964069424E-05 2.036448061 0.4130759472E-05 2.038795092 0.4299938465E-05 2.041142122 0.4471448318E-05 2.043489153 0.4645125406E-05 2.045836183 0.4820801011E-05 2.048183213 0.4998301797E-05 2.050530244 0.5177450324E-05 2.052877274 0.5358065590E-05 2.055224304 0.5539963617E-05 2.057571335 0.5722958079E-05 2.059918365 0.5906860976E-05 2.062265396 0.6091483379E-05 2.064612426 0.6276636236E-05 2.066959456 0.6462131272E-05 2.069306487 0.6647782001E-05 2.071653517 0.6833404872E-05 2.074000548 0.7018820588E-05 2.076347578 0.7203855654E-05 2.078694608 0.7388344198E-05 2.081041639 0.7572130156E-05 2.083388669 0.7755069899E-05 2.085735700 0.7937035419E-05 2.088082730 0.8117918162E-05 2.090429760 0.8297633609E-05 2.092776791 0.8476126568E-05 2.095123821 0.8653377011E-05 2.097470852 0.8829405855E-05 2.099817882 0.9004279514E-05 2.102164912 0.9178111150E-05 2.104511943 0.9351055692E-05 2.106858973 0.9523295447E-05 2.109206004 0.9695014653E-05 2.111553034 0.9866365372E-05 2.113900064 0.1003743260E-04 2.116247095 0.1020820976E-04 2.118594125 0.1037859305E-04 2.120941155 0.1054839521E-04 2.123288186 0.1071737132E-04 2.125635216 0.1088524709E-04 2.127982247 0.1105174226E-04 2.130329277 0.1121658654E-04 2.132676307 0.1137952843E-04 2.135023338 0.1154033896E-04 2.137370368 0.1169881218E-04 2.139717399 0.1185476404E-04 2.142064429 0.1200803047E-04 2.144411459 0.1215846535E-04 2.146758490 0.1230593856E-04 2.149105520 0.1245033433E-04 2.151452551 0.1259154971E-04 2.153799581 0.1272949343E-04 2.156146611 0.1286408489E-04 2.158493642 0.1299525330E-04 2.160840672 0.1312293710E-04 2.163187703 0.1324708329E-04 2.165534733 0.1336764707E-04 2.167881763 0.1348459137E-04 2.170228794 0.1359788653E-04 2.172575824 0.1370751000E-04 2.174922855 0.1381344609E-04 2.177269885 0.1391568569E-04 2.179616915 0.1401422606E-04 2.181963946 0.1410907061E-04 2.184310976 0.1420022870E-04 2.186658006 0.1428771544E-04 2.189005037 0.1437155146E-04 2.191352067 0.1445176275E-04 2.193699098 0.1452838046E-04 2.196046128 0.1460144069E-04 2.198393158 0.1467098428E-04 2.200740189 0.1473705667E-04 2.203087219 0.1479970761E-04 2.205434250 0.1485899105E-04 2.207781280 0.1491496488E-04 2.210128310 0.1496769072E-04 2.212475341 0.1501723377E-04 2.214822371 0.1506366253E-04 2.217169402 0.1510704866E-04 2.219516432 0.1514746670E-04 2.221863462 0.1518499393E-04 2.224210493 0.1521971011E-04 2.226557523 0.1525169731E-04 2.228904554 0.1528103965E-04 2.231251584 0.1530782316E-04 2.233598614 0.1533213553E-04 2.235945645 0.1535406589E-04 2.238292675 0.1537370467E-04 2.240639706 0.1539114334E-04 2.242986736 0.1540647427E-04 2.245333766 0.1541979047E-04 2.247680797 0.1543118547E-04 2.250027827 0.1544075308E-04 2.252374857 0.1544858724E-04 2.254721888 0.1545478183E-04 2.257068918 0.1545943050E-04 2.259415949 0.1546262651E-04 2.261762979 0.1546446253E-04 2.264110009 0.1546503054E-04 2.266457040 0.1546442162E-04 2.268804070 0.1546272583E-04 2.271151101 0.1546003206E-04 2.273498131 0.1545642788E-04 2.275845161 0.1545199943E-04 2.278192192 0.1544683129E-04 2.280539222 0.1544100630E-04 2.282886253 0.1543460555E-04 2.285233283 0.1542770815E-04 2.287580313 0.1542039120E-04 2.289927344 0.1541272968E-04 2.292274374 0.1540479631E-04 2.294621405 0.1539666151E-04 2.296968435 0.1538839328E-04 2.299315465 0.1538005712E-04 2.301662496 0.1537171598E-04 2.304009526 0.1536343014E-04 2.306356557 0.1535525720E-04 2.308703587 0.1534725196E-04 2.311050617 0.1533946641E-04 2.313397648 0.1533194962E-04 2.315744678 0.1532474776E-04 2.318091708 0.1531790397E-04 2.320438739 0.1531145838E-04 2.322785769 0.1530544807E-04 2.325132800 0.1529990697E-04 2.327479830 0.1529486591E-04 2.329826860 0.1529035253E-04 2.332173891 0.1528639129E-04 2.334520921 0.1528300342E-04 2.336867952 0.1528020692E-04 2.339214982 0.1527801655E-04 2.341562012 0.1527644378E-04 2.343909043 0.1527549684E-04 2.346256073 0.1527518064E-04 0.000000000 0.6030163394E-03 0.2347351854E-02 0.6029112288E-03 0.4694703708E-02 0.6025959941E-03 0.7042055561E-02 0.6020709266E-03 0.9389407415E-02 0.6013365114E-03 0.1173675927E-01 0.6003934269E-03 0.1408411112E-01 0.5992425436E-03 0.1643146298E-01 0.5978849229E-03 0.1877881483E-01 0.5963218161E-03 0.2112616668E-01 0.5945546624E-03 0.2347351854E-01 0.5925850870E-03 0.2582087039E-01 0.5904148988E-03 0.2816822225E-01 0.5880460886E-03 0.3051557410E-01 0.5854808254E-03 0.3286292595E-01 0.5827214546E-03 0.3521027781E-01 0.5797704942E-03 0.3755762966E-01 0.5766306315E-03 0.3990498151E-01 0.5733047199E-03 0.4225233337E-01 0.5697957747E-03 0.4459968522E-01 0.5661069694E-03 0.4694703708E-01 0.5622416313E-03 0.4929438893E-01 0.5582032373E-03 0.5164174078E-01 0.5539954092E-03 0.5398909264E-01 0.5496219092E-03 0.5633644449E-01 0.5450866344E-03 0.5868379634E-01 0.5403936125E-03 0.6103114820E-01 0.5355469958E-03 0.6337850005E-01 0.5305510563E-03 0.6572585191E-01 0.5254101801E-03 0.6807320376E-01 0.5201288615E-03 0.7042055561E-01 0.5147116976E-03 0.7276790747E-01 0.5091633821E-03 0.7511525932E-01 0.5034886993E-03 0.7746261117E-01 0.4976925183E-03 0.7980996303E-01 0.4917797867E-03 0.8215731488E-01 0.4857555241E-03 0.8450466674E-01 0.4796248162E-03 0.8685201859E-01 0.4733928084E-03 0.8919937044E-01 0.4670646990E-03 0.9154672230E-01 0.4606457332E-03 0.9389407415E-01 0.4541411965E-03 0.9624142601E-01 0.4475564084E-03 0.9858877786E-01 0.4408967155E-03 0.1009361297 0.4341674856E-03 0.1032834816 0.4273741009E-03 0.1056308334 0.4205219516E-03 0.1079781853 0.4136164299E-03 0.1103255371 0.4066629230E-03 0.1126728890 0.3996668076E-03 0.1150202408 0.3926334432E-03 0.1173675927 0.3855681661E-03 0.1197149445 0.3784762836E-03 0.1220622964 0.3713630675E-03 0.1244096483 0.3642337489E-03 0.1267570001 0.3570935122E-03 0.1291043520 0.3499474894E-03 0.1314517038 0.3428007548E-03 0.1337990557 0.3356583195E-03 0.1361464075 0.3285251265E-03 0.1384937594 0.3214060454E-03 0.1408411112 0.3143058677E-03 0.1431884631 0.3072293017E-03 0.1455358149 0.3001809688E-03 0.1478831668 0.2931653983E-03 0.1502305186 0.2861870236E-03 0.1525778705 0.2792501784E-03 0.1549252223 0.2723590927E-03 0.1572725742 0.2655178894E-03 0.1596199261 0.2587305806E-03 0.1619672779 0.2520010651E-03 0.1643146298 0.2453331249E-03 0.1666619816 0.2387304230E-03 0.1690093335 0.2321965007E-03 0.1713566853 0.2257347752E-03 0.1737040372 0.2193485382E-03 0.1760513890 0.2130409537E-03 0.1783987409 0.2068150568E-03 0.1807460927 0.2006737524E-03 0.1830934446 0.1946198143E-03 0.1854407964 0.1886558843E-03 0.1877881483 0.1827844723E-03 0.1901355002 0.1770079557E-03 0.1924828520 0.1713285797E-03 0.1948302039 0.1657484579E-03 0.1971775557 0.1602695727E-03 0.1995249076 0.1548937768E-03 0.2018722594 0.1496227943E-03 0.2042196113 0.1444582222E-03 0.2065669631 0.1394015328E-03 0.2089143150 0.1344540759E-03 0.2112616668 0.1296170813E-03 0.2136090187 0.1248916624E-03 0.2159563705 0.1202788190E-03 0.2183037224 0.1157794415E-03 0.2206510743 0.1113943154E-03 0.2229984261 0.1071241254E-03 0.2253457780 0.1029694611E-03 0.2276931298 0.9893082210E-04 0.2300404817 0.9500862414E-04 0.2323878335 0.9120320559E-04 0.2347351854 0.8751483415E-04 0.2370825372 0.8394371402E-04 0.2394298891 0.8048999335E-04 0.2417772409 0.7715377175E-04 0.2441245928 0.7393510789E-04 0.2464719446 0.7083402669E-04 0.2488192965 0.6785052599E-04 0.2511666484 0.6498458193E-04 0.2535140002 0.6223615272E-04 0.2558613521 0.5960517973E-04 0.2582087039 0.5709158498E-04 0.2605560558 0.5469526373E-04 0.2629034076 0.5241607087E-04 0.2652507595 0.5025379944E-04 0.2675981113 0.4820814984E-04 0.2699454632 0.4627868857E-04 0.2722928150 0.4446479596E-04 0.2746401669 0.4276560337E-04 0.2769875187 0.4117992205E-04 0.2793348706 0.3970616784E-04 0.2816822225 0.3834228778E-04 0.2840295743 0.3708569686E-04 0.2863769262 0.3593323369E-04 0.2887242780 0.3514016026E-04 0.2910716299 0.3530879962E-04 0.2934189817 0.3545630139E-04 0.2957663336 0.3558128415E-04 0.2981136854 0.3568197843E-04 0.3004610373 0.3575604220E-04 0.3028083891 0.3580027677E-04 0.3051557410 0.3581018484E-04 0.3075030928 0.3577928670E-04 0.3098504447 0.3569810002E-04 0.3121977966 0.3555278473E-04 0.3145451484 0.3532393280E-04 0.3168925003 0.3498733204E-04 0.3192398521 0.3452030355E-04 0.3215872040 0.3391469068E-04 0.3239345558 0.3318657507E-04 0.3262819077 0.3237018571E-04 0.3286292595 0.3150240897E-04 0.3309766114 0.3061274984E-04 0.3333239632 0.2972155424E-04 0.3356713151 0.2884191890E-04 0.3380186669 0.2798201716E-04 0.3403660188 0.2714685185E-04 0.3427133707 0.2693587889E-04 0.3450607225 0.2690933311E-04 0.3474080744 0.2689143949E-04 0.3497554262 0.2688131678E-04 0.3521027781 0.2687818143E-04 0.3544501299 0.2688133592E-04 0.3567974818 0.2689015833E-04 0.3591448336 0.2690409335E-04 0.3614921855 0.2692264425E-04 0.3638395373 0.2694536588E-04 0.3661868892 0.2697185853E-04 0.3685342410 0.2700176252E-04 0.3708815929 0.2703475344E-04 0.3732289448 0.2707053805E-04 0.3755762966 0.2710885055E-04 0.3779236485 0.2714944943E-04 0.3802710003 0.2719211462E-04 0.3826183522 0.2723664503E-04 0.3849657040 0.2728285634E-04 0.3873130559 0.2733057916E-04 0.3896604077 0.2737965726E-04 0.3920077596 0.2742994616E-04 0.3943551114 0.2748131181E-04 0.3967024633 0.2753362946E-04 0.3990498151 0.2747040796E-04 0.4013971670 0.2699873419E-04 0.4037445189 0.2652226769E-04 0.4060918707 0.2604154677E-04 0.4084392226 0.2555711575E-04 0.4107865744 0.2506952474E-04 0.4131339263 0.2457932969E-04 0.4154812781 0.2408709277E-04 0.4178286300 0.2359338324E-04 0.4201759818 0.2309877884E-04 0.4225233337 0.2260386797E-04 0.4248706855 0.2210925287E-04 0.4272180374 0.2161555422E-04 0.4295653892 0.2112341762E-04 0.4319127411 0.2063352290E-04 0.4342600929 0.2014659728E-04 0.4366074448 0.1966343444E-04 0.4389547967 0.1918492203E-04 0.4413021485 0.1871208240E-04 0.4436495004 0.1824613322E-04 0.4459968522 0.1778857941E-04 0.4483442041 0.1734135390E-04 0.4506915559 0.1690703429E-04 0.4530389078 0.1648917254E-04 0.4553862596 0.1609277421E-04 0.4577336115 0.1572490928E-04 0.4600809633 0.1539521566E-04 0.4624283152 0.1511552609E-04 0.4647756670 0.1489733195E-04 0.4671230189 0.1511990225E-04 0.4694703708 0.1560529222E-04 0.4718177226 0.1609561957E-04 0.4741650745 0.1659056431E-04 0.4765124263 0.1708979615E-04 0.4788597782 0.1759297482E-04 0.4812071300 0.1809975042E-04 0.4835544819 0.1860976378E-04 0.4859018337 0.1912264682E-04 0.4882491856 0.1963802295E-04 0.4905965374 0.2015550748E-04 0.4929438893 0.2067470807E-04 0.4952912411 0.2119522512E-04 0.4976385930 0.2171665228E-04 0.4999859449 0.2223857688E-04 0.5023332967 0.2276058043E-04 0.5046806486 0.2328223913E-04 0.5070280004 0.2380312437E-04 0.5093753523 0.2432280324E-04 0.5117227041 0.2484083908E-04 0.5140700560 0.2535679201E-04 0.5164174078 0.2587021947E-04 0.5187647597 0.2638067681E-04 0.5211121115 0.2688771784E-04 0.5234594634 0.2739089538E-04 0.5258068152 0.2788976187E-04 0.5281541671 0.2838386995E-04 0.5305015190 0.2887277301E-04 0.5328488708 0.2935602582E-04 0.5351962227 0.2983318510E-04 0.5375435745 0.3008296576E-04 0.5398909264 0.3009924396E-04 0.5422382782 0.3011467396E-04 0.5445856301 0.3012927709E-04 0.5469329819 0.3014307547E-04 0.5492803338 0.3015609195E-04 0.5516276856 0.3016835003E-04 0.5539750375 0.3017987379E-04 0.5563223893 0.3019068780E-04 0.5586697412 0.3020081706E-04 0.5610170931 0.3021028690E-04 0.5633644449 0.3021912290E-04 0.5657117968 0.3022735078E-04 0.5680591486 0.3023499634E-04 0.5704065005 0.3024208534E-04 0.5727538523 0.3024864342E-04 0.5751012042 0.3025469598E-04 0.5774485560 0.3026026813E-04 0.5797959079 0.3026538451E-04 0.5821432597 0.3027006929E-04 0.5844906116 0.3027434598E-04 0.5868379634 0.3027823738E-04 0.5891853153 0.3028176551E-04 0.5915326672 0.3028495143E-04 0.5938800190 0.3028781522E-04 0.5962273709 0.3029037589E-04 0.5985747227 0.3029265125E-04 0.6009220746 0.3029465785E-04 0.6032694264 0.3029641094E-04 0.6056167783 0.3029792432E-04 0.6079641301 0.3029921037E-04 0.6103114820 0.3030027992E-04 0.6126588338 0.3030114222E-04 0.6150061857 0.3030180490E-04 0.6173535375 0.3030227396E-04 0.6197008894 0.3030255367E-04 0.6220482413 0.3030264662E-04 0.6243952716 0.3030236138E-04 0.6267423020 0.3029984984E-04 0.6290893324 0.3029511198E-04 0.6314363628 0.3028814845E-04 0.6337833932 0.3027896056E-04 0.6361304236 0.3026755027E-04 0.6384774540 0.3025392023E-04 0.6408244844 0.3023807375E-04 0.6431715148 0.3022001480E-04 0.6455185452 0.3019974802E-04 0.6478655756 0.3017727871E-04 0.6502126060 0.3015261284E-04 0.6525596364 0.3012575704E-04 0.6549066668 0.3009671860E-04 0.6572536971 0.3006550546E-04 0.6596007275 0.3003212623E-04 0.6619477579 0.2999659017E-04 0.6642947883 0.2995890718E-04 0.6666418187 0.2991908783E-04 0.6689888491 0.2987714331E-04 0.6713358795 0.2983308546E-04 0.6736829099 0.2978692676E-04 0.6760299403 0.2973868033E-04 0.6783769707 0.2968835990E-04 0.6807240011 0.2963597985E-04 0.6830710315 0.2958155514E-04 0.6854180619 0.2952510139E-04 0.6877650922 0.2946663478E-04 0.6901121226 0.2940617214E-04 0.6924591530 0.2934373085E-04 0.6948061834 0.2927932892E-04 0.6971532138 0.2921298492E-04 0.6995002442 0.2914471801E-04 0.7018472746 0.2907454789E-04 0.7041943050 0.2900249487E-04 0.7065413354 0.2892857977E-04 0.7088883658 0.2885282398E-04 0.7112353962 0.2877524943E-04 0.7135824266 0.2869587857E-04 0.7159294570 0.2861473437E-04 0.7182764874 0.2853184033E-04 0.7206235177 0.2844722044E-04 0.7229705481 0.2836089917E-04 0.7253175785 0.2827290152E-04 0.7276646089 0.2818325292E-04 0.7300116393 0.2809197929E-04 0.7323586697 0.2799910700E-04 0.7347057001 0.2790466287E-04 0.7370527305 0.2780867414E-04 0.7393997609 0.2771116849E-04 0.7417467913 0.2761217402E-04 0.7440938217 0.2751171920E-04 0.7464408521 0.2740983293E-04 0.7487878825 0.2730654446E-04 0.7511349128 0.2720188343E-04 0.7534819432 0.2709587983E-04 0.7558289736 0.2698856399E-04 0.7581760040 0.2687996658E-04 0.7605230344 0.2677011859E-04 0.7628700648 0.2665905131E-04 0.7652170952 0.2654679635E-04 0.7675641256 0.2643338557E-04 0.7699111560 0.2631885115E-04 0.7722581864 0.2620322548E-04 0.7746052168 0.2608654123E-04 0.7769522472 0.2596883129E-04 0.7792992776 0.2585012879E-04 0.7816463080 0.2573046704E-04 0.7839933383 0.2560987958E-04 0.7863403687 0.2548840011E-04 0.7886873991 0.2536606250E-04 0.7910344295 0.2524290080E-04 0.7933814599 0.2511894918E-04 0.7957284903 0.2499424196E-04 0.7980755207 0.2486881357E-04 0.8004225511 0.2474269855E-04 0.8027695815 0.2461593155E-04 0.8051166119 0.2448854726E-04 0.8074636423 0.2436058049E-04 0.8098106727 0.2423206606E-04 0.8121577031 0.2410303887E-04 0.8145047335 0.2397353383E-04 0.8168517638 0.2384358586E-04 0.8191987942 0.2371322992E-04 0.8215458246 0.2358250093E-04 0.8238928550 0.2345143381E-04 0.8262398854 0.2332006344E-04 0.8285869158 0.2318842468E-04 0.8309339462 0.2305655230E-04 0.8332809766 0.2292448103E-04 0.8356280070 0.2279224551E-04 0.8379750374 0.2265988032E-04 0.8403220678 0.2252741989E-04 0.8426690982 0.2239489859E-04 0.8450161286 0.2226235064E-04 0.8473631589 0.2212981013E-04 0.8497101893 0.2199731102E-04 0.8520572197 0.2186488709E-04 0.8544042501 0.2173257200E-04 0.8567512805 0.2160039919E-04 0.8590983109 0.2146840195E-04 0.8614453413 0.2133661336E-04 0.8637923717 0.2120506631E-04 0.8661394021 0.2107379347E-04 0.8684864325 0.2094282729E-04 0.8708334629 0.2081220000E-04 0.8731804933 0.2068194357E-04 0.8755275237 0.2055208976E-04 0.8778745541 0.2042267004E-04 0.8802215844 0.2029371563E-04 0.8825686148 0.2016525750E-04 0.8849156452 0.2003732632E-04 0.8872626756 0.1990995248E-04 0.8896097060 0.1978316608E-04 0.8919567364 0.1965699693E-04 0.8943037668 0.1953147453E-04 0.8966507972 0.1940662805E-04 0.8989978276 0.1928248638E-04 0.9013448580 0.1915907807E-04 0.9036918884 0.1903643132E-04 0.9060389188 0.1891457404E-04 0.9083859492 0.1879353376E-04 0.9107329796 0.1867333769E-04 0.9130800099 0.1855401269E-04 0.9154270403 0.1843558527E-04 0.9177740707 0.1831808156E-04 0.9201211011 0.1820152735E-04 0.9224681315 0.1808594807E-04 0.9248151619 0.1797136877E-04 0.9271621923 0.1785781413E-04 0.9295092227 0.1774530847E-04 0.9318562531 0.1763387571E-04 0.9342032835 0.1752353941E-04 0.9365503139 0.1741432274E-04 0.9388973443 0.1730624850E-04 0.9412443747 0.1719933907E-04 0.9435914050 0.1709361649E-04 0.9459384354 0.1698910238E-04 0.9482854658 0.1688581797E-04 0.9506324962 0.1678378413E-04 0.9529795266 0.1668302130E-04 0.9553265570 0.1658354956E-04 0.9576735874 0.1648538859E-04 0.9600206178 0.1638855766E-04 0.9623676482 0.1629307567E-04 0.9647146786 0.1619896113E-04 0.9670617090 0.1610623215E-04 0.9694087394 0.1601490645E-04 0.9717557698 0.1592500138E-04 0.9741028002 0.1583653387E-04 0.9764498305 0.1574952049E-04 0.9787968609 0.1566397743E-04 0.9811438913 0.1557992047E-04 0.9834909217 0.1549736504E-04 0.9858379521 0.1541632618E-04 0.9881849825 0.1533681854E-04 0.9905320129 0.1525885642E-04 0.9928790433 0.1518245374E-04 0.9952260737 0.1510762405E-04 0.9975731041 0.1503438053E-04 0.9999201345 0.1496273600E-04 1.002267165 0.1489270293E-04 1.004614195 0.1482429342E-04 1.006961226 0.1475751924E-04 1.009308256 0.1469239177E-04 1.011655286 0.1462892209E-04 1.014002317 0.1456712090E-04 1.016349347 0.1450699857E-04 1.018696378 0.1444856516E-04 1.021043408 0.1439183036E-04 1.023390438 0.1433680356E-04 1.025737469 0.1428349381E-04 1.028084499 0.1423190983E-04 1.030431530 0.1418206004E-04 1.032778560 0.1413395254E-04 1.035125590 0.1408759512E-04 1.037472621 0.1404299526E-04 1.039819651 0.1404356401E-04 1.042166682 0.1405903451E-04 1.044513712 0.1407398041E-04 1.046860742 0.1408837842E-04 1.049207773 0.1410220607E-04 1.051554803 0.1411544177E-04 1.053901834 0.1412806481E-04 1.056248864 0.1414005541E-04 1.058595894 0.1415139479E-04 1.060942925 0.1416206513E-04 1.063289955 0.1417204966E-04 1.065636985 0.1418133264E-04 1.067984016 0.1418989943E-04 1.070331046 0.1419773648E-04 1.072678077 0.1420483138E-04 1.075025107 0.1421117286E-04 1.077372137 0.1421675080E-04 1.079719168 0.1422155630E-04 1.082066198 0.1422558162E-04 1.084413229 0.1422882025E-04 1.086760259 0.1423126690E-04 1.089107289 0.1423291753E-04 1.091454320 0.1423376930E-04 1.093801350 0.1423382064E-04 1.096152861 0.1423193417E-04 1.098504372 0.1422585487E-04 1.100855883 0.1421559145E-04 1.103207394 0.1420115857E-04 1.105558905 0.1418257677E-04 1.107910415 0.1415987246E-04 1.110261926 0.1413307785E-04 1.112613437 0.1410223084E-04 1.114964948 0.1406737496E-04 1.117316459 0.1402855927E-04 1.119667970 0.1398583820E-04 1.122019481 0.1393927143E-04 1.124370992 0.1388892379E-04 1.126722503 0.1383486503E-04 1.129074013 0.1377716973E-04 1.131425524 0.1377928219E-04 1.133777035 0.1381249862E-04 1.136128546 0.1384749671E-04 1.138480057 0.1388423795E-04 1.140831568 0.1392268221E-04 1.143183079 0.1396278787E-04 1.145534590 0.1400451185E-04 1.147886101 0.1404780971E-04 1.150237611 0.1409263574E-04 1.152589122 0.1413894303E-04 1.154940633 0.1418668353E-04 1.157292144 0.1423580816E-04 1.159643655 0.1428626684E-04 1.161995166 0.1433800862E-04 1.164346677 0.1439098168E-04 1.166698188 0.1444513349E-04 1.169049699 0.1450041078E-04 1.171401209 0.1455675970E-04 1.173752720 0.1461412583E-04 1.176104231 0.1467245426E-04 1.178455742 0.1473168966E-04 1.180807253 0.1479177632E-04 1.183158764 0.1485265828E-04 1.185510275 0.1491427931E-04 1.187861786 0.1497658301E-04 1.190213296 0.1503951290E-04 1.192564807 0.1510301242E-04 1.194916318 0.1516702505E-04 1.197267829 0.1523149432E-04 1.199619340 0.1529636394E-04 1.201970851 0.1536157778E-04 1.204322362 0.1542708000E-04 1.206673873 0.1549281508E-04 1.209025384 0.1555872788E-04 1.211376894 0.1562476372E-04 1.213728405 0.1569086845E-04 1.216079916 0.1575698847E-04 1.218431427 0.1582307087E-04 1.220782938 0.1588906342E-04 1.223134449 0.1595491468E-04 1.225485960 0.1602057404E-04 1.227837471 0.1608599183E-04 1.230188982 0.1615111933E-04 1.232540492 0.1606948374E-04 1.234892003 0.1585671268E-04 1.237243514 0.1564550890E-04 1.239595025 0.1543617487E-04 1.241946536 0.1522904678E-04 1.244298047 0.1502450383E-04 1.246649558 0.1482298049E-04 1.249001069 0.1462498246E-04 1.251352580 0.1443110781E-04 1.253704090 0.1424207480E-04 1.256055601 0.1405875854E-04 1.258407112 0.1388223903E-04 1.260758623 0.1371386286E-04 1.263110134 0.1355532008E-04 1.265461645 0.1340873360E-04 1.267813156 0.1327674989E-04 1.270164667 0.1316260179E-04 1.272516177 0.1307008528E-04 1.274867688 0.1300336193E-04 1.277219199 0.1296649878E-04 1.279570710 0.1296274868E-04 1.281922221 0.1299377094E-04 1.284273732 0.1305915988E-04 1.286625243 0.1315655908E-04 1.288976754 0.1328229052E-04 1.291328265 0.1343214918E-04 1.293679775 0.1360203847E-04 1.296031286 0.1378832696E-04 1.298382797 0.1398797084E-04 1.300734308 0.1419849712E-04 1.303085819 0.1441792610E-04 1.305437330 0.1464467930E-04 1.307788841 0.1487749427E-04 1.310140352 0.1511535351E-04 1.312491863 0.1535742820E-04 1.314843373 0.1560303474E-04 1.317194884 0.1585160172E-04 1.319546395 0.1610264477E-04 1.321897906 0.1635574758E-04 1.324249417 0.1661054745E-04 1.326600928 0.1686672420E-04 1.328952439 0.1712399171E-04 1.331303950 0.1738209133E-04 1.333655461 0.1764078679E-04 1.336006971 0.1789986017E-04 1.338358482 0.1815910874E-04 1.340709993 0.1835378556E-04 1.343061504 0.1838120033E-04 1.345413015 0.1840823046E-04 1.347764526 0.1843493157E-04 1.350116037 0.1846136149E-04 1.352467548 0.1848758020E-04 1.354819059 0.1851364988E-04 1.357170569 0.1853963482E-04 1.359522080 0.1856560145E-04 1.361873591 0.1859161828E-04 1.364225102 0.1861775594E-04 1.366576613 0.1864408715E-04 1.368928124 0.1867068673E-04 1.371279635 0.1869763163E-04 1.373631146 0.1872500090E-04 1.375982656 0.1875287576E-04 1.378334167 0.1878133967E-04 1.380685678 0.1881047833E-04 1.383037189 0.1884037977E-04 1.385388700 0.1887113447E-04 1.387740211 0.1890283545E-04 1.390091722 0.1893557840E-04 1.392443233 0.1896946186E-04 1.394794744 0.1900458739E-04 1.397146254 0.1904105982E-04 1.399497765 0.1907898749E-04 1.401849276 0.1911848255E-04 1.404200787 0.1915966133E-04 1.406552298 0.1920264472E-04 1.408903809 0.1924755862E-04 1.411255320 0.1929453448E-04 1.413606831 0.1934370988E-04 1.415958342 0.1939522921E-04 1.418309852 0.1944924437E-04 1.420661363 0.1950591569E-04 1.423012874 0.1956541283E-04 1.425364385 0.1962791588E-04 1.427715896 0.1969361650E-04 1.430067407 0.1976271931E-04 1.432418918 0.1983544334E-04 1.434770429 0.1991202367E-04 1.437121940 0.1999271328E-04 1.439473450 0.2007778504E-04 1.441824961 0.2016753398E-04 1.444176472 0.2026227969E-04 1.446527983 0.2036236906E-04 1.448879494 0.2046817925E-04 1.451231005 0.2058012087E-04 1.453582516 0.2069864149E-04 1.455934027 0.2082422948E-04 1.458285537 0.2095741805E-04 1.460637048 0.2109878962E-04 1.462988559 0.2124898050E-04 1.465340070 0.2140868574E-04 1.467691581 0.2157866421E-04 1.470043092 0.2175974384E-04 1.472394603 0.2195282691E-04 1.474746114 0.2215889523E-04 1.477097625 0.2252368562E-04 1.479449135 0.2328761150E-04 1.481800646 0.2406138525E-04 1.484152157 0.2483622657E-04 1.486503668 0.2559744035E-04 1.488855179 0.2632119440E-04 1.491206690 0.2697279926E-04 1.493558201 0.2751381777E-04 1.495909712 0.2792247878E-04 1.498261223 0.2820802795E-04 1.500612733 0.2839891998E-04 1.502964244 0.2852350618E-04 1.505315755 0.2860228654E-04 1.507667266 0.2864846908E-04 1.510018777 0.2867033817E-04 1.512370288 0.2867314389E-04 1.514721799 0.2903624097E-04 1.517073310 0.2974276732E-04 1.519424821 0.3049539159E-04 1.521776331 0.3129592455E-04 1.524127842 0.3214607757E-04 1.526479353 0.3304745544E-04 1.528830864 0.3400155286E-04 1.531182375 0.3500975456E-04 1.533533886 0.3607333852E-04 1.535885397 0.3719348172E-04 1.538236908 0.3837126799E-04 1.540588418 0.3960769709E-04 1.542939929 0.4090369447E-04 1.545291440 0.4226012127E-04 1.547642951 0.4367778392E-04 1.549994462 0.4515744319E-04 1.552345973 0.4669982230E-04 1.554697484 0.4830561401E-04 1.557048995 0.4997548671E-04 1.559400506 0.5171008930E-04 1.561752016 0.5351005512E-04 1.564103527 0.5537600489E-04 1.566455038 0.5730854880E-04 1.568806549 0.5930828771E-04 1.571158060 0.6137581387E-04 1.573509571 0.6351171092E-04 1.575861082 0.6571655343E-04 1.578212593 0.6799090610E-04 1.580564104 0.7033532257E-04 1.582915614 0.7275034401E-04 1.585267125 0.7523649744E-04 1.587618636 0.7779429396E-04 1.589970147 0.8042422679E-04 1.592321658 0.8312676924E-04 1.594673169 0.8590237260E-04 1.597024680 0.8875146402E-04 1.599376191 0.9167444428E-04 1.601727702 0.9467168561E-04 1.604079212 0.9774352952E-04 1.606430723 0.1008902845E-03 1.608782234 0.1041122240E-03 1.611133745 0.1074095840E-03 1.613485256 0.1107825612E-03 1.615836767 0.1142313104E-03 1.618188278 0.1177559431E-03 1.620539789 0.1213565246E-03 1.622891299 0.1250330728E-03 1.625242810 0.1287855556E-03 1.627594321 0.1326138894E-03 1.629945832 0.1365179367E-03 1.632297343 0.1404975048E-03 1.634648854 0.1445523436E-03 1.637000365 0.1486821440E-03 1.639351876 0.1528865362E-03 1.641703387 0.1571650881E-03 1.644054897 0.1615173037E-03 1.646406408 0.1659426213E-03 1.648757919 0.1704404126E-03 1.651109430 0.1750099808E-03 1.653460941 0.1796505596E-03 1.655812452 0.1843613118E-03 1.658163963 0.1891413281E-03 1.660515474 0.1939896263E-03 1.662866985 0.1989051498E-03 1.665218495 0.2038867671E-03 1.667570006 0.2089332708E-03 1.669921517 0.2140433769E-03 1.672273028 0.2192157241E-03 1.674624539 0.2244488732E-03 1.676976050 0.2297413067E-03 1.679327561 0.2350914284E-03 1.681679072 0.2404975634E-03 1.684030583 0.2459579575E-03 1.686382093 0.2514707774E-03 1.688733604 0.2570341109E-03 1.691085115 0.2626459669E-03 1.693436626 0.2683042756E-03 1.695788137 0.2740068892E-03 1.698139648 0.2797515823E-03 1.700491159 0.2855360524E-03 1.702842670 0.2913579211E-03 1.705194180 0.2972147344E-03 1.707545691 0.3031039642E-03 1.709897202 0.3090230093E-03 1.712248713 0.3149691966E-03 1.714600224 0.3209397825E-03 1.716951735 0.3269319546E-03 1.719303246 0.3329428331E-03 1.721654757 0.3389694727E-03 1.724006268 0.3450088645E-03 1.726357778 0.3510579380E-03 1.728709289 0.3571135632E-03 1.731060800 0.3631725530E-03 1.733412311 0.3692316654E-03 1.735763822 0.3752876061E-03 1.738115333 0.3813370311E-03 1.740466844 0.3873765493E-03 1.742818355 0.3934027257E-03 1.745169866 0.3994120839E-03 1.747521376 0.4054011095E-03 1.749872887 0.4113662531E-03 1.752224398 0.4173039335E-03 1.754575909 0.4232105412E-03 1.756927420 0.4290824416E-03 1.759278931 0.4349159788E-03 1.761630442 0.4407074792E-03 1.763981953 0.4464532546E-03 1.766333464 0.4521496070E-03 1.768684974 0.4577928313E-03 1.771036485 0.4633792200E-03 1.773387996 0.4689050668E-03 1.775739507 0.4743666705E-03 1.778091018 0.4797603392E-03 1.780442529 0.4850823942E-03 1.782794040 0.4903291744E-03 1.785145551 0.4954970401E-03 1.787497061 0.5005823773E-03 1.789848572 0.5055816016E-03 1.792200083 0.5104911628E-03 1.794551594 0.5153075487E-03 1.796903105 0.5200272894E-03 1.799254616 0.5246469613E-03 1.801606127 0.5291631914E-03 1.803957638 0.5335726612E-03 1.806309149 0.5378721108E-03 1.808660659 0.5420583429E-03 1.811012170 0.5461282267E-03 1.813363681 0.5500787020E-03 1.815715192 0.5539067828E-03 1.818066703 0.5576095610E-03 1.820418214 0.5611842102E-03 1.822769725 0.5646279896E-03 1.825121236 0.5679382468E-03 1.827472747 0.5711124218E-03 1.829824257 0.5741480501E-03 1.832175768 0.5770427658E-03 1.834527279 0.5797943048E-03 1.836878790 0.5824005078E-03 1.839230301 0.5848593230E-03 1.841581812 0.5871688088E-03 1.843933323 0.5893271365E-03 1.846284834 0.5913325926E-03 1.848636345 0.5931835810E-03 1.850987855 0.5948786255E-03 1.853339366 0.5964163712E-03 1.855690877 0.5977955868E-03 1.858042388 0.5990151659E-03 1.860393899 0.6000741289E-03 1.862745410 0.6009716238E-03 1.865096921 0.6017069276E-03 1.867448432 0.6022794475E-03 1.869799942 0.6026887213E-03 1.872151453 0.6029344182E-03 1.874502964 0.6030163394E-03 1.876849995 0.6029833632E-03 1.879197025 0.6028844596E-03 1.881544055 0.6027197036E-03 1.883891086 0.6024892198E-03 1.886238116 0.6021931827E-03 1.888585147 0.6018318159E-03 1.890932177 0.6014053926E-03 1.893279207 0.6009142345E-03 1.895626238 0.6003587118E-03 1.897973268 0.5997392426E-03 1.900320299 0.5990562923E-03 1.902667329 0.5983103732E-03 1.905014359 0.5975020438E-03 1.907361390 0.5966319078E-03 1.909708420 0.5957006140E-03 1.912055451 0.5947088545E-03 1.914402481 0.5936573649E-03 1.916749511 0.5925469225E-03 1.919096542 0.5913783460E-03 1.921443572 0.5901524940E-03 1.923790603 0.5888702640E-03 1.926137633 0.5875325918E-03 1.928484663 0.5861404496E-03 1.930831694 0.5846948454E-03 1.933178724 0.5831968214E-03 1.935525754 0.5816474530E-03 1.937872785 0.5800478475E-03 1.940219815 0.5783991424E-03 1.942566846 0.5767025047E-03 1.944913876 0.5749591288E-03 1.947260906 0.5731702357E-03 1.949607937 0.5713370712E-03 1.951954967 0.5694609047E-03 1.954301998 0.5675430275E-03 1.956649028 0.5655847517E-03 1.958996058 0.5635874084E-03 1.961343089 0.5615523461E-03 1.963690119 0.5594809296E-03 1.966037150 0.5573745384E-03 1.968384180 0.5552345649E-03 1.970731210 0.5530624133E-03 1.973078241 0.5508594977E-03 1.975425271 0.5486272411E-03 1.977772302 0.5463670733E-03 1.980119332 0.5440804301E-03 1.982466362 0.5417687514E-03 1.984813393 0.5394334797E-03 1.987160423 0.5370760590E-03 1.989507454 0.5346979331E-03 1.991854484 0.5323005446E-03 1.994201514 0.5298853328E-03 1.996548545 0.5274537332E-03 1.998895575 0.5250071756E-03 2.001242605 0.5225470831E-03 2.003589636 0.5200748706E-03 2.005936666 0.5175919437E-03 2.008283697 0.5150996975E-03 2.010630727 0.5125995156E-03 2.012977757 0.5100927685E-03 2.015324788 0.5075808128E-03 2.017671818 0.5050649903E-03 2.020018849 0.5025466266E-03 2.022365879 0.5000270301E-03 2.024712909 0.4975074917E-03 2.027059940 0.4949892828E-03 2.029406970 0.4924736554E-03 2.031754001 0.4899618408E-03 2.034101031 0.4874550489E-03 2.036448061 0.4849544671E-03 2.038795092 0.4824612602E-03 2.041142122 0.4799765695E-03 2.043489153 0.4775015116E-03 2.045836183 0.4750371787E-03 2.048183213 0.4725846375E-03 2.050530244 0.4701449287E-03 2.052877274 0.4677190666E-03 2.055224304 0.4653080387E-03 2.057571335 0.4629128054E-03 2.059918365 0.4605342993E-03 2.062265396 0.4581734252E-03 2.064612426 0.4558310596E-03 2.066959456 0.4535080506E-03 2.069306487 0.4512052176E-03 2.071653517 0.4489233513E-03 2.074000548 0.4466632130E-03 2.076347578 0.4444255353E-03 2.078694608 0.4422110215E-03 2.081041639 0.4400203454E-03 2.083388669 0.4378541518E-03 2.085735700 0.4357130563E-03 2.088082730 0.4335976450E-03 2.090429760 0.4315084751E-03 2.092776791 0.4294460748E-03 2.095123821 0.4274109431E-03 2.097470852 0.4254035506E-03 2.099817882 0.4234243389E-03 2.102164912 0.4214737216E-03 2.104511943 0.4195520837E-03 2.106858973 0.4176597827E-03 2.109206004 0.4157971481E-03 2.111553034 0.4139644820E-03 2.113900064 0.4121620595E-03 2.116247095 0.4103901288E-03 2.118594125 0.4086489117E-03 2.120941155 0.4069386038E-03 2.123288186 0.4052593749E-03 2.125635216 0.4036113696E-03 2.127982247 0.4019947072E-03 2.130329277 0.4004094825E-03 2.132676307 0.3988557661E-03 2.135023338 0.3973336049E-03 2.137370368 0.3958430223E-03 2.139717399 0.3943840187E-03 2.142064429 0.3929565723E-03 2.144411459 0.3915606390E-03 2.146758490 0.3901961533E-03 2.149105520 0.3888630286E-03 2.151452551 0.3875611576E-03 2.153799581 0.3862904129E-03 2.156146611 0.3850506475E-03 2.158493642 0.3838416953E-03 2.160840672 0.3826633714E-03 2.163187703 0.3815154729E-03 2.165534733 0.3803977791E-03 2.167881763 0.3793100523E-03 2.170228794 0.3782520381E-03 2.172575824 0.3772234661E-03 2.174922855 0.3762240502E-03 2.177269885 0.3752534893E-03 2.179616915 0.3743114679E-03 2.181963946 0.3733976562E-03 2.184310976 0.3725117112E-03 2.186658006 0.3716532769E-03 2.189005037 0.3708219849E-03 2.191352067 0.3700174548E-03 2.193699098 0.3692392951E-03 2.196046128 0.3684871034E-03 2.198393158 0.3677604671E-03 2.200740189 0.3670589640E-03 2.203087219 0.3663821626E-03 2.205434250 0.3657296230E-03 2.207781280 0.3651008971E-03 2.210128310 0.3644955295E-03 2.212475341 0.3639130577E-03 2.214822371 0.3633530130E-03 2.217169402 0.3628149207E-03 2.219516432 0.3622983011E-03 2.221863462 0.3618026697E-03 2.224210493 0.3613275377E-03 2.226557523 0.3608724131E-03 2.228904554 0.3604368004E-03 2.231251584 0.3600202023E-03 2.233598614 0.3596221190E-03 2.235945645 0.3592420497E-03 2.238292675 0.3588794929E-03 2.240639706 0.3585339467E-03 2.242986736 0.3582049097E-03 2.245333766 0.3578918814E-03 2.247680797 0.3575943628E-03 2.250027827 0.3573118569E-03 2.252374857 0.3570438692E-03 2.254721888 0.3567899085E-03 2.257068918 0.3565494873E-03 2.259415949 0.3563221221E-03 2.261762979 0.3561073345E-03 2.264110009 0.3559046510E-03 2.266457040 0.3557136044E-03 2.268804070 0.3555337334E-03 2.271151101 0.3553645839E-03 2.273498131 0.3552057090E-03 2.275845161 0.3550566698E-03 2.278192192 0.3549170358E-03 2.280539222 0.3547863852E-03 2.282886253 0.3546643057E-03 2.285233283 0.3545503949E-03 2.287580313 0.3544442605E-03 2.289927344 0.3543455210E-03 2.292274374 0.3542538062E-03 2.294621405 0.3541687573E-03 2.296968435 0.3540900276E-03 2.299315465 0.3540172829E-03 2.301662496 0.3539502017E-03 2.304009526 0.3538884758E-03 2.306356557 0.3538318103E-03 2.308703587 0.3537799245E-03 2.311050617 0.3537325517E-03 2.313397648 0.3536894398E-03 2.315744678 0.3536503516E-03 2.318091708 0.3536150649E-03 2.320438739 0.3535833729E-03 2.322785769 0.3535550845E-03 2.325132800 0.3535300243E-03 2.327479830 0.3535080332E-03 2.329826860 0.3534889680E-03 2.332173891 0.3534727023E-03 2.334520921 0.3534591259E-03 2.336867952 0.3534481456E-03 2.339214982 0.3534396849E-03 2.341562012 0.3534336842E-03 2.343909043 0.3534301008E-03 2.346256073 0.3534289092E-03 0.000000000 0.6030163395E-03 0.2347351854E-02 0.6029252660E-03 0.4694703708E-02 0.6026521240E-03 0.7042055561E-02 0.6021971481E-03 0.9389407415E-02 0.6015607291E-03 0.1173675927E-01 0.6007434133E-03 0.1408411112E-01 0.5997459021E-03 0.1643146298E-01 0.5985690507E-03 0.1877881483E-01 0.5972138672E-03 0.2112616668E-01 0.5956815112E-03 0.2347351854E-01 0.5939732923E-03 0.2582087039E-01 0.5920906686E-03 0.2816822225E-01 0.5900352443E-03 0.3051557410E-01 0.5878087681E-03 0.3286292595E-01 0.5854131308E-03 0.3521027781E-01 0.5828503627E-03 0.3755762966E-01 0.5801226310E-03 0.3990498151E-01 0.5772322372E-03 0.4225233337E-01 0.5741816138E-03 0.4459968522E-01 0.5709733216E-03 0.4694703708E-01 0.5676100458E-03 0.4929438893E-01 0.5640945933E-03 0.5164174078E-01 0.5604298884E-03 0.5398909264E-01 0.5566189695E-03 0.5633644449E-01 0.5526649851E-03 0.5868379634E-01 0.5485711896E-03 0.6103114820E-01 0.5443409397E-03 0.6337850005E-01 0.5399776896E-03 0.6572585191E-01 0.5354849868E-03 0.6807320376E-01 0.5308664681E-03 0.7042055561E-01 0.5261258542E-03 0.7276790747E-01 0.5212669458E-03 0.7511525932E-01 0.5162936188E-03 0.7746261117E-01 0.5112098188E-03 0.7980996303E-01 0.5060195574E-03 0.8215731488E-01 0.5007269062E-03 0.8450466674E-01 0.4953359925E-03 0.8685201859E-01 0.4898509941E-03 0.8919937044E-01 0.4842761342E-03 0.9154672230E-01 0.4786156765E-03 0.9389407415E-01 0.4728739198E-03 0.9624142601E-01 0.4670551933E-03 0.9858877786E-01 0.4611638512E-03 0.1009361297 0.4552042678E-03 0.1032834816 0.4491808322E-03 0.1056308334 0.4430979435E-03 0.1079781853 0.4369600057E-03 0.1103255371 0.4307714223E-03 0.1126728890 0.4245365920E-03 0.1150202408 0.4182599033E-03 0.1173675927 0.4119457299E-03 0.1197149445 0.4055984257E-03 0.1220622964 0.3992223204E-03 0.1244096483 0.3928217145E-03 0.1267570001 0.3864008751E-03 0.1291043520 0.3799640309E-03 0.1314517038 0.3735153686E-03 0.1337990557 0.3670590280E-03 0.1361464075 0.3605990982E-03 0.1384937594 0.3541396132E-03 0.1408411112 0.3476845484E-03 0.1431884631 0.3412378166E-03 0.1455358149 0.3348032641E-03 0.1478831668 0.3283846679E-03 0.1502305186 0.3219857312E-03 0.1525778705 0.3156100812E-03 0.1549252223 0.3092612653E-03 0.1572725742 0.3029427485E-03 0.1596199261 0.2966579104E-03 0.1619672779 0.2904100428E-03 0.1643146298 0.2842023468E-03 0.1666619816 0.2780379307E-03 0.1690093335 0.2719198080E-03 0.1713566853 0.2658508952E-03 0.1737040372 0.2598340099E-03 0.1760513890 0.2538718691E-03 0.1783987409 0.2479670879E-03 0.1807460927 0.2421221783E-03 0.1830934446 0.2363395473E-03 0.1854407964 0.2306214969E-03 0.1877881483 0.2249702223E-03 0.1901355002 0.2193878119E-03 0.1924828520 0.2138762468E-03 0.1948302039 0.2084373999E-03 0.1971775557 0.2030730362E-03 0.1995249076 0.1977848128E-03 0.2018722594 0.1925742789E-03 0.2042196113 0.1874428761E-03 0.2065669631 0.1823919391E-03 0.2089143150 0.1774226959E-03 0.2112616668 0.1725362690E-03 0.2136090187 0.1677336762E-03 0.2159563705 0.1630158316E-03 0.2183037224 0.1583835470E-03 0.2206510743 0.1538375329E-03 0.2229984261 0.1493784006E-03 0.2253457780 0.1450066630E-03 0.2276931298 0.1407227374E-03 0.2300404817 0.1365269465E-03 0.2323878335 0.1324195209E-03 0.2347351854 0.1284006012E-03 0.2370825372 0.1244702402E-03 0.2394298891 0.1206284054E-03 0.2417772409 0.1168749817E-03 0.2441245928 0.1132097736E-03 0.2464719446 0.1096325084E-03 0.2488192965 0.1061428394E-03 0.2511666484 0.1027403482E-03 0.2535140002 0.9942454902E-04 0.2558613521 0.9619489127E-04 0.2582087039 0.9305076381E-04 0.2605560558 0.8999149871E-04 0.2629034076 0.8701637556E-04 0.2652507595 0.8412462611E-04 0.2675981113 0.8131543944E-04 0.2699454632 0.7858796769E-04 0.2722928150 0.7594133262E-04 0.2746401669 0.7337463325E-04 0.2769875187 0.7088695488E-04 0.2793348706 0.6847738007E-04 0.2816822225 0.6614500225E-04 0.2840295743 0.6388894314E-04 0.2863769262 0.6170837541E-04 0.2887242780 0.5960255309E-04 0.2910716299 0.5757085333E-04 0.2934189817 0.5561283503E-04 0.2957663336 0.5372832340E-04 0.2981136854 0.5191753444E-04 0.3004610373 0.5018126227E-04 0.3028083891 0.4852116616E-04 0.3051557410 0.4694021514E-04 0.3075030928 0.4544337440E-04 0.3098504447 0.4403862800E-04 0.3121977966 0.4273833636E-04 0.3145451484 0.4156044867E-04 0.3168925003 0.4052774124E-04 0.3192398521 0.3966148198E-04 0.3215872040 0.3896844329E-04 0.3239345558 0.3843118772E-04 0.3262819077 0.3801416041E-04 0.3286292595 0.3767918054E-04 0.3309766114 0.3739548132E-04 0.3333239632 0.3714148889E-04 0.3356713151 0.3690291335E-04 0.3380186669 0.3667042397E-04 0.3403660188 0.3643789700E-04 0.3427133707 0.3620126630E-04 0.3450607225 0.3595780144E-04 0.3474080744 0.3570565706E-04 0.3497554262 0.3544358843E-04 0.3521027781 0.3517076875E-04 0.3544501299 0.3488666928E-04 0.3567974818 0.3459097905E-04 0.3591448336 0.3428354980E-04 0.3614921855 0.3396435756E-04 0.3638395373 0.3363347526E-04 0.3661868892 0.3329105276E-04 0.3685342410 0.3293730210E-04 0.3708815929 0.3257248638E-04 0.3732289448 0.3219691116E-04 0.3755762966 0.3181091782E-04 0.3779236485 0.3141487823E-04 0.3802710003 0.3100919041E-04 0.3826183522 0.3059427505E-04 0.3849657040 0.3017057251E-04 0.3873130559 0.2973854037E-04 0.3896604077 0.2929865124E-04 0.3920077596 0.2885139099E-04 0.3943551114 0.2839725706E-04 0.3967024633 0.2793675715E-04 0.3990498151 0.2758678268E-04 0.4013971670 0.2764066246E-04 0.4037445189 0.2769516645E-04 0.4060918707 0.2775019832E-04 0.4084392226 0.2780566717E-04 0.4107865744 0.2786148698E-04 0.4131339263 0.2791757624E-04 0.4154812781 0.2797385751E-04 0.4178286300 0.2803025709E-04 0.4201759818 0.2808670476E-04 0.4225233337 0.2814313352E-04 0.4248706855 0.2819947936E-04 0.4272180374 0.2825568108E-04 0.4295653892 0.2831168013E-04 0.4319127411 0.2836742049E-04 0.4342600929 0.2842284852E-04 0.4366074448 0.2847791289E-04 0.4389547967 0.2853256445E-04 0.4413021485 0.2858675623E-04 0.4436495004 0.2864044330E-04 0.4459968522 0.2869358275E-04 0.4483442041 0.2874613366E-04 0.4506915559 0.2879805703E-04 0.4530389078 0.2884931576E-04 0.4553862596 0.2889987464E-04 0.4577336115 0.2894970027E-04 0.4600809633 0.2899876111E-04 0.4624283152 0.2904702741E-04 0.4647756670 0.2909447121E-04 0.4671230189 0.2914106631E-04 0.4694703708 0.2918678827E-04 0.4718177226 0.2923161442E-04 0.4741650745 0.2927552380E-04 0.4765124263 0.2931849715E-04 0.4788597782 0.2936051696E-04 0.4812071300 0.2940156738E-04 0.4835544819 0.2944163425E-04 0.4859018337 0.2948070508E-04 0.4882491856 0.2951876904E-04 0.4905965374 0.2955581693E-04 0.4929438893 0.2959184117E-04 0.4952912411 0.2962683582E-04 0.4976385930 0.2966079649E-04 0.4999859449 0.2969372041E-04 0.5023332967 0.2972560631E-04 0.5046806486 0.2975645452E-04 0.5070280004 0.2978626682E-04 0.5093753523 0.2981504652E-04 0.5117227041 0.2984279839E-04 0.5140700560 0.2986952861E-04 0.5164174078 0.2989524479E-04 0.5187647597 0.2991995591E-04 0.5211121115 0.2994367230E-04 0.5234594634 0.2996640559E-04 0.5258068152 0.2998816867E-04 0.5281541671 0.3000897566E-04 0.5305015190 0.3002884188E-04 0.5328488708 0.3004778378E-04 0.5351962227 0.3006581888E-04 0.5375435745 0.3030381012E-04 0.5398909264 0.3076746328E-04 0.5422382782 0.3122371071E-04 0.5445856301 0.3167212283E-04 0.5469329819 0.3211227498E-04 0.5492803338 0.3254374796E-04 0.5516276856 0.3296612863E-04 0.5539750375 0.3337901047E-04 0.5563223893 0.3378199412E-04 0.5586697412 0.3417468797E-04 0.5610170931 0.3455670870E-04 0.5633644449 0.3492768178E-04 0.5657117968 0.3528724203E-04 0.5680591486 0.3563503412E-04 0.5704065005 0.3597071307E-04 0.5727538523 0.3629394474E-04 0.5751012042 0.3660440631E-04 0.5774485560 0.3690178671E-04 0.5797959079 0.3718578711E-04 0.5821432597 0.3745612128E-04 0.5844906116 0.3771251608E-04 0.5868379634 0.3795471177E-04 0.5891853153 0.3818246245E-04 0.5915326672 0.3839553635E-04 0.5938800190 0.3859371622E-04 0.5962273709 0.3877679961E-04 0.5985747227 0.3894459918E-04 0.6009220746 0.3909694294E-04 0.6032694264 0.3923367453E-04 0.6056167783 0.3935465343E-04 0.6079641301 0.3945975519E-04 0.6103114820 0.3954887155E-04 0.6126588338 0.3962191067E-04 0.6150061857 0.3967879721E-04 0.6173535375 0.3971947246E-04 0.6197008894 0.3974389443E-04 0.6220482413 0.3975203789E-04 0.6243952716 0.3975430084E-04 0.6267423020 0.3975402360E-04 0.6290893324 0.3975120368E-04 0.6314363628 0.3974583989E-04 0.6337833932 0.3973793234E-04 0.6361304236 0.3972748237E-04 0.6384774540 0.3971449265E-04 0.6408244844 0.3969896709E-04 0.6431715148 0.3968091091E-04 0.6455185452 0.3966033059E-04 0.6478655756 0.3963723390E-04 0.6502126060 0.3961162985E-04 0.6525596364 0.3958352874E-04 0.6549066668 0.3955294211E-04 0.6572536971 0.3951988275E-04 0.6596007275 0.3948436469E-04 0.6619477579 0.3944640319E-04 0.6642947883 0.3940601470E-04 0.6666418187 0.3936321690E-04 0.6689888491 0.3931802865E-04 0.6713358795 0.3927046997E-04 0.6736829099 0.3922056205E-04 0.6760299403 0.3916832721E-04 0.6783769707 0.3911378888E-04 0.6807240011 0.3905697162E-04 0.6830710315 0.3899790105E-04 0.6854180619 0.3893660383E-04 0.6877650922 0.3887310770E-04 0.6901121226 0.3880744138E-04 0.6924591530 0.3873963459E-04 0.6948061834 0.3866971801E-04 0.6971532138 0.3859772327E-04 0.6995002442 0.3852368290E-04 0.7018472746 0.3844763033E-04 0.7041943050 0.3836959982E-04 0.7065413354 0.3828962648E-04 0.7088883658 0.3820774623E-04 0.7112353962 0.3812399574E-04 0.7135824266 0.3803841243E-04 0.7159294570 0.3795103442E-04 0.7182764874 0.3786190053E-04 0.7206235177 0.3777105019E-04 0.7229705481 0.3767852350E-04 0.7253175785 0.3758436108E-04 0.7276646089 0.3748860416E-04 0.7300116393 0.3739129444E-04 0.7323586697 0.3729247413E-04 0.7347057001 0.3719218589E-04 0.7370527305 0.3709047280E-04 0.7393997609 0.3698737830E-04 0.7417467913 0.3688294621E-04 0.7440938217 0.3677722065E-04 0.7464408521 0.3667024604E-04 0.7487878825 0.3656206704E-04 0.7511349128 0.3645272852E-04 0.7534819432 0.3634227555E-04 0.7558289736 0.3623075332E-04 0.7581760040 0.3611820718E-04 0.7605230344 0.3600468253E-04 0.7628700648 0.3589022484E-04 0.7652170952 0.3577487958E-04 0.7675641256 0.3565869223E-04 0.7699111560 0.3554170820E-04 0.7722581864 0.3542397285E-04 0.7746052168 0.3530553142E-04 0.7769522472 0.3518642902E-04 0.7792992776 0.3506671057E-04 0.7816463080 0.3494642082E-04 0.7839933383 0.3482560429E-04 0.7863403687 0.3470430524E-04 0.7886873991 0.3458256766E-04 0.7910344295 0.3446043520E-04 0.7933814599 0.3433795123E-04 0.7957284903 0.3421515871E-04 0.7980755207 0.3409210023E-04 0.8004225511 0.3396881800E-04 0.8027695815 0.3384535375E-04 0.8051166119 0.3372174879E-04 0.8074636423 0.3359804395E-04 0.8098106727 0.3347427953E-04 0.8121577031 0.3335049537E-04 0.8145047335 0.3322673071E-04 0.8168517638 0.3310302428E-04 0.8191987942 0.3297941423E-04 0.8215458246 0.3285593810E-04 0.8238928550 0.3273263285E-04 0.8262398854 0.3260953481E-04 0.8285869158 0.3248667967E-04 0.8309339462 0.3236410250E-04 0.8332809766 0.3224183768E-04 0.8356280070 0.3211991895E-04 0.8379750374 0.3199837937E-04 0.8403220678 0.3187725129E-04 0.8426690982 0.3175656640E-04 0.8450161286 0.3163635566E-04 0.8473631589 0.3151664936E-04 0.8497101893 0.3139747704E-04 0.8520572197 0.3127886755E-04 0.8544042501 0.3116084902E-04 0.8567512805 0.3104344886E-04 0.8590983109 0.3092669375E-04 0.8614453413 0.3081060968E-04 0.8637923717 0.3069522189E-04 0.8661394021 0.3058055492E-04 0.8684864325 0.3046663258E-04 0.8708334629 0.3035347799E-04 0.8731804933 0.3024111355E-04 0.8755275237 0.3012956098E-04 0.8778745541 0.3001884126E-04 0.8802215844 0.2990897474E-04 0.8825686148 0.2979998104E-04 0.8849156452 0.2969187913E-04 0.8872626756 0.2958468732E-04 0.8896097060 0.2947842325E-04 0.8919567364 0.2937310393E-04 0.8943037668 0.2926874572E-04 0.8966507972 0.2916536437E-04 0.8989978276 0.2906297501E-04 0.9013448580 0.2896159218E-04 0.9036918884 0.2886122982E-04 0.9060389188 0.2876190131E-04 0.9083859492 0.2866361945E-04 0.9107329796 0.2856639650E-04 0.9130800099 0.2847024419E-04 0.9154270403 0.2837517372E-04 0.9177740707 0.2828119580E-04 0.9201211011 0.2818832062E-04 0.9224681315 0.2809655793E-04 0.9248151619 0.2800591697E-04 0.9271621923 0.2791640658E-04 0.9295092227 0.2782803512E-04 0.9318562531 0.2774081056E-04 0.9342032835 0.2765474047E-04 0.9365503139 0.2756983200E-04 0.9388973443 0.2748609194E-04 0.9412443747 0.2740352673E-04 0.9435914050 0.2732214245E-04 0.9459384354 0.2724194484E-04 0.9482854658 0.2716293935E-04 0.9506324962 0.2708513109E-04 0.9529795266 0.2700852490E-04 0.9553265570 0.2693312534E-04 0.9576735874 0.2685893670E-04 0.9600206178 0.2678596303E-04 0.9623676482 0.2671420812E-04 0.9647146786 0.2664367556E-04 0.9670617090 0.2657436870E-04 0.9694087394 0.2650629072E-04 0.9717557698 0.2643944458E-04 0.9741028002 0.2637383307E-04 0.9764498305 0.2630945882E-04 0.9787968609 0.2624632430E-04 0.9811438913 0.2618443183E-04 0.9834909217 0.2612378359E-04 0.9858379521 0.2606438164E-04 0.9881849825 0.2600622792E-04 0.9905320129 0.2594932427E-04 0.9928790433 0.2589367241E-04 0.9952260737 0.2583927400E-04 0.9975731041 0.2578613058E-04 0.9999201345 0.2573424365E-04 1.002267165 0.2568361462E-04 1.004614195 0.2563424485E-04 1.006961226 0.2558613564E-04 1.009308256 0.2553928824E-04 1.011655286 0.2549370388E-04 1.014002317 0.2544938373E-04 1.016349347 0.2540632895E-04 1.018696378 0.2536454066E-04 1.021043408 0.2532401997E-04 1.023390438 0.2528476796E-04 1.025737469 0.2524678573E-04 1.028084499 0.2521007435E-04 1.030431530 0.2517463488E-04 1.032778560 0.2514046841E-04 1.035125590 0.2510757601E-04 1.037472621 0.2507595875E-04 1.039819651 0.2504561774E-04 1.042166682 0.2501655407E-04 1.044513712 0.2498876886E-04 1.046860742 0.2496226324E-04 1.049207773 0.2493703834E-04 1.051554803 0.2491309534E-04 1.053901834 0.2489043540E-04 1.056248864 0.2486905972E-04 1.058595894 0.2484896953E-04 1.060942925 0.2483016603E-04 1.063289955 0.2481265050E-04 1.065636985 0.2479642418E-04 1.067984016 0.2478148837E-04 1.070331046 0.2476784435E-04 1.072678077 0.2475549343E-04 1.075025107 0.2474443694E-04 1.077372137 0.2473467620E-04 1.079719168 0.2472621255E-04 1.082066198 0.2471904733E-04 1.084413229 0.2471318189E-04 1.086760259 0.2470861755E-04 1.089107289 0.2470535568E-04 1.091454320 0.2470339758E-04 1.093801350 0.2470274459E-04 1.096152861 0.2469949100E-04 1.098504372 0.2468973290E-04 1.100855883 0.2467347908E-04 1.103207394 0.2465074465E-04 1.105558905 0.2462155101E-04 1.107910415 0.2458592585E-04 1.110261926 0.2454390308E-04 1.112613437 0.2449552278E-04 1.114964948 0.2444083114E-04 1.117316459 0.2437988038E-04 1.119667970 0.2431272869E-04 1.122019481 0.2423944009E-04 1.124370992 0.2416008440E-04 1.126722503 0.2407473706E-04 1.129074013 0.2398347905E-04 1.131425524 0.2388639676E-04 1.133777035 0.2378358187E-04 1.136128546 0.2367513117E-04 1.138480057 0.2356114646E-04 1.140831568 0.2344173435E-04 1.143183079 0.2331700615E-04 1.145534590 0.2318707766E-04 1.147886101 0.2305206905E-04 1.150237611 0.2291210463E-04 1.152589122 0.2276731271E-04 1.154940633 0.2261782543E-04 1.157292144 0.2246377853E-04 1.159643655 0.2230531123E-04 1.161995166 0.2214256598E-04 1.164346677 0.2197568834E-04 1.166698188 0.2180482674E-04 1.169049699 0.2163013234E-04 1.171401209 0.2145175884E-04 1.173752720 0.2126986227E-04 1.176104231 0.2108460091E-04 1.178455742 0.2089613501E-04 1.180807253 0.2070462674E-04 1.183158764 0.2051024000E-04 1.185510275 0.2031314027E-04 1.187861786 0.2011349455E-04 1.190213296 0.1991147119E-04 1.192564807 0.1970723988E-04 1.194916318 0.1950097153E-04 1.197267829 0.1929283830E-04 1.199619340 0.1908301354E-04 1.201970851 0.1887167190E-04 1.204322362 0.1865898935E-04 1.206673873 0.1844514340E-04 1.209025384 0.1823031323E-04 1.211376894 0.1801468003E-04 1.213728405 0.1779842739E-04 1.216079916 0.1758174176E-04 1.218431427 0.1736481313E-04 1.220782938 0.1714783583E-04 1.223134449 0.1693100962E-04 1.225485960 0.1671454095E-04 1.227837471 0.1649864466E-04 1.230188982 0.1628354609E-04 1.232540492 0.1621590887E-04 1.234892003 0.1628031389E-04 1.237243514 0.1634428902E-04 1.239595025 0.1640779012E-04 1.241946536 0.1647077435E-04 1.244298047 0.1653320026E-04 1.246649558 0.1659502783E-04 1.249001069 0.1665621854E-04 1.251352580 0.1671673545E-04 1.253704090 0.1677654322E-04 1.256055601 0.1683560824E-04 1.258407112 0.1689389860E-04 1.260758623 0.1695138424E-04 1.263110134 0.1700803693E-04 1.265461645 0.1706383038E-04 1.267813156 0.1711874025E-04 1.270164667 0.1717274424E-04 1.272516177 0.1722582211E-04 1.274867688 0.1727795574E-04 1.277219199 0.1732912918E-04 1.279570710 0.1737932866E-04 1.281922221 0.1742854267E-04 1.284273732 0.1747676198E-04 1.286625243 0.1752397965E-04 1.288976754 0.1757019111E-04 1.291328265 0.1761539414E-04 1.293679775 0.1765958894E-04 1.296031286 0.1770277809E-04 1.298382797 0.1774496665E-04 1.300734308 0.1778616210E-04 1.303085819 0.1782637440E-04 1.305437330 0.1786561599E-04 1.307788841 0.1790390177E-04 1.310140352 0.1794124916E-04 1.312491863 0.1797767804E-04 1.314843373 0.1801321079E-04 1.317194884 0.1804787226E-04 1.319546395 0.1808168978E-04 1.321897906 0.1811469315E-04 1.324249417 0.1814691459E-04 1.326600928 0.1817838878E-04 1.328952439 0.1820915282E-04 1.331303950 0.1823924620E-04 1.333655461 0.1826871078E-04 1.336006971 0.1829759078E-04 1.338358482 0.1832593275E-04 1.340709993 0.1841834250E-04 1.343061504 0.1867738211E-04 1.345413015 0.1893605733E-04 1.347764526 0.1919420568E-04 1.350116037 0.1945167145E-04 1.352467548 0.1970830476E-04 1.354819059 0.1996396092E-04 1.357170569 0.2021849982E-04 1.359522080 0.2047178543E-04 1.361873591 0.2072368544E-04 1.364225102 0.2097407090E-04 1.366576613 0.2122281596E-04 1.368928124 0.2146979761E-04 1.371279635 0.2171489551E-04 1.373631146 0.2195799181E-04 1.375982656 0.2219897100E-04 1.378334167 0.2243771983E-04 1.380685678 0.2267412716E-04 1.383037189 0.2290808393E-04 1.385388700 0.2313948305E-04 1.387740211 0.2336821939E-04 1.390091722 0.2359418970E-04 1.392443233 0.2381729259E-04 1.394794744 0.2403742855E-04 1.397146254 0.2425449989E-04 1.399497765 0.2446841079E-04 1.401849276 0.2467906731E-04 1.404200787 0.2488637740E-04 1.406552298 0.2509025100E-04 1.408903809 0.2529060007E-04 1.411255320 0.2548733870E-04 1.413606831 0.2568038323E-04 1.415958342 0.2586965238E-04 1.418309852 0.2605506744E-04 1.420661363 0.2623655250E-04 1.423012874 0.2641403472E-04 1.425364385 0.2658744467E-04 1.427715896 0.2675671674E-04 1.430067407 0.2692178964E-04 1.432418918 0.2708260708E-04 1.434770429 0.2723911849E-04 1.437121940 0.2739128005E-04 1.439473450 0.2753905593E-04 1.441824961 0.2768241980E-04 1.444176472 0.2782135688E-04 1.446527983 0.2795586649E-04 1.448879494 0.2808596541E-04 1.451231005 0.2821169228E-04 1.453582516 0.2833311350E-04 1.455934027 0.2845033116E-04 1.458285537 0.2856349399E-04 1.460637048 0.2867281256E-04 1.462988559 0.2877858087E-04 1.465340070 0.2888120770E-04 1.467691581 0.2898126292E-04 1.470043092 0.2907954769E-04 1.472394603 0.2917720365E-04 1.474746114 0.2927588733E-04 1.477097625 0.2937805678E-04 1.479449135 0.2948745545E-04 1.481800646 0.2960994576E-04 1.484152157 0.2975494776E-04 1.486503668 0.2993780689E-04 1.488855179 0.3018301597E-04 1.491206690 0.3052593513E-04 1.493558201 0.3100568179E-04 1.495909712 0.3164471671E-04 1.498261223 0.3243449274E-04 1.500612733 0.3334726225E-04 1.502964244 0.3435538912E-04 1.505315755 0.3543909624E-04 1.507667266 0.3658590578E-04 1.510018777 0.3778827030E-04 1.512370288 0.3904168297E-04 1.514721799 0.4034348410E-04 1.517073310 0.4169215165E-04 1.519424821 0.4308688149E-04 1.521776331 0.4452733467E-04 1.524127842 0.4601348159E-04 1.526479353 0.4754550328E-04 1.528830864 0.4912372697E-04 1.531182375 0.5074858311E-04 1.533533886 0.5242057583E-04 1.535885397 0.5414026218E-04 1.538236908 0.5590823715E-04 1.540588418 0.5772512266E-04 1.542939929 0.5959155923E-04 1.545291440 0.6150819950E-04 1.547642951 0.6347570318E-04 1.549994462 0.6549473285E-04 1.552345973 0.6756595056E-04 1.554697484 0.6969001490E-04 1.557048995 0.7186757845E-04 1.559400506 0.7409928551E-04 1.561752016 0.7638577011E-04 1.564103527 0.7872765406E-04 1.566455038 0.8112554527E-04 1.568806549 0.8358003601E-04 1.571158060 0.8609170139E-04 1.573509571 0.8866109777E-04 1.575861082 0.9128876132E-04 1.578212593 0.9397520650E-04 1.580564104 0.9672092469E-04 1.582915614 0.9952638270E-04 1.585267125 0.1023920215E-03 1.587618636 0.1053182545E-03 1.589970147 0.1083054668E-03 1.592321658 0.1113540130E-03 1.594673169 0.1144642167E-03 1.597024680 0.1176363683E-03 1.599376191 0.1208707244E-03 1.601727702 0.1241675060E-03 1.604079212 0.1275268973E-03 1.606430723 0.1309490444E-03 1.608782234 0.1344340541E-03 1.611133745 0.1379819922E-03 1.613485256 0.1415928830E-03 1.615836767 0.1452667070E-03 1.618188278 0.1490034008E-03 1.620539789 0.1528028547E-03 1.622891299 0.1566649127E-03 1.625242810 0.1605893702E-03 1.627594321 0.1645759737E-03 1.629945832 0.1686244192E-03 1.632297343 0.1727343513E-03 1.634648854 0.1769053623E-03 1.637000365 0.1811369906E-03 1.639351876 0.1854287205E-03 1.641703387 0.1897799806E-03 1.644054897 0.1941901433E-03 1.646406408 0.1986585238E-03 1.648757919 0.2031843793E-03 1.651109430 0.2077669082E-03 1.653460941 0.2124052495E-03 1.655812452 0.2170984823E-03 1.658163963 0.2218456246E-03 1.660515474 0.2266456336E-03 1.662866985 0.2314974047E-03 1.665218495 0.2363997710E-03 1.667570006 0.2413515035E-03 1.669921517 0.2463513104E-03 1.672273028 0.2513978370E-03 1.674624539 0.2564896656E-03 1.676976050 0.2616253154E-03 1.679327561 0.2668032428E-03 1.681679072 0.2720218410E-03 1.684030583 0.2772794407E-03 1.686382093 0.2825743100E-03 1.688733604 0.2879046550E-03 1.691085115 0.2932686201E-03 1.693436626 0.2986642885E-03 1.695788137 0.3040896829E-03 1.698139648 0.3095427662E-03 1.700491159 0.3150214423E-03 1.702842670 0.3205235567E-03 1.705194180 0.3260468980E-03 1.707545691 0.3315891984E-03 1.709897202 0.3371481352E-03 1.712248713 0.3427213320E-03 1.714600224 0.3483063598E-03 1.716951735 0.3539007387E-03 1.719303246 0.3595019393E-03 1.721654757 0.3651073842E-03 1.724006268 0.3707144498E-03 1.726357778 0.3763204681E-03 1.728709289 0.3819227285E-03 1.731060800 0.3875184797E-03 1.733412311 0.3931049319E-03 1.735763822 0.3986792588E-03 1.738115333 0.4042385996E-03 1.740466844 0.4097800617E-03 1.742818355 0.4153007227E-03 1.745169866 0.4207976330E-03 1.747521376 0.4262678182E-03 1.749872887 0.4317082818E-03 1.752224398 0.4371160076E-03 1.754575909 0.4424879625E-03 1.756927420 0.4478210995E-03 1.759278931 0.4531123601E-03 1.761630442 0.4583586774E-03 1.763981953 0.4635569789E-03 1.766333464 0.4687041897E-03 1.768684974 0.4737972351E-03 1.771036485 0.4788330440E-03 1.773387996 0.4838085518E-03 1.775739507 0.4887207034E-03 1.778091018 0.4935664568E-03 1.780442529 0.4983427854E-03 1.782794040 0.5030466821E-03 1.785145551 0.5076751619E-03 1.787497061 0.5122252650E-03 1.789848572 0.5166940605E-03 1.792200083 0.5210786491E-03 1.794551594 0.5253761665E-03 1.796903105 0.5295837865E-03 1.799254616 0.5336987243E-03 1.801606127 0.5377182390E-03 1.803957638 0.5416396377E-03 1.806309149 0.5454602777E-03 1.808660659 0.5491775699E-03 1.811012170 0.5527889817E-03 1.813363681 0.5562920400E-03 1.815715192 0.5596843339E-03 1.818066703 0.5629635177E-03 1.820418214 0.5661273136E-03 1.822769725 0.5691735145E-03 1.825121236 0.5720999862E-03 1.827472747 0.5749046705E-03 1.829824257 0.5775855875E-03 1.832175768 0.5801408376E-03 1.834527279 0.5825686045E-03 1.836878790 0.5848671565E-03 1.839230301 0.5870348496E-03 1.841581812 0.5890701287E-03 1.843933323 0.5909715299E-03 1.846284834 0.5927376823E-03 1.848636345 0.5943673096E-03 1.850987855 0.5958592314E-03 1.853339366 0.5972123653E-03 1.855690877 0.5984257277E-03 1.858042388 0.5994984353E-03 1.860393899 0.6004297058E-03 1.862745410 0.6012188597E-03 1.865096921 0.6018653201E-03 1.867448432 0.6023686142E-03 1.869799942 0.6027283736E-03 1.872151453 0.6029443348E-03 1.874502964 0.6030163395E-03 1.876849995 0.6029833633E-03 1.879197025 0.6028844598E-03 1.881544055 0.6027197037E-03 1.883891086 0.6024892199E-03 1.886238116 0.6021931828E-03 1.888585147 0.6018318160E-03 1.890932177 0.6014053927E-03 1.893279207 0.6009142346E-03 1.895626238 0.6003587119E-03 1.897973268 0.5997392427E-03 1.900320299 0.5990562924E-03 1.902667329 0.5983103733E-03 1.905014359 0.5975020439E-03 1.907361390 0.5966319080E-03 1.909708420 0.5957006141E-03 1.912055451 0.5947088546E-03 1.914402481 0.5936573650E-03 1.916749511 0.5925469227E-03 1.919096542 0.5913783461E-03 1.921443572 0.5901524941E-03 1.923790603 0.5888702641E-03 1.926137633 0.5875325919E-03 1.928484663 0.5861404497E-03 1.930831694 0.5846948455E-03 1.933178724 0.5831968215E-03 1.935525754 0.5816474531E-03 1.937872785 0.5800478476E-03 1.940219815 0.5783991426E-03 1.942566846 0.5767025048E-03 1.944913876 0.5749591289E-03 1.947260906 0.5731702358E-03 1.949607937 0.5713370713E-03 1.951954967 0.5694609048E-03 1.954301998 0.5675430276E-03 1.956649028 0.5655847518E-03 1.958996058 0.5635874085E-03 1.961343089 0.5615523462E-03 1.963690119 0.5594809297E-03 1.966037150 0.5573745385E-03 1.968384180 0.5552345650E-03 1.970731210 0.5530624134E-03 1.973078241 0.5508594978E-03 1.975425271 0.5486272412E-03 1.977772302 0.5463670734E-03 1.980119332 0.5440804303E-03 1.982466362 0.5417687515E-03 1.984813393 0.5394334798E-03 1.987160423 0.5370760591E-03 1.989507454 0.5346979332E-03 1.991854484 0.5323005447E-03 1.994201514 0.5298853329E-03 1.996548545 0.5274537333E-03 1.998895575 0.5250071757E-03 2.001242605 0.5225470832E-03 2.003589636 0.5200748707E-03 2.005936666 0.5175919438E-03 2.008283697 0.5150996976E-03 2.010630727 0.5125995157E-03 2.012977757 0.5100927686E-03 2.015324788 0.5075808129E-03 2.017671818 0.5050649904E-03 2.020018849 0.5025466267E-03 2.022365879 0.5000270302E-03 2.024712909 0.4975074918E-03 2.027059940 0.4949892829E-03 2.029406970 0.4924736555E-03 2.031754001 0.4899618409E-03 2.034101031 0.4874550489E-03 2.036448061 0.4849544672E-03 2.038795092 0.4824612603E-03 2.041142122 0.4799765695E-03 2.043489153 0.4775015117E-03 2.045836183 0.4750371788E-03 2.048183213 0.4725846376E-03 2.050530244 0.4701449288E-03 2.052877274 0.4677190667E-03 2.055224304 0.4653080388E-03 2.057571335 0.4629128055E-03 2.059918365 0.4605342994E-03 2.062265396 0.4581734252E-03 2.064612426 0.4558310596E-03 2.066959456 0.4535080507E-03 2.069306487 0.4512052177E-03 2.071653517 0.4489233513E-03 2.074000548 0.4466632131E-03 2.076347578 0.4444255354E-03 2.078694608 0.4422110216E-03 2.081041639 0.4400203455E-03 2.083388669 0.4378541519E-03 2.085735700 0.4357130564E-03 2.088082730 0.4335976451E-03 2.090429760 0.4315084752E-03 2.092776791 0.4294460749E-03 2.095123821 0.4274109432E-03 2.097470852 0.4254035506E-03 2.099817882 0.4234243390E-03 2.102164912 0.4214737216E-03 2.104511943 0.4195520838E-03 2.106858973 0.4176597828E-03 2.109206004 0.4157971482E-03 2.111553034 0.4139644821E-03 2.113900064 0.4121620596E-03 2.116247095 0.4103901289E-03 2.118594125 0.4086489118E-03 2.120941155 0.4069386039E-03 2.123288186 0.4052593750E-03 2.125635216 0.4036113697E-03 2.127982247 0.4019947072E-03 2.130329277 0.4004094826E-03 2.132676307 0.3988557662E-03 2.135023338 0.3973336050E-03 2.137370368 0.3958430224E-03 2.139717399 0.3943840188E-03 2.142064429 0.3929565724E-03 2.144411459 0.3915606391E-03 2.146758490 0.3901961534E-03 2.149105520 0.3888630287E-03 2.151452551 0.3875611576E-03 2.153799581 0.3862904130E-03 2.156146611 0.3850506476E-03 2.158493642 0.3838416954E-03 2.160840672 0.3826633715E-03 2.163187703 0.3815154729E-03 2.165534733 0.3803977791E-03 2.167881763 0.3793100523E-03 2.170228794 0.3782520381E-03 2.172575824 0.3772234661E-03 2.174922855 0.3762240503E-03 2.177269885 0.3752534894E-03 2.179616915 0.3743114680E-03 2.181963946 0.3733976563E-03 2.184310976 0.3725117113E-03 2.186658006 0.3716532770E-03 2.189005037 0.3708219850E-03 2.191352067 0.3700174549E-03 2.193699098 0.3692392952E-03 2.196046128 0.3684871035E-03 2.198393158 0.3677604672E-03 2.200740189 0.3670589641E-03 2.203087219 0.3663821627E-03 2.205434250 0.3657296231E-03 2.207781280 0.3651008972E-03 2.210128310 0.3644955296E-03 2.212475341 0.3639130578E-03 2.214822371 0.3633530130E-03 2.217169402 0.3628149208E-03 2.219516432 0.3622983012E-03 2.221863462 0.3618026698E-03 2.224210493 0.3613275378E-03 2.226557523 0.3608724131E-03 2.228904554 0.3604368005E-03 2.231251584 0.3600202023E-03 2.233598614 0.3596221190E-03 2.235945645 0.3592420498E-03 2.238292675 0.3588794930E-03 2.240639706 0.3585339468E-03 2.242986736 0.3582049098E-03 2.245333766 0.3578918815E-03 2.247680797 0.3575943629E-03 2.250027827 0.3573118569E-03 2.252374857 0.3570438693E-03 2.254721888 0.3567899086E-03 2.257068918 0.3565494874E-03 2.259415949 0.3563221222E-03 2.261762979 0.3561073345E-03 2.264110009 0.3559046511E-03 2.266457040 0.3557136044E-03 2.268804070 0.3555337335E-03 2.271151101 0.3553645840E-03 2.273498131 0.3552057091E-03 2.275845161 0.3550566699E-03 2.278192192 0.3549170359E-03 2.280539222 0.3547863853E-03 2.282886253 0.3546643058E-03 2.285233283 0.3545503950E-03 2.287580313 0.3544442606E-03 2.289927344 0.3543455211E-03 2.292274374 0.3542538063E-03 2.294621405 0.3541687574E-03 2.296968435 0.3540900277E-03 2.299315465 0.3540172830E-03 2.301662496 0.3539502018E-03 2.304009526 0.3538884759E-03 2.306356557 0.3538318104E-03 2.308703587 0.3537799246E-03 2.311050617 0.3537325518E-03 2.313397648 0.3536894399E-03 2.315744678 0.3536503517E-03 2.318091708 0.3536150649E-03 2.320438739 0.3535833730E-03 2.322785769 0.3535550845E-03 2.325132800 0.3535300244E-03 2.327479830 0.3535080332E-03 2.329826860 0.3534889681E-03 2.332173891 0.3534727023E-03 2.334520921 0.3534591260E-03 2.336867952 0.3534481457E-03 2.339214982 0.3534396850E-03 2.341562012 0.3534336843E-03 2.343909043 0.3534301009E-03 2.346256073 0.3534289093E-03 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/PHLWLINES.OUT0000644000000000000000000000012713543334741024364 xustar0029 mtime=1569569249.56963879 29 atime=1569569249.56863879 29 ctime=1569569249.56963879 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PHLWLINES.OUT0000644002504400250440000000062013543334741026425 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.4522622546E-03 0.000000000 0.9045245092E-03 0.6220482413 -0.4522622546E-03 0.6220482413 0.9045245092E-03 1.093801350 -0.4522622546E-03 1.093801350 0.9045245092E-03 1.874502964 -0.4522622546E-03 1.874502964 0.9045245092E-03 2.346256073 -0.4522622546E-03 2.346256073 0.9045245092E-03 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741023525 xustar0030 mtime=1569569249.573638787 30 atime=1569569249.572638788 30 ctime=1569569249.573638787 elk-6.3.2/examples/phonons-superconductivity/MgB2-DFPT/elk.in0000644002504400250440000000304013543334741025571 0ustar00dewhurstdewhurst00000000000000 ! This example generates a phonon dispersion for the superconductor MgB2 using ! density functional perturbation theory (DFPT). The superconducting critical ! temperature is also computed using McMillan's formula and by solving the ! Eliashberg equations. tasks 0 : ground state run 205 : compute the dynamical matrices ! number of phonon q-points ngridq 4 4 4 ! the k-point grid has to be commensurate with the q-point grid ngridk 8 8 8 ! larger smearing width required for stable phonon dispersion swidth 0.005 stype 1 ! increase the number of muffin-tin points (for accurate gradients) nrmtscf 2 ! after all the dynamical matrix DYN---.OUT files have been calculated then ! uncomment the following lines and run again !ngridk ! 24 24 24 !tasks ! 1 : ground state with larger k-point set ! 210 : phonon DOS ! 220 : plot the phonon dispersion ! 240 : electron-phonon matrix elements ! 245 : phonon line-widths ! 250 : Eliashberg function, alpha^2F plot1d 5 1000 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.5 avec 5.83170 0.000000000 0.0000 -2.91585 5.050400347 0.0000 0.00000 0.000000000 6.6594 sppath '../../../species/' atoms 2 : nspecies 'Mg.in' : spfname 1 : natoms; atposl below 0.00000000 0.00000000 0.00000000 'B.in' 2 0.33333333 0.66666667 0.50000000 0.66666667 0.33333333 0.50000000 elk-6.3.2/examples/phonons-superconductivity/PaxHeaders.21352/Pb-DFPT0000644000000000000000000000013213543334741022157 xustar0030 mtime=1569569249.613638761 30 atime=1569569249.577638784 30 ctime=1569569249.613638761 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/0000755002504400250440000000000013543334741024303 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/ALPHA2F.OUT0000644000000000000000000000013213543334741023642 xustar0030 mtime=1569569249.581638782 30 atime=1569569249.578638784 30 ctime=1569569249.581638782 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/ALPHA2F.OUT0000644002504400250440000004410413543334741025714 0ustar00dewhurstdewhurst00000000000000 -0.3676951211E-04 0.000000000 -0.3596058284E-04 0.000000000 -0.3515165358E-04 0.000000000 -0.3434272431E-04 0.000000000 -0.3353379504E-04 0.000000000 -0.3272486578E-04 0.000000000 -0.3191593651E-04 0.000000000 -0.3110700725E-04 0.000000000 -0.3029807798E-04 0.000000000 -0.2948914871E-04 0.000000000 -0.2868021945E-04 0.000000000 -0.2787129018E-04 0.000000000 -0.2706236091E-04 0.000000000 -0.2625343165E-04 0.000000000 -0.2544450238E-04 0.000000000 -0.2463557311E-04 0.000000000 -0.2382664385E-04 0.000000000 -0.2301771458E-04 0.000000000 -0.2220878531E-04 0.000000000 -0.2139985605E-04 0.000000000 -0.2059092678E-04 0.000000000 -0.1978199752E-04 0.000000000 -0.1897306825E-04 0.000000000 -0.1816413898E-04 0.000000000 -0.1735520972E-04 0.000000000 -0.1654628045E-04 0.000000000 -0.1573735118E-04 0.000000000 -0.1492842192E-04 0.000000000 -0.1411949265E-04 0.000000000 -0.1331056338E-04 0.000000000 -0.1250163412E-04 0.000000000 -0.1169270485E-04 0.000000000 -0.1088377558E-04 0.000000000 -0.1007484632E-04 0.000000000 -0.9265917052E-05 0.000000000 -0.8456987785E-05 0.000000000 -0.7648058519E-05 0.000000000 -0.6839129253E-05 0.000000000 -0.6030199986E-05 0.000000000 -0.5221270720E-05 0.000000000 -0.4412341453E-05 0.000000000 -0.3603412187E-05 0.000000000 -0.2794482920E-05 0.000000000 -0.1985553654E-05 0.000000000 -0.1176624388E-05 0.9449296139E-34 -0.3676951211E-06 0.9449296139E-34 0.4412341453E-06 0.9449296139E-34 0.1250163412E-05 0.000000000 0.2059092678E-05 0.000000000 0.2868021945E-05 0.000000000 0.3676951211E-05 0.1271576402E-08 0.4485880477E-05 0.5517778063E-08 0.5294809744E-05 0.5517778063E-08 0.6103739010E-05 0.4246201661E-08 0.6912668277E-05 0.4025466980E-08 0.7721597543E-05 0.1087326668E-07 0.8530526810E-05 0.8513967300E-07 0.9339456076E-05 0.9268436776E-07 0.1014838534E-04 0.1899608995E-06 0.1095731461E-04 0.1754159728E-06 0.1176624388E-04 0.2748928049E-06 0.1257517314E-04 0.4901579966E-06 0.1338410241E-04 0.1096441933E-05 0.1419303167E-04 0.9863410526E-06 0.1500196094E-04 0.1662692145E-05 0.1581089021E-04 0.2106305984E-05 0.1661981947E-04 0.2245755800E-05 0.1742874874E-04 0.3727909640E-05 0.1823767801E-04 0.5955295749E-05 0.1904660727E-04 0.8583947013E-05 0.1985553654E-04 0.7631633101E-05 0.2066446581E-04 0.8955876936E-05 0.2147339507E-04 0.1071157166E-04 0.2228232434E-04 0.1723810392E-04 0.2309125361E-04 0.2228750423E-04 0.2390018287E-04 0.2955175555E-04 0.2470911214E-04 0.2675707063E-04 0.2551804140E-04 0.3159828775E-04 0.2632697067E-04 0.4324746355E-04 0.2713589994E-04 0.5532575357E-04 0.2794482920E-04 0.7113541270E-04 0.2875375847E-04 0.6528271666E-04 0.2956268774E-04 0.6861668660E-04 0.3037161700E-04 0.1050891487E-03 0.3118054627E-04 0.1288490401E-03 0.3198947554E-04 0.1467378254E-03 0.3279840480E-04 0.1396489898E-03 0.3360733407E-04 0.1579001415E-03 0.3441626334E-04 0.2120013225E-03 0.3522519260E-04 0.2621350502E-03 0.3603412187E-04 0.3128960695E-03 0.3684305113E-04 0.3094942356E-03 0.3765198040E-04 0.2933876430E-03 0.3846090967E-04 0.3958837732E-03 0.3926983893E-04 0.4308302977E-03 0.4007876820E-04 0.5788934329E-03 0.4088769747E-04 0.5468781799E-03 0.4169662673E-04 0.6364106668E-03 0.4250555600E-04 0.6809142160E-03 0.4331448527E-04 0.8313043975E-03 0.4412341453E-04 0.8987781261E-03 0.4493234380E-04 0.9469151321E-03 0.4574127307E-04 0.9862481825E-03 0.4655020233E-04 0.1245092070E-02 0.4735913160E-04 0.1328056544E-02 0.4816806086E-04 0.1434312131E-02 0.4897699013E-04 0.1496424196E-02 0.4978591940E-04 0.1711216217E-02 0.5059484866E-04 0.1947372171E-02 0.5140377793E-04 0.2225769023E-02 0.5221270720E-04 0.2272611436E-02 0.5302163646E-04 0.2413440643E-02 0.5383056573E-04 0.2544829691E-02 0.5463949500E-04 0.3105072132E-02 0.5544842426E-04 0.3251424827E-02 0.5625735353E-04 0.3561594167E-02 0.5706628280E-04 0.3683698586E-02 0.5787521206E-04 0.4240093712E-02 0.5868414133E-04 0.4327707962E-02 0.5949307059E-04 0.4939293237E-02 0.6030199986E-04 0.5234904089E-02 0.6111092913E-04 0.5718570073E-02 0.6191985839E-04 0.6073486662E-02 0.6272878766E-04 0.6578062441E-02 0.6353771693E-04 0.7181906107E-02 0.6434664619E-04 0.7596015328E-02 0.6515557546E-04 0.8212095816E-02 0.6596450473E-04 0.8794368801E-02 0.6677343399E-04 0.9732209080E-02 0.6758236326E-04 0.1031309318E-01 0.6839129253E-04 0.1082273332E-01 0.6920022179E-04 0.1167414778E-01 0.7000915106E-04 0.1253894918E-01 0.7081808032E-04 0.1338951226E-01 0.7162700959E-04 0.1450405805E-01 0.7243593886E-04 0.1590981505E-01 0.7324486812E-04 0.1751891830E-01 0.7405379739E-04 0.1719587485E-01 0.7486272666E-04 0.1956057113E-01 0.7567165592E-04 0.2081204687E-01 0.7648058519E-04 0.2323499588E-01 0.7728951446E-04 0.2446333871E-01 0.7809844372E-04 0.2642681748E-01 0.7890737299E-04 0.2821853881E-01 0.7971630226E-04 0.3182467873E-01 0.8052523152E-04 0.3607935352E-01 0.8133416079E-04 0.4577873662E-01 0.8214309005E-04 0.5509802386E-01 0.8295201932E-04 0.6893477683E-01 0.8376094859E-04 0.7693009076E-01 0.8456987785E-04 0.8614821961E-01 0.8537880712E-04 0.9128146082E-01 0.8618773639E-04 0.9469198096E-01 0.8699666565E-04 0.9733108981E-01 0.8780559492E-04 0.9927244134E-01 0.8861452419E-04 0.1051747250 0.8942345345E-04 0.1117489051 0.9023238272E-04 0.1193480664 0.9104131199E-04 0.1269377244 0.9185024125E-04 0.1337025368 0.9265917052E-04 0.1507301424 0.9346809978E-04 0.1642355704 0.9427702905E-04 0.1805405269 0.9508595832E-04 0.1889606022 0.9589488758E-04 0.2007469547 0.9670381685E-04 0.2017099359 0.9751274612E-04 0.2031194906 0.9832167538E-04 0.2056282837 0.9913060465E-04 0.2091154681 0.9993953392E-04 0.2096887846 0.1007484632E-03 0.2094539244 0.1015573924E-03 0.2078197347 0.1023663217E-03 0.2169256989 0.1031752510E-03 0.2170379097 0.1039841802E-03 0.2200753053 0.1047931095E-03 0.2158726498 0.1056020388E-03 0.2161689851 0.1064109680E-03 0.2211723317 0.1072198973E-03 0.2252461614 0.1080288266E-03 0.2261213653 0.1088377558E-03 0.2279599236 0.1096466851E-03 0.2273864489 0.1104556144E-03 0.2317339886 0.1112645436E-03 0.2272272315 0.1120734729E-03 0.2287208682 0.1128824022E-03 0.2354452752 0.1136913314E-03 0.2381509313 0.1145002607E-03 0.2384657850 0.1153091900E-03 0.2335407091 0.1161181192E-03 0.2392655222 0.1169270485E-03 0.2422353363 0.1177359778E-03 0.2406812929 0.1185449070E-03 0.2410989255 0.1193538363E-03 0.2488484853 0.1201627656E-03 0.2553142509 0.1209716948E-03 0.2537758886 0.1217806241E-03 0.2513793487 0.1225895534E-03 0.2466598964 0.1233984826E-03 0.2571989254 0.1242074119E-03 0.2543666375 0.1250163412E-03 0.2652366738 0.1258252704E-03 0.2620330910 0.1266341997E-03 0.2669213102 0.1274431290E-03 0.2664844654 0.1282520582E-03 0.2685757309 0.1290609875E-03 0.2707249797 0.1298699168E-03 0.2708957529 0.1306788460E-03 0.2803272610 0.1314877753E-03 0.2788325665 0.1322967046E-03 0.2885086616 0.1331056338E-03 0.2844860955 0.1339145631E-03 0.2925684122 0.1347234924E-03 0.2936394168 0.1355324216E-03 0.2983179191 0.1363413509E-03 0.2978066228 0.1371502802E-03 0.3063532655 0.1379592094E-03 0.3074891937 0.1387681387E-03 0.3168607071 0.1395770680E-03 0.3163400841 0.1403859972E-03 0.3241651880 0.1411949265E-03 0.3272331741 0.1420038558E-03 0.3301205262 0.1428127850E-03 0.3345344360 0.1436217143E-03 0.3432994502 0.1444306436E-03 0.3531491801 0.1452395728E-03 0.3608297433 0.1460485021E-03 0.3630321815 0.1468574314E-03 0.3695908392 0.1476663606E-03 0.3783542228 0.1484752899E-03 0.3892847653 0.1492842192E-03 0.3971019837 0.1500931484E-03 0.4101594678 0.1509020777E-03 0.4195054863 0.1517110070E-03 0.4347834318 0.1525199362E-03 0.4421819772 0.1533288655E-03 0.4579721063 0.1541377948E-03 0.4657817811 0.1549467240E-03 0.4838887620 0.1557556533E-03 0.4992102502 0.1565645826E-03 0.5088206955 0.1573735118E-03 0.5389646800 0.1581824411E-03 0.5611034459 0.1589913704E-03 0.5890090122 0.1598002996E-03 0.5982304251 0.1606092289E-03 0.6115368184 0.1614181582E-03 0.6251532139 0.1622270874E-03 0.6172376522 0.1630360167E-03 0.6022158278 0.1638449460E-03 0.5976958831 0.1646538752E-03 0.6070006017 0.1654628045E-03 0.6092890139 0.1662717338E-03 0.6133973724 0.1670806630E-03 0.6069582870 0.1678895923E-03 0.6270579339 0.1686985216E-03 0.6318074042 0.1695074508E-03 0.6521783052 0.1703163801E-03 0.6523741595 0.1711253094E-03 0.6731674457 0.1719342386E-03 0.6852639476 0.1727431679E-03 0.7003268297 0.1735520972E-03 0.7128563892 0.1743610264E-03 0.7269569711 0.1751699557E-03 0.7497655786 0.1759788850E-03 0.7758008651 0.1767878142E-03 0.8113629641 0.1775967435E-03 0.8430780740 0.1784056728E-03 0.8600173944 0.1792146020E-03 0.8905065142 0.1800235313E-03 0.9393984971 0.1808324606E-03 1.009805007 0.1816413898E-03 1.069697079 0.1824503191E-03 1.070119450 0.1832592484E-03 1.018669684 0.1840681776E-03 0.9481734469 0.1848771069E-03 0.8956993676 0.1856860362E-03 0.8595506561 0.1864949654E-03 0.8197553573 0.1873038947E-03 0.8011922937 0.1881128240E-03 0.7804988965 0.1889217532E-03 0.7625830712 0.1897306825E-03 0.7450929157 0.1905396118E-03 0.7185628607 0.1913485410E-03 0.7077744818 0.1921574703E-03 0.7024859763 0.1929663996E-03 0.6939562958 0.1937753288E-03 0.6734616348 0.1945842581E-03 0.6435860809 0.1953931874E-03 0.6160179026 0.1962021166E-03 0.6019630772 0.1970110459E-03 0.5771656872 0.1978199752E-03 0.5732652489 0.1986289044E-03 0.5575834135 0.1994378337E-03 0.5417843486 0.2002467630E-03 0.5362717354 0.2010556922E-03 0.5188302861 0.2018646215E-03 0.5126047751 0.2026735508E-03 0.5032504094 0.2034824800E-03 0.5050254403 0.2042914093E-03 0.4970093018 0.2051003386E-03 0.4875411861 0.2059092678E-03 0.4729763157 0.2067181971E-03 0.4823012825 0.2075271264E-03 0.4710261835 0.2083360556E-03 0.4612314292 0.2091449849E-03 0.4515751124 0.2099539141E-03 0.4520572408 0.2107628434E-03 0.4492741854 0.2115717727E-03 0.4538258517 0.2123807019E-03 0.4397849723 0.2131896312E-03 0.4430781053 0.2139985605E-03 0.4329673938 0.2148074897E-03 0.4301490304 0.2156164190E-03 0.4243887542 0.2164253483E-03 0.4192891326 0.2172342775E-03 0.4282612053 0.2180432068E-03 0.4315413334 0.2188521361E-03 0.4214660066 0.2196610653E-03 0.4149111696 0.2204699946E-03 0.4093214054 0.2212789239E-03 0.4128443658 0.2220878531E-03 0.4113176824 0.2228967824E-03 0.4067863591 0.2237057117E-03 0.4084245704 0.2245146409E-03 0.4119081871 0.2253235702E-03 0.4081243973 0.2261324995E-03 0.4006862341 0.2269414287E-03 0.3937236243 0.2277503580E-03 0.3978957377 0.2285592873E-03 0.3988671903 0.2293682165E-03 0.4064580981 0.2301771458E-03 0.4093330390 0.2309860751E-03 0.4069129457 0.2317950043E-03 0.3980422788 0.2326039336E-03 0.4034784345 0.2334128629E-03 0.3978321925 0.2342217921E-03 0.4006889413 0.2350307214E-03 0.3966509954 0.2358396507E-03 0.3979763803 0.2366485799E-03 0.3955581594 0.2374575092E-03 0.3808557256 0.2382664385E-03 0.3853555095 0.2390753677E-03 0.3790739192 0.2398842970E-03 0.3810114425 0.2406932263E-03 0.3728280441 0.2415021555E-03 0.3681570478 0.2423110848E-03 0.3573614826 0.2431200141E-03 0.3484911132 0.2439289433E-03 0.3364580973 0.2447378726E-03 0.3224640029 0.2455468019E-03 0.3037696814 0.2463557311E-03 0.2994910323 0.2471646604E-03 0.2914065836 0.2479735897E-03 0.2861732601 0.2487825189E-03 0.2705403562 0.2495914482E-03 0.2651229503 0.2504003775E-03 0.2617272571 0.2512093067E-03 0.2634887908 0.2520182360E-03 0.2580257504 0.2528271653E-03 0.2525423485 0.2536360945E-03 0.2428373288 0.2544450238E-03 0.2415491484 0.2552539531E-03 0.2406165053 0.2560628823E-03 0.2352367754 0.2568718116E-03 0.2409082874 0.2576807409E-03 0.2385256466 0.2584896701E-03 0.2391426611 0.2592985994E-03 0.2326135047 0.2601075287E-03 0.2345473470 0.2609164579E-03 0.2388492321 0.2617253872E-03 0.2417648563 0.2625343165E-03 0.2516376803 0.2633432457E-03 0.2520047822 0.2641521750E-03 0.2565119510 0.2649611043E-03 0.2531256769 0.2657700335E-03 0.2644044284 0.2665789628E-03 0.2714988152 0.2673878921E-03 0.2877036865 0.2681968213E-03 0.2950527057 0.2690057506E-03 0.3016857321 0.2698146799E-03 0.2992348148 0.2706236091E-03 0.3110723677 0.2714325384E-03 0.3332443073 0.2722414677E-03 0.3538722305 0.2730503969E-03 0.3701378120 0.2738593262E-03 0.3763250261 0.2746682555E-03 0.3925667378 0.2754771847E-03 0.4265792373 0.2762861140E-03 0.4586128276 0.2770950433E-03 0.4808785598 0.2779039725E-03 0.5027697800 0.2787129018E-03 0.5239768129 0.2795218311E-03 0.5624547950 0.2803307603E-03 0.6008511168 0.2811396896E-03 0.6440750100 0.2819486189E-03 0.6787230314 0.2827575481E-03 0.7274283455 0.2835664774E-03 0.7849373165 0.2843754067E-03 0.8612515368 0.2851843359E-03 0.9141126581 0.2859932652E-03 1.003226878 0.2868021945E-03 1.099338908 0.2876111237E-03 1.266370284 0.2884200530E-03 1.460503478 0.2892289823E-03 2.134078970 0.2900379115E-03 2.759348096 0.2908468408E-03 3.203687343 0.2916557701E-03 3.040431620 0.2924646993E-03 2.822502562 0.2932736286E-03 2.628005892 0.2940825579E-03 2.469177030 0.2948914871E-03 2.308066874 0.2957004164E-03 2.173531701 0.2965093457E-03 2.050124485 0.2973182749E-03 1.927531659 0.2981272042E-03 1.782270105 0.2989361335E-03 1.672209971 0.2997450627E-03 1.519697279 0.3005539920E-03 1.438247322 0.3013629213E-03 1.321816300 0.3021718505E-03 1.279704914 0.3029807798E-03 1.203365066 0.3037897091E-03 1.141594746 0.3045986383E-03 1.084912850 0.3054075676E-03 1.036957672 0.3062164969E-03 0.9999361884 0.3070254261E-03 0.9378495113 0.3078343554E-03 0.8850262311 0.3086432847E-03 0.8314826780 0.3094522139E-03 0.7557175435 0.3102611432E-03 0.6971147012 0.3110700725E-03 0.6554919240 0.3118790017E-03 0.6182942604 0.3126879310E-03 0.5939640066 0.3134968603E-03 0.5630067945 0.3143057895E-03 0.5529660783 0.3151147188E-03 0.5193797393 0.3159236481E-03 0.4992096144 0.3167325773E-03 0.4826911358 0.3175415066E-03 0.4713177735 0.3183504359E-03 0.4525876611 0.3191593651E-03 0.4349310679 0.3199682944E-03 0.4303581800 0.3207772236E-03 0.4125294691 0.3215861529E-03 0.4015484102 0.3223950822E-03 0.3781115360 0.3232040114E-03 0.3749209036 0.3240129407E-03 0.3582658375 0.3248218700E-03 0.3557400366 0.3256307992E-03 0.3412728765 0.3264397285E-03 0.3318957281 0.3272486578E-03 0.3210672627 0.3280575870E-03 0.3081564385 0.3288665163E-03 0.3031277172 0.3296754456E-03 0.2852046810 0.3304843748E-03 0.2820795992 0.3312933041E-03 0.2725943620 0.3321022334E-03 0.2676504909 0.3329111626E-03 0.2567534308 0.3337200919E-03 0.2424778086 0.3345290212E-03 0.2208016691 0.3353379504E-03 0.2025876460 0.3361468797E-03 0.1763596631 0.3369558090E-03 0.1613661342 0.3377647382E-03 0.1408896484 0.3385736675E-03 0.1275193012 0.3393825968E-03 0.1164642993 0.3401915260E-03 0.1021756679 0.3410004553E-03 0.9185823400E-01 0.3418093846E-03 0.7601820473E-01 0.3426183138E-03 0.6313615260E-01 0.3434272431E-03 0.4063215072E-01 0.3442361724E-03 0.1939584315E-01 0.3450451016E-03 0.4375550264E-02 0.3458540309E-03 0.000000000 0.3466629602E-03 0.000000000 0.3474718894E-03 0.000000000 0.3482808187E-03 0.000000000 0.3490897480E-03 0.000000000 0.3498986772E-03 0.000000000 0.3507076065E-03 0.000000000 0.3515165358E-03 0.000000000 0.3523254650E-03 0.000000000 0.3531343943E-03 0.000000000 0.3539433236E-03 0.000000000 0.3547522528E-03 0.000000000 0.3555611821E-03 0.000000000 0.3563701114E-03 0.000000000 0.3571790406E-03 0.000000000 0.3579879699E-03 0.000000000 0.3587968992E-03 0.000000000 0.3596058284E-03 0.000000000 0.3604147577E-03 0.000000000 0.3612236870E-03 0.000000000 0.3620326162E-03 0.000000000 0.3628415455E-03 0.000000000 0.3636504748E-03 0.000000000 0.3644594040E-03 0.000000000 0.3652683333E-03 0.000000000 0.3660772626E-03 0.000000000 0.3668861918E-03 0.000000000 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/MCMILLAN.OUT0000644000000000000000000000012713543334741024025 xustar0029 mtime=1569569249.58463878 29 atime=1569569249.58463878 29 ctime=1569569249.58463878 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/MCMILLAN.OUT0000644002504400250440000000053213543334741026070 0ustar00dewhurstdewhurst00000000000000 Electron-phonon coupling constant, lambda : 1.300391767 Logarithmic average frequency : 0.1973053899E-03 RMS average frequency : 0.2216534818E-03 Coulomb pseudopotential, mu* : 0.1500000000 McMillan-Allen-Dynes superconducting critical temperature [Eq. 34, Phys. Rev. B 12, 905 (1975)] (kelvin) : 5.458024982 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/PHDISP.OUT0000644000000000000000000000013213543334741023614 xustar0030 mtime=1569569249.590638776 30 atime=1569569249.588638777 30 ctime=1569569249.590638776 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PHDISP.OUT0000644002504400250440000005331213543334741025667 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.4369966343E-10 0.1815415904E-01 0.1235050197E-04 0.3630831809E-01 0.2452237058E-04 0.5446247713E-01 0.3634506762E-04 0.7261663618E-01 0.4766399921E-04 0.9077079522E-01 0.5834786129E-04 0.1089249543 0.6829519893E-04 0.1270791133 0.7743985703E-04 0.1452332724 0.8575494396E-04 0.1633874314 0.9325486435E-04 0.1815415904 0.9999491923E-04 0.1996957495 0.1060679597E-03 0.2178499085 0.1115976761E-03 0.2360040676 0.1167283845E-03 0.2541582266 0.1216116868E-03 0.2723123857 0.1263911062E-03 0.2904665447 0.1311865587E-03 0.3086207037 0.1360810123E-03 0.3267748628 0.1411116026E-03 0.3449290218 0.1462667096E-03 0.3630831809 0.1514892779E-03 0.3812373399 0.1566854370E-03 0.3993914990 0.1617366657E-03 0.4175456580 0.1665135274E-03 0.4356998171 0.1708892556E-03 0.4538539761 0.1747519526E-03 0.4720081351 0.1780146482E-03 0.4901622942 0.1806228210E-03 0.5083164532 0.1825591862E-03 0.5264706123 0.1838456305E-03 0.5446247713 0.1845421862E-03 0.5627789304 0.1847429368E-03 0.5809330894 0.1845688093E-03 0.5990872485 0.1841573830E-03 0.6172414075 0.1836501843E-03 0.6353955665 0.1831784313E-03 0.6535497256 0.1828487454E-03 0.6717038846 0.1827307766E-03 0.6899718220 0.1832638862E-03 0.7082397594 0.1847374455E-03 0.7265076968 0.1868072062E-03 0.7447756341 0.1889958852E-03 0.7630435715 0.1907995534E-03 0.7813115089 0.1917848387E-03 0.7995794463 0.1916596310E-03 0.8178473836 0.1903122836E-03 0.8361153210 0.1878205529E-03 0.8543832584 0.1844326788E-03 0.8726511958 0.1805223741E-03 0.8909191331 0.1765202360E-03 0.9091870705 0.1728285189E-03 0.9274550079 0.1697344268E-03 0.9457229453 0.1673449250E-03 0.9639908826 0.1655656473E-03 0.9822588200 0.1641330476E-03 1.000526757 0.1626885976E-03 1.018794695 0.1608698550E-03 1.037062632 0.1583930323E-03 1.055330570 0.1551110177E-03 1.073598507 0.1510407869E-03 1.091866444 0.1463597888E-03 1.110134382 0.1413725390E-03 1.128402319 0.1364495383E-03 1.146670256 0.1319445824E-03 1.164938194 0.1281055295E-03 1.183206131 0.1250042097E-03 1.201474069 0.1225131760E-03 1.219742006 0.1203420092E-03 1.238009943 0.1181204174E-03 1.256277881 0.1154980530E-03 1.274545818 0.1122322305E-03 1.292813755 0.1082474075E-03 1.311081693 0.1036613696E-03 1.329349630 0.9877622352E-04 1.347617568 0.9402918117E-04 1.365885505 0.8989597445E-04 1.384153442 0.8675090023E-04 1.402421380 0.8472022791E-04 1.420689317 0.8359883565E-04 1.438957254 0.8288331944E-04 1.457225192 0.8190269178E-04 1.475493129 0.7997363535E-04 1.493761067 0.7652014835E-04 1.512029004 0.7114095681E-04 1.530296941 0.6363527998E-04 1.548564879 0.5400221146E-04 1.566832816 0.4242434540E-04 1.585100753 0.2924141908E-04 1.603368691 0.1491698274E-04 1.621636628 0.4369966343E-10 1.639815148 0.7467044959E-05 1.657993667 0.1488244295E-04 1.676172187 0.2219514851E-04 1.694350707 0.2935531458E-04 1.712529226 0.3631488053E-04 1.730707746 0.4302814663E-04 1.748886266 0.4945233096E-04 1.767064785 0.5554810429E-04 1.785243305 0.6128009929E-04 1.803421824 0.6661738973E-04 1.821600344 0.7153393619E-04 1.839778864 0.7600899401E-04 1.857957383 0.8002747954E-04 1.876135903 0.8358028988E-04 1.894314422 0.8666457049E-04 1.912492942 0.8928392387E-04 1.930671462 0.9144855000E-04 1.948849981 0.9317530684E-04 1.967028501 0.9448767494E-04 1.985207021 0.9541560554E-04 2.003385540 0.9599522589E-04 2.021564060 0.9626836945E-04 2.039742579 0.9628189351E-04 2.057921099 0.9608674436E-04 2.076099619 0.9573673297E-04 2.094278138 0.9528699644E-04 2.112456658 0.9479214470E-04 2.130635178 0.9430413151E-04 2.148813697 0.9386994114E-04 2.166992217 0.9352924086E-04 2.185170736 0.9331220086E-04 2.203349256 0.9323770987E-04 2.221527776 0.9382657966E-04 2.239706295 0.9555823233E-04 2.257884815 0.9833430039E-04 2.276063335 0.1020097964E-03 2.294241854 0.1064139410E-03 2.312420374 0.1113690507E-03 2.330598893 0.1167042660E-03 2.348777413 0.1222637130E-03 2.366955933 0.1279102707E-03 2.385134452 0.1335264911E-03 2.403312972 0.1390139602E-03 2.421491492 0.1442919616E-03 2.439670011 0.1492959367E-03 2.457848531 0.1539759828E-03 2.476027050 0.1582954820E-03 2.494205570 0.1622298733E-03 2.512384090 0.1657655424E-03 2.530562609 0.1688987889E-03 2.548741129 0.1716348294E-03 2.566919649 0.1739867949E-03 2.585098168 0.1759746909E-03 2.603276688 0.1776242939E-03 2.621455207 0.1789659665E-03 2.639633727 0.1800333856E-03 2.657812247 0.1808621869E-03 2.675990766 0.1814885445E-03 2.694169286 0.1819477152E-03 2.712347805 0.1822725907E-03 2.730526325 0.1824923144E-03 2.748704845 0.1826310240E-03 2.766883364 0.1827067846E-03 2.785061884 0.1827307766E-03 2.802738302 0.1832452628E-03 2.820414720 0.1847507815E-03 2.838091138 0.1871389704E-03 2.855767556 0.1902459341E-03 2.873443974 0.1938728303E-03 2.891120392 0.1978077587E-03 2.908796810 0.2018453933E-03 2.926473228 0.2058023007E-03 2.944149646 0.2095272846E-03 2.961826064 0.2129069990E-03 2.979502482 0.2158674697E-03 2.997178900 0.2183722522E-03 3.014855318 0.2204178966E-03 3.032531736 0.2220273345E-03 3.050208154 0.2232417927E-03 3.067884572 0.2241118927E-03 3.085560990 0.2246886833E-03 3.103237408 0.2250154267E-03 3.120913826 0.2251209695E-03 3.138505173 0.2231853456E-03 3.156096520 0.2187632498E-03 3.173687868 0.2133540482E-03 3.191279215 0.2075212692E-03 3.208870562 0.2014674299E-03 3.226461909 0.1952803449E-03 3.244053256 0.1890065859E-03 3.261644603 0.1826760917E-03 3.279235950 0.1763118471E-03 3.296827297 0.1699343235E-03 3.314418644 0.1635638512E-03 3.332009992 0.1572221053E-03 3.349601339 0.1509331933E-03 3.367192686 0.1447245634E-03 3.384784033 0.1386278352E-03 3.402375380 0.1326795923E-03 3.419966727 0.1269221311E-03 3.437558074 0.1214041163E-03 3.455149421 0.1161810432E-03 3.472740768 0.1113153370E-03 3.490332115 0.1068758500E-03 3.507923463 0.1029364574E-03 3.525514810 0.9957344221E-04 3.543106157 0.9686147430E-04 3.560697504 0.9486826774E-04 3.578288851 0.9364845436E-04 3.595880198 0.9323770987E-04 0.000000000 0.4369966343E-10 0.1815415904E-01 0.1235050197E-04 0.3630831809E-01 0.2452237058E-04 0.5446247713E-01 0.3634506762E-04 0.7261663618E-01 0.4766399921E-04 0.9077079522E-01 0.5834786129E-04 0.1089249543 0.6829519893E-04 0.1270791133 0.7743985703E-04 0.1452332724 0.8575494396E-04 0.1633874314 0.9325486435E-04 0.1815415904 0.9999491923E-04 0.1996957495 0.1060679597E-03 0.2178499085 0.1115976761E-03 0.2360040676 0.1167283845E-03 0.2541582266 0.1216116868E-03 0.2723123857 0.1263911062E-03 0.2904665447 0.1311865587E-03 0.3086207037 0.1360810123E-03 0.3267748628 0.1411116026E-03 0.3449290218 0.1462667096E-03 0.3630831809 0.1514892779E-03 0.3812373399 0.1566854370E-03 0.3993914990 0.1617366657E-03 0.4175456580 0.1665135274E-03 0.4356998171 0.1708892556E-03 0.4538539761 0.1747519526E-03 0.4720081351 0.1780146482E-03 0.4901622942 0.1806228210E-03 0.5083164532 0.1825591862E-03 0.5264706123 0.1838456305E-03 0.5446247713 0.1845421862E-03 0.5627789304 0.1847429368E-03 0.5809330894 0.1845688093E-03 0.5990872485 0.1841573830E-03 0.6172414075 0.1836501843E-03 0.6353955665 0.1831784313E-03 0.6535497256 0.1828487454E-03 0.6717038846 0.1827307766E-03 0.6899718220 0.1840116887E-03 0.7082397594 0.1876503446E-03 0.7265076968 0.1931050786E-03 0.7447756341 0.1996664034E-03 0.7630435715 0.2066398883E-03 0.7813115089 0.2134788234E-03 0.7995794463 0.2198494346E-03 0.8178473836 0.2256397227E-03 0.8361153210 0.2309289454E-03 0.8543832584 0.2359309264E-03 0.8726511958 0.2409206034E-03 0.8909191331 0.2461509918E-03 0.9091870705 0.2517528371E-03 0.9274550079 0.2578306036E-03 0.9457229453 0.2606277665E-03 0.9639908826 0.2556461766E-03 0.9822588200 0.2514452140E-03 1.000526757 0.2478364915E-03 1.018794695 0.2445176276E-03 1.037062632 0.2411452192E-03 1.055330570 0.2374052882E-03 1.073598507 0.2330659007E-03 1.091866444 0.2280045960E-03 1.110134382 0.2222102815E-03 1.128402319 0.2157638045E-03 1.146670256 0.2088039636E-03 1.164938194 0.2014872095E-03 1.183206131 0.1939500468E-03 1.201474069 0.1862827882E-03 1.219742006 0.1785210897E-03 1.238009943 0.1706574354E-03 1.256277881 0.1626693818E-03 1.274545818 0.1545566520E-03 1.292813755 0.1463765344E-03 1.311081693 0.1382666913E-03 1.329349630 0.1304456782E-03 1.347617568 0.1231838915E-03 1.365885505 0.1167428238E-03 1.384153442 0.1112913073E-03 1.402421380 0.1068233955E-03 1.420689317 0.1031134454E-03 1.438957254 0.9973425197E-04 1.457225192 0.9613358060E-04 1.475493129 0.9173688032E-04 1.493761067 0.8604068920E-04 1.512029004 0.7867730001E-04 1.530296941 0.6944834078E-04 1.548564879 0.5833334433E-04 1.566832816 0.4548053309E-04 1.585100753 0.3118535554E-04 1.603368691 0.1586050128E-04 1.621636628 0.4369966343E-10 1.639815148 0.7467044959E-05 1.657993667 0.1488244295E-04 1.676172187 0.2219514851E-04 1.694350707 0.2935531458E-04 1.712529226 0.3631488053E-04 1.730707746 0.4302814663E-04 1.748886266 0.4945233096E-04 1.767064785 0.5554810429E-04 1.785243305 0.6128009929E-04 1.803421824 0.6661738973E-04 1.821600344 0.7153393619E-04 1.839778864 0.7600899401E-04 1.857957383 0.8002747954E-04 1.876135903 0.8358028988E-04 1.894314422 0.8666457049E-04 1.912492942 0.8928392387E-04 1.930671462 0.9144855000E-04 1.948849981 0.9317530684E-04 1.967028501 0.9448767494E-04 1.985207021 0.9541560554E-04 2.003385540 0.9599522589E-04 2.021564060 0.9626836945E-04 2.039742579 0.9628189351E-04 2.057921099 0.9608674436E-04 2.076099619 0.9573673297E-04 2.094278138 0.9528699644E-04 2.112456658 0.9479214470E-04 2.130635178 0.9430413151E-04 2.148813697 0.9386994114E-04 2.166992217 0.9352924086E-04 2.185170736 0.9331220086E-04 2.203349256 0.9323770987E-04 2.221527776 0.9476465322E-04 2.239706295 0.9916688724E-04 2.257884815 0.1059822990E-03 2.276063335 0.1146233456E-03 2.294241854 0.1245124229E-03 2.312420374 0.1351493810E-03 2.330598893 0.1461260598E-03 2.348777413 0.1571158560E-03 2.366955933 0.1678564638E-03 2.385134452 0.1781334646E-03 2.403312972 0.1877667952E-03 2.421491492 0.1965999867E-03 2.439670011 0.2044916446E-03 2.457848531 0.2113090824E-03 2.476027050 0.2169250450E-03 2.494205570 0.2212199339E-03 2.512384090 0.2240930415E-03 2.530562609 0.2254846693E-03 2.548741129 0.2254040503E-03 2.566919649 0.2239487273E-03 2.585098168 0.2213010134E-03 2.603276688 0.2177019737E-03 2.621455207 0.2134183642E-03 2.639633727 0.2087175124E-03 2.657812247 0.2038544448E-03 2.675990766 0.1990675932E-03 2.694169286 0.1945777935E-03 2.712347805 0.1905868825E-03 2.730526325 0.1872741901E-03 2.748704845 0.1847907357E-03 2.766883364 0.1832519945E-03 2.785061884 0.1827307766E-03 2.802738302 0.1833678462E-03 2.820414720 0.1852167285E-03 2.838091138 0.1881019245E-03 2.855767556 0.1917654460E-03 2.873443974 0.1959076176E-03 2.891120392 0.2002282496E-03 2.908796810 0.2044613996E-03 2.926473228 0.2084007952E-03 2.944149646 0.2119157336E-03 2.961826064 0.2149584227E-03 2.979502482 0.2175637473E-03 2.997178900 0.2198419985E-03 3.014855318 0.2219647202E-03 3.032531736 0.2241438786E-03 3.050208154 0.2266052550E-03 3.067884572 0.2295582801E-03 3.085560990 0.2331660970E-03 3.103237408 0.2375207114E-03 3.120913826 0.2426278486E-03 3.138505173 0.2422780226E-03 3.156096520 0.2412302553E-03 3.173687868 0.2394896897E-03 3.191279215 0.2370649313E-03 3.208870562 0.2339681029E-03 3.226461909 0.2302149270E-03 3.244053256 0.2258248428E-03 3.261644603 0.2208211688E-03 3.279235950 0.2152313228E-03 3.296827297 0.2090871190E-03 3.314418644 0.2024251668E-03 3.332009992 0.1952874051E-03 3.349601339 0.1877218160E-03 3.367192686 0.1797833787E-03 3.384784033 0.1715353400E-03 3.402375380 0.1630508979E-03 3.419966727 0.1544154142E-03 3.437558074 0.1457292734E-03 3.455149421 0.1371114687E-03 3.472740768 0.1287038610E-03 3.490332115 0.1206757260E-03 3.507923463 0.1132275155E-03 3.525514810 0.1065915654E-03 3.543106157 0.1010258976E-03 3.560697504 0.9679621575E-04 3.578288851 0.9414299364E-04 3.595880198 0.9323770987E-04 0.000000000 0.4369966343E-10 0.1815415904E-01 0.1949397745E-04 0.3630831809E-01 0.3877023166E-04 0.5446247713E-01 0.5762116465E-04 0.7261663618E-01 0.7585898369E-04 0.9077079522E-01 0.9332448163E-04 0.1089249543 0.1098944486E-03 0.1270791133 0.1254872299E-03 0.1452332724 0.1400659423E-03 0.1633874314 0.1536388834E-03 0.1815415904 0.1662567560E-03 0.1996957495 0.1780064975E-03 0.2178499085 0.1890017939E-03 0.2360040676 0.1993707631E-03 0.2541582266 0.2092417772E-03 0.2723123857 0.2187288560E-03 0.2904665447 0.2279183693E-03 0.3086207037 0.2368587962E-03 0.3267748628 0.2455549376E-03 0.3449290218 0.2539673323E-03 0.3630831809 0.2620168347E-03 0.3812373399 0.2695936005E-03 0.3993914990 0.2765692375E-03 0.4175456580 0.2828106898E-03 0.4356998171 0.2881944726E-03 0.4538539761 0.2926200828E-03 0.4720081351 0.2960216580E-03 0.4901622942 0.2983771745E-03 0.5083164532 0.2997146218E-03 0.5264706123 0.3001146723E-03 0.5446247713 0.2997093949E-03 0.5627789304 0.2986766085E-03 0.5809330894 0.2972295996E-03 0.5990872485 0.2956022314E-03 0.6172414075 0.2940300332E-03 0.6353955665 0.2927286644E-03 0.6535497256 0.2918720802E-03 0.6717038846 0.2915734567E-03 0.6899718220 0.2921718228E-03 0.7082397594 0.2938416635E-03 0.7265076968 0.2962315946E-03 0.7447756341 0.2988305485E-03 0.7630435715 0.3010593122E-03 0.7813115089 0.3023670432E-03 0.7995794463 0.3023157608E-03 0.8178473836 0.3006418407E-03 0.8361153210 0.2972894671E-03 0.8543832584 0.2924152378E-03 0.8726511958 0.2863657948E-03 0.8909191331 0.2796340879E-03 0.9091870705 0.2728187891E-03 0.9274550079 0.2664089591E-03 0.9457229453 0.2644914452E-03 0.9639908826 0.2715619079E-03 0.9822588200 0.2787585899E-03 1.000526757 0.2857436724E-03 1.018794695 0.2921821331E-03 1.037062632 0.2977883863E-03 1.055330570 0.3023555564E-03 1.073598507 0.3057655762E-03 1.091866444 0.3079818959E-03 1.110134382 0.3090289487E-03 1.128402319 0.3089640462E-03 1.146670256 0.3078481909E-03 1.164938194 0.3057222115E-03 1.183206131 0.3025933900E-03 1.201474069 0.2984353574E-03 1.219742006 0.2932009432E-03 1.238009943 0.2868446435E-03 1.256277881 0.2793492200E-03 1.274545818 0.2707500541E-03 1.292813755 0.2611512271E-03 1.311081693 0.2507285392E-03 1.329349630 0.2397165416E-03 1.347617568 0.2283790913E-03 1.365885505 0.2169661611E-03 1.384153442 0.2056636590E-03 1.402421380 0.1945470687E-03 1.420689317 0.1835518523E-03 1.438957254 0.1724713637E-03 1.457225192 0.1609857975E-03 1.475493129 0.1487160901E-03 1.493761067 0.1352894610E-03 1.512029004 0.1204017562E-03 1.530296941 0.1038654166E-03 1.548564879 0.8563765910E-04 1.566832816 0.6582840253E-04 1.585100753 0.4469043025E-04 1.603368691 0.2259546411E-04 1.621636628 0.4369966343E-10 1.639815148 0.1951841901E-04 1.657993667 0.3894844965E-04 1.676172187 0.5820266705E-04 1.694350707 0.7719556138E-04 1.712529226 0.9584446544E-04 1.730707746 0.1140704463E-03 1.748886266 0.1317991495E-03 1.767064785 0.1489615833E-03 1.785243305 0.1654948328E-03 1.803421824 0.1813426907E-03 1.821600344 0.1964561953E-03 1.839778864 0.2107940638E-03 1.857957383 0.2243230109E-03 1.876135903 0.2370179435E-03 1.894314422 0.2488620210E-03 1.912492942 0.2598465760E-03 1.930671462 0.2699708859E-03 1.948849981 0.2792417938E-03 1.967028501 0.2876731759E-03 1.985207021 0.2952852553E-03 2.003385540 0.3021037706E-03 2.021564060 0.3081590062E-03 2.039742579 0.3134847012E-03 2.057921099 0.3181168578E-03 2.076099619 0.3220924770E-03 2.094278138 0.3254482536E-03 2.112456658 0.3282192722E-03 2.130635178 0.3304377447E-03 2.148813697 0.3321318372E-03 2.166992217 0.3333246322E-03 2.185170736 0.3340332673E-03 2.203349256 0.3342682919E-03 2.221527776 0.3341499762E-03 2.239706295 0.3337937916E-03 2.257884815 0.3331961748E-03 2.276063335 0.3323516851E-03 2.294241854 0.3312537529E-03 2.312420374 0.3298957358E-03 2.330598893 0.3282722933E-03 2.348777413 0.3263811055E-03 2.366955933 0.3242249714E-03 2.385134452 0.3218143380E-03 2.403312972 0.3191703004E-03 2.421491492 0.3163280610E-03 2.439670011 0.3133406466E-03 2.457848531 0.3102822410E-03 2.476027050 0.3072496067E-03 2.494205570 0.3043587526E-03 2.512384090 0.3017330302E-03 2.530562609 0.2994805578E-03 2.548741129 0.2976658831E-03 2.566919649 0.2962900897E-03 2.585098168 0.2952935865E-03 2.603276688 0.2945809947E-03 2.621455207 0.2940525195E-03 2.639633727 0.2936266008E-03 2.657812247 0.2932492665E-03 2.675990766 0.2928935446E-03 2.694169286 0.2925539217E-03 2.712347805 0.2922393497E-03 2.730526325 0.2919665727E-03 2.748704845 0.2917544807E-03 2.766883364 0.2916197002E-03 2.785061884 0.2915734567E-03 2.802738302 0.2918166565E-03 2.820414720 0.2925060755E-03 2.838091138 0.2935261823E-03 2.855767556 0.2947001494E-03 2.873443974 0.2958103915E-03 2.891120392 0.2966222544E-03 2.908796810 0.2969076694E-03 2.926473228 0.2964663455E-03 2.944149646 0.2951430150E-03 2.961826064 0.2928400630E-03 2.979502482 0.2895253943E-03 2.997178900 0.2852356232E-03 3.014855318 0.2800746851E-03 3.032531736 0.2742078668E-03 3.050208154 0.2678511363E-03 3.067884572 0.2612556580E-03 3.085560990 0.2546876372E-03 3.103237408 0.2484042942E-03 3.120913826 0.2426278486E-03 3.138505173 0.2444847879E-03 3.156096520 0.2486704879E-03 3.173687868 0.2536845903E-03 3.191279215 0.2589620235E-03 3.208870562 0.2642983423E-03 3.226461909 0.2696036479E-03 3.244053256 0.2748294220E-03 3.261644603 0.2799442719E-03 3.279235950 0.2849246669E-03 3.296827297 0.2897509768E-03 3.314418644 0.2944056378E-03 3.332009992 0.2988722695E-03 3.349601339 0.3031352530E-03 3.367192686 0.3071795495E-03 3.384784033 0.3109906507E-03 3.402375380 0.3145546028E-03 3.419966727 0.3178580739E-03 3.437558074 0.3208884427E-03 3.455149421 0.3236338992E-03 3.472740768 0.3260835481E-03 3.490332115 0.3282275095E-03 3.507923463 0.3300570133E-03 3.525514810 0.3315644856E-03 3.543106157 0.3327436234E-03 3.560697504 0.3335894574E-03 3.578288851 0.3340984022E-03 3.595880198 0.3342682919E-03 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/PHDLINES.OUT0000644000000000000000000000013213543334741024033 xustar0030 mtime=1569569249.594638774 30 atime=1569569249.593638774 30 ctime=1569569249.594638774 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PHDLINES.OUT0000644002504400250440000000106013543334741026077 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.2507012189E-03 0.000000000 0.5014024379E-03 0.6717038846 -0.2507012189E-03 0.6717038846 0.5014024379E-03 1.621636628 -0.2507012189E-03 1.621636628 0.5014024379E-03 2.203349256 -0.2507012189E-03 2.203349256 0.5014024379E-03 2.785061884 -0.2507012189E-03 2.785061884 0.5014024379E-03 3.120913826 -0.2507012189E-03 3.120913826 0.5014024379E-03 3.595880198 -0.2507012189E-03 3.595880198 0.5014024379E-03 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/PHDOS.OUT0000644000000000000000000000013013543334741023500 xustar0029 mtime=1569569249.60063877 30 atime=1569569249.598638771 29 ctime=1569569249.60063877 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PHDOS.OUT0000644002504400250440000004410413543334741025554 0ustar00dewhurstdewhurst00000000000000 -0.3676951211E-04 0.000000000 -0.3596058284E-04 0.000000000 -0.3515165358E-04 0.000000000 -0.3434272431E-04 0.000000000 -0.3353379504E-04 0.000000000 -0.3272486578E-04 0.000000000 -0.3191593651E-04 0.000000000 -0.3110700725E-04 0.000000000 -0.3029807798E-04 0.000000000 -0.2948914871E-04 0.000000000 -0.2868021945E-04 0.000000000 -0.2787129018E-04 0.000000000 -0.2706236091E-04 0.000000000 -0.2625343165E-04 0.000000000 -0.2544450238E-04 0.000000000 -0.2463557311E-04 0.000000000 -0.2382664385E-04 0.000000000 -0.2301771458E-04 0.000000000 -0.2220878531E-04 0.000000000 -0.2139985605E-04 0.000000000 -0.2059092678E-04 0.000000000 -0.1978199752E-04 0.000000000 -0.1897306825E-04 0.000000000 -0.1816413898E-04 0.000000000 -0.1735520972E-04 0.000000000 -0.1654628045E-04 0.000000000 -0.1573735118E-04 0.000000000 -0.1492842192E-04 0.000000000 -0.1411949265E-04 0.000000000 -0.1331056338E-04 0.000000000 -0.1250163412E-04 0.000000000 -0.1169270485E-04 0.000000000 -0.1088377558E-04 0.000000000 -0.1007484632E-04 0.000000000 -0.9265917052E-05 0.000000000 -0.8456987785E-05 0.000000000 -0.7648058519E-05 0.000000000 -0.6839129253E-05 0.000000000 -0.6030199986E-05 0.000000000 -0.5221270720E-05 0.000000000 -0.4412341453E-05 0.000000000 -0.3603412187E-05 0.000000000 -0.2794482920E-05 0.000000000 -0.1985553654E-05 0.000000000 -0.1176624388E-05 1.236202028 -0.3676951211E-06 1.236202028 0.4412341453E-06 1.236202028 0.1250163412E-05 0.000000000 0.2059092678E-05 0.000000000 0.2868021945E-05 0.000000000 0.3676951211E-05 4.944808114 0.4485880477E-05 7.417212170 0.5294809744E-05 7.417212170 0.6103739010E-05 2.472404057 0.6912668277E-05 2.472404057 0.7721597543E-05 4.944808114 0.8530526810E-05 19.77923245 0.9339456076E-05 19.77923245 0.1014838534E-04 22.25163651 0.1095731461E-04 17.30682840 0.1176624388E-04 26.37230994 0.1257517314E-04 31.31711805 0.1338410241E-04 46.15154239 0.1419303167E-04 35.43779148 0.1500196094E-04 50.27221582 0.1581089021E-04 47.79981177 0.1661981947E-04 51.92048519 0.1742874874E-04 56.86529331 0.1823767801E-04 64.28250548 0.1904660727E-04 93.95135416 0.1985553654E-04 71.69971765 0.2066446581E-04 74.17212170 0.2147339507E-04 71.69971765 0.2228232434E-04 98.89616227 0.2309125361E-04 120.3236641 0.2390018287E-04 140.1028966 0.2470911214E-04 125.2684722 0.2551804140E-04 111.2581826 0.2632697067E-04 128.5650110 0.2713589994E-04 153.2890515 0.2794482920E-04 187.9027083 0.2875375847E-04 151.6407822 0.2956268774E-04 156.5855903 0.3037161700E-04 181.3096308 0.3118054627E-04 215.0991529 0.3198947554E-04 222.5163651 0.3279840480E-04 195.3199205 0.3360733407E-04 192.8475164 0.3441626334E-04 244.7680016 0.3522519260E-04 273.6127156 0.3603412187E-04 313.1711805 0.3684305113E-04 276.0851197 0.3765198040E-04 259.6024260 0.3846090967E-04 301.6332949 0.3926983893E-04 331.3021436 0.4007876820E-04 390.6398410 0.4088769747E-04 336.2469517 0.4169662673E-04 363.4433964 0.4250555600E-04 361.7951270 0.4331448527E-04 423.6052284 0.4412341453E-04 396.4087838 0.4493234380E-04 400.5294572 0.4574127307E-04 412.0673428 0.4655020233E-04 493.6566767 0.4735913160E-04 506.0186970 0.4816806086E-04 489.5360033 0.4897699013E-04 506.8428317 0.4978591940E-04 558.7633168 0.5059484866E-04 588.4321655 0.5140377793E-04 593.3769736 0.5221270720E-04 573.5977412 0.5302163646E-04 630.4630345 0.5383056573E-04 630.4630345 0.5463949500E-04 677.4387116 0.5544842426E-04 676.6145769 0.5625735353E-04 709.5799643 0.5706628280E-04 736.7764089 0.5787521206E-04 806.8278572 0.5868414133E-04 788.6968941 0.5949307059E-04 843.0897834 0.6030199986E-04 843.0897834 0.6111092913E-04 914.7895010 0.6191985839E-04 919.7343091 0.6272878766E-04 919.7343091 0.6353771693E-04 988.1374880 0.6434664619E-04 1012.861529 0.6515557546E-04 1059.837206 0.6596450473E-04 1050.771724 0.6677343399E-04 1147.195482 0.6758236326E-04 1174.391927 0.6839129253E-04 1194.171159 0.6920022179E-04 1239.498567 0.7000915106E-04 1293.891456 0.7081808032E-04 1352.405019 0.7162700959E-04 1393.611753 0.7243593886E-04 1462.839067 0.7324486812E-04 1515.583687 0.7405379739E-04 1466.135606 0.7486272666E-04 1614.479849 0.7567165592E-04 1696.069183 0.7648058519E-04 1804.030827 0.7728951446E-04 1806.503231 0.7809844372E-04 1897.982181 0.7890737299E-04 2000.174882 0.7971630226E-04 2148.519125 0.8052523152E-04 2326.532217 0.8133416079E-04 2744.368503 0.8214309005E-04 3124.294593 0.8295201932E-04 3709.430220 0.8376094859E-04 4010.239380 0.8456987785E-04 4369.562103 0.8537880712E-04 4517.906347 0.8618773639E-04 4600.319815 0.8699666565E-04 4635.757607 0.8780559492E-04 4621.747317 0.8861452419E-04 4793.991466 0.8942345345E-04 4956.345999 0.9023238272E-04 5228.310446 0.9104131199E-04 5411.268346 0.9185024125E-04 5648.619135 0.9265917052E-04 6159.582640 0.9346809978E-04 6605.439505 0.9427702905E-04 7122.996088 0.9508595832E-04 7368.588224 0.9589488758E-04 7692.473155 0.9670381685E-04 7736.152294 0.9751274612E-04 7807.852011 0.9832167538E-04 7937.241157 0.9913060465E-04 8080.640592 0.9993953392E-04 8033.664915 0.1007484632E-03 8074.871650 0.1015573924E-03 8045.202801 0.1023663217E-03 8416.063409 0.1031752510E-03 8401.228985 0.1039841802E-03 8440.787450 0.1047931095E-03 8331.177537 0.1056020388E-03 8375.680810 0.1064109680E-03 8556.166306 0.1072198973E-03 8717.696704 0.1080288266E-03 8716.872570 0.1088377558E-03 8813.296328 0.1096466851E-03 8850.382389 0.1104556144E-03 9086.084909 0.1112645436E-03 8910.544221 0.1120734729E-03 8930.323453 0.1128824022E-03 9142.950202 0.1136913314E-03 9290.470311 0.1145002607E-03 9330.028776 0.1153091900E-03 9156.960492 0.1161181192E-03 9459.417921 0.1169270485E-03 9501.448790 0.1177359778E-03 9538.534851 0.1185449070E-03 9543.479659 0.1193538363E-03 9877.254207 0.1201627656E-03 10207.73222 0.1209716948E-03 10054.44316 0.1217806241E-03 10004.17095 0.1225895534E-03 9775.885641 0.1233984826E-03 10265.42164 0.1242074119E-03 10271.19059 0.1250163412E-03 10631.33744 0.1258252704E-03 10539.85849 0.1266341997E-03 10714.57505 0.1274431290E-03 10776.38515 0.1282520582E-03 10845.61246 0.1290609875E-03 10942.03622 0.1298699168E-03 10929.67420 0.1306788460E-03 11330.20366 0.1314877753E-03 11329.37952 0.1322967046E-03 11650.79205 0.1331056338E-03 11536.23733 0.1339145631E-03 11898.85659 0.1347234924E-03 12022.47679 0.1355324216E-03 12181.53479 0.1363413509E-03 12104.06613 0.1371502802E-03 12393.33740 0.1379592094E-03 12595.25040 0.1387681387E-03 12875.45619 0.1395770680E-03 12965.28687 0.1403859972E-03 13158.95853 0.1411949265E-03 13354.27845 0.1420038558E-03 13426.80230 0.1428127850E-03 13613.88087 0.1436217143E-03 13984.74148 0.1444306436E-03 14363.84344 0.1452395728E-03 14658.88365 0.1460485021E-03 14817.11751 0.1468574314E-03 15089.90609 0.1476663606E-03 15505.26998 0.1484752899E-03 15956.07165 0.1492842192E-03 16317.04264 0.1500931484E-03 16941.73673 0.1509020777E-03 17343.91446 0.1517110070E-03 17807.90229 0.1525199362E-03 17976.84990 0.1533288655E-03 18182.05943 0.1541377948E-03 18308.15204 0.1549467240E-03 18473.80311 0.1557556533E-03 18735.87794 0.1565645826E-03 19025.14922 0.1573735118E-03 19772.63938 0.1581824411E-03 20482.21934 0.1589913704E-03 21078.06872 0.1598002996E-03 21126.69267 0.1606092289E-03 21322.01259 0.1614181582E-03 21376.40548 0.1622270874E-03 20857.20062 0.1630360167E-03 19895.43545 0.1638449460E-03 19247.66558 0.1646538752E-03 19195.74510 0.1654628045E-03 18748.23996 0.1662717338E-03 18608.13707 0.1670806630E-03 18140.85270 0.1678895923E-03 18563.63379 0.1686985216E-03 18261.17636 0.1695074508E-03 18229.03511 0.1703163801E-03 17969.43269 0.1711253094E-03 18140.02856 0.1719342386E-03 18182.05943 0.1727431679E-03 17974.37749 0.1735520972E-03 17868.06412 0.1743610264E-03 17791.41959 0.1751699557E-03 17814.49536 0.1759788850E-03 17787.29892 0.1767878142E-03 18113.65626 0.1775967435E-03 18229.03511 0.1784056728E-03 17873.00893 0.1792146020E-03 17694.99583 0.1800235313E-03 18177.11463 0.1808324606E-03 18607.31293 0.1816413898E-03 18562.80966 0.1824503191E-03 18031.24279 0.1832592484E-03 17596.09967 0.1840681776E-03 17494.73111 0.1848771069E-03 17013.43645 0.1856860362E-03 16699.44113 0.1864949654E-03 16106.06416 0.1873038947E-03 16164.57772 0.1881128240E-03 16132.43647 0.1889217532E-03 15993.98184 0.1897306825E-03 15679.98653 0.1905396118E-03 15363.51881 0.1913485410E-03 15294.29150 0.1921574703E-03 15430.27372 0.1929663996E-03 15299.23630 0.1937753288E-03 14906.12406 0.1945842581E-03 14459.44306 0.1953931874E-03 14219.61987 0.1962021166E-03 14039.13437 0.1970110459E-03 13615.52914 0.1978199752E-03 13350.98191 0.1986289044E-03 13165.55160 0.1994378337E-03 12994.95572 0.2002467630E-03 12990.01091 0.2010556922E-03 12643.87435 0.2018646215E-03 12485.64049 0.2026735508E-03 12250.76210 0.2034824800E-03 12381.79952 0.2042914093E-03 12246.64143 0.2051003386E-03 12194.72094 0.2059092678E-03 11796.66389 0.2067181971E-03 11919.45996 0.2075271264E-03 11736.50206 0.2083360556E-03 11637.60590 0.2091449849E-03 11420.03434 0.2099539141E-03 11251.91086 0.2107628434E-03 11286.52452 0.2115717727E-03 11424.97915 0.2123807019E-03 11229.65923 0.2131896312E-03 11120.87345 0.2139985605E-03 10926.37766 0.2148074897E-03 10802.75746 0.2156164190E-03 10745.89217 0.2164253483E-03 10656.06148 0.2172342775E-03 10754.95765 0.2180432068E-03 10801.93332 0.2188521361E-03 10532.44128 0.2196610653E-03 10465.68637 0.2204699946E-03 10339.59377 0.2212789239E-03 10290.14568 0.2220878531E-03 10262.94924 0.2228967824E-03 10112.13259 0.2237057117E-03 10147.57038 0.2245146409E-03 10150.04279 0.2253235702E-03 10001.69854 0.2261324995E-03 9790.720065 0.2269414287E-03 9634.958609 0.2277503580E-03 9723.965156 0.2285592873E-03 9857.474975 0.2293682165E-03 9973.677965 0.2301771458E-03 10015.70883 0.2309860751E-03 9919.285076 0.2317950043E-03 9751.161600 0.2326039336E-03 9869.836995 0.2334128629E-03 9742.096119 0.2342217921E-03 9749.513331 0.2350307214E-03 9648.144764 0.2358396507E-03 9573.148508 0.2366485799E-03 9503.921194 0.2374575092E-03 9098.446929 0.2382664385E-03 9115.753758 0.2390753677E-03 8880.875372 0.2398842970E-03 8851.206523 0.2406932263E-03 8655.886603 0.2415021555E-03 8507.542360 0.2423110848E-03 8199.315987 0.2431200141E-03 7850.707015 0.2439289433E-03 7536.711700 0.2447378726E-03 7160.082149 0.2455468019E-03 6727.411439 0.2463557311E-03 6499.950265 0.2471646604E-03 6218.096203 0.2479735897E-03 6064.807151 0.2487825189E-03 5689.001735 0.2495914482E-03 5548.074704 0.2504003775E-03 5362.644399 0.2512093067E-03 5274.461988 0.2520182360E-03 5111.283320 0.2528271653E-03 4975.301097 0.2536360945E-03 4793.991466 0.2544450238E-03 4653.064435 0.2552539531E-03 4544.278656 0.2560628823E-03 4376.155181 0.2568718116E-03 4519.554616 0.2576807409E-03 4450.327302 0.2584896701E-03 4395.934413 0.2592985994E-03 4174.242183 0.2601075287E-03 4196.493819 0.2609164579E-03 4283.027961 0.2617253872E-03 4353.903544 0.2625343165E-03 4509.665000 0.2633432457E-03 4502.247787 0.2641521750E-03 4551.695869 0.2649611043E-03 4489.885767 0.2657700335E-03 4707.457324 0.2665789628E-03 4888.766955 0.2673878921E-03 5163.203805 0.2681968213E-03 5309.075645 0.2690057506E-03 5412.092480 0.2698146799E-03 5389.840844 0.2706236091E-03 5567.853936 0.2714325384E-03 5958.493777 0.2722414677E-03 6307.102749 0.2730503969E-03 6561.760367 0.2738593262E-03 6584.836138 0.2746682555E-03 6794.990483 0.2754771847E-03 7324.084951 0.2762861140E-03 7815.269224 0.2770950433E-03 8126.792135 0.2779039725E-03 8317.167247 0.2787129018E-03 8559.462845 0.2795218311E-03 9019.329999 0.2803307603E-03 9566.555431 0.2811396896E-03 10046.20182 0.2819486189E-03 10426.95204 0.2827575481E-03 10782.15409 0.2835664774E-03 11474.42723 0.2843754067E-03 12248.28970 0.2851843359E-03 12715.57406 0.2859932652E-03 13368.28874 0.2868021945E-03 14056.44120 0.2876111237E-03 15401.42900 0.2884200530E-03 16494.23160 0.2892289823E-03 19786.64967 0.2900379115E-03 22788.14819 0.2908468408E-03 25308.76413 0.2916557701E-03 25605.45261 0.2924646993E-03 25846.09994 0.2932736286E-03 26010.51481 0.2940825579E-03 25795.41566 0.2948914871E-03 25230.88340 0.2957004164E-03 24795.74029 0.2965093457E-03 24283.95265 0.2973182749E-03 23670.79644 0.2981272042E-03 22559.03875 0.2989361335E-03 21592.32876 0.2997450627E-03 20269.59259 0.3005539920E-03 19455.34752 0.3013629213E-03 18439.18946 0.3021718505E-03 18075.74606 0.3029807798E-03 17559.83775 0.3037897091E-03 16986.24001 0.3045986383E-03 16568.40372 0.3054075676E-03 16164.57772 0.3062164969E-03 15900.03049 0.3070254261E-03 15276.98467 0.3078343554E-03 14802.28309 0.3086432847E-03 14249.28871 0.3094522139E-03 13213.35141 0.3102611432E-03 12296.08951 0.3110700725E-03 11610.40945 0.3118790017E-03 11073.89777 0.3126879310E-03 10705.50957 0.3134968603E-03 10273.66299 0.3143057895E-03 10085.76028 0.3151147188E-03 9603.641491 0.3159236481E-03 9278.932425 0.3167325773E-03 9046.526444 0.3175415066E-03 8856.975466 0.3183504359E-03 8597.373040 0.3191593651E-03 8320.463786 0.3199682944E-03 8285.025994 0.3207772236E-03 8000.699528 0.3215861529E-03 7879.551729 0.3223950822E-03 7484.791215 0.3232040114E-03 7420.508709 0.3240129407E-03 7173.268304 0.3248218700E-03 7125.468492 0.3256307992E-03 6953.224342 0.3264397285E-03 6760.376826 0.3272486578E-03 6644.173835 0.3280575870E-03 6396.109295 0.3288665163E-03 6312.047557 0.3296754456E-03 5998.876377 0.3304843748E-03 5969.207528 0.3312933041E-03 5833.225305 0.3321022334E-03 5746.691163 0.3329111626E-03 5571.150475 0.3337200919E-03 5253.034486 0.3345290212E-03 4789.046658 0.3353379504E-03 4313.520944 0.3361468797E-03 3733.330126 0.3369558090E-03 3275.935375 0.3377647382E-03 2777.333891 0.3385736675E-03 2444.383478 0.3393825968E-03 2222.691247 0.3401915260E-03 1945.781993 0.3410004553E-03 1740.572456 0.3418093846E-03 1451.301181 0.3426183138E-03 1209.005584 0.3434272431E-03 781.2796820 0.3442361724E-03 373.3330126 0.3450451016E-03 84.06173793 0.3458540309E-03 0.000000000 0.3466629602E-03 0.000000000 0.3474718894E-03 0.000000000 0.3482808187E-03 0.000000000 0.3490897480E-03 0.000000000 0.3498986772E-03 0.000000000 0.3507076065E-03 0.000000000 0.3515165358E-03 0.000000000 0.3523254650E-03 0.000000000 0.3531343943E-03 0.000000000 0.3539433236E-03 0.000000000 0.3547522528E-03 0.000000000 0.3555611821E-03 0.000000000 0.3563701114E-03 0.000000000 0.3571790406E-03 0.000000000 0.3579879699E-03 0.000000000 0.3587968992E-03 0.000000000 0.3596058284E-03 0.000000000 0.3604147577E-03 0.000000000 0.3612236870E-03 0.000000000 0.3620326162E-03 0.000000000 0.3628415455E-03 0.000000000 0.3636504748E-03 0.000000000 0.3644594040E-03 0.000000000 0.3652683333E-03 0.000000000 0.3660772626E-03 0.000000000 0.3668861918E-03 0.000000000 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/PHLWIDTH.OUT0000644000000000000000000000013213543334741024050 xustar0030 mtime=1569569249.606638766 30 atime=1569569249.603638768 30 ctime=1569569249.606638766 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PHLWIDTH.OUT0000644002504400250440000005331213543334741026123 0ustar00dewhurstdewhurst00000000000000 0.000000000 0.5290416243E-12 0.1815415904E-01 0.2978788816E-10 0.3630831809E-01 0.3728506999E-09 0.5446247713E-01 0.1704853346E-08 0.7261663618E-01 0.4877086012E-08 0.9077079522E-01 0.1059684951E-07 0.1089249543 0.1913157002E-07 0.1270791133 0.3013078114E-07 0.1452332724 0.4262365003E-07 0.1633874314 0.5519640890E-07 0.1815415904 0.6630010576E-07 0.1996957495 0.7460122216E-07 0.2178499085 0.7927735877E-07 0.2360040676 0.8018003602E-07 0.2541582266 0.7782994189E-07 0.2723123857 0.7326278030E-07 0.2904665447 0.6778962830E-07 0.3086207037 0.6276024235E-07 0.3267748628 0.5941361576E-07 0.3449290218 0.5886863367E-07 0.3630831809 0.6225845056E-07 0.3812373399 0.7095997733E-07 0.3993914990 0.8683016104E-07 0.4175456580 0.1123454840E-06 0.4356998171 0.1505553598E-06 0.4538539761 0.2048009044E-06 0.4720081351 0.2782079765E-06 0.4901622942 0.3730233458E-06 0.5083164532 0.4899108095E-06 0.5264706123 0.6273485914E-06 0.5446247713 0.7812645298E-06 0.5627789304 0.9450121104E-06 0.5809330894 0.1109734998E-05 0.5990872485 0.1265101257E-05 0.6172414075 0.1400323506E-05 0.6353955665 0.1505329553E-05 0.6535497256 0.1571918573E-05 0.6717038846 0.1594735234E-05 0.6899718220 0.1547262429E-05 0.7082397594 0.1414104030E-05 0.7265076968 0.1220079341E-05 0.7447756341 0.9979605118E-06 0.7630435715 0.7793805906E-06 0.7813115089 0.5876965695E-06 0.7995794463 0.4349200496E-06 0.8178473836 0.3227604406E-06 0.8361153210 0.2461710552E-06 0.8543832584 0.1972853668E-06 0.8726511958 0.1682452589E-06 0.8909191331 0.1525184627E-06 0.9091870705 0.1451472049E-06 0.9274550079 0.1426000855E-06 0.9457229453 0.1426380325E-06 0.9639908826 0.1442357065E-06 0.9822588200 0.1474229114E-06 1.000526757 0.1529620777E-06 1.018794695 0.1618991572E-06 1.037062632 0.1750688844E-06 1.055330570 0.1926010211E-06 1.073598507 0.2134683072E-06 1.091866444 0.2352031954E-06 1.110134382 0.2540137150E-06 1.128402319 0.2654918670E-06 1.146670256 0.2658535634E-06 1.164938194 0.2532923043E-06 1.183206131 0.2288233750E-06 1.201474069 0.1961418962E-06 1.219742006 0.1604864241E-06 1.238009943 0.1270189798E-06 1.256277881 0.9946971525E-07 1.274545818 0.7959377468E-07 1.292813755 0.6748557925E-07 1.311081693 0.6232510384E-07 1.329349630 0.6298706751E-07 1.347617568 0.6818449133E-07 1.365885505 0.7623873176E-07 1.384153442 0.8486359720E-07 1.402421380 0.9028946620E-07 1.420689317 0.9201616894E-07 1.438957254 0.8846164910E-07 1.457225192 0.7794004514E-07 1.475493129 0.6269492873E-07 1.493761067 0.4557892881E-07 1.512029004 0.2944154295E-07 1.530296941 0.1644738087E-07 1.548564879 0.7585241762E-08 1.566832816 0.2643466086E-08 1.585100753 0.5725370481E-09 1.603368691 0.4393785056E-10 1.621636628 0.5290416243E-12 1.639815148 0.9984275847E-11 1.657993667 0.1079003572E-09 1.676172187 0.4930251722E-09 1.694350707 0.1464893613E-08 1.712529226 0.3380632376E-08 1.730707746 0.6602624936E-08 1.748886266 0.1144384717E-07 1.767064785 0.1811794290E-07 1.785243305 0.2670043610E-07 1.803421824 0.3710597643E-07 1.821600344 0.4908440231E-07 1.839778864 0.6223597681E-07 1.857957383 0.7604373854E-07 1.876135903 0.8991883558E-07 1.894314422 0.1032532419E-06 1.912492942 0.1154735681E-06 1.930671462 0.1260898347E-06 1.948849981 0.1347340125E-06 1.967028501 0.1411846960E-06 1.985207021 0.1453762037E-06 2.003385540 0.1473924166E-06 2.021564060 0.1474474849E-06 2.039742579 0.1458569080E-06 2.057921099 0.1430032694E-06 2.076099619 0.1393010102E-06 2.094278138 0.1351641045E-06 2.112456658 0.1309794797E-06 2.130635178 0.1270877152E-06 2.148813697 0.1237711879E-06 2.166992217 0.1212486393E-06 2.185170736 0.1196743162E-06 2.203349256 0.1191394887E-06 2.221527776 0.1178332358E-06 2.239706295 0.1140761749E-06 2.257884815 0.1083288565E-06 2.276063335 0.1012829754E-06 2.294241854 0.9376701794E-07 2.312420374 0.8664883051E-07 2.330598893 0.8076047772E-07 2.348777413 0.7686651026E-07 2.366955933 0.7568675277E-07 2.385134452 0.7797032089E-07 2.403312972 0.8460107426E-07 2.421491492 0.9669912311E-07 2.439670011 0.1117045343E-06 2.457848531 0.1302614756E-06 2.476027050 0.1560248004E-06 2.494205570 0.1904814737E-06 2.512384090 0.2351730010E-06 2.530562609 0.2915401672E-06 2.548741129 0.3607271001E-06 2.566919649 0.4433644089E-06 2.585098168 0.5393574678E-06 2.603276688 0.6477090848E-06 2.621455207 0.7664050784E-06 2.639633727 0.8923864859E-06 2.657812247 0.1021623643E-05 2.675990766 0.1149296131E-05 2.694169286 0.1270069980E-05 2.712347805 0.1378451175E-05 2.730526325 0.1469184075E-05 2.748704845 0.1537656337E-05 2.766883364 0.1580269321E-05 2.785061884 0.1594735234E-05 2.802738302 0.1567544308E-05 2.820414720 0.1489365187E-05 2.838091138 0.1369685321E-05 2.855767556 0.1222198453E-05 2.873443974 0.1062237708E-05 2.891120392 0.9041958379E-06 2.908796810 0.7595388886E-06 2.926473228 0.6357807437E-06 2.944149646 0.5323552096E-06 2.961826064 0.4354376668E-06 2.979502482 0.3587073608E-06 2.997178900 0.3000716179E-06 3.014855318 0.2567114828E-06 3.032531736 0.2256639805E-06 3.050208154 0.2041899393E-06 3.067884572 0.1899611050E-06 3.085560990 0.1811344252E-06 3.103237408 0.1763774038E-06 3.120913826 0.1748821027E-06 3.138505173 0.1738758331E-06 3.156096520 0.1709793351E-06 3.173687868 0.1665215617E-06 3.191279215 0.1609477729E-06 3.208870562 0.1547244053E-06 3.226461909 0.1482722327E-06 3.244053256 0.1419341196E-06 3.261644603 0.1359681493E-06 3.279235950 0.1305544783E-06 3.296827297 0.1258075553E-06 3.314418644 0.1217890757E-06 3.332009992 0.1185195777E-06 3.349601339 0.1159879733E-06 3.367192686 0.1141589910E-06 3.384784033 0.1129788149E-06 3.402375380 0.1123793298E-06 3.419966727 0.1122814101E-06 3.437558074 0.1125976708E-06 3.455149421 0.1132350296E-06 3.472740768 0.1140973481E-06 3.490332115 0.1150883071E-06 3.507923463 0.1161145626E-06 3.525514810 0.1170891206E-06 3.543106157 0.1179347797E-06 3.560697504 0.1185874270E-06 3.578288851 0.1189989446E-06 3.595880198 0.1191394887E-06 0.000000000 0.5290416243E-12 0.1815415904E-01 0.2978788816E-10 0.3630831809E-01 0.3728506999E-09 0.5446247713E-01 0.1704853346E-08 0.7261663618E-01 0.4877086012E-08 0.9077079522E-01 0.1059684951E-07 0.1089249543 0.1913157002E-07 0.1270791133 0.3013078114E-07 0.1452332724 0.4262365003E-07 0.1633874314 0.5519640890E-07 0.1815415904 0.6630010576E-07 0.1996957495 0.7460122216E-07 0.2178499085 0.7927735877E-07 0.2360040676 0.8018003602E-07 0.2541582266 0.7782994189E-07 0.2723123857 0.7326278030E-07 0.2904665447 0.6778962830E-07 0.3086207037 0.6276024235E-07 0.3267748628 0.5941361576E-07 0.3449290218 0.5886863367E-07 0.3630831809 0.6225845056E-07 0.3812373399 0.7095997733E-07 0.3993914990 0.8683016104E-07 0.4175456580 0.1123454840E-06 0.4356998171 0.1505553598E-06 0.4538539761 0.2048009044E-06 0.4720081351 0.2782079765E-06 0.4901622942 0.3730233458E-06 0.5083164532 0.4899108095E-06 0.5264706123 0.6273485914E-06 0.5446247713 0.7812645298E-06 0.5627789304 0.9450121104E-06 0.5809330894 0.1109734998E-05 0.5990872485 0.1265101257E-05 0.6172414075 0.1400323506E-05 0.6353955665 0.1505329553E-05 0.6535497256 0.1571918573E-05 0.6717038846 0.1594735234E-05 0.6899718220 0.1548691669E-05 0.7082397594 0.1419718463E-05 0.7265076968 0.1232360221E-05 0.7447756341 0.1019024770E-05 0.7630435715 0.8109911985E-06 0.7813115089 0.6313750607E-06 0.7995794463 0.4921783087E-06 0.8178473836 0.3954746128E-06 0.8361153210 0.3370390980E-06 0.8543832584 0.3101190216E-06 0.8726511958 0.3076895761E-06 0.8909191331 0.3229123557E-06 0.9091870705 0.3486895954E-06 0.9274550079 0.3797699817E-06 0.9457229453 0.4131131737E-06 0.9639908826 0.4457406495E-06 0.9822588200 0.4521825500E-06 1.000526757 0.4212629751E-06 1.018794695 0.3906904434E-06 1.037062632 0.3637547193E-06 1.055330570 0.3427155231E-06 1.073598507 0.3282282764E-06 1.091866444 0.3192558221E-06 1.110134382 0.3133092272E-06 1.128402319 0.3069591780E-06 1.146670256 0.2966316529E-06 1.164938194 0.2796048865E-06 1.183206131 0.2549170024E-06 1.201474069 0.2237808825E-06 1.219742006 0.1892463055E-06 1.238009943 0.1552086895E-06 1.256277881 0.1252105910E-06 1.274545818 0.1015738158E-06 1.292813755 0.8516907639E-07 1.311081693 0.7573755029E-07 1.329349630 0.7239264118E-07 1.347617568 0.7392930745E-07 1.365885505 0.7882016846E-07 1.384153442 0.8507753552E-07 1.402421380 0.9133168116E-07 1.420689317 0.9309920350E-07 1.438957254 0.8862279675E-07 1.457225192 0.7910936637E-07 1.475493129 0.6497908976E-07 1.493761067 0.4833730639E-07 1.512029004 0.3196061426E-07 1.530296941 0.1825622810E-07 1.548564879 0.8587967217E-08 1.566832816 0.3041303217E-08 1.585100753 0.6654594928E-09 1.603368691 0.5082743795E-10 1.621636628 0.5290416243E-12 1.639815148 0.9984275847E-11 1.657993667 0.1079003572E-09 1.676172187 0.4930251722E-09 1.694350707 0.1464893613E-08 1.712529226 0.3380632376E-08 1.730707746 0.6602624936E-08 1.748886266 0.1144384717E-07 1.767064785 0.1811794290E-07 1.785243305 0.2670043610E-07 1.803421824 0.3710597643E-07 1.821600344 0.4908440231E-07 1.839778864 0.6223597681E-07 1.857957383 0.7604373854E-07 1.876135903 0.8991883558E-07 1.894314422 0.1032532419E-06 1.912492942 0.1154735681E-06 1.930671462 0.1260898347E-06 1.948849981 0.1347340125E-06 1.967028501 0.1411846960E-06 1.985207021 0.1453762037E-06 2.003385540 0.1473924166E-06 2.021564060 0.1474474849E-06 2.039742579 0.1458569080E-06 2.057921099 0.1430032694E-06 2.076099619 0.1393010102E-06 2.094278138 0.1351641045E-06 2.112456658 0.1309794797E-06 2.130635178 0.1270877152E-06 2.148813697 0.1237711879E-06 2.166992217 0.1212486393E-06 2.185170736 0.1196743162E-06 2.203349256 0.1191394887E-06 2.221527776 0.1182287293E-06 2.239706295 0.1155952128E-06 2.257884815 0.1115231962E-06 2.276063335 0.1064489229E-06 2.294241854 0.1009128611E-06 2.312420374 0.9550814052E-07 2.330598893 0.9083676600E-07 2.348777413 0.8748392038E-07 2.366955933 0.8601714319E-07 2.385134452 0.8701193326E-07 2.403312972 0.9109926785E-07 2.421491492 0.9902473425E-07 2.439670011 0.1156720352E-06 2.457848531 0.1431678782E-06 2.476027050 0.1808971076E-06 2.494205570 0.2303303136E-06 2.512384090 0.2923468522E-06 2.530562609 0.3669792834E-06 2.548741129 0.4533956978E-06 2.566919649 0.5501233772E-06 2.585098168 0.6553337383E-06 2.603276688 0.7669870775E-06 2.621455207 0.8827993136E-06 2.639633727 0.1000137646E-05 2.657812247 0.1115960446E-05 2.675990766 0.1226853412E-05 2.694169286 0.1329160952E-05 2.712347805 0.1419188076E-05 2.730526325 0.1493441696E-05 2.748704845 0.1548880336E-05 2.766883364 0.1583143442E-05 2.785061884 0.1594735234E-05 2.802738302 0.1570240848E-05 2.820414720 0.1499334649E-05 2.838091138 0.1389294264E-05 2.855767556 0.1250847217E-05 2.873443974 0.1096417551E-05 2.891120392 0.9382651622E-06 2.908796810 0.7869031744E-06 2.926473228 0.6500688870E-06 2.944149646 0.5364631976E-06 2.961826064 0.4618965011E-06 2.979502482 0.4102532891E-06 2.997178900 0.3786124965E-06 3.014855318 0.3636913434E-06 3.032531736 0.3622059532E-06 3.050208154 0.3709746323E-06 3.067884572 0.3869571938E-06 3.085560990 0.4073932123E-06 3.103237408 0.4300966901E-06 3.120913826 0.4538486565E-06 3.138505173 0.4523534284E-06 3.156096520 0.4479026507E-06 3.173687868 0.4405997793E-06 3.191279215 0.4306130878E-06 3.208870562 0.4181696446E-06 3.226461909 0.4035472810E-06 3.244053256 0.3870649287E-06 3.261644603 0.3690717726E-06 3.279235950 0.3499357210E-06 3.296827297 0.3300317139E-06 3.314418644 0.3097303903E-06 3.332009992 0.2893876055E-06 3.349601339 0.2693352357E-06 3.367192686 0.2498736284E-06 3.384784033 0.2312659685E-06 3.402375380 0.2137347189E-06 3.419966727 0.1974601851E-06 3.437558074 0.1825811372E-06 3.455149421 0.1691973173E-06 3.472740768 0.1573735612E-06 3.490332115 0.1471451830E-06 3.507923463 0.1385242145E-06 3.525514810 0.1315060505E-06 3.543106157 0.1260760442E-06 3.560697504 0.1222156119E-06 3.578288851 0.1199074443E-06 3.595880198 0.1191394887E-06 0.000000000 0.5290416243E-12 0.1815415904E-01 0.4386461697E-10 0.3630831809E-01 0.5827356268E-09 0.5446247713E-01 0.2784369683E-08 0.7261663618E-01 0.8400346379E-08 0.9077079522E-01 0.1949147714E-07 0.1089249543 0.3807765056E-07 0.1270791133 0.6575406806E-07 0.1452332724 0.1033304936E-06 0.1633874314 0.1505599224E-06 0.1815415904 0.2060213869E-06 0.1996957495 0.2672039909E-06 0.2178499085 0.3308053212E-06 0.2360040676 0.3932124823E-06 0.2541582266 0.4510890275E-06 0.2723123857 0.5019598676E-06 0.2904665447 0.5446811449E-06 0.3086207037 0.5797086924E-06 0.3267748628 0.6091322889E-06 0.3449290218 0.6365078676E-06 0.3630831809 0.6665735912E-06 0.3812373399 0.7049563003E-06 0.3993914990 0.7579497519E-06 0.4175456580 0.8323791105E-06 0.4356998171 0.9354791245E-06 0.4538539761 0.1074640855E-05 0.4720081351 0.1256859722E-05 0.4901622942 0.1487769527E-05 0.5083164532 0.1770272363E-05 0.5264706123 0.2102943993E-05 0.5446247713 0.2478556398E-05 0.5627789304 0.2883154074E-05 0.5809330894 0.3296100843E-05 0.5990872485 0.3691362400E-05 0.6172414075 0.4040030383E-05 0.6353955665 0.4313787866E-05 0.6535497256 0.4488747082E-05 0.6717038846 0.4548938379E-05 0.6899718220 0.4427389382E-05 0.7082397594 0.4085193105E-05 0.7265076968 0.3582782030E-05 0.7447756341 0.3000717734E-05 0.7630435715 0.2418137597E-05 0.7813115089 0.1895460125E-05 0.7995794463 0.1466368503E-05 0.8178473836 0.1139391157E-05 0.8361153210 0.9055623576E-06 0.8543832584 0.7474128406E-06 0.8726511958 0.6458476872E-06 0.8909191331 0.5838420763E-06 0.9091870705 0.5477296689E-06 0.9274550079 0.5247272973E-06 0.9457229453 0.5039732049E-06 0.9639908826 0.4802718441E-06 0.9822588200 0.4766169574E-06 1.000526757 0.5065564807E-06 1.018794695 0.5375564138E-06 1.037062632 0.5718033898E-06 1.055330570 0.6106559975E-06 1.073598507 0.6538361053E-06 1.091866444 0.6990001045E-06 1.110134382 0.7418432493E-06 1.128402319 0.7768364671E-06 1.146670256 0.7985205436E-06 1.164938194 0.8030201304E-06 1.183206131 0.7892487674E-06 1.201474069 0.7593210322E-06 1.219742006 0.7179935776E-06 1.238009943 0.6713655992E-06 1.256277881 0.6253458849E-06 1.274545818 0.5843937778E-06 1.292813755 0.5508099053E-06 1.311081693 0.5245753231E-06 1.329349630 0.5035921850E-06 1.347617568 0.4842053389E-06 1.365885505 0.4619763698E-06 1.384153442 0.4326954929E-06 1.402421380 0.3934997563E-06 1.420689317 0.3438022988E-06 1.438957254 0.2856770052E-06 1.457225192 0.2234780153E-06 1.475493129 0.1627611427E-06 1.493761067 0.1088623384E-06 1.512029004 0.6561971002E-07 1.530296941 0.3463897826E-07 1.548564879 0.1526079753E-07 1.566832816 0.5126519426E-08 1.585100753 0.1074924417E-08 1.603368691 0.7787725621E-10 1.621636628 0.5290416243E-12 1.639815148 0.6522583335E-10 1.657993667 0.8935857227E-09 1.676172187 0.4289662910E-08 1.694350707 0.1294480580E-07 1.712529226 0.3001080994E-07 1.730707746 0.5858816636E-07 1.748886266 0.1012005956E-06 1.767064785 0.1593288612E-06 1.785243305 0.2330685469E-06 1.803421824 0.3209593167E-06 1.821600344 0.4200096692E-06 1.839778864 0.5259147140E-06 1.857957383 0.6334388010E-06 1.876135903 0.7369134939E-06 1.894314422 0.8307872913E-06 1.912492942 0.9101584541E-06 1.930671462 0.9712267579E-06 1.948849981 0.1011613028E-05 1.967028501 0.1030514805E-05 1.985207021 0.1028689414E-05 2.003385540 0.1008278685E-05 2.021564060 0.9725092402E-06 2.039742579 0.9253159754E-06 2.057921099 0.8709423764E-06 2.076099619 0.8135691100E-06 2.094278138 0.7570127379E-06 2.112456658 0.7045212418E-06 2.130635178 0.6586750351E-06 2.148813697 0.6213842627E-06 2.166992217 0.5939583686E-06 2.185170736 0.5772144346E-06 2.203349256 0.5715880252E-06 2.221527776 0.5700686257E-06 2.239706295 0.5656657315E-06 2.257884815 0.5588344154E-06 2.276063335 0.5502989175E-06 2.294241854 0.5410077067E-06 2.312420374 0.5320822337E-06 2.330598893 0.5247687209E-06 2.348777413 0.5204022703E-06 2.366955933 0.5203912784E-06 2.385134452 0.5262280593E-06 2.403312972 0.5395292106E-06 2.421491492 0.5621070387E-06 2.439670011 0.5960710364E-06 2.457848531 0.6439540473E-06 2.476027050 0.7088462326E-06 2.494205570 0.7944929300E-06 2.512384090 0.9052658700E-06 2.530562609 0.1045874423E-05 2.548741129 0.1220715417E-05 2.566919649 0.1432925238E-05 2.585098168 0.1683401129E-05 2.603276688 0.1970089313E-05 2.621455207 0.2287670477E-05 2.639633727 0.2627611773E-05 2.657812247 0.2978517500E-05 2.675990766 0.3326736623E-05 2.694169286 0.3657196726E-05 2.712347805 0.3954417260E-05 2.730526325 0.4203627303E-05 2.748704845 0.4391890268E-05 2.766883364 0.4509127679E-05 2.785061884 0.4548938379E-05 2.802738302 0.4477792022E-05 2.820414720 0.4272005885E-05 2.838091138 0.3953165560E-05 2.855767556 0.3553005403E-05 2.873443974 0.3108121168E-05 2.891120392 0.2654391319E-05 2.908796810 0.2222280582E-05 2.926473228 0.1833851822E-05 2.944149646 0.1501785929E-05 2.961826064 0.1230179116E-05 2.979502482 0.1016510934E-05 2.997178900 0.8540431890E-06 3.014855318 0.7340164692E-06 3.032531736 0.6472740214E-06 3.050208154 0.5852401154E-06 3.067884572 0.5404005782E-06 3.085560990 0.5065173666E-06 3.103237408 0.4787635053E-06 3.120913826 0.4538486565E-06 3.138505173 0.4555160690E-06 3.156096520 0.4603639162E-06 3.173687868 0.4679691788E-06 3.191279215 0.4777368804E-06 3.208870562 0.4890051874E-06 3.226461909 0.5011250282E-06 3.244053256 0.5135068877E-06 3.261644603 0.5256428403E-06 3.279235950 0.5371143052E-06 3.296827297 0.5475928236E-06 3.314418644 0.5568376104E-06 3.332009992 0.5646913647E-06 3.349601339 0.5710747351E-06 3.367192686 0.5759794649E-06 3.384784033 0.5794602198E-06 3.402375380 0.5816252119E-06 3.419966727 0.5826258688E-06 3.437558074 0.5826458977E-06 3.455149421 0.5818901534E-06 3.472740768 0.5805737235E-06 3.490332115 0.5789116099E-06 3.507923463 0.5771093161E-06 3.525514810 0.5753545674E-06 3.543106157 0.5738103016E-06 3.560697504 0.5726089918E-06 3.578288851 0.5718482999E-06 3.595880198 0.5715880252E-06 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/PHLWLINES.OUT0000644000000000000000000000013213543334741024172 xustar0030 mtime=1569569249.610638763 30 atime=1569569249.609638764 30 ctime=1569569249.610638763 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PHLWLINES.OUT0000644002504400250440000000106013543334741026236 0ustar00dewhurstdewhurst00000000000000 0.000000000 -0.3411702858E-05 0.000000000 0.6823407304E-05 0.6717038846 -0.3411702858E-05 0.6717038846 0.6823407304E-05 1.621636628 -0.3411702858E-05 1.621636628 0.6823407304E-05 2.203349256 -0.3411702858E-05 2.203349256 0.6823407304E-05 2.785061884 -0.3411702858E-05 2.785061884 0.6823407304E-05 3.120913826 -0.3411702858E-05 3.120913826 0.6823407304E-05 3.595880198 -0.3411702858E-05 3.595880198 0.6823407304E-05 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741023337 xustar0030 mtime=1569569249.614638761 30 atime=1569569249.613638761 30 ctime=1569569249.614638761 elk-6.3.2/examples/phonons-superconductivity/Pb-DFPT/elk.in0000644002504400250440000000232113543334741025404 0ustar00dewhurstdewhurst00000000000000 ! Calculation of electron-phonon coupling and superconductivity in lead using ! density functional perturbation theory (DFPT). tasks 0 : ground-state run 205 : dynamical matrices and density derivatives with DFPT ngridq 4 4 4 ! large number of muffin-tin points required for accurate derivatives nrmtscf 3 ! large cut-off required for lead rgkmax 8.0 ! add extra local-orbitals for accurate electron-phonon coupling nxlo 2 ngridk 12 12 12 ! larger smearing width required for stable phonon dispersion swidth 0.005 stype 1 ! Uncomment the following lines and run to determine the electron-phonon ! coupling and superconducting T_c. !ngridk ! 24 24 24 !tasks ! 1 ! 210 ! 220 ! 240 ! 245 ! 250 avec 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0 scale 9.3541 sppath '../../../species/' atoms 1 : nspecies 'Pb.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 plot1d 7 200 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 elk-6.3.2/examples/PaxHeaders.21352/Wannier900000644000000000000000000000013213543334741015352 xustar0030 mtime=1569569249.623638755 30 atime=1569569249.618638758 30 ctime=1569569249.623638755 elk-6.3.2/examples/Wannier90/0000755002504400250440000000000013543334741017476 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Wannier90/PaxHeaders.21352/Ge0000644000000000000000000000013213543334741015705 xustar0030 mtime=1569569249.620638757 30 atime=1569569249.621638756 30 ctime=1569569249.620638757 elk-6.3.2/examples/Wannier90/Ge/0000755002504400250440000000000013543334741020031 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Wannier90/Ge/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017065 xustar0030 mtime=1569569249.621638756 30 atime=1569569249.620638757 30 ctime=1569569249.621638756 elk-6.3.2/examples/Wannier90/Ge/elk.in0000644002504400250440000000203413543334741021133 0ustar00dewhurstdewhurst00000000000000 ! Interpolation of the Ge band structure using Wannier90. tasks 0 20 550 highq .true. ngridk 4 4 4 plot1d 6 200 : nvp1d, npp1d 0.25 0.75 0.5 : vlvp1d 0.5 0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.25 0.75 0.5 0.375 0.75 0.375 ! bands to be used for the Wannier functions idxw90 1-25 ! extra lines to be included in the .win file xlwin bands_plot = true kpath = true kpath_task = bands kpath_num_points = 500 begin kpoint_path W 0.25 0.75 0.5 L 0.5 0.5 0.5 L 0.5 0.5 0.5 G 0.0 0.0 0.0 G 0.0 0.0 0.0 X 0.0 0.5 0.5 X 0.0 0.5 0.5 W 0.25 0.75 0.5 W 0.25 0.75 0.5 K 0.375 0.75 0.375 end kpoint_path avec 5.3460 5.3460 0.0000 5.3460 0.0000 5.3460 0.0000 5.3460 5.3460 sppath '../../../species/' atoms 1 : nspecies 'Ge.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 elk-6.3.2/examples/Wannier90/PaxHeaders.21352/Si-Hartree-Fock0000644000000000000000000000013213543334741020175 xustar0030 mtime=1569569249.626638753 30 atime=1569569249.626638753 30 ctime=1569569249.626638753 elk-6.3.2/examples/Wannier90/Si-Hartree-Fock/0000755002504400250440000000000013543334741022321 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Wannier90/Si-Hartree-Fock/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741021355 xustar0030 mtime=1569569249.628638752 30 atime=1569569249.627638753 30 ctime=1569569249.628638752 elk-6.3.2/examples/Wannier90/Si-Hartree-Fock/elk.in0000644002504400250440000000230413543334741023423 0ustar00dewhurstdewhurst00000000000000 ! Interpolation of the Si Hartree-Fock band structure using Wannier90. tasks 0 : LDA ground state 20 : LDA band structure 5 : Hartree-Fock calculation 550 : Wannier90 interpolated band structure ! large number of empty states nempty 10 ngridk 4 4 4 plot1d 6 200 : nvp1d, npp1d 0.25 0.75 0.5 : vlvp1d 0.5 0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.25 0.75 0.5 0.375 0.75 0.375 ! bands to be used for the Wannier functions idxw90 1-16 ! extra lines to be included in the .win file xlwin bands_plot = true kpath = true kpath_task = bands kpath_num_points = 500 begin kpoint_path W 0.25 0.75 0.5 L 0.5 0.5 0.5 L 0.5 0.5 0.5 G 0.0 0.0 0.0 G 0.0 0.0 0.0 X 0.0 0.5 0.5 X 0.0 0.5 0.5 W 0.25 0.75 0.5 W 0.25 0.75 0.5 K 0.375 0.75 0.375 end kpoint_path avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 elk-6.3.2/examples/PaxHeaders.21352/Delta-value0000644000000000000000000000013213543334741015741 xustar0030 mtime=1569569249.637638746 30 atime=1569569249.632638749 30 ctime=1569569249.637638746 elk-6.3.2/examples/Delta-value/0000755002504400250440000000000013543334741020065 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Delta-value/PaxHeaders.21352/H0000644000000000000000000000013213543334741016130 xustar0030 mtime=1569569249.634638748 30 atime=1569569249.633638749 30 ctime=1569569249.634638748 elk-6.3.2/examples/Delta-value/H/0000755002504400250440000000000013543334741020254 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Delta-value/H/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017310 xustar0030 mtime=1569569249.635638747 30 atime=1569569249.634638748 30 ctime=1569569249.635638747 elk-6.3.2/examples/Delta-value/H/elk.in0000644002504400250440000000130313543334741021354 0ustar00dewhurstdewhurst00000000000000 ! Dense metallic hydrogen is surprisingly difficult for LAPW codes because the ! muffin-tin radii are so small. This requires that the cut-off rgkmax is also ! small to keep the matrix sizes reasonable. tasks 0 mixtype 3 xctype 20 rgkmax 5.0 autolinengy .true. gmaxvr 24.0 nxlo 3 lorbcnd .true. rmtdelta 0.0 avec 7.57324755 0.00000000 0.00000000 -3.78662378 6.55862477 0.00000000 0.00000000 0.00000000 9.45443212 sppath '../../../species/' atoms 1 'H.in' 4 0.3333333333 0.6666666667 0.17498 0.6666666667 0.3333333333 0.82502 0.6666666667 0.3333333333 0.67498 0.3333333333 0.6666666667 0.32502 ngridk 10 10 8 elk-6.3.2/examples/Delta-value/PaxHeaders.21352/Os0000644000000000000000000000013213543334741016322 xustar0030 mtime=1569569249.640638744 30 atime=1569569249.639638745 30 ctime=1569569249.640638744 elk-6.3.2/examples/Delta-value/Os/0000755002504400250440000000000013543334741020446 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/Delta-value/Os/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741017502 xustar0030 mtime=1569569249.641638744 30 atime=1569569249.640638744 30 ctime=1569569249.641638744 elk-6.3.2/examples/Delta-value/Os/elk.in0000644002504400250440000000227213543334741021554 0ustar00dewhurstdewhurst00000000000000 ! Input file for a very well convered hcp osmium calculation. This is the result ! of very careful comparisons with Wien2k to determine the true GGA equilibrium ! volume and bulk modulus. With thanks to Maric Dulak. ! See: https://sourceforge.net/p/elk/discussion/897820/thread/aecdbcf1/#cb4d ! This is also part of the effort to systematically compare solid state codes, ! basis sets and potentials and encapsulate the results in a single number, the ! Delta-value. See https://molmod.ugent.be/deltacodesdft . tasks 0 mixtype 3 xctype 20 ! set very high quality options vhighq .true. ! parameters from Delta-value dataset avec 5.21365989 0.0 0.0 2.60682995 4.51516191 0.0 0.0 0.0 8.23342334 atoms 1 'Os.in' 2 0.0 0.0 0.0 0.33333333333333 0.33333333333333 0.5 ecvcut -3.5 species 76 'Os' 'osmium' 190.23 2.4 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 2 6 0 1 2 elk-6.3.2/examples/PaxHeaders.21352/GW0000644000000000000000000000013113543334742014113 xustar0030 mtime=1569569250.708638062 29 atime=1569569249.64663874 30 ctime=1569569250.708638062 elk-6.3.2/examples/GW/0000755002504400250440000000000013543334742016240 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/PaxHeaders.21352/Si-GW-band-structure0000644000000000000000000000013213543334742017742 xustar0030 mtime=1569569250.223638372 30 atime=1569569249.648638739 30 ctime=1569569250.223638372 elk-6.3.2/examples/GW/Si-GW-band-structure/0000755002504400250440000000000013543334742022066 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/Si-GW-band-structure/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334741021121 xustar0030 mtime=1569569249.648638739 30 atime=1569569249.648638739 30 ctime=1569569249.648638739 elk-6.3.2/examples/GW/Si-GW-band-structure/elk.in0000644002504400250440000000205613543334741023173 0ustar00dewhurstdewhurst00000000000000 ! GW spectral function band structure of silicon. ! This is an extremely expensive calculation and requires about 3 days on 200 CPU cores. tasks 0 20 620 ! type of analytic continuation used for the self-energy actype 10 ! use LAPW nxoapwlo 1 ! Matsubara frequency cut-off wmaxgw 5.0 ! response function G-vector cut-off gmaxrf 3.0 ! temperature of many-body system (determines Matsubara frequency spacing) tempk 2000.0 ! large number of empty states required nempty 40 plot1d 7 400 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.5 0.25 -0.25 0.5 0.0 0.0 wplot 800 100 0 -1.5 2.0 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 4 4 4 ngridq 4 4 4 elk-6.3.2/examples/GW/Si-GW-band-structure/PaxHeaders.21352/Si-GW.png0000644000000000000000000000013213543334741021412 xustar0030 mtime=1569569249.704638703 30 atime=1569569249.652638737 30 ctime=1569569249.704638703 elk-6.3.2/examples/GW/Si-GW-band-structure/Si-GW.png0000644002504400250440000220654313543334741023475 0ustar00dewhurstdewhurst00000000000000PNG  IHDR3la pHYsT=T=FtIME5Az IDATxɯlۖXEĎOu^/ ih8РB 7M 0)$}{)vkY se"Ќ}{,F} v]jWծv]jWծv]jWծv]jWծv]jWծv]jWծv]jWծv]jWծv]jWծv]jWծv]jWծv]jW&Xm(˿՗,x83 )K;r!+ ` xi2ڏE0Ҟԯ YQ% +ɵ=b} DXC {%A;a`i  byεK{ȶoREkQTPʋ=4=*EP,ΐ KD@LM]D0js]N;Tə)P$0 Ơ*>j)RFOkX?Ef FڇTYϤ^-5T)J)d/SOu5Ho)AN~И0yzOQ@,]A]+w\|K%vJ)Vвe>{b &b_Y2+i?9&rG,d@u5ȸϵӡ*&_F1tg'g^!%BBOyp , UZT+XC.~y=YDłDLo"L.h@NZ >EbFK"֒")<()0x ) WW5T%].lZEP.6W\x]2 C'י~…+JR 눑9ެ?DU^o{csF]εSfZR*b Α ) Fz#'s;*6#\?lҁ9 G·y̬ 7My/ۮ`z?wlÁ{~>A ]L3'Ϩl T̅Co1g)[f)̓B\/\E,B̐`)ibpmș4p;0t>=r6#QeUG,s@:rTn<8e]@erw=J( pMQ gF+"3uxَ,'eDZ<'m%P2KiS߱` ,ހiYs<HF?o_SԐ - !2-BF)Yyİq]=O| c4:UWh |efVJ!\s(PrXrRg%'X8@̄+#ǥ%C:#F2pc|OlM!T6@<(xrǥ]b*O< VxeazoM6xgo1G#vow1rw;z߲?w8Cd _fc'X9S\SRX(sF *8C!FR!BD }*%z<G>8@Q!l;y!BEb EfCBexm_c1H.- 1a -!2RG$VsmGVbD`/:KD\l,;otImf D,s", @5QȑOGaӵhkW5񐸵l9vc9L,%0%5noyx2wl1 b=g>-( %EӺ]/:rikʮku`-iFGZ( !rHqp{Cs82b Σ!c^ӯ/s?g$5DlO|}w=+0obdO? 1cE?ffK.nEݞ`ă_NW8z)g2nDžO|wO%f -Av~ؕc)`z2B($ȂWx &ѐ,E]+aU0h oî VOJ9R\kR̅ȎcE,Kc}+шIGwjQ0lj_Wm)T((e6ڼO e\wѯtjaī*'C1h99vc=j+ h!J׺34d(؎<(ɣQ,aD\s ̓M$_)&K>aSH tP( 1rL7 +4 13}O311ebgnBQb _b w8soCoX{u%JXW{8Mi5̹%8 ļ88U: FpU)J8r$9F6ڔVnVnT'3!E1QK$gr&)%0xO lk,r֐31 '־)@lG.gb-+Aɰ5KX|QgA-'N^X+~slOT Q4Da;^︽cI{Ĉ8#% pn jJ.DYWwQ4:\ E3E٬jT}Bul;ib^VoF7CLj%"|񆻞<0z#eb~1bKDoww'eRO9mfQB$Ԓ6VWR"&%2Թ5!/ ~ͷ 7#gIg"fbpΩutJ)MR"SHJ\7\hc3ּ! ٢i% S&gXo̙x@ s> }Y ) q7Bd:G,=1A$4N3f!fC,c83bp#2.63a8WRavxHg'0.xu)'L/Εe&,Ŭy4oЯTD Z8ΤTyN(xYyg(SD`-f+ K$D~4s(H+g'bXkP=[ !pZG ( M2/j'l(w9 PdBc !28|v/Q̢AsیK<t1t =1<>_ߣ`?IJ&=BVm4|8G o.(]YY752U.@ K6ffh`Ȕv O<&HlSPevE*L -/a ix)TVeϺb|湦+?H{%6ȫ/|zq |GdRF)>!P SfkQ8G̑ 펑Ja-w8w܌09v  d7(8mL:kA`A4o?$aX*UAvQQ\*%SV Zo dЛV%S=L/>p1=U!-XVTƜlGv[n8z#OO||&*4&b&,AI!op^MJS_ KBl $3XQd@/\&:J<L":~p& [>Q!o!g/o)q…F g8&FuU*C/8xx}TG/(tWB)Mja,VY20gfff84MÞ9J-]k2tU&(|4,7{sV,J jMSDE NWֲ`hDp*妲腬]AC>8xۼ?x%>ͼ;q>C-o|_ bf̉W}||>?d_3ER"3`vy YzGt%R SAW`65Z1PPI"OLk"*c‡gP|o|R0!gŬ"nbbYY3vw }#zO}YOZuI1-K2MQ(i|'YyϽ_95f0o J!֬* U"9]s?du]@kαIiIωpS{af2si#qDC\H)E &"XP.W_WUSr$3H -ss\5:J&C!~W?apiPDȕH՛P sjk$dV" H-e&Z,c0vDaL- W=Vݯ b0gzK8a "bdb$f'?-;!kxDH/'f&yӑwXstEc3b^" xSHHkIIVq;~7֩z>bDc3g4vOѵ_)쫂# n{\)2vCVHoD.GB6\HևnCLIrT[y:Ef㇔?Y%u.?dHdYX緼c.G* ]/Y?a_/L'%G&,bxs3EjPǩۊoJp@J5X4бxs|:2-+]uUubޭ4J<55^#s[fʶb:k^PzM =ëk)Ħ)Jl<7}5IYGbw?yjPu=+%grJj:XC9.|3͔sD&`_# qb0x7SU9%rfJ8äMeL@7B*pcΕePplf>{z5Hfv??pex SS{:{6voգ|9'V׮S7>ѷ#`ckʝE93hB"!>M3g1Ä 򔸅} ޲K\ݑ G3B M!)KFdT8vXj:JaZ8D0@N̕]ΰq-<;r{z!xyGBc >%:e8FBfIg hf M,e#zr&'kcw~sXqt ]wqdQ HTDl.SaLLXuh!7'b(|daɼ&m3+/d([FvXbiم9"S8kpkZ8t% RUk8Lh?M_8lByn}"ZZưZR{aY nK5v18ļFP{RḴtgy<>豐)y_YGP?+ ʱN:ƾ1' k)ڦ m NQ ,c+Wvp,pi~H(?c{0de۞#gF6t$[w[csҖ&ĵ,UP;-Xg18¦VtRe Nj #'E;Dq<L")~b85[rDRx28Ko8@yZxO{B8y 1k.9\lMmM@"e,C-eyBjccfNXp oHc)FlJӊLOjL*y%O Qɸ:at, Cs9z1iљ`e-FTxeiKjg[VrKkNm:;-%s~v)R`,'+!r+U~5˼` ݈w H:o#fRī P lY*^!AJ*OڎagR: 49~l28JX@6?-mxe3P$-Cop $FLK &ƐӅ:a)c<:K-)SrV5,εQ Kd8F^g ^:5ebYGuF*mjg< mHnfeҪ4 _ ,4֩Dή 13E  RqzQҢ~ ruTSJ`9sLx˭avǼpI5(@. wY+ztTbڴղhC% aO12[[|IYS:2SQ2Z Rx|f'81 ,yC]d g72 mL-ǹ[Bڦ:CZ]acmsԩQAH5Wm2n2zΌ{^m7OuNRq?06D0AZPK{e+X˒VNĶTE$Ö`i V P ݨ"Pf7wT ≣,bX@ʧ#}xD C֣f\g>rTD Zuy"q'o;ƁITu[:I\tf\f2&*#)7slzveeeʈa /[͆O\;{j!$qb uL<6 Bdj%ª:blw(ㄳ67ħ=ϱu}#2M30ydQJkdp9xk pɲdUY8zC6R^ X6ha ]G)9Q;7Rb`MY+OLGƏ_ϾأdKQvCs/}Dba \Q$fJTi8ӈ:˱%c c24 dWHUR-DŽLoq!GL&3,)#7cOq)cP >7ئuq15ױk'L`uE~%*Bw %jvkա)VvlF$5;KL8ëx㷾/&ZRnPZyul‡'ݍu-145Ĝ=oC,dڔڢ s\l oB9|&y>i* bò , ]G> pmSM<9xn5@N|aǵ{wra) 5uNQ\A }z:4gj9n6%5/|an$.D[ZgXYznZ1)FNÞCDֶiimC=;ڳˊ?U3FuM#u?h,p2)Bac^Em'Fhr91tTDvTHx"fw1<_؎A])غ23gT<vyÛ--#kzWX v.,9O}ї9-\23ڵ&{jACh`h]"%r<(}z=mx^S臦XSlC٘El{ĹTo8=\8M)PAlT@YEfm(ժr] vM^r6fm~?kN.U,?Cn sBЉ="m`2v{CgU=F:ž*o7|Gg| \!wHJ*.;j߰P,e{durqd} 0wǩ1K IQ)ER&UiO nY!"3/w]&&e@cwky}S4Q|%@k#n JTޯ9_ߖSSZvzM繐 * ߪʅyn[L *b#!6*2#)|lJ!'bj]#,KcW1:񾵎֌|gaqA6g"miHj.vh.[fD ʁLn nGM&ْ ljEt=sߠ1#TUtB g#ǹk/Qİ ֑ ObY0FRt] X I kw8:S cZ6,R9@]4F.ʳ4 @,YV_Qr#:Z-o!4MjI'4fA&]R u$bqV8L 5Y_gTV:[XF($i32PWo (03PYXD0^[Vq i[_p?afE (̂mcDKQ{.m͓D3ea$\lE9]#7M <[9*F8>voG,Mw13wʬnuinQeX 6`̾GĠwzJ]5pwv,{3KE(32;=Y,5.>e=,+1b2a%FK35Uzk]^u+9WV֝IJ!>2{J"W%bGX7- ]ѡ3+cZbVhge ,?_ih´Q8_p)yV_KVfM5mx&8I)|!׶g,dK:b/"r\EŠ۷fyMqش })U\! o`ߣ4>ٵԅ+ irpSk.2ZB9ZG/*DݣG i \+QRSs}rG_HJWqa"ECY p\0%b FjR乂cwf}-PK?&ն upM=jyQzN_s<ƐN{oY*3gY˃3 #e=X^;d1vôșf@;tIK`<9Rz+W[|zk<_UoVc0hg /Mۥ}DYMX )1_R e#0Pi),aW3{9U#QFʂ͵r|٤Cbl)[+X{b/Wm|G/gWA.pW. @h֍c"At"tgHQV8Pap´{5lmI CmD Jsd%Z;HLIp;SHaoІ Fc jp6 ٳz W繪-RVXi1tm^#v%Uc[=D8> nGLУ TXM2Au(qٔ^ђ4ڔ4V2'{?W_H==a@ 1s^db37sTZ?`"9ZZ-]E(#=$cd[StR=No~KyPN${:pivD 0EF#aq[2_TUPޠ QaaXWc5ǀLN~!V[5XI ^\n>Pk">I/QM~g w=Þ*asE>1O$ hbfJ͞_%T˶8ZStcUpDr[7Оuiz+tݑ,WH9m.#ئ=#Vң6͊C5\GvǛdϗ+JM1Б9UjM QËcc~-~[`x|b!kxuLG ,m\UYo4??DsпHU)#-__%?͕.%5w|u=JLT'FjYY}w\ŮW,3_cf:JIe!jB21ޠ ²jRguD_?wN/WɇZ*ݏl!Om)mPNXېi \am &IFM8NtK:!а,kn8T=W"} "?QVDUPPPE;=9Pwe2r CYdyYZmisYբ1v|@*EQP{HLL+]}ѨYUT^5vMСvchu?Øk ՗;~M*c]l />?_pq!%J#Ƨ̴0oV[W )\[٫DĿhoAkn^TeMK(0:!%6J,AwNq 5SlM^T{vAvU᧼~ŻG@^J,Mrz9!j ̉ʲd'yxG|||%Gƚ kʀqGs  yA7cN9T ,Q-)_^:ӏ'Ov.lrI 98pК)2;G0y:3='cA܇z^]+وvCdJr׵HpiJ2[6B |evHU6Ÿd,D՟g,WϿ$$0t03iRTOҵpI<<6jXmyfPA %9WQ)5خPkӌ[8%q9Q,4$|dcphUz}CdFTrv<]QVQAא MXVϥUFg"C{9H7ni>t+YhEy\<9OjIoN+L=vYU2e숥ᬘ@96M&q-NJvEB贡*hźqZ)ctFBTUEp'_ڽ#DrCmUy4ISbE0:!!{L)!?!p}>\~nZ pw Gօ (5l 50X uZ5ngDЊw~c^xDWFb^I]QWd(`Dg4֡G^psgɑe#%ľe1G>g[8.a֢ C͞!2vN>#__&+q;'̞Ҝ71io4c EIHEYJO̻ n5Jv?| Wk`dDE11g_o!r30,+w#Gy$%Bm5)^YVop%En;&M ;㉠A%V:hz+jOH[5. e~LБ.+\o)ie (PHg-)&KmN-R"Klxg@/k??Ͼ>9 "7իِ;Ԋ3м0{,8G."ʣܵk=MƨXGE`jrq5N֪~ ߜs|ʲl,%5ѷ\KhiklYBoI6~'+)Dr+|6][:P*5A>%9Kqd%:I'|ncQ61pck1h|ˀq:vCY%F >x͵kN)6`YC5`X<͜GS߾Gich5 RW͝ 8ӷ?ͮ_yDEB(0*"\jkE]T!u/hc·Z]'JCF'J!8CKw5v0GƽjΩkU>i#|VOg1<$\z9)e! |ݎq͞/D9{Bd?R kB[ )' -vtm0g΢31^!K5V^9oG=.sWZN2 #SĢ55$˯Vv8F}RWܡĎO={y\slG|yZ/!KQ+@DUwlcXVf c#9њ'chKW %%ē pCO=7cn %n+lC1'YaḠ/[mZ }2"U 䰚Wۓ"He$#woW^/d/ ^}XG TZ9^lS65چe#GgQn;jj0N)%l"-xx{ss#Zۉ4|)YHjVS,E&q I35k"^-uɒj9]G(e3B" vyJ蕬H3RL9]fI/WqdWD.,j0nyX}Ip;l^fU0md@zJ޵P4EU|q(lIҖJްs}x[RL}JIpDʡ!WZ&ʕ\Ql㒮@B~]hϖYc({Fk7B,ԩ?|k/\*GsbV+LH*^[A}ߡ$UOuI2ޫG׉:`8V%0;ݓ{tD b (ȇ+Vqۡ ~OyF./߳Vz)fԂBiQt5 B(_ B7( >uPrDBl!G!%Buh+nCuPW{`;w,:T?V}ۨjk# ҅J)ٯl%DM甀"Uھ |fD!簊'z_Wt?GIxF͸|drcYƫVbhPְ%L_-'r(ë{88,5Uc5ܭO8dYrdRtYƢ4H 4nc&Cgњ-7r կ8d#բ$@^Υω5;~ !~BΊ~#SOsɯaK8tlNCܠF]rmIQhzo1$s/^2+ ߰;\O ] X*~K9 fV-lDJXGQ&Y6t#9\I@nm4wLlRjI},(,HӌzBTҬ `uS~+;"%ea?õ>iEW9~|aHk*v x}qZP=ib^UYͤb#;ox+59-g{fCG? &s+[bY8-838b"*Ĉ W*zt4-j P3F h|aTXDƔ#_?S e @'BaSH!ADJ"V75ZZY2:`WiތH[ao8KJZq ؍sC(V{W~ɺʚ |~P4MEfzKB-nAyҁbJ:(@@'bb| %  ;j3T ^'+2Kk0lA! UkT;?ϒ 5\*_]؃ZoV]) r1 IDAT(^Z34W\W2v:\kez 3P-<ݛ'1G?Sd RΒ<K`'PVDɖ\L%l%($"Ի0aE g=rxT sj(Ŭb*sKr{רW|&C+zWˢɝ?Ͼ:BbA{˚q$`ċ[JizL<7{|b^2Rj9]PYޤ+0}: @ʘ^&[h~a[y<2'PζIn|r;g=Q z1 ;iy&G=V7v#^P^ltϿ)|X6Kxh- )6Q*7phrk/!(`Qpu(yH>`!nKO*.[̅"VbA:[Ș|.#\;O%Z̊*Ibl:5֨$' ?>tf j%٠*&#ΧfG՛ʥn.X /=!2H)Dn+bp 9%]Uu&Ufi[Z HZ1VSՠ;^xu6lYH%eW=vd[>a}LU#(_UjיKi2Y3~#GRjƚR}.fTKU[\:j>DL H~;ܗ'&/ Q vHБ4%IS̑2ԻRyť%ˋ6:+"DVySĄ!l8ғHhw7WUԖ[d^ ~eY-f^wn$vϫvuIWF(ӔL廹:Q,?CX9%Ko _An[¬9c VtY֔fbBZVLpl4$-mUod|L޳ra3@R7U#/y@YɑRceXg`MR(.ߎqZc ƲgZ- HAdSWc9Lէ 텰BU-sml֍s m!o_9^J:x@(YF9-'7^4ʖNEa|V(Bi%HicESR /k$f o''l*O"J1A7_μNh8-b<7& H:a^H`q=ְng^EgyaIp~;ǯF9ůV4O’PV+='),}wcƱGUY[Ԇ_ ~8@;ƞJ 'R)Wn]W[TFΊ0T+ht'AT(*97X;s[^VT=kM, 5aWG#=ΘC5vhWY<ٟnHQj;kw}/c5l%T7$K3w! dD A @6Ro7F AZH @&(X$]122"6Q݈XXDt횛{PdjnXAph^4!S%%EV:P"9(ٶ|qm]Jm9 )yMXI,*8[cKd,tV<񲟧eDhZPUʩ( e-H,@.462)ˉ&\f̨F3kl^<-QBqc\CN)/Xl '4LI #$M.34˓-Nl웖qu^shXf“=sf׼>\,bYD¯ \QU:WQIw8ⓐkLwrs9Tc׳:M\eXvDOlF|OeQAz-,Jt]%YE+L] ߜLas4ݬ-B~ 4%y7'?4+Ra _M06ŧ)BU­M9w!-4ݎ\Z(bP$JQ.+*Ocg80=KЛy0BPz>#%qO><5"kbz"ϊPʝE⢍Ɖ9Q^m1k,P0 LA0-D^`c|"F Puy淍D՞-\^6zT>YmNDK[k5u,dlQ/ƥ!ĸ0'T!jB# ?3eg؆&}nQ'OLn5|Ҥb>Ooؿ_(p0ʹ*20 V0.(JK$aYT. dJq7 p7TaeP߸KR L0~icِio[;׎ȑRCڅ؇ymdw,:g_QI-Xg +u4c346`sZ(,U Pwmˬ8 )"JBgZ{i6p-w~ J3rH(Ӵ L!Z˓e? P%ߖ2#^ӈ%UW#2sˇ80P)6?`Y$ȞuY ;0_?t [G[AG1 !wĔc*ږM[v?qxZT8qgʷ;U;L|K# CbI,~e!kvYYNbؓ-ed9 Gi?|3O.0%6d3+tt_q­\8ʓݒ)\Sf믮[?opW/3#5KzkR"~X?ݒh4W›. M)0 \c&kQp ljq:7y`l{E h-M#ҜS%qYzC0bc-%w9bx&f!Qfum+]ȩƁ_ "h1 axh񩴖Ɛ @y F7בMc8 ' j|cZ$Y*-`?Xbi9nfQinx9}¶ͳY1b'?s/O>z_f1<0N42N9qpf|KÙ\ OR@okXwPWN+"۞_|}i;0m?~yi68K&L3 f-h͜'&ScᳯxudVtY,q8ER5&sNX Q\+aT`d+/ڙ=x9,iBA86AJ!(J0[Ă՗C1K1&`:\Zܤ*WgiflUT ZYZ.F(QXu14dz<\ iNgV%NQQq%3]- _ 7;>?9%XыH|&n|ȯɚgو5 `( u]3-\ۖ(GJqm8N-bjjYeQKof!(rC73!Eu4 1OQ3>x+n2F3CbN>Cљ'-77a'CYQ|rzbզ!B. HF>40ytl;l0 C,q\W$aJPpX/ W4$7˜"Zu [3Nx/mYY7{R 0(L:U%l7^K⻎l&13o;֐Y+d)˰D%(97|LYG#{Uy j@Wܽ&ݦ{s7 i@?qs }!N5z=D6e8ږAfRKӹA)K2ZQ,\pF 2#)"N5ah<(^& pWVK/wvfYo E*'}̸j])U4M`jU AdG-ZNbf}%¦'&|zk&I[S'8hi~_~~dl;Q~Û;nVq^^HK &+ew,P) Zkz3#9Bjv< e ]Ɲ}T x8N:$U6-%'bfh41QdKucS`^52vC+U"nKu~D^iK/IM4:#3YQd/lG) Y&ǯay= Xͼ4IhZ*@H*@8DJ2}?ۦbΕ.qfkg'Ĕd)pbYr LNMj2Oz9uݞQ=*}$nʄ B[PqաKoH@Y9v=>#>ӵ(AϋjH :ŤI,ych!PDI=-^qbҦJL2jA!I.+i^\Ƌrc@c$C-D$S5c|_V63FR?q̼zOtiV*=Q k7f T Ԯ0qc,l q3L 7;vWlzyftdD0N3)nZZ@Wu,dڶe8%H|:C_+$-1/nbUm.a%R-s}/.Hkf֚aQ1"&JƊ]1|^K O{[1r~ J "PsN7{% _,1g-V~+Ҧ-%45a|Xc!^s8M.3c`w1zIˤD4n%i2_ᇼٳq>e(SB%aX103a- f/йV)inh1(%U5HȤɯ-a `fleSr:CfN'I#yc! 5QBBkb *Y-Z/[a@+4T\jV¥Zf[,U]?%Ư3B #9c,On8x}͞0b밸ryeH8pjGՁq4P _-پ{+^>=YV9DKq1BcM bmjE2hͭ1=iVf H{9D0O*H<Ra7XIj.SQ4P40.5%uZ-y%Jz\t:G=k՞ zKgkEY.fxsV5G0sbJZ~dy'PX9A bA+aN< Nl5U 9#T=RiGX/(ܜsm`=00@nў\N0wP "["D6)G^~pHPX6H['|c72Ӥ#)X ̔qbk&|c1#j fd}@ gu۱2M #1ʨV̳4!J{?Zi4 }Lg"8R?p\e&oZn ͈`kZ|YNLALyb$ dkHBJPt,>- O(@'1PRF mo:aYQNt& $C [U?թe(Z֠x!#DBhgwbu Bdt+00Ͱvg-(CuDdU#U!gĄO )=xG&O")n yG{?,c#yUxm^е⵬EtÓp7sȴM}U۷*`vv]p}kUǿqoU=PMk,'gtTn _ZVdLJ򵬰pZ%`-9aSsϪ-Z/eC[+eo-KNtfNePuťުed-u$Z wߵ5ȍұ)SX=+q`2,q7ր*`8/'^YЉQ+gK}&;RS|T0( ?B#DU],," XpE# tG*MH5X kb4r0KOoSogj֙ZYp9E:(ER  pJz`%Pi5l;V3`bYܲqDN+P #yT|'?I ?[ڎqc{`?w ]|ckyr0r@,\P4W%D^a44 ,ɞJ0q]AM -VY zߴ3$ ԀkB%TfKp !qHg02w Q @so11 ESͶ01bP 9Q`gh4b.،a,_$JG!"`gh(+0H` XP7ф s5?uTXDkK3[JTnSwSJtMi!pewܪ1kU:OTH~Λk#q\ہEROK)@d0zb ѶlEwDb\=EP(Gxqϛs k[6lngki;f ,OB*-AḨkc*Bb fm|T8F5 l{f:teJ'*@ʌ4ЊϿ_`=~}^|zF+>{DI3ᪧZdoX8reWg&@e. yyaFA#wt^AO%DQ-}iثaSҶw]G㘃t ۬o?w} L3༰׫0W|M?[*` )m[+K|vAN] +XY5*2Qq$ c13Mi9HnApI .NfA&+K(d%cq^G%81D}N)0e!YY8N93Ͷl9W[yGrW|$$RƉqs(']mzBS(1̫{ĐD!!,u %͑Cax3C!)1ThfQTcBHt"F:æ!~%?{Ó'i:Ku4/b XGwGT.K Z2ゆŹ'f(Z\MiP 2Ls9+bE=D)l;#>8Ci)CXm Q+;&~M6H҄Đ5;# Up{vKLUPw_YѺVY]s@WhT&\Щ@(- 3?8< ?峯iӶgLsF0?y{ψ)͆X kQmWG1U*thB"bh]푭QEZ!gFM#$ۤ@* G5كA7:6  !1 <̪d3{t8p7acN̞::cth1p7E_[KƑ v T/ծ94;^Ł+##RDZGnșcʞѐL*M!'rNFpu%z`D3i'r+.r:) ݈כ)-rԲNj[5k"T,j=bB2&D$FB}PDX@r,,y⥌GDJzl.hmP13-fe9~ɿS_0xl KAmKԊ5$e)sܛhc&߱nO>GkjOMOÏx~xsqd8UV='<{qYov0ahO؈S\ob:jAgd[VrNJ6)4O5C&|M Spç^q8͜fbԨfflx%Meڧ)EHSu̚&?54ERLkkgoO%6+B%]sh-9}\2E4\P)4g`οipOkh4!-F3LY~c>zyumbG߱a$FwV'F!\uZU{vZI#k0G' xnx%ZSȍI]dNx-W@@EJTK!&?NP{f-jiȫU~@'%-OK|w*L!ٶdmZJuei`hfB_mY|t_~ÿ{kUOqXxrk`c)^NU xəbT2~f\wXUT]iRDZ'\g|Vr' (\ >cpUE2sUDESQ;1ӄ1nEc4 9r@LX{HH\όV|^brYCPkd0a4AkJK"ovEJ28KRG= = 8 XõiOke9uX\O(#zsV4\mș1s|ol,55PPqRb$×sYFrZ{ ֡5]Qbz}s}7|1WtuTs+c0GXqأgVU_X5.KC?G{ b3VVB2^o7r ZjuX#R؆9'h+gUbzdd'B.miR8ZWӃ5T=.h !p^>qf"1h>l KzO S͛Cp4|*-cyɋiB?_F.<UŖRQbQqM1wZ%ui^Hpy^ԗ]C/Q7lyώ̊^a4j#֚1jDlPuf%vZIE-`_ZwWdfKqn.5DbӎQN)b"/G|}Ϯki,Y-&e5]=mTPQ  AWPW_)]WZ%3*,3 kwake_>7;6-{ڣm#Xp(ZG|0Knw<{/NjBf eIK!Z !"e̘r(`͢aJKge _+E_%W ?OoUڻswܱRSZ5#ͲRdyUJQ-\@ߩZpeGEm6(Z\P/O<^%Eb`JOpiPgW|q' ,2G,ʦo~$<9zcb$DB/e]6czv(wÜQK^!=\ꖖ%Jhӑ#ȶYH (ѕ;+ cnl 0{fjTi5EL&]P=Ze#/z̙]#8GkpI\ДHWu{:y|$%𑫖'O_d? Ҍ'G}'RbW[ԸF OSOoy wondiZ*Cμ>b4ÌtF֢hRGG9LI$b0*+Z1n[6${L˓k s X3cHܨvBy5bC8b-SH쉥G5jTdӟW{͆q"e\eT.T,ܫ%hz#Fnމբ}N@Tiuή4mK0K)L3XSe [GIe_*YY5cf rNu&U|J4#F~<`vn1H+M< eCԤUWW3uWaw'\N{Uʡ<:T+tF}~zL\nPkR11t!hfY̔)(hޥZjQ XPJFlVJZ z.ڼ4䁯 sҧ.i`F}nD5<”id QATbUiY=C8G c/_*vsU%_eIªGj4&bfl ~|p~h)St |9ZWj3s<'c^W,l_EVu`o\r1 L2'aFB Ugps%Ve!6-MmhI=V:&7il6#Uz">o!@oqvbVəٽ-2;OI yخbtn5= l0`gJ"tF{#1|9CA;r*/=p<?fR_/gC>#! d;BNb>)T$qXeF9/K{M鳔ĮJĬQb>Kh@f9m{چ'Yv*e p'&f0ѷ 9hIc,;#S{?̅#1ﰆ j: ۥH Nkeɞ9ܰ1ƈl\>x2܏ܶ\%}8o=ʰa VC)I>2~ TWGe;:͇'*,>pEiŚdȗa8vյ̫5-9su>*Eqw.))?*( ih@k-Y]n#"AmDYRbʖ%?qېPY_/(GI]\gȺJc`RjVj"]*WLgRg/3L"vo~oB=~wwĮO'&/MJ:֢ _=J(0~-CN9mcœuYA3>bqki Da*)ʔy5]3'>5_PYs P=>A?Ӭ$I^aYVYGQ/-qVϣP4V ar߼~ yÈQ5C^0 +b.*yj\}V! NXBf(b)8'UHdVBc CSvDM" d *?5(%ps+y&Vї2Ek4z8V;;rFp֢5m鱅{_e}`sݿS|t VqeGk mg^57k?Tسs~5b&BwIr$Kd3+dFnR_6Hɕ3AC{LS"'EKe۔5wTF.+f' IN6[Fz{),Omlyv=ƒ%UGh R.48 ^_.Hw^ҷ]>ovJ%k>"*dVDbN&oo ND4GR"GVJU*k*tkܼJ+zU`RjG;czeO;%+D?mkZ|5\NDFĶpeٴXqѴXج9?\W Gb/f̕NAZ)<#>0;JW5?}?c\u<>p@6ly}ϱa ~$R`Кu1૪ESM$q1ppej'WbuFI)L|w5k$Jbyu/?495OYEtMiR C9z6@?Xwc82DHRMadX4ꊂlV =p=)lhJVi\\=Z.$yr@:R˂nP Y6|BVF+/YWI՗B+, $he3ť^,^̅\m #>[.K/+ڌU Z1䁟y<\:>o8r,p 3Ki-Y}r\s۬DU0dt3"(i}q9/Wd2qh@|2}BZVzc(L]!ilQO%SV]M*6= /5 2y݌Dƙ#l 5e|՞cŞ zZh9d>he$G@6|ѳ;"ΰ Vq3ݩlPNscf XSorbL}ѵ/1#9cƛX)YVCQhR7/};U*5m-н?8-o5}"T=/ UxOJ}~{~D)ֿߋCϟė O.ߊI'ZIhb4zr\KRm ep$r;r*/DXKG;t)5$ LؚGܐJ5p;?l[ e/(hv>#Ԭ{2c/+KJl;~ '?!(6xO*%EAȣΤV.Of(Mאciu5Gy3$[=/ 7k#c@DvTCV~`זxUD`ϋ%Ι6ٛ8ls32Ro8;R,-?px0R3pPZ^uS75q z >L2 V&~#X)%]拨#NA߂tSuRi.|.!-.E?mq!|a9sFy.\j2ǽ{2ټq|Шvqz7JK)֏%>g}!ʲ#cج:B50gź,Ex6S?/U:p? ص UuBBq,u/򌦚0Qs6+q5lrxhF\Inz)Z"QeCZ(zBg*v5)~S Y&X֊,|ҕA }WN8MMt;/ƭYqs#q|{qbv ˜K|[p" :>MVwzcWo)!2?G%cGᥠ睖y8P(E`fx~Hiˑ,B O"NNY~Y3 1Q"=Q ٟP⸧fVQiޑ4~_sD "ZN@} I~@轵s8Tyi#+13 lioeEV1B&KFJ|hۆCOy>mG_AK'\$DD!3q gCIB)62)Ji2wX[VR\o:OT"rZ'aQöe>xӰBVvC{P\Uk#>ׄ@=NrZf)kCə!">W$q"[iްxQm˪(|%59źI+bDaoE `˩$ÊQhԹl}v ?6}j\mP9teǩ5MosP yR>UrNN'Z 4 &aǸb#&G^-K!PnP׿!}EZ#A5U+u.wl*<>zN%$,u/[8=`R//bO%(>%R%mNNiP ! m} IAa W+d^HS#C){HKD2*=wޖ"KӒ8@䱆 *m$-Jib тS!4ОůQҀA;dOL4%N!x{Bf s51G3TWYr`cXO6Imk ^rxn6k֨HY 7&wU ^ V 4; *c JO )1 ZνԷw(^3'k b;䧸x">vo$yl`0E'\mrK1SYрKH,yfV 9[a vI[ƌu<>䰑A#RpH۫kűCZ:00J;q2"@ep&Y)ŇMrDKS~@oE6E@_ԂlQUh\3(lˊm5gٗЁdCI$YY4>1IĐ*RinWlפ$|* l:Ա c֑mSew@gZkr:k95jd7NJa&ZAdzˋxOpWJ: 7llWlhw<쉹$K٬X<88g,S^ *.G9 v?.#ꊮGƁGϪ!)GV9RT'zRY7Ȥ„sϷ%:hZ)OV ]$I "{UNduڶQu:Vn4#.$2*ugk#!%K([+dQI*MG|j/DuȁD"?g3q<m{NIϔes3gb{pjYU5&8F27,VD<I3r%OЂπlݓ]a3{41Dlkp~K)4xz놛ce,&f\1U]U f4yC( 7` Q̈́[Ȋ c۰iEh5֠Qhw>5L\m͆sO1ensK=Tf V%V{I˖U.+Ա*^rcb,}gV-7k7*.Ѫ9q5GG!¡Iţ2a`8kU/rREJ ]0S,lo?{gV7'cZ2⬨ˉLO,}n7:]*-A?#s3*-/-h*TFEʤ dhwsm=%Fƞ˶Qɹjuu)&Il,ʏbwwnp \Smj8I!v*4 $~mLB~_y?4у2aե8FLQM,Ȩ&|2j YVb |x`;4pm=X9֡-! g15SʭfG/X<#DzyEx`%DʤPqJ RCb&Nivn@irm#ps#QḭZꊫ ]q=#YXwhErm~'{H1s< a2uO0(3 j|8[;x8FEo*׷RdJS4ŋmN13D0K׆֚%Eh[rB4VIZd髍pEX7À(_+/XEE, S?̡ܬ8)PA`=ePR/)BFt:DGL~_cjE?=RW' +gP4ƲE&5iJYV() /nX5|ؑGUjvԐa]v?;w;eՐɉW|1dz$"qM]]_k0CK䯑1OB5tdOJ#懼W(R#Y`d<*b_s1s!xK\ Uj|CgPp 7{!dҾ8jB=yRysqeQ[1G5*,hжq~6nRc8dSfσJdiKeKxlOtB5` kZDkB ^u9SJh dvl7%X&r1UbqW) m[=<q mzƮl=7zn|JU?ϩf䂚kn~:eckg\^%\rZk^sdfUƑ= [?90$+/Q,c" }9v..џj=kǦD%=fB8c DzFãiVbE,TE/|Xn 6Rt"vŋZzc2ʦQCEjj!\џ](?/qu/fDت kDbH!CΜG(Na2y?: Tمa bj"U i?Қk!ְD2uY{T$n ]bjq6bj)lTg<>W9h/h9& 3sKsZ枴q[K*ibW24U+B:LxT`DI-*˰-FZQJ֨7)eS{%YOJTt*U5@FRSV 7VΊa欼P >15ߢ-C"GFź0JMQ9M `ʞȞIܒ"ړV5wf*z6R ^B+"ύB,p8TYq,k:sÎh-jk9xm9umq Uy`uyAǟ̓rdG8d Q4!0ɤ[KwSEAò:91zoVI.bOʣQƬR7 J{ߐ&czȤ7ʬDLexRVYѧ/FLV*WZ4bЉd8B(E6ha?^: m(c[=j1˭Qd;qD{%*LNMVʕSd u_[~?|öcXw|TWC} z6YO 6UpW)%R+LbҵDP\VN-ycdM Lж(ՖoٷG7zͶ?~˻$p$yi c,f !CKg!D 7m=1r. 1!sk6$a=a> #L'9aHv4AW*zb3,&*B)7R&uUwAs;0TgI mdl-ۆ/gA|)EYA3fb#6v Nז/>3eXWF@9[o#fyFa.'9kB-E%A\_/S3 2{HMiZg|14ұbf} (94C,! ҠD7؀(M6R8)̰l**(Z^F+1FRRuFy$#B<A`4M#PDr62b܁sF&b )<&YFɚu͊u҆ U+GR"uČrL6arNmC'5 źaSK"/rU(VPa*cHqkJUasY:K ~%;lONՙy7^ZDSm"-.4O@݄=[状y8#-? mՒa0o-nCך~$wj!'J=hmo\D\."yAm=d As$'}}g"$hC1HjKJeQ GҶ>"ծ{F ϩ(No!RI8,ш''#Gϧ~㻬7w|ٲu{qV̦{Z%˔r4GEjBƉ>ZF U)tD]/Th-O ['<~'Y->0 #&cyCH,6|ЖmC6 Bj]qLRPGɇJK|޼{|Q]sOC2MEԎ"FA5{&qU~) KMWZׂ~iK)VG;DZ@5yW*sMqXخYw4qTMb¨JEjhxyzi<Vv4SF pMT|9CY(Kx>jo~5/;l~ Tr9 хMP9e6TzgI< åБuMKk*k1%%HHXJ'Pl% lLxƘWe*Mf4d0[XPT>c fn@rګMBrGX]˕*܋~bW|z@SRNq_Z4See̺V0ɨHh 5][;햫5놷w|'y_yiEsﴓظl!O4}3 | 5^We/>MVNhE‹-C1QrQe*r necEP)MyR+:JeB!eT=7H70߻|ULOcYCQxEjQ%-ZZ_7ׯz19hddhUay?#Y7ֹ@prd])#c&B2%5N?r4>i?4]'#OX#'A'^@LdyXLUL۪Qҳ9SzT*-'+0;Es<O'w%]yt+MaZHBH":geԂ ̕d%3` q. ңL{**@=kN %@)EX'Ahf/Oc/| l<^Nq;-G3acЀKi 7jƬOKJϲjBW~fQhr,Dr;nuI4/n/H? Lj/NC*y$NW{)%`&-n8kiBPqtaG #t,SvbgTuq'S_u88 h7)[! JsTl:l͋0r:k٬q1U4MnWM7[kgw`*6%S=GL{,oc=17چñ.\ZPE1Tb|Z.ђ9$QLmΖ9F9M^5\C2=s$ym$39zcl7>tidz9CGT11E-xJ]V.WR˜(ЩZfZAMg'J= NMvu^( i_Sm^#L!E}&6D]ly|2UK_Jg - &a*>~ٶlֈ3W'ffh=ccYXKN9)]g6).0lLX8g4k EwwJyfҌ&䤋&|}@J;Cvn#g҇8mHNÀh[W !5s\4 Q8=M-Ҙyhwm/YNs ө"3fjeHmer6{\+tDU3x=!E@I\ZVM ^>__;_Gqf,NpJ21B_*Ѵ-4=EO`H_'\ՉWW/DǨfb9< >># = K:@Tnڣz7sEc iYr[}ZNWFa0!'3QWn*YƵ(͕W^CK[UoJ0 dF綋QO5}zf6Q}*AjD&&FWZn߲R:4Br՘[='(KgR\oZ| *l,kiLȫk~;t+C+*ys !2SZ<_,m+^]"DAz_#%bRl$WKPh!j^cg*bL'&S3KاZqC%<&lv9+I7|1iSMPWn9Y%3]]NMXOzB ?AZk0*]lH:hV2bkYSN@,XfAEkƮ489hJZ /WM1) F= *^fĔPr'̊'m:iw^byI83 $/"R''N+gU GmhK ,M)GF_m釚_lI:- J}A)Vg"dC\NѺyHG ȇGߡ^qjC˫uNgq~1#_[+Gl ;]iG$&AjX!:Yۥ帿DI $ȑ-+w^/Lqlܠ'햞1Z,; "=:Vj^mUg~aSq1OڑBx*ҕ;T_~C,|GWk/~@D Ӏ(z=Y(P&)& %*T dHgbiWfN1зM֓4]>!etʬɠkU=3e < mÚze?jbKT78k4dA + $/\fcc:tD%05e6)Žj9n#XRq36d`ϴ 3%\p<}O_ aPN3:4XdpZ#HВڬ3*S?#_*ۆFFZ[uhL|B ֜g]Qpr.ƀpwywMCrHMl/q`B^DW?a64múƑOWSdچ βjA1 v[_}#㏹X)ʒ wYg*ќI&@hWT3 b%FRq',hH/If k:7;41 b1NOXzPfejS򆜻\Yz(AeZOH(\X [+?gîcչ5J%ޝ,#2/nN,;}h,13S K@W2tIe@e#mqT^͈dYV2ҰlEL rd]̙ ?UNYaS?9&FVa,(^h8*H$b4ԙ5SNi21mǺnG%#h3Xu ޽Y2MO#[jV:=),뉕e%ܺ\T93zpQX3xsyE6DEث&8IBsi #{=+uH.fڒ)MSUAC/W`Y"SC0Ú2M0z6WILș= }☬fݧ~'&Y'z ]K 8ȧf̊0(j(D`A ڰ:sAG]? 8^Mn*]݇U?8s Y/_dQt""M5t9uR(QEOk,SZ=gA dTBx+ [zMA<"WΖhĒ#l:qѸonjxxxqHo@rxkX[nkq CTME;(7QJGZz7{(̳VqLfΊ럲nOJױ9~ke Ѽ``V%Dsո"e~4-*q[>zQ=E-^FwR'xanȜW!ӬGٛZg^kV>M4tv8vUvQ 0(@0@B & H̑jXB%A.]i۲{3oFĉW5/[9nwЍַy~8cB=] ~r~DvWb&<9a0oٍl '5>6ytJwQ%f#5'yrflj2ˈ[VZY f'[I6W^j2xYH}:!r:e9c k[/&\dA٨2?͍͞ wL IDAT:=ˇ3BZTVKi#'Hs*#)0Fmߎ^?zŦMKip"N[>&| BiٯHK1{t?'wR vj->v2H)7Kӣ1O4|mNbF=#̸ypBt/[P=y-i-Yor#epX.luV\$t MhdƁ62bgw<_ÛYr%~aAjbf` gEƙwݖaFv#!W@Tvb*;r`,LL[5@ԞLPZ}b rE !2-mS<|ኺ6aK`{KOdrtjNd y!'|M>4'S6#R?qx7GL*D77٠yxaCڅzSh+,Cmf=x&G%_a_c.%qԱCK.;3\<ŭKo,ǓKp|edX3.@]n'L?HSӫu[*()C{g@Tlo2/^׀˔3̬\ 2eB` )Z!2ƑaDK |뢞zDh[[gN*6 ̫7`:ʿUؑ!'aTN0c zԄDē;<}Ο¹XK>7w6Lw{$vA JAy2i1ln:O=U%KƘ3\Go^~ \ =H#=Vc]8^U5X gBlH`iF;"̅jCxs/9)!UCZǨ'oTrf.VR-CvSI{]ͷMi8xWrV?VW]9ؓe|'#[~7xAY969%.Þ|A#v@&'緜XnnEzO@0'J9=lNBC*q*)DPɧSE[ \CwWog^Uj 4{5\V~[0dmO=4.5*n_)ty47+ i_i⬜Ӻ"7Wn8"saWE#)ޠk L3Tr.A&[_B= (ILVLI(!Ӈ3.*CJ+VSGeTmvkQp> oq#&[R.7tz+Qk|f;8W 픑q\uZH؀NNOe!oXIk\pЙ,d?aPَhipc1Cc&t(Κ6ߟj*]27Ղz$ $hZ4!ce sQt嘐&o:JfANdTةn (6'AVy.o)u&_z/^c-D*E3!23rUd 81Di,_J|vW%xKVAz]'ıِ*c`J-+oOos"ky -wG\ `|~ h Fk5$eWB=֋"|(/s@2cq֗.boS.aAN4b#v'- C&_ܡ \-yK-ڢ8 >ZρY|TeA/۞Ŵ/{\tm!f`ta+K~FaKSSp\|yM25yv|^):<6sb*HMrt_Őa3v=Sg )m11[=V9L&ܯOAyYY'܈PW}j[tB#^w?s6ڵɤlcZa0^/oTDM@wb{6Lrdgvց2q?Cqj";>)77̑xG2IG̒h u@ E&DILn6ޱϪG*^uy?/VsbJ!3,aIǻؿ?n`eqlHJ5)oS-+sdmgFآwhnZIS!Z7!>@CJr4+E6e%)sFpq [Y} P;.qr>ʽU5e+cU#[It2:uE|&/H#ױ428˛HV2gGɖ٠ aGSȒ+=nsYmI .DDڋv"g0# 곆NUu9[+,~zLÖj|O<y4)Wr{3▇Q,%DBXyjpq\*1ڏQC%f1[xDljw&ZlEg׸a.b3Nf7mIzyA1kBed݂!|W_̾/E97g?1 3=ab'rF ș91E-jO gM6JwlEڅI:g[#K]X5Pќqۜh]GM$r5|1uya.E U¾6-#&ls)0L.'jv7>5=Ue:M8t}33~8(TGSUQ8X5\,lY00.to*l \ysYK$wJ?s.'2J4&W;y>>3Ζ!´uSrxb%a4A`y |/X:/gqPULڒ[1d)X[5βuv>|~4sfE췶7d] d2UBRfu`6̱b0ge2 sff Ӊ%3.G䛅N{\GUb^an ,yE\d=ƙdb@ =e$dFŒ9ǻtn 25XKyOr+*!̼|l?3%a 3 |_q+n&+Wk.́7|;nw|o?4|?c~)S"ˊjP oY 1< rD ^_#d[8=8aƄqn )kѡZrk 0LA y7=["oM= 7yx`fw~jg>۵`rC6dmYHB2PJ+l,TNَ9bRRlYO`@eiT?C&J+V=S5)k PE2Rws~NOrHL\q&&V #9˲|$UdP:Fv1hX*ĔyرCKfI'"[@G-SǨ Rḧ́dRBjz"S` jM(/oqPv$ WmPeߧ*{{ |H[vSjB-/էl6 V]wVag4tLT5i8ř w{J** FBrc,w[bxH#þ5J)83 5xO^*+Wj&. !Ӛ*9\R'5x&ӘVq(n(-'+p:l"wӓt;X"Szǖl%=l2Gq}N짍ns`@;OksRyq9ظ^#dcG3N3_=Z10HUZ$)6-x_m~o?ߤr))xxBJH٭vHB=ytǣzrcF$a X3}Sg1 7R^|ғGKivc̙&, 3| 1 oDp4eżw֢Mn PkR/Yyyg74\焎JNɏoEk"Dpbim!!5Û[9)8&%,7ęgv(4Cm2bNfYH26W,UR].B+<7P؋W ć;{&m FdD;h/pY+ɢ쥩磍sՅɑL8'{w-KAfʳ;7"0~7[#HK>qG_X-(\}9j5!:E2v4I&5k>5*|P AgP~aˑ2l 1"M>77bȁ/Z̘8@0$՘!/_zP`KW΢odvNnܰsuRķ+L#-4# |z2]bnҭfp{Xa\mX bY 5zraE>Вm7L#{;WrOV+3|!~)Y6SaL>N+d-FINϛyЙHi0M䔌5'Ij'j\GQ0ZX,EwjAKp" mcfF3-[9bDqQeku5\6C*"X띕k=7+X!EQ bh='eTk f)Vڅ:klu_13#"bxɚ !DZGaӗoi3\Ezlz2\9%?U5>y{<̴5>a;:Y5 cM5-m\Yadt)X{%%LJoXxww61Շ.?%r/ $3S.y~aF$9jKEY{^G(`VƑ7I'mTvZ=,m%,Iw +o3$?C<Paݞ_ԀB"&"%K;O9|GpSn`VFȢ:S۾)[[`:UzAUXHZ羙{5jtZ;fQYONA0Xf`RζeԈ`V9nB,R#дR$=Hs4Ut߰1Mr]d4~L"oUOY< [lgW[nny*S*6Yv{䂮 oеRVKD *\*7z8D!×w.-sk=/o_gɫ;~o/oAXwl6lV3;?燉/,LjI3+Wn&tr,F-TEKZEjA VXdj *uI\Ad#h:_rv,454~bPle ceU-4Oi1u46evT(v@ v8E[9l(/Ơ#bWh~9qfoc:##Ϛڲ d>m5AN H(HyIF/Np=w+l\P)Pr4#J/=gG~Q H=o]Kkk:סc|%a(QrPOKl9e7GggGt?DPW=,3Jp-6ؙlk4EMBqJ3iWpB4qئ^7=MC XK2kh-y3 + Fe2\Q{/3fomp+̧oPr` B͙ad7V0sdöaPb~=^.56ն˻y`[MȞy,3R?81dߌuT@&bw_ 5*-3)3̈́)ZIq5# b6L xt ְ:&h i R4xW(triq),,D`ZōTc^$0&Qo,|oSRO')5ƺ<2*+OIz&3B4uyP1qu~&A(1ڙi0&0Ul&`p+e{VNxK;@2 p`}]UiޙYԎvܞR {uرf Tj@DOz5!1 ީL˥ ږVrKV]?|x KHQZU"ZyiNT&z^cY|' }`!ɲ cC8w۰nkVZXGֆ!K.y99J>/.Óah^nnL[qdf1+!yHK\Z8vBp;`nW' +LD8:C:Pڂm@V5GfCZgWE~f[JxM*3݄x!X2/K1 3_["``Vf1\W̑P{|)/oq4iKԩyʕ/'JyPW!*;c7" k5noow~c3%5k6=펏o>᳗ #\{\lHjͼ%YISv, Z+yb,oʂ0LABtGLW[ _g\\@XOHQ2]%)eܢL^Nۼp4 6ŃX<:w|y=Mwbo}cW[6|}\ywׯ-V<:^fx~CW_͖_ac;!ԩcZ4-Ԓb.[&II3M}b WKܗa2.G\Y L39tXOb\u:{V]Chɉ!IХ3y&u5vKmEYZ@ L9v+3T_3J5oȁ7Mvf&Eނ! esi?W[PlQ*B]$!&b|pͺg7=7/׮"\4mk3o-͌SFGH4)ҟcOhID݊QdTxAoN'<*zaGll&%!֡4x4\7L9dw|ͥ$6MJcbE?.?ax8gw.(Tj5MXv$%LUXPrsUAޥ\VDۢg߿ß~ƜAl&򒭁̋[ƀT̜s<: UuLfh-V`$Y}eefkUnd.H~qڶty$iB #)OTYjs tZ}\[U< Qbj ZsjQs.@ś]hB/wL#?UW+V|1OR?5~&[?!<0fv<5扻{^s_y~#vF%QR B9vz92QW$4=d*XYlD "l12s"H(ɰ+ls4T \.vГ5abH9Ȟ!rg&Ta7#Z'Ni~erd*f#:5V[O=EԵv bBLʌs)VN MkC^W|\!&]^Uwlw(+\Idš$ܺ$Y͔)vF{}~g?o ʦ+v՚vf>S3_`OëS3{ItיH`S(3Sb|c4&2 H 2SioVZ"s`d{ao%u8E`DHsm  0D.8)k 3GsUFT=O68r`n0N[{%$fCJ0+_]lK3ok}8̬ʪK. zf0_ ƈL0 jn''bv_?)3rP'3N숽}}"̾](k984xVEkݞtoT2{Z|lkҥmN; hn`v\HNdDҭI>zrSB"t:c<ő5Iװ}R `=OG_L%35m ayڨuה9T+UW[ n*y0/)Q4F0yL7# :olQRX Hݣ: P]5wUeofvRj# HE]BrSp䎟0PHEeDW85[!@+a* TN,J¸1cUDpRvJni4l"x%Y(v;y4!_EYͦ &̻<+>SQ۔Lc o,VnCDF i ēfD!3WF[Pdp5U>{5-M6}}0L^;R !ef^*?Q2*tP^~]u CU<["n.ڜYό+#cչ2 6Y ԝ]XΒ8D3+9QQdP;2h+FrnW6ml,AvѴg.Dq ^pI|^s~hj"r mmv-7GGx<mxbX(oo@_Vm>y(>3@Y0$YŲWuE4$Fǔl'Ju :#AŠa 8O 6|`F2#mSdn\&3ԚZU tAlpW]ImԐ^3hN š|YR42Nt#b9Wn8 OW~Z:]Âռ:2&.K.nא]DbZu4=|ǺTz+/ʠ>;aٞw?S2؁8~?.~dwwL;8?w| ؅PXf>- ;àxX&_U'2s1kpuPFkNQ6G)Xf8|K f. ų! ưq9ܜkB9&p}s)RB}UUgY kTݻFI *9< ۾"$X&7HZ䖙Yfd=r3E⩈G!Wp(h,TT f亩PӼP4(f.Ǭ֦u낃 Bury 9oAډO-jle %83֑#91BbgکZ2!SBaM8gDԔLҨϷOn0`]Co^þ s:ɯۤ[rXĶ@vdXnAP9z.wePAqcL@} _HJ.#e|1l?gJίID94e\V32QV\ C-zYg4Trf"<>D{fȩ15B"GNtwXGB`pE{q gZL #5c*TRW`UiJ҆3-%\"f><5ㄫ6݌uXW|<pU6Q`MFg>I:NvÀ6H &!xrךfl1haJ)^Hn29Vms*ޮםpF QY9=#sk+tRs0uW&@2>;(ה71d[eに̿(Iۺ󎂑1q:p;~?yO*8&x0rsx=OSXAq#ag\3c7MmGScT YY-}-- .#_gfKW0ޡ5f09[x@H14v7Qvh9j4^ >J< WZ^FWǥ~Xz ԛm*^b%v@Tͯe˽m(AD%e<n*͍lRqvPƼ%H& qkXsHFl@HmS{6ܘsf~-! +y؈:#$"F|y' ^?]< qH{x1-k=FI!f1ُ\*;Ik@֜oxRoKB KHќm~GȢ3>c>OkdlyB&1\;҈YowP42l3\NΘBÑhŵ%W!OCwpb{=Jфe$r]uzFCuLє>kLFztJ!'blyx|XB"<B^ >7xP5frw6E~ 92M.\&5xuxh%##b"&xOHm*r"*n0 3a?:Yİ<]f] y{Ǘ!zb0WCO6zxBt!KMvjiR,7=^"|I.m]zf,H]EQPp'+EC2f-ĵ;*bMEq,?r?|,}%b[jMq D[l.yUsm 6v&-YY%qC xjl3$6Y 2Fơe`qo>2D3Izԅ, 918p:oyc[ӈ֛#o9]pn<3kѪfQsELwD3)_C;WOQqأ ø/O??ǿƒ,w׼#O %pwx&gxx|\Xgxs<],BHmn(Ԧ]u[) &K^c|{<F6Y<]^,hŹ$E֨C9՝Źֽ~/ IP'q5Wwg1pdjRM*N0A-V7AdsO3Q&A3kGS tdC}|{ZP !qUC((!biVrp; a7L#O'.=o_q/|}¬u [bN#5di(z:X'Řͯ;_cXa|ل]fC_[zQjC6! C+i-hea3>u؇)Kn8tcEbGWX΀)iTF\i!e4istdJ;=Qa;`!O,q[{b旯38GQM̰qVht)1vMS3-Ha>qY!W|\5|LJOXݑ#?[Ζ~BNL J$HqbX1QjBm.fF (Z~x!4j$MsVJĢ=*qNJ(#SE%rIbrQMfIuYf;*JUC Q8S\cQt"hھ(!r/lF%\@+={6GE^hVM4;YJ ® K3{E҂P]b4&&GHLSxkyBCղ^La P bEw/`'**|[io?7۸2/,@<>q[zrvH [DBI0_pK}YNM%&Dng=mUgc7۶YO6$o_|)pz:^eRuj9k4.u&t"1/|\x8#5wUP 2[{iIn5yqU/-\/d[[m~3/jCPAP]Sm̭jkʄ}nHݤQ 9T){P`(K Id H ݎ1Cm,(ُ8-`)!搧"[U#A6<*3o]U>8/ȑ|;N|3_g>o=#ݟ>!LĢM$y)%ܼZYf9f' *wAYQ]+N\WM_K0./#<͈bI0h͕-LjRu`D!4%4ERϺ)z*^h\ b+YweSū04>B, mnoe't+V!Ugy.[נei3XT b5=MZ%Z^p#O84bQ5&S8Q#HTRTNTm{]D8Qs^s{o,4kJ'Q];Pil2xw;R Qx ʙkE+d;NG,vׄb*IG2Ȅ٢/uh TVέ3T#c xpd~R/]@ / 䄔)N梞i"nKOc.(Bp :2$mtD. /@I-i %b-u h@9~WIk9 񞇏iY'VUGq7`-޷iHf@JHMa崴ZUoV +U1s=Q K¨*yR2E8/ݺ~)XC$hZu"ubqG)62u 2Lˠ4IdA4r8Čm}lܖ%[~"ҿx,i_Y;A.'QХgB+p' *a/5PT @F[_B<ʝ>YM'mD*?!NL>Pڵu l*`v'zw\2^뭬ಠ<kW??x7ǚe>S\ѱs, \K+5s[u&iRS Vi8ĐDNJuyS\ ٳtFc};ʤJy+ht O~ӅyOK  t M~rdWݠ͏ld*I!r jĹdNӂؖnĪjQ.V/r߸@(鸃ec%}lU@z O4Rsh<'!Z4 bۯ~ȷ/<|na494.ǫZy)L=k<&%.0 &g0td*j;ng^/WM]ի:so̻BH-VT>"puRkI% D]pYҝ+sӅ2-kQ#A`ojIݲd֠nz\)TIȀwS~m#c 3 IH鶾Y18"2.8^K(u-+Ő7(N6yՖ= 7O[-lmpYmRue"N+ *xu~J6DрbP̅Ln`A__~8b#v& K ` ɩ1䉉 "g - TJ0qe46'>u=?È3vG~{O393;47Huc9|0ptθS[ga_pB+JPݴF\֕镺²C0RdyO`,o O Ktv=ZF XR;}@DMU]EX!ZW=%i~@u`TQ^Yl(vn2y_c)^v|*EA )``G\#5)LLł`P6n; &w^W3|_ "R:Kg<-\"=PEƚ׀J](FթMQ:D[ɇ -}S:֡5v=FSUQŠ40_qt-Yu5E q vźmɀ,6Y ;}/Yr`̯sm^\S61CQPջފ}oyo(a1M]jS-anM`nT{ꃇߢgV|prAsJkhR>kH9ꬬ@)O3Vך@.ϼp 08ʹάnZnI -d5\fPHimo5>k[~K~k9dK0#hbhk@!l3pHdÇG ~o&VկAFs86f*\k]RPWI b*+TNsj0ޢBy?/ бإf"-#%S0Um, ]G/կ Q#?6#~9/ʢ͸̊A̍>L{P- 6G|y=KyYWiH`86 B>/2KgP=7R˝%*!9Zrᴐn1k5)e1LkܚRIy<&2h9tjcR@c!&Tbd\Oj-Jd!$rjwHahniF}R3&4%dUڗg \8 ǟΟ}_qၟo9kPmPR o&&sxi|'}Q"8؛s cp;p*դ *SfqDg番`#,KHjOI畄M`UNw=녳wƨq1X",aۜxf6͕ X:UI_Aכ+sB=mLv}"4=٭6[A5w+OSzU|K<"&P0:/:㿳&3kP[5:. 9RDk.׷rDBV9BXo6uzzҟZ5mG'JyTʅ@VC rUbڞ sFeS*g)Gc۟n~U8o.]Wȣ@j`>b{,*GdfF7%W76eGҁ RV Oיe#7`ⵉzNS"6!b| FG,E^ !DžCh]q< kxbdp ƲMڀι0\5 R@k6,YkP|E9#7A EX<B:78S]Ɖ,&6a0H%LvB̡͝ktRO ᮐ"Gf`F(*0h aNI9`4{/TuZ1jʤC c?9W&nǴ#Gzbgu IDATLrE <4N󤛒+^gJtqJdNbyVܫhTASi_/!79S,)\(}@$@H@mF(Vj]e:Q,(ۧI[nFV-Z6&qXlK 5k!K#[DH՝6A3okZiCnOH[KC.kK)_3$ʱb:<"1Ikv_:Lu&GLVQM_\Z{DϱMTn1~)7Yn$١}oIeC\e悯 e6%|;ބdȦSD<Կ>lx”Ya7yBBgt&f?qp$FbhNOp P$Wy g6 YL?ַ+0D<#A=D=kũ^8^5oJ9wqPEUJ0FCPCFr")( 4{C$܍1q) 5 dF?/f*4UZs#R ,>5_]WI(}К)US\HilNa/SܔҠ9`Mp>uvHΉ,D6 ~{4glp9IQ,pZxckդ9eQ3(.|wlY3^@1#-WpŴ֛ Y!zMQiι̨4j-%bb-(W6qd?`IomԄ_3Lgq%1o^--l,%##IZ(1,nR4#֘0Zy5q19WzXLP'#M0u[K &M959VN[&d@{8|z7{~&E)Li/zL(n2^\Ź?S3[6 Q}n;PCbp *JK &li="ӥEڕO'`L6AjϚ+;rk*5&fO(X$S~!5 %8^H֓Wg[){BR-cAq)DD\Ɣ$.m[a֐ aٺP8=dnG`q1/u~lXl*؜%MQG_fFF|$3,rQh[ q?qJ%$4An>6BRM=AO;( z>ҭ uW:RS; C֕nìJ]Ʊ[%Ěmoge 2T7#=R h绉s/0ƕYezR"gSPc RiIKB2J3ymڤh39a5I8ђ#O'/ДJH 'Da:&+w  1c5ٰSLpJ6a0YSk,ϠُęefVBmEZþ>bTjPJ82'fWHSf&7iB4~QU!d-[t[D*yLs䶫l6GE 6 ^7w/6@bYnV STϦZ O3Z+k^ㅬp|Nc I5Y*:WοZRh: d5vD|B ` ۣn:iZ'Rȩ!TRV})Ss~YcibC># y:OrP=/Ɍk13~;_qiڝpdvxϯ>4j 7:jJi:}S8(f)vY/r4V3NXVY+!+ =U5v%o/!(T&|CܬYB+HHv)yV_ 5z̩]$~*`MI%+ep$X5Vn='S B[UZ*RsH[Ho@ָ+ eѾbt  lZQM2LgQU^ uS h V3*2Y6A µ84A_O_A>CFA#h.k%J1^#Wxz('ww E?Ih$=lW7N]: _wv]nZI2"᪯mHQ/5 Ǒ_Q4cbO(\ ۦ>8nl˜(R¸ L}<䙵g`4sV=Wwכ|8'Dq)I`(0 k(%Yސd%\vvRnH%D hjTQȹ*0"fo&Դ\L(8jQs]emnuY8J5s]c6 TkeUeXhVf08Ӝ֠5i,.Q} d A8H<@ۅ&ZU{䌶(sLQ Ґ`[Wk IsZr$ގ|sogy F ϒt&blǙOH$ )}ħ3q[˭ ])wìW/zYvӳ 4{r빵Fe95ٚ;P4OpЊI7mr!Cr…+m]lsW7WVr5 %]6P>aRZպsvm ؊EQ:P#7]tEAHv}ܵ{$_\ }{=[{&NgY!L@ֈǶW ,《`}ҍW_9cLCwLf=hV$\vJ=vƺxD#.x6XD}h%ɿ@F+b"D⌯Ճ8\4i 9 -^.3j\Zfϛ{ w yye_Wz@Sл5t;*2`eՅdd$FV<=y0|vp`(ac3ƓfYm*cyRW8cJ,J^ j#|u%!kY_oJ )Ы5#Ƶx[OKJ!|&v,Kxa{ե:FtU.ymbJ-PӚUU4Ҵ ٮlYn-3{=lȢ()RIH%xPk@ܣJBD 2##"3f7f֚bik> T}f97ԡ_! ye2xg7 #wƧZR9ϖ[}tgȆCr.¼)'C37'GFIh"HERԨ}I/rq Da!+QZ|u]*apW}DkKt.״ w $ۢXqVFKc4hi^ߖ1̓6) ޮ>deU>sӱ:)roR /V.4Yˬ Zs͇˵ȭXKWu@BVclfjJ''˪ȶrmJv0/>@ Ça[*;np`p)?%o>J#āt3K>o+f !M7 t+f䯇Eh.@u]Iw9T`GG=^nK&3h󮚣FتeUc 4OӌrwڞEKwC-oe}4p&Z\jZgY;cYD̡Q=-RrއmyqÒy7 6XYWÎ~]hͳ ѱJl4' <9^͚)ӈ+o,8e扔q,d!N8(*bY41-R8߻2 +RZ#CVG$r/H7H{t?ۻڪ,%PgÉw3Mlp&f|crySȠ^> |{NGjlwW}u(ͿI7fmCHF g̅k',B_;O*!Bt~@Ie9;bԥw-`V*x M?s:2rF{&FpKl+jP!OD݁8lXzpc#;LR݂ [!{3f =!,!uīq,fл_TQ!8.T aA}EK2O4HU+ hݘf G;wOܫuc֞$rosak<%_@F [KK' 3E۶ӳ쒭ƊP;o Y*)#Py|5B$?eaEFp#x*%iۿUkL6*gUO#D&G#1'_8y yuvoi'QW[__!?_'yGj&Q/ oq3#µǾ]r!IҳqzK|T(k+''.] XElr)Gw7Ky`Nt AwNjWyZ,|YPqt.c$שɓ)q!,1J'zrnBѕqn c זfe[ :. 2k;ZURfodmZ&8t}Bd>\MVéo.􊵱Gi˨3[Y[`XTHKt>S EoJH~~P64ᛯF~}b(˒ݼ|45FNu~F8>w!+3 W{\hK'+͞Y ÿ2&ݱYbCEͪ"UMϴbSu*nv>Vy,y)~2,@B}E?4Ūu+ W(F!r8ӺфDI3OB6l6Mh6q 8J?3""1vNʚ/L=UmcfXD45zvVul'wO%W;X7`Wq7T^ |xzvRu+S\Wf\enZ(-踩5!Gkܳޚl%$qȘ} Hٓp;+/Ѵ8DmϝHs3NM\GHUڭΪUhB^(!SpWuueI0r{C /n4 ]扥yrjGx:tfڧ/ywGREф@G|Rŏ5oWoϘyUG(2Wxn12:tFO`A7Y;usJ׼i%k(-m)d/7O7wddm$Kx4iy!?en#0B!frL_\AG]a;S6( 56Ȏ/֕˔;@=!FW݂/=uY:2VO|22e}c̡ c* ַ˳PKf82uW1X) $"OS6lD v'Qq~hC>ӈOrmimzZun5R#C-KaA]Dgo U~'z„OxE6C'p.v p70 jı PJw{яysNE Ũ<|U՚_7.sg-f]h'ihlj&A(+ %~'rFOΧmsCӗܙLs5:fb4=IX;" Ϛt{cÃ*SOۦzdGviI蜷rJyҙ,@W|$gn{xIN!ѴGzދAX L#y*3/L0c5jiNޓM=JN =JFK?NʙGqrj}˕\bs dhG|`毭4jD3ϩ^=el2ʹnklͷG[¹CJ{7Z=CS"̼gs:#[2sٓވjwLa` Z|,~=y7]nt*xD)ZxzoYI}&rzP Gu]e4}DI:I^ݲ O3on/K`kL0W<.HhNeT) j@- d_e?f/ y8T%[cCqKgzNY̪RlaFЦ;5lVE2 vKqg}Ӿ3{?R?#F,bop l=+00Oq׍ N_tu;ORi3̪AAO x*H!bȹQOz0F%J(f nܿ _̓Y"leO_9A^%\5O2n6iC'6 ׆g$^+7G\ T#ޅM)c &43F@-H5Ⱦ IDAT~*W,; "8Mak܀Npc\]I.cv' OJ>ʘq o?3s(&.DiK#ř,8n=G~gx\|596^Rr&/(of7LQz֬C%v^ߨ$3)pYxVm:&n<NTA!6EH::&bύJS(={Dg1zV(Wc2a2|HƐhDZz\\/[dOgt|bUsn$޸"^p կ!0[Ws{r?VB~K\fc ٌ .R>qV4HXzx@G֮~ $4Q//DO0P )*a+v#o~&EqoaVmH"07>=>AnuSߺLʊ-VljӴaxOAеK_3J 2p| LX^ƑEIO37(j}x:q,'{[JE:BNAeEOvNu[eXkEr(b&7kԽÑڏ~x-ǫ|xX{y/s}nkP:LTdFG:L#mmz}ԽWi |K}GZ(n 7Yjtւbv$m[#+{+^Ońs`Oid Fa1ZG+̆Ֆ~lIs]$NZ#"RlM_*bAP[|?̹(D(i'Cd9InX6dOSswʲ=m\uz GCĞ̶me9e x%Gn}·63Ezham݀8A8 $d:|;~l+7iyP(]GhE~a#WΙ ZDK1m*ΦhyK_hK N=9Og6i G =)"!7 !kD9ug9ݥʼPo%VuwKaH]E4 ]eJ]Ǧ o'5r"zyiG KLҺ9(voϠcL>#9اh!$z=^ Wp 0+tiQaW9v>ѥdq,Xb~t9yƞ1΅d5_#+YGخaGbq4d鯡m*7,YҨbxe- cfqY#'{|W0HdNda/'m\<5cn}M-Aw!m"jΉH- "B<ƠvD)}G] %}w\5B3cj<,9Uw(7Z@;.!Lo0qF)_q3Ov=m''?٩ihŭy!MA.oJ2- +uT珸K\{jO./\Txu4sZ( L;x& h*ifҿvQRi6w1A\uDHvfapjkեN7;]I&~)w^@1;I_):m切^ :uFvH|7dSs+6qu+Asֲ};FcYt{{OR9wGN晧=<̔=5$F>mL/˙ɳQVBl0 ^h7G5op8j"'v+GS"FwD͋G.F~ % lT v=q\V,4w`gtE׆wTGELmdrcЗsjGE5Cd֧ Ke* s_ճ|@w^3Kw4J弰D~;,PrѪapLdgN$5 C!5ά-$faqxϾų&+|zHWfEKHka~zAt3p\hYw8|ۓ>"5kPew~^apGW5xBP~_]ܲaA<cMVZ&Io:m[HPcl!x)@WEi'09vP5,\x}^_$Zϲ}}|<cPaMsm5w,n0.o{̅}PAXF0^$ܫ[n=_?s 6S,Bp9q_~C sm5pфpgvZznn uMZ0[N!VXu's!ϑ"O ]f9$jZl ,ᄯVԨ"-qn] X)8x8֤HCn4 ԃTEȽ9&[00#vc)lVeMer=OVx7}.y47^Lsx* r\B#Xld`޴fՍhR[`5D|[sMmɪy^wm4)P‰mwə|Dg5]wO}mtN3{&=L6DcU&B,{emzaqm`DoZeM2]$-\ snoW߸Vф\A찮z콂c>~k sE{L23W볜!0-𧔗u{ !]O!f?|~"`d\@_.gcInLkU)l67\'w^B]DrR |?-C(^̡1,w41}Z46vy7gΥG >)j嗟ӹ#J܋4:+=eGmX>͸0ojyۺ>/Vo6iߍ0hߜ('tm$FDxZ,ƀ( q_)Gbt{jHE41_q^A\l 0:D/WZY |‡n.l: \mffS Ɨ/W/G$+>!C{7ܼ xRWFƾqHYxrZ^&|t%.y_/RdhzfF[1RVD\z(TLilh_:%xb2jotP C3eHS!6D ZU['GI>r}i{?a!HG^>t|66uy̶.[ՀJ[)^֎эBk83U\Ʊ_~`?_2 qfb5# ֋%_ O_,N Mco)- o*}D*_iHp›&΅"KɅ燋 1V DK\zyWCƊ j5~~4^e ,켃gO2Db'*v`O͎|Q Kg$s`je}-DžwO =s_锩"_vbp:[Egw7phv"|UTTѹ:Ziٹx;NhѤ-"Qv1J[YZꋉi?۔*ݯˆ*scļ!>)cp6VhκmYi:: $<mH,BpLek[EO뛤1"EӎughSQ cMpeΪ22ej#'|5S%';FtE 5vA 0ȋH"^vȇˁst\y 8s]_1K(SXBG4eR=e[H}zMad^-Wі.йh R'nbd+12K{30LWơBO[.8r'<ZB<.oi|@T#ue)LG_̾ZKVʹ*kV E^ݲq>ԸI̕_Ӊ`@ZfR3'IwZ/S{E\MV~UjԿ=usk͖=qz}qH}.Nl sDB}(I@8gyghݝyBU@ڭ vJ sYBg7bhz[;y+:H ;rVjʕS?Hϧ~3ծ;iO븫O'Z^Z9gpi9v#;Ooz`>RaچRqnngQ1vcC̿=,Xzo,%ӪIja/L2z|7R2ٲz bI$O~ h}}L^*iF${cPWa wq,7_ZB۵ǟ 2F'n6vmcD@M bHbeΔl=0$lK<&h{7YP1wVK$q0xbb5@ƹU'ۦԀ4vv`|Q5wqu͕s1!Dٹ"s=KOlkT$R;!…A]1j>?7JN 1H*F=;D5"DxD'8`TXv^ڕ FiWu^>Fm9z=G5M&%|S-'m.X DrJ @DN2j )y\7ר8o7& EB&&g&(9c$]ѩJQI|1N6g~{){B͎ߴ"*} KWC5rdd;usϛfe]l yQ@]LXk[GwaTI3R//o7'!ql_ lpY laa%"=\EoɺAhg䀨ZpTaBo͕5:х d]]PbS"g%QRTRrG#Y֘lq4Ci?F3 JLt_d`\ ̖WiapvK =C7R>v ~^[`[u<βOxMv0y:PNwFPr]gjh5F|Vb0֑/3$"rVf\ҼRw<7N-Y_cUCڈ'8м/(s\#7=NέgfZK`˲\M)N2[l/]#ׁ] <,LLhl7En`:ygǭף33.Y4J􌑐VD@k@6ifMh]Jinxy/BN'z×oY u?GӇ_O_Zp̧M6ݣ%%!rs͎9g؊"-Hc̙{r`)G3D9)]f QT{xsO6V}ɚc:^˽1~ Dbз2AֱGwO骋D zt/y◫grLfSLN7FnsqB:Vbw7 e DzH?S.$hwdM#T.4MDhl"ڿP~&)@,Rg4%7 6oEeA[2) ;ޟ[O|8yD 9n=>Ꮻ4Щl3vhgz #fhQ@,jW7C=svװyRPLcAlg7%_;Ɒ/SRE, ,)Ċ*n4i؟7͉\0uc2Wwk#"+~Lv4)]6f'tr[YXqZQ?j#)\#Ӽ한41Є@ ԙLn>Qۉugǩm f+lX VYgqҕw &v1Zݻx}˻'-w7 Dk'ɚ BUΓE3EI{.nk 6xbecCШ(rΛv6hi#KgЫpsvn͈STU_%PN\!Thu+[2Z UYQʂ Xg:c޵P6֭Q3#/CvV9Nz) IDAT! vͫ;m;|la3!9Bڨ:1t:)ͷ1dηMD^6F-%{?/K!XyQĶ>'ӁDV <NGm@,{aoh~/_{ڈәiyv |?9>M?F'.r Ws8mBǵ{Jm]~EG:&#M|#rЮ iy/~~6v΋,h{d"3|VUVBFVZ@}s42&Rlh9NbњUp6r$!`mXnYo6@+˴(S 0X;'7zϼ}diaF 8>W}C`&eI_]C(=aZPPƷ#c~;.p^j:ono9s4@i)j_?X5#Jޣ5N}zgx:S'88 i㢩p"׈tGxª7Em6aU\.;z+rkGs_͊#,.h}h[}ۃǟ>Ebע\xC:Z#jAD^5s>0!OW,͜R-Wέ}$XךYX8x\=_ܓDBEg,`rD0jL_8ͮyZjԃ{9OFZ2Ac|X͜uWkBl7x&]+wԘe8p2BouG$ЂͤyO7ㄖD$f.2t^mo_JDW@,B@ Hɶs@$ԭ#1D@BFd/AB <G^LWTb߶2S Y\&F<|8Bo䉃%y[yO9uB 50FϮU"!q*jJ7W^Fw!?ED@h$:G+x<)'8Ji!V7V<>q>t<5#zhs8K_SdJBm>1Zp:_rOkTC)=lG P~U 6JK5hVrݐl(Ű:b)Z(7&, QB wv9ⱇ17ɗgI6+fs ‚kT[!;fdE~\ 1<@keuuݙ|zjipRYIF7Gcɝr!cnu>LrC$ :u\|Y{mL}wc%M8ϜO u׊>P4<1/#C⇯,9/N|w2a;^B-j0ೱXkqfWs JHNx֚x.PEc^l}!z(K^ƹBl¢^T=4h[Jra3̐G]hBv]^RFlj|V 0; ¼P XB<E+oX;7_k9l7vZ83iܖ3(.RscV{B-vkJ]Hp ]y<}qi`pbmf4 m3՘j^l>oU AC`7,UUYju i'U׊a`DZb='7cz73](͖&:ѥOiV&G;${^ĆU*Ym6$QyN8yo,#Gh T4**/SheCRKnY5C zțTx& ,H"Plɬv)qGB7' r1C Rf7O7zmӣ$9-Z5c 9wnY`c* #b2[Fo[u̜p;r3/|8A(q J W*35# T7Tɍ"*83CJ4Bؚ~WGPyf;V \a EOvt̍bkͪRl(*\o5-=3FGLD~-"[2YG. 7`~I#RwLy4q9\;"t 1pL,jʫM}s47ı\7ȧ$Nb[rDX/݇ʀT5vdt]NEfkp/ח頢@gjqxC*ά%ׅGڛ4Ygzϙ9T ٓDMfdvZ4 $*+3#~&-l4.BUVĽ|>/Ǟo7gSp+}f]8`[[+f^ؖ6: 4yQ+30:cpp,_nmkY_mYhq'wQf:x`nH$ -k(qхls C.ijMT\%̮Bl\6RgV'K䴵px޿&1yna4c*"[aCdp'vP"}\L@)J;3c]G8R:.32<^}91fN3loA.ǿz ʯ*2 @Jm\PDSBXs #PUdFN}UcJTeI+N!RV*O?tTxJj[<3[C S1ܸB+&o!pRxUݢ( *ND*"œztsQcy4iؼ5'ܼp7tpܼr#j'2zK`/Ie2ͥiu']L$,mPHzUiTdvL#6YLRVhP X$ŻmU q8UgII]"HIR.=}iYm*% 3pw83^泪B[8a±pGzn;n-߳a0)#dհ Ta݊B4:yEG+aH&½H)o>)|ƀIHoS{dW k jݨΘmm4Vٓ.0?aOwеbߘdjg_ÅyN. H*;KgZ%wr*zIڦ[F@F_ 5Q,1MS5>fC BIʅ,s拶m"f[Tx?0 yQ81:׸Zv~=ۂuR |^2ϕ{=zį5[#Dr%m(E%q[سYX]4(ԽU^n3MKb=Zv* nf;L0`ƍyʛr+n3j~\'12'r%{N'ƨ/%aiʺ' ŤDsfVqYxiQ2n~h"}qx{1|Dau_FD-LYMLY݋sA.il^+gd4F$kb *4Kcgf^f}֢_WPDO58khP ܹb7:ki0/Rv~lY#k (pުGҀլ̒jZ7 ƾeUtQh=l/;$ywƆXƺ%H?N+0Cg|OEJkJ[(!ujKaj@}ϑ4Qf|T,1+o˕7櫟r]Nȅq8,kgrGe.>C{)LۤCzv(SaC6InJ PYM\O)\oZCi]2s%/DSY/Z_Z0dLm #@SVe7lJ6m1,n0/qkp AB<)` *Ҵq\W6+ V#sjA>:ه"bn9c 5])n]s_Fbepn=CT˶u9^g5 0g|%&t̓5*s7Zu=)/wV ׼Dd#HG^5r,O;͸m.un{9nm&g,@*$m$Y>4hso>y ]s#iIt-cADz﯅5فmjmHOc(5dҴzWPVܦIt 8qŽ$FZ>/5ke*CkD$$'Uj6ve1M=Xeek+TLnzj'td4w3S\7l)5c&z2R޴O6}ejWKʫV 4 '6Bkڤfw߂58u;bG\4Yp W6P "0MvYmo"iS$\{u,8ut4 z^Ǭޢ8O4Y"]G#cTsmY f2C_Kˈd.mgM廓21x'qdGn7Lm4;zW$( ;hytrV18M3ѩ8?lc|u(Z-hזmSQQ!Wb@LeXx!awNK)jdt(x̉(䰕O*-/)ܚY\`u} ^|Y_{ q WXqL_pLC͉[9kh T.R:UhH-E!fbT:۫m4bxм]s 0X006Z q!]`Wޔ?;(7mEiOUq5WGAŋD(uE779!`ӕl;x( ,Pe6Qk }dR^fQzuuZlk-x噡Uf褳dEQ#FZ+x!3'T<FJ]JSy݉-U42 rs8}=52c-ogN3ӌw Y$e"'nvLJO|~f2F۩sS&8+? |o>xeNHߩkAGAHz/c E֙"R˒ZT:B(Ns0(XGzv5F,qfu&rE`y7Ee V3?fn:Г" 6,w=gR=cNˤ&\GgxURYJkQ *#FJw AqSydœ d35c8P ovz8q g>ܘftԤsnr)LY3/dbdlнm1M_aEXdoefP˦,`99,\FrbIYOzUpfveꌩJ8 7/($S .0U^Fk5Ī-\ca m 8?_mcB ZG;w_iԓ [1p Sgu䊊XBs若+"UzV ̌]QotSTt[ۀpŪW%T28k9? w,WK 0"(LS!/GC6RRyi[:yNqtpw`Q\L;q)("Rm\,u8u<^yOD:Ƹ։5,FJRi 1wfAf92&)#m =ZTeHo/{N 1*˜dQ ,ĦMiZʹ JYLn}r78ϩq1$eB. 3x~% _u:H2NO +Og%R~#* lÚuX+bx 9TZ ˛#e䚫 x^˗e p(o0<>Ӊ~7oӣ) ei"Lz;-\.}Ero8T,,%Ԟ9wmrQxx}nF]thujB&W>W2*Y=R{8 Xu$漺ɹiJ 5R2{<$wO:>u7:MposϡMT@*pQ{oJ(9yM{%7No>0=ӕ˅L<^(.0U3XŔ13_3 OW|D)=ox:Sz.xW*]EKL̅2a'eǥKc4,)v%&OC\3'wO8_iEVjrc-SbNfMάϻyvKU ɋ]`{ _nJUiی4X2lkSmo7K怺WJx7f=z𖧤"I{qDdJVdr\*]$a͍l׍V/蛀3|"iuMIqs[~@|coI>Ȝ@/]S.ӆcf~V- gvJo9ȊWGukc]poYR 0 k|cQD73URDb{Blȹ\ N׉7U3 S?ejQG5 {Wf;`E\#6u5bkۑŒzwPU: })1N:xd1gEsM)[Q[- T۪ȭ%OdRP 競,K#)4U*-^o4 B0j_nbne$ˍsj|W Z:-BxW[@mԙ dz,_jy&WΑI oz <=&,lDp$fn_13*\J5MeTH)n 7;_TnroΑlaSȇ[NpM\ JӄMXX2FZFu(딈+ߠ{r%+Ua݈b -7̯2I2kuѣE \kF0>^t ωkRm^+9R<7xo7;7<Ό]ǡជ{R:g&|s862'#&>=q2Zz4A쭛NWɑV#p)-t3HhAo;r_QSΌNBM$Q*ә~O`?2t>LP)QuN:*O@Hl^@RqSW1%wMV,}XT#y*d}PDk`v\dAb밶|,lΥ)-a ">f2+Jq%J]e1Lc֔fCָYV3wKaMべp=k⅌P2H&ݟJƃlU xCD&&>syKy|ŷ ܲ.cW9I:u$(zQޮr?Q8M >}9jfM٤-6 Y9N\q%m VڼS{iϾ֤5\R_tSd.[` s|#בNrBP~4EuFDoeVl7זj158fJN$FRL-jDU 2CdN%a:G*<84 yNj&5~U{g†ҘQ %Q"ܤL&Ǵ~sn/4bW6M"`zG&=rḨZ@%*`Ϊ:'ZSr?K1nz8&1-}GuΪ\nNT ';>ewKh0[b**>O\%Sn'%bafW@6z"_Tl ~qH y/0ȔҳE2\v}Uj qUJcbN*|~N/o\ tmo(>܈ dNgpfL]'O_ϑぃjc63WMo4P*0qdj=`{B&Ֆ& 28:"@dgc»w]­&#]XsߝH+֭k4`{L#u/jq+`٬Ό(8:"-x6a'(0'tffV7}e#~ (ej#9RSـN\,G2B_*rI&:7\oOS+C p;Rw?˿_a ٜUť%J0s\]2ζ]U3)Txآs>S8 X( ȉq"J9q#ta>kWQ-p󃯹1GnL+)”0Y_+ ،uHÉ;jT▉SD Qre̘5[u~ vy^ U$vޛ3.0SWԍ" ([?F[˝V:)p#TȆCm|mVkRxqɉQᴂ'-a*c2UM3yZXNy?)ҙU^/n1VB]9}\ݑ{ɒ2-!CJfL(I[)"Ov(2J 'WQ:f]_:*Q'R!.&>y ֯gK_c3.(RسCp1N-MPf#h;O)̵Aڦ҂de\{# +k\)Q]kނBN|pVS/<':iM-MW )fp,[Q^s횡3[~]UMM1b/,֍[0*\[mjM;rjR*cIPalDG~IrdضDX|HEA[U$mj,ğu凔][|d1o@9c= ]Fr&8Bx* hC}5W6KfcCh@&Sa8SJ-8:r| _qc{Ht_/]/JU*5) x3)V/%9U{蝢2B\zŤ]ŹWɅ́z2dHW鴶f+-}YEYFWBW&Vyvy&Kʘ@3hވ>{.3yHMloam^-cvMkbn0j0q1TpPS)J3WbN >vA>-EdɛlI!.[MDW $R ]t2Wr[$ǽ3\T`-8K2<=qMw'QT]k>|'uMXmt= ]t֖2 B0zXI~vگ)$J98ܤIԁif%r_d87zx9y$nLߘ v$8-J +1od];+[>_)Zc; s`-wl:폝_(M0d54]ϱ6q0_bԋ C$ f 0Z@ EJfNĤ \?ڮc/RxXQ Oq{ rFBIìP [| sBӰ4y,C/֏R,\ ړV}!e'ۤ5-Y!8xJƼ4;.|zT<9U Joo.|?*̶ *uyۅb IDATJZ2|׆qqwJe[(pr4A2BH/Jѳ,9V3={JUQb.#1s1:v&NQˢ)cSO@͛ Yn?'5RLt^WC h ftU")3Fz7{>}DMm<'zkˮ]V"RLZ߮U\՚ɪnVpwKpmG5wo6Wp0L:sI\cK z{z sO sjQFR zR2EEڧA;]Ri4)Kc/۬Q+s!UQK?U+690PwjX»MR)No0OH9Bc38K[{B%FYP62}h \Rճyك|ۗUF T<àK̉)]7<ވ@3: qM <Ă À7rєCU&1lsٛ`=H]վXT I!W`^k 9n" XΒa:nXY5,}pIc` Y&SW%f 9^~ez͛_о9=;M>ύ>z+y[6^ݿ}CwZ>K/K~WQgDv+ƪ 5u^e'ESJV)F{`QqaEQgrabS+*1SO*f<LLI1sruR}CTNUW,&ze_õ0 S#(%sr$ +`ur#|92x XY\&niN0ׯR$BZǽrHɲ r>_>\>+!R#`s{:`DB T:DS/I"s7A\Tj#&jC ϓFs߄ֺlDT\\罣 4b-}̵ߔ4ICsC eJ/Eݩ`VbiyzKk-mX(" ǀ7@ˊ(Mf  o ϛe&x+i=6usB*\DT;M_:5}[&7ewV)UWgDSU̹r2\zB7L]#%Rߎ5(xBťHmn]80Ĵ$fVBebW' 5qxK<Ǣ;fT?0oVi/Ƽr(d-[ڵI]ܖ$&梕4KR֩K}guˀP*0N/Q҆k^6~pp*йUţZeޒuLTCof_8xޝAwRΨGc H¯rŒc;ax _f g7dxb*-J cNU`oHOU—ajj&ϯ,GBNcf[;0\G +Rc}ibeEU"ҦQ4td+EMr* o{r> L\'>p;~L\ Xe{|xr/C:T)i1{ѺD. g.3S"V]䌳J3TTR;3]pӄy{&I oOemFE#5mhfkw8z,ccѯ`ܮMptl/igN|'u ΑD3LW>>jٺ@:7@=d%aq-xpja>zxS|muBbc*Ŋ\ƦP 7e2Ϥ 9e,'̓:߼oxz^G2]7#VWΪsdCD ͑ 5 h-qk΅ 7BԽĭ^"rpV[oW`~tR<irp}*31Zq-F٥dJ$nk3d[)1 ?g??5%EH@1/̟1}%Zl/Ff=-?G>s~`6CyκߢTEdKZƤZb*V & S2r˽gs2c*Yp:9s1qH͊YH40J= Cog.gx|dNG\{G>?|#;yu&zJWY*13gݫ.QwO%6QvmH㖨M+SHcQ.l8db`(㕿5H ghAU!uflse\mB<&%? d\:Kn-o88䇼o>pJ;Nx߂%-aXl@JEUb>$ɒdɕ|DMJIpG| >"7|J/(ԢbOdu DfDA9z" "X$2#|;+>+0 Λ,RVKAwPOeY91g MSh0|]Xٶa6]#ۧ;Gm.hSb3h;saK(w CWk`ap0%dG=Tq1IAx՝RoK 3&n:?)b\H 8O c+w9Gu#-b3\S]&xe }O9B!lPu bsK&6g:i[oK:R,vŲ˶x'D'R9Ѳr]b59jhL4.m&8LOzwfd*ׄ/4k:i6Cl_hMSnlR\SzêWLaȲx}?X'Q:9s+21~T!g6F)ypd pL;t/gѯnӉS5Ve7@qhY>;BISTK !AvTN6!Fȅ_!^J~cWBƊ%;CHYOt.^5Wܱ;rk]bo - maHyY2<3qp̑YGN=?Cw/OTLJ]gSsO 5B3t ]8YFOgƹڷKuμO8KioG UL-kx!ƪss8pj7᪟wIM;,kF;wK}wqh9Zj{Rb);PGF]d{=(4sC*-gDGYv_-K8{>8īv1rUH udO)F>Dfi&k=t/C%䂫;s{aƷ>q#lvz5&ǯ~ɷ_Q|ޯ#a6;[.uw^6g| ,RjZ3cdҏP9l= mM˱ħux)du~7ڷFP9:tV K5{]eT:wX*FDx<[n,t6~ϸ@Ѽ:c>_SEZF|z7f¹pjHk_a=YOBv#p2y1,L. =?߾}^nGGq1McL4jvT8{\C'K}fیp=VWR+[ѫMDq]#9yds]=R 0n8+8Қ#6vbx'@'ndJv̚0\YTy>S m Jޖ uuBMJGmл]p{X#.ޣ&53exc1xWm|=Ŷ+eE;{ogsi9̼tkjϘuX?ڄkG+\M$H? |O忓 p7'Ryk\Lyk((UUxl)SERoTmsW<=v gg{C,Z :q5)7c*LΦ'LBe- jεo# hzoC\3hSm"[_\'>t7Y:^?kȴ-%2oQJ}Oض׾Ӑ5{=;!\b5XNɕnqe|UĜiy]aθ̨Cļyْ2~װ{ɒ@DžllݍԱl8m5GGiq0VP`S<7)l'BRe1qjd}o؛ꍂUTs۲0F3sa҄dl}e&ic̜ XmI{s^b#yV6d1BAhx:!+>P<3? zxDgN׋]#%T5)ӔDIBӔ=?:;b[;C ^iC-osx-(bgꁳNwze {#/eZ)`qAqFw39"w3l/< iCwq=iZ~ @Gʠ/&*_`Wn.x? X жx/ -ۍ95 jYfvNLݬjR[8ĖКsnJeb"U-.H<*u'@i=qSh!wHG|$ .;*g@xٽweٮZOHuL,ڧi]BR !5HwA;#a\cHo['c,Hgpu=-sft8MWum$U{', -HK)L'o)Ml=B,\Ӟ?\#~8mzݍi_w?A|wX>,̋PUrralLr^] C>LPIvP"T 'yG)a -{;ܢa[7Lr|2~ ;z}; w.Tm3f-ƀˎ6X[MT =dSDL]w&{R4^Lou%ņ=ضqX9z0ql F}0pƸ0f۫jjޒxh7Qv* -'e zR.lCDgO#c^~^+8UZUuI%]"x:CTWstNVRie PTO A cjt㼐(qq^ԲCG+2 m}eg~fs:;m6S8R" Ҙ RMgQ?deS@PY,R皹&”hNRE(CnU¼0-8xD@*CUgis"'X.o-r";sJ_31xn3igȟ}/~N+|r s摿)>7ǜ)_>_35d*u+Hzr3;*x*k4׌T Py}4`M :tTvy^Ξ[6U`š׎tk 9\pJ)ܧJn_6 F=(;564_Oi{: vtQƀrq.' nwfj+ڦVL695xcSq1QSxm~X4MhɅsVHTg$=> &m@O>0gukޢVs&%Go;r,Ī핺[ozTj*{F?KK:ͶȖa*LA|Ș -υ.TO-K!E#Ԍh1\}u]Y(ˆYvx:MZLoح'>aR]e n9<#;3k.4OK̇`s:AE)U&Uȏo9ٚ9n3>rpID5z`$ޫI:iZU:ւMˊވ|ּͣʐP|PEB*96&΍MHILpyK6+dGeAγ 'ԛU !P ɚM֒Q)YSW"h  mu:\oL]PՅ[2+<6uN8BˑGbe|G\Y"_?+/tc!1=^ỏ%W/ĒҺ͌g%ENνLu(&(*IHt:6(hj!,R@+;lHtY 8%nZ$mjgdeEp>e$Ά=5dp@H::әA5!KUSlQh 9DI53zRDrai-:[, fEMM.rE6a(\,5CP xa,RsS0.LV8=ri3x)voL,s~*V!df+)Gƥ[Ah*K7̩ֈR}U;ǔ, %nQb %hSځjdb&HrʮB.@hxr|raMs4XZ NaɈcl ^”j'&lؗT*l*<<(tXIqŖ]q 0-8 |w'~ ?0-,~uWw48ޮ& =;~rtbI%7 6vE9Ez[Ul0W0[i繣,1eAYX*_O,y8qq,~}~k/;)9å!O_o#wHT_[(|4np65*U0^njkf(uئL΄gZIL)/BVv\ raS'ѷfV*\Ex<YmӚ'uaLxh/ wo>M&jvgݶ+tCY&_ Op])U$!"4ǎy3JٵR.Zݒơ-Ccđ:h^HKORO;mTpnG I_3DXH'p'n9Rj5COwI[d̞&Qt"LCCĎݱ쪵)@:o-x;q1Fw]jAF6W$-/J6rU508 EC3z3щsO2M9W^_7s\ 8z'ZϿ/?29 tQ Y6߀%"4-v> KDڍ XА~¸6K2.1< 8>if?&c(NZ#bo0.ǥM"J4#֘wWa Paa _]#s9E eC¶b sӤ!xp\[OSyҡΘ&{V fB}6t˜Lߐ|gѲwx_>)Ѳ(9<3Sz<6t12"nMZo˙60GUP5PmT\S8@N\=4R'@oK&g *l|FV=x$syD7e P>==W>=n)hj\jThSaV!xH8R0uq\"O􋿸O`N e<| dĜt8QN)#058qɊC+iȘ x:}?Agb/9XvGqMhu(b _ 'h[R VNM N$5z4)feAIcA ѳ"Vpby=x|χT >7d!Nǁo> ocT(Mk _),lM44< ?^x576؜F'UJU`&><HKLYGn5q>w;l9K8 ?4{Ǐ$OiHl5J榪j\0d TLvuY,n\ Щj[BY8ׅƔS`:Rb)Z|gu:N:,;_^=rTh% J69\L[OKuˋU`MGeKhRahHS3}e\eø|L)Xwx2ڏ͟*xy\gnQ pSxR9J%9lS|M=uGq9wVW80Y5F}WK-l}}( ?6zP;rTG ߫pGiώ|ymCX*u|hVOlvDxF6Be;SѳvkMH $ .tU4"Eq&R0 3/͸<<&㵰%Q4nBˬײUW_r!Ga cNT?س8^o&r1"s/V@L6|}VwN{cZh=Gri\BGh r`2f3x|t7Q-45C7 =)G;ZܸwvCф8عl/ $!‡HLI54 q!9|.s7[H#,k5vfcd 3h-Ƴ$n3 ֤sSǹ^G뱖~X+RTNeN_j".7]OQ~ 79Rrwkt8ȝf5%g@3/ DOTCp"q?)y0P^6?{,6l6. Kfb3J 5OhRn/2 (v>+lin#"Ř1Y^œ;Gz#deޖ~Jx\m{!l:{N1yG=Y{ >C"&ތ\( ^H߁ IDATj91pӘbGw;5ĘmX_fbPiYe6mM7W?&y}l?3gfάoWLt: .SMO9~6rSd|Zijd{!aZUpni;۪oZ%na)#)z[!H׸]QaVػsb5\*^eGъSGXP4LPxU3m 5d3m"FJ/w>x if ͑*:ն6/,7Ny rX . 2o@5VƁș9x3,uv*^W@xLj{wqw %f] ~y蹌H‰%(ňm]k65,'̑)38 2\\C,^s8X] jnfY[BˌJSU;\ xǘ ?9bk"sKq==Ͽ$~| ĸi iax'?/)WB:tsbo13.$U"k[4E&Sjp*66TK$PU;y熎$dͺ xMj9Z(U35ye}bc--`Sa3n&v~k25.O_!侊l<[:'~Gm<$)mI< .|mJřɺ^#$5je"cd1UYдtGaĹ"0'{Ul);@kk{Z7kjBڊ:q$N6-!SK(2 $3]G) x2 )6쐯uY핅$|J?Hw%cL{_1V*_7GB^{ȝz瓷zKp UH%pp!y׸>- mvrgg\ŷ5G!KS⭢d~Y(;JgnS"b'%r9c$R,dK7ݦZ02$5t%VRb^[SDE${ba!G(~gl cVm-߳M\ČTGDSSN=S֗:[0Ja(DgY><>_1emKo(Wb!0g^[B4,ZN=O'^>GnKQϏeWwYX :OhQ/7|P,84WRh}*㝼¿Q̫:bJc :2XD8\$+JSθ ́. )ИzN΢BҖ/#<$y%{2V9*=>"'#`=.m}0wm@\Tz8 wN,5UYe=5Zk65-T?b&b=t }c1bRYٹ5N @콑Ξ_qQl(\~k}/eTbJ>-O[Y GQ8|Wmvs6#TdT'u0!_%1U qBBϒv֐ :7>C3'-f;Az.qۯ<=NxUd!'ow<4#\}f}'Ù`wИU4@T (]DƝutmN-]K.lOɛ,c݃˅iAq#7#r(nD*S+T6j2wӎsCraLTEs[᥮ufrC xϯ~+5s!;:3 ;nWSO.|hWt+d)]Fx{^lLF>=Y 6B`>y|L EP5Y`>v-M ] U脡3^1 i3.cs?mN}_!FK֊5VZ15"Ϥ @ %yA!e'PӍe_KwP;hZd90qH?$eM*ǖ,e ^>Alm[{Pnm5@N ]cPvg x^{)Gj su5j͔quY nu鼖 2=ڧdq^v !ݗә$9ǘJA@k_J9h%@(GS#0St#nsKۚ0ׂo5&z DAi {|Cx#C+`o t .y{gQ#ObtN 2G3_|pOo&ufƄ,e+jy_<ڎ[ԷT@U.+ZQ2Midn7|FeŮ9-]K͌_/֛i˗ y7*c#!TݴfΆd-ch?IyA6:1gI6t{mS}rT隣O QB ?} |rwx"v{m[Ix% α b.U䱳$O-#H7էÇťbۦ62#YjV{Luպ'A`Ux6~su5lq9UCL m*XɾF)8zthU`ԥȞP5qphX"*M\Ȫ̑;Slo[6YC-bt! 7k'X瑑Ighv9 FsaUR+ Iü@tdϹ{V+y]+vq1#Eзd5ףwU9ЈA/3bRpj [vS7ɔLhE'rqw%ֱ.%$hkx*6էi2S0>Y4Ӆ ]gNՒlrj/o{_ 3]4=}?<=2f+ӕ_.ep Tڽ*ڀSl{-] 4hT9Eu;ضsdoՆ%a*?|Wɹ!6.i!r9o_.[(.Cy= dAju8^o%O֣o@s ['(J ׺*5T3yzqM\mc{iOo{)SC0Yqω[u :842ti5,5\̞9V*!'b?jubb (穾X\%t`H =θ|[ o5xʃm$w=`pѥ$`rj<R9m7eƠ9~[ROOn׹g??&{ng+A(؉c K !*OȎ^v7+?ef645g`57 q۝3!@70M0Cn(6N CaLMghv[(d][穊.3䝭wfY% [pu4.:nR*L:C$MȤ$ -3LTȞָ ~61Ue`dqipn0g9hnA,nB\Zrney3NsΪZkCM6)b 8KҀ}\HA$0 $'e()[EJdܽ{֪<1/cYkm+{kתs{>=`i5担3L;T1Tc)dh.C v^'DJy7w^j fɆl#\}+6W^+'j$bt"08vo%a۱ݐ#㈮0N8rb-Y4 쥲Ogehv1q=3fv<w=)F%T`}0t8K5ȓ Bٻ*)D0`Ca|=i>~=7/W,Ϲc1ifIH#G ӄs̑weQ)vz58MsԊ"+2牉}̫w7NT5F2*\ ,T)!Pՠ> ;u0g:G& @J1p% l|0b<aGV̱~B#4bbw=m5 3@e b)S ŝ;B#•]5,"ЦVcZGRj2+!՝"pZhr;0RM޽,1fRf_7"-кܮd$u>O:繂oʳtp:)pmeTt̉ɴRSqйrU %r{{b8/ԔPY?7jFve9qʜx}B̌#:9Vܑ_yzbTJdÔQ< *)t>ϭ:EwqcIpfɓ&'[3 yXxUե^sܿH?HmxӁ`h4\^[f@> NZ}#E3AO{*Бt*bKfæh 6B+XLWB[RW4# S5 C; z=2BӨaK*n>4[z:ptS;tAߒ3p2IO1AjCҀ- E$sJ}&bxf]WW*>b+2Â1t̒uz+<۰p FwSSC9u*<,de ď_<}r⧯ zK(=b۔}Wf,KǞ({%)SIu v'<x{xf8[+}II;HJV3?̲5:cW2c|K.KYg0d=8W!k7n? ~]lNQW_5'ye IDAT䛰_ֽx9>՟2זBڼcKXS€jgOIKբZPǸ{+y_JrDalvIXb KfÑSlX>ev ~a!@mc>YXC ˮVrccUA/qL+_37݆ea8O nR @!3Qv);v[zϫ?7^%ăAJr8{%3 ݞMӗ) nZM)S]d(k[C7% ]ɥ2]DlW;q4Yw:p9bM#˲z̘j>>ӈCn3(a_^,H)T߀j[Իt]=']1tů,nyһq86? vQS#J*"|gW̌,`ZNn^MH7'g I39"=p[?(kKDMY[c1>9DO;d6e,qz9T-*ꁾ K܃`!#Kcq@cjHx|r;H?3#aHX빳r5磢rhU #ꕰߺK+3Q޼!ut]W0ǥcxou|[޼%F{ Ig\?oj)Jo0`ֳD޽'G. ǾdiX߉Ér)$DNGw|/Vur o_O<]G$U#Ґr}a|^\Y,TD[ uu0-L[3IX^s ,~SoӣtmJ.ĵҭzY`rmf[rRwm< @w%vڋݏT`16q :q;dhC&5UMQʲً4[W}\IA@[my8jjɾMe4SaZϝ߇hV%웠s9<}m+~&ɐScp 2M[+H@;b5dtub^sLQ̡3G<obNӴJinpmm'-jת&qzx7dc˔\Ä́DWv^C}m \Y;RnWJg.ԑwS'U!\G|#39tx:С59%Krɘ4̜r9I,$v ?~"wGī=y: oJl d}xG5c0EQNָHFGNΑJk eQS-lWa\T6݆aC8zUSظ2T-LLo|,^X ؏A\XXA VhOHMUj^q&įx|KTbɁ03ZV)`4F| p,-[.+?V5]wBsq}vN7NԊ 8 XqjHaa)c`ȒӮ̼J'&DfY1_#qDI`gD$ s޿\@sn銉8%$bi?|DF,CL-RBU~}S-;;l/𓟚8p_yw/tO_s}ٿ{i4 ,"Mvwkʤ\n⓽S[=-r5GV:3D.k>ZQM%_ٜVܵkڈB@\.7еrkvвy'6y"\a F0#fsrgXTg\',9j^.3Ϩ۾ }fq ݛ*o\T{y?RJOi5]qxin&Lޓwn'Ķgq4 .p82EGfO1Z$cIm;_1zj,xGqJD-D{'Qn,ڡlÛuZ`VЧgYj_/Κ؞{S<%!Lb #na*yő:R*kE5f,E]izFր4X'Rw3'&e\q:n0p?S3KQt7֘a7u}~U"=^1"/ղ+%ywi#Ɉkm#˥V`";?cL5.hcK*Jێ4B[ jhI@'&cM9Qax d:%s䮌;"UkTͲ@G ޿Zen#sqq!kaQh;>H/jD&g2TpG*1Mw̹>u-6(OvuÔlu}2K|>"Qw )3%c*nn+ר͠}M-n;\0&5r{ &w15|C "{ _q|,`Gd\J6{d DŽS6=!cbCt<}E<D|*%zob." zq.\}3p>40k;O>B*QpkQXlWd4xC8U#Q#x1Oμ3ϮB` y%.! ?7uu+cǶe`:fȶ\#n,<7A:Dp?ӳP\&i6"7F0:m`PC,s *Eƶsl Nk o#!fKx_%UG=I^suA'AB-^$rnTn{P8wy]{$}#nz<,5l6q5 崴!P׌Pcu&F*\l*pNV]r2lEɆCచSw>4={?}ޑi&n݆cXde*sflt0{؜SA5<ݖca;ގW喷G a7k+ԊMS8֠eBr5!wh4n1%\aO0B nozHh*j%`y@3-HOo)qXuK5aMe9b3׳z86JepH$FH,mAF(!!`YSz2DSt:S)0%ʷ۴|Z?"8Z*]W%0eΠ_ jVI4+a_i肱64Ύgɑb^_ƲSPG~ܸȲ'W88$f P!}? Y"K& Pd@ )c cQ4d\>̻)hVlRsB9ŵ곍~%3m.c-x9wはN,"#a!%gpc&33+k ˬ]fBg1,ʈtq;g??r_рd#v= Ca;ƙݛmB7.])-yZ_0\f3,$׀ XZ>|k{K_z2|cw?g{G̨+ 3&\  U]=Ԯu钣j j.uiujFH!*D IDATpgh*]KTטtj9k_ے\Q̏tPe~]%},37$̔!2gffj0v?e dTX<;7} ?7o!9W22}d[ 8j/ bn;:n=;r{1F [@2ˏN?ejأh 2/ԕF^=/E 7G| )0꾠rMOj+*&ea%]W:>+Vfm KR-Erh ,9bIN J" Bml%/f| AdAfHrWb!T;fa */*&Sdl5zoӭ]a+^ :wE%-PYͫQGGi@zG>'u(v !gn.)3go #LI".?Rg_e,ZVh7젴A $` n q$7`,亼JJէفRoNC΀8"=XR&T~BI!N F%jzD_Ooʴ6! X^w>5D0M xaJs MntdpNl|nծ:wXmmzҦd `A PSCYJ?;˩n"ύ#zetl sD1R{ xoj3ܯ :Xc biKt1lXg-TfbMmfD$6YQq2~DrX4RL4Epbgm ]\1;)!eP&ǝeQfT./;v`?W6"TnCUS}b66O 2YY0ʜ^'pjOh]WM%έ^1 :g˷s8Nu+ \LR5q`^1扪2ˋӣo!џek7"3|-: QJF"jۿ[:B|`ͫGΆ ;? 2Eo{\U`urF]MC^hVr"韽3tb6SYM莆+oJ%f<$3]=`+:&hjbTK7b/NV*Vb)=h Y#b'M}_tMG.An`Ziz>6#F@.5yաq}듍E̛=HM]]ND{ i= 80e~ &^` }fp k?]%p q櫷U}?_581\ZeX oWN}ͫ9xE;>y{9mO{ԒZ\Yu:#7ȦǦj=ޡKd#jy sNԓ˭(כ@Y&ɾzkrlɖ.b4GtľVIVF'K8?=Do=s1 mHbf*PPmz[X: [AXˎ#nǷ^/ՃqZX瞩ĉxr)O$E|=b6GT'R3V~0{Zm;ݤD4jYUczx33(QsL?sD\ؒ "07FB83+'YvdB_=FYbAJ|tTݘaTX:[%e @5V]3h!nkc*Kt-LS) G PX\^%R[bфJ3Uu y8`z͆9q,'77̑_g?|{1#"EW'$jvzq_N L= UYJ崱[Iy_l4"RC4g76>1137?y r(䎲 n}vzz׫Kss3Fr`9a"V^\\S|.UwT—Ujm:L> ބ\.:Gȑӂ'6=YlbdhZ]UƝɼk|_C7e~{̬s6٤ٔC2`o Űhltpr=-?UWI7 sPk}ﻼ*+Krbe{6ҒUCǦK7.Qz8;^{0EgZҠV=a"/zq Zς(/mjq2TU:Y&?U$=cGx)1CjkՀHL^W%7kVk;p3p? ?[N#s`sEa92+2~VՄ?VĕF~q,5~ʡ#P4%}C vy f_:a\kLq ExDC# iuE/6+8./y265ܖ>2_?ztBȷ<W%v]]5:ližc]>^f,GAoZ<&PYӣs^9oe O'OS)dB@8-[󤖸\{`7ox?5߀ihY q,pi{>P/Br@\Ӆ(xr=v̇I\2W$#%Slv'_6RSA"JpRr.'lڲ5ŐI޶ !CiuÖ6gJvP Bb&f:hm. 1P#pRcFTyp̈@ڡƦΗ×WZ{h8N tMYn<If|tot|-lv9m,Ȼ{_{)414d>OKYV.fQ9Sb&tUʢ--_ޚyZz2\׋zԎR<`b:P2:BGi]LKBi˧;L'7K߬H3'og;-崨e#. Q]rYP4˝oCb-Kp )gIbY4raNX!]ꇢ )=C*"|sdfeb^Y>4A]MmuL?jbniH3% F 5|Qe)z%Fb"K+EeRʲݕ= Ա϶Ͽ>mݞq(3U=c5!]æڢ\>MWȏ0;Dݣe}5ۉѹdfkaOn*taYט]5Cm13`³o@,S^UxAA2!#0`4 ͣZf1ڋ#ޠL31q|Ϝ0j9.͂0kWLFfpx80kGtG duBn[Ckӥj.$x)W0kai1Ys3x81N0w$me,5t~0+^~zT>~t\QIX=e Oaըm_&}޺wܰ崍?$SLH[tw=UI Y.3 J o3v>Vv[v&L8 HhP_I09sLyMPEfN[xoO3٠-7S& c h4DEQ+y%檸랙_g_<@khθE!bK!MTΓG#Ux< [e)>i7gډc %QM`6`1lv1V^Ŧ[.Y`Y%еP4D,g;o6H,XN\!g677SŕoӮӈl{4u,ec1›;:t!GR#ێYR4RT㩓`\jQMZp:a(6U`D*)Bsp;x%[RRmA96M謴(#Yi5 88k7[hӼWZUٙX%LnliE`YRBJZINRswslJl 4ێWL'c<1$9F}J"l h%C]*JO'¸RLI b_99KV\ux8-ǁAEpAǯrJ_?cyeo7N[oS~utOvswڽߟU -dđ!:!j]jdUIɁlG B-kY,?YnǰIV*#/PِTl8V&g?ΠGIĖ .`;橯w|Ֆs;˭eljJ)RW;fW: =|]zH}B)&ZcAi:n (ȦS/zeU$Zj5FIl.ipYVg+t֛ZBr5qek0ezC.q p#12Xݮ̘.VNUFE)O|PJEm;(#:-#B -ẏ )/Rbd+E!ݑՕݼᱲ0DOw |6/0H{Qr-vU5O IDAT&TABn6:[RDpijCǤ,uQ]n=7dwQ|.ռV>ېKOx)H(<њA*S=3OSZjچE)-ZHyTfíPӗڳ OnMO݀~>vY&&!(]G-HHxʈItr[tD)h[,]$U! JJ%K3/rX5:ƣ!$9>j>Nv-n֚GC)EY˫[\Ghcylkd@$۞g L +_kQK7z;rA Z;A)4I-ѨaP `%qLTs}뮩h4Yl["udGj9[>}ErV4dШqSΒCgLz%f?S_p'oΛ7y[>*9&pG߼rVʘnKǕ`M|xAb0a16 a >ԯibف ﱚ !#թ9 Ky9TO̽'eJ1l$rbjus[VQJ.03^ˈ1Xfao<&8?pHF~ ?^;Ǘ츿q|n*풖+<>b4?1'R=g*BAC) WLəXMPJ8<9(p xiTG;1g:ttdL5HD2=WI\ZlpI)E*^g$_"n -1/ѓ=6p[ӑo4 ڝP[-kKٜ\pGyہ OUe~t+,itD8AESFݗoE:أ݄3EQU4k\A $nBi Er&*?:}st} wk kTk_|6dxoߔ*qQY]5Ьf:gZ,X2MOv]J4߲tePfn@sJtpX(JYI0LfpV%d!Pz_vތwݐ.WNxtPL;$C%\W+. < HiOm;%:̌rzUQh\2G9%6, P3Ĕ"~R&͠\ntI#^ҹI uVXK9IF%RfG]5P\JW65ZB=Wlypлy}>=l|cw[~e(Qi-oIo(S Kk3N;NwX fj_%$RKa?2ӫ/,R'qb, ւdaQ#9wk}Mdt&1Q}&ӂ*󢯔jBdd @!lZ%JnxuUAuہOCǗo=O?{e51tml1lgVbR88֭|;CR1(9BVӌѨRW(n [P[Ԅw҂!Gex{7RŸ~02ffp #HBLQ 73N|<. Єit~ǟĄ3M5HW#R>Sˏ~Q,l;z˘VZ$fHIjsN{MAuiRە5_S˒t\0UXeJujBǶ.4" N0T;Q-X!ְ?Q1wDX,M^OsyѪ<-s>sOSݲGriw.߰ncJ*dd1c_۩F]ц$>OZzdт(U meA]1?(YxnLR?)[rz77)qit֋ ]^Mt:>T̞x߁)bf-Wkx ̝R>q'fVanp%)\ԑ,BG/[~=Ae&P F3FV̂CCX`-YpB*ad]])a@aad0~jz`= ߾cRKqMJ=qa ŒGhj#3j6l],4*$OVWfltxLdy7qV.2`gEI`.o#_ZP- x4Vrp-tUR-[׌,z(EjV5'솟qіPkc:(0s I6kOpAH67+_g;`4c;֘ewTYGN}v4?-Sp٤PDCir *H8OGSVqĂ3h8^4=)19@ji2OJ!NiHӌ38ba+Sɑ6lH0'N#cr\\? 03 BR^JJ\[䈔hk;J~d>W^̵NV:Lq  vF"r*JSAu|@B:oq d;08BdiSG3Q8L ٓ3_^(NL䚽Ēci3cvfCg| s}Yp9BHp};YRv=} \;M\`hAWW~aXzL1Vܫn~<'*"p,xlwqJ:k6 &5A z Pj5[H0%;cYA*jg߼BR_w2.7z"~MJOكX.kBmX˒a6?2k>QvJee|ƵuE}lr873c(3XKJLxQՇb}.niy :w֗|, )W]dR ѭO8;t฻?2ce*&)Z5;.EtVgE_3mQ4)€ɔc@e{9tP#\=V(aA R_(pؑ,J#;lX%=QhN;aw x3,ٹOY|21=`(qt䙭nZ|c#E>9UGb\7!s,̀^F3hD؃npfBXȠ s~nR 81XYF2Oz3'KJ?7_L?`k!XCOD+YY6'dRj-ז$ߓޡ1 V5I~Bzԣ%{,3[Pp10:gy3%nn_1'?ƙ|ƮUES1G>)t`52%K/$P 3F<(K*hE,8r A 5ao?+ DKV<5%jl!4,7;ts.-TUONL3scTږ{t6l ɑWQ+oYCqꉅ'D2c1}0bdJhj^Ȯ jRj޺9/pg<3 ElG?:@M&׉B\Ozz E5Y4jzB Jr԰m} f JG15QL jSff/5:O|A,pe>b_s7HJ3jK,qZ.^oe6]13Fߘ$ˑS"#"0,É9ւt/)QQ21b2SZ?);Wyo|I$ZtZjkٕ~eh96BT?{?/t6g]z| \5WαC.lnp`LM9^eg0jM籦ktH).q$ȑ̉wR!ܢ!hr,'b&+D5jw` Z"ĜQu YPwl4vLm}Z\籷(09"G@z^ݐ! oy}sfǶ绷'ğ|}eѷ-S!waa5@nG7`lߞjWHBIw5# :7'~Mn13TյTAgN:,aYK&>}bm֎ƞk22vopsJB *Іav6[֘`ZbDMc1 61Aܚ08S2> $Beo ݊^aYr% ^򧟢Wo9%V~ǣ6G0ٶNE.}J>a4¼P\InL(V[&MvL̆?[fp&c! j?{%$)C ?O? ?W,ya(E_ʠE˱瘯A 4Ǿe*. ~Ƃ9+&\U`&y/c5p^BgAkkB9;Li9 1aphŨ@J6>1N<f8OY1+L)wR|r; il6RPl0VMn&P2cX(Z|\q35oLG͜t~,NdNb.|җ]?q|)ig)p,6׳M}]LT& 6WgrNH\j{-@ZWuOe0V:\=jQb=Ĭ[sw{z. ,]k0kܵQ_Y:kAB꠻( 3S|7+Q$sr=g35O_*億#hqKp_U3L tG 4J<Ł܄ 1MDA2<2|G%m5|϶#pࠇa9wVNnY0<{Axq$7ha9b8c-^"=RkTϸk($^@JBOwHFuD}Od1&uyRa_޾&YTj:fZd8z!~fQD+rrC5,G~Iw$>EvHJ/Z\P>\qZڴښ=wLa샹VR0+-a<ͫ[:ӞS PW=7bힹ:\FS/`Nw춈0B$fv[oaOAciL4g͖x"Ч{09ӟSnE|wӷ"7jUds ך5ݮ]) T/^Odʶ_ȿR^ @y u\y+ԨTk4Ow[&>ÉJ$uBTH DVBR3Jỏg89~ڼ+`lZS77^g-OvC{Z`fvCy#ݽ1tŘګ[`AkwlMkE#`Y21SV<]VW%3(x:"«-!6)̭s~%_3n}҅ xbp ct@uqc[*q`4LJT jӁ(Ո0ȝ31a,o37TfԶ3]PHMU0̛;ъIgG F= 145ݗ?UPA=Ǥ e+IfQHXSm;3\5r&k~NQF`5P+Y÷ʝeL!Y0skU`5P4z{8gƌ4VΙyA4xi9Δd02)]DE"0THiYnyzB^j@Tx!hL )A}vWv?eL(cfɴ\"k6춌U]Pꆘfl9p$a^`\5\;I(ѡK+JVCT^ei֯s ofmTgؑ-\0C̰[2@F2I)zΧ9&lKCwǟ|^noSGWmg<6٥P3L)6=! ~1f5&3[I"^ ` C% IDAT砯.BWC .+)}+ HP2R*W O7ge߷KI5R8Is>֐tkE#E|U=7dU9%֐E.R<۞۷&>P_o8;rjB6B_ 1,TSd$1-1".uSKT61+zAk=ze E@ 7[,7^ox]#SlS,(nGA7 zgo<< %l]bumpx(TlzJa?)18]݄cv-5֔!΄:NP}*CqCUUx}BСEZzR$1A2Nl 7:#`3ەEUR5 2%c|K($Ǔ4yT'IG'!,0| Wxmq(:vѕlj\_0Jm';,7?OwqYjhe[ez|,!,Gp1Nb,8 Qs@ 3a2R =6_%m-u%"(F{F Db'Tf.qׁ3vmB82hs5C?e% 3V̸r tJSM –4кw$! yɒ;I$DQx S$6P#뽎ytp2LB[zD9f)b5X8^3ǑDZsϻs03EBDim -!& 9xMo3^Dși(5kZNfҠs4U9] ldg>T~5FkfЊ/+$c1Mɪ܌|}7Qh8>=]6D'W66!JyN&#zdϪJ y{Uh*3 Z^onB%f9*Ȝ=w< O:U+\h󈚤'L$WZ}SXkƢ%ei;r!'ÛGR!~{XUʹ9.kfIHr;h܉:|3i1 ZD߾cmOI#Ǚx3fYivu qm&)z˘cÂmzۆ39 Fm"߾ݜ81?wga۷0y&gBZVUE& #m0ȑwZ4gD=-Ŕ4ov|{ݓ˚^X A(K[8Tp߭# ˀ)6&*j*MVG'txe힜^q3KZwސyffP7 c3[\ IBkNv$bXs7 q|yH@4= v`7}F#in*.k0 XRD?9sn?/^/<7|x!tA ɓKr;ۉ~b2#iΥk) da:Ko F{tx rn;dW޷OvpȬ"f9==@Hz]z H3luc>.]m؅B!2+ll` ҨCy}Oeormϧ;⮠& &\۸Z"uQ,U?tل %d*^ݭf oo_QBu]Zf¤PBH6ܠ3 2@"&kѴEj߮PH~ht i*IADAS s!EFZq:i67gw>Y0d |h\Uif3Gq,־VFĪ7t('N33w;Ѭܺ=w6ʆ #:rF RFVks4~m +lv ʋevoW/B\BIr: '?L>nW%G[dϳn۲-kl^f*5D[wm_vz5Be4Sk %5]@6I&ϜFv#ޣ4 #x0/^F8b #s($ ͉)]eׯ_iV+Ҧ2ji.m戰 O+heB!=8t߂۲5R *LCv& }KD؆ #  -NsugG F SdF0v+nƀ<%31ߵ䉅,B2% o9yJk.Dtl@)4K$e= J,Y&N  w;ŘVڛЄ̯ϴGRY5okϯMV(9)TL+,Zg;Ǝ2V1jLnz} \1~3Zk&?_9Àɿ ȗoGJj6F^^0TAUhP([yRw"+avלȀK\wyXݡ~Z5=Y8 c@ 56>8 ,PqvD,Q>r NwlSNEbfEX .cT#{!TX6eP%P_ZCRFѻ֮ ##ԕX]b!W"П#c L2a*>gS)6{P,Èd%QiBۨ(m*zfvBgACӰ׭`QzݩN 3~x"rF!)6]l3|Zh4tM2’pV(UζEК" >7t+n Q}(PZ,~1''fB6 cz/fC_0?ռʦz!jyA/[y!y57ܵq+U0f#wI*$[A3Spٲ`&^D.&0HM=D0$Lq$ws/) 7Vf"|ć#9 VsAn=GHt'~='mjR_燑I]F-+ߞ1}+f8\ V"ĸ.@-Q \۔ђ,@hC'8S*~vݮuBԤ5г$N׷VLiՂ#f3sv\ >PxJx5(ɒ̌8{:S5 kG1$cFkrag?|8")c4>RZ{0y|wM :ጏYS %:B3SD,X5麶!u1TDeІ!i霛~55&Rs/d(À||H,tF#Ey}LZ ѭiQuPu}2ƆG>i;uo0S6$GebȤXvwg>K'D SPށ&&ΙJj%ٱ3"EN'RF(V|W\$|vn=[7U4K=w+Ƒɹ-{C82Pj$՝FƎsO tT:I q7nd$t.ZQ`,{ĴnKB &a&y8z:?ݘE/J'uD(MZWNPB=e.5PR Ep͘mR-[7oƗͩƨ5q-]kCshF16|Q1ґgǪ+j6`jվwE&ɍzL+X-0ը\jNJ;L(kc,hr! Ea@Wѳn{DgZ|!nB])mB5ÞX3%2nQ U/7o5P %Q[ )pZ-[4n"*9:ȉXH,RiiN7hys8Y'Db͞'F?}a8yG_JߗG‘#+;rnAOӣŢ]h;xM"vHvmsZu}f0,J WkUZY,ҏ ٖ> ՂպK$AiQ g ?0͜)V f?pWRBIERЭC0 >̈́ʘ}pMIL،Ek{Y>a.np87_;>}HpZ(=&FJb9R"vhAro wx<[7eu\]I:l$JEiJu#,2VC W)&iCԥ7}zCl䶢9zGbJ;icf+GW(u+dw#dBɒ B'zzu{ƪx@Tj덯zUۧa<#BkВ]+voWu#0UuI;īέc(]H#Nl&5ʳ,f#MnfJGV85X>r'|q3p0軒ruB(lUε\3}@AɪK_&Z7 6GZH(kjH4vf;ր?SlDHuMv6d#3Em3&(Xlӥ1CgQˋ4֓Lo_hݦ-[Y-RfgdҫH?>l;붹m؄WWc{k)I_4e )T_'O*Gd3V~~gs ק=3}LoH@%<.‡#w _|w$C}wBݢq1ZdI;.)3sA+xc$śj/a bqՌ!̥e15t^X%.՘jQ_wH)l sP_M̝2ŒFH}S2Dž<֠gO~+M*&r"dNKCp49F}M! 31s !.BlKd_Վ^s|rp~~U-J ~B s *DT2%3G a VĈxy ]I[3~25 }k8x`4嬇[u_<ķ,yŌ{H1(0Xt&} m{5!dZC6#ɢ OggN gݣU-p.zA R I7Gs"n[bH1a(l"r+)@r4:5kUɫ(lx|G\ Ul!#Z!O^["v,Asy`ZHl:YY[Ce(][Ȏb*@[ʖSZfͨղsyRΟO*H"sy8#1ayJO3~))[~pzʿs|$AI QzX,_1M|V<[-rz D”Y.HcUZoErMQbqi:Q97 5iES:K}: \ϔDQ-MZ\wQt8igLu(Bm[`1ʪ@,q)Ԁj|G>">1f-9*YL#)i1 :@^>-~I؍FF1}q's}M u-4UM]CEuh3#l_)GHq!lP].hK628MgRiqԠ06Ʌ#yV,a-z6Ĝ\8A.È6-F]|1ZFP,G(yj>|@OHGR!dvOSDxCu#٪v,QiMX/cN-f[ojSԈ# \.\fv~o)?f%loO "MȆU.@S-F)`|v4 7 Esմէ1Ws>|?)y+{Ovk(dH$٦G7Y6:;XCgCJHW*+Fمrìx:!B׃%3pf͎0$Kk9,Mmvm.یmv*<b~*/Zhւ2(~%mYb7Ʒo4￿K^;#F"\:ȍ%@RDᐾzM^߾9+pXA ڷ+34($,GYCôOw ʓɟ^)B)}ܪ{JLGkoӟɧ}Gvukwk8}R>uIEl^m=YQJ ,8GȫB! Smd|sbz bId[:O}# v;|oU5g 87<ex M´Ԛ?L`&VFk2%1Aj9I Np,kɥ%rҀ!b3\FOt^l5fjì8F\9͑![...KD)3RjC!O;O6ECK+́#ICi`sY=gBLu4=0UMI(5iY0nƖ@R;BX6Ĝ@+7u;cX<PZc"Frf'-e&&ӠiK߭w;TbY21 79`(@R V;ҤRgP{~ wG'H\~r9TiF@\巚s*ǎ^y'ƁLJxwb )M9L|\CVݢ!g$ `L0ݗ;owdZxL|خhX]STF{bd>vAWW2L Ns?2||%R.#u~?bCŢYΡßͯ ~61U0^5VB%vk< `-Β yF+iM\0Miu1`f|9|}gox y4Rpq/M Չ(X]qsdh`EU>7}0 ll:#t**b5.jM5Yfa  k~s#nP(k+g׆yJP.G v&A?ꚞ >w'Fl$L[ko *lE*j"g24b*62ʋVXfM%PZsVʷiKJ&B̉ &l t(+AVB;K1wY QqADM ee7 : cfOanT}[q\:-`vnO\SRm/dxitƻbA5xi,U+\Y-Vk~8фܦUwmL'h:?Ye@ .|iV4P*v6aH]y(hCġ9btxHO@kw~i  61'">y)|axB$w w5&gR"ȪNQǾk90WX2"krR t8)T}!!#4Ek<#=jE_ș\@1WifbbNxx7w$cYR:/Ȣ }WYrkY65Q.,a;ZO5w|A*q#_ ;>{ȶtWaWfE4PBFcQ¢ybbbtX4tna18_8OUD̹UsX: PP#H! +$l3;p004RH1A(_ۃ%\H3AWV HPs7* )>ՉZGF ;?' ŁeslƜ[ %ZaY-Qrj<>YnWYWH[#ڇ !ji%fݮT' Qrc JVE5`9lȵU~MdӵޅRVK6Hi*ujZgJxB`9'jE;괿 p}$8Oh;qzp.uk|gz7m-o nasȦzxU{T]ޏ =řMPlf2-W^ twn"CxhY*і"2JRAwN!f wg4g74Xc9WSQnʵߩi2mc}RtƷ˯G>>!<9t F:K(L΍)fM%f),nQ(J *)=i$kn+Mܒٶ6c[ V|3zC]Dv;@FjJA=VVQX9@+zB, }cSOOr߫V4bIdd̺já*C/*3G vDdKB^~ sӎ")LxjȘ:[e:JW!C hNpEm6fDߜ?ԣûMFP(EtnAP/@?G%+jPY{7R9ӦMU$ h%%v)k{FonMb0Ēҵ/ۊ-o?枙MJ7AB69EevGlaQo@AW>[EY7LmyAIǩHmfpd%NHHd:iz$eZ$ǟ^]BYu̺M?3_b%QWe>4ssv#?2E9Fx@)&g8-MSK' M{хqDʲm5 oeSmeV6=g.rKJ2 N%m~6n@|q5a=2zr!D&8ͺ!,Z9bl1/*'ΞNTyQg"v!"Ӟ@0ڭϹT掸/WC٦dì2eÀqW>asRb?GH[B rfy}.n6ԑ& E7X)ӽ S(SlQH/ 1.*3N5b]aɚp+B(Tvh֎%${oҮ*T\GtD &\wէz5Ͽy<1 Z&+-m}{O؈\UVZCTiGyŸZX̐ 5?g|A.\{˲z6>jFe 㞡Gb"A? g&3XGдiS88`$9/Pˏ]bTX>9Y6Yr(sN.jٶ.=`lhc)kբ0EFi|lM涂_{NIXKȒ/U)c4U&a )l0ij0qaW˼ v96ZXY}bYKRP%&NR5*M4WU0aB] e14Fކ`閱# .nꅛJoR}b5l<6MC7cp.z:8[֤Z-zxxWQX^S 5i_v;`RC LP2OgtHsA|g^HAo_}hjY;YAcfRBi:-s3+߀•V%s1䌡/HήC-(-Hq| x#lP d8sɒ&\KGlk7V9^;GwpF|vh_L>m)BWlbơeԚ>Dbh@"qD"4[cDh4Hni&$΁5V,%btH6F{|ѯa@uE%E2[Gy7|sie~/RX/Rn2V(O{E^w\~ƀh ~lU,Ez_]!1үRIتl&Y8iz^*!3f5;NXB&OQ9`ZÜ*r5 Wҟ3˷\,UKZwxHB5lZT| Ru(\oEV'$cq`ꅠYų y16Gn&%zb`fD㦭E#*=ANi:V_8@!fl]Nru(wt:KJ瑈GZQ8 Sp82̒(qi 8m@4Q K7D3FI_,^xu2˿>gΕUX"ߝ`, ho!6SEiUu=]բ[UhV#`ʠ٭.%δQ@z s, Yqph %4 . ʁrf8k)ZcQī7<+m`v]>wv^^_nugشɂTo8M:rea.+6g:"D /vt`(ucBI͛iIz=^SG'ݺ^Vd4_k*(|K~*0Bֲ+=3od9W(Jj98y''%jbUk#6Vwԅb4ElB~NЊP1p {i~)M:UhR&`>`,HDM8FwM)Ԁ{I=Qd95j3bnCM’0qUj; bdO-Vfl{/lGJ >D{sdM]*@nA+=@/GЅZ RwW8i1`҅G$ 6/p323lÖF7ȶ]O $C<8GLLs %gd'g4ӈwmE~)l["5j- 7˴g;nDERj׿囼}Ppf0 S[p &b'T0b%=ɐMZH/f@`dGji!w))+͝T'uM>.w:7po0^{EUÆx]ۍcR(Ez+H02Un럣[sXh11]M˘ ~2"1YE"KL{9+t#!06Zp\hn^}V'/oDjVMMu^0q|nf[.1B28H4dO'5؆$˨”0aw xGαfT#LBʠXX_䊣:>3MЦ&!PK5 C-B莅V[{׾Έ+92de~74|yXbR#ȗ3SGEE j3e2IpBOH@d! dg@ʴCC̜"T,'9bc8G_JefX5<4KrݹkSc/d.DFthOzZBV. IDAT9sAˮ7"uX!c,WagTrqykO- yBUpa؎.@`n *&%CL`0x R{= H4jVlcGUf'Nz+p18as$DZ&u-jXvbrb |TcDX uՀȝ?}F7\٫[h}ϗ7Afl7dWx'$bx40<Pb32\+[%řX"futczl1 hZ#B/'&y'Aeo3ͩi:>=qp#~_އ$$q9_"4y1WR]m,͛dɾ})VI3{ZW Ugq$qq1)f^͐&&v%{ !sWq7u(i>ƘE9{aZaj\1G$V0"=N ],nzhȩgU*1-Q=|^xf̤ws@]n Ce! YŵơBXO i!:'Moԓb& )C+Rc B S)""+"#”K7oez%RғT sfOJѻҞE~݄"irh9Q*#lSc *W|x3a!u6x,?~9qqP>`gH'$T>B$eHMb#"ϭe̤DB-+[cOSa I9x~5s:4y3_ ”1tbkص/ՒnhZl,CLHf:;RwmhJFS=Df*cHt컜Q>r^;!Bk@c9sθerg}V5%,Έ=Nio,=] ,{ ΪN73m[;؁%t"0Ed&RqF [/?oOI zbf<ȕ˓cȄXp2c^n1}l\o|m[#cWz Zp3dS [-o&7R%Zl͑JEz$;6쁎 ! K``pHB3]S7͌xF:Lڠ&LuqUNM]ܔoP"wP6}k||}A,]vh&7`NFbN&]qIpcŜj!k ⯡]g7t ( 92, h,iRmIHqۢTfx/֝vU; wT3s7ʗ=Su=Ԑ [^n2z&)_>2`?{&f_ɫ_70@/z6mqi{BO~=|93w496AAm 90LU6"q49G^Kq],c>HѴD_62lR&[S @7u׾4!Jt;.96t=p>YWHE;<7x-N%c ~6C22Gx{r-.ބ-9 4IA{BDE48b ؆=~4  !-~3%s%*d9M˿| ?3 Ga\ad]O<ӻ:Sʢw {Sfan=+QBnI8 "}ȧc]T9eP;;E~)v& ;Z!ݱl@&RCli">Ny@#DIx= ӷ2j%zs$wFQ8$2&`9̓ Vc"_w?7]B˅ @HF05W܁L{l}]e+V7 t m٩Bn꿼+}j [n͵R|E6A[zMGļ-=_*Q\ƿ_c).٠O]PǤG%/mf[6yswdﰵ빫;ܭ3R¹ S8wUtu;&35W&5dwħ!:dc97xwΣQƵaU~XtR`̥#>x`,6urVa6ٙ7m#[e ӷF̏:\jnД(LIDN.z='A;=&\&~ʼn~Gj z(Dc&ra~+Sduv't aJlJ-Z<,fPOX˗Ĉs!grZR=rMlF\,bDoz|z2UZO/m!#YZ p+~uJ"ЗYֿnPygْOLwFn[.P{okqyώР RZwyI]' sO(ONw{+I$W)bwdIWg%k թ'8ū3ul&apqT̐%b`R8N'0'M?4K"Bj Vo&I%{̌{{k/7f !ZۈTRO}ܞ `M:pT| Ɲ]K0oEތi9͞s&oU[LX)WX5~1t(Ot#&%-rY~Ba"60Չ;#Ӷ/r*@,|)zƽBnVMyd&[͆ u#j1wkM|-"9X?g'9q0tzdKYlW2ɒb }ߑ3hnGL{מ>:c7|~!fkOOaL3% @.0Y`WR[~sv!.Ŭ:Z3]'?uu7/ȯCVK!s$L3)M&I>!=F0ͨ#$3(j1F]JeU/3挚H8[pSdDJLq&4s1&TĬ4kx in53/]w1U5^ ]Çg/G.f' B`r,ȭ"#Xd)Z2.+:e-iMSC`)-AÈf \x)9a̋ea :hMȂ˭^dxZ&m,*rY2|݄ D_3?tu} Cԍm,xa#BJ4~q--߶G~' V8Oot7ɩ0-*Uv%>V9{u?nr?[ZI *d* 0$v\4^*)rvcMI!́j7Z6CԶݻfHZu1HnVi&l J/Ȍ E"jĩ9`-yJR$S{_ޯ4]?|x+ w5r.1np &BdW\m`wv9C&ftGq{?oxpO+o~1Aڱ;. C6_s`F2$- Ϟ;ϏS3D /ycwgy CeĜW`;F)p)˼g%dOH;cyEx[Hl|e/;b@&*N1Q!bΑ=csY\^J1Y^m\{~ׂ̘љ3Ec3 m* 3Ěd_ZbCj,Bnl&z%oyC-i<3Bf#[JSӫW\~%2YǖG>O/?߽6S&\')f&v g#.h:z{\+(njzÐ!(/0*Ku9\qp@" @@Ǿ:;9p<\ +ا";-IA#!221G}\FƑTK$)*o, Tds8?hpUdppNm޼ Od}1n ɼz)۲lnX:{'*$&킄9d&Te$$yƷ<r;Scó,q~È˅/iZn$X<K^-u9wh- R a5iĩڗd8%&X5#G $c+y,8  #ʑ:ϦKJpy@-򊊷淿4bܕ$)#%g@NL<9THJ K ?gfwSWfpjQn9 -CQV(1e:z 04Rmab&*;f)uz &ؕ{̨[]Ud^e}<} qޞbŶY&S[ؙ! !$bR@n4 v;N9Mq^&'#!{3S0>}xB,PȔ# '2rC>c.pbd|Q~yB*Ƒ-cM.evqed\i*x~4~j}\kPC?_}>]LniڔڈƔ8 _[|gd_ԋ2\̻py^?OG:Wdq MJ'*gí?;6w5u}yK#)_u O(&3zKc [POQDD*v 3LJaNnR앾ԱZB?|X]:Y.t派]f"'xDbJPTԒ CqL bK(~lCgIʼ j8LHƦy݅_w=BnOu<< +Ls4Լb+' }(1 SEʤ2UWAw#O3;FͿ[|f`V>^"kSknf0gT-.@̊W[ ׷ A7&aCr|/PADw.9 -Z"p+n/Թ_U#07M춅fS Y`09ffէТk^!]iY\d#-p񤛵r߂1:SE-SI:r#eKX\I^&Wȼ{E4H@$˴wV\$d86q8;bc 91Ah #2pN IkKW(4\K5"hW_cm*>BԓgPpb*&0ՏɅdyWR$:ظ_gn6C5θcb03"0VWJX2lL^Rvc%M+m K7د,\XfTIRSKY3$B` tWCe5 IDAT%ǖ1"en۔0H¼k";*;ɾ!T&5a_.$lyv&v#b<$?Oq3NH ,.3pYy bL`bro|rW'@%'0!U>HkNDh a?2@IA}=#{[X?*C+ɝ1hb`y!q !7(׆=e5JCnB8̮R&~巹)783[`C=T\'{1u-۷0*c!DOLtn\PĔ`M,3amndS9;ūnRd?/Vy_͝VSl좺 2#%:@_e:`gL+ աR xbdL']5a>ϪFa6;2Ґ}^Y WM7 bKҕwbVulqoǔ\OuIZiAa #\&-->b4ٹ%)1p*5\`l#Nxtd!)X{%e d0nhC&c&жFr1P,iyy`fZ3T_rV+4ækFȌU?;dCvrnr?Vܹo$,!Js߸E#ٱceG `oAՄ8ĈkAT`1f:݁timO@+YXPIlDܱw-OL t)WYzx/c+hfH=&cҭNnȹ* j#]h?FS^K23Ll {O* &yn\r53uqyffs6D+(log彳nlYD`nEs7?2 0} BIp0JHH½[V)ݛ]A#c텨`!;MCKY.ch[}nꒊE."SC;Ɔ܇n;VpPRL 'Yb7ȵdLZlRn+}aoݒ7O='CDVv¥͗=2I懯d}xΏOc{ qtc/݅.a0 &GriygPC@7bFԐļcs^+͌4ݘ#t}CfBI2:6)W#qbm2ةA-uI͈x~<@߻y">Z>TW:!fsfۆ8 0n 5M1.׹Q2q " kj1G&4UjD=9;ؚ`쑌o5,2'Tb KW_NF#YC"bȶn#sWs uh W@ m8`t CNBt[- {(<7ߌ$ݏdplG>9ckZ~̜)s[} 4'kV00 J@Jݘ|J̰?nE =ߕel ܅TWȖcLe&v@a7Hd0ޥq& . yKj,b5PnON8_\deĩD- `Ia=䉉s@u 6 Vl"Y%%+63Vm6!w 6 ,jmn7Fq!/E`a"l$0b]: N*_)mA/{ zM{fg IM]c˪1B}.T{Ԑbla _ד?-UM9E0 l~&e]e~\&~8)12b]6ɾZ-#F#Juenؓ8h#:w39#[L++/wzR2|c,m |ќ0 6Ri;eSbߚ '<'tкI4Wj]ĥN7YOw<*6W}KzN ʂr'ryYBټCtΓ3I\fqKt0_{N"uH].X]?sG2>,JvْJn0%Ӧ~ r0J 5u~q`lt gˤԧ?ì\Zx#8I̼|v+b1>5\&Nnp% *J5k )"-oV(BJx9!2 Wث7,;.Lia离ޱ)SܼM$dR(0ʆ+8%[}@j9hW vrP>Ъo`_H„Co"fiHA\An&A Nh4hО<"Z-e&yQjTu 1␻͋/xx oe._~xd |7k`;)Ȑ#e;|ȉtBmiెa&|j"n:Xj\8n4wD^J+ML3/Fl^4dy-e@Jb1uΧDdgj[F)`bY.yz&)f AN'@0&Q~ݼ˜HԮ,q+vS<]ك~Ui)`}8CN}0SruĹ+73 Rɏ ;/< ;%Äk\!" v" F-hMR,Ѯ)Y 9&auxn +HڭɶGo*$Ҥ#lņ6U9[O6j7%lSeM[ {7T,s]^_[&S$# M2dmܨkw=n鼥vٿ.7_{kyȉyxOa㖦%Ց`, $$ORDu@YbdFX}&g ln1dQ s|tNPYj>~h Έ>}ڈ'! Ș26ڙ$ rPBTF̌:[n駵K=z$gPoMѪ,1+[1m bP]{_JW2s2 q@YnB (MM D[.ؼyYSҳ \Nu K?YG=^<*t!| .G43Nj'Y&C(́~,LPD |z(Q ;'E*$A.zBb9oxOWXZL?ޭGesffUwˡۖeY,$^yOG7l ,sr.{*3%b ""gDfV{92/|:=@ LThKbK 3ulk9NaZH#i<lDSkvFP?eam&O2:`CqeKu{?}a "CpejiLz4G0\pDMǤ1k-hXZ;c']1O\g͕I̓2e֣MAsGs }1cVޯrY3xYbqgϗw23=` [fЄ#G8+Ir{/~N#:2eH&2 2J4y%l]_ksqMx%Xg!8;6WFN\~.tuɁǔלZu-3d&_R[%*  RG뀗?/Ͽ: [H#&N͌,'¦si:[2cX~ͷVY]`G,goGul<"nk`9 Ȕ*j 2r|fU=tN 7?'p3 Y lںpFn JLi\<)1'%/[_7PrZf+Qбi4b 0Eze%[NH{ƾݛD씡U-y^Szgs 9/3[uEjŲ5 4ͰٞK8M,(Hr#;6d(\&zRԷ%:""^_.0szvnaQl~0^(o]֛'δ6$a8ERyX`%a6;o7mn\sO ,qjS61VeP_kE}i`𼯅||.+jm'0`}؊ *%SJGǪ50c\KbeǙY\nDݐbNӬKXN;\Ñqರf3_,EHo]By>O^N|<5s_}EV=exޯBjɭM+%lP—TD,lƜXS}wU˙GV}cO=$#s᷆)nrLU*!%vHjf̷<_7]/bS6ș+C ?9r Ý)۩Yә R yI/7{sڧCR6[kf(u3j=U4,+R2WsL5r,i.lE$c6B=GbHxDbhܬ΄XyVz S(p IDATFO4"!_RkRơsGKrۦ6R ׍4SHW^XsTs^Y#hθs*k_lm&]V*OCQΗiOx=麹8(mPفZFKvG_Eݽ3+ .*yQO]~ʝj;{),CTRLN#5P30`sst^$Lpgd`J_'΀(l#je[rǛ&!aS5Rd~#rK'i떊E/lTLX0+/8[HDS)y[UDr )n_϶n$L_Y%Nl3@}کFwV{򘒪@x9R!Ȇme%n_}ՄtΕы1ÓOO oW(if;le1.]&1[:L5H>%w%`CGuhe 3v')hwyeq+1sj>S"V]qƁ%rX6Am1cs1J^n9y]!M5^#˛o9vMΥ]aTkݘ֝''$&Wٌ ('ϝ<_ĭgZ XfZuV_0<[yMek}SVMVqJtDG,Ѐ!A0r^[v %n>fwRMBݮEIOhHcĥǽʊ ϼU1*sB:]^@Sַ&m4[1{fPdi*pqs2J $k;[.j$w/)Z3pP Hֱ7A@>x7َC5 f9KBZ}9NȲQ#nREM:1*:SGQ[%BuɌ`J#kɄd-ONӜ,~NOo\`g*!f 5ӰĒyB#7{r 6"&l=2K>KIS+Jӵ[fl{g]햜X(y8+s.Y=-k }X-["^cL)ߓ2\Y_`y\[#]"I8x(n 'W ?g8PnQv'%C` >؈D@¿C,kҊFlwSA=Q{P_AI',s3 K:Bkg].t,cNxe| l Q? ˴bc?mͭ 4ZR"T\}ѡf%\j>V fB>913Ϥ1jgȷy۫3y6ZTF\i}K5Q'Ή&cSu 55j},_?=יRKJ=-&x@:NP X;T εhgV%A88Vc] @Jw~aʭxQhХR؃TX#n.eqù0X,/*S';O/AlgQց1}-r<(Θ6ٷHفma5&)'յWlq7`$beS\,vA74Õf9= )5Rɶ; %V|>),;l&c@xGdtOUv; >/7s鎽jsNl\rqe y9NӞY7A;\3dOCDK z7ݝQY"|zaG?T(bCI9/R$sڒ)w+ `%f2n\* 1xTgVF3Z?kUfAd->ߛXMڰ*z4a"p\ͥsxpƻ?Teuh^mũBI֎k;X1qKSGWVjg%RL#n#l44+wC <#zgle'G]T.w5]%Q\yyP8zJݺpvEanʶ4"4[&P26pK%fց80urFҩj ["vYf@rl>ܝ^wN"sԊePct$c.!o*fɅշ88]`HX7ߥ[e oߞ_Ng͹ //klG06/x]iq3(3GQ!pjOso3c]萍FV!Z01`[yzYI}84pIDΣJI&1_vo&MU.6gCGf(zp(B{i>v`XK"{' |:W`uid3ը{RLcvGȓysq#n6;G4bc!V\"l&jg'=7{۰ξ1W&JӾz|ݢKy a2K, ?f!=#EsPσ@.8q`VRb8;x#j?"l ( ?xyBhm IF=׍늭}; #>V.A^lc8oVPK׌Fz#!`Et-30M8]uܚߥ:A/?=]bc&ǖvp9. j^s [TAt%ˌK [aC"Scbftla*`sFQ|MUB/ ꒏WW<n0hbc1}y');mUq l3v䳜 HC7 $JxХmesp-#SuKub!x;!6 xvS#s(6`sαtSP\TgΖ28=oq~1ĽhUۑ SRrTTd\9[L;3a[qnA^!otNUj4Z+ )ifo: I,X֚tPW6CY@،K37\M٫r?#X2dZy!W%%̠j0!7,4ǧIޝoy?|1Po+#3K,(49^Ԭ}#8VcgR\ n{Ve>Æ6O6r||Rb}xJ|~;WNeG/t<C|xz,caaXX\q)xݴ,_:#_8( VᏞӄ*15Ć' <)uƧAe f3P\/+~- i"ϾnCy6vYÅ8}@v3Bג3*ջHd.F0B6\R2ku@F^n6 TX}XV-<3n{u:hǧ> E|Lhe 3"ĩ4l#aKȞ#oi6\^51qJPtEa$c6z6H ۽FYy5rŇzH=Cz.7-\lxt37"!SDu8-X.-92C\P:` A{cM.Ƨ-}SZ^z @",vFz[4fS^\JwcI}m@lYcȡǚ܁Wֹ6: y<'7&aشfYI ďg, 2-lՑNI<0UYqd%Aly`2ԂϬX@j$m=&dzN˃_2C~v\rt#9PA/G0[o'2{V7\Ј2/MF уl8xD8y&}ivje ȏ5 \[s::6:j_gkUi bO_`?Lf N JJ6A '+ːbbK kUz a# :ˁm?_wXj Pl]F ~T ⌿_ﻧݱb:Ao*_{HǝH.|{ed.sA9\+G? M',5:EP)`{I]g.'ҔwC_~u~%Uf֑d\L$<?霄_~cVwMf et(B?) Mbڮ+o]btD8+VҜoF( HRNJ;ttYMy%ykf11\n[ MX_u[Ϸf {åOԳLdl֟?h<7R;1c~ }O9H7tI9|mEhr|L0t0)onL%C88G^eM9W:沰ĦDv kMY0:#)9o"5ͻ=0 L3# š-O' |%2g;64UpuMB1ț&m,ȳp*,Nozi|seP7=5t;xwl5 Z ;΁> =kKuJ%r/)ɿ 7c aϻ.NMԒ[)UxpR"葄{YڿzlB]?qu>{AQ:e\jbx܍q]0aW8d-H$o<ɽ+[ MS??g<3m$w{.1̹Dknս,9ڏAe,FgMuxV3#QYp ݀GiWBI3PT<ݿ= =s?|/jOuΰS]IȖxK ncͭhAB&JX@bHR@?_|dxXܸyn] 55FӈJy0X*!x#{m1[1z&aYٴ?ߔ.zej*άZ:+ZP6Jg+ g{L~ZQz Q=VclI9Z Etc6; sbvDGޤ}ҳ n@$ldy(ץM՟ #Wvt2RRX\S[?`12P2b}%1SјIpx ]p܁_LķW hɃpxAa gxGRua6XWw%L]ƕY#NOL}!nIZwD(.b1ϤvKSڧ:+ ǒ' e3QEIwjk4Om/"FՓ|u.@{e^Zo֐mJ{>.#bcɛ/Y 4jի{~'o7P-%*eV+;0GOuzK|їZX } \aMT&AR:@ӈ9UN~& IDATg^_wdg}e;@ XQtyݾgm*nFO%n7m$JFkU* p+L͌)ՍA}:\rKD.]ܥk/=U#S7B]#g!-lZ< j|G#x\et2Ͻ5iX aubUΡ9leC͘ Y,Z ֳ~&-AMܞԾ"P;+:a G=$BS wgpp)v2bbҀHc 5V*CKȥc_X[p5 ě"NA2,嬵:#q/y;j~AYX&> #q7#"!v+5Ճ$;',a01u(]` ׌URS5f5Հ9dKQSު=i wAǏ{IL)4#&{z.hLxe;GL ,b{ɚ :؛Zc6T}\jXu3|ĥ~2i^e~P0K_%FJj- C0K1yujb #U^fQH} + :Dp>ȆZTH6PBtpr 9ak?&kݡz_V۽ ᣟ񧿉!6703dqCA&$"s1x:y<+9wHﺵ ΐBKI,n᜸GYض@ 9귭M{\ Ky%QUPeܲ>0OzqYR ƻa ~ex%&6*30r mIj bKk#nmc.[sMmq_]u ڜBṵ>TfZ QGU F l=eX6uWűPlFCm@ۨcԴ]Q~j(}C>Zz "="5p|; 㕞:ǚ}G$di84u]dܻ1B2Rǰ7^ژfIpWJ h#SR튙)h}4"KNy./c|tsx*5yPcѫJm6܅gX<ߑ{;(b33}h5>p"_@Ici2L۹ɎZjxۧi Sw'w!){Cz0%BD0Hc"5ܪ "h3|tkQİ˦d0kgKW \>G dfS4%)?00jb+Nx9aZf;wS)6@ µ ;鱛H=3uM\et8#հ2\gkgK5⽣,}U:pJ0[(O麤| `{B ^ǻ1wi{;fNNB~%=9x.ٝ01 ok-CyFAT&p\X)<@  YC#`Ǒq.=55sȶ)^8Iq]ӎ¯7ƍbڔS+:e_| 1_X_h +)m+Knj\N2ރ+~ g-Vd͌^9]p2 j}g ώ}4)RxCD{,Lϴ2 ]%XK7{$ z,SE]{[Qk-bnS:%H@3b"L`~m54a#nR33,,s{3ՌU^aDvcI~M MJXyeI*ʣllܧ~*+RG=AGLQ<wcb6*p[CõY |/o|Tv}V׮C.hȮ֔SP[4eyy_>QBL'9 j!R$qX(\o zs &M83 栣Erkam~"^=oj D:Rg?<{W[ 惩6?<m/˛GlǽcNT|Kkߕy9yc'u=iDdy伀9a > P~io~]]Ps (!N5! “X庑J?2ap\׻ѧЁU J~ "h,ZZ|NɑRy<Խ_bL $C!jK}1Wv0>\Zǭ c}-݉17 _).=& ՝KF:L'߸.0XZ_>}A5^pVJwgbzҩj}=P03B|f_ bhK- cD7jMTHݒ#/ ɬCQk;;dr>0#Ϥ(p-8 [B,t:" (}\Ua" 9FZSU#^ʫl7VbuwZ+x`Z}u;#A-vjOGc_1xZ Qv gld;vUv7ǿhIj&a0i_>]`WYRTi7י_+1Ţ&8R)q| ޣ }*A!}dbghx@ܣۅlEWDF\fčE5)q:5IJU(!-[zS:Gu@?"r}6底!lcZG6^ntƽN9]IK>#+)&;.*$UԂ_сT[B+T} rE퐬V L:#wn7 Ijxjl5pvvU1=QY3Nb14u}xgRUL$4z9:.Hԗ-ֹK=\>0=!G!5~1h&NɳE&F99{H`)eCRk>o3~HĒө& Y7}\9`ZFh 7tŖ6u6ĒZ"L|]w+ưbz*~f:HtoO?~gjݨ\$3s| x׹M).}(ioT.t(ruq_1 ?̀h89'._ͭ kEt6uK9+ovM#_eWF%x=baVP&m DܡxE_Es//+uDiBR(>u ֙oڷp,Kc52q 𗚹m/20vKk[,TznL֋TΞܾђ-bMu"lH8>&a |:X <ͱt'wt:VQ[ҍ7=nڀ{?]`-V*1 <@ppLd`g%u#)ת<&B`cѴT/jP9\X]x0aX'([iv(A|)"|rG wF3^a$3L 56cT-mS:ϳWH°m%r\2+?֦ ea)uBۇ9eu 1O78x_%־uWN#x?/, [V5 Rvȥek$f9"09XO<4= ֍?9?3냲Jk-6ÄY,!I igVa;[`=+?/D{+ѳJPt-3 #?C&?8я:]8~"VxD$[ZyM36{iSm 'ڄ 6q@l:SDBhcaی&=d ~w)\eLyrLJG.r^yNM4pKj <ykbHǰyҀ7\ρ+_ά냂C(Ky )tֈU<͎ r]u.Mѡ5AUN|ĺfH;%Vr 8XHY>qc*J".%p?bw}BUg rJl)I/k ؈&וn X ʸ!JS-#>B)XroÄ o .+J q//x [_ci$E${sB\z[w'=)r!_]KYNAp0.mgi+!Ioێ%Iv-;Y]a2zFN h4p@I2#taf{Gs-hdFfF67[TW6!WPL[6Ƕ$̊Lv?b}Q'(OوC)hNI"hBD^>/>޿zv~v0_y_=za`$0YOwW1IJbb\0 8wRޔ4(ڔaV._yU,m\T琰LnMKm\@6^ħci,7ͧ0Y-OoLK7i eg0m0}{XLaƙNJ0T"@r`F.WTqXQo1^[jI$Yq^%.Z8VM3>Q{O8?Wizl)q0DL(U`&Ttfkj˳0F6DU%gm֎Gu.cۀb[pCOw(͝ @]"0 $Ph%Ș{6HZ|}dҊܺVP('zn&g .K+עݩ[elwO4Bi#gue(tO ŢWE[FE|n_Zy IW&Mk77oU9im*MI SdFVJ\HN[M WY! z׋B:UKXܱ<\qbU oD 3Йx&kM M0u*.meq!3Da˒j Gd֌q{]d|pHǍ#K+SXbI \7`L4QqB^A@m!!O7p=/Ӯ{$ޑc(T>P23豘 ^抷aHIWk|:G L'ϝ,T{iNJ<;fwv~!hQ s뒮l]zם/Gv Q"6h{#bR`h IDAT9 xfre@ cg43,q@'Ւ}Y^u*ܚUԡ1.U5_'.PđካØezf҈^;}l6hVc4R)n#EN?Vr7S=XXB\dO7J9L3esv_&Q\^jwg3K4{^Vʋە۽e$>Ki;l3CDfTGʇn$;jODq2|Fb 8 emF~6׌y^WK}^?r[ٗ$ a$WFRg%ͱh·O6LF*<3}BQaV'`Uduw_4`$0iѥ'V1렴\FTףGcY~ ,<-FTz*7ɋ /+UX|ꇡt@M$ϛm{=n&^xjRx؟a&>[z> :|ioƔA0Bye,[u$&`]S%1Dzm];7sl8n݃5J5kFkޥEXfebr?'?F,Ii[1Io5_o6ݵk_hb>\V\kcYLHQYVG=b]#WG̽%73n% vIPdUnS~)чY@5p-4zUu78dL̕p(k0)Ҽ~z`H8UCw-z^5%q9~5 ە$::s^>B"wJMygGp{ڦ#?09$C *䄺ݤ0n ,fѱ'*{^ƅ#g4GTX\k*{ lBMm D<\iIviE!f ڶܤ0RחFTkS5O\S Մ}e3I_*)7K:!$@<kWUY}\3w F. k`j:ur 53@:E"-`HV#Xg19% Fe̘<6*U`{,'7BپHe%Y 5m={P#Xtf+эge *!oFmjXQM$KDܥ)î^IIej>+%d+ r3Iu$G>⡅'̆wv He;[KYv~͓d? xf/#:t{n7{{Tk[& q.P45$cj!, Ӗ~b;ҒHeB!: BN,?Dݏ\lIM\!Ƶr9,Y#Y_#7`&YQ0ܷ={Dv}-C/A փљXۢ`9+ļcK=A_Ku-r"BY<ّV?rxgQZFKh>[A C&& pKI^[-IMmec4oɅTr1`Y#|4ݓ)-G4ô1-]G2$Vj8wb K`>!5OsT٪&rA5ܔ96IYoEc9TT<)l8y&g$?zmʵaF&b%tOI+Vcݪ)&Fr]Ѭ[2qSyhb9Ktͦ:ǜ]ӠRrUVۇ!NLVc2W>|Ⱥ֏zl ]~nKԮmiٖ H'iM)!z]1 ك!Za}u"-6pkm~Lz.39UfTӶ;ٳgFm 8 lۿ?}O|أ㵥FY|3qLj 8y5KӘ)ĭ&P^f-ߝ֕X_u8ܤ؆AmmFwg`Jⷰ385Wd`Ȱ.* pܝs*$u4kPkLV:ׂOlAYyܧ mN4V3Gҗ}nU!YۂJj^Ꭴ]hyDQ߂amI[9 L=6͓T<̐oM~͓nɮ[cҊ;>^zm`иB#2Mkr?ս E<N g[\ә (Ac]_= Ԧ`7?DsRy~³8.ךmp+>"O5}!6 nyh]OQoxIF02dX^//сŭL)3hJZ .)!LO'd胲*a°m _^qq:G=akH&\"KU(/{%S&COP0Pӣ.p/uu ͞x}{`J'7]39hE5UO+5cd=A|(AXQ1a0D<<=fԓR{&=bf4s>NL>2qE9%KKU5~gѭ6ZtR&dcYbʍow({4cwm`fc\BԚhVbDas¾+={\2*5.kC(6~q]f C5cʲ] M][4\cFh-%fmL )Mmaښ#k)S")^\-jh&قS;E2bzD[iytWӂUe)?bvlIQbO }EĘ˦?|N%.\H`a>ӕU8Xm$~;r߽=팱 ޓì;! \` M>.`lT9{fap¯a.e-imah ! gatˬ!rcxYEVAH{Z }ln ogW^[i[63;qb\AzFKX ݛ @$f퇏[ 6}*bkx\*R'\>8Ԇp =+&S]>zUߒ/AzA!#<{@t@(4@!yufs/#r{vm=6ȭI)! nh+9O5&v%ӏo/}l7TBCEDG:ɓ{,A#2QQX^F= Cᶊd,;{Qr '}^f9kQg\BU*OAs,CYγu-iu {L0b9}?N췛K)G˃.4<=j1`)Z)$3F &=st6 s4) &"h&@ٸr+cJJhM赱v'fSUSQIHc(fӺ#C8:q9B%D+Gb`Do{Mgɉ[^x{\U*E!]+cy/M!h4&棷Z㩃m\Y+<6Ď\m~HݶwKK4t;(g+6߈!aJ)CD%b|P5%Hh@ Ipz>mF~f{ TepG ?GVl,IVrX}]DX -h3?;/V>BJeEYëOc-|+9'FD1Xzp~dUc4݉oG+Cl֞ a]?(WtZnKj!0Կ<zΣ&+c#M ,3P-tSZ:~3nK|iHkp]NB?;!Oz`!C͉;Dt,̩j C};*bTF|34AqgASq$S Pxk5Lȹjk Xh]w9LB<[HMܮRɾ=тݻl r`ؖqیdo,D3nnO:fXG̣U>ۊ;IK,_3G3S/6I-, i ..eXnX UY\8oz 35130x7ٲQkݜ\CIBz^P02z֕)W1KPXA5prUnZkPX">jk,8Tx%M ?sot@=Qkqo;n},lfY0FB<9J[|VQK[yx?u_J[qsd[؜뫥Ebi62,nۋ:]}S#̶1t7%YF ,6a(YJH9}<5XA%-5Nlؕ]7%U&Hb]fEY̓bM r#CLV(= g Fh XOXa HFZD< l+Uf%(lAYkCQk'$=YMU>bS3o2:WnM;^rW|gt?E/FJ;(-gB$jH/ΑXD抗1KFd1 LXY)YBE&µ%2祧_%P*N=*̯[2 p8v 'voQ(ˏcI[\K[:>1ݱ ys8;B <~(1Wֽx[SKH8iŌȂJx񑥣nR Z"u3b,奈8^GaolJCb*OIvwջk)Q[X_τqOwVyʈ=ӓ$tn2Y~C(g)՞rhNO./ONPj'p75bӧ/I IDAT"$[>H5;DY:=I_aҔy+$ٽ/ 6_n)} kپ^Kz .͡\l`MϢ' l_6})\騊uLEv τWF005$x{!uS'rwI%'6YSd]$a-b 6rO=҃IL|gg9/>=lȹ󜭺Pւlb%u2+pn&(E /pv,V$|H EQA_$j*җ,PmvRT5afRpPX\x|pSTX43)2s"+k"$\}&b3_H㩵ڀR"`3AKd;mĮ#N? ?`>!cT>E駜I08G'Q:zaC2X*ČH k~=+(&ol+˦.L谛qex: ׋81\0ӵ#ٿF^=wȀ p2X&Pg֒ODd UCŒ@L@6L;DNZuPhY+2:b yoɓG/ǻNS:r>BL.@ō!f~2 .W<0;0ˬ΋dQillP}NL-OE^:y:ηYk~X~>gy o!f=t>W!:A7/Q$;94r11U7j)% S0^WK,b UO0hJ\2Iy`a֝Qqi ; b5R+e+&?+}>H)QJI灨8ә7Tșe!dN9955URΦ$&Jێpk\7|(ѱ仠Z*8Em#S0ǔ^eAA> ?`#*$N&uJRo 8!#ˉ$8"7Ts:2)!rVDI7noE˒Bf b08Nc]iNma)KÓqtۏl< 5zl +/1_ܠjC_}a<+%hk3+YD{ ӭ5eg v{w].S>b"oZUN\G̭pEK0D.&Hd7 k+6]K=:j7rGpu_+vQqO0|va_0Ax2o|eہLz4b ++~P%H9.?mByG'?OĊVȺioI5N-%3GKX*b pfyA̠͐qnX*`\̼3vY½,̀^\8G4f\,^; Upn3oH {-,̂$j,\'e;z{#PNTSc ֢ߟyy%~mFk`iacwfK+x >PT]f,~?Grmj̐wAj7z\$K'aĞAv OCieuOջXԷN>ut %\:%Igb7r9DKK^kTW'ܵFwd8l, YglGĐZ@g})-wXżбzJlk]ٶ'ժ~|Ȅy`r$N++SWapxJ5# Fds[rl]j8j%YU:60`FV)i/C >M0Q.*8#nOx|hw/ܤ)(#|{eaR@H[fiİUpw$/W+ry6'qn$qoz=r y$?^71.R$7ۊn-&rFUd-M϶R)HMyË"plOot[]zbս)hlMMry\jcsQ[RqX*]oXvtjlhܸs0z›.-h L+SB0sorAPA'tǝcD!_:jC 'GM4J$4ɷXGLH(]ܸXW0g`ğׇZ_)w1_9fh5oe;ؽ /v>zN?3ن0e-X6;dXۿ:9Z$dgðRFi}X9zWRS9nwDWiZTɉE 뜋"PK QvO#y<|ىZO]_nAﻍRAU<*QvV=| x3¬^9)ANUVƖv P©z%  TT/EtWݽV6t<_Rk6w:y^.zWϠ-%]XI3l]}F#R[ui6 ONH8kw.]nn-f-f[GB1731׶q%8KT]Tr\ad,2G:Xy(i 7 }:O^\+,ɇijR#ܟ7H\!"IÁci:X%IIYW|eV_{S2d&`TzQz;Q6Nj{heR$GyCCbyz齤sP=Xӭc38)QCYR3ݞlr11^U /p -+l>F51Uhl # .;[P }mRK5+u(U;|m(zJ&\_m~cZ,Uȱ;E;["~d|Vd}:0~^sc=)@OsW<ؚwdžzWV[{{4|L-8ViI_4.ltd-bàIӛZC8!&oK u_W)ODI&xƲ(2N:<˴+T9^S׵Gno/-j4wpc%?_dQ3e"ݠt:!ǭ:gmYc7ešY׎%z$@Έ3 hOyxӺ3:Dzn3F3uwt$^l`4=3XEoC8d; U,MZ#B\~41005 !/aB=~]1*—iŨ#㙲cYLef#nE]9W2hDd `c;8{M~>7v+Y;`! ʗv33q"Ĥ !`- g5Ȩ?]oe.46tlt"N"<޽dsucw8S{spi*!L=giYvE{~v=3d7#%/&.2wf,y(X~pSWbc׍vB3xkk`؈a7{/&nMhCU:'CSeӋ4,_)8?˫r ˉ7JBV ƣ͠Lgys . p隗nj_W6!YȌ_ *x/4N|8{^Y4M9qȊVgT-hZbE 1)C?1? HHT#h]tU ugVFsnf1ewd "N싻Z}^ǘ2NYL%^1`7̺OR+qRv +0L(&,B{V}cBfj(kYʮqzq϶[l @Zlvc ?mF\y=S֥^o v`gSrdm3z21XFR턶LsU'QKᏞ\8K&K1 SbTMmneY[Ƶ im1en`umMu:Ή9\evG,(ŗ8e8!nYΘoyf]^7n1@*$B(;П+V Ǫa[U~ya>5qe\NqjX*"L)İ0^ ` 11΁x| . 68ybTݘiaAf؝U{>IC FF)־i[ݝZ?¡s%M~ģ>x$.&:ϠX%sXKeƺCD܅PŋlqlM(da[.2så\u k'lo!C SOyx7N^XIclF_멻jIEi1n`.Oz>v.B&{ ]Pt|xׇcq(}Ż|.\,ŀ 9vxa_'w!v%S1^\%pĬ^pt&7t3#AٓM5[zde8M]g/`w\^)ǘ3NtX*M޾Ci CdnۭݢhrcW\У4Cssap)sq(syFw!G~ c|6is^1o_n33z , Kb\L)5hښRyJI-%Vx9#9!hWn}FI@7w2K߃a e |.YNr'$lL!5=__9t߿:6dNoek)OnNm>$Q.E0n˻XYZ$yqݴ2 KdTiD OG<+r8ϺkrYxV{)K:ԭYIsʺ3}ܘ-qʏ^2݂K}qKQʍk!"klǮ7xnBH5|x{N'/fŐ;r9Z^3aDtv!ؙ.q Ur̻ -`# q7آy ' v"[4Ldr馳~$-Iӷ~<̃[oD]ml+|;-9eN>D ;g]ӐL!חP%'wȹ~vu!~ci8!,o'k{2)VYKqW{6Ѕ#v* :H{zy6r*:.Sՙ݇öcsEy:C̨ō#Ayӻ5-EVE!r$FDn0O;><?IKgnj%z }YJ7w\2(cg\/,8KIx v܍sϼ#if5%HCɝ͖bw (mNɽKmuN퓷faٚi)w 1Eju@Г"}wd[Sqj]w5 cR;;~Ԟx #C̉ݢw[pLJn3q% `Uel .ӠQwA'یqϮG )"ʡ2q1BgQ~`i2ntҒl:T {\LCP˵s n/Snŭg,s<!4푑oé&IF/)"11E.39p(\ir! iG0ElfAPlɝ-Xt5Qx[[50Ly֣>l+f}H,[WyIj϶[2ȍ3qH1s9P E+%K<8hZ؍TP;L\(PcST kM\?#^?sݙhBLݧ)Y4Fe& F{w]#b{Fa,Ņ:T*H]~K\Ϸg$%F=kzif&[#<$Cf8Ex=eKiϵFc=n۰%gPǡǸTy"$=@iZDHb"zҸZlVϩo?pzEDC/eMcF)I<)9(Y" X4Œ rYKaDʨYתRźUۄ_mN>l[=m 7Nڤ`̘ }Zԛ!^]!V3z)oqt 4-gP(gYm]rM` J=k;Kߓ̜q:o¥l̖&dJ֍H *˾wߧ) >nV+L.Q`@.Qyq'N31q,SW43*DE4Z_C6Z_ftԗ;EݑhT\+gB-챩I;/Dz $SΧhsuC4\ |De]v2[NJJP,(Yttge 4ؖApgÛݍ#mC^HGXî7ܕYaAFvCĻ>hNlmyLe$n< 191tX80 1 @eB ؂ɔ: ;~"[5⚃ n^)3dLE*Vt!grYӚn"s6m @!gktu`0}qC`o-469@Fw!ZLh5JI %a议@I+y81 \/:0nǽ!6]\kfT(~ <-i`&FDq}=muj0=Rrq(Lq 4tkTb[:ݑ@t'BZrX TO\0JLu&2b)>LL әgb =N0+@$drthF2œ{;$40TA(C,K rWf~[ya7۹ωocp}bWu!zۻm3,~.k,GЃa$Pgb+ 6EC4i$M쒹s8$!KFH}D_okUŮ:^'rةh ~0sx0F#ptzca g"CO1DĬJT-v'p6M.XP5i:n @4o򠀖iw/@5rMk:Gb8=ZLMZ uaO8K<O;J\& ԇv /[)ʃ0G6oA]+n~ 7,k΃4M~8(0o}lp/_痟3xȧ=_~􉜘 =}WsKO;.ȓ!U9ܳ|o`Hɖ/n?}7>v#UfHf)eo7r[k:%C߾4 *΢\pN91زw7C>8Ƒ"'bmEy1ktޞ%2I#ZvD"qbI9I1t92n\J6p[ÎxISIe ZD}(0*\WV>yS:PfRBFv>:zJ,e) MtD i0M'W 8&ЯЕ\Oy2Oj @,m(P4eNIa\~MdlϮ'+%a^yG1 ]ݤqAPGrk{~i o2MÚr%{I/Ur[.ҍIoiq.ײM}%J8]O ~Qp@y iPLr9CrKXl4Tۇ;Vlae[ĵvȘ`kc5^oӘ> +[W`S{B]hGu,pu 㫤ЕaGCx=3O~ɇw|[Rֲ#cۘ:C&Y+2:sx[!B4 e$?s~,},DȎx0ݑ"ךcy==9\wg!I^F"BPiuۛXGm!=xi[*P˟|]>%?plD{dDĮX&rD,&eۓ.ݸ!}W0w ],9OE:zvv="^x q]&9d 9螄u4s6/UJ2ɎSY @n}pJ߭DyX;o>w'B3 JVo-@~f90Z^R. o7*s%2e>hV|<|6 3%`(Ӊ0c,G~-r3XP_3)sUA:O)LshJXuGWl,V1K1 2aW'4hkzfR܎:S~Gune" 꺸yW貥{[Ŷ&˽fZ"X%ޏ𵞻 Np%ORi!ur7{mǾ`'Oq@zfr#+Vk7:KR}w?ޏ#\\'/߿Ĕ;t"@7a2qO0I[B*H&gJU5@< J,[3s` 'egPv^u4v`QJlcϕ @MdOI}zw`*:3xsđ0 Mfpxqљ9 !# sƋv(٭@nů\jm`Ա߳9ޕJo6~6B󔇻QߺEκA]'^n靂MtYM 5HH=3{L&%:5rUcVnck)qʖ@hi ۴0F~|?Mϱh=ٞǞtc(\>$׬ tyx}YcLT!fB"' ]nf/1h9e ?.PϚF@>fm[[[;y+CUvY 2eBg˂(ȅANMJ\ -g8s{H)a|%jp?}̖7sfǞr4VWNq OrdKiB~֪f<=ev!;ʴwTuozc *yuX$d8H{i͝||乷_ݼQ5mx2Zq0\F':hbK{8sw~??;~G%+nw1.'';Dе`x*So{~_Y9fp (x _|?? G!h[@:,5p)옠eL$v, hə9' \Ќs".gl}G YCeꡢpؤK wG8Mˤ"- =°+׷/IԒT6vBw3T.X4V[KiV2f{攷\4pT[.~[ʿ̃W@(ݡԐLKB^q1dTɥ@)FD*MYN9eOssۡP*o9jf?OV7#D!:hPM"+N[ed*.? AA- Hٹ71t`^ܼ(/to}ɂQz׼ NYXܴ"}pb i\Ɣ)MujyP~R׎棑0JdnlU*c(dK'◟ m{@,"N/Hqݍ!Gl<ב`ǧ)Y߁Ďy;2z5U Ow2|>Ny?*owsON??.@_Zh)iJ hXd8 ;P%TB1~K0aDSmajv\:9,tDrc׭B/˭J\$K,zV%$rH - S#6*y*] L m Ǘ8X3(I8Boy׮43M\q02GPӽ*3*ԣBUmp\4dݚJwQ(-lg:ς tr<#n̟~s;Wb#uƒ;? eV%܃kRd֟o՘rAj׸×Vb8Yq Q(BɄIi)VX$3:41n%]]--CD*Ƅ0@_cs +9bqeJpTbַdN IDAT3&+*$B. K1?OmXǙ7vx1c xJO_qyx}1\f -nvјLyBpQY%sί|tSd& dc-o9yiC5T>@7-]tyL%;Qf)ַ#k鶐6$Zwe=(.ĄYN⺎ KKD9"ib3xa9I amyTaz+Eu~9(lńa'\h '2iIu)*ɟY_xmKXi(䞲mC7 9xbx9'bX:uM_ 58aP逞O7?c(fcL"NuHQP{fUQ`ΐ3>36;_}p(uu#&b{ni%=ӁYAz_멱l;aIH5X+%]٘!϶1clY ],lo\hb %ԒK:"~M[G 2-ɕ8ں.U,:8)W# X01ѐ)aBnk qy̚j *P f9$O*< j{NP.H}}Rjf0%V3ģSBdHQSs֗nEFs.~i և r0ELGͣc'0 W:CB/?:O=Bo n+3IKi&ֻt"uLQQLj4CIvi6ifhbAN=((]7߂!"!LX,%o0)2d ȉrF,Gء.?.RMk+ۀo`TAHB#|߾"nZKi1uQBbV[%m֜WbpE 0$ep%[^`j;P o .l#m#l^*IqMR>j}Kv[gLG\I$6a#/ud{2iqƀ*Bn6d~Hmi/ꏯ0q؇Re(^S%fïn} S+VHEj%[le f*.`ڗ\Į8VsY|IL)W ;p0srSӍcF9NW^}! C &>Yʆ\t֚Ic/f_[cܭcam}w<A[v5+G< ZjZ R2Iv`__(E7e;Zb6lYغxM_q`]ǵvv\! a^cN~t̺Y羊}A ~> y?0FN .VI{섏jb¼Gk~(;< vIt(Ne@g,MnYE=:xPXdOPE3frw»>&bҞ, *Wߒ}8>$6LZ~Ojd*y&эKܡ^vOa;0%Yg0򢧓lsLQE;v a|'¸i20nOb,E80iRJZK8<*v#,P ZJdQYsmeƁ) 4ǁⱯ%n'ȅR3N$Is(cؙ vJlSJ (&\n& ,kvI6ʒ9x.5ow\\χ="8.kO:C}ͷ{%db4Tغtޜyf[lEaa,~]y1M!mCJX׿=X%r~rDeg 93)xˇ9)gdLj$!HQnOn-`ȂP(}u@7",]W(S&f(0,aK#PF0~ j?XbA]V4S¸yK\=S(^{91fp 6 Sആ0\x)A<`% ΑfN>]Ty`&HG Jj-W ѥ\;}SO˟y9)%5nQeʺ/ g={>MwX~#V26JGUaS:J_{Nd}ui,O<ڿ0e"[TF]6mmiɶ/m -Ѵ\BdJ7SKB_m@;U!/b!q`⩔7/( H;WXp3U6ly:/ᲀm ڽ1 $lpY\$C0\<&&$ta~ LsZiEi5S/Q S_7\3 Nŀq&TH 6/ ڑ >2,itcXH:}+KV?*_}+iJc?hgs)zBNRWM3^'X?3!wuDB0{ [#_"}å1@T:2fJs݄߫n{uBq#QѼ{X !TS" To Z۔mqZ;FɆi xB')Kg҂|8Ҿ(vc ʋ4byo cp>i49BH81̼,M~XoVX fӏ2}/uk8 [ ƦҲۂNQ;Ӏ[[e[q;L~}jhW_~+kQv7ႏnuf`j̮06ZD)PQ0 1 C1=T[QC2.ԗ"m۹\:s}ц3%zq65# GtBxݻ59&E&!Xb(x.bvB=vH$^1}a@)16s'[BVOg٠ct'AsXݎC<2̩63SOUz)d[ў %gaȲJ3fKc\AI/&_7Rb}%Ϳ#*l"ySĈ!+8C1c?ϾW_ |elt_bC?uvMv< B'_/s#)k ,M.,!Sc~&3ڵ,3Bİ4'?]!ZFNL.ô-kW$R,de zǦ_C! J-V,{RyDVI)!^PvPl)̌6V:Yb hܥAhur &2\bh,;hZFGZ1`+yQ&^֖Z.1$]8` 1#B<na_02%tL;/>+ ׯdt,Ǟ)p X  R9sVvQ7N?3_A >M(H" P/@~26 ؏)BZfw>ic@(8G0DKa~y4c'N$TnCȉ95MSOxůb0뵷LNJT=)؅dP,S-M 䜰1a-Ŏƴ.lVFSF ;W#MlOg0ٌOo#@Jͼm1ř2vf%Ϭ )zo:ƁCF̈P YjLJ)bk]kN-Yn ]u_ˠN<'|hPbz¢r"X?~?9"2ywx2嫯c {n3BKz_cUK| Y)sf¡xmyoo P6~@Ce5\8Vb VV/W ŭ[.Ĵ'cyc8/h99Xf!mec鶨+_C+ eVcH֛rƙ:6&bvՋv h3vTrmd0Ctƴ/;ӕ`Ufs2x!,=nR 9Xϡǐ?ʿS>~E7輦̷xI'#_LLXjϼ1(ϟ- R۶۟?Չ\3YdMOU67XŕjA}:je*6=Б AU$#yږx$[SPxw/=Ob%d٧JR5$dz$J2@ZtܠTOq:-EK'[,HœሮL&?Ql{RۏBOEXT6΃P2Ĺ5ؘ3H9$ {*\ٻ&|v;.P_ `0N! {nfIWIsB_frG7\ɰZpT+lo*3هIŧuYNf9, d@Vf/IC%'ZRL40(!qX.L2G!v+g-}GYd~wR,H ҁAfF -!~LJN]*BoO`-N wxO S:%;PRڕˀ7c"R4%P vH)nOF3q9w4fY}?TCa]Z1Z(GJ|d.!Ylv 9o=E2ZUhf&>?ꖗuXW0J^wPcm~V9+H.+t3ZtHדK S=s-i id&mǾtkkY|::)/3ad #V@u"T2u gÚbW͚Hg ~`fQ撝B2_Ǝ'fY0#6J =./DiMH~(_}Auѥr0:L{p[%Po:t( :8ae=`us߆WU7pN~y-醽xgǓZ=TwyOhOmΓV2pt8U 牲ZDU VDqh IMepLԠkWh#Nm#jӋqnEҳ&f c D;apjl[N-r4r_cǮoz Aӷ ck3B ]YY{Ѕ-6Gkn7bK_y ->∞ Z,gVD|iuRra0r?> =[f9 PRW3:":3fC:R"̞t+D#yZ҅8`À[}%rb5xspL$&.םf:*",%2vO 'Qe"D!r*',}JG~ffKѐqҲGNy~P ,68VAw',xKʜaD$H@KruY՜G~)xݾ~w3y/d*T pIp~̒<>3NS J^f#QV,WNJ<ȗtx r"oxe2\L^,hBX"njnA;*mZzRud5>Qn'lH 14͚D r鬁ʛUK ڮv 5ٲ]'w.-7oԹX'7qEzzRKsϊhaW+L!r5 #BGƎ7%R&d9|^~K}wi@v_ EX`,»ټ!u3%q>U1orHh4NnhCmK~=hV2f$CoAfh>P jҞYO]M+[cfq$:ӽ1mS,z IDAT +8gL:fk\jykW)p^jEĬ|y9i7ま\&#Bx5)T3BF҈̼gr<0f^.,Pp)x?Vsa CKBDdExl Tupz3^2Q!1b<3oy L3T0brpk(bE.B~٘7eOj Z1@wpM_J6ʰς0m_Vn^ɃIjE,ٓ0\p+fKdo!CAŢ»XUQ "^/fO*/;5G1w-w316b󭎵E oBQ䇮P2ӄbfYfX{,Lp F8{OqWfU*1,D5u}Ъ`[1bvOp{߯$؏5yFqík߀RO |=; ?Lݯ YCu,\.?}Ozq{\¯*^{ecME2=NM'^vc]1׭R@7gMSտ-QRYŒ;h,7G:S{lq 1-$G8jA`lQBH Ok4i8\&cfqJMP29H'z. 3ףV󥴾ck}p%j VC"wM1 TѨvtAbvd7z$M*S&+Q1]F5Fb,/9d'-YtLʖҟIWw4/cݟA}/{d\;pH3ّк}w'bdɛ4eTv*]Si֏$;Roh8Ȼ'[͹[26;DDQ^# UsOf<@/Zԡ=iל=7e7Z_KVrޓW} r:@,fW֘:{fk=Ngj҈M[U78 ko3&-!UXՒ=Δ4 OA%4SV7Ek&dôuȺC3Xm>!U.2LX±yb f2*h+?5vֱOS(*.m„lb 2X!~1g|xL,S['$\%&ޚkp}V2`, `g17|uwT3qF)`-/\NH5ݒs&ou`2]8r : rڗ9se}q(n2xȝMmly0l Q&"es^)Gˊ؝.0Xzw!?0\hye6]~$>̲*Izm{Ӷ3_h[ C"*knnJw=R"9?.9뇸ӌ(ia?#YC?>"Űo/v-Ͳ5nRjV1 2FrqwQ_'WfZMۣ{}4*{!_2h|c3{Q^%=!.Pk;zb!+-9d>jBFQA2[o0{(O&;Arp.b Yγ9HHo}ámzFiag?!mS[hG˳\-m~zZ~=o]'_tsezM 7."a85tF!C2XKJٿ7!d,Xo^/Kh7wl93/g>-MVvEnLi$<W_ AJԪh/1ŐDĹx-fn_RY+P\óe|ҷDǑM 5;8fW#W'}u]ot"s|!drj٣$a;Ҿkm/Cq4ǐ8&-o>0/|\8ycBHt3 q%Dybyo%qƫBLlJ2 Ku:rhe9!miwrS:Rh i\,R-\{S9qXMQ٫!{-}S>i+Pq65I_"XJ&6)]2&g~Q_o/!qx+2S.d;\W|=vHn_xA2D>?]釉y&Ir陎&1< >!WaΨk` m7z,SXqpČf %bτBJ$hzI6u7;H5#`vԇb wGO~:^xaT\t?)ƳdkSϡu&-Oͨ\&5Ly&'|bIztM.B!mS~=e5,`¾k͎jUp#{kcFΟoL sY^_LIC.vsMfP d?آ.ݐRFRä́QeBҍx8T!;DoPlW3#u5=!()\QWU\ *06| ŊY'9.|ʹ|6(#Y}(dby)}6N1m\vSs(d]mnۄ?jݙ!Ỷ7Kc6 Zir3/2RP#FB Gfs+[77wA}@*.B̈r|i(P8ZacWyzwLHdhQÜHUYVejyL/ KU^0et,l0TlYE;5վbȞa--*l`( ns^Ќ)0+UP!xK6u >-8=LRu-hr\%]a=;HÛxUQ5=^'Kl=~qDt=a2أtYՖs /d~,C]ZҬR Ĥeҥ^;,qqG`cŕL2Ҽ { iN֖Cl.uw''^ׄmgîaRZeIJz (E} _z>Hh׋}i0X%naOqc:=q13+bOi]2%pky-#(|LSŲhmp0G+t11w;[]zR %[M6 9 ],S^8wR=CS>juoNO(:qt NjZ9ncv#t9{//^U93RB>\>0dȊד QP851-8RrvWfFx̧0v|[o{Dj~7W] ZbyʗfMn}9eb~~K.¤d!*ՙC dVcpT`J.4Pݻ$i4󗫄35}w)_^^.NT'$b]op!ZΞuLJ_o VbFJ\f0QhsI&krADsGF 7j[iZ<آ>f@-E/}37rmLbݹz4DwL qRQ̨$k';_<کX'=p4#ÑRu{j'udXz#"eŤعq>YrbƓf. YD#OD/AOt:NfGρ*YϙWk+!mK9g ;+f ZVg]PL5vG]"2xRHAG%~N Q]2$G8X5XFRޝ Z`QW?`H^ I<ȓЩ3cw!XxJGkslVX>a/e.-bUiQ `59nAjbjz:O.ocnaei`G5%~€,:XI}={)ȎZfB{QJ`Z(ZC'O5S0S29%$ CĆ}]<-TV`=MunȫtXGEEҊQ}Z4IB5C ZplQ(f_Wc-Z'mUWBnGs]3U-S5PzDK/ת"C9S7[5XK٢u 0X{.ȉ/gJSNOW: |Hau/daF~M_7_ル'#/׆i+`f!]('%ƍjݚ^`p/+(T g~{k2m{91gn= ]z[nD7a3/U@p1)13:C 0zLx8hFݹf>D8-R)])ZeA^gleTWJ5`g9/̐M=(IsfyaSS#߿Qy'Nf۷˿E R\%]}2=]OgXeLwQPBZsk~}W WXXuxkXg{k~:Lj[3[E,G&[k*zq`,c !>{Ќg`2vlhiZ:3ܓL- #GLZ ũ? y!mR}o+P6"C0(d9b獪߫Ų#]mLI(כ  O:ldywZ97;_6n_34;ϟbv*?Fok݉,C+}R0c9:DxX ?D2Lʇi}sngLX+pj3ɖrl ooxaYetpHf.SW}{L3=|pǮD)$2D$l $b .r;3`eu((MۉS^Z+5Q;r?Sz~I-ae<$ݍ}Wz8PZ;(K GrlDlPW%nɤXUY;3=i mmd=G#xda/OU;?T6$ȤYB6?]<,8a^b!oZl_ꡏ Q. O:Ҿf_޶mS\^cP:[%*K$$RZTL%a`]$W}p3^[WO|no:ws>' :wo#YaqK4:pF-mXܬJF0Yp*@^qv21OI7yt4 -NCv$`JЮf6BבKƽ@hmLh+bua@ ru,S:CL5Y3.` FwgWK Y_LRoRnk42n7SV>|]&%?~W#].e!՗r\ex}|MZOLذ}6] KKryLjB2fU.-%!ǘm"H~cט|wN#i<E0|NڻTiKŌjj,j@pۀ0xN Òp_llP [ezϿt?ǿO3~q}F 9^Ŧ v!?۟bH] z[8t]uf{lF! n2\.Ta0['85$et*Oϙ%NӐcDѳ{ F?|Y~k'Loc8ч7zw/ :|L7.DА]sS}K zt5X w3&bc.]%RPI= Vѝ(}pv7hCT7LB15dnORoy+wjc)9] v!VR+xF輍 {j=6߉FjaQit,6ݺe7c*0$S޳#g\MðLMܾ8.u\ݧi\3bF;,Lx3,t/,TgIv==_M.|̹r2"ҙ[v˱4A?\PϙuM}KCʄ~F/9ZԘ&JKתX:+p(˛,#P ptXaQ.-}s:D<&jt*n-%4~ggk#A^@VrcLelUQt#R=Iml\V5ZBJm(.JֈbHH͟ݏ>Vs<$6EUJqF3T7 Zj_sMcc;W[YRœ+).bo0Zکg赒mGt@33__GY(*']>1x'fSxd]xI4DJKk-*hZEay$- #!^B^JA'J0YK4r*?auJyNg-0Er㙏<6s S3"!HO0{^mѝs>,4Gj]?CneŭkUqcog~&QG"}+"ЩÊ@IG̷uD C;0ZPqAպމvk+A#T]O5I#C@eaf+6xʞÐFa l\_{g ;Pe)ko?S 1U@g}`ɉX3'~5*D\[ڻZ>BWl >7# Vv-{brDp*Y󝝁mεkc=v[#]ʼݯϯ؇nDYet=GEe<>Z?1T<`&љ5]k,ٻʒy̬g8ILA  ٲ F'0` ,alErHͱwת̌狌Ȭ8}ثWeEF|}L&'S$P1̷|={lB,}0w"`fL$H*&+2 N]odY眖<TH]"/KM{ȴܨi#Mm~hy{P^u1 W[5OY?<+k~Zz6cS0 vC NQRysyՖA`^) Kc_<7'GR:2+ݿ4b'Eqy t/oI_$dŪxG%d~bƗ/̨d. iFl F^3v- $$.%L3k? }a z(yy?|1͉Y S?dv0˃˗6 Զ[Djk$oͨ+ZؖK0dpWwp|BHq@9f,!&krsb\Zh(BP }̂*.aɔ]7jYm[ڹf6YNv{vrk s)gedJ,a*"$N{䒿wt&\lĚx;*ǥz 3}rar/[I8\̌y%~%bO<rWRFL=vl xJ#\zCv*NeՌVeZjYa=$~a#+8͡ \"Sb`/ 3?UZ YNqS.Qcђs>pX 7;nO 3˻ٝ~sXll9n .!@i.;H_Œ13!pL ƉqfX@f Gvm-fG*v )$nH&Aҿk;~:uha / 3Mȧ޺M$_wٲCqfNEd~"L"D嗯k)u4PvZMR^vSm;a=a摔gܽ5խ@[mxr* !Q 4A3iڇ93]-!/ۊ_< 7(d0«vgx>a !}Y+_OatpdÇ 6ro+Q{OXG 'o>2gZiiܰո2#fNh+1%$ w !%)3@Hz W"Q &bvnuyݐ}j 'kYanGDIu8 ^}D"t /$ #f耑x$;spz;tŎ K8DI:"0Pϋi+\ l]MDo_*l[}Rݮ}ݶui5k]z8'<͜3Qg2OlER'3Y RAIRO 6 &7¾r N L{g>Dg JX |E(k3.| 7VSܪZdƝQKe}YcɑI+x)0 z++"\{Pu&o^/`=)BT4AgCٹViQi}X#ioմbG\+#*(b&yHO?Y__Yw8u*BN.~sdv1!]`и8sKvT9=oGW&6#~>|~uLR_syB2Cy"tLÂ7F$1ZL*4M*g/?*A^70;CqZ\,2(&@"%5K_m2Հ*t8DA6}:(/.d!%.&!vɠVMj?&ṽ[eR첮QCl;d-u^;>$JUvw9 .fa~:|\ځ\9ВQ&g@I2OVpW0d!9A_ĚJ׍W85y̲M4A#wko]޼_.>ML`s,+QC9Wj=[{9ste:BB6LtNQiFIC忕T*$U8\tKI2)/֎swmgQՎ& WhSq__1~'j>:ǬOX!{Wl 7th/3"ҚX56K\]A #f$-d?,))1͈wp{bS~A]b)W6ʹa342y/;h-`%O?G÷r 0y ̞ےW:)A{9 6§\H"*iɺ0 8[}5M⓫+*Xw ?[3VFe3 z )u<{%$R$(cjp Q,'SS"\*0%nmpC>Ң@.Aa^r R;Iea: <*t=ӕߴg:!}R-,2>Ld| F93gDy:"*I^r9CUT" ^5a`\/W,y h\ >i_~ZKvF&Zv?;t}StKȾf^@ 'dK;=t'~O%)F+Xmjnঔو ~Cơ`2&B{e#q83 _"aFVuJ)}%dD2246 Rۍ05|md}-|̓NfnADܠPZM^cAp%NJ/UN^ג̮m̬ &`\kυ,@ps,#Έ&b^MHނ!y"q7v]4.\ ;Ex菨j?xd1exAE~]^3eK77F42$ FT}0u\nm 7v9ngr:/s C,1@xɥ:nr4+ +Rg-94c& A$\ThrarߜG2( ./P\FtUY?~ 4/_4fnduqTõC9Vki=U%\O~8TA2~.,HG$ؑn.hrN6K3>otj|Jo %|V`'ȧ2s1>u?2y?%\^FG22(€f|܊o!"ۚ61\ܒP !< 9qpzDGBk 6T V:&`3_ ]"tFp/rS0܂ʰv_Xda(Lm'*7:-^1m,շL4LGfW0BJ{i!xT˲\7na2]HSAݝmyW"2}J~:d4utViFT?A)+Rm$,ќZwюdP݆7cAj9OYyO߬4K'5IL[&(U#Ҋlͺ\䄵Bs<9fĿG we(zB6p[_˖r>}{='ƁrnCaC/]ʤwۮ2PQ & ˋd?V% 98B$״0"# FJ$sjJqnw[5ϰ:TbĄ`P $O1P'VU?1G= De>Kb ı/o(ؕ*v@OM _$'F!SqR<͡ p9 ")_z<ʼݛtqaid[j1/};?&D7&S&jVP9l-G)YV8t" ߽iϼ.` י#B'wg>y:'͆芌(YƵ؏thEvV9~C,Rzȴ6ŘGcbܜ s 3P:5LP!Kc;v߳Eؘ"Ȧ͘6El:l͏hjI[B0[?[/3i.3YȆ~Ⱦ܆,1(9[ҍEZ=Pŵ&زX7fbجRf|Fc*L֭Mݔ"{Yjn-S%6Z)r:X/`H.콛?gZ ,ujf\qsL\#Y0t Bʨ2Cɟ͈yFxQ+Mm-ǡ+Ѥ }W/y>i'kˏ@MZѡO1;kvʖkBa%BG!=cȼ&cF˘,0_d}43Q]h;|?}.@2w~ [HQ$PKw! = 7s>m/?2*NR #yV5VKb?+؄:ظD|x=(T!bvUfOBl ##ќ|d_Z,uӊB1:#>bԸ~lU-4 uŖkMU3ZzJesK]/׵cw&x6Av8ẓ ybv7[9kKx#ef@,QuH4DlA0-iȶ\s16~Z#fBV/nm#$Zˎ -A|ºnBi!agNZN#0/Y XJZe8gt 3h38Ǥ$]jz!jp$J Pαhrmؤ=PyǓd?ZWgC7C6d;k K4P1eZdf8z:xA{P4(^kX+etɭ]jyɻVާ]i)/h7C˼BʊdX 3" kȖp,|:(CZwe%2h 1a&wH6mt#`,"{N[If1q9$C}fnђB`6b}!mӠmߢI7\9wI18!jSPBt'uwtO?cG_N_‡3gr@3X"A0+&$Oݺw;__ߘO+KN=qVrkUNPзzX@QµRKYYHf_1ᴄ,GGXy=?汦jfm.lzt(OFCʭeJ8h`o=UJn#ɨ`B)&cR_R,Kg\:ÂM^kղ!lT,{u^]~*GH7+c&%-e6l:dEX@ޡNR]~(dOdO`3tTfAB8"hGG7:==uO}61GE^nu%Y)6ҭ]ӶlMhJCw[Y U%ݜʡM3+3 Y!X!(ב:C DRJd|^!;hJ# iknAz"VnG#UxD܄D8slA橖bLҼX3SwL݄̺xUɾm&zM}Swls0SMMe&mP, 3ni>7e`IA$n:@®tNk Č'Rs",Bi]r%<%jԓk?01E)ՎO6>.Gi-eV_SRir[RܤΏ{-`3SYozbE.`v6C6B, 2׵9NF|CW_OWUHWӇWax!Ω/`㒸cGڲpNM2G'O~G[ PF0QۧwG88 uN]B2>1Huگ3QmK+}@b:S^T }t|y ) SVꊟo!a"Cvd>0BNc_1(.2k,Jg8I2񈐣[[3HR mo<ƽ>n_She"HZw*ur$ oG.N%U4W Q=68Gڨ!L^K0Yq;M[V;HG}dIr-/pe .#'-1t9^EpAMOd!N"-ӣVT"hRun.R%(7cVw804+DCgȊ<Qg׈D\D 5L]1,vMdgp ]5KQs"ʨIn w>['VYbm!y;MlL tƦkӬuKM3w3dȇ}Z -&_fAI @X2%lXjO ]ΆW1M>j#Ǔ:;k +2 nj&Z"JPd1MeЧPTeOK2! rCYHM7Uo3_|r]#|@ nO] YPX& A<gB@2RHdEsDof;~x_M??of}!eqF hw#e <|#C/!-+ݾ'=g9D :6{H_kBӐ\}VEu_L'=c):P2R t.a`xfd.kqzDݼԩ i}/ۉݙYul Znt\2op !u،DL6.GK$h8Ԃ"j렶caNtie&Uӛd0]43bp bW B\g.#xgNxg&`\k݄P*Su31_yLH~&Sdryjf^k lnI1G}iөA}nYV IDAT:-YLҶ 9 g98\zT\׳wOdx cL)\Dd@+,Md@V#`C vw[cp9ηܒ&#|?zGRRZP1wǮX<ٹ`eZxlE 7aT I8WұTؘTy HDti6/2TS` ɇCCgBF-.`\y3߽b j$2 Od5wm3]d|8f+?k?tdÂ0~2OqI.H`w{qt)00_^ UCT1%gTȆb0X~v4g&ߝHRKH?hyu'["pb"s۵6-TZm'kZPm\[혖ť'^ɱ/T4= <@f:{_ dA(w[ϸb7& ychIbkeDUSd;mo&L*ol NW|<:Ġݼ~q#tg11+5]'M=۶Ki `.q=.A8,"q"cGoQI9t8ߚx%5м ]im2ݪ`G6MS=.3:WqYV44w۲ Oj͝7Rx ap `i1W#8 ;́h~/ݖzTEBzZ!h9|ݙdwW:(G5;vL*z)$,N|YKP$j'C֥Ūӫ-O(61(H6]Vy@4SXȊKJ+=Ve]6(-IDVBx닪d%KӗmxL ]1``_#g>݌er]''BU&).*$}-*㦻.Tx&hDSXODY1CN0I,D|{]z'TqmtӁC 1<!_A 3E0C~ ȘJ/pqW3{̯JycIq'̌|:SP[} i0,3QUcZۚ׳[yU֭qD,UNq+8[ϧ@$C}DL V7Cq] `.=d b/|,ot -5%!st˄~. 󪀤Ig7I;gezJVo*1V]xq uμ܀Ҝw.WlmˏrP-.w z5Җf3%fBBoTC`197b cLwt^f~aZ4 b_BDfBzO)oMuryݘ{#s~cvpm +2è߃U0fo&݄ð6)N8" z*BIt #坱 IZ6bs1U][✻9&D26l#k }+ʼɨz$4[#ٞq6_,QQ^BZ[ϫJj Dޭ.{,4My|l q)byVTdـJ@;lMqn$̊R\86$,K?S>MOS֯UjS*e~-#iV! brpL6` MçoP | S\U΍llR(Yأ:NE&J,6~Nve;e2.7NI)qWi\Tx-@+LFe̜% ,T:LB|{<ƠiQ>LZ*GL]Lc-G!(;adcAДGffoZDp2 $E$˞`Z {1Q,0FBb'xW HT緤$O_4l2m7W+UOR_Sg# fmT\6^~4[-_ =| D=:gqvDlQ:à.-SŅkLκVSX_ki|lIUXӜe=܅*wCS:hš%v 1}M" 1LHLqᙥW!8K <=BdHܷ-WUrz5R[h_IcnnQey]WgՅq]0{6|G]wѥ}Ƒg\'6;ؿc>zb+t(7XV4pe!R=ibD3p^9JL&qrRH'Argy{ZcMDMݎh #-Wp2-Ub>h^w+UxC7M`֥1Ԗ)3爇+S" *3F {#G֛*^$C-\ L wEyiT[?B1tnPʾ+) .R[1q9+57yGQ̯h>̩A "KPAtrp3FP#CDFԐ3QPl9]5=-ZlD^e;]2߰c~X7ksSS>;-Ϟ,XF@i+@S+ L]ESaUnZ8z~0tsom>홡[K.ۨ]ѹVfN(LK8]6au-BqHv ͂[R 3qF5ZOap9=!gLΒ"+]P8RWS"Dao9hұ>۹ZlU>+hr\0(jK;šs6Jq-A埛(p)l>vU>3I_'ƄFr^= i&qI!Zjvv{ǀ%@0yqabۚxx蓄]oäN |&Bt3 m_YʗuuI,T/-c9̲z!W]`N6UܵE}IU}}HJZΧM^ez5J-A; m7|ЉTGT15 `.aɦ^tlqfrd&5#Q#y>]2,Uloj9CHjI2%tBNi[_u0Q6r(1_3v ͦ Y7#SH }D# Htc!B-[57oSni[_&4E+ V{_wNj ]nFW WZmo=R^s+{}K}ZkruL>0YHL39oMhgVacJ_K\6GULtc#.UBMi +sk|;[vXw=f:NiꨴT`(#BTZ˿o y|z&LSJqٽ]?n[vcnѲHE!G$k4 |>Uѓ5iTD&PjcdRh1w*ZOVU!*FrvmG<-(اp꘎NeX Z xl{W4^η`-VpB,vm떿u^U1#Ȇy`j!\/ CڇC׻PStKK{2ejS;cH vĄF`gtC`9{CH1g_#OO O~}ř 0(|X_Wk3cfÖk'lF^>6𫶴YEX h)vK_B ļpdVSP:<䬞 f|q7.x2۩/_ٍ05ּWt6oqQBQMx| 6gynu-qݚ\91`䴯uh&y;^7ɾGFC4ע~-B7AycYoǗݻZ7Ppzq /;aZ`Χ('+ 3HRjmPe-޴% _6M=Ԣ%_BDs~U~ ٱApf*\t6w) nY'[c.enGMz奙\. gs3X9l47zZq Β3C@#Ifaw׏971\d6"l$I| Xsoamw"U}Z+ '8lt'e㉗58Bv*8 P34qS˴^\zwdk0~Pfjq>7zF̪|YbpMoie|UZoi^wa`nMFD]SUxA3q8t ͆LL5A΁.0!z#"˂):e`+0ɢlDTs`XISUl+%m1l Rg>s<Ta uunGU3Ԏ)2bbLdș8A6,8(4~jj|w2ΑUa>A6w\\u6jޞC4w+wUj\ZooϿj* ЈgY_}Apj3N#>5hۍwRyKIᶱV07iwTd9ۑ}1dO0V lhzq" V֓Šƨ)P5qXe Q)aZE{ghU;5LDDvD8T voن|ptICΊ%A" Gtq/` 9RI1IQ_+s#[2ʩ_MZy&wXdf2pBeny /Eu zƬɹK5HSMHcryWǗ,hAIng/͹]4rJ7bscЏ st.E}H"eFkWUerw"-; pyh2 $K߽_)/ᲯU!݈FKe8k"FS@ˀ6Yz3Har$îC2a7Wf&UieʙbJ䣊y_MaDXA3 `,: ypJw "49*.ri.e]g aZ6n_5gwIǖXeɧCJF}=HҪ: ;hpx^ Qu2330Aqh͛]z6y1J14)ნfiF#Q8YFWSd=$MfWkG_|_oiw<,o?߅&`v$Ujh5obpu{\UE˕z|,WJpY0*zr܁Ut3Zb:= / RshȹjXts؈M'矅ݻ||g49-xǜg+4@TWs`Qǰ[zcz,|śt>07-8ldNxJ+0Lk=ue#4Iq]Cae(}1w٘7y{%.e؇ca1+OPg[[`Yty;/3^I.gMnfS%>ZӖV)u;Vh`Wޑd-G$vһͧc(pGr,W) :BゃHŨU/-]߅.F!CqB2%d׾HF-!PMTïUN-FњTkBUV^w]1T^>b>=M_'=>yzOJ$Q^Ø_*anHvDt¸Eoa◔//5 SD4z8T AnawR92NOU"G )V`_fmqa/Q;D1b2[xo_,r3Äx~X~$yc^p & IDATu188~3GJEpr&'n8bj\06_**.c)Wn;&ތty?gՈ`OT5a>A))},J{Fw躰mb=!Jl,Q//lPrIJ;Iccx 4iҔ0=@ݭ;!70F_Gg6B\ؚ64%r8^rڅD["Ԋ '$s-罨 9H,E" ݠPHڶ 5kKkOZx(xi(d^X Afir-!/t_=yǗ,fE*MIu[eR*@kTjIJ *0qǮ_Ofy>A3 h2/ 7RDƠkvIH#ޱۑ3ݸ6r3SD` ]iN4 av|fhZu,B%-(qb.;#꼄` "|D y=n`^Pl~=/ (0D/;heΩm3uij h272Km3uך*0VtuOV1ʬxjub}S= ~#hW1×_ǝBr5u(ɹQ=0 TcΞ|PT~mur~$7n".B 3`àvxBK5]{$v jWǗyȰNPUdIh$`+ (c"L".'7tcmˆ輏Ue'DeHagμLqII.R(tu'l$ ,d3 '*cgOV*Oxux8EI4]tđד#ȊQR& YFGOpzS8ie_pJ}I݈uuR}]0{jR2p >Co[s會;~4mbB *Kd-}I}Z ,?8Rra(V2e<*ē#I<>w?ݿ ߽w IU2E R!Ex/u\b[*[bÚVTZ3{ /[֌iQGK5*/Gyy*Ҥ*]RzTSHQa߲0fAՉёSSFjj*!:эFZ_ɴ&뜺CB0Q7CTTyKŮoPZGnג2YZF,j9RhHzoO;v϶Q[D@2UfGaAeaj1A2G־6 ִߎbrDPMP%\Fb8KH45MM^Blȭȹ"Qɑ8pc& 9Ƽ1u&'%@21D%7Λ Lk"'NݲIֺ&a}~s`p<ͱx䪹OwM|4մ%D]-w]Y7Cuz_ {>o83&v}Ch]/Fjf!zj%&ptf[[T> jMR8>qjq˽) OAB6*N&dkT] 4Sˋl."-jUA]wKDqy*'fbc$B";+ Zl%˥dY*P^LLgHc9Ny[&`UH.?˚dink r7JjǨU >1͈st4ll}O%OJ9}[b9ȚJbsi*(h,merJ>j&N<ާ3)*%+VxsO]wL7W'M2%X1d0 |U>+& i-,є,(#^y$*W?opLŇF^O~7=%'U(nVOli ,ҭV_3rQ̊PkNiNdw[QGaTBaVg v~ IQv841L8ԙk8|1M8˸ E񞉘3ȁ!2 &{Kc.C̍/l僮GQvN+=y\1!&'@$e7{چ}ŏ&Ƞj=͞8Nc\ ?xvdߏÍHέWt1$0 ~JϮZhIx@ey>_<σfP"5Fٷlk@5y3:#AS~OV7K ,oKWdF[uf٦J&" 3>b ecy$_m{:*0Tmdr%ݑnkbu,eT]3p(rnՔķO!1HF1woF~4O3"Dܯq[L:d\Nӂ`>^UTs[zC cbEN+*02c&繢 fȩtkU!䰸|sDOGA ;{cb1L<%U8 j\'jQ*}#VK dI3LZDԋopGNhO {Ok+L¼ >?/G9pBD -&* .7T5i~DxOx }ӋcMvd9z/+6\ b;ts*Kcߥ~+AKHLW5ځzj58;br֓YeOb}}M]1 &ĐfAmt - ;| &?IB "A"Ngxaa⪣xI JHy8B"*! }bNr|v;/~9;?WQ!/f|RaVsHXFUoѼJP ˅G,~#''\p9T=ӎgeCVŨ|+BRX#P¤-T8֮6>nFHwg}IwviNأVÁ*G/m.Ғ,7֖|:/O( k*:nnf=׀Vr,]d P ?֖hѺCq]L>琷Is) vU?VT=sװk0a؃A +JT>{˷RE~`8[ofM+?=>~yڿ5lnr?cWq_D )ߴZ؎u3litSQ/ѽq=KX_$KvԴ8Gy92.72ٹ 6Lm0?REp$C/԰5F`zbMttX*[pQ sn=ņI6}<,V i$Hrk>s7e0]w{w [TK9*z seT8DӱCbuw`L Oa+iI,mEe1BL )X`u҆nn:è/4I+Z{X]?+/ToŸ=7ȌshgV䥺j RIZUYZt㖅hY-6BFTUSv kSv}} & d4glMqRлV+3(XI\]yR(P! ?aXbD7-o12ˋ9i׹Y*j@ [!b,?$jJϴ[@Ƚhk?}¿Oj> 2$FnaAvy])ƦCap3}Z'*K]4x<8c甦!%%mYX(!Se,lMdH--Ǐ嗌tNF!V Z6FoyJ=d]ẵX,hgo=Q͜tvv)'RbLF2xf+o4[K] nB5Z^8)"t%eҼ_Ѯ%H}6-CƸ,'@ұa̬܍`2,7Z6I5UMpF&j6)$v&x3F2 AĎsp0J $P1x{9<ؼvI @wúŸG{Q@?G0s53xB1'wә||7?wygLݻ=j+:-AEnyJ&Z(Afe[D\y'7Z}6z<%(tnq_:1LrKof_,ieyq^gְQWHoi|<)-r3,3GU-9alE[9hNLzF|יjIgO$ʹM$ n턺 Th ٴ^mV+kyfwb`4N3T4Kj+3DOUCr#T Ӹ*{?RLM;jfZGE;ML cn;_#=sI󑩫QI}N fpܒF}!D`$"nG~lX[lhya6+c%)D|=?H )r>[Sm0F9,6/Ѽ-X~9D33,czIs̄}۸qpWf~V'iɉ8^ä (!gƉ0qhkƉFv wZ:񨁄TCy@ I1^%t_9(/}=/jVEZ5lac /0=oi)˦jY#(ݍKV g,ް-F19EQ{t֧7¤T~^\G>@UujBq ,ܷH F?q3M{N"}& 1k8tҚ%m폾̇pbGh=}󑗁De}̳؀IM}VRGfOw{-*K 0Eg11:uqG#T܉ns@ؕL՝۟Vqw;M>kUl_#,} .t^zfy+Ѧ~@3c_Ea2i8ԩwxéSժWNb@=ƙ*+r:1*Pl& 2 EVG=w/P*1 I#9.EiRQȔHh$%!ib{dxzX c90瑬LK]XW q7ʅ4qCR! i,tj>SCƶ>9Z ^*@k6D0[u >RIw5 sOT81g S$fjþAqX9E9NhE /:-,^? ;(]ߖξ+ضv" F Y_s(qk6&F%>YϨ,{O;P494-CˮY2nOL-Mša4DSེ3˞A/bVYFI1pYVcXN} -[?؎5c [i>m|_ƠKwo!LGxM~7.ef{3)v@K+$ėK)!@j 74m[t ]N!Of!vD.Z+2uuν#bP-2EQƪYNND@)K,(aA?/g"A|.C8˷XM#&a#7*MMK <4S_X3k)3Gr #cHq"g,) lA+,4a/Cnri?=R#6|&*)OIȆ.񅲲j+I|P 'Ǡ? k' OE '-L?(@.4X[1 -:_q3{=MtBHmv0uSڙ7L]!sc1cgWZ; IDAT o>_ !ҟ(x c2l{7&U)!}C#zϸcT4EHȯ|mMqKCBc2uznzo(kc}:dRb Ā"5K. U`T|)tMHI19ӴJoh;*Rqʨ̶eS 1rw;舩0!NEoZ⩇A#l<;TqBZeA^tZ w+/Vơ**zD3 JoJC|uGQ?? ~d&N3Yyljغ"4v^m~U93zɑ$S xD̠Z&}RDjly53+nV΢,m*@Όji{ĴiJ7[#bQMG.#(?:#t۹M.mȚ^Ȕy<+sneQQk6Uw,nU|*P>֕)Uhn޵lj#AH,d:-Ԥ8먆ga28 RGRbt*DRl z!s[`KtD8.3 ?@YP*g-]̘\4.*אhʶF&ҊR+VkiY1|p]vrs=? 6-XΧ@Yi6՝5Pk6Y-֢E8 Wq:Sڏ&YF~s>HsRYƗZac858xwx?S5#@{掮xfqE*P"*^聨" ɈIW$(M+ѯ=NMR&0xTgF%m8:xH{Y1g_YVaUk;rEoB4>˂$ϵtj>RUNjV9up^e6/Av[v;UY*lRj)Yy3NКR i)!R `4qyibXT`׉87{ˮv*v-) <8!ݫ||צtN0O"uNg Z<6in{'.I;dr!'bR%fSt+aҠi{ń]JU:Rfudn(^ La2֣4Z5y@W'~w|<3@ %Y%ʔ4PVӵ{_X.MYAӫ#3ޠ5#]ϸ$(:\;$0GBYJ=ˠx"D!vϹ=3 <$[*oH-ka0 a9͆sB5wu7ktY2/ۭuU~Ֆa"N*BQy($FsqQO ՟6Ns['ݦV(CNnx9+]+Α31b)%9s]8$Hj[4THh*/ޡݸLZR4f;H0 F{lqf٦n#b|JUꚮsJ}ƌ*]^h c(i!d)1fF/fYL$jr S T$2C8-ѴwXq B~y0jO%aeW9gw2Uq'T[nJL.(/]n Q`C{13,UftQX5cB N;YXXP @LXg M#?3,'[!Xjk^Ӎéx~:w68nZR&%vԖP2Ʋm=ޑ )S):xҳ#+?joi:sv%M2=EqP9dW'Q* ?(]O݇gs(΀[^jr:} ;3lƔ +p}oA1lI~QulV0qdP*ROHD+ǵ64Utg1hu%TrҘxޮ!1D"vC(49S0 .p챚 "†qwN&v&QLƈS[mhV=w;whEJQE$;RnQeOYYve5VjH%#>#(S 0$Ñclɖ.4ӎ yWtp\ l1^>k>< VL绖_^ ︻qz>G/w߿cxD[ SGR㒽u)KntӖۏE~'m5\rΤ4Fmz.D4ܰvsO^Lh)A7WDNEǏ*ˈTc[}F I0<{ϭaYDT 3?::d'R1p~ ݲ#QiR MHČ$0r$?pZVM3Qm(+1GL <z"(\IxK۰iЙ_[B 2u׮v6^kYz#8ḌjwD`rA2Ɛ MZRr4l7l %s_u^EʄEjbEX9Ja î7_}ûLi),S`QMVZW0ˍUwo~PHN U%A>Pʕ?[*Oy9<ľ%;xvχG`~@H-n ex.R41!B0&##B-Nʥ/b rOQAIԃ~#]C`/\leMpMQJ~. 9KqDF79(c&eE1JTDv#ӹ3 7-TdC1i䦝W5")2D9vo8&?[t3L7H㏛$f?(3g=Պva'1:J-J39@kYϠ<,NHe>PD&K@A+Së ?_k =riy#G~߿S=8ء٢˜LnE/^Z*+Ʈ:EO+h u`xQ(<;*E$-ln4!FIaF!Vdqet6םfӒ۱1Se@{o%ɿSpTjKG.<]g?r>z1ەݨZD峭Ak(!%0GqS]M'I&>d=wwX5#/*HBkAct!R άGB)dQ '3Ϳόav/ yj6!Qµ,Q hr@-} rnWN6n(ć0Ļ=dٚ"QI;(*0zv]p,eL+R Iݭ(\T.QL_1hOPpJBOdXv}q"uF䉳XuU+ q&$h]|3XP0(:)0S45b )hy>Z T  E%xB@UoQ{NN'đ 's٧dqwQV:2-ȪR$A°Hgd)IAU<) TOT#)lUuzm[v}QiיT ) #n#1]A<'E/N&ٚҔ9 #m(Dg.9ig+ ѡ Sz4ZG,o;df.j*iݠٛ|VܤM)鄷8%82VOĖ/X;+bf7c@7`zs#$Amxާd}TSc,TLitrIsnTB68rECTPT"albR$!C?V!vц9T}/Vx8Ũ`Ւd3 bEa(cJAJx*Blv[)#8Ryn6l2'C]məʣX?/?#d=#ǣcUzO('  Қc,-CjI*|56)@c0S.ܼ һhhq9 $ M2(T*%fbxÓ8O_/8N|=AuJφLaVc%o9=&b; ߼/G3ف(tRP4B&mʃήQSUQM㦖wd(ׄJcY">IfOi&mpQMV+I~I=DZSur5+2}=q?0B @'LR4b#OQ+\Z8[T&.l Fu 7r'5ޖW͍a &B4l6-GaPvlnR_*Q!g#-HZl'ޔя;~><NCӞ#RVٕm>d+(C2y˵W'.!'vA|Hc Rc,mxkp&S=.RyzG:g\VeɖJfSSLwU0+|ֲ~g SfvMT )sQ=\lSQNv7|Fڝt#c~<$5[Vݣ!DԙA(r^!'4uٿgl4/j*L!ɦa0ox1d|EVQU!|<ƂȊ /nm$i;+2hlj¢iYtn!%)JE&c {OCҌqUlrw)6l6Q_݂w IDATvɂ'H8.>5dQC{}yhFg\F6 BsKŢG6b!77rh؛3PgMH9#x\G "6SܬF4er13>QE?|:Sʅ-#Y5FqHňUlD)MmNPz5 eqfu7TU?>R}5fxpӿyHXTXQY0#FWYHڢ!6~j}̝,ҼٓV#h/noPÑ!` }=50Ai`z14m> [(04/^qs#g#c"%ӯeHtQN/k_l[i<#=,m7R%-<"MfZGUOkw>OrTŚxrÃ]< -^Óz5S$vvΌlu}lcL2D0=6n oܡZb?] F/~us/5(F0W^߰'1qӪ'MD25pB,Yj+k\{|ԝ1zi*&tK2t#!\FrX7a7?J\K*R'k12ZmS~H;bkTuq9{jE]L\v3:Io8Ҵ΁?J9-:sZZ aB8K6p|0 CdD i?VǧF\,,jf5E=(B̈I I72ZEFWt9*"|vMtGNQXSmcv1 5Y{fAD0Rgv!R !T$_.CpUv+$яj^ߧ.3$zktW 9s}7E8TWܒ3/`h[׷h͡#C] oHg{ĻG⡞7 f-u^F gk]B~_Vg5Yt@K1Aˇ'-ǠmTa$ FG9rh8*m|>ZW-{.OؘOdXI P,reWj2,lݼ,*w(M]Q[d5߯2wǝdUD*fFa/Nl]i[FfL*zs;{_gs&h.TxhQY%pW~2'%f# AjE;gri ZJO Va3>c|H_;Mwhe^ 6!cpR(/?#%t!uEJKu'KG]șgr){3Oe/?f7^@#OOOx w7Xˁ}$ePN/[$xWE q΀Q)]%L؂Vo^woٿ?&y>.|Rn밊=D]{+99<ʱSBr09jWQ{ #ÈR</8dQ}f`?4V<_8}dR#S60DoÄl%׭G}Rρt-U!u7˴^Vh!1Ìi9U`$9Yht BU??do9 )b~1T˘B**)4j1Vԅm7UΗp2\ݔ 'AM+F[L8v#CHIcEC'>y.j 7AFd"&UnȣqA{! 2Zk+yTw?uJa27a6RD+s[ۖ0lv5E),΅YbB9ni Zߘ=GMx}/uE.R%6pb[I)nY~sWĬ:{ 8eh]W4~s7U>JA+ kf=ɦfKI deH7r8[|@+B5ĪOs^*'" |%&k&uY.8 H_}6nC8}8qc{<1뾘F@ta)G'Fo/0U\*eNr/gYtm8!&67V= N/Cb44jW_f 6 NsH)xBP]}כE㔴fD ϢZcԓ ceJl5V`Rɣ+ٌMM]tg@XM;I9˩#[ښxSi6%P»G81Ęj맜- cޯ2vJY.)';fhdMj x }PXÛ-m gn 90L3N(Pz3tja묄Pt;5ě %++U\Kgkɭ_#f^+ |xn w8b 6xm=;ҡ4b Ȯf6@8z1s Wx97]'J;Bv%$Y2劂7Ҷ.`O>K?Io~S FPh2Fh3&m+[޾u>VLƄVrM?*,Ӑ3V+^;;^UK6Ein74"aak10>[}`Wҏ/M2} 非ʋ.C5%=X1VyJGjʇ>ly\/.a~!W[.hdLL;'yIy<0d[6 m00 wR)Q{r2D~x> |p_F? I{>)?VxXUvz \a,ZE*rZiOf0a6mԟT>px" 7-NxWeh{'[ IHA[r#~wCR((9,RH w3䰧<'Ͻ}7]uOʓk}k50@l9Wc0$Q?7?9\ 6+[4Da,Dq;aww?_?t08'XFҀmIPx,o55~7RsY'].B&F}Ni"Y'P^yC}c|A4W!w2ߴհT⏿5䑨WcϝcS.R;eTew?)mJwb pQR\k/PKg{<S( 0l 5SUF<Ʋi97=MmaH7MMӝrWSW.Tٍ/k1~@5N`o+˲ܜ?s+ISݲEloZP2N_l۩пBCeJQԴr䩣||er%VqcW+-KxF}5ߗ.ӡN5g'v툮F "(n~mzR~5<-@xkS\=d4Ej&ZN x%/-'7e-{;cD?rUѬQD=+bE7s ϖ\~&'$ߨIH^BW3 ?\s!9GuOzvU"h %r1gc4dAAZNW KZ^}Q(RC5xf]6][ŏ_Gpnj.)+Xj,"6nn caR* RC/5hu<ɺ84‹n9ˇidq3WA;:SMg6?n~S,5`C/+ 3o%EKlW6nyk(w|q`fȦmQeScOHAFnHAkVK{wdV)M@ ݶLYQ!ǰJ~sJ֔3.z;9 m/ݖ?)b-0VftO:N'z~K?[b:GMͦDwiq/# JYe˃t\V /ZY-6-f<՝cVїl{X۬leL=$ &9v! J+3Ĩ$Y&HnC*[=m7eJ| 3xW+awIt jv. lՔ}y?^iwܮ哅"NbYݾN^ 2Gmb$@`P[A)tbivycr<ʱPà(5sS6:%{WuvC2 29u\V5彲VWsr zC^Kuk}6A 8u":Ru=wJ6Տ/ex?:  ȝ z5.wHabB\ds=sbmJD\2ɊJ¡CDXrB-RzJ; ]P o?ԇ ûϿ1CܽlH^7ΜcyxQ@P*_-#ÞwtpN`ulصLhx>QU )(t%MY9<+bjՄ̇g=?;ʱ7#Y*&:)zY!QotZ,U-Fی˫sX8)&*eƐ2P z5Mky9.tȲJ|IlFDI \%hVJm?{o&o7FRON cRN>2}gs_!&\Div3`h, Ga^L>Ă!9H!(^?*|ᙠ[8̻2pOtynL!Mi $=E$V]'77mE,y XR[Bs pODϰ/K6YGU/R۟p w;~ZΉq5}dSK*tn ] -(-:L"3A,L򋴬tܦ{]&\ M Vp29&O9V۹.Cb/š[Z) jupϮRۚo߹+:gǕ.g+Ŏ#\o;eVLcYu_.E1 znLs0=J#LGn !iۯ~L[/\ɊaW]dINb HZĠ> _mhZz8E,P+0flZ}iL CZp83tG jY%-RNp:J毾g>ԡy5-+.iѰX9%y,y3*aIT/ hzZ5FGͫ 11xhv1 HBD IDAT)ҤC*jV+9bsL욌jЍy=#!m?_)38? ?|NG~Ցlvq

pW_uXql6T3Mf6vȩcvEf*qw3h ,5+lrRr 8^nhy$D|ͫRsy[(ys)a[3tK#]6#T͒ay&xi[j^|f3S>< DTkS Ybb3&R]|l~+O4r7VtKCZ2+؞G&)S/i`B3xQ/-Jֻl$%Ŭ?E o(Ovc|vR$t[LbSMT4 0߫2ۮ= \{lk5_$"Y><!{NgG_qxs@G۟#6,j9N3İj}dQVeh]mY| ?y%d.)5쇪 r9U,*񸆡 =%/_~F;gCSOs31 M)crx%Z-EݽD(],˴R˕|bXǀ;x;QajNj3\,,D2ԛ[}G٥{:7w]G v^2\ߧ㙂]ItU A$E?K:B8m}srlq\S9|wo}_gN[}POǔjo~T]^^ڮ7oiu=}؊z02/pIW]pՏ*X#~N $SS6Qh U.Rpv9>͖3*^iPVYς7X>n6;4>WO1o7aSQd0.wxrl8ulURG7RǦs|庺e5f2z ;va8``x:!a`t,Bbض|c##Q\BLSrQ\T30b!жHljj^Tge)a S׳!S2V\䈳T#>࠭x@|`o]q/-wN'ESMlulbHI[HuSnrptuPgHn,Qv,~q/p@%Sc=΢W@="XT<.ri5QiSqGrXӞ5< xO1xas]D`HĪx+1chjA{?[U6":T z"% ;liX֑Q{nޞ?"*eVFI)\I㠿VR-e*s(D,jZn73c'S0(7Ƀe5(Q[ }hyubn4bi jB'UνGxq?Nybײg+q:xm#$aْĭM)үYcps _eؿ\j)&Cq3{uͰ@vՓn^fՀ Zi$m"H'I&M%JLN|aj+=[~\i3vūkU" UeőUדwٿW}N5ocaWqT/_F~=wR4%C\3V niPȣHvK)<^`2 !%P;2 1$کz>rǿ_7{>9hHii5N7[#~3LL3<̌4 / q :GD̔K.@(Z#SdHfWشl[Dg'L;Tik,h!%rpJ6dF<]ʘGALM[,cv/ #Cml4=1q"5Ñw8ePRNl$-L'pNȊ:E_@jI j@aaC"z'ښsnL5mt׼~MQb9rn2dLBe&;~[_UqI=ufz;t"O0pc2hFMB!G'Gڥ*'ѪZD)CXv[=3Sٟ.I{;a*~UOhl _cv+yz߲mI1%miٟ.f♛EJF˦sTvm;Cp8:O0I",~0gZĐ3]cD|Ҷi.WmZd*Њrӓ(џN1͈D!HµTVyW$H\-dhhͦy蛻q% Yx14r\tŪ(KYaGiIi_gM:Hw>EœpZIC{mmcUa8DF@3Zv@/P fl)0TҀzLx 4gtj:K_폰veU>90+j\C>t[ǭF)RdDC#}ݑ[5|d(ǞdbF՘2nz ɒj\MXq0V<}hCgHG41d^o܂, `hjBp*{ȇg yz65V!p#򋷤M2q4yhHLBL*{vySnϜM&R4RMÎtfli0Kæc<3ExW+3α=@э\ ;8@v6سiGH''Z>IU|%ԑ, hu 6 %C:B=cCQ,^մ Fpr87\?xɐ{IOе5JkWYN2L#~z-.39_WRREN(U 5M@!܋hWcdf W=]iQbGDfOj}Neۤ xyHˋ^968v~sw]GdeX W1Yk1_јii~7$Z>^;:LmA4QnՉ`c]w>3M2V sūMOWkN-NM*Cz&..} h3c)bp, -"DRmϮ~$EH.)$Dj)"ԝi;ƑP oh`-kxțg$a?e*Ub 8KFNJ9 Q~?#~Kom>ǣXIAÞ$s~͹z_G-Bѐ:OPu9;0ZjŢ})^'I:rR#!/ܢ_ʪ&3ЇUm&\<&͵_AYqv=` RkN1aܑe qÓ+fZNp&$^nzgm(n`9zVpuZJ+L ˸팚ej^׵3H&Q~6ېU vM1o9[!K:Q3~;B=d HhLŠh'ԙLifW4[n[}a5? \󩉽qoѐ.a G*L] u](q322+GZt;br +Uo9e?yeYbMe`uZdG)\؛Sz8 z*ǐӡ# ~X8&ΈxC%w6 ՛Kt9I^9YA,bQ¹*ɐ-_ksYu2kE5rVɍT/8@IiVvTJs\eJ1Qk.}{v(نPS, FRULiRƌD6$Q\(߸Am&u\|!r}c{OnIy+xh Y lS] lRr810ԠfBSiUc8zDZB31WĖ`-͛W;[k _SWX$ \ެΗD6s*K򉳛U63dpi^ sVNJ|Ϩ=:>.ct.@էRv܋yݥj*JۍN;XB#W/9G{dR>=q8I:7$GZh[-e>6KL~}10R;vP* 3?~O; ze Bq$dDnٗI5H)-8PöT[tXϧhx /t~5g9sUSZZmbd lgbS' Zn|0,v]`Lk*Cj૞1}̥d3e)\)ڑ]WE\V$E_|u%xlB)vÜS0CǑRtI -n=m cy؇wE⥛9ݙd E&^w· <*t=,[=1v7s*lj :.c37dK~v_""ҷ{8I%҃'A "HQ#r8]֒Lq<#ѨQhԭ̊pcReEaCo0SM0E19TԄFi.SZ$]06eWuJkR,ȋ;ih}~ tj7ߛrWMm(`zݳi/:XCGuͩs[ "Ee6SK(*hY.;wr(3Os.`KHBMuV*mQ+tMRuwo@8c0QJq.ᅡF mYyiA7{~_PTޏWg1l;ѮC;8⛨w4)cKdGQ<꒱2yp9ph:b\{W), 1BME7o.J2_fKS_\ ~^)ZRGJ@dٶ;|5(qdT#[M/BvꎵXK#v$U]U=Ӕ}hz]HŊn]:>VU͈*G*BRmYr]hI}91dxT _o Ϙ }GL4EJǦ#/1U-0.Lp(v]$>nKy ҌDl!3-58qqm ^D 4`\RA9 CBgp"?xhw50V[^.lt06&f |W~7Y3A|>;=WB-in3q*xx`Th8ag~~"(!lY`\΃392Q{n~ߴX]y٣ӛG܈k#Ocu6 ѐgw\fWc nY\1O*YM52+]!c]1m)9yL^Q$B:@GKch,'/ 'wG^cޜ0Kpi(.X+ [tY˝O"DU~ȱ<Ӈ3?|4O`$q[/ztk0HD~//_^M s_o~){">kzlkb whV:d "AiG.1@9yRf9,̠x8mQOݏhwkXMUm[Ֆs̔ͬnqK;WŚo|ִ-u6Z uOy 0 T%!#P"^GlQfGox3/d>lePk(1T?$W3b!x$g1/P..V q!!-_1L3=ɉ896̓fdeLu(s!%R"+sbZ7ZBTFlBq_Mkgup448ms S!;0O]mJZ+W-xZ-Q IO?}7fc1yy-2b^CUp Cdkp6-%1>45Il9\M筃9s5 ?[IɊ pV_[A"fJOf{R)E_۵U;ѺL0; OrW5KAWUZ*r>S_}R9ڂ3W}*($m-.Nt-M \LJvE*$ox8p09r 3!/ug1TGl)rxjta֧f-􂍸6T[T #t*$sm`U.atحN) D E/ -iBK;oѿNן/!)¢X0 :IVFӥFgYBD~gP=ȤOs3S LuެFh9{.9(!nTIP cFg"En6Rn/L=܈mչʦAf@3S^~MAhZ8'F HYSOlJOtK ]Sهb5O"iYy-p 6V^8OᢋVEO?%| *3UCVRw,q42':p\KHXܤJ%5cKZY=;GעaD3o<&ѮbW,`x.)a0%UwE+ ĵFg}W jOxֳQ]xB']I{fPVa _f?]sbW[p{jw쫻om1C,[\qҴzK%܍rzkr9JqY☢cai-a nx)Vޓ<26~R~54ӧ'!OneQSNۋb^u۟lԟU[ư{vT4KֿaTS\ŭRu XP\`دjQ W8aܲa~)H X]mI6fHZ)F/Myg-o!+U3Ʌ֣r:96a213fRc;É$`n=W$EoSޓv|!9l*y4gJ"p,I&bB!Rrh M8G23&`6$t:zFѝ($T7[ kJjjsir_mf/w^Dg4x@tm3:U%wDg|?T0ESb Q)q"cq΃8%xƆlׄGegM|`P±ŵLC&!xz2eMkSeײգjd2`RשA"Ɠ`~%\zT0yjd9*$8!ڬ V(FiZ<KMYzX%=_E> x0dž-bkksS} Ž-kj;VTtAIZ5J{2OMLcҷO[8C* DwIy ⺿kM ٽɰVx߯}^]W Hh͊ 8qT5.eBֆ߰q̮C&.͚9% ʜ8݁ӑEEhlDGj(Ĺjd 8F44O 2¹|v1G0HN/ʼnٿq;e^xnl|pُRL_jkimy(wL@ڲ"kRRG-:r_J.Py;NJRo9w⚬QdHў+ fo{Rsjnu~eD+"c8R 5H#sHDymq42zWh-9s)ȼ%حZmv}z#]ǭu,ؙp!4equACq H灼=eVѓ-u ZCKw3qw>՝Ei"% h 7pudCP+}+u63{̝ҧT!ׅ]܍ܝ$iN#gYk!Bۑu?$?b_!kWg?)!M PWƳ}  s|,nq"]1t8/D q"t&Φ=Ůev۽wq5843rL y +U`y[Ǔv9$#w⯑<1[:v: E#ԑhC*,M\4KpoI` tUkWQdrjG/TAuݛ1|?M (Mk6Tl2Y\}}8##1ژRBquDGћ$)Don̯ޒ"rGz;RI X$3fty@=Nӑ<_>RAe4̉^V7SO[}^r7-g*'RPC hBKrIBYr–xG1K$զ2(aD{5 _3lqj=ӁY ']C.<Ϳ⛞?ϟ5-V$S{Gle Z0y }DxBLFM$!ێH̸Jufp`20DҼe kԴQEipίNL%A` ; e#)"T" 1M 3i3ِ-:Ed;]ژ,2_hPD X+Tg9 4C`w?Ns;4!D ~k .&FJY#&O^$óTkKh swwJ`)b 8qfmk"J^k?S<(C˥';ܷ|8qvUWeyZN%YV` GHqk# JJl.h\=K,=2t,{VrD&"9V|:âN[mUTpz"Ea?Mqi(_hF08n䵘Gϋ`֚Hܠ<`Q!{.|r\͍ofr'~7JW<{gݲB *UgyB,miLJ Y#uJGb7#VR59A*3e\숶ϖx>?<%(_9;.˷goW>?}cgh#AɆwx #EǶ YoLQKfwuk+]je1U{ IZ|;-"xLrI|qȊ0;zT3FHB,}wr<1Lk5vZi;}6$KZrؙ<3u̒RZe=_h_гx+n.phw8?TƮ3U424iGK,(q'[ƞpCrptVK ^"whOa^r(&䪨Y_*Rmhd{xMӒ7qUӶj/Uμ"a&,6 I[(#gBDbBkOQA-VoR֥a _#TjfQpBR@01bRCGeݦmS4M13sf*h6o=bOX-+k(EhNq*8ML)j&0mǰTF>^3O4[m33|f٭'%w^2Ivn sLZf8t+_H42N'gWGZ#L< iӕ(NXv[Ꝧ;m# O|s~/p XĿ5Ct/ ^ {ZTQUn';ϞZeHUYtkBklUkh5x8I-h_No0ǖ RL 1anR'W5+@ Xb:e?5 Ic̹u7VWd>c{S H찥d&Y_|M{A\JH((FuME(r.B3% &xhlQKb8!rc Ltdvպ֧lIEZQHخgؠ1)H"oW y"fw˶HIRVޱj&aҰ{j `LR0jϦ .#91&qkoB:!LV ؙܬMsΫȍ|qMB8Mhk:ΦK;&TuFLfk!2Lx'?MόOmP cҬ[V/%lx; YsS˹3y7G2*$Wje#b ޼-E>/̥R;M9囐 !  *7WJ촸O|۞88f>}2'zh9$YT5)F2YsL<ּ9ŠYʜ7G>^)f]*yv4",%<"vKQvR7ھ1n@'J‘yXZ4Uz;"Y $rwC RX49(OXĭ(1nt BMib %Ja SD23@VhN|8A:dmSYn"Xa3cx{~m}z (O?<͜|~2>mI,:iMuŐUwpL<^VghU4mc4V5|/k ѷiߝ_?4x *:zyQGsO0BV9X˜ɋ=bθJmpU"Sty=#?|,϶t!GE_~)=b^iWiek˻t󂏞wK{M@_!tmUkGVifIizi]/ "vb|]H'48e(z(ѪX2_"Sg]X57zfO6ްoܶ;Qoj8)s[OB76'%)@g7\yn+pZcqR#4#ȡ|~f0C Nܵ9!OK%thLiuٮDn!ML1k :A=ŪHrԑ5L;t=(đpffMK +xwʹX*^PؿD(AbyM3{2wzAe1Ŷ4v)&C J* J=0Vy$Og JDA vyp[,oq&Fgx8` i~̜cZ) Mlz41>aěr9 }o0A+j({,"Mʸ:X^Xf=P215oy%q| ~|{e <]8l bp!v3TmjGƈ/393NF]|0Le u,E~%GGA2-Oh8SykPUd; En)Sɮn`Wxr*? .so3e^AWqɫ<@}\Sޛ$bp.v0B̛[Ř}2!{r?Sk::&3XC0'x9›lJ_jl>lz~ FD1N6Wf7b+Dcƴ/Hya3rT48%eKtZ8h~$K7"UfLef|kzkBڼ7VdozU O=ZҪ%dƉ4J$u'.4̞p4D>Lt0 + bGНi]8fYiTZ&Rn|y80MG.w4>pl;zkiLfp[\1#Ky*ж2k:4R"tL)bDFZcpo4 41fr4 ]eGh"#Z+iYK^%cl)0H( lI~].jT!*!7Ia>IK{=T+GPan` IDAT; -<&{cbMf'ElI|yF*%KBImmtT$aY# _NiJ/R/iTf^]Ք/U5Λ[σrNʻ|}M19 yeb8 ƛz f>tAnOtXƲ^ 8/c[?t"D{Zew~m0i+˳&E ЂAc H_Ƃ@ nq 6MOee 5w{y$D"#2}l>/~a_^)ښdpkupG:PPqtGRױ@d[%DvZ1>t7Z9Rjt}BR:Lf. ebdp3 u6Ͷ́MW)~C@Bt7c-=2 H6Eq?ߞ+d)$z7z҈w 5y+0\њ{xȢ`7pai4OUvPEx1 O(ڥ5^$q1픸n|R&FI|^"ځ  bfkJ,c47@8\ ó[m ~XAq:[n~LtnYЭ[(lĐ )hE̽wAUEjMpR =K>~;;XUuR` U8 բ qd=e2KxS<ŒɔŔ8ff|Iv4hNp~jædUz YUS~ug҂ځ1=Ep8?ywB=\@^j߲A\P[J^ZKm(0uȺ&K"ʊeҶFh7w =ImBIf.PZM;oCw^m9`t0Tn#wB9)T*ga6\M~0t\)@<+f ӈɃo'(|J'ֶDɼ4%l -\shG@V>PDJхS/_WϬYPXLpŨ g۳~ xql5<4HNߨiKp}iT=7Y ڹyAMJ0SLD8T ݨn e։ub Aٽn2 #8b6=\a|`oC_" ]7zo<(K΢r^ծ%`@u*Ŏ5U_+uQNN£^op½9aU+B2Fa#Xl;T1sD[/jPv#"[Ќ4igyy[ "БL'+;æ^o$H0hɔٜi$#J6&m Ȑ&#k(>+i6b4c!IH:ڂΎ%˂RU…P^! ;W+H(MXŤiyn7=kPUH(eZVB1Q ($fVm'w ja,v |/7h30DDhiԐ&ouiܾ&"|2V6ߟ7ҬZK?ǝzo K$zDJN!qfmOQ)@^8&iyA FS5Ė+^]8ZO )GWkW4%W!aKnj-\zZnrN3"+ Ez/\9G Z$ +>~E2&qAO .N2D G RKbi+yn2Bsh< U\U>@o38S_?nN+aN gSNg/H"\`Bgic̓DqqݽNm l>v֖W/f>oGu~i(]]> ;(h=HzXHR5"YmPh'54.,'Wb@5 %]•1ׯ&vQz1w/^RA9NC[m}i2ubmXZw쐜 ̐lzb MNef*?W<ӤyCؚ muQCkȨ:z[ʠz}r;qrN knFu5 <4wS9o<"?Tz|(єsۖeYVPx,/[DDp5"D`MiF+Px[0S:IѢŪ\āԗHbBN,Eơ7PaeCN?dTfɇ/i;^M eTmYk(!/[XH̝>fmT~iԸtm7nXLJBB5ZdF|,\p'غ= >ע-qǴY[L\7"=Ij7[k'ęh%ʊ,2)Cɠd\o {q۱`*҄DQjE?wUsM+YʕʱՙE58))a>0V5+PUYR!#{<.TTunux =3V7 +SwC' <F u~IH731[ HW-y yLdMSV5y41w+'+rŦcm lP^ECfP1M7 t768Ktg-{` >́" FզrHKiSΎ5F8>{_{>bFҘ8X_q?y~~AfYF#∣₢$j.s%x/vIja GТ3B#"roy\˽3e Yj_1+H"ԽJgt$\#D}#xO(P2 zPQOSGNET qݶYJ(rj|lvfl!oarۤ,7f@qAlGȏ>M~Ȧժ$*ɺƖa|2.8Dv$JrE3 3\Di$;]v2&|bo9^ޚ"㌯_jưnGQ1,=2'J.L5,! 9u) ]v'R KEK;4y&1*"!=^6CeQs+K*_ l$Udl)P\\w+QIk Zr=D0kyNhCѹ A@]Ƭ:ܖxġ-yQ5=:iϓ `(3HD~7 O*ThBTIR?C얮3옦i(o[ wuHi¥fy"Wn ƒ`ހCHi/\Tu/)ze̹ > ~=NOvEd*|S[U^OX:6{'84Ւ}GegFKH^5Cw6aZ>KqC8ќQڞzkqFxb&Պ"@˽,zç\\ɰBT XV 3LaWgtQ*ab8ڹɛWo/?>OJld2A46*ت`~9hgB&ݓʻ}%3PH8vSMQw_6Ul{GO9nR"H P-q틛.`#4.aX ^?k8$0BW(-js $2{7m~[a~*xeZW+Ńs |d0;$|gL@C*DÂ^f~kGUn*^)_F`+xj;| )v-uD{Cbf$LztCamF!Z*BdhB£؈dXMTB:V2aTnPXC mC{]fjP{E{&hu&mZ.t*|DФOb#Ga4ޏ|!nuH-~;&?33tӤ}FHħ{N[xe$ ~ii)IB9~\1$ͩۺ+wYnq?6Qkj:ZVegKX&f$~Wx&]z'O>U2zM(έ=.պ;ﲚ6ٶ6ws6~e@n+R'WIU/L[7Z"&DҔeͫk،$!KXn8'/y<-|+( .\iJ5/-T0 ^D2Vq:;.糺1ldžihQƶGyDW(\Ol5(zCN ʠb,)f0q+OX]EnCy [ŕyɩw<TnP"A& %i!.a yRm\|R#դ~&Kp&sc zlk̢v~*R1Q؜*pfw6o]/EKaKܸZ=XrhobR%&ĢT±֗4bl?s V[GZu7'PTՉ»mn"P]ӛ, =|BmpW%p ^20А@?@[&R]B+%6 aY;Χ<%yApUPHHHe_/JcQn}jS%~6F K'3 :FwN(fj>{)Q7rMBQ>>zgz%70B]4|,Q >U-֐fh=!OњzB&u #q6i^lC)GIYk.'>k9Ў IDATvZ*\ؽoTQYC@ lR霊%YUEHZf2sH彴)Lh  )(WOD5f2&f1FY1A'D;$EuxI}q-WϒEMei?*?FwnF:T~q0ʽ6刺͵O Dl@9s2l? {㗋Һ?q{ړ=2M};mWOv&Fwۻk;F1ΐvWp,<֞"Iy)&)wTV,"|~AqD5Ρ eyxW\-Y^uFZՅowApx,Z uYvLg~0BrB_䋿 q{KzJ54 :j`St>rq0HGpiŦg14?<˰xD_27~`6sOHD?74A}lEJp@Њ6%zPUS !p-x۬A$BXLj{,Y:>P6? *6/ws- w;2L0H 8II1$)& /[>_*!Un0`^+(Qn6f +{?!lz3XfPAv'2fS%y& >AL6EfgM8GF7xw/dJLTl%%L6T5CJb ?Ѥz Kᢡ d4?p%b :~|د|`+ ;]P3A E-'~sw<#MyE@LYZY;\"]l5rdgi?cMҚl I3{P>\|b+t_'$tǏ89dռxb# L2iKY.ҤA:W4jOen.1=?¼dqMMdrEF]U]{>?-b"V&`,$覺Bi5?s vB^Жp 휶$o^*<= o]drׯ5WrNZ *~?v")h!m*)}\K9 sjHdt@`,EPX4sj^B7B}mLۚ muAYf,oA} JMj5QP*ė77%:Z3,ybf? O^8YsڍٴB,N ; 5.v.Le鄣(!V6\je>[gLjзn xk}@+<>8">{?|}>/~9a5uH-_T8XnqwkA{#4 p"Mi?RJٷ6yA(K3yɳ W1 T U{A4#?h^N$yJm9;b6yyrE.*˪uEdgH{zs0z' >~fZ>H>&էQlYG?3M,u0z(;탧wՎL͗L}g\d%}ILdIShYox ӫ%Kx|;|N(^JE [՛E V)A&([0B,@A" oP{*fe(<}FuZƳ<9fJ,Z-Uʻal"p0p=,5FpsO mM[f:i=o?et$k;JZm'<JH݇La, sXsåK5L5D;>_OVȨrSZ(IE ,+ Pםʍ-?z3NQt,ɲU4WI2"ZuM]z;.Wj-Lt}` kΗzj¯?&/ʳ*f:L\hӫUw=o p~B2眞#>Ui@]suB;K0%M7m?Q >u7Jr`"9LSͫq³su*4MP9V1I{&|UҴ-Yob +96TڴAAfy0)ׯkUdEaŸ tD.D{0~YG*u^MȅꖺLȘr[bB1b8mnEc@:!$NG>M$ cH iFbQBѣzYBPP07f Z}AWgG3f~9)oy7?5|sJ=ЍCK~1BH9KmZip#mQ 45Ð1}H"H0 -9QY|o{5gMM+fi}vBD)u |uz HhqCהF[ԏ\< W]%чdDQ GuOK_jEhiޑUЌSU98(ަt(ccƐamR>|~d^}go'y- Gdv滆 ~$_†i:)BtԚ63=@M *B+LqHtQP<}AgYQ[j>oHm:7Nalry O [_o;JhУufCM]O# u'6U(|ZP]b 3[4˖4rNu&%:N=vQ|G:4Q9_yƿ{Q_?H aM7_׍ljy D-:&3P q[W9y8V#>kE0qd-fC8`|*F!?7ܦ,"rP ՖWg(oToQB*j$"=s0_IJ(boLgLfh1XCxeúlXxEL5xQ )%ʐ$XљiVk~TSIDP!k uO( n[tlfH"6/SӲB061d soOHüRH۪@ѯj7.D{HC|n=[{7^2mMdyu1Z"]^Λaf OuYѓvBi .2ZUIE̕~3&|r7ztkD$E+}č[կ|?xrl-_VW++jְN-`*XD4MNמk5A͈l7݈qu9Ha<{RM!V!} ܻLgo]:#ЩܳO)Fú&ԽX87/jХqu>"d{҃j)Vc jz⫚Ւ5嵺,G23Nl.ۓ3%o}mծgOں3.,-@bkͿ嵶nd[b8rAw#Jdz<\_~2cdw3"T-q5L."4~o3c1mdJj04Von@ fFI o9f@$Y%K+V)vuS6Q'*E6P.;Ġ}9*#hĆe慧I9Ơ!o[6*Bz;#&@\m4:`TpUxUz7WאC,@Drp>V2'_/RX ]ȃh40rmQkHs7pB!)x$I؋*v =@-#€Ո" m@:^Xy7}4k:=S[\b 13mRY$AkA(@G 6qq!J8EڼI գEV]ڤF=~;~P!*|~^5%ske-/^T4r#붱i# [#n!%~BSw[.8:|n *ulPD.%abhKBV:[\m5iCVwvܶi3tµ4~Mݹ\dB#6W_:ց (uPsbƓWXjH'6ݹ^4[gouc/vjA6@!(\5n\s&ay>7ǟ~Ȳk%2C c%@)l7#F8&cC#m-!6 AMK1m̤kU5hEUf׆&M[YU]]ݜiH@Fh!`gB{H@lawO}Eƽju3^sy79 XkmV1 0*K1cUqB|iyJ%k_p,WhkZ؆'8{4EJ፤=`m%ǭg aV#K d =($V<, U|Pl fg(:W1X师ס2-ߚ_3_"*C{xT9OcnzZ+vckoE}gf?ІWt޲CI;ڔ`!=lkx6WYfa#S84g?xs},=SƫG'k:=cs7䠽X[I,9c%FNWOq(6k&-> "jv'eC'1he%4NONL\\n ]2GxL3ytl&,k^ͨjEJ|`Qut5umue$.!""  z@Y_qK{Ɖ82 \15B?(ܛW?P>ݠ>!xB@'6FLqμJ%t])0d^bcf3(!*y/4n)a s2R hn{;XځZm[Vq^'Mmf j/U>mଡ଼?, F#]WxGw(8(Y5+òa1"VhCf'3C2K B3Ĩ ܷS|Wrvܜ+ 4`"Jb+-#C*a㬻WsqOi&߭mV1z[gjCz6s0B(2iH;~` ö{R[ʸo-ﭼc)}J#E&")U蛯̛g؈ۨӢ8.w޸0yV+vҿ}@&׹>>r4bC0?@ Wfy<94ZK꫒6 \`WJ8z5ނCs,~Ɂ6~M1)HcWq"99"IY_<\gJ ӂUDtk};v$AC~!Iu;0o i ^cڋ׈cH :u: 2⫗IPhA8HqKu#?Ј~c>]9a}3xۨQC ]mBW򎃑L9$Z#_+Kr:7Zx^X.Źl~0kr2r0xZnlzg- IDAT`2S,~if0߾av=e)\ *v7M#B XT}4#ġ?l>Bb$c.9vݠrGxzqɸ1Zp>3F)I,.:1Vg޸M||ZIt,;n'vUg 4+ |𘣜ߺ%?c'D'RP'}2}I#rmY|ӣfr*:x~"Cqg"A용kfD[le ۷>)qz1WN:+"(>rヰ~ȪV|yn޶w=] 2p*ӆgUܧm%jJƑ)#*hk;,RïFbU#VqԃU 9;xT磘xr*l%[4⺶p '3 AB?Bh;<1.h[[˛K-#Dx5 58<(k&o۫$EM=7揾K6 3{3t^qA{Hkq@:Xw]OB7qǫe]'d9u=5,dX'HdOJTvA4ʂIvQ{<~ؾ9g\V8=oQ|&}J>d[Hs9ߤ z4EeE6ĉ^,nkF`X+KĦiPqG~G_&PHL:\G+8r% FQ$ Ϲh;Knx]֕!LNr3"Q^jz" '5QD1NoDqu+Q{=¼"[/vx#,Qh^RV"m7=܃y!.1^0{Rvʐ&i"v5 LJN@i]W畓ߪ? V2#]&-cźPpw"2Wc0uk-e;eHwh# $VGlС%[¨L)@B݉vGG_O.Yu%ÅV(F pSf1 QY":uNTTMzq_Su3TF\tW|euĆj2NX笓v0t*Ӝm nv~&,8K99J =,8Bh_C9#;4⎌/! C{^UFh.E}`p`kx(%9񙩫 Qt^S0{&G#[cbNץ!#y`OTe|W_𓟈g 0#ó? N@pt*[Ӕg 6%NpeX$0jD`)R_xJm׋2G߮sefd>zga7]m3""8ti_v$8nХһqK{I Eh"J#d!D A0jɰC( d?Ȋw|F͌h8%vw0xcl‡|+osk3ccq0)j X xT+ἊT &<-d#Q]_JTYx!q1G|8L^IWLJk;»6 82"r 7\miTE|>a6?/-['s=EkВ[B9܈v.i#rhevR ;xH^YG_ˆIBQh<~\'EX( 'Ubz9m#Cm_ GAWĹ&(I7HȰ%I@ LJq)!L򜬒#o#BL*IOub_RĠT wP#UBy ť+/ިLJ =}c"r}aL an@yז})8e;L8)I8 z ?/>Sי=3qۯ= gHEt{jY #˿_q7m bMO"cRVL 2iGӮI{ a `r𴝾sqJ12yJ0?%_ٵ *H-e hA;F!JtEcP.ˣ8'\ӨƍGg 2av|"=bF))2b4ӧv.,;PA!1({n0Zz9 +Ԋ)Ut-7ANN6RobOC[E489\y|cuاDI{mU '̫x=oW˶hVZfMk8xI#wSAMmdH9PQ&kUY-R!H|HK<\E<= E ڵ~˸13a5#TS/v5I)@O^f~<4,AdEJvwFN[$O.Lgqrג ~ܾ_32fmh 7$*9KFҬBBȀ(rUA@1ߛBK%BI^&3h.fHI"6\UONl6ѱ:3oRh_&i/e_2A}`Gg8!3V +15Qo~=ܜ b;Rcn_ۻ5D E2t:<_\Ifq烵ciCh-d@bzAը99kS*;ܹIhΛIݩ.  OǏ797W̺u$9O>8C_*"RfDIp2}Q{USI\KE"BD 2IH'ZkjqK\PG WB>66Fi]V9ZpUcoi k!!:t)NaZ -Bsr9o`"ªVN\}Tb) @~gѠ[CmmޖvBС`䖴]j67BkTV`bH7?O}ˬ}Ͼ Ygi)MR*B4y)c$@6qBQQ'X혫3BGDbs>+7)JcK~@$9 jżV0=l`]Jǎ<ҝ{?q_OB 8$ILb EAG0.yp6( 1Uˋ+.g\]yA+(6zEU?uj#aA;hnu`CױքQT\FSngq{YӉN57K:K3. O|80ENzxqjIZ5"6LhDwm1[;R/eLa5=ɔgr0.gs W 퇘2C&pcB}X4E(sK+;fov;(: (&-Q'Zms4v`=, ٥O@B J%JFSHه5Dp+W˕3!z1\2.A[Ȏ(7+~%R&  0j}cE{cʠt2eVe\'F$xC@'ҰvbPY9 K/>|). [ҝOnK>=jaL1.i  ! @v?NLcx/w+޼Q77EEa Q#!鰠T#U0W|ގ2N&)WGպ$6.uO4\ b#G͇/sJ RAA9ڗK3li7/@Ւ:*àPdteG<;/2dX\볌u'ARbWDa3cf%&(A&(ooCjѯhIυHP Uײlߊu*e5 @}3`%B9jp)P7UXR ' &mN/Q54&Kef3HĆ3a⨲^XB(E/~nB=/>s:BxO&ӌFQHIjWx3 Pczs8K#(G(Ig$%8asѶMCژ.-$%Ϩ@Xr1X|'\H~Ztѯ+ IB#Ա;8]pah;(2-9gM_~ q4&6w%9# V!RLQ눁Q(Dܫo?\A+*Ynf\c:A*yt*m $ay)_O:զ\xzG;׌qT-dhߓ caU~x;۱RFP BOtO}*&Vдz Lj(nS]y[#=49Xr. eGA5>_2| )}_˿cUƫ`Yjw$kvTPZc$L`Aw>(<;j#49G(E)+n,VFQV>IuH7T?zGD'BT&!MQ{PcF|:Y."e/`A";h~<&m!lb?~ ~xnrD$tR.b޻E{>fZx&]}ܘ,ݾ'(bTy)H3rlAWrqSFЉ]ei7)2kzNZzFK(4Iމ}8$ mC^|XFԲBםݬz0Fwj0r?|sݼ,=xT u5.bR&َh@ U;#XDK0*XݘyoyVv^A}z/dܯK/g % AA`"ӭb?ن]̰VZ״?1| (!^(oL14e$>UĠYLܧBi+TF"E Zj7_{%nè80;-'*+)2: zQ=1*d"<^E}Sj/C>Oij_{&[ uó, c6W𡷩)99"ϩ[dH3+HmS0-Bgf8}~Wɏ?5ueLx0αX.S5H$v/gIND;騑WB a:8pM&5 GUͫ%:Gn0 Sx5'*KeZdXE6+_o6~pTaiŷo kB~ -JMꁝ.2.Ѽz.~A3!KZGӡZkx*oe%iRԕVmVkzS +Nm4avMS+WWuY;e i&i7 mK>.4Awe"Ȧ\anS 6tkwа#Ax`>Q ]a!U saH)%!_~_f~Y \35z ڰw!CPfrj2T*%8BHl&.UjHޙ4&Ixħcږ~1%RFѻp%h~O[Uٗ $a%i7 vhd :%KO>ij7"ɹ6;H t+@D))VY7aؘk \MHo!I?Xm>єb,'viye~"uv7C-_M!íuU@En,yM H^fiHI7A FN2h7'g\τo MC-=zĜl*-(1#7B$@ZP ~&PNq6eA1pD2#4bqY7edsNQ 6Ȉ-C.骓G)#3=> o٘y$#UtdqNj ":Ir Z"E7!;8$]&[ŴB d?: [> *v?< 'JC zC7JN[ c{A3|3&i{u{A[|)#y5/߿RihM&b[F)'Fv)\Ψ:@!S]*=RspCFHOU9Qo?`Hyy}lE44WD'k[}7Vr s:FlՇ>Eg#/YuK7 D 1"2t愮o:Oq*yFjg(; T(A傫EZ}6:˃nq)|Y,(EZ0\W*EDDŨ+ҺwaW#G=0a*91Zkh4.j紆}  ϼld1e ~Rd4!A<> s<(c~͏KV $',5tݾep7IJ~NGMvVm\!͍(rG*"t9uWIAiVjQSע6r6 SmphHAy,X*&+Åb/A{F !{"A^5"$'r/65TBNGAKSn^BxWkfG f IDATP$>YD*(~|Ӆ]-&ClƓTRM&xz{9Y|ׯZOקWNk2Ʉw˖|łB*k+ $"ӏ,NG"FaZAX1ieWW|SFt~$NQ+2ݼH"M6+(KSˣC1>t:X]e,SH)"׮%Q~f֮qr*u]X6Jݯ'­5agnKUtQ!$"Al!4i$6p_ ZԈQ%n.asb)*KGKk#Z $-WF<_qYm╾S0TeT@(9ކ6BHkS"~`gW9[%d$EIΗ]jWg\/9?.y\Bd93Uͽ#Ҕ(Mׁ,1"MݑX=WKӯ<[Zsr抟d)eN$J#ʜ'IBv<>>uO>1yN4_zɲZr9v$"M.S? Wgmfw tYm &ŤH!ZbrܛO}S2CJkyMӱZ9eAPfw.3ĔoZub} pŅaAbN2SC`ojXN)S3 #t>ľ dp^j֡<8oN8&zR8c}3/n loIFN'le}CnkHQ ZFY?p?Bb/+^jMe/,M*)pOBtSqN'1}X3"#Mzeƙzs3[ z^bu0%-R$#|+|sEF?YULVZfޣ~v6ΥmoBXd.Kc"HЊŅ^e1>:E" IeDhIsG oT3&dMcKoX]hHSU_G(e};SZ&Yؔ6#u5"Ish^G #IPDn:T$b[B;cHIS| :ڬ=>OD!$ e*xƧoꜫK^a-񑤖Y FW˒dr:-b> AAY-BDJ$:1,+_9;-`Nj'$*%MH.@_z~/Nbei8s8&HK.t}lYQ]̑ !@l񰿥LH㺹Ղ'"mEwcYI r k=D\Cufo%}rgZ6+b|TnˮV"Q7D1~P:VYC?sv癫Gb\0b}^ͳtڌfUb3b&Z}W$$;=Lҕlxn'~cItL2}z*x}֮e5LJ| 1Ϟ5α+.]%IQF9p(O[DH'GǼH ytKŊe D׸K 8Ȕ'l(ڧh"|I$rĴ1iB04%(Ҿe9ϯ411M_ω崖g,iZnjf [*X\غ@!-W7 N-)tkH#5ZAx_ڦ/VęzȄh_wIIn,o9A'btWK>ߢ9XWWˌkm'85\}ԛ <#0&vT`Q~g)RrG64CSwg ]##M3d?喦,-eok [Cƻ՞ݴ[ؽX F~f^q}{~u 7UZ@"'\Ae#%Q9 -'kLA!aq;9is^^ML=, (Ir'wSX+.ؖ[h`ƶ2 tJBZo0'+r0,k@:pZ.bc/u1ݔ9`ǰbkzQ# ZY&IJ߉IbnqևxϿ9JEi킊T tF=G-)䶘dϾWu3;3~mF=y}Wo!}?#Po&LIOB,W3E׎ߗ4DAYԮ6 6VRTIǒ\**rM M3G4๚ [\zjq1t.h*eViN}g3`.'CkʯĜ0:>% $?vג a Id`AW$^#z2Ifr`˱*'%A|mn۲ 謷D MXˊ,Ao_~wVi1Xr5`bbM͂Ejcb齘t&co9H'[  ?V2QaMU qϵzk_EnD^FH^zz?{L0 cH44%A V 1h=^xvh3@S)&0olVAq&}ffM]8t&)ɔD&`J+- ؀` xo. ؂ [)Ò` &5dU71/9'2-ZdWWGGxyNj<&VajrByȈT)PhRf:7]5rްX%{t:;Kr:GሉWH,k$[6}IUpzAAga]hO+A,=`9i3 1S\),ZbΝ) zpX۩6% nyIՑUG7/}4-XU*{. rX?~[ -yDžg8e[@mbpt4ZarIe }nRg۔ơnaY(^nhJ+-9BNͦȴ:Y1bӹL͞{ɋ #t(Б3JCXZMP§?ueVZRhe`iUgp!k#ӐQUZk*iĎhBa(-b>^QLD2]Q[94ª擧Tp}~rZmvLmXETKwGA\t)[3i dwig ";u,   x=}3OZDeAf_8l]Ǻ`*#1^]R4˂(9 ~{'kng7ji\ysUJI#jTDY8NW?sQXM3b5Ai-ľx-ldk@,j>y[ o4=!S-U7wĆ_8go"Fc4z·>xA"?`}7H:v|*QU5xر@_?[ %w Xm9u/nyy[t2j+MO߫Vΰ(4sؗֆj;mϗItѵ",e7;]]|-6Fq4|KTd|?OWZ7:U5TB)*Fr8C#[JM3h e3a0|}ZgpHHAd>Z(C=-*E\-BeY-q N,\i:[69Rfi#ꚔBU` =.XTxO];v,gmMD9}5 ˒2>iȞ^**a Х|iwϳ,viׄᗞVْ2%RdE@[šfNc:HAP!~zYǷA:K* A]"ʳa.VEn* 9@/?=@44fdZfBd>9*sT3¼D2lHk{t v S@bN݄ٛzyuOw1@28sa̙1S;2 _UvLY XE %#Zy_>֍VG;D殜R)6ɣ(ck|diZHJkvscnl Gܴ̎&(u3A )z;# luٻ 9tdR&Qe+J݁e{iQЫ4`aUs[GT%1 ϞvKQB"X>{ ϖOE>%%,d| ZWo5աXd$c;Y{~G!j=!qdW> f~tMM[9 8Cʴݸzh(K v!~POI5?K~.3冕Wowd8X$h9ЖOW{O#ဪџ}HJ' !ʉBG()|8ەPZy |>LCT"CgַȻQڅ_=?}(_e _J+dxn3d91䩰"Pz"qE O[uL3ƣ%Oarf/h9@9O87ϰ i@- FcTO7AN;Z>FkD ]@R"f.y4„"F8 6>ypfHm-W;͝.bA}/GIc=E"Z(, bju hfO(1vُX,dY<׾ˇvKqhA3tIJvݎ,\k}ŏ%?ڂ"L|RsJW~ NLRfZ|'87M糳ǀE': 'C[ujZ2wB!DAUpSiBPT,'\8ޛ(EV$O!yS~ixu+BjJ[UtT1[4;8 o%A{XTfg mI94{ŠYh̼_]m='Ns|yLQrcĺVO7;.rpp.\wrKi~7͘t(@##枀 $6HJBz)TTDEpjvJ "XzOSje؂V2"|S!xvm|npe s1XYQّ >e,$x6.HΗn|o14qhkH#e!+zut=Z|i8H M/(f:OZތ+Jf L6H֔\WCT  ӡ~O{ŋ;>5GM D!QKɚ ʂ ؙ璾[ğ}F{@YHi^۽!!S+@6F-Y ^}Zsz@N  ILF)Q,ٕALdZK*b )FgEJP{zCgƻ讛';j4&F*{7qL_yrh:߱(St؛38pγUr.~G>Qh(<7 ɂd$i7O&C/6l.#\{?V#v 5Vc 8Azv8q詂03HMmH2-1*qoZ J1>'Hm(^5tňs-ΰ6erex{pb"KB’6^fc=Ϋerm)2EAfbȘ8"hɋaGYꊪWac,A+&f~ӆ8*a;~Oߣ4q>,>7x9b>Ͽ}爠`>#۹YciNT ,m\- B0 oc( *_$[Ǖ:~V }%w˒$$D:bfLR wyw{TCʠwnw܋-1Ӆ'|a_ɿ+;פ3Jݓ3EM9sKBS2FPc*b1)51B\N=v  B+l4˒eTsO=C.X) M~{dʹ](3?o5x}A2g<~AǦo=9wP>j&oض ʀtKv4>ө H%bN{3y"gtS OEKRp |da~? Oq3vJT50,u1t]14:7pnRT䬤ilE?iQ(gT :w?ir(lѬ IDATL$|yK޳oiZj=oȓ(qJXWTKD'TBzC_êP=dK)v(tJwtǴqQ4v\Ttr/ӗ<WƹBACk\jEb k<;goWNkQ;#%$WIUW!jr1iyѤ=GnF T8Xx&SgU'3=cHO%舰o N=뛼Ge 4Vj\γjg+`$LVtSfC,u4FLoh4NK릚L RzwzH3*U}Zu؊v9sgcegX7T}I̗9&3DmFGi0r6q?bI0\]W~UGoEbOLQpc-+R9nw<4#/c|T6w; yy'XB(;TEJs}}qDdz-ځfSiױzatUE@ $qE8KaY\T0Ǫbb3Ɛ=ޏ-mkvJAT/! Q9#KǸ?8"ByON9PGCS9Oٔ<wf (P.jN]ӛEiq\R2+ Č輸xb:oz Z^c9HmO~#wxvϋN5nž_^cWCtãƨq~xT5LCAYʈ7Jh--B2jhC4[ѨLdϔvzFRj5vvf rW9tٿf'Y.ȖMCwt3HJ0 !KьpTv@\&.F,6ٹ%dSN%u3+I5HHT` ʎ+fqq+֏GFJ[GkVEwf/V;3̂zƸòTJ7yʤ+XBht+ZD I @:dRz1QChǢ3&5^qP *nSք҇n ȉ8t:`ڶԶy. l(E(U\eM5H'nSj4 &aOAeiъɒ:uՊ?zF\| >b UE(@ۓ3*;,yP/_n^?/^:EfM֣wJ%9ZK[c"JQSd4au۸}kcW `Ɵy+ppSH2!/h(͔S'm۴ gya84iN_Cy3mbj{QízպGrJoTC >۟۾۴ڔ׸H mIaFA5kPO cuff#~_%J3AePe,EZoOf^ϸq664P PT[ZD`4vyb@[\MXdX }Oz| L{:d&xŮcߡEQK]\ #CK5g. r\?6\ k|:߽ Q(NiuMUEbѵф=hBD)ňsN %D!EIiuv݆k31U1̇Y@D&7** }!>]8eq.cu-=2E433=eiO{0kͯf"9EA'(䉼 Ё Q@S%(hٷ"X5f59ۥKqL{٧2Sk'X6J %?\=|E\KLR]_G{10 Xz;jC[-t]= ueQ+$!H05ٟ祝I` n*]x3@@_ Z8Ƈ3F qߙ6jY_ez7#B;]|{<Th$ʉ+c+,ב:'(/) ]eN[I^(E /&|I!bIeO4R/51 EÁ͞E2 Zd%G. CwnIoPP]JLt/qNБQQ+ѥʻ@A%ٗ@0苣+RYZz3)䘺\NC]׮#羠%VQ*:7!Z'Orj'dֱ_?ߺE^tޤ[DR/VQ1;9f>3H3ZɹOUI6~YJ=ZafmT^k#Gs]Q]AD{`c *kA89s[RU+ D]DYFUu_pr=!* o#dTQ~`dQOPqOKp͆Vw((a3K.|ȷ>yƜHZYӐ|J8(<6$D?f?3? }m ՖGCeɵ,WXGDqMu!9Ty/#XVd5T{_VdߌbV]E)-;8{d?/39lj $Kogy6 O2We6ϳγa;#d֠2>;f!z(X |;ul6uIr@_\\j۪;sW@)HK@j`"vI $E›~Om ?Z)#}pV.kTK \lK,dZ0䪴+fIPgU'|1v4,|dKi'?i1dj$ 2Z_02^n2w_Mb-˿#R R `WNCkˀKl .Zy/qTt+2ܝ~hҚiyfˮcPPr]͝6/\*7v,kb&9o|ܞo3ze5va3qN9i4ݴ"1. {(c6?J?m@Xֈ~@h>~(M̈(|DfY.,?p&-5j/$22㔙N%b?fli0Wq01sD~Ϊ 9J:#oQ$B-5/|y'/2g4/zB7Fy/s_qyQո?aj3+ը hT=<)BohUֿ;>n+3|QBnIL<ͽTf'CB7xr߰ <_#~lTT;C(E@b%WKδ->PV;3)΅xv:ܧGEuaPCl7Y{bG* a IRg-,-$-b\&k;t F3}dg) M¾oeD zGFŬp17 x8{V)5|Ek\*#I%?yafldQ&1`O =& 9IGk_qղ[,sEM]2_۟?Tet8pLRXv;>x$L%G[\1u|P(8TmX\R^KNa{ |^\CiתxP Ȩv<:~sS/Mj9zIfҽy;؊4e}TxQ1A' _|͗uQ\CRc'a_NىjbkD`KX\64Nٽ'R$M?Dp~@>>t0 JGröSw:]MMuaU_~΋33xRW_^SWh(ZmN@$MNa4*oʂEjAU]ϟa@p:r$3;zE86KɊUEQB$E` Y@[Л$hik [L^ERك'z~4q-vT1ْ e!~*YC+LSKΖ4ct+s)2+rOh}8KLk1A%ڇ2esҢSnMRۊX &=బlj6TT Q>[[IqD ki߁N.j}pE~v7~jֳ7n=Dz+>'o5y'*eQ_U#m9'ꚫq=M^^eyp|\9\^Pv|>po 97f~z1+\]% 38CnMs[h{݄O͙ 7HHb|^sDZ ˪+<)!BXCa)- h<>R\H84&)Fcw~;9G~t]W_Ӷؑ{b-Lg8%O#yBeV{cUԃ*hLˎovSV,Qf}b繯ZŸG6-A5J57ÝE%'}MfLȓ *T]Ax\k}UVŅ4-}I@A} e[@4^uM&;Q(BkV ʒdQb,dmvݝ޼$HR$k4dX !>OA+ yzixfG0S/vi.C7kpSsT`yD gI]>YdtB]fαs;Ԋ(g@/~ܳ Pء  =Zw 1C@ivJSJ =@3 hf$#ܿ,Q KrAٷmb >7]{)U%hZh;B[]B‹AۍʓG\\XPTZ)K۪Lu~tiw (a5xdT7%SOPY1Or֣}Ŷ<Թհ=о#1G7(d́؜!B-8lf?nXfohV9$;+*5J^xA+ mx;|EVw-&M[ƷCv筒~k6S{ݝu7u>iq48|A=Wm.a$7쿦,K?n IDAT>擏dWT5!:Rn˩6;Y|RC ,ڑiFfQ%Xy SUğw,焘96Fcg<[wz\;Ғ i7WoZ;K~9( h*|:\t N=VHF"9kiCFm_^h]չ>m3@YGphth[bkf&(9Pj+ֹ೪v¦ޜJ)?󼋳73$?;)`F3%v|Jգf**JX(*:~,X~q_Քq0RߑXTIW\ACQhB lfVQ]>8??oIY/ck6HAf *H+K1; <.Qp-25*_ŊWnoXIӸs}O$ 6OY&bF-ARdE unViQjdCĠZ>mx8+\ adO~\!}YI8T %މ5DN5; 6%͔t弉8d̳ĒyP~<ʳ_D~#Ք< 93M-N⍀vfDꜼ#ؒ#Gqc:GCe>Ĩ}I;4dHQI Ks(Eb7ґŘNHGD?c4p1:Jo"*Yj:5y:ݒє&O)*3-8!J6eYةR,$614n*cuфa1VPFvB;ETSLy;{j<eRRRa E x5r4ĂknhIQ0,M]j%A(Jy9넒g5-` jln.6is#JxVt(+V;lpy A}*Sqbwڵ QN9S wV(nmTM>.vyx4p⩰WqVD$@8W`ꕞKjd^NUŏ%BҚi/UeFM/NIbv4,b*A|fwT/ײw2Txsj8'gVX3rFF% A/fݓ& 2+Ɗf %/o^?(%A_Į-h *%uaު"͛p4v|:v) lX&F%YeUoiiL;\.i9RYҮN@l^:BJkW`Q8#f%|iH& *,Pfɭ~aGXj4j_.ڥ*V/_ϭK'nkѐ-Yr~-krW۳ӛӧE>͖?z6If2f@W̕jO 8.mlyqJ6g稯0XЯVHנR3ƟU^w6AMoŤ)IBb- 5 B.+0θg4(0' *TH?Mɒ:dc~xqO'3_V@,|RА93"X,FS_{gg-V8GSf%c; xaVco'F4DYs.RF,Oz'sp3gXʹz:vA"]J1)~lōC BM$g2`|)d~20nQ;۠0%ځT)2P~/d""[?Z{cXZo=O~Zw3_Qp2yQg|Rg OYp#@_خ~ 7sq8k%'(B KDK'ǩ*O᧨ ONu(A9Y.^R8VybSSfT\/tQӑͰlZp0xqm0<)٘2!y8vP/q~yNj4TX$cxQAgF˅WW6˃_.YY\~ZAt@.̰՘H, 0 a}aъi4 4kzaoS'JH 6^xcV[l`{'.[UŭڻGҗ~u3Z75sYMu_pmVL8WQ3zm̸ʠ$YFNxvpTfNocMiO-P85a:Z-?ryx_}܎E)jY_ nn<]]SĸQ怏']^VWHgx?}\y0=-+%Uɋ!QiOZʚl5ww "Mxf5fSOyt(ei{jFK+XaQi? }OͫLxFqlqvh,Tə ` r>5xKHaC@Y^q@Qgb/M%-u+$>mSH0 =d%qT[ Jp5VaU3!T@B-Ϛն<{; 'Z~뺹O (v")ʪg* ӥS 0e4XmLQhOV-V%#+4W>M;6ǝ?E25NQ::H53L*OcM# 2KQբȖ;G @5s!f1Gczmob,g8&1E4Ǒ=m?^gK( l(H5]^aΐ̢ҋ=PULN&&XjOJÖ4Ks;oqD*I "r"dmxz*w'xa (*ʢIugyn@r‚&!h1Y)➵єZs`h7zh4CrsEn&ЄEoCuaT@וHS i3E>X} ƟH?TyXYho,?)?2.Q3  ) kP|ZA+TI˨Ea1sT2vyHwdM{˧ o?2!Lxz|'*{l)J%ΜHTQB,}bb^xd W|oRnϼH\P\|t7XXTbz8`ida2 )|FQ?_C^$-He&Oca[.0\x fK̨{Q  D!/%^[M1oþh4s9|)OܢQ,٪#Iڤn5+_`mʜyKt?aU?Q\E,)g#GXQB+"ͥK-tt#^}yEaD^`HUrcg֘Z$aE nYM(fJӣ<KJ@0R=uٌŒI~8&l݆ˤĵM}6oL\5UOq9۲>I"Dy&_Ϲw0ZvE;tLK?$ߗE~ nXw&T7u#b*+[YiMmbr=pS#zeq;z!\OM jc2џ=/VZ\zqjne&"'OM7Rd^w(p9T{bbOxּX0~P;?(i4-٘(-&5V:wJ׶pe_USqm[ GĨ6>Iq~쬺}޺ݢފzhW~kRYʼ7ݜʥ?}bF{ 矏K{7n]D{%o̫>`7<'wzOd(x=p;)r\**@x\^g^YF6eQHXq^A*ޭ20HBM莸YZE30qPLe+D M)$D!6ӤA094BSXULo zDŋ൓F 4:n܂aM+,62b&ʩIzOU><Ϟg8YpaQW$ux{Ǽ6># ǵ6(p^bF]NUH0d*CG]ϊmՒa|Ԓ%\𲗝[5.==>Qkx[Pʊ5F8-u6n4o# _b!Ԭ R+ʆzNZ>=*Edu͠Q쳈Ղ@ȃ JcwrmiBG* s9k+v9"҄zJYj*Kd5c1 W0gn>E;'UֆbQKe? s35I'TtQ> ͂uuw|#xW5Y[$-u1 ?$R}ٳ78n~Fm9-咞R d$.8L . jAw쁅1:t/~ķJ-qQ@# D|BaVd5Ӛy1[!ut ^8BwFiUN'E<~xWmq4;+0c:P?y?M@ $t;ᰋJG5ŃT)JbL T,RM$}M^hUtL+* `-7ojslfo\@|PMUA%ZyrH_: ݔNv$!?9+×WV-Zek FS\NM!0k8D^%|ϻ}j?u3U;<D: f_Vn1Y]d/!%eyvlo:l7/n-Ƽ5rIƝ1p)u F#FgVb%%JYRp/waOjI5C@a,>sØŁj QC{QKQwf:rNCY&K;p.Rsmx}7*"gX5a4z+W-} B"t姶,o'TwU,-ƊFc!N"7`zI^ M.<4bt:I3r s:q5V49в,d9Y\'&y8 7/0BXj@ڴVnH0|Qq90# b*WD8Gr2T+1Ց?Ԣ[u8sWNJvǔq):QmtT!k)_FTse^wqk1AEML"^DZrG~gV0DkL>zr¯,̭юJ}ՁJt%t񥠠33{TwC Qa,JAR KzfQn Z -DļUG-3A;uQy<(eMkp:lP^JБ"4(n5,!6IuM~(qk.>kGo$TUM w-5R3+Nek1ID EIPSc-k@5'yo(ֶ K. $"R#P5^"&d~ʬ?~Уj3O@ `;*Naw,Q[G|u#WD]oet;H `̩ zQy NYȃN@:>*5LWT?{[}xKM#_jAWɥߠ2;ѹGKpN@_Jù5ʧ~pO4T<p! UDa|sLC`&$Ԃc S岣-wZl:1,BST &:M8 J*I7Z-RM y#BΙZ=|G+J}P*XopKj3 C``}zWB!f]`JƒBr8p(C;v7=d6߽}~p-6VJH`ӆx;[=OXx sp\r8@Ov[=Q <3ɶ.TLVtSAOF&ws$ah[[(kjulż$VfޟHUUB {Z+3VQWe$@XrzmF(P?v0S󄂎 ҔiQT "d"*kg +ș2NZ8zH)W;,V1dP 14's@QUTn5\RNKy[!ITD!<ӡ Yl UPdίR1t9WTDKciðVWZC+$39H2j 4&/_WK;ۧQPs" vߟ|^?ݸPY} -:%g'l50kb%k/_b?,g28—cqv  5UpiF1 &ƴ@2M#:3p7p՘s:l;-~3j1d#a}SOKjoĒ.o2[?rhp-lev&p)(/T7 Ђ3QMsFhd2I{Q{M+)9#]`6X* T(R}Wx X >>wuo&Iؼmʭ5Ь"fSuT qlT/pAWqн=/l/^aycx鲔N FVhy^8ꚃb6 I K\Ċ`X{1kY1|sOΎS1"rAZ& eA)8u\R KPd ;|k _~݌}sLܣI}ZIb32K?Pak [`'AF^pRnSj%HxҴ 2XP{s`3bYY8qcoc-p"mO}ϑ XO] CwHqu6wet>#+y&!aw$ǺfXօFD8]%$#B X&5K@)m/Ք~ {6My.AJVB^0>gzb}yiHAp~yNi H_GH,QgMg1GL 3>:.Մp(}cM+B|FKթU3#eq&ĴB%Q!uf l @8=^c-#^hD:►J;?6ݞxbYPGaұ%n㣐YHǢJ 7?uηgya3Z'`bSC1J5zT3 A&$kydUݫv6 p7wE EEQ Tٳ9lyK'Y}RmX"n+FYFY5Xz+ @5ng :HM'xW#~i#Y}fscqTs֝ʍR El͟!(פ~3mwKv]0/z#a(z"rAĖ T_1|,6 ?% XW;VCE>n-p7dbz_$]< 7ɳ;Go;? blϴ;l;gm/$8$oXcezTO~l :S_?s}oz5szKpVш_ VrxL1~3 \$zje3_F jG6%mDL hGaW+_ڱ?tq=3\>ϯo Ƽ!cUӲ}/^*^nvPJI8ngԾ4 XF7LJm< JNm#/cyc3&l)Lg,ʧζbAfbrqW JZD[|e_/=[.߼ {'dʭ B^q_xU*R|Xx |/JY'R",o1ړ#xbuq+`fTF~҄ϖRp7HR6:xL!hU>I"H#wt6 ^J sGp">jGMTL_bZ~O׭ucך@Ki)|"W ZU .SAK9D3) rp++=J}!d>,1ŢV=[ZETk ;($r"HR~u=;so ;[=T6<ӝJY]eSLhwЊ)/upGxwĭ\[CBY|ЧIBj7bb%ϠJjh&>qKfC^]|nKsPj-*nWK㔅;A$U5WSSxvֆT_ڬe.:eR kiHU}328!ժFŒ=?O9rl6itsNkmΈ!j?75#AǑ9⤃yb~MBhJ![DbgX[Bx'[䎝0NL=3oJpw|x;?zmX4,y]bK2TNq{ m/Vh~_<!b< f&W$kl bFbjY{$j =||e_XL5y+7Z}WM^3fz2|0{bb3}\ޕ~3 W&y 9xW޵JWBhktL3p DBD+F9Q:*4. {*0#la,/DEǹV|e1M _v < A7OU.` 3Omѹ0Rj6#/P ߉\mg/Nk_ ŏn#fFJYM~9DD8Ğʈv΂hRzY+s;#꒪hE \,;)|'X3xj=Ir-hJ%(G p}lB!uqmvn;vsVC>f\#vKyxHy2I YͻQ|0۽+ךkΘxA:g _dgU|m{?d ۳= AcU"l9Φecu".' Tr27_^}L vKk\`4wy~~ӂ>%\9)nG{Ф^,VJ\J|=־icV ;KkΉQC.rJBkqQubnYם|%4MkiK]FSH" l*FJ%c oO3f$ s6N}QLf:Z-lMeHcVV\a{GInqZA+& Ub4xA=_y_B~|m=U:/4 5TSK̴){6Wm i՝Yo)̗I{z0IάbY/s鏫XM;aE,`ClƫG|Y(rUܢt'^GskA  Ô-rK_Ƕx:5ުc͡MI) +6,@OyH!oq 1۰YLE)MI$ou=!gSTK]U^CRD+O*%[JzHW,H&V%h(;[wݿ/Wc͏OO9.vå<қ,GuBxq6G+%䑰i%H%`.\y|WQxIp;CڞVӎn|Iy6#dcLͦ"4,JD^W7ۯpc<_,# [5QPKaWZ+: Fޤ TQ ;{׽ br1_|k9<|.?Qy_wcz[+;K9{ƣw:ӧ%=+;4攫 m:!pJOтSQZ H* 8ʹ ` "ٴI4oVZq pTkvecƫkHAMUSGK B'P#Qs#: yڸX8 GG$)nީ~ GvɅPR[=vYNٌ맬uMg9|ϻq׫ ݭ;NpU)慰 bAtT: BJԅ3UìA 9 V4O@ I;a5QܽA8:#Ӕ=]@'F Xa NA"l:vqT'FC2 Ah4TqA$TgR9{֣ RȊaS#.DH"e|;#ݩf!bAY"IPV㤞* Ep:TeQʰQ8K{s>N]-On}e\͙Aq+*lQJ=O4azPT\K~/}Dǡ;Θ(kdxqj> =D1aL'{&qMlU)I3n9g4Y+@ ]j0Uctb t~Bjl[وMg2"Vk>O\e+ ]2ȧxKOl`HAW$[W߱oe0KlAw~{O#78$sAVQTX8j}ђiBhGݐmW*`'{O'0;| ;coÚrCrve>f*ы47Жќ4K +WG+^?`AZ@تnRz{5v7!8<LI]׉_%{w?~wZ.JW>e\gOwsd% ŢVK^~3Z?C7¨"o/V\T{A Oyg<'THTHI]Q/jV".&l@bA %*@ lŤf'i֚<-X`Po6WCevD-OtsCe2MgK_7AoԿ7vRX5tw?pȎ:YqݫVɩOC~ IDATBZ:bM9}:mT֤aJ<5Vc AB'A f*b΀NeD5N_3keP$JST1d(Y7t17UDuu)J!VL2mUt64&S"P8-[4Dm5 $EwR{i!4Bw!ׇ}FT'aL_$;/@ tk)!4(+aۭŊ8PauqKwCtmΦN9OQ4U&b&Ж X D+ f4zCٸKF`.RsT9`AX48uX(j RE=cd-c_+9Rlܝz-a&=JxT2)rhi"K Tm ۰4k7ooW׶Yu^Y'xrt!& 8N>PX`s>wsލ燂yc0'"KSCA7D30ds*^8Z`:tltbvB?6 X5.ed\G^RT!b+NI%cT^HA_om00U(c K0B*'s|SsJluEiIai !]lA9,dcߢâ wO2Ty-i[vi Yp䎻vsoJ# P]1r\ 1ONyrDl13g78'P)q@, t wͫooҏ?c1{,,2Ft`Sj${7HmnR68e6&$J1!mf-(s9]HGuYw, G;'plU_ÍrN9?]}Ξd6(?~19*mM-lCd^'K>>>s}AIv{&( &8< 9)V !S4_zSW؂g j=" :V%c~G+vm g9q2f6|,Y0y\P:JX @arjeVɺA.@uQH8:7,TF|k؄.=곶.N" $mo\Cgg +h$ܬF0[Ԇ'cz}z1j̷>9\UW;Y֔]#hnj ŔeC"7 ]?`ϳXO !f5w<ѡ:4.N"*kHG[H) ԒQFڠnL"x3S")f]}pcomLN> 65gvN sZSM IDF,ka{.I\/qs m' .{*li,XqYX Id#lHSRDHDr23ϕITOJahX2H)'k)* Ϯ]zru@2pz;=>T@З %r}{\&=Ҁm+AT \ 8H@(W!aJڣ2qt9٩|xV \s&knJ mZ %X-BVԚFCuOxw%ƵG(Z5k3 iwU(!|d|iZfqܸ׈B͢-!n}NAt$X+?o Bg<kṆORQ[fm%eAs1z1SwN3OQ쾨dd+3sWf;?/߂+L ByL L|ݻF_|W_~\ٚvӿQ[̭7Ex͐ H+~q.>}F6tx,I 2ָ& "0]^G"A(0(%ia:>N) :_~ٱ&)gVf4^lb); L2c}[8$ r>;!{!U Hzb{fmwE}8hF/% 0LCjn;YwzubDŽ!ƐeԧG^seæ ^ښɬJ}z(>)7ZUL48{бS(.R'_f{R1*y&KYK„6Nk䚉bbd>K~x_d39;m>S,t'߹ڀ$f>QJ.²>/ _h\!.}(^"/jrXpiB̤?MY+'7WNn4{k({4yۭ׊: G,D$ɍ2yHZR.nW>&YlB,.a;2XC[tŧ\18 qذεw5JGQb,V7.yJDjIaIND$1QmyqR|G5!!s|o&G<:[-Y"Ёx4>ʢW+YîWm.z|\`UZ$lږ-ޗ89aN!k}Ÿ[Fq=l]svك|h#R9Y= ƛ96d#'r'D{+ZW z M/.Y.:1\>+*-!R]¾. e*Px1z}eNfVx zukxǪkIbD!S e6H?ip<"9F"ͽƎ "ٌG{%ZPbb{Y;QŌʙS$CuzVp\GA)4)iZhfm+r\d "7n&:ZTdGk.z=jd4Iǽ7%(+< c'`HPD. lD@4E gQpㄑ;83I׮t8!OMo 'lYqؘ\HI`/*qmG%OTzG,_:]|rN]"򉲄InQJq>GR(R0 +-Y6ė#(ቁ\SOYc 0[|x.-G-EdNbG!Ob@wA(Jc= !9Cꋵ<|ysS*3=9^.۔@I =E"ƫ~QHHC27/_|? >|0rL0ݪATv121 ֻ$[E@=[& zLO$tZ|d/ IDATkz/ ܘuCkT C^*mwfТ4t+wx|ǟc{1rbg=):U~ʌZ{ԓK[y޽|sĪAҨ"]l^ruWk|qTJg㜨KAc'o陾 *#nZxl_֍'OV. _]s0CuvLGA3@퀠ZGl+Isޗ2j}nAv&6P]ICxrh,N Ԏhb@*X$ :[e,!sp%UTA鈣<j=E[5yAet!AOq63:ώETm` : ly&􅩊\uf޲v^GKD ` f wZlkʜƋTEFÔ3Jfk;`Э\Yu2.(j4nCƙ$Y*it{]ns}*8$I./^Ee" V.[|!VF!kP /WŪ3g/b>~7"Ee( ݘfn/%t'=c ]j3_h_NuaG$)}ٵ7f-ng_`jAq -B*} ؀)EIcvh٢4mn(j%+ %`|L(G5p;ú$l#˩*"Ecӆؖ!X7;E7?ӇQh)A%2:rA]3?F^E3HO j+4E%'MiE9}'|@tZ4ֵB6X8W $;K*v URCGFBQףv$ >ٜnT@9 1b 8WK%6jZ DZ8m,UxƹtP<)Z\u+#|AX}ܬWض eB,JZ'mZ L% R0Ѧ[yIǎC+fUC0畒%ZU֮[-c1I5vlo.ŽddS?v*LB֥vhq' gv$H{ySĈaWnk$N_3GèL(킁1udوY9Nx<&Xi]Hij A"kzUI7]v!%YC?f<(`־?S͚ZoR[T.x*r%#TF,95&]]BuPf6gk~ ^pV:ul(%T&iW͑zr!sRe. >bq~3?g1Kp8Mf׿rÛ]ea'"Ό@v2鱶\d 5B<,`4%$W30o;9ÙvL("tweWJ,^vuu+Uk.u×0LV'۔JA.|Vd/$H(Q["!&8Z|ݖHC[U/ohJ$EC(/"6̲59R:*b&₏@Z_~ͽ:}<ٌYF6a~Й&Ġhט̅e-jyM)uZAFЋ6*fXKNR"B0MQ^B@g]Lñ/ qLTS(&Q)uB|K5+*KVKR[Z4n-_RXu7??Uv['?|fg l"bZaS 2v%`P̼k1\am$$M5L_i)WB&(8ݞ7|x,nK+E ӯ}(O*,4Ԛ@QC(em2] lS%cʷZcY wq(OV[(`-U(:<Luqc}>8fgG=,TR?6)ջ VʜNXb~RhOiL}wu| ׷9|J1O%^QJ6Xx8phvЍYE(HFHޛߺCxg=sx&.Zo7[씪]ʯ_C/\R9EMq|(=SeQ ƻ3OE<2 p26s~3B $ ŶF3+Nyr$XwpYF7ptN:3 ϭQZRG6͙jSY_ 2*Mz#s& ;C'̗nuwcJKUPThwq+/RVONbRr>2EG\ uH -ˣ.baY7E~2Z_ۧ&e!3a]׍l=g:XVe^G/ݵT!^tU[ c\DkS{ix/T |X *fY!݄mrxz;Y.88{s faڑP!(sXK1$ # p۷/}=ܝ]~JΏ8CF9A`%oj~+ 8gLS}0#8zls]=(b[lJbp+nC'`M᳴>ShXuWQWM{<cɶ|EӮ--i Z`3j J4`2HksfӚ`zD {8P[ۤ_~h1N!s&:AJ돵M]R X,^K .b˱.u[ǟDphôl>'pLWD ՊyYA QnVc7V*[!ӸdckAA,{Vjk]Cq[ɀ1cWSқ oca4\2WLL2:\jw}Rۀ@%HG8.D'HjCTr2DX2pAL7V(A$qa KKPҁ]}i +bN:8ss#{Q>.ikoѷvqV}m~?4f= 8*c.l/7 :~{_fz h"ZPrl*]SRTR|ɗKRJ%W%RlK-Y(bI@``{z뻝|}Uܚ=}yXLZXG*7.H =*[CfL~ؐ-R".!49/S3>kt퀮qJR %J_h.!/&Vvm|Ԧ[B&Op}\c, Cgmx+\QJHݐXml# *+zhץDZ8J41i5\\up@tbmlTm`FB[>KY?H@%)灖|yCdvIBCpweWPs(ٱYVb@)9*x؈k^vrdc=H@JzF 2KSϫ;ݏFŮ-G:((u RE2 NkK6o{܁L 3?g0UEzu9N0kd|wuIn?xlb_uRV5i2H_ʈ:3\o|"@7C)ILnvTr.[*+x}naڈثf3u&)ц\# iro-79YB3V–&rݏUoCâ-̚m Z98lN;?e-*8׹t+794c'r^'nm͎{lR` yF^x%O ;HzR<<4;l]7z-ZiEf,t,Q=^zo VJ/iA:}E|,#Vk잉:-DJF.ws!vJs'@ VF] Y ȱUFa9m<ˉluy3lu.DHƚ}mIٌMC]JsGxX ᣋ_ tT iNHǐcKVKa~ אa4x wn7/WmAdh ԀZggVs-)f}t9\qA0nشpdzb3$ AWW+)T2` H1߼cV4qB'R0QdpoO\ʖf%"ddn.rmh\>n:KSCjٴޓEU39y0).Krܯ *¤yL*n]nlޒ,G<~ ok8ul֙<c xݷkKntt21\CY ї|W[Y*-dm1|2IQ 8E=2lxPq(W2T [ 8ԾLT/vPj06F:ۋɘQp2uǛ,jNNab^[LOJXiX6`, |}-mwL } &9PGE|-^}Wl _b/)rVQ5^u\џ9sH<.\GWe^19Z%DfpQ}\K8d Y#zobPKx.%->8P}F x ƠrmuKWtcʉ  @!1f:Ps+ |=nj=zFi6Z)-AڗQ ✬3Vr6z=FYT d0uFglt_2.8nu }Fu,/˗-7_t4y>H ӌ1)5YQ>Dy-Fp}KIJ'NIӹ~72A*A:| .|_ IDATO<*)q٨)J9RjՇI˫۝Abj,b=جx!z۹exi21>8 =Ut"p%پSbb<#έU%(ږ5&gnƦT߻WecZc_Ƃ^y"R"5@|AR2'#_2kܹfWZ)w5:'3;Pk'R}kBuƠ"Tcg{afǸƅk\Í;tnW̪GE##ȜՒ sfuˣ6R8XQs$R:c| _x3m'z&5GTO$O5.qxVټ~2X v!顳AfL-v:ʲQV3Q<ݛ;5HYznFcum\0ŧGr,H8l1)(xbb\j/̥UW]Q#*\;sȌurQ kލ!.zpyUxUDZ|b 0VƵOzjnEd̔\''ܡIU_2yyR!L *4ƉR-mLDmMi:r6k(Wp3:tz4a)-R6yaGe$)XM S ߟxl\nǸfZ:) Lx6^Y㕏p;Gt%*Pـ5LJEe }ҭڎ- xaߚϣ8r`өk9q# d"3Z-%mI&H&37!Y"^QCSΞuVJP)էC{#s{@1:&wX+fg4Oʭ|L}#$y0D8 }΄l1p]I֨CxQdCtЛ;MQn[^#%=.{KѶޞDh1"s2J.^eg<%1R8?bk_r]#z-Gip]{ &휷dE|Ƚgg^>nη.(x ´1-EZB3k±ᴏݹ[?kOAJl\|_ay,oYx8gu3Yb JD< ivVi̧V}카{b{)@ך\LwQP>:f'=nY~3hz )I'[xtV|OB7pݿڡUљQ(h1r:8l5f7K=oΓ2M=i܈к_r 7_rzF'S[sw|k,.g_7G͇7X;EgT{O|bYXv~J&9>MȚ]Vټ:owc3<:e;S5uA1V㈁NYp@J *U|gص&X9Sz.{I'|x['z[^wJK&lP#;?͗Zra}+lJד%pbg4e!kԧ壿?um?}-C3g3 K^,a)t+fE0OhV=XfW';1_>CwȄHS.4oMOkܰę>=bttWrT=be݆vرu@S;[I1:1->µ%zElpxFcCOu+:V. ko`HZ%d&NM; 9pJ,BSK{oT @T}ӧ>]̸G:eη 5hi0>CX%`=*C9V'r-wy kWof}K &K!IHfO~Cb2DfY$2~=ׂTth)V~A>ծv').~ \I2 @>yD3OP&iPyS)fy\q&2G;>qDdvK&|Y\ra3~ఙSI0dj<O/D)&i9H;!71qJ _ dH9Lo^s~&sL;n@7NԨAZd!N< eYR|S* BBV荊ʽ=>sNQtGMŨ%ܻY9۲ko]bFqjƸ4[ep aC瞏<6w.\j(AOv@O5\"w?tOh"Qz%h1߯{dv*wҺ^\I:趢eNk .+vX'!Vb=>>zWw*Wn,&;~ʱ ]RFE{_T¶,Ί:tpj6[)͑2 AYpN"Ǎ-fDa%?Qs؁REqK)i)H%%1u'SuqkZxh|Aw6avY+QK>8?wVw̑xoPtYXKq1f:詭JjndxSYi!9頮W+[9(MV<=CKX @yCe܀zvdOqr?Ǐz[!JH6$&Rtj~H,(ӕ uYh;u-*qO gO,*cGSLr+H ʊ&9}1nN/7I<|}3,/Js} _e'5=Yc&SO%qtMZv1NY3j=*d3aߵάJ=OEy[J&իc5P:A`XjͦXUB\(] fu,LJMn;U!,.[H4G`pK3h3fvt=@‰K&ӝL}41^/V-h9`X>L+;֕ f(X> @W#$1JqNѷea/d:sj|Gkef3M)gƼ_;?{{|27ltX1;Mk>G=Trq5Vbf)晟 yͽZIǃ+mkb6J3EV(,z\g+I/|+ל?)hZF++ؚ?3:56Nnu3h-WuˡG;28P/3fN"iCడֳg9͗*,/t_;sgq|xҸB 9Z`~7Qu.a=þqsߩviLڔyGf V6Y4/{s]wޕw$&3}`zE>1YZx0Q`F6K.2Gy洔o}|:yaY - f\JSe M/wyCt ZRw!5(Efd9D:(R36\LtH b $68t!VD#)J#:/sكv1_u&aI˦,"Ni;\ >QE+XYxҚX1݅AxG:kLNP#GqqG͉2?>ٻGk鍫~{{ ]*, {,G}jcHН!pGPdmHNJKPiFe,=~~Ǘc뇻Q*(l)7ynOtT1b 1S2:hߒ؋{Sn2r|>=xw;"R-:IϘzڝ;)CUp?JVOEd;ޭQ=M16&JH7VO#N[Xjk=[*;sA 4Six`Ҁe1+_Z;ȱfP~w,zXJE?%=Q`y"KE܈歖 =j}8l?$SY{e9N$_seTHGbeFٙe9) 5X XϊXԀ0 IġW0#?ɉ'`7@v*'2NO?~$7Wu~`k:=E2Qf@-;Q 6}~V΍]jw6{;[AVu׽x9x%٢]-|ww''g%륇nB]^2[]fJ2Y]U] 屢 *.R}ƱX)gs1LcHј۫ʇ}B,^"\€Q& GC Tr*S*W.4WdopwoD͉ƒ~@wZ &\2f6rQS Ijנ+otUy_W yQO/o6`P#Bn9j9sznEPP"=csɗ勧XG?rd ,XYv&`{T د*ŝX=WT-Yzts񊰘a yfCY~YxcOd+yU/"e4p\lsE9Ǚ8</ }Yc}p_R5 X;혒Q9SZp_:i}CZknk;*i)3 (EA Ku6/ͩKM77>SɄ`B7]<r-<0] o3ylKT@#c"X[9=rWC:Mgimw?ⱃtK-6WK*c|WK]AL^]s!evJmDXUn eb l>~ \Ǔn1fz⍷ٱ†wqÎ~qn):P8¹f$FgW`,agT̡6948+ۿ@Yj*eDhGAha)r4¼IZ=LHNJuG7NOO=[0f) >uVőgw۶씝B,?.S8~Vfv^ wfT@<|+n6.> 2` |h8[2~>1;SW<͛^\MlIbxVw!F\1ӿz y89tݲqb%S&WY%?նF3!B$ҽ|0¼c9lݯ̬6A0.|*/ |qCԫ,p0dٹMo`S9$aԎ??ڛLbMk&Я㞨x o&/cUJr9{]nr#\FnTO<<{\TƟ\ŀCYoQܾ1ZVtŲTgKcسٟdӣr%ﴭ(9%k_=9f7ōW^gmu)';6XVt1c,s"!E̽h^~l{"Mce~TV +Y/Lwfϱ$:#܊yuccuϋ?DWhD:uE>1M銚,~3J . ˜Bc^npA P ]>kNq -2kM2[Q ]7893slioj2juq!ƻ9ےǺO38Ȳynusa£KX/Y!ܱ!;=2IPb SOO?6j2?|o4l *Q$j-m,$q |U \'Rd`jfE$]ױ:=h<1 -bM ec;E+Hub.OYEZKzi5%6}-E5 .,O郝! hEV//~6?4g].\sȕ ?mÚ`-c;kgfqؙeR|=TS֋~t^G"+,gC4{vA?j+ffXK: IDATosvf܎dnxo/vo\5y}[+Ź Yqu18BUdՕhRO䏽jދ)͎6eļf1%G(UQ^"޸iVDvtFszÝ;fHZZ$C2`o6F{{ffNYQWO 8e>xr#׼-|xަZ. Ҕ$E INCmhe:ϲ=]99O;x!GGfZ7~W)^ⱁp2~PĄ+'_ه(w|-ґ 4=:ﲺoWoЂp-T-(WՊx4W-^:,>#U y!/,ɖzڲz=dċfzO֦b9:a݇m=8G}E|_7qbHRapڇqF>h|(~}AGMVԫcEVٗ~ 2@›rMMTflN>s9ty/ &BHS7˨4|PBw rj{1@х/S|NjSU8ZcK3C(BMd\___`iC74rrZ8D!bf|wVX9k>jllj2ɝ&KA>Klհ|LȐR-Ήba;gFi#-A/ |$\ʌ>{sU N]T]^Z5mk^gF`KrǶ;+)hgl^Sc2A:G"H d9&J(cgGգ)>:CDmu9A !.sG?,;oo?Y>uYb]?xYv{iv:Y< sOe^+ah(A>0K_Zd4{lAd q=n@eC/fڗ[H76r CK?Q$N BG ;|ηAVgv-A?ufX}2n x4oњK/N-dHr t.p]zJ3u}Oʘר{]yYu_b&Kw;ch+6& JE߷{CV0GT3'\:lYIc4{VWYT؂.zXT{3q֮:qK5nU9Rs./דT*g"[)a4Ag&KDedB5hp lGbi}\gF@fȚTͨo1mc0u_}<Kܣ%:هRO<^P?}ల+׸QUĹҊ +-*G^ y᰹Qaqz>~a^=oT8uъH퐪uE9'(!S.e|iDb^PЃa2e" l$Gʎ҇gX\x|N|o? Ym$.[ Cf#(\rhiyGd vr(>)9xLovr]\~|-7]McR[YQĮ( J8Hs_ ?a>K:ŤtoΥe=r_N7~hapf*'3;=ϝ-Mο#٬$䚼o]@tnQ\vLOw?qOf6P2 !R2bPLu6Wq:jvB{87["]n1lT߹Mi/̳)VﶥW53ͧMHo8?3;Is>0ԻXX"U˳ mPָW0GBlkc=Q).;Hwd`<7f:]132W qKLGѣcuͦXˬ4r`"6RU04H@,t8~!p'_1p#GlmL8{،1]e"#HyaD͜UvJyKdeӉ1[q J&1ҌHA$Q"\;Lu0fp69*5 kl'pq t&OY \E#r]5 9_kfƿ~\;\<7|ɨ-VBg;X$ q>ЧJ(je&%'=]tsZz7WĔ8KU˓\뷸_q( *a#p2lŴCyÙ/+0i3KIbJI!I2jmܯ <_ NxBY9/1b8k2"[ru\gq=(|SYd(2idzQ28?>^!_aWw?[ ϴ%1Q*2b p׳m3R.؍^9z?yf69cU8Ғ^H(-H p 7HJGKj1_I\% -Mf@ >^.ІTJ CΌ1/{odu]39UY# (P A< hQv+$YR!/#mvݔ%eIfM3b y~Mw8?޻/* )BekVWe2DHCpGr?"8D, l<5#6Pc%)LXBgpsM6X_'*14R@L1pF54f=:c2 <1UM,d#ץ~,src!^ w/.9ugkaSAjAiHN3/K Lj45cx~H }UGwxP<*lV 1 4؛/OMO} )J-` F9X:5)_|G\]5 >~BɈI@А- fPh1[4eSShj6G7.`Y* PAip=TCB('Fշk:qbigF+gqV&)Pć>[(//FW`3B()C+u.{]!i K*rn#3Z 'dcPan[g/pEN4^=2ŧY0 D|GnFe -H`Iu凨A0Qz s45Fs>U[uj!BٙŶ"kYpq0Īr7E TP0q6AAU긁~3ikg0t@0>k)6=kDxE]NZ&8\PMF' d|2 5v~al;RHacXVI"z㥫8;Er)ܤ ;~J˰= yRg;3ӻhܒl}Yr3N<7a~zXP3L<8J eϹ7tՉw@13Q4$^~]_ kUUW/fPQj/0mD;j$c.rJOYOz~Hq9m%iaieCeG7OOcf5M@D "( !pN0B$۫ף 0`}Yp-@JJP0mI'A0̀啗 GK>|&D#h(Tĥ}z`@BQ **uu=τbiC,x;a~q8D9Dc0V< bsh!V r.u1a95QՐRC\D.ᘏd+f\9%ZAY*q()6&GHIk`: RKD44Ru%wp[! PplSX0,Bg\t|RFk u IbontJڣ,`j5[IPMOa0>1sqС5ބnFWJRH %v2ǽΎrip"prs5fVjXŷ-Aapfce۪=>0~O=_R…VJr7¨_3+ ;_y?>ҼBDDHߩU7(&!);X[w('%5 `4Іj1Мhmef:SN=_yćiEFf0xoH|Zm58u(NNMOL (Ȕe#;޼e4+f <ڈLazc=:9nݵh'(ecSSI}xݷP׳uD}K+MI޴/w&5o[ ܼ$XŤaǠG>4P]Y6^c7GGCO4޺D"b>9GA13 GYX(_WcD XjV% "-7"I 6,j #|0J&?(oFGpbC.kޙ Y0iA%vn9jmi"aFK^iG&4AtcQ .c '\sL%}FܩakMLqbl(9 G!hbv @a4F9 #u0އ9p}&lmKIQXc㄀κIdbhJP \ +>0X2 VhDxYj"R uʤ fqAa0bЈH4bQV%N4;>)IN!?z[2EEng$-o8NF~r~U=;źnl? tkަp6OgdnِkOzAfA8I)|y 5l,cXV2q.;7P"8+Y?GGx"j3@HR,a?T#THrǖ-OK*L w5ټ? N~Q2zs<^ lv*eXBߐr/PrS;Q1Oz_KsjBMbHs^BkkܡmӲLNB q K?=cXYė#Wnx5>!y>o.ԁjve۝ɘm%K˺l)[_XK,83&E@U$O`=xq^<5cU|< ;Q9(ߤ` !&2䲢s9ӏ{*2ʒ3ýt\C0*n'^z8NZr%`F1{Tң~CUpEQ74H4-/^~LUs 33d,g4X*p @( ~몌 :T阬/0EѦ_c~A]0^B&'X^a}=:j@aFe a]Nw==W4$Ͼl(l$G[X *YL=$)z.AgSZ+ 9XDDpӻr @!snUcdV1k IDATm)MjmRHnltkSYf6ړLPk6X?ā4A(ScUNLxs!ZfF=zdtMlVPBGbsBPAXv4'[0FTH+; byPi! u7okmuҌь*D1 ˏޥy򟶋YRM*u;Hm3^#|+:@5X_2<ɴ$B4cqr8Yo8ѿ$;)k^Ckg&A@KTTCRe{X6vHxh%YnW26N K6WO!.ODvQ~'+x2tUtcA&ЈFT{nݢ9)M֦i+c+)I͓Dv}0mM W %20 7nFJIM!#'OG 2WsKMjb`)F F`L,01jISB7BfzWt`=z15J[Zn9wwUw{$1`ۑ@ qH.ru~J6a ѴdZrN6;&R[z(>sBw9phƨ1Qq|sAB`+j!eުL}!ÙfO=޸^Uu\{S<#j^Qj'nn]wHm&-9C_lxh:~:l9!Kq@a#t:yA}([%[wȸcdPe0jW~t4uY!+UO7rY0 0֖MϬuiP7$TH 29inM,mQmHYwȌ  TY_ Ґ*FtĖ5qwqPH%,!\[G7iE=E"Z9dF?ge| o~F@ɶœ&3YZB9_߯ W)ya _| $EcegYUEAA 2 1´J,-RVf> aX2Sc"{PBkM\^UQl"^fK@ݠ#q{g!ak4ZqkIڃ*I˰UYh;O'0Ea;K6ضL  (drp߱HLso+2]- [r[&&-MmjЦ[Hw,Fҝ[3 -}[u#˶tq;̼5mqyoO|ߊ6֬QY@Eu7M@ِ~He3SȀW|JHVkew]D,\FbVRw1r='B-}؇qL @\/87 duy-$*Ԫӊ Q$IBuqe<]8?2%?ŷė"{O&0XvMul,YùvCN?ԁ&sQzD=>V3sLĨgdGYD&s C0 0"1\&!.r xl-a܀8,s23|A~33yx8 sH 5gH+:jvff6tCy4M6EG Λx!"! q@p>kxNizYs,=t08vB7"̔qmPk Ns%sDt'1_*Y_ 5-L3RHM"LG6"ȖIѠ@  T-2a!9]Ü$ut\2_ J#R[Ko?~} V@(4AD qCff-$ikM2.|I9Ikr^BJ{BJO8CPP@h* )(֮qICӮIXݻMA#Ԑ).-fn=Jf d»Lg۸̌[NǣdRN>t"L+qH/#cOy@5j: .ͦXk5Փ3kGQ_+n؊ۭ7fCzw.=F.ü\ K:pP6<>SO ?@^v ןj>d\˗iM`jN0ho j6S8=S_LFIC&Xu+IѴ-pw?vzޡ 馯nV #M[%Ⱥ[1YDtث0N"٢\#{83_^U wΠI! oS?U]v 6`. 00*0!޷?wY7Qj+9뷳Ub SAFѩS@I,sޫV6?:JY2Z JNdd|LARU W<(fVc /MDY1J% cM``<[8;M502Qe 6m]{(BmD[Ϟ1uf˷*)Iv`Sa{ʂ}tlE+ep̑#:+0M"  ]ELhSD%ts@ {^s'bwi/Py~ __}G ,ѳS#^8ï<`#X9|YkT6#41A#1L[HA2`!{L!y` }0E0= urc\naj=KHBD VD#U c֮#<8GY|$O7?s.kQl.r1@PV 1E??wbT;q fnKc-t+|efQ,r;CLNHdwIs}Ƥ K C<36 Tvmg6n`umݥØ;^n2/vd<>yh: C WbKU>\5sR>Babe6k M Az$q_P0er}^4HlBS&@?KcȗW"hb_v 04X KrZ !0TD&R# 0$0VpuU sk7z{d.JvԷR=Zy6R|fS{Ύd{ wP *;8/ٯ9_sVTF&fwAD737姁zء[mnW`O~]z}m6e1}>ϟqc,q9'!1nvi}j#=5twG@)>t?bj؅0T?J!s^ f @ (%rpÉ#h8r5z W6 g~;^=KfxXw4ug$Dq}j׫y+X d,xGbf)Jb;gonfqӷ2~e|5U:s Kl㞖٥J$-oU \b٫B m 2Cqv<:vTNO#C1;OfM8*FT"<4 !"n`8fn+3Y$N[ WPCF}Z.H.ؗ'0wfqf%uxcLP̓H~Y kD q J)OqƨQi"s58E,# ( 1ef~&&Qqsbt[: AN9]fZP z23bqC>-|V bp<8.H$b(,]fCb3h[|Xh>un]!uC#;6c|pO! l},kڴgZ!cȡxr@=zR ;bq{-mͳ$޶Իú%{MZShRyDDҩooqմ;RYf!6$E}"3 @{pLMƛus)x81)8G8w/?^2@ ;SQ 4~y7yZ{ DwN;.VXArvMlk`Z.;̎u*80(r'x_~5?y _{G05  h%=<>٫48LfIuUĉ+01F]N[s€bTi `IxOS:լ\chTNk/?]+@*208%g4rGp'#bkCeDN,eDHݛ!QNȈ7#gcp <ÿ{C :"tkt-h0WV8{+0X=4 #c+x5\ċjM0B܄2mp']X+MH! |uxfRo'H2NH/8'p#x !#m79  dzʼn7 2ԝlǴLݮswwtDwPRU#%L=A_%7oz(me CN7Hb_ư`roLEIy)"c4 tu/<Vi Q@P!20*[@2p898 <WD5:TyõU4i3Gḙb FXV6. (XBǐq;ցCFigS+'Cd@J&7nM:Y_k2yz0FېȷKoʼzlۨf%ǯ<"/u\:+%먛Z2<եMv;XV8Ed@ \ЉoWTK˒%N8v L:$)89Zia*߬{@0u4:\ŕ+&G"052ꄲoE%r"5Z&avS;O$w'?nӾ-z봌#AemBp}8@lS}~|yvna+!0uOf7wgss{3BpNq ﻯ>6c`W. N(%Jix9 yxt¼1,8Cp ޘLe3tP( L>ȕqK3± <u6"> [w IDAT!` Lh5(eZiQBPʀPP@D:>aʠH FzfDAr辺CD@u!s}h2BAIȄ:^0]wmCˈCxD@88&7&Y_d ֚r inn&>LeJQ?ǰ׷ExM;c9YѱG+xii9XY 46nS1"Xu> <>Y ˾"6C+"ȹ+KZp`Ζ}$U,̱򜣪Ah 5*4]'9.hp Jfc"b6[~фiҴR 3dUZݲI;&I$zf0}!mdXS=8A4+eWP (ױwL<%Vmwg7dp# uG1MpY&U"Chֲo ]Pֲ s,? jz H* 7s!9p ztJ8 ׼rz\ר0KUpu G&rj\_ VE-ŎFА) čE-Y£M2 u=QݑXvOX#^ȦUKjuA.8Q%tTM!jv(LlS?MgfR-NLkϕRp*BhL(%Yl0]!5 4C%cpphlv*^M (,|BPs|T =^;+th0:pSv,Ґ2cGV}>R~ua &l~BBlly.=K&m$3t[o6}#dyG}ypsW( v11*MlT 7 BIsG\k6n4 P ĺSn{ 2+H@AenVK*P!T:\wuGl8ۆ̺SjB+!kzxd-QC}XMz_xS\ 4qTAQ}'s{0e0>XaBMnFTu Ƭ5DhuLw6n\ 2ka0.,֙||hQD+bDSȺ:n.AAlTׁmo9j0ϑٮHa`[KoFh\g7 p§pS2N,1E]Zƨ/gWB\a5jg-fNX~ ̊i(C X8/5Xϼ)j heSe~X2џCGy [^1˫5+DVIm]d/]6Kzn9%p 3-<>/щh TEy5.3 ak>@o78V)toOVf[o~@pdCɃs~Ul]X(h0H^҃}LXN$۔ϻgIf;l9A ٶJێ팀9(^Écz05q]ECQUTy5j;zKk]mp+7uCk8l>1cq\!gx !*έbe [X$K+LW)bD#@iJmKmkۺv./[NA@tT^mamz-w?]fn|ݏ8oc"AMEKEk T+}Gp}%̮g5\ɔW2"RA5` mKmeeOIJ:,s@S[1?"8z.Ϝq%`K! cvw,6Ƴp\CkXu Aq No&-{7B":^{bɇa[ d<x@xjh$G,K 6sdXU]#)V$%6 Jw6 (s7932cm|xܟGFdv5Ump$,=-޻s n0GEnmn].e3T`o >{$d(,__^fH_֚n5/ ;$i%PJT)bT:%8|Mg|N(iXO.VLx/y7HJ IŽL{j|d;5G%U4m%8W}Vv m`:ADJ Ez2 R6lJrJP.]~{l '?T'ύ :-\ie ՂZ8Տ@9ZhY*HS6_TO=Ԝbڴ._nX>E`q5I*6({s=(o^eny|oS<8OqxfI |I(DCSp\-'L 0-ZU#@tJ,HsɎ3w#S&SFҳ瑟'cK) Fk#0uLG `׽-f09 U¨Xx*G [.ߣ6gI64 W'mHHW%dmӅzYJb@uqJ7$ŠpEiSllщ 3A%w4 iBgt+$iQ.潢/ջV=f_5 ,wr^Zf jz7Ň%\jEj}V(^NWTNe6yyM^?7= sOQK5_qrȵot#a 2ݫĸL& BIT}+^ަڶױ4B7bݨdžPØw |u£'|Qqj :Zx\pٷ^;˫K~gZse˦ R3E'U;jx^9C#_[꼽SZ"e{F(oqcw#4GcȧN8:ӉN2s y<yWl_ @RjhA)LL*U)۶DS7sZp+WrNe[)W@Dت6nߺ|W%Y/`wEUx,*4v+r WO!.KXng% Pގw|뮗 'c1sSvbj_ē#Ia߸yA ?}d Ӓ*osF)9{E,BFd}lk,Z;zR)Zj["TE0񯆙CG" 0-}39vR|k'ɓ\%r|~΀1yقRVfz' 8WKXΥecA_KR $=u_v.oMyzFiI [9)Gӯ|n>.4#YMDJ‚"c~|-=&AׇVw}ŜOa̜|(Õʈ@XTalѮZb=apMUoFuq _}nB2-Uv$e. h~r&^ _:;ef/٫oZ,[`5w2E$!U]uǽ}'ó^陬ޮ(ߴ[̎?}"2y[vg^{xc7{қISv ^|vˠoK3buט/"jTDS>TA_TH]ďb!NˉWx)7\\fwQ $ 2w˓]7bKD'aWJ0koޏ7n^N+簧4:Aowv2 ZJ^Mɦtѱ>Oe8rGW^#]%M*qV k]o Ջ%^+,Rj4dhh7ׯ7o8ygand{nA9~~q4=#a(+leRHدu?_<'崱ӱ˒mZza[JtԴjn 'ʉT. } /8*yd璼G1ȹ8) mew|{B4uS]߽^F~y&D<q=pUWiGi`g83['3Jkā8AnTr{]!(NǔE_H7Q}BnHd7l'|cq8YMw<v*7LPjXv)fm_dd-L^]1tb(A9pϾ4QY@HҮ(. '^2W݂[=-|cSή;x6J #yrRr&=( ,t E 0E{t)C }n\n!Q'C>Rzn\PXKXG]*s"PXc+El*" M-Cnf7o{^O?pjJGXUd WtT;%B3J^ _sխꕨ쿮+_5Cb+i9R@&H2X+v,w}wX br)UPп^v1B<*zI:=Zϳ2o(,2 G({7Iac>LsjIٽr/~'4_q$S,ϫh-QTOkeo#3pw[=!s$ؑ2GS_p6VOd,#7O/uZA_-GQ$jjS$Ҙ.]w߳谹KqONT>O %nG.eFR8}LAo! @ѳfǵ;.2h)GȌO0dPiK7wx-޹A_?OIZ$6()=wpχ;[GQ7i3rI&-*8hQr9_}A}]ZYtf̴,:/e@Z;D ӧz7|޸q(xJV&L'dC}6+7\_-Ehk^Zbmcx;Φi-.5QM{v`˥]Dz|T&qa #p8JVH`$A %qЁAlLOţdIJ |x_>%:>iX˨rZbĒ<ڬ 3Og~Aj`agXۘnf;fiJ҆] ]F *MLh|CcryQ蜣 B]w}=.}_=IBn 1/ED_%^`'lgG?0>Ty,UbB"%|#a0 IDATYWSAC,Ih7~yB;cqW-1CmkqWZI}eť^ƍˇFGB^*~7t8b4o\2ȌǜfPFTJ.hB`&3g}܅UX!c)CH߻E[r`|<Iu(rxo_Q Jˆ?^w"Atnm G?2X-pՅ ǺuTLؽnD[ QubEUݭefbÝRdbFejAڬVz^@m]޺=8:Irp#3Akm?p|=4:RV &%x|ph% 'zDžA7uRsPpb( ;JξH~/WѲ6l*ӋX ҁ [?ŬG3 ][oَLw31vڤb A1R&s=T1)UP:K j&&_i} 3o[:]1fv=K[K@=7Wo($̌6p--xo6Bo(~gGGDL-'dz1y =[on@Gg̓/s,͗PpP !\6wfïǦQE>ƑqR_1,IvSq]G/K1˨\sڋ*jlk"w>O#? L*/MZ_ c WpݺSLC-o7̣G/l> OGgr#:;v޿ptɘh Ă{t;4S#Ϗb.^点.fڞ=~1ZQ}H0Oܭz[ݼףQe$_|lfek!,{:OVQ 毙EB Р.Jlcw{΀*q򜏾G8*|WOAt ] MxS>B,afP)q%(6C%(٤}/'q>`'⃏zJ灑5) s 3ū̢: rkscẊ7x2BL |Wr m/u-Z4Z 3ө{h<:0p%՘xV;l̒TlFqpYAY aOG?%gx|J2y2ҳMuYPi=f[- "g[tXe.79Ą&yg[tĘçG督A- 0oO fTlOiȑ@:LqLc,竧>|>^au:Dt\whWw3>R ~Juh"PK$ _ QƝ"T?~xȦы#&)K*-Zr3zt: TPy:9Ap?,|o oMPŷ?o)譬.d[BAWF$=bzmRP;*GV0)KoJLNږ*JEVD-~w~NWXC4(T0I [۾ ׆Ryd.J\IU! Z#E5LR%)݄8F<}fGĄʺ6T`v A,͵XSԋ"C{xыmlo^T ; A)1XHx@i;$20 M8pQR$EA^[҆*8{o֚uB 8׈@xq /.`}52/{L@yO:%͡ڴ7wISww^۟ᤰ33ܲjm7{R=}h~pTY|e$М|1LȨqHI^[;ϺO:b@^Q] 5FFbMQC=쉛nN60)KF ` @J6NdB)}m$f9'XupHӉ$Y++ 71s\*YEQ1+ e)&!X+.d2Xh"( I֤6C'{a{;ь7=8In rMCܳ;nI_iA᪋J;QN&I-w@|ʣ%Gf9IBvk]>6EJވsHo;o۷7f|,}9~ܓYXQ+Ne+'8KªA wm*><윞L43IY`+kLnyf uzZF=e0CӀUd%N2qYE,d#^2)蒪9{LF|hы| NS(hIegXZPE r_zaFOsJKV`eNYyL;tRB+{f9eI [R9UyRU*2X$AnE/ժ#CzԌLqM66F7N&ToEOK{<蟄^f&RPǔWKY.6X.JZθ!RLn{wwD ~!x34Ċ `v.ZYsxt1 #I7Σa97t'qX2dPfTU ߲V %6rFI;]&nޝlGbYC/EZ[:W> Xit6ϟs e3VZtf0I"Ic6)atR:1ݘؠ5B4o@ Z5Zʒ)c3&ΦL3fs|TEKs['b Vp|HԵ̂ ҅E1&( Zٰ*XxQ+{/9& "&NPș5`f f38S=š8%gS"$ ҒBxaKy%B@ Qv;=ć8 8[0CgEۙJŋg$iLw1,qLI(BIsfosc D mHA-+0 H4+1 z)ax1YAqpO9J%Z&$JDl.F#OS X7s( Vvlc@$D4t.' q QN3%6,y ]oQiU6 ǎý!˘3LZ{D$ t>?g?>S_} Т_]È53ACo:NH;nߧۣ Nù(, 2V`4F5IETW"K])ʂZUݢOu u&BIz6z$6l-nկt dgRP+F<'a{4*AFjӆu=wZ]~.>Ngȇ /"rEطtg'zQF`WW:, ' 'Z'Frs'x0i7 7N4( 9.(hjAI9Eq'5Iծ6 ID7{ۡa<,SqՒǭ-y&l;ЗIJ$Z&_ Vjh4`1FhCЖl,b$iDbDĆT%p@Yq8l4Ɍ)E)m!]aRy'%e4'/}BX=&KV tC_B-eZ3+8eݠ4mj&[\ߤcO[6#Yє?'T9i=Rr*#K H2 XKY, )}3CZ+q aŰ%EV.r$R!R"%J@04V&2 qRt$ .Z7<6=Jb4zz"vIj0XGYRVds;&yٔ<[Q[NZ.]=uo$Ryi4NU7z UӣĤx{.As2a1/$ĚRX* ۙP2!Fz)ȨIHp#ݻ[>Ǐ7'cL1[ЇB0d K6#w[:ԝe&PUqC87^.ӹ8:X>Z;~(-%<\_klwS)'Z]tͻywNNb(lc,t_nϗ(ԝF$B6 ZKJ[ t*tLDlБ7$&MCԺ DyR ` M0$aaF.i%+'8xY:(/sIhC7 wb3:r9E٘3Θ4JQd:x͠dqNjhNA' ޷:U˖T~  IDATQKʼnUAzZeA4M(],Z[XHEf=Hb4T[\֭lQ( A\5{PyUi揘*$rdUpܸ ߎ [wQL7ÐP!˔OD6:&OS; ̧TެL.;.7&-Xf؜FuI/T{G9_=?!3;5竑J`X:̌BA,z)J7= L Bf:J(AEsSv&JAQ~CpHMd%eEq P#֥ \a,ĖYQ׷5nרưa}P?x]=T! E*!AzDE6n5q.gɁ?O2yZN.<|J-Ъc04mPZKׄ\ :"AߚKUN 3'!; 9/ssbP%7'bm .o粱_wZm-^,M{ݬGO$38PLm[OG Z%L\FLB[id\#A^v^6lSbT Y,sLVgT K4^*nqƂ_;= >M:03O&$ZB3LP밖7^#()*d7[Q0PiJ%s:Z>U hdڥ0HxOH"z҄4accef2.@WXhhC:`t|bc=TG\a}~fM1s\\*ڦSkVQmǡrmW^2{UzrDzc[|lY(]7@:||%cpYp2MR!Utzn$65]_|~i<H,,;VQ݆ꕿ^jVw)h֌=2`(t#I[};?7"^<?>bĩ͗&+oTZub$^x 6UdSqq@48DFD&MInczЙtfVY^5%DYRd gUV_3UAQE."hȅ/7SՌ@E4ecg]6dBUʟ!TbRAYKͱ$~e !PuH3,{wB] Lj>/gi9\RTTQ.\uXC2E[yT;[DZ$ٮekҘNrV.#g8P ʬ!չOesB0+jver3HuluݾNwA%)U̔v–w6*,yгV8x\\!{2-}Ic%hRJ:"釤7whvtwHcV ڪʊbb^0!/8urYAc-yIe)\\Rb q64fs@CQRYn =@@js8s:e2g38qzɘIF( %I<18EnrX\'EF몡iXYEhC,H=뷋>cGO=x,QXfr / igCJR,rxõiJ,+ª|E$@ 1Tss.u.6fag+(opl" +Gz'gv?2B 1Ϭax\䒪!O001[pyq-\ͱiiͭ7mM+mW|C]o%$Ll,1لaeL( !O^rzjzw%4zŶ;{^Y#ىZ鴥eHGc(/>1(e}o]53|YRFfB(5ŀ(b.DK5ӧS*fsڅ$on-wy =qĵ͑GFR x$ 8,4#M2ʜ~f8=C2!Hݵb5ט("@tKҜG#ܔgT s~1σ,՜]\Oeq.')Ac1yD3Rߢ5fd`^1]D!q=z݂rY֕[uϿ-HݲK>{݋d)F8H1=v:ꈊjBv@||i(EA37|2LX uغ˸353_&\n6P1يR6 {?d|AsqQ|k7m7~-jnu ͉nRdtWW/j0vub$YɡYL0 .Q !ѡYTs.I2*՟nkܷ'gwV]6T 8ǵfH[Q6ķBh=G~&b@EJMgISq6S,YCikNbKN{9wfGumA*L>|\O-aB;MUϟ/EgǷb}S6fyJL9ͻ58;:\~o{o߶:_W7 &.uFM9d|@6bҴ3W)MK̰9gO3YOߐ:$B,6EviE^~f(roFy$3EʰJ )16,qڸԈV$:& e)>R5%s9)spm|?YeZYl/sr hhҝAa[>/r+&*Eѓ[g\·B`UDEuݧž"2eȾwjgޓO}|'k;p ]7Yb;n4@ `ꊣcQ59`'\T0%DJP :akh(l574١`J7j(1(zhej. iE)䐉4lR:[ڹyv5\Bŭ(_ *+T9xMdF('P'h7.D&1*PFCtRhCVFZ~hCE6BYZCw.LJmz]iG, :A%A;񈓇HsNx2}4FZ|-zZpGW~wg߷ʦ;ofԐ q~GMVpvΟswuEVJ{7[ }Զjjm9Q J_c:GCAPPWf֗W2O3f",奡tQb ?ެD!eWL78jSYT舾ٿ"ʡb@bWyJaGvK<Ƌcd ijA<l""X(ExGGתjmtʼv^,ûۆeE&e 4fGd)y; ô,ye,"@kiZB1۝ϸM^Zy)jquQ[0Ȥ}V{%?5s?4J] NoxCk%m8vwKaJ#pˈLj\$E&)Aȇ%%(-Ռd~^T)5qUt}=˯ UfNerݬ9HE"D2]2ԃaz0ddaޠ5֒]kچ0hňo o6=k(}5!&d <|kO gqv*v&VK7*gomⶺ;Pg()cƐ唚 |ɀk,bEo`onUR C0j򒷎hl @h8Uvz9Al}#?P3۞en;xo(ʟQ46~:Yw[&n1?օ7|dXS8v$WDMTĤAROb3`n~:ږϮXwJ!Gh6LJ.1p2Ǽ!Xuž$N%FɲSEܕCfC'&/N%qGߦ8;$mٗE"6v{h5I˓[־\frLvQ cwp>boO9V __Q/yF.lLٜ޼l[K-ntA)Tzw5[) 5[.4Eg*9n5GPYb}etESyeGcyALrxG+'?g苗Y4LF*ZE ـ"D iz{5}mL;s1Nsu;[}p>/a֗ Mծ-O& {5.uр ર|]5ldݚ&$L3Fu z!h|omjclW]*uCmMOCo!kިi$C"*CUk-|lǣ8i+yq*WS3\X6MEުL)dD1q^:fq=T *v9]Kn;[ ;Z}4O9~L:zv+%ẠK׹VwTn8֟jsu`tї+9IȏsC>WŏpOƷxwezO0SS/aCwj6_`ko%7FvcȝY.TZ=\<8ɄobŅqqfV}igt.gg5Y" 6V a;@H,"DhFHT*Z5pIGEvA[塒+ZڅQ4\y#Kc-Pz=eLit$02\"L>+exNKoa6yRٙn5r7dbIw[&/O] jAE,2Ed0ç_q}jΟ&K4{tcLQ\^ΒyBYDZewLb :s4rpa,m`efWT,A]/iݼlӶ%zޝ{G?Ͻz$.bLggŹvת9M{5_؊*0 IDATxo }-9(H4i$22r;y4)wP2x5,^" h=ƹ=!['ϯCݛJ;"bՍR>J+H"stNzԔ@#cj\]z2gRO5PMJ#5ŝ>Wb$]O΂\8-0O޳1ⳤ T:'K59Άz2TEI|0zA`UlKm+WT?mu~3mx;Rde)iOUrpfGAezǠxhyd^:,qmθ]3Vzٝ3g&;@sUéDvn!10ھ$d22cGCx>'s[E{A]0}GG7]dJN1i#78A1ؖ)gs}z+܄:i;hB3cbbۤo̸EqnIM𩵇팴x%#61+֌3 k85ne,./lSH$MX3qy^H p,G" #U&H:EHҢ,K ~jT"!`H",._\ PB֚Ъ.iq5;{b,Ny<(CYmzq`0頝0Y8tR_$+cUJzk3MI*kZhe"GASqJj3 'G&R*x [鰝ǫ+94F/e~eq}ÝlrO5bDLiuO>T2#f2sPy\ѷUbD f4+;ОO F(H0j7#^?EJҷcl-eYT:\z74@qԶ) nUV Z!&@UH>oCmqMK=e:UnԮZƪ~z~Nl B˽ޓ*܂VM)$$%XF;wQ/~Ǫ>4HOۅ5?[!><$[KqgykpE(q9qQ^H_6̯s7}bFl,Y9Nv_7{6}Vb2RE%r}>~Ǧ9uŧy} 3;ú$,k]-K&ɑR+꺒hf1(؏ Jidf 3N9,0'җ BKh_0[Xv-7tur==R5W֮@+} cP(z[YI%#l89r#fnA" H.Aa7!v* h&Cc3P7,y3OGxfW%&AtK r[QE2dpy Z'UH8Zѐ ǴY-x=O'vA3iX۽E'l\o+Na'$%)(Ơ)A98֏;K&yfgŋ"]scY\lBC.+˦6إb.9X|[x%?/rdA\i*ʨlf7Ymo#Fn9"Hu:%-G22:r@bg\͘ω`j˽k#3Z?s=X .dmv'P¢I,Rwӟ?:촿o@,Mˡ"G*]'8y$'cN9?{FfqXVzv%ǍKz PBd%/<\I!l0݇ 4mWW\ωNPzAlv;рk:׻kbiZGw9&q,NjX,ԧ_PUɔ,wP V+ä(b8 teP&]YIIZtBtၪ31ΘE(RB<",j'F|n9Ye)iM ъYb!\^p}7/3;aQSH$GbOVQ@R@@ Y/pN@!XOCŸȂY@|ј8Ōkl [%vۚب ̆Wvr=PҦul4#T'w4T=Zh-Cٽ'w6zy1A%$ )c:qzx05_eqq`0)^%T^˿UA\+bɾϕű1ogD$ERڃ,cPQAs5rާҩ'T4|g'M|/ٙ[@Y ZHM^r 6>Le8\3"cdMfsvv8p4`:3SP5Jae#Yʶ;CdHX&|^'VF2TYZB4NP9(u6f\g5 |ʢ"ԩ|K+4$;bo=6ׂRn#R=x;TQr +w߽l;YJ:7wZқW"mMfx\ó:o9['5$N2d9(˭_`#=:q4U %~}jE[7ۂ(t[x*k+ɣсNdžxQǤ)yDJ]SU\N!.En7q_5Zc\:9v #Xa}\2.>^x\.Nð0~o"ro-vi_~ `IRtc.E1?~~C>z}'_g?M>Q`v-c^LyvfJ8OA&sޥW6_ׇSM:r- Q3-=IˆU_2 [1|V NW0z{H6S8\:vLЦ}s4  jŢXN(lwÈI{Z}8mG?E]Pf)8Y33L9a-5.<( &mea,[ҹ8q0 N|T?Ky[aj[|5ӿaH `@Qd$mźhk+xlشl-+,M0}ЍN&BwIm5n鸄;@ k!L5}lZg'Lrw)t{~W[Yg\vZK3}43#^&bdfj.0iD zü.Z"D5O7zTȓN6xk#c`%ջwװ\N<1PfP@QsUᘤȓ\dd8p:Çh 2Nxqk)bz`3Fb vd,GHC1*?|;i;U3Pyv<EcdNӁeۿX*0NAHƋaxd ?s}:<~˿/?ɓ9W4FZ~C5kǙ{ek{ 诹5KZ{ږc\Ł,%K%4}c+l[--Jӗ@[jc+RҎձ䇦ğ$&1 y֔JԵiZnp&j@D\ӿUJ`常šH;|';ge?V 1omtH癞a,ɵ~' }f=o޲oۅ?ĐI Z*GURѬR$edAIOڣ`#UۓbjX;ລq.$l l)lzkyv&i*wJntpt;Go/^'?MO>W(?T*t:DT;~}'z/c+W}}ԎX*[3;<.EE:Y'kU/a$G'䚄~#%HqL2'y4Y1Y߆gcpx.g ځ˝x0qcQxػ 2N;o}7ُ72g!0c){o5foc.f^}\Oؤ~Fof4$ARn4'GG$Ÿ}ʟ~/\ـFdf?բMg2R >+bQ,WmiN+Y\Rz1"*2ӑy׸֣,ү'vvF?5˷5_ڽ1-ְunf![5c4uXl!-MFN1N# ]UyCWu7-&iS]bGDs=$nf0cnik4b]Y[3̕׹wƢbo2m$1fblsߚE꒝FIjMގx0{+OӚcwVZ+=?ξ4JFnvqfƌbeL6ju[Fw,`2Q$F/##o܎DA{ބOb1 ,+&SOJeIRM: g3s^^LL)#xF)eL.,L UMmi\O(Yyu9o|~ՙHQOfz>wGLqQgir=qz!Uƭ.2'/8y!'9///b6X'1 xif\K'[YBƼ(0$z(3s}eh/I@pu9)'\O%\7e.jǫ[MG5<:Zeofi{80mAl)w ~OZ펛gKҹhca5f0Kd&r eDg1%IMGҁ9XRE-bDP&|H,%A@(SL ѱijxc )EHp'|D_䭂<8e͏>"2D-}-Xkpn5K){np37 !j킶Kxڱ-עn X{̄0%F@~߭[e0hf8Ic^F ~:k-s~ T׸߫ R[U{GkMp{\^{Nd%?J37QIK=kMTh,2G)@'j>=;xZ(,c3(р1G2_p\f4*Mk 0)Rhc1 Z:D#ZfsYTg]k{K|JvLﯛHcNۗi=s 6a[!56zU nKĘoF]sm? 55} q++7ָG{uFiT B)W2 4X 4 B[bE*(eqhSۈ1 Q ʫ@i"ܠF\_" cdi'7 a SC)!#>_" 8pq>/E;[jF#4K&6q^+d)t&AY~Su67(Ɏ7<={u~stw],^:cAB80 7MΒVg6:,0<< Wסnw|:tS$>rRuDZ# #DAC7Њ*X(:rrR IDAT\2. FL т1d !DR}??x%#D dö=zy@z R4&]֑&Z>jP}Cl{|E ۂ__vu?;.w㶟esF3x[} qszw iR:ozwT3|!/[#qM,mfa] k_GϧK4ID<ܺU"d^P&*>S^G44EVVYj>; Mp39WGaT fZ1g` t"Cb\G F9#Jãz oyq?R=}auLcc/-amQle _L}4k&k8I:j7,:o0zf^߂پa5-eƝ>m=]%mPHLF>:S)$ $.&7" {J0Q` I.H$~FAֱPDbAw櫓Iyɼ B15f+rMP$T37׍wws sΦ+ZKmk;:r^4x<5 NUXpHN(:7RQܖJu݈onOiѳ֯( o[ɷlv&+KgXwF@(rM%QՆHš 8p(E/R2Vp8H?XA`B9v4ώ-3|md&*(坆 {rlvwpWg[zj_ToOoޛȶY^ow13wk3"!LJJPB) 1( S  Ġ DTJJU%Uxzkfs[&^S{o}[K@*^a=f$_w3C#ß"fG#HQ9kĀF_A!M*8.0.PYB%>YW,/Vc )Sx15k>!@9sj܏?fZg_~+t9#y]wҌPCTd=Ɗ\Ʊ"mmarȃ!6Tn&ݫh]>QRͣNG"2#W룐heeOPZ:}7b,`գ=n%u* 1deTdy^SV(XÛ ,k3U^jTE DYDYUʦ*=aR(C񷊏/ .mi\9_ָ1$f9G%՜ cPQz萡@7=jVṜYAxu͍ܼ)V[@x#^}V9P-HRAebOh!gqdpRT͛+Wo.䬛㎝Dʐc!n@&ot{H өQ$>%]޷X=B9q|bH:bؖйFNSHAmܳBnGt_mqG-{>ةutsi2!CV!GM&OŘpOxuʯSD+R@$Rּ3 C OPbO ' |И~RsKk'ݴ_SY!gyWXwvMF9PrعҴ+$'J9aAt(nN7g=qT6cTS&&Iu҂Q 242X&TFF)5 .Ѩ@I9YzkdSra~rǎsiGtJo@)kRuޢ9NvQ7"o#}KÐGS9'cW9~vlnA8qϩ#@f>X;VkʊcV#ӘMt}EZڞIQ 9}tlO qH?cѐ~^!AofS*yNh9hxOݹXC)a`8D>CwoTm锴qoIU=?`.vj8A+ *2ĠuT&+$eX*s*y [.yl*3ޟrƢ5ųsCn|-}O]8+ ~+.{dZvM0G+68BFF=qJ2,t/xbV[xǷBܾ"Wr귨wCf3''](Ka) sG\-ZqdiY5Nvt=}Mۂ.-L7M}LİHQޖmHD%'/5\8x~ъm蜨' yhVQ jϢ3Q1O γj-^Hُ?6dxDB+J1Y<[1XJG]QXC KʤLu@8Db O=4>B*nHY۰ 'O?g,_>17ml{rV_7\ eYӬy&R-AJ#6Sj-cew8[f +OYμm>WLha~ƮNs,;R$&cq}͚[nt#z^چwN[OHHFNt9žMjw~yI\7w~>b2NH9!@EDq櫀ɼlsco(XDHJ-V088b#JgJS(Y8LiTe|Da4÷`VRuQ(g%Npr>O3N tWhz._Nwy OSz.W-FժtMxOi++|`nU÷W($@ˠ|ǯox'*K7=\~z^Y?T9iv"PmH e) mhz%":>MGk[jXX^YYtٯ'ڨK:Ԑ4@Q۾CXTzz:ߣ]3X۲ 9wlc^#-( @:<(Z;40CY;Ϫ,;cG4j"d-DL BSsc@.XT+ Rz0Xʂ,Xòjɲ'xjÏ.V(w%Gre.*ږ =_|_~JUY^.ˋ,$"fEҵmBH4xyb?yfbT$7qluBJj9Ϸjҗ# /'OϧݼTy}EXGH[VGL}23~ߢZfYŢbQ dC!R8Mh]O۳lh: g} Vn%H^)nWK+=J8LGr Ń|>֛K_g{FgdwNeV0XSV%;v0vͪkY5ܮX.YuaŻ'T pmsU]g,.(uA&R~AϯGEeAӧ&g(MRfW"` MoYZZ6\6|?k?SB}OXP馑RnyݰȽW&4e=pOxlM NjA9qL*@-[ k'N<ߤ ҃}am}WH_Q\)+=bWԃƓ4WOEfNOУ%6?+sY2S=eAQbUbμhDq! s_ys'<o}"R;wД3~@iS3gv h7WúyX]v(m~UɁBOɘ\Rȼl]sYi s(RĄdR"1K>ayA0xn?̑m; XQ &&rB+fH;VkUVK;E粟ˤCC5Y,zLF#7YJ3n˾u2xy޻2W%}>`>GYho/~#X(i*M۲3˥m*88/yLuۦYӶ=P4f7cNZD^^;$ Z9٭PjdV GCQlbQ,W|7ײ^::Mi#LrƗr8Q6SDfYT93=%st w,Y^_}%zC_E#YxuKPNVǵ:i-#1;R:2ѹ}J};LΛH"=%5Rn"M)Ks-h{'(L H'{rT^56' V4 8(EVeWUi1ORY74z (xΰZK^*E+tONA6і@1XS" +A$ohEgUq:hǺwϊV~+VOQvjF f Q1`C)vh\2E ꚪZFѧ㸃drBúahz&ArG1JqݲF!3AQDے;4,"x]Cefur>$r>H=p_< IDATꮽpw3sۺwd,G@""c|~[a|>KMnO)?ص7շCd'JA?aˊ=M b@ěZT3F=V+ϟODfx`@n )U~q>ٲj( b &>~Y}$(o_^]72ƛEINd5NlJ*2-Ƃ>qPh{َQ#`*wƣѢGH&t1|cRLR sy^ ¡V49} y|` so`eIOJc"30uZ(3ǂb>*QO۲ln) ޟ9M\]j5vF)9N-G~tmD$SB,*Phjjgu"+Ul󹏖9zk'0AtFgT拪5UAY0/)*eɼ}C GaɰDŒu]Dzŷ$FvMۑZZZs~]es< ݊ 4 |#∄y^7q}4XEMR RHeI80*tM2>r#&JoeX0ٻ]4&K5bPzd[䔚J3V0ѕAJǛ+hjDh+J|!? u] Kf|"93 pu7wtkDKfeI榸B~ Ҷ:S أӎur|l_q׿/[:35j[ u4rNNЂkpʰs) sҠӏ$%L*Btcoay)8Q'ep3?:S:tEa k HYӴ\Kp6 .I+L˂u'˄L@G8aeUlq% _sJDg6OT1Z>O۹ fJ;RF;((,2sYt)ƐK#*_Ko#UͼƶjTk^-)Ԫ@QH7ح YZ^]Q^+VسG/s1OMG4+`b}u5EAH$vzQRXK @/kߨ LJ %bh۞N@sOg5Cpm/ؚ{1q)̀F.bzR=/U]4EpƎRNc L7ޖX~NWV$q8ae0%Zcaν/8YgS]R,J K]FD@p]1o?saZ^`-4yd˼t ex݋3ݷ= nIJ`Dab{tg/RY&W"1P*_Zq7oAPaK `ғ\޿1#)Cɫ z@{1YN,a5QdkҀrl"M0z  dS(/^qBEɏ f#7XpD@L#M) ə7Ax R$w!(!=wA4LY%CR%}&fr'"(zENF I <4 e"/Nr`0/$>B>F]IK8lӊ-Vj2y\FhCZ#m4Ƣd\9BƔ\OEf ~uW0blDM1L/ۢ뎬hT.I3[Xs ˼.!qfݑ,Zҭm2ȼާLmGjs[Džo#9XEGUmт呧qVEەˍ#aYܬLUO۫}7!bR>#-IvV+Tq8ay)8Blh7_3 ^^nUNBͬ}<1Zq}Uo\Sٮ^؎L:1|`̮=55|]Kq-M-7{HH#Vg#!8/ne-P1B+H 7G 3iqTw6O`.ofc/W32 c91) 7:ޏjjEvIwoMIpYQʛAv3~DҷJHx{CdK5|`Ɔޟgph5"7U_-|UR8C̄@4V7e$R%[,MrIdFt̢:eZZxߛW9xYV\~`qyҔSUPS^s䮑p;w;hHĖ6fA󴅭;r#Js t@/(^<_~2ٚB$EVeZ$azˤw$qЍR{];{lwE)HȢ'͟ТtW6)Wu2dFGkpCS Ug 95XFT6M1Ju8l`\Ȥ4nmw7^sh~]DCr0";kVi!M04$SϽ5ZA#wMdNhۤ`OZʮTvwAL-ĺw`\hKZ2;G1ZMYPko F,Vt`; ȫN4:3)6tEu.RUqrF._$~>yY ٌrR}d"QQXiX/!?tAj/Kj&E>09:߆;?O}OF68q٥ ;anXyz t 簆z[VVn,N^D[@Xy{7 ƬzpjqBLuMAJ{$Sp{Սɤʀ2yqghMr}ū+Mŝa|$yp=㮹Z}0tw )H?^er4mz:amh\E^Ido mI :ZoxfeQd)5sq̘w#n} y/XRmf59K^ @jki($ŒJvbp(֏]_nFj.kF)Fɛ8 U|@W[~',88P Zn,Yg;m]^/MJU=ϽgPZȢEbFQ9 GJBiVܭ=M˛%1Aٓ)X[DjE0M$O[P1IO⯣)NE vɣ {{17/Š/2"1XŨQ0TDC&dVWmChM\:|f123@d㰖*s{\dtEx?|p\\ZܪqNH/ΙUěK^ֲR'| 0ΣS # w[jKiW27 1'=;c'o2di3MR`cmm@zu9um=[iDMOr`z lV X8+ʵʦL,Ɗc=E!qG2!M:V]r{b&`hOb"|ҁy^6chK'{0Ryם'&%[J wAb4F+=zpgԕF4bd \.\؍1E='|fHUZ#:tAr$E$<=胣-qT#(q<û`f̟vdήnjq"V;g3f1p~,nhWܬ:(Ժ,YuӶTq!g@l[ 8tz9E<,ԔwjO"&SG!vaQ AҬz(lg(#EEl.]V6CiH YwNǦhIVr/30byă79[{0]b5`% Jr-Yϒ7\qed<f]b 5wz7 }&~nBơQcq[Wd`vgbq],<ݮD) vU䛊Uet7\{|;=lmVGΩV2;l(erL9Z}bLյ07]47EAUb1 j0),ڐ3aȪZV# %h;uG 9H=!ezD16eP$0p>Cy+Dڅꝶw Uz_4M!3z:鿽#`?.j Ԕ:SMWkP"筣r*Uc1j4 6ZΥH c8q^Srdpb֤Vr7&exѼ2K_0F7n*RR!5z-8+/^/kffMc]Q]!uEMQ2g/QmYi:O %iSK~BiinTx H |ƃb#$ϾQ Xވ͘tߵ1ϣB(Zj_*)\XB)9 ĖY:n,]~3bLd (NП$FLP%% 3 :RT3)ѯ_NZF2JJߝ- kK:_[vӎR'?'5yPbnO0%9y63\|%9þ7'!k#y[]@OaѝvSf8:R ROjKWw-S沒j*` wK>C%E(}0 G;ܭ}Ucd!H4K>T`O[Fz@vK/,cC|K#G s]mZlA9癪i geluVq6ˮ*Ϫ=+S:oI09~1o=JbdݰnX]Mn57me*~w@fw1%Vu ZVc1+PN^ͣ_Is";Z.OAE1Eͳe5*G4-hZoYrM (Ut=>{w{=ȽQ< 8 |?lShԫ=7Ɯ \}mva~NDƢT^W,ƌyzؚqzC7=a $f'Nȡ>Bأ7%2E|eSY2JڞJ;swUw&s-5 gi;޼Ku=3>ZBl{'{l.'M>M2j0(\ШnH]gK$Kj)J5]ɒKg{,UAs]m*uXz:DFlni F,^5QkXwܮB2/{k5IT2`xeb2ČX8 h7>E|ܗDTɦkf]7{ aj’ǚ*?堔T%㷋੯=6| EyV%VE<̗u. d%ey7$t{KPkxHE1o/u3C`v);.-+oELry"'"3sHtZoRڢ-PAճR},h]G]E׏Q2EZV~1*y>:0zgff[ u%& JAN&Ei=n}ոML'aT [?$)̩v>wOŊ\`!`5"7nWԘΘb36kꊺLL֌iHC4 }kBږj:KƸ{˘F@6h51݊=EcUYpgYlq}c7:YVf|y ze / ch:/͕NtzaC&daX$,=`3ٕoBQRXZRuڤN]TcrkX wٌS#KG}Fy[/}Qf)40)b$y<2t^׳b$l}o}S%0qV`,@(0VhE@tv0:g^輓{n("mİA06Ĵ~{l۱‚UrH>eFF5}Qs:nKtqR(heN '0r[nNP@*ƹ!UTuZ+oUPn%^ZL0MV=^7426W-<+c.bRvcX+ K {wy(8ej[{vQqX7vXa qKFvr ?c坛H{停ؖ9?(9op| /' {J2%3B XB yx%n+^!^@*25gs?֟]ĺ7knoťe) !B<+{|351c.hpaJxNYBX ۆ䡫vtn+"FN4Sz[ij SƋyfk J|a{|z|1P FBLHaQyg!̕jV3nH/r )~o}o73ݶHb\b, Eʲ-w7E Py#ƽJa9&si3kϴ0 G]GǠx8 ]5ӢU/tRM?qX\ OzuU isxFÑmK>7S `p*\Ձ*ۦ[1 "bl yA[i8Zwځ58QuF`JЫ=Ww ouK=9U@m9hϋ $iڒ?zjw㦕Ϗh:@ ;/&x%W_=Sz?/WQPR$/iz7U~ iY/o]vDiQrhË]^F;&C߳hۧ]Æ 0vFD B-8⹍ gp;҈5*`QK?3IOD,dSꗛY!gyb"̧\Cӫh.zփ8(7KvVrlh}h]L(`R81rSCg"fgq࢒P츥*|QKCtcݾEqRzFa[ZGT^_yyvs4RJ\My}>C"ӆ_[(L09/w x+7qіmxpD[y#ByqE);i >+b^!uit88ag=ӾѣeF=7jƜ8 lç4m &_x}nxq[fS M[ uAfЯO״xF酟Fb&fh,c8w=G"[8ܒsii3hm>lz ]C=mx_uuv>FƑ!rFdSqLI3vcՐ 9!E)zZ1c fb$)4LN XIIlQ֔]S\Q ɅpxnZ;}oH*x$sZ7837օ>0Mqʜ qvnܹFt5,אB;Q)?j{f[O]aU0a*FfV+羸ci4R=۸{a"=k9Ndn4/F <? k[ڎl5ع(8F2LSKTLnQx~aVP٪Jyr(׼ΟL@{hqPVaJ伶ֹȹC'>qVsEpvX3ӄXWHc$6L0y&tZ[OLWfR?ծNYn)oBBC|ӥX̌b΅vmB@pl7xḠv>ҳ|ӆu4+?a 9O_`2qu %oc-_>CYO$vrk,[oi 9q-϶ϦpiĻ% ݭ޿:/j5FpSϿ|v!!J-ٌ s8mt"^F y6 "3CMMJW:G8!gܘ|B*Aб僣:DGB}vsDke 0I{.uZܚIHj}؁t\Կӛ(TfuAf[+Srx cla[%${_6.+:V\ AS'rGO鉦[?y~Wqi$3"(>ǐY[`m47/C|?Ib>ױXw4\GiO>'>k({~}y{pBb]΅Ӥn !輴-]CҶu4n:_VM +T ĵi4{:`T?!FB fRBPwgɹb>vok)͝RWK )r̐3}h,;'d1cTdFO F&Ot5#< e=[,8/1:$E^_cЯ&LgSѼg@?U6j6mǟ.? c\3Y@ch:F =< qzhd&'dyꙄ`g̰h ƫ#M򥋀fY  mش'a$%(YkE0) ~vtR{E'EBB.S'eѴ XadC1TbfrFge똄 sy!]ds5aarSvC;Fi+7mueiƽjY6-``jw!;U]O9QshSdy?;D |y_m~j+cрωܽ=,>yH|8x!}Cp+WȩԴL>Ӵ)*13]>x^ +qRaHQU'BlQouSxϾkh]lw e|WYƙ%2/TEX킸fsq+P\3eQ\Ki,b,MT,Fju'5gֲu r*EPAd %4Tu 2+Dj3fB9iNJQ45$r45!,՜8Ra'l˷H5kmύ{g bTz:dTZ!6.VM6뱮*\ G^<Sz@:m,Vh&U_uX`1ZhF/YY`. xIHJeNL2sWJfl.>E)9{3K8&Lh5l4Mm!=*4+:^7E@ީiE]u>ܵ)\~㖼C(} N7-M#>:@-eA`9؟?=N>g0fž) qYb-9D?+Og)arqZꦟ*[yHV^ T|6ҹW?45uѷF+=h d{9{,)2%B`_$o2E$k%7nv]Y^[G⶘:ZohF: ưJ1ALD:eɉi<]KJLli|̈́Tkb|րr<;2#90h!40%+2?8=lŸ#Ka?Pj%˺xZDգ*^W|- ^ЅϦ?N>uSaуT&2͂Y@AYL*z*pb۸ym;e䷝ >7= !ˋtpi/Cf>,ԉ~"V\K/-tA kEegG`E@55puxhWt2,#^{ܬr|BshԇG9S~dlNMhohfCq`x18T+ î)"ll~:>y8G/.ڲWpTHό| oj\.v%-=Ђ̆E)nYKei,vCg*t oymYx8ծ#.*gΖcy@v-^*W:kW"318Ö`uD9r!](f.bDQ"X4*~cl:150de )KG2ǧf[ 3 < { WsN[OzZ_ x0[1PM^su |ƣcj4w< 'Vjp5mr^Pogf9Mw M1deMT (!F$C8ɕq. f m 0MyؙX1aW5@,adns{% STa~SBx$?ot~8yRU;,"3R*MJJ!~VWieCf1*#OƤB8e XmܷG[A^& >|&{ϖ}4J9LJ@v$@.@a^J:h.Fc*!L2G0ۨE"(^/uҕn7r2_~y.><73;:ˣc|xhƈfߚr^ cbܔug3ES8;wF)+UIc:Mxl))cy>02)y͙[K- 2]zj MCDRf&ӓ|ǧO$8G/r)3 qEp{PЅ̾Y֖o <$1횸oa0k-X*~ 2C[D+%5JΘ:qK:-*̪ i]QUP}iiUa2:]a9a83Sƚ9BUߔHvuWE,Y ȥRv~«o[vlr۱ZqcԷVCu~?NȌq$kCu!Q!y02C]r,A\(NY"C8| -ԡvc@,NiU6݌M138GҾM]-hLAWltMٲ-b Yۗuuo=PӔF)Lo *9ޗf,Jkpm_\[;e{M#37:xk>MhߤClJ; 3Y;C/EJi 5 U9-jf),VUq(ϝOILQL*S926Mc0K1)S2YG,IQbsb9x9~sL*D]5{hYҷ7ok,6bٰ<ǃzeײo){aH z SR<+J 24rjqv^2]W(~RhFp pQHq5wOSN߬|&ȭnyEzZzrpRqL^s \UjD6lf{0v2JHNG GU.yPUtb 3rR+%湁 E;Gv=K?;pia4}j]_Q"ɥcK)9C҂G/6fٕIH,2]Ym &s-VBoKͳӑ4Ze4M4DC44632_~@a]W ~v-讪ddbU"IY,؄E)٧$V&R0D'0z&!ܓb&ETXIsfȭﰘ oDzI$Wg썫bF*ĵ/#.$9lmCӨk~ajZTY]LUz/M`5ʤǑqd F^l6Lff7:Ao.o6ڴ{%1?ȅ”˴j>p5bGDfT@XnB֔\_%VٌжDRhsRfhNoOM?WKfyLsx=i [mt]Tz!fɉh;OWP53rt=,H3,#ٰ]i >D}F#LV30uLq;/rY;R _[3/^x}'?{/n5H<^Z޽ ewݢ=tyO6 008`9ԆH82&1f)y'Xx\zia+yS_$]/i*.![ruN%:IFU5u@ ):r%abKpL+Sab " h@g8aʋC?D}_PN/[xve PrlRJ9qV^> }aWNi[P=CB&%88SFB<*,ޗ'?KdzF;Eh]O^4=O-*B}t s˓U Y2Q4d^kӑӯoEiLج%/jcX)_-O#n8ZOqzbMR*ev hI0N~g Ęia#jH6E? O*A#QvF}{+:(idKn6W/wW U:wѵt3a;mFu:IN:t%LTc˖|v.Dm|[3g3xQ|ji:ǹ$6cU %)S`T\4Ш0%s;?\JyH&\[Qڄ iy!)YId6^ag!ƅrD\PiS[S.eǸy68x/,)o55\42kH,jNVcM!jҫ#YrJӂM),⩳U^&4mizyr/kI<u ;2FccS\g,Y%Kv=H#e"H}UFWfxh,joJTCF4˰!I9e阵#w,Ȩ﫷;e*5n?Ф 'YڀbnLFP1)l4ɐDԓEs}e$$8~ɚ Q4F44 (5)uj(@@hTr4g&Y!=LOa\#E^^|xn[v:"L8T.'sesZ_.ƷOǒ3xW553ϡhF\& )ad/\b}ȼEX`w~ M`u?!檳! Q@{)z0H bB8o 7z99#Vо4f/ZD pYL}<~Ƃ~lhg^$,**6 K(y{o<-0DA0&f505Idtyge H 2Z7m.xt7Ff屙.z5<Osdj0ZGH\eՆJ`tdecnAq.as TJJʄeHf !'>O}bQ1r6`tD7,ZDwׯ`mm?=Jxٹëϯnx (4^ư>Y_}Ǫ=ͳ{Vlܲ/H7` ܱ췌I!1lLŦ;Ļd]~]\o;8.'OK%*I5+sޛ1nܒO YA J7:rk|3i׫@bErK.7W<*y"T^}[RȌC\ܕ'ǶtڊtX'9 0 y(@d.Zo*x"_3RDZ8Dp_w oiN]w*hdZ:_,K,PșQLdej*Smy.UDiquqX=s7YS8~5LiN/]9zJ 㥣p^߉^?ekqQ8oiQd\G'k @iusw8kOg/iUo?2P;}Qp9l7=t⪶ eW.G+}1&QYbY2W_%?suI ;F?lL7f[) _x:]nxW狞JAkNټ1>CĖ3R S$DJ\7M'~?]iF/c}/`~W]?]Wр<hXu_T۾A1EET3ޟ@<[v"N0[{fM͚^lxe'Ϊq$ c]к/Pu8G/W;ɬU+ .™ Y$aB\+g]W,v33)wXTVծIS'$L? 5 $}sp:=zxIE%sl)\`HƅDX}CsJ&G*_Ec`ߏi> ̜r'4i͛y?^\] Րl?&,+~AƗ&gN4>``2N3<)B~Ja${%YkwCi$u͜%/:.Te\RXxD|cijRÊ`L?z.zҪx3Rn0 M5Z-Q-sajBrX#I?r7W˼\h, mKk  E%YF{8!܁P\teᰜ4κMw*׊p嚼W5ߍn߈k&2WewϏkU9Y&Su?7EfݾXQd?E*5+WC;a&瓷Nd ~gZ@]ҹ5 -E&hjfp5q&Tc#Yz^ |ؙo~_ȅM|[OQtrL h8(,39RL*w`ټ޾]f.toUX]Qʴ?֪ZB31qsj~+%L"Vkv^:}bn~wXIz}xwN%xu[@CNVr+b땁G f}Y:6Lf=m%p-*b^CV!je7nj&DN+7$6NP'k7Eeypsy.t"=zujUl*tx'w 0կ7lu<NQ9J0;קXp|rOϿcmoa%l1N IH4PjKG¹a8 Ja"2Dj.KVYȀ]*hk0H#NvWCzS>]/UFm‡{]Ik86:'}x_[C'锚ۄ.-'C'$U:,@bKM\\t IдۇtL?QX7dfxCf=Nn4`?;p$ ~ɻ y|Ȩ dZǶs=gjNA$op@v93> +B T ( wgס2fMc*Ё礿%ey bae]'p@c~y 3t[{iHGs7PBA}o)aiQ[ח9ϸa8,1#>a s)HUAq:THjth) W@էr};ͦGlg'સ.7促S-WNYݛ(xyPf?LRQ2-9Sc>ӌWsZ3. vU`r?BBSxdu&Ӏ+8"Bu'lPmS;{6A7*\[i㕓y+!S9'`3 lQoТYx+'|AdP~?=s'4AǢn0eE]ƦĀn~D~ J>DpA yeq@g2سMPǍS)" ZA]IA ARhD #r`E`MǙL; 9bYo-&+PD0N_^zaecݚVapgWtL<M @ ]x-4 l9kD32ޯxC2Cxm!ikox֥~dkkh>ׯ-|nYƏ_ڍ(G@@݀;;wHFg}r\mgsƬ#'ִFARI`Ҁ0`6v'6SKLQeԎ!;B0:vKQ1@4WWܨaеQ; ;P.4E^+tMjD5\QtdfsI[c!Bݫ:M OjJ -s=Ets(mJ[(Gfdr@H@YtLXF+TAkx9+3[햫Uu󯐌f A+4~T3Ҍv(4iA%gdź@yqޮZB̲]Y D&(`HPOrM/DyQ3&AJ^0`EXp3"گLc.ݯ~e?nak_~MRi݈TTiZSQ+c! JQf6k?B+8BXu^θ 9nHb=G{֦GM djh ވdK !5rJ&=.}gn]Ecu&'ҌKE9!k G3OM'3عy,34!Z-Tk x&ۺDEC DDP: e OA]|'n@&'-rB|{#}05* ^X9HlD|o&闖;  5-UPwG0Rig 2m`q20y d8|'CpAa6x:E P_}O.fj!# `z xil&®X!i(\~]{&AMVN ~DA@PL_ŁG<  ٗ[ MEq5ɆEM(4S>M 7L>xf!7;Q !6a5lJr^%\I5Y2\p u$S'3Uo#rzm"t! t= #xY-= k͈ ZS69ә.9x" _X^z]ɱyQނlp0pqWl(@XpyEzrAȘ>@Hݎ`ٍ99+_'lOnS/=Dh÷gso0Bn R@Žὅ6hBm؅gsm2"fD,j4MTw͡EFLy 꾚xd xg(ivnȗI@.O@V@k#ʃ͏7EH]1?qoxZW{ZlA?T +*0͕HX`8B~BN%Kڴ)NAަa-xr^:l4"','[귘tLb -m6mjDo"!&țbR˽OsWC0ȼ PP=o%sh<fγ(!7)r.mo"j> Ⱥv{)`~ghױY2CHܦ:ҍPX*Z@=ea Nr+!&Sk/%l{ lW'gXbRk22#_l@xj6eE dT@/dP~ Na9&y'%!{zŔ__CFf@ zvBKCiTy.8Z,S'Ξj.A[ rz30<bnap^A @]YTUn$vEo|k[!:yD+7zJ"nCǦ}3RL`3L\D>4 hA"& k>A 5:G]T y*}|:Ccmst",m~R WSHl8'oOZe&{' I7O&g&}xuɼg3ldfoѿa|.l&qkE{mDq'So.|)F0 P?͐&>#lS2k(Shމ h?g1g?#w?Sܺsʞ[uu"t>K%?F6RSB|? Q$?HH EqU.\jG3n $L)E2"'䌔u \wEIG4A(W8607T bR̘S"bSFd'\1c͕CZ^A2\CЩbA^da %:9-1|j x>aApO^1(gM+uz@%Dٯ1+8 hm"! \!aE*Z\B6g+AU^u%t2}s ɳҐKNG}`U'ihӹp€y%; [3Gf3vQ[n:V5u#Bʤ" I0'hF\gOZiF.s(7(c8lOʫ5U y{r)J%͘E6aa&[]U7-!ߑ@V; v[f8m3 |g~7 ? wm-=65xr|@qB{gU# ̌L%G څX8÷^gPuz(MԘC93rM c&JәXhyGW5 aƟ+xa;q}2Ux6@NNLf @I0Xhb.EؖG:[g7B$ Ibi%摫" L'#̻FJiXwTwk-ѧ|4n?)3llIG'Wֳ_~mO̘jNҪ2F4fZs$$uҝǪIRw4Լ3m{nu)Բ1iRw?,mWk  m[nӽ/˩pXg=jkHt,_Lxom_C3swQ?[<> )][0~M`NYja҇)zNxBլVo!VL}Z܉Oдwrʲ;sVBЩ7Q. ЋnAxR`X4eD,5'V{Wߌ:Ffq#-⡛S˻iG.铌o}6߸21Q*4AڈDyWó̟p߇7ǾaK /2%еĚ+E3GS_[VC>B=Ǯ 47v_/fnol!M "Pm]:k;5V@4/Rl'Fq8ն%t%p%q7<ɯJE &?>'΅0xuu,Mof2~ Qˆpie6+a*tO- w@\uoеo,m[4n4@H]LuYhQ<Wϥ-TmoR賧~51 Bpo`h#^Fk |ב |: 칫0V}G1sC o['ЇR ;% ŀ6϶`h_9VEl(}s/j%]П8ȗJx@hPd0GmⳞ@ mScl7k%D{ P'gBX^@涯[5bs2 .&bWٓʅ7[tQBmljh: v>2l0xd^ vxn;s6sښŬ`z\C٤DkSoӷm Wu~hi9+tQStm=pTlP͓Ϩl2fL2 PX/ÜN2PJM~#֖pKӐ=je%^cboq_$_/[$;s.|ԙ>bY:n3uRA%kP*%n&7PM@4t窺.T %p#-$کӿ D仢փ˛[ZPҌ'2v1j vz&1FOoŊ<,P~ CdLy{bS q|%{abFd48`ҰńruўmS bHm8v{&5{#O̬$̬>Z|m],5 os,&O]zcaϻ)">qZ옜3SӐO,Co.ER j(c%Wߊ+m& m U? ]}=2" zk*^.!Kɲ`.H D;br(iw_7BѨi˿* ~.M"g40ϣMhvѐQ;T3hWJR 'R6H"ctґR:HQI+pt?R=`I â4ۂMg0ND&-dgcm,"TS"TI5}Ԇ$T{DU*n+hU 5]nf LQh`Γ N#af[ssܬش_YMҹ1!ȷ2H^YA Jq\"(V0܋vqAQ~7YlKCK|aܒa{vu#'Z0 dЄ0լ{Vh䳱]Z`[PfDQLrD+*ݦXU8+Cd-}M+ @3|_@;n ASUHv tnEl?wn N]692ca7`&po<8P /$yl]NO7)O;=VsmS7(6> =ĚYّ`ԒǷwnztqgCQ*M}l~i|tڣ!~ ,t\+=Yf'|Ȧq)2{ϥeA>+ԋ]RNRXp1Bn @ CRjR`NI"sn\mܠrp2x W_H[v9|QD6n[;7!%{ j  0TӎG@zE-6#Av+mL0߸QcE01ЂU,سGN )AfY}fΏS[  @U bW8~IfW&"e"֩wMqP#5V8@*8 3r[fXv6{i>ѧj@24zTY]z\Lw>ms+(W3.N߹"?U >ٜXr"d5 5f%{}6Cl( r䬯+8BV{-'7%x J, dԏ +( >#< |l=!XmI, Ӷ @Bֈ)hk[Iu9mPdG}My?~b@1ÿQ@F3 S4 fYEpRpWSm]{B }A^F|Hi)ޡu^VCݮuFɵz 1O MGCYq52{&@ ƺy؉u\u_m͖|JSdz9Tj#Nlm1[G X|=j'^'y jXF\ w4r#=&]VO*Sf7]5W0l50-<݌ry]6jyfdĐC6DP ֊ZJУFj:Ru/3:*؞#=qh4||jQ{J/ *Ԯn(@aP}aL}o\Ӳ7-B M'͈%Y 1Ii!q+@@Cb7]vbXJG(ۉyfup`*e;.j7#Xc%3%R~D=!1aBT)rs-N`kÑ;J9]B&ˁ]FB1F$^g@ \J"! &+>|H[ɳIIżVB@h=a2 }h59]ړO+ԴEi R.~7rX'xiF1݁gT?IMJsxZ{ Qlc MGoؘ+z&(o Q׍Zފ-4HF/CF͒̄QRzTf'O' ޅZ<ềvŖ-s3~6  >Vs{kn1h;#4#_+="/ٿih=ϝe耩|/2{ɱm^BkAQpp;'f*<\mkK)0P@iOTHP^2S܋YBDvL WmKn6+U}S]NoȨ'/'G2`/ C Φw@'M8ʟXDW0y??{췔إ YtOQ_~>uaco]E׍o؞\xo&Cfs.y`WG"#ۮG'ф) g;yДŽ7'3GQN1V4xM2:㝍CE9O?V17ux[*9a e(#WѵrǎD6I|;]iHG6=;Pt ICS$/!X[wн %p]loڦ)篫ڒT_wז.3+`x nCikO- gfVOu*(n> 'ucB1] ͵شg߼c4&;H~˥{iձpyG̼ΞVOIVӺڷf46OP(%_ItaIHaUdٳ6B] |YOh4v'>53-s1Xuɹ߿KVQf}IK b, @}}nhntvUtC0n^$2l˘=~X2z7>O@Hpo ` zL2SveS A2!ݐe!VC] H,%|+-8Tvy_ g塟sؿ Zt nHTY!7zijMdy1~HdjEڀ)t붘R߲'\]dnLy\gWВlAN`0ƑxCvLJ6gqOfht?_&!A` ك x: R!j̏ 6~NnԉQ[M@6XUs5l+E2e;  ]['uPT!D2GH+a-}Z>'хxǕm _Zf=Մm- 3A&Ȕ$HTDp'JnKDKbٓtwL4K ;RiFuoSH!wb9mLb* rB@$hFzdеHJjNyha}ȦNi^' 4#(0qTgHMByyhm43AYC2W8LDh- (KG13"[OfRf6|C?<!Mcp/ n69({x[pE8} 4!LN: IDAT[GКx;Yqk2!u*Ȳہu vd_Ǥ'K+u:/k qo; ۍ,hPr8u|0 i/&0! *=B|ԙWƌsT>ճT8d,g2sհhwZQtmwX1"֨ *ҵ5DPE~*¥jI*B)udHq7:7ѩ?"Ua`C|ƌ׽JpG+? _Yh@0uEx0!sUP*d$1,l:1:ߊwXQMߡ '^ܵ&#[Уfu]A<>I} *L4u`]dsVN!+R㙝^XGt#-xڏ#TO:m& QhBv3xhU-lGZLrhr@=h.;W۲,tÑX#\* %7% WC`A-> ihxZ?"}3KfoҝSecلMA7ڎLvNu騻Rnap7@Vqn=ym؉$:b@&O#I1O'ZX=8cARܤ'mvV ;q~t=hjFa$GԹx :o~9YtؕAɴ{I x5dŸJw7Gpt2}ijMbq7`oɥ7liG Gu2V.}EEn7Uu~:y-#Pw(r+X<Yх7({03 ̓>~𥙝`X}Zi #? FY?iX! ofL3B@VSӮ3WL9ϫt؆4GX#-$s˹PEݱ#W4dw-`:'еh*n@ө.ՀiS@9l)rC~VXV|G6r ІڻL%sB2PM9zǤñ\Z7X&{;0=!J74F-,ZNH.}\Okg؝n 2ƕ: d<0$›48B|o?4<F`+p1!D֨ݰ hSlW#+xc;ߑd3TiΟBlQ|QUoV/yvsuK-]Λ:z_.vaf"?C#T P\/4`tzpo^46O:VboS!ӡp8#c@ "=2{nYZMH^<6  cq}p$t$ݖPlp `PEVEFRWv[S;ZVn3eaCQ~,Z2X@rnZ(WqC/^H% Zs]@Т P l7b#bH'D/(&ǡXG.i <'dONtg(D7Ңdкaj7?[$ hA9@@uˎ'@"x~!_.ūVGD1gpDGO"~wZɣbc)˳A2*V1q}n dr 5&vHcċi9AnH7$t]0LQmSFt^IGr[yѓ*ޮCUTgP =c'"y @.Qh®sD&a0yHv7Lw YAdHF\k9%#Ozq:) .8*p3߬b:jaC `^TRSlly1^mjj\Q`uoԛjw``?(w7ڐ4ֳA)V?^n`Bb`["3}\BbuY\}_t; h12 he|x;!p.`F r6kf?+I9ALljr?SbtT  _9>G!l ԠaP;uP&csS g_WAP5 kvt:}lxKaXf &vsseflLjѳAvm0yFj\VvWOpot̳y%UYQ v{Ds'M2 =؆QdX3)4]_Qc޼oPrU@mx,T]wੲ;t*(#4A9fѥS5~kAwQգ& Gi锺CF _\|sv|7A}bdĈ17au^ahDumzwLХ!)3`vD[ T *CE14b_ӄwtNL1ݓu ۰ MK(=0ɫt2I칷[Ѷ5X "ps}V:?$qw$dT ~۽>YpȦ0Du SACۦ;;,˳ dT+WzbڀjVq'~;O.ь^Tϓit={{exO:0Yi$ZF>غ9G,.ICmڸ򾩅ݎ E1+ű^h 날i(EE WdXu,^6zC2Do:b,y2!-i9Y%0;P _<0J~#5v,w+RqTzقKɋБvM~4[x[) O .Y*Lƿ;B⧛Vd:臧 fUڲ $:`ihX=a!L =3!Ճ|)h6aNOnKP6Oџy5܎vcoO>2/S=luim~҈<: $/ I)aV{c`, JX},Rn&d@3@3@KNLQ>&Ӌx!t/W!x_uk6FL֖77&nž1)N>4d$a@ PQ]iaU6nz!xRv0QEMȯYt򰐫E~ 6x.:(+^JFSPUݎ8vYsoY8Xf65'[35 pfG괼i/<ڗ&s. 0K)vK'\xgb]L7I=v9my6 FR契3=tnD6no P9\,9m;F 1C(8D~a. `]fx! EG`À؊( EOigQ'Ӧuڰ8 @*&)lvMK,x8Xҽv,a[ba,Exb Rdo+D]ze/аc^pmJV9 Q|ph$ X.e% VZF%4~L5a)ީsaZ8AP#5 bfC:KQå Xȉ* ^ ސT.VV(!D t3?Y0S#W!H +^14N|Y}S#8z-(|NN@-L^㚼HB$ H>""Rx+9x_6H:9赚.~JU.Ho[9G;ˇW/&7'(ap+'/ݗ;p6@{X)Lsiv`[6N`iXhyď3R#lkT%_3n9qW-ۑBfVGa`4c*cAXhꐾͽ On$ɲ-="2dUѹAO=I_֋~A/App=IffDHsC,VllY͖-[d;!Qcf[ \Q6ug!jgp}[j )k _A>'m\'Tҋ;YQz239C ji*< R!BJ35,ĵ5*N \D#T@Yh/< w]gam)MT ZXĘj,fb5p\  @>b(G +Ғig$dWi12}ȸGélRcppc+"OL)N8~){115jIAϜu9PdQ\E̩( *4xW< %֔~Dz/9y 1@nf8k:dm< Is ġѳ0TQO챡> Nd%nж-Y$x.6E5+N> pwSƪhp#2T7\h7v=0*쒘f'F@|Y >d(hgT "vE;iyp3Jg!4~df*-!s?UaV.N) J.in|?0݊ZE5JI"f#f`OPja&>@+q[ o w>v^^!wҨ,KK[Z [2Aj3Ox'@cĖz( MɎ{yC˶swu\bkҪ SkH\7m|9҄@ i(]b1r {@Nh02 Yj @?ܣjH?1mG5?@ Y`a`±1h75ohFm ^_nghhM?{hIĤ#8aR̄'4!䎀6Mj;,hc -txk˾kdQI{Fu5Bѱ"y ̔0apXGj*Rm3e=:_:lfoI[Քp5 5f0!3LJ#B2dxR?[uXii8v\ظm9:QM 'E)RxO񘛚_QuAkL X[Ls!E U-9#yZ b#OyKULPurCщ X\ZIc£P'ϟan).v)>R: yDDэ$h׽bكleZ,bvsEIא/rdU Y?~ lf+?3|@ ^LmLAZU)U oYXuc+w)$4h"e J ^b٥)h*iﯹck`Pl/ ;Y3˿ R*I?%} f`-®ŚDXH &&`H1|i?OoDR.g(|2gjk{c[v[}0>M -0x$YJD)@Zi+x/ @!F24RDE}U=# #@Ux:\XjW, <;4 ]NG<(P5JK%fg_7|Rtۃ65LaCg`GfS#QvT.`KR2-le"4V5pKGEp{$7]6[8{ E7Je0*O֧/1d)'x3tp@񬠿}Lg SݲS6p4} w qC+q8t/6c?<fGaBmIOu^c8[,y`) '/F1D//i_ݸצ$oQ[i:!i,LWLȞ G NSj 7@its|W LhcaƎ/ǒf.xn/)ff/ tU[7WݤYP0` 8Ԍ3r!fEֲtpkbm335HAWeK\xd2=mWG5ŰZsfq#_C@JH-x=i ,^lM $|n<vOG*pq14_dIaQPPJ* HLEK: i䆵 |t+.d \*Mއg6 UR ]:_ӳSvPN Дo==ǹYX5<rT ˁp2e0ʦ%LzZ$8BQbp ޡ~6`7@=#40 <طr38yXK揄 oِ ƒRMndi̖A#_BjJ9ACr9_SSd-6?3K#Β!zb՟~# oCPԗSc!4 $7[;t 54&W?~J(ޏҲU7( +K 3FN :#VK5Wii`P54xPAAM!`!XJQKih>A?d'*jy 0)20 c?~Й?N줥5L fk2ldd[_O}悌limV=pZ-fwk}qrNǶIa'rg~~ΨdZ9"aN&gxf&ӳjfG'T>:waYÿ>8d~qR0f'Yl:qj473/ZYyY0S)L m f D8."9g=3{rKnݻtWTS˶/ ;c[\sSu T(\Xܙs8Ho{9KkYpM')11#ICKc[Jc0`r:&eLr!5VKhV)6yu?dp'1˘'gjt%;n0|mBpȈxɱR- Y'>,L\iK ΗbS-t~t*E?x #@Xl_Jhz~=[y'B%=Mvޣ,UIcoCA4rc*4,$oұߢ;xaŌsd$;>r}6Z57 yc0FNf'5C}} >.|9vs_n,6ɽx"@W&=|Vɬ+,uZ}Ujodxpڡkz`>G} _ԤKH*.2yXgfUww—*B%:Pķ;\k(?!c{jhZSY=fNKug;v2tG#ϚJGop)TOI&{֌=L rzswMgHX67N82i[lTҤ&o5X.W<1])#?{5e^mk۲H:.o5wf[ؔSOI߱T,*L$ sE95|O6c @gGyU_'!ݗ A0gűi婴&z>oJ|^WL0PbO'?㑦v8.afI՚HQIF3}g"TE͟٨y )uV {F!o7# 8gn+y %1Ƨ;vB89j^(n4w8D|=z)Tt l/L7Q@dK7L}#Kmo H/4=|`l]nZSKhU_olxl3y!-y%[7E}al(jMt&Kr${`4lŊ]2AVd'ߴcEU,Y+/Bz5meT6 kk#*st̮XʹMR'>sl}DqNvD5t#qٕJ/;lEM߭T>WvYt`PmGVH3rCfyްܲ6@NdCR%IPCsX9BgnktGskx sA~G /צ+{p̤;$@f`i rZ|',lRR8vWF5x̖(/ 6{S[ Yeյ~O//}ńPjmf_7dcyZ ?kmxɬ%FgeQlkɁtrT{T"(Wb ef9|udI*&UW6m\ebݵNȼ+AoT<ӣne#CH=pfZ@k*]:V=ՌJl:'U}FB⧬g'.=tYॆeOoh-E)x !9/sϕӢBz6sjL򛮎k&3U)7AhiuYY{GgNŵX{i}bV"&|yS:? 4rսkMW]w4~緆%tK+ug{#Ţ^cfO[񗾸fPh$,-3V:HeTJN;)v,t)m.+΁*u ,NU(=j[j|Ort$XV mX#VU,g'ꜞa!#%)w wEsaU%ڮk~UE|a130\2: _J+1a %iFFQN7>A{%,Y+-2{^_gȧ>ڍ4ԳQdV%FT&[J՝7*sPg'(P/Q+Zv/|l:6ﴋ (]|`}{N/4)lAz1rO\m*Nd:}vvmB: k=ːqPq#NHMr};F.V; q/g$}h$>{f P?X?m1 IDATv1|o͉958!ad1B&R`%PsC>8 {NWBR4uJ*=kT mg%e,KtohY)6v>K_:H҇tG:l+@F-kȝ 5u-*5kFe₎톑|%)dN$gȷJ8T=d#);.kw*۩ '98%^+eZF a*ntt7E@N"5 *r:BZ&O]VxHo/C53k6IDGYpgu>a^QG"ȕϫjx{_9 ͞g^(a cT"߭5J4kHX _Ԗ+ )0l̊h0? +MEˁV#4BuTR$gO\w^˞Ɇ ;]nhcrLzӵ96[ߌo27ϔ{Z$jm'+f XJAB. }>R+A8'Vo1= 4Qig(f VV5 /h7Nɋ܉z??W!ʖ `L1OH懁әwlݺ@$Nxm*5"AU})e]aޘyAN2 ] $譈#V Lh`rH3 IҼ{NK&c]ޗyV'l P;rm8z$|#E\{ƴ!^FSCE)yea Q5;W^;,癑%$Y|:2f6&ɛr762ҰPuy|^+5pȘ4]-\!/)U6z-65 :('{-p^'3NU$U)♼G->Hl<]]'155;4dpZ ;ղӛ%U\$%f(wbXi PX&f7=fddԗYMɔRn+pdʞqnphZxu_1KA5̮sOU+}ĕ>1/@s >h둕O'.WwbPǪTYۑ%#lX h ILЄ[sVќ̩'PÒ5[u'xn9Q%YodyQ{PlU*2;ι aJ6ϢbÑu嘇.v,Wuܜ6WGiv4P,zhooA `hX":?'HǶ%PEE>CmrshYٹ_8=m:ّRkai78Po|@tGlfYS܍rvd$#|iu%ߝVyT5Җ gsDh_f-TC[rOCe*ƭ|#?^O\-Y[4ԒӴjkwj OT3eR1bs ,'xyndp퉃l^ьh)kk;zPJ(p4?yF:9/~%]$N6݁>7Z`.-#ۿ3cXS=WLg> ;EN̳K5e#ꩴ,w2}2i퓛r+lGȳX0ʬZk HΆUCi5&5k|úK*ˮ&%މ*7GJpγg;z@NTڲ P(Ļx)E|NvWxf}۬OW']-=lw҅߯pta4'(<_5c|_;W"8$%=`!k}ΒW@"0c;6dKw=i)6=$,q ymp(M%.+bL ]:)S1KrbS'FLXұ6푳S:((_֌<ư@M|mc@˓C)%Nd[6Q^d'5^&}C7M)i>3q8,T)&)¥k3K|V QeF3Ԉ~Q!ah*, ;V6Mxiod;" CM` W4Pe9̻JObVd Vix]'z(;|?r5GaDb±C:4aͭ%OO0@kidZRP tCD}U9CjJaO(K XOdRJϬa7O͐n>P3 r{lrIi(),G%IUL̒Qj nW'348PNbc%d[S__ad]vOn WYZ6;')#fGحCBAs4#Ky]QEZq+RDw݂Ti% GDF6gG O"w,k#uԾC|:jܯYjoxi6# ޙr"6OGAҰBrB Ѭ&t&[cyC/)ŷ0>m*)?/fX'Ҙ)G%}<o8qTܧq GjiIʐ⹤q NJ~bKH@? Xn|GotQ5Z@uK7|c_SOhՃ< [W^+:30U*[:ȧw$ql(0w>]dvH L{&M20JU1 lvGu[p~'|gj#,:iO$6=.`k$ցFc yZ,uR"@I=~cgdvr`fô6lh]YmJYc}K*:W>F#syp׉jC=DvXBFw =K@X[)KM*,}ciwٶL3eN&X<4RfxU`K[5|t) Y6W䡼;ҏJ2`ef7d9J[*ЪS-@o%ؘ3 2䘐 +2ZLc6FR3 ޶]#/k a:E~XT/mokWr&(MNjl:?VAr_ꉃ[RZY^ k5d&͙pmC1 .FuάRxY=\&Nu~^ɏٱ(}ꙙ.e??Msf^mnjF \v?q*f\6ߙvu3A']b=DnPT7/R,P-O~rR:=ΠiBG bA4u͞3Sp]T @1"3 N;_7| J+ݲBt=Ԗs-ů~bXϼZЄZi{9P׉MlbTɀs jp('ps: d2Ҹ?eum>'H♭i3ePjد˄9kszcbzӧyfhRSJ'bSkN.w]5o$Τg=}k7ZNҘ,)Mf.|y0`C?Q M*{.j/p+<ڲ uaC`+rG4euk[:/ym%9S&#lƫ,yfUNf^ ^ihKkrj,kM059/Ms\gIS{;rU={ xcưFWU0a;/E3քqbOPD!:>qdvY]P)~|\ KuOg"UJ6cY[ =زM!\n&/6y IJgbB.Lgq3Xlnxs7gꧪK̆\MN;ѴNe 5a ;NC{evFĨp':M߷u@wW^e_:,h˱"[^vAk%7"$K;G.F xRU0E ٲA LJ 6#/??.Fu-NiFQ?nG֬&,I[Z8'* ψA )`.nX[̦T;50n/NVX"-D|+);󕿧(! 3N 1pv9Z~3{ţ莰j= {yb¥ּ%~oV^pOek_cLerGw'iWk?>E%LZsf_=\[qLs\ \}Jy-hSEX( te8r!YuL ag:!,+|GE˺)hJji$y9\)iܨ)^jɞ ΏFx̙%IkmW jϋT43#;:C! KZ+}){TfxlBʷ x:PY׳)86<*A\=F^F I裨2D;ol}"8ZtdM;U{Li]NܔlľB7ΰ02{xeW:q7D:\l xy"F.[-_6+e|X+Vfx$s ,x Ck8+!F 'C3Bf FX;D1,T*gxO^ 3&^e1o&k.;uZ3'Xh$wk^K.;w(<ϕ*G4Ju +:5$鵲>Z|5Wm+\q7X)Jg}~^:M$4&+|n ǀM;$l%xNExaHU`?ד}T8*l_IPWl`^ll;p8`?ADx)(XJ\F(ndQT)̦֠ʍ&)M.{Fl^ytl 2.[z^ZSpzFr^=c}UF#Aځ3%.T`RRQy m-M;\էw7ɝT6{&Zߠ%2ɋESp\"3m?)J׆4HdyP—,@O1vz;9,ʪ]R@"jM qeںQv˵wrS|g+{#*Z=4H<"h4 ŜfDuh4l LC:ɪ;<+,2.9W";Q.+ ކa]&bsB1,5ґ<]v XO4VczE<_=- iy8z5)I&` ,o#sfA|V9J8.K?WIGyƆ&}4`?03ZɹJo]`>s-{rZ, e3 /7|&b I[E UvEّKԔXq#˪ˮYP޳A:7/2㨒))xetFp ͑7+rEJn/Xb)2_{ӊ&ZIf+p]:l*pp(İFAaUU'G>SXXg8ɦ>|oj[~E糿#g% ۯ=Q6"'Q$%,xKāpTJ&U҄CfP5Š.FSu$BGZLL/EO-9(ݒTlr:d]<{3 j*~ ,Cr|4*'QqKVy`2ٹs [)~%$ܶ #k"^ JyYܓV󉓰֭N),!'ùVKѫY6R{JԡY?ZtRBdQ%t P1YVtҝ{aMᥟ2喰O3 [6o WqW<|_,TqҒ@;|?'N$WdNzHOQn:0Iɕ)Avb",;.6!#+qP#OD$~PFnkaQJA,hDXh HDOK!-$fm_9#zTz w-RJ-9g=-52yh t2$Y948guܶ.WؓIzj:@+q`5/gZJn[w4vl2O "DD82|T/$A' 1}X!W8I9M=0pxY+IUX_3#G?冉T fӂE:QwÎ+e+e)y)43R?w3l.޳K˜3NmB_x1/0s8YΜ#%yA#Vrhӹ%TBQ:"iV8o~ M`fe7h"U`%RoDM?;4`l摶,UkɈ -'"xfKv /ǽyb(a%Ӷp8WC_u@2Q"d[;ÿ1؉KiRa9ϸVWMG dbdzvԉu3qnh{VV?@S W,0{Ё@ӡg9vkq;fu*)yK~2O>%յ=d?_X*<Էy-'N_ (F@r]Ê+?AsOCK/`]wfVe `4Fei(ԐVQYLWk2j#GkZޭy(RIXiٝ/eN^0+ 3 d/y^QP#I%"H^xv6u`"2`b(^ *)|U:[fttq=UiA$Po೶I\,Khsa$ski:98]!nr|꿀[vBbO82Eo=ܬ3OKtO|Tc d#f3bV͗gJiY7r%ɶjOV(O6s UO\1FvǴ= ~Nya)8TOoi6N3ss%H^=FOhiBG'3H~\S'`-v>gϖ70d 9}C3qYwk݂,u2%i0d=@5ІMpOT8c5yjҕ$yk/gnۯRRiOV^.1<|hG/%DW !3T}} ɫDLl> tb:mWďMv P GA κ˃O4˭HgA6Xir`;0}㪧Ĝ~tG_t5P둹X˳TonO V0f](X# s9?.~p?ST\m"wn:8R`NͲA)]"%VQ6 Mjz|x=lAE/^Ly_\u+/Vs|0Lk8gd\]?dr^sɸD@+O{9Vw03X˱DWwoS1PW7a~ϑ^tZg gvdw :Y r‘CFSg=7|!Rcz3)_&77,ηϲy)D֡6J P)*I>pW\QC϶X{$whOvY" $D5Ԡ-Y\) ҡ^!J̰6 #~ AD򌄗ͮt-uv0F)Cy*k]ܐ4(HD&ϠxdۑԼcz3N=<料R*I##籤>RGb+dYYSoW/&#Jcc`!x>]q_~◒k + $3͗{IGo'3=b֘`%Rin乾2udڛo2%ldbW/dOγLn2-=3^7d73. φ{7c[CCstm4}4fˊ)Y"5Pvn% 9 *0{hC@ϒ?tvf3<=,n^s-kf?Ʒ_KD µd֮lh0d%MeKv/>odoS ȣ[;xۗ&n,9~fTKA i_՘6;vӝ{a%®éPBzE pCӿ _2;&mOάg,'pR~Pb{7KБs *T{dUKKKVfxT=m |;jn׷fP~Bm{\kise 6ڟJCQxLE!s1xppQk; e5i>$|.j^  /5}ujW`_h?m\Œj\;B~6V,T& Iuv'~Prټ"YkW<ň{Q/ gެּ]dQ; eזlCe-w }28@4ne{"d_u^ D[ ķ.u4rwCD8gw$y2/)WPy$Pɵ\h>+|z˦<g#ª@F@Fӡ۽ 4H C IDATMN~_ BlsNœ5U/)SDݗQ,"U_,)) u"&RFу yFGo߮T4nC:>LE$R`gcrHx1 sǰLE7EY6щd/ oM\C]gZP}5G`_-Crǫu  B2zvYkF.-TbaxV%I DQ< if2EI/ d˻¨Kp;e#U]'hl"2$<2\:<20qZ~(0wf7-|%$Ϡ&r=_A\;UtuS' k|/ A |SDtSH3 C=둙 ,ܖ.[{xطgvKJ ڳ웅X\0FH_e{~-&քdT?@N)329.F7mG rNbSЉ3ybyKajj9`U6*0)wq4/)s+J83o"~mgtSEt?<}KCjCdf{uP3MWu_{$OXMΓ7EDP|NjVޞP2Юv𒷂ܵ_4A7n_$@i8 DvE<9ܥF?"j5sF?Nk0Ҟ ? /%cj[v&wZHr_G8*{G}><}{wa8.Uk#yP{ga߂áغp8 0iXٸ܇e__.3pI՘|-i<_. 9+X{7 *8{n~<oxHS5w4i\F(X. HVHQ4^vc9^F͡^ܚȋ <&_ΉN I> <#Zk 5854C=2y[ה̹$sHJxII\C7V;&Me,`Md3ZnO?"iR zΥG<%Ƶh+?#l~J=,W[,GBދt7{2LT$^ ^OEYQK#H#)X'n8j;\axZzCO%"9ղP:} XnUNi:h;H~&sǾ']{!F>1Z^톣[!+\cQ7/fiHu ۑ#7?-.yeN5JnUCR}xIjfO@8*UU#4,s|4yRWRᕴpwEtUHFIB)W2ma:NP@P .YTXLdrБhNR%Lj]Uj? GT챀ZV p ,l& xX(#|:YmKOW$]4JIw$nD搙<A`3I7DOfYf`Ǐ^fDHm4$m& ~GCySPb2MW)uNT*؋t Hn-߭eP&-(9T~<?3]0= 哂ȌLZᶯ[eރ +ۉDGL:技}%8u *{ @ʰ;S^~L_>[hߡ21NF"}/_9?ʕDܑd {Zl9ޜ7{ ^~]Y@7rVHF.:ƌ8I) G>y!Z>+2F<MGڎ%Q_|@~xSaƍZf].]Ko&ĠVŒ'TIwKm /5NQ EHP^ȣtVi`&JH,YR Aʗĩ!n:G ~}1JK Ogra|<<p/<"jd2qTę%rUa%f2 \үIXTB)LrՋ<#`JBd.`i)"Whb -׆.U4v%1L2y]j#KYCseY(B xR8<@6{%r|{9'n8Wѣݼgdwy%rW1X *'iRfȤ |v"-$7۶It`J?}ue^h'_~x|ѵK^FӾHj5IQտ\7nbV#P )E2&I0d߾@ܙnٟ1i"?U-{;BEMaq0XNJuF.d?.'o.E(We'?W oJ6^C@9Y۸\̮֨Q{m6ZuRŕ5s@ԧ˄Y(Tg~3|{׭5c,^2< ^1! R[ #QI{Sӗ=\3Vu\A\uԧ¼T'c/ed=TGډs-dyCIH. SyA$u6{\>?;8 ݷo. 8_<M^Yq"$YIpS f$}5* 鋤y)'1x8w1]^ *ì@2ދ}UAZ#QnT8 coc'դ݁OէSlWVc:~x',qԆ r7ԪjԺFmascH!s=g/N2#| Dܻ+L%;# ~:O듇~~}ǮG| 2˽"ooJg .+;hzF46rӨT {!S.uDhUyo(Axgwg/#_H0Nt9 i|};E<'|/MR꩕ m yCV}ĄuDQˍl?pW! }DQMǗ#,:dO\6nپb3yO?|bzT =1Yi^;O@˻v2[{V)yO>~7)Z =_?vmDޘvWj!VFaiTaa/Z/UWA?k~{4qH=+6RF]8!<AzӺO4r~ܬS޾iY 4/<sp5P%|?>' .Pp۩K?C}/kC u.rNnN^I_e ̑e}EWCiB2PLO!_nKS Hvfd䴔B\!`W׷Mz&3+1@ި85]n+ В)<ӛQdngB@@g}'QGF؄W-E:'J 58GTy>=*4B-8]6V.GhڅW?ep06ͯ U^s|qZ ѢjpM5%QBCrxy}S{,(q@!nǣ}EϷ6׉#MA{/gnHJF,#mzudLItg֔NHKR8Pf%M$ւl\%"W:mctU GaOHUed0mAP6lFMw$Lߊ]&<)zcj IDAT5/7mM{xcN\&ͫ/j"y4EI:̶Y dNXyOgp}IN=0J3(Ijk٘&dA~ѥtuL}r xwDw{Z(i&]2:ͪIN@;UI5LY*`Tkvtd/q+͕hJe"{u&1J9{*cH8lJ%NTvA ',H&!8 .0"{͡rG9BT^s;8J:<#ą$R9Uo8Yi8.!ZHQWDf5j&  "BmnyMdV#N!4N&򼶈|?xAw˞]Y|_y$<75ŜdqKw5~S4ld͚ݻ#f Կ<x ,qOf<ɕ}"L7 P)Is'΀ jԈ3 ͼ0ϙR!uU]̋aU0=੦8n- jf"E2=#x\V߭O|jԹ eZ_\|wM )Xx)v wcѾ]HeQ6"%}`euf :"h\sB<-"%0PX5jEB@P.0jIcɱ$ xAjQh,l>rkGnG$g=xZhM^+mw63r?[c:ƨ]?&IGʥD9 y$*ɝy| M_*W/J6T3B-4GBFle}܍դ-l4Rd2}T7L=?ls0Dg#Ip& )HeEБzI'т4Qhbl~@1ZEHVy.-q2(aDBKEH. eT9seD~,u7;(Dޘȴ*+XA硢!Nj\J›1k'M}\;D'mr9Ц.n328pG8S /VjGq7($=oo7~$X=w[$ _Kso[ϓHk/!KoPD wBdJ!s9EFwmxJN±r@ЍG&lbO/|?ڿKqC_3,wNbyBSMZI8F@Ъ'ELg3V&rpx;.վj<ķԥ%x Fk$b&M<,v"2 '1fJgP04ppV6kWG^m~t%kVWHH֓Gd\SZm29DSH?L'XqAfR2X+B~} /74i'oxO3nw:* Lk\ANCFqLr]*diT{uk !Y>f ? #c> 0Gf Vd_dy4/KSU*=ɫ}BKaR~}3>o⫎@"u_<@O䷎<,N&*uH@f꩜f9ᗒ]YD"HCwkxsg!ϨޖT烷 mk56Fvb}e>h0@$ _RWp*,eD'&b#;hJ=kk2n>-X0;Q .kum{c)N`Ҡ8u!3gnL7:!K5h;FC=h#?A݃#yi].iT4huXmu2}cW 1WԂTRGuHXk"8&ݣ?F/UZU6O"pl=oh.HߜmIYo?L : Q/kR2K~Q˂Mwy])栱hH:Ca:M۲{CPtePQ.l<\RDBeg?U#!NdyƝn'g#?ꤏ,?e9^x~}oͧ Pduݢx ~4M;(No&˼JE=]h8~*guU-49/84)΄\˘1_:wA@C9gǰw>LvK ts.@6 좎ag ًGռnϊ[tyJܱEG&6j'QIo7oFCEks07ZbkSXG5Q9=z)ˁ j3̒7bDَ; N>k\zMfGܻphHþd$ƕ}Fuc64o](O{vMF!s_3qFuY5pD@6) ^ư-ڼBF=~7e;qĊE-hthfD:*E5P Z9MݶCMHf0`56KAu E9듸ͭ *6}qL0E&3%qhx 7E j)DڷihY vԼӫKՀ3 a Ũ~¥\X0;SB.m*%W*Յ '-ܧ~¥0f3/XuvP2%3__Fު%g{5jP"q f5I}=șBhiRJ}|IKd>]7o3#FV= ,T@4SQ z2U' i -h:uXsC͖r+qdh VlʎymCBfA-jZ.P$Nv-8lR?%Ϛl72sXm W@a6wA%ladBMZ@4p@$mU1\ EZ8&xX~)gp>(b,:9}IB(uXɋ@şXAYzK]D-r!*,%HdLQv؀&S{ "ȩskp3t]9n%񟠹#7&QAآtޕYU"')q6-$1wW56βV&"HgX }UI;4tRAyyZ۔خrCj_Hhr)?ɶy9@/{rYѣ uw*e R>S[3G{OpEEK(^9bj~kՋ(AE)?95AAX| v{f ^0sP+8ʲAB$P#M6j0[4V/su](uḷ1e`F6.#ש4vxI8wM~0*riNZ48)$cX]Es !oXjX۹]Us-x#ϛUHiNy&#:mܹ<@iҞBۢjs_ U 6:$I o8li)# Pg/ÔzzߧG2s(Mn"# I|Pg]9q'xCa@G/ժk-ZOߑ Y;bQE>HxGX]nRs4tbRՉG5x&Jh6-sq$ښ59/G.pCev@Ҧ_#dE]7 I pq_F!u. 8ܟZ%Ÿ_ᄭR,=쫟 Y#9eر4.SLs$֐o(JkrMM2iTL4/U@Gfb1oy90JX 6#, /dr<įL513l?I5M IDATsD8jIhr0d-)P+b8s'@ Z925p#~Xp Dh蛢>ۉ%0r/\R^`p-Ӛ`hIWEm _$:fvSaE58}mj,[9 #/r8M)$>g irdbH1k(E.t}fi(961v`K7tkʑ[oH3,к@䢀tt& ndzl6?O=?Zb#ežވFm0ѭmX):=b*GR鏃Hp9f:dffW;hWc4.K2~$U֝C; 78ANq#_M7hQ5tf27"E:l!jLDje᳓)1njh:߫uNb6(q!mjœ!VIyDu‘;N\-f)cyH?÷ ˾~~~S\}O Pߴ~2+(u&AGѯ0t9At9j|7 Bn{6 0Kvpksqr72ʱmBPrZ#OwzFto`qs<⺬+qZrZ7e|Z;-RzB5 {[wWaR) 8>Dr#5R2 #u]& x#xm'.b%(Jv?~Xt^Jh8|K2+jg"7(="[O~+ ? #gbpG7P%lu4BQ@;Ų>J.eAIo/Dp5\3`Qozñj4F*#L[hgKV>bc|9ϦUŹ٧~ag$٥$t OqU>Eo@ïgEs;pĆ7+wp,o.rP1<9iRoARTNN17K@.Bx9!15;H=7!Z$G'k M4_ bI"OV >3|#wƗcw6? (g.X@Tkx2FGH鵖q=IjGu~R|-@6e:w4"|qi4{6,xC 85]0.Զ0.sA.T B޷"3)w.8x:G+f~̋\b} @Wsn*vnvFȾb2ls&+j&pÆǏǎ졐yukd ^U\# T a5OPʙ3`t=ע]԰M*x2 \u=gzNQ%r|qfʲH+Y頡Fg:߇A# oeG:  qm0eӏ8gRb> ]kA;r_ER,X/?/[EM0~-[4 9,."CRMm`Ax=:w·]$@^rrd{s_HA lśw 95IgjM.|P䰦)paڪ0(٫ԋڢ*}N[2*.\;M3[~ϞE]Er+5-Dj6 8Gx &;Kk2hdF} Hq65jY.<]ęKOd{E+j_) k]vyX¿c %:[Q,]U *i$›j.ߓ$IM,7SAm;&F5FO%g:QL%+=9!ر$n`^X,iHqgBxJխo`&#E78Ps:kJ47o~^/G{`+ NM`YB(YHtsBv2oEbKIWWޯYh/qhLVPƴ,֛`qA 4kb\z1(ՙ \+%K,[*ͫ;oEרyXiB/-}p*Ypz"?hU>+aܜdKDϿad Y\&ﭿ3#{W smo&:jι 1MWv )j=_No M WR,{'Qig_ 8<»XF#dV Y^Y&-S\8S"4{[-]F9؈c.[fؿ[/RC0աL,4 ͉o\8OZΞ|!(U6؃TF*bfId$8~J+r5D^8 pE275+ :V:Ggnى`h^S+$?`m0'3Z(ͯS+UKqChWfoEB_aa@OH:EeDnc}-`Kj7G,&3C2h-Oč[d,ZӶ L/;;l[F1?V?a9Gsq._"]"TM:f7.H:d2Ѝy"^q{q;q: h14ӎҽS>l^ Ǐ9⸚GBNUirDLAr ͋in}{K;<LўPF7L*yG*f٤e{¡r tEћJ4nv&za[-)wƠy;[+|dW,ֿ,k8ʤwylED!)>tIbʌzQܐnNo,@Ψ/lnis& =_?2ϣsxYOFrem]p.A09U_LO9f^>iXIqftKE4sr*NKYԚL&%'[}ӾA-­Z /kܤnWq &!#$skJYCc=IίDۆuW&"odW6ޖM ٷh=v.݆bfKMoF=ޟWr񯼔j+c4Qztq}8I|, R]737,<cG̑tF^D" ${)ӭh/!"K}d Ɉ2clODPZ2R_+9;qẄ́":PZѰ99 ?zr^Ed <a_F!O+R3N:M@G^L_Mp?:g-o#n9S+h(Um~QTcuR~٥Daϔnv6^Z]k2dJ|q.?[JDQv13&kɀoKgJn,U0B.=^S&P-Þ8˥3LH%>*lXg<O eNN3,Fb-V6ߖ-}}ydۂ(e?,=j>qwsKS\~B鐦~bK;PDNZ;vVJjm?=jT ( JK9b˚Y" 5 >}בr77pհ&ۈsnvhn^Gn'mN:82r"0~\1]1-!Q#fI|ϻu7{r;Th9@tpwx֙h^퐹zs4@-'?E>_ ˒б`:B|I\~هX[ptPf־Kz %ifqfunFc^|vx9(RG~D!N<.= IDATĉ~Ur^qz,k2jQ4rn4i܎CWm?ڞDWܥyN3=}0x[ RpzX%΂w(nIs\k,/ŏ/n+ ہ,Q@rW2Z+{xfW`lRE-W1DG'GoW7@3ܤ^g8'i}zH ߰4>Rxky'_g'FQ{j  |La:y5]K9 G~e8R$bd,Kٶ)b]gEG{?"v tZxyT4^ RXjs~<  odfvjaHӭ{|jH\ԀKfEۛvlHتG^e%D.i*:gk_ؙǙpr d؍wSmJ{+QMr;_ivHootR#G(iW7lKc1:2~^M?M";!T+h*ɗɨ,uA9B!u, Lie\ۚ5G>lwtɖ[3pϤyvq{ X [ǐ[^[q d F,N{( y+/_'Sk40fviUbY4Gꭴ]'?+Y'm-O/w_cF5gw A966>j&4~q(K}`ܙn,6Ќ_)C⢻W|~gUP8l)l/Sh ;:d=71ɮft)󆍙?I\)z:‘d].dYs2kU::skIVKMHvuAf3X|?Sn4==8QD+neȂG洴I"|E4Im s4# *Z#IN6vEp,&C1kahF^ ۚn>#-rށ"%ka.QY'tnyQuigg&Ȍ./R.*Tdr!AA;.DA-|K{jta6ˎYD~ Zw֎ކtV6˚4T,A(y`$]!c;.kZYLVrAn%'c6@#F>~#_%MZ8x_h`X PQ̒%pT!싾h 1s0lg|!ZRȟ57rV[)|i <@ƈC1ڮ{#=տ#wײ3v+Z"IļJ`u pQ;}#g kz$=tBoPsl'Th5Y:atc1^gS)3O [J+ʺ=((B8m>p߸C se 9\4ڍNi:~؇x**pXQ ^9CHx,8Ŏ軘+˻]4~ӜZ'$NUCBw"GW747#CcFi^_FEUGf|Y]=|+뿣{QU=2rPg pq 9Gy ξL<"vg箲,OzcR;dwXm ]oN,l8!^~eMsET 2K:|Cݱ inS1ߴKyANpHSkDZ-PV9CL]:S;|,ZyQYI{iS{QxeNt%8տ^/:=Z#@It {K2io ]y@n/pyrt& ^lo[RG|^ߎ17*[@#OgΝ!4Fr<mh [z!JF!~{kl-^K] \T%#VY"I^oH;,'s{d'/RP# ;coZu(pbkn5Îא "!ٽï%iჺdl'xW0'7[_,@< 8 h79Xo퓼>7{(ۡ嫷nRG[>2*|a482@_8=l`^AIƌFjЖl сD9=ic-כRep cx ߈^}wJq0JΙKcVӖOu\"{ vS7i1]m #ooឋh7a[2"p&>:94T;+@y3#ݔ}&|JUܢ؇v!DR;}ΓYNyŵ/ՙ]. \|t_r(r;0,D*Z]H6UG>4mcHD"q3N,s.WPy&tg ex^1wݴyٯ{(Q~m z$h:}s Ս6gtG_7u% ::=VԜ;| ubU<پj^ٮzsf\l_#N K"}=r/ `dKT> }^P:{{zJ8Um>?Bqk҉͢]?|yeH07rԿ.8'l$Z#H*^G@6qxs3Є޷$r/)4"aMA7-y^=cѦ'>{XU~;9ɠf@x4duLGZ2wGE#O<Ӵd?SdJ%ib2Ur&SNk] ecXgK0gɈ<(eV9Ż.F\'l%$ (ZV'afs:Fn8al9UגE3 n{߿|9$0VY{9B@ooP[¸!kAChӈY];>'KqNQ;Xl@JIiY/ ;@ mX?*uA6Sc1ܡ,:XBht|P =Ɇe\[YDq{A{1siee{Q.,xT87&G9}a$$pֲUp:ԥ3W2uz;A“x=$r 8hgy]WtRCfov=I,%DuV7g5@#Fjo.BT"5URZO;ůgējf9!:XKGx/2}0wBJp]ؕlMZW5Yv{L\e>ݫTv. WW kec t6=^l0 |~ 4R^vXܓ>޸{qX.O@4?!,Зm/> |WnyI sbodCzVNnO<Q~+2樏cniU:?o\2@oxF ɤnaF4N׀| w8jp=,f6vNUװ]WEfȮ^ /SZSE3Em@}qL"`*-|}ףʑGH3߿zY<)٨O'7Zd8vJU"Ɩ#GJV~#zPHd>!CgdsY6jx#gz:8uUx; rHvԟ-7#uoT䥬Ƣ%Y*7JCͯ>R%ĥੋ H^?7 ?QɆ'Eo(ui9&i޼^|[./x.>K.=w鳱s 6̀+rꂘyntr}BA׍ڙGY/hs&ƭlm8SǕ̜k kWQ`h8?N%&%𫼂+ixЯk:l?^][jutܿŽץgҪoP=+4Z.Dq#~r7Vj<ù&hT> WനDeHO%0l~ؓXJ̌Ź [ayJV59}\q%|tN?* B$Z ٶ<'Op]^ *'ߐ]hIm֊2e4 #ڏW:$^;[Ci;X]Kzc]s!g%O{cDf\wYnw87:*F'q% g@e8u?nxKu[k"F7+"'nnk_ΐ'!|Gԕ5Y=1kO/ c+ŨR WYEbn~Aj@{+WEMvı^K&qL'!\4g`Wmʜ.yKyӖ GK'o:dG-,~yN7_ sjV0='=/3ĕޝ+&E{ ?9ZVζ[t]? e:-vٝy1Fؕ}ӈPaKIARyg9 L.Ak쯊O'&,|"EshƢ\/y1k?Zl'v`p3䍐fi/Iwʕw۩qq"ck^^yy+uL&Uq-_KX3kQ; [JCZh)27ypjY`2 {.NFZ9?l:u4Ou UmA՛yݩ(6~j^lQY8WY g*wڜ9{;@/|g=(fx1џx Yd9yA@Ћ jpiDfU訍u"Ъx1vf0>c2m( 83"rH//[=G}^QYTb#OF5HI "IyHLE葮cL2742.u"*!\]P=N20*sv-16Tu, DwKgwRie}bh{75X]^s~&^K)%#6Xcf:^kiQ8SI$_rz^$I<qFqylZաSWXAa?T"Rv C E SMh;pHg G9MeVWNbNҭ(M|3ug.o2TK7<1<*,>B4K_t lǫxDv߿$NOcVW.;b}<v}Ryؒ⳼/ "X,E-[|':ɶ31w>D:N$=xXk o^wLc| G -tKxԎ??5{< -+Cz$l|ۘԙW-"St|sC<(h~6 l $duYd :cx]@|0:^{ګf{[_mX:qՉ]D®Ijafv,窸pc~Ve 1wJ:ycDžb5;=#%?+wjdDfO*pP dxAσs]mpҋq]6dDd$nԏqw_#Q4X *-ZR|-+t&DF 8HӓԄ`W`_;#|ψ27[6k5 7*"N`+@!cXfE S>Y<, a0}Ok~8 ̲/*4TkY/U@6bM:8*kX9h@MǺh`Fi ,RPQ.:|<5 Fˀ23iSYd"4JI pMܝ+u5rHK# ȝBքe#ZCqn pbG! ֫}rcYA~x|Gf?~7.l$UmZ8H\Y 﨧 _d?;~lؾzIAS\vAlwCn|ͫC7%9R)E>pI0D;~} Gqae3Zc(P9\bIN\(A|f]GBAؽ7N" BX9 ?kJ i3PVoEk`}Ft쓦6ůK룚@c)YZ"Z\h]OrϓB?ʣ…`uDd$=zm\Ajt,JU3i~8^D4 HgN5VQz ؾ Zo\8n}*awںӍ5ho,0Eq{{YA BCTO+3DYt81 б ";xpeVFYˇAΔ7] An> U`v+ !vfI, x,eO׋",gJ, ͏UɻGPZ{ZYpf v+ OPrLGC\8Mv djksԪ͈fal,cW:su6}u(7PR"j4xT_1 Be.e:"֡ ?>`KO->:p M:]BRm(OB yߍ<{EwP3HI-9^p`y-Bq]Z+L# #z"Ua7vf4jH^r_Y0]  Esu#D&[q ڻ~eyh:AbE%E?82K}O/]ZW_Q:2b/ Mv!~mgM*q*/tGbAnO !T /r K$3Rk[Jong(<@t.ŊGL:躑&6V=<}^'Zf2£! toTKE&vKe8 *p0ΎH,_ߴF.vă4zv:.R.cT'H:@t"'Ѐ*G)65JI9>!=}kUu@d;v4{Ir"sx49:] _:xrI+eM!)5(:h+n P#[5Ɗja#c^.v|#Z fhROM 4ҥ7d $x+Pt|'GHqh I\9 j:638,ɼDY{{$ȬīWGjimч m0b:3{,Q+/pR@7yhjy`^.<Կ+2{>1nسH7/E^.$ؔk{wKq|iJ6$2rI% l nBբY*"D3稽KHoʔA!_)אałH^@9+9ED0XAFnعxfᩄuz,E aY/ ,^ _DDwG޽.!|Ci Y|ufxU*ڎs<79{W4N}>՚l<>@4x,WFoK?>-䶢nW2TW)!o-vdAATʑ="QXRET%V#\> g[Aaspws|d`I0p%fMnd:1P2D{se8q_9(2 \͒@AU6ֈ^GmUDҝ~@& Yo\]_f;}5wD|}yeukx 5#rl&7;mJZxd'=UG>`#K<kB"˃Jx\;E Vgr('}/NE"o6\Hkωa׎\^rx) ԁ h#:}j q s&0լs OZ<Zyzru@kGPt{w i/b8,c*]Lz<]|&ISX]/hS[!l\4JI^N2>*90-s ˶W;1bĢ}98XX^a|m@8><#N=E~E]+WNX#͌, 񊢡@ Y?k(-Go6&pF5R2~_?qi: <80|lȟBq"n?P#q ʕ K*k|Abgw:(3/?5f~#rv):Q#4]DnKH(]t͒R\!E| V G҉݃c#ȝ XK=dj7J_qwz^ξ۸'3TKz Uû|ORXr=,enXs6mwԊq cWKM|W*Vlm96HM.fbp֋7z7mb%n{?)ɢ:ƕ!棂TSr ,nNǿ;8"ReN3UeQj_%e e xF^ i6!BJY X0^3otG"hMZS7hG! M5#Mz}FWѱ iBlP*'BLϗHAj_;ܣ=h (9ЬwFy"R1ӖE:y#2{_՗>AP/(NwsxB.K8 fC-(&U9A CB%sIhD.R1"|QL?Rgo dڳ۩o0{!N\Y~AlפUq{]XHlQkj۰FmЅMu@,(,t}*캳\ΡЅ#V@[qQ MZ?0A4J0J"#g8#/p8tQ2oy\bTQKp"Kr.w[dw"#^J`r:P'|h +Y0~/*MbCZssdfAl WL-\exDsoKawA 7虊]Y=ׅHJ1ay?d,e+ml%H#~&U8Yw"=AB%O$u(| _xK9+`k@ t8)a٘QM}ݼg- {,*/ $pDZx(&#k]6s: =* RrA]LHR g2Lm?:x3N9^heZUupFR:, \d,-'+kԆȇpVb O䴁W*C%(=:<K70-ݡ` Mxla5h x?;J{'$ycdAed F>TfbpkhLds}==otT/r #/EtRj/O#t jpeڣlQ}]/Hf>* .-A B@7D Tޫ LAC"JKa'OGM0.4_Ոrg=]O0K6<&qtWwXafƶWhЋtWVr^|)хfU"{/&)Df*T sd>+Z$z05 \Z3S,[Y&:GL18fxΚV[4kstxw:78!Ca52hO{c5TEPycgEfOrA۷6Tw):</mh\  ATA!xshxw9K{{.BnCm-ƍ(agwm3ErDt(osܔk-KAD^Ihd# | @эZd^ !S'˸zV,úuN(Zm%<]л2գP%(cp)|)r)oD^LwZO'߈ [C>98[:IG<+\~/c_-{r=4sԁO pPF7fV(46^ lwZcԎE⟙I-8.?zN|:^5pBkh*د>+FwdkMhX1}45T~A, ,NwʰR;8Y( "HM|63a1=\$t`귮4:ܯФPPݵlMQ8PC;ͪ>roS‚ӜݏLĕ;@ $Ufޞ m(*1A^P^EHEO1nǻ\28ŗ M 6ޠW~@B-HXqaf+S-l|e`he74`${ŸH"xÿhA_jk橞'}#D_\u<ﲃU9EV{(k葋z<1wVAes4ѓte4D :.O3ƯuW1L%Iotuw'59qUu[ AIɣ&T#O)ᆭXB#/a+Z$@jf$~& קt$rm+Gp(fS?!2h3v,iH>Htp y# D#̛  :tݝyI KR66QN\.by<7Ivs";vIaY-o]Ľ䘴TM?9&q8—9ڽBh$z`fQ~Py*_l'Z ح<󠽠WkA*3?X IkP/.bfUd`.kId" )`1;CCi{wL+^)~Nn'U`tw-}Fj9DMHaX j\̓ $W{ 9kv")'^x!rq(s% xԆ\)<%DvPvL2ৈTqR [9ZW.@3vl'=LogV%9|TH/DB=1uf$u,5>?՚ү+ .-ۨ#L>hH3O),ڂB>oԿk[zd&@t7~&HHuvu*_Dg.A%As{Q.YO_SE[N+@uC fv.3s w=ὀ9݌e J}59-jNoz"^gU~klнf`d]ܪ2w_UEƯ媮O2u_A>7Dπ?jz}϶8~aZSiFN,]Zv\v8qF@D9d2eMeiyt^^jjry _1 i,G7: E.[WHˆMEēi󙋨5s<8"~ϐHŚ,lfKIʍ'^κK+s n 2zf\#(j XB_#>4xIG=y>1 = b IK.@ _Ģkh@n{+&.<_T3[sM$*}BL}/+'Q ݦvm UZY5ZngCDoŧ8} T+`६cMzZ %?h 5&1{]q5'1n P80)B1 5`cPy!bEMr9q <ml{2 42dt_?Ot8D:3-uDݚ)>fr"%΅@ "Vh}ISuRwm%dE&a89&_j3ϰdԐxl|ȃKop} w2ʤ'ݝfᕄNhTJ籗EX.{;49;^5[p<<j%L@з/J>7Gf1[eRFd-2B׈y&z"ya"QwN4E.53GO@Ohn( Q4vz)/c##rg97h@P7m|<("Jmu7絹Ԩxuc O]V G`Eެ۬!1?D9xzYt BS8%~lФ52'=-RPW; 0\dQ w~E&hU^c.탔}`F:M;c>ɮ7#xٳ]#3^cyQ(j^}5GD[B\ѩ6 `- K~7~ gk}2U,.#IZLcOa71DJI+Qe1- ZnB8Y S*@n4#q*jO*)wSՊEx}9NP4xZD.bӀ޺7 d6xRX-t/PPEر%u6ݹ%" Q5 +w@d1l<=:#jJEɏ`=i~9(i["PF11qEaSeƉ? ۀ2P6!9f%X xSG"^ӘT(Pq_e8D]hPwpJ^`BVl{!73SSF ^s!Ň.[ugE??3jؑO&n yW~gXD]bFz,VU@\aGMߌTO:=Ը G}+YDjo> oE5B1g(3?6;|zu/EBxMߋ5Ww@Ѩۖ18,T*0AAc7Qe8h\=h [q`,@ϡ4?ܵbwnf:Oqtm&/h<6``(hK+CɩHm])UO^gڒal M8;|cI|Fi۞9͕:pO32Ⅎ`ՅC "T`q&8n8wNg[I4 hZ2q~%NcPI榉蔈)яlKJDœ8clEl-+PqqQ$-E=#8#rZg ]lLP5՝t7vʠw{AuZd\I˗O#s?ze| ξj'ה0>,MoC G\=~ }Qdo@JvBqyѰ>3#3x|;"8kם1#87x[b`yo \pĢOo%Ww}>}x6}f4r і"daXy{*w3EW;A0;~/lV_jMR𫬑HZ%t;y4X.HI[Y؍45Mr|"V7D_WB 첸dvsQe+ Q6Iէ}zY.AyM .C ~~/v5~@7+^x)gN<w| *CDS)s)ȃD"WNjFSA*,ݞ9Pcw¥t qr }-aj6]K* Lr| \>hڎ蘼%HVjez)vg@qGO63,3<ot߉dÆUְ3U3#' 6qFd(T 'J4ֵ re:5:Op,O:GnM;9Ñ=}P[3GU4C)INp^YqCN.Z3 3at, ѫ݉%YK }Kst=/_ FvE'+^y3ZiBe+uOo2)/=\Ya5'4n@ B䵙Ms\`J <<3i`8j<)ũyj6q9A[>\!|υei+NGM5()r:n̯$uIYHЖ nzAp;ʥtJ TPdol=9w`K+ReȘ "< 3CɎ9AJSp H^2}©T6$ma0ͽL p?<ӴB\Fv,G)Q-Ee:Mdn{8[@8[8z2p&׳1\O3r!|,5x)-L\{jӮ3$TcNm"¹Oa(N$(V'@`ꡜJ0C~%y.YpޣiW~%ЏZ W j"08 9W:G@>ێt'5m/* ^F!"H j/\ށ7Ï1Z  נqY\(j^,_dV#1\)mr)5p) Wu]:3U6h"@ٞpn/v/[@8?=ϩQ$H|5;hh>rs^]Z IDAT"@V> v-q[ >t{Z<޽"sΉr2:?S[Q5XmD ѳAxж}HDW{" 4:OiKH`1lP =HrW↬% eE:~E]60B/8̻`/^g# ON%K"pq0ã&NGPXMz.AsMm־uPuR#oowE\]le|($#7s2ds>3۠7(%4sH<j@Ue M򨊙?yUZÚaٸ\mwlNSF5?=:"QH>n+W$Z#f>*ᄐ,V R+pV LK NbF{Y\y{loӳQQNzHOdiU.K @D9aky*fԄ][4D/Dk)EHot\IN<_bК~+TGW YZNy3qTҤִ,ϗ"PcR7àidϨGf߈aWp\ :Q/迉`weO|m_! ^-&˅n =ړw e}ӳM a@d@,׬ ¸f:r_TC[}i-!@\H`^ ID*O~4Hߋ-(w<{>iӦۛ,Ro\ ߂~U! /VywԯBłiQDMouL@$Xĕ`uWji)]y\Y`uM6mڌ̦MױA#6NV퉭t~/" Qٻ3mڴiӦMk~LZ8ܴiӦM6mڿL6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦMGB1mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6mڴiӦM6ώIENDB`elk-6.3.2/examples/GW/Si-GW-band-structure/PaxHeaders.21352/plot2d.general0000644000000000000000000000013213543334742022562 xustar0030 mtime=1569569250.220638374 30 atime=1569569250.220638374 30 ctime=1569569250.220638374 elk-6.3.2/examples/GW/Si-GW-band-structure/plot2d.general0000644002504400250440000000027313543334742024633 0ustar00dewhurstdewhurst00000000000000file = GWBAND.OUT grid = 800 x 400 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 2-vector, scalar type = float, float end elk-6.3.2/examples/GW/Si-GW-band-structure/PaxHeaders.21352/plot2d.net0000644000000000000000000000013213543334742021733 xustar0030 mtime=1569569250.225638371 30 atime=1569569250.224638371 30 ctime=1569569250.225638371 elk-6.3.2/examples/GW/Si-GW-band-structure/plot2d.net0000644002504400250440000001543613543334742024013 0ustar00dewhurstdewhurst00000000000000// // time: Sat May 19 08:49:04 2018 // // version: 3.2.0 (format), 4.4.4 (DX) // // // MODULE main // workspace: width = 532, height = 576 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 56, y = 47, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "plot2d.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node RubberSheet[1]: x = 276, y = 45, inputs = 4, label = RubberSheet // main_RubberSheet_1_out_1 = RubberSheet( main_Import_1_out_1, main_RubberSheet_1_in_2, main_RubberSheet_1_in_3, main_RubberSheet_1_in_4 ) [instance: 1, cache: 1]; // // node Colormap[1]: x = 387, y = 153, inputs = 19, label = Colormap // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.35833333] [0.056847545 0.16666667] } // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.0] [0.037634409 1.0] } // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_1" // input[7]: defaulting = 1, visible = 0, type = 5, value = 0.094054289 // input[8]: defaulting = 1, visible = 0, type = 5, value = 6684.0454 // input[9]: defaulting = 1, visible = 0, type = 1, value = 20 // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 0.094054289 6684.0454 } // input[17]: defaulting = 0, visible = 0, type = 5, value = 0.094054289 // input[18]: defaulting = 0, visible = 0, type = 5, value = 6684.0454 // window: position = (0.0200,0.0744), size = 0.9706x0.5844 // main_Colormap_1_out_1[cache: 2], main_Colormap_1_out_2[cache: 2] = Colormap( main_Colormap_1_in_1, main_Colormap_1_in_2, main_Colormap_1_in_3, main_Colormap_1_in_4, main_Colormap_1_in_5, main_RubberSheet_1_out_1, main_Colormap_1_in_7, main_Colormap_1_in_8, main_Colormap_1_in_9, main_Colormap_1_in_10, main_Colormap_1_in_11, main_Colormap_1_in_12, main_Colormap_1_in_13, main_Colormap_1_in_14, main_Colormap_1_in_15, main_Colormap_1_in_16, main_Colormap_1_in_17, main_Colormap_1_in_18, main_Colormap_1_in_19 ) [instance: 1, cache: 1]; // // node Color[3]: x = 142, y = 190, inputs = 5, label = Color // main_Color_3_out_1 = Color( main_RubberSheet_1_out_1, main_Colormap_1_out_1, main_Color_3_in_3, main_Color_3_in_4, main_Color_3_in_5 ) [instance: 3, cache: 1]; // // node Shade[1]: x = 320, y = 256, inputs = 8, label = Shade // input[2]: defaulting = 0, visible = 1, type = 3, value = 0 // main_Shade_1_out_1 = Shade( main_Color_3_out_1, main_Shade_1_in_2, main_Shade_1_in_3, main_Shade_1_in_4, main_Shade_1_in_5, main_Shade_1_in_6, main_Shade_1_in_7, main_Shade_1_in_8 ) [instance: 1, cache: 1]; // // node AutoCamera[1]: x = 440, y = 352, inputs = 9, label = AutoCamera // input[3]: defaulting = 0, visible = 0, type = 5, value = 3.35 // input[4]: defaulting = 0, visible = 0, type = 1, value = 2048 // input[5]: defaulting = 0, visible = 0, type = 5, value = 1.07 // main_AutoCamera_1_out_1 = AutoCamera( main_Shade_1_out_1, main_AutoCamera_1_in_2, main_AutoCamera_1_in_3, main_AutoCamera_1_in_4, main_AutoCamera_1_in_5, main_AutoCamera_1_in_6, main_AutoCamera_1_in_7, main_AutoCamera_1_in_8, main_AutoCamera_1_in_9 ) [instance: 1, cache: 1]; // // node Render[1]: x = 251, y = 352, inputs = 3, label = Render // main_Render_1_out_1 = Render( main_Shade_1_out_1, main_AutoCamera_1_out_1, main_Render_1_in_3 ) [instance: 1, cache: 1]; // // node Display[1]: x = 204, y = 461, inputs = 8, label = Display // depth: value = 24 // window: position = (0.5225,-0.8433), size = 1.2888x2.4800 // main_Display_1_out_1[cache: 2] = Display( main_Render_1_out_1, main_Display_1_in_2, main_Display_1_in_3, main_Display_1_in_4, main_Display_1_in_5, main_Display_1_in_6, main_Display_1_in_7, main_Display_1_in_8 ) [instance: 1, cache: 1]; // // node WriteImage[1]: x = 431, y = 514, inputs = 4, label = WriteImage // input[3]: defaulting = 0, visible = 1, type = 32, value = "tiff" // WriteImage( main_Render_1_out_1, main_WriteImage_1_in_2, main_WriteImage_1_in_3, main_WriteImage_1_in_4 ) [instance: 1, cache: 1]; // network: end of macro body } main_Import_1_in_1 = "plot2d.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_RubberSheet_1_in_2 = NULL; main_RubberSheet_1_in_3 = NULL; main_RubberSheet_1_in_4 = NULL; main_RubberSheet_1_out_1 = NULL; main_Colormap_1_in_1 = { [0.0 0.35833333] [0.056847545 0.16666667] }; main_Colormap_1_in_2 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_1_in_3 = { [0.0 0.0] [0.037634409 1.0] }; main_Colormap_1_in_4 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_1_in_5 = "Colormap_1"; main_Colormap_1_in_7 = NULL; main_Colormap_1_in_8 = NULL; main_Colormap_1_in_9 = NULL; main_Colormap_1_in_10 = NULL; main_Colormap_1_in_11 = NULL; main_Colormap_1_in_12 = { 0.094054289 6684.0454 }; main_Colormap_1_in_13 = NULL; main_Colormap_1_in_14 = NULL; main_Colormap_1_in_15 = NULL; main_Colormap_1_in_16 = NULL; main_Colormap_1_in_17 = 0.094054289; main_Colormap_1_in_18 = 6684.0454; main_Colormap_1_in_19 = NULL; main_Colormap_1_out_1 = NULL; main_Color_3_in_3 = NULL; main_Color_3_in_4 = NULL; main_Color_3_in_5 = NULL; main_Color_3_out_1 = NULL; main_Shade_1_in_2 = 0; main_Shade_1_in_3 = NULL; main_Shade_1_in_4 = NULL; main_Shade_1_in_5 = NULL; main_Shade_1_in_6 = NULL; main_Shade_1_in_7 = NULL; main_Shade_1_in_8 = NULL; main_Shade_1_out_1 = NULL; main_AutoCamera_1_in_2 = NULL; main_AutoCamera_1_in_3 = 3.35; main_AutoCamera_1_in_4 = 2048; main_AutoCamera_1_in_5 = 1.07; main_AutoCamera_1_in_6 = NULL; main_AutoCamera_1_in_7 = NULL; main_AutoCamera_1_in_8 = NULL; main_AutoCamera_1_in_9 = NULL; main_AutoCamera_1_out_1 = NULL; main_Render_1_in_3 = NULL; main_Render_1_out_1 = NULL; main_Display_1_in_2 = NULL; main_Display_1_in_3 = "X24,,"; main_Display_1_in_4 = NULL; main_Display_1_in_5 = NULL; main_Display_1_in_6 = NULL; main_Display_1_in_7 = NULL; main_Display_1_in_8 = NULL; main_WriteImage_1_in_2 = NULL; main_WriteImage_1_in_3 = "tiff"; main_WriteImage_1_in_4 = NULL; Executive("product version 4 4 4"); $sync main(); elk-6.3.2/examples/GW/PaxHeaders.21352/sc-rho-GW0000644000000000000000000000013213543334742015622 xustar0030 mtime=1569569250.229638368 30 atime=1569569250.228638369 30 ctime=1569569250.229638368 elk-6.3.2/examples/GW/sc-rho-GW/0000755002504400250440000000000013543334742017746 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/sc-rho-GW/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334742017002 xustar0030 mtime=1569569250.230638367 30 atime=1569569250.230638367 30 ctime=1569569250.230638367 elk-6.3.2/examples/GW/sc-rho-GW/elk.in0000644002504400250440000000214113543334742021047 0ustar00dewhurstdewhurst00000000000000 ! Self-consistent density GW example. First the density is calculated from the ! GW Green's function, then the Kohn-Sham equations are inverted to find a new ! exchange-correlation potential and Kohn-Sham orbitals. This processes is ! repeated until self-consistency is reached. tasks 0 630 ! number of iterations used for inverting the Kohn-Sham equations maxitksi 100 ! step size used for inverting the Kohn-Sham equations tauksi 0.01 ! take the screened interaction W to be diagonal twdiag .true. ! Matsubara frequency cut-off wmaxgw 30.0 ! response function G-vector cut-off gmaxrf 2.0 ! temperature of many-body system (determines Matsubara frequency spacing) tempk 1500.0 ! use LAPW nxoapwlo 1 ! adaptive linear mixing mixtype 1 ! large number of empty states required nempty 20 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 2 2 2 elk-6.3.2/examples/GW/PaxHeaders.21352/Cu0000644000000000000000000000013213543334742014463 xustar0030 mtime=1569569250.239638362 30 atime=1569569250.234638365 30 ctime=1569569250.239638362 elk-6.3.2/examples/GW/Cu/0000755002504400250440000000000013543334742016607 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/Cu/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334742015643 xustar0030 mtime=1569569250.237638363 30 atime=1569569250.236638364 30 ctime=1569569250.237638363 elk-6.3.2/examples/GW/Cu/elk.in0000644002504400250440000000152213543334742017712 0ustar00dewhurstdewhurst00000000000000 ! GW approximation applied to copper. Note that this calculation uses more ! k-points than q-points. tasks 0 600 610 ! switch on spin-coupling spinorb .true. ! temperature of the electronic system (determines Matsubara frequency spacing) tempk 1500.0 nempty 8 ! Matsubara frequency cut-off wmaxgw 6.0 ! G-vector cut-off for response functions gmaxrf 3.0 wplot 1000 100 0 : nwplot, ngrkf, nswplot -0.5 0.5 : wplot avec 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 scale 6.83117 ngridk 12 12 12 ! q-point grid smaller but commensurate with the k-point grid ngridq 4 4 4 sppath '../../../species/' atoms 1 : nspecies 'Cu.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/GW/Cu/PaxHeaders.21352/GWTSF.OUT0000644000000000000000000000013213543334742016023 xustar0030 mtime=1569569250.244638359 30 atime=1569569250.240638361 30 ctime=1569569250.244638359 elk-6.3.2/examples/GW/Cu/GWTSF.OUT0000644002504400250440000011021013543334742020065 0ustar00dewhurstdewhurst00000000000000 -0.5000000000 1.824301379 -0.4990000000 1.858733095 -0.4980000000 1.894652577 -0.4970000000 1.881545001 -0.4960000000 1.885725810 -0.4950000000 1.896416216 -0.4940000000 1.906538765 -0.4930000000 1.948783662 -0.4920000000 1.940545496 -0.4910000000 1.911214233 -0.4900000000 1.943414329 -0.4890000000 1.979079144 -0.4880000000 1.966975776 -0.4870000000 1.975660865 -0.4860000000 1.954034829 -0.4850000000 1.987496531 -0.4840000000 1.985981863 -0.4830000000 1.990621853 -0.4820000000 1.973709207 -0.4810000000 1.984131510 -0.4800000000 1.974721729 -0.4790000000 1.949946186 -0.4780000000 1.927193453 -0.4770000000 1.942874762 -0.4760000000 1.920629055 -0.4750000000 1.932931741 -0.4740000000 1.947159926 -0.4730000000 1.897853380 -0.4720000000 1.901676484 -0.4710000000 1.888057303 -0.4700000000 1.826150143 -0.4690000000 1.830563933 -0.4680000000 1.807247173 -0.4670000000 1.828849365 -0.4660000000 1.803964693 -0.4650000000 1.802756576 -0.4640000000 1.799428032 -0.4630000000 1.787414853 -0.4620000000 1.772837956 -0.4610000000 1.788826563 -0.4600000000 1.752298242 -0.4590000000 1.777745060 -0.4580000000 1.714158508 -0.4570000000 1.746942483 -0.4560000000 1.736456447 -0.4550000000 1.703930855 -0.4540000000 1.704459329 -0.4530000000 1.718164049 -0.4520000000 1.703780991 -0.4510000000 1.757487497 -0.4500000000 1.634487572 -0.4490000000 1.603115695 -0.4480000000 1.618201128 -0.4470000000 1.579752055 -0.4460000000 1.601013667 -0.4450000000 1.586478901 -0.4440000000 1.552705758 -0.4430000000 1.566139471 -0.4420000000 1.540358970 -0.4410000000 1.551575847 -0.4400000000 1.549041515 -0.4390000000 1.550852367 -0.4380000000 1.548506697 -0.4370000000 1.551524406 -0.4360000000 1.528811918 -0.4350000000 1.553973852 -0.4340000000 1.543903954 -0.4330000000 1.540870365 -0.4320000000 1.548448370 -0.4310000000 1.540286715 -0.4300000000 1.522833632 -0.4290000000 1.523629269 -0.4280000000 1.514300360 -0.4270000000 1.536403608 -0.4260000000 1.549657328 -0.4250000000 1.557880902 -0.4240000000 1.560783697 -0.4230000000 1.570349765 -0.4220000000 1.560563619 -0.4210000000 1.578748362 -0.4200000000 1.566551097 -0.4190000000 1.585427101 -0.4180000000 1.582327305 -0.4170000000 1.584654118 -0.4160000000 1.583757824 -0.4150000000 1.594596234 -0.4140000000 1.597077155 -0.4130000000 1.607215796 -0.4120000000 1.613585819 -0.4110000000 1.643852581 -0.4100000000 1.663370920 -0.4090000000 1.686190830 -0.4080000000 1.741252523 -0.4070000000 1.718760093 -0.4060000000 1.701658841 -0.4050000000 1.723552602 -0.4040000000 1.736949522 -0.4030000000 1.735784729 -0.4020000000 1.754654715 -0.4010000000 1.759892479 -0.4000000000 1.806559455 -0.3990000000 1.791921506 -0.3980000000 1.848912591 -0.3970000000 1.851792914 -0.3960000000 1.838308096 -0.3950000000 1.861145740 -0.3940000000 1.867528489 -0.3930000000 1.877375278 -0.3920000000 1.913102105 -0.3910000000 1.919315812 -0.3900000000 1.972401635 -0.3890000000 1.997793604 -0.3880000000 2.022326557 -0.3870000000 1.987275403 -0.3860000000 2.003936362 -0.3850000000 2.049582059 -0.3840000000 2.074606273 -0.3830000000 2.090585085 -0.3820000000 2.136123560 -0.3810000000 2.143072203 -0.3800000000 2.150982570 -0.3790000000 2.161331202 -0.3780000000 2.157754623 -0.3770000000 2.198342579 -0.3760000000 2.246027255 -0.3750000000 2.312593499 -0.3740000000 2.321561372 -0.3730000000 2.340958888 -0.3720000000 2.450613684 -0.3710000000 2.378245076 -0.3700000000 2.415929047 -0.3690000000 2.407399107 -0.3680000000 2.465994586 -0.3670000000 2.431417120 -0.3660000000 2.456425467 -0.3650000000 2.512991995 -0.3640000000 2.519504313 -0.3630000000 2.545345783 -0.3620000000 2.573993719 -0.3610000000 2.555908518 -0.3600000000 2.567294286 -0.3590000000 2.609311245 -0.3580000000 2.625977200 -0.3570000000 2.607536645 -0.3560000000 2.601178139 -0.3550000000 2.559506832 -0.3540000000 2.567995811 -0.3530000000 2.592291020 -0.3520000000 2.567633638 -0.3510000000 2.537350057 -0.3500000000 2.532998140 -0.3490000000 2.527546214 -0.3480000000 2.503728628 -0.3470000000 2.528743075 -0.3460000000 2.465325307 -0.3450000000 2.521930652 -0.3440000000 2.549652417 -0.3430000000 2.522601774 -0.3420000000 2.484825230 -0.3410000000 2.484197344 -0.3400000000 2.475249992 -0.3390000000 2.493109212 -0.3380000000 2.506696207 -0.3370000000 2.453715998 -0.3360000000 2.448482714 -0.3350000000 2.445918029 -0.3340000000 2.448624135 -0.3330000000 2.416506426 -0.3320000000 2.443909676 -0.3310000000 2.467024140 -0.3300000000 2.460161303 -0.3290000000 2.440380408 -0.3280000000 2.439656059 -0.3270000000 2.432236818 -0.3260000000 2.449826591 -0.3250000000 2.471418638 -0.3240000000 2.476077667 -0.3230000000 2.552124680 -0.3220000000 2.517722763 -0.3210000000 2.542384581 -0.3200000000 2.595839441 -0.3190000000 2.654737985 -0.3180000000 2.604060081 -0.3170000000 2.707578580 -0.3160000000 2.691434376 -0.3150000000 2.720622223 -0.3140000000 2.757492083 -0.3130000000 2.804516453 -0.3120000000 2.823426884 -0.3110000000 2.809755210 -0.3100000000 2.840149337 -0.3090000000 2.970139616 -0.3080000000 2.964473577 -0.3070000000 2.952362425 -0.3060000000 2.962746194 -0.3050000000 3.037887653 -0.3040000000 3.069811767 -0.3030000000 3.180922403 -0.3020000000 3.138610711 -0.3010000000 3.227641049 -0.3000000000 3.216584008 -0.2990000000 3.316355695 -0.2980000000 3.379846432 -0.2970000000 3.412631690 -0.2960000000 3.447416841 -0.2950000000 3.477438310 -0.2940000000 3.444201281 -0.2930000000 3.499438389 -0.2920000000 3.602785052 -0.2910000000 3.648098010 -0.2900000000 3.702128694 -0.2890000000 3.701399058 -0.2880000000 3.702764868 -0.2870000000 3.756779118 -0.2860000000 3.863505180 -0.2850000000 4.041595869 -0.2840000000 4.118489159 -0.2830000000 4.091314645 -0.2820000000 4.126985003 -0.2810000000 4.355781210 -0.2800000000 4.249370217 -0.2790000000 4.432297581 -0.2780000000 4.554176180 -0.2770000000 4.431465337 -0.2760000000 4.602779120 -0.2750000000 4.643531479 -0.2740000000 4.690024755 -0.2730000000 4.783385767 -0.2720000000 4.862197583 -0.2710000000 4.860152784 -0.2700000000 4.874011533 -0.2690000000 4.975602626 -0.2680000000 4.931077554 -0.2670000000 4.979516049 -0.2660000000 5.021829247 -0.2650000000 5.111906924 -0.2640000000 5.098016996 -0.2630000000 5.018988873 -0.2620000000 4.987198326 -0.2610000000 5.128923451 -0.2600000000 5.256627468 -0.2590000000 5.123004222 -0.2580000000 5.067873630 -0.2570000000 5.100312627 -0.2560000000 5.000291045 -0.2550000000 5.220199546 -0.2540000000 5.165040083 -0.2530000000 5.164526873 -0.2520000000 5.076767812 -0.2510000000 5.006091482 -0.2500000000 5.290552051 -0.2490000000 5.125205186 -0.2480000000 5.071316430 -0.2470000000 5.046963030 -0.2460000000 5.051462711 -0.2450000000 5.118594473 -0.2440000000 5.120591326 -0.2430000000 5.115746745 -0.2420000000 5.157434153 -0.2410000000 5.113510139 -0.2400000000 5.106531075 -0.2390000000 5.214623586 -0.2380000000 5.222066506 -0.2370000000 5.247154297 -0.2360000000 5.403306389 -0.2350000000 5.539292551 -0.2340000000 5.634267714 -0.2330000000 5.772772270 -0.2320000000 5.906612063 -0.2310000000 5.964377208 -0.2300000000 6.033953081 -0.2290000000 6.159702923 -0.2280000000 6.301076775 -0.2270000000 6.243042152 -0.2260000000 6.218906625 -0.2250000000 6.367086350 -0.2240000000 6.384798553 -0.2230000000 6.363885903 -0.2220000000 6.307868875 -0.2210000000 6.328114521 -0.2200000000 6.377410487 -0.2190000000 6.406671037 -0.2180000000 6.668572853 -0.2170000000 6.700831919 -0.2160000000 6.749186520 -0.2150000000 6.820953421 -0.2140000000 6.829888887 -0.2130000000 6.741797398 -0.2120000000 6.929712989 -0.2110000000 6.920917291 -0.2100000000 6.984373300 -0.2090000000 7.175694063 -0.2080000000 7.216699604 -0.2070000000 7.316071704 -0.2060000000 7.350512510 -0.2050000000 7.465774418 -0.2040000000 7.531929387 -0.2030000000 7.610419613 -0.2020000000 7.857020742 -0.2010000000 7.945975626 -0.2000000000 8.210831727 -0.1990000000 8.539140436 -0.1980000000 8.783157374 -0.1970000000 8.833611394 -0.1960000000 9.190617383 -0.1950000000 9.562471043 -0.1940000000 9.763903619 -0.1930000000 10.24986650 -0.1920000000 10.27621122 -0.1910000000 10.80668846 -0.1900000000 10.75369035 -0.1890000000 10.88094180 -0.1880000000 11.34367423 -0.1870000000 11.65757479 -0.1860000000 11.42437944 -0.1850000000 11.67783313 -0.1840000000 11.69687986 -0.1830000000 11.79558358 -0.1820000000 11.97055012 -0.1810000000 12.02561829 -0.1800000000 12.51737942 -0.1790000000 12.62917071 -0.1780000000 12.87035483 -0.1770000000 12.91318355 -0.1760000000 13.44756421 -0.1750000000 13.54671944 -0.1740000000 14.04316244 -0.1730000000 14.08900791 -0.1720000000 14.52286161 -0.1710000000 14.99378288 -0.1700000000 15.48819062 -0.1690000000 16.63114559 -0.1680000000 17.27273923 -0.1670000000 18.03832859 -0.1660000000 19.10531402 -0.1650000000 20.02908064 -0.1640000000 21.01553388 -0.1630000000 21.72169770 -0.1620000000 22.29815018 -0.1610000000 22.57148369 -0.1600000000 22.15526416 -0.1590000000 23.06511847 -0.1580000000 23.86157824 -0.1570000000 22.92787900 -0.1560000000 24.05443629 -0.1550000000 24.65139826 -0.1540000000 25.30175453 -0.1530000000 25.75020140 -0.1520000000 27.12949781 -0.1510000000 27.92565136 -0.1500000000 28.66738635 -0.1490000000 30.02109081 -0.1480000000 31.72068594 -0.1470000000 33.68698380 -0.1460000000 34.80356411 -0.1450000000 35.82285577 -0.1440000000 38.65123168 -0.1430000000 37.80279765 -0.1420000000 39.81096832 -0.1410000000 41.04020744 -0.1400000000 41.87412830 -0.1390000000 42.20743466 -0.1380000000 44.17701776 -0.1370000000 45.83032651 -0.1360000000 46.42364766 -0.1350000000 47.13381221 -0.1340000000 47.61323504 -0.1330000000 48.52657472 -0.1320000000 49.60347023 -0.1310000000 49.27234210 -0.1300000000 48.11300883 -0.1290000000 47.57122213 -0.1280000000 46.74859077 -0.1270000000 46.29146194 -0.1260000000 44.55796951 -0.1250000000 44.37314696 -0.1240000000 44.80213046 -0.1230000000 45.81955118 -0.1220000000 46.93142425 -0.1210000000 47.11166277 -0.1200000000 49.99913678 -0.1190000000 50.46967028 -0.1180000000 51.24804643 -0.1170000000 52.85964503 -0.1160000000 54.80482725 -0.1150000000 56.99847821 -0.1140000000 58.19558948 -0.1130000000 59.90351570 -0.1120000000 62.36056991 -0.1110000000 64.59297199 -0.1100000000 68.06318041 -0.1090000000 69.57941279 -0.1080000000 72.09129136 -0.1070000000 73.93832767 -0.1060000000 75.46199484 -0.1050000000 73.86653882 -0.1040000000 70.85440054 -0.1030000000 67.64028892 -0.1020000000 65.51257509 -0.1010000000 63.57960431 -0.1000000000 62.16490148 -0.9900000000E-01 60.90941491 -0.9800000000E-01 59.84463743 -0.9700000000E-01 59.06588001 -0.9600000000E-01 58.96119285 -0.9500000000E-01 57.27958240 -0.9400000000E-01 56.56950391 -0.9300000000E-01 55.21777146 -0.9200000000E-01 54.42779536 -0.9100000000E-01 53.53574469 -0.9000000000E-01 53.65696230 -0.8900000000E-01 53.94286994 -0.8800000000E-01 54.24460148 -0.8700000000E-01 54.28970265 -0.8600000000E-01 55.24698911 -0.8500000000E-01 55.88244227 -0.8400000000E-01 58.45634603 -0.8300000000E-01 60.13191027 -0.8200000000E-01 60.71038618 -0.8100000000E-01 60.05762028 -0.8000000000E-01 56.58087225 -0.7900000000E-01 53.26817640 -0.7800000000E-01 50.49839559 -0.7700000000E-01 48.01936633 -0.7600000000E-01 47.57945792 -0.7500000000E-01 47.15012068 -0.7400000000E-01 47.64318193 -0.7300000000E-01 49.38464294 -0.7200000000E-01 52.48811811 -0.7100000000E-01 54.49994367 -0.7000000000E-01 56.24245144 -0.6900000000E-01 57.72474032 -0.6800000000E-01 59.59921907 -0.6700000000E-01 61.41333008 -0.6600000000E-01 63.04035819 -0.6500000000E-01 64.40176758 -0.6400000000E-01 65.23990698 -0.6300000000E-01 64.55495875 -0.6200000000E-01 61.55456664 -0.6100000000E-01 57.33466824 -0.6000000000E-01 53.27432002 -0.5900000000E-01 48.69041120 -0.5800000000E-01 43.08376334 -0.5700000000E-01 37.06876840 -0.5600000000E-01 31.67191241 -0.5500000000E-01 26.83695800 -0.5400000000E-01 23.05438008 -0.5300000000E-01 19.86289777 -0.5200000000E-01 17.56175142 -0.5100000000E-01 15.97854434 -0.5000000000E-01 14.95543451 -0.4900000000E-01 14.33145818 -0.4800000000E-01 14.02843805 -0.4700000000E-01 13.63114111 -0.4600000000E-01 12.70942311 -0.4500000000E-01 11.29743329 -0.4400000000E-01 10.11652053 -0.4300000000E-01 9.421961628 -0.4200000000E-01 9.253417042 -0.4100000000E-01 9.480776309 -0.4000000000E-01 9.728454333 -0.3900000000E-01 9.561708581 -0.3800000000E-01 9.093848401 -0.3700000000E-01 8.769841063 -0.3600000000E-01 8.575916143 -0.3500000000E-01 8.206309807 -0.3400000000E-01 7.481007066 -0.3300000000E-01 6.583117927 -0.3200000000E-01 5.772556933 -0.3100000000E-01 5.186254162 -0.3000000000E-01 4.829308418 -0.2900000000E-01 4.680179360 -0.2800000000E-01 4.714383869 -0.2700000000E-01 4.932743523 -0.2600000000E-01 5.276241071 -0.2500000000E-01 5.563227485 -0.2400000000E-01 5.617779600 -0.2300000000E-01 5.511906606 -0.2200000000E-01 5.470351713 -0.2100000000E-01 5.634924000 -0.2000000000E-01 5.998743356 -0.1900000000E-01 6.392550566 -0.1800000000E-01 6.621393101 -0.1700000000E-01 6.613561759 -0.1600000000E-01 6.414607022 -0.1500000000E-01 6.167824829 -0.1400000000E-01 6.129703823 -0.1300000000E-01 6.440454417 -0.1200000000E-01 7.177106622 -0.1100000000E-01 8.295688894 -0.1000000000E-01 9.572630982 -0.9000000000E-02 10.62917209 -0.8000000000E-02 11.17988289 -0.7000000000E-02 11.06729641 -0.6000000000E-02 10.32283017 -0.5000000000E-02 9.208983211 -0.4000000000E-02 8.079370847 -0.3000000000E-02 7.065745590 -0.2000000000E-02 6.085799250 -0.1000000000E-02 5.183803809 0.000000000 4.454987035 0.1000000000E-02 3.939446956 0.2000000000E-02 3.622453517 0.3000000000E-02 3.476186637 0.4000000000E-02 3.495564752 0.5000000000E-02 3.664606708 0.6000000000E-02 3.935114558 0.7000000000E-02 4.159182952 0.8000000000E-02 4.158178920 0.9000000000E-02 3.971924378 0.1000000000E-01 3.810708227 0.1100000000E-01 3.781445389 0.1200000000E-01 3.916621181 0.1300000000E-01 4.197812418 0.1400000000E-01 4.654235974 0.1500000000E-01 5.217626863 0.1600000000E-01 5.576269094 0.1700000000E-01 5.357934461 0.1800000000E-01 4.673180533 0.1900000000E-01 3.913393976 0.2000000000E-01 3.327487036 0.2100000000E-01 2.938827560 0.2200000000E-01 2.715011693 0.2300000000E-01 2.621146418 0.2400000000E-01 2.644807165 0.2500000000E-01 2.789324221 0.2600000000E-01 3.078098530 0.2700000000E-01 3.549859232 0.2800000000E-01 4.228975152 0.2900000000E-01 5.045222131 0.3000000000E-01 5.700201989 0.3100000000E-01 5.842473427 0.3200000000E-01 5.558639224 0.3300000000E-01 5.183870298 0.3400000000E-01 4.824946481 0.3500000000E-01 4.312408067 0.3600000000E-01 3.707108852 0.3700000000E-01 3.181986404 0.3800000000E-01 2.806255469 0.3900000000E-01 2.587650731 0.4000000000E-01 2.500305820 0.4100000000E-01 2.514546263 0.4200000000E-01 2.671063124 0.4300000000E-01 2.939527472 0.4400000000E-01 3.397447053 0.4500000000E-01 4.014567499 0.4600000000E-01 4.703447673 0.4700000000E-01 5.182136034 0.4800000000E-01 5.257020709 0.4900000000E-01 4.963728893 0.5000000000E-01 4.533207117 0.5100000000E-01 4.237500050 0.5200000000E-01 4.216894586 0.5300000000E-01 4.536873528 0.5400000000E-01 5.101825157 0.5500000000E-01 5.692855087 0.5600000000E-01 5.846762519 0.5700000000E-01 5.407792503 0.5800000000E-01 4.782479500 0.5900000000E-01 4.304419882 0.6000000000E-01 4.122584785 0.6100000000E-01 4.254280068 0.6200000000E-01 4.717846160 0.6300000000E-01 5.527802343 0.6400000000E-01 6.615741272 0.6500000000E-01 7.660249075 0.6600000000E-01 8.241964409 0.6700000000E-01 8.141369129 0.6800000000E-01 7.900714255 0.6900000000E-01 7.735487281 0.7000000000E-01 7.464045245 0.7100000000E-01 6.749931248 0.7200000000E-01 5.738827070 0.7300000000E-01 4.871940265 0.7400000000E-01 4.388377694 0.7500000000E-01 4.299639790 0.7600000000E-01 4.584192735 0.7700000000E-01 4.816629571 0.7800000000E-01 4.834822092 0.7900000000E-01 4.539764769 0.8000000000E-01 4.389523454 0.8100000000E-01 4.634345989 0.8200000000E-01 5.336960399 0.8300000000E-01 6.158473946 0.8400000000E-01 6.496828022 0.8500000000E-01 5.879809132 0.8600000000E-01 5.026034417 0.8700000000E-01 4.515850374 0.8800000000E-01 4.512495217 0.8900000000E-01 5.021885984 0.9000000000E-01 5.740109136 0.9100000000E-01 8.928123562 0.9200000000E-01 5.334368601 0.9300000000E-01 4.262890499 0.9400000000E-01 3.377523393 0.9500000000E-01 2.813579034 0.9600000000E-01 2.508493232 0.9700000000E-01 2.439228114 0.9800000000E-01 2.583544357 0.9900000000E-01 2.962271610 0.1000000000 3.438061154 0.1010000000 3.561441488 0.1020000000 3.122796808 0.1030000000 2.547095402 0.1040000000 2.132034368 0.1050000000 1.973485793 0.1060000000 1.956280488 0.1070000000 2.033293624 0.1080000000 2.310728472 0.1090000000 2.680279408 0.1100000000 3.635022566 0.1110000000 4.872064665 0.1120000000 5.825988946 0.1130000000 6.585406440 0.1140000000 6.548923812 0.1150000000 5.341886390 0.1160000000 4.195462228 0.1170000000 3.559177831 0.1180000000 3.339610673 0.1190000000 3.554222307 0.1200000000 4.275840455 0.1210000000 5.599622958 0.1220000000 7.129593016 0.1230000000 7.480894364 0.1240000000 6.550711155 0.1250000000 5.503441972 0.1260000000 4.328488857 0.1270000000 3.241849129 0.1280000000 2.443242769 0.1290000000 1.998098475 0.1300000000 1.758556631 0.1310000000 1.582890686 0.1320000000 1.529443015 0.1330000000 1.560491477 0.1340000000 1.820620622 0.1350000000 2.175213634 0.1360000000 2.296177287 0.1370000000 1.990093576 0.1380000000 1.638937107 0.1390000000 1.530257828 0.1400000000 1.407194347 0.1410000000 1.580394747 0.1420000000 1.518397318 0.1430000000 1.687389872 0.1440000000 1.964192770 0.1450000000 2.371611044 0.1460000000 2.979172176 0.1470000000 3.693322819 0.1480000000 4.305969287 0.1490000000 5.114652254 0.1500000000 5.922629410 0.1510000000 6.096989519 0.1520000000 5.606900204 0.1530000000 5.197318529 0.1540000000 5.405990078 0.1550000000 6.255537812 0.1560000000 7.208443898 0.1570000000 7.042289446 0.1580000000 5.104508499 0.1590000000 3.603378641 0.1600000000 2.833218983 0.1610000000 2.652726114 0.1620000000 2.757538226 0.1630000000 3.232119684 0.1640000000 3.636022290 0.1650000000 3.745784071 0.1660000000 3.634538415 0.1670000000 3.244380752 0.1680000000 2.781008044 0.1690000000 1.978681739 0.1700000000 1.865497582 0.1710000000 2.025013721 0.1720000000 2.556737565 0.1730000000 3.861607108 0.1740000000 6.669196279 0.1750000000 8.171301930 0.1760000000 6.211594831 0.1770000000 6.163320722 0.1780000000 7.450189661 0.1790000000 5.693648087 0.1800000000 2.467535867 0.1810000000 1.868001108 0.1820000000 1.810760028 0.1830000000 2.108543730 0.1840000000 2.587069209 0.1850000000 3.734521883 0.1860000000 5.052190274 0.1870000000 10.33624942 0.1880000000 14.05362704 0.1890000000 9.416019064 0.1900000000 4.692583015 0.1910000000 3.152036967 0.1920000000 3.119810076 0.1930000000 3.226740231 0.1940000000 5.567267562 0.1950000000 10.97111379 0.1960000000 9.830825633 0.1970000000 4.407084380 0.1980000000 2.868273564 0.1990000000 2.791822838 0.2000000000 4.106956313 0.2010000000 10.33019088 0.2020000000 21.36173054 0.2030000000 11.67993069 0.2040000000 4.969709073 0.2050000000 2.672080551 0.2060000000 1.987456526 0.2070000000 2.515156955 0.2080000000 2.680740156 0.2090000000 10.13344391 0.2100000000 3.204056934 0.2110000000 1.310314487 0.2120000000 0.9362583122 0.2130000000 0.8501808582 0.2140000000 1.036800422 0.2150000000 2.543871172 0.2160000000 10.78486495 0.2170000000 6.061179109 0.2180000000 1.563639427 0.2190000000 1.057027367 0.2200000000 0.9612742151 0.2210000000 0.9838979982 0.2220000000 1.113894453 0.2230000000 1.414176925 0.2240000000 2.114588629 0.2250000000 5.097844543 0.2260000000 20.30931141 0.2270000000 7.625661067 0.2280000000 2.851110625 0.2290000000 1.921856307 0.2300000000 1.979314081 0.2310000000 3.942726664 0.2320000000 54.04569475 0.2330000000 17.14655122 0.2340000000 1.838564117 0.2350000000 0.9828352175 0.2360000000 0.8669671792 0.2370000000 0.9870793100 0.2380000000 1.108145624 0.2390000000 1.009661054 0.2400000000 0.8944813850 0.2410000000 0.9342640473 0.2420000000 1.028188905 0.2430000000 1.165126941 0.2440000000 1.720175499 0.2450000000 5.628346527 0.2460000000 31.97674215 0.2470000000 7.008932983 0.2480000000 6.526289164 0.2490000000 6.973960962 0.2500000000 3.464253168 0.2510000000 2.731750313 0.2520000000 2.899196906 0.2530000000 1.479026941 0.2540000000 1.643678707 0.2550000000 2.887472478 0.2560000000 1.762478835 0.2570000000 1.688785307 0.2580000000 1.748265418 0.2590000000 1.751946157 0.2600000000 1.788745893 0.2610000000 1.930514745 0.2620000000 2.313428311 0.2630000000 2.367736973 0.2640000000 2.585242629 0.2650000000 2.911852292 0.2660000000 3.746948431 0.2670000000 5.125951413 0.2680000000 7.685806445 0.2690000000 11.82079963 0.2700000000 13.90989517 0.2710000000 14.02694424 0.2720000000 13.57206490 0.2730000000 9.997877245 0.2740000000 10.10053279 0.2750000000 6.447001067 0.2760000000 5.551610267 0.2770000000 8.543511023 0.2780000000 9.700541301 0.2790000000 9.772820120 0.2800000000 4.629527332 0.2810000000 3.674902564 0.2820000000 3.638522717 0.2830000000 4.288685589 0.2840000000 4.698516361 0.2850000000 4.255264535 0.2860000000 3.379321151 0.2870000000 2.987018660 0.2880000000 3.182332858 0.2890000000 4.074684275 0.2900000000 5.382380173 0.2910000000 4.626357817 0.2920000000 3.399819965 0.2930000000 2.841939573 0.2940000000 2.696321620 0.2950000000 2.898824589 0.2960000000 3.312277944 0.2970000000 4.107920423 0.2980000000 4.984800539 0.2990000000 5.405542833 0.3000000000 5.657715448 0.3010000000 5.963308167 0.3020000000 6.067751643 0.3030000000 5.795259409 0.3040000000 5.594960553 0.3050000000 5.237531240 0.3060000000 4.802981830 0.3070000000 4.690949790 0.3080000000 4.910909631 0.3090000000 5.541043340 0.3100000000 6.419255783 0.3110000000 7.223223059 0.3120000000 7.547932505 0.3130000000 6.357885172 0.3140000000 5.293349440 0.3150000000 5.220987246 0.3160000000 5.325238914 0.3170000000 5.137831051 0.3180000000 5.556817175 0.3190000000 5.091845653 0.3200000000 5.573343613 0.3210000000 5.545629260 0.3220000000 4.891881000 0.3230000000 4.345546010 0.3240000000 4.287160844 0.3250000000 4.652027241 0.3260000000 5.016664653 0.3270000000 4.683976438 0.3280000000 4.282864288 0.3290000000 4.235229753 0.3300000000 4.541442970 0.3310000000 5.088922429 0.3320000000 5.861363370 0.3330000000 6.411810587 0.3340000000 6.728270441 0.3350000000 7.269147432 0.3360000000 7.743747623 0.3370000000 7.942936308 0.3380000000 7.449546026 0.3390000000 6.188980635 0.3400000000 4.952866702 0.3410000000 4.099795752 0.3420000000 3.683945629 0.3430000000 3.564935710 0.3440000000 3.582869039 0.3450000000 3.695280798 0.3460000000 3.849399940 0.3470000000 4.330466774 0.3480000000 4.741716712 0.3490000000 5.812499261 0.3500000000 6.361572883 0.3510000000 6.769070981 0.3520000000 6.583121667 0.3530000000 6.727755216 0.3540000000 6.986547794 0.3550000000 7.268091300 0.3560000000 7.163849285 0.3570000000 8.063649141 0.3580000000 11.03167018 0.3590000000 7.100073980 0.3600000000 7.050338692 0.3610000000 7.266460393 0.3620000000 7.729518587 0.3630000000 8.248496470 0.3640000000 8.517325317 0.3650000000 8.560411699 0.3660000000 8.453456856 0.3670000000 8.841594463 0.3680000000 8.268675059 0.3690000000 8.191692167 0.3700000000 8.210376280 0.3710000000 8.361906142 0.3720000000 8.578908753 0.3730000000 8.224769446 0.3740000000 7.638723408 0.3750000000 7.331855967 0.3760000000 7.107040431 0.3770000000 6.930295817 0.3780000000 6.583687788 0.3790000000 6.070456262 0.3800000000 5.601289913 0.3810000000 6.219666672 0.3820000000 6.226227960 0.3830000000 6.208047856 0.3840000000 5.978244299 0.3850000000 6.345652418 0.3860000000 6.652906460 0.3870000000 6.947154040 0.3880000000 7.439536841 0.3890000000 7.462600245 0.3900000000 8.163649379 0.3910000000 8.658346032 0.3920000000 8.906701193 0.3930000000 6.918323246 0.3940000000 8.212522579 0.3950000000 8.829458730 0.3960000000 8.743411708 0.3970000000 8.112000115 0.3980000000 7.741453707 0.3990000000 7.442534103 0.4000000000 9.593802327 0.4010000000 7.515192555 0.4020000000 7.384505405 0.4030000000 7.334270706 0.4040000000 7.353205206 0.4050000000 7.726965721 0.4060000000 7.146795698 0.4070000000 7.399181663 0.4080000000 7.069100946 0.4090000000 7.099678412 0.4100000000 7.001050877 0.4110000000 6.811483998 0.4120000000 8.107037116 0.4130000000 6.418773690 0.4140000000 6.326365754 0.4150000000 6.086840728 0.4160000000 5.861474003 0.4170000000 5.647330499 0.4180000000 5.429043209 0.4190000000 5.607524618 0.4200000000 5.494813570 0.4210000000 5.838624365 0.4220000000 6.388163313 0.4230000000 5.982127523 0.4240000000 6.262960515 0.4250000000 6.469619716 0.4260000000 6.518412232 0.4270000000 6.886477276 0.4280000000 7.264649635 0.4290000000 7.574240746 0.4300000000 7.861834366 0.4310000000 8.095926891 0.4320000000 8.106916668 0.4330000000 7.918829814 0.4340000000 7.649132039 0.4350000000 7.338772383 0.4360000000 7.995432951 0.4370000000 7.120692064 0.4380000000 6.776562989 0.4390000000 6.653550696 0.4400000000 6.530312246 0.4410000000 6.414948404 0.4420000000 6.513434919 0.4430000000 6.560860172 0.4440000000 6.794314673 0.4450000000 7.005376375 0.4460000000 7.033860570 0.4470000000 6.822275677 0.4480000000 6.663583382 0.4490000000 6.812468846 0.4500000000 7.401929084 0.4510000000 8.143097618 0.4520000000 8.704275201 0.4530000000 8.275394951 0.4540000000 8.663193553 0.4550000000 7.933315810 0.4560000000 7.485759551 0.4570000000 7.395437841 0.4580000000 7.217237392 0.4590000000 7.508813584 0.4600000000 7.800673069 0.4610000000 7.897362755 0.4620000000 8.941079122 0.4630000000 8.084513355 0.4640000000 8.062609790 0.4650000000 8.088200911 0.4660000000 7.823917894 0.4670000000 7.623340885 0.4680000000 7.406428381 0.4690000000 7.122547903 0.4700000000 7.798422727 0.4710000000 8.793900187 0.4720000000 8.166138996 0.4730000000 7.745081458 0.4740000000 7.563817961 0.4750000000 7.263355883 0.4760000000 6.794822729 0.4770000000 6.366449121 0.4780000000 6.197978587 0.4790000000 6.244912348 0.4800000000 6.741929883 0.4810000000 6.724658143 0.4820000000 6.766111663 0.4830000000 6.952481707 0.4840000000 6.993472459 0.4850000000 7.031681944 0.4860000000 7.130220592 0.4870000000 7.410078705 0.4880000000 7.716552287 0.4890000000 8.426977069 0.4900000000 8.058825934 0.4910000000 8.139458324 0.4920000000 8.299426586 0.4930000000 8.338038236 0.4940000000 8.362398726 0.4950000000 8.826504153 0.4960000000 8.591906881 0.4970000000 8.385221839 0.4980000000 8.205248976 0.4990000000 8.292365405 elk-6.3.2/examples/GW/PaxHeaders.21352/Si0000644000000000000000000000013213543334742014467 xustar0030 mtime=1569569250.251638354 30 atime=1569569250.246638357 30 ctime=1569569250.251638354 elk-6.3.2/examples/GW/Si/0000755002504400250440000000000013543334742016613 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/Si/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334742015647 xustar0030 mtime=1569569250.249638355 30 atime=1569569250.248638356 30 ctime=1569569250.249638355 elk-6.3.2/examples/GW/Si/elk.in0000644002504400250440000000130213543334742017712 0ustar00dewhurstdewhurst00000000000000 ! GW spectral function of silicon. tasks 0 600 610 ! use LAPW nxoapwlo 1 ! add conduction local-orbitals lorbcnd .true. ! Matsubara frequency cut-off wmaxgw 5.0 ! response function G-vector cut-off gmaxrf 3.0 ! temperature of many-body system (determines Matsubara frequency spacing) tempk 1500.0 wplot 800 100 0 -0.8 0.5 ! large number of empty states required nempty 20 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 ngridk 4 4 4 elk-6.3.2/examples/GW/Si/PaxHeaders.21352/GWSF_K000001.OUT0000644000000000000000000000013213543334742016616 xustar0030 mtime=1569569250.255638352 30 atime=1569569250.252638353 30 ctime=1569569250.255638352 elk-6.3.2/examples/GW/Si/GWSF_K000001.OUT0000644002504400250440000010066613543334742020676 0ustar00dewhurstdewhurst00000000000000 -0.8000000000 1.233645995 -0.7983750000 1.234174789 -0.7967500000 1.082149685 -0.7951250000 1.052030490 -0.7935000000 1.322191902 -0.7918750000 1.557510429 -0.7902500000 1.805241092 -0.7886250000 2.093871872 -0.7870000000 2.446310307 -0.7853750000 2.895651872 -0.7837500000 3.420703366 -0.7821250000 4.072064806 -0.7805000000 4.946048548 -0.7788750000 6.048673689 -0.7772500000 7.598366858 -0.7756250000 9.699416375 -0.7740000000 12.53349555 -0.7723750000 16.13107096 -0.7707500000 18.14959514 -0.7691250000 16.42342744 -0.7675000000 12.64425931 -0.7658750000 9.801527119 -0.7642500000 9.341045938 -0.7626250000 9.983502760 -0.7610000000 9.893469598 -0.7593750000 8.529133893 -0.7577500000 6.754611882 -0.7561250000 5.685335598 -0.7545000000 4.987129003 -0.7528750000 4.424231971 -0.7512500000 4.065725912 -0.7496250000 4.102841109 -0.7480000000 4.317742439 -0.7463750000 3.984125121 -0.7447500000 3.572598359 -0.7431250000 3.243673378 -0.7415000000 3.016243379 -0.7398750000 2.733133886 -0.7382500000 2.430960225 -0.7366250000 2.269961265 -0.7350000000 2.171591561 -0.7333750000 2.182219901 -0.7317500000 2.078968705 -0.7301250000 2.334622917 -0.7285000000 2.736027983 -0.7268750000 2.353793285 -0.7252500000 2.148712809 -0.7236250000 4.137178349 -0.7220000000 3.732123430 -0.7203750000 3.607432655 -0.7187500000 1.566334339 -0.7171250000 1.199443030 -0.7155000000 1.306590599 -0.7138750000 1.099981379 -0.7122500000 1.066199340 -0.7106250000 0.9535726450 -0.7090000000 1.019606033 -0.7073750000 1.025092663 -0.7057500000 0.9857759820 -0.7041250000 1.009249479 -0.7025000000 1.035346419 -0.7008750000 1.083592848 -0.6992500000 1.234511200 -0.6976250000 1.039922461 -0.6960000000 0.9783661125 -0.6943750000 0.9294540482 -0.6927500000 0.9254229847 -0.6911250000 0.9470869120 -0.6895000000 0.9607108157 -0.6878750000 1.010698836 -0.6862500000 0.9337524166 -0.6846250000 0.8883658587 -0.6830000000 0.8352754710 -0.6813750000 0.7995445680 -0.6797500000 0.7553268398 -0.6781250000 0.7069977389 -0.6765000000 0.6868709786 -0.6748750000 0.6766995188 -0.6732500000 0.6802556356 -0.6716250000 0.7284599988 -0.6700000000 0.7876219477 -0.6683750000 0.8309171467 -0.6667500000 0.8506946696 -0.6651250000 0.8411708941 -0.6635000000 0.8098471661 -0.6618750000 0.8065834328 -0.6602500000 0.8271119589 -0.6586250000 0.8371924088 -0.6570000000 0.8350046722 -0.6553750000 0.8289684693 -0.6537500000 0.8299786618 -0.6521250000 0.8449440703 -0.6505000000 0.8512573372 -0.6488750000 0.8588548275 -0.6472500000 0.8657762923 -0.6456250000 0.8740824508 -0.6440000000 0.8900581388 -0.6423750000 0.9108157074 -0.6407500000 0.9394712372 -0.6391250000 0.9928343115 -0.6375000000 1.006815980 -0.6358750000 1.032572294 -0.6342500000 1.055540304 -0.6326250000 1.107537771 -0.6310000000 1.173102812 -0.6293750000 1.142576253 -0.6277500000 1.126997457 -0.6261250000 1.102377237 -0.6245000000 1.062452561 -0.6228750000 1.015569262 -0.6212500000 1.016770355 -0.6196250000 1.016943201 -0.6180000000 1.001309186 -0.6163750000 0.9134445869 -0.6147500000 0.8507184760 -0.6131250000 0.9256717690 -0.6115000000 0.9892081108 -0.6098750000 1.040976022 -0.6082500000 1.086863909 -0.6066250000 1.127669249 -0.6050000000 1.162829033 -0.6033750000 1.192808101 -0.6017500000 1.215655837 -0.6001250000 1.238834724 -0.5985000000 1.285131114 -0.5968750000 1.321563638 -0.5952500000 1.358962201 -0.5936250000 1.399576574 -0.5920000000 1.437998531 -0.5903750000 1.434648990 -0.5887500000 1.481143883 -0.5871250000 1.377274406 -0.5855000000 1.373908300 -0.5838750000 1.334283395 -0.5822500000 1.387051852 -0.5806250000 1.434873222 -0.5790000000 1.448473189 -0.5773750000 1.711601416 -0.5757500000 1.493970365 -0.5741250000 1.435434279 -0.5725000000 1.407542722 -0.5708750000 1.447678946 -0.5692500000 1.440328869 -0.5676250000 1.438416360 -0.5660000000 1.410905753 -0.5643750000 1.519215625 -0.5627500000 1.455752890 -0.5611250000 1.494886379 -0.5595000000 1.512123602 -0.5578750000 1.493698077 -0.5562500000 1.497250878 -0.5546250000 1.524087146 -0.5530000000 1.522763329 -0.5513750000 1.541304415 -0.5497500000 1.560716269 -0.5481250000 1.580557873 -0.5465000000 1.597440531 -0.5448750000 1.630269535 -0.5432500000 1.679986866 -0.5416250000 1.734923060 -0.5400000000 1.795449733 -0.5383750000 1.856355363 -0.5367500000 1.921779587 -0.5351250000 1.989331189 -0.5335000000 2.067493353 -0.5318750000 2.165246560 -0.5302500000 2.280472737 -0.5286250000 2.419310696 -0.5270000000 2.542194260 -0.5253750000 2.581120950 -0.5237500000 2.634260541 -0.5221250000 2.764514480 -0.5205000000 3.100829970 -0.5188750000 4.221628081 -0.5172500000 2.381019714 -0.5156250000 2.462858350 -0.5140000000 2.614964290 -0.5123750000 2.635501612 -0.5107500000 2.743317861 -0.5091250000 2.970727890 -0.5075000000 3.234372781 -0.5058750000 3.498878260 -0.5042500000 3.709503204 -0.5026250000 3.839432376 -0.5010000000 3.904086934 -0.4993750000 4.025471105 -0.4977500000 4.196687871 -0.4961250000 4.338153650 -0.4945000000 4.476666247 -0.4928750000 4.629833009 -0.4912500000 4.822418939 -0.4896250000 5.055991266 -0.4880000000 5.329442504 -0.4863750000 5.668697960 -0.4847500000 6.046587828 -0.4831250000 6.475058612 -0.4815000000 6.962859111 -0.4798750000 7.496899614 -0.4782500000 8.062844914 -0.4766250000 8.638793673 -0.4750000000 9.175247962 -0.4733750000 9.643601540 -0.4717500000 9.952635703 -0.4701250000 10.04724457 -0.4685000000 9.879931873 -0.4668750000 9.682777281 -0.4652500000 9.856646824 -0.4636250000 10.39232236 -0.4620000000 11.21627874 -0.4603750000 12.00547669 -0.4587500000 12.97348115 -0.4571250000 13.97567288 -0.4555000000 14.96647592 -0.4538750000 15.89275501 -0.4522500000 16.67693684 -0.4506250000 17.27945284 -0.4490000000 17.63054288 -0.4473750000 17.70127807 -0.4457500000 17.59716246 -0.4441250000 17.29098672 -0.4425000000 17.00879126 -0.4408750000 16.77879620 -0.4392500000 16.52247133 -0.4376250000 16.08694359 -0.4360000000 15.38722552 -0.4343750000 14.42386067 -0.4327500000 13.36422602 -0.4311250000 12.22139602 -0.4295000000 11.06925532 -0.4278750000 10.03402783 -0.4262500000 9.130065801 -0.4246250000 8.159403830 -0.4230000000 7.334667565 -0.4213750000 6.595843045 -0.4197500000 6.033594792 -0.4181250000 5.713102341 -0.4165000000 5.516007018 -0.4148750000 5.224479787 -0.4132500000 4.974508108 -0.4116250000 4.715829295 -0.4100000000 4.457419102 -0.4083750000 4.159130762 -0.4067500000 3.825250217 -0.4051250000 3.536916887 -0.4035000000 3.277738124 -0.4018750000 3.102207449 -0.4002500000 2.857070405 -0.3986250000 2.626281225 -0.3970000000 2.442525254 -0.3953750000 2.282279070 -0.3937500000 2.148743260 -0.3921250000 2.045395258 -0.3905000000 1.956368870 -0.3888750000 1.884801954 -0.3872500000 1.848561943 -0.3856250000 1.743075429 -0.3840000000 1.586351220 -0.3823750000 1.446276435 -0.3807500000 1.291352717 -0.3791250000 1.069692068 -0.3775000000 0.9386810728 -0.3758750000 1.313867253 -0.3742500000 1.305368686 -0.3726250000 1.256408440 -0.3710000000 1.182757033 -0.3693750000 1.127578957 -0.3677500000 1.080533350 -0.3661250000 1.052812986 -0.3645000000 1.080658363 -0.3628750000 1.081193565 -0.3612500000 1.059847110 -0.3596250000 1.022276503 -0.3580000000 0.9687916276 -0.3563750000 0.9274912069 -0.3547500000 0.8914918842 -0.3531250000 0.8644440308 -0.3515000000 0.8497591687 -0.3498750000 0.8279646570 -0.3482500000 0.8261230445 -0.3466250000 0.8511352746 -0.3450000000 0.8784249638 -0.3433750000 0.9205401498 -0.3417500000 0.8381129633 -0.3401250000 0.7463547540 -0.3385000000 0.7087708420 -0.3368750000 0.6718457274 -0.3352500000 0.6567580715 -0.3336250000 0.6645462784 -0.3320000000 0.6987356090 -0.3303750000 0.6481813911 -0.3287500000 0.6566070158 -0.3271250000 0.6076837925 -0.3255000000 0.5826202415 -0.3238750000 0.5844371565 -0.3222500000 0.5764516323 -0.3206250000 0.5622386815 -0.3190000000 0.5489126731 -0.3173750000 0.5413759464 -0.3157500000 0.5477448381 -0.3141250000 0.5923387325 -0.3125000000 0.5755928869 -0.3108750000 0.6202886841 -0.3092500000 0.6560515473 -0.3076250000 0.6747001313 -0.3060000000 0.6923734596 -0.3043750000 0.7609351036 -0.3027500000 0.6312652151 -0.3011250000 0.6004425191 -0.2995000000 0.5592183739 -0.2978750000 0.5593312932 -0.2962500000 0.4904959605 -0.2946250000 0.4375036468 -0.2930000000 0.4258657702 -0.2913750000 0.4490348746 -0.2897500000 0.4114058181 -0.2881250000 0.3978577618 -0.2865000000 0.4022370268 -0.2848750000 0.3855556296 -0.2832500000 0.3715351536 -0.2816250000 0.3315160429 -0.2800000000 0.2967524246 -0.2783750000 0.3228707103 -0.2767500000 0.3060293839 -0.2751250000 0.2984848897 -0.2735000000 0.2846012719 -0.2718750000 0.2768485816 -0.2702500000 0.2423416731 -0.2686250000 0.2851768057 -0.2670000000 0.2971084640 -0.2653750000 0.2898620945 -0.2637500000 0.2872724161 -0.2621250000 0.3084663251 -0.2605000000 0.2939573788 -0.2588750000 0.2937200244 -0.2572500000 0.2964852887 -0.2556250000 0.3064056499 -0.2540000000 0.3020957902 -0.2523750000 0.3101561374 -0.2507500000 0.2948596459 -0.2491250000 0.3091821727 -0.2475000000 0.3300629500 -0.2458750000 0.2880027291 -0.2442500000 0.3187592598 -0.2426250000 0.3119947689 -0.2410000000 0.3094171270 -0.2393750000 0.3118591543 -0.2377500000 0.3127170211 -0.2361250000 0.3234636188 -0.2345000000 0.3202181308 -0.2328750000 0.3131887483 -0.2312500000 0.3263352593 -0.2296250000 0.3597637741 -0.2280000000 0.3461509673 -0.2263750000 0.3596932249 -0.2247500000 0.3877036009 -0.2231250000 0.4150217294 -0.2215000000 0.3777384734 -0.2198750000 0.3970662611 -0.2182500000 0.4297445147 -0.2166250000 0.4117412855 -0.2150000000 0.4119243494 -0.2133750000 0.4155184408 -0.2117500000 0.4158429903 -0.2101250000 0.3993406703 -0.2085000000 0.4044223280 -0.2068750000 0.3924243231 -0.2052500000 0.3853717201 -0.2036250000 0.3561362780 -0.2020000000 0.3719698354 -0.2003750000 0.3722555825 -0.1987500000 0.3640783412 -0.1971250000 0.3540215793 -0.1955000000 0.3396462804 -0.1938750000 0.3377683475 -0.1922500000 0.3555337813 -0.1906250000 0.3612931479 -0.1890000000 0.3621747646 -0.1873750000 0.3532286884 -0.1857500000 0.3624536299 -0.1841250000 0.3641565759 -0.1825000000 0.3644079137 -0.1808750000 0.3634390685 -0.1792500000 0.3785658194 -0.1776250000 0.3806075089 -0.1760000000 0.3886157965 -0.1743750000 0.3955045974 -0.1727500000 0.4064837150 -0.1711250000 0.4150428114 -0.1695000000 0.4261183169 -0.1678750000 0.4326207701 -0.1662500000 0.4416299270 -0.1646250000 0.4577031390 -0.1630000000 0.4773543330 -0.1613750000 0.4711457627 -0.1597500000 0.4762123194 -0.1581250000 0.5540824415 -0.1565000000 0.4878365448 -0.1548750000 0.5071181383 -0.1532500000 0.5143395153 -0.1516250000 0.5335619871 -0.1500000000 0.5429506548 -0.1483750000 0.5685414170 -0.1467500000 0.6035251621 -0.1451250000 0.6166860581 -0.1435000000 0.6075198977 -0.1418750000 0.6509163620 -0.1402500000 0.6589714123 -0.1386250000 0.6778881061 -0.1370000000 0.6011338271 -0.1353750000 0.7143798169 -0.1337500000 0.7252924392 -0.1321250000 0.7118303263 -0.1305000000 0.6674211308 -0.1288750000 0.6859255241 -0.1272500000 0.6828246411 -0.1256250000 0.6886261882 -0.1240000000 0.7093714032 -0.1223750000 0.7057709012 -0.1207500000 0.7092400623 -0.1191250000 0.7125117994 -0.1175000000 0.7424229028 -0.1158750000 0.7643590312 -0.1142500000 0.7889689500 -0.1126250000 0.8142089383 -0.1110000000 0.8398482401 -0.1093750000 0.8573103791 -0.1077500000 0.8821178679 -0.1061250000 0.8916601639 -0.1045000000 0.9071733320 -0.1028750000 0.9337121629 -0.1012500000 0.9559136458 -0.9962500000E-01 0.9867304325 -0.9800000000E-01 1.019811867 -0.9637500000E-01 1.035368722 -0.9475000000E-01 1.087031036 -0.9312500000E-01 1.111996675 -0.9150000000E-01 1.141749211 -0.8987500000E-01 1.177627819 -0.8825000000E-01 1.214675755 -0.8662500000E-01 1.271771822 -0.8500000000E-01 1.300582765 -0.8337500000E-01 1.361891832 -0.8175000000E-01 1.424334405 -0.8012500000E-01 1.483499848 -0.7850000000E-01 1.537611006 -0.7687500000E-01 1.600991970 -0.7525000000E-01 1.668820407 -0.7362500000E-01 1.780664719 -0.7200000000E-01 1.923501470 -0.7037500000E-01 2.113146093 -0.6875000000E-01 2.240179283 -0.6712500000E-01 2.736138092 -0.6550000000E-01 2.796025377 -0.6387500000E-01 2.560687896 -0.6225000000E-01 2.372753995 -0.6062500000E-01 2.384002788 -0.5900000000E-01 2.495913264 -0.5737500000E-01 2.588478454 -0.5575000000E-01 2.741572287 -0.5412500000E-01 2.871439951 -0.5250000000E-01 3.111678856 -0.5087500000E-01 3.340784307 -0.4925000000E-01 3.597869331 -0.4762500000E-01 3.888088496 -0.4600000000E-01 4.217889714 -0.4437500000E-01 4.596114382 -0.4275000000E-01 5.026214075 -0.4112500000E-01 5.526746139 -0.3950000000E-01 6.112348679 -0.3787500000E-01 6.803189637 -0.3625000000E-01 7.626367501 -0.3462500000E-01 8.618784879 -0.3300000000E-01 9.832641578 -0.3137500000E-01 11.34056198 -0.2975000000E-01 13.24949236 -0.2812500000E-01 15.72108100 -0.2650000000E-01 19.00868618 -0.2487500000E-01 23.52931083 -0.2325000000E-01 30.00969765 -0.2162500000E-01 39.80395009 -0.2000000000E-01 55.62154138 -0.1837500000E-01 83.12983075 -0.1675000000E-01 132.3183983 -0.1512500000E-01 197.5877094 -0.1350000000E-01 224.9260793 -0.1187500000E-01 285.9924798 -0.1025000000E-01 85.30694486 -0.8625000000E-02 3.671201094 -0.7000000000E-02 162.4176827 -0.5375000000E-02 245.9500598 -0.3750000000E-02 288.8156348 -0.2125000000E-02 212.9691149 -0.5000000000E-03 129.5249901 0.1125000000E-02 81.87328852 0.2750000000E-02 55.85691160 0.4375000000E-02 40.60642799 0.6000000000E-02 30.97940990 0.7625000000E-02 24.52285837 0.9250000000E-02 19.98215836 0.1087500000E-01 16.66647552 0.1250000000E-01 14.17343135 0.1412500000E-01 12.25433655 0.1575000000E-01 10.74146307 0.1737500000E-01 9.531459533 0.1900000000E-01 8.555637007 0.2062500000E-01 7.751210953 0.2225000000E-01 7.085294890 0.2387500000E-01 6.523344970 0.2550000000E-01 6.060232477 0.2712500000E-01 5.664285113 0.2875000000E-01 5.307790652 0.3037500000E-01 5.035835293 0.3200000000E-01 4.795019363 0.3362500000E-01 4.590870610 0.3525000000E-01 4.417411327 0.3687500000E-01 4.278443356 0.3850000000E-01 4.163551237 0.4012500000E-01 4.075287756 0.4175000000E-01 4.009445065 0.4337500000E-01 3.959060873 0.4500000000E-01 3.926666857 0.4662500000E-01 3.926892569 0.4825000000E-01 3.936888916 0.4987500000E-01 3.966733627 0.5150000000E-01 4.012851811 0.5312500000E-01 4.081705736 0.5475000000E-01 4.172755663 0.5637500000E-01 4.286390053 0.5800000000E-01 4.423503877 0.5962500000E-01 4.571227140 0.6125000000E-01 4.777088246 0.6287500000E-01 5.008360595 0.6450000000E-01 5.275498041 0.6612500000E-01 5.589189112 0.6775000000E-01 5.970389636 0.6937500000E-01 6.419649270 0.7100000000E-01 6.948796777 0.7262500000E-01 7.615794842 0.7425000000E-01 8.339629296 0.7587500000E-01 9.233612422 0.7750000000E-01 10.14203990 0.7912500000E-01 11.74484803 0.8075000000E-01 12.89049991 0.8237500000E-01 13.00290982 0.8400000000E-01 6.533766224 0.8562500000E-01 6.038647276 0.8725000000E-01 4.715143905 0.8887500000E-01 9.749790167 0.9050000000E-01 15.16837632 0.9212500000E-01 23.92483687 0.9375000000E-01 35.65079034 0.9537500000E-01 52.74977070 0.9700000000E-01 79.12623032 0.9862500000E-01 127.7721667 0.1002500000 211.7244301 0.1018750000 308.5887367 0.1035000000 354.8008682 0.1051250000 330.3708040 0.1067500000 250.0746949 0.1083750000 161.9228045 0.1100000000 102.9615314 0.1116250000 69.41164219 0.1132500000 49.96569947 0.1148750000 37.94128904 0.1165000000 30.16315597 0.1181250000 25.11320914 0.1197500000 21.69453043 0.1213750000 19.16296174 0.1230000000 17.67070945 0.1246250000 17.14876625 0.1262500000 18.02827036 0.1278750000 19.95070881 0.1295000000 23.63584791 0.1311250000 30.48432963 0.1327500000 43.53322626 0.1343750000 63.03821025 0.1360000000 95.10526971 0.1376250000 139.3846623 0.1392500000 142.9325975 0.1408750000 99.09262728 0.1425000000 57.47468169 0.1441250000 36.90150927 0.1457500000 26.09035012 0.1473750000 18.84691654 0.1490000000 13.88038296 0.1506250000 10.66278001 0.1522500000 8.618397214 0.1538750000 7.347016452 0.1555000000 6.256327372 0.1571250000 5.229526294 0.1587500000 4.712336033 0.1603750000 4.352893316 0.1620000000 3.968997399 0.1636250000 3.568584940 0.1652500000 3.301211450 0.1668750000 2.965244492 0.1685000000 2.761553111 0.1701250000 2.663228159 0.1717500000 2.495876430 0.1733750000 2.398385244 0.1750000000 2.329317843 0.1766250000 2.165254801 0.1782500000 2.045402383 0.1798750000 1.968130479 0.1815000000 1.884178543 0.1831250000 1.904250026 0.1847500000 1.761632674 0.1863750000 1.742768482 0.1880000000 1.689974121 0.1896250000 1.607053276 0.1912500000 1.575166304 0.1928750000 1.528169590 0.1945000000 1.461381724 0.1961250000 1.477506911 0.1977500000 1.486235829 0.1993750000 1.418696934 0.2010000000 1.384788075 0.2026250000 1.399416222 0.2042500000 1.389195372 0.2058750000 1.303514500 0.2075000000 1.359069628 0.2091250000 1.364404567 0.2107500000 1.365585987 0.2123750000 1.263862776 0.2140000000 1.267720607 0.2156250000 1.317686777 0.2172500000 1.283527790 0.2188750000 1.293262353 0.2205000000 1.383950528 0.2221250000 1.352750667 0.2237500000 1.373311424 0.2253750000 1.402624165 0.2270000000 1.400416457 0.2286250000 1.434334353 0.2302500000 1.518711724 0.2318750000 1.491252805 0.2335000000 1.493386084 0.2351250000 1.527866124 0.2367500000 1.616390337 0.2383750000 1.433700214 0.2400000000 1.406369100 0.2416250000 1.469279079 0.2432500000 1.357593958 0.2448750000 1.497208357 0.2465000000 1.417357503 0.2481250000 1.734137843 0.2497500000 2.315548817 0.2513750000 1.802914656 0.2530000000 1.631495261 0.2546250000 1.611069967 0.2562500000 1.837738787 0.2578750000 2.752979537 0.2595000000 1.910586414 0.2611250000 3.656167563 0.2627500000 1.537020248 0.2643750000 1.638940418 0.2660000000 3.113717255 0.2676250000 1.200343801 0.2692500000 1.647966741 0.2708750000 2.536259602 0.2725000000 3.690303542 0.2741250000 5.794971781 0.2757500000 15.83421465 0.2773750000 12.22589538 0.2790000000 11.47943742 0.2806250000 10.68415622 0.2822500000 15.52998970 0.2838750000 31.81482462 0.2855000000 605.2559892 0.2871250000 81.41688130 0.2887500000 38.56012664 0.2903750000 28.65320807 0.2920000000 40.81990965 0.2936250000 74.21750093 0.2952500000 157.2132802 0.2968750000 311.2399557 0.2985000000 177.3413822 0.3001250000 142.1055123 0.3017500000 64.49910739 0.3033750000 35.05980488 0.3050000000 29.32492676 0.3066250000 19.41811557 0.3082500000 10.68474122 0.3098750000 6.938832325 0.3115000000 5.166535560 0.3131250000 10.06221336 0.3147500000 3.830943699 0.3163750000 3.790425683 0.3180000000 2.839748602 0.3196250000 2.026227603 0.3212500000 2.013797442 0.3228750000 1.650698645 0.3245000000 1.888107912 0.3261250000 1.520298242 0.3277500000 1.347253393 0.3293750000 2.619396060 0.3310000000 0.9018385344 0.3326250000 0.8832667182 0.3342500000 0.8565585689 0.3358750000 0.9954099362 0.3375000000 1.233894425 0.3391250000 1.540413885 0.3407500000 3.057499187 0.3423750000 1.658812131 0.3440000000 1.414833028 0.3456250000 1.254069909 0.3472500000 1.660696094 0.3488750000 1.894661819 0.3505000000 2.111420739 0.3521250000 2.376092265 0.3537500000 2.660252305 0.3553750000 2.659840761 0.3570000000 2.833102053 0.3586250000 2.992591420 0.3602500000 2.908690353 0.3618750000 3.339033117 0.3635000000 4.417426267 0.3651250000 4.000119803 0.3667500000 5.085818340 0.3683750000 4.484758726 0.3700000000 4.047073140 0.3716250000 3.932068022 0.3732500000 4.501613244 0.3748750000 6.565232054 0.3765000000 9.501522693 0.3781250000 8.626529949 0.3797500000 10.44047172 0.3813750000 10.28329947 0.3830000000 7.991488159 0.3846250000 11.58878644 0.3862500000 16.61819193 0.3878750000 24.13660214 0.3895000000 25.76852343 0.3911250000 30.71424402 0.3927500000 40.51142341 0.3943750000 58.97296096 0.3960000000 77.77894772 0.3976250000 106.9231858 0.3992500000 183.3090670 0.4008750000 109.9870598 0.4025000000 151.4182416 0.4041250000 239.7831576 0.4057500000 224.4923457 0.4073750000 201.4927646 0.4090000000 281.0298055 0.4106250000 347.7077363 0.4122500000 244.7484073 0.4138750000 146.2596851 0.4155000000 86.08806822 0.4171250000 62.65561342 0.4187500000 53.38070839 0.4203750000 43.01333445 0.4220000000 34.88786312 0.4236250000 37.56776732 0.4252500000 35.71306817 0.4268750000 28.87161138 0.4285000000 17.45356246 0.4301250000 13.56150406 0.4317500000 14.12036679 0.4333750000 12.91028213 0.4350000000 11.76303977 0.4366250000 10.66747181 0.4382500000 9.579208511 0.4398750000 8.580800642 0.4415000000 7.850298873 0.4431250000 7.703482797 0.4447500000 6.866150293 0.4463750000 6.150321216 0.4480000000 5.620706184 0.4496250000 6.039247869 0.4512500000 6.060103436 0.4528750000 6.882720474 0.4545000000 6.977903104 0.4561250000 5.702774510 0.4577500000 4.590788089 0.4593750000 4.742108513 0.4610000000 5.959436892 0.4626250000 4.361682197 0.4642500000 5.751934614 0.4658750000 3.709682661 0.4675000000 2.636925558 0.4691250000 2.432392367 0.4707500000 2.549257781 0.4723750000 2.673988226 0.4740000000 2.722321569 0.4756250000 2.657313761 0.4772500000 2.570848433 0.4788750000 2.530018475 0.4805000000 2.564924757 0.4821250000 3.191469845 0.4837500000 2.991905089 0.4853750000 2.733508574 0.4870000000 2.547840564 0.4886250000 2.405592954 0.4902500000 2.605873081 0.4918750000 2.677796930 0.4935000000 2.672249847 0.4951250000 2.616822391 0.4967500000 3.266705386 0.4983750000 3.260215422 -0.4490921551 0.000000000 -0.4490921551 210.5166950 -0.8880371772E-02 0.000000000 -0.8880371772E-02 210.5166950 -0.8880371694E-02 0.000000000 -0.8880371694E-02 210.5166950 -0.8880371694E-02 0.000000000 -0.8880371694E-02 210.5166950 0.8347326035E-01 0.000000000 0.8347326035E-01 210.5166950 0.8347326043E-01 0.000000000 0.8347326043E-01 210.5166950 0.8347326043E-01 0.000000000 0.8347326043E-01 210.5166950 0.1082471941 0.000000000 0.1082471941 210.5166950 0.2722011482 0.000000000 0.2722011482 210.5166950 0.2751215087 0.000000000 0.2751215087 210.5166950 0.2751215087 0.000000000 0.2751215087 210.5166950 0.3985573554 0.000000000 0.3985573554 210.5166950 0.3985573556 0.000000000 0.3985573556 210.5166950 0.3985573556 0.000000000 0.3985573556 210.5166950 0.5441096240 0.000000000 0.5441096240 210.5166950 0.8291470074 0.000000000 0.8291470074 210.5166950 0.8291470074 0.000000000 0.8291470074 210.5166950 0.8291470075 0.000000000 0.8291470075 210.5166950 0.8700428382 0.000000000 0.8700428382 210.5166950 0.8700428382 0.000000000 0.8700428382 210.5166950 0.9259938135 0.000000000 0.9259938135 210.5166950 0.9259938154 0.000000000 0.9259938154 210.5166950 0.9259938154 0.000000000 0.9259938154 210.5166950 1.070509290 0.000000000 1.070509290 210.5166950 1.070509299 0.000000000 1.070509299 210.5166950 1.070509299 0.000000000 1.070509299 210.5166950 1.246855885 0.000000000 1.246855885 210.5166950 1.246855886 0.000000000 1.246855886 210.5166950 1.246855886 0.000000000 1.246855886 210.5166950 1.385428722 0.000000000 1.385428722 210.5166950 1.385428722 0.000000000 1.385428722 210.5166950 1.392200748 0.000000000 1.392200748 210.5166950 1.470137005 0.000000000 1.470137005 210.5166950 1.470137005 0.000000000 1.470137005 210.5166950 1.534907205 0.000000000 1.534907205 210.5166950 1.534907205 0.000000000 1.534907205 210.5166950 1.534907218 0.000000000 1.534907218 210.5166950 1.608859956 0.000000000 1.608859956 210.5166950 1.608859956 0.000000000 1.608859956 210.5166950 1.608859957 0.000000000 1.608859957 210.5166950 1.633749355 0.000000000 1.633749355 210.5166950 1.645568484 0.000000000 1.645568484 210.5166950 1.645568484 0.000000000 1.645568484 210.5166950 1.645568486 0.000000000 1.645568486 210.5166950 1.650509122 0.000000000 1.650509122 210.5166950 elk-6.3.2/examples/GW/PaxHeaders.21352/HEG0000644000000000000000000000013213543334742014517 xustar0030 mtime=1569569250.705638064 30 atime=1569569250.259638349 30 ctime=1569569250.705638064 elk-6.3.2/examples/GW/HEG/0000755002504400250440000000000013543334742016643 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/HEG/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334742015677 xustar0030 mtime=1569569250.261638348 30 atime=1569569250.261638348 30 ctime=1569569250.261638348 elk-6.3.2/examples/GW/HEG/elk.in0000644002504400250440000000143613543334742017752 0ustar00dewhurstdewhurst00000000000000 ! Hartree-Fock ground state of the homogenous electron gas. The Wigner radius ! (r_s) is written to INFO.OUT. Note that the exact exchange energy is only ! computed during the last iteration. tasks 0 20 620 actype 10 plot1d 2 50 : nvp1d, npp1d 0.0 0.0 1.0 : vlvp1d 0.5 0.5 1.0 ! Matsubara frequency cut-off wmaxgw 5.0 ! response function G-vector cut-off gmaxrf 3.0 ! temperature of many-body system (determines Matsubara frequency spacing) tempk 2000.0 wplot 800 100 0 -1.5 2.0 nempty 40 chgexs 10.0 ! use the unit cell of aluminium avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.75 ! note that low density gases require denser k-point grids! ngridk 8 8 8 ngridq 4 4 4 elk-6.3.2/examples/GW/HEG/PaxHeaders.21352/HEG.png0000644000000000000000000000013213543334742015705 xustar0030 mtime=1569569250.296638325 30 atime=1569569250.265638345 30 ctime=1569569250.296638325 elk-6.3.2/examples/GW/HEG/HEG.png0000644002504400250440000125745313543334742017775 0ustar00dewhurstdewhurst00000000000000PNG  IHDR v pHYstt;(tIME &1 IDATxk++){`}?v#]X2vIcJb(################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################ע|ow /7|'|Exp|ݦTwׁg'>V_flk5ӫnk/D;~sd[7j 6oڎ50qCbUE%<ͮc1v!E1!XeUzq kxTWTbFjq,cjEB,Τs2 :KmNBHTl|{o&ο }߯}py#ϸϝsTl!b!buam`OwU~ FvΣf8R5Q Xw0NJEQ1e+>W ߰zwn1t<)-7TtƪTwO}SŘ"Tٴh [Pqk8&Ah)UA‚jwXXW*D0MLݶ(1u9hP֩ pJU̺G#8 UoN[ WeԔ;8]ŀ84ת6XJ5o˨ U\Fvu>ۑrH{눱|ǧab&7¡ )!/ Lٟck_Ѯ5MyY<[`,[f9=Ml0d-i̲AUc 2xdCc+>Q4DSզ5N2i.WXpBa%1cxG1ذSiz?gcVxe*M0}" &MEy4Ы6շg+Xi AG"#ݡ!XX}ʰ%+1:ŦDf$a2o-)6uhTSrl>MLLe>c)Ԩ gH?6V0i|,ߦW\@}Jyc TյiP,f.;cxjfWUbc6o"W+*A%JwVGYꅖ1lj| m8RZHST֫UH"<}E(Ndxb;ِJYejMM14ϭV㸖E3YtHWk}Xjp#UAcsM_1&l[i{t5<n@S# Wfն<$`oML"A oYu&wX$ɩ9>W0h6iYPu[ƭP٦I]MpXE+v7qdoCFݽ_a q5hq>a>*\CwܹoV"TfXk@_l_y3_X*!=[;m R~UsTvyf 7θ(G-IɶE, 0cM%Dj?!¹j4Ŋa9 cWHq~= uSVf7up5nph#{U{(YUs c.Y|QePt5heI!rl 1̰H(Dϳvp*\ѣJ;JZ 噖\?ANEpO8T5vͯҀZ1@˘+A6@r gR9Xs8GX9FRb6IGWV< [R W.;=XGMpDsh+YҝWIeH]'t%ٍa%KǢ5B,U![h!]]V !HW2XuņiK^GmusΩ Xa w$]f?a5!"w 4[Q{AVq⩑P#(tUxǀvj"-[ )B=%2 c'%)]EHZ398Q]Eo6v)_Uc*vs>,pOrXjkua F+2rh5FHT&G8鼠ݏBngi`Ld9hQjZOEod-&Š0A-XdlN~d?b֊OH S$Ég_D>u:uӡS"QU'ꨢ>ENX-rU~BXEuDNQNR#$Qu>ۑ:U誺G9̝d_ GYE[I\ U^9Ss(M☤ueRocHZ)kg˅_UȺ}%a} g mL/EϒSOlG*oZ8D_ZJτtEƏ8ԝ?d8~q: lEBUrQpN'JHW>PdV! y^T>Ե'5MTTN_l`GWc͡UmJI`Ȱs&4$>\@ dXꏄ1Rc6(7DFfY茯EAy 2& X`My }ZQdsrtuUȁG|s>\c *_ WsgB&֧"CW!Uu}.)p8؁?4w<>l-7GWdHD9C (ުAWu&53ѕ?ur1G5Ck"KsMoohq*JSO`\14f [hp !]0k?c!/, TkrVjKs@I5f5;[5r/<͗+jʹ-E,\2 1F@F怯SʐW2> ä5v~u$~p58S5Y|58mrօt;w o_AV]qMءUY?hV FVF4aixA9'tEkѲ u5i 'nQroJNGjBlsT 6n ކnZE@sέ; U X@"ߠ~K9=lC" ß*^lc:g*Hy$Pwd :BNuBP5,-\_ZUi7LHY/P"p}nr|97O[ \\s;;銴jm+t(O .2ТE_#*[}FqQFdd)~lyFX~kZ>)NbM!b.B+r'[_GB#`X@n)?Wzu\ }¡JmT{;2b$U4 bX<\Wt)\Ty3mO*Wdhy>dCRRґ:_ f$rg3u%3SbUSV \%5sH BHgHX^ a5\q[y \ţ4s+ž5[ Wxc s`+̈́zY)EV:in"tEQЙ)``Žsoԍ} (T a"UHpi.;v9Ou򽮤 {ZڕmʈG#YיִiCM5n*N8U 7޽}X4{2:Bq9r()bsp*se|5M=R05~[|oPFJYlx}@cuͳ}ggE|]V`Ż9]ۻSZX,*2Q5P e[ ѱZWQSc i=:19}ezKgk6l!!g:]W]w?Cs7$`ݡ` u. 凢xfΈ^Uq]v%ӭȘ1 l8PD%gtRnl2V4j}g06 4,)|[nTXlp 6R,0YQ v٥EM3.X&[QW[|e%ZBgmiP=9%<Uh -RZuo ժ,VYR{ezl,$'i<SV(zq܂аNÔf~]uJq䠆ł7h>.WRmp\IoCYcx ,Wu83|y@لkeYbTJ&QE kvzjǥ,u4*bB{Nv\YN]WFq,@mb:]B)f"g:#5>`ψ+$7GիC|P >Z p n,~e M*lD,=-y}y~ RꛖK*@+u@q6gNJ j:验SF?pr,.2ʏA30^*:(]J@+*x2k_U(}+d.Mj N ,A> 0&sT*=$ KXtq@R4/{u?璅=R9j NZpBgQRWqVd,z، &Xp\҈ЪۓF9Ve-CJT Je,d]d N0bZPXspWV) 'bks/C|6tac}VD@ 6ԡcNکk hR*@VбT=D+t֛ZtT #b0V C6rPŕE2n?dra.Ulqb۴+ ^Shi4%A-7,ыc^>XaUMb;++(uR[6/#Rf<أ׆U!T|6fGբ <!QôO? ٕ{ > %%3hUafp,WrluZ}*`U/vwXixetHWdVg2YX!#Ym>E;-tEW3E1:~ykhUf 2xh Q䇧 nIwْPIfjUja3M0,4Xjcf ,[SrȕNr&5Ғ-/Ҿw͑5*q7S݋+N jVS#bwwrBMddGЕ?Z]Dő\a>AW f9a^E KBOWF*A+'GkHr[$?o v`>Εc#T~j-bېz][x&۠,IZZ9L\ Xִʨi$.v*5&&?Hgu})XdvmbjZh*qgd::HWl`ZjO..zu9y)M2'ܰg[Td8JXf "0)!Vq_bw>1\# JTz.i#Qu-GzsSw]E ~kEOrRjg!)n^5 kjSݰ:)lz64w'Wp̙Wni-<d]9Ou!wi IUd{x:oN8b.d61_ٰ7+D+d:AW,5q8z#ΈZ IDAT u( Րpd6}KFσpYږ~}db"\_+,*@)'8Rk \N}‹(vdj2X'vҾrYG3uhu9UKـ pE!]VhO&n1R{A6#Uo8X.nڣfQ \WWÜfBB%_ σs1`_g+ҧOUvP,;B9Xhw'XG3 \-bAWQVjSeN95 +m}Qp ]i5|(\Z1uE,נ0wl$>ΙqER@?[#ujX,,װDiJMe :?z #f n8[-\ Xe@Sǁ=& z`#h»Ձ+nCO#yZK~5hk|: ;ŸE ӂj9I53^x Dպ{ ۶fXCkk1 8Eo9:9H6ȶC|DSVBgKgѺg'ls9qg)b^zhSG+UIbCflƺPT bdbpءU~6D] V2eq$XU7XZģcf3N?prSFPB7N bam5 U,Z! NVƕ`%bh$4yV&ZRN}I1|z-t~1UgUd;D]5YY%8YbMXecl0P[?}x^*"o좫iJkeX˜IE0qGrHE[=E @F^T#7Xd. [U A`6xH[vkϡa9@.i}.e7bmIq@雞[pj?aՋƯ@!j:¿?f|'`)F[0 82 *Ga BWW3ݚBjQ3݀ӻmY\ Z=Nm{ϰTw~ۜ߷!?8`PE?Yst]>"ku`5^;;|3]pnJvJҐˋHKgu5b՜.lmSfIG[qrU CE؋vpU0֑`'=cY1߸;ZV0'i*a 2zT"mƊ/|'j js Bm)3bӻ"zq}b?ܰ1"j-,< gl"C Ɖb|,K,6De*yp"w.bqʪb-tK3P -*Ъ+M!cUi ҢV+2N5`W*C-t%rˬS[9kx G+ Yyقtt2KbhKeX*L;ǻ%?{h0ԨwaWՐ,'y@rι(5Eb5!ְEI=B5I@nҰ ]Ɇ\uĻfhbFǓƞ{9jζ!J]'zɫpxjZl5PSdz~t̤S.XB4r+OWN lo\ jB1m;;Ye$-{qh:AR_<pmvkaBG-"{ՋDsc.:jNƵ5,cK\QRpNE$kh VHaN*Y-~rfoϪleI?pM02Vڦ",O,ܼ dˁz̓֟&, mPC;1%~! :׵6 n8Qc] ў/^ w4TO+V+ʣ`9;2IEe^ #UTx$eTnnӆsE;_f(X*Z)B!jUCb39ņK4Wė_sK(Xt0,ґe <7N/Bn5T'jbϻ.[M&:$H?!ז8'MClz8Pz M;-R!}@7|_@ R9+ 緁=hFnvF-V7;r:-+,+qcb*nY:!K,(LtX况'iUqIrl),UkBݾlVL]Y[x򅫨9E9>O6h5mD!}+Th̸x 4͹¡btW@ӾO>{ڢQW4Vmrn˿}o>I Q*U"MI 2H]=ҡjvYQmv\Eؓ3^vC;8|BzQob&T5+v+QHvfmϯ-P]߷רmPH ]⅓*Tr쑺7QEtx ۓ"Q+ Uurz'U<;]Ns~Zuy4<]$-Pԑ:\̾'8Wk϶=x$N5a WE?NM).kM;d:%lcso{q3pՌ+_}Ǣ]AԟkT1L򨆁e~p+▼+nh~u[o*n%] VUdws߱g/,DG\ۍ&uCժġ !*P/jO4:/t;<O~s&``Ȅ;2PX|NȏdZTjemi-,*r6GhXI,e v8A3ȎPud2k.wy+{jkAmcR%'G_Ol_dN%/J$Vm\8\Ho4+Bj8Z蜓%,~uUFY'<4۹sT!Va,pSvF3lT{DRUpm#i9۬tOEܤ-yF=q'!ؓ#.J+[%VcO\lq {6HO g9?q=%HY7N?YJkl֖U"Tsۭ{::.T| FƫgG٧UoPx)9E^\Vy`hjiISF}Uh/&`a}~*E(UPig/:Q՝Xֵu1ao-&gi0Y~;uɄ3|3Z4QWRkX`ٱ'?ugTuwWspompiF`Ť5\9_ZrfScY.F*[v>.Ó{ 3[@\lr&ʕu0y(PO#WsqꦲIʲtY9q֯U\Ԯ*XEU;;0{z?])t rKK=\`u|D<蟇Y$,ar-=mopo+_!GmWW8Ӿ-=6$=*Yf:C#b>r.M_Å ,7TKT:S-r 7\{bG"T' mPuWV.*QYAE1˫{ t^bz+^\;*]C3j*GHMppu4xf|*`r}Cq.MCpLaꏡQuȫQUu-Nl!5G'P: jbU5D PYj=2z3!uPh&YYn,%teRŬ6k>&x7Tb:K 0od;h`_Ti:[("Z1i0'JZr/XCmd5ڈ;UJD /6kv%wCm:kr *XF#,T"RV0.Ҷ΄0sVӦ+t,׆a [H.kV5DojULDbY9U5G#M x;{Qj[0$*6(ۘG4<]Mԃ%#B"V3JΥZ8մ5bX--AE&kag:;xO3ާutv;ȯ;/<~:SHРd p^IX7)VuBzϳgGB71ӳnB+!]TFņ";$q喂N6\$ ܏w!UhYULd{@8ՙ,>f sV &pW}Lp}t倅Z'3]|!Չ<-c HC[`Cʲ4Jyxq?\GG٦* 𦥷! KM+tU{QřZ5K:Ώ+sQ>yX8#-B\EZ*Cl쏥4X F+sDen^%AˑXW8Nϟoyvb4Ő A۽#yc4(sts+&U1kt[to^X1߇N|*g:1kv%wR" *=0Q("~,v^s B#ͪ9mtz=3PT$Ǭ'եdU;rx1ܕJdڝF90W'E4$sXTB>eU#bUdo dm^#xAWW>XT:~1>_j(hhBсx UmB" fo+ռH >e4xv}_MڎbqWYȢ-|isT^F\LT*KjlҚr3VMwiAڌNWWMvGM(f'Db/uTP6oTYֹg(#]:\2$FWu.m  8,(V[Zeq:U矢C\ :s03kŕݎ0aNmF%iњњZѼiB^5!]GW4К\Eg(WJTWۺIźGhO 6O3h잜fPujWEtlܿGbcaАp-ozu,R*[ZY3&{fkJ܂4-HA\MR c#E' ?yS'*TNDVAÖٕ0>kPzIJ; vWs%Z mݹf Rb`QùcEڞe4-Ti᎚w!q{/)p5m T`?|O)c2L?;sҰ^.폰jUYӈ!Jظްu{~&(j Zue6mU}(,}XKf``DbmnhEL eucUeT+YCxA]wR+_%$mӚ"QUH#t.Nd8)NwXJVxc2]K^"U]uT"bD/,^"c@IY1ju$ΜWOVtBKT+p!D3%:aXUC"T*\r _r/7nۓy{5d VhU5x Upy?}P cmDs5]vp=#de ~u KXN,[D+̈ R;VZDnavP 6N :"@:`'эpyUAʷ|#U67U~/uƣmFV@$`]EE$W-DbԱ\d]~jrbW^?k| cTv7{,#BZC wTY+E2QHc;VZ-~OcS=QM`NW)jY6[PׯB8j_JhknV~ˈk{6XNcS Xӌuu  :>< ީ2{&pՈEr])qY[l(OD%'xUvhcjՄ!A:l?>vm9[ (تUڧ>mk׾ uW_t,8t3o3l)W/xƁt-]a5UjRpg]GvոTH*XU˯H\5UB*o8UtFF\E\ 'f?M_6}TIW_XrSghnQ-DDzӮ$WQzhY- E:;A~L{W,MUXٱPLȆ|&f0;C}{ɚm-]~@bb߁ pIig*`!\5EcȉjK&,oB en9UT9g8T֪#']'ս梈+6UWV[l8t,_SϷD986֠W6uXljoAz[jd^mkj(I\ǔ"U?]yhj!xRsUü<jQ\g>oFЊ=kODͩU50L~+iPgj~+,FJ;UE{Mz2Ҕm/~\Gd#POvJ %bFYEl"GƝ:fy]UL2ʒ84' _b@d'h?9,_RM3@ 6`j2 dWmL`_5^O_wrRO# i)>Kxdh,(8VHwl퍂趪*VQ uD$*Ʌ!13.FǀpI=KYV;NW ̭ -g;A2VIq+X귷ԞVQ9VネQW\PLWǐ,ҏ}v>܁_t&,?F YSmtfXu)~յQK96KRSpg~A]mG+ڔ5Ԯ|XtJ@Xl# gpHaYl Ĭ-UuŪv@+uP{t&qYh}QzP_#Gb@,%ge5SS.HqD+k4MȁմСdgWzo[ e5*Rz e-YmvldO[v&s"lF~}~0/UBD*@Ti8B=N+`ˆCWY]&`>a@J0],T7#D51:6!NW$D,@U0”R BB:5x OUCb5D[+ Պ|vW4$<ժ&,TH3p "lBK)5*XȤ+l5q6Ūjey _uw(bmpEn$ AuЂ}a_U(P|Z$-Cuq+D&l*AZ+rSݧ㼆YG9A.GڕVݛ%ȘK2>U]+V$-W?.DHuo@ -] IxPfp g˂-}ރ8M+!kW0*etOn BUP+I"!\YN֚]uj#j(4 W 4삆E]hX(v-xYoYzN WB:5w3 E] r%CVߝS8Q!'FM!T!•^U{KшTց[O~s.5P]) L՜kpZ䯬 }2pT@"R$ u ES,nEuVf }[SWƖ"Ћ %EjHW'Y}<`|DEQ搮3)eκv5AW K;_~oH%RE;K=3ìv=T #t5׾߀VQIf,>aUjg[*$ҭ<?"YVN9KB ׶n0-@, H+t éWhJnP߲fJܶΒHoh5܈/b &eY^jxWW?C˼eӈr!++똹p,繐T2R:bMf 9wFf6kӜ ?g|'`5Ql'.JS(&i sE]bXM Ls:f mcqHW-o6=5W4m+cbPjIE~HR QY-{z+~BEQ5$RJer԰Hw(LD#VK,kc -gذ,2 Z,A幵 Q~l 2fGqįZ3q*v}j: hU Z*h#XWb6Pu,r::\Ac.f_Rv 1EZ ]M0x"e.fU֒ŀ9 J->»i-c2a~= ؛2FЊFdj-a圙jln${} Pjȼa3JWf X+.+>6ۊ1U!T vZ+<Ѿmȼuz;r2Z oy$zTƢTDiM ,X첂]ZKVQX@DaJ o s qՊO IDATҤ,΍-:o$Y(&ף񀹊G8iv$$8]LEYPYf1n@Wse$`Qȭ!sB2{AUX` Bg?Nc]I} 7& ;} Zgn?RJus;IH+I fRJP% 'kA6,[:V3}9P,c+4$㯶Byc&̊U8٭k#u弄+OV++$@6̩sUI++kg.RGrZbSr%75TUievR&fhUd2\[+Xvr1kbvshE[WD}:.K}˹!,2X΢Ûrg9^bJԩyjpL`P5ޏca U<{`YFPכjSآ%v- N 5!{m8Ŏm 5+WE(bo1,Ȇ_\2}[5bhC)4N}[CQLi˟HjJ+k:"wU"PTqKPvx?<2BWSPܝ%>^dC`,a-/ii`u7 14실 d#5CLo'}^e~-j-mgfeyf` ]!B~&2 }q'sQ^t%"ϗboߩ=3>{^gmPm[ejԶbwf)6 heuTktGCiPj|B;(cf n# )_hRV93jL< cYBy867]~6NcQ1q*/2ank(XTQͰa YUӄn嶚q]M5( +?a4-{3+:.e,LƲf -j!-S\!u]ŕs\ ! ǟNr9^wJD[h~]z&$`-(.] +5K6ͽZ.6~6 c@ YFw .֢ sv5[[];#46Kr֞ zx2K6CkQ6e8uI?Z0k(5,%Tu 'T=2M,[ D=1 FCpEL,6x蠪äbhZ4|IZAhf qES?7s v_XO;ezNIըd1$7v2˅gtH::8=EHl jk+=_ѩ< _7%Z5{HՆd2YX f`;CaXuSS'=|.oU/bR' `h,2Rб|ʈ%h8|+ӂP5"V4 -D2׎?߉b;Sgu ' Evֿ"M*#vOZ[yŔ躲%`ݪs|:y`x l+[844JmZV<Ju@8~]ZPAܹb_+o滮{B_Z4(e[U`bcVz. C]~[SֶTXGrw*XJa!ŦT)v>ɝ 1ҐqirUFs(6fUQ~%QVf3[ pjC!nP:![e$h.i`0^esV㲦[KS!W݀U!WMQl( Aq!(_/Ҋ!Ⱥshi8z."خ,?ڲYϿd$9tU0N/:"P:f#~ey(tu^jUN4@io΍hc l! 0⻮ ID™XȶÙì+9{ŒESOirPzt Rs Xt.PhUwHk 3V|MԜ,x=HV3ٰ_yN)Ehبp_a&fڕs5]M`VZ,nyBIOWE2"sq|e4TpKzI-Zy+ci+^!nz"VE7'"|`,t!jV<0v;L*~Jo#/Z99`i/m[/3xBq@Us+omEusGTQ[!v5jXƋ8Q iZJHkbV*X` ~Lz 8-]58u r9<ս,4.m'@UZKU[[t/i|ښE3DnUΩWB,Z:IãXKYIc0RuVx䂾 ׺alJ-rT+N|6|(zzX#.vuq?iXƕ [~oiBgTO1:ZS77@;` 1˚(SIM hUgkW5,&{%+WȠ+)b9{4*vBd" ڛa]*gb g&`o%cm<߭X`:5hEZoʙ+,T+Rf~RjJ0*ӱlŰ^,@&h.1 VqYi}hp`v%\.#RA( 뺻bKve)%)Uo5UP)„k+}b i n .?%}TOiTj@ªERב'aOc==Wvշ[z?cBW{=ڦ^RϿ~t:YW;rR΍Oel/ϝϼrFU'뾒8Y/na9)7n_7CTޑ ]f=QŕĊ7JX>ŐȮ<ܱΫ:`.$q]*\E%~uouvFKG[3c)1d<~]b[V L2{/v$S;O!]yrc,|GTVC م]y|lRTԻv{Hmwr-+ѨLcE#UjR ;"MgrR ,Zfɞjn;-"T9jTs%q/1ߌ3R m: )ɩ+:V]ZtՊ(YL\ooQ:"ORB'Q`b7_Ξ~"eؚ9~$wVX_vZ$q7:E|psjM|fI <@Ub*t핚7 w)E^)& ]/+5$߁Y芭:6C,r5btSz}tH.WQfWiXASܯbյ5;Ns0jX.-V2"i]1S0cx+߾|7;_#\}y_rB혍үe(_P <cq[}a-GսbG 6Q>X+^ WuSc,:A!1'WȻPUH;t0|f_6~z<`B;[|WzN. 5=N j?e;<]=LbhÇv.!آ%'˪\FWКA{#&Ⱦ@dJKזc҃:3WmdX['r49 oծ~ WR}Ĥ%bMWpϟ%,\IT+UJЫ޶{_4SBZ#sZN˲!d:Ω 4Qw~޲iݶ1:ZK6Zv}RK./Sojţdu 3|ժ^Y sά-O_p 6r`4/k#N@r.,kB {kVobް~iNzPup _U+j-ڭC^jFeh7xWVQ<.]&w~Xa}~ӂ2&ʠ׏*R׵YE@~"]=vjs޽CE9՝e-Y+qka4JE@޷o3Ws# j!!Pk10Ff^oSWw'tErA--?ޯpu=mKgwL}:JZɇw5tЮdIW 6}[l.mOѾZz>$`ͷV.}h\U ͺzMF7eXw JL\0ى隀ϋiY^ful2W ;wP4 8ƺOus_y`BLQE{}zG |}qW"(cx~$|q*t$Fܢ0F }G'^GW:mԡ6o%lvȰ)~귨둥 DsĚ Ẑ2AuZȶfPw*e3\w@| e$k=}"隆hVxkņkVFͥ) qnHsZ=cwm b?e ӴALBJ-w9 FUmX13ِ&l{Ğ_[G5Z]*:~-ҊꐋVl(U]L*\3D ԛUd^\&}Սr+琖9ڸ\+ UV p҆qM~`jSS䋷{rϟT;mHbˬI@{beBbFV~Q\ 'QևޯA%8IioUy Nc(G{{+lWU^Ω>W]ҭgN ]bvd.n]Kj̹T!ygy K1^y ]thW*H˂LW45QX0"`Dׅ8Fy7Ixo4-!dK]Yx& ۾ t,K"#}`= S+XGD8Osms[m,Orh]BYWO l|bxʖu6o()}h_i wPz1"̓&,oPh菥yW9GqWQS9*lՑ R1"4alab^ٝcio˽.mD3pj% ,e-,Z}'`hT";hWvI9  e1^r [k.V] y<&Kg汏n8"K-h7DgXY,FE3̓/H~vDuJţo|,ߘt5J~n3?/IKNriA-5^{SA] G-[1pk;Yz,UCjWߪN,oEg9 >KX RHi }'& o"${!a7Q(Hb#~yM/:\X:RMMF ޹Ѭ!HԐbUhdliI+!^KHbdj1l |تBοXwM~3BMTȦ+\C歓KZ*NHCT6d[vڡOShZβm'7vfmǶw|V}0}Rke̸:C+scS9gMun@[y뼁4zۯ?~7W}`95իMT(Y9o9/˹Ej*)YI<*H FtBUոv1|Hj&̽.MD}`F*sXdj j͠ ѶhL"I TVZ3dz;sZr*XUvLsXUSH+FkF=HYf`pM/Vұ{<5 D yY>]0XlzcՄ|̸j'2h>~ IDATu 5s\u=VXrxS =e0ߕufuUD; :ǗѪMT$T \#TKmʁKFUaل$v^'r` 3FioV˯ǞdUҚ-$kJ6"??FLjXz5cÑV 힃'O>5/,PY*@KC[l h s6 xZ 0րV۝/ŗN`J<})jA"YBYS.VBRv"(X&%=1||%Y~p\S?zD6X-3չB6l\PYX k-E.@iO-rY9MO`2laTp{J eu}E_ jNyZ[ rVdPVQ_$*K%! |tG䢫+z'X߃G#rc,a8LލZ*85[va}|;kWl+lIR݅jc%Ne9Ń*%+b&B.bev1q2,;'WPUCrղ7:v|{u^1j2,hwB9_(D%V+ af>> `@g[6{2Ĭ~㭼h]wd&T;՜Y$?Udcʱ.LIviSYK:ogiS5~Be.}wȱRONyGHQUSou'[ }Wׄ7LުLEn:u5crDim8`?k|U̻f &TKa@pN$&PTTc9*54TIt/6E\7ܣRg}V$X |.6 [*TuAC ,h~|el\:Fsxg6h#@[`O& 9WjC׸ܑ`#.s2ӭ`(L΂Y8՛URFd< W%Y@W5CRql0SQDi&eE=x"!ٱj̖ʟVE!hjq*S TڞJr*ܴsf9e Fd|U~`3ns* *'|SZM\eMq {cg/FW4瀬F,",k;)&0a]b0˻?Sya&C=o/}V7̢̂R<>9H㈻E4)v11ৃlz\"xV! t6YVM:鱟z@bZ-!~izz1$[y7)VXIk|vV2M+uvGWvKq5F`PJO5o*\GۡTwĈ=̏8~]ǣ/ݿ'LN<$8ʁv}]Y( 4@.Q$o7ZbO.W|o6jg*d{WyzGk%Z9xV6 B9Bb,q5U)TzDSB/$=gtmkkSW/OLr>Ɲhnk2=BnB[EZnXKt.=y]cm¿=r4YnRWDJy%;mХU#Hϕ}o'<ȃ0o]n )xaRp *@A+l)ǩ "ܕWG)c, ?gA_\WT؊`T[è)>?Z.{Iwgv@[8׋"$UN\}ʻ\~ߓf9p`M_RSR˪1:KFHFb XMKJ_EVԃ"o tZjF=aAbqXcMX`\QHb,5e [pR8fF7@W ,[5?> *f"BJ%.Kw̦a( W;69 3QN?ȶ&XɖT%TJu^5cO9~蒇o?*'@ +[W*rR_ݓޒ0l"|Z9Њ^ ZM<ȫGe ,!HkrOM_BbUr*x)IBUkIk vpFcq*~B%g?2'x{EuoK1}D!$rJaWej9 H1>&`眇1W* `BGZ$V(;̊1T\D8V%nU%[ l9&Bۙ('(;)>^Ns%ʠW8+sɘ`SUy!^t)LHU}O2lꛪ %KMeʼnLD5j=*`` uU[Z&?R;G;NmiU iA9p;H64q߄qhƂ*koqt//9i̗>KxHg!˘N]{_xㅍsw_4#=` *`wPAfg0g cuϼ$aNF<|pԟ;6tbRά|7y|7}>Hlڦˇo'B~G'Fgժ`j=zFba,[E"X5$ ƚ " T9:h[Ko_rc+Tܕ3Qh:,%`v+Cse7+47Q^M2rB2vS Nujg:*gḓ#0@+>r*9B(&ޥ#dT׬_9[#`mi]DદA@<#=oUOa{sn xgs]X+ Ś!-ޓ 7(&Xyy`UYr?g calKTa*r(3d}_tԖzb{1 F~ m_a?f%aH +%)Y- %Uu!_Џ$Ph4'C9 /򇚅pU3бum;_C5G9@Xdy'9ȡ]q-{vMb,XVX3._)B}9㽜UL&X Wꔟ$UHby]Rb6a0?gd3}8IX ,@bErYn5A2p c'Zцkr;gr^kdquD,kZb[A5Hl<(<f!Z^xO1(`w/aOK[ el'+a[Mrz| lFnV~{vOj6&c;k@$bbT%0+2KhqT0+%O`^;̳PqM퀻6f{,Ű#R JaTIaX-lk6ea6-0ڃ繯0bß'tVQtIr +Jf_KhMq\l,es H99cK{)OWAvH'N&1 Kb%-0`Ɩ@.ެM칛r9Z;_o|[vr=#e`,$`w^)_a-WƪB k¬Tu[LΠs5I5s' Z/v*"hT4E0~tm^g/dzp9[ʧ>|brIKh|@CZjacf9S=Bkɑ̞U\vp+ĩGc}40Wx$1n c駻;.pzuI)C~d,IbUW2Kzh.h^h[@+GK]lVc᜵= j?qs$NX}VIp_ՄShcA#xހ|g՛^Lﴯ?'y䢡G`P4*J(ى͉  B<5' S63SM]ǹC}mW\z݂2 ԂY4!nS)Vg,iƒC0"XWH+^K$( 1k|P};r@i$wrfcԅ+\ۜwp]7:Nyw57@Uɾj)sИ"D;y +iRIk9y] 7]lcHTxO0"?۝ÜՈӢJ.lFTP2KB5 [lM 7}6EZue79-A`ɓOaBZ>%+ 1epW`\&f(A5gHϖ86)!;6mibUNBT 9M.N1 bs>SXB.Z5Q(}ԅgCYy;q̚a,*kert'Æ=*.30oH!@HmhlH0K˗z^Orz/=V]>S+)ifVm= 0@R8T֔AdWul4\@v]`ˉdtnݫ)f&{qr2WX)U%8r~ uNwX&U{6*Yr@C-ҽ{yU5u` *2Mf &ι2tzC2%g*j , .%-= MG88>n~0{*oui;[+w*ŝўM"#` #c숕k~x)nf_vSTQkŊTaC@EZOz!8g{iqz@^W8:?4-o!un҆Կڞv~;lFz}{=8e> f(َc>B'u_LN^9~{^._r cf[pĩJT$ֈ_w@ƚW΁\ ]06X~]`Q`K^!v }ԏ;8KcTsy60Vqp`̢⾐]%عBNfKeWUH %T,\2 qUr,,iA8ł1jֶcm`u}\t35Å$X`\/va\WB"qd*\GAJ[*qb:^"\*<ݟŸEM d?z..Rk$2 "'Mn [4EW~危9AŲ$Z͵p9;,JaM̅6X]N#d*J?%o1@CTc#\ Acc֟h˿\,e@z+>9'*$C!?:1Vr-/n˟݋k b;}ZZC/eqtoeh%&`QTZw# I*aO @N.[y<ڼUE>r@UpgxwςsXk7)cjQj8{Wgz&Nc2 KGQ]+fPY@EW${ {aD0. Ւ'm; `l-^˖,8*6h+.U;/ǧA_ɥJr;+HY%Q\V0%#5h+ yr`9~_j 0֯AXpbV{Pb\YZld`JiXP~wRAU~E諭;jY]K>EoR٬ G%כEt),0\iTeI=w[} o DCRĂT-\eV1>U̪OI*UL"(fQTDA)4>fbEۭ6zkVb~Eb,D[jC0ZcYJ҇QV~JqoIJr:X[]աwNh{D: 5(B`nT ^}Uj;h ɍhUd:d56TUf2=W-Yvo4"@s(IwRi*e;FMr ]]fz5D|ydn bKm$A>; e@Wywʚ,</U/"{ g+9CHc(0$Т.vup>z^CW! YSثEl(ruA&?&4Vq=j]/h|$ּĞ{F֙:̃0i7x R^\OiR"ee9jr_Sc)c:6GMx IX'QeZgs-YmVO\%i-)Ӑ<`妫zf*Wb -ì.הX`z ZNW{mf˂#IL]`i *i*|0㱖|ɮW,h;ػf #K©d0RhZZAUb4yWTʴtWWJNz[X?TNvg:̖ebњPvJBJVZ]P(k~;!N3GRjo' (ŹM8W5~1K4iUMelA+H n9dgH5 if܈ wI#$³ޥlGfݴT 5.j$m܊@M (,Lӕ…+ja ϡP]t `tgye _K޽@]I4(D+[efF$_U&6'XsOlc9Xa,u9:9泮;sGt{g# B!Z>TP&lOpZYECoyJ A6qA E| cݔ-Kh4X `!ϏFْ]2"IN%V g\ժolzMte=$vy}I!#*r&Z9ްRCcRfy/Jn$!tXAla~/(pT|u9KZMuجݪS_) #U@]UT"=E'~+`MoG%\C1 ]]5$ # V2Tŭ+ߎ"Am3;` ^/㋺"x<ҜU^aXr4$`H!Q0BZW?\+81'a#v,lݿi}9EևVtaTb",QlM6ƒN-ٮ3&ހeCkv3SNBl~0n$isA9M'w'ٖb0K%]գerӴ TXtQtwHoS<ʐvJ2jWUg@؂XVh fT. Xoһ @Wq%x S #Q˥PLBE*v㙺r7UJ=QLq ˋh ire2b;< WA8M?Z-Sfy{F, F+C?Z4H,}@XK)ZaD}UnqffC2 ^cȜP3Ԗ8SKN:dv{XI&qp4 }k}r?ukv1T*`U*nߜJd}R:*E+3\5?Ot?V  &w[WRa+F-egVVd3e_gMՋsvt}]URX:䀑kEvQZaJyRZR`.,y=nYl Q]'3ZZ`-hjl*omKP~?nI. 2ɦT0T PջR:<9;>˥X+dјAVWᒾh{uIr_ya%,9f'}8輟/Li/uG6h9DfT`%Tke_rPCF^JcC5\d~-ܞ\o*iA$ۛ3VycU>l0U pեWKp Uְn {ƹ}a.*~抣!1+Peӂ21ZYR P?X F\~EMlRJf{;;헜wG$o&RxTVN_Y\ib{E%C,MB S2$+1ג;ctԨ\oGe`r+=/7T͠Lwv&NPNb^:% OV1&24ž}AU0m$T}JKEo2ɏnPLW0O*ʄ5Xnro{G .'#K*gX1vux֩p [Aؠ,QAzK#r :DUQʪvcuzu:.~=ǿ~z؜*Ӝ+pSݫȇɽƅY_}lVJ-xLUv bVdBWXWWc-v2W+US,'dPc*v4Xɨ0rDK]}0ݤ1U>Ʋ9_*uU$/j86,]EkY ESg]b,WQQtP" Yrh\Ə%q?,$^rPcfq93r+ 5FVU#izs8dA%ǮCT6X}LRjHlQk(d~b{Q5$+jqڹ")iihie>G᱇& z[}Uq\HWƨo:b]T\9bxUªxl ~w2M)͸k}'= J5>Dk@BV z5>>}Of&#^kp? yNY.*mVլ\DEBNb2n }&bcVϯY1ǃ-T q(3i [s&\֫IĸFLUZfyo;( 6A v~iv Xet| 5ʝC*3u.1:waC JeT~c@$Vi]VMAGqr^~;фp#Glwx* 7婲%&W wf5 j_'h|lA(4˪?(ꚮzDsK*]݁#hB(ӗM#Uj[Ho'4f*fCt"ncm<)U(lU&{~"ho UIdUlMk` kh|n89AWKN%Fsmlvʲʗl\ _͒̂V`HөXeqMIwczuZ]/a8v@<8[1h*8ttuLlhsCW/r@U V}m|[x숚] jO3G8*՚ZR<wQ0鵭س!PےW؋;E+~IdB's+i(U4f}^kЁdjXY1* [m#4rCy=,A6jھ<;k"C ܳ & 惰$qxX+18xwjU՛L1Q2ΖD]Ag(Ώmڄ`#xWM/XӼiU%*L˷B;Тyp4y~>BkŃfZ;,d96qZʜ}a Iw17H%#a9h(,ѐ7A&JKAKAvAU:(qh r,uA+T"3-(ܡ;Toi-YCEc+7o`Y# q1:X~h\g obl`% Tailm=\S\x k[34mJVP _} T?S;RĪ JْqQ39rciz)9"pj7TN!XPVƒ.l̴m#6f-*V:z1z@S@+ ^e {0{xxlX(=+:_Yfs(Ě|c#at1 [⭡տU xicVWW)EvB(.+]y>Ng#dr NI^9kc4hӔy]wԗj* ]d"Zn<ߴXyY= UT@x~$C=_9o( T%<5Ra adž|sR ߈!9%A]T٭}=2 ,oj)Xං>7QeEA@H,W5V,HKIƲ\'r]a]mg1۴g? ] w-UfHKϡlU>˃K3N0e~>j1IeYwt): Kb`C r-P%ۊj0K)X!@JTrVDW2 cU@J==Oyo;'QT[XˬJhtր!ZW.H IDAT`qhtࡨkL*# y,u ^'U JDU{fM"E fus, |# z>?;-밯]aEn3X4J{Y+F=J]#,=`=8 b, Zɗ`2:@W0VV²-"إcx~[q>L;\I)ajZ)`U.TcI;sMh r"2P7X9,c=N'd>3 /3/x#7RUA9dp[âFafUQf`&h(48޷ڿ3僪&Nq9? aDgaXgĈ7 g2} bs2 TmʡVuYJI-tʐ Gt0q6sN^̠ŜgX/eϻZK++vT}rlT$ЩGV8Z`/K+O?(G=i~LZ?I%oz3gRRKb=-$xbw$;ICm!Rh*B)(`ld2GgTB7w.{4Eb9GYc6H~ډZНQYôszԩP h,y e9i/#` TbIYѿܚ_eFe |N b=.qԏ~s8‚Pc}Qq(`֡ol"ao!Lr>ԤC+j pMkQn6w` YПEbueҞ4ZLQɪ+XI{ZHhg4iLETV!:">3s_g>D#dnM/Vw\ҞxDB2gW8IEZPFMVX OcE>*Z*WzWy ز?WqRo@VUWg (TD,Jxc롾]vK~MRs') Udz.w X{&/i4q2׫E@sM6.PM#!G˴0 NZz5&ݬ}/& ^ĂIJ{eC4<8kh)')]aZU{r/AuU%᤮7TѺ{;[,xʭtƭg R!qpXDYQFK_,3ʢ1UVxշ8Cuibm*TfKb,V`qR_:SDanM1 \d$Yw=U|9Y"kHqQ?KZWPFV, ܲ2I"VY로Հ7m_5ߴ c,#]@J*rfҲ ɖϩe6+j Yp9miWx`sn6Q>sdVX-Y8,N6IP!X`h Y4CmTJ"5\T0AW%bBF4+K./A[A%ރ]hUtۮ𬞪_`_99maYIUUS=bP&&q0 -f[t@U2+=4ݬ`rD<'NY~$1g,:yYb)++iWY4 V9*24pjN 9OuP4ʪX~b2vW` KWFeP*V=p92Ufw(6kaVK5٬51"-)`)AHX&G#qvz9 DUڌג#'GQ|X!>D*q/gODu( m$WfϒDl#c)nV9ǠJ-T gorf<y `V*j&ŤsiDE$ƒ+К t#[hw ?˼@Cu$1DAcA Ĕ+teATrmX,fd}$it%v0#5& O:"}cue\]*l r:yhcJQU/I*o]CGK8UV3p苬{sWX?]%eE鰯:aS/ƲX\u]sǷkHB|ʏ5PUyp"1Y`ܸތhxvj'mD}Z۪^McNU "sU57@b,ЦTtUZRA:pe3$Cn hوd^d eK"۹bl錜pU=s6҃[1ej$hUv$-yRbĿnDὖBW$zeC&)W9_i.$wVV}\1I-titwe`uyIi.~ NS8i@n{evmR^X6Es~8v=' a~tyZn!aˬޘiT{}J8% r1Vӕ9JXIK݂\NGD`<8?5`u#8ڏX*˂M4R.WK-tl& I1Rleѩ{6 xډ% +vUٔak}Ta-l.8 cI(Cb2/k̂OeQ$jDrE8vm~TxbWԏpXy<,kSr$RZ% YUМ.ij7 ZUǴE%%IF6ԨYàRQYBqyJo90pEQNUrN2C%+<А*a%i&"T@%dL:WzN-m^y E0XWΤHǍݲ5y_JQtXӁNJY9`33jM"-`"[bIL;fTE mKJEX&'m¶WZZ{|G 8r%9΃YKSA (4u`,+܄^ 6H,hUevj.&Zx)Bu* ]Ǐ{K#*- ޲s8u>ƣ4tuJr] u=&18YnL*eGTqk.8B9(î NMJ{\VUZuaܛb#iN(T(jg8ط$DJ#3Q`ٱj*v͞'Cid<cA)eQV.7lx(#ʎIh5ǩ*4Nڇ__A73j&E-b\ɥJv dvGA#Bݾ-qi"1*z騸 N7]`_~.-qj LjX [kD%0!t0}ZV5߷QVg60U4ml[=sdd 8AhDWjCՁǂVZ<YBqV("uߋFWLoq5yt {CWYʙJ]Rt4TɕH,P "Kp= OWѕT]b &"IW!q$BԦA)a$3-зڿ<q?h'pTڧ@^@Z,srQ _rkU]y|UFM- mguzWA+`KB뀡ZߒZtdf8l 9 /ҺXsdJh38;~XrW]卽X2UhC?] DCT9dTIHt"XPi \5,HO07(ja; z)B%i=lGeZ6D}KyثKUkJt J*D[*ځ KݢQ@Tʸ'.J-bֲY0k?fБ[=E?@nvtxQHU+ңEJEoB"I_q)E$Щ\Ap8u&frnb%fK*kw,"4 XQ"\zڅn9..%٬ ?dv$Mu9%IwəAIk%-2,󀬩9V;v9-C?pC 7QޏϾW/1ew,E@I3f[`+b-Fd o{OCφ+M$$}Sݍ1j"-ËZFDeMhB*BΦO\h+|mdߞBWVcx|3pA5}>"c3Ʈ/`,x!*O 52R#T:X+UAUDQ1\2U՜`"g,_ w~Ti`1~]IvhZXW{8l˕Z* /HG2MF'FP{}B.tgS.jëI^g7$eT3r຾>MuiUr;23#+J^QpO?X12"hu0,I(cYZ-`c9'?  'tjxIh2cd9BBp)o#FozWV3qAdX Fz,MRuB=8t|Ѩ  -I].pITaY@T{gسx.cW-wنGTh%wWHۧ@TcrckItEYe߅ 4ftty~=p5<9X8=魷yF6z9x.E&,hl[C"GWZN{374,s?>> p LbQ)GBY|* Y%}u[KYq& /]#nqt=MX߼ Y8@3-s^3/:/UltXH5T}hyD5sxJC{bJ]SVu H4=l`e%\VyR.eH+ii^ {IeMB(@ԙ ?.6 SrY8|ܖJrEe <M=n:.0s|7tݔG+UX9,OshHqMJ%7 ]a`Y4[GF{`@'#A̧&ȣ횣9Os^|3vζ8 #Yd+/>GVΰBue_a7J `AX=@(R#LT7 ܅JTm@ErKNsߧaQXy[0 . chu0崦,qJp;=T`,V*U)wWui _r5]۟F#B_qGœjj$Ml,*x1y/?7ۈ.}u4m%[vDg-WQr2GZ=૚|r4URYQꚂVcY7"$_Q]p _XĊ'g@W)kوPma2i k")6TjuPu)4mYLtPTųҋ-dK\BWw'\,r4^[k$HiZa0Nw\C+?+]=kIJP| bOޞ@Re T(U !&!хf(LhYl%|73`ěW9Wi:b?Cj^u0x1\RT2j mrƢ45ya -?[n,fwWn,j cާdxꊤxRԠ= P*̍GzP?[&߾2X͙AlaG&cWh5ɝ +1PsDUVehu-y5eUd**6h!c?d?U6I^XK0D [A+t6* c h|Vy<=i^oU`IbTçwf(y_wZ[Q鈆  BTТEj & Ys'dQԴCL²1!,)UJ5tU-kW0`^ȃe8p@jС}m&g%PyTI2Ww*M%7DXA97"=X3yI.llyPd傭Za\3 F.zk|=l+V9|H7[Hga+v\Lir˒!e.Nry2\3rGrq=,uBH zV޹z/?ɦ/| ndFi~@cP*a?c<hq9h` ,WU[(`_W!4CXfIs B9'Ih*xծYLd͉I10WʙU<{gptǟg,`$ɝZաԦVY4.TE#taQX6$3]>E{PKqFb??Ԗc$EsHR.o lrMoYL bCCuį4:щB&,P%b8qZ  eTF5w W0"R'b2J)`NƖ&k(ǽ,9. !FPĩSr`nRQS8F_'ƆcIƺ,4{J',֓Ǣ]s0^td&1YX94vVR JUJb}YW.ĂRcU YHgYȮKp4M*-jv髊"s* trjdo'CGdb>3-iN:zOqQ_OZ?B+l&G~Ӕ0>9XkCg]Pe@[S\ 'V/}j Ac0i2ä1+U3ZJX$ZCzUxO-PJiVj=$m&wp9ٯgz= cg[?B]qJj:'-ay@՟sEǻng+hUZH3`?~@~?% PMr&ƪ~8UY7fyW ZT%T%Q;E h4$4 ܩ1XGQd.[8&*IT05KgɡKQ(~mj5mb&Ʋ: C]Y7WXg[^Z= 'nSp2-nXIw )Kzo,nC<`YU ӭdp/eUa}gZw3!iق29i\v8f>0w\յlVOFqoNXAW]zkFNΦd՞{UuP`2<"L-H,֮B FfIxg.sG &Ƃpt} @]( c0&Dx5!S]DFNW]ᩌ.m<+2J(pFW_<Wgޫ$@Gx.)$8\ [8jaπu+ #'G,K=M~s-#<&>8} 0KTU];]}ɸwV B0uye> $Z :AuVI"LJb?Y1v1=Vp_e=Kr!H3 mu7+mEPȴz}WnV_T&'|cX>g@E֎l~m)]}ݕ ïRX~&^h iwM&]%MEJlk*>H2pTiWݏgdW/WI2-PGrʯdWK6ϡXGTH&DW|Xn5OP[0K@VK4i!(7ud1(|+ގ<'rz9RaWU& YVcV<=)IQ'$zcrkƐ9j r j ]m,2rrF zGZ ]@[eOX^lŢARc*NN ,oĒٖL884a4b'O{CoEWOg&! YAsz~ chP!*/H4Ȧ,1K6!IF(s(t '(RsĹ2j&]8b^W>ozy)=k=AHKo,TBFzm%򑟄*LJEd1p&eݱ|DZ=;zg ڟ>fE03]|)fD^~c%2Jg uDqd/7m9zmp-6p /p>Mq&آufѕ'C+b~EwQ c0 Fr>_Ov ՉB*ɐ+'⛏L]"I?o\;fn;ߛ_z!d*kY%_vD:Z]KelT $۳[wRT ,T׵ |MS@]1ѥ*`KD>}<垾i.]Dzxl^2ӝ%3-(+T@ d +Yq|z6́N< ~ƿ7{Ký٬rjYKl pɂ/OWY+?}j+%#fd,^+S:{$ &PTM| M&c_VڷI_oh` 'GZo7Mv s(e C_:˲c-QQ.\B[c/J\g.Y#6* ,~q棛|h([%Z5[T*Pr%u Z >8-8ùz>!]J)(S";l}2+spe,Wl;J9ŏ5X]l<`}ϲ 1K"JoZfY.\^"UHPB"|h8IgR`A^tk_7l΁YcFJv!->3ժQuN"*2خ"m6b,WK}vF~MNh–=ku?GXMfeqO>Vo1EW2Zw2n眴\"+AS҂F+)/Mw rY0s;X16*8)W lٌ%G$,/Oڳ-#課}KM6`(=**fO90+pʵFMc)Ũ8`T,!過G/lSBxqBٮTu+up֑0ZU~/P, YgTt%wZHY^Y itv K:tX<eeҠkƘlf.-m*498JX4Qo5vo?縊R+d,P vPD4 éԜ@I0#DF2i'4yE'+!ޞ%I̖V Dv̎eISAݠ| 'R$i88x;oXÖ ݫ_6hxj2ten*Ȫf*"t` LF[eh>(+UkLn4r<߅uiAVU+I JO8 +k> }\+@k/Wc4VJ3+\S+|< bA'}AzKp_.똾417 fR@x#*stA%p[." i'r%i#Ě"髦mvUU)BbuY}de2HÕ09cرhq7~vaNiړj$p+Ku'up_܋4,he,TqgS XeYmJ|>(&Ȫ^p? ՜Dۥ*C)"!tr*0+NVT繕\ Յ61<<2;%!2XК+Q+JsK$ x l뽑m)K.Rq2 1}%d9UfrKIw(dXlrc*v2=<#?frtel`lx:|t%%s6ydpI146`f wAeP@ƂN#9>R~~aiv: .r5nScxZQGC9[F8ZvohQ _Ug^|"DPW߫1#7NxzkH;|0=o-A+BN/TreTmTj-L JjdVi]6N*_*O[繺sC~*8noDgd2̋VĖ0n Gjc]C)oy)X|"luJY=1?d"G^D~‚V߈)'C}SPˢEEy&dU1BUr{"cU&G2w"?a'EW L&Ax٪e6T0{P|T UE~dyjq:3x3dqO5|asim2~&c5Ҵ;Z<!(>.LIyTY$+YÓ ?S^(Lv߸NE!-VOFppStf7ȩ́v-J5ޭ*!`OHoŘW_tQkt5kUkoswM3YYħFMR% ߖWFf@ *%#U E05s9^N%_TRԄ~83On~W+ڙ:SX;{׫+ZUY|['u jDNN_ iEqUQ1ak8=eլoc m򮃳f%EHEYƢSl+|'iX"1B=tJUSogL0Xu2V~rZQDj鴖\rT:4O2Z֫ƾ(46~Jd_-RNC(+Cu+ְixm~&曤x{D3rӚj95+ڂv 'ܼV?~}'p h&z'~yjhB[os==`rMi T\`z_CcmfR}Dk#v\Me`\kwA.bC w9d$<"cp7{L4lo[XT2U#.߀~,۞f_D76V<(+Ux@dC`X=ltXd:U!mjR.TQ-YX-vdL M࿦p &L{d's7~Ň{ŬVfBfĕ?i}x\ Wjûm\ .TTnGq|M{>ߓxNIp25`~JV~&8f5j|ua$P?SXOcmNkQ8-gk~.KOg-up*r ЫW2_St8Vvϡ餻Qsh3u,^l o,b=`]bk,_vw6s-p%hͭ6a d3&O.89v\=Bбrc ;)wZQd!|i;jic;;?8tu9f)X&cmξZWiV-]IM3gYYBOp |{H Xƺz"֥UxtܼhU;ZymM"v Sa9Xj}VLS37۽*UyWTXn%~lg'8zly|R>V{ퟣK3E 8&`^8}BNdvX7]WĨN$>&^'L*6թƟySߧXI/ɻ.>HQS:Q%]l.vcFfQZVEAӃ1~ڤnBUHbur!ڃ\|vF+ʗ'{?W|DqBצnPW /\u{ur2SU+gKk$ O3͜ E)ad%'̍ͤ ́I^2V X;ݶx'̾ Gj}eEpN s+UmUBW@{ꅶ2q^]nbi$U)s5EIݹV`g>HrWO Xw9֝u,鵪tcR! s* "##J^if8Xujs0aA5'0L< jb-dV7~,ǽ㱑Z)[;m`?mUどoXsdhe1 6괉ж}+ ' ꎄ>3oS– ~E Xd>L1]:~gNfw`7mW޲@&9f "Ɨx `c6A YY.47hZGB{(|o`uPy`REPZN_Y !P6b=9RbYi VN{u]eJ]z֋}CVMREŏ 2^WJ^rjÎS|r1+1* :h4EHG4BJ>_HcP"3&خ>9cm!XSsVdz!T}qhk  !_g(.Y=؁XRӾPHqMڜ; &g+ݢA(aU9Xy <*XýB<:kJ؋ "K Uf>~5ICѷIYxx6X_f"1?  EE`:4gSt.ì䪓?9Z gt裡G'c'`WZ2+:Y1YxSˬx%ҍu="+HlS'Sx=׳"ЮGC:U-[X'K*O ViEoz)T`mpk3EYuk\A7V>S"ԝ46M"$'2( ! =v2V'ccU'Ԯ|n/ -Սr[*6JdAYRSt:" g Z{SGmzyzp)XQE|;_e.V*N=(#֎>d>r rz\ `OYg?=CB6Zsv:Zvj2w9`Vvs^妳Gb][puYئTtjXᖢFB҇WBµ;)<\}؜2,9PkΧy]~N:0o6gHaVٚrP} +/NώI/[\%3G}D+8gޚ~ֹcC՗ IDATM~YY)>h緗R\A?_C{Yq%g#pאxJ u/&WӄH^^>|:]J-;Zì^ʞrT3L߅w]/IDE =?qZ) ֻ 8//*pƢCZ"¯c,=$YRe2c Q:k roK?<oOLt!Wk!U(YMmoj G_@9۝xAif'볌[zBW+iTG r V<7!ǰJVygYY3AvPlz߇CЈ3Qi3+X9AP4C{xHMFa3ɚ <UH52 ;trxr9٪1eu/ת=0{Fw8HH'ߑ5~%i llSaWA}D@I+UYtLJ#LQfMVWМ˖|)nzP̐2 |Ɂ'eRUL捛8eMO0vCmyС؏<{28k zQklvhΝ,q0_k똵Mrt4%iǓt=s"jh M\W :59S+Lɐp2{䫞) GWP4Z6WZ+"CV7E>>cX|X3=ɧZ ֵh " l`vc)Yzź4F4yS}v}罖h .X6F!7i N@fwpzhE+Nd [.OSO~x>r|g]e=!\:<;XPqNgP=JjE>zC*+F%mf.K t1]M}Q 6W0^AȚ7]{3hg ֢ڏx>d4FVtHU@jQ:w}Q5@Ṳ-3mƳN\%Η|JY2{}hTg ϘP}q= ʒ B ?#G%VJoR/"4Gtcu!T OWDy~`f)86cmO*&ղi K2gdt V(X%lz9VZъ/yNtհjj#S4rr8z:6O|xI€ubii֞kBJ мtMY4ZE%cBH;J6WEj>cmf&=\U?v4 fiwlman!he,-6.&: GqѤ3u|ozU4B:Kn)\ )m :/>xfrlF蕮# S4=UxuBp2~,RF9cõ'9r`mEn(OjgJ )#gdʣ `pϏp~Vj*mjltڶN#ߜǃY*;)T 2:*xb ́0gѪaXڸ-K w$3!>iy,(aRzz#s(XCzm0})Y%aAn'?e0^1=8sk-yvGsܩcE /Y5/YV/ /#'XcWd90'x-jO [{-G.ċOItR`b**ZѯZmN[簹H#=Յ=if7s҂ccn*_vj1siă_| [U^6*_Ee?u408!º%\Z[㒵|?P؎!z v:!29"^6;_4-xYb&;JN|%qyLF5)X` B62L2-Ո)/X\fyt,s5&TK"&ZuNJV6,LJÖm`z@l}U7?rxȬ~KjT,FgL⯹:i-t/n&:xsQaNm`}m::Xuqԋn%xo?)b7f&ߙ_g <a*K{WБ߀2(c$R _~iV\@!Y.C-&.;iʻg*-Ă'('a~,:Fh`8k|q}m_BYtr::-SFCrR~ "Y:ɲ)|i,bv>PٚC7 ʿ>8ZAEƬU?MT ߩZpv=>ff!!8FIx%{X˔l]75y]J{x6-TlF/Xæ8uMcEvj{QR{rIWkO`\iy#9Rgfb@:Zݯ8}KOTbߟ=1J/gU=|peyco5wt'bpxh{Wq! Ch [ oYbqEf70EN5^??x+z isyx* z3PdXQDqC= z:V91U== YkR- o;嫢v?ӳx9N{pf{;<~&؏4(u!Y&: aUcqju+jd>ϼӃ}?]~G3a,jF;֩ל|")UKh\z-Z: z_'S!}EPb 5JG'g檞eyKvA=$XM[*f!QЯSOJ=q芫TZ-N}yNO2MOi!z[zK>ek<[EP~~/"܌zkOUr&Y-3V b6uzI<,uݜ9Qe57dt;k[v1YQ* tag?{<~pg, UXۛ l6:A=/ـ*vʴj" ~S~7T/S…=_cgPg\|[|=aThힱ>p=*YUz?`Yx{!MsJTpEVn{qoxf:&<>uϹ=)Y0nyb۲ՓrӉЏр΄I)^D=2%!HW9:J(Z;2]ԫvgf2bj/ѧ|+2 >fG dKµּ\gwh&z_3AZǦ|]^SJn6Gv0h W,zswiXx)ZM-,uϊهl7C.YPU9T/ }+2v ZN/[ <O.+ :X='Nmޠ{z=-Pe%0_ / gG 7A2$wUD}B=vuhUgJڒUԍNA睊uH1D`BIpwKo* RvZ!.8㑶<^oV,ŴAWѪ'V(Y p6@)Z-/L8W%(XGTD9U{D/_-H-\i4JQoZ<~nXrUh WRWUp~\.@?`izf.ʌ:Zcϻ9EΏw )Yk]&hY ׫afUu!vc%cZ`E<9wps*{^λ=#gEM*tuv3S0:4c&GKaׄ ^twD߈ݾR-]'4{F^t<kl}r\O(VU)x o`HQUZHBe/TM[m̀njH1pQ_zEWjU?\W)2ƚ5̧΂S6V;3V(̏UHW 5@aB$!3etx b5kl8?X8VW!JeR5qr;Loa9jm-:Y\ՐMꔯ:|zz.9U慴˕w>r+@.8Z}#z7`Uyb^* I5f0{v7JC5gUN?Xd6=X és> lUxwoxuBZ3J+1 Z\[YSK t>OZ;.ٛhX4j& 2/ePpjKQ&&o/oDU_B<>QcXc{Ps=]7} mBpЁKSf'j%xxb\@$ `sLF\ITGW,ӕ !7?`ʘC>IjbIl<;Ԥj7$om*Xm,!q6elq#U^|t%(|#f:S,a 5®t$1' ڜkZ<O;`+8o^`Rgjd_-5\l_niOqJSWcbgr#ȼ֡rR~YeLN[۸C LT_oʩG` AcZAdDdO^LQp@IZ@p}"IWQ}"SBW >NQ͈%Ys57r8MYKV Stq.qԠ T}#rVFJAuy/H3 tMHX VխK@!v~iưu2^E sghT]q+]UGD+3܄-Sb VA!~F_Uo>x_ 뗚RHVL6EQB=`$_DN-;~^$UmGVԬ"݀\6}+N+"XsFKN8w24RC{(nPqK7߉~'+OxEe٩<$7 ` Y*-҅7-@S3&OyE}{7k6OqN Mk"ۼLjWur"ءFΗJL z]c}|Z+ [*BM}g(U71KG+BU6u|yP1\3hh.N5SQ|(w=0siڙ;fH]|iX+3yv,t%4Byde6{[/>h$`ǘT-]9qTP}G!ߞUH%]ZDix6U6{`.гENNt:R}*Y]"kNNs_/ǝ/vX(?Erz%\"!8qChdẹ)'rgȍOD*,33`܃YL׫ B YWkOP#~;U??dJr2d!!)'!.cogwOCnC IDATNgF#YPcZtJk}`=`=|->;,MWQLi"eՃ\thN:ä+Tɝ|cza?g)YO, 4RTsmRYr,Ǝ\jClʍѫ}Դ-Y93 F-Zҳjzb>bWnI" fgrd%`hR O jg5 Dd! wa%4JPQꋎp{TJIZ:[ǎQ͞=Cyk譨HGjpWGry_P' 9gM'͘ӕj2\p[IS0ҚȕU.Q :HZZ#ѷP_i)YQ*T,ENUN2mET#$|vyLjsi+Θ,̾B6+31THie]}͠-E3ﰥ=tUB42ŰF"{ԮqՅv1{ic*R=uz(6ӆ{#x,!\D+Z(H Ɋ "Ke?*[7T{U3[k4l6Uy/*XE 2Ij 1`ywm4C7ty5!eT5)k3 4Hݧ Vk53YPb݌<Άۄ<( ѭ,mj{aS"[ڦ+lXsK|. ͌m,3?OB]ѷBAà4!.E^S|sF& @tNݯ{77f2Ќ.QD"GSOIJYa]4fB_|6͎oQOQ3LQQsDNFkyT{|woDoPLAyy9VuRP٧+qf}9k55`>;=_d# ,0u Cφ%e#+(*h#MdEE"db1Z̸"?pl*z؞WÍAU1䃢~,\%j<=~*)Y>,_`tۚd''0@bqQH#?ʯ)_eE7U<. N" MTxEWRC)JDcq fzƺXdukTgoDe~NWo ]}y'$ ~ؐj V~~[R1[䝌u)_=k`N^(k*}2qZԾ^2,:>a$YR7Lg)@4:goͯMWl-OBv^AW\qYYc&D\?s*=2g8ƽfõXmTw1Gu50늵d5Ei5+Z3u~F<:Uχ3d^Uud%LUZ\LMj4 >ZFV?L*g!vϤWSIX1?ցnߖ/˪t X0Q"\,Ό$H:Mz$ugF4*k{='DXyO@r  U|gB.,L톏t],^ҘUc1z`~;0c8ȩT #N"zDpYdUU3 5HeLK=`m0֝s:c|TzGu|W\U ѣp@ j'lyIwUT"Vc}9ϲe(1lnvVRT4s\"8Hexr)޹A]mxD'<1+v6kl/Xt4\xcy6qC`S)MũV eGt T>z~p)|0U>aP b-L;?M%IR"(RjX^ӕGũU:qP z]^elw[ØK{i-Zgʻ4X]m; |-\h𩿮`V']a&#ޜGGutw_\'ce%bj%? ŦaⰅJ䷺z[0ٹϤZKm2 )9aA!q^P "|o}hx|c_-'qaX IQ!{suGPZvO}tVnnA)[>lQWQ,݈nUsŦd2snP?:\^9-MjT_uc?B׿;t A&E,MWtwOQbb j f>&E囏+众KL#gbU>5Cs1_rjQµ}>8E~*eYQ=].&lu23UK tZx= bhRRVV➕/v;|RƲMgrH"I9lUo>|ua@ U7iX\P3B_a6ޟylia׸="VcmG6 qXǞ2^9S*(g᪸`%GJNq煪ًbf7zanj@-Ⱦ<k""bn1VTГHy.U ԯy&'ô̪bx[Y\UįWeX='Uy-aZ5Ěy3ZUTb-^a`XxsN~WjWucԴPc{n,7z=ܓL,@""ؑD(9ဏ~3MU!).~}dI՝0no6u3 -}囤3yg PM3N9ӌFjXK2=<)V%nEGkev +1t(Z2߼a**C3UuZxY]>H+oa>Cvr=?ajyO╭xWG$eE^U )f@A)9P":#!7-'h],?t/AMk抱A/ (iX 5n(2]$*hԼVf*XG 5,_CCS-RSڃ܅)e@ɘ ΐ?J4po37RϪZP8`}7KT̆fRR֨`]X4…ݍoXOؘdYc(6A-#"T}w,ewP6f b35|ՊOFz~_N=7d ?߉~$\gT䁼tˬYR0Ƭ]naؠ&615!R?;x_fը,R4f8x:>u[ !ZC6ӍvLM xk洌/-Vͪaq\O7mJR0)sg O}ҧL˜* lT*gB(UQԴ" k`Guh¢Lj0!:S{:_pҼP@ʸ~=T\gAXI2X|E[u=ϛQALU?,/]c ma|!ɟE)8&]U4> vv&6RNQfx1 -OArCU/* YşHY"\WWĬ+aOmHdyӒ OMZ!f'J2^qޱ3}Q)q 쐈ē(gToqOjuXe?0=ȴ>?ρ l;5X͘,a.ҾN9`҅cYb{i2F_~~3GbS[ic7337a{\~`?TOB*cLh+]j 9}HU#z͹}sbϫ%>wЇ\ f9:><)\KiitN FaΠa c6;.dY6ԭ@b $ v2-vfw$9̦'т﨧#To!!b=v_>-7,AiݢuF sP77D²nlMRe~5$~t#sN7qo^\ПaLO(Y*kr{l \7rʖ}U5cŧofgnVU9N‹c$EpguVy-t_ ?ž[OpuM[cU{U)MJĊVWu42M2N{JKEܾz`א%PcZּ*4V=6TNP:JKS(9ԆJPE ^İ8O8`={@=u,S2o4:&DJ˸(*TN +&i>5:֫`;":d4~6\UUk¤thN ^+<Ӫzj!jj&?qO-\["0e1L*\xB'!>u 3Z5?fkOqPʊO;mǬR_ Y^Q"5`Cfb8+DnhffVF\~8 c&y<SXOVK})1D7 ꖪnj0Ʈ 4aؤ~DS!x'qioojG'X;c]DWYcq^'m4t,Dsj[IY",x/XDpZ&'g}z'!#2Vǚ:NHϨ%\O H]iS$6.2 -ߚo;p μqfM*X0kd?6w0Vc:nLoYQ7͢$Z&0lgw26*s#UP kmekjǥuRmƺ'MApz Fe:.` m9ݱʻ!3 U 1o.XyZpHYfunC{y׆/.}RVT~6`;s`V򓢪r]/Fi֦5YZC*SĊ~DZӕu,o6r+;>sC`Ts/Շ*pun̥Yxo^;9{Wa=BXQ@\9DύțoT ,">dP[xzj݀*ψڦ6?u6=Wz^O>ob7K*k) i Jh`.28CZ{G)[,*}5P{K6cyը\BiE559X]H /߼Z]mkrL"RN Ugҡ]uM/GQwmh0||NCjUF^^4&"LhOT^ۓXהNd, "r镫t–ve0UC_'޼,z603szB{UNsM^f'虬 5WgJ848*m݅÷%eY/U7Et'Աŧ#X*_D#x/峗i#K{VDXe'@2WV$^x<&/}`Q,|@:~HEZWgCoZTm z`_ .aiK"տLp]- * O^X'b.I-l0^Io2VOnX{O_n/R=4ʊl- Op\D_D%X)C?AmIQPyj/:8.^f扶; Rkq;n,3B;+:`Qd,"=}mLܛT7oܪ27^&E3 OfJꢎԝYUϦyZ53pd,[LxsEKHV3O"zikdWQȲZSJT,ӫ>^c}Ĭw+i`M 5th$Wiz-E;dp3,RV@{Vŷi +žZ=9!鯥Xiz [\ lRB޴<6#Xc{8);3aۺYI&EWHZ&mhF' H(6z9zH6ޒ%qK< :_Y{A1ކ6YՊ,U6r-}ĀdR>o`6`(mCeKuDY|&JVB!+G w*U-fy.B v,{&YL~e9?MRVq0'7kǍb!:Z ** %op=FE2_kGj٣ m!b}Y깤=.q+,kb2j _5n6{t%$焵ByxB/'?SL̢qc=`ўJoCP5OJ۝ iE]z!˚!s3yjD6L?=1Palc{ ][kb_袃72Gռ8"fG3X$VT"qYNp\I1Z_rRSozt>J2q*/*Hܤ}0[k0_; zmxߧvuo7y?^A(IZ IB{e~y+ClAYzhřcPv۝&f) >Ъ1=Z:@`&E 3\pUmaud|He=֒o>'a{xSB4`VC-OSm>hPtxkPE*'𵻩Q*4 *U)CsۦA]G+[#4v0B|h$ V6TJjN NbN[ 7s^\%_gvnHMzUШ6rc9 ~"}-j+(Ӟq2Xp% o5o)X8`n<<gDP`{ ۃ>regiRUs*ͪZo(Tc;B"hL_=gu~mVlIZykYgk EVmZTT Cr*{ZBs?feuF,MN簇exgW{V fBw]H`;eA#KdK_C)y66%5[tv0=kL7@i[tb,zWUU3'3ъDdi%buJYX'҇ cX9N"G+I7Utpx[=D~^fʝCWY Zzgufyx{={9wP':nb )ʄYrfBRز]Ĭ+<LZcnQtQ!kd|5]LIqp7Ix8 ZNh5k93V蟪7Ѫa`%奮A'j4!U+hv'(պ&]wIQmj3؉h5E{X:1T.ܮh}'YE W)R`1AXVo% ݙ6p)*R:zQLjmlj6;[)SҫFYf )n _]Zy6#[>O-~q'@FϾ>vwV"9]$P&e[3 * ~Xc+_ H=_S:=xU$`_o9_A~Fo?R~ogGiו rXGb8W`ϯM G%'5eG x{ftoޔȲq'I|,/:-y,GN|락!WRlS|AM~O?,JW?o-T)NO;4iP j{U` )ӱD퍢OױR8&Z$_g#q]PyK޼LVQ9`iJdg~fDFUW<:VQvYO"ꗸlt/VC^3VVtL)-W~~~3OK~`RtE4fDr: } 1x;S R[Vqʓܳ]!`e2''6~#Dh5-UutD  tuS}n93-eN-sMԑNkeR uy/4/+RU^h R{u5ӥ/RE fճ HJI_to %3Ӷ#5FՉcfSImձ&:2`3q&L706jOd%Ud Wђ7'תqK,oIVVD巢.3x%a+ ojdym+Ɔ~{zN7X 8aa4,{꒵6uƦ7²S0NK3j[Ux]5`}-kt:a+=lx┷fUt[P؆uC3]f*WiOъXAY!Q౅NCgtQܙϾ.f=ptfvr 9/|ڥg~^ S޴NMG/GPNgH 4( gtPt$]YAc_$1vwN(U|ObkNG9luh_rG<NjT.J[P I+4cqƚү5>u'}3}׹$XwjE[y aT說WjG5ߕf=lTnX>_qB/0]<6;(*^.`RD>Cݻ/1E Hb8`c}:7n^0@—5+w0ɇ*S!Z)#R&9uj9<^5a1wE{l鬙{V/iXtqNX&ϺԪ&N>x{3N}&)2AFcM9DsH EF߲ᑳouRg2o'fpV0Lk AJ% oDʜ`NRۿ̟'M0WP[ħ,#N鐃YErh%Ć 44~}[<{,$E)݅!'r(j]xHyD7Xd-W$456c;|Fhu cS| Bv394Bd{fS]Չ*ȧ>uSЪOLj+X {ڬ d5rV!!Yخj`dhubtX:X\(Jv@VQ5iCDDĝDofΌΤpJt!4E<o+PhX묚)kzf~;lY(~$ǮmrI򁉭uj2klcR1Me+Z +sM@kiA#HZcEE U', "ca阅U9f5,zֳigYizT)g]o biՑY q-*$/  :,ʑNUgn ؞oHkzK'&kLZxn\G$Pˍ/T1`PD.XE:+U0"i*Sj3^1t{߯#aϦOlB/2X3ȺQ2$3\-6GG`]vOm>ukWjLIҳr b(.Ö(_"'$()@!eo2XZE~v1]ݩ}ajl.8[~d5D_DyY$pLV̛oRK2klc}=Ƕf-pg׊[EtUsʹ(vaU,u'}aa`<*'6 !d\ˑt[\۷Α~!d6": w>F;pU+20@cnd]Sv]݃ҁ&AWQI۴)=6ЅyF)w2>]u–+E_^q"nQ]{KUŌ,2H_(! UaX[W*D ]vf8RQā:Y'TČE{+uC('DJ+(U+opuothIYCW森әPlxE{sa+EHUZ9B%ThbIe85H%MS^cSdS!^Ej8NR 8]iZWK~Z@ÈUu{8lҼnH\XXeJY{] XW@6{vr%H{ y"=goIBCXUlvK%Ahɲ,K毟zMTB'Y vjPzCaS7T2ߕVcJ)ìX3iQ Wh0&F"S#/6ǖ:Z]9^&r +#(쯜N)^!DCrm}_.Y-Ͻ/k;Y⾓`Hy`?pN󥛀5cDEaҍU-g'91X9MeQ0k=kWA[ q6Ÿp05F( (Tt4>߱usn+[VƐMf #VX%3&]=nWsbh3J'hYD ۈ_NӊQ$ܳTf.2i^&OgKPk izM58@ ]-WAJAuYH_ûX鎴O3KzS.3h~*]OEG:VUGCp!^=ęt5&`%TkAtu=cɚ~JREZYekG˪)0j*X3>9jc+dުi&rb1ҕ,l'mFBiT5UQwKC|3 Mi/f-^i5R Z4Unz&—XNx$:ŧQwJFxˋ8Jvֹetdu͚45QZEsfA X{-'ˣZ3t%>ID`%Wy[ٳmaDאd1d8kb9 , ;=՜6Jh:55]G Jc_Ҵ4v]mi  c5ƼNB׈od3l"~]O "d(:X"]F+d|`9^iVPE:{:^9{N_FFC_c'c}u}s|W2([VyfDyR*Ff̸)"/[a4k@ "1Vx`7ܨ ƊZV|4J%1BoVf X0UxSȠl}*W799g2edpf$#`  Q߬}|NtʳmS銺C S 1"ZnnVߎeg}c]q{ߗ,뀏ݭX#VCN[֣DDpU( XYf|I?@RZā8te*ŬdEbςTk3DŽ} P'rx/dg_c=J(H=oLIIcht0kӹM=`zgh~ڛo;zVk#D Q#\M5c+ؚx**JkCg=ы6AIVDd@UD&UƓvY ]$A S2?eYRn뤯¬{@].ͦFptk^ˤa\'`͘qøy~"ކBWw&X KUJU6|YֿgsK6{1J ڃHYNCd TW ~7f*[Y E+5 +vmi un7kƌw_d/R* GyOɐ"Zj*o\RJ.tꢕ7VJ))j*ҲlN?HZ5kx4DQ2JF sGT^o=8ubfUJ[E[`o="jRT(c-{ixɠ?'A_ҝ4W"8cY?=aQƽFی4N77r([-D+6~_k2 +}?Y#hsx4푅HxXn\DU"DڈN G?ѹ> 6J}ށ9}q\REoHWˡ7mfӨqk2֌f,z,uzKУWEnI F * uLr`Pt)'*a E~3NAJʓJv[gY۾)h9T5TSwU/_Q0O2w 5|֌:nʒfe4Ila׮24czU|!I,?w|׫ _P5R}ǠBN1܁oc]{RڦhI^Kl,/ߨ XSĚ1 >._.Z%MW4`hŠ#N8v6Txe.ew'%sfIߌNk˛jح˳3ցl U$n:{ASAyL{p3\*ߛSF+r$`%u[ּ.6śxE7` %i\8m-:k' ?9~6qbo=[Z9l}z%L5 sU?xL .T4u`MkC'a}hiA^5jVZI0m-gC>Oʑ.DLH59cencQd 56s ]UԬ~XJoȒl`&*=Uj ˜.f̘e*M WbUgsզJUX˫Qg%F$=n~0 Z(=XTs(< ,y)pe7Yxs}B14U&?H|*.7=@զ)b͘u^#sKQZސa\'HyƼH6uZsrX4p)Yq |mAt#6_'hWΑ>.TWSsAf×_Yfx6̢+ZNIn6š@X0g,+dH"q*sɪ0d57'R%$) 㗷kȟL[ei!c} z@L0+kU/+\ pM1iI 'q*'p|McUL32SVq'J%`5(c Uܛwρ iSqa%@x: #.c]C]q e a8TyqP:V2Q"5cSSvb٧^崛Ĺjbb2m Pg5$*ߝRd܉/ {Pb9'TF'5HfPl.*QmWЮJz:QMx˰k5cƔcԂfPiA]PxY]4@xA yHbjM:\%]W,a'?awokGe1Svw@{9C*d꼙1w&;?kƌ/U3  vrm˰|BT2:R͂*}U+U F?: w]OA=OBŕxuJTqǟ6@0tC  @2Rq[pCԥ,f brx4~.{irކ0&pTvI.WMzVX3%n(z1]8 u)N đ\!sHAΞ& Ix:10U+Z>C AK\LFpdSA%P]cNcuW;\nPj-i&'JL1cc[~eբqҀɒ;;cTy,t_-U.VMiT[ `exj{e[2V_fm>cXĸ0v:V3ʢ+2nPl.( w\|;5E"n%<э&FH[ꉬ\A4"TtE[4bV(#hԈvR#>m)nT5'x_d eqO_Jzߕ5YX#sFtc<7moLlMfJ# \&`͘q{ɀBKЉCU܁ݽktY𮞬[:V'W"<+wBWk0`H@Sؔ #7: w}dqLڻjnz]б+9#̽CTH`qf̸8 -ROu~2AZ5mر&KQު◮Td"JldE%~@W X:+V}Ն @ߥ_I,YX9m`^[\U*MzY&_?Е=)V"Xwzb,?v:w8̨Z#f!T%_3nSbe1G/_S5IFu=z sj۝!s(OMR\JS1cW Wv &JC8x.7/]r=NWz)j:%3dj kC%fs惟ɐ\?uPkNL6$%kHc$lO~aݿsսYWgF*_m^,%L+-j֌3v vEAS}J]=a,]nr"LhPShxﺳ53kF>*"aYMi ,s׏кT)}fţ1t5?h/&:+`k&cHœI "fg%phٟL^hW9c4X2 j %4 9 vե38_;~YxR3ޏ@խ’6;V0wXPEbzŸ'Uy[ޜ4J:n֌3>vuDZ S})J&YGdzs͓ Efazܳ"ֺ-SzyỈbx%)=\n ޖ?Ew6[ڕu=X15aq?K)s]X 9u]wks V4"1X1[Q,~m#g+[Ubw9 BLͅy (ĢmǃجWR+ygEf9mPt3͐NYz2% h}-o90G`ցu: X?}vif]:t7^+bs=TR*d**'(V]ա.լ< Uo<2?I .\#3HN 4Dbuq`b`#?u?q}t^&cy!t19+o-i%723(ܳS8 1k֌yoO@W/D +Z-p`UCW}j<3vހ Q}UG s@QMdUQ\և5Z_v_Ǯ:-6t UF,;RPnzv:!:^LwNc֌ߝ:uڣZno/vz|L̓Id GM"mN/9ړH[HZ%JYhFrx W]9hWָaRq"q$|Pe4L[+=ٝm Xtp -v5C;u׎hpQ(0re{&Ł{°dR5O֝d*Amj.2mr2BCBMVFQ\셃CvHcNC7qkPF?nNu/ n/gocn^t{ͦ'UwLh5cW_.cwz8+| |{eIWK{&ҕ&AVh*VoN8DUe%tJbe"T>Z,>rn[>`ChVnXw|kAs%9WjI3N&Y] c%IW3&].U(8JttʉT"DÛǵMJcŽaVP%銸Jb7>,X&)4YV<%c!UW]X@#GN'*}hG>'a X^3rו'N'&URVfP`}誶Q(,2: iFy Nx\=dAeE^Vبhu"cBY- ,Q%>*%ai>[c{usXh)81OWja|ARɀ4!V<*TiIl\ANԬ4|ܟ n @wBg]WH3 gH者ƦQRF0K]Ǚ,*VeN% 5&f}x,Fҽck3ץ1"M9LҠ0($yѸ&Dk=N0x'C=8qO!N*Lާϊ1iR9Adm&4qGMQn<,GO ]N J*Ne9nm'' C-N\D6&͸[ʡ.N;Dʃ`J.޸R~T2Hle,V9q y'èG(juWx(=,M9В$-ڬpֶK]{VȨjd*M*qK!䚰\zPk^Bpi *cѰq E&7PՄ:ZNi.o,T?sfX*]Ӣ=m&`=F5IWw'nAǸ9DZW2C.6{#CDM;X ܵՋj'χj7e^;i94BB)χxQ9fI;VYτދ;W^Xw`ЗFKE\S+趐JƺR'`x}kzXzF V$N.IZp j"+-]:hOZ`,9Pi|yTrZ5X6X-5ki6bC^sQ<C Z! xxI# IDAT+aـ)XxqC_g|.mU=`Zi% @Z9QPЊH@|KN,VCL]mTլ~pEK_qS//d7UK _hUdf[-_u*3<$; pW>o5 Kҕ%j8<f30u^e ALi:Pю/ٶHV*c C|ƹ$n/!0ϕi 6 ) 3.lx=Qu5%)b}-c5ӝO7ځ~P"* NDX'#?H˰$Z0VЖknKAR"X(y1@sx'quq&_6+]xVY5n{IJ{ě>V@jD/+,g3V>[_E'`xqq6Tj2(T<\̕- [#w|(/%&r;6HWK 3|ZZpKމވ~ /p 4qA%7ʸүR:JFAC'J "omԪuN3{oj۽iHQ|$*<_;=%ikNyd$<ܓ،⑃Afl"< gwwg3(f_8l5;JaD?H7Cy{\Hu\6ʫUM6|P X3%֕1j3kw]> ;kʃ! 7V#Ek&WZ {Kc9w`>'ܳvDV_.-On*2iߒH@ĬΗ&N71a#c#PrfgssJmD(ƒԊAM`$Қq0 ZeH±%99AWIo+,JZ%VQ93>f|8Ǭ`)sU|V'J6kWX̓7+-t.ď#i?Eܸ –W^.s?hǨVKY̊{p]~tHS TIK2`SUe(k4O,kEc# oX ?['T*Z 3`UoZvkYMiM1cƧix_ J.$ha1=**rW-ޙEYVk֕@UĊ.:֩{;_qe#bEռ##4%~L|:kQXa9GT+Urf#bAK9[Ƭz ֌gu?\5"_u,p[jQ$S4ivJd]}]}c5먬\a?nN R1 ߇ZT{v ,Z)Vy=g? b&fcc5NHqaT&]5-j}pj njTf<c,->ԩ:+ Jx.8{6Pe9#tu~bA"˝+3Ъ^.]#-"Q6T5y$+]Jfa#kkD0 ;4N  ;۪| ^_/p if6M,H[6&`F5կRFUjzmnY*UQlɮ|'Q`TߖM5DheM0z:qd*ۗ ;fiQPT|wnXzcq75:tѡ=wu3x1 uvN"wz '`8Lwl `rU=E ^JMHnBWTʃ%2L[!4EUwTr[ՉJVriĊϧ90 #tF"t;jϻ̮s&ߔd9m[jWNsWrQk%_Ep|i5iÿd6]{E+_'?%:%;2q"h+Wfŵ`T_ׯ\2$$\bP6b( cRY}90Pe./S:*Sm#0Tmx_Y|WW/1Atg+}%PE JS<2Ykшڬdx&aEP9"ZL":%k*c& @ax+< sגe0 v2׼Vm;jJAi֌5q"0nZ9ZtWbw4>B'PBV~ }1I*;hk&n$E k "eEK?k'0+u}Uu ɚϻ,ꐍiw[|LJԗFJ" (lXf>m+y=)Ya="y~SnFe慎) +I`2V0Q1 lDnݕzT\!+a _E(`CZfv\+N[﷋vmodiEG1Ю"\UqƢ0|GД"E@~. yx˧0-ÂY>geˏK_ǵd8NZYPr&_Xw&LVqRp2t:n+Ky!v,ijͨDϰ>/ǫ2p7z H b3n# E4w4YƮީb>OIl4wʾh\V("hp1kƽĜcH[EWA;%L\pIݺ>]_w@jdeR5،af$sa+N XzLx꫺fruOD( 0 K$WudEU3ǡUSY} V B.$lfMj<2g,"~\5cxPz}uhA1)*" ZE#Zj=*}aS/NywnN٫sM`됴amƎ#u#3xHui ZABb>#tu5kuhO|nēAG Q+HR6TaG6ܓVfpƌIW]-Z*ցcw66gJx_'PCB2t RUZ\Ƽj*vnlx>+o5ZJ Suտ˚`{{:kYWe{99?)]Mq/JW5tYTμlƢrH﫽*Zr)a\Jm`kQ zI_AJރE68' M"tg]b#X{%ս.>$JK1rS vfH{ ~:S3f|x5fR vd K`"jhWUI|YQز֭_e+:θ=,ê ̇.≵Zr@$jZҸ&эSS 6]%øiy{[?eWaqNDinXNȖY,^x#/fL.4 Wċ/T _T*IRQ@|qúu |aA+\G]MBJ:w)[UUՆ#{v! ץd,[)`lFj$N f QCӅ4P,%q "9hQd46eɖ,qS'N1cƍ:z$HBjdb@hXVdfc.$QؙyDP`da TEEBU2&,Hvp/Fdk/kts/fm`Q28Kp|"(ZT'TaSi]5c-fEQ1ȂWyH8~(Ժpqu;Kl7;e4hIEA,,"J1,rJ\;=/b´=s̚OjP{MTV&-XUEELMBU=!GW*W%`I X3f0 "\Np[1KjiWW}I1V3k5uTs<⥸XVeAvDMU:Ȭ!:4Qd P;;i]^MhV ̛c%I´= Qig X3f<^`9##9)Cժ`tgdu[X9HWwkSˮ1Wa\U !t7A0&;_e))WԼ #9`N =PhGzU,\CԅVN f欏IQ!y `]T}> E(ml6W;N5%M=2o|¦*9k֌3z1hͰ@U3r:w׃T,i+GQ1 WM,ԾB2fy^tbɒY:{[lt-IԪ;@K,d$]WhgxlcwTdzi 2 W#:N1Qw.K?ӭiġjy#c 5>ؠ̓M2XxOnZ}Am5CKfAR I|:S,ϭؓ9hua,QkHZ}V_Z~}1+@[eہ8hAtrB\]'1e&\<[G˶ܘ X3f8HW*prIbʯ L_EWEEÓYBUc$Zj;Vb IDAT!F_o X3fH5\Z+VXe ,,C -oRh>yY^qp#Da8ICd0t*c캷Gq\M1cUMhHO e N,d`mWIW뿹zh &fEKV_(]o\>h!qUwc^-%4L݉DU{3#(0r;ol·A+.K "J$KΦ+JG䴜Qw%|ip憎/| ja\:o:2g1yV#a W)k֌MoZk'F>·|,$HYz*%* $rܬ)/qMphoD?މ$OwZIj|uaZD!\!.դV඼2@g "Yy+@=Y+e~]6 HX$fLiioXz~'lIs=Z*ke!5W5cƤۄzl{Yk;ՅJUDfr>w2ָ: ~ds6\Շ*QLt.UʼQ]#Pug#]M_|$ ὐѴ0x"NuZ"`x1YmD%"))@iPOĚ5ag|XwW:0pR:Ajp GHI+`6RXʗ\ll" :\% n:IާN<+tjZzf;[*iEFCU٨Z5FK<`0Xtm5cƧBթ~Two^e+GFdGGgұdo dWTB@1RKI;rfԗNL2ݺ\ch?0yw:-c(=#IRJFX@\ŸD{Wq#S|k`Yɮau蠗P|" [E>sLJ;Ȟ+. Շ'<#3RGC~S#q,"!AW.d̝\.jDj֌߻?M{ᲭװK;4uʎ1hV|BYy:EЃ V%ԅOW/%N8!$MR+"@3+n-\npqMl\4ʃ]!XIPZs-jjϘu*ϡ+.I@1AY:X79&v+rmX!Ymz)*73|s/K`7#Oʍ E(8UP`$mgIV_g0i"g&iG+QMARlg (ExDPus-B ^ps԰ i,p,*j\3+tBj`cx@U8m0WG.AqdaSf UQզpt5kcDR. r]Yf2_w$*$VmT#y=A?Vuȼj>CqZEj|LE5DWfT+XO'kǢAڤk'5=N Qr ]thuX46BgWk fTj:/xQHJmtL'K!s(Ҹ9 Fw!p uƋ,k N(U"DSJT^IZFYuuR2󨹐Kt&c ;veWV_+D%Pu7jBA:7PefUh5VȖWf̸=_BcPG:vـN]'f-]D|@}ʧ&7+ENNeU^]Vqn}NT E2̘KE'jq8^ʏ)X|@z) J ڿNJs߄q3fwZztF,e`Jna|Ñad-mO['s 3N~ǚPXY4\.?,6q37 DZ *Xj jD{AJm>HpŸm2ɃfX֑bW[3;^?e7|ye a7툆 V4ѴYX4n#X$RZVNXD8ᩜ6.Bi|á_૎g+^&Pu;i* W(vAڬp[^Ѩ|SOB]0Ъ.kQ93fX`.D\yCjeaW>TZUY؝E&QV hx1BtJUR_ j U3?֜Zr$ʚ9CզU^:h5`yAW(GaϠCUY,Pz AjWqCEЊ+i8kƌ/^~Jl7N]rz8ۜ܏ӳa}-cY4"3ĻqNQ-$mTK.+/^)BʻXT#稖~dzqIKSAUF+#'te54suCPh+o8kƌ{vjK\YU &=uy18 Z-lq82}̸C6өO6Z(eMOU rʑ?ESRl`1%_!c9QAǒdd; /ZaZF@5FƊj֌_mA'y Ibw0]}gZ7<=TnUZAPYEc #lc[T#NU?Uu,+,#-4{`HYǪ#ZE>(c+:TtEϒ:5cg]Ͷ/ /@ b|X=5JoGTLQ0?z䧷=.KL! ˠT70hj@7֋xx X3A %X m"jaȨW,m^ cK ZS3F">.]M1k"p@ϷwUˉ;GkDz{ҏnxSb,-c`)ۗw_4 ,ɉKa([l9:`9͆>koNhԬ>QMq ޒ%x2Wqf5w*7)3fTNFuM֜{)N?gM"MV9m Ю: JW^ ^|L2x6WzZ)9WujD:9yƌk7փ ޕ7*^D t6׏US˪U_Nt ֡޾`]"RLzZ*wꆲӓ\11Z<@+kXX-Ҳ+ H xrf{e!$)i6H"%$>i ifIg"T:m6aN2I3z3pR d1bzvOyQk:5A@SjU{AI݈;l|1ߩ`͘i)˫&5F uj},ta.BT6c(4p=ӋZ:Mc^ydsK_ WDo|,tZ h%3[aG^%z㚄FFql}2EUVcׄ1|7U͜ӴO5cnxݿ_-:!orgmmSg$r.u*U|§p?&S`m|GQDd˘"?y|_NK/?I)Pʑ֩PxQ9ZNu6 rchNqKm (?p!?A uҸJ*sm}֌Nj/p'kIjV*T,%Ate'QyyOaS ݻke(zZm] 69wC+7j{y!9/<#<#ڼ֎w{lbS RVרdԅħ"u9?eсfz8䚀5cm6k/;8n, uJZ5偄b^k'hHYd jT^e?gNH*5d:;rsdD"6 ]DV:%Wa"*>"kI||楟MFUag&`xBku?uJWNyk i.v nZzzլ;!񪬽ETXP{[%Z:Yف SC~5WPkܗ]-%9 5XNu'v6GSЗi+Zc@ 0x9VՔ'8ymi 9G1k]`YioDD ;qRʡmpL\u֮7ߗ" h =i)p7kw_? W̕ E4&/:6BQVF5P:1dP2V3{;R$qQʢsf]}ƌWHЕPOp IF T-c*XoX{0 ̒|Ь^A܉hwuo](oJg9Zj~+$#d6g6ks+,"p*]P/Zi,LAe49HvO_1&`͘q3ZuMʫF:=MOIWX‚=LF~ٜS,4 n эeT Y3kA*>&(7&Pa,"FQGiKc%אy}BN,@?X}ƌ]ἿEpv,WbǬ3gè}C=PfqX ly ]%{FY JEj&RՔuGSqDrY3z-Pu.{\v$CZX CZ}K0>tme-Ɗ`* KV# V|#3vfԣIv6ÊzZ (GuW-_=:cìU}j!0,'ꜹfX;s" #naqKGۧ1 qZ7$]yi&  'HQU l^:=rl"'xHI3nLW]$}7c}!cŬWN^,q6J9E7eq>i,*KBo,F4&>: #\A+UW/bVG%gUUA)>5kƌtu`h4Dڻ*o̓cu#UShHYM0ixUBI#BT_Е,/ :*x "TG, 8s:Қz㹪Uן|̍ӥN'$ͺ=^!b=zݾԌ {}R `5"<قu#5~=c%eY_t~9܋JTV=gmrY4wU0TPurڸ/PƁf㉕ſKR=n8n&W(& р5bN$A*l ~+05c>\5esuY=?Ǹm~t0(w :` ~eF̪ )ǡ v'0ϔEє8` eWx^O߄9 6cQ,qJ*<6[pa!bֿ5YbOn].J$]<`׫huS7هLJ3;[IO?Ixūj5cƎ8mEנy`sfyz4r,u@?Ԯv|c%"msm>$oU%ٷ`ӿN?JBZZNZN_Vrgʑ⻒%L8J'GwgZ^0nxr56sk쒮j0]=3ZXu'ٕ;,fU,Ns:ֹ{;87Z T"AEuuG`XZz.D?:'6މ]MJe%L [j$2lȒl+Yk|̲ETjmxx3ǿ:sF"~JNBC2x4QZKy";y2l&OKK3I٪|mOI]ӝa֌V2. S'h\z/ jն.RSoLzKO :`b,*Qص#`!|EK%֟A3d 7Z7:D_P՘D3MRo7R38䃜 D'觀$x+U1s äcd X3f|p9SE,D@ ֩H!Z8Tt5cܻa<2oʐnʙ(LRq+?oWZ~P^W]7+A\j:9]Q.({Υy=PԦݨGQ X3f<']5B=qڅS4)B*\:;Јpuv5Y"֠^ue|9!/[^ f.e%VD;Fh_i+^Bم37ro~RLjVS?@UI%^(f9[UV}ɃJLΘtu}`t䪦j R莏de1Қ1kqD(+Ka\$ij?&_( -PAU~B Q&F{r+h噓E"a {44T5T:bUsjTc睞jXjչOHۧ|bunh&Wwp.rdW37Dpm&$4eTn^ryiSw~%8R"ZԞ̎ 6:Dfn\n1m Aop4hlG"YxQTxf: ԎjSY2\8kĥ j5.Q%)P4*ČtZ~Yֿ/Li1Q7=xgg!~#L\? i==}+ 'zLoo4ĶBR=`ڂ17=AVZ{% b24ú#ղ;1#!c]Vd,,>Q 2&CN-3O7o+_U9HxfyUOr[_U߱wW 952"Z<c\I&MFRRJ-?;Fx,0kO?<]/ҡq*FBZyĂ!Uw"%Êm|paΛ8Q͵cSp4,:Iڪ*6(xeֈ+[ x -šGySaڃVsD>bĵ*c>זUT)ڨjJn_I+@7wP3O@t!ΈqN{G7?(EӔŠkj%G*J[p&}ֈ=IW`jsXrPTx:}Zio\wՈ$z"ڰ>А狙RHW}.غ'-yPп@}>t;M{7oL[WU3Z|ׁAkֈU3`gLަCvZ>ժ")00D#>d\:Ax7^ vz`MylCWsTw?/{(w5je Ыc',"ױ׍1?ŬKU>{U/RPw”9Q <:jW#N۽L՟(?Ggkb햻Zc'WCg};O!y=X`-6GT1PAU蓔sjU: `tk}#ddIL.mTrh5 F|@RBZbhHGzҍ0@,' 0tSOX{p :xݼex5W [F:N-_4*:Y4.5FVFk*N.U{U> i#v[&*7nj3b80Ps/#i$ QT'Q-N{l4u8k;z>Jf 3fMIxz#4:]p`^~wNXTm>|&i\z15{1W)1%4>as tY~5:TD `RoK|L֣Ztuv5#nR:\ =? pYHOBC?ӵ('GԠdc5:jWXuX/GZVvؒ`.?z~!_/_$]E Wh-Y] jMejCprN ȭ Xvulq'}W %*p*p=)P gtwP !3fnu1N=?d,r(*/J0Jh=#SᙌqAO'(E;wlU+Tz)0,ZsZ.;gB IDATI_S~+jpuTk#^Eԩr*M.Xt[]Ni#k]sZȈ`UE,?bz/uW4O* hNNF wG({Ka10K%3_&rʯ|*e [8U<k>]W/ˌ#ޛ|e} DUd[kmU5uxkts›`k3=xM5Jȩ<]m;lzD2)ߡXx#7PXRk(i2 )9E[w5bϑzզf\DҭPg۫؞o]:˞BzS"deTHG//ߠ,@O:[(ļL;Daj*Eeu̳|HTd*c*Ꮞ#~tء A+Њ^FG2Lq*:ʝUc߸xJ*x?*yoT"X-F>T3"w/ 1av/NED6cRcr3>HLħWv𨁔 D+ߦ|cF\jz,Qu:)zM"xaFۄn} DPjKSI,=x&PyCx!$2xܧ%+&bIx2Aqf B*>"Z6j9ݡ*v%x X#IXU93hH@jl9QI"ꧫγGՇ^{7]t}xKɒm.W)~<^[ҋ!_1АtAhWkp\ ߊn+2~0œx \Ѓ414oX4TZ GKymL#`q܅{G&U:-YaKjfNUa(ŬX#FvD+:GC7W$=G "V_ _] ::$Q  G 5@MW2hU$#tW{CZ򕙢 SH.3\(E*X-ƒ_2%):G *ZAΐۮ݅҂AWW{8)_I* ZjW`"狫X@&]5ּttd]1vI]ϵDrtM mQX#ߕ d++%V"E)jNKk n#FR!_OѼRJhζ9N&-f-ә<)*P ?C F{:7ْ4fOFi6W˒U/hE|_BWV|% E5QNˆ/PX +i^E5(_-%WirDMX Q'hCSҵJt ǵ9-)',/kQjzk7;th`WPOM v K3%?wx_1ѕI iRܲ$3 ij05Ʈ=p- S4tUWZFXZ`CZt՚P<\%i*lTI|mO/jFcZyvСm[JWhFԵ&wi:`9|jf UWqPcD,,ѵ8՛Y,fm9-/z+4 :}7G2G,e-_#IT {U/ERQy Y=8Nmw\R0}qQ 'Y5YWYB]18.7|*"telWiB./)ңɌ/4o0\Cs\qֈ눟r"/N*!i4b((ZiwٳڮX8ObTΞ*49Md{.dVV? U-:ALZhl^:#"v)b,+Vj9;` lb.]:zE$(-Ci[ooprc$Z'"c^4)#X^UIhrh7vBG2 :Wȷ1""&]. D*u>5p$ҍgrB6xkֈ됯$cU`͏L |;>6;;n.=E%J?}jOZe7\G|R{CЪ%ȧ˕wrst1cq =sӥ?j&Uɔh թsutLCX#FP5O %yQ1md o^^G]CjNW=+ )g7 )Ti2so+:p([ kjOej&X PF7T**:,"6 ˰` 5ܥ7\DJ]*XC\u3tuԡ<_&:jC-mriaL TU: R{b% uͧ4SVEۇƌ;u#58Uq#Ղ=d"1򧨩6]ikP%=&J0֜i>c\LHi%*3T>ժjAIWZӕ's@"pRr%_~zO̻g"jHe|x^,1=AT#w [F\Ӊ`,jּM[idҪI#q$3x+^ WeE|8EIRmpj]Vb)>[Ј.BR㫉J@yH;X<3 )Ub#zz/Td"~"v5Pf?yš?5#nOTIV+f5‘~ Wc RtWdK@ E YMvzD:Mڎ:X ~, tUdZL!tV ,k".?t&LQQ9.e+|L_KPҙU4b-%2Eh]x0nw0g)Ti9U})NqJ< /Zݾ5WYB*O {]ڛ] !_}(•ɣ;(*XӕoRGz.0jS9xTfU~1x]Yw ĭ+n^h1NPPM`3G 󰀳f?DHb51BR!e,\F׍[!񻩭] QL 9.tpAj|GÈ+ 95{UEUy2 E~+tW'b:O!aaВ$o=Y`-,]lGo?m U='B#%3(5H_k]Y1rv>ծ69p+JW#F܀t+4i.K -U2}DUE+Kߧ|s[1g MKq8NҒ`;f߄+7_1dRw-It5%Z-:4ִE0htuiWfQZ} *f&1ș}HZOt풩@au~+Z_:%8AӼQj<)DNJo"36 zqcjw3/FgPPZ^1 e2ְfեNK \*/Șҏ4D iAK}xCW#?8 Gj'Cr *XAêE8pѣ`kYTڐ=h?<jXa|3d#P@oa' T׶n tv/VO/AKP%ۚ}WM%Q*:I>0D:|hs͡0ڧ`\{0a>AAo5k|^=#OsO0caVH<6=4H](&h~yTyi>qJVP[Oo`ֈwKWhwzQynӵ"9h8]UVЕPE/f2 ۋ+/\#i"ZAW7P  E&/FsF <&։ /_a?CACm7~V; 03}roFXEDP~DWrqT9(C@ ઩}HYC8]ً]L`dFmY+U+): *욠Us J&vY ƂZ }Ȋ $\jECӿ jJ\etea岖UTikUw`$Qxnk UwY/҅3ωE8'jWkoeU!_xک"/Bm6nqU] ZN]UW(BcLA0\PPDd #\ pl"àr;8s=3x;ȅë7uyz n۾fk+2u]|p[BesE^=t5U2]'Zh\(fӠ@ W_ZA7Ы Ccs?]a1K`C*5p* 9!˞'[m@PYJ[A cv_;'/Y 5W;'g +uzRo:U~82Gl>3^`NuqJ3 㹭X,LBUܢOU[j`zRwP' IyVΒ]@ Ftq(lTzG{n)[t]^>:` z΂vUFWI/ZŻr0C\CZ%KlLLCj\Hjܐ[k D òbÖ~@=_ bV B{k uC+LM{WƬ)}|w{x#|Dp{`M&j5V;80#8wO3wG? H"_ՑG3~=>|UP. ۭ/8e 9(C@AW9X.O?o1*I +jU\e!lɡfU:=/ w>Ђ7ra{_Xejg$y;GþĩÚ+EĽn O;/UFT9l V̺:mtEwW^VRNJB+{ߘ)r2Z]5ZKWX)%N)V [fr"WDZ1{OK4e) s"̤y 'uӀ?wփ\V3;.AUP\okF뤷y''mҕѪTZ 7Vӕi?@WfQC&.Zj*X YX0XE} %]^#X4kzULYTut|2djCT_oZ>=R ^(`+C,\F1ht5 v'eUKwl h/%C?EPbN HYyv4|t-/v&M) 0L,lm6>yP+i1jQ8gU]uͦYr h 39Pb]cgNX; gZJ}R j=\'MJ®ժ|(rZ`,VXUZ. RE]HGc):1RP;̄10f_xsp-r#kOvwHWedߘP9.]]u6'RZWMT-BCYIp5pu/  rTKB#;+P'1@.]Ѯ ٓ[H6+10Frn.DK 7wFcaٛVr?|7mDH#, Aյ_x9!Gaks˪t68C^{ yf' )eJ>GiZ N"y,C 5'r&}>S7 0f@Wi T?ohe'/"չ^g`;wҠA^^IPPSEetkW~pYKڜb4&>ZPպ\gǫbU(i_~؉V] ~5"F*R_M&6JlTq '5<0m@mado幅hn^>|Rĩgtx_u]'KҲ Qn% tUĘ$8ꨟ=] •JZ%tO."tܨ= WU~jTG_pRzEU>!,Ce,:j';q:_x-ՈATu^l: 4 PTzj^Xik\EC*cړmIpa(>p|UݖJUr"bNV"v' ٘/|Lm*K~,?_ Ěpj7}8nWo2b 2ZNz9;q|t5ʏނaW 5qy4(.i(r8B<0ho]ڞ:! âKբ+4-p W-Vͧ,&sKP^Cu^q<;; 3dO|W}Dƚ.|D.R/i<|h$*ׅ^~ \{iQޮxVndv-XmWz^ڍ뮛}>3\@I`Vh"y^a?ĕS*zXF~,o cq;g78 欽!08\01?.}~ G\ŵE1kBOP}AW1]+k^% bU9͌?jP>I,bQШe ,Kvd[rkS;,-{ ظh8#2ӵǙAꔸY{﷤ѓah/péaĐ>ves]fR8- g%CB+ gRNT_9zD.r᤿d Ր(,s^8f̯W2i/BD2O6ֺ M RWj5z {7+[[ً%zPnX.O6@AWY{~ W-keW"$jWx]mJ vՏPLjZ 56 &[Qc\2q*Cjp9jwceۨĚvv$Z6j}WѢ(F 3tgZ'HdQnkW-[|Ea/@U+$COUՑ;F7B2E'&5PU/uoD<6 C:pfI &diMȡD5F|5]0ȏ3*N|GudNP% dJUVK6S*քh_ؾ L=]5& ̪jW:-UL"0\NGPED[0՝#w2< Cbf |i e AWnk9GZ8;Ⴎ OZae:;-LD BM͒2UX|JXVg{r[0) yPԦj}Ծ U+d|NN$#`2T]ޕ^uy3i{P::~tˑ{4wd ?TL,n֞Yҫ"=} ,QN} q+z͉qAEK:-/@GRQȵ ULz"]J6273-N%z:X࡞mW\u^S*i!H,B U~$ jX 3TY2'Gևo~ҙx1˾O]|A}//2Jg\U PeIWPx*cPW?TE~LPu:;angO),-=`}wܾ%[ha&} te\ op^Yy_0Z-oBG049N ZUprJWS>e⹁?ۺ?VzgBG&3*b?9!}(DNKA}?G@Fb_`.9Hh2dP9e4G ˫k<.Z5j0Ɍ"o]5̴f0gһtSCRT. &tmi. `hD&ָlՈ׈Վ_֟4rH+9F"E푪5[`ɳ>}&ZAOysG*eKU5WL' ]ܚ um*빞94t?cCՈr`~ Qm/]]tu|V g,*+˳,-IV;s*Su"5e k~WXd,8^ړrD^Q,iъx/fODu\ӎB ՊVYb 4.HW#1hK`~j=Y Ͳ.U՝^5QXj D%( SP?YjHSe3oxU~|@3+%ն5XCa&#:LÈD!=#]Kk4Bj\t|Ut*]JS (5u58t"uuW öI" PǼU$pűb]q\Ү>j6j`xo,,٦VAe V[;K[|8 8"R%nlUkL͙_D,–:㷊m, /F|m˗iZMWH@XjĠXc-L=J GSQnkTT9X[dI2]_T{+AZqGTEZ+X$6qK|X(I_|B+ Y~Ԡ+aU:y]>P :$Z% >bL-?e/:k JퟠZZ-\ .i/m=ku:6ӋTIW*-!] &m(^1ojňo5Br ԥZDӉܓho3΢4xQ[lѾz;,r|wjȽRQ%HjtU˼|>\\ ˒{SkI:,aO A|h4쯆|E=fIE]/fATT9X3.u_p8]~E3(NZ#&z}~xJ]n5-jZ#*בNXuZ*/)O2d綁#]͚^yE}yATɲ8jQ[ijC=H.RU^-ǡEW Y@GX ZV1̣_naĿ~pQx6۫?G,*z`Gul*[i٢̓ibQ}5[\|yKsft'b:>Ռ! S1gp&9sޫ \uz `kmhAWy%HҢNKʴU+j4a0VVX3<Ӌa^"f;Þg [)s.2D]½S/(ռOq3RyVDO' ߁#j. b[KiW'28DZPԔe)BSյ6.Mt8-\j[4 ʉ%CUhͮ0 ]Vkm՟VȩVPA/z`'>'x tQE={uW\JA\%P) ʶ%\iҵ]մP Xw%8ȕks` Z8cUkCpZhe/㢨b3l7c*;G]# 笼GMȩVV@Br;ߥ74wCJTPмKtUF ~ ^{DN_\e* 0"fJ").SMmgWXw>U֔+[`gY jц7C&"KDvH Yt55ߌOXOek'ci. r,o9Hڜ-"(bw~G2)K*,UWLV|˿ebsUQ(ucV P2BO/Tfk[`}k&勻,:ZQTTPk-݋*fnt5΄-wSf zB+MiN K'AzԷ4ˆtcv+֗I`-k(j\cꮐ`i\ gJW ǹ3h7r$k%EW ^h5D[ 5"!k^+Gs"Rsfb˒!R, m?CO_oJW 屫ɽt\hu`hnkil8`D,=Y(Hj<+Զ6.x|e eF+Ws=IPZI(ELU|s /P_>$V83Wb},/7@ tus] +][EQ UY]4Xc]$noa0=ӺuK+˰gYe-2PJCh ! ;8`&XK 3Iqi:Jҧ>;j1VmXoQKR s05|{0_?ACBo6MY@!/hg| o=srJLwCx^umȁE"mA^x>eDCW#n2nW* 2IPmcƒ׷FimG Q2F/P ױݩ:l7bUfM0zUTr`f scҝ(QbĵQ=2Z=z*ZI1,aIzy 7QO~AIZ$Y >8M-[aN2kĵ2tҾRѵ顴05W6ҙVkcVaР暜ŋDޓb'2z~){-EWog(I@d-cCnA+#3pôfd1YXd`5 ּH0#xCp3Yڑqkԑbqnص]@+Z}uX.[5sb."h5l^-n%1vt0)jҤSya{92xV߼o-W^WѪڻH/QAt_֦QuU.a<,>h yRN cTΈet^e+W_&V S.8W!*يDMP\:ZӶ'՞d-ҫ6Wx5J' h¬ܩFaffRek*`ݢl*{Z" q4JWW\2]g g@AW$ޕѨiedAWVycIK9*?Zs8SG8&ǯ(`=V'7UgXOlq0K]@^ZNKW5#-ŽW%8kI1gqfpY:a}/_u,*匶ɪ݈,!iq}8ec*N ¢V3eTڪz V|E_%EڷjU$ '>gP rNՓh5튖Q>b5vW]EM۩AMC\ޢ%\ ׫7'3nd#S挶BQoTZwKWO(LzL~'@jNlB@8Zņ3 aPtZ,8Lֿ= koTy0`ŬwEZ1+! YY^+;Ոۋ3*]k ZmӉ֦ShTTy:WOeq2QᬡYni_CkKUYF@h`Q#}{NX*?kiڌu99T.ꢶ}9c\o71`[wlZ(<X 'fCWL| $F~ާ"]8ӎ*,8㴽 UHR$iQjo`;|d,7\7sjϷ M˭5Cvj릭ZE cWhGwKT7qOAZRJ,Ciܪ"IyLQ$4rQo+?F}*@W]C%XQƾݦ3EBQt mƢ6kONc4wkJF\F7:ko؃VXzxcJ>H0 IͤCe{2K| 5BUkN \uZv%pu.dZUs$En}G4 N, Tfaa.*rF\XETH=_^оt5j UnNF mqDusZ#3=7q(MW=~z e`&}mVtm +^?inTMY'7`A64]5 ܝI$uxٳ(tuY8L,Vq<`͒y?0fnM n'4\3jb S2*ִN턶_ K;4L=3q`) O$J얗qHj}"7u{R:bvìcO-Ϥtu}_Sζtv8lsm̫کt8>'IW 5 'IUX,UVJ@w‚a"&F PE Zkm:kqJvÑ>ˉ{8QXt:ބr5X =BFX|r{!VEe__6]VM/g8?՜-mī=r| g+o|z^MDˤ$Z)EM޻Z(]@ĪbNXA@Vh( dQ!ں9ԽvTt%5v1Ͱ3NRX\,7+& /P[\tPt5?0% EOq& t;U[=O/KS~3_eҪrUѸWL,6h=(|tUAk%iV=W+Z?-*Z qձ{JWՀc)uI*qCqlL.e=-Z,` ?Ϭ(`: [}$ŜO`Z=Zx|ôٳEЊVvB0I#E8juȝ)Tjp:Qا%8f\^#]83iU}tVM.xU4PK@/ v;_|*ڍC™Əa>:%h%Y3+ *-* Ut9HpG* ؔS2X5\O9۟DKgU/FWEwBW0VjIRGѕ^f4gRn)'6,`=a0dfG;p;Z`hU Ш4A+:4^W7 h W8NQUW 8˦ct#7oO|)OV r?+Z7F8*P@i[R JAia|?`2EQLɪ`}LJl.U+œE}6IG3dhE˪F?lH+4+ϧzNT!_qQG-OK鰤VWu}yx gs"rrndB,jJNχA'  !kqD<$ڞ7zܫ-YPȏ {{`o=c:yF_>\f-4$:U3"}%3mohmu:80nA 81]gp/e~ 9NvUXCj]{XH&pڈsV !=4iC~O(*4oI מcOau "ݪteHU/@,7j#ϻZ \jM֠J;O‰lOX@U#%U:gX߉ӕ̋O5H搻TUZ;zq8t[j9] UUV,u/Tdw'Sg޾@j&EUj=X#. rܝ`d\*3W܏l)hc;~aþW&fHkkeq+?R=77Gj/R*\v႟Q/3 h2(f@X3PfbDxzމOU41;E펯3pGcM$C\X#:Frp]hD*ߋe(:mF ilR{Cځglv\R#1zLڃh!|%ǼaGjWp-0 |!mJTQ'M'JY҂{^'{qV 5 jxӱ(]-Tny?֎D`u5:/g<;<=UO/>&N7/ipCNHR9fUOLOqs>N/Z OꔡQ\Q> TmpeyEqnQ/e,ǹ[EW}S䅱VRF\SL=`*DILtMVayoXHZ%|Zg{b[4/eO𰑹JN'Tg&~Hyh,Z+a:5hQo.+߂ٚU9*{(Ds,LezёKBղj5k|E6mֵ%zƑ5w "tucd߭|uAʈ@(QIù)=/U,N=ή˳qQVu5SpWO0[-L$u[ )It E(Ъ0b i.:b\P$TgMÈw}j#p(G2c4Sq6(Uҟ*cQ#ꞔ *D|NH.'lE9g>~10ԞVU]ٶUJDݘ'&mZc`NPj0}NvG|כEjU*f>{S{^$lJAOys.dM]ԏZxN76(QY>F^iRnY`I_+n{d]5bM=Vuh5Vo\Z%?P{|ֱLiZDH%_tŇU?UX TI9{ސ? Y N-_]z~V/~tUbT3d OVV=6 + IҕAUӁvPAW#fbS;p8 |D3}=h_/)])[%E6s(r\z ۰%OxUIz=尿Oŧ,+ym,聪;nvb<ᣘg80)" ;9Q& ŵ>ҫvhd]U^ӑ@P+Wo.ٶ=ԼsnV1 2F <u/ooDW8]?2k~[ʮ"9džphuV^n)5BUM)E+ 7p?n    kDvivwe{DR|I*IS9ڸۇ|u?D6ӚϹ3?7_1-IM -¢>t,]ŗ-ձEtU(Uʐfܠ]͘Qg/ПWY؀O'_zZlJ_J٣Zըt&_Uc"?U@ IDAT\eup*"Ȏ V#FFV"=?C/oWkm7{7=So>̝} < :HjNNlhdE 2h1.Vӯ@d콁2{1?b]`)f2̋ߧe}EX(\OUVLxYt|UAÈ:W_@;"P?!>"<"@ؗݭs29xsUJ?VMPW5!uL`пDo='V^Lku2Z6 3{'cVW+)$+z-u >^Lc9vUq]TU_7PB}=Ĭ=Gty#Έ3~{WLCνwUSR Q[h_aw!@n@PZGtԧTU쉙!f_  91#@L&wK 3kOG+@̈TA)b%GK 9фhJ8%& WSL)הkŒ#ſ6]{*X]ei8֨=q6Tex3lo 7>QRAYl2Q!5TX pzj`Mjsޒ]hZmgoX=Oezr+3UOcknOې/Q"Wqzo-\/6ҹ.kI\t6d$t5YZT&2px $duN]RFf9nt\6JrNv\T͞te8ָ=ig+; :Lab<F)_3 D]z;_Fz%8~0AO` ⊰V7jjMdafbddy5ןZUѭ]U3V>/qRhLD y %?W o{.)VҔ l 6.Xa\<2ߘtMڷEkܞV(fTz4PJL`KZnFEgT5U{#m$.8;5N(KQղ RT%,?sݴ`mӂ+kr|Bڋ{KͲ#{HqVK%$N'Da)OqEJRd)EA!_s6J,XL?U6ʂ+kCwv:c3˿']lFK8[hg,=x5aԩ rE-ќhN8BUFD1aL+)2\]JƱ=(s5BKtV!rbS#`3]w6&]L[JUJ:G *ᯕ)qވVgbUMZu6zC{HSeu lO=ޣ,u@ډ\QF+:HyZOgz-hJoѪ0$'T  )*<(B"&/6)Bܙn1Z\夫stOl~#>'>}Xk \nR#C\/]-]-}Ό,.eU%PIS EɌghwYgغ}]Ծh]g=K lк1ǡ%@~׾r;659ٝB{blp*+ԙnqU@nI=:W5VvXg R,SGsԱF:m6F*й VSrN7=}%:TCi~{J6箆_t>a3y#j8ZeЕUe P1 ŸwyBـV)GVj(;ÃS 6+uqaۋ,cG>&0Ǿ[ԭ]xZS&Oϣo13UAm9-Yu(cScd=j/һ- 1C8 (\ us=ӑ׳³vJA?5&(+#-QX[,gU9\\q0 M氺*X,D@7d!\U=;;ʰcTIW(J} .n E$L$!$ NE1~_­©Vq BؾqsNjT8 s҅VUo1h55֙opu~JZjiu>My"Zȫv`pa-Uʷ*puūˈ Cf!ӀD)YQi5`YvUNयs1_X=hep15!D2ιh5ӄit$`$> &H+xэ?Rߖf]U.|a=9BX-X! rjkS5X~.[{Ez/HW#]QE&c| o^E\f0 L'߲TyMyE^UdUe͑@ɪtuCħF+h`?ٔi$d0 H|&W_ GZ'dd[bs ];*8&q{Z_پH b a7.ǾKWZ=w8cErlpg2?o񾆷0/>PDwbWS NhV\f~k%Yz5оzT86OEp + xZLeFqC-;jʕ.υ1 l.6֋yUw]10X JQplD)bt2H ڃ1]*|oJ^MZ5ۍ,*#w#kpPQ]VET=71v'rz &F .ThFO#2XKA޴ ֔hi ֽX_ոuU"ڶ*P3AEIGckQ:XEE~00N|U7F׊.Th{٭W^j֯+K=WvBNUÝBn@0 M` _WCJ*U!hpMWη]dU l<X ,/ B|)lEp8f3v-dJ*=}5+K 9=מdi7kXRnu2G+.(ݟzEl@N|]2 "]ź ־O! mp)0&H|"bMX/)no?}"ek]cVa[Qš]nőn_WXXZ˟lP Xn׾Sz+Cvߘu"[wh+s5{/&o-Պ*Ul\Rh5zEaeAۼʩZju,PΠw)k5^\4U-ʌ,eZI ,805.pվhL9lgOWɮ1k]={0\[u@HO$ν),BU좫:09 Gz2F:[ Y0FKJ.0\\<GjNAglrvd˖P?s tf-V׬>.wb;OUD4˳AmW)%/DWFs_}K /m5k.v\R]S-79Y&#-HS6),6ִ`; ~wg ;P)|X#`u%_CxS}G7}߲8gCY<jTP/(d\XNzg6Xw6=Tm:EZqjW5x|[j^(D*[ⷄWTAxx>^@\ST/+Ҕ4%]ِpgj%7.\%BwUj?5nOnKvkLD$V IYЪ%X#Z=V΅5=R, 4Y"4rkj7+26e4iki&YupvnL`9*ge$N ST] f)`TfnjEt='ev{ZE8ֻ\\UY;t5ТtY`j=-XpN" Dτ%chE)jbu%\J5n4K`4^f>X| l`>,'ZV{`qlC7~A%H/D A !UAZt\P}Dd;蒕)Z t#Xh夫p$bYg/fD+hl`ՙ3]jf˳9KI@7|"W{b-ڣkuFkUHMQ}|=&VT9 qOe@/ٗ@_OR@,r(MY98ePWdad92ѽ^YV^%qu@MS =]uV[/Uк.uLx 9f!;XtwqFb/C?W.yT?Gb`Pe CXE%\8=RVgoZuUX,%KvܲZz]ΟZ JwRfU P"%-*RQD*JsT l.*Jts]U~Tp*XC?׻v(>'?!92:RuΈDzou2.rЬdڠ+vN: Z!C^#QW6c:^VZ6qBש#Jw*)s򜬺\_oe0N!zʨhb^hx5>xYm 5Sjbohtl k*Lw\\00 z @f_C>3%F`C}v5]f=teHV`Q4qG_3lv% W:N!Po`M^S_SRlvHve8a\˨ u>bFdbV %2sTQ>nv-p,rgAeWop9c3'ā ӜUz:;YZΦ24:{z%+ 4FV=oUvr3K=2#HӻTVN#CauWz`oW:N]%h%]RVlUg+cOSm %/x5bEDdf 'U]te|w']$f`YpG9Y*%;gZU5P@ŋl<,<51{솫|ß]⽆+.۰ˁrI]SwiyCxמ}[=Bu0*|V+.^s1a6a>a3L"&XqT4P/+[O?Qﰩ m{agPo /]9#x\ IDATʏ[(F{9|Fbi6P*5딲|tVPϧ^~q?g$Y}O tL%\"8^ [+Wx/AoVH &J$8HUU`1XV3O \5HBU3]UNUg?Q3{3CPܴ͹K_!c(KۉVAWϷf2irSA}m(z^ۃyh B͎=nH:ݺ:EJvZG]Ϻqm՘Au\YMy(]UBh^7 0eT^f"uBP$5VʜF5|&[ސbi%R8bh%Z Nsz(jo.2csg f#`RQzJa>݅V=;^!vxYD8샞<}hqεlyðw D~p$Ԭ㡑v[j=mCprju6ca}KzRȬ[{2jR>+wm#Gzvt_`;sP*r @'6eK!#^lRՒՒ-kn,w|7>ܾBEս&Td:JG8 d@sU RcrErA2#>4!O&RjMؐdYJ!ݐIlnY`\唬rkSܨ2O\5koežsN[hp5=w>srQ$ZJWUZ|OhtUxe1耪E%xFӕr 釻!`uՂO|, lWUwh]םj'Qё{'&OCc5wt/Cj5|/ėlU + ՆzE%_֤k[k/ YdU x+(*)!Aj*cj}z W_$huf/[@&Ή$t+S- ]t*tAmJ`v\pU}(sXͯYαC댃N1.!Bj;3\ Z!^?IģUTk jEBqCvM׎6u)+2 {};7d`j*_C^YZ}RoUtwu :Cb̺:XOG9 |oJ64V{J]21]LҫƷrd'VCv! GE--ƨ5PeS(|DBl*_VO˿|M+K&sɔxJ<%l*KskJpg YIV|mWBV)`Rnۅ:V?H yHW#`]ыVodu% 37Qڒïa_Tq_tc/JoOArսwG WFU]yJj}/@e%߅֥꯴\o3}r'✔lꃓ?eLa+&L.H$se0% <Şv¥gkViAll2L08U%zWYKg^t#;X3jNd=q>ڞ] ?O4 #Z=w_[;ɑau Z=`3GQ\ AGb;/H[nDl#&ʨ}BSXQzM}K /s,SW)bKe@Ri@ehW^"=7D|i4b8zֵSU p7"(ƋO@P'./5k sVL(˾$%;į^" )xT77w(]c۸pqzOQj((JU+'Lgx*E2H*s*NSzI LmHoԗ_a9ce.}0nWVhuL'ɨ`=}bC{Ԫw/?bf+7ndu-lƊ]2T.1yKhNxA8#5ފjE8T Vzj5 h2O6dHU>3]/7~oxu%/ϙI&[J7,,ފe0rո=M*:"_;,eVU>I_y2$]yf˄ U)LC&Sc0_z[$/ɋ;*Ѫ5bl]ɪ]rT=pHjl pAY#c9ӿox+^+..h51%+EW\X>~_3F`de7!* G 9G}9ՆrEXR.)n)n( O~$/kWӑ%@m˄ Z`0 $L jyyIn؇l_[˅9{ixa{r>x.]_8agFj7ϸX~V*}nn'>㏼G8ߐ@<#_)bkȾII[H i.-RziY׮7Ir_Q?`=#Ӿ3ޕe|mj.ug?G>~l2kO.Fj5Dګ=řnϧ@y Dj,pNЅ$@\0J&H#dsl*"]IMQá U[ l}у9` ⽃*BR~CqK~M~C^dyNlt2 yW)7`CmmXt5n[^+58ˢf_w>ȡB?=m12ֈV,[' :nK uHi'b?0\m?m}j]2nHj@2jT5[ۼ͝j")B|E"[WyM^KJ~\eZI~+uCW^\UxP]9nAoR? 92x;SFuUJrOrojpoLW +_ d@IY $?D\L{#mFe^TUڸWUYC$.oȡHOZ0t_ϙ^ݥL$S ("6%ŊbI6]/?$O: {[\A#pUBY;GFzNк视mV,\⥺Cq,YJOm.wc>fc|t|| #] ͯ@%jbEEP+_-]R Y"*X @~2 @ rlII$n_Q_ H}C&]NAKu-Vj J1iWR:. 9Zz֓uj0>QaUUTq/n lAc-Nq2nKzO8{ኃ+C,݉Y+i~*D`s z`UK򻿔b%#'.jDդ &Lwp %,eym*-/eepUmr}9Ūvվ-#]Z-ZhtR_sLIuXmX޲a%\T[R~veo]i;U,Bgnvwda k@6F}^P%,պ:eVC誕 C!ixHW#`YOz߃P-=v|!V\콵!%]}llmJOTU{)_\x2EL&Vi:ghURlT)ܱ ڇm+cX>8α6P5>G)~I2:崫;%Qս{qHW#`~mh1]vgΐW4'T,y t;L:GEW~~w9p-%W\N0EbM^DPCVl .xX6-Ew}|~ow-VjKt5+f@u" ,"_l%Zk*t8u7T/^5HHcPYIL66]ރĪtkUׂsPW/}|Qv5uyI;pp9aoj1 $oH])*ʒ*7)KOdL'M} y;&лZ l*iO\.ﴷG~hi_QfpQmrՖ2XK(\uЛFzTYL{||Ҁ5EW]|UڼgL^롫hXDK1jd0 {^+S͙5gZF^%*ދ-Ab WlA7-`͔^5&$cwxo_]'PuKEy\)j-\*ʴU욁UYB)Y\%%+_g.N<OG:#i#RҕsBǬrՃ£|d0zЪ[\:?I357\+U?kt8K[3냥u%~ [WDeO"%BrUkݞ*DD+7W/._)7Z[U[u -[peKB⪺cW oF:t7U|5֙u5`Ghm1~V} iUՂH(Rn Q0; Ż»{xsf0aMZqAvQ-^-UΧz |qOg$!xC`N0#O=5|eg4F.@îbHߒ۸s`:Y;Cfz39"[ \audpg?UHWO@A5pm*+pu_">!qMs߭)p%ˀlu=f8Zymi8hfOԠhޜA^3E` ,XNQ 9ʩN=duOL6n#`=#^-Jр޷BN]tܞκJA+:*"adpF$÷ZcD@KT zxz"?*N*0j\XUPX+\hE/`aM Vb}tXdtvU%̲}' _uqU9ZpV.-aV #pl,j;=׵ݥ0ѹvlUBN4 j5F홪4$|U5@:FDCWao@**= ]̾3'O_F: rj0lr9zJv Azu ' ~C|P ,B80؊ı/ UAXQܒRR,?DJ$ VU[:,zԝjY *Kz hu*r{Gz[zvAtbj{HJ6Y:|,~E֔p`֦h%=>UzihBIMtKp+0m1Nz:݌q`ߒ/gkb2:уA'W%o! n~ad0vu5@l*{TWXfW!&cK)]FJzOKSڏS;Ѫ7X•DPX(-_>kx2XUʸSUoB'hc%G5|7nud_+0+]reyꕳxpj<u_6y݉P5. zF:ՑCѝtՏVFSs3)*֯Ft_}^h{nmѕ8זX.Ƣ[B*dYS ig¿J'=wv6?[8 g +7p lFjk轛TK+Q._nUuGPz3 TA0v] *Kw 'ZѼQߐ鮥W UU W.<z06ݪ|&h"=֙S ncBIy!f IDAT9|\…r6ro~,B`+yng<qppҕ?|Dmޜ݆0o+x6.UF'j]؈( \Xv̛C+sZ[A:CVp%%Tpc9mFK:~rU/}Q4'k0pKWN*$Nf%6kͶ'5%PUvD8rή)\GHW#`Z!/[kjxR'+q| j.'ܱX E+O_I~z>QO84pUTЕVuXu o̠?'%;_ )lLHLe㔯O,k+H#C7D /zU4%*J's,ؐ{dGAdۭ_;eV ʎWtX0<"]ݷj5XxD ]Cn{RV^5-TM5 .ʼnαŞ:3: =s @2d?\tuJ wܢT$M'<}k鐾C{O5-\ݰs7F83@v2ZPv g0[,Uӕ_YwV',E NjgXQ- TupzBWCj3)um L5CjheϞ-*,5rrU,ŪB+[2$\ xEW'1/ }<+U'Bd˵)g&N8UVM+g ZIz#nq:2QY#^2\ dyVZn5a={A/`<ʧFN'#@}X#-RW5TV)'\  PFQ2X>y+O%]}hf,g+Hb#? JSnnlF Vzlt2S J< ݶgEWC@85Z#outruAkFwX#2V*Wtqj_ z P W <*¯kj{aMRm(SuYS)הK[kʏkzrj2VFKm$$1$bB( :܊ )o{dZ껁~m+Zu[9jgJ][c=`>s]Gz)tu7K;Ѹ` (=IX#]I5/%*-V@hT#mY4 7KkǾT7=$*ZSXɃ6PCA@v.fxͽyjM+ ŚbIy۫ Sk]jUJz J"p8=ָ%_@`-?M ƺmJQt(cNq$<0lt+BxE$Gb } GyA&X߉aw[ T>a 2sWBaUIMΈgxҤ!VC˕V3"H͢g;&TJUS$T:WծrS`#& U]3}q9嫓'h.X|zT=eND-'~XgUcM !A{=wNN*pR:Snׄg:'_j"(sHE{c\U+[y OP`0h86GzҚG~ФU+%\*E^|BoHW', ӕsZIWЫ$]]m5Dn*Mҝ-X[wP ^;ˇWVg[& O'D1qLFQTE"#S |E~M;+#Hc5zK2n+pm'WZg#`=ixhtUB9VHVNh}I|tuz=[ΐ@o\ ,*QƙU4*ԻwnuFu8&e7H_]P +l#*wJFZUKFj_:Z̯6a(U_V^W{~/W{/׻gw=};|˔K^ -2-[$"Eݬ]I;;nCO' L7GF. D w eVΕV f"_HW-ZD`tl7.Hp=/.TT&lo>SwM9VlF0/b "~W. B^J-UbU]auw,e_t{xkH I*xaNh?ճ)wS{]d^>Zպ~*g'^%&"7pZ͕lxY ĵtF^f:>^xqp${ :LHWS|+40ETӦу] ^Khu _`I\Sϓ ڶA;6jtCDcn+ ohJ(Y,25EJҲEiNRъ6u'du92 D.bgXV,b5ո̞@>|{P? /k%bejy:R*NG*wȣK1DeյUx˙z11D5^w-nLQhNR쾒Oz+jkg*h`CX+~j.Lz$^ BFRf[ɞYӼ\]z`x4o )ޯ_b 3='j!nX: *bsUsX('!T1-!{2EWi'$x]E0Y08#"3D\bj*l/XR^S,(~0u ]>;x//‹J"(srCQ Od=S^4\;kj(y.s}U{N >/sQ]1=e}>i`tu#)\(aK:䗞pၵCso[+ V+uR ՚!\PHzEY(za o؊4ʾ^CTb/bJэ`iGX 3y0 u_+'ZUhEQp:x+h' {}T{^f[{]`U`EɌXA}c?s wNB'ܝ txKP_ jPim0R`=7j:+[TinluǩAidR f-TR[ALYngwRjAh-\w6]TumHepկ8N4@zRV/Y?]CXDu*0{ j8]9e'8 D.%RU}o*U=b)b @HOwP[ʏPT=S-W5ż[BUwSeSz -)_fq;Jک]:fٌ85'EV;E}xHW{ }nX@b&*>!/m^b?}s CWULtUtExA8{7Wh5Qhmjҧ% g&ZIJ.>jo%B@+NvD&"NPՅV6]mgzj#=a.D HWg'?gC=OPKz+_^SgT9uuwCUn=Xk z]hEw|Eo, >mhZIƲ˂p U{ℳ?F߀.Vt5(cl+(J@ywRJr"Aa&Jp% W`UET!,y!\uEtAD TE>Q@xS DY>!-+`)uNUPft0*=XDX ?_tVrTPvLЮU{Ta0?Iy{Ղ^zE o^nv|+uN҉,NO*/+~.TLxBm~%Lov^ɶi`X0Ċ("t!a)}Z2Ф;K:.KVL]O)5\hz+gA _BT$T z[H Ӌ.ſT҄iw+AWKgwieI^gfAPV7#CsU:KωVCt `jOgyL|7yUO٠XvȰ$YUZ3QY>rz\SЮdpCWM$"VST\j@օZT}鎋КkK/ ^\,ΐ6b8Е[&fՆrMQ4EAQRhP{"#_]5>Z}J iX^H y W]I?|<ן(]u#w(J@,@ 䎻VC[~;7S<]< Z紽97Q׮Yt"ʵ!0OZ4sŔt &IIfL$dNpajJ012YѸP%UIUP׼BQ*~mzѪ*6]}}}#` ZvB41\ՠUh0+{[ ?û_1+9}uu3c|q\=젫{(Xzk!eŶKV gT}EpI kPX@U_HL"&$1@W01ūPeAV;-jwDtoA I]JְkZuW%#>聧O bl~v# IDAT4֧FɀrUnvd.:.b(||JWG/8[(Vbxt586Qtٓ*0H2yHRD 2Ֆۛ 5tJF5TLB&1$f%Vq&lTNQfw\Um(o~@cj;%퍂UvL=<9UUQ=gd{ǏsX=d^#UZ셵#b5:-h]g)M(No2z*9]%zPOďV^Xeo``(DP8CT⛑|1t5Rs.ԛ!(XSA~iG`A8#l J:yig_ w N۪߯vB-je0bЃG*3yҫO@Z>F498Mѭ5U3VU98+L/'=I<iAUhTth n''-(!L 1kd3_3,|j^}b7kg_fpP^YkiAYYU:AJv ZN휊Y;COFzbo"U)iGDy*vH5G!F*:]fЪET-Ғv "W:kB8#-h"ȨjoOrK%%͓ *5RY T{YzwT,:0|0#\v!LJ{oչ7bi[h5`fd=VzL=k|yqF&9v1Ÿ>YTV_B'_YP9%"ψShBG9xyU"Ms}]i[Be,iΡcHuQrU88F=o xJ&HH9VcќHn 4M5W\DP .aN@*qjB%"u6UXn6un؟՘;V EjjҩZt.Q>ޢ[¬auݥϒKGhHT' hIWLXQkWʩꚇzFa Əյ[Lr$2${U4@&˭dWJ\K3N\gU *RDi~xMP2ԏ_O ^\d0Z ˜0qemgUX;ص-|Y\w[6{\U-\ȩg ݉.:Z-!eY .q&k<&"K״ylLW/Vhcp*`>2 򑃜%fZ\,L pKA!QAH DZ4Jkm>0gT@U!&ʡBҊJQ6Qy{b#Ps+7Q*yt W]WYwHWBF3s}M&k }v88U$IeNWO:uS+~Oqj;AWպs)$;&1Id+$ NKmۙgTk ~ /Q שQ"7c ثU9-:VUNY){5VW|AufzKzJF,UFĬcg=Ι,eV$Cb1p0V#^^7~ԝ0 C8]{wi1Vpn DLSGߊ!TpLکѧ.4P5A _ cNԆ 1vapvՖj0\nP)ʜjO\S}I>}E7ZyV^+}v#*>چRX#s}/}@ ѢScZ>g6]fAffƚ`ETqD}vG'rU=ӟЕuw`Kpb_IBI$)dJ'ı Uӗ.pۊWd%1mT%Ju“h:H̘ݫTIzU3[%ϻ8uWyt%y=Xgi"gj2[W P2QAGyI{O*b vKEfO*rdsr7;&+ &) Ʉ$%IH8&l)cZבH:Nmױ[߈˵^ ZJt/ C _6=o W@EeEhO(\D@UG+/<4rXJU+xPBٙ\Avr|sهl-1hrYjx o0I*tjcAW8!nFDDaNSW/| C[(k%SIjd=Lb%,)5Ԕ ,(_p-MμՀT NkT){ BYQVh5[t%tV07ʁ.9:<|/SҮ?zN>Qdku3Xog~>+a9}u7PZcb }\KTrsƜH-/ ̜AkjFz֡z WjyEn7-vާRKq|AWYgXʏ LG骕l㎒V`m A8Ze6f*U| |bEMAeU@sqd3UagЊG>p3W4֧UÂHBUسiCCgw]^;98ĥYT*~q,^4@޹Q^ [h+3vƾ'>rB'3KwmBTmam:WwQ)se"+t4,m>Sko=6\dOFSӮ!~+ǿ{*GOßiׄyW~U؁P=OK:JW==Y&9(%W%B84Dp'Ī)vz)juM:3 Tn׃ҩOqUNUka {JGV#]Qk>o3VU) g NWg߱gx2U?]Ljʫ`:dq l9itUMs79e!&mjeo((49\C r3a`r *RxJܔ'l`0TWnr𨦮i2Ƅ#`}^Ѵ93ჲ+\9%$\%þGn?tA=v2I"V9]*WrUe K%Bb*X TIbwPEA* Tؔ>鐇(YUnZhUrtᆟ$FD8h_Vr> cN}f."-|{؃Z `M}Uӫsq jWbk{ 9)jړ)vd9deפJPri4%}zLqѪkf n]rvz#Z SsijrݓH/]:Dg];tSGolAUQ>g_=~S](kj.nJ & " L}{P/Kk/jk$n(ߢ MI]) CrG nM2%onQ\U٣#X^(ZcTCpz ij}sƝ'%M J`#t-a0>W=^G?æ!:&J --*춑 Kl` &WLS"&$$ZΉ3љe ˊ,(w(m*uH9Ş=2r%1*썫Xj%պnѕ[}5dչ-c@/#]1֓F+75#fbXYGjEP 3;'>6Z}{U Vf[P%*Go> LIL') 55%Q) tI(sʌrR7EF)ޓ/CirgVlbU=%sҕ.|a|iFcGA137jX#Ɣ%T;`1|սWЇ]EC+VV}JBZuZWLϙ͘NNH҄IBff1*K6\3=\oP(^{JU;YU.[PK!YӮ86Ek84gEW2E8X?.f^|[剸L@wSN?.8>>Gw.Եjj}ӕFA *Z]՚96T SDHZ3P=u UP3=YվWfU_vHl㢕P(W0o/t4'+ >jW5Sx /4+Ot{cD5<3U<6dCg=JW Ti{س.z^nQ77duՆlCTBkrvf >aO]U(]=pWl#B13.ZaB0{ U_ʝ!w<]aO _ \qCcGV.Sӕkl-J5W\g̮-.ΙH)tJ|I !8G*G W+_ߵ"x+0IJ>UU4PUן ^bæ|1F4#*6IW!T` bHsAgMһ-:@}>V#CUsvU8Rbs/_1]021IIS&sN.u)P;AoP }ZnP?sWwke>E+"2(Q8}l󏁮c'+G0!hmR-ZsG '/EWaVssyx -ԍM;cOS%j+҅cשL^>v61?CVou WWv ^ U]սSyEh[#&pڦB R}=xT,azFxf5x_l`W9"TI9/\yڡZ W_1_0#/"yArMrIrIrA<'̠244{ !: FݢwoV޲vZV 㪆;.[\u?c3D@M3:i0.5E.: U[NZgܽ'UOٓG[UCTpfћ^ ŪBUxfU1̾قٔل%ɂdN<'h[[J[r +3g )[;\ hkm̪~Kk]C!m=NW#]+R#`}HgkB%*95f?8ǭcDy7>R/O}ؓ&kApS:GדvrK rS|5Kssff iL $ ,n|S_7&6 ZU{ tǪ{҂] "t1kB"31~nt<}cuN:rCP9tjڌvm;^8_&ҥg]) FZ."JYc!$ħTɜ4}n/B=l6E׾xB:쁡Ǧ*f2Vv: (I8ʉ7MmҜ&( IDATsW=P*rIy~CTΧdZsq{CT[v;kKY=Ƚr*Q>蕬ck]1^p8]=c-1XU&Noy`JgF˃᪲cBEV_t>;ٰ;Csa=p젗^}hȅR c-_(055sImw&W$?#4 e5ܠהo\;gl7lo.;7vm9A|bj1P7#MZѱ>.7d1:ֈAcɪV9Th:hոVF*Jvmszj51ꙬgtLznt~ 0VKjʷQLQg"apLKB@Y G(w]wS%mrK}Cŕ[%c.V׻g*z;`c>V^jr}c>5{zZ}3 S}N)5Q$ͩx%YGEtoЕvL١NP&hK;}0u5s*m4Ob3"yIrM|ydOsJQ ZDiߡm'GE s{`fВ{T+űq4CЪYr=vյ1T5Rc| ֐ha}^ڳƴű3ZaG>L!9AYnia8hGW]P従Й'>?c% fsfs zK=Rה+Sk-G;IR*.I;3GaoUwEWjQE+R)-t^dHW㤑c;7zVHV3s^_rsiVeu*E%OmO5 svUr*p=G-7qhCWk .._2321MN$W$WDS-wrQe(GW+r%])=zǝnsnzWfPN'9{%Zj؎)j1h0e *mjĖm 4; f}\tgV0 WP &aVSV%/o6T_r+/ϘϘNLSҔYJ:!PT@ʨT[QmTKߢE+W +#6W*zM,Wun%lH=HWc1cU+*0S.ww?l)VםBOr;}w5dr 7/<*SE$ָ 펿wnbQse1DDu{ix'T;Ⱦ&<5OX|Nzc,K7ސm%L zc|+pϲ}8jeD1J.ł)S.baMs`]YTĪ6Xɱ)pXJUtX%Y Z!,V-If_"v'4WLbM"[ga5)6W/%k& K ͚͊lyxºJa*duyz! DGaj1F:g\~O"*rEEf^ #xWŧsUO%VOvINJRV|E%g6_Xw Ŗ|K!+tY~7roӿd5T]1<@dN:'(Jm;\ nWrZ}p s<:&gؽc ~vOJN6hH<& rŶ` 993my⏯y$y!&N*st-@ XEJWAdxXtoL*Cip3_I9+k+ChN4'4ΠՆ|MvK"{߱ 7O%5% 9ɜɜ,c)tN zNP)ŌbN69pvU'XTJSUma3 Wc1yAUXm:gθ-Xyl` OSTu3hO⥫hղNf[\庮>QkPr*GRV/~FztN:#3WD ahs l` +~?Ry>2[AŔqʪ`r˛ j <*Y^RVk{|ʙ=Wc1XK~m{V{n,3)?bVkz)1jq\jѕd) 6]EH~sW 3 ҔtJ2 zAtE|IC[l![r.(ΕjcL C$K뛄e`qUUPMa{تpذd5LQy( h<G1Q5k6ڮJ:yW_1{bfջt=\Zctu?:I*}8%v"\r嫰Z / + 33T՞ ɄIBjGQ\Zk]5BH/Fՙ ex(*m#V"ʋVGek.iH1c,[uBvȱ,a lΧ3=H c݊zD4쿭Qqs ]hEWLoBY|YdqMY##{s9!(LT@Մ4a2!Ṅy8#!{K}Ʈ`lیM:gffuTU.'{v[vk6k6+6+7n}o-_rx2pꄆ3η1비6;9#Fﻏ8b䃮I{x~0W+촠5Y#۳ߒmm/پf{vKϜ7ὓl.Yۿ>lq@(m(9fpϢwkz1|t\#K]"HC]klajkR|2լi)|Ud;^"B983 }_ .j RuTL8y.ibsU"2ؒ6d[ ٚ-[7޲S;_BE&1Z Oܤu}"o{Aȏ}?&!=ezlj1F?[}BU AK= Z:0QǍЄB ViUéV_Tɧ:JV"a9XM>2Pp̑&*#ŖbKXmدVnؿc=?I0} TEu222T OekJW1N=EɆ1g-P5#`}NYt |ņОzžN?utIo5 ]>a(墕kLլ!Ո{XM.4Of"#s$!j MTM>S)ف-+UUBؑ=pUXߒ/ٿgkvݿ9HJRUj%%Jd9)Pwt/mn %CjȠS7mv8e'ڝ|{)1C1}Uc1֓Z!}#R&J[2(Lk{S:]cn|&:t%PƶHK",Irq-# ]hV79^,0id~pR$L&1I$bD$ .-*-,) jZSPK{w?P|Mؿ>fǸHHizV03pXSn HVcS8j Czj1Fz.t F%;ua~/.{=z8iuXML=!ƠJ\cj\ Ҧ^ hL&aa;#w7 v| UiB32H#& &s&SIJ2!]|a*u-5mk3f Kx?77_v2Wiś++3m֏݉Y;hq ^ o;#Z=St5#`=;B+#%N9?n,EDSRfDŽVKDpėSg\j+Tݲv+@h~ZM5ӖZĆ4b&LB&ɔdF2%z Bh4l᝘P2S%T7_5w#loJy׽.ʼ= 2ax7jCph0c #߁@tt4!MHW%IH2Wpm"6Xbf!n"ߑoɔК2ϤqnS^8Up+ B%Ϙdztq=jM"=>lG:qmqj1 @+ת[ҕ{c~gt:|/N 窰C8캥Ny[\l̠;b-ONMHjJHc&AJ&I5ITҿ*1PJokސg{rU{J'2J9?f%x fW/-^0[03TbKUͦ}V#Q1#`=5]|/]fao;1ַ5 sgTnZ D䍱eX򮼂kнN/رm p$%*d1EӺ*6%fDU87ɹAp-(z'ۓ3- %v߳TnNkJ0c)OI^$&$$ Z_ g3x/5fx~#j1F0%|n1M).>*Deogǽ. așC^;:Ԭ~ʫⅪб: 9kZ,`0I8 _pO/9C!i}HC&!!'TMTbƞr誆)twp -6wCvʯTِvfTe/]_nAl̮.R'] Fc>d4tb5As>R4U)sxPZ '}k}?c [^jͨA+^UEӂ*WyjK2e y 1%+ ~/n&mGM@_H&!i$4#;*LA =Ŏ|'jM&_ݰ_ݰ{o:QkلZI* |]#C_q#uZf_ԥԼ͜ ¨&#U yq*W\BkStx-w!}U|儞;#zUv~F+٪/Ŋ[-͊{Vu8ґ'IVƬ1cg_\@QRSB*lq  v&Pr cPPv@UJMOU{`C \zj4^Vmkkalf71Dc0 2RP U T.(n?PU.\kJ`SKjUtsD+R;,]IJ7ܼa3h.oY~\;\cם_8̴f)dvpme @Qi%Jz䫞wuSP:c= KS}2׼hq0uQȧ* 1ym{R BM9C@D(9*G=jڢ7TKȖh宫=$ V,{U^[ {ux,@̄Az̖#]1X;lKɆ1nvBX6sb>]8l!Sz:<;:jV^%ËYRͯ0#kkj55V##thLc=-5*GjS>bOn%o=Z5hL(2oFQk7v#qNm[)=U4 q!R޶"/ {'@GшVc1騜_k`/?J@Ud]nX'L? A>r*[Jjxl\jf׸r_dJRm4 TasiF`J{(`ϝ356`%*3P#P[ԆCW/T[x ;9HGJ."X_+ԖbMB%#\e& zoZk'?o `ҠU6:Ĺ(yn뢗?y׽t=cQVf#I (c*ve+ta]Ǭ>UlUt;ML5b1o",$JdF!TF{& jCFݢޣn(AxX,Y2M_w`iW |jlU _Sr ;<4S|v=fUi|]E/'iӣN-#1XO(SWihYasuo\=\ժWܣpG,zBl*U(* ?s/͘$8VG0 L1Tf55SJȷ7A* jXRE}CRi5J 6Ъ IDATVc XRXXw>_IVt4 )6sAJزw=D0X PN"']~<c{ p3W:DGG.'*2:Pm $@B _"}BѴŽ7f/b~ٌiB ԮJ%&(65-- X߷sj-^zJ ^[T|(}PU9# إNmJV B۸)SJ4ZzpIH?c1' XhLѝ^ AiRINiKXU*o0v*5ε^5g\k..X0`>c:c6c2MIDTsܖ"W^ϊR@&ߐߒݒ/nkT‘cPx>o V= WMxv J69i_Ui޶j] l=*]P5c(+z* ©cEjxyhE/ZE`P{n7*nѡ/S.>cq% fsSf3SS)iJ w]UfŊbC%7Sb[d߰?}Mful҇5ac(U:vtOKZ~g\ghn $W7V߲VA[fsXӇc1Dk.[mN*yE[D]'N]5ę'n*IV]OBDUS~a{6(!Khuf,T勇TXQܢ(~俿T-$%(퓑4$&m2݀nm.h+o⪖b*X_^s)H-`%7U]ew0|>X#Z1?FĪRMZ x*ނ8CYCK:t?mUvuvk\`d#ԙ=gL \$hy^]ëZRT[TUk5--zIqC #ݡ/|jʭ UVV<8VЭZy+Z2_PJX.xVJz8vzvq2Zh[ +Z[Fc1~U:P TۭD }f4[@\zѪU[8[UTm3m~>Y_|A23m.}3mRJMZPZQzG[o)~}gUp`H;.Z`x!iSK_g%W´S2Ve'y5_kK_=y~ _\ Pm+7;>'_eOKj1 `a[lMN놓6,qq}bNH.GM,{@*&U9'S얾3''+V609`F,_-lTR-Qws7܊9ܚ!\e^ š=즓[e}Ro҂AjcUOn̯-mL~'QZQQ.=M;EЪ둱c+JǑ&&k JQli`*k/Z7_ Ⲕ'NmMM-Jm9ƿ$gWpMpp!jN,zg'9ԯ?;ʿTSh6bFdd*aСEUcwvR;Un͋CJ\|??:,sj%zNˤVc1#`,m6Ev%;dn$ $[S.WlRR*׎T}ETqMp 3PU6Tl{seP庙 Bm0$-*|""tBIelKW_dK3o[V5+ߞj0ij졫Y=|5cpa={a6WIy$KP9 DGzfvN65ÕPR%_B>#>2w Ly'f7b{7-ߑʂx7Цi=+w)zн5P;(tN$ _KWLH|K!ߒmo6VVllnXE-tՠUkFc1F:s{[˪'6,RC5hA4!J"V)]۾Kj>j2ä\Fe ?&ׂNPVnي|>?HV;,V}Ti \ w2D.--+G$%[o]Uv]J.<-ozߘ[k+6޳a77~s3r]:< rl2-CtBIU/',;tl&b1.^td3lcDU&~ezpUܗFTc1Fzwao*ЙCRZPȹ*^S/eA)|C=Un߰{[v%u_YUX5WӿPO|BX媳@eZfӢ"D8#&p+~xQh5cAC$!G >qDy/#J+ Ua}J2%Ūoo~u7(8UЮQr/G3+얈zHEh5ҮX"=: U> yA+k6&]i7>JUq22c1ֳ*_u|AUhvmL%6Q%"1G,%@sTړ-nؿa#k&7Lddt"L5/n5P|CU-:ux j*LsG胪F:XsU U}:Sw5ܗac9\]b8Yc{:SVqsx,PUSnp*Cg=jڡvK'w`G vp0dbe[t԰͎0ֽRWXVW cG.}>jȼ5)]F;MW]_lc:xmU!ZM]#^˦ Yk"!OLI<v`X8CD֫K5zxM̼FMWQЪ5ڥF+!ڒʺ5dm]hU#*B_/cKG֫r>l/q{m\'kоID-RڮFj1{G_g2IEb*m lYWPDGQmaK hJY{_L6zzCJrUsJuc'b */Z?IQHW&߳ bM}\W?e\ I6nfo//Z1cw4YϦ2SH6T\E︛ "!9k] OV{6U=O LN]FK[_)Gܴ*ի^XJz)-k+ztLB;5tL^7ITޔ0GϹ|⚋+.waٰYmo=F^j1cvwTI-'޹PU KX%#J \,$3L} j [xO~# 3F׻ JN /TP%+|t֧WhZq/$p"!Y5]9?|3^~KY\b fsfsf3fee=0NxWe|u3XA5ckKJOE̤HrN AA!pOaB8ӻL5zCyXd=L]FT;PT]Ât[f뉁x.Ҿ+/tcUϱg};!>Oy[;pr-wN}ILf$ qB1qtpO!QC%[xC$xKQFc1Fz7|]\G* X]@Y<\+BE;龻8Ha6Ԯj%;xCG߷ !2A qXjkw6S)ӂNuUYl{&1{%b|U= '266ja Ae<̠V`{y{/?1cw`#/ Jm HrN- sZ0+mzH_PTAjk$[^Y>r<'9(6BX{m*䨓(i;s7$T\v;Q'o:!sc1q*Q%qZBйٳ,EnCHPEo}X"3 Hp^ڕLu:兎n<1vvT+ =\å=0AAS)2|Keffdw{ֿ1+-=(_1#`?h3Z&,X奫>w!)r)'ؗX@^B-j .EoV]Ņ3ǍVav*[ VԁVEIǪkAJ@|$뚨OC+l"mvח{mBmo3; YPsfrhEo{]Ǒ4;ōw&.]33Ҍ4^<,X+`7~0],kw%z.=U;qCč 2ɼ!@D2YL2Ysw(*XOZZ5]ƪEWQj$:EgF,6('*ie*T3T(TɄJӂYjNI#vӠ?q]6TmtKAY*d ֋Tu[nj$$>m+U+EQT.˴bH45*S-Ҫu,NJW+OU}6"װ*H̝dOw˥"OsG!'UishBA{z~˓9ieL¯)(oa-r:xUzI+ ) U+EQT4۽R64@NtA27紸9u\s%UR,>KQZJ*MX8<9S׉1`W{WyƋ{FY'+[-oajkWؕ(+zxUVOcU=I^?CRUí!:VR ]R4~TmQKo0m "U*,4i׮yQ%g,$:bҦ1}rD^5Fޣƅ(*Xg#.`{VIʚb+NĻ{>ɫj;UJ+PIQ-vev`l`,ʖҗͲݰZrN)qL4˻jCUN"nkmKXUK]\5|*tW/0U{-yXZ׾IjUҫMkJUXZk=^ ۾EjR9^%5~3i]v WɤTbbĺ?Gt,oWٝ+zvێ!2@%PbeD*u/vծEQz+X ٝԣ< SRlŅʯkH[].XƴI~R,TC&c sU쵫> 1lRM DVU,%N|+EQ!XiQl iv9O_ayL+HĊҺ+cl7v8j:9$U%UQ=gn%bSUŮvxRuOlLk9]pUuAaaAA@Z5ͮifKTx[,γoP)'@Qo~T~PJQ&wZBdʶ)VZl7r(`6<F<[R+*Nd{jVp牢{UzR7ͅ^%vUU;}=FÀaOg:& Ťqa1id+n՝TL+EQA()U=.KN9ҲTvrfNKJ[(]ZXIsf0>UM|zUt jf]nS>\Yfr;aCУ{DYB%d iDƤ>q@DלWiݟ{h)])lH<;6iP&j8I=vDm FUZV\wB|oo9VR7P,uhkc^õY/ ~-O7)YJJQ$X,=:MɫBQ$XS顿k+5+ϸbYRU z$ ΄z6o/x{OŃuLEZڝ_ i0eáKl'/YB]#1{JQEy9_֐ڬ R)#RQ]^26UmȪΰ{;}I՞0UIj*>$8RpI͊*?4+;^]%.u:ډ&0iwrL,&PY`ɱN@'(lXBdƆCG4:nu^bKjY%t{temsRuH IDATExhV?z[MjEXu\Į(t3}3pf ڗd X G?.6s,EQzOh#;ƫtW5^Ebo]_嘥d t CҾoWwPl/K|gC!q@n.X!,ܫ 氀%Y\&ΜMJEQzNy go㺦Yu6{ ?+;_%d5;Pj6߹_ZfU*>jVA]P_=p#N Kb+Ά09La ؐS!;tUWRujW`=-ːӽFU7?c5?+uAH||K n9]-=Ӊt7vH7t`w_'ĹL>%ݻUʚH?G+EQT`R)5*$uӲɷ:BWV I>pΣJUtI-EeNЫ8-s[1^L/M$tS:^D\p*dffbb`6r +XG Vfڕ(*XOKU^~*>-_X{Hz^LSmBD6ƮLwxmumOI,pbrb(Aı՞@pjRJQKulj)^i+(U{$Aiӽkx%n;y}_"<~C{U|APCҫd{)-[$6 \YgnζxVg(:c(*XO]~c|qr+Bc9$ǿ9W'ֵSZJ3}{ɃUbJF|Xk6 |ǁ5w^e;ṋ̏ h,EQT̬ M4O'UIjV \|(ǜ'=~WS`gaT-1 \A1LUYZӶ(Uy5,'Į"+EQ#XكvԳoqiy{/k-$nvGҽA|>_VO<*&f<38(69mL b͉Dq{ ݮ4?( 3cߞ{Wrp|2-!!Ǫz[:oЫU=7^7xjDoaJs#UYUҌdK(MYI}TWS[?xQ = Kxrz_w$]/yO[;W6/̊V/i4|(yu+jJd%ÙѩLLJ:j V\Y'Rm4Xj2|Ԙ+?k :v~c7&c\ h;#WuW6-(vpڕ(KFph+ji(ߦ+j28)~ U?!Ѧb~*:m3'aαK\U_ !ȥ`?I]Xլ=yҷEs:?.X^,4ܝiɼvZ)ݧyiڕ(*X/RepkI\|!; yW**VSک~ v( K?~VKĶcZ,٢_K݋ZGu)\>_m 6Gy SDaޚAjxɠj(y VECUݺ$V9bH{A?:dZS=8{gznͪ}C1Iu7}֢]"j>X%K/ Mˆ; v(dC̬7_L ɿFEl/m-|8ߦGE9\pQ4LR}JL~+%Y]mX/Y/Y/X-XXMY0LoȐUҠg+ _)].DCA( ps?M9VNjr̥Bjm?P~NaZ6oQMSlYXNY޲V\6(`=^ j3q%{ousrSxN=SigX~CJ]uuV^qGEm,jg< Ὠ])`\KBɽ*O}>oMfkT˵{3_J'NZ"5ūt̊>tWI:f݈P+Uyo"Ѣ+EQǨ>T&6XK[/:":9Ϛ>T˯ܶ; O/Y wvWTlŰ&pc[Tj=Ɖ(\=|4ɚR/fd}>:T?nQ:68H~م5M@:f@S 49ЩTm"ړ3[ަ Ct3YJQ3, : &6EP qi\6 qũMLs]*ٕW*hZ~cdg_pK-N~j~mBn>w|l=؞; jF( ֞id/VB+ߊ^S1Y [Uի{&3-׌'q;JXY̘MYw}neºdWICMԖEWjT(*XREbWɃK)n񒘞_=jƮ\!:-?狯x+&'ƌF  )5%*Wt?. ӹS])`_67GN^~\NbsA<׳߫vdW-yG~5 +#C#}͚8,-FlZ>OYlj(uP #ZŗQ9\:z.t8@eTJn9N1IDf>[w?*).a$o67ŋsiGNS'|& Jk8(Jf D ,xE(5U͚:( !h*{&]oNx__KNY 3#;--24eEʆP:( ñ?$U[^5?d/G6bV(vêڕgD#AGH SYښqq NTV'DUEQTv| o|o{`:]q,+kLJƫvW W?ܨtk ˜?u"];AS(*XOjt^OG 2ؘ1'MG)~,&~_3f4$ɮa>e6w+kՊZi_&G*(u/ǢY^G^0 a *O:<{^<.Q! ؑvoxGz kW  wjrbA4/]b~REQTfY'|ڌ jFeP2Ѓ0&5dWL//_10b4f8b8d0d0?'IجXY-2Rt YLy )xVR+*9VW(`=MӒf2kjiF` +X.|6X}28%(/MkORQGܖ$1N[ʜ% &| lլԫ𕪕( s"laVwMN0[6 Z8ՄWcIrrڀ fBV{RYEQAp{?s˭SԡHP֥vO2\+"XaֱؘbX 6ah G` \+Z(8q F0hԶ(i5,a7G+f+Q=+6S\7R1^;ĬD[Vkk++8)7|ovU~0vt EQG&37 r`fN-x0Q X%>9AK>X5h&'19᜙Q(db``>ez>w'ڬL+C/Qtv(Tdb7]m/Tj2i*+>uv *]'֟$n ׻8yUbzƢKVI*<7EQEQ:qF.|b݉ED/%{?COtcU\)S(&SqŠTڕTEy8/5q쥺/AUǢ20iHD#$X&lVf`Gsz&pecTVȌi*h5D/ Ԯ,v֮((<EUX\5@R-jT N:K ܫ0X3j˷QE9{1:( #Kid.XSʭ,bt'-VT[VIWuhgķbsED*MiV{53(BX@E,&x蚫Gk] ^uZ5ٕ\`971;& |'X~;J{EGdVHĮ4(uAd/-ZT ~1zvuƓ{r{`dD|QG?fk׸ݝ.' ,o~` CR hY*x++EQsbVGԕKUiNTA, ȱJR[ة߇_s3&e|p7V+V sY=4c+ZZgdW( yhXl4Vʹ*(U*=VuOx#&ozhш'ܰ^Z^WQ1F6bUR4G/>EQ\Ѩ l"'z㕗g塬TF|Ql/ϓ`v[r,W4ˣV?1y5+F#F#}z-AL%d #Ⱦ!}O?xNGHB(u5Kq^TtĊ3ZeYb,eNrTE웊u$6W=wc#9>n7u qB ױiՍQzDEQ XլH\YsI'OzƫkzU [+U%B| Wh`2tBxqbF6 S'>cLbs#u( /Q=`BVAk1Q'S 과|'[jQUO=v;,x j{p_|upnz8㓺D)QL%lmEl"- NJvnhnQEQTάY)WҤ6/&..?T!7z57^q>`G, m<ܷ0hn % Y (ceزXD762!4 XGFú&UWREQ5'W]&W0A߿.a3w3s==O`5K ]"_&W؅db|3;XF,67nOw+C06Q\R~9TEQTPIxNx\UF>C! #࿇&|U\|0xN:ae"_EL&Ӕv꫞ Elu#Whckֽ  X, ͖GVeJ6m_TQEK)\K~{INbB &䁫E!)ShUj/׬6;o^3"j X«rMUZ]9 b)`=XGhWKX,aݔ:* b'UBԟ=_N5Ruoys&f|h?͊͂Ղ.(wf?A 3bhḁUxA;lQREQ:~"ok'HLPt}au_;e#YUrb5Nl"6N0OٔlFm̦,14eR=W- }n+(*XGsձWb4^_oDoF9>+"JWiӰg 1D" 8),$+09U,Ҕ2pUV*>OMG3Rἤ=1Wbr9w+fu6 ^;ʼnp&} F"ې$Μb=O.T^5=ҴԫEQTSN ;ؐJq궤;Cr6{Uiy JjՃ-l\>A?Vl JXoX6,,W̗Lg[f bQEgӂ@[Ux)z+(*Xm.#'V202uW-=W=ɮj*\1_gR` Cӟݮ?b  YXX./Ϙp-oZ^ UJD0֮"?FQE;ԇM/t ƱbU/^;KSR~)FGV lt3n?(_ Y̘0>X$mUDܲWԮEQ>g^Լɽժw(/%u%~nk: IDAT3*;p0λ;"NيꫭNѫJ+[uЮZ~SEyK"TA9|NͲ.UmTUGV{j[\V6L2S,a`X CCѱ=I^)U+EQE 1}!J֏U頗*K<4SL''ԕ^2jhhȰGPQ,cffda/xUVRA*WhZPQEyaXʶDǒ;7C?#ZCEWͲ?k^]3jxȨǰϰϠˠo:daaM٘EK+*JUYCZgWMWtXQEQz59u+~;&2Q*`nXhج<S'|S޾ɘ!>>>...lB6[b# (`u;WKDa{RҎgw+fۣAEQyMk?qݑ+&AQ&C#wy8n]cZ9]+JuBH6%!vV"z%ZԼxݧXoj(r,ڕx|JCA\ \,WG[ :%۝\^\\F=g*-يtA2'ޭ̽k],;-ZR!U^^U(*XjW"jWIJB\5nE;wrU!\Vd+EH+#֮Rhg? KQEy%*a3v쥽v]j?H|g^ɮJVtx=.^ 2%%ՂՂ՜-f}k.V?Q}IJQE3UdXT&iľ+ #Yl#'Qj=jWR/m -'֟v;ӐՌՔ ˏ,e_YgV*vcOJh7,:( #sUaQ8R&MphLwR=Pl1uBȪAzF|s;:apƦƮ,rU~';9S2cQtƨJ"HRZQy2+(*Xωrd X7 3U+âzбru+٧+"#R`U.pEa[E]{ZjبdTUz8jW(*Xcl+)3*۳i( D&Pю{^'O +;tDVViM3  +-~72Ivj(`+R+ kh۔tgBf0'?+~\Nh _ʪU`ҮX-0b1-9,Djkj\Y04U'(4 #nNIL[N(W)ܚBoqac==l`vv cHMsizҙ5ryU$gڕV-JJQEQ:υprH8y ־yF4bo[#"CQGO h`o+j6”۶`0TM{\,5X4+,(`6=b`!rR6kjUnmw+S61jUQ˳_sU'-Y׻NWi]UZFdݕ( Җ~l!v4p 31Yfs^70Gj4{hJNVv,5 70ٜ#wK%-]*np-:YQEQm&1Mc6DO[n+^U?pc*h}Vy𧢡ŵê,9ٔtZӠV$Rv+EQ'NjӦ%榎)VFrJE6٣t<(v ; 翃%W&Y8EXE"[-r,LԪ֟jcREQ%Xr޴Z6I_w)Eڣ@ԭC6DYJbrIӺ[]W8 K5q8cn`EٜlF6%!H=?]+93;i](Ll[KW\ӽPHvWknbԑLV4=3]VmCƟjMEQKzb|WRg֭kc5Xj%#|lx5|?7d ̠]kQ.Z)`@^^r"(}BXgq˭^Qim!/-^ͯ&4\M/ GXJQE+\tƲJoJibWRnqs~]:"u GʴcZiB?ӆ7fZڕ(u_3SpЮeLI3D{sAeu[IiS6g6ܳ0ju 7XVY-ئ9 ^u]Z)`}.D&{anpZ,A @/]HEͲ950@ ([lf9oMҤXv BW( S $n0&r,v%i]o`-&3fv`DbTvt1RREQTN޲A72 ̗6Fşu&WN1 bP速ý>zPUEQ5]]N(?U%GIQ!:rlo}j6E'R]_2%迥5+:c:#`?cnѬHU)9?x} wEQ,^t*m}FSyB'n>;׻vm1O8M%d+aW;f"'7®Ny8:( r)lVD+n+Ooӄ>}ou#y6غ@(Lzj?:KQVU|Z4KKQEQzfxZoK&)=ߧ'ժU nsj*4%MHc҄4!Ic$"W+]KQEK93;2yTԎw$E=Q+W%XR˜- d19[}`7_39,ZH}G`)(*XIUnKNn5"-KYTޯ/ykrMr9!qî?t ,g_YgV{VyaM( r)Suib'6qWf߫4jcZx (tWu̷rms7~CT- fl`Sg +EQEQjchɓb)}C'<kBSoΪ*1Sm K n`pJUB(`}^$=Ҩu4 9~q #)B;'7<2tm,lWZ-LmYX|MvuTW)(*X$jQH`"(U+^04R7]ynV,-vj+hQR(`E)~1H^^uZ fW02vUuZu{I`^/?A]QEKyOBUJ҅%,+IϪ+;ʶh͊bxEs7:eMk`6eovvHnMmV.a2U BRky- ( r)$iNUʫ&jWM#19@\f|phȠϠG٩Vkk6KƥB˪U+/5ix c)`)=c؟׳Î!薴USJAzj8yj ^erxxhȰǰGˠKKbNu:dIbTr bMHQEQTZIob *Ѧ"+V.EZUuK\jՐQQaAV]zc.-QD5ۆG'ِ GWlS*5Eشڕ(0 ev|z8o\,/,#ۚtN ݕƻH$i0SH)(*X/Թ->OH8S&9f#_YHѮ|{_9#^5L Z EtyL #SҞ4]5aų}u(*X Z6Vd03 ՁWp4)CѤv% xEp{x]^/pXCK50%Gd?ސ|,`ٺ8: k](9((*XO'!ۄ@v2N~i>mC525m,wR|/3^'mHdr@KzU\)odWREQRΦV4ĮJ+v0:ޘIk^e'%>/kWvb*sv's-Lnq`fj!نti$;ƧyFծEQTyUZ5yr?/LW!+;koZ1$)L6e \(locNw]$ 8$[Hݰ]~S**I m>eRREQRUδJѦ'|Qjwc~ [T1r|'[8u@<V!5 %[~M^.ZHķڨa)(*XW5V 2*_!VfJ* H=VƊ튼]ҘՊՂŌ_5l+YBVi%9H^L*(*X*Ug֬5FJƖJE+QG԰+'*b={q}`J8%H8Ɇ?B(*3i!Q*r2,u,EQEЩ*A-.+ mWwvK`ZQZak~|b>d0]׳4+ 1UUroREQHU'o׹1^>4ĴqOMJmoZ恱j-CWf'^`alM( JuKcW( g!Umj1|igiS5y25?†G& l ҆rӲsb`9woWREQRٮ'5?F.sLUbL+Regz}hdv(m[yD8V\뜜Zzv(`]]#I,D=*^lA".ض춰]F2L+:&EQ,!?[ElIܷ|!RV+UM­h eREQ,Ue(maK1z`z_EwW+\]{l~4wJD׫*ZV+;~P󃊢(*XCUWi#[ҺFzhWs7+z|0[R`ZiVɮ]K]F֚JJQEKyٕ[gN%QD$8"wB-тXl)X+XۆQM3ѮEQ,jѯUWԡ'tK = +kF)!& 焷o,vmKJv[kJQEKZŇnmalWnEjtzr=7k2^52:Fb%%uX've˳~ -> ڕ(u6jdǮJ^U+n5qygscp8C>΀'Y]w$sr`\,g$b3USr%>RREQT.V}["Eq 3L|I6dFlm{\)ߚB]vUνW9nWV( 㨕M+Jk+oOTqE&ڱjWsڕ(yyҫZ?*ܥd(jQF"RiΡy86v(`p:M^5ٕ[ PyƱ]F±\ 'lI"[-s[ ])d IDAT[:A*+`zFv((`qcٕkUg,5s;ƴvŻř^),`S |a[ fOiq I4v/(YUzlT^]n3u+@ -XJٳΟ]K74^%K(`6]HhgJKSHU)CpN8xdYLFIFn1qx:W-REQ^`5FW6^y7>}.3RҐ0d I:beeڰذܰX0js <.ފ`z< 0QSEQ^`=զ)%j%.7;&l7lLT^A7V,,&蛜`Ue풀yQXO}( ֥%^ݾ VyuWC3f`"URƫtvu'U-NX*HWWt"#g.TEQT^iӝɮvv\&^076-ٲ hGv^ŷw1 ` ^1%SU!X~b~7˹֫b7+r>hBoNթ٠AJQE]B9Zqh v8gzv'2z`nOZelVlll)ι`E^`av2tSՔېF[ܣ^(`}GdnN W5k~ ^1f4f8f0b0?m>͊p3 Z-NZcsT~Q9jQ( ֳ훶+`]t?߼fWY1OC!H]ź_jOX|o b Ͷ[BkHD+_?qծEQ3g{쪔(zum@\pbQ{WHnٖ'v$i 5U>V/Ο$Ě>WHUɱz%jW( Ž[mJc]gDvp֮2#q #|ZZR6&hLN Rq3-GJQEQzdcWKD:ŨU 걬`>nLq=\' -Ֆerbbl [XVr kْCXk oMx\)|}l(uqzvYqEݜRWO_ 5}.tR )#q ː ^[393;iQ;cr`mLyd 16~ Ӳk ' )®EQUmԪjWn]!WYWZg]kk| &IY.Y-X~/%4"eosyrMvKx.lC5UA]-MXcUS2씈]"Dʭ+^+e(GMŐ>GW(g*Xw+Vnrq(`=W|rԊCWvL{G’ӝqʽcPiab-O]ժU$"Xv_mH5t=O;vj}#liV>VV+(*Xz-iqUۜ]ڕ5*O tE]x>n2lcF.[JH#S$n] YHESқezE숮Wiީ;KQEQTT /J'˵{}!𮗨Ӄ.Nή2۵S(1;1ۘmL/$Ji;6;/֫l3vpN~ hQEQEEA*U2ʫ]ѱW Zu HWg |n|?nHӻT`R>䠴+_ڡ.&7O95u0[`հPkPQEQzQj6|m.fatDŕo҂`- 0^>nI;0XU&Ԫ,7ypc.&/CYㄉNڄ4(`=ᵸm*yguD=눐 L9Nvn`JnI `\l7SYQJB٨$5L*/=)4#RaT-~|G^c)(*XOWhqۃ/J. *5{o {ٱ&sҥnY%A a`~` Ȃ 7QߤsNfƕM?0εI#/"̌ yʦ6 &)&)XXXXṉv nn3Zte{w>]t5v.*i,uN_EQEY) ]t1Ξ&{RCIAgz5忕LαZpG.nVmf'^6H CIkAV7Q߀zZd,(uhQ͝t&\dA{Z\\eX3v,,X`]FTZ$X㪪2'On`n9g n=<ҾTJNJW s(X,@Uh_tt3[-X]gkޟފEy#j{4֌>p#2&ϬVQ NۛE("`=9BG+UYkLE5&Z^X(X/`+e:9qʪDze@&}`%SrA4F L\T[ 0a EQTh`'`iͩ u;|ϑ}GvgT5 kl>︤BrqSWuAjoMv= ;+f?ap7o0]!qga2QE]\`Y>YFZ`c\!IZ!f7~X W`qdy)bEQE:&WߵBOMpq_ic5' g_aw]!@vYVsL̑LQ?7OH.ȫR%f]Q't"[ sekF3tG|iŲ2> -3E+("`=K:(a);&ۧ=F| *nn`.<_&]D`YuHHTvJy+Y=Up џU -%2{ąEQԛ=XËo\"X -.U5C mR%2@-*lpAp|UP)I#/Sz""u$[U+[.LJ7Þw(ulƎ}$`f2g/T"`rS6h ʎ*8MD{!thQQ_$l3/CXEQԛ{EQU o&jnTMC,aV@zzzzܠ>O6( r| UoCWHU2m(z`ZJ\MfRy- ("`= Q+3ZheԜD% 8WMW]M(EYU~=@YZV(D#X?8WU*wT[XcX׺jVRp,i׺Ltf,( 9X!NuNvVqweTpgVϾ5L'5#=Ϩ-l [ޭRBz*w.j\NWP2=(>[tY=g(Y1+d,ʢ(XHT!]E+Fj 8΃8S)0 Q(ى?(+yĶD^a[aSaz]hkN~k}P qSaf3)S!B("`=WuvT}שPԐ-ҟb01-20LH)(nP~B#[K,V[,6]nKSKeTt}՘)5y͈Tby0OS5q gT(JlXldsl>DrՙU*-堍D4((aՉY?BXo&T旘͑e͐MwTADc{@jR7((X-^`_b~U!Fu|geiղRe1]eAݷT=YPFF=TNDגeUjCSZnv"h+7'PXREQ+Hs(E#^4\gDˍ\QPwicwAKT{Wk- #r9 383՜cIrk]cQEQ!uH uj-G X;c% zho- tWU#N%aBm3(VJhOʼ(Y-V|ޭۥAw0`.a`af0s &7(77خYaf-XwXî=W]nu z":Nܻr(CjjzAgH(#bƢEQEzXVyyNCv9fh3`fU[TQl`6 l>c Ŏr+j ]AqD5pTI/[tj:A.뱋.cĢ(X`Ehq|sLfcvlllii&P5QPUaW+O|J*҇*W:J?8E+Du-( >u]#Ž}EQԫħ(n_K~kg瘝a6G6Tja:L̪jz { {ztk jf}ac(>)U{|CՌ0+V% SʬzА; ͑0VrIQENHq?Z0':g. ~կ֨Fqg IDATQKjYcE[㚫l5ΠyVK\7RX\KGlEQE*+Ѫ/** BFߜҵC  ]ypwVV k?KW{Q8ØU&>5,++bުh8(z뀕!IвL *@FBWtθXUj`g?{KaP{:j2!Fqj&4ߨ4ܯeMjkkX Ҿ(^`Mz*VVcY> {rT00q}WLHbؠ\X!_"_"_E~g䟰w|wyTY3pCW%jTX2IsC@D *ś+·Z+QokEQEiJ{vU3dϫ Ihg>kTkKl6wZª&~ 8.7 |wͭc @O}С,(V3U\Dr$f5ݠ"/jj%I+f\ٮW 3oU-[KGnėҮd$V&:[5Ъ:ee++ )(V[3eVMt 9 Qh(C4A4A4E(s9vmJl,6  ]W֟3XvGWteb}WeTE_2Tw )7 XSU +Yi=ss$s$S$SS$-ZllYcf%V_6ZT[GWAj2VBXe{X s(^ `})e-iʕUm_٠D.>^Ap;T.h?:#EB+FM\9-j=XEQwB]6av} V]}e<.]D0'.Y\JpJn'G?``k$L-{Jxlz>fgVk Lg ZV-p4cLaQEQn`4誏*ٖU?}'B}Ym;EcWiykt7πse\6hDtKO>WXlâ( `EmV%p w *RV뀫ZޕFа=?jUU'Qij ɀ/w$cו<ikx}cvX(XJv,jjտo'7 ` ,5 *} m}(t*2u9Բ]Ū+"1@Hu(`͔!WP6wFUz\wq. pj t5RUV,V뮟#z*˧0#cQEQo滙PU2wj%4T GRIVּYIpu`뀥q ʾ M,)(Lˈ TWM}UBNxcwUe}PKZC$u.S5.b;EQk@ -{6):l5E0 0֡tueϻOGus,6\Ń+鷻ne2R@ *U"lQ*!(WX6h̵*Z#{$1 utղpO&sO5[!fj8 )(֝S5@TeozIr{HT Jf~t,*`%Ku{"; 8Z#+Y5 ( XuY#6ƗjZ==jf (?JU.y nHRU* ZgӁZ(uvq wn.')w[-)c ݃WV>ǏPIl2T*j*\~sSܡu.NQE!j*)_pteBf8zt}s(c qiǍbhpw_uZUݾFƢ(^9` *l6QoaWr=7QЅczUځa}P5S)TmNXMJ?{"d R#gߪ 96@ӣ^(p jo 9:Lv5kӪN)UH_} si˅apF-oŻ(ҿ'ݎTuhiEQEjOUg0mDըs ]367`W7lo=ܬ 1Vy}U*k*V^TG<3XGEQE^߁ @dkpsa [Ĺ7P֫2bEgZ!|ҪNyU,o5l5'šEQԛ_s`Uw\5AL)-GT& -_Ur[}*J齎FܦXq ЕQU~b+9I0w(emژ]`h|+Wpޕ=ZğdTDŖz%ݺa7]jTuQeXaÜQEa XMDehz|((3QI׈? y\ps/=Z,/I'BZ<" 'XVH˪7&0ѿ "ս @N,(k" /.sA9pF5 nRfBO>XAYN,duT;rD߲j%frREQ,2$)A#Ĉ $"*7D&07,͝{᪈XNsWw8V3:ñ*eDtޚS ]LXHRl&EQkL&@j1-14U7۹ fdiޭHwYˍcU'4~BL@*ulBB(bć*`hd 0ά*qӂo^J(mֱ׳d0S@*Y.D0(ɐ(X  6MQ' l QX 55Bl D D7}#o#f@.ӠM)MJ"+ٯNmO]ZWnuB)IG'xhTucFKHvuJHQE*›s7 E|yXKK Էo`?#0; r3r)7(JXaEe;Ƃ jլ^~].W7 ͫXd,(F*ψ?joPBGAf9j+168XϾJ1 >0+΁sV5HneCsޣAe(zU ZUV_~GEY@T&k |0/>DӧDf5Ewp)h3A2YE`EQV{oQj-PԉS,ߵa3tyW ]ýƩt\5_MH[\Vd<8Y-UB(k Ud S_# 9(F]dHe{t# U+F] TV`4,REQr`"wXX M'+?'H?HwPFZk J/_q|{ZnN/***dlGd,(ȁt۸5o&_~}{ { {{9ll-QAW~2x j=!J4u1bu*ɘ(]4tct\lQEQ/JY`o$=AJVe$A&~V-1rtʾm$&c' W;U.Y $,[6@!>,D:mXEQkBFEF 4TAZ*R\']{ڿ#}.;ZK[ f|jbhÿӏwb+U.T)?ί[-κ;kU]Q[EQEQr=R펷n0ZpOLT]90s` ,zڝ) Xo>lh4gJTVV"# #Jur)(V+M3DXjA7&E/tvOQw/a/P_>C=G=5 koe_EaUTZ#y-2 "tyZs%NQEQ//G<}Wrj{ ?R5.TiL Ga>Uj !TbȚT|K[ |$(jl%]c~3=&s1V0phEW TeM\Vi)( NZIݧ)ˎvN!NcR'2 >pSEQ3W+ZЧV T@۩@ n%3Bv~b53 cE |O$͵,Ԏ>EQrVuceq:V\ :@}5p+P#=7 Xf,rShDxDV4ȟeYZEQ+,ebeۧ (,hBa |P5X32V.O38Sh#[4PEQ0$Mqտ}UF $Wc*ìO+JZ.]RSk("}9ybCV-y$Rr! i$YKՃ1N)өXyk@`Sc~އrm4"cQEQx^i AБ"MݬeMDZh6ƿC[*})gSo39EWVB((nW׷FGdY5PA*7@, DEK`-8 aj+L gY]MD2/|hbQEQ/K_U>i+}@K K6 7lqM^o۳Ra{cTvrb5JFZ&pØ(Ƭ~/[V;JM:h Y\GԵmcAU./[u)ZQEQԫ,Yla=j.MԔDKI5P=?U]sxGao3L9V S?mِ4(X/X}ptЊQW+ta)4븸vwJH=uͶ{Y(eV"ʅNS]{thE+n{,d#h  R n&ZICOI("1 Dg(Xe8UR*eFW͏D*۽1/WhVii/uo%ǟ'(ګŽϸZ^ ( sm0{]^L٦BTnJF5VSX<|mEQEB Ik#ubB)0f>ZR:[ךb{|hb1%"WQEQ"VyK:W$0 v: S m"5?Z滟DzP#u*ʨ RiMDc˵EQoAɽ-7 ƿ?˖IUjqnи)|*k{˩ebPEQoZw>jw᳗Utg9p&hlBz ,wTX(<р EQ<<,trVQAAPdcj =鹨Ģ("`bkܺT-gpqs\|lU )S9-Ln0T߳k TW(ziHQ+Աuب6p \g*ҐK#K&։22EQv # z3 {W%pzK?ɿSXOabF^6OAWd,(֛,3t֨>.}:SI%.1dSRP,(^[n3Uì+o?I"օb]Z5-p|>?! >1ի~df8(jDhA^/"[@ܢ b]5hu |~V;e׉))|,z>EQE: z0= U+,^7YȨT j`hNrB@z#cQENZO[883IsobcY0i]Q8h QԗUd2U,Q  PT2O. },kb,XEQWEZ.Wf- I,Tq`uxTOu3 SEQOŽ'>V&#*?**WjFWz;N+hn+G92(XGN z oAF""W4ZfBNt*NNѧgdEQEz[>V,ߊdqSO ڰ yAlLdׁYt ?!`QEY}5Q#BX R ZcO@*W+ }cP+UX~D>EQKcAX +'Zij,+VRjXÀucሌX#EQE: iոV"3*J^4`X/0V<)`Ģ(:q7]°"؀esjFo,aee+=ўai~#pzQEޜՉG8++Q0+>ԋJK-lAL/z杕5=,+kJ?cQEN0b+r<+;VjTE];uW{ σN1U +}i=`EQE:eXu'tXZ--ӽ_N8lb2ӳ` bdܿlB(mWl0P=Xx6=ؕ(>lƢ(z)sFU^ -98e֕ |)} PX c`ܒ(ްX"lSΘ#WuP*E**j?#tQo \o~?ar ]i⓲PHQu>Vt5Fչ_ Nd9xO‹u ^(kb~z+9Bl.Kݣh^.f%uZ!(ta/3=d6^^-]YQh$tu?Vڻ>s*꤆TC)Əm7kz\n0 \\d>B3-YEQeR1f,N‰ S5OdЮ{+Fx0iOXxJF*냉:鮪[9(["li|Pa9'9ps`̀L[j ])fp |5DNV&‰ZHjԾir?CQ;cU`'[S: Jr` 7bPDd7h.E1/SW d'rr%|-LGk(u5F<K, ө Y$9BA|kZuBB0 f=EȒ~7mMe]BAy[/Bd,(30Zq!E\ \!:WM%"[U 0F VثP#IەD9,fX?!'$TbBZM: \g@ieQEFv1{WUW~Mm7Ǎ|N}b(ӏY阞wC^pWvƓVdv Ilp{bEQ8jU =kு ZkU=Qh 䈶0[D+*7Zme~~պq܉XY%iT09v+9gK`!Z5:ӆVEQe%Idsnk3p ӠU[rskUWtᐊb%j:YOu`h>Dcײzx 8cEQE:zZ` D@l }Z ZlWHY$ZOUP2]\*B޸,6%TS95ᮅVZ GP>;f(XOp-cRh%쭪Rs Lc-U=XtLrϘL?ca\{u/7?S\\EqFf]%+ɻ܉+q. Eǣ1ՕJpgx b@m%ʵa5U}P<,EQEzU:aQ]-(+ cEO(Cݏj*;q9TAVh_YY¬'=P X%c"Gire U[>WcX`bB(t?jv T j`3V:ZIT$=@}Y?cmORTKD03[ ]\1D (XQtaicҾ)^tּ>Ba׵B},x6a\VHTGe5s+t;ΥC*P1:)1(jV@ 1bյҺ7fV>QDV!ŞF`cbs+L1(ҍd2Lq"["JMռk,Wm+5#tBF UYeea/ĩ:F5c9jsB!1(De'2}c[g²d/MUdi&wBK?50=H|nCgp <@>$x}AM. xjx3XZY;<EQDMtV̧BcA~XoWR&ci]\V"Cu\~4CemӘ.C oɃHЪɏe2zDݕuZ9nEQ,Jg!W 9F5E8|w].fiJTFžb{kw>t;A,5,]|H:ʯ6Qwet{aqz^REk`-as l'UR8fk{o U:ӺJeTƂbaVu=ܩzRj~0`尻G?qC#1cVEQuY g4~Dݸһa,꿅 C|#1'L%ANi%c՗z_c,*G )e!Ho=V;i=cS% A+(X^[i3 ҆DWK=p\k5&[bMJ'^*5 9n-bh%"o'^ixzZan'>X4ET]\)(Z5rV<$=?CU9p&"Z/,q* L RrcuiJ0c0 ]֘@S3V3PܳuC9'"cQEސ}]hkT?)װaP_@} |0kD 60&fsb#1ƿ۞م#1k|nfʞ_niW:[[$w^h>V@̢(E=jr,9 VhĈb*ݛ{ZU iKO־@3re3ޭUh?F÷5O"5@+(4r.[oѪPO_$.#4ЇX]Zi*o9C+QP=[1)ϓ鑋 bNp_LU0w.[Gv~gt2YEf674KJl(BlvdH%Fp)Gjz :+crp8*[ xw$›5} q괲("`Qc ҠXePEQ˗5PoPoP,%%[5kD?"1 0S@YeY:e:@ճZ+ ڳZ}oI[FNkBM- KsiP7 ?HF?oĿޥU"UM]I(mwJr*(8ՙi5Wn5YU6XK؜B+UXG} IDATo>ǔP ,XubYǻ[@e3KĿ%pgtv_너TR~RӴ4=` 5T! ]XD/r;FU/S X/b2,Xu?'XngמD Tߣ?TjGi5`wW ܗ`> Z &NM#_7]W5*NNzbKqxB1J멠URbɏTbTg#yEƢ("`['[IV[lY׻s˦r-S/~ W`ޢE} Z6^$)`kxV8Cu:l#r#̣SoJn)[zbEQS#SWFV^F2ν2"y 3s$s$F]n`UVu k[sva_=a7k.L-eϾ>VʸN(TY9[`;zcI@̢("`=oGB,H  lz!3Cz id$C2E!J ®aK ګK5QwbXI'>t-D:0ogথ*G0T̀+O F*ġ/;(XLZOYU*BQ R[ @rɟz{;G=PeSSTSK0SD9"lm`)uh, @O{zuyD?iu.E*ϡuhJV.l&^P<ʺ"`-IfgM`91( -h\K{3+- W09p.cs$7ȮaJrS/[R*U=l4?УdFkQwB r|TJ`ʅwZ&VklWC'Q3W!Cu]P4_W7,#ȁ5C"[UƽV+ \fHQaVA[ Ӟ\XMXs̿B3_\D}93ss`+Q8GEEAFFDrߡr1QZ\tPVXnN1]xҾjŖ%鄪֗xwӕ[HXe5*$U~|,ZYEQGƬG%ݗIAFu[%PX}>?!]!]77 UXK`l-PTe}^wqd9~IVUw>HGHkc/X/6`6ah=Y[i$[wuׅdfDQodD&,VuuwHY,Lz7g3CYt-dDhL)?.όє6]053}"ZGUZjU褬Aٽ& &bpE~ gqoRGKzru^4+m/*#<+, -x%?0O}* ' u!C^?#D~ȇޫQHVqDڒVoāvFiLlg,7)YjժIY'f 'c9we+^ ӖF=YlM*ODKK=1ql iTS3~8UGɎI ˅qu-ZJ>|ө2$5%j?aìfժUXr=OSq`6f9Wؿ~=Ýq˝Moq :l[n5|VwoXꯇfZN'J*0BU./)e •ݸLKσm`.]ёa#څ7pzqJfsљU1VZ>liF"D˃dU݆ў̿D)g282eni^xvg7jG%'tv[wr^1R$i 5pE)م۠GJPa"Ѕ[Pì2`VŬZjUz)0k < xq7ޡ;xӍ6amZmn&^7蟢-T} /Ù55+xebl{IB4|+ H !*=U(:ͼ:ֆ"[/ЪώF%>9cQ1VZ*`[)+.$r<;KDΰՂ%חwEonXc>o ^ oGoC#]VYF`Yv܈{~"c П$`Y۵!ٲ͸s0MbVZ*`}R̳K#m#NvrfxEm) ۫6莶)~W6W*AxsЊ}$e0|rD uIIq]X1VZ>(SF؎|D2"|Fvj6Ӊ;F\u,c(Li¯P= Kvy.ME AT3k,T'G+v $TMfz:p(WT5Y7 \T)`Y1w#WIYjժUԱrƲ$jjbZ|;.m"=ڞ6[n-`n7k- 5;W_OSb0q%ߕmN \p:]J2da"TPK6tHϬ\et"Zϸ1 UVZUMR0PuΔ*vB!~ /QCsLĪ}Ƽ}]QN\EY]A>{:x褛`}.7ʚX{HNv:c)T f)[1,ƟA#ʪUV XZ D, D%7kѯi^#v  P__s8/x; u:.Ā:RRn*ՑSV0b#n5RM+I3U~E.uP%C#v{{<ţe,|Z*`ۚ%\GӄqҲ345+l^IL:ӂ/eD+c9V* pk`ZcV4d&nFdE@0l3ao@TBpp$y2GZN!Ig3#:Xtp}*cժUև bd$d6sR$ӧ#P51F3 A ֨N[چ5}kX9Կn$3nt@e6U._.k5'cm۵g V@Zd,vaeZjUz"Ғq.1Q‚ҧ~KbdK ΂ ڭ3x0E[pp=JeQwJr^UyXìjfuLEby)=KINwo9 cQ'kժUՠK8FZ-ͼ#df62T}NVO|9;`h?%OBYh;2~SM`|Q!?Qii^Ut?(Qy^@c^]Kn(¸A=fXUʪUVZ!b r IsHM)ַgPSӑH`1e:;h^|G}O s3s\`gѱk W | ϰq7z50-,?Mnj3ZL"D+DVcNW: Fȁ)t,;E`gaL2t mhMy;g`JYjժU]`llJGv3l& E Ug,QKi_C>V8; LUODܡAsB 9t5_MxQL}֐Fq[!>)JZjժkLBH dЉi&V%`Zĭ-c-֜Bu.eZs:EfEœ Wr}91yF/I]dP:BՄUbVZ*`u:a&S{[1/: X;8Ks %Ĵڄb ϦRPjդft%OuZ ӉAGUc1c8+35-[9<)1qm`U #pw;N~{8ƢbVZ*`:yI*Xf‡%i2>YN0Y1fW[I  ŀ6ǾDYB Q#61C"KښGj{0uV:dCZslrT2C;e5n&:lVrH",xVZ*`=k̬({D(LIJ/ƳxS#hm#`9]A2 fm9[X: s7uiȢ TBҩdr=U@=lS: 6\}4ZP*"qD諔UIVZ> K+RJ :ìM`8# eZKܩAgA: 'e@a0/FP0kQ 5| _k[*H@=vܗB͝ǦP4$J2⌟a9iHi֞U.Ia^Z$/+UU\UʪUVeܛ#~G_]q:ZPats%g_nW࿁!@ swܠnh.]Zh~c#YM3+Q2pWhf0l$cp ЧhS*|9,RFt#cLĪRVZ*`'~>38M.UWÍproĄu[>k~/ņxlJ߃O%6hV4E765ι[C^$Ք>TVB ж4]7~ٗDo'^38sXҚ5[: 7,;1bVZ*`:Jz7 HFdAڴ5p@P E.ys!.p_ڦwiC*+i8v&M=6۝blU"2 cX5?S7DZjժUʻ5Ȝ-suɯ<|ԇIeQ Ri40l=_ThоQAEҟ܉ͦOa0+fDL<,>;%ƚ ekݟ3gDp=tމՠiV8)L7߉#*x%Z*`պ{D.R4:7%5Od31wsA/c4(v͚zxzO݇Ʊk43Po B} '!} [K% 7iB6<'${Tf-A|5TަOy~0mլMxg300ǃY$jժUjlf)kژTQR0œ:z\*+CP- wW^d\g7omJ P] )rBO2`K|[AƄy؛0s։@hUZ8xf=ۻĬPeZ*`*Tq-F!cV&|V]gwYth_Igk__NNmmzt KgCHSS; YjUuJO_ƌ  uzȄ s4Zx`Kؖ-:`۩2{ O3X?$Pe:*ŗ:!yb`ˊ!e IDATWhڴ+ڥj*@'$B{ cBu*fժUVPK;XBJNZ)1R˸P~ R"%J\cİu9}NhB),F¼嗻Piqb%?RF5+bm~C[pqEV<.1rh򎦲 7UV Xvv&<څ:T&LJ%o<@++VJEv - U7BjuI7?v UUv`W4״ofĹK,WgZ('A+n:,h%q֔^SL!7~9éYC[jUk4ca Ǯ㪁3XBx۠RX \ i%d'?d|q:ѽuC`Ew<_>יOUCkNIaloE&4(IUAٳȳ$95ppx)bVjժUkT.f4,JYi Z:=Y*lN\Z:дz4[Y=K ss3 w?CӜ@((hҠQ 4,zom ߧuW2?6V2n_N73 *#iTyaѧZ]ڎIYӌŻ*fE [jUk[#Y͈I}0ebӧ*f-V[mS5Nе]B@z[LJ^ }dgM4i*Q O ^1=lLg:AIIX멬YG[jժkktK8&b#vcE}^Ys+(/J(ta=O&8zh1t%[ l` V5Z % JcAC]M w?FDq/I$?Փ].$.VԺ)_ցeb,ޝiŬPWZ*`5(1FY)"#UOgL}4i,F?Rik`1fM[-Qר+kO!]N~u#z*+9sEgώXAV"IL"672xcN[jժU\lzaQ;6 i68z1Ө&\`, MhMvpW!5|_zgQ'<{a~ ohKRR=U..,ⷔ˜,tJW&b`om]Kq܌ {%pC3VŬ([yUUֻV*JYcEYE̿Hl`蠅5|PGV X>#^{XG0DUT&f bH~KNuUUdM5 .VEͧ/11pv=+,.Yrh>?0YvJ\(;wWGZ.Z2<v|sԓN0^fXrXZj@wynk&a|@ʯ/9"ʥqtG4cTIU1s !\0{>A}N|/Eh]ua`3s[/ vA.f@90 ;n腯N~ї|wq*G.@zdҪ~VZ_槳AK&ܸQއėjw}Ot{%G5*m $c1b^`^ 9q77Kx o؍ϛRe^XJ?,wCz1&-iaZRYPxіtJ\Ecȱㆴ*iU1VZe,su8Vn0Qca2ZMpoV:_Ɏ7,6MiRvZXea^\:ޤEJ!2K'9pp(Gx]Yn{[TkD_U9GiSDwK >΢]jp4f5NhUgZjU"C18l8?Y\qo+Jx~C{[b[lk 5؆łv6:_ h[b|z8+Bu'>T޺HݔP2v\b Cgn^t~‡֦ Y'VS,lh]h͎| PU1^̪UV03uDU eR>[QGˋqLJozTEjrA_c}x[5ꔨ4f7m8^lTC-b ! 2NBR)`yqmyLDDt8hƪUV XBL$<ž1טň9#:gxG7.RgN5j-Jh{k~yI]lx9ǜa0K ¯k ޑS+R;1+&ǶLx`>iFD+_±3jJ mMY4f5YtŬXjU$!S QϷ'Y6T褥/qXae\gALF8?gςE6\d,a1b͚~AsFsFsNsNk yمÛ:?|6kpM$KE6zJLɉ1uIXb 1zf9.ySYO UIVZe=cE/W>?aO[N\+!\'>ǡIg,_><"\F^n`}uS-fEώg V>J_=rb=BU#lTK*s[spF_Ȥ5m>W11JYfVŬZ*cXw5}dn{3v"c`DZ8|[\姘YPt:P74W,ޢB>%p;*SN*=t9KCK+.x|tnsimڈ++Jע(GI)7pumU>VZqA:s|HZ3I]z~uq(v:[ {d3~! 8_Ak`CuuJ;VbJPUOebS>5.2 L:#JI+:G ۇOVZtXIY{=i.e&Nӥ)=d~ /wS @/ @7h0k|P7k }~57Ҿ;[ '+/̜;%ˇz|S!q!p[tgCMoK|)㦲4ͰVZxVpTK )݋Yit(mOK^9N̞ka@anz .o0 VT ~aᢔBiPF5fDNeS͹SXtD~N `(O=d2fbV?㞔+i%*lUU]Xn$kMdlBf8FzPbi1;}{cw\ ˴xW,:5~SHFDmB  m8XE؋ހ?䬺O78lVJ?EP-NIn{\Jl܄b=?TVNZ>bUwS{f NWŤ&=ܸEɏT6vP;Pv_54w7 +XoPbFdHl[|_݉mѕކsT3oV1\K2Sl)rZR7JCv\: TJz452VŬw.?2~1AX$k)Y#gj> '֩jFl-XKw=m[ _`㛻IbbgeFEwKNOdK} JUڽ4x@vff;bÏPyuy8MC_~r[GXy!ovYJ*qNH -:0A'u;Zk_ῃSOy~1MUw.sEMdPY:hsX6tmpZ;#UjXpL`fM|3>U1+b^~hUg,N.֨{Q[& l ,vt9o__!N\ 3 9 }^x5 dJn&.AOǤ&j.SVXZ0nէt kuVZO3j'tsxjSsCZ@Z}UwS wvᡤ5H)/Ӷ$.M16LY[EՐtjig?A\g(ЛZ39}~y+WIpq[g/y:4CڮΩXSiS/tLYkINa8`Srr/ ZE9daE]lXQ@{M*Uuk۱# )%IY2 ٧018=M6}B q@~0P(KYDwRtv֘7,.іδf[/DT*nIv`r#BE/dtaUiEB dfn}>&fUҪGFUU 1GaO0#&z\* *򣀴nיECKb>)ς;w0bioPf-ҀԦ#pzv$Zӗ\56d[/+1,,Zg SI4{B?)̢iUتU{Xav7ȧje1nbއo!&v`U1Ng!\s~:9lmGoI ĕO'ٽ*wF*)]مڕP^$}"FA"Hlݳ܏*iժU{XY{oP$cwi~lC#!#[.]6 G0kpp + by{^yNĭnB f#dg8׼ V*Dno@}?b [g>׎|EUV3$56k},˼ө?ܼX'E& ՑtEK`u:꼂W{ cp A0tpu¥GjL?W)f)M.TDlA/1:xzT*V-)_r8]8GY![jժU񤬃,Yߋanޯ֩ѨP|x&u{NιlhƏ5з m?uvuHDQU><-D(20+p N+ԂV#/J[qyOAkZʚh)rZjUuz:Z+3`?\*4:f#mv@,^?-qK[|5t-Guһ*lժU֓CIk{2V^Y"P]jiQ P6CP1^‹ѣW4oY^_2lɊk,SfpIW4mZMq@^+ŸĦKb^.k څcU HOGcV$|Z>:;ȉC" ƳƸjTV˧D0 pϧto?rbojժT! O"eu& {Q:;鎹d45g*I]0iIҳ0K9ȡ= "T{Vpf#Y&D:)X!7B"ugթ^e?_zu8ol=4YRhOC`G|ժU֓NywAAGU.('‹^] jЪ:eF$,=KG3PRI9m_grBxJ _JjCKty߷)T91&P$f t~/wQ͚1JZ*`Ղ5S{3[b,d'~~ %:<ѡ'l[̭m5\KkOF7,_^a~ӱK>DE'Vl&^oM8}I/La3L|CIX*lժUY8HNX 6i\L'GXenJpMs=kx__/߅Iy:-5\n' J|*_0Rp˼Zslmm}KYyMC3u5)eU5V X\O=|nG幪_XsKg12.ȓB+dLa,5;f ~ ? "py4zMsEܵ:ѵYqݖ@jY.UT7A& j"G%0h+J 5TȐHI㨎!f'ͰbI`V XK=Bp0Yd~l0ifdq4Sh77,3uIE%|/Y Ugp9Y,Q ZK5Z K}g/9-µ yD-I>Èt" cv*.[q`,ޅ{*iժUcѱBК12Z3Y0ӑ[.;4"Q'fm]7p+ċ F ~b^1gXa.c ^<]K &*feW'"Mz|X>kemT՘;#JZ'$Y*`:cnUrR2'RJTͩ]o+RЄí 䄮_`hddSz))\(z7l:?d'T 0Y޳:P5 6p%#z㪱!) M,jbV X&1_}[ n:v۱Po_:l~ # -*h\-v].v]bo7 :8tg})$'MWB?rmnZ).'v\ FNܷ%nWOθ},5wTkhSU}v<iu'ӱ翱DJ.YKɵhi&3T§ !] MV?vIlq1f暦 RkOm:Ǧcӱ`&]Q jE$6#]0a#.^RWҙ_9}É1TnyZ1VZ"'>Uĩ½:Buɇ֙.S,*Na dE4 Oh 1%b}mpЮzC/# E)7 X* xm!>=^9A#3v99fqbÃ8WĬX*`պf=٬~½:ؖ7:ҳ>anMVME ⎷ _>?ggh6-2}L:WgIwAo,E+FitnP-E/Pghp_YXgP1&Ԋ7akL*3.YMc#&vi:N$QWeZ޳v_~Ͻ;5c/X.*d}#ўTgiMI7C'oQ[pɊFY[goB2'b-.)TξĽJ6ewu Y5%,nM =MC 'ʍYoxIVLG#cF`]X{YOOlsBJv)Kc}J: #Tiqշ$c-=X C~"tUjWh0,pq9NV>LoēB ˡjLdM!u;髖9x:Yiw?x$?C>UVgR\d3XdYd;^6"/BX}`,#~W/f\b`]%Zҳo !~/8 S }↋r:aܑ+ 0hFtz+aVr˦3'Wgt8chTNn{a̖#jɪ6 OT1fM.0lqE2PzOlQ23xzСEP?/S4q+[%5W]ܹveRN,v܈8uH^)m֣Yk𩕃aц3BPx)h`T VUĒXGd1Έ`M("n_7*^*N>_>ݗq>)g;GSҐ`{F:M][xڠ,| xDF ̆{{jEJKv!V 9E-2k9 OJц)I;'Z:wHZUߺ᪀Ui1֡vcT.6|י!]@++\IۋcMPtkVb^\u('MGsC0k2K^z  8+^%A v]?T.\>7=?s0ˌXG}RIzRI?{?Zz?VXak/o"ԲAO ~۾K[)U\#\i`\Ѿq47\cI%,QrIJ) i6 n=\B8`,JуTi+$AՀwKuf'(ԴiC31~}0kWH}ԪU뤌S0֠7007&n鴓 )5QÆ4nwxEG,jQ/PQv?]mP jڠV5}#/^c_2通N$4e}86XoXVJTP[5L4w PNF;?'%F,^qV''b D^a,F"I-h ,Drb{х5:Z=[oƥ@DD?1~'M T ^b)S .q;Y',B NyžԍWE#>ؚC|^c9i]AV˧>9STS:KwDҎ*C4r<"QXf;deYb-T>%>E}\U)Ezgs a72EX] XNm M =O U̋nH:5OdiM|GW}wժU0c`,F!- !:9m2lD&Rh,wCmL L'>GD}zzz@_.KqRVb-GELms_E#֊VlxġW=+j^Śsp5f1CӚ9 73q0\58YanioV*}:nR0:r!D t .Ua&Dr"zͩ9ݽ{l@ZjU1~,huXLv)eRZ`8l7b]0pzJ[>3[0w RBwn] _ï3>;ȗt| ڽĝX5,;n֨B66m倀?Or㘕3iWU{nO2V Xf=*c )vL "v<⊹Aw)+Z}\JUt=nb*?H[ `v WW3 sx`n%xDUϪGwbX1PKi[U&ڗ/1'kPLvfqT <}*N>BZj}W8?Lb]HZ u5}ZNJ^X9 3wx%0+㬥ahEz aޢA1U.A>Ї'c֘5O.nb~mY;ZBPt5l*AbOn밷&us`RXV0d2\tHw$f0`~9-E5 *Le16^ )6ʥۧ::vw;&џ/|7CpV뭘~Ք6FX eF ؚ|siQ>umo^ZzcXOe\ 0քk;Ȏɖ=:FV-?yZ|4}5\6YУ-z>*,TN$Lty*±\dTigE+&2V0HY\~s^-y :>==O]lXVe&߫ccHi9!{5Feԩ\ \GqYLxxI[Z߭Ci`;hڪPZ6C^&ey]42lFC5]6zil@$Wit|cDeKL–R-fQJߪNZT{+`UzXco~X)+'|5bZɕ҈Pe<=,uGFV%_xӬhV4Ƅd/@}y;yH }×| XǬiWU|ڄgݧ:T XNg~ ʦ4.J;Ȼo]ᘬ%)hN26%[kʣ[i/L+گFa`ōw Ao0 tnn3MhPbDbow[zNݥ8MQ" 6!zvRLlh&JRUR&})NQ*:>cCCXCb0~1STZuHݟ(b1`U+F<ƌ'4 ^DDZ}pYTCciiw JmҦυM!q0 ΛZ{䶔؉n|E|X63 9ޢ<줤+5PFmJM){1Z2Y*㳟Nf}(`f1wnRW4OOvdCc@;kw,/Ҳ  ]я^$'JlnKL4iTcӘu*䬶wȬb*`:6/%,'1ԥsWTYeNcV4x j M߃'ÉyOBbnYޭ.3R+rx; |UI.I#(J'y<{zŎ`5;~{ :T:V X*c=ue噸6ξCFKNYvB_ qȽ U5U:Z 3430|p>IS lww+ }\'*rYx ^H}>iqO^@3ﳛ/kgkGe!j=>=5og_GoIғs4TH=;)MNݧ17,ЦF E-0wawߣnWaJjsԧТ4ʠ4AA7o MÇDReא%ߒX3g?sM?~ywfr⾮N!meUj`9>[7XbVT{+dl'o>BcQ4.D#%/ ÆK9Yo|*ln^^(X}fJ)ݳz1z0 %ꎪ$X"oS2z8T(:[jtwu՟C(?T~2Wx/*|{YeZfTQ: &mz@tB1L$ņ\ذe< |z첞ݭ7Eh2J 73"^U˻]mFZ9K{ ^;y+#l5=OyL9glZ k:m>t{XNs *.$?IO ̸Ø.ݲiLø-a tg~?>Oy@(\6FҮ;ECTL%dsS܃ƓN ә9sxN1}_~p Au4+XoY wW6H{BViɏ,P4Ha]: ?qegT3\*`ժuLmE9핵$1bErObpS+zʳzA2bЭLOsKi֘H8uآU`Y2]tz l0k.I,l:_twzԥjn0Sr$եtp><|U=mWUE'!bř֡BfC3Y.Ț~бrWFUK.uxKS ɿt€hNV u^ϰKD-r0* C9zV  -M{A{tC&NV:U|ELU=@UF Zn2pHz>ܐ˨1 qUVw,h#qdŁRWB- -TV&]KQӃ򩣩DP-V1Ұ V&\^Y4w?RV6a%\ڭ0th>r@Ӓ S*g@h [Zh5kT/uU\GVYa|P) U3T1=[1yPN_91>_Ȇ_FĒAvމG~=Ȗ!̬Yӷqgлpط}  paƽ]U!' 24# p$ccI 0;bM3#: tE9eғ霞Ki*.]-R!ۖD0¬=.o(% Z GеtJ ihN[ CVWю.,Ct*+@v@@j~L^+L1|0˟xv-f]ithKtZ^UKяIp ucY-Ak]㈗ةzHK@C{-ֲ x1K\l;>sB_R5FþcQRO z-|本/L# `apqm|~~~wz8cvphVq_ W-JIN\$+[-3-,8,2=fҗH]}簾ֈ8*Jv1E Yk8sO%o0#:onS@Ӧ: Ub,i;m8(Alࡕo_W oJWp_~z#:feG$_U&:j?砫qj$6H]a ($j|WkiWv*rZz,#c>qFR1Vk ɆL8JʭJ;Fe-(PTX % I <0Au 7X[0/I🁏dq𪼹g|S{rO+9ǧwɖ)zBx!Qaۛiz8YkWXW@m"sYg?U#E,nE:(ǧ~;H.alo+AUX,|EugbCʛI C ^zH[f pl Yx2qNu.2b9s*ܬ b=hНaO[hUaV_gX.98Ýa?v~Lk X*bfeڝZyoKY94g,t05-KHJ t*t>& TMf׿.H,~ ϩᇤWLp{g=G%mUtk2JrC$lu*Q*-Utz0SRfpÖUq4[J:^bwX XXYWXa3f `R67ߏ%TӰu,\Li)rƐJ3VNɼ2>n)@pX(la0 =u8;c Xa@xmV$ĘTh>0!*HWdN)rNe~H8vHB}p[Ζa#Gv 4NXXqq(Q]E ]:@S,6h‹an,Su#tbBLPgH`_Y}+1q,Qr =v` R "`QDj(NBp:b;%(NRpGǴ9N]n8TRƺ(c.c!ey:cQ=HUb?KL}.ͮ\ipOmhgv8kK ӭv`u<c~C@&~-F)}MfKe-[n/HZ|:c-G+h*vHւX5bpI묪m*{ RҸ%Ƃ X8f.D|YrJZUć*Eŧ .e/wn˚0NW/-E4u!Xh`pϘ)۟RW韁oo  «|6\j&f +Z%5˲Ec(<4k%[[D)V_c8Y?t.34^0I,ƽaUݣ:wmWi[2v1ɂyɩo"d4qsiΐ|#P7ỢtAW_ _OCEH3SleI_հsX#pKeMt}\iB2m~0Myn@ٺplbt[-,JZTRHwfaW˜XR98t{&iXjp{H8!6Ҟd$^v.1҃~ .Ah"7|>~-frx\JBfVJ5V1 *-,a U:ZD4nFhUF-FcNzs;D,)`i(fmsX8f3Gb$ATh ej-bTYX6d*iYx*g<C.~~'{iŃO+C=;g< Jjիr>ѕgsoUպDWh+R(?DV:[RBc U)[%_]bxs*=\koZ䮡quu .m},jO#4A kUyNcikY*[Ȫ!X} -s3j1է/?`# qB|FtpqsS{g~Rc?GC,>`7_^:U_Zϥd6f1(G.;ZBZ|Qi 45R: AAH&_9G V(]nE,%k]w᪲rX?P};3%V~ߋ)쀤!37Q=]}ϊiUy]>c7c頠Db-q߁̿5(}gx@]Fo,˅a$պ/(B{iqBCk+؁51.᜜ܥt*`i6u]9~=]D:f 5S a3#P5Y"cU-!`=t&VeXhEN fXۢ_ N$Sa~ WiaWpaaw$wL Kze{('D3dNqy+.qHB蹬&ESnXNXO˄=?#-,3b NNN^7AVK)Q񅃞jGjR^܁H׃&gݟËif`0)ݨas1gj.s XKӈױ8s< ew~7k#Z{IgmsX XP.. b͛-O)<->ش =J4(캳'Ol3D%_VӆHf}=̯`>|xyy,0TUyM~0!XFX $DLϘ ^b,:2ѕ&[qi#ڧZ e{ ^PG! Kj˧Ϊ)`iuR֑ekKU )Y"cآ+]5۲N)#r-ZF`P6[<0bpϘӜ4Z{=#<<הQF\Eՙ'=Wcsi7RVh}~JD5>v+\ QVb{a㕭Ab4DAZ­0˗X=WҶe,ސf>Af`e^rbE`6C hV 5~+`ݡN 9NG4ru>8*~X^X7NegR5a䗓 QNmgqZC3ltTҸ[̺*q:mԯp\Z,t oyJ[e\EÚ}:֔zLտE}Ҍl0La; xB 9v6z-.44I3v6[3N09o/4K{AD/pÈ"Qxukc0Pf޸j8,ӫڃ!}S)7^5!QK6ró Bv~ `ihܥu85pеQvK[.Y)"NFeА8O3-DS}T,b<+f^0a]j=*}^ |M?RbÔlb"O/z /X Ӏ*e%Ѩyfl6͗*QV(;dD^J~ɨt&}!>} a.M`<tv;ޙQKC2 'U%Yv6䤅n?itJr,2)ܘ}2oNR&RUJ3k/L h !y:@l|:v,;$':4]b3TeML[B4RR;VgdNX77li,/x@+t3za쀜Њrfmp9fP8 c:0|x>ړc`k^|L[|6Rr@.%]jKgè+G~ߕ%ԦҦ(9Sz!G?og~=L 0,Da` yw5Wj,kaYKju#ܰ= -.V C+W}~FxMy2 [>#VC( LW.kd/G 3 :k\X X+eu.TY]+hBJ&:-Z'U$} opIzH;t,'eKw%ٔA תޖfdFL{L{L-FDkL>6TmyX\ QsO=w/g x.N;/:V72VAPfQ6r$$03,J3;jΩQ7RP[p,,5FF R2q1Z!Xi2zO˳&vɷ]ρfIۨ< |IEeۗf _/)==vnΒt'؏0`>H} -+^m?@^lp61HmN/gCbq̈K, 1ь.٤yeO'җ: 薜L0(QBJlMW(`i\ccf) +3XtMox1i=iWަ;rzӹAW6I|KSPL|u`Is a =>zFBFb 2i f`;}DgD̈@ bvW9AUgwER%]c)s'Z̃ IDATe)lltHht0R+V6, ;Ĭ딲>l-hIЩ Eg{!=7n{ Lk b45|  &p*Brn4cKQ-)w%QUUKl|ڳdܷ0~~ +v?ß@~6-+K-,*ƭh(ck6zouujIYG8p3V/ [۲g83&KAbۿMYޞpU^Lr^c\f~~3|t%}SUa=D6qP拲hő璐|}t @*6`+!5Ik&TV5Xd4n,gn*8RnnĨ؋ TUfRD+Oh\XҖY|*0`q@'7eT-;&rle*"U~Zseur'`,FWAWmLf)FVlST 3ъ,6Lʟc_m=+UHWf44]]LI $N',4?uzr>KS떓@øc9i*UIi7+=BSi0uW8 G͋+w2GR)w҄I*|҄b6†e$2+3>`͵\U9D+ThX-]vu΂m.T444nIZEc#[,H3 6;"~[GPgɬC_RLKgQK ^IrzRĬ@(Z3#Myupu7 ](Zi|\|]>1Vc85tǰB%oSjY 7ϯ'Ob+c/OG{b I'^cF);l8eۗʈ 4KXNbu>JwzɂӜ+V{CL>T 3|boҴ ^*qُ׮[X}]uu*:S!LF?!$D G}f3*KsN!ʖ) a@܇TeKJ\%Q`U(7Deє\!lp3 .>pշtિ'S>+ޔs2 +_ۏZGCKN[,K~E,StQ)`i4c=Yb[1VKKY`Y xD͢EHs9;"1r&,;OSoV") ք453Rq*F$39$J nǽŒÖgv}kU6L>WU V80fU3X))`i4\`gc0 R!hoCF@ʂ!%@:x r+*G1#ylSi] WEMhʲQBW gmK_/q8!qB"^`-)u%EZ `axXꯀ}C{(`VAn#*'XU]q/lŶ?}5t1ffC U(~}( b"ca. ڬfxSK,[fxHJ#ܕe-lE[]PjU}QZ>q.آ]KYYOɖ“*n~YҨzh` u10*,,̈{=sAHN0z,vVkQj 1R},B9WtUPJcf]N☵AA*[lߟK+'8@x`A#ΊǖDS识.C +Te4:o~Otwh TiLI"/WDz8VGX 3R/B /}9?0ĄqfY"S<&bE2AN}dW 5,7 G[k3bv>VM+EKCCEkNY8 y$ ݪ,42tODDZw`G\j3$⯚C_ [V,9PVt-Ǩ̠*O9tcUa?Xؐސ_ZD,uZ2'q2/1G_!~BZ_zWQ(\ ^2ĩ}Z4U2VиjIakMp*Kܠ²PnS~5 *3sjV#hNG}bY (2d5˔P/Ǒfk%Y.og%~>Myd0{K^D;'/_F7F`Һ{JLwmJ -Ѫ/޳?)`ihuŘu*MH{ҵ~cA3nȒ;VjO\ѕ/S!TE ht+6\b RTQ-l]]m(4yHMN0ŕ]'Yܖ|sr3Uf&vs'1*[Z\SF/ Qq2crl>'؏;B, {Rnk!i_CcAJAZ(@Lé$*󚎋s UӦz/TFYU%D؞[\K!7|Ewp+`eoW}H7fNPIBڿp8 Z`F|% efE:UY; hX7$e:m.~G[7ùzN˜`Ű'bǜֹl'A ZOR<<B(ZR 1#i3*jC4tpy#ߗ `q/h T˿ZxbaI%灟w೬5֣XB>3[{S `?XfdKp*7י% Yf~,d b~'DŽS eKʣm cnӕcdUpG&ZxK\ =d%ʁ#9MeTHC9BWmeQh(q#>}mef|>$kߚ)dH¡?Ԕ]Wg|-IPL/LOT ~jelP~_U44TʺؿiyÈ74S}B ;HH]:9ƦEUK,'s\d( c` Öb*O&/o.r\Ual˖8hI E}*'f@roM ~ӫpQ~Km K<,s@ߕKIUdGw*ځ'23r7U#Y`\yEІM2x, ޜglA*?oIz D5_V;́ Qg-CCY/тvжU~̌k]ܻV抪Yl5%Yӟ0=Z^M9,YMal|IgqZ`h݌?$-]͐ᇦHTHoN*~J->O vDU\2(YU444n$.fMmf,zHG[$M9pr!J/r:P$weųz%]KuW"&\OU*Z]Xg %-Ֆ[v=+3+9ܔ"Q* dW>8{Y ft̫'DUAD4iN~鄲-lq:0#Tdղxf q1mYȶq0Ӗ j+sFJMTUd ݣǮXTh\V^Um"TXsB&N>>)gO%D>M+o|,*JWq_pIIU~o5Q}L_TiR X+hǬT444FdO eU?-(4قiOYڅWV|qBW⯅[͎[QYi8cfUN ߥ|ZCc̎Sf]3yuM4`g,UK-\Eqg3%sKPL Eϗ0DKCCCWUutMc9YKq\ΆDTU*З}1Yv9]Lf~ qMf XOX`ăjVUi03\ːʔW*%Su+ISж؄UPr\Yt#Uӌ-%Ck:(UK[akRc *U})+OQx]2}HU.G U&}Te-V ȵ*6WgU>ُFΦ4ZaSX>׶>S7z}>e(矀twY.*'Ds.kNsIOgVm}(`ihhu0`HuկdL9 Y((ffXab)G@RcU*a-qaeXlŒM+HJe!P88қ01آ&/}|K/VE/y v RH˳_/rKUy|=AɔX XX'æ~Cк,qd\1i+sQnAUhrryӧ?**OfkҪ![6q%Tі/>}ԦSL5z$v֟O!/h'ǺQMjftUBU٧ IV6MkJ\`/#qpt%QRZ[+s)(2x m$1Xě9n O,dmB^SDj-Q+v2lDS ]]e!]KsQCUa=??Q~/OyB|+=?m(}/F Uи:^81k:]=Plr嘅GGwqRZXiۯԮQq$U\DΊlrЊnRչ^1ĔK?K}{3F@ 8ngѐB˕V(9h 2b:<دm] KFeN`B=aK6muXW2VZ`w ]q拄\B钕+9L"m-$ Lz|"$,V$+eE#k!$k(MU\9WQE+BUXYoXiMc+OBZ M{esj])V~NE(7.’jWcVd*bJd`Ϯ7\BYeg:`ǰ)k\Ç֖&f jVG?Us9  K}Im)(Yq oqόU.\#,ĿZѱNJIaNvJ4꘴g-#& E`o-|h EyR^-(T&:i/FfFE0k1;Y)XաG BCmwjΫ -[RĪF*`ihh\o'.KW@QH JPGC<2}ָPAaiJtXeO^v(ai)cIZ(ePeeb[`ɓ{n%HZ ̕O` AcDXx٭*i!qIN+f` #Dբ+#AXdQL̹*wncDVفx_M XXs1!=5nK(id/d!\UÇhW&Mq_v:}ZTj*"RV`\EqѴ {hE|n0X'h,,JcU͗劮ZQ1V(s^Ija RNPKCCm*oTg:\E]DJ#BzP\KhTSn4,S4D@pתn޸SU9f偟&J̷Z~2m VPjWf@2IJԍ'pJ,RPBq5XeDی!(uq e+NTѕ); W~ IDAT[k&8EGƪ<-+:`ڲW;-ZeKff$ 2i|Ϧ@+1w&(AU*tz򰳺PЯҪʓ3̒mD i\} W$f8hTt5VaV;==HTu0+_qHlNRL:V$H0K+t To' ,!窊F0sQ^x  0H>uc `iZ*i&P"xh[`)TU~JEJl<l?HKCJ㑭ݤӵf O[F4>!:&w"g;XFr ]鄓 ֞U `'I pD4^ȓ;lѪOThVN3Ǭ PfcdRLC2RBqՊs҈pR򭕂_;@,;{sKPI׸בceJdKj>!!xcX6C"-v-V TEYKڮ*1RW=XnHKaUi:J U}$T[RxwtqӘ5XB2 m!d&UmJ5; |c54 KDթKte%s1+2bD,HH3~ V`\'8^?D54+(vo}B*kW12}V=)ˡ%jV hZQ`:Gֳ}<.WY1QVĨ Lв*Kd&,  /Cl@R8/*`ih\V=QE~smNUK1MsfҺrj2hFR5~Lr#>״Tr|U"N[>GNM$΅4lMmGحW8faD!V\CVB*}y`ncDd`JBl%Ol5%LThHw8쯩 F4YBbH}Xl?1VG mGZ}ᣤ͵Qxwq"և? "z?9>Q\I^a"3тTb asDxW38NZv`_$TZ~ޢ+ItgJZuj,ICKCKb_p=X(isZDP$ꢦJ) +y>gē5h%bVK COzqm|Sð:x CK2f+Ş•KYoe:*wbա\~po'."Z2mnjTgy9W`hъoj{NZI-"Y9Ute}W, [ŬmYz:-cWw-2V՗3%W}$@dÑM9 Ѯqg}}g9vPx-CW# ]ґmK\ MK.R^QB, S2NǍ0k5$↕©XZ%Q!z=WHQa202گs{AfAj*x=9Jobh߀=A/xNSXz߲-2f[!b- $t^sYUIյ& X4ҡ{Ը4b%\k P%Lw=bJF· :cxˌAͪ,, qƚj6c*jAʌaI1-jKA},m=Uo꓃aP!d=c?WH-l%?L/VWy1tNu}QxD`%ͥW8s,, wXOm>Kƹ1kZZ4ll@}ctO.W Cc۴&vVQţ7m{uBߠ4a8no XXta<.f`֢E٫SJ.τ[A 4>TYҥ+`6_y+Gؚf\>Vӻu`RPkoXl^81V P5<$xt+ʚ-# 0 m8M+*l`y2K#i֬Xg}bɀk!fU\U1VZfq'_+ e%-M|:g6M<7LWc@S1P8444+yvEg,: SC,ŎUHTYm(hUǜҫD;T ]pï%}'(`ih,n}<: ;s;ICX\V ˴9@`5H,EET\U1^p$I*</3ӑ'Ew謹*ow_)@ԔIڸ6f6c1KBtlN!o8H3UZ~y.k44NF 䏇 EIk`,D/(fs$H{S2Xt ;u)`ihhS6X$m5fqKd,O幤 aP^FRPz@TQZ)B{w"8 MUf,fuQkP{WL=qXpTTg*9QM6_#Xp9*7d6witg~s: XU¬BHf 3%˱H| K7C*;_M$Q*Z*S`_(#Gl?&!yz0M07S*c$H;풥 Ԥ L IrD貤/"\ƺ$% zO{-u׃:khܽ#_{\[O=\#eU,;=rM$-i< 츑uO4CHGm_OD cݓ*u}yUPRB{0?UuԩzP7J \51lGPAٲ0HçЪ-z+YZ:gq, eu͘ud7EƢk,7dvenZP,3SNe'ĊS@["i]%!i{XBKCC\u farmO=!#q":@w+SMW<_0|50b Y@\OK544&q\I5`:Tm ќLڲ*R҂( iZV}fꜼ(~>'|kr>n\?,wMo(`ihh {khxuZ|)3\gV&oK򉥸M%*_ci'.Z_ @We%}~;|')B [Ŏ.XV?6QUeXMC9ِa%DeYu|,Kʔ'fqQBbi9jn>q'$%$4Eqx|ORV5W ctEj[AęMeXxȳIʪ KS9De3~(6NcNL-|xPKC⣾ kⴢWk[Ca"K*I:H,Jġ [Rzg;Zd*,u`,޷鄫34>TZڤYf,ŬubF1RpUv0`%5UhP0 %fҴ XΈ%qi( Ubۛӥ^Ն*XPAK kSטɔs@\e6;+̢iTc@ ] e: S:wÑ-u=VHn{444E(`]GXhؾMrd@MeRZEd *bE9ûa5oN$t5`ihhhg<]kumY%VX˕rb.&KCqUUem*ݳ*KRْ̕D=cѸa:wUuVM7r XgE=UIěR.:,8m\B+$ <,*;ƴA,E;K^( =NOȤ8uxLpK_bۜh`LIK-sv޸DVFj}Lm?2yw, wOXc\U=w-f-2"FY-#.S%S)U 5ɏt"W);Xҡb U |FPPzEŪWa* xA}sߌ8 IDAT$2Sa N9tU ](<§_KK-Z5XGšq; Og>x>4Lu8ydY˧UY}XrKV&Z3 'R X$fm>7M Ig4aS Kc~T5[՟H:r{0z5[*i(`ihhh/U" +Y%)J!s5P밐a:~ՙbwk'5X'm}].n-Q~!IS( ɒR$V[jXjRo{~>lE.ևߚDg")t\FHPE%W5ѝXZU]`~a&,,, g8F/x+Òi,[ R3 MIK(.ۘUFj'z,՝.W)j94448st92WwK3~:!|Fk[!Blyh5a3'B444A+k`,f/0D<';@MAa&ZJruZTQ D Tl%QTDeDŚw,+,, EkX\D6 O)b)YEiZ')7P5P"VšODCK54446o;xbUT5^4̱!: ؄ݗ3V5З952 cBƙ+WḇUi)gxe`zO+i>xzo\huǾ J" iVf")RdKʖRJLVG $E1kboXF+PҸFpg"J Ekoqhu/fxwQM'TYt#LʢBOUeb,ΰTkb yaIuԖ6wri1Ƶ0OpO2Ħ>P-w@,CT4e[ԁ\0x0AmtKSgAM?/a)4< :?zBDz)s#'K E9Uͤ=ѱ0V hf|Wh㰻_H'ڋPCCCCmkw"fN՚|DM_`cZ\=ɽ=8yCoG~Q*Ŭ[}R۹_WwjʷͰ-ڤm a[V},ᘒ(Œ"VDŽhZP"V5(ᬘչ]CCCCc{Rju eWDBVTCKCCQ IL"PvYE3ᙘѩ|?J+4444 ǬzctY+4j@LMK:ֻvԷ\l ZYU`taP54444¬+B8oECLjvZX3G\ZDG創HW1WX`ihh㪏Zeu8wxbqFj*G#N'U[%N0ǰ;7eA:TMnkhyh/B E`GnÛvsx8+,IMV`=\B9202%Tтz!(+, i7c)`ihhghZ+ߎ9ÀeLa,-2cU(Sumy E1()-̺cRиxTĺZ[~`+ 3kӕ%P) I5 'Jtd3-,ATWR =ۍEL0P"Nted} u0 Z 48S.Tĺ8&iڷsgt pQIF:Gޔt2KH++?HRficنneX`ihhhhpPLB,i0D( $H$樞JMu*U(K*kd؞TKKCCthָ~qk*a`!޲&Բm! w^1KKCCCKGE]QZ{b"ծrFd唜h֜X_rmZLa-xWhU-l؃5hWz~V9A!AM]NOk^CgG^ Ze, sfTRz??c+Bٯ0ʞT$*I#2VAx c),B wV|cj*yWN5NtG?h, Vs !ٸtƢ'! mig(}(5鄫g&O~Eq]XxJV4ZjIf(UMěD)-Eɛ֕Q;l{ּ=oX3!f)`ihPx icj^?,fql&JdWSU°DTo%+;, Ӑakp5w5 ¬ԧ\!nmeю0i{wiabQHwAb8v(ZKEAE;\esX8 ;.T5s0 AV:cYTq1*Jőkgxn`a[!%v,QmU-B!a HAlWVm48-kdWj55YVR|Й%Ɠ^>39`ԎXA*V'8īJ ;5 W):h%Zsa V.Do+KDe)Mxjq t ߌBر@WUzW~ ̳s"L o\;+ìhzA4=P) m%Qj?O5Xi h̪cŊƭ=㐏%b71ĩd9w~~Z:[g,iBP5[ZXd2`utd Yjp Υ!jcYrGmf,QB h'Jo),f `'ݞmάIѶRZkU^A<Z-O뿃eIٰ -R}sn쯊в31 ]!cR2 Sc Rc0%e2q ZdiܓZ:F Ρ<`AK?0b]CĬT*ګ){a볅%,l֩!aqՆhŁ(`/\ -ŠE/ċO,A`w, l)XscWr Aj h{˳`V}]k 1I| ?V2tf1P `z-o}Пr#1X8?{&?AC⅄q,IK6pK086X^?o i]R!:aVrB6S\$BR,j"MV-֬*SX,nIZ`kb'k"Z`rI [ՀTջt8ֈKAСZ|xcמ>SzA8Thr!i 6CPYf5.Y.䅽 3o%X$kV' ::Qh59=UN0J! Z%8By%R̅ɖS |ϮX,!KX0 G-Y.LF3@ƿSe [['gR6f{` $u-i|l,Z 7b CP~Q1TC0qka% 3iIC`pBnXaUS.5.ܦ b!!$M+rL!Łeؘ8=W-QUr!At=-ADBe ,ɜAm9Bx!81X[p3f5A3/S\mU=,N~䷐Ed0+׾iaѥ`Y…13ULܑI\/LCR)7k" # ~G ʐQ^k >Dgxܚed|b*S0|c6D&|cвc, +62sz-# VWcm2Xa^0^ rrAZ`]+tp*`%A]lL YZd1>b `6ޥI°x 6P4,!t7O|1*s! YKι f4tM4 s Tt̺2c%+; H%j3QًSLPZ'نíϰUR[y 5܇ .B.4#Bw:ueN6$K*x+8+ĐsAU>h5Ե?q&_Oq\3;'J;EA.LҕLYsX )Kȃ0h\fcFE-b]:D-NN<rM < ,4zZTZO=s+ʕN2v\BID!0\Q@WIVt.ͣLbۘ*r/2b)`AДӺ#tM=Xs.z-؎ܤp6[|8/gY!Y6 %X.1{Bw K,XO)vGt)#ToǢ\5NEXMhGo /{,4Qj+Z-1-ʕl] v,Ag`Z[Fl],cqUplX'[wql{XC3ɫ|r)N|>ɫD*erf̲$CW2\Aūgb߭;nja(Y8MY_!=K@oIQV?t,v> {߶Crk ?bǠK-:U;^V`A=śj#ሣdp8']',b3ĆE$9)1kTYj oHrʆP`oYoer`AiƢH)kSt,Lvj3(BH /!oXaXYboKZY\UY,b,`(ڽXNE.C‎%J3SeJ= 3i (&p}+)RXAY` 21Ǭ5WJٱA3\ y؜l'sqb$)3~:|DBt *fmp9&s0+eE,ԝ7j}v/$bR<ח@x@)+Y)%jƬټr+ 2L cYrbA6k' 5䠊Xw$p+syEĔtaƚN1XABv2WQ,Rs&F)8f(}1v UDR,HXCuI4C IDATAЛKX%0`a,4n5"ՔE1P.`OxbIK۾ܳ3]n.N52%qk!?A Y?%2Xޜ! UJB cXIQ& iih<Za;>*x0%6U >c%e'-'2Ć $tE B$eHX$zƝ85Qۂ1=( *30cYzEpnļSMŹx,}U]C` ],QS.]XAX cĬ*"{ڱ5ɆIw\:'.qkx,[{!8tL< jc,`ǬW1ϡն rlah=JR^Co{mD5?81p|݂DgKY~Q H*}A0V3fB^@+Y/ 5)XAPwJ@|^X$ر)R>!H$ >QpL*H%abyJRj L`.>)'uj"lsܽAP78ȅY&g!©>Wyq$]F%8ӛ+N},,=d~,Xcx54 {>+ i H&ү{3r+3QР1ZlxRufJ{YXAwՇ 0X"0%! ePORUJ\uR5WЈY+[Hbd m,!o+|Q̆CWAXHiĩ<[XXؓ(\.& :h|q7;i{ ~,6 G6R9ɎļSlF 3KR]Xp0#\41\\ w,&QO W#թb, +г(GT! l (ct5KIh9* 8'E^!Afj>JDʤ¾^0lg)B Fp:1!QdîM XyJ޲29HJBYK1CH=I [W 3 ? >XA1Vfy$[ 3IJXw$.c Uk Q3f\4#'' G?%lfmR!KDqd 'Q.Qš +>DT嬬W[rS)7`AAP}s_l(O!\Yig^:;Kc%*2H"X`AA7FQ/D-Ĩ%YbZl FqOt:V9'dŔYV!W- >Dl$S$lA6Z-q*bv)'y2/pJ&ICUFq0 iaX;%z/G1,qtU.H+[X/CyܰLH\IMِAfk+~u—\.~k$.f$gfOJVƪ-;hBW[5W0xt:P僣1NePj`AAб\uQbg'_TZ⪅-I\7aa*~s_%y.@`2 5XAt*Z) 8oRwJ-̒c%`.^U[;+:1l3z9&AP?zHU."[$ kl!6Z%8, z=tŽ p mZ:]-A!h$ MB tq=M 7&z`AAZh+}Xc'FZ4ƵCl(GW3Vì TQL~>0z A 3ѻخXAK;0*Ft%3 oVxddR= _ gހXA1upO[bƲS j8 L25m8@*$![s> Pۢ)&ЙK N T6K՘%;]=wA4Y)V+ @W8!V[DBY#2Uk RNȕ_8#|hJp w KwaS($+lZQsq$;7wYN*_YlUthf 7\9VmD_c,ʙƀr윫 W Z 16-Z9% :IH1zR9>욄891XcSɾ.jJvɔj5bQ\zKv/V[ K s'"+\r,luoDqC@E[06+$y_cf5ǖ >]v'`Efe32P=VIJ ƀ…0h} ro\tZ"5 Ǭ^:cQ fmš׸`UK] EB4XRQg-[I9bE SXA<[9X;8ƢfaXg\F{X-RG5SUtwc ' #Ua,.){H$m8)gjIBC=uQގ4 AV`}Kh'cBbWu^s=WAA侲;z XAtƂ0y]Hq"'@U6VU0Iѕq Ӂܢsc9A{ )|һX [C9FQ䟶-=IlmS3] 쏂Xm B,4rA56ȒXE ɳ9ﶕɻ\ki[9MD_DZ腂 ] E2_ͥЖQvvaSE%I <''=/*@$ ̂ǔR u`V(.LO%򹠫CXzK"A)Z}߶s=cq-^-bCbTZs-b}>h%qc, tVtuZ$PmZE-&tS‰[0KT&\MUɖ`A@W՞:RՒi8Eg ] [ Z& RNXr8 AMw\  E$ξA 7S% YNZ9`A},⠐#WפZ7e5dϪ܄ujs AAVK$kPu]1Zʼn>86MVY dRVCWUT%UJy6P51_aRPA)tUܸ#i!bk:`Z bPmi`;3xk]\z"`ABWɎ?/v5VmBfg?\fy+KNoxdQ-γ V}tung368% !l؋s,렶>98 VF~Pw׎]**z5.ΆUEW<9ORWHA:YjJ*[0J³•a -/Ϫ!x%+AtuuXB+W)UUI!*2C\TAl>UXc9~ȁ AWk}Sl`A@W}j:eW'_$YU%R"TlZٻYX –GaQ+U.P1D%1V@̸[x; pUpXo0]Nt5 P"WBT$5#épe?nka`A] e<)Z:팥Y C`6-\n{" zJ8cejb4=1֫FOEr% K8:弁VN\fBZgj']d윎D%^m櫎W]Y| a0T,uXd,AбhuNЦb\Utw{Y+BTY*R`lZew`AtW]O8ъbvg*Ms'n{c f/)=.+rn876S1S<e%VƾDW 2 u2c~w7TGo`/Zw=+#372՘$MfR4U6NBWnrΏ&hBYݫsGUc h;bX[<Ŷ?Z?(W.1wdڠ*ъ,)K dtf] JDK :UC%W3VHT_OS(Ye?_sR TQ HmAE t]YEqd1^p>ƌ#N+ch|6bWA{hRr.,*@|peI z k-[_G; 2ŗ-d+J+4;1`[IDYÕp y TA/pj8m!K fJ.k&yЫ T&A jpKBjfa賓H]r R`ؾgy=fZwA'k݅ hU$A һ!lyUB4ЕB jP֕ždmA&wdՀVoU,zs<ٷ;⑑Nvfof+cA(,uNny| уXC0[Е`A0ԖktuG=I:Pe+KN]}J)LA6pZfh&`s~5tK 263 ?X{kVI' C1>c[ʗ`+zAhro ^ʈ]zV [P@R5y7+RJi?kIW[Z:KlWs\lC=;/^Kf_.JT΢Ƃ@W]a~u4_ǸۍVʡ]cH{Q}Z7Պ8 IDAT7N@/ Z9!BB6jsX%0.5* WUV)|eHWzJwNBXT0V>V%b,=h{Y (0P0*peԟ_s)$p||eQ]; Z|MZdcՍtGgq.QkP q CG\`b }sY*R3WI/kj?T ]*|2V8ʶlD^Xq $%yeb.GF*A\oU, ~]v]t5j,qc2`BZъR! ϸjϲ=XX25/ԟ뻉^ס+ Z+|02ZI||k)gd/9Oa&VE˅:;utMTV,USkwҕ`A[!\U,?\ c 9W)6AOg)\HKD7XAw73_=ƤZBWc cqIӇm5_Aޱ6VmjG+EJ%̒?cN:vz!FZV~XtW!)S5_| n$ϹmR6JE=8 hսXfg, ]*Yk_! :5U|XRujTynH'$_jn-]%/`X]veidjmW5>W*l5W9$2ZQ]KvtT/) ptWfDSlBbʗ83Ka:]y$AʔeIў8W pto2 sx5>tc1*y])aU TeXX:t RE*Yj8`A Z5|W\N) |XSrt'ӉS_R(&Up6ƢRpI޺Z @Wjװf>l!DwعB6X,]%*[mPe`}ma<뽓!, @W*WciW῅!Q٢Xْ/kk-g[[W"C.w5b t éj!Z%ƒtUU,tS6^X",{u&!K9?dЅAѢ*CvEŝdš7 [EW6WZF"/uu1ԧ  6Q.sxF"QV vn˭"#?Mo\ t:hJ) U߭t՗U3]͆}I)0  *UJB6Sf P'{0cACʈYSiP4oICl+YXrr$r2xX hE*ZR"8%NZ\%Z+n*Cg@WUۘѶ$͑pmb B+:]9E%fÕHWFҒ(ݟe/zz{ E*ON2QxTHW Z95rTEW&9rTo PXS Taj tuZLWSzmX%.Aq5`VZѾɃEZ -w+w1 議i?!},]Q< ˜*cVق9K|,t XPVgΧd2x9B[B]Iʰ<+b<s1!% A/C+0tΤY]-Nϱui,U.7Gbj)z(ZeR(=\!c}S WTSgAt}1_],GPeD+mWY:z.*3eю;`p*d$Ѩe X ~*V9NFJWB9tfsDC2aXPN QR.v=,cVG1𼘰Uvo o˕b[+^ yc%NW=XԶ hRRRPj4VZ%P5P5=Y*,O4>u hT[tBSzz-f2{Xt"t5ռ;,V+*1+ le6m9ٍ}^e, |[+;fB],V+U@bOƭخ5eHsYf jc,ŎU*Z,PxN^rZԋi)D~A\T][ֳ3$>< ]-*!r= *EZjP AViHRc@+pЊ*L0h,znKBr`kV]ً4{[@Xf) A& tuQa2mtLѱ_`mAXf,w׸W +4E*x阵vRAoEW|ϋI|turdk T*Nek㪁qr\dt6J(jx2Md{+U}*ƘXol2;ѕ&ToTeܸiB{$e4 1iQ7»VFNF;x|-*臠 7{ЕƸ' ]`{[}a4z#RyܭçU/*,qb*rc12r8a$ϠDBUte`j>>LmN|?ң"#E.)՘)nr?ex4eaX,XCسbpUZq"m9j[x`A7\dD'Sy\ WhUD IcIčaFڬ*R-^GUmk څ@Z%z(^3 FS ]Uq2ZQ.*dM^*֦?hIP*"X- zRjL璽zЍWc d@9锣N+T $L+7S:Wj/UtU#m0 svХ]jPU;VOcKXY0'iBoz*t^FBbFE:pUsYC뫊BZ2 ]q1J0K+AU^BXd+#N|E:Ԛ}1Um?r]]t4 ih5V.QƩ"]IXĞ^<"7,骊`P{]a<X.݂]՛.tFbl`@5)/X\ U,tU]:Q8'="}:U_fU<{\$ V"8h73Z؁內R iɂUqӕWwj~B ƺSWXkheW.J2\H6STv2`Q +8l"Ѝ4U CO hE)ԎNW`e f"Y⑬Y4W:]-7 骣[}"]X{h$ZQp6crDҕX| `)@bsJj!ůЍL)hՑ~_3~}p:(ЊWøxc93WU%a7]]ι,Tp.1%xYzm++ Vq5neA$̜o_BZt5rF6hE'q?]j?-X+Ѫj9Х}B@hUDbhED f Jh5~͖]Yf| 9v$a?}oDW w"S#忮_eqJjb]ƕ O^!Yvr*XxJRgX h,@]e݂;p+.334kg*}tMJteZ=N4^aYN!T,[F"*a`u1cm65b>֞is@WX{cֿNϹ]_F6ڃV](req5%KU,ƭø<|'JbՍm]#߫+Ôp :Fñ,he+=+AJ f7pc0|b"Ts-h 1k}l3.c;OF}#]phkU EFU ġᡇ(mcQdrHWY6l 9v+R"SW~m3ZqUV:Qb"Mڲ'֋%7fe_]nozx eh5޽v>he*/ % BRbvewڹ1\`V f_C+Xqx^{>.g`&FWǵ3VT3Z)t˗Z̾-dK5g#8f,`#PE F*(gtX9XVNw 771֪ hU̘"8Z9TQ$ʗ 3 CvʲQKXKW6FJTx `wÖUhW>q6-ḣ3qU,*`BWxh*\l;v+GWE+<rJݿ22\`.ثY)0R]d2+fr*l!VC,\UZvo_t MwNBp D'} ]UCm`3T)C4ъZ-X.XYl$7NWۖJ@./͊tE,V}]W L. ߻u|zkOƓ݅dt06`r!]†VcLW̴\*Kn;#9Q)K=M8Ul ֫ >y-ec€V%`tŖ,ZwSm\mhnmH]* XCXtjZYtEڂ+X_^?[ʕ1|՗ѯCjA} KQ! ]Det9n(c%%giEHjSZT2P3{]v Lsk2^K'W+sJ}tjfKTsa$>z*^-d"`3_ߙn,"T +\G|EtdjhY+֩H&i] j1\VXvjSgmf #>k jU.^)1VhښZsN!hP,ŭ%"v.ὒ2@ 0>׎]y06;nڊmPUP 3Rq(hR-HZCTV eU/ꓹJ{W@m|jrMx!\ WnAzRy!.ƋX ]9`-r%f2 }tUU$ҺKfZ{oq_s~Y֑!$1Vqnp  âg%~ tY֫i3QuT_H. W]w>M ZM~|=:f*QW9—M˕ȯJGlUR9% n[O.f ,g0`DԟEW]v` t@@nL+({Lz=&8OtD+>ZsߤypL~{[hi,VJU^pUezӬ`@W@ϙw >720@,դho5JלiUъvDW 9vvҽ{sGV0 f\X܉V#7>tU=q: cKPLq(ޠfa+ThX}L:"@teG+~ ]lЕ}maޕQ7;U,}c2٫tDȟHG+-v_z_Fa2*l }qx)\ 3;ꆫL$ xHvz؀V{U[lrxnk.}K+ 1k>>nY]`} ciUMNǒSiTM,ΜR2wơ^ho!NmJJʳWqʒV~8E*Qn-C1 C*\}ܰTԁiSr`>oƍow8K=LWv[N25=]#*4b1c) :Qe{UܥJc|ݝ _`,z.lSNZ`4 II+wtzsɶ!׾٨}YQr[)Ape;%R/ѵAWXk79#[ F]3ij򼐮>1Te hچct%M<;tyaqk|؇q#!;]}`}_VMy9!_Ţ^)`<(E'iөG9 Zc 7IpJT|eB+W [ i , iNW}]tg?8]Y<٨6c#1v NJZc"[bBKػ7a9-#&3i.b`wm}{tѯ3JF%Ĺ[YTYp!V7 y!ku.IGjdsň+$A;ZjĚ !0`l`?Y~/"eu'մc)c+ף( WX$gY0;j78ȝU ՂSUc)tUnQwo ]Y~}o׹UUhE6ەkXk"9k qT!3 OϠ AeZlkc'3Uk u-}v>u?;dx,tU "ì=N]!omEC{`×6ANl$g*VS5Ǎu8x݉nPn<~𒔵Ѫ#I+kg+Ml%No teRoQn|~EЧj=7 >jţslbyAM0 \Ej6=LY x8>&^E؞l\-WcRy7h3\XW&}AVwn,;]% Co~J?ǹĐQЂUm8*A/4Kr)cUEBKHv5țB :H?cf oӉt<҈^~]}.X:RtiBC%(r`aaqʗX$V3]!Ue fïVY7 t!`)FAWg|^՚9W`*nɜ Raer{%G| + "t2 I ЧVL}W{>CRwvÄ^52m+Ev#E]+)&a_ 3VmF+#T% UtESp(njaz ߽p락GMutOة_ӎmp- c+ZQek,8(epf!cզ0)]E=a_NϴiX!gLRC="psUlohbF<zeMV|rI^cDb4H " {ʩJڊմSFXE;y 6U{8iU!d>:J_Õ3eɘE9Y6U1m'e d? *Rc5  UO~=0oiAJ͍${R!=kڱz/ҕc]rf6rWdcm[_@+{UA{ .R]ѧrޏz= T}549_UqdW_,fM6Uƚz{Erদ(qZ١8J.ŧYVMyAL_s\#l)F)W;nr}qw.ϯ&yս썞] eZM}uujmMMPqʮk"ZP:T /V<U$η|+;Ƴ TE~)q u;7u }cɈVFÕk諸0[G%Ij-( ߍ&495_)ZYaCֆ^pNtEr޹Klܫϵ; W%G_t%ŏ7p*橢{̺ *`K*VHU_ bXÉJV7@==s;@j8ai|%{lKS}qyUܵ歄FU `g*jJuZNc1\CS'"yJZ pjzo0Z{"+`dj0.b2v~ɧ]Kɐss mp%pUՄfW[D_ҕшeA+2,UۄG?lVXs6d` ] jI߮i2̑ -wv@+aT螿;8bǢis}̫h/ *9>Τ+R'z\e$ LPgsoAhڼ߹ o7s»Vf| untC$;=y˙F"- ŞZ;KeʘP:r^r\뮘uM8*>&GBl꜋6\wKhe!*pNNgZ'Qm k>gĒJP^HBuG[}M AW,_MﰾuTv2лl_? Q CCK,+'UVyԣOsίk\-=܉zS/L팪G?eZeQj H³v{<;%$Гpʈo *z1&E/~p1>9kl[QzXoG%}3)^zbO̪3w+~},ټw-aXKiΠk;38itRL)/TȹʳYW5& ;J!8i~ XSM/ö~:붜FӒM~mcyWޛκ8L~> [ђI',Ʊl$}]$IH[m@@K3BWgW'5o]>*z7FX޵3o[6$YKdm/tƅh(q+u,2c-DBU.Γ =6Rs. l{]tGw䱾mc z%]Uc7]9X]Ъ8]ejTK窇g"b9n1lm}eUT%%A-K (yAZjf =mĶ>Ll'w {i:\f[_>a:;t#cM̥^yv&QsbtͻONW9V0'D=6")NSHtz#T/`㿅_쳱q"sOYƲ@t>n4-cs4@R.Y'-$3]d>ժKy\}p.Xw?KT߈g,#b6t!ɧCd6w9٭VF \5kəX\k"_⪪'^= 3btd?lǶw$ߟO)H8΃˚"Eݲea cz6H.V 9>0swm k磔aR9u$;pOSO!uXP {r'fu x:c86u,;W!eUU}G3Ni՘WV{zr-5,uHk33ZiIL6ma֘T0֤!*ANEr4lXUy+֖2֞l'TsaĆ!FZ/7_6ƂXꞩvm)vRp_tRzYoqOXӷQ=զk?,J˭ ;XtM_- ^] NqW|<Ӌf1r;FTK1cg\ {hDaFTH h`I!Kx(cM 'C a#:1$ !N%hGݕV Sj儏8\t _Fe`5m.*r*47[Ԍ\h:RM1tzR;B^o~ƪ@#4wa㫯o|'*#]96s=ArbzÒAg]1!_ݯU\-O&-`uq'Z]MCBW- K4ӗ.J9T ! P7ȡu[OX&a,1K+:E)\;W_]O0_އE.ܔ[!hz쾤TCo#To,18% ]k~s%rՊwL{eI>) 8r5pBW^ t`oב}Z2$? }5eU'[$(7W9PG ]W:]QH\e ՞$Uc]-b{|@w)]4W=Joٯph y_y̺%B xx<."NW L?_t&ZahJ_| N+Nec' 9k엇m߬+P銚KDbIZ&[{sCgq*D䥾󺩬 p5q`xݮ52tcb]r-'2^& r9v"UWZX* yqF]vv'k4U>cC1 `A]/;NGvRw>vt_;]S9eԹlD'UYҕ3ˡ9MeNQXгHWF EZzyR[`9ui]I(':#|3$lHo5f*kĒ`e*c'DUd) H DS6.v]A 2֗3cȤcX#ơ*oWZW ^at9W-,JfrfӍ.fcCqYЩ7%5bJϭH;^.Q wƽOc[3G6kq$K@@Õ^HWdgNWY#nJA;_K1X˾+ŧtѐȂV+itE7+0i 3fLWG5.6{$n8aa tUu 25\X ĕSȆٔnGƯ]<@wQVtL f=<߫G0 UlPƕE%ex@;nGv9N;@XʬC,m.Y W }(rS~iv:BKPѫpeA~}NakREn>Nko"]-4+ɩW74Jdvh—טx3U_KvmZz~XkE9Gb= vR<C8K,t'EKRrVf7;1F— ɔC 3䪱L*0(IҚ*Jqh%mnӄE' Vtiz~Mڱ\tOIUɚ)NSZs4@"sv ]+ף44%"lQOzɗ.щW``݉vUϱvm/ڷ\*c 6tEãv'llL07i(z]$R¹-Y|/Uv6>E*ܚ uwb=+c~,}x\n-o.Eh%**N{9ղB{uN{ 7x#h) D.kz(PWh=N" , s]RNۇ+* I*&/y*]˹JlEH%PJr->G_dxi&UN'ǹhe1 ׼;y C$X %VkRxJz;ƖСymddVe)F_QgC(G{^**U}>3$:W٫~Wu乾hUX4 X7<;Z:{r-qg7zǿj:ĺ 6c.S4^}֓cA&f-% բK,n/t_WKki# V z7ثq*Mu4Πv3tSMS˱[7ݢ*zV, IDATIgKﹰ>蔚>>FUB՘cI55UÿqhTi ]I@Og/VԎyÁXK5%b~\E јkiEO^"鏥+x .hWՆVT:KYBl{P5Y ęvgxKJ%%AUk]qyRգ\=7arC˖5'>Y߽[ui;NL%TXkثb'/sVr]a1Wƕ.ZG/;Z=/!^ YPݑ^*yZ+WIO%Te[,|oh-cWWخO,c۞GFj9 V`qЕJ5&*g;iyeWGӐ$g\ z$j j]gV ЀVbOsIٱfCcrPT:˜ag5Hrm:O۩}]DQvUr'yS?`R ;+֬%n\)orjmz{nVz, Rq"Y L 4UbJqr- DEXc%rDZsY t5DgXc7a* uVmOLd5ӣ&RiF1'5iv}OR1'6,Ip3VG711ϠkJ7k^룯t*U5t,^WŪ8Fܫ@ ^BU1`/z )yj;P` =PTKmPNQ)LÞtmUh;ex#Y*N0L6nK2.EUxX{z˼` `~teaڨ=4|j|v^-DJ\Mi5}(Ury9wmT!Ceⶫ7#{*?,KAUw /KXECw+-1[n/q "._[˕4v ܓJJm(>.B­Qh!s(Qt5g.QBU8i;RB6 v}|f*&e)=үFFJ3K,HGCB [Y˩o~шpHJhjgfX8NoVߗD4"Ҍu Z%#OdO`C_s6*+Z J\"fV sUmafm? T5ʮ-mj*vkcLk|@3+}Siv^3pi:)b@9(G+V_Ħt+/2Vr։lJ h%ZfC 餗Jyi'P/vWҳSX.Nڙ}^-M)k+tdjMDS,}y=+]z씶,R]{dA.M+ǰ ʸowl?djė/پ\OG4oWKK]%aޜwwZ W83c. G\~3ٳtf㮚* |U-t{0=9We> ^e" ca!Xrn) Xr1 /1C𔅪G^yJ4_\5t߲΀AٸQ`mnL_ U:]dp?NQq+u$nVY8"S>\=ZG;)T8DbQ}ΓHWN%D빪=g7ȑf0'%9*j\lFf"]-︂F_lOuv~YW k +VzuޅH1 +SNBudWb_¬6#NO/Cv;9C4(7gj;5RRQ,hC 񽊌 bQ~U8mݕ\KKF;m1?x|7JKxωuU (&;- t;{L[6z\屚Gr#%onE4q77H:Q;]}Ve]]Xm F4թ ʫL<8)ױ?%vzNӘ&Iӣ1~+If.dNiEN!5Į,UzHeIZޜ}^ξ.7"̻4kuoW\U%YvX+=6 l&N 3R>ʢ^ :g7/$W^ Vbhj7 U88$CrX*N8ZY_ 7Ojĉؒ]N_ ӪfP`~|t~V5])/Nb$r!T+es mEj7JHMݘ=ɽ8dn;ΥZFUڍ1K2>(Ʈvㆺ>VȔmʮn!Ub."RC{K=.LjajW+庬8|84[JDt !f?d+g$%X̮&W Jxh?6VHytj]>߱l'j|眦|NgS:}# Kd㲱nm2 epm\9Ζ++ǺNlW7gT4@S]Λ^un3ѻn3ή .4bJW0ƿ~Wp([ᛵr;8mW BX,3lt[޶VEZ Z [-g{wUvTcW"Uu5W-~oj~,YVTp֫c\;߳9X2 )cnuRC%~)Ub׳.&#lNIGAY6焇j_ &T%H\6;݆NK:M_:,4$߿;j7zq*Y\4Wuz&F :Ӳ:U : G.Pۜ3"N.cis 78nߞm;\c]f 񃗾5E;V VÙjT0&X>[{eH+$Q8}4+_UYy,7ohb:c;UO,7CYZuV=U]?.omOj"q,.m]CwU+`WsaU>KRVJ,?c?EI6E[[4RsU X8j&0`T^.GlRY]VĻa' &S:>~ žsj-/$O20}%*V=YXc~D{X V/Q̓?i~u5 *z+5O?Қr浫xFJȺס^Lw"\jw,$jXڕ6nO_fWrJi-/x22N2s:τvS:Kmmd9K n^\!Y.u'mtE9ݗts,Z]&E@1usYxĮ&._/B٫v*;}1A )Vff=;>q%ͦV.KҽJWsR'S$_ũ"V^uۢ~OOEoeߍl vg[VlBbWVQPVU_ѩ+OOV}f2^V-_dNc5&ҵĭؕA=}a嬒[Հ< Щ\V\K=K~$f9}sS\A7*`c,rY`WGN6dyfث!'lք-N,a?%fLeNbgb搻®n,HC5k2s&I nWJfWM¶Nve孱֫j=nNժ9`z_r]$hý,%fBJ=Ab/^i(t:f9vjWƮ̃9|1 vZ,P'Zga+Z}ed*TH_XP`ɧi;;jL n q-IN3W V-۠]A4Hi%.}Ȑ;NVvR3/n"庩V2RIK:0zEXuzj*8s:cW+QiQ˧Bn1j\P+x`)c m,c GyV: \R6堔jƩQ 4""t]KZl ORbtXsFj2j!cUPM M_(W~?Q*i. /lnQTj5mj{P83ֱ~Q՘1[w?G~J۫jI_3b5sn9Qo_ʱ +>m@DQv,{wAr%:Noi;8JY@'z/W~~F%H&urv3lEj!u\î1s3 r|fR6vJ5J6ߎ6/˄ŷVMS0OXA==_<.uf?N$J7+IV9t9QwG28(3UMj%$`XDOJXUrUg1UXlT!hRǗC O6l#XPl%+JcWwKupNeNTtgL |}o5:Uo7xN;ZMR]B12Gc/9mgR_&tj[Q}SF`BfIʱy|؎ e('B@̊siДje8iSAڃ]r3X’U. Fe6SvjS2M4ms_mUmuR+`˃5h%^:.c+gςm*Te^eDje,;h]P5qi'OQt%oN1fIjBLӪqPGn[Ru:JbḆJg뎡Ʃϖg )؂;$ñlk'Qs\BR'oXfߒؕd ,u&@3uhrKe9ԙr-߇ele>,Qg9*$#rKg[:L:XvH"ɦ ARYC6#9hvTtP9Ѩ.o[Ԫјz Xs h;NRŢjgHNj "rXJ_u:g5\8z燂b<߫YoJ%DDRe:jvjNvDטquh<_b2W,ڟG\.i$]Zvu ):Xv5 f-A pһ]A5%@bv̓i]єN ">s>gת3q\ NK_; ]̱{[bJQO92u%űFWu`ᜓXxUK|[q6x,T]J;:ڕ, ,Gt6p4Yho5hpJ_CnWUξO6)VOV$֥]ݒRW ЮJ@zqq6| *J`-Wɛx[dcE(sKMG}wԑf9XC\j_]PB~q:ؕ˿h&ϨJoVX*C_ΤJ9MU8-ep[(})K}kV{y!r:unKt2Шڜ5 $-0yoA>jWlnVvuن9!U3b[a%1C KVAXJlW٨cMPTRkn4p2ֺlCYZ9Zy:j$ٕHՍLXgLR&',[P^Ŷ,k2WSP% qJ:.B[2VYJV\4vWm{WN.JVsf? +HrAM_Xc=fLUfJ.) ܭWhKKNSe4Fafn{sn XYtì,aͽ-1B`^UD CӥQjB +e4*ux|rZ<5]Yic.#4WYILl'6s~ nj[X«r*î.K@*,EuZc N%bv,!ql$_汔&vc>Z<akWy.,T-P㡝`g;yۢYu J[o9e BMv üUAE_[fg N*C?$&qI@! 孩P`-WZ:'cMwvuL\}&Ӓ΂rTf{r 3g֊hb籰+@;XmYjV{6]}*֫Nmz`ΓAIu^eWUX&M2z+$5Ɍqص0}] X5ؕN Cf A$Ǜ ] Lŏ rؕa˻ -?1Fq'L] ^Q %r.oWX`fWǻ@y^l[(r6IBR!–we%Pv*KJ:qTUlG7r4m/O>bw r㧸/'QrΖmssdrND^iZYS?]Btk8r.!*8VXauł=^bKئmv0mQӮT} zsŰ+uU%ul+#ueE RepmLƧ6'?4L^V4XL2_?V"vLzPi8I9]rs;Z&=R.PWlgo* 2Xe@i F$B㞮c6GYo$B)1($CQ˼]Bdk^-C@ە0]|fex='~ ʱRJ΢9uVuy<8hwu/c X9ڕ}%`ֳбr.V{ WBij:Ofי?GcŻ'ThF'O1/ Wp 9F*[s#u]%Ɛ>Ǡ˵ +x6RfE.Oevj@MtuwlP_y|KO|VNg"N y#u,Kx^gCNVvk(5)*/p]JX˧CE;"8yEu]I\jNϨ6:gj[7;[J1cEeʲ 9*otqj `u up.Tn1b=s U]MWfG*M-¨xg{KfWEMU6ј=1 tu6zy5;]gO]$*j,ۈVq։0ZYtzM5%^C˒W;}-|t,CK{gu~C(njq3u*X F0.&2P紗5xPΥY&+\Z_ K@"ֽ@oV kxJUԯiET+/y~ d IGmH8~vY--ɉgZ6ԡY@vڎ9<Ǯ>ϟ4^/]E8x72^yd]挓q6 Δ<^hxUoٿsC-o9FOl9 v5 i?U3;rv^ӛQyv3V^2Z>9XP<^ VW_ڔĨ$C=&%51uyTM_eMSMmgSu>e602;/iǻfcWVm̛ZݻNcۇ'{> =ErecgZuFȽ0֮(K ye3`N!Uı\nMK>`fgA͡&lc'5ÓMpgc?ƶuCO@zkOqQ0 9Y&;Kea)4]av3Ĝ^A +<@$GIP/jJWߡa<4`-+zߪv+~۟<}O߿1Rk7dg %C} )f7SI:qz M !0b*3TAb՘sovu\ij[A˺TܪFݙn$υiO1D;ϑ*+]L+]MN\0|@*@Iݧ,wevLJ^E]69FQ>6όLFwuL2S^@AM¹yv3h v`#w@ fv2V1'ݧ'2pXJcE%F+;~>.`̖5CcWHpUf5Jd5tH zf0 `fbĊt+\+=] XepWe99WAx֩Ǯ3jOQzkspm8]u'CH=?aGcM]RG4+%[_xis ABtbݚ2< X:?9 4`LpjL땥]৸gmp 17^t>|_%x?DC Dl2Bz$.kJL_* r8P^(NV+չ͸Uc)4 ¨ ei;%\c X*OT_ w aP5м3>`=H0߉ӝ_E*>`=.EV߁3^`$ƱP+뉁ICQ't(ͮOSTXE%n*c X:]!a t0-(W +ey`@Ӯn gd,W @tP)!mY4Fַ X]wf9rrIDAT޲Ol 㙁p[f{QpfOp|1b'`h$I0+wi{]j@Z>7A~_/ˇ!շN: XHU}d5ʔTD"oV\>k~wf,超xۇʠVvxQ·x"cjk= ޝCpLYxUl(H^]c Xەƨ0Z:>|'N0GP_S*Ii824lXYPSlHuQjn@ߴ{xkoE uh ]t٦<@v8VR>s˿ְ8Fai%Ujy2;zwL.ry#%6hw=+N_&Vt ]M/H+a͘э=iuv`Ն||i@ !)VyV]PDzғ8}9@/P(G#A* *ZkbT^7 @2Y@jk' ]0@J+Ȋ2X$9`|ꓭ"L ^E1b5նhرMFU$H_vf<:`{ "S]ۜF .Oj«Em`|Fj`m N:<@0 FQ?̾460@&~%ó{(U[<G@C%w Kăa2Dp `Mϯ/w5>5U0 `eWa_@\<ܓc XkV#q1( ~rjaj%23X:X>^#F6yҒY^M+F:]1>x֞de9J4d`@WaDuoƘv`=*! 6rЬN}R%"xWJ5£`;@<:#`C@2T&+c>l a~w}U.HV8#}5x?®F&X9Uњ5p@]PDcU`,4f]N,@W$X;VF5>LsD/}2I'X ZFЧc`WO$^0x3C 6U] X9(!T2*ȟ`m-C!@nZ;/+!su]`U;vUoYd*n; =e51rYBb1i@JVvg#,xlWS-* }G(3ŋ ] XVA5dܶ/lO(v`=α*hp]x<$9 HHF|fkqs8=w:0 }Vw9}kN9ϩ̺'<TAñ*>kdEx!}`IWUnN3C@!H7VVbMgYr ;Co֮N4rvǮ&ߗJ?8oc Ů%Bw@*Q+ڇ@!xl|h|mH$zWUGlWLu `Cz[V&V^s,qzQ5u Ҷ*/B^`Uy~ 5Bl!cOc7e _q޹?U]ŋ4#3&+P|3,H ,J ++lᘓW.OƱ ʽo@WsTgX`ԣ7ls"$7QP!<Hs!1BWJŞ՛ XLkQ:+u"e}삋Ѯ]e=GH*O⢺W`R[c %u"n{) E_]U|(JΣoɱhWcsY\S#O^+/4 ᧸W C}kd*Z<;僧>/Ʊ `M7ЮT3ߟ9>]},2-n*d(s>~ {]!sG^?oGZU~>K_ζg6Rް+x`M,ܨ\~Os^]UMr7NuP\>nSP7Ue˜UDtd2n ~g@*,)`]eHգL rd&D3|6sh*HA>=]_P9+]Ad&7ٟX/t &X.p /TBiE]oi;v2:wᑱCHQuQj,8]IiL/xi[P!vU]>χ({*6rEn "+9K (xO4W)yZ XJqC=y;HQ,㴛d #9]yUj?az˞dw$bKX柏*w^Lf/C{xmp*UBR)OS;==ߩbbSuo4B,>jﵖ64Qaڀl+dc7lno[M+{#'$AjXxkk2VI,> karKuP+ 2Aj˘<jŗc-Lijn,oN2΍TUT`doM9,5+Ws VzHx YO%L =﫯U8*s o7xǘZTZ2D Pf&<\};lDIW6J9d n]_xc]1󫘷ֽjֽc ")p#މ,@C޶8+\_Ut5PNSq k*VٻEW XP] E֬&u|XPx%X89srQun/]Jߌ/Ln Q2>oIe[_qv3w5*t^ڹW5jU= ZY2o1{tcN{yL.C˧JNP+ ȣ.W#fAOUc UM2Kī†.DvئǷsJ BefUJtZ 4tV/sЍ_nm.scyTTg>okq~ʖMF#X@p}ή潺;v7jdѐUfUj9w'X]"*CgK}>2>m5sݔsϖLOx܍fxj: \riWVb j+wcv>A)F:J~!@DVӶXVvUM>ۯ;s3z!nё*=^ J5<^^e|=Sc vYn'DZ;]s nQY*v2^|<@ *0DP5r" nC%÷0re"XDj8 >?[G#ÌE\k6.}|Bmaȸ%Fzd[_7{h2$R ew\宆 Ã=cNe}NlL"qC9An= 7 {-!X(^^5JTֱ4LOFnx̰dFԉ_e~Ջ;{={r0L")0>'ck뜱CaV5gpͅ<';=xU]d xJq4s$%Fz-{[]Ge>;^W/.8_Gʚd<<$ىc1>[1-KГS߭cgE 3۳>vnqң,B{^u53[yR6[5r>qC~r-Lx|zY)˟.%fMO!K\gp?ܮl[;ǜE/w'̂#9uְɓEZf`Ÿ?Z4B"|ndOîv㾹}y;Ma<@([3 r8\F*hÀ[)x;>#ȀbFC$\㉳^}8kW1 7>9joDŽu#oo|1#Yno:>i[R!ˆwcL-&[k샕]]>A"[XyF.B}9wP}9S.R"XiqO^8B_+piT \[ f?uoWN&XVR̳iH1d6CJ+h]=v VaCź2 9)hVScFs8xUܕ쭄`yCd,oViVZQ!eЬX|*`WN{{Xa'/:UofNh!X\XAo8{:%Aq/uO]Gж{'U6g/j`zi[n%gcpdZQT]>!Ɂ?*u?坟ZYy CK-o. x>DkHYl2I'7Wu,P%@m<CQn^f]n-ce)gck5kk+:12CAvNN#d u8a0̎b kW*;:6?'`q3$[֥OK˸bFN1f ǂ;G}דnAL?o1ᴥ64X*s`A xXS6eV%iL 0*J5j^ֳW}6{s̾Ex2Gu#3xc1*s2ZE*jI*~.l9s,g*p0f-{B9꯽X#Nx!W)Z5ZÂTVsueklƱw熙P_G6 OPk~,=5_+q,yH*TuN䨚oZ'N{F3Z6ji\at-Ʊ c4Q Ӆx`nXxI!l93y!ZJ \B#pP!vOOyc#fY^r,e寎+.?\ K.O׊p1$OF2jj]YQ`1D!Xu}Wٜ=4o:eoN}eMQ;VO U^& L(sCLR5yVÝE sb6IENDB`elk-6.3.2/examples/GW/HEG/PaxHeaders.21352/plot2d.general0000644000000000000000000000013213543334742017337 xustar0030 mtime=1569569250.702638066 30 atime=1569569250.701638067 30 ctime=1569569250.702638066 elk-6.3.2/examples/GW/HEG/plot2d.general0000644002504400250440000000027213543334742021407 0ustar00dewhurstdewhurst00000000000000file = GWBAND.OUT grid = 800 x 50 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 2-vector, scalar type = float, float end elk-6.3.2/examples/GW/HEG/PaxHeaders.21352/plot2d.net0000644000000000000000000000013213543334742016510 xustar0030 mtime=1569569250.707638063 30 atime=1569569250.705638064 30 ctime=1569569250.707638063 elk-6.3.2/examples/GW/HEG/plot2d.net0000644002504400250440000001457213543334742020570 0ustar00dewhurstdewhurst00000000000000// // time: Fri Apr 27 18:31:27 2018 // // version: 3.2.0 (format), 4.4.4 (DX) // // // MODULE main // workspace: width = 462, height = 562 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 56, y = 47, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "plot2d.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node RubberSheet[1]: x = 276, y = 45, inputs = 4, label = RubberSheet // main_RubberSheet_1_out_1 = RubberSheet( main_Import_1_out_1, main_RubberSheet_1_in_2, main_RubberSheet_1_in_3, main_RubberSheet_1_in_4 ) [instance: 1, cache: 1]; // // node Colormap[1]: x = 388, y = 153, inputs = 19, label = Colormap // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.091397849 0.0] [0.18010753 0.16589862] } // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.0] [0.077956989 1.0] } // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_1" // input[7]: defaulting = 1, visible = 0, type = 5, value = 0.037809622 // input[8]: defaulting = 1, visible = 0, type = 5, value = 1896.2094 // input[9]: defaulting = 1, visible = 0, type = 1, value = 20 // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 0.037809622 1896.2094 } // input[17]: defaulting = 0, visible = 0, type = 5, value = 0.037809622 // input[18]: defaulting = 0, visible = 0, type = 5, value = 1896.2094 // window: position = (0.1088,0.0511), size = 0.8838x0.5656 // main_Colormap_1_out_1[cache: 2], main_Colormap_1_out_2[cache: 2] = Colormap( main_Colormap_1_in_1, main_Colormap_1_in_2, main_Colormap_1_in_3, main_Colormap_1_in_4, main_Colormap_1_in_5, main_RubberSheet_1_out_1, main_Colormap_1_in_7, main_Colormap_1_in_8, main_Colormap_1_in_9, main_Colormap_1_in_10, main_Colormap_1_in_11, main_Colormap_1_in_12, main_Colormap_1_in_13, main_Colormap_1_in_14, main_Colormap_1_in_15, main_Colormap_1_in_16, main_Colormap_1_in_17, main_Colormap_1_in_18, main_Colormap_1_in_19 ) [instance: 1, cache: 1]; // // node Color[3]: x = 142, y = 190, inputs = 5, label = Color // main_Color_3_out_1 = Color( main_RubberSheet_1_out_1, main_Colormap_1_out_1, main_Color_3_in_3, main_Color_3_in_4, main_Color_3_in_5 ) [instance: 3, cache: 1]; // // node Shade[1]: x = 320, y = 256, inputs = 8, label = Shade // input[2]: defaulting = 0, visible = 1, type = 3, value = 0 // main_Shade_1_out_1 = Shade( main_Color_3_out_1, main_Shade_1_in_2, main_Shade_1_in_3, main_Shade_1_in_4, main_Shade_1_in_5, main_Shade_1_in_6, main_Shade_1_in_7, main_Shade_1_in_8 ) [instance: 1, cache: 1]; // // node AutoCamera[1]: x = 356, y = 371, inputs = 9, label = AutoCamera // input[3]: defaulting = 0, visible = 0, type = 5, value = 1.0 // input[4]: defaulting = 0, visible = 0, type = 1, value = 200 // input[5]: defaulting = 0, visible = 0, type = 5, value = 3.8 // main_AutoCamera_1_out_1 = AutoCamera( main_Shade_1_out_1, main_AutoCamera_1_in_2, main_AutoCamera_1_in_3, main_AutoCamera_1_in_4, main_AutoCamera_1_in_5, main_AutoCamera_1_in_6, main_AutoCamera_1_in_7, main_AutoCamera_1_in_8, main_AutoCamera_1_in_9 ) [instance: 1, cache: 1]; // // node Render[1]: x = 217, y = 445, inputs = 3, label = Render // main_Render_1_out_1 = Render( main_Shade_1_out_1, main_AutoCamera_1_out_1, main_Render_1_in_3 ) [instance: 1, cache: 1]; // // node Display[1]: x = 373, y = 500, inputs = 8, label = Display // depth: value = 24 // window: position = (0.0063,0.0000), size = 0.1338x0.9156 // main_Display_1_out_1[cache: 2] = Display( main_Render_1_out_1, main_Display_1_in_2, main_Display_1_in_3, main_Display_1_in_4, main_Display_1_in_5, main_Display_1_in_6, main_Display_1_in_7, main_Display_1_in_8 ) [instance: 1, cache: 1]; // network: end of macro body } main_Import_1_in_1 = "plot2d.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_RubberSheet_1_in_2 = NULL; main_RubberSheet_1_in_3 = NULL; main_RubberSheet_1_in_4 = NULL; main_RubberSheet_1_out_1 = NULL; main_Colormap_1_in_1 = { [0.091397849 0.0] [0.18010753 0.16589862] }; main_Colormap_1_in_2 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_1_in_3 = { [0.0 0.0] [0.077956989 1.0] }; main_Colormap_1_in_4 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_1_in_5 = "Colormap_1"; main_Colormap_1_in_7 = NULL; main_Colormap_1_in_8 = NULL; main_Colormap_1_in_9 = NULL; main_Colormap_1_in_10 = NULL; main_Colormap_1_in_11 = NULL; main_Colormap_1_in_12 = { 0.037809622 1896.2094 }; main_Colormap_1_in_13 = NULL; main_Colormap_1_in_14 = NULL; main_Colormap_1_in_15 = NULL; main_Colormap_1_in_16 = NULL; main_Colormap_1_in_17 = 0.037809622; main_Colormap_1_in_18 = 1896.2094; main_Colormap_1_in_19 = NULL; main_Colormap_1_out_1 = NULL; main_Color_3_in_3 = NULL; main_Color_3_in_4 = NULL; main_Color_3_in_5 = NULL; main_Color_3_out_1 = NULL; main_Shade_1_in_2 = 0; main_Shade_1_in_3 = NULL; main_Shade_1_in_4 = NULL; main_Shade_1_in_5 = NULL; main_Shade_1_in_6 = NULL; main_Shade_1_in_7 = NULL; main_Shade_1_in_8 = NULL; main_Shade_1_out_1 = NULL; main_AutoCamera_1_in_2 = NULL; main_AutoCamera_1_in_3 = 1.0; main_AutoCamera_1_in_4 = 200; main_AutoCamera_1_in_5 = 3.8; main_AutoCamera_1_in_6 = NULL; main_AutoCamera_1_in_7 = NULL; main_AutoCamera_1_in_8 = NULL; main_AutoCamera_1_in_9 = NULL; main_AutoCamera_1_out_1 = NULL; main_Render_1_in_3 = NULL; main_Render_1_out_1 = NULL; main_Display_1_in_2 = NULL; main_Display_1_in_3 = "X24,,"; main_Display_1_in_4 = NULL; main_Display_1_in_5 = NULL; main_Display_1_in_6 = NULL; main_Display_1_in_7 = NULL; main_Display_1_in_8 = NULL; Executive("product version 4 4 4"); $sync main(); elk-6.3.2/examples/GW/PaxHeaders.21352/LiF0000644000000000000000000000013213543334742014566 xustar0030 mtime=1569569250.717638056 30 atime=1569569250.710638061 30 ctime=1569569250.717638056 elk-6.3.2/examples/GW/LiF/0000755002504400250440000000000013543334742016712 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/GW/LiF/PaxHeaders.21352/TSFGW.OUT0000644000000000000000000000013113543334742016125 xustar0030 mtime=1569569250.715638058 29 atime=1569569250.71163806 30 ctime=1569569250.715638058 elk-6.3.2/examples/GW/LiF/TSFGW.OUT0000644002504400250440000007164013543334742020205 0ustar00dewhurstdewhurst00000000000000 -0.8000000000 0.5906911149 -0.7983750000 0.5880266918 -0.7967500000 0.6193611392 -0.7951250000 0.5834818331 -0.7935000000 0.5811520267 -0.7918750000 0.5803867603 -0.7902500000 0.5802233591 -0.7886250000 0.5806138160 -0.7870000000 0.5825534987 -0.7853750000 0.5913061310 -0.7837500000 0.5889172332 -0.7821250000 0.5920163276 -0.7805000000 0.6006279506 -0.7788750000 0.6103558029 -0.7772500000 0.5990402281 -0.7756250000 0.5975721164 -0.7740000000 0.6124301015 -0.7723750000 0.6329314205 -0.7707500000 0.6066111755 -0.7691250000 0.6084249992 -0.7675000000 0.6125810523 -0.7658750000 0.6177669896 -0.7642500000 0.6240607623 -0.7626250000 0.6318472441 -0.7610000000 0.6420719378 -0.7593750000 0.6558468608 -0.7577500000 0.6710758844 -0.7561250000 0.6900624951 -0.7545000000 0.7146413561 -0.7528750000 0.7461524742 -0.7512500000 0.7859855507 -0.7496250000 0.8357451544 -0.7480000000 0.8967145822 -0.7463750000 0.9689144841 -0.7447500000 1.049116666 -0.7431250000 1.128426569 -0.7415000000 1.191647052 -0.7398750000 1.221922828 -0.7382500000 1.210959625 -0.7366250000 1.165658944 -0.7350000000 1.101948627 -0.7333750000 1.034658571 -0.7317500000 0.9727569146 -0.7301250000 0.9200467725 -0.7285000000 0.8777508589 -0.7268750000 0.8452131199 -0.7252500000 0.8216042938 -0.7236250000 0.8068962301 -0.7220000000 0.8050183918 -0.7203750000 0.8156078851 -0.7187500000 0.8533691642 -0.7171250000 1.006385080 -0.7155000000 1.830858403 -0.7138750000 1.535344907 -0.7122500000 0.9966819429 -0.7106250000 0.9379624351 -0.7090000000 0.9695280440 -0.7073750000 1.048011070 -0.7057500000 1.149858031 -0.7041250000 1.236430512 -0.7025000000 1.261545290 -0.7008750000 1.225518247 -0.6992500000 1.182158199 -0.6976250000 1.173667645 -0.6960000000 1.209982937 -0.6943750000 1.266814480 -0.6927500000 1.301616438 -0.6911250000 1.324637582 -0.6895000000 1.373633725 -0.6878750000 1.447686947 -0.6862500000 1.506496056 -0.6846250000 1.503743176 -0.6830000000 1.445651229 -0.6813750000 1.387797927 -0.6797500000 1.408594882 -0.6781250000 1.422160413 -0.6765000000 1.280516572 -0.6748750000 1.298336072 -0.6732500000 1.957893336 -0.6716250000 1.167352290 -0.6700000000 0.8799174137 -0.6683750000 0.7905911640 -0.6667500000 0.7544739553 -0.6651250000 0.7485562218 -0.6635000000 0.7785298052 -0.6618750000 0.8874809951 -0.6602500000 1.240533116 -0.6586250000 2.063353423 -0.6570000000 2.025498329 -0.6553750000 1.612369335 -0.6537500000 0.9133923350 -0.6521250000 0.7083945110 -0.6505000000 0.6324511940 -0.6488750000 0.5905657194 -0.6472500000 0.5559684547 -0.6456250000 0.5230971590 -0.6440000000 0.4956202648 -0.6423750000 0.4747201875 -0.6407500000 0.4576922687 -0.6391250000 0.4437991940 -0.6375000000 0.4324397318 -0.6358750000 0.4255833922 -0.6342500000 0.4165596973 -0.6326250000 0.4067926952 -0.6310000000 0.3976045835 -0.6293750000 0.3922379738 -0.6277500000 0.3879671515 -0.6261250000 0.3848364771 -0.6245000000 0.3841139902 -0.6228750000 0.3825790042 -0.6212500000 0.3789717494 -0.6196250000 0.3781089698 -0.6180000000 0.3790904230 -0.6163750000 0.3799482257 -0.6147500000 0.3825503515 -0.6131250000 0.3869088111 -0.6115000000 0.3942089321 -0.6098750000 0.4050330025 -0.6082500000 0.4193739693 -0.6066250000 0.4370692848 -0.6050000000 0.4610445206 -0.6033750000 0.4911267690 -0.6017500000 0.5272706620 -0.6001250000 0.5666616780 -0.5985000000 0.6041248351 -0.5968750000 0.6298280129 -0.5952500000 0.6367231526 -0.5936250000 0.6247388084 -0.5920000000 0.6057634911 -0.5903750000 0.5971471724 -0.5887500000 0.6350036306 -0.5871250000 0.8592506649 -0.5855000000 0.8625803506 -0.5838750000 0.5925272202 -0.5822500000 0.4906520776 -0.5806250000 0.4389955941 -0.5790000000 0.4106797339 -0.5773750000 0.3939805346 -0.5757500000 0.3827805715 -0.5741250000 0.3703203994 -0.5725000000 0.3574739966 -0.5708750000 0.3446764355 -0.5692500000 0.3305510320 -0.5676250000 0.3090051911 -0.5660000000 0.2826657787 -0.5643750000 0.2613167551 -0.5627500000 0.2500419578 -0.5611250000 0.2519345297 -0.5595000000 0.2735720826 -0.5578750000 0.3127872782 -0.5562500000 0.3750384605 -0.5546250000 0.3846501939 -0.5530000000 0.2341048518 -0.5513750000 0.1963799469 -0.5497500000 0.1826087994 -0.5481250000 0.1771815812 -0.5465000000 0.1765378666 -0.5448750000 0.1804838496 -0.5432500000 0.1930683173 -0.5416250000 0.2265039942 -0.5400000000 0.3241205712 -0.5383750000 0.4154228628 -0.5367500000 0.2657272581 -0.5351250000 0.2069793642 -0.5335000000 0.1804236609 -0.5318750000 0.1640257127 -0.5302500000 0.1594154735 -0.5286250000 0.1570400822 -0.5270000000 0.1558923005 -0.5253750000 0.1555333390 -0.5237500000 0.1557170003 -0.5221250000 0.1562656845 -0.5205000000 0.1570278626 -0.5188750000 0.1579273166 -0.5172500000 0.1589754360 -0.5156250000 0.1602060771 -0.5140000000 0.1616359412 -0.5123750000 0.1632607368 -0.5107500000 0.1650674590 -0.5091250000 0.1670428683 -0.5075000000 0.1691765975 -0.5058750000 0.1714617518 -0.5042500000 0.1738944604 -0.5026250000 0.1764681645 -0.5010000000 0.1791742721 -0.4993750000 0.1820136299 -0.4977500000 0.1849934190 -0.4961250000 0.1881150594 -0.4945000000 0.1913817956 -0.4928750000 0.1947939164 -0.4912500000 0.1983522120 -0.4896250000 0.2020588339 -0.4880000000 0.2059168020 -0.4863750000 0.2099297470 -0.4847500000 0.2141018515 -0.4831250000 0.2184379951 -0.4815000000 0.2229438119 -0.4798750000 0.2276254718 -0.4782500000 0.2324890657 -0.4766250000 0.2375426628 -0.4750000000 0.2427939590 -0.4733750000 0.2482516433 -0.4717500000 0.2539249958 -0.4701250000 0.2598246016 -0.4685000000 0.2659617750 -0.4668750000 0.2723480926 -0.4652500000 0.2789958701 -0.4636250000 0.2859202615 -0.4620000000 0.2931364272 -0.4603750000 0.3006606801 -0.4587500000 0.3085106136 -0.4571250000 0.3167064337 -0.4555000000 0.3252682279 -0.4538750000 0.3342189675 -0.4522500000 0.3435833353 -0.4506250000 0.3533882463 -0.4490000000 0.3636630673 -0.4473750000 0.3744399353 -0.4457500000 0.3857538974 -0.4441250000 0.3976431786 -0.4425000000 0.4101498960 -0.4408750000 0.4233206209 -0.4392500000 0.4372075647 -0.4376250000 0.4518681464 -0.4360000000 0.4673562686 -0.4343750000 0.4837521870 -0.4327500000 0.5011311528 -0.4311250000 0.5195802440 -0.4295000000 0.5391977244 -0.4278750000 0.5600944906 -0.4262500000 0.5823962716 -0.4246250000 0.6062462848 -0.4230000000 0.6318081416 -0.4213750000 0.6592695077 -0.4197500000 0.6888493245 -0.4181250000 0.7208025397 -0.4165000000 0.7554233518 -0.4148750000 0.7930644408 -0.4132500000 0.8341440694 -0.4116250000 0.8791648496 -0.4100000000 0.9287382124 -0.4083750000 0.9836171757 -0.4067500000 1.044741103 -0.4051250000 1.113300043 -0.4035000000 1.190828801 -0.4018750000 1.279347547 -0.4002500000 1.381578173 -0.3986250000 1.501287660 -0.3970000000 1.643853050 -0.3953750000 1.817229167 -0.3937500000 2.033722797 -0.3921250000 2.312979518 -0.3905000000 2.688191991 -0.3888750000 3.217640391 -0.3872500000 4.004645901 -0.3856250000 5.213695882 -0.3840000000 6.955842811 -0.3823750000 8.641489562 -0.3807500000 8.776115800 -0.3791250000 7.696186591 -0.3775000000 6.886472984 -0.3758750000 6.739500476 -0.3742500000 7.186303351 -0.3726250000 8.206157814 -0.3710000000 9.923060176 -0.3693750000 12.65653796 -0.3677500000 17.04034950 -0.3661250000 24.20443855 -0.3645000000 35.59752347 -0.3628750000 50.13234286 -0.3612500000 57.82723457 -0.3596250000 51.64318364 -0.3580000000 40.92574411 -0.3563750000 32.86385497 -0.3547500000 29.19520637 -0.3531250000 27.35889246 -0.3515000000 23.88372271 -0.3498750000 20.25637273 -0.3482500000 18.71754351 -0.3466250000 19.62192690 -0.3450000000 22.22542144 -0.3433750000 23.81848075 -0.3417500000 23.01063008 -0.3401250000 22.93192910 -0.3385000000 25.85783448 -0.3368750000 31.39891067 -0.3352500000 34.87696167 -0.3336250000 32.06562656 -0.3320000000 27.85786306 -0.3303750000 26.65194643 -0.3287500000 28.43585334 -0.3271250000 30.34677832 -0.3255000000 30.63390614 -0.3238750000 32.47304582 -0.3222500000 38.74003687 -0.3206250000 50.25341129 -0.3190000000 64.83142023 -0.3173750000 78.32843921 -0.3157500000 85.25940228 -0.3141250000 78.44294466 -0.3125000000 62.29425209 -0.3108750000 48.94595501 -0.3092500000 40.58043486 -0.3076250000 35.62394810 -0.3060000000 32.90891830 -0.3043750000 31.73950095 -0.3027500000 33.21777491 -0.3011250000 36.79092146 -0.2995000000 40.15974709 -0.2978750000 45.39334223 -0.2962500000 56.62180214 -0.2946250000 71.62620918 -0.2930000000 76.87668851 -0.2913750000 66.81539294 -0.2897500000 52.51606016 -0.2881250000 40.24151453 -0.2865000000 32.42887616 -0.2848750000 29.15500616 -0.2832500000 29.84156307 -0.2816250000 34.28045137 -0.2800000000 41.90093953 -0.2783750000 51.93031143 -0.2767500000 63.15475407 -0.2751250000 67.15012463 -0.2735000000 60.33955537 -0.2718750000 49.34026554 -0.2702500000 37.89761750 -0.2686250000 28.42336469 -0.2670000000 21.44481401 -0.2653750000 16.28523563 -0.2637500000 12.47977584 -0.2621250000 9.811294720 -0.2605000000 7.949662769 -0.2588750000 6.612922890 -0.2572500000 5.618928905 -0.2556250000 4.857629925 -0.2540000000 4.258167248 -0.2523750000 3.775811259 -0.2507500000 3.380495154 -0.2491250000 3.051538003 -0.2475000000 2.774066129 -0.2458750000 2.537290045 -0.2442500000 2.333256339 -0.2426250000 2.155700765 -0.2410000000 2.000134183 -0.2393750000 1.862861384 -0.2377500000 1.740917231 -0.2361250000 1.631958519 -0.2345000000 1.534111915 -0.2328750000 1.445840004 -0.2312500000 1.365870207 -0.2296250000 1.293138439 -0.2280000000 1.226760168 -0.2263750000 1.165991568 -0.2247500000 1.110145218 -0.2231250000 1.058753840 -0.2215000000 1.011265255 -0.2198750000 0.9673001002 -0.2182500000 0.9265035235 -0.2166250000 0.8885781559 -0.2150000000 0.8532035648 -0.2133750000 0.8201967944 -0.2117500000 0.7893099901 -0.2101250000 0.7603530037 -0.2085000000 0.7331224470 -0.2068750000 0.7075023740 -0.2052500000 0.6833512349 -0.2036250000 0.6605662987 -0.2020000000 0.6390193292 -0.2003750000 0.6186571316 -0.1987500000 0.5993931821 -0.1971250000 0.5811446950 -0.1955000000 0.5638338457 -0.1938750000 0.5474158044 -0.1922500000 0.5318299653 -0.1906250000 0.5170022942 -0.1890000000 0.5028768233 -0.1873750000 0.4894245733 -0.1857500000 0.4766153318 -0.1841250000 0.4643705903 -0.1825000000 0.4526774640 -0.1808750000 0.4414883980 -0.1792500000 0.4306751842 -0.1776250000 0.4192889027 -0.1760000000 0.4108002268 -0.1743750000 0.4013874714 -0.1727500000 0.3923366047 -0.1711250000 0.3836318530 -0.1695000000 0.3752398356 -0.1678750000 0.3675723998 -0.1662500000 0.3599187903 -0.1646250000 0.3524847366 -0.1630000000 0.3453197955 -0.1613750000 0.3383488853 -0.1597500000 0.3316225286 -0.1581250000 0.3253419917 -0.1565000000 0.3192179457 -0.1548750000 0.3132572142 -0.1532500000 0.3074884796 -0.1516250000 0.3019281649 -0.1500000000 0.2965684487 -0.1483750000 0.2913943557 -0.1467500000 0.2863972328 -0.1451250000 0.2815703158 -0.1435000000 0.2769066347 -0.1418750000 0.2723471512 -0.1402500000 0.2679760153 -0.1386250000 0.2637385453 -0.1370000000 0.2596215846 -0.1353750000 0.2556335082 -0.1337500000 0.2517699180 -0.1321250000 0.2480252646 -0.1305000000 0.2443989199 -0.1288750000 0.2408852580 -0.1272500000 0.2374820946 -0.1256250000 0.2341887395 -0.1240000000 0.2309975291 -0.1223750000 0.2278943268 -0.1207500000 0.2248721770 -0.1191250000 0.2219175739 -0.1175000000 0.2190420026 -0.1158750000 0.2162268376 -0.1142500000 0.2134911609 -0.1126250000 0.2108247830 -0.1110000000 0.2082044204 -0.1093750000 0.2057687156 -0.1077500000 0.2033767788 -0.1061250000 0.2010514934 -0.1045000000 0.1988019788 -0.1028750000 0.1966520914 -0.1012500000 0.1945278076 -0.9962500000E-01 0.1923289123 -0.9800000000E-01 0.1901817685 -0.9637500000E-01 0.1880807133 -0.9475000000E-01 0.1862631403 -0.9312500000E-01 0.1843823591 -0.9150000000E-01 0.1824980273 -0.8987500000E-01 0.1806794086 -0.8825000000E-01 0.1789979653 -0.8662500000E-01 0.1772947004 -0.8500000000E-01 0.1756246098 -0.8337500000E-01 0.1739963775 -0.8175000000E-01 0.1723986750 -0.8012500000E-01 0.1708898656 -0.7850000000E-01 0.1694046598 -0.7687500000E-01 0.1679161109 -0.7525000000E-01 0.1664624049 -0.7362500000E-01 0.1650748016 -0.7200000000E-01 0.1637219805 -0.7037500000E-01 0.1623864266 -0.6875000000E-01 0.1611060850 -0.6712500000E-01 0.1598618337 -0.6550000000E-01 0.1586536269 -0.6387500000E-01 0.1574734692 -0.6225000000E-01 0.1563163505 -0.6062500000E-01 0.1551730967 -0.5900000000E-01 0.1540588506 -0.5737500000E-01 0.1529174662 -0.5575000000E-01 0.1518703565 -0.5412500000E-01 0.1508613061 -0.5250000000E-01 0.1499080428 -0.5087500000E-01 0.1490171903 -0.4925000000E-01 0.1480965820 -0.4762500000E-01 0.1469799321 -0.4600000000E-01 0.1461907528 -0.4437500000E-01 0.1452988585 -0.4275000000E-01 0.1443552895 -0.4112500000E-01 0.1436001853 -0.3950000000E-01 0.1428082898 -0.3787500000E-01 0.1420237125 -0.3625000000E-01 0.1412572787 -0.3462500000E-01 0.1405206143 -0.3300000000E-01 0.1397891521 -0.3137500000E-01 0.1390996221 -0.2975000000E-01 0.1383629640 -0.2812500000E-01 0.1377041942 -0.2650000000E-01 0.1370650271 -0.2487500000E-01 0.1364454347 -0.2325000000E-01 0.1358451482 -0.2162500000E-01 0.1352410335 -0.2000000000E-01 0.1346540891 -0.1837500000E-01 0.1340593370 -0.1675000000E-01 0.1335597302 -0.1512500000E-01 0.1331918089 -0.1350000000E-01 0.1334311568 -0.1187500000E-01 0.1320587933 -0.1025000000E-01 0.1314884112 -0.8625000000E-02 0.1310957421 -0.7000000000E-02 0.1306502134 -0.5375000000E-02 0.1302229798 -0.3750000000E-02 0.1297864385 -0.2125000000E-02 0.1293789818 -0.5000000000E-03 0.1289960733 0.1125000000E-02 0.1286398971 0.2750000000E-02 0.1282676628 0.4375000000E-02 0.1279011218 0.6000000000E-02 0.1275938797 0.7625000000E-02 0.1272886928 0.9250000000E-02 0.1270879750 0.1087500000E-01 0.1266846377 0.1250000000E-01 0.1264058361 0.1412500000E-01 0.1261359377 0.1575000000E-01 0.1258898838 0.1737500000E-01 0.1256641298 0.1900000000E-01 0.1254257001 0.2062500000E-01 0.1252363715 0.2225000000E-01 0.1250083208 0.2387500000E-01 0.1248237883 0.2550000000E-01 0.1246559301 0.2712500000E-01 0.1245010174 0.2875000000E-01 0.1243479301 0.3037500000E-01 0.1241900872 0.3200000000E-01 0.1240818128 0.3362500000E-01 0.1239430390 0.3525000000E-01 0.1238866002 0.3687500000E-01 0.1237938142 0.3850000000E-01 0.1237916117 0.4012500000E-01 0.1237903147 0.4175000000E-01 0.1236774821 0.4337500000E-01 0.1235443722 0.4500000000E-01 0.1235149128 0.4662500000E-01 0.1234985819 0.4825000000E-01 0.1234552111 0.4987500000E-01 0.1234741182 0.5150000000E-01 0.1235076620 0.5312500000E-01 0.1235382899 0.5475000000E-01 0.1235756230 0.5637500000E-01 0.1236213598 0.5800000000E-01 0.1236820420 0.5962500000E-01 0.1238094558 0.6125000000E-01 0.1238525339 0.6287500000E-01 0.1239640434 0.6450000000E-01 0.1240703082 0.6612500000E-01 0.1241947847 0.6775000000E-01 0.1243360686 0.6937500000E-01 0.1244833957 0.7100000000E-01 0.1246424306 0.7262500000E-01 0.1248039631 0.7425000000E-01 0.1249912443 0.7587500000E-01 0.1251975444 0.7750000000E-01 0.1254139020 0.7912500000E-01 0.1256536544 0.8075000000E-01 0.1258892275 0.8237500000E-01 0.1261383907 0.8400000000E-01 0.1264379449 0.8562500000E-01 0.1267770271 0.8725000000E-01 0.1271690386 0.8887500000E-01 0.1274042964 0.9050000000E-01 0.1276609002 0.9212500000E-01 0.1279832471 0.9375000000E-01 0.1282811971 0.9537500000E-01 0.1286363473 0.9700000000E-01 0.1290119491 0.9862500000E-01 0.1293960081 0.1002500000 0.1298169977 0.1018750000 0.1303366389 0.1035000000 0.1306635838 0.1051250000 0.1311078721 0.1067500000 0.1315674060 0.1083750000 0.1320445827 0.1100000000 0.1325314330 0.1116250000 0.1330463266 0.1132500000 0.1335862771 0.1148750000 0.1341478524 0.1165000000 0.1347330927 0.1181250000 0.1354711626 0.1197500000 0.1359316874 0.1213750000 0.1365523054 0.1230000000 0.1371983510 0.1246250000 0.1378607906 0.1262500000 0.1385519650 0.1278750000 0.1392612901 0.1295000000 0.1399883990 0.1311250000 0.1407337746 0.1327500000 0.1415001138 0.1343750000 0.1422958008 0.1360000000 0.1431154877 0.1376250000 0.1439664689 0.1392500000 0.1448461548 0.1408750000 0.1457835582 0.1425000000 0.1467350999 0.1441250000 0.1476165518 0.1457500000 0.1485878964 0.1473750000 0.1496035608 0.1490000000 0.1506561697 0.1506250000 0.1517868304 0.1522500000 0.1529463313 0.1538750000 0.1542171230 0.1555000000 0.1553837818 0.1571250000 0.1564877078 0.1587500000 0.1577123067 0.1603750000 0.1589877242 0.1620000000 0.1603045705 0.1636250000 0.1616574406 0.1652500000 0.1630494785 0.1668750000 0.1642749832 0.1685000000 0.1660032945 0.1701250000 0.1675742660 0.1717500000 0.1691914422 0.1733750000 0.1708624206 0.1750000000 0.1725898256 0.1766250000 0.1743838025 0.1782500000 0.1762361742 0.1798750000 0.1781366362 0.1815000000 0.1800870749 0.1831250000 0.1821127112 0.1847500000 0.1842198130 0.1863750000 0.1864154426 0.1880000000 0.1887105750 0.1896250000 0.1911211978 0.1912500000 0.1936354266 0.1928750000 0.1962676683 0.1945000000 0.1990015363 0.1961250000 0.2018529709 0.1977500000 0.2048298141 0.1993750000 0.2079413168 0.2010000000 0.2112051475 0.2026250000 0.2146362845 0.2042500000 0.2182643504 0.2058750000 0.2223541290 0.2075000000 0.2258708162 0.2091250000 0.2301096631 0.2107500000 0.2345953178 0.2123750000 0.2393501064 0.2140000000 0.2444075049 0.2156250000 0.2498085545 0.2172500000 0.2555996952 0.2188750000 0.2618271482 0.2205000000 0.2685266277 0.2221250000 0.2758898185 0.2237500000 0.2838787030 0.2253750000 0.2926785480 0.2270000000 0.3023701531 0.2286250000 0.3132524645 0.2302500000 0.3255252179 0.2318750000 0.3394739711 0.2335000000 0.3555467384 0.2351250000 0.3743960876 0.2367500000 0.3968516486 0.2383750000 0.4241099356 0.2400000000 0.4579839376 0.2416250000 0.5012188172 0.2432500000 0.5581652468 0.2448750000 0.6358649515 0.2465000000 0.7461344998 0.2481250000 0.9089207168 0.2497500000 1.156511961 0.2513750000 1.529931805 0.2530000000 2.015825718 0.2546250000 2.377833050 0.2562500000 2.269411027 0.2578750000 1.830329193 0.2595000000 1.419435135 0.2611250000 1.143021567 0.2627500000 0.9745740962 0.2643750000 0.8759433017 0.2660000000 0.8215155335 0.2676250000 0.7962856661 0.2692500000 0.7917598128 0.2708750000 0.8032766129 0.2725000000 0.8285007020 0.2741250000 0.8667128075 0.2757500000 0.9182960935 0.2773750000 0.9847781109 0.2790000000 1.068846416 0.2806250000 1.174653174 0.2822500000 1.308437275 0.2838750000 1.479416076 0.2855000000 1.701482641 0.2871250000 1.996105574 0.2887500000 2.397169539 0.2903750000 2.959892980 0.2920000000 3.778741274 0.2936250000 5.011707776 0.2952500000 6.918479616 0.2968750000 9.836925024 0.2985000000 13.73664699 0.3001250000 16.82144090 0.3017500000 16.08008451 0.3033750000 12.49388039 0.3050000000 9.113648570 0.3066250000 6.889018738 0.3082500000 5.628593995 0.3098750000 5.058429751 0.3115000000 5.044562143 0.3131250000 5.589903084 0.3147500000 6.772786456 0.3163750000 8.458210232 0.3180000000 9.616668714 0.3196250000 8.910168976 0.3212500000 7.030623042 0.3228750000 5.348032239 0.3245000000 4.226670414 0.3261250000 3.553220641 0.3277500000 3.185009236 0.3293750000 3.033456830 0.3310000000 3.059308243 0.3326250000 3.262058618 0.3342500000 3.679858954 0.3358750000 4.402064420 0.3375000000 5.593545991 0.3391250000 7.499828440 0.3407500000 10.24031997 0.3423750000 12.90199279 0.3440000000 13.10960358 0.3456250000 10.66980363 0.3472500000 7.965048879 0.3488750000 6.084413826 0.3505000000 4.958466313 0.3521250000 4.342904894 0.3537500000 4.071795329 0.3553750000 4.061129550 0.3570000000 4.286207766 0.3586250000 4.771540128 0.3602500000 5.596705357 0.3618750000 6.921616460 0.3635000000 9.032559681 0.3651250000 12.38234006 0.3667500000 17.38608426 0.3683750000 23.13296679 0.3700000000 25.45556319 0.3716250000 21.75047898 0.3732500000 16.05656151 0.3748750000 11.65711948 0.3765000000 8.857862760 0.3781250000 7.175365964 0.3797500000 6.207304500 0.3813750000 5.715862922 0.3830000000 5.578216403 0.3846250000 5.746181285 0.3862500000 6.227537220 0.3878750000 7.086839148 0.3895000000 8.463685840 0.3911250000 10.61491454 0.3927500000 13.99559909 0.3943750000 19.36939264 0.3960000000 27.74666532 0.3976250000 39.09531900 0.3992500000 48.12471215 0.4008750000 45.68107665 0.4025000000 34.56689371 0.4041250000 23.96495233 0.4057500000 16.67387835 0.4073750000 12.01352951 0.4090000000 9.008139019 0.4106250000 7.007367068 0.4122500000 5.628193433 0.4138750000 4.645464788 0.4155000000 3.924820424 0.4171250000 3.383353005 0.4187500000 2.968139737 0.4203750000 2.644342020 0.4220000000 2.388379957 0.4236250000 2.183894042 0.4252500000 2.019279228 0.4268750000 1.886156811 0.4285000000 1.778356974 0.4301250000 1.691279506 0.4317500000 1.621428616 0.4333750000 1.566355365 0.4350000000 1.524512296 0.4366250000 1.494529270 0.4382500000 1.474995544 0.4398750000 1.465228616 0.4415000000 1.465010922 0.4431250000 1.474322906 0.4447500000 1.493380868 0.4463750000 1.522635762 0.4480000000 1.562846239 0.4496250000 1.615162390 0.4512500000 1.680906135 0.4528750000 1.763309789 0.4545000000 1.864544626 0.4561250000 1.989208660 0.4577500000 2.143235625 0.4593750000 2.334970553 0.4610000000 2.576391165 0.4626250000 2.885153052 0.4642500000 3.287981352 0.4658750000 3.826644981 0.4675000000 4.568975065 0.4691250000 5.628299519 0.4707500000 7.196116381 0.4723750000 9.575855501 0.4740000000 13.10170366 0.4756250000 17.60796373 0.4772500000 22.00387188 0.4788750000 25.21275929 0.4805000000 26.04759895 0.4821250000 24.34537336 0.4837500000 20.18902898 0.4853750000 15.44592808 0.4870000000 11.99640403 0.4886250000 9.972890507 0.4902500000 8.985028018 0.4918750000 8.746110349 0.4935000000 9.137994561 0.4951250000 10.18852330 0.4967500000 12.07803969 0.4983750000 15.18692724 elk-6.3.2/examples/GW/LiF/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334742015746 xustar0030 mtime=1569569250.718638056 30 atime=1569569250.718638056 30 ctime=1569569250.718638056 elk-6.3.2/examples/GW/LiF/elk.in0000644002504400250440000000132113543334742020012 0ustar00dewhurstdewhurst00000000000000 ! GW band gap calculation of LiF. Plot the total spectral function TSFGW.OUT to ! find the indirect gap. tasks 0 600 610 ! G-vector cut-off of local contribution to RPA gmaxrf 3.0 ! temperature of system (determines the Matsubara frequency spacing) tempk 1500.0 nempty 8 wplot 800 100 0 : nwplot, ngrkf, nswplot -1.5 1.5 : wplot avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 4 4 4 elk-6.3.2/examples/PaxHeaders.21352/RDMFT0000644000000000000000000000013213543334742014453 xustar0030 mtime=1569569250.722638053 30 atime=1569569250.723638053 30 ctime=1569569250.722638053 elk-6.3.2/examples/RDMFT/0000755002504400250440000000000013543334742016577 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/RDMFT/PaxHeaders.21352/NiO0000644000000000000000000000013213543334742015140 xustar0030 mtime=1569569250.730638048 30 atime=1569569250.724638052 30 ctime=1569569250.730638048 elk-6.3.2/examples/RDMFT/NiO/0000755002504400250440000000000013543334742017264 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/RDMFT/NiO/PaxHeaders.21352/TDOS.OUT0000644000000000000000000000013213543334742016357 xustar0030 mtime=1569569250.728638049 30 atime=1569569250.725638051 30 ctime=1569569250.728638049 elk-6.3.2/examples/RDMFT/NiO/TDOS.OUT0000644002504400250440000004411213543334742020430 0ustar00dewhurstdewhurst00000000000000 -0.6000000000 0.000000000 -0.5976000000 0.000000000 -0.5952000000 0.000000000 -0.5928000000 0.000000000 -0.5904000000 0.000000000 -0.5880000000 0.000000000 -0.5856000000 0.000000000 -0.5832000000 0.000000000 -0.5808000000 0.000000000 -0.5784000000 0.000000000 -0.5760000000 0.000000000 -0.5736000000 0.000000000 -0.5712000000 0.000000000 -0.5688000000 0.000000000 -0.5664000000 0.000000000 -0.5640000000 0.000000000 -0.5616000000 0.000000000 -0.5592000000 0.000000000 -0.5568000000 0.000000000 -0.5544000000 0.000000000 -0.5520000000 0.000000000 -0.5496000000 0.000000000 -0.5472000000 0.000000000 -0.5448000000 0.000000000 -0.5424000000 0.000000000 -0.5400000000 0.000000000 -0.5376000000 0.000000000 -0.5352000000 0.000000000 -0.5328000000 0.000000000 -0.5304000000 0.000000000 -0.5280000000 0.000000000 -0.5256000000 0.000000000 -0.5232000000 0.000000000 -0.5208000000 0.000000000 -0.5184000000 0.000000000 -0.5160000000 0.000000000 -0.5136000000 0.000000000 -0.5112000000 0.000000000 -0.5088000000 0.000000000 -0.5064000000 0.000000000 -0.5040000000 0.000000000 -0.5016000000 0.000000000 -0.4992000000 0.000000000 -0.4968000000 0.000000000 -0.4944000000 0.000000000 -0.4920000000 0.000000000 -0.4896000000 0.000000000 -0.4872000000 0.000000000 -0.4848000000 0.000000000 -0.4824000000 0.000000000 -0.4800000000 0.000000000 -0.4776000000 0.000000000 -0.4752000000 0.000000000 -0.4728000000 0.000000000 -0.4704000000 0.000000000 -0.4680000000 0.000000000 -0.4656000000 0.000000000 -0.4632000000 0.000000000 -0.4608000000 0.000000000 -0.4584000000 0.000000000 -0.4560000000 0.000000000 -0.4536000000 0.000000000 -0.4512000000 0.000000000 -0.4488000000 0.000000000 -0.4464000000 0.000000000 -0.4440000000 0.000000000 -0.4416000000 0.000000000 -0.4392000000 0.000000000 -0.4368000000 0.000000000 -0.4344000000 0.000000000 -0.4320000000 0.000000000 -0.4296000000 0.000000000 -0.4272000000 0.000000000 -0.4248000000 0.000000000 -0.4224000000 0.000000000 -0.4200000000 0.000000000 -0.4176000000 0.000000000 -0.4152000000 0.000000000 -0.4128000000 0.000000000 -0.4104000000 0.000000000 -0.4080000000 0.000000000 -0.4056000000 0.000000000 -0.4032000000 0.000000000 -0.4008000000 0.000000000 -0.3984000000 0.000000000 -0.3960000000 0.000000000 -0.3936000000 0.000000000 -0.3912000000 0.000000000 -0.3888000000 0.000000000 -0.3864000000 0.000000000 -0.3840000000 0.000000000 -0.3816000000 0.000000000 -0.3792000000 0.000000000 -0.3768000000 0.000000000 -0.3744000000 0.000000000 -0.3720000000 0.000000000 -0.3696000000 0.000000000 -0.3672000000 0.000000000 -0.3648000000 0.000000000 -0.3624000000 0.000000000 -0.3600000000 0.000000000 -0.3576000000 0.000000000 -0.3552000000 0.000000000 -0.3528000000 0.000000000 -0.3504000000 0.000000000 -0.3480000000 0.000000000 -0.3456000000 0.000000000 -0.3432000000 0.000000000 -0.3408000000 0.000000000 -0.3384000000 0.000000000 -0.3360000000 0.000000000 -0.3336000000 0.000000000 -0.3312000000 0.000000000 -0.3288000000 0.000000000 -0.3264000000 0.000000000 -0.3240000000 0.000000000 -0.3216000000 0.000000000 -0.3192000000 0.000000000 -0.3168000000 0.000000000 -0.3144000000 0.000000000 -0.3120000000 0.000000000 -0.3096000000 0.000000000 -0.3072000000 0.5000000000E-02 -0.3048000000 0.3000000000E-01 -0.3024000000 0.9250000000E-01 -0.3000000000 0.2283333333 -0.2976000000 0.4933333333 -0.2952000000 1.117500000 -0.2928000000 2.766666667 -0.2904000000 4.701666667 -0.2880000000 7.144166667 -0.2856000000 10.30000000 -0.2832000000 13.95333333 -0.2808000000 17.38833333 -0.2784000000 21.02750000 -0.2760000000 25.13833333 -0.2736000000 30.23166667 -0.2712000000 36.84500000 -0.2688000000 44.63916667 -0.2664000000 55.30333333 -0.2640000000 64.51750000 -0.2616000000 63.58416667 -0.2592000000 62.81083333 -0.2568000000 59.07416667 -0.2544000000 60.90333333 -0.2520000000 49.95250000 -0.2496000000 30.64166667 -0.2472000000 16.46666667 -0.2448000000 12.35666667 -0.2424000000 10.50833333 -0.2400000000 9.368333333 -0.2376000000 8.535833333 -0.2352000000 7.745000000 -0.2328000000 7.157500000 -0.2304000000 6.755000000 -0.2280000000 6.605833333 -0.2256000000 6.664166667 -0.2232000000 6.903333333 -0.2208000000 7.150000000 -0.2184000000 7.500833333 -0.2160000000 8.049166667 -0.2136000000 8.775000000 -0.2112000000 9.829166667 -0.2088000000 11.62750000 -0.2064000000 14.42166667 -0.2040000000 18.79083333 -0.2016000000 28.45083333 -0.1992000000 39.21583333 -0.1968000000 43.05166667 -0.1944000000 48.15583333 -0.1920000000 50.43666667 -0.1896000000 50.36833333 -0.1872000000 47.97750000 -0.1848000000 46.61500000 -0.1824000000 46.09750000 -0.1800000000 42.42833333 -0.1776000000 38.73583333 -0.1752000000 38.59000000 -0.1728000000 46.66500000 -0.1704000000 70.25000000 -0.1680000000 113.7491667 -0.1656000000 143.1591667 -0.1632000000 137.0108333 -0.1608000000 110.3133333 -0.1584000000 89.18750000 -0.1560000000 73.68750000 -0.1536000000 61.62750000 -0.1512000000 51.12083333 -0.1488000000 42.87166667 -0.1464000000 35.61333333 -0.1440000000 27.83750000 -0.1416000000 22.23000000 -0.1392000000 18.26583333 -0.1368000000 15.33083333 -0.1344000000 13.24333333 -0.1320000000 11.39833333 -0.1296000000 10.01083333 -0.1272000000 8.640000000 -0.1248000000 7.035000000 -0.1224000000 5.234166667 -0.1200000000 4.196666667 -0.1176000000 3.587500000 -0.1152000000 3.172500000 -0.1128000000 2.641666667 -0.1104000000 1.547500000 -0.1080000000 0.9366666667 -0.1056000000 0.5733333333 -0.1032000000 0.3300000000 -0.1008000000 0.1841666667 -0.9840000000E-01 0.9000000000E-01 -0.9600000000E-01 0.8750000000E-01 -0.9360000000E-01 0.1241666667 -0.9120000000E-01 0.2441666667 -0.8880000000E-01 0.4075000000 -0.8640000000E-01 0.6375000000 -0.8400000000E-01 0.9583333333 -0.8160000000E-01 1.426666667 -0.7920000000E-01 2.545833333 -0.7680000000E-01 8.681666667 -0.7440000000E-01 16.60916667 -0.7200000000E-01 25.36166667 -0.6960000000E-01 38.49333333 -0.6720000000E-01 46.55583333 -0.6480000000E-01 46.96916667 -0.6240000000E-01 48.48500000 -0.6000000000E-01 50.50750000 -0.5760000000E-01 53.47750000 -0.5520000000E-01 59.41000000 -0.5280000000E-01 69.00083333 -0.5040000000E-01 74.81583333 -0.4800000000E-01 75.96000000 -0.4560000000E-01 61.30083333 -0.4320000000E-01 49.10750000 -0.4080000000E-01 36.69500000 -0.3840000000E-01 26.27916667 -0.3600000000E-01 18.62500000 -0.3360000000E-01 26.51333333 -0.3120000000E-01 51.33083333 -0.2880000000E-01 84.43583333 -0.2640000000E-01 130.9466667 -0.2400000000E-01 166.8525000 -0.2160000000E-01 162.2741667 -0.1920000000E-01 126.8108333 -0.1680000000E-01 109.1391667 -0.1440000000E-01 133.9591667 -0.1200000000E-01 148.8750000 -0.9600000000E-02 162.2250000 -0.7200000000E-02 120.1783333 -0.4800000000E-02 52.86083333 -0.2400000000E-02 24.80500000 0.000000000 18.98416667 0.2400000000E-02 16.21416667 0.4800000000E-02 14.11916667 0.7200000000E-02 12.29333333 0.9600000000E-02 10.97250000 0.1200000000E-01 9.826666667 0.1440000000E-01 8.863333333 0.1680000000E-01 7.803333333 0.1920000000E-01 7.035833333 0.2160000000E-01 6.377500000 0.2400000000E-01 5.737500000 0.2640000000E-01 5.217500000 0.2880000000E-01 4.827500000 0.3120000000E-01 4.567500000 0.3360000000E-01 4.225000000 0.3600000000E-01 3.974166667 0.3840000000E-01 3.765000000 0.4080000000E-01 3.490833333 0.4320000000E-01 3.353333333 0.4560000000E-01 3.245833333 0.4800000000E-01 2.984166667 0.5040000000E-01 2.853333333 0.5280000000E-01 2.719166667 0.5520000000E-01 2.573333333 0.5760000000E-01 2.452500000 0.6000000000E-01 2.347500000 0.6240000000E-01 2.251666667 0.6480000000E-01 2.046666667 0.6720000000E-01 2.026666667 0.6960000000E-01 1.899166667 0.7200000000E-01 1.780000000 0.7440000000E-01 1.825000000 0.7680000000E-01 1.665000000 0.7920000000E-01 1.655000000 0.8160000000E-01 1.626666667 0.8400000000E-01 1.630833333 0.8640000000E-01 1.645000000 0.8880000000E-01 1.642500000 0.9120000000E-01 1.710000000 0.9360000000E-01 1.698333333 0.9600000000E-01 1.778333333 0.9840000000E-01 1.815833333 0.1008000000 1.867500000 0.1032000000 2.005833333 0.1056000000 2.066666667 0.1080000000 2.250000000 0.1104000000 2.281666667 0.1128000000 2.470000000 0.1152000000 2.684166667 0.1176000000 2.829166667 0.1200000000 3.201666667 0.1224000000 3.572500000 0.1248000000 4.046666667 0.1272000000 4.617500000 0.1296000000 5.293333333 0.1320000000 6.230833333 0.1344000000 7.167500000 0.1368000000 8.099166667 0.1392000000 9.271666667 0.1416000000 10.45583333 0.1440000000 11.88666667 0.1464000000 13.62083333 0.1488000000 15.69833333 0.1512000000 18.12916667 0.1536000000 20.17250000 0.1560000000 21.28166667 0.1584000000 20.88750000 0.1608000000 21.06500000 0.1632000000 21.71583333 0.1656000000 22.15833333 0.1680000000 23.17250000 0.1704000000 24.49166667 0.1728000000 25.87166667 0.1752000000 27.76416667 0.1776000000 27.84750000 0.1800000000 28.56750000 0.1824000000 29.92000000 0.1848000000 29.90166667 0.1872000000 29.06833333 0.1896000000 28.52500000 0.1920000000 28.03000000 0.1944000000 26.81916667 0.1968000000 26.46583333 0.1992000000 26.02333333 0.2016000000 25.66583333 0.2040000000 25.35333333 0.2064000000 24.06583333 0.2088000000 22.77750000 0.2112000000 22.38666667 0.2136000000 21.71833333 0.2160000000 20.79833333 0.2184000000 20.47916667 0.2208000000 21.32500000 0.2232000000 25.78416667 0.2256000000 29.91500000 0.2280000000 32.03916667 0.2304000000 32.59833333 0.2328000000 35.02500000 0.2352000000 37.57500000 0.2376000000 41.52083333 0.2400000000 47.47083333 0.2424000000 54.15916667 0.2448000000 58.76916667 0.2472000000 54.77333333 0.2496000000 50.47416667 0.2520000000 46.33500000 0.2544000000 40.97000000 0.2568000000 36.45583333 0.2592000000 34.82916667 0.2616000000 33.63833333 0.2640000000 30.99750000 0.2664000000 26.14083333 0.2688000000 24.17833333 0.2712000000 20.91083333 0.2736000000 4.166666667 0.2760000000 0.3941666667 0.2784000000 0.2000000000E-01 0.2808000000 0.000000000 0.2832000000 0.000000000 0.2856000000 0.000000000 0.2880000000 0.000000000 0.2904000000 0.000000000 0.2928000000 0.000000000 0.2952000000 0.000000000 0.2976000000 0.000000000 0.3000000000 0.000000000 0.3024000000 0.000000000 0.3048000000 0.000000000 0.3072000000 0.000000000 0.3096000000 0.000000000 0.3120000000 0.000000000 0.3144000000 0.000000000 0.3168000000 0.000000000 0.3192000000 0.000000000 0.3216000000 0.000000000 0.3240000000 0.000000000 0.3264000000 0.000000000 0.3288000000 0.000000000 0.3312000000 0.000000000 0.3336000000 0.000000000 0.3360000000 0.000000000 0.3384000000 0.000000000 0.3408000000 0.000000000 0.3432000000 0.000000000 0.3456000000 0.000000000 0.3480000000 0.000000000 0.3504000000 0.1666666667E-02 0.3528000000 0.3333333333E-02 0.3552000000 0.1000000000E-01 0.3576000000 0.1750000000E-01 0.3600000000 0.4000000000E-01 0.3624000000 0.5083333333E-01 0.3648000000 0.8833333333E-01 0.3672000000 0.1325000000 0.3696000000 0.1975000000 0.3720000000 0.2658333333 0.3744000000 0.3725000000 0.3768000000 0.5266666667 0.3792000000 0.7341666667 0.3816000000 1.002500000 0.3840000000 1.197500000 0.3864000000 1.330833333 0.3888000000 1.442500000 0.3912000000 1.556666667 0.3936000000 1.656666667 0.3960000000 1.745833333 0.3984000000 1.846666667 0.4008000000 1.980000000 0.4032000000 2.038333333 0.4056000000 2.154166667 0.4080000000 2.285833333 0.4104000000 2.280000000 0.4128000000 2.505000000 0.4152000000 2.525000000 0.4176000000 2.727500000 0.4200000000 2.743333333 0.4224000000 2.944166667 0.4248000000 3.066666667 0.4272000000 3.070833333 0.4296000000 3.365833333 0.4320000000 3.349166667 0.4344000000 3.649166667 0.4368000000 3.679166667 0.4392000000 3.880000000 0.4416000000 4.067500000 0.4440000000 4.232500000 0.4464000000 4.469166667 0.4488000000 4.579166667 0.4512000000 4.845833333 0.4536000000 5.067500000 0.4560000000 5.258333333 0.4584000000 5.612500000 0.4608000000 5.894166667 0.4632000000 6.262500000 0.4656000000 6.585000000 0.4680000000 7.224166667 0.4704000000 7.792500000 0.4728000000 8.760833333 0.4752000000 9.805000000 0.4776000000 11.11083333 0.4800000000 12.32250000 0.4824000000 13.92666667 0.4848000000 14.54166667 0.4872000000 15.01250000 0.4896000000 15.34416667 0.4920000000 15.54000000 0.4944000000 15.74250000 0.4968000000 15.73250000 0.4992000000 15.54333333 0.5016000000 15.60583333 0.5040000000 15.61750000 0.5064000000 15.71166667 0.5088000000 16.04250000 0.5112000000 16.30000000 0.5136000000 16.60750000 0.5160000000 16.77500000 0.5184000000 17.21166667 0.5208000000 17.42083333 0.5232000000 17.94083333 0.5256000000 18.24583333 0.5280000000 19.04500000 0.5304000000 19.45000000 0.5328000000 20.21833333 0.5352000000 21.29416667 0.5376000000 22.06500000 0.5400000000 22.17333333 0.5424000000 23.15583333 0.5448000000 23.98750000 0.5472000000 22.43500000 0.5496000000 18.89666667 0.5520000000 16.63333333 0.5544000000 15.11333333 0.5568000000 13.59583333 0.5592000000 12.42333333 0.5616000000 11.14750000 0.5640000000 10.05500000 0.5664000000 8.917500000 0.5688000000 7.934166667 0.5712000000 6.838333333 0.5736000000 5.934166667 0.5760000000 5.045000000 0.5784000000 4.368333333 0.5808000000 3.731666667 0.5832000000 3.260833333 0.5856000000 2.792500000 0.5880000000 2.370000000 0.5904000000 1.945833333 0.5928000000 1.700000000 0.5952000000 1.330833333 0.5976000000 1.141666667 elk-6.3.2/examples/RDMFT/NiO/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334742016320 xustar0030 mtime=1569569250.732638047 30 atime=1569569250.731638047 30 ctime=1569569250.732638047 elk-6.3.2/examples/RDMFT/NiO/elk.in0000644002504400250440000000150313543334742020366 0ustar00dewhurstdewhurst00000000000000 ! Reduced density matrix functional theory (RDMFT) example for NiO. tasks 0 300 10 swidth 0.001 dosocc .false. dos 500 100 0 -0.6 0.6 ! maximum number of RDMFT self-consistent loops rdmmaxscl 2 ! maximum number of iterations per self-consistent loop for determining the ! natural orbitals via steepest-descent maxitc 10 ! maximum number of iterations per self-consistent loop for determining the ! occupation numbers via steepest-descent maxitn 100 ! RDMFT exchange-correlation functional, in this case the 'power functional' rdmxctype 2 ! coefficient of the power functional rdmalpha 0.65 nempty 10 ngridk 4 4 4 vkloff 0.25 0.5 0.625 avec 1.00 1.00 0.00 1.00 0.00 1.00 0.00 1.00 1.00 scale 3.9468 sppath '../../../species/' atoms 2 'Ni.in' 1 0.0 0.0 0.0 'O.in' 1 0.5 0.5 0.5 elk-6.3.2/examples/PaxHeaders.21352/XMCD0000644000000000000000000000013213543334742014332 xustar0030 mtime=1569569250.736638044 30 atime=1569569250.735638045 30 ctime=1569569250.736638044 elk-6.3.2/examples/XMCD/0000755002504400250440000000000013543334742016456 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/XMCD/PaxHeaders.21352/Fe0000644000000000000000000000012613543334743014670 xustar0028 mtime=1569569251.1186378 30 atime=1569569250.736638044 28 ctime=1569569251.1186378 elk-6.3.2/examples/XMCD/Fe/0000755002504400250440000000000013543334743017011 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/XMCD/Fe/PaxHeaders.21352/Fe_lo.in0000644000000000000000000000013213543334743016316 xustar0030 mtime=1569569251.115637802 30 atime=1569569251.114637803 30 ctime=1569569251.115637802 elk-6.3.2/examples/XMCD/Fe/Fe_lo.in0000644002504400250440000000366013543334743020372 0ustar00dewhurstdewhurst00000000000000 'Fe_lo' : spsymb 'iron' : spname -26.0000 : spzn 101799.2074 : spmass 0.392232E-06 2.0000 35.6837 500 : sprmin, rmt, sprmax, nrmt 10 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 T 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 2.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -26.0000 0 T 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -3.6844 0 T 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -2.4317 0 T 2 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -0.5316 0 T elk-6.3.2/examples/XMCD/Fe/PaxHeaders.21352/elk.in0000644000000000000000000000012413543334743016046 xustar0028 mtime=1569569251.1196378 28 atime=1569569251.1186378 28 ctime=1569569251.1196378 elk-6.3.2/examples/XMCD/Fe/elk.in0000644002504400250440000000252013543334743020113 0ustar00dewhurstdewhurst00000000000000 ! Soft x-ray absorption spectroscopy example for bcc Fe, including XAS, XMCD, ! and XMLD. Species file Fe_lo.in has an additional local orbital at the 2p ! energy. Spin-orbit coupling has to be included for 2p 1/2 - 2p 3/2 splitting. ! XAS, XMCD, and XMLD are computed via first order optical response. Fe is ! cubic, hence the following relations hold for B || z: ! ! XAS = 1/3 * Im[ 2*eps_xx + eps_zz ] = 1/3 * Tr(Im[eps]) ! XMCD = Im[ sigma_xy ] = -2*Re[ eps_xy ] ! XMLD = Im[ eps_xx - eps_zz ] ! ! Similarly, the real parts of the epsilon and sigma tensor are related to the ! Faraday effect. A much larger number of k-points is necessary for a well ! converged spectrum. ! Example by Markus Meinert. tasks 0 120 121 wplot 400 200 0 25.0 26.5 ! compute the xx, xy, and zz components optcomp 1 1 1 2 3 3 spinpol .true. spinorb .true. ! use GGA xctype 20 ngridk 8 8 8 bfieldc 0.0 0.0 0.01 ! large number of empty states necessary for "continuum" absorption nempty 20 ! a Lorentzian broadening is applied to the spectrum swidth 0.01 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 atoms 1 : nspecies 'Fe_lo.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/examples/PaxHeaders.21352/libxc0000644000000000000000000000013213543334743014701 xustar0030 mtime=1569569251.123637797 30 atime=1569569251.122637798 30 ctime=1569569251.123637797 elk-6.3.2/examples/libxc/0000755002504400250440000000000013543334743017025 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/libxc/PaxHeaders.21352/Al0000644000000000000000000000013213543334743015235 xustar0030 mtime=1569569251.126637795 30 atime=1569569251.125637796 30 ctime=1569569251.126637795 elk-6.3.2/examples/libxc/Al/0000755002504400250440000000000013543334743017361 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/libxc/Al/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743016415 xustar0030 mtime=1569569251.127637795 30 atime=1569569251.126637795 30 ctime=1569569251.127637795 elk-6.3.2/examples/libxc/Al/elk.in0000644002504400250440000000161613543334743020470 0ustar00dewhurstdewhurst00000000000000 ! Test of libxc (http://www.tddft.org/programs/octopus/wiki/index.php/Libxc). ! The library must be downloaded and compiled separately. Follow the ! instructions in the Elk manual for installation of libxc. tasks 0 ! libxc is selected with xctype(1)=100. The remaining two numbers are the ! exchange and correlation functionals, respectively - in this case Slater ! exchange and Perdew-Wang correlation. Refer to the file ! 'elk/src/libxc_funcs.f90' for the complete list of functionals and ! associated numbers. xctype 100 1 13 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.8267 ! this is the relative path to the species files sppath '../../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/PaxHeaders.21352/miscellaneous0000644000000000000000000000013213543334743016443 xustar0030 mtime=1569569251.505637553 30 atime=1569569251.131637792 30 ctime=1569569251.505637553 elk-6.3.2/examples/miscellaneous/0000755002504400250440000000000013543334743020567 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/miscellaneous/PaxHeaders.21352/GaAs-effective-mass0000644000000000000000000000013213543334743022155 xustar0030 mtime=1569569251.135637789 30 atime=1569569251.131637792 30 ctime=1569569251.135637789 elk-6.3.2/examples/miscellaneous/GaAs-effective-mass/0000755002504400250440000000000013543334743024301 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/miscellaneous/GaAs-effective-mass/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743023335 xustar0030 mtime=1569569251.136637789 30 atime=1569569251.135637789 30 ctime=1569569251.136637789 elk-6.3.2/examples/miscellaneous/GaAs-effective-mass/elk.in0000644002504400250440000000120513543334743025402 0ustar00dewhurstdewhurst00000000000000 ! Effective mass tensors of GaAs using the Perdew-Burke-Ernzerhof GGA functional. ! Try recalculating the tensors with spin-orbit coupling switched on. tasks 0 25 ! k-point at which the effective mass is to be calculated for all states vklem 0.5 0.0 0.0 xctype 20 avec 5.3435 5.3435 0.0000 5.3435 0.0000 5.3435 0.0000 5.3435 5.3435 sppath '../../../species/' atoms 2 : nspecies 'Ga.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'As.in' 1 0.25 0.25 0.25 ngridk 4 4 4 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/miscellaneous/PaxHeaders.21352/Al-STM0000644000000000000000000000013213543334743017440 xustar0030 mtime=1569569251.501637556 30 atime=1569569251.139637787 30 ctime=1569569251.501637556 elk-6.3.2/examples/miscellaneous/Al-STM/0000755002504400250440000000000013543334743021564 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/miscellaneous/Al-STM/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743020620 xustar0030 mtime=1569569251.141637786 30 atime=1569569251.141637786 30 ctime=1569569251.141637786 elk-6.3.2/examples/miscellaneous/Al-STM/elk.in0000644002504400250440000000142013543334743022664 0ustar00dewhurstdewhurst00000000000000 ! STM image of the surface of aluminium with an embedded oygen atom. Try using ! OpenDX to plot the image. tasks 0 162 ! the z-coordinate of the plotting plane is the 'height' of the STM tip plot2d 0.0 0.0 0.25 2.0 0.0 0.25 0.0 2.0 0.25 200 200 ! use small cut-off just for testing rgkmax 6.0 avec 15.0 0.0 0.0 0.0 15.0 0.0 0.0 0.0 7.5 sppath '../../../species/' atoms 2 : nspecies 'Al.in' : spfname 7 : natoms; atposl below 0.0 0.0 0.0 0.0 0.5 0.0 0.50 0.0 0.0 0.25 0.25 0.0 0.25 0.75 0.0 0.75 0.25 0.0 0.75 0.75 0.0 'O.in' 1 0.5 0.5 0.0 ngridk 1 1 1 vkloff 0.25 0.625 0.0 elk-6.3.2/examples/miscellaneous/Al-STM/PaxHeaders.21352/stm2d.general0000644000000000000000000000013213543334743022105 xustar0030 mtime=1569569251.145637783 30 atime=1569569251.145637783 30 ctime=1569569251.145637783 elk-6.3.2/examples/miscellaneous/Al-STM/stm2d.general0000644002504400250440000000027313543334743024156 0ustar00dewhurstdewhurst00000000000000file = ./STM2D.OUT grid = 200 x 200 format = ascii interleaving = field majority = column header = lines 1 field = locations, field0 structure = 2-vector, scalar type = float, float end elk-6.3.2/examples/miscellaneous/Al-STM/PaxHeaders.21352/stm2d.net0000644000000000000000000000013213543334743021256 xustar0030 mtime=1569569251.503637554 30 atime=1569569251.502637555 30 ctime=1569569251.503637554 elk-6.3.2/examples/miscellaneous/Al-STM/stm2d.net0000644002504400250440000001263513543334743023334 0ustar00dewhurstdewhurst00000000000000// // time: Sun Oct 15 18:48:57 2006 // // version: 3.2.0 (format), 4.3.2 (DX) // // // MODULE main // workspace: width = 392, height = 525 // layout: snap = 0, width = 50, height = 50, align = NN // macro main( ) -> ( ) { // // node Import[1]: x = 40, y = 40, inputs = 6, label = Import // input[1]: defaulting = 0, visible = 1, type = 32, value = "stm2d.general" // main_Import_1_out_1 = Import( main_Import_1_in_1, main_Import_1_in_2, main_Import_1_in_3, main_Import_1_in_4, main_Import_1_in_5, main_Import_1_in_6 ) [instance: 1, cache: 1]; // // node Colormap[1]: x = 245, y = 132, inputs = 19, label = Colormap // input[1]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.0] [1.0 0.0] } // input[2]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.0] [1.0 0.0] } // input[3]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 0.0] [1.0 1.0] } // input[4]: defaulting = 0, visible = 0, type = 16777224, value = { [0.0 1.0] [1.0 1.0] } // input[5]: defaulting = 0, visible = 0, type = 32, value = "Colormap_1" // input[7]: defaulting = 1, visible = 0, type = 5, value = 0.0043241107 // input[8]: defaulting = 1, visible = 0, type = 5, value = 0.045520809 // input[9]: defaulting = 1, visible = 0, type = 1, value = 20 // input[12]: defaulting = 0, visible = 0, type = 16777221, value = { 0.0043241107 0.045520809 } // input[17]: defaulting = 0, visible = 0, type = 5, value = 0.0043241107 // input[18]: defaulting = 0, visible = 0, type = 5, value = 0.045520809 // window: position = (0.0000,0.0000), size = 0.6348x0.5859 // main_Colormap_1_out_1[cache: 2], main_Colormap_1_out_2[cache: 2] = Colormap( main_Colormap_1_in_1, main_Colormap_1_in_2, main_Colormap_1_in_3, main_Colormap_1_in_4, main_Colormap_1_in_5, main_Import_1_out_1, main_Colormap_1_in_7, main_Colormap_1_in_8, main_Colormap_1_in_9, main_Colormap_1_in_10, main_Colormap_1_in_11, main_Colormap_1_in_12, main_Colormap_1_in_13, main_Colormap_1_in_14, main_Colormap_1_in_15, main_Colormap_1_in_16, main_Colormap_1_in_17, main_Colormap_1_in_18, main_Colormap_1_in_19 ) [instance: 1, cache: 1]; // // node Color[1]: x = 81, y = 206, inputs = 5, label = Color // main_Color_1_out_1 = Color( main_Import_1_out_1, main_Colormap_1_out_1, main_Color_1_in_3, main_Color_1_in_4, main_Color_1_in_5 ) [instance: 1, cache: 1]; // // node AutoCamera[1]: x = 300, y = 292, inputs = 9, label = AutoCamera // input[3]: defaulting = 0, visible = 0, type = 5, value = 35.0 // input[4]: defaulting = 0, visible = 0, type = 1, value = 512 // input[5]: defaulting = 0, visible = 0, type = 5, value = 1.0 // input[9]: defaulting = 0, visible = 0, type = 32, value = "white" // main_AutoCamera_1_out_1 = AutoCamera( main_Color_1_out_1, main_AutoCamera_1_in_2, main_AutoCamera_1_in_3, main_AutoCamera_1_in_4, main_AutoCamera_1_in_5, main_AutoCamera_1_in_6, main_AutoCamera_1_in_7, main_AutoCamera_1_in_8, main_AutoCamera_1_in_9 ) [instance: 1, cache: 1]; // // node Render[1]: x = 174, y = 347, inputs = 3, label = Render // main_Render_1_out_1 = Render( main_Color_1_out_1, main_AutoCamera_1_out_1, main_Render_1_in_3 ) [instance: 1, cache: 1]; // // node Display[1]: x = 142, y = 463, inputs = 8, label = Display // depth: value = 24 // window: position = (0.0000,0.0000), size = 0.5137x0.7214 // main_Display_1_out_1[cache: 2] = Display( main_Render_1_out_1, main_Display_1_in_2, main_Display_1_in_3, main_Display_1_in_4, main_Display_1_in_5, main_Display_1_in_6, main_Display_1_in_7, main_Display_1_in_8 ) [instance: 1, cache: 1]; // network: end of macro body } main_Import_1_in_1 = "stm2d.general"; main_Import_1_in_2 = NULL; main_Import_1_in_3 = NULL; main_Import_1_in_4 = NULL; main_Import_1_in_5 = NULL; main_Import_1_in_6 = NULL; main_Import_1_out_1 = NULL; main_Colormap_1_in_1 = { [0.0 0.0] [1.0 0.0] }; main_Colormap_1_in_2 = { [0.0 0.0] [1.0 0.0] }; main_Colormap_1_in_3 = { [0.0 0.0] [1.0 1.0] }; main_Colormap_1_in_4 = { [0.0 1.0] [1.0 1.0] }; main_Colormap_1_in_5 = "Colormap_1"; main_Colormap_1_in_7 = NULL; main_Colormap_1_in_8 = NULL; main_Colormap_1_in_9 = NULL; main_Colormap_1_in_10 = NULL; main_Colormap_1_in_11 = NULL; main_Colormap_1_in_12 = { 0.0043241107 0.045520809 }; main_Colormap_1_in_13 = NULL; main_Colormap_1_in_14 = NULL; main_Colormap_1_in_15 = NULL; main_Colormap_1_in_16 = NULL; main_Colormap_1_in_17 = 0.0043241107; main_Colormap_1_in_18 = 0.045520809; main_Colormap_1_in_19 = NULL; main_Colormap_1_out_1 = NULL; main_Color_1_in_3 = NULL; main_Color_1_in_4 = NULL; main_Color_1_in_5 = NULL; main_Color_1_out_1 = NULL; main_AutoCamera_1_in_2 = NULL; main_AutoCamera_1_in_3 = 35.0; main_AutoCamera_1_in_4 = 512; main_AutoCamera_1_in_5 = 1.0; main_AutoCamera_1_in_6 = NULL; main_AutoCamera_1_in_7 = NULL; main_AutoCamera_1_in_8 = NULL; main_AutoCamera_1_in_9 = "white"; main_AutoCamera_1_out_1 = NULL; main_Render_1_in_3 = NULL; main_Render_1_out_1 = NULL; main_Display_1_in_2 = NULL; main_Display_1_in_3 = "X24,,"; main_Display_1_in_4 = NULL; main_Display_1_in_5 = NULL; main_Display_1_in_6 = NULL; main_Display_1_in_7 = NULL; main_Display_1_in_8 = NULL; Executive("product version 4 3 2"); $sync main(); elk-6.3.2/examples/miscellaneous/PaxHeaders.21352/Al-exp[iq.r]0000644000000000000000000000013213543334743020653 xustar0030 mtime=1569569251.507637552 30 atime=1569569251.507637552 30 ctime=1569569251.507637552 elk-6.3.2/examples/miscellaneous/Al-exp[iq.r]/0000755002504400250440000000000013543334743022777 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/miscellaneous/Al-exp[iq.r]/PaxHeaders.21352/elk.in0000644000000000000000000000013013543334743022031 xustar0029 mtime=1569569251.50963755 30 atime=1569569251.508637551 29 ctime=1569569251.50963755 elk-6.3.2/examples/miscellaneous/Al-exp[iq.r]/elk.in0000644002504400250440000000114713543334743024105 0ustar00dewhurstdewhurst00000000000000 ! Computes < i,k+q | exp(iq.r) | j,k > matrix elements. The q-vector is ! stored in vecql and the outputted k-points are selected with kstlist. ! Note that q should be chosen commensurate with the k-point grid. tasks 0 130 vecql 0.0 0.0 0.125 kstlist 1 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.8267 ! this is the relative path to the species files sppath '../../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 ngridk 8 8 8 elk-6.3.2/examples/PaxHeaders.21352/structural-optimisation0000644000000000000000000000013213543334743020525 xustar0030 mtime=1569569251.810637358 30 atime=1569569251.512637549 30 ctime=1569569251.810637358 elk-6.3.2/examples/structural-optimisation/0000755002504400250440000000000013543334743022651 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structural-optimisation/PaxHeaders.21352/Si-atom-opt0000644000000000000000000000013213543334743022636 xustar0030 mtime=1569569251.516637546 30 atime=1569569251.515637547 30 ctime=1569569251.516637546 elk-6.3.2/examples/structural-optimisation/Si-atom-opt/0000755002504400250440000000000013543334743024762 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structural-optimisation/Si-atom-opt/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743024016 xustar0030 mtime=1569569251.517637545 30 atime=1569569251.516637546 30 ctime=1569569251.517637545 elk-6.3.2/examples/structural-optimisation/Si-atom-opt/elk.in0000644002504400250440000000107713543334743026072 0ustar00dewhurstdewhurst00000000000000 ! Silicon geometry optimisation example. The equilibrium atomic positions are ! found using tasks=2. Updated positions are written to GEOMETRY_OPT.OUT for ! each optimisation step. tasks 2 ! use Broyden mixing of the potential mixtype 3 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.27 0.27 0.27 ngridk 2 2 2 vkloff 0.5 0.5 0.5 elk-6.3.2/examples/structural-optimisation/PaxHeaders.21352/BaTiO3-lattice-opt0000644000000000000000000000013213543334743023771 xustar0030 mtime=1569569251.521637543 30 atime=1569569251.520637543 30 ctime=1569569251.521637543 elk-6.3.2/examples/structural-optimisation/BaTiO3-lattice-opt/0000755002504400250440000000000013543334743026115 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structural-optimisation/BaTiO3-lattice-opt/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743025151 xustar0030 mtime=1569569251.522637542 30 atime=1569569251.521637543 30 ctime=1569569251.522637542 elk-6.3.2/examples/structural-optimisation/BaTiO3-lattice-opt/elk.in0000644002504400250440000000135113543334743027220 0ustar00dewhurstdewhurst00000000000000 ! Example taken from the Elk forum demonstrating the lattice optimisation of ! BaTiO3 using the PBEsol functional. With thanks to David Tompsett. ! See: http://sourceforge.net/p/elk/discussion/897820/thread/db2127bd/#24b6 tasks 2 latvopt 1 epspot 1.e-7 epsstress 1.e-3 mixtype 3 xctype 22 lmaxapw 8 rgkmax 8.0 gmaxvr 18.0 ngridk 10 10 10 avec 7.576 0.0 0.0 0.0 7.576 0.0 0.0 0.0 7.576 sppath '../../../species/' atoms 3 : nspecies 'Ba.in' : spfname 1 : natoms; atpos below 0.0 0.0 0.0 'Ti.in' 1 0.5 0.5 0.5 'O.in' 3 0.5 0.5 0.0 0.5 0.0 0.5 0.0 0.5 0.5 elk-6.3.2/examples/structural-optimisation/PaxHeaders.21352/Ge-lattice-opt0000644000000000000000000000013113543334743023302 xustar0030 mtime=1569569251.530637537 29 atime=1569569251.52663754 30 ctime=1569569251.530637537 elk-6.3.2/examples/structural-optimisation/Ge-lattice-opt/0000755002504400250440000000000013543334743025427 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structural-optimisation/Ge-lattice-opt/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743024463 xustar0030 mtime=1569569251.809637359 30 atime=1569569251.808637359 30 ctime=1569569251.809637359 elk-6.3.2/examples/structural-optimisation/Ge-lattice-opt/elk.in0000644002504400250440000000265413543334743026541 0ustar00dewhurstdewhurst00000000000000 ! Unit cell optimisation for Ge with the PBE functional. This is performed with ! geometric optimisation in which the lattice vectors are changed. ! Setting 'latvopt' to 1 performs full unconstrained optimisation of the lattice ! vectors. Setting it to 2 results in an iso-volumetric optimisation. In both ! cases, the atomic positions are also optimised. To constrain the atomic ! positions, set the nuclear mass to be a negative number in the species file. ! As the calculation progresses, you can plot the files TOTENERGY_OPT.OUT and ! STRESSMAX.OUT to see the change in the total energy and stress tensor. The ! modulus of the maximum force on the atoms is written to FORCEMAX.OUT. ! The updated unit cell geometry is written to GEOMETRY_OPT.OUT. The last entry ! in this file contains the final lattice parameters and atomic positions. tasks 2 ! unconstrained optimisation of the lattice vectors latvopt 1 mixtype 3 ! switch on high-quality parameters for accurate stress tensors highq .true. ! switch off automatic determination of the k-point grid autokpt .false. ngridk 4 4 4 ! PBE exchange-correlation functional xctype 20 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 5.3451 sppath '../../../species/' atoms 1 : nspecies 'Ge.in' : spfname 2 : natoms; atposl below 0.0 0.0 0.0 0.25 0.25 0.25 elk-6.3.2/examples/structural-optimisation/PaxHeaders.21352/MgB2-lattice-opt0000644000000000000000000000013213543334743023477 xustar0030 mtime=1569569251.812637357 30 atime=1569569251.812637357 30 ctime=1569569251.812637357 elk-6.3.2/examples/structural-optimisation/MgB2-lattice-opt/0000755002504400250440000000000013543334743025623 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/examples/structural-optimisation/MgB2-lattice-opt/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334743024657 xustar0030 mtime=1569569251.813637356 30 atime=1569569251.813637356 30 ctime=1569569251.813637356 elk-6.3.2/examples/structural-optimisation/MgB2-lattice-opt/elk.in0000644002504400250440000000330413543334743026726 0ustar00dewhurstdewhurst00000000000000 ! Automatic determination of the c/a ratio of MgB2. This is performed with ! geometric optimisation which involves changing of the lattice vectors whilst ! maintaining the unit cell volume. ! Setting 'latvopt' to 1 performs full unconstrained optimisation of the lattice ! vectors. Setting it to 2 results in an optimisation over all strain tensors ! except isotropic scaling. In both cases, the atomic positions are also ! optimised. To constrain the atomic positions, set 'atpopt' to 0 or change the ! nuclear mass to be a negative number in a particular species file. In the case ! of MgB2, the atomic positions remain fixed because of symmetry. ! As the calculation progresses, you can plot the files TOTENERGY_OPT.OUT and ! STRESSMAX.OUT to see the change in the total energy and stress tensor. The ! modulus of the maximum force on the atoms is written to FORCEMAX.OUT. ! The updated unit cell geometry is written to GEOMETRY_OPT.OUT. The last entry ! in this file contains the final lattice parameters and atomic positions. tasks 2 ! lattice vector optimisation while maintaining the unit cell volume latvopt 2 ! high-quality calculation for precise total energies highq .true. ! speed the calculation up with Broyden mixing mixtype 3 avec 5.8316944 0.0 0.0 -2.9158472 5.050395498 0.0 0.0 0.0 6.659394380 ! decrease the unit cell volume to increase the pressure scale 0.9 sppath '../../../species/' atoms 2 : nspecies 'Mg.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'B.in' 2 0.33333333 0.66666667 0.5 0.66666667 0.33333333 0.5 elk-6.3.2/PaxHeaders.21352/tests0000644000000000000000000000013213543334751013123 xustar0030 mtime=1569569257.229633897 30 atime=1569569251.822637351 30 ctime=1569569257.229633897 elk-6.3.2/tests/0000755002504400250440000000000013543334751015247 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/PaxHeaders.21352/tests.sh0000644000000000000000000000013213543334743014677 xustar0030 mtime=1569569251.824637349 30 atime=1569569251.824637349 30 ctime=1569569251.824637349 elk-6.3.2/tests/tests.sh0000755002504400250440000000060013543334743016745 0ustar00dewhurstdewhurst00000000000000#! /bin/sh # Test suite script for the Elk Code for i in test_* do cd $i echo echo "Running test in directory $i..." \rm -f *.OUT gmon.out fort.* ../../src/elk > test.log NERROR=`grep -c Error test.log` if test $NERROR -gt 0 then echo " Failed! See test.log and output files" else echo " Passed" \rm -f *.OUT test.log fort.* gmon.out fi cd .. done elk-6.3.2/tests/PaxHeaders.21352/test_0040000644000000000000000000000013213543334744014467 xustar0030 mtime=1569569252.200637109 30 atime=1569569251.828637347 30 ctime=1569569252.200637109 elk-6.3.2/tests/test_004/0000755002504400250440000000000013543334744016613 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334743016445 xustar0030 mtime=1569569251.830637345 30 atime=1569569251.829637346 30 ctime=1569569251.830637345 elk-6.3.2/tests/test_004/TEST_705.OUT_0000644002504400250440000000010113543334743020504 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334743016442 xustar0030 mtime=1569569251.833637344 30 atime=1569569251.833637344 30 ctime=1569569251.833637344 elk-6.3.2/tests/test_004/TEST_900.OUT_0000644002504400250440000000007013543334743020506 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 749 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334743016443 xustar0030 mtime=1569569251.837637341 30 atime=1569569251.836637342 30 ctime=1569569251.837637341 elk-6.3.2/tests/test_004/TEST_910.OUT_0000644002504400250440000000144713543334743020520 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.206465308646 5 0.206465308646 6 -0.206465308646 7 0.412930617293 8 0.412930617293 9 -0.412930617293 10 0.412930617293 11 0.00000000000 12 0.00000000000 13 0.619395925939 14 0.206465308646 15 -0.206465308646 16 0.825861234586 17 0.412930617293 18 -0.412930617293 19 0.825861234586 20 0.00000000000 21 0.00000000000 22 0.825861234586 23 0.412930617293 24 0.00000000000 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334743016436 xustar0030 mtime=1569569251.840637339 30 atime=1569569251.840637339 30 ctime=1569569251.840637339 elk-6.3.2/tests/test_004/TEST_500.OUT_0000644002504400250440000000013513543334743020504 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.507612944130E-12 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334743016437 xustar0030 mtime=1569569251.844637337 30 atime=1569569251.843637337 30 ctime=1569569251.844637337 elk-6.3.2/tests/test_004/TEST_510.OUT_0000644002504400250440000000014513543334743020506 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.324637504044 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013113543334744016435 xustar0030 mtime=1569569252.169637129 29 atime=1569569252.16863713 30 ctime=1569569252.169637129 elk-6.3.2/tests/test_004/TEST_400.OUT_0000644002504400250440000000014113543334744020501 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.0280730058 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334744016432 xustar0030 mtime=1569569252.172637127 30 atime=1569569252.172637127 30 ctime=1569569252.172637127 elk-6.3.2/tests/test_004/TEST_000.OUT_0000644002504400250440000000012613543334744020500 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -106.907708837 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_121.OUT_0000644000000000000000000000013113543334744016435 xustar0030 mtime=1569569252.187637117 29 atime=1569569252.18363712 30 ctime=1569569252.187637117 elk-6.3.2/tests/test_004/TEST_121.OUT_0000644002504400250440000012273713543334744020521 0ustar00dewhurstdewhurst00000000000000'optical conductivity' 3 800 0.100000000000E-01 1 0.324757240953E-03 0.00000000000 2 0.324762742884E-03 -0.121774871090E-03 3 0.324779249476E-03 -0.243553867311E-03 4 0.324806763124E-03 -0.365341114390E-03 5 0.324845287818E-03 -0.487140739250E-03 6 0.324894829147E-03 -0.608956870610E-03 7 0.324955394301E-03 -0.730793639583E-03 8 0.325026992071E-03 -0.852655180274E-03 9 0.325109632855E-03 -0.974545630386E-03 10 0.325203328660E-03 -0.109646913182E-02 11 0.325308093108E-03 -0.121842983126E-02 12 0.325423941437E-03 -0.134043188084E-02 13 0.325550890512E-03 -0.146247943865E-02 14 0.325688958824E-03 -0.158457666946E-02 15 0.325838166504E-03 -0.170672774524E-02 16 0.325998535324E-03 -0.182893684581E-02 17 0.326170088708E-03 -0.195120815948E-02 18 0.326352851740E-03 -0.207354588363E-02 19 0.326546851169E-03 -0.219595422535E-02 20 0.326752115427E-03 -0.231843740207E-02 21 0.326968674629E-03 -0.244099964219E-02 22 0.327196560591E-03 -0.256364518572E-02 23 0.327435806840E-03 -0.268637828489E-02 24 0.327686448622E-03 -0.280920320484E-02 25 0.327948522920E-03 -0.293212422421E-02 26 0.328222068464E-03 -0.305514563586E-02 27 0.328507125745E-03 -0.317827174745E-02 28 0.328803737032E-03 -0.330150688218E-02 29 0.329111946384E-03 -0.342485537940E-02 30 0.329431799669E-03 -0.354832159532E-02 31 0.329763344579E-03 -0.367190990366E-02 32 0.330106630648E-03 -0.379562469637E-02 33 0.330461709270E-03 -0.391947038431E-02 34 0.330828633715E-03 -0.404345139792E-02 35 0.331207459156E-03 -0.416757218798E-02 36 0.331598242682E-03 -0.429183722630E-02 37 0.332001043321E-03 -0.441625100642E-02 38 0.332415922065E-03 -0.454081804439E-02 39 0.332842941889E-03 -0.466554287947E-02 40 0.333282167777E-03 -0.479043007487E-02 41 0.333733666744E-03 -0.491548421858E-02 42 0.334197507866E-03 -0.504070992402E-02 43 0.334673762300E-03 -0.516611183093E-02 44 0.335162503314E-03 -0.529169460607E-02 45 0.335663806317E-03 -0.541746294408E-02 46 0.336177748884E-03 -0.554342156823E-02 47 0.336704410788E-03 -0.566957523129E-02 48 0.337243874033E-03 -0.579592871630E-02 49 0.337796222879E-03 -0.592248683749E-02 50 0.338361543882E-03 -0.604925444105E-02 51 0.338939925925E-03 -0.617623640606E-02 52 0.339531460252E-03 -0.630343764531E-02 53 0.340136240508E-03 -0.643086310625E-02 54 0.340754362769E-03 -0.655851777185E-02 55 0.341385925588E-03 -0.668640666157E-02 56 0.342031030031E-03 -0.681453483221E-02 57 0.342689779717E-03 -0.694290737895E-02 58 0.343362280862E-03 -0.707152943626E-02 59 0.344048642322E-03 -0.720040617890E-02 60 0.344748975636E-03 -0.732954282292E-02 61 0.345463395073E-03 -0.745894462663E-02 62 0.346192017682E-03 -0.758861689172E-02 63 0.346934963336E-03 -0.771856496422E-02 64 0.347692354784E-03 -0.784879423562E-02 65 0.348464317706E-03 -0.797931014393E-02 66 0.349250980762E-03 -0.811011817482E-02 67 0.350052475649E-03 -0.824122386271E-02 68 0.350868937158E-03 -0.837263279192E-02 69 0.351700503231E-03 -0.850435059789E-02 70 0.352547315021E-03 -0.863638296830E-02 71 0.353409516955E-03 -0.876873564434E-02 72 0.354287256799E-03 -0.890141442192E-02 73 0.355180685718E-03 -0.903442515293E-02 74 0.356089958350E-03 -0.916777374655E-02 75 0.357015232873E-03 -0.930146617053E-02 76 0.357956671073E-03 -0.943550845257E-02 77 0.358914438425E-03 -0.956990668163E-02 78 0.359888704164E-03 -0.970466700940E-02 79 0.360879641363E-03 -0.983979565164E-02 80 0.361887427017E-03 -0.997529888969E-02 81 0.362912242122E-03 -0.101111830719E-01 82 0.363954271764E-03 -0.102474546153E-01 83 0.365013705206E-03 -0.103841200069E-01 84 0.366090735978E-03 -0.105211858054E-01 85 0.367185561972E-03 -0.106586586429E-01 86 0.368298385535E-03 -0.107965452264E-01 87 0.369429413574E-03 -0.109348523395E-01 88 0.370578857654E-03 -0.110735868442E-01 89 0.371746934106E-03 -0.112127556827E-01 90 0.372933864132E-03 -0.113523658790E-01 91 0.374139873923E-03 -0.114924245411E-01 92 0.375365194770E-03 -0.116329388624E-01 93 0.376610063185E-03 -0.117739161241E-01 94 0.377874721024E-03 -0.119153636968E-01 95 0.379159415612E-03 -0.120572890429E-01 96 0.380464399877E-03 -0.121996997185E-01 97 0.381789932482E-03 -0.123426033752E-01 98 0.383136277967E-03 -0.124860077628E-01 99 0.384503706890E-03 -0.126299207313E-01 100 0.385892495975E-03 -0.127743502331E-01 101 0.387302928267E-03 -0.129193043254E-01 102 0.388735293290E-03 -0.130647911727E-01 103 0.390189887206E-03 -0.132108190492E-01 104 0.391667012989E-03 -0.133573963410E-01 105 0.393166980594E-03 -0.135045315493E-01 106 0.394690107138E-03 -0.136522332925E-01 107 0.396236717087E-03 -0.138005103093E-01 108 0.397807142443E-03 -0.139493714611E-01 109 0.399401722947E-03 -0.140988257351E-01 110 0.401020806279E-03 -0.142488822474E-01 111 0.402664748272E-03 -0.143995502457E-01 112 0.404333913130E-03 -0.145508391123E-01 113 0.406028673652E-03 -0.147027583678E-01 114 0.407749411465E-03 -0.148553176738E-01 115 0.409496517269E-03 -0.150085268367E-01 116 0.411270391082E-03 -0.151623958107E-01 117 0.413071442503E-03 -0.153169347016E-01 118 0.414900090973E-03 -0.154721537707E-01 119 0.416756766059E-03 -0.156280634377E-01 120 0.418641907733E-03 -0.157846742856E-01 121 0.420555966673E-03 -0.159419970638E-01 122 0.422499404568E-03 -0.161000426925E-01 123 0.424472694437E-03 -0.162588222669E-01 124 0.426476320956E-03 -0.164183470616E-01 125 0.428510780800E-03 -0.165786285347E-01 126 0.430576582997E-03 -0.167396783326E-01 127 0.432674249296E-03 -0.169015082946E-01 128 0.434804314540E-03 -0.170641304579E-01 129 0.436967327068E-03 -0.172275570621E-01 130 0.439163849119E-03 -0.173918005551E-01 131 0.441394457254E-03 -0.175568735976E-01 132 0.443659742801E-03 -0.177227890688E-01 133 0.445960312306E-03 -0.178895600725E-01 134 0.448296788009E-03 -0.180571999420E-01 135 0.450669808334E-03 -0.182257222467E-01 136 0.453080028402E-03 -0.183951407982E-01 137 0.455528120561E-03 -0.185654696562E-01 138 0.458014774934E-03 -0.187367231356E-01 139 0.460540699995E-03 -0.189089158128E-01 140 0.463106623164E-03 -0.190820625331E-01 141 0.465713291424E-03 -0.192561784175E-01 142 0.468361471968E-03 -0.194312788703E-01 143 0.471051952868E-03 -0.196073795869E-01 144 0.473785543769E-03 -0.197844965615E-01 145 0.476563076620E-03 -0.199626460955E-01 146 0.479385406424E-03 -0.201418448058E-01 147 0.482253412029E-03 -0.203221096338E-01 148 0.485167996947E-03 -0.205034578541E-01 149 0.488130090206E-03 -0.206859070844E-01 150 0.491140647242E-03 -0.208694752947E-01 151 0.494200650827E-03 -0.210541808175E-01 152 0.497311112039E-03 -0.212400423584E-01 153 0.500473071268E-03 -0.214270790065E-01 154 0.503687599275E-03 -0.216153102460E-01 155 0.506955798289E-03 -0.218047559672E-01 156 0.510278803156E-03 -0.219954364791E-01 157 0.513657782544E-03 -0.221873725212E-01 158 0.517093940193E-03 -0.223805852768E-01 159 0.520588516226E-03 -0.225750963862E-01 160 0.524142788524E-03 -0.227709279603E-01 161 0.527758074157E-03 -0.229681025955E-01 162 0.531435730886E-03 -0.231666433883E-01 163 0.535177158733E-03 -0.233665739505E-01 164 0.538983801626E-03 -0.235679184259E-01 165 0.542857149124E-03 -0.237707015066E-01 166 0.546798738220E-03 -0.239749484504E-01 167 0.550810155234E-03 -0.241806850991E-01 168 0.554893037800E-03 -0.243879378970E-01 169 0.559049076947E-03 -0.245967339105E-01 170 0.563280019286E-03 -0.248071008487E-01 171 0.567587669303E-03 -0.250190670842E-01 172 0.571973891770E-03 -0.252326616753E-01 173 0.576440614280E-03 -0.254479143891E-01 174 0.580989829911E-03 -0.256648557252E-01 175 0.585623600021E-03 -0.258835169408E-01 176 0.590344057204E-03 -0.261039300766E-01 177 0.595153408388E-03 -0.263261279843E-01 178 0.600053938103E-03 -0.265501443543E-01 179 0.605048011926E-03 -0.267760137459E-01 180 0.610138080115E-03 -0.270037716177E-01 181 0.615326681430E-03 -0.272334543604E-01 182 0.620616447182E-03 -0.274650993300E-01 183 0.626010105497E-03 -0.276987448835E-01 184 0.631510485823E-03 -0.279344304156E-01 185 0.637120523694E-03 -0.281721963976E-01 186 0.642843265769E-03 -0.284120844173E-01 187 0.648681875166E-03 -0.286541372223E-01 188 0.654639637100E-03 -0.288983987634E-01 189 0.660719964870E-03 -0.291449142420E-01 190 0.666926406193E-03 -0.293937301587E-01 191 0.673262649926E-03 -0.296448943643E-01 192 0.679732533205E-03 -0.298984561143E-01 193 0.686340049019E-03 -0.301544661248E-01 194 0.693089354265E-03 -0.304129766327E-01 195 0.699984778307E-03 -0.306740414576E-01 196 0.707030832093E-03 -0.309377160682E-01 197 0.714232217854E-03 -0.312040576514E-01 198 0.721593839447E-03 -0.314731251854E-01 199 0.729120813379E-03 -0.317449795166E-01 200 0.736818480583E-03 -0.320196834410E-01 201 0.744692418977E-03 -0.322973017902E-01 202 0.752748456910E-03 -0.325779015211E-01 203 0.760992687531E-03 -0.328615518127E-01 204 0.769431484183E-03 -0.331483241665E-01 205 0.778071516891E-03 -0.334382925138E-01 206 0.786919770056E-03 -0.337315333295E-01 207 0.795983561443E-03 -0.340281257517E-01 208 0.805270562590E-03 -0.343281517096E-01 209 0.814788820754E-03 -0.346316960587E-01 210 0.824546782546E-03 -0.349388467245E-01 211 0.834553319397E-03 -0.352496948550E-01 212 0.844817755038E-03 -0.355643349836E-01 213 0.855349895178E-03 -0.358828652022E-01 214 0.866160059592E-03 -0.362053873449E-01 215 0.877259116861E-03 -0.365320071858E-01 216 0.888658522014E-03 -0.368628346481E-01 217 0.900370357384E-03 -0.371979840290E-01 218 0.912407376994E-03 -0.375375742399E-01 219 0.924783054837E-03 -0.378817290635E-01 220 0.937511637481E-03 -0.382305774290E-01 221 0.950608201454E-03 -0.385842537086E-01 222 0.964088715925E-03 -0.389428980350E-01 223 0.977970111298E-03 -0.393066566431E-01 224 0.992270354360E-03 -0.396756822383E-01 225 0.100700853078E-02 -0.400501343935E-01 226 0.102220493577E-02 -0.404301799776E-01 227 0.103788117398E-02 -0.408159936185E-01 228 0.105406026964E-02 -0.412077582053E-01 229 0.107076678837E-02 -0.416056654313E-01 230 0.108802697196E-02 -0.420099163852E-01 231 0.110586888808E-02 -0.424207221925E-01 232 0.112432259661E-02 -0.428383047152E-01 233 0.114342033502E-02 -0.432628973148E-01 234 0.116319672547E-02 -0.436947456859E-01 235 0.118368900656E-02 -0.441341087699E-01 236 0.120493729346E-02 -0.445812597563E-01 237 0.122698487057E-02 -0.450364871842E-01 238 0.124987852159E-02 -0.455000961549E-01 239 0.127366890295E-02 -0.459724096710E-01 240 0.129841096744E-02 -0.464537701177E-01 241 0.132416444624E-02 -0.469445409056E-01 242 0.135099439917E-02 -0.474451082969E-01 243 0.137897184484E-02 -0.479558834410E-01 244 0.140817448494E-02 -0.484773046498E-01 245 0.143868753958E-02 -0.490098399471E-01 246 0.147060471455E-02 -0.495539899353E-01 247 0.150402932564E-02 -0.501102910276E-01 248 0.153907561128E-02 -0.506793191047E-01 249 0.157587027140E-02 -0.512616936663E-01 250 0.161455428038E-02 -0.518580825610E-01 251 0.165528503278E-02 -0.524692073960E-01 252 0.169823889656E-02 -0.530958497495E-01 253 0.174361426709E-02 -0.537388583336E-01 254 0.179163524156E-02 -0.543991572915E-01 255 0.184255606618E-02 -0.550777558532E-01 256 0.189666655316E-02 -0.557757596263E-01 257 0.195429872358E-02 -0.564943838693E-01 258 0.201583501191E-02 -0.572349691787E-01 259 0.208171847611E-02 -0.579990001384E-01 260 0.215246560628E-02 -0.587881276215E-01 261 0.222868253117E-02 -0.596041956340E-01 262 0.231108571147E-02 -0.604492738376E-01 263 0.240052862038E-02 -0.613256972324E-01 264 0.249803650313E-02 -0.622361149297E-01 265 0.260485216909E-02 -0.631835505543E-01 266 0.272249704396E-02 -0.641714776390E-01 267 0.285285362133E-02 -0.652039144952E-01 268 0.299827837029E-02 -0.662855445604E-01 269 0.316175868543E-02 -0.674218702940E-01 270 0.334713463327E-02 -0.686194114612E-01 271 0.355941782265E-02 -0.698859622847E-01 272 0.380525882311E-02 -0.712309264631E-01 273 0.409364679927E-02 -0.726657539887E-01 274 0.443698081662E-02 -0.742045070977E-01 275 0.485275126724E-02 -0.758645784641E-01 276 0.536625004401E-02 -0.776675554022E-01 277 0.601506388350E-02 -0.796401201924E-01 278 0.685674225854E-02 -0.818145597751E-01 279 0.798224152237E-02 -0.842275279692E-01 280 0.953995140001E-02 -0.869129795356E-01 281 0.117784069497E-01 -0.898771403565E-01 282 0.151161908107E-01 -0.930196957037E-01 283 0.202151714178E-01 -0.959017036342E-01 284 0.278170496180E-01 -0.971584193903E-01 285 0.373309407959E-01 -0.937436945754E-01 286 0.435533212971E-01 -0.832507701284E-01 287 0.402681520799E-01 -0.714075117922E-01 288 0.314150905317E-01 -0.662078615142E-01 289 0.235704347901E-01 -0.669214505058E-01 290 0.183396508961E-01 -0.701487379399E-01 291 0.151304969246E-01 -0.740951224262E-01 292 0.132249708541E-01 -0.781459662992E-01 293 0.121506432618E-01 -0.821524344081E-01 294 0.116319503700E-01 -0.861207343933E-01 295 0.115141075977E-01 -0.901042449632E-01 296 0.117143386591E-01 -0.941693809630E-01 297 0.121951753772E-01 -0.983865527168E-01 298 0.129511249283E-01 -0.102829681743 299 0.140034680308E-01 -0.107578805587 300 0.154008075837E-01 -0.112724055037 301 0.172249565109E-01 -0.118370543551 302 0.196034603073E-01 -0.124644007626 303 0.227321966094E-01 -0.131696681678 304 0.269150079706E-01 -0.139711385365 305 0.326337117943E-01 -0.148897243426 306 0.406734115970E-01 -0.159457077605 307 0.523459843603E-01 -0.171466959517 308 0.698620445269E-01 -0.184491790470 309 0.967631262271E-01 -0.196441279499 310 0.137327666472 -0.200592634636 311 0.189971067793 -0.181135945879 312 0.229306196473 -0.122507205548 313 0.218159235162 -0.507467841775E-01 314 0.172385831662 -0.133287578392E-01 315 0.130860618939 -0.109037573114E-01 316 0.105873787265 -0.242974803171E-01 317 0.960503070498E-01 -0.421791803063E-01 318 0.995470860765E-01 -0.591846164621E-01 319 0.116284816382 -0.697763777422E-01 320 0.143396623297 -0.634472489091E-01 321 0.163112450978 -0.303138547507E-01 322 0.150745848149 0.122170638611E-01 323 0.116439621026 0.334096784008E-01 324 0.847458077462E-01 0.330774085502E-01 325 0.627645214196E-01 0.235361447967E-01 326 0.485446972007E-01 0.117570906185E-01 327 0.393557919678E-01 0.181642205542E-03 328 0.333495334734E-01 -0.105801182248E-01 329 0.294274886612E-01 -0.205232312026E-01 330 0.269577767051E-01 -0.298173293698E-01 331 0.255896746744E-01 -0.386683030280E-01 332 0.251543922945E-01 -0.472773631553E-01 333 0.256215476315E-01 -0.558276567492E-01 334 0.270920966229E-01 -0.644659014699E-01 335 0.298050579601E-01 -0.732465137654E-01 336 0.340754774422E-01 -0.820151609321E-01 337 0.400219171351E-01 -0.904358943519E-01 338 0.477076812287E-01 -0.985892491396E-01 339 0.584947545246E-01 -0.106321394404 340 0.736773375878E-01 -0.110483808837 341 0.890938755480E-01 -0.106300810427 342 0.954624363856E-01 -0.976714211951E-01 343 0.950514862241E-01 -0.971326359784E-01 344 0.100241167826 -0.106427847636 345 0.118778932460 -0.118141254640 346 0.154063877686 -0.121041842314 347 0.200398148076 -0.968318762793E-01 348 0.226615580896 -0.344532824574E-01 349 0.201879687330 0.312724539071E-01 350 0.151395448308 0.605468773240E-01 351 0.108361899465 0.604408478442E-01 352 0.794770314445E-01 0.487461411166E-01 353 0.612112024997E-01 0.343420621326E-01 354 0.498126954827E-01 0.202110416875E-01 355 0.429226923366E-01 0.709057770239E-02 356 0.392929726409E-01 -0.494773479536E-02 357 0.384118590523E-01 -0.158293473272E-01 358 0.401045474050E-01 -0.249719377663E-01 359 0.434719850429E-01 -0.309492827468E-01 360 0.452817720251E-01 -0.332733949256E-01 361 0.430612041329E-01 -0.358125522093E-01 362 0.396521556657E-01 -0.420708512641E-01 363 0.380831570775E-01 -0.512775942407E-01 364 0.391139343834E-01 -0.620067303599E-01 365 0.428926738222E-01 -0.735909723624E-01 366 0.497394026653E-01 -0.856486660249E-01 367 0.600363471426E-01 -0.978306475118E-01 368 0.746459047587E-01 -0.110291688102 369 0.965608817938E-01 -0.122492538624 370 0.129873600556 -0.130019189841 371 0.176566855075 -0.122448594230 372 0.226346731176 -0.814212935224E-01 373 0.241239547332 -0.555736803242E-02 374 0.202918758633 0.574911758507E-01 375 0.149338149813 0.787459284476E-01 376 0.108387539438 0.738286374679E-01 377 0.825025490817E-01 0.597037985935E-01 378 0.676093567888E-01 0.437389327584E-01 379 0.605358317964E-01 0.284131161614E-01 380 0.597747989160E-01 0.147697855692E-01 381 0.650370290859E-01 0.409117386742E-02 382 0.763197683961E-01 -0.352062436969E-03 383 0.892346105401E-01 0.758722747185E-02 384 0.905131451771E-01 0.271147682471E-01 385 0.754581526587E-01 0.419692641361E-01 386 0.567321987473E-01 0.440109608510E-01 387 0.424253230675E-01 0.386394982130E-01 388 0.328535458915E-01 0.310068628683E-01 389 0.265302506225E-01 0.232460630437E-01 390 0.222546000586E-01 0.159892934855E-01 391 0.192779105880E-01 0.933921264231E-02 392 0.171541854315E-01 0.323823674309E-02 393 0.156155780949E-01 -0.240841573048E-02 394 0.144980036393E-01 -0.769492721180E-02 395 0.136996041000E-01 -0.127053731785E-01 396 0.131578536109E-01 -0.175133030576E-01 397 0.128371784537E-01 -0.221839944613E-01 398 0.127229230536E-01 -0.267772662749E-01 399 0.128198220282E-01 -0.313501290907E-01 400 0.131547103709E-01 -0.359588027082E-01 401 0.137846884686E-01 -0.406590640048E-01 402 0.148138989335E-01 -0.455017995414E-01 403 0.164245494999E-01 -0.505143272272E-01 404 0.189272538979E-01 -0.556395548957E-01 405 0.228066254455E-01 -0.605566216954E-01 406 0.285574662420E-01 -0.642425086066E-01 407 0.355343999902E-01 -0.645306446884E-01 408 0.397923723342E-01 -0.602601873950E-01 409 0.377692453255E-01 -0.561446472432E-01 410 0.330742437024E-01 -0.570732744207E-01 411 0.300383637894E-01 -0.620030797912E-01 412 0.297979835011E-01 -0.686596785392E-01 413 0.325036587059E-01 -0.756553762550E-01 414 0.384649454503E-01 -0.815903683449E-01 415 0.473575409537E-01 -0.837928212680E-01 416 0.551177459603E-01 -0.792346271692E-01 417 0.547275160482E-01 -0.715441694302E-01 418 0.477616423309E-01 -0.696161172058E-01 419 0.413780781372E-01 -0.746074707505E-01 420 0.383189164723E-01 -0.832597225647E-01 421 0.385394395345E-01 -0.935942423692E-01 422 0.418467156768E-01 -0.104979531563 423 0.486506715318E-01 -0.117271529521 424 0.602203766954E-01 -0.130175106717 425 0.789437960549E-01 -0.142327641803 426 0.108004466346 -0.149174249422 427 0.147123069809 -0.139456751565 428 0.179311866383 -0.100002208530 429 0.174559755164 -0.462457908543E-01 430 0.139703648729 -0.161109014340E-01 431 0.105244184138 -0.140454915592E-01 432 0.823018983469E-01 -0.254896239050E-01 433 0.695638674524E-01 -0.413558521143E-01 434 0.643412168185E-01 -0.583496105024E-01 435 0.652536292917E-01 -0.755107407309E-01 436 0.723690296803E-01 -0.922645658212E-01 437 0.868705643881E-01 -0.106969605821 438 0.109374112673 -0.115223003510 439 0.135196937949 -0.111153653300 440 0.155795257083 -0.963781339956E-01 441 0.170498690671 -0.748627413698E-01 442 0.173608192434 -0.452484586735E-01 443 0.157713090816 -0.200760857307E-01 444 0.133868762583 -0.132206672084E-01 445 0.118062328019 -0.217486277278E-01 446 0.116522862877 -0.342699533610E-01 447 0.127372244030 -0.391800901757E-01 448 0.138879139944 -0.276824553985E-01 449 0.134361739040 -0.839374120357E-02 450 0.118697093274 0.208375798616E-03 451 0.106451547196 -0.143645681174E-03 452 0.969888174210E-01 -0.162813222272E-03 453 0.842938023719E-01 -0.192182794762E-02 454 0.717376716344E-01 -0.104601075539E-01 455 0.641244319390E-01 -0.238093730965E-01 456 0.624226587527E-01 -0.386919713608E-01 457 0.665543958251E-01 -0.528692556233E-01 458 0.761448593024E-01 -0.637241246194E-01 459 0.884303826132E-01 -0.684931387238E-01 460 0.996269533316E-01 -0.686262740858E-01 461 0.111722499699 -0.653883008026E-01 462 0.122355494524 -0.525074718407E-01 463 0.119018656383 -0.334353488763E-01 464 0.102505560955 -0.239462779670E-01 465 0.857572558649E-01 -0.280585390582E-01 466 0.760283291047E-01 -0.397725000071E-01 467 0.742898493121E-01 -0.528069546580E-01 468 0.785403228226E-01 -0.620271847474E-01 469 0.825818124071E-01 -0.643497359748E-01 470 0.794532457480E-01 -0.652058672227E-01 471 0.725561931321E-01 -0.729089923883E-01 472 0.686564201198E-01 -0.872459907654E-01 473 0.700148016046E-01 -0.105117754996 474 0.771773029007E-01 -0.124822424407 475 0.913653663192E-01 -0.145255073699 476 0.114983931929 -0.163970293667 477 0.149841312773 -0.174284959612 478 0.189038689643 -0.165056467673 479 0.211269379005 -0.138552748151 480 0.213400082152 -0.122074746348 481 0.222331789318 -0.122971604159 482 0.251144106767 -0.118557947953 483 0.282555040840 -0.876339141286E-01 484 0.289693385089 -0.400901908350E-01 485 0.271728192343 0.961265467283E-03 486 0.238223044113 0.236543531509E-01 487 0.205054716268 0.215015699314E-01 488 0.188994806514 0.396053330732E-02 489 0.192886584973 -0.112863926244E-01 490 0.205190555271 -0.109120852204E-01 491 0.208677185616 0.154145338512E-02 492 0.199962796379 0.120354799360E-01 493 0.186121706377 0.110201605766E-01 494 0.180948890597 -0.157523330919E-02 495 0.191736315528 -0.116173677935E-01 496 0.207221746605 -0.408024567244E-02 497 0.205881681927 0.132579358455E-01 498 0.192889113782 0.164918196089E-01 499 0.190310349565 0.749492229403E-02 500 0.201599336582 0.584195665933E-02 501 0.208304804982 0.215655193143E-01 502 0.194236934808 0.379347168316E-01 503 0.170256381788 0.351685344676E-01 504 0.154577456921 0.141642063619E-01 505 0.154961193662 -0.153035749600E-01 506 0.173807863771 -0.450465283086E-01 507 0.213103480685 -0.651009047743E-01 508 0.267442023865 -0.582742521467E-01 509 0.308825517364 -0.145874764026E-01 510 0.313148688767 0.374986297850E-01 511 0.299483358171 0.734558467922E-01 512 0.279452967665 0.100238062095 513 0.252780482462 0.114494453224 514 0.228089333040 0.116201137592 515 0.206332747212 0.107439346340 516 0.194523232076 0.858219138951E-01 517 0.202157527886 0.591532470081E-01 518 0.230798110645 0.404274365799E-01 519 0.275000952217 0.421689017656E-01 520 0.320423286228 0.766777523736E-01 521 0.337355972127 0.138758384868 522 0.319569716062 0.195053607516 523 0.286561542373 0.233826878040 524 0.248937300047 0.255293094072 525 0.216618855810 0.265723442275 526 0.186425315243 0.274791259209 527 0.151181252355 0.278427718010 528 0.116947313507 0.269608736001 529 0.914532920841E-01 0.252634507471 530 0.750617557828E-01 0.233688462435 531 0.658011898413E-01 0.215804648855 532 0.622149026720E-01 0.200575048080 533 0.628473780559E-01 0.189970507513 534 0.640212874321E-01 0.185612300364 535 0.615680517211E-01 0.184707298822 536 0.564480812607E-01 0.183527562847 537 0.497415402534E-01 0.181949775667 538 0.413736990044E-01 0.178620372528 539 0.334586552029E-01 0.172636955200 540 0.274335479636E-01 0.165347884379 541 0.231377719669E-01 0.158000020823 542 0.200390905451E-01 0.151085787453 543 0.177272799779E-01 0.144711971289 544 0.159416829108E-01 0.138853730319 545 0.145208818308E-01 0.133452243638 546 0.133628076045E-01 0.128446399945 547 0.124007152707E-01 0.123781661964 548 0.115894092392E-01 0.119411547180 549 0.108972839911E-01 0.115296914232 550 0.103016056029E-01 0.111404758428 551 0.978562756167E-02 0.107707046608 552 0.933677317488E-02 0.104179728246 553 0.894545744183E-02 0.100801932211 554 0.860430450050E-02 0.975553221548E-01 555 0.830761758547E-02 0.944235775788E-01 556 0.805101544239E-02 0.913919709250E-01 557 0.783118236723E-02 0.884470162798E-01 558 0.764569905132E-02 0.855761700547E-01 559 0.749293395973E-02 0.827675677313E-01 560 0.737198327426E-02 0.800097833549E-01 561 0.728265339599E-02 0.772916000357E-01 562 0.722548484466E-02 0.746017803670E-01 563 0.720182101317E-02 0.719288254312E-01 564 0.721393046667E-02 0.692607099043E-01 565 0.726519829799E-02 0.665845785688E-01 566 0.736041185461E-02 0.638863861199E-01 567 0.750618114333E-02 0.611504572631E-01 568 0.771155814546E-02 0.583589375881E-01 569 0.798895872964E-02 0.554910978127E-01 570 0.835555781449E-02 0.525224463263E-01 571 0.883544525798E-02 0.494236030693E-01 572 0.946303932301E-02 0.461589082017E-01 573 0.102886395209E-01 0.426848287530E-01 574 0.113877237419E-01 0.389485182169E-01 575 0.128769669247E-01 0.348877576550E-01 576 0.149425128366E-01 0.304360742474E-01 577 0.178902836431E-01 0.255444172131E-01 578 0.222319473048E-01 0.202532378591E-01 579 0.288023214367E-01 0.149123964988E-01 580 0.387419960514E-01 0.107844994050E-01 581 0.524294237663E-01 0.111892451934E-01 582 0.654903393344E-01 0.207756279373E-01 583 0.680301676444E-01 0.363696611174E-01 584 0.603642115287E-01 0.452633658654E-01 585 0.533180410095E-01 0.443585752363E-01 586 0.525752248256E-01 0.391006123901E-01 587 0.589939193177E-01 0.352020287342E-01 588 0.701465186443E-01 0.389034808890E-01 589 0.764460800362E-01 0.535752731027E-01 590 0.688182382745E-01 0.690760059650E-01 591 0.545314255984E-01 0.739764546715E-01 592 0.430974100492E-01 0.703118696078E-01 593 0.365294719945E-01 0.630932879006E-01 594 0.341047741184E-01 0.547753552567E-01 595 0.353059664282E-01 0.462143208295E-01 596 0.404317513603E-01 0.379276776805E-01 597 0.506396787830E-01 0.311638051935E-01 598 0.671971123561E-01 0.295709148893E-01 599 0.873026116636E-01 0.406106992184E-01 600 0.969672177487E-01 0.676732910064E-01 601 0.847303193906E-01 0.942921839587E-01 602 0.629864030533E-01 0.105053503751 603 0.449593716356E-01 0.104136474979 604 0.328071911823E-01 0.988756504885E-01 605 0.249177089064E-01 0.927578993901E-01 606 0.197080935038E-01 0.869347004818E-01 607 0.161599300560E-01 0.816815147076E-01 608 0.136673786346E-01 0.769943943125E-01 609 0.118701580436E-01 0.727943543641E-01 610 0.105493842331E-01 0.689925542686E-01 611 0.956888003528E-02 0.655088413372E-01 612 0.884260716792E-02 0.622750814460E-01 613 0.831654123879E-02 0.592338337506E-01 614 0.795874615533E-02 0.563358871592E-01 615 0.775451229757E-02 0.535378096078E-01 616 0.770523780582E-02 0.507999560310E-01 617 0.783102369226E-02 0.480854472972E-01 618 0.817825004179E-02 0.453615373863E-01 619 0.883498092683E-02 0.426076767225E-01 620 0.995780337028E-02 0.398431515780E-01 621 0.118039212493E-01 0.372107399619E-01 622 0.146901282827E-01 0.351963949689E-01 623 0.185134778880E-01 0.349676012283E-01 624 0.214066827426E-01 0.377240954764E-01 625 0.205166964806E-01 0.415977345549E-01 626 0.169083434667E-01 0.429667940000E-01 627 0.135038989507E-01 0.416959535552E-01 628 0.112178909708E-01 0.392206482866E-01 629 0.985904725406E-02 0.363730645468E-01 630 0.912950910758E-02 0.334427052461E-01 631 0.883722554489E-02 0.304958222952E-01 632 0.888835898963E-02 0.275252989664E-01 633 0.926183623477E-02 0.245106742988E-01 634 0.999395336308E-02 0.214586413896E-01 635 0.111433719620E-01 0.184653034332E-01 636 0.126290048658E-01 0.157670064505E-01 637 0.139627452436E-01 0.134305681532E-01 638 0.147938194849E-01 0.107501672488E-01 639 0.157318356865E-01 0.705852938648E-02 640 0.174861530448E-01 0.242440900870E-02 641 0.204738346951E-01 -0.296777984937E-02 642 0.251956660126E-01 -0.903472101794E-02 643 0.325428655994E-01 -0.155850342524E-01 644 0.440295040332E-01 -0.218106933095E-01 645 0.616790403464E-01 -0.250426510284E-01 646 0.856723279866E-01 -0.185661040438E-01 647 0.106395729786 0.617870840965E-02 648 0.104896289175 0.413101570694E-01 649 0.834259606291E-01 0.629759439305E-01 650 0.611028986299E-01 0.668963787019E-01 651 0.456405536798E-01 0.620719551288E-01 652 0.363735326171E-01 0.545019659186E-01 653 0.314935631344E-01 0.464424342493E-01 654 0.299067353535E-01 0.385804240333E-01 655 0.313232156562E-01 0.312522556345E-01 656 0.360654843061E-01 0.252366772103E-01 657 0.442974351986E-01 0.227186288060E-01 658 0.532397467626E-01 0.272543306046E-01 659 0.554597879126E-01 0.377793492219E-01 660 0.494628608071E-01 0.452452890324E-01 661 0.424771643553E-01 0.466583083309E-01 662 0.372430802556E-01 0.458786573911E-01 663 0.321487788882E-01 0.440427572099E-01 664 0.275421692878E-01 0.400373939343E-01 665 0.246914532554E-01 0.343436296911E-01 666 0.238209307090E-01 0.278776591628E-01 667 0.248438498419E-01 0.210460815355E-01 668 0.279461511231E-01 0.139969575686E-01 669 0.337731297283E-01 0.704243344171E-02 670 0.434178614207E-01 0.132950136225E-02 671 0.574726493039E-01 0.496144247912E-04 672 0.721403504923E-01 0.819812217383E-02 673 0.772520842864E-01 0.238384926881E-01 674 0.717583235526E-01 0.339923328778E-01 675 0.672999814579E-01 0.347957460264E-01 676 0.703514143266E-01 0.337959314493E-01 677 0.781194964511E-01 0.399359684339E-01 678 0.795336808708E-01 0.549641723030E-01 679 0.694436953386E-01 0.671731084052E-01 680 0.570652124024E-01 0.700465533057E-01 681 0.481898629196E-01 0.679559510052E-01 682 0.427101230040E-01 0.641006911971E-01 683 0.408781259537E-01 0.600952162665E-01 684 0.419845901834E-01 0.589657024175E-01 685 0.416303614556E-01 0.623216677028E-01 686 0.361672258543E-01 0.657257474302E-01 687 0.287973499573E-01 0.649196824549E-01 688 0.230063834528E-01 0.610565286091E-01 689 0.192719375598E-01 0.561098908420E-01 690 0.170939242139E-01 0.509667886581E-01 691 0.160363421485E-01 0.458615263503E-01 692 0.158748879742E-01 0.407836680765E-01 693 0.165680100375E-01 0.356448436120E-01 694 0.182461773490E-01 0.303451761746E-01 695 0.212513577149E-01 0.248326754273E-01 696 0.262317168328E-01 0.192416243332E-01 697 0.342324928608E-01 0.142829356565E-01 698 0.463334169364E-01 0.121779590102E-01 699 0.612254571771E-01 0.175069420722E-01 700 0.711615206575E-01 0.326691095618E-01 701 0.697455648293E-01 0.494105491890E-01 702 0.624190201691E-01 0.604895951928E-01 703 0.536912637398E-01 0.675732083113E-01 704 0.433635053817E-01 0.711321002272E-01 705 0.334826211480E-01 0.699854704445E-01 706 0.264044747227E-01 0.658176534321E-01 707 0.222412692780E-01 0.606922849936E-01 708 0.204199634504E-01 0.556212671884E-01 709 0.205964170302E-01 0.511157304059E-01 710 0.226836270400E-01 0.478739531777E-01 711 0.260357248810E-01 0.472995526113E-01 712 0.279978419120E-01 0.501422211063E-01 713 0.262123566965E-01 0.537060449016E-01 714 0.220896439256E-01 0.550639974439E-01 715 0.179134031125E-01 0.539007911655E-01 716 0.149247592071E-01 0.512277569654E-01 717 0.132250968817E-01 0.480755796846E-01 718 0.124748650581E-01 0.448997669798E-01 719 0.124954753304E-01 0.417091529646E-01 720 0.134658971119E-01 0.385108966534E-01 721 0.157534384718E-01 0.355995954414E-01 722 0.197526990685E-01 0.338242984864E-01 723 0.250703174915E-01 0.350379130285E-01 724 0.285228282604E-01 0.407378714042E-01 725 0.262332281418E-01 0.474722713342E-01 726 0.205295768836E-01 0.502812541938E-01 727 0.154757557175E-01 0.495480021425E-01 728 0.121046704351E-01 0.473640216802E-01 729 0.100941528118E-01 0.448646216432E-01 730 0.905391387225E-02 0.425094784857E-01 731 0.869788836530E-02 0.405882614388E-01 732 0.858771619963E-02 0.393700621467E-01 733 0.804635700704E-02 0.386519121452E-01 734 0.701164039723E-02 0.376947934366E-01 735 0.601261184578E-02 0.362985098598E-01 736 0.527824982525E-02 0.347079625029E-01 737 0.477548312186E-02 0.330968131124E-01 738 0.443187547055E-02 0.315251425296E-01 739 0.419470129191E-02 0.300032401039E-01 740 0.403120884028E-02 0.285251507735E-01 741 0.392153615748E-02 0.270807183576E-01 742 0.385356796416E-02 0.256593640065E-01 743 0.381991865458E-02 0.242510683363E-01 744 0.381624192436E-02 0.228464474100E-01 745 0.384029865130E-02 0.214365490615E-01 746 0.389146553562E-02 0.200125699028E-01 747 0.397052081638E-02 0.185655487256E-01 748 0.407963153898E-02 0.170860416872E-01 749 0.422252207283E-02 0.155637660550E-01 750 0.440484738456E-02 0.139871913213E-01 751 0.463484291255E-02 0.123430528667E-01 752 0.492439289305E-02 0.106157649768E-01 753 0.529077679946E-02 0.878672626670E-02 754 0.575956669148E-02 0.683357008844E-02 755 0.636954782726E-02 0.472959697866E-02 756 0.718129166671E-02 0.244417057551E-02 757 0.829239858848E-02 -0.535456605092E-04 758 0.986459098816E-02 -0.278041474131E-02 759 0.121687722026E-01 -0.569370483415E-02 760 0.156377528056E-01 -0.855490728881E-02 761 0.207976907124E-01 -0.105750599755E-01 762 0.274875962609E-01 -0.988425638213E-02 763 0.327445156776E-01 -0.463282661539E-02 764 0.322354849430E-01 0.217399868010E-02 765 0.277408614500E-01 0.510986878024E-02 766 0.235298954163E-01 0.401574483216E-02 767 0.210874152273E-01 0.780191038895E-03 768 0.205294607682E-01 -0.322343036671E-02 769 0.214244954338E-01 -0.711341520889E-02 770 0.230588945468E-01 -0.105798061052E-01 771 0.247540270461E-01 -0.140866250676E-01 772 0.268729289728E-01 -0.187575855072E-01 773 0.309245078777E-01 -0.248302888558E-01 774 0.383759653917E-01 -0.314716281336E-01 775 0.507062468984E-01 -0.369047718971E-01 776 0.687480030358E-01 -0.371403543965E-01 777 0.887110020062E-01 -0.258736974083E-01 778 0.989279814512E-01 -0.270477727490E-02 779 0.931869350289E-01 0.193304922868E-01 780 0.809014001377E-01 0.303806785597E-01 781 0.714461465613E-01 0.346936241256E-01 782 0.631594971921E-01 0.383101392117E-01 783 0.530981010265E-01 0.388966242159E-01 784 0.446755864940E-01 0.344026196019E-01 785 0.406208902650E-01 0.271886478949E-01 786 0.413026167083E-01 0.198472382045E-01 787 0.463903179957E-01 0.147684998585E-01 788 0.541116990336E-01 0.147861361219E-01 789 0.599666432474E-01 0.213267112342E-01 790 0.585972921737E-01 0.309828527181E-01 791 0.504263619430E-01 0.362967347778E-01 792 0.416428182462E-01 0.346701181581E-01 793 0.361063313777E-01 0.287045165225E-01 794 0.344238344271E-01 0.209689768523E-01 795 0.365123441667E-01 0.127202209251E-01 796 0.428643334852E-01 0.483950326995E-02 797 0.546585677269E-01 -0.814956553081E-03 798 0.722492284690E-01 0.356753325303E-03 799 0.899973458829E-01 0.148722879988E-01 800 0.949995642361E-01 0.406068098908E-01 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334744016442 xustar0030 mtime=1569569252.191637115 30 atime=1569569252.190637116 30 ctime=1569569252.191637115 elk-6.3.2/tests/test_004/TEST_800.OUT_0000644002504400250440000000051713543334744020514 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 8 0.100000000000E-07 1 867.855963688 2 112.499817004 3 25.5315015099 4 79.0562837272 5 27.5430274822 6 39.9023686609 7 18.7274424851 8 14.7204937058 elk-6.3.2/tests/test_004/PaxHeaders.21352/TEST_187.OUT_0000644000000000000000000000013013543334744016450 xustar0029 mtime=1569569252.19863711 30 atime=1569569252.194637113 29 ctime=1569569252.19863711 elk-6.3.2/tests/test_004/TEST_187.OUT_0000644002504400250440000012274313543334744020532 0ustar00dewhurstdewhurst00000000000000'BSE optical conductivity' 3 800 0.100000000000E-02 1 0.290493072322E-03 0.00000000000 2 -0.187271626238E-05 0.00000000000 3 -0.116424541693E-05 0.00000000000 4 -0.187272035117E-05 0.00000000000 5 0.290686807938E-03 0.00000000000 6 -0.456011837114E-06 0.00000000000 7 -0.116424311786E-05 0.00000000000 8 -0.456009056892E-06 0.00000000000 9 0.291787424146E-03 0.00000000000 10 0.290503155027E-03 -0.108918234954E-03 11 -0.187284525049E-05 0.702055069062E-06 12 -0.116435720618E-05 0.436407386469E-06 13 -0.187284876491E-05 0.702058135172E-06 14 0.290696888551E-03 -0.108990889272E-03 15 -0.456099715972E-06 0.170859352790E-06 16 -0.116435523007E-05 0.436405662447E-06 17 -0.456097326159E-06 0.170857268067E-06 18 0.291797530168E-03 -0.109403578351E-03 19 0.290533405852E-03 -0.217844027463E-03 20 -0.187323226403E-05 0.140420658203E-05 21 -0.116469262022E-05 0.872898659681E-06 22 -0.187323405513E-05 0.140421271539E-05 23 0.290727133095E-03 -0.217989334534E-03 24 -0.456363392974E-06 0.341784694634E-06 25 -0.116469161309E-05 0.872895210980E-06 26 -0.456362174580E-06 0.341780524150E-06 27 0.291827850940E-03 -0.218814731740E-03 28 0.290583832915E-03 -0.326784937109E-03 29 -0.187387745073E-05 0.210655101958E-05 30 -0.116525179794E-05 0.130955774107E-05 31 -0.187387636891E-05 0.210656022247E-05 32 0.290777549680E-03 -0.327002893802E-03 33 -0.456802989435E-06 0.512842044925E-06 34 -0.116525240617E-05 0.130955256638E-05 35 -0.456803724055E-06 0.512835786608E-06 36 0.291878394592E-03 -0.328241037231E-03 37 0.290654449757E-03 -0.435748527528E-03 38 -0.187478105690E-05 0.280918493597E-05 39 -0.116603497092E-05 0.174646862151E-05 40 -0.187477595148E-05 0.280919721181E-05 41 0.290848151832E-03 -0.436039129142E-03 42 -0.457418707659E-06 0.684097483761E-06 43 -0.116603784154E-05 0.174646171886E-05 44 -0.457422177855E-06 0.684089134496E-06 45 0.291949174675E-03 -0.437690075951E-03 46 0.290745275345E-03 -0.544742368444E-03 47 -0.187594342761E-05 0.351220499591E-05 48 -0.116704246366E-05 0.218371539607E-05 49 -0.187593314646E-05 0.351222034926E-05 50 0.290938958496E-03 -0.545105608699E-03 51 -0.458210831098E-06 0.855617182356E-06 52 -0.116704824454E-05 0.218370676281E-05 53 -0.458217820797E-06 0.855606737988E-06 54 0.292040210175E-03 -0.547169435116E-03 55 0.290856334087E-03 -0.653774037701E-03 56 -0.187736500704E-05 0.421570801148E-05 57 -0.116827469380E-05 0.262138229887E-05 58 -0.187734839606E-05 0.421572644806E-05 59 0.291049994051E-03 -0.654209908728E-03 60 -0.459179724588E-06 0.102746743353E-05 61 -0.116828403392E-05 0.262137193173E-05 62 -0.459191019465E-06 0.102745488886E-05 63 0.292151525520E-03 -0.656686710069E-03 64 0.290987655845E-03 -0.762851123301E-03 65 -0.187904633871E-05 0.491979097920E-05 66 -0.116973217243E-05 0.305955373809E-05 67 -0.187902224146E-05 0.491981250587E-05 68 0.291181288326E-03 -0.763359615635E-03 69 -0.460325834644E-06 0.119971468228E-05 70 -0.116974572213E-05 0.305954163311E-05 71 -0.460342222517E-06 0.119970003106E-05 72 0.292283150600E-03 -0.766249506325E-03 73 0.291139275952E-03 -0.871981225454E-03 74 -0.188098806596E-05 0.562455111723E-05 75 -0.117141550456E-05 0.349831433104E-05 76 -0.188095532323E-05 0.562457574202E-05 77 0.291332876613E-03 -0.872562328015E-03 78 -0.461649689823E-06 0.137242555652E-05 79 -0.117143391578E-05 0.349830048359E-05 80 -0.461671961045E-06 0.137240879146E-05 81 0.292435120780E-03 -0.875865441614E-03 82 0.291311235237E-03 -0.981171958628E-03 83 -0.188319093245E-05 0.633008590275E-05 84 -0.117332538951E-05 0.393774893944E-05 85 -0.188314838179E-05 0.633011363483E-05 86 0.291504799696E-03 -0.981825658708E-03 87 -0.463151901156E-06 0.154566689792E-05 88 -0.117334931605E-05 0.393773334425E-05 89 -0.463180849011E-06 0.154564801067E-05 90 0.292607476926E-03 -0.985542147938E-03 91 0.291503580050E-03 -0.109043095361E-02 92 -0.188565578267E-05 0.703649310950E-05 93 -0.117546262154E-05 0.437794270490E-05 94 -0.188560225800E-05 0.703652395923E-05 95 0.291697103869E-03 -0.109115723686E-02 96 -0.464833162649E-06 0.171950579294E-05 97 -0.117549271930E-05 0.437792535600E-05 98 -0.464869583746E-06 0.171948477407E-05 99 0.292800265429E-03 -0.109528727364E-02 100 0.291716362287E-03 -0.119976585959E-02 101 -0.188838356266E-05 0.774387084558E-05 102 -0.117782809041E-05 0.481898108459E-05 103 -0.188831789378E-05 0.774390482448E-05 104 0.291909840972E-03 -0.120056470997E-02 105 -0.466694251847E-06 0.189400960405E-05 106 -0.117786501766E-05 0.481896197534E-05 107 -0.466738946519E-06 0.189398644308E-05 108 0.293013538232E-03 -0.120510848545E-02 109 0.291949639427E-03 -0.130918434622E-02 110 -0.189137532070E-05 0.845231759150E-05 111 -0.118042278213E-05 0.526094988715E-05 112 -0.189129633287E-05 0.845235471229E-05 113 0.292143068415E-03 -0.131005574602E-02 114 -0.468736030473E-06 0.206924600122E-05 115 -0.118046719974E-05 0.526092901025E-05 116 -0.468789803180E-06 0.206922068660E-05 117 0.293247352866E-03 -0.131501347063E-02 118 0.292203474564E-03 -0.141869410573E-02 119 -0.189463220811E-05 0.916193223855E-05 120 -0.118324777972E-05 0.570393530895E-05 121 -0.189453872162E-05 0.916197251512E-05 122 0.292396849221E-03 -0.141963803552E-02 123 -0.470959445135E-06 0.224528299361E-05 124 -0.118330035143E-05 0.570391265640E-05 125 -0.471023104868E-06 0.224525551270E-05 126 0.293501772482E-03 -0.142500993901E-02 127 0.292477936448E-03 -0.152830285504E-02 128 -0.189815548014E-05 0.987281412737E-05 129 -0.118630426406E-05 0.614802397057E-05 130 -0.189804630986E-05 0.987285757484E-05 131 0.292671252061E-03 -0.152931929363E-02 132 -0.473365528103E-06 0.242218896156E-05 133 -0.118636565673E-05 0.614799953368E-05 134 -0.473439888789E-06 0.242215930062E-05 135 0.293776865891E-03 -0.153510562513E-02 136 0.292773099528E-03 -0.163801833787E-02 137 -0.190194649699E-05 0.105850630871E-04 138 -0.118959351486E-05 0.659330295365E-05 139 -0.190182045189E-05 0.105851097217E-04 140 0.292966351297E-03 -0.163910726231E-02 141 -0.475955398161E-06 0.260003268888E-05 142 -0.118966439873E-05 0.659327672305E-05 143 -0.476041279075E-06 0.260000083307E-05 144 0.294072707607E-03 -0.164530829036E-02 145 0.293089043997E-03 -0.174784832690E-02 146 -0.190600672480E-05 0.112987794744E-04 147 -0.119311691164E-05 0.703985983814E-05 148 -0.190586260752E-05 0.112988293139E-04 149 0.293282227030E-03 -0.174900971241E-02 150 -0.478730261528E-06 0.277888339548E-05 151 -0.119319796060E-05 0.703983180375E-05 152 -0.478828487706E-06 0.277884932886E-05 153 0.294389377897E-03 -0.175562572506E-02 154 0.293425855844E-03 -0.185780062591E-02 155 -0.191033773681E-05 0.120140642139E-04 156 -0.119687593485E-05 0.748778273988E-05 157 -0.191017434319E-05 0.120141172769E-04 158 0.293618965149E-03 -0.185903444588E-02 159 -0.481691412858E-06 0.295881077035E-05 160 -0.119696782669E-05 0.748775289092E-05 161 -0.481802815514E-06 0.295877447586E-05 162 0.294726962824E-03 -0.186606575071E-02 163 0.293783626906E-03 -0.196788307197E-02 164 -0.191494121460E-05 0.127310188377E-04 165 -0.120087216707E-05 0.793716034865E-05 166 -0.191475733322E-05 0.127310751442E-04 167 0.293976657385E-03 -0.196918929790E-02 168 -0.484840236311E-06 0.313988500494E-05 169 -0.120097558374E-05 0.793712867362E-05 170 -0.484965653264E-06 0.313984646438E-05 171 0.295085554309E-03 -0.197663622212E-02 172 0.294162454929E-03 -0.207810353767E-02 173 -0.191981894939E-05 0.134497455264E-04 174 -0.120510729423E-05 0.838808196670E-05 175 -0.191961336109E-05 0.134498050978E-04 176 0.294355401368E-03 -0.207948213912E-02 177 -0.488178206708E-06 0.332217682695E-05 178 -0.120522292214E-05 0.838804845339E-05 179 -0.488318482800E-06 0.332213602097E-05 180 0.295465250181E-03 -0.208734502963E-02 181 0.294562443625E-03 -0.218846993327E-02 182 -0.192497284346E-05 0.141703471505E-04 183 -0.120958310702E-05 0.884063754770E-05 184 -0.192474432086E-05 0.141704100094E-04 185 0.294755300692E-03 -0.218992087785E-02 186 -0.491706890756E-06 0.350575753455E-05 187 -0.120971163729E-05 0.884060218317E-05 188 -0.491862878291E-06 0.350571444265E-05 189 0.295866154245E-03 -0.219820010132E-02 190 0.294983702741E-03 -0.229899020903E-02 191 -0.193040491162E-05 0.148929273118E-04 192 -0.121430150232E-05 0.929491773628E-05 193 -0.193015221864E-05 0.148929934820E-04 194 0.295176464973E-03 -0.230051346232E-02 195 -0.495427948361E-06 0.369069903110E-05 196 -0.121444363102E-05 0.929488050686E-05 197 -0.495600507537E-06 0.369065363161E-05 198 0.296288376345E-03 -0.230920940526E-02 199 0.295426348129E-03 -0.240967235742E-02 200 -0.193611728280E-05 0.156175903858E-04 201 -0.121926448471E-05 0.975101390811E-05 202 -0.193583917420E-05 0.156176598925E-04 203 0.295619009928E-03 -0.241126788294E-02 204 -0.499343134021E-06 0.387707386038E-05 205 -0.121942091320E-05 0.975097479938E-05 206 -0.499533133372E-06 0.387702613044E-05 207 0.296732032432E-03 -0.242038095180E-02 208 0.295890501818E-03 -0.252052441546E-02 209 -0.194211220176E-05 0.163444415649E-04 210 -0.122447416812E-05 0.102090182105E-04 211 -0.194180742260E-05 0.163445144347E-04 212 0.296083057441E-03 -0.252219217460E-02 213 -0.503454298299E-06 0.406495524232E-05 214 -0.122464560329E-05 0.102089772073E-04 215 -0.503662615144E-06 0.406490515786E-05 216 0.297197244642E-03 -0.253172279587E-02 217 0.296376292090E-03 -0.263155446701E-02 218 -0.194839203085E-05 0.170735869016E-04 219 -0.122993277755E-05 0.106690236039E-04 220 -0.194805931602E-05 0.170736631623E-04 221 0.296568735643E-03 -0.263329441899E-02 222 -0.507763389392E-06 0.425441710933E-05 223 -0.123011993211E-05 0.106689806903E-04 224 -0.507990910287E-06 0.425436464506E-05 225 0.297684141369E-03 -0.264324303928E-02 226 0.296883853568E-03 -0.274277064517E-02 227 -0.195495925190E-05 0.178051333530E-04 228 -0.123564265089E-05 0.111311239035E-04 229 -0.195459732559E-05 0.178052130339E-04 230 0.297076178998E-03 -0.274458274698E-02 231 -0.512272454775E-06 0.444553414324E-05 232 -0.123584624366E-05 0.111310790628E-04 233 -0.512520075972E-06 0.444547927264E-05 234 0.298192857351E-03 -0.275494983312E-02 235 0.297413327298E-03 -0.285418113462E-02 236 -0.196181646820E-05 0.185391888258E-04 237 -0.124160624083E-05 0.115954138223E-04 238 -0.196142404339E-05 0.185392719575E-04 239 0.297605528382E-03 -0.285606534096E-02 240 -0.516983642947E-06 0.463838181282E-05 241 -0.124182699703E-05 0.115953670370E-04 242 -0.517252270862E-06 0.463832450813E-05 243 0.298723533756E-03 -0.286685138011E-02 244 0.297964860841E-03 -0.296579417409E-02 245 -0.196896640659E-05 0.192758622218E-04 246 -0.124782611689E-05 0.120619890140E-04 247 -0.196854218453E-05 0.192759488364E-04 248 0.298156931181E-03 -0.296775043730E-02 249 -0.521899205266E-06 0.483303641208E-05 250 -0.124806476843E-05 0.120619402658E-04 251 -0.522189756952E-06 0.483297664424E-05 252 0.299276318270E-03 -0.297895593706E-02 253 0.298538608370E-03 -0.307761805879E-02 254 -0.197641191968E-05 0.200152634848E-04 255 -0.125430496756E-05 0.125309461178E-04 256 -0.197595458934E-05 0.200153536157E-04 257 0.298730541383E-03 -0.307964632878E-02 258 -0.527021497878E-06 0.502957509912E-05 259 -0.125456225335E-05 0.125308953877E-04 260 -0.527334901503E-06 0.502951283779E-05 261 0.299851365197E-03 -0.309127181730E-02 262 0.299134730768E-03 -0.318966114290E-02 263 -0.198415598811E-05 0.207575036475E-04 264 -0.126104560248E-05 0.130023828028E-04 265 -0.198366422565E-05 0.207575973298E-04 266 0.299326519677E-03 -0.319176136707E-02 267 -0.532352983744E-06 0.522807593587E-05 268 -0.126132226874E-05 0.130023300708E-04 269 -0.532690179083E-06 0.522801114938E-05 270 0.300448835558E-03 -0.320380739321E-02 271 0.299753395736E-03 -0.330193184211E-02 272 -0.199220172305E-05 0.215026948805E-04 273 -0.126805095488E-05 0.134763978140E-04 274 -0.199167419126E-05 0.215027921506E-04 275 0.299945033561E-03 -0.330410396532E-02 276 -0.537896234775E-06 0.542861792850E-05 277 -0.126834775540E-05 0.134763430595E-04 278 -0.538258173706E-06 0.542855058387E-05 279 0.301068897193E-03 -0.331657109871E-02 280 0.300394777903E-03 -0.341443863621E-02 281 -0.200055236866E-05 0.222509505408E-04 282 -0.127532408393E-05 0.139530910195E-04 283 -0.199998771641E-05 0.222510514367E-04 284 0.300586257451E-03 -0.341668260065E-02 285 -0.543653934063E-06 0.563128106873E-05 286 -0.127564178046E-05 0.139530342208E-04 287 -0.544041581067E-06 0.563121113160E-05 288 0.301711724878E-03 -0.342957143187E-02 289 0.301059058937E-03 -0.352719007167E-02 290 -0.200921130483E-05 0.230023852221E-04 291 -0.128286817742E-05 0.144325634574E-04 292 -0.200860816647E-05 0.230024897833E-04 293 0.301250372795E-03 -0.352950581681E-02 294 -0.549628878221E-06 0.583614637594E-05 295 -0.128320753990E-05 0.144325045921E-04 296 -0.550043210903E-06 0.583607381057E-05 297 0.302377500432E-03 -0.354281695751E-02 298 0.301746427671E-03 -0.364019476432E-02 299 -0.201818204992E-05 0.237571148063E-04 300 -0.129068655437E-05 0.149149173851E-04 301 -0.201753904472E-05 0.237572230740E-04 302 0.301937568193E-03 -0.364258222680E-02 303 -0.555823979839E-06 0.604329594016E-05 304 -0.129104836134E-05 0.149148564299E-04 305 -0.556265989444E-06 0.604322070940E-05 306 0.303066412845E-03 -0.365631630985E-02 307 0.302457080225E-03 -0.375346140205E-02 308 -0.202746826369E-05 0.245152565156E-04 309 -0.129878266792E-05 0.154002563285E-04 310 -0.202678399523E-05 0.245153685324E-04 311 0.302648039525E-03 -0.375592051563E-02 312 -0.562242270047E-06 0.625281296612E-05 313 -0.129916770678E-05 0.154001932594E-04 314 -0.562712961998E-06 0.625273503138E-05 315 0.303778658397E-03 -0.377007819525E-02 316 0.303191220141E-03 -0.386699874757E-02 317 -0.203707375037E-05 0.252769289657E-04 318 -0.130716010826E-05 0.158886851335E-04 319 -0.203634680594E-05 0.252770447759E-04 320 0.303381990079E-03 -0.386952944299E-02 321 -0.568886901205E-06 0.646478181809E-05 322 -0.130756917564E-05 0.158886199252E-04 323 -0.569387295641E-06 0.646470113933E-05 324 0.304514440797E-03 -0.388411139494E-02 325 0.303949058516E-03 -0.398081564121E-02 326 -0.204700246184E-05 0.260422522204E-04 327 -0.131582260571E-05 0.163803100169E-04 328 -0.204623141181E-05 0.260423718702E-04 329 0.304139630691E-03 -0.398341784613E-02 330 -0.575761149702E-06 0.667928806594E-05 331 -0.131625650779E-05 0.163802426435E-04 332 -0.576292282035E-06 0.667920460162E-05 333 0.305273971312E-03 -0.399842476782E-02 334 0.304730814147E-03 -0.409492100374E-02 335 -0.205725850095E-05 0.268113478475E-04 336 -0.132477403395E-05 0.168752386205E-04 337 -0.205644189814E-05 0.268114713845E-04 338 0.304921179884E-03 -0.409759464264E-02 339 -0.582868418896E-06 0.689641853216E-05 340 -0.132523358684E-05 0.168751690551E-04 341 -0.583431340372E-06 0.689633223921E-05 342 0.306057468917E-03 -0.411302725333E-02 343 0.305536713680E-03 -0.420932383934E-02 344 -0.206784612502E-05 0.275843389757E-04 345 -0.133401841340E-05 0.173735800647E-04 346 -0.206698250406E-05 0.275844664495E-04 347 0.305726864020E-03 -0.421206883339E-02 348 -0.590212242175E-06 0.711626134002E-05 349 -0.133450444344E-05 0.173735082794E-04 350 -0.590808020448E-06 0.711617217384E-05 351 0.306865160438E-03 -0.422792787437E-02 352 0.306366991764E-03 -0.432403323854E-02 353 -0.207876974946E-05 0.283613503528E-04 354 -0.134355991473E-05 0.178754450046E-04 355 -0.207785762612E-05 0.283614818146E-04 356 0.306556917452E-03 -0.432684950550E-02 357 -0.597796286151E-06 0.733890596292E-05 358 -0.134407325889E-05 0.178753709706E-04 359 -0.598426005874E-06 0.733881387731E-05 360 0.307697280711E-03 -0.434313574023E-02 361 0.307221891215E-03 -0.443905838122E-02 362 -0.209003395156E-05 0.291425084057E-04 363 -0.135340286251E-05 0.183809456865E-04 364 -0.208907182208E-05 0.291426439086E-04 365 0.307411582687E-03 -0.444194583535E-02 366 -0.605624354004E-06 0.756444327499E-05 367 -0.135394436876E-05 0.183808693739E-04 368 -0.606289117425E-06 0.756434822213E-05 369 0.308554072744E-03 -0.445866004966E-02 370 0.308101663182E-03 -0.455440853974E-02 371 -0.210164347446E-05 0.299279413013E-04 372 -0.136355173906E-05 0.188901960067E-04 373 -0.210062981486E-05 0.299280809003E-04 374 0.308291110553E-03 -0.455736709166E-02 375 -0.613700388963E-06 0.779296560286E-05 376 -0.136412226671E-05 0.188901173847E-04 377 -0.614401316537E-06 0.779286753328E-05 378 0.309435787881E-03 -0.457451009396E-02 379 0.309006567322E-03 -0.467009308206E-02 380 -0.211360323125E-05 0.307177790094E-04 381 -0.137401118845E-05 0.194033115710E-04 382 -0.211253649661E-05 0.307179227614E-04 383 0.309195760374E-03 -0.467312263862E-02 384 -0.622028477937E-06 0.802456677891E-05 385 -0.137461160854E-05 0.194032306076E-04 386 -0.622766708954E-06 0.802446564147E-05 387 0.310342685981E-03 -0.469069526008E-02 388 0.309936871982E-03 -0.478612147497E-02 389 -0.212591830927E-05 0.315121533668E-04 390 -0.138478602064E-05 0.199204097561E-04 391 -0.212479693301E-05 0.315123013306E-04 392 0.310125800152E-03 -0.478922193915E-02 393 -0.630612855307E-06 0.825934219580E-05 394 -0.138541721635E-05 0.199203264186E-04 395 -0.631389548525E-06 0.825923793761E-05 396 0.311275035599E-03 -0.480722503389E-02 397 0.310892854392E-03 -0.490250328740E-02 398 -0.213859397462E-05 0.323111981432E-04 399 -0.139588121581E-05 0.204416097728E-04 400 -0.213741636777E-05 0.323113503796E-04 401 0.311081506756E-03 -0.490567455815E-02 402 -0.639457906872E-06 0.849738886248E-05 403 -0.139654408285E-05 0.204415240271E-04 404 -0.640274241177E-06 0.849728142889E-05 405 0.312233114173E-03 -0.492410900348E-02 406 0.311874800856E-03 -0.501924819371E-02 407 -0.215163567676E-05 0.331150491088E-04 408 -0.140730192891E-05 0.209670327302E-04 409 -0.215040022721E-05 0.331152056808E-04 410 0.312063166116E-03 -0.502249016586E-02 411 -0.648568173973E-06 0.873880546171E-05 412 -0.140799737591E-05 0.209669445412E-04 413 -0.649425349042E-06 0.873869479627E-05 414 0.313217208227E-03 -0.504135686247E-02 415 0.312883006962E-03 -0.513636597723E-02 416 -0.216504905347E-05 0.339238441036E-04 417 -0.141905349437E-05 0.214968017023E-04 418 -0.216375412514E-05 0.339240050761E-04 419 0.313071073431E-03 -0.513967854127E-02 420 -0.657948357779E-06 0.898369240917E-05 421 -0.141978244330E-05 0.214967110339E-04 422 -0.658847594767E-06 0.898357845359E-05 423 0.314227613568E-03 -0.515897841349E-02 424 0.313917777789E-03 -0.525386653368E-02 425 -0.217883993582E-05 0.347377231088E-04 426 -0.143114143099E-05 0.220310417960E-04 427 -0.217748386793E-05 0.347378885490E-04 428 0.314105533378E-03 -0.525724957567E-02 429 -0.667603323766E-06 0.923215191419E-05 430 -0.143190481757E-05 0.220309486108E-04 431 -0.668545866002E-06 0.923203460827E-05 432 0.315264635503E-03 -0.527698357165E-02 433 0.314979428136E-03 -0.537175987480E-02 434 -0.219301435353E-05 0.355568283196E-04 435 -0.144357144706E-05 0.225698802210E-04 436 -0.219159545972E-05 0.355569982970E-04 437 0.315166860338E-03 -0.537521327621E-02 438 -0.677538106374E-06 0.948428804220E-05 439 -0.144437022122E-05 0.225697844806E-04 440 -0.678525220078E-06 0.948416732382E-05 441 0.316328589062E-03 -0.539538236822E-02 442 0.316068282746E-03 -0.549005613204E-02 443 -0.220757854039E-05 0.363813042209E-04 444 -0.145634944568E-05 0.231134463620E-04 445 -0.220609510794E-05 0.363814788070E-04 446 0.316255378616E-03 -0.549357976959E-02 447 -0.687757913866E-06 0.974020677892E-05 448 -0.145718457199E-05 0.231133480266E-04 449 -0.688790888885E-06 0.974008258397E-05 450 0.317419799223E-03 -0.551418495420E-02 451 0.317184676544E-03 -0.560876556031E-02 452 -0.222253894008E-05 0.372112976637E-04 453 -0.146948153035E-05 0.236618718524E-04 454 -0.222098922900E-05 0.372114769326E-04 455 0.317371422690E-03 -0.561235930578E-02 456 -0.698268133390E-06 0.100000160965E-04 457 -0.147035398845E-05 0.236617708811E-04 458 -0.699348283943E-06 0.999988835884E-05 459 0.318538601154E-03 -0.563340160418E-02 460 0.318328954892E-03 -0.572789854184E-02 461 -0.223790221203E-05 0.380469579455E-04 462 -0.148297401071E-05 0.242152906506E-04 463 -0.223628445421E-05 0.380471419736E-04 464 0.318515337450E-03 -0.573156226193E-02 465 -0.709074336245E-06 0.102638260215E-04 466 -0.148388479580E-05 0.242151870013E-04 467 -0.710203001699E-06 0.102636946729E-04 468 0.319685340462E-03 -0.575304272014E-02 469 0.319501473838E-03 -0.584746559014E-02 470 -0.225367523771E-05 0.388884368913E-04 471 -0.149683340857E-05 0.247738391181E-04 472 -0.225198763598E-05 0.388886257572E-04 473 0.319687478460E-03 -0.585119914626E-02 474 -0.720182283382E-06 0.105317487049E-04 475 -0.149778353186E-05 0.247737327473E-04 476 -0.721360829037E-06 0.105316136750E-04 477 0.320860373448E-03 -0.587311883545E-02 478 0.320702600391E-03 -0.596747735402E-02 479 -0.226986512706E-05 0.397358889377E-04 480 -0.151106646418E-05 0.253376561003E-04 481 -0.226810585430E-05 0.397360827230E-04 482 0.320888212225E-03 -0.597128060214E-02 483 -0.731597931121E-06 0.108038984942E-04 484 -0.151205695340E-05 0.253375469633E-04 485 -0.732827749018E-06 0.108037597105E-04 486 0.322064067374E-03 -0.599364061887E-02 487 0.321932712794E-03 -0.608794462179E-02 488 -0.228647922526E-05 0.405894712198E-04 489 -0.152568014278E-05 0.259068830093E-04 490 -0.228464642339E-05 0.405896700084E-04 491 0.322117916463E-03 -0.609181741222E-02 492 -0.743327437112E-06 0.110803920079E-04 493 -0.152671204264E-05 0.259067710601E-04 494 -0.744609946864E-06 0.110802493956E-04 495 0.323296800746E-03 -0.611461887875E-02 496 0.323192200817E-03 -0.620887832547E-02 497 -0.230352511969E-05 0.414493436600E-04 498 -0.154068164138E-05 0.264816639096E-04 499 -0.230161689873E-05 0.414495475385E-04 500 0.323376980403E-03 -0.621282050267E-02 501 -0.755377166546E-06 0.113613482120E-04 502 -0.154175601410E-05 0.264815491007E-04 503 -0.756713816191E-06 0.113612016940E-04 504 0.324558963599E-03 -0.623606456726E-02 505 0.324481466055E-03 -0.633028954520E-02 506 -0.232101064727E-05 0.423156690597E-04 507 -0.155607839587E-05 0.270621456059E-04 508 -0.231902508432E-05 0.423158781175E-04 509 0.324665805075E-03 -0.633430094758E-02 510 -0.767753698629E-06 0.116468884986E-04 511 -0.155719632169E-05 0.270620278884E-04 512 -0.769145965496E-06 0.116467379955E-04 513 0.325850957797E-03 -0.635798878477E-02 514 0.325800922239E-03 -0.645218951368E-02 515 -0.233894390210E-05 0.431886131940E-04 516 -0.157187808837E-05 0.276484777342E-04 517 -0.233687904026E-05 0.431888275233E-04 518 0.325984803627E-03 -0.645626997338E-02 519 -0.780463833317E-06 0.119371367680E-04 520 -0.157304066608E-05 0.276483570579E-04 521 -0.781913224928E-06 0.119369821979E-04 522 0.327173197348E-03 -0.648040278435E-02 523 0.327150995563E-03 -0.657458962081E-02 524 -0.235733324332E-05 0.440683449091E-04 525 -0.158808865494E-05 0.282408128551E-04 526 -0.235518709067E-05 0.440685646049E-04 527 0.327334401644E-03 -0.657873896346E-02 528 -0.793514598342E-06 0.122322195123E-04 529 -0.158929700242E-05 0.282406891682E-04 530 -0.795022653330E-06 0.122320607907E-04 531 0.328526108724E-03 -0.660331797633E-02 532 0.328532125016E-03 -0.669750141838E-02 533 -0.237618730339E-05 0.449550362224E-04 534 -0.160471829358E-05 0.288393065504E-04 535 -0.237395783187E-05 0.449552613830E-04 536 0.328715037488E-03 -0.670171946291E-02 537 -0.806913256535E-06 0.125322659020E-04 538 -0.160597354838E-05 0.288391797997E-04 539 -0.808481545587E-06 0.125321029421E-04 540 0.329910131200E-03 -0.672674593306E-02 541 0.329944762737E-03 -0.682093662495E-02 542 -0.239551499674E-05 0.458488624267E-04 543 -0.162177547260E-05 0.294441175229E-04 544 -0.239320014099E-05 0.458490931531E-04 545 0.330127162644E-03 -0.682522318332E-02 546 -0.820667313445E-06 0.128374078757E-04 547 -0.162307879248E-05 0.294439876536E-04 548 -0.822297440273E-06 0.128372405879E-04 549 0.331325717202E-03 -0.685069839377E-02 550 0.331389374373E-03 -0.694490713083E-02 551 -0.241532552864E-05 0.467500021964E-04 552 -0.163926893927E-05 0.300554076990E-04 553 -0.241292318487E-05 0.467502385930E-04 554 0.331571242083E-03 -0.694926200776E-02 555 -0.834784525294E-06 0.131477802324E-04 556 -0.164062150281E-05 0.300552746547E-04 557 -0.836478127631E-06 0.131476085245E-04 558 0.332773332671E-03 -0.697518726954E-02 559 0.332866439458E-03 -0.706942500317E-02 560 -0.243562840459E-05 0.476586376982E-04 561 -0.165720772890E-05 0.306733423346E-04 562 -0.243313642936E-05 0.476588798726E-04 563 0.333047754635E-03 -0.707384799595E-02 564 -0.849272907257E-06 0.134635207271E-04 565 -0.165861073609E-05 0.306732060573E-04 566 -0.851031657882E-06 0.134633445040E-04 567 0.334253457440E-03 -0.710022464841E-02 568 0.334376451809E-03 -0.719450249129E-02 569 -0.245643344005E-05 0.485749547048E-04 570 -0.167560117430E-05 0.312980901250E-04 571 -0.245384964903E-05 0.485752027679E-04 572 0.334557193387E-03 -0.719899338945E-02 573 -0.864140742096E-06 0.137847701690E-04 574 -0.167705584715E-05 0.312979505550E-04 575 -0.865966349887E-06 0.137845893329E-04 576 0.335766585625E-03 -0.722582280068E-02 577 0.335919919926E-03 -0.732015203204E-02 578 -0.247775077054E-05 0.494991427122E-04 579 -0.169445891559E-05 0.319298233179E-04 580 -0.247507293722E-05 0.494993967785E-04 581 0.336100066084E-03 -0.732471061710E-02 582 -0.879396589166E-06 0.141116725238E-04 583 -0.169596649877E-05 0.319296803938E-04 584 -0.881290800182E-06 0.141114869738E-04 585 0.337313226036E-03 -0.735199418431E-02 586 0.337497367421E-03 -0.744638625539E-02 587 -0.249959086222E-05 0.504313950612E-04 588 -0.171379091046E-05 0.325687178302E-04 589 -0.249681671662E-05 0.504316552488E-04 590 0.337676895552E-03 -0.745101230056E-02 591 -0.895049293797E-06 0.144443750187E-04 592 -0.171535267196E-05 0.325685714889E-04 593 -0.897013892388E-06 0.144441846510E-04 594 0.338893902594E-03 -0.747875145053E-02 595 0.339109333457E-03 -0.757321799019E-02 596 -0.252196452292E-05 0.513719090631E-04 597 -0.173360744486E-05 0.332149533688E-04 598 -0.251909175020E-05 0.513721754936E-04 599 0.339288220139E-03 -0.757791126009E-02 600 -0.911107997081E-06 0.147830282518E-04 601 -0.173522467664E-05 0.332148035453E-04 602 -0.913144807037E-06 0.147828329594E-04 603 0.340509154775E-03 -0.760610744949E-02 604 0.340756373202E-03 -0.770066027002E-02 605 -0.254488291357E-05 0.523208861287E-04 606 -0.175391914419E-05 0.338687135558E-04 607 -0.254190915267E-05 0.523211589276E-04 608 0.340934594167E-03 -0.770542052035E-02 609 -0.927582146078E-06 0.151277863039E-04 610 -0.175559316286E-05 0.338685601833E-04 611 -0.929693031806E-06 0.151275859768E-04 612 0.342159538069E-03 -0.773407523627E-02 613 0.342439058310E-03 -0.782872633932E-02 614 -0.256835756023E-05 0.532785319025E-04 615 -0.177473698483E-05 0.345301860572E-04 616 -0.256528040237E-05 0.532788111993E-04 617 0.342616588413E-03 -0.783355331654E-02 618 -0.944481504463E-06 0.154788068560E-04 619 -0.177646913239E-05 0.345300290669E-04 620 -0.946668372194E-06 0.154786013807E-04 621 0.343845624451E-03 -0.786266807687E-02 622 0.344157977411E-03 -0.795742965960E-02 623 -0.259240036650E-05 0.542450564014E-04 624 -0.179607230637E-05 0.351995627167E-04 625 -0.258921735374E-05 0.542453423296E-04 626 0.344334790595E-03 -0.796232310060E-02 627 -0.961816163627E-06 0.158362513093E-04 628 -0.179786395087E-05 0.351994020381E-04 629 -0.964080962671E-06 0.158360405691E-04 630 0.345568002876E-03 -0.799189945450E-02 631 0.345913736626E-03 -0.808678391590E-02 632 -0.261702362659E-05 0.552206741576E-04 633 -0.181793682416E-05 0.358770396940E-04 634 -0.261373225027E-05 0.552209668548E-04 635 0.346089805888E-03 -0.809174354768E-02 636 -0.979596554268E-06 0.162002849102E-04 637 -0.181978936049E-05 0.358768752544E-04 638 -0.981941278292E-06 0.162000687847E-04 639 0.347327279797E-03 -0.812178307606E-02 640 0.347706960103E-03 -0.821680302346E-02 641 -0.264224003889E-05 0.562056043670E-04 642 -0.184034264258E-05 0.365628176076E-04 643 -0.263883773804E-05 0.562059039752E-04 644 0.347882257458E-03 -0.822182856271E-02 645 -0.997833458479E-06 0.165710768797E-04 646 -0.184225749320E-05 0.365626493323E-04 647 -0.100026014683E-05 0.165708552451E-04 648 0.349124079694E-03 -0.825233287870E-02 649 0.349538290571E-03 -0.834750113451E-02 650 -0.266806272011E-05 0.572000710423E-04 651 -0.186330226875E-05 0.372571016831E-04 652 -0.266454687979E-05 0.572003777081E-04 653 0.349712787015E-03 -0.835259228728E-02 654 -0.101653802237E-05 0.169488005471E-04 655 -0.186528088450E-05 0.372569294952E-04 656 -0.101904876145E-05 0.169485732757E-04 657 0.350959045634E-03 -0.838356303676E-02 658 0.351408389920E-03 -0.847889264537E-02 659 -0.269450522009E-05 0.582043031723E-04 660 -0.188682862691E-05 0.379601019063E-04 661 -0.269087316973E-05 0.582046170466E-04 662 0.351582055389E-03 -0.848404910667E-02 663 -0.103572176924E-05 0.173336334888E-04 664 -0.188887248779E-05 0.379599257268E-04 665 -0.103831869387E-05 0.173334004493E-04 666 0.352832839846E-03 -0.851548796874E-02 667 0.353317939802E-03 -0.861099220369E-02 668 -0.272158153721E-05 0.592185348856E-04 669 -0.191093507342E-05 0.386720331820E-04 670 -0.271783054884E-05 0.592188561244E-04 671 0.353490743133E-03 -0.861621365710E-02 672 -0.105539661332E-05 0.177257576721E-04 673 -0.191304568944E-05 0.386718529296E-04 674 -0.105808190825E-05 0.177255187292E-04 675 0.354746144325E-03 -0.864812234464E-02 676 0.355267642257E-03 -0.874381471599E-02 677 -0.274930613451E-05 0.602430056214E-04 678 -0.193563541243E-05 0.393931154987E-04 679 -0.274543342094E-05 0.602433343853E-04 680 0.355439551146E-03 -0.874910083323E-02 681 -0.107557487417E-05 0.181253596041E-04 682 -0.193781432442E-05 0.393929310899E-04 683 -0.107835077551E-05 0.181251146185E-04 684 0.356699661459E-03 -0.878148109345E-02 685 0.357258220366E-03 -0.887737535538E-02 686 -0.277769395649E-05 0.612779603055E-04 687 -0.196094391218E-05 0.401235740989E-04 688 -0.277369666947E-05 0.612782967605E-04 689 0.357429201321E-03 -0.888272579586E-02 690 -0.109626929165E-05 0.185326304863E-04 691 -0.196319269271E-05 0.401233854477E-04 692 -0.109913808841E-05 0.185323793145E-04 693 0.358694114675E-03 -0.891557941086E-02 694 0.359290418929E-03 -0.901168956957E-02 695 -0.280676044671E-05 0.623236495333E-04 696 -0.198687532214E-05 0.408636396559E-04 697 -0.280263567494E-05 0.623239938504E-04 698 0.359460437227E-03 -0.901710397996E-02 699 -0.111749304158E-05 0.189477663747E-04 700 -0.198919557639E-05 0.408634466740E-04 701 -0.112045707730E-05 0.189475088690E-04 702 0.360730249125E-03 -0.905043276731E-02 703 0.361365005171E-03 -0.914677308910E-02 704 -0.283652156609E-05 0.633803297593E-04 705 -0.201344489079E-05 0.416135484572E-04 706 -0.283226633326E-05 0.633806821151E-04 707 0.361534024806E-03 -0.915225110286E-02 708 -0.113925975218E-05 0.193709683462E-04 709 -0.201583825747E-05 0.416133510537E-04 710 -0.114232142652E-05 0.193707043542E-04 711 0.362808832385E-03 -0.918605691618E-02 712 0.363482769477E-03 -0.928264193587E-02 713 -0.286699381210E-05 0.644482634932E-04 714 -0.204066838427E-05 0.423735425942E-04 715 -0.286260507481E-05 0.644486240699E-04 716 0.363650753114E-03 -0.928818317275E-02 717 -0.116158352112E-05 0.198024426706E-04 718 -0.204313653659E-05 0.423733406757E-04 719 -0.116474529155E-05 0.198021720355E-04 720 0.364930655199E-03 -0.932246790239E-02 721 0.365644526160E-03 -0.941931243196E-02 722 -0.289819423880E-05 0.655277195042E-04 723 -0.206856210587E-05 0.431438701596E-04 724 -0.289366888441E-05 0.655280884899E-04 725 0.365811435081E-03 -0.942491649750E-02 726 -0.118447893344E-05 0.202424009903E-04 727 -0.207110675252E-05 0.431436636300E-04 728 -0.118774331699E-05 0.202421235506E-04 729 0.367096532233E-03 -0.945968207112E-02 730 0.367851114261E-03 -0.955680120867E-02 731 -0.293014047774E-05 0.666189730319E-04 732 -0.209714291641E-05 0.439247854521E-04 733 -0.292547532215E-05 0.666193506207E-04 734 0.368016908308E-03 -0.956246769367E-02 735 -0.120796108028E-05 0.206910605053E-04 736 -0.209976580252E-05 0.439245742125E-04 737 -0.121133065532E-05 0.206907760947E-04 738 0.369307302887E-03 -0.959771607694E-02 739 0.370103398374E-03 -0.969512521598E-02 740 -0.296285075989E-05 0.677223060058E-04 741 -0.212642825545E-05 0.447165491885E-04 742 -0.295804254525E-05 0.677226923981E-04 743 0.370268035896E-03 -0.970085369596E-02 744 -0.123204557841E-05 0.211486441671E-04 745 -0.212913116371E-05 0.447163331373E-04 746 -0.123552298650E-05 0.211483526140E-04 747 0.371563832115E-03 -0.973658689321E-02 748 0.372402269520E-03 -0.983430173222E-02 749 -0.299634393852E-05 0.688380072733E-04 750 -0.215643616367E-05 0.455194287244E-04 751 -0.299138933082E-05 0.688384026758E-04 752 0.372565707313E-03 -0.984009176683E-02 753 -0.125674859074E-05 0.216153808783E-04 754 -0.215922091530E-05 0.455192077571E-04 755 -0.126033653853E-05 0.216150820062E-04 756 0.373867011297E-03 -0.987631182180E-02 757 0.374748646050E-03 -0.997434837413E-02 758 -0.303063951311E-05 0.699663728353E-04 759 -0.218718530604E-05 0.463336982830E-04 760 -0.302553509975E-05 0.699667774617E-04 761 0.374910839290E-03 -0.998019950659E-02 762 -0.128208684768E-05 0.220915057015E-04 763 -0.219005376197E-05 0.463334722922E-04 764 -0.128578810891E-05 0.220911993285E-04 765 0.376217759143E-03 -0.100169085031E-01 766 0.377143474582E-03 -0.101152831072E-01 767 -0.306575765443E-05 0.711077060927E-04 768 -0.221869499630E-05 0.471596391934E-04 769 -0.306049994167E-05 0.711081201634E-04 770 0.377304376766E-03 -0.101211948637E-01 771 -0.130807766963E-05 0.225772600754E-04 772 -0.222164905824E-05 0.471594080683E-04 773 -0.131189508715E-05 0.225769460139E-04 774 0.378617022633E-03 -0.101583949264E-01 775 0.379587730990E-03 -0.102571242566E-01 776 -0.310171923078E-05 0.722623181007E-04 777 -0.225098522238E-05 0.479975401372E-04 778 -0.309630464103E-05 0.722627418435E-04 779 0.379747293865E-03 -0.102630961455E-01 780 -0.133473899040E-05 0.230728920401E-04 781 -0.225402683403E-05 0.479973037642E-04 782 -0.133867547825E-05 0.230725700969E-04 783 0.381065778000E-03 -0.103007894408E-01 784 0.382082421427E-03 -0.103998905180E-01 785 -0.313854583535E-05 0.734305278341E-04 786 -0.228407667316E-05 0.488476974060E-04 787 -0.313297070451E-05 0.734309614843E-04 788 0.382240594921E-03 -0.104059220295E-01 789 -0.136208938179E-05 0.235786564707E-04 790 -0.228720782138E-05 0.488474556681E-04 791 -0.136614792740E-05 0.235783264468E-04 792 0.383565031755E-03 -0.104441107661E-01 793 0.384628583394E-03 -0.105436009693E-01 794 -0.317625981505E-05 0.746126624630E-04 795 -0.231799076638E-05 0.497104151681E-04 796 -0.317052038959E-05 0.746131062635E-04 797 0.384785315539E-03 -0.105496915744E-01 798 -0.139014807936E-05 0.240948153212E-04 799 -0.232121348244E-05 0.497101679450E-04 800 -0.139433174576E-05 0.240944770114E-04 elk-6.3.2/tests/test_004/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334744015647 xustar0030 mtime=1569569252.201637109 30 atime=1569569252.201637109 30 ctime=1569569252.201637109 elk-6.3.2/tests/test_004/elk.in0000644002504400250440000000136013543334744017716 0ustar00dewhurstdewhurst00000000000000 tasks 0 120 121 180 185 186 187 500 test .true. mixtype 3 nxoapwlo 1 scissor 0.21 lmaxo 5 gmaxvr 0.0 nvbse 3 ncbse 3 gmaxrf 2.0 swidth 0.005 nempty 8 wplot 800 100 0 0.0 1.5 avec 3.80402 3.80402 0.00000 3.80402 0.00000 3.80402 0.00000 3.80402 3.80402 sppath '../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms 0.0000 0.0000 0.0000 0.0 0.0 0.0 : atposl, bfcmt 'F.in' : spfname 1 : natoms 0.5000 0.5000 0.5000 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 elk-6.3.2/tests/PaxHeaders.21352/test_0080000644000000000000000000000013213543334744014473 xustar0030 mtime=1569569252.652636821 30 atime=1569569252.205637106 30 ctime=1569569252.652636821 elk-6.3.2/tests/test_008/0000755002504400250440000000000013543334744016617 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334744016444 xustar0030 mtime=1569569252.207637105 30 atime=1569569252.206637105 30 ctime=1569569252.207637105 elk-6.3.2/tests/test_008/TEST_510.OUT_0000644002504400250440000000014513543334744020513 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.141803067743E-02 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334744016452 xustar0030 mtime=1569569252.210637103 30 atime=1569569252.210637103 30 ctime=1569569252.210637103 elk-6.3.2/tests/test_008/TEST_705.OUT_0000644002504400250440000000010113543334744020511 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 96 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000012413543334744016450 xustar0028 mtime=1569569252.2146371 28 atime=1569569252.2146371 28 ctime=1569569252.2146371 elk-6.3.2/tests/test_008/TEST_900.OUT_0000644002504400250440000000007013543334744020513 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8385 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334744016450 xustar0030 mtime=1569569252.218637098 30 atime=1569569252.217637098 30 ctime=1569569252.218637098 elk-6.3.2/tests/test_008/TEST_910.OUT_0000644002504400250440000000174113543334744020522 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 30 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.237999443454 5 0.00000000000 6 0.00000000000 7 0.475998886908 8 0.00000000000 9 0.00000000000 10 0.237999443454 11 0.237999443454 12 0.00000000000 13 0.475998886908 14 0.237999443454 15 0.00000000000 16 0.475998886908 17 0.475998886908 18 0.00000000000 19 0.237999443454 20 0.237999443454 21 0.237999443454 22 0.475998886908 23 0.237999443454 24 0.237999443454 25 0.475998886908 26 0.475998886908 27 0.237999443454 28 0.475998886908 29 0.475998886908 30 0.475998886908 elk-6.3.2/tests/test_008/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334744015652 xustar0030 mtime=1569569252.638636829 29 atime=1569569252.63763683 30 ctime=1569569252.638636829 elk-6.3.2/tests/test_008/elk.in0000644002504400250440000000114313543334744017721 0ustar00dewhurstdewhurst00000000000000 ! Antiferromagnetic bcc iron example with fixed spin moment in muffin-tin. tasks 0 500 test .true. mixtype 1 fsmtype 2 mommtfix 1 1 0.0 0.0 1.0 : is, ia, mommtfix 1 2 0.0 0.0 -1.0 : is, ia, mommtfix swidth 0.01 rgkmax 6.0 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 scale 6.6 sppath '../../species/' atoms 1 : nspecies 'Fe.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.001 : atposl, bfcmt 0.5 0.5 0.5 0.0 0.0 -0.001 ngridk 4 4 4 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334744016443 xustar0030 mtime=1569569252.642636827 30 atime=1569569252.641636828 30 ctime=1569569252.642636827 elk-6.3.2/tests/test_008/TEST_500.OUT_0000644002504400250440000000013513543334744020511 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 238.638516142 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334744016442 xustar0030 mtime=1569569252.646636824 30 atime=1569569252.645636825 30 ctime=1569569252.646636824 elk-6.3.2/tests/test_008/TEST_400.OUT_0000644002504400250440000000014113543334744020505 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 51.9943489655 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334744016447 xustar0030 mtime=1569569252.649636822 30 atime=1569569252.649636822 30 ctime=1569569252.649636822 elk-6.3.2/tests/test_008/TEST_450.OUT_0000644002504400250440000000014013543334744020511 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.926174171605E-16 elk-6.3.2/tests/test_008/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000012713543334744016442 xustar0029 mtime=1569569252.65363682 29 atime=1569569252.65363682 29 ctime=1569569252.65363682 elk-6.3.2/tests/test_008/TEST_000.OUT_0000644002504400250440000000012613543334744020504 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -2540.92551047 elk-6.3.2/tests/PaxHeaders.21352/test_0120000644000000000000000000000013213543334745014467 xustar0030 mtime=1569569253.084636545 30 atime=1569569252.656636818 30 ctime=1569569253.084636545 elk-6.3.2/tests/test_012/0000755002504400250440000000000013543334745016613 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_750.OUT_0000644000000000000000000000013213543334744016445 xustar0030 mtime=1569569252.658636817 30 atime=1569569252.658636817 30 ctime=1569569252.658636817 elk-6.3.2/tests/test_012/TEST_750.OUT_0000644002504400250440000000036113543334744020514 0ustar00dewhurstdewhurst00000000000000'total forces' 2 6 0.100000000000E-02 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.00000000000 5 0.00000000000 6 0.00000000000 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334744016445 xustar0030 mtime=1569569252.662636814 30 atime=1569569252.662636814 30 ctime=1569569252.662636814 elk-6.3.2/tests/test_012/TEST_705.OUT_0000644002504400250440000000010113543334744020504 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334744016442 xustar0030 mtime=1569569252.666636812 30 atime=1569569252.665636812 30 ctime=1569569252.666636812 elk-6.3.2/tests/test_012/TEST_900.OUT_0000644002504400250440000000007013543334744020506 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3287 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013113543334744016442 xustar0030 mtime=1569569252.670636809 29 atime=1569569252.66963681 30 ctime=1569569252.670636809 elk-6.3.2/tests/test_012/TEST_910.OUT_0000644002504400250440000000144713543334744020520 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.205241634672 5 0.205241634672 6 -0.205241634672 7 0.410483269343 8 0.410483269343 9 -0.410483269343 10 0.410483269343 11 0.00000000000 12 0.00000000000 13 0.615724904015 14 0.205241634672 15 -0.205241634672 16 0.820966538686 17 0.410483269343 18 -0.410483269343 19 0.820966538686 20 0.00000000000 21 0.00000000000 22 0.820966538686 23 0.410483269343 24 0.00000000000 elk-6.3.2/tests/test_012/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334744015646 xustar0030 mtime=1569569252.674636806 30 atime=1569569252.673636807 30 ctime=1569569252.674636806 elk-6.3.2/tests/test_012/elk.in0000644002504400250440000000126013543334744017714 0ustar00dewhurstdewhurst00000000000000 ! Phonon and electron-phonon coupling test for Nb. tasks 0 200 220 240 245 250 500 test .true. mixtype 3 wplot 50 100 2 0.0 1.0 ngridq 2 2 2 radkpt 20.0 ngridk 4 4 4 rgkmax 6.0 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.8267 sppath '../../species/' atoms 1 : nspecies 'Al.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt plot1d 9 400 0.5 0.5 0.5 0.25 0.25 0.25 0.0 0.0 0.0 -0.5 0.5 0.5 -0.5 0.5 0.0 -0.75 0.25 0.25 -0.5 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.0 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334745016437 xustar0030 mtime=1569569253.070636553 30 atime=1569569253.069636554 30 ctime=1569569253.070636553 elk-6.3.2/tests/test_012/TEST_500.OUT_0000644002504400250440000000013513543334745020505 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 126.871484725 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334745016440 xustar0030 mtime=1569569253.073636552 30 atime=1569569253.073636552 30 ctime=1569569253.073636552 elk-6.3.2/tests/test_012/TEST_510.OUT_0000644002504400250440000000014513543334745020507 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.361958276809E-01 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334745016436 xustar0030 mtime=1569569253.078636548 30 atime=1569569253.077636549 30 ctime=1569569253.078636548 elk-6.3.2/tests/test_012/TEST_400.OUT_0000644002504400250440000000014113543334745020501 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 25.9808139620 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334745016432 xustar0030 mtime=1569569253.082636546 30 atime=1569569253.081636546 30 ctime=1569569253.082636546 elk-6.3.2/tests/test_012/TEST_000.OUT_0000644002504400250440000000012613543334745020500 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -483.830347580 elk-6.3.2/tests/test_012/PaxHeaders.21352/TEST_251.OUT_0000644000000000000000000000013213543334745016442 xustar0030 mtime=1569569253.086636543 30 atime=1569569253.085636544 30 ctime=1569569253.086636543 elk-6.3.2/tests/test_012/TEST_251.OUT_0000644002504400250440000000016313543334745020511 0ustar00dewhurstdewhurst00000000000000'electron-phonon coupling constant, lambda' 2 1 0.500000000000E-01 1 11.8915161421 elk-6.3.2/tests/PaxHeaders.21352/test_0160000644000000000000000000000013213543334745014473 xustar0030 mtime=1569569253.527636262 30 atime=1569569253.089636541 30 ctime=1569569253.527636262 elk-6.3.2/tests/test_016/0000755002504400250440000000000013543334745016617 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013013543334745016446 xustar0029 mtime=1569569253.09163654 30 atime=1569569253.090636541 29 ctime=1569569253.09163654 elk-6.3.2/tests/test_016/TEST_910.OUT_0000644002504400250440000000023413543334745020516 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 3 0.100000000000E-07 1 0.530584787921 2 0.227393480538 3 0.757978268459E-01 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334745016452 xustar0030 mtime=1569569253.095636537 30 atime=1569569253.094636538 30 ctime=1569569253.095636537 elk-6.3.2/tests/test_016/TEST_705.OUT_0000644002504400250440000000010113543334745020511 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 6 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334745016447 xustar0030 mtime=1569569253.099636535 30 atime=1569569253.098636536 30 ctime=1569569253.099636535 elk-6.3.2/tests/test_016/TEST_900.OUT_0000644002504400250440000000007013543334745020513 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7991 elk-6.3.2/tests/test_016/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334745015653 xustar0030 mtime=1569569253.103636532 30 atime=1569569253.102636533 30 ctime=1569569253.103636532 elk-6.3.2/tests/test_016/elk.in0000644002504400250440000000132213543334745017720 0ustar00dewhurstdewhurst00000000000000 ! DFT+U test tasks 0 400 500 maxscl 2 test .true. swidth 0.05 dft+u 3 5 : dftu,inpdftu 1 3 0.1469972 : is, l, U fixed spinpol .true. spinorb .true. scale 10.36175041 avec 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0 atoms 2 : nspecies 'U.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'S.in' : spfname 1 : natoms 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt bfieldc -2.0 -2.0 -2.0 reducebf 0.5 sppath '../../species/' ngridk 1 1 1 vkloff 0.25 0.5 0.625 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000012713543334745016447 xustar0029 mtime=1569569253.10763653 29 atime=1569569253.10763653 29 ctime=1569569253.10763653 elk-6.3.2/tests/test_016/TEST_500.OUT_0000644002504400250440000000013513543334745020511 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 52.7116161453 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334745016444 xustar0030 mtime=1569569253.499636279 30 atime=1569569253.499636279 30 ctime=1569569253.499636279 elk-6.3.2/tests/test_016/TEST_510.OUT_0000644002504400250440000000014513543334745020513 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.259115729618E-01 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334745016442 xustar0030 mtime=1569569253.503636277 30 atime=1569569253.503636277 30 ctime=1569569253.503636277 elk-6.3.2/tests/test_016/TEST_400.OUT_0000644002504400250440000000014113543334745020505 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 107.995903399 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334745016447 xustar0030 mtime=1569569253.507636274 30 atime=1569569253.507636274 30 ctime=1569569253.507636274 elk-6.3.2/tests/test_016/TEST_450.OUT_0000644002504400250440000000014013543334745020511 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 2.25866552412 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334745016446 xustar0030 mtime=1569569253.511636272 30 atime=1569569253.511636272 30 ctime=1569569253.511636272 elk-6.3.2/tests/test_016/TEST_800.OUT_0000644002504400250440000000014413543334745020514 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 1 0.100000000000E-03 1 0.144828896092E-02 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_810.OUT_0000644000000000000000000000013213543334745016447 xustar0030 mtime=1569569253.516636269 30 atime=1569569253.515636269 30 ctime=1569569253.516636269 elk-6.3.2/tests/test_016/TEST_810.OUT_0000644002504400250440000000475513543334745020531 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 80 0.100000000000E-03 1 0.146997242287 2 0.221063666253E-01 3 0.00000000000 4 0.00000000000 5 0.00000000000 6 0.00000000000 7 0.00000000000 8 0.00000000000 9 0.00000000000 10 0.00000000000 11 0.00000000000 12 0.00000000000 13 0.00000000000 14 0.00000000000 15 0.00000000000 16 0.00000000000 17 0.00000000000 18 0.00000000000 19 0.00000000000 20 0.00000000000 21 0.00000000000 22 0.00000000000 23 0.00000000000 24 0.00000000000 25 0.00000000000 26 0.00000000000 27 0.00000000000 28 0.00000000000 29 0.00000000000 30 0.00000000000 31 0.00000000000 32 0.00000000000 33 0.00000000000 34 0.00000000000 35 0.00000000000 36 0.00000000000 37 0.00000000000 38 0.00000000000 39 0.00000000000 40 0.00000000000 41 0.00000000000 42 0.00000000000 43 0.00000000000 44 0.00000000000 45 0.00000000000 46 0.00000000000 47 0.00000000000 48 0.00000000000 49 0.00000000000 50 0.00000000000 51 0.00000000000 52 0.00000000000 53 0.00000000000 54 0.00000000000 55 0.00000000000 56 0.00000000000 57 0.00000000000 58 0.00000000000 59 0.00000000000 60 0.00000000000 61 0.00000000000 62 0.00000000000 63 0.00000000000 64 0.00000000000 65 0.00000000000 66 0.00000000000 67 0.00000000000 68 0.00000000000 69 0.00000000000 70 0.00000000000 71 0.00000000000 72 0.00000000000 73 0.00000000000 74 0.00000000000 75 0.00000000000 76 0.00000000000 77 0.00000000000 78 0.00000000000 79 0.00000000000 80 0.00000000000 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334745016436 xustar0030 mtime=1569569253.520636266 30 atime=1569569253.519636267 30 ctime=1569569253.520636266 elk-6.3.2/tests/test_016/TEST_000.OUT_0000644002504400250440000000012613543334745020504 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -28449.7946378 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_820.OUT_0000644000000000000000000000013213543334745016450 xustar0030 mtime=1569569253.524636263 30 atime=1569569253.523636264 30 ctime=1569569253.524636263 elk-6.3.2/tests/test_016/TEST_820.OUT_0000644002504400250440000000014013543334745020512 0ustar00dewhurstdewhurst00000000000000'Norm of tensor moments' 2 1 0.100000000000E-03 1 8.15793044297 elk-6.3.2/tests/test_016/PaxHeaders.21352/TEST_830.OUT_0000644000000000000000000000013213543334745016451 xustar0030 mtime=1569569253.528636261 30 atime=1569569253.527636262 30 ctime=1569569253.528636261 elk-6.3.2/tests/test_016/TEST_830.OUT_0000644002504400250440000000016613543334745020523 0ustar00dewhurstdewhurst00000000000000'Norm of DFT+U Hartree-Fock exchange energies' 2 1 0.100000000000E-03 1 0.669335454488E-01 elk-6.3.2/tests/PaxHeaders.21352/test_0200000644000000000000000000000013213543334745014466 xustar0030 mtime=1569569253.961635984 30 atime=1569569253.532636258 30 ctime=1569569253.961635984 elk-6.3.2/tests/test_020/0000755002504400250440000000000013543334745016612 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334745016435 xustar0030 mtime=1569569253.533636258 30 atime=1569569253.532636258 30 ctime=1569569253.533636258 elk-6.3.2/tests/test_020/TEST_400.OUT_0000644002504400250440000000014113543334745020500 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.0281676211 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334745016445 xustar0030 mtime=1569569253.537636255 30 atime=1569569253.537636255 30 ctime=1569569253.537636255 elk-6.3.2/tests/test_020/TEST_705.OUT_0000644002504400250440000000010113543334745020504 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334745016442 xustar0030 mtime=1569569253.935636001 30 atime=1569569253.934636002 30 ctime=1569569253.935636001 elk-6.3.2/tests/test_020/TEST_900.OUT_0000644002504400250440000000007013543334745020506 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3215 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334745016443 xustar0030 mtime=1569569253.939635998 30 atime=1569569253.939635998 30 ctime=1569569253.939635998 elk-6.3.2/tests/test_020/TEST_910.OUT_0000644002504400250440000000144713543334745020520 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.206465308646 5 0.206465308646 6 -0.206465308646 7 0.412930617293 8 0.412930617293 9 -0.412930617293 10 0.412930617293 11 0.00000000000 12 0.00000000000 13 0.619395925939 14 0.206465308646 15 -0.206465308646 16 0.825861234586 17 0.412930617293 18 -0.412930617293 19 0.825861234586 20 0.00000000000 21 0.00000000000 22 0.825861234586 23 0.412930617293 24 0.00000000000 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334745016436 xustar0030 mtime=1569569253.943635996 30 atime=1569569253.943635996 30 ctime=1569569253.943635996 elk-6.3.2/tests/test_020/TEST_500.OUT_0000644002504400250440000000013513543334745020504 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.115177788914E-02 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334745016437 xustar0030 mtime=1569569253.947635993 30 atime=1569569253.946635994 30 ctime=1569569253.947635993 elk-6.3.2/tests/test_020/TEST_510.OUT_0000644002504400250440000000014513543334745020506 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.323820711085 elk-6.3.2/tests/test_020/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334745015646 xustar0030 mtime=1569569253.951635991 30 atime=1569569253.950635991 30 ctime=1569569253.951635991 elk-6.3.2/tests/test_020/elk.in0000644002504400250440000000052713543334745017721 0ustar00dewhurstdewhurst00000000000000 tasks 0 600 610 500 test .true. gmaxrf 3.0 tempk 5000.0 nempty 6 wplot 200 100 0 -0.1 0.3 avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../species/' atoms 2 'Li.in' 1 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 ngridk 4 4 4 ngridq 2 2 2 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334745016431 xustar0030 mtime=1569569253.955635988 30 atime=1569569253.954635989 30 ctime=1569569253.955635988 elk-6.3.2/tests/test_020/TEST_000.OUT_0000644002504400250440000000012613543334745020477 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -106.905850836 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334745016441 xustar0030 mtime=1569569253.959635986 30 atime=1569569253.958635986 30 ctime=1569569253.959635986 elk-6.3.2/tests/test_020/TEST_800.OUT_0000644002504400250440000000026413543334745020512 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 216.963990922 2 28.1249542511 3 19.7640709318 elk-6.3.2/tests/test_020/PaxHeaders.21352/TEST_610.OUT_0000644000000000000000000000013213543334745016440 xustar0030 mtime=1569569253.963635983 30 atime=1569569253.962635984 30 ctime=1569569253.963635983 elk-6.3.2/tests/test_020/TEST_610.OUT_0000644002504400250440000001417513543334745020517 0ustar00dewhurstdewhurst00000000000000'total GW spectral function' 2 200 0.500000000000E-01 1 0.643444405266 2 0.634495584760 3 0.625843648067 4 0.617477098197 5 0.609385028637 6 0.601557087666 7 0.593983445060 8 0.586654760862 9 0.579562158021 10 0.572697194826 11 0.566051839533 12 0.559618448061 13 0.553389742373 14 0.547358787323 15 0.541518978388 16 0.535864017462 17 0.530387899353 18 0.525084895917 19 0.519949541534 20 0.514976619507 21 0.510161149410 22 0.505498375136 23 0.500983753956 24 0.496612946277 25 0.492381804522 26 0.488286364378 27 0.484322836675 28 0.480487599914 29 0.476777190556 30 0.473188296112 31 0.469717749956 32 0.466362523149 33 0.463119719423 34 0.459986569008 35 0.456960423289 36 0.454038749670 37 0.451219127739 38 0.448499243540 39 0.445876881297 40 0.443349932599 41 0.440916377787 42 0.438574288663 43 0.436321826956 44 0.434157237753 45 0.432078848082 46 0.430085064577 47 0.428174369192 48 0.426345318684 49 0.424596540608 50 0.422926732674 51 0.421334659313 52 0.419819150266 53 0.418379099607 54 0.417013463011 55 0.415721256719 56 0.414501555787 57 0.413353493575 58 0.412276259678 59 0.411269099249 60 0.410331311662 61 0.409462249986 62 0.408661320553 63 0.407927981097 64 0.407261741293 65 0.406662161826 66 0.406128853057 67 0.405661476833 68 0.405259743993 69 0.404923416286 70 0.404652304180 71 0.404446268570 72 0.404305219816 73 0.404229119231 74 0.404217978396 75 0.404271859693 76 0.404390877483 77 0.404575198097 78 0.404825040568 79 0.405140679209 80 0.405522441437 81 0.405970711648 82 0.406485931422 83 0.407068601321 84 0.407719281963 85 0.408438596105 86 0.409227230877 87 0.410085937496 88 0.411015538142 89 0.412016924649 90 0.413091061965 91 0.414238991627 92 0.415461834715 93 0.416760795293 94 0.418137164008 95 0.419592321995 96 0.421127745954 97 0.422745012552 98 0.424445803317 99 0.426231910308 100 0.428105242134 101 0.430067830517 102 0.432121837572 103 0.434269563749 104 0.436513456536 105 0.438856121276 106 0.441300330367 107 0.443849014711 108 0.446505246872 109 0.449272374394 110 0.452153948750 111 0.455153735075 112 0.458275389549 113 0.461523502064 114 0.464902515446 115 0.468417217181 116 0.472073124539 117 0.475877616945 118 0.479837421281 119 0.483949474397 120 0.488235422503 121 0.492693673038 122 0.497334059109 123 0.502164556203 124 0.507194394204 125 0.512432668374 126 0.517894730011 127 0.523588021659 128 0.529527084861 129 0.535725096103 130 0.542197477629 131 0.548961634181 132 0.556035940871 133 0.563440333590 134 0.571196547734 135 0.579331742028 136 0.587871722694 137 0.596847284400 138 0.606292778511 139 0.616246350950 140 0.626753636233 141 0.637866750920 142 0.649527178444 143 0.661870308417 144 0.675203691133 145 0.689376300203 146 0.704497626570 147 0.720687021765 148 0.738097514105 149 0.756881890705 150 0.777224327503 151 0.799351812637 152 0.823532223013 153 0.850087957512 154 0.879410158227 155 0.911968942787 156 0.948334200434 157 0.989206065013 158 1.03537610433 159 1.08776053526 160 1.14733765162 161 1.21498030938 162 1.29115563207 163 1.37549593585 164 1.46586114911 165 1.55772655500 166 1.64379032158 167 1.71541089601 168 1.76557644251 169 1.79281977953 170 1.80223423453 171 1.80293085782 172 1.80438480984 173 1.81418199669 174 1.83700227986 175 1.87571220402 176 1.93202170419 177 2.00725544362 178 2.10301260119 179 2.22135292870 180 2.36508075157 181 2.53790115524 182 2.74456280589 183 2.99095659165 184 3.28405067748 185 3.63157672424 186 4.04107819263 187 4.51787768947 188 5.06133346634 189 5.65897642488 190 6.27958837605 191 6.86951159022 192 7.35978152485 193 7.68915404239 194 7.83323716931 195 7.81662953955 196 7.69473734358 197 7.52066448796 198 7.31964850927 199 7.09144544321 200 6.82631231315 elk-6.3.2/tests/PaxHeaders.21352/test_0240000644000000000000000000000013213543334746014473 xustar0030 mtime=1569569254.327635751 30 atime=1569569253.967635981 30 ctime=1569569254.327635751 elk-6.3.2/tests/test_024/0000755002504400250440000000000013543334746016617 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013013543334746016450 xustar0029 mtime=1569569254.29763577 30 atime=1569569254.020635947 29 ctime=1569569254.29763577 elk-6.3.2/tests/test_024/TEST_705.OUT_0000644002504400250440000000010113543334746020511 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 2 elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334746016447 xustar0030 mtime=1569569254.301635767 30 atime=1569569254.300635768 30 ctime=1569569254.301635767 elk-6.3.2/tests/test_024/TEST_900.OUT_0000644002504400250440000000007013543334746020513 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 22257 elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334746016450 xustar0030 mtime=1569569254.305635765 30 atime=1569569254.305635765 30 ctime=1569569254.305635765 elk-6.3.2/tests/test_024/TEST_910.OUT_0000644002504400250440000000052613543334746020522 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 9 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.338173181022 5 -0.195244417682 6 0.00000000000 7 0.676346362044 8 0.00000000000 9 0.00000000000 elk-6.3.2/tests/test_024/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334746015653 xustar0030 mtime=1569569254.310635761 30 atime=1569569254.309635762 30 ctime=1569569254.310635761 elk-6.3.2/tests/test_024/elk.in0000644002504400250440000000100513543334746017716 0ustar00dewhurstdewhurst00000000000000 tasks 0 500 test .true. rgkmax 6.0 lmaxi 3 maxscl 2 ngridk 2 2 1 avec 4.644946479927 -8.045281629256 0.0 4.644946479927 8.045281629256 0.0 0.0 0.0 10.21472485866 sppath '../../species/' atoms 2 'Si.in' 3 0.4650 0.0000 0.0000 0.0000 0.4650 0.666666667 0.5350 0.5350 0.333333333 'O.in' 6 0.415 0.272 0.1200 0.728 0.143 0.786666667 0.857 0.585 0.453333333 0.272 0.415 0.546666667 0.143 0.728 0.8800 0.585 0.857 0.213333333 elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334746016443 xustar0030 mtime=1569569254.314635759 30 atime=1569569254.314635759 30 ctime=1569569254.314635759 elk-6.3.2/tests/test_024/TEST_500.OUT_0000644002504400250440000000013513543334746020511 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.551700060945E-11 elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334746016444 xustar0030 mtime=1569569254.319635756 30 atime=1569569254.318635756 30 ctime=1569569254.319635756 elk-6.3.2/tests/test_024/TEST_510.OUT_0000644002504400250440000000014513543334746020513 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.287382359844 elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334746016442 xustar0030 mtime=1569569254.323635753 30 atime=1569569254.323635753 30 ctime=1569569254.323635753 elk-6.3.2/tests/test_024/TEST_400.OUT_0000644002504400250440000000014113543334746020505 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 89.9131349792 elk-6.3.2/tests/test_024/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013013543334746016434 xustar0029 mtime=1569569254.32863575 30 atime=1569569254.327635751 29 ctime=1569569254.32863575 elk-6.3.2/tests/test_024/TEST_000.OUT_0000644002504400250440000000012613543334746020504 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1334.15610115 elk-6.3.2/tests/PaxHeaders.21352/test_0220000644000000000000000000000013213543334746014471 xustar0030 mtime=1569569254.660635538 30 atime=1569569254.331635748 30 ctime=1569569254.660635538 elk-6.3.2/tests/test_022/0000755002504400250440000000000013543334746016615 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334746016446 xustar0030 mtime=1569569254.334635746 30 atime=1569569254.333635747 30 ctime=1569569254.334635746 elk-6.3.2/tests/test_022/TEST_910.OUT_0000644002504400250440000001052213543334746020515 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 141 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.943421217294E-01 5 0.943421217294E-01 6 -0.943421217294E-01 7 0.188684243459 8 0.188684243459 9 -0.188684243459 10 0.283026365188 11 0.283026365188 12 -0.283026365188 13 0.377368486918 14 0.377368486918 15 -0.377368486918 16 0.471710608647 17 0.471710608647 18 -0.471710608647 19 0.188684243459 20 -0.308963289789E-17 21 0.308963289789E-17 22 0.283026365188 23 0.943421217294E-01 24 -0.943421217294E-01 25 0.377368486918 26 0.188684243459 27 -0.188684243459 28 0.471710608647 29 0.283026365188 30 -0.283026365188 31 0.566052730377 32 0.377368486918 33 -0.377368486918 34 0.660394852106 35 0.471710608647 36 -0.471710608647 37 0.754736973835 38 0.566052730377 39 -0.566052730377 40 0.849079095565 41 0.660394852106 42 -0.660394852106 43 0.943421217294 44 0.754736973835 45 -0.754736973835 46 0.377368486918 47 -0.617926579578E-17 48 0.617926579578E-17 49 0.471710608647 50 0.943421217294E-01 51 -0.943421217294E-01 52 0.566052730377 53 0.188684243459 54 -0.188684243459 55 0.660394852106 56 0.283026365188 57 -0.283026365188 58 0.754736973835 59 0.377368486918 60 -0.377368486918 61 0.849079095565 62 0.471710608647 63 -0.471710608647 64 0.943421217294 65 0.566052730377 66 -0.566052730377 67 0.566052730377 68 -0.247170631831E-16 69 0.247170631831E-16 70 0.660394852106 71 0.943421217294E-01 72 -0.943421217294E-01 73 0.754736973835 74 0.188684243459 75 -0.188684243459 76 0.849079095565 77 0.283026365188 78 -0.283026365188 79 0.943421217294 80 0.377368486918 81 -0.377368486918 82 0.754736973835 83 -0.123585315916E-16 84 0.123585315916E-16 85 0.849079095565 86 0.943421217294E-01 87 -0.943421217294E-01 88 0.943421217294 89 0.188684243459 90 -0.188684243459 91 0.943421217294 92 0.00000000000 93 0.00000000000 94 0.377368486918 95 0.188684243459 96 -0.169674207057E-16 97 0.471710608647 98 0.283026365188 99 -0.943421217294E-01 100 0.566052730377 101 0.377368486918 102 -0.188684243459 103 0.660394852106 104 0.471710608647 105 -0.283026365188 106 0.566052730377 107 0.188684243459 108 0.524215183334E-16 109 0.660394852106 110 0.283026365188 111 -0.943421217294E-01 112 0.754736973835 113 0.377368486918 114 -0.188684243459 115 0.849079095565 116 0.471710608647 117 -0.283026365188 118 0.943421217294 119 0.566052730377 120 -0.377368486918 121 0.754736973835 122 0.188684243459 123 0.385437305256E-16 124 0.849079095565 125 0.283026365188 126 -0.943421217294E-01 127 0.943421217294 128 0.377368486918 129 -0.188684243459 130 0.943421217294 131 0.188684243459 132 -0.724785719370E-16 133 0.754736973835 134 0.377368486918 135 -0.339348414114E-16 136 0.849079095565 137 0.471710608647 138 -0.943421217294E-01 139 0.943421217294 140 0.377368486918 141 -0.616904170270E-16 elk-6.3.2/tests/test_022/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334746015651 xustar0030 mtime=1569569254.455635669 30 atime=1569569254.337635744 30 ctime=1569569254.455635669 elk-6.3.2/tests/test_022/elk.in0000644002504400250440000000110513543334746017715 0ustar00dewhurstdewhurst00000000000000 ! Magnetic response of fcc nickel. tasks 0 330 500 test .true. nempty 10 lorbcnd .true. emaxrf 1.5 gmaxrf 2.0 wplot 60 100 1 0 0.020 ! q-vector of response function vecql 0.1 0.3 0.0 ngridk 10 10 10 spinpol .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../species/' atoms 1 : nspecies 'Ni.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334746016445 xustar0030 mtime=1569569254.629635558 30 atime=1569569254.628635558 30 ctime=1569569254.629635558 elk-6.3.2/tests/test_022/TEST_900.OUT_0000644002504400250440000000007013543334746020511 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2109 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334746016450 xustar0030 mtime=1569569254.633635555 30 atime=1569569254.632635556 30 ctime=1569569254.633635555 elk-6.3.2/tests/test_022/TEST_705.OUT_0000644002504400250440000000010113543334746020507 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334746016441 xustar0030 mtime=1569569254.637635553 30 atime=1569569254.636635553 30 ctime=1569569254.637635553 elk-6.3.2/tests/test_022/TEST_500.OUT_0000644002504400250440000000013513543334746020507 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 52.6889875460 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013013543334746016440 xustar0029 mtime=1569569254.64163555 30 atime=1569569254.640635551 29 ctime=1569569254.64163555 elk-6.3.2/tests/test_022/TEST_510.OUT_0000644002504400250440000000014513543334746020511 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.728636393380E-03 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334746016445 xustar0030 mtime=1569569254.645635547 30 atime=1569569254.644635548 30 ctime=1569569254.645635547 elk-6.3.2/tests/test_022/TEST_450.OUT_0000644002504400250440000000014013543334746020507 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.721275079678 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334746016440 xustar0030 mtime=1569569254.649635545 30 atime=1569569254.648635546 30 ctime=1569569254.649635545 elk-6.3.2/tests/test_022/TEST_400.OUT_0000644002504400250440000000014113543334746020503 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9937748748 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334746016434 xustar0030 mtime=1569569254.653635542 30 atime=1569569254.652635543 30 ctime=1569569254.653635542 elk-6.3.2/tests/test_022/TEST_000.OUT_0000644002504400250440000000012613543334746020502 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1518.39249336 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000012713543334746016450 xustar0029 mtime=1569569254.65763554 29 atime=1569569254.65663554 29 ctime=1569569254.65763554 elk-6.3.2/tests/test_022/TEST_800.OUT_0000644002504400250440000000301013543334746020505 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 47 0.100000000000E-07 1 4156.52649632 2 538.808845910 3 122.281077681 4 53.2067305730 5 29.7036699563 6 18.9436528129 7 378.633726982 8 131.915119909 9 59.6996144004 10 33.1294509551 11 20.8866383293 12 24.1480573225 13 39.8247961001 14 76.6221168207 15 191.109192697 16 89.6935829837 17 52.8305196423 18 32.3142045935 19 21.1792161666 20 18.7172333061 21 28.0029635091 22 44.9516730037 23 39.4977235641 24 27.8283415094 25 19.6878350783 26 14.3061427077 27 19.7706217330 28 22.1479831303 29 17.0639418646 30 13.1063464662 31 14.1544228910 32 70.5026233452 33 40.4627055245 34 25.3002738051 35 17.0626173734 36 35.3392864088 37 23.9798340158 38 16.8448151671 39 18.9724996792 40 27.4485942715 41 20.7913378523 42 15.5388968693 43 14.2001311974 44 13.5917268552 45 17.6443345168 46 13.2018441244 47 12.1733944017 elk-6.3.2/tests/test_022/PaxHeaders.21352/TEST_330.OUT_0000644000000000000000000000013213543334746016442 xustar0030 mtime=1569569254.661635537 30 atime=1569569254.660635538 30 ctime=1569569254.661635537 elk-6.3.2/tests/test_022/TEST_330.OUT_0000644002504400250440000000626313543334746020520 0ustar00dewhurstdewhurst00000000000000'transverse response function' 3 60 0.100000000000E-01 1 0.996578772458 -0.469470212270E-01 2 0.983396862395 -0.497273716234E-01 3 0.971182127954 -0.523109722002E-01 4 0.959250107027 -0.539678910637E-01 5 0.946485725242 -0.552439085676E-01 6 0.932974944812 -0.573283485484E-01 7 0.919447491218 -0.606924389456E-01 8 0.906429228874 -0.656090107898E-01 9 0.895176523444 -0.725418311022E-01 10 0.888010979776 -0.802257227509E-01 11 0.884948773040 -0.846976943793E-01 12 0.881877776756 -0.844213353075E-01 13 0.877037809798 -0.819848002537E-01 14 0.871235729241 -0.776536195761E-01 15 0.862746108148 -0.711076505984E-01 16 0.850449955909 -0.647472969785E-01 17 0.835640849623 -0.604034711138E-01 18 0.819679573877 -0.583080010701E-01 19 0.803227650471 -0.582732860753E-01 20 0.786604646462 -0.602820454651E-01 21 0.770168800641 -0.645903116316E-01 22 0.754701996428 -0.716241634486E-01 23 0.741847096157 -0.814469703519E-01 24 0.733791616871 -0.922862893105E-01 25 0.730255629743 -0.100094282972 26 0.727237929133 -0.103113164308 27 0.721990999017 -0.103024574884 28 0.712952796898 -0.101694855441 29 0.699579406707 -0.102617251338 30 0.684472796259 -0.108823414304 31 0.671106170467 -0.120837790892 32 0.662683674864 -0.137976264145 33 0.662773974079 -0.157748401583 34 0.673420383661 -0.175235433442 35 0.694512338714 -0.183265110050 36 0.717556680231 -0.172900607676 37 0.727000816649 -0.148443119740 38 0.720084466546 -0.124399144436 39 0.703952909914 -0.108131158479 40 0.684813266336 -0.100259034755 41 0.666466669205 -0.995749623747E-01 42 0.651887490744 -0.104214594540 43 0.643028728842 -0.110611562108 44 0.638472223879 -0.114564872950 45 0.634297082896 -0.115228900204 46 0.629016326657 -0.114935484235 47 0.623546153592 -0.114400836077 48 0.617573000683 -0.113391344798 49 0.611230069446 -0.112813607004 50 0.605601786436 -0.111891289621 51 0.599052136187 -0.109455751464 52 0.590215461755 -0.107557589990 53 0.580679974958 -0.107794334719 54 0.571968886657 -0.109503946915 55 0.563935558141 -0.111751981863 56 0.556454048091 -0.115164666072 57 0.551439885980 -0.119368117159 58 0.548610009273 -0.121132575436 59 0.544141930598 -0.120216370669 60 0.537103776988 -0.120068466706 elk-6.3.2/tests/PaxHeaders.21352/test_0010000644000000000000000000000013213543334747014467 xustar0030 mtime=1569569255.092635262 30 atime=1569569254.664635535 30 ctime=1569569255.092635262 elk-6.3.2/tests/test_001/0000755002504400250440000000000013543334747016613 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334746016445 xustar0030 mtime=1569569254.667635533 30 atime=1569569254.666635534 30 ctime=1569569254.667635533 elk-6.3.2/tests/test_001/TEST_705.OUT_0000644002504400250440000000010113543334746020504 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334746016442 xustar0030 mtime=1569569254.670635531 30 atime=1569569254.670635531 30 ctime=1569569254.670635531 elk-6.3.2/tests/test_001/TEST_900.OUT_0000644002504400250440000000007013543334746020506 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2957 elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334746016443 xustar0030 mtime=1569569254.694635516 30 atime=1569569254.674635529 30 ctime=1569569254.694635516 elk-6.3.2/tests/test_001/TEST_910.OUT_0000644002504400250440000000037113543334746020513 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 6 0.100000000000E-07 1 0.108711646790 2 0.213882564036 3 0.142325463505 4 0.543558233949 5 0.213882564036 6 0.142325463505 elk-6.3.2/tests/test_001/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334747015647 xustar0030 mtime=1569569255.077635272 30 atime=1569569255.077635272 30 ctime=1569569255.077635272 elk-6.3.2/tests/test_001/elk.in0000644002504400250440000000216613543334747017723 0ustar00dewhurstdewhurst00000000000000 tasks 0 1 500 test .true. mixtype 3 ! small cut-off for testing purposes rgkmax 5.0 gmaxvr 0.0 maxscl 2 avec 7.2246 0.0 0.0 0.0 7.3442 0.0 0.0 0.0 22.0733 sppath '../../species/' atoms 4 : nspecies 'Y.in' : spfname 1 : natoms 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt 'Ba.in' 2 : natoms 0.5 0.5 0.1843 0.0 0.0 0.0 : atposl, bfcmt 0.5 0.5 0.8157 0.0 0.0 0.0 'Cu.in' 3 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 0.0 0.0 0.3556 0.0 0.0 0.0 0.0 0.0 0.6444 0.0 0.0 0.0 'O.in' 7 : natoms 0.0 0.5 0.0 0.0 0.0 0.0 : atposl, bfcmt 0.5 0.0 0.3773 0.0 0.0 0.0 0.5 0.0 0.6227 0.0 0.0 0.0 0.0 0.5 0.3789 0.0 0.0 0.0 0.0 0.5 0.6211 0.0 0.0 0.0 0.0 0.0 0.1584 0.0 0.0 0.0 0.0 0.0 0.8416 0.0 0.0 0.0 ngridk 2 2 1 vkloff 0.25 0.5 0.5 elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334747016437 xustar0030 mtime=1569569255.081635269 30 atime=1569569255.081635269 30 ctime=1569569255.081635269 elk-6.3.2/tests/test_001/TEST_500.OUT_0000644002504400250440000000013513543334747020505 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.508078795460E-01 elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334747016440 xustar0030 mtime=1569569255.085635267 30 atime=1569569255.084635267 30 ctime=1569569255.085635267 elk-6.3.2/tests/test_001/TEST_510.OUT_0000644002504400250440000000014513543334747020507 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.216430683021E-01 elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334747016436 xustar0030 mtime=1569569255.089635264 30 atime=1569569255.089635264 30 ctime=1569569255.089635264 elk-6.3.2/tests/test_001/TEST_400.OUT_0000644002504400250440000000014113543334747020501 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 294.001424058 elk-6.3.2/tests/test_001/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334747016432 xustar0030 mtime=1569569255.093635261 30 atime=1569569255.093635261 30 ctime=1569569255.093635261 elk-6.3.2/tests/test_001/TEST_000.OUT_0000644002504400250440000000012613543334747020500 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -25069.2911276 elk-6.3.2/tests/PaxHeaders.21352/test_0050000644000000000000000000000013113543334747014472 xustar0030 mtime=1569569255.462635026 29 atime=1569569255.09663526 30 ctime=1569569255.462635026 elk-6.3.2/tests/test_005/0000755002504400250440000000000013543334747016617 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334747016452 xustar0030 mtime=1569569255.098635258 30 atime=1569569255.098635258 30 ctime=1569569255.098635258 elk-6.3.2/tests/test_005/TEST_705.OUT_0000644002504400250440000000010113543334747020511 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334747016450 xustar0030 mtime=1569569255.103635255 30 atime=1569569255.102635256 30 ctime=1569569255.103635255 elk-6.3.2/tests/test_005/TEST_910.OUT_0000644002504400250440000000144713543334747020525 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.581776417331E-01 2 0.174532925199 3 0.407243492132 4 0.523598775598 5 0.639954059065 6 -0.581776417331E-01 7 0.523598775598 8 -0.290888208666 9 0.872664625997 10 0.989019909463 11 0.174532925199 12 0.407243492132 13 -0.407243492132 14 0.639954059065 15 0.872664625997 16 0.581776417331E-01 17 1.10537519293 18 0.407243492132 19 0.581776417331E-01 20 0.174532925199 21 1.33808575986 22 0.523598775598 23 0.639954059065 24 0.872664625997 elk-6.3.2/tests/test_005/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334747015653 xustar0030 mtime=1569569255.107635252 30 atime=1569569255.106635253 30 ctime=1569569255.107635252 elk-6.3.2/tests/test_005/elk.in0000644002504400250440000000076513543334747017732 0ustar00dewhurstdewhurst00000000000000 ! Spin-spiral state for Gamma-Fe. tasks 0 500 test .true. maxscl 5 spinsprl .true. vqlss 0.1 0.1 0.0 rgkmax 6.5 bfieldc 0.05 0.0 0.0 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.375 sppath '../../species/' atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 2 2 2 vkloff 0.25 0.5 0.625 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334747016447 xustar0030 mtime=1569569255.110635251 30 atime=1569569255.110635251 30 ctime=1569569255.110635251 elk-6.3.2/tests/test_005/TEST_900.OUT_0000644002504400250440000000007013543334747020513 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2229 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334747016443 xustar0030 mtime=1569569255.449635034 30 atime=1569569255.448635035 30 ctime=1569569255.449635034 elk-6.3.2/tests/test_005/TEST_500.OUT_0000644002504400250440000000013513543334747020511 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 33.9440297840 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334747016444 xustar0030 mtime=1569569255.452635032 30 atime=1569569255.452635032 30 ctime=1569569255.452635032 elk-6.3.2/tests/test_005/TEST_510.OUT_0000644002504400250440000000014513543334747020513 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.373321899094E-02 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013113543334747016441 xustar0030 mtime=1569569255.456635029 29 atime=1569569255.45563503 30 ctime=1569569255.456635029 elk-6.3.2/tests/test_005/TEST_400.OUT_0000644002504400250440000000014113543334747020505 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 25.9973343013 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334747016447 xustar0030 mtime=1569569255.460635027 30 atime=1569569255.459635028 30 ctime=1569569255.460635027 elk-6.3.2/tests/test_005/TEST_450.OUT_0000644002504400250440000000014013543334747020511 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 2.46665782463 elk-6.3.2/tests/test_005/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334747016436 xustar0030 mtime=1569569255.464635024 30 atime=1569569255.463635025 30 ctime=1569569255.464635024 elk-6.3.2/tests/test_005/TEST_000.OUT_0000644002504400250440000000012613543334747020504 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1270.46776265 elk-6.3.2/tests/PaxHeaders.21352/test_0090000644000000000000000000000013213543334747014477 xustar0030 mtime=1569569255.902634745 30 atime=1569569255.467635022 30 ctime=1569569255.902634745 elk-6.3.2/tests/test_009/0000755002504400250440000000000013543334747016623 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334747016453 xustar0030 mtime=1569569255.469635021 30 atime=1569569255.469635021 30 ctime=1569569255.469635021 elk-6.3.2/tests/test_009/TEST_900.OUT_0000644002504400250440000000007013543334747020517 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2277 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334747016454 xustar0030 mtime=1569569255.473635019 30 atime=1569569255.473635019 30 ctime=1569569255.473635019 elk-6.3.2/tests/test_009/TEST_910.OUT_0000644002504400250440000000052613543334747020526 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 9 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.459243458892 5 0.459243458892 6 -0.459243458892 7 0.918486917784 8 0.00000000000 9 0.00000000000 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334747016456 xustar0030 mtime=1569569255.477635016 30 atime=1569569255.477635016 30 ctime=1569569255.477635016 elk-6.3.2/tests/test_009/TEST_705.OUT_0000644002504400250440000000010113543334747020515 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-6.3.2/tests/test_009/PaxHeaders.21352/B.in0000644000000000000000000000013213543334747015265 xustar0030 mtime=1569569255.481635014 30 atime=1569569255.481635014 30 ctime=1569569255.481635014 elk-6.3.2/tests/test_009/B.in0000644002504400250440000000172213543334747017336 0ustar00dewhurstdewhurst00000000000000 'B' : spsymb 'boron' : spname -5.00000 : spzn 19707.24740 : spmass 0.894427E-06 1.8000 43.3288 300 : sprmin, rmt, sprmax, nrmt 3 : spnst 1 0 1 2.00000 T : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 2 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F elk-6.3.2/tests/test_009/PaxHeaders.21352/N+.in0000644000000000000000000000013213543334747015354 xustar0030 mtime=1569569255.485635011 30 atime=1569569255.485635011 30 ctime=1569569255.485635011 elk-6.3.2/tests/test_009/N+.in0000644002504400250440000000253413543334747017427 0ustar00dewhurstdewhurst00000000000000 'N+' : spsymb 'nitrogen with pseudo core-hole' : spname -8.00000 : spzn 25532.72506 : spmass 0.755929E-06 1.4500 26.9237 300 : sprmin, rmt, sprmax, nrmt 4 : spnst 1 0 1 2.00000 F : spn, spl, spk, spocc, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 2 1 2 2.50000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -0.6020 0 T 0 3 0.1500 0 F 0.1500 1 F -20.0000 0 T elk-6.3.2/tests/test_009/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334747015657 xustar0030 mtime=1569569255.495635005 30 atime=1569569255.489635008 30 ctime=1569569255.495635005 elk-6.3.2/tests/test_009/elk.in0000644002504400250440000000063313543334747017730 0ustar00dewhurstdewhurst00000000000000 ! Electron loss near-edge spectroscopy (ELNES) for boron nitride. tasks 0 140 500 test .true. maxscl 6 rgkmax 6.0 lradstp 2 spinorb .true. vecql 0.0 0.0 0.5 wplot 50 100 3 18.5 19.0 emaxelnes -10.0 ngridk 2 2 2 avec 3.4204 3.4204 0.0000 3.4204 0.0000 3.4204 0.0000 3.4204 3.4204 atoms 2 'B.in' 1 0.00 0.00 0.00 0.0 0.0 0.0 'N+.in' 1 0.25 0.25 0.25 0.0 0.0 0.0 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334747016447 xustar0030 mtime=1569569255.884634756 30 atime=1569569255.883634757 30 ctime=1569569255.884634756 elk-6.3.2/tests/test_009/TEST_500.OUT_0000644002504400250440000000013513543334747020515 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 166.666666686 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334747016450 xustar0030 mtime=1569569255.888634754 30 atime=1569569255.887634754 30 ctime=1569569255.888634754 elk-6.3.2/tests/test_009/TEST_510.OUT_0000644002504400250440000000014513543334747020517 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.483856628302E-01 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334747016446 xustar0030 mtime=1569569255.891634752 30 atime=1569569255.891634752 30 ctime=1569569255.891634752 elk-6.3.2/tests/test_009/TEST_400.OUT_0000644002504400250440000000014113543334747020511 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.5000302777 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334747016453 xustar0030 mtime=1569569255.895634749 30 atime=1569569255.895634749 30 ctime=1569569255.895634749 elk-6.3.2/tests/test_009/TEST_450.OUT_0000644002504400250440000000014013543334747020515 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.176162490602E-26 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334747016442 xustar0030 mtime=1569569255.899634747 30 atime=1569569255.899634747 30 ctime=1569569255.899634747 elk-6.3.2/tests/test_009/TEST_000.OUT_0000644002504400250440000000012613543334747020510 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -99.7538909615 elk-6.3.2/tests/test_009/PaxHeaders.21352/TEST_140.OUT_0000644000000000000000000000013213543334747016447 xustar0030 mtime=1569569255.903634744 30 atime=1569569255.903634744 30 ctime=1569569255.903634744 elk-6.3.2/tests/test_009/TEST_140.OUT_0000644002504400250440000000311413543334747020515 0ustar00dewhurstdewhurst00000000000000'ELNES cross-section' 2 50 0.100000000000E-01 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.00000000000 5 0.00000000000 6 0.00000000000 7 0.00000000000 8 0.00000000000 9 0.00000000000 10 0.00000000000 11 0.156927935857E-11 12 0.261809541530E-09 13 0.257031539892E-08 14 0.129061289309E-07 15 0.482909214477E-07 16 0.146971014975E-06 17 0.401238259102E-06 18 0.111919096368E-05 19 0.309750758368E-05 20 0.685810265220E-05 21 0.115877130042E-04 22 0.147348724959E-04 23 0.141537867571E-04 24 0.102714238280E-04 25 0.555394423649E-05 26 0.229460681279E-05 27 0.750379122593E-06 28 0.253515577693E-06 29 0.698790107065E-07 30 0.160445960374E-07 31 0.162706628476E-06 32 0.150100558137E-05 33 0.915641663425E-05 34 0.733701660123E-04 35 0.201739074923E-03 36 0.383446368080E-03 37 0.473565441958E-03 38 0.452694083795E-03 39 0.335362245987E-03 40 0.270459214251E-03 41 0.282864419586E-03 42 0.371967534266E-03 43 0.498479995654E-03 44 0.662540974674E-03 45 0.852589865602E-03 46 0.103133574401E-02 47 0.116779285052E-02 48 0.128388392790E-02 49 0.143044353167E-02 50 0.162421955608E-02 elk-6.3.2/tests/PaxHeaders.21352/test_0130000644000000000000000000000013213543334750014464 xustar0030 mtime=1569569256.231634534 30 atime=1569569255.907634742 30 ctime=1569569256.231634534 elk-6.3.2/tests/test_013/0000755002504400250440000000000013543334750016610 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016443 xustar0030 mtime=1569569256.197634556 30 atime=1569569256.197634556 30 ctime=1569569256.197634556 elk-6.3.2/tests/test_013/TEST_705.OUT_0000644002504400250440000000010113543334750020502 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 1 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016441 xustar0030 mtime=1569569256.201634554 30 atime=1569569256.200634554 30 ctime=1569569256.201634554 elk-6.3.2/tests/test_013/TEST_910.OUT_0000644002504400250440000000144713543334750020516 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.142903595960 2 0.285807191920 3 0.357258989901 4 0.714517979801 5 0.285807191920 6 0.357258989901 7 0.142903595960 8 0.857421575761 9 0.357258989901 10 0.714517979801 11 0.857421575761 12 0.357258989901 13 0.142903595960 14 0.285807191920 15 0.928873373742 16 0.714517979801 17 0.285807191920 18 0.928873373742 19 0.142903595960 20 0.857421575761 21 0.928873373742 22 0.714517979801 23 0.857421575761 24 0.928873373742 elk-6.3.2/tests/test_013/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015644 xustar0030 mtime=1569569256.204634552 30 atime=1569569256.204634552 30 ctime=1569569256.204634552 elk-6.3.2/tests/test_013/elk.in0000644002504400250440000000125013543334750017711 0ustar00dewhurstdewhurst00000000000000 ! Force test with spin-orbit coupling, removal of the source term from B_xc and ! application of a constanst A-field tasks 0 500 test .true. spinorb .true. nosource .true. tforce .true. bfieldc 0.0 0.0 0.1 afieldc 0.0 0.5 0.0 rgkmax 6.0 maxscl 2 scale 5.496 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'Al.in' 1 0.52 0.52 0.52 0.0 0.0 0.0 : atposl, bfcmt sppath '../../species/' ngridk 2 2 2 vkloff 0.25 0.5 0.625 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013113543334750016437 xustar0030 mtime=1569569256.208634549 29 atime=1569569256.20763455 30 ctime=1569569256.208634549 elk-6.3.2/tests/test_013/TEST_900.OUT_0000644002504400250440000000007013543334750020504 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 4945 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016434 xustar0030 mtime=1569569256.211634547 30 atime=1569569256.211634547 30 ctime=1569569256.211634547 elk-6.3.2/tests/test_013/TEST_500.OUT_0000644002504400250440000000013513543334750020502 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 79.6113956449 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016435 xustar0030 mtime=1569569256.216634544 30 atime=1569569256.215634545 30 ctime=1569569256.216634544 elk-6.3.2/tests/test_013/TEST_510.OUT_0000644002504400250440000000014513543334750020504 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.318376679166E-02 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016433 xustar0030 mtime=1569569256.220634542 30 atime=1569569256.219634542 30 ctime=1569569256.220634542 elk-6.3.2/tests/test_013/TEST_400.OUT_0000644002504400250440000000014113543334750020476 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 38.9887803962 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.224634539 30 atime=1569569256.224634539 30 ctime=1569569256.224634539 elk-6.3.2/tests/test_013/TEST_450.OUT_0000644002504400250440000000014013543334750020502 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.998866376800 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016427 xustar0030 mtime=1569569256.228634536 30 atime=1569569256.228634536 30 ctime=1569569256.228634536 elk-6.3.2/tests/test_013/TEST_000.OUT_0000644002504400250440000000012613543334750020475 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1517.29217013 elk-6.3.2/tests/test_013/PaxHeaders.21352/TEST_750.OUT_0000644000000000000000000000013213543334750016443 xustar0030 mtime=1569569256.233634533 30 atime=1569569256.232634534 30 ctime=1569569256.233634533 elk-6.3.2/tests/test_013/TEST_750.OUT_0000644002504400250440000000036113543334750020512 0ustar00dewhurstdewhurst00000000000000'total forces' 2 6 0.100000000000E-02 1 -0.780489851934E-01 2 -0.616253575921E-01 3 -0.675166297689E-01 4 0.780489851934E-01 5 0.616253575921E-01 6 0.675166297689E-01 elk-6.3.2/tests/PaxHeaders.21352/test_0170000644000000000000000000000013013543334750014466 xustar0029 mtime=1569569256.67763425 30 atime=1569569256.236634531 29 ctime=1569569256.67763425 elk-6.3.2/tests/test_017/0000755002504400250440000000000013543334750016614 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013013543334750016445 xustar0029 mtime=1569569256.23863453 30 atime=1569569256.237634531 29 ctime=1569569256.23863453 elk-6.3.2/tests/test_017/TEST_705.OUT_0000644002504400250440000000010113543334750020506 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016445 xustar0030 mtime=1569569256.242634527 30 atime=1569569256.241634528 30 ctime=1569569256.242634527 elk-6.3.2/tests/test_017/TEST_910.OUT_0000644002504400250440000000037113543334750020515 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 6 0.100000000000E-07 1 -0.138777878078E-16 2 0.146981971254 3 0.587927885017 4 0.293963942509 5 0.440945913763 6 0.293963942509 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016444 xustar0030 mtime=1569569256.246634525 30 atime=1569569256.246634525 30 ctime=1569569256.246634525 elk-6.3.2/tests/test_017/TEST_900.OUT_0000644002504400250440000000007013543334750020510 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 725 elk-6.3.2/tests/test_017/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015650 xustar0030 mtime=1569569256.655634264 30 atime=1569569256.655634264 30 ctime=1569569256.655634264 elk-6.3.2/tests/test_017/elk.in0000644002504400250440000000120313543334750017713 0ustar00dewhurstdewhurst00000000000000 ! RDMFT test tasks 0 300 500 test .true. rdmmaxscl 1 maxitn 2 maxitc 2 mixtype 3 rgkmax 6.0 lmaxo 5 gmaxvr 0.0 avec 5.3435 5.3435 0.0000 5.3435 0.0000 5.3435 0.0000 5.3435 5.3435 sppath '../../species/' atoms 2 : nspecies 'Ga.in' : spfname 1 : natoms 0.00 0.00 0.00 0.0 0.0 0.0 : atposl, bfcmt 'As.in' : spfname 1 : natoms 0.25 0.25 0.25 0.0 0.0 0.0 : atposl, bfcmt ngridk 2 1 1 vkloff 0.25 0.5 0.625 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.659634261 30 atime=1569569256.658634262 30 ctime=1569569256.659634261 elk-6.3.2/tests/test_017/TEST_500.OUT_0000644002504400250440000000013513543334750020506 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.188737914221E-11 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016441 xustar0030 mtime=1569569256.663634259 30 atime=1569569256.662634259 30 ctime=1569569256.663634259 elk-6.3.2/tests/test_017/TEST_510.OUT_0000644002504400250440000000014513543334750020510 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.117176067322 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016437 xustar0030 mtime=1569569256.667634256 30 atime=1569569256.666634257 30 ctime=1569569256.667634256 elk-6.3.2/tests/test_017/TEST_400.OUT_0000644002504400250440000000014113543334750020502 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9850925014 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016433 xustar0030 mtime=1569569256.670634254 30 atime=1569569256.670634254 30 ctime=1569569256.670634254 elk-6.3.2/tests/test_017/TEST_000.OUT_0000644002504400250440000000012613543334750020501 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -4199.45151923 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334750016443 xustar0030 mtime=1569569256.674634252 30 atime=1569569256.674634252 30 ctime=1569569256.674634252 elk-6.3.2/tests/test_017/TEST_800.OUT_0000644002504400250440000000022513543334750020511 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 2 0.100000000000E-07 1 159.645293857 2 40.1466806379 elk-6.3.2/tests/test_017/PaxHeaders.21352/TEST_300.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.678634249 30 atime=1569569256.678634249 30 ctime=1569569256.678634249 elk-6.3.2/tests/test_017/TEST_300.OUT_0000644002504400250440000000013413543334750020503 0ustar00dewhurstdewhurst00000000000000'RDMFT total energy' 2 1 0.100000000000E-05 1 -4061.13403455 elk-6.3.2/tests/PaxHeaders.21352/test_0210000644000000000000000000000013013543334750014461 xustar0029 mtime=1569569256.72363422 30 atime=1569569256.681634247 29 ctime=1569569256.72363422 elk-6.3.2/tests/test_021/0000755002504400250440000000000013543334750016607 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016442 xustar0030 mtime=1569569256.684634245 30 atime=1569569256.683634246 30 ctime=1569569256.684634245 elk-6.3.2/tests/test_021/TEST_705.OUT_0000644002504400250440000000010113543334750020501 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.688634243 30 atime=1569569256.687634243 30 ctime=1569569256.688634243 elk-6.3.2/tests/test_021/TEST_910.OUT_0000644002504400250440000000237013543334750020511 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 39 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.280567949614 5 -0.935226498715E-01 6 -0.935226498715E-01 7 0.561135899229 8 -0.187045299743 9 -0.187045299743 10 0.187045299743 11 0.187045299743 12 -0.187045299743 13 0.467613249357 14 0.935226498715E-01 15 -0.280567949614 16 0.748181198972 17 0.416333634234E-16 18 -0.374090599486 19 0.374090599486 20 0.374090599486 21 -0.374090599486 22 0.935226498715E-01 23 0.935226498715E-01 24 0.935226498715E-01 25 0.374090599486 26 0.416333634234E-16 27 0.555111512313E-16 28 0.654658549100 29 -0.935226498715E-01 30 -0.935226498715E-01 31 0.280567949614 32 0.280567949614 33 -0.935226498715E-01 34 0.561135899229 35 0.187045299743 36 -0.187045299743 37 0.187045299743 38 0.187045299743 39 0.187045299743 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013013543334750016424 xustar0029 mtime=1569569256.69263424 30 atime=1569569256.691634241 29 ctime=1569569256.69263424 elk-6.3.2/tests/test_021/TEST_000.OUT_0000644002504400250440000000012613543334750020474 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -2462.70040338 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_195.OUT_0000644000000000000000000000013213543334750016445 xustar0030 mtime=1569569256.696634238 30 atime=1569569256.695634238 30 ctime=1569569256.696634238 elk-6.3.2/tests/test_021/TEST_195.OUT_0000644002504400250440000000477713543334750020533 0ustar00dewhurstdewhurst00000000000000'density structure factors' 3 47 0.100000000000E-04 1 0.222781435022 -0.233863299704E-20 2 0.278812629706E-16 -0.100613961607E-15 3 -0.495491548916E-17 0.208166817117E-16 4 0.897007276878E-01 0.137314253863E-16 5 0.897768752866E-01 -0.180270105472E-15 6 0.159095667683 0.186702555430E-15 7 -0.454053076533E-16 0.175207071074E-15 8 -0.382745689314E-16 0.131838984174E-15 9 0.386738366338E-16 0.147451495458E-15 10 0.128978037043 0.348937273263E-16 11 0.129015069642 0.131820185653E-15 12 0.175986834353E-16 -0.711236625150E-16 13 0.142346791813E-16 0.676542155631E-16 14 0.709436799115E-01 0.112849925716E-15 15 0.709341264712E-01 -0.272320678141E-15 16 0.709477929948E-01 -0.130909640409E-15 17 0.110367578881 -0.585663630519E-16 18 0.110427119986 0.251812223560E-15 19 0.942528511554E-16 -0.409394740331E-15 20 -0.316859852302E-16 -0.130104260698E-15 21 -0.569820790398E-16 0.249800180541E-15 22 0.589131779925E-16 -0.260208521397E-15 23 0.980833641994E-01 -0.246043889619E-15 24 -0.188340909765E-16 0.763278329430E-16 25 0.116240787050E-16 -0.555111512313E-16 26 0.150007602879E-16 -0.624500451352E-16 27 0.583608579130E-01 -0.239325618651E-16 28 0.582951504723E-01 -0.200799998963E-15 29 0.583174082724E-01 0.219429519295E-15 30 0.886603794364E-01 0.468248240926E-16 31 0.886390621396E-01 -0.465071064482E-15 32 0.170962047056E-16 -0.780625564190E-16 33 -0.367684690221E-16 0.170002900646E-15 34 0.464197796678E-16 0.215105711021E-15 35 0.816397349389E-01 -0.205685415222E-15 36 0.816031981336E-01 0.361819426216E-16 37 0.816176008521E-01 -0.172317648488E-15 38 0.357182133381E-16 0.164798730218E-15 39 0.100876308604E-16 -0.468375338514E-16 40 -0.642494930385E-16 0.300974523082E-15 41 0.104236037805E-16 0.546437894933E-16 42 -0.581477181080E-16 0.274953670942E-15 43 0.505039351592E-01 0.740426889194E-16 44 0.502376939764E-01 -0.156533409738E-15 45 0.504649596348E-01 -0.172107193463E-15 46 0.505015262735E-01 -0.203558694951E-15 47 0.502809143765E-01 -0.235842733017E-16 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_196.OUT_0000644000000000000000000000013213543334750016446 xustar0030 mtime=1569569256.700634235 30 atime=1569569256.699634236 30 ctime=1569569256.700634235 elk-6.3.2/tests/test_021/TEST_196.OUT_0000644002504400250440000000500013543334750020510 0ustar00dewhurstdewhurst00000000000000'magnetic structure factors' 3 47 0.100000000000E-03 1 0.137314614413E-18 -0.345026249869E-22 2 0.268160262500E-01 0.174306585566E-16 3 0.204349720166E-01 -0.294625382487E-17 4 0.343679192280E-17 -0.177368699155E-17 5 0.177108398599E-17 0.271186068393E-16 6 0.176128024276E-17 -0.259022675270E-16 7 0.158945225599E-01 -0.231619729091E-16 8 0.125662979246E-01 -0.156618921774E-16 9 0.123650715038E-01 -0.171444149943E-16 10 0.842877919456E-18 -0.395856162083E-17 11 -0.193248216672E-18 -0.137422625363E-16 12 0.101549693835E-01 0.715164957940E-17 13 0.837999992803E-02 -0.633811109021E-17 14 0.851832663979E-18 -0.998651844813E-17 15 0.109724751609E-17 0.238931053761E-16 16 0.929307398108E-18 0.111638942448E-16 17 0.490413443727E-18 0.470950318673E-17 18 0.588959139167E-18 -0.208844443475E-16 19 0.692622510419E-02 0.327082003371E-16 20 0.648562626882E-02 0.950866994778E-17 21 0.542643721897E-02 -0.168056458701E-16 22 0.583536164422E-02 0.178836196406E-16 23 -0.173313173518E-18 0.151246203062E-16 24 0.450096844821E-02 -0.416975621819E-17 25 0.391282834904E-02 0.326280192823E-17 26 0.406517361035E-02 0.305920620498E-17 27 0.390886314101E-18 0.130273667288E-17 28 0.293679377939E-18 0.103202494293E-16 29 0.658632677207E-18 -0.110588621594E-16 30 0.463732053969E-18 -0.220567379465E-17 31 -0.599755431540E-18 0.222871309082E-16 32 0.328095812456E-02 0.313250303178E-17 33 0.329522880016E-02 -0.785217594600E-17 34 0.277977264561E-02 -0.844576863602E-17 35 -0.103904846652E-18 0.753181696699E-17 36 0.472766183709E-18 -0.127901975035E-17 37 -0.106745871270E-18 0.588857304931E-17 38 0.234877944735E-02 -0.580407270889E-17 39 0.239281678602E-02 0.166127385761E-17 40 0.221390099381E-02 -0.102732527275E-16 41 0.198786248767E-02 -0.142329817246E-17 42 0.179402981761E-02 -0.832494873769E-17 43 0.572474355023E-18 -0.214129929066E-17 44 0.395548202287E-18 0.479759461325E-17 45 0.199727962943E-18 0.484502845829E-17 46 0.423248237188E-18 0.580725788638E-17 47 0.358508142942E-18 0.598005260762E-18 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016437 xustar0030 mtime=1569569256.704634232 30 atime=1569569256.704634232 30 ctime=1569569256.704634232 elk-6.3.2/tests/test_021/TEST_900.OUT_0000644002504400250440000000007013543334750020503 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8623 elk-6.3.2/tests/test_021/PaxHeaders.21352/elk.in0000644000000000000000000000012713543334750015647 xustar0029 mtime=1569569256.70863423 29 atime=1569569256.70863423 29 ctime=1569569256.70863423 elk-6.3.2/tests/test_021/elk.in0000644002504400250440000000060313543334750017711 0ustar00dewhurstdewhurst00000000000000 tasks 0 195 196 500 test .true. spinpol .true. scale 8.397946 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 'Mn.in' 2 0.0 0.0 0.0 0.0 0.0 -0.01 0.5 0.5 0.5 0.0 0.0 0.01 'O.in' 2 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 sppath '../../species/' ngridk 4 4 4 hmaxvr 4.0 reduceh .true. elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016433 xustar0030 mtime=1569569256.712634227 30 atime=1569569256.712634227 30 ctime=1569569256.712634227 elk-6.3.2/tests/test_021/TEST_500.OUT_0000644002504400250440000000013513543334750020501 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.364928200480E-04 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016434 xustar0030 mtime=1569569256.716634225 30 atime=1569569256.716634225 30 ctime=1569569256.716634225 elk-6.3.2/tests/test_021/TEST_510.OUT_0000644002504400250440000000014513543334750020503 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.296542963576E-01 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334750016437 xustar0030 mtime=1569569256.720634222 30 atime=1569569256.720634222 30 ctime=1569569256.720634222 elk-6.3.2/tests/test_021/TEST_450.OUT_0000644002504400250440000000014013543334750020501 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.174583168682E-15 elk-6.3.2/tests/test_021/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000012713543334750016436 xustar0029 mtime=1569569256.72463422 29 atime=1569569256.72463422 29 ctime=1569569256.72463422 elk-6.3.2/tests/test_021/TEST_400.OUT_0000644002504400250440000000014113543334750020475 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 66.0189750218 elk-6.3.2/tests/PaxHeaders.21352/test_0230000644000000000000000000000013213543334750014465 xustar0030 mtime=1569569256.782634183 30 atime=1569569256.728634217 30 ctime=1569569256.782634183 elk-6.3.2/tests/test_023/0000755002504400250440000000000013543334750016611 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016444 xustar0030 mtime=1569569256.731634215 30 atime=1569569256.729634216 30 ctime=1569569256.731634215 elk-6.3.2/tests/test_023/TEST_705.OUT_0000644002504400250440000000010113543334750020503 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016441 xustar0030 mtime=1569569256.735634213 30 atime=1569569256.734634213 30 ctime=1569569256.735634213 elk-6.3.2/tests/test_023/TEST_900.OUT_0000644002504400250440000000007013543334750020505 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3215 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013113543334750016441 xustar0030 mtime=1569569256.740634209 29 atime=1569569256.73963421 30 ctime=1569569256.740634209 elk-6.3.2/tests/test_023/TEST_910.OUT_0000644002504400250440000000531013543334750020510 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 87 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.103232654323 5 0.103232654323 6 -0.103232654323 7 0.206465308646 8 0.206465308646 9 -0.206465308646 10 0.309697962970 11 0.309697962970 12 -0.309697962970 13 0.412930617293 14 0.412930617293 15 -0.412930617293 16 0.206465308646 17 0.00000000000 18 0.00000000000 19 0.309697962970 20 0.103232654323 21 -0.103232654323 22 0.412930617293 23 0.206465308646 24 -0.206465308646 25 0.516163271616 26 0.309697962970 27 -0.309697962970 28 0.619395925939 29 0.412930617293 30 -0.412930617293 31 0.722628580263 32 0.516163271616 33 -0.516163271616 34 0.825861234586 35 0.619395925939 36 -0.619395925939 37 0.412930617293 38 0.00000000000 39 0.00000000000 40 0.516163271616 41 0.103232654323 42 -0.103232654323 43 0.619395925939 44 0.206465308646 45 -0.206465308646 46 0.722628580263 47 0.309697962970 48 -0.309697962970 49 0.825861234586 50 0.412930617293 51 -0.412930617293 52 0.619395925939 53 -0.277555756156E-16 54 0.277555756156E-16 55 0.722628580263 56 0.103232654323 57 -0.103232654323 58 0.825861234586 59 0.206465308646 60 -0.206465308646 61 0.825861234586 62 0.00000000000 63 0.00000000000 64 0.412930617293 65 0.206465308646 66 0.00000000000 67 0.516163271616 68 0.309697962970 69 -0.103232654323 70 0.619395925939 71 0.412930617293 72 -0.206465308646 73 0.619395925939 74 0.206465308646 75 0.277555756156E-16 76 0.722628580263 77 0.309697962970 78 -0.103232654323 79 0.825861234586 80 0.412930617293 81 -0.206465308646 82 0.825861234586 83 0.206465308646 84 0.00000000000 85 0.825861234586 86 0.412930617293 87 0.00000000000 elk-6.3.2/tests/test_023/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015645 xustar0030 mtime=1569569256.744634207 30 atime=1569569256.744634207 30 ctime=1569569256.744634207 elk-6.3.2/tests/test_023/elk.in0000644002504400250440000000123113543334750017711 0ustar00dewhurstdewhurst00000000000000 ! Time-dependent density functional theory (TDDFT) optical spectrum of lithium ! fluoride. tasks 0 120 121 320 500 test .true. spinorb .true. scissor 0.192 xctype 3 ! bootstrap kernel fxctype 210 lmaxi 2 swidth 0.01 gmaxrf 1.5 nempty 10 ngridk 8 8 8 wplot 10 100 0 0.0 1.5 avec 3.80402 3.80402 0.0 3.80402 0.0 3.80402 0.0 3.80402 3.80402 sppath '../../species/' atoms 2 : nspecies 'Li.in' : spfname 1 : natoms; atposl below 0.0 0.0 0.0 'F.in' 1 0.5 0.5 0.5 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016435 xustar0030 mtime=1569569256.749634204 30 atime=1569569256.748634204 30 ctime=1569569256.749634204 elk-6.3.2/tests/test_023/TEST_500.OUT_0000644002504400250440000000013513543334750020503 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.192561447717E-05 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.754634201 30 atime=1569569256.753634201 30 ctime=1569569256.754634201 elk-6.3.2/tests/test_023/TEST_510.OUT_0000644002504400250440000000014513543334750020505 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.323124184908 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016434 xustar0030 mtime=1569569256.759634197 30 atime=1569569256.758634198 30 ctime=1569569256.759634197 elk-6.3.2/tests/test_023/TEST_400.OUT_0000644002504400250440000000014113543334750020477 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 12.0281690144 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334750016441 xustar0030 mtime=1569569256.764634194 30 atime=1569569256.763634195 30 ctime=1569569256.764634194 elk-6.3.2/tests/test_023/TEST_450.OUT_0000644002504400250440000000014013543334750020503 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.626047536500E-24 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016430 xustar0030 mtime=1569569256.769634191 30 atime=1569569256.768634192 30 ctime=1569569256.769634191 elk-6.3.2/tests/test_023/TEST_000.OUT_0000644002504400250440000000012613543334750020476 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -106.905945873 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_121.OUT_0000644000000000000000000000013213543334750016434 xustar0030 mtime=1569569256.774634188 30 atime=1569569256.772634189 30 ctime=1569569256.774634188 elk-6.3.2/tests/test_023/TEST_121.OUT_0000644002504400250440000000112113543334750020476 0ustar00dewhurstdewhurst00000000000000'optical conductivity' 3 10 0.100000000000E-01 1 0.580625479693E-03 0.00000000000 2 0.655497713502E-03 -0.906740001204E-02 3 0.987216857980E-03 -0.208590853193E-01 4 0.272919016961E-02 -0.442680836934E-01 5 0.981985888375E-01 -0.784091100321E-01 6 0.363511818392E-01 -0.353027179465E-01 7 0.193512160566 -0.138267653473E-01 8 0.286459306205E-01 0.698009652358E-01 9 0.144284274994E-01 0.361247088809E-01 10 0.232751867148E-01 0.330133943955E-01 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.779634185 30 atime=1569569256.777634186 30 ctime=1569569256.779634185 elk-6.3.2/tests/test_023/TEST_800.OUT_0000644002504400250440000000173213543334750020512 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 29 0.100000000000E-07 1 3471.42385475 2 449.999268017 3 102.126006040 4 44.4368907338 5 24.8077399615 6 316.225134909 7 110.172109929 8 49.8595800454 9 27.6688640011 10 33.2606437898 11 63.9928181320 12 159.609474644 13 74.9097699406 14 44.1226890559 15 26.9879912411 16 23.3873537479 17 37.5424793079 18 32.9874812327 19 23.2415139523 20 16.4427726861 21 18.4974249639 22 58.8819748233 23 33.7934093072 24 21.1301369304 25 29.5144616450 26 20.0273396337 27 22.9243588415 28 17.3643897759 29 14.7360936588 elk-6.3.2/tests/test_023/PaxHeaders.21352/TEST_320.OUT_0000644000000000000000000000013213543334750016435 xustar0030 mtime=1569569256.794634175 30 atime=1569569256.782634183 30 ctime=1569569256.794634175 elk-6.3.2/tests/test_023/TEST_320.OUT_0000644002504400250440000017527413543334750020524 0ustar00dewhurstdewhurst00000000000000'inverse epsilon' 3 1210 0.100000000000E-01 1 0.447750178794 0.711681201727E-15 2 -0.307935562055E-05 -0.249622566205E-15 3 0.200610957099E-05 0.412954368049E-16 4 -0.381870371739E-01 0.537496704020E-05 5 -0.381861536340E-01 -0.809461872626E-05 6 0.381758901293E-01 -0.584232223223E-05 7 0.381940152235E-01 0.173572147211E-05 8 0.381870371739E-01 0.537496704043E-05 9 -0.381940152235E-01 0.173572147182E-05 10 0.381861536340E-01 -0.809461872597E-05 11 -0.381758901293E-01 -0.584232223247E-05 12 -0.307989935803E-05 0.772215313143E-17 13 0.447750630859 0.136217923224E-14 14 0.532169300639E-06 -0.255308632565E-15 15 -0.381905199091E-01 0.398413180389E-05 16 0.381909952163E-01 0.453485973572E-05 17 0.381817617031E-01 -0.534501316950E-05 18 -0.381834011436E-01 -0.720926989076E-05 19 0.381905199091E-01 0.398413180420E-05 20 0.381834011436E-01 -0.720926989039E-05 21 -0.381909952163E-01 0.453485973541E-05 22 -0.381817617031E-01 -0.534501316988E-05 23 0.200608935696E-05 -0.440829696379E-16 24 0.532565035800E-06 0.742306167162E-16 25 0.447748426064 0.672949231413E-15 26 -0.381766642934E-01 0.287425083386E-05 27 0.381886136355E-01 0.474520276636E-06 28 -0.381707573225E-01 -0.612581798366E-05 29 0.381933190931E-01 0.627145124122E-06 30 0.381766642934E-01 0.287425083413E-05 31 -0.381933190931E-01 0.627145123884E-06 32 -0.381886136355E-01 0.474520276348E-06 33 0.381707573225E-01 -0.612581798339E-05 34 -0.381870371392E-01 -0.537527262563E-05 35 -0.381905199767E-01 -0.398436467352E-05 36 -0.381766642735E-01 -0.287399229891E-05 37 0.819710475480 0.434622270810E-08 38 -0.493561396698E-01 -0.711863234065E-05 39 -0.493995848194E-01 -0.609735788515E-05 40 -0.493498907986E-01 0.298836202032E-06 41 -0.366270616862E-01 -0.168595256588E-04 42 -0.639559700757E-01 0.148202736644E-04 43 -0.639492336809E-01 0.650571287766E-05 44 -0.639114323701E-01 0.167462083601E-04 45 -0.381861536682E-01 0.809423134137E-05 46 0.381909952187E-01 -0.453449689204E-05 47 0.381886136109E-01 -0.475086851238E-06 48 -0.493561397305E-01 0.711852433790E-05 49 0.819799753157 0.240858226870E-08 50 -0.493266555844E-01 -0.251272776012E-04 51 -0.493265850074E-01 -0.739426851840E-06 52 -0.639492337723E-01 0.650752536342E-05 53 -0.639867706098E-01 -0.129148919353E-06 54 -0.367213062891E-01 0.445303230505E-04 55 -0.639795540976E-01 -0.276097730564E-04 56 0.381758900970E-01 0.584271385810E-05 57 0.381817616992E-01 0.534487939040E-05 58 -0.381707573526E-01 0.612647752818E-05 59 -0.493995847917E-01 0.609679855961E-05 60 -0.493266556889E-01 0.251275611594E-04 61 0.819636342142 -0.650673101160E-08 62 -0.493300825908E-01 0.316682794013E-04 63 -0.639114324194E-01 0.167525691536E-04 64 -0.639668588398E-01 -0.105559314168E-04 65 -0.639795541279E-01 -0.276049985060E-04 66 -0.365671103625E-01 -0.258821272393E-04 67 0.381940152585E-01 -0.173476236378E-05 68 -0.381834010751E-01 0.720971743046E-05 69 0.381933191152E-01 -0.627667417222E-06 70 -0.493498907583E-01 -0.299378461898E-06 71 -0.493265850325E-01 0.738466363990E-06 72 -0.493300825983E-01 -0.316666244912E-04 73 0.819783075389 0.322015527147E-10 74 -0.639559700474E-01 0.148220805322E-04 75 -0.367166776457E-01 0.323564980592E-04 76 -0.639867706254E-01 -0.127394837306E-06 77 -0.639668588853E-01 -0.105593679141E-04 78 0.381870371392E-01 -0.537527262538E-05 79 0.381905199767E-01 -0.398436467321E-05 80 0.381766642735E-01 -0.287399229869E-05 81 -0.366270616862E-01 0.168595256588E-04 82 -0.639492336809E-01 -0.650571287783E-05 83 -0.639114323701E-01 -0.167462083603E-04 84 -0.639559700757E-01 -0.148202736645E-04 85 0.819710475480 -0.434622302927E-08 86 -0.493498907986E-01 -0.298836202176E-06 87 -0.493561396698E-01 0.711863234053E-05 88 -0.493995848194E-01 0.609735788502E-05 89 -0.381940152585E-01 -0.173476236404E-05 90 0.381834010751E-01 0.720971743082E-05 91 -0.381933191152E-01 -0.627667417513E-06 92 -0.639559700474E-01 -0.148220805324E-04 93 -0.639867706254E-01 0.127394837148E-06 94 -0.639668588853E-01 0.105593679139E-04 95 -0.367166776457E-01 -0.323564980593E-04 96 -0.493498907583E-01 0.299378461784E-06 97 0.819783075389 -0.322018738921E-10 98 -0.493265850325E-01 -0.738466364131E-06 99 -0.493300825983E-01 0.316666244911E-04 100 0.381861536682E-01 0.809423134163E-05 101 -0.381909952187E-01 -0.453449689243E-05 102 -0.381886136109E-01 -0.475086851435E-06 103 -0.639492337723E-01 -0.650752536358E-05 104 -0.367213062891E-01 -0.445303230506E-04 105 -0.639795540976E-01 0.276097730563E-04 106 -0.639867706098E-01 0.129148919185E-06 107 -0.493561397305E-01 -0.711852433804E-05 108 -0.493265850074E-01 0.739426851721E-06 109 0.819799753157 -0.240858259001E-08 110 -0.493266555844E-01 0.251272776011E-04 111 -0.381758900970E-01 0.584271385785E-05 112 -0.381817616992E-01 0.534487939012E-05 113 0.381707573526E-01 0.612647752844E-05 114 -0.639114324194E-01 -0.167525691538E-04 115 -0.639795541279E-01 0.276049985059E-04 116 -0.365671103625E-01 0.258821272392E-04 117 -0.639668588398E-01 0.105559314167E-04 118 -0.493995847917E-01 -0.609679855974E-05 119 -0.493300825908E-01 -0.316682794014E-04 120 -0.493266556889E-01 -0.251275611595E-04 121 0.819636342142 0.650673068998E-08 122 0.430347714747 -0.242245556946E-02 123 -0.299224594624E-05 0.122140432281E-07 124 0.210131208374E-05 0.137140006722E-07 125 -0.387603160161E-01 -0.705925366101E-04 126 -0.387586826267E-01 -0.846888772016E-04 127 0.387484063410E-01 0.702790667815E-04 128 0.387674653321E-01 0.784994308890E-04 129 0.387601761675E-01 0.822984198208E-04 130 -0.387675298281E-01 -0.744693214657E-04 131 0.387587442352E-01 0.680184584949E-04 132 -0.387483370883E-01 -0.824063760852E-04 133 -0.299202346505E-05 0.121625120683E-07 134 0.430348186521 -0.242245251255E-02 135 0.641081643920E-06 0.160051300838E-07 136 -0.387641778805E-01 -0.723080054839E-04 137 0.387645158363E-01 0.812869118062E-04 138 0.387543236084E-01 0.707304374777E-04 139 -0.387557827255E-01 -0.837829140021E-04 140 0.387641141092E-01 0.807023482495E-04 141 0.387558573528E-01 0.688840936296E-04 142 -0.387645830273E-01 -0.717034436490E-04 143 -0.387542478221E-01 -0.819655639372E-04 144 0.210132081354E-05 0.137054809189E-07 145 0.640923400890E-06 0.160130588597E-07 146 0.430345881551 -0.242246721840E-02 147 -0.387489216215E-01 -0.732841228759E-04 148 0.387618374599E-01 0.771512138272E-04 149 -0.387429805816E-01 -0.827963365378E-04 150 0.387665702232E-01 0.768426882644E-04 151 0.387488836952E-01 0.793325878057E-04 152 -0.387665121693E-01 -0.760514275364E-04 153 -0.387619106742E-01 -0.757546584974E-04 154 0.387430908327E-01 0.698327872041E-04 155 -0.387601805911E-01 -0.822987332600E-04 156 -0.387641175516E-01 -0.807024407498E-04 157 -0.387488789280E-01 -0.793323174921E-04 158 0.816843864564 -0.392329891218E-03 159 -0.506966914291E-01 -0.191786284326E-03 160 -0.507409455993E-01 -0.190969907382E-03 161 -0.506904014971E-01 -0.184202861495E-03 162 -0.376578007022E-01 -0.158643529847E-03 163 -0.652266164185E-01 -0.159115171736E-03 164 -0.652197918540E-01 -0.167433240163E-03 165 -0.651812404397E-01 -0.157266527125E-03 166 -0.387587504070E-01 -0.680188392960E-04 167 0.387645883164E-01 0.717036446205E-04 168 0.387619012538E-01 0.757540919502E-04 169 -0.506967230726E-01 -0.177317144244E-03 170 0.816934524485 -0.392137736122E-03 171 -0.506670126049E-01 -0.209962818402E-03 172 -0.506664423333E-01 -0.185150841873E-03 173 -0.652197639170E-01 -0.167430017669E-03 174 -0.652581145782E-01 -0.174369579114E-03 175 -0.377535828226E-01 -0.970890333052E-04 176 -0.652503057198E-01 -0.202102985857E-03 177 0.387483438504E-01 0.824067349995E-04 178 0.387542464060E-01 0.819656095766E-04 179 -0.387430812848E-01 -0.698319980256E-04 180 -0.507410032423E-01 -0.178359077831E-03 181 -0.506670963572E-01 -0.159095417229E-03 182 0.816768693341 -0.392460224666E-03 183 -0.506705923641E-01 -0.152403809467E-03 184 -0.651811425723E-01 -0.157259344276E-03 185 -0.652375275019E-01 -0.184881307703E-03 186 -0.652502323898E-01 -0.202097707237E-03 187 -0.375972696139E-01 -0.168115412578E-03 188 0.387675448474E-01 0.744702510934E-04 189 -0.387558502662E-01 -0.688838101357E-04 190 0.387665039872E-01 0.760509557003E-04 191 -0.506903902913E-01 -0.184883038403E-03 192 -0.506664311006E-01 -0.183754748365E-03 193 -0.506704647661E-01 -0.216668966529E-03 194 0.816917440226 -0.392190937342E-03 195 -0.652265885385E-01 -0.159113763328E-03 196 -0.377488014633E-01 -0.109443541799E-03 197 -0.652580875852E-01 -0.174367573085E-03 198 -0.652375802934E-01 -0.184884084480E-03 199 0.387603115688E-01 0.705922222533E-04 200 0.387641744978E-01 0.723076210981E-04 201 0.387489263785E-01 0.732842789822E-04 202 -0.376577857170E-01 -0.125029751329E-03 203 -0.652196969549E-01 -0.180930919228E-03 204 -0.651811252850E-01 -0.190887930457E-03 205 -0.652265176979E-01 -0.189270806643E-03 206 0.816843732099 -0.392338681199E-03 207 -0.506903814786E-01 -0.184881886991E-03 208 -0.506967204460E-01 -0.177317987255E-03 209 -0.507409949674E-01 -0.178358105745E-03 210 -0.387674503407E-01 -0.784984287357E-04 211 0.387557897513E-01 0.837835287024E-04 212 -0.387665784159E-01 -0.768432687756E-04 213 -0.652265455249E-01 -0.189273034178E-03 214 -0.652581001930E-01 -0.174218309056E-03 215 -0.652375594540E-01 -0.163532899553E-03 216 -0.377487407369E-01 -0.174603861731E-03 217 -0.506903925975E-01 -0.184202930186E-03 218 0.816917439131 -0.392191000238E-03 219 -0.506664275857E-01 -0.185149475392E-03 220 -0.506706184526E-01 -0.152405368055E-03 221 0.387586764774E-01 0.846885148877E-04 222 -0.387645105636E-01 -0.812863351766E-04 223 -0.387618468637E-01 -0.771517305286E-04 224 -0.652197250731E-01 -0.180931342468E-03 225 -0.377534679007E-01 -0.186993099846E-03 226 -0.652503083865E-01 -0.146326318414E-03 227 -0.652580731709E-01 -0.174216782514E-03 228 -0.506966889274E-01 -0.191785247998E-03 229 -0.506664163004E-01 -0.183754170324E-03 230 0.816934450842 -0.392142602547E-03 231 -0.506671011420E-01 -0.159097313012E-03 232 -0.387483995562E-01 -0.702786949668E-04 233 -0.387543250046E-01 -0.707308116233E-04 234 0.387429901606E-01 0.827969318050E-04 235 -0.651812232488E-01 -0.190893556177E-03 236 -0.652503817762E-01 -0.146330658669E-03 237 -0.375973980037E-01 -0.115419030082E-03 238 -0.652376121558E-01 -0.163537047866E-03 239 -0.507409372695E-01 -0.190969741233E-03 240 -0.506704908363E-01 -0.216670737661E-03 241 -0.506670176006E-01 -0.209961483275E-03 242 0.816768891919 -0.392447069847E-03 243 0.367410389761 -0.650751972459E-02 244 -0.267554590392E-05 0.327120603539E-07 245 0.249996108446E-05 0.457665546223E-07 246 -0.404442097034E-01 -0.134883917125E-03 247 -0.404398671588E-01 -0.151578911769E-03 248 0.404294224747E-01 0.135381649158E-03 249 0.404522311127E-01 0.145845720480E-03 250 0.404437936018E-01 0.150316889410E-03 251 -0.404524462469E-01 -0.139595611981E-03 252 0.404400518945E-01 0.133077913261E-03 253 -0.404292252415E-01 -0.149211981525E-03 254 -0.267526696025E-05 0.326848525717E-07 255 0.367410971418 -0.650750500011E-02 256 0.114267686165E-05 0.612952996389E-07 257 -0.404496865138E-01 -0.137762660441E-03 258 0.404496316312E-01 0.148538822404E-03 259 0.404354465896E-01 0.135622651159E-03 260 -0.404363952901E-01 -0.150624941688E-03 261 0.404494982940E-01 0.147817791287E-03 262 0.404366047165E-01 0.133905093513E-03 263 -0.404498326466E-01 -0.136986234281E-03 264 -0.404352187543E-01 -0.148980990166E-03 265 0.249997241356E-05 0.457489419198E-07 266 0.114247874241E-05 0.612489811766E-07 267 0.367408211692 -0.650755993738E-02 268 -0.404289782687E-01 -0.138574501163E-03 269 0.404457401278E-01 0.144220428699E-03 270 -0.404231049856E-01 -0.150083560819E-03 271 0.404504147677E-01 0.142055807567E-03 272 0.404288539593E-01 0.145816229801E-03 273 -0.404502205343E-01 -0.143144666280E-03 274 -0.404459574501E-01 -0.141031170149E-03 275 0.404234248551E-01 0.134363249392E-03 276 -0.404438027042E-01 -0.150317230865E-03 277 -0.404495053195E-01 -0.147817753358E-03 278 -0.404288460000E-01 -0.145816106746E-03 279 0.807245749592 -0.931240694273E-03 280 -0.552961320384E-01 -0.462043174860E-03 281 -0.553431534616E-01 -0.461731258446E-03 282 -0.552896509538E-01 -0.453924308816E-03 283 -0.411876332287E-01 -0.364833875829E-03 284 -0.695103680661E-01 -0.401719618748E-03 285 -0.695032472235E-01 -0.410076111726E-03 286 -0.694620957536E-01 -0.400389833508E-03 287 -0.404400636445E-01 -0.133078235975E-03 288 0.404498441743E-01 0.136986366308E-03 289 0.404459394161E-01 0.141030701899E-03 290 -0.552962064374E-01 -0.446803689416E-03 291 0.807341204354 -0.930766908458E-03 292 -0.552658722668E-01 -0.480830550107E-03 293 -0.552634407882E-01 -0.454741149119E-03 294 -0.695031909028E-01 -0.410071439224E-03 295 -0.695443030166E-01 -0.417829775703E-03 296 -0.412885476079E-01 -0.302387758754E-03 297 -0.695344902224E-01 -0.446541811731E-03 298 0.404292379536E-01 0.149212227786E-03 299 0.404352149124E-01 0.148981118113E-03 300 -0.404234046004E-01 -0.134362206943E-03 301 -0.553432993649E-01 -0.447663368178E-03 302 -0.552660717602E-01 -0.427911272732E-03 303 0.807167484461 -0.931536885369E-03 304 -0.552697887162E-01 -0.420683914007E-03 305 -0.694618985086E-01 -0.400381745705E-03 306 -0.695215527613E-01 -0.428787134777E-03 307 -0.695343423709E-01 -0.446535960229E-03 308 -0.411252956775E-01 -0.376016295353E-03 309 0.404524766295E-01 0.139596527813E-03 310 -0.404365904489E-01 -0.133904964480E-03 311 0.404502039759E-01 0.143144236512E-03 312 -0.552896245491E-01 -0.454878459006E-03 313 -0.552634152260E-01 -0.453616387330E-03 314 -0.552694806601E-01 -0.488095995691E-03 315 0.807322828615 -0.930892356286E-03 316 -0.695103119540E-01 -0.401718607900E-03 317 -0.412832880079E-01 -0.315378977026E-03 318 -0.695442486067E-01 -0.417827492167E-03 319 -0.695216591635E-01 -0.428789285778E-03 320 0.404442005750E-01 0.134883566341E-03 321 0.404496795547E-01 0.137762101940E-03 322 0.404289862135E-01 0.138574411062E-03 323 -0.411875910708E-01 -0.331624410640E-03 324 -0.695030281886E-01 -0.425231451414E-03 325 -0.694618625126E-01 -0.434404802246E-03 326 -0.695101369847E-01 -0.433642077430E-03 327 0.807245481539 -0.931249801646E-03 328 -0.552896069004E-01 -0.454876682289E-03 329 -0.552962015807E-01 -0.446805523940E-03 330 -0.553432824884E-01 -0.447661937474E-03 331 -0.404522007623E-01 -0.145844649254E-03 332 0.404364094928E-01 0.150625723780E-03 333 -0.404504313384E-01 -0.142056461126E-03 334 -0.695101930399E-01 -0.433644764598E-03 335 -0.695442707209E-01 -0.418023075804E-03 336 -0.695216301112E-01 -0.406649388501E-03 337 -0.412831509080E-01 -0.381987917663E-03 338 -0.552896332127E-01 -0.453925017961E-03 339 0.807322826467 -0.930892413297E-03 340 -0.552634109026E-01 -0.454739349611E-03 341 -0.552698412097E-01 -0.420685381719E-03 342 0.404398554334E-01 0.151578634831E-03 343 -0.404496201167E-01 -0.148537953829E-03 344 -0.404457581390E-01 -0.144220827195E-03 345 -0.695030846939E-01 -0.425230485132E-03 346 -0.412882812138E-01 -0.395068174020E-03 347 -0.695345199742E-01 -0.388920384790E-03 348 -0.695442162822E-01 -0.418021752167E-03 349 -0.552961273083E-01 -0.462041231791E-03 350 -0.552633852872E-01 -0.453616171148E-03 351 0.807341055480 -0.930771933240E-03 352 -0.552660813409E-01 -0.427914787477E-03 353 -0.404294097353E-01 -0.135381389234E-03 354 -0.404354504124E-01 -0.135623365665E-03 355 0.404231252781E-01 0.150084176589E-03 356 -0.694620598521E-01 -0.434409783862E-03 357 -0.695346678844E-01 -0.388924363757E-03 358 -0.411256139191E-01 -0.320110941745E-03 359 -0.695217364200E-01 -0.406654320805E-03 360 -0.553431365248E-01 -0.461731487365E-03 361 -0.552695331331E-01 -0.488097905313E-03 362 -0.552658820614E-01 -0.480827565843E-03 363 0.807167886159 -0.931523272774E-03 364 0.191510551336 -0.214260777730E-01 365 -0.180734821140E-05 0.102700716224E-06 366 0.408779784466E-05 0.239311828055E-06 367 -0.421026278559E-01 0.731100192339E-04 368 -0.420891604823E-01 0.480865978684E-04 369 0.420782944725E-01 -0.700932348432E-04 370 0.421134238117E-01 -0.515724361002E-04 371 0.421008985481E-01 -0.451526390712E-04 372 -0.421144715226E-01 0.656025484846E-04 373 0.420899091962E-01 -0.723808058262E-04 374 -0.420775200239E-01 0.506565383145E-04 375 -0.180688439469E-05 0.102688570978E-06 376 0.191511819836 -0.214259537024E-01 377 0.359692110220E-05 0.409716763631E-06 378 -0.421139334600E-01 0.660501356920E-04 379 0.421124822272E-01 -0.493689040535E-04 380 0.420842390953E-01 -0.706687550047E-04 381 -0.420836294412E-01 0.492699942890E-04 382 0.421131640072E-01 -0.504410647753E-04 383 0.420844216303E-01 -0.717770743566E-04 384 -0.421133234028E-01 0.673162562606E-04 385 -0.420832744240E-01 0.501912310631E-04 386 0.408781989818E-05 0.239264812379E-06 387 0.359659375520E-05 0.409594291908E-06 388 0.191506920634 -0.214263041450E-01 389 -0.420748088853E-01 0.664990643687E-04 390 0.421040145160E-01 -0.542431169817E-04 391 -0.420693704250E-01 0.481584463749E-04 392 0.421083136378E-01 -0.631519758046E-04 393 0.420742124056E-01 -0.550251966663E-04 394 -0.421073784555E-01 0.552487909114E-04 395 -0.421049248253E-01 0.637798150885E-04 396 0.420706423311E-01 -0.729928202210E-04 397 -0.421009131214E-01 0.451522105652E-04 398 -0.421131751803E-01 0.504411815017E-04 399 -0.420742076391E-01 0.550244237843E-04 400 0.786224618526 -0.207364582097E-02 401 -0.659101199717E-01 -0.108543888443E-02 402 -0.659633782399E-01 -0.108638223838E-02 403 -0.659030933539E-01 -0.107615894807E-02 404 -0.492879028097E-01 -0.832970146295E-03 405 -0.790291117257E-01 -0.930106423079E-03 406 -0.790212069769E-01 -0.938655117336E-03 407 -0.789740992175E-01 -0.930048042073E-03 408 -0.420899239889E-01 0.723808041040E-04 409 0.421133450295E-01 -0.673157474222E-04 410 0.421049014208E-01 -0.637797523901E-04 411 -0.659102851830E-01 -0.106852961883E-02 412 0.786331161771 -0.207251569510E-02 413 -0.658784522071E-01 -0.110554338490E-02 414 -0.658716663067E-01 -0.107671909565E-02 415 -0.790211215525E-01 -0.938648936134E-03 416 -0.790685669150E-01 -0.948353661405E-03 417 -0.494005631601E-01 -0.768647577615E-03 418 -0.790541817372E-01 -0.979091564681E-03 419 0.420775354498E-01 -0.506567685321E-04 420 0.420832641724E-01 -0.501914590787E-04 421 -0.420706069422E-01 0.729946645125E-04 422 -0.659637328998E-01 -0.106883793299E-02 423 -0.658789012703E-01 -0.104809482984E-02 424 0.786139526269 -0.207435883573E-02 425 -0.658831427272E-01 -0.103959052469E-02 426 -0.789737995837E-01 -0.930038983931E-03 427 -0.790410840882E-01 -0.960237437131E-03 428 -0.790539569420E-01 -0.979085081249E-03 429 -0.492213511464E-01 -0.848087692273E-03 430 0.421145186721E-01 -0.656015322396E-04 431 -0.420843996748E-01 0.717771248214E-04 432 0.421073528078E-01 -0.552492214653E-04 433 -0.659030522629E-01 -0.107765261195E-02 434 -0.658716474508E-01 -0.107603824341E-02 435 -0.658824174167E-01 -0.111413242905E-02 436 0.786309874664 -0.207281676725E-02 437 -0.790290267208E-01 -0.930105862583E-03 438 -0.493940671598E-01 -0.783057947087E-03 439 -0.790684842038E-01 -0.948351069574E-03 440 -0.790412458912E-01 -0.960238966792E-03 441 0.421026132539E-01 -0.731105136862E-04 442 0.421139223705E-01 -0.660509369094E-04 443 0.420748136240E-01 -0.665001009822E-04 444 -0.492878498329E-01 -0.800648274306E-03 445 -0.790207677548E-01 -0.957487257404E-03 446 -0.789736950429E-01 -0.964902080405E-03 447 -0.790285835726E-01 -0.966214657978E-03 448 0.786224207523 -0.207365562524E-02 449 -0.659030259690E-01 -0.107765017341E-02 450 -0.659102790090E-01 -0.106853251181E-02 451 -0.659637067719E-01 -0.106883595664E-02 452 -0.421133767067E-01 0.515737154998E-04 453 0.420836513267E-01 -0.492690368972E-04 454 -0.421083392985E-01 0.631511637314E-04 455 -0.790286685102E-01 -0.966217849268E-03 456 -0.790685448175E-01 -0.949106121563E-03 457 -0.790412572143E-01 -0.936332112561E-03 458 -0.493937818377E-01 -0.852634205774E-03 459 -0.659030669548E-01 -0.107616038046E-02 460 0.786309871595 -0.207281680664E-02 461 -0.658716205536E-01 -0.107671683674E-02 462 -0.658832220726E-01 -0.103959186541E-02 463 0.420891457146E-01 -0.480864675940E-04 464 -0.421124606034E-01 0.493704594561E-04 465 -0.421040378757E-01 0.542431650544E-04 466 -0.790208533689E-01 -0.957484882060E-03 467 -0.493999608214E-01 -0.867311668572E-03 468 -0.790543508350E-01 -0.917491060429E-03 469 -0.790684620791E-01 -0.949104963592E-03 470 -0.659101139255E-01 -0.108543607187E-02 471 -0.658716016442E-01 -0.107603837292E-02 472 0.786330933986 -0.207252105852E-02 473 -0.658789152816E-01 -0.104809996492E-02 474 -0.420782790067E-01 0.700929900914E-04 475 -0.420842493287E-01 0.706672453721E-04 476 0.420694058773E-01 -0.481574006037E-04 477 -0.789739947640E-01 -0.964906525785E-03 478 -0.790545756838E-01 -0.917494766232E-03 479 -0.492221305342E-01 -0.784643545863E-03 480 -0.790414189143E-01 -0.936337928111E-03 481 -0.659633520365E-01 -0.108638290863E-02 482 -0.658824967364E-01 -0.111413448695E-02 483 -0.658784664363E-01 -0.110553868471E-02 484 0.786140141708 -0.207434422947E-02 485 -0.244853414683 -0.597811429672 486 0.964947477905E-06 0.431181927586E-05 487 0.694739193353E-05 0.973328239541E-05 488 -0.475127569875E-01 0.197150232906E-01 489 -0.474505898414E-01 0.196960680675E-01 490 0.474605894093E-01 -0.197381962839E-01 491 0.474906745870E-01 -0.196572834377E-01 492 0.474611444665E-01 -0.196627457033E-01 493 -0.475207159762E-01 0.196817119485E-01 494 0.474709524377E-01 -0.197355684175E-01 495 -0.474355998559E-01 0.197049425577E-01 496 0.965766061062E-06 0.431299284262E-05 497 -0.244852793155 -0.597805075155 498 0.382773371634E-05 0.204706502689E-04 499 -0.475211332125E-01 0.196712643341E-01 500 0.474931126074E-01 -0.196487846751E-01 501 0.474676646109E-01 -0.197404875667E-01 502 -0.474383181516E-01 0.197099330394E-01 503 0.475006422751E-01 -0.196445304304E-01 504 0.474603596052E-01 -0.197452732565E-01 505 -0.475173488194E-01 0.196784492563E-01 506 -0.474411807825E-01 0.197066433732E-01 507 0.694813465622E-05 0.973322398211E-05 508 0.382668348507E-05 0.204696717155E-04 509 -0.244858529220 -0.597820310713 510 -0.474432839376E-01 0.197418766702E-01 511 0.474797572129E-01 -0.196688907763E-01 512 -0.474147465380E-01 0.197050727790E-01 513 0.475175888379E-01 -0.196991339274E-01 514 0.474256370212E-01 -0.197241264181E-01 515 -0.474842393534E-01 0.196757060997E-01 516 -0.475102578290E-01 0.196926923958E-01 517 0.474495251588E-01 -0.197477306563E-01 518 -0.474611668935E-01 0.196627448364E-01 519 -0.475006590182E-01 0.196445299130E-01 520 -0.474256538955E-01 0.197240905217E-01 521 0.730462960304 -0.213222158395E-01 522 -0.993508418310E-01 -0.125044296017E-01 523 -0.994232477798E-01 -0.125143391574E-01 524 -0.993446367597E-01 -0.124898528550E-01 525 -0.765985076578E-01 -0.113724851817E-01 526 -0.104510281233 -0.111815796159E-01 527 -0.104500521458 -0.111879561206E-01 528 -0.104435012308 -0.111827186629E-01 529 -0.474709626827E-01 0.197355857964E-01 530 0.475173907503E-01 -0.196784278688E-01 531 0.475102388529E-01 -0.196926737974E-01 532 -0.993520812080E-01 -0.124841991690E-01 533 0.730603910723 -0.213114186286E-01 534 -0.993196661011E-01 -0.125249656873E-01 535 -0.992953061197E-01 -0.124864286255E-01 536 -0.104500406205 -0.111879480316E-01 537 -0.104563823311 -0.112074500275E-01 538 -0.767506202036E-01 -0.113170021052E-01 539 -0.104532485381 -0.112427083361E-01 540 0.474356078848E-01 -0.197049574274E-01 541 0.474411526525E-01 -0.197066629709E-01 542 -0.474494630580E-01 0.197477552273E-01 543 -0.994262614821E-01 -0.124834755410E-01 544 -0.993224453751E-01 -0.124551434037E-01 545 0.730365703868 -0.213312704526E-01 546 -0.993306523305E-01 -0.124433511536E-01 547 -0.104434605429 -0.111827086717E-01 548 -0.104519328344 -0.112239137734E-01 549 -0.104532179271 -0.112427014094E-01 550 -0.765251194468E-01 -0.113977259790E-01 551 0.475207826391E-01 -0.196817018980E-01 552 -0.474603295797E-01 0.197452758210E-01 553 0.474842030835E-01 -0.196757098352E-01 554 -0.993450704170E-01 -0.124942656023E-01 555 -0.992976129636E-01 -0.124884153952E-01 556 -0.993236107902E-01 -0.125371910446E-01 557 0.730576362813 -0.213147737038E-01 558 -0.104510166544 -0.111815811883E-01 559 -0.767396358402E-01 -0.113324498088E-01 560 -0.104563710881 -0.112074464184E-01 561 -0.104519548962 -0.112239140750E-01 562 0.475127347560E-01 -0.197150245094E-01 563 0.475211167527E-01 -0.196712661549E-01 564 0.474432667390E-01 -0.197419126824E-01 565 -0.766010074320E-01 -0.113504361751E-01 566 -0.104498862302 -0.112185409378E-01 567 -0.104431674607 -0.112140794787E-01 568 -0.104504163811 -0.112294141153E-01 569 0.730462388993 -0.213222329901E-01 570 -0.993450381331E-01 -0.124942620585E-01 571 -0.993520789447E-01 -0.124842019622E-01 572 -0.994262240920E-01 -0.124834738446E-01 573 -0.474906081770E-01 0.196572938288E-01 574 0.474383484610E-01 -0.197099294861E-01 575 -0.475176248805E-01 0.196991296461E-01 576 -0.104504278315 -0.112294164303E-01 577 -0.104566385581 -0.112130692442E-01 578 -0.104520517183 -0.111935565464E-01 579 -0.767391009031E-01 -0.114065001211E-01 580 -0.993446042149E-01 -0.124898549464E-01 581 0.730576359456 -0.213147735884E-01 582 -0.992952437456E-01 -0.124864262056E-01 583 -0.993307561039E-01 -0.124433520325E-01 584 0.474505793367E-01 -0.196960504479E-01 585 -0.474930702981E-01 0.196488072355E-01 586 -0.474797756124E-01 0.196689090182E-01 587 -0.104498977738 -0.112185374632E-01 588 -0.767446078940E-01 -0.114265270584E-01 589 -0.104534690859 -0.111727851894E-01 590 -0.104566273197 -0.112130675020E-01 591 -0.993508396458E-01 -0.125044247844E-01 592 -0.992975505398E-01 -0.124884161479E-01 593 0.730603595964 -0.213114274892E-01 594 -0.993224609039E-01 -0.124551501596E-01 595 -0.474605811433E-01 0.197381811603E-01 596 -0.474676926416E-01 0.197404662773E-01 597 0.474148095431E-01 -0.197050497263E-01 598 -0.104432081454 -0.112140836403E-01 599 -0.104534996890 -0.111727885849E-01 600 -0.765333269396E-01 -0.113104364824E-01 601 -0.104520737583 -0.111935628983E-01 602 -0.994232100613E-01 -0.125143415400E-01 603 -0.993237144869E-01 -0.125371931005E-01 604 -0.993196818263E-01 -0.125249592703E-01 605 0.730366557433 -0.213312454959E-01 606 0.474430163650 -0.351008698696 607 -0.259126050565E-06 0.121532232301E-05 608 -0.316818072166E-05 0.397072452427E-05 609 -0.990190389670E-01 0.137842056928E-02 610 -0.989795365605E-01 0.142845317335E-02 611 0.990009001701E-01 -0.141967864846E-02 612 0.989656465518E-01 -0.139733028910E-02 613 0.989868147182E-01 -0.140529948501E-02 614 -0.989965120812E-01 0.139099284618E-02 615 0.990098041410E-01 -0.143919283279E-02 616 -0.989911628285E-01 0.143750306356E-02 617 -0.259067939325E-06 0.121559112669E-05 618 0.474426522512 -0.351008345456 619 -0.948923562654E-05 0.162142221829E-05 620 -0.989828792939E-01 0.138461538895E-02 621 0.989740821788E-01 -0.137621754365E-02 622 0.990171068618E-01 -0.143671243977E-02 623 -0.990043997789E-01 0.143564463308E-02 624 0.989547801326E-01 -0.137767448780E-02 625 0.990196782253E-01 -0.143168970475E-02 626 -0.989937291322E-01 0.137656098352E-02 627 -0.989865258010E-01 0.143853148106E-02 628 -0.316809118679E-05 0.397069377498E-05 629 -0.948919928550E-05 0.162114982673E-05 630 0.474433928393 -0.351011853026 631 -0.990098306730E-01 0.144289774908E-02 632 0.989803463816E-01 -0.141191489028E-02 633 -0.989638875972E-01 0.144455011091E-02 634 0.990046266131E-01 -0.137507713605E-02 635 0.989916117799E-01 -0.144481131872E-02 636 -0.989921611443E-01 0.141803076989E-02 637 -0.989936189704E-01 0.138082450076E-02 638 0.989958585610E-01 -0.143771390302E-02 639 -0.989868404057E-01 0.140529459572E-02 640 -0.989547991613E-01 0.137767173071E-02 641 -0.989915722293E-01 0.144478618012E-02 642 0.684269459220 -0.719127541677E-01 643 -0.120271952010 -0.455295002785E-01 644 -0.120327029160 -0.455706540660E-01 645 -0.120268826924 -0.455153337926E-01 646 -0.104169526684 -0.360729137801E-01 647 -0.139468724596 -0.170390229387E-01 648 -0.139459050853 -0.170435969951E-01 649 -0.139377322294 -0.170003677747E-01 650 -0.990098453098E-01 0.143920146543E-02 651 0.989937427073E-01 -0.137654691893E-02 652 0.989935673106E-01 -0.138081138262E-02 653 -0.120277491013 -0.455041101636E-01 654 0.684397512441 -0.718338883324E-01 655 -0.120229745081 -0.455545812918E-01 656 -0.120226390019 -0.454748446445E-01 657 -0.139458907758 -0.170435867263E-01 658 -0.139517078706 -0.170992201881E-01 659 -0.104299483944 -0.360837480923E-01 660 -0.139479031789 -0.170968516790E-01 661 0.989911978782E-01 -0.143751782250E-02 662 0.989865241082E-01 -0.143854788110E-02 663 -0.989958196116E-01 0.143773289207E-02 664 -0.120363701743 -0.455489789787E-01 665 -0.120257566040 -0.454875089428E-01 666 0.684159052942 -0.719283005195E-01 667 -0.120269296467 -0.454798122743E-01 668 -0.139376810503 -0.170003486390E-01 669 -0.139465218201 -0.170718143150E-01 670 -0.139478645035 -0.170968362267E-01 671 -0.104056967914 -0.360946673428E-01 672 0.989965772015E-01 -0.139098844459E-02 673 -0.990196487543E-01 0.143169018193E-02 674 0.989921242246E-01 -0.141803303318E-02 675 -0.120266213755 -0.455228160502E-01 676 -0.120222312242 -0.454855443631E-01 677 -0.120231201501 -0.455722339172E-01 678 0.684365678980 -0.718436538084E-01 679 -0.139468578441 -0.170390220747E-01 680 -0.104292897851 -0.360987600818E-01 681 -0.139516937984 -0.170992147658E-01 682 -0.139465498228 -0.170718202546E-01 683 0.990190134425E-01 -0.137842538769E-02 684 0.989828604471E-01 -0.138461936335E-02 685 0.990098699711E-01 -0.144292357845E-02 686 -0.104142157562 -0.360524064977E-01 687 -0.139435923084 -0.170845874215E-01 688 -0.139394727507 -0.170375127700E-01 689 -0.139444083366 -0.170817420994E-01 690 0.684268725475 -0.719127919063E-01 691 -0.120266177010 -0.455228197889E-01 692 -0.120277498680 -0.455041278393E-01 693 -0.120363648464 -0.455489715908E-01 694 -0.989655815730E-01 0.139733494797E-02 695 0.990044293824E-01 -0.143564247403E-02 696 -0.990046634203E-01 0.137507439724E-02 697 -0.139444229004 -0.170817483885E-01 698 -0.139505009505 -0.171008141116E-01 699 -0.139478362621 -0.170455485427E-01 700 -0.104285820416 -0.361724008240E-01 701 -0.120268789381 -0.455153450558E-01 702 0.684365675531 -0.718436527235E-01 703 -0.120226307095 -0.454748434787E-01 704 -0.120269427245 -0.454798020383E-01 705 0.989794952569E-01 -0.142844457308E-02 706 -0.989740684059E-01 0.137623354433E-02 707 -0.989803976051E-01 0.141192846402E-02 708 -0.139436066447 -0.170845830478E-01 709 -0.104291225120 -0.361980422625E-01 710 -0.139492955133 -0.170236987179E-01 711 -0.139504868880 -0.171008110692E-01 712 -0.120271959658 -0.455295083176E-01 713 -0.120222229279 -0.454855470984E-01 714 0.684397110323 -0.718339061846E-01 715 -0.120257581834 -0.454875090106E-01 716 -0.990008649117E-01 0.141966404707E-02 717 -0.990171085398E-01 0.143669417513E-02 718 0.989639271438E-01 -0.144453178611E-02 719 -0.139395238713 -0.170375251358E-01 720 -0.139493341606 -0.170237098279E-01 721 -0.104113537607 -0.360170993945E-01 722 -0.139478642117 -0.170455624264E-01 723 -0.120326975021 -0.455706523270E-01 724 -0.120231331903 -0.455722254968E-01 725 -0.120229760974 -0.455545648229E-01 726 0.684160147300 -0.719282468843E-01 727 -0.229115374346 -0.939228328861 728 0.122138792378E-04 0.156801537519E-04 729 -0.207267696411E-04 -0.176281403866E-04 730 -0.221077259080 -0.678985430073E-01 731 -0.221237358902 -0.678205156846E-01 732 0.221191305488 0.678674296062E-01 733 0.221127838800 0.677877523507E-01 734 0.221070421817 0.678160040148E-01 735 -0.221120477088 -0.679259550736E-01 736 0.221209259173 0.679308355073E-01 737 -0.221199333267 -0.678615155639E-01 738 0.122147413920E-04 0.156810299859E-04 739 -0.229131589926 -0.939250838813 740 -0.353831060484E-04 -0.497316010447E-04 741 -0.221045922280 -0.678995271417E-01 742 0.221019720929 0.677973995503E-01 743 0.221242407131 0.679489604971E-01 744 -0.221209473955 -0.678623600877E-01 745 0.221051935726 0.677766045043E-01 746 0.221206322237 0.678939332302E-01 747 -0.221039216207 -0.678562795616E-01 748 -0.221271990298 -0.678386161147E-01 749 -0.207275541027E-04 -0.176262665215E-04 750 -0.353827743859E-04 -0.497353858604E-04 751 -0.229090241907 -0.939211235935 752 -0.221241066855 -0.679083952047E-01 753 0.221105254226 0.678552029295E-01 754 -0.221230097654 -0.677918405757E-01 755 0.221106358065 0.678777826961E-01 756 0.221255043365 0.678218246139E-01 757 -0.221127853317 -0.678585055194E-01 758 -0.221090870425 -0.678750277134E-01 759 0.221220687536 0.678926015552E-01 760 -0.221070453700 -0.678159957656E-01 761 -0.221051981613 -0.677765892948E-01 762 -0.221255057076 -0.678218998163E-01 763 0.676311522352 -0.208139769723 764 -0.361714631165E-01 -0.122277656848 765 -0.361566051539E-01 -0.122314359248 766 -0.361696591626E-01 -0.122255111762 767 -0.577073550882E-01 -0.109906548316 768 -0.145470344616 -0.981045065216E-01 769 -0.145455607938 -0.980889091485E-01 770 -0.145439081497 -0.979854876148E-01 771 -0.221209289394 -0.679307880413E-01 772 0.221039255774 0.678563235756E-01 773 0.221090850325 0.678750637825E-01 774 -0.361987652220E-01 -0.122248291520 775 0.676313651907 -0.208003456103 776 -0.361033737267E-01 -0.122257755404 777 -0.361904637609E-01 -0.122188236644 778 -0.145455435098 -0.980889066694E-01 779 -0.145428761906 -0.981965849989E-01 780 -0.577344509990E-01 -0.109932990417 781 -0.145433325107 -0.981563410080E-01 782 0.221199313379 0.678614973164E-01 783 0.221271944491 0.678385899857E-01 784 -0.221220616224 -0.678925678579E-01 785 -0.361973120097E-01 -0.122369965653 786 -0.361574117132E-01 -0.122232635580 787 0.676208878872 -0.208239132463 788 -0.361699434008E-01 -0.122232694681 789 -0.145438458526 -0.979854845564E-01 790 -0.145448945505 -0.981131287295E-01 791 -0.145432853516 -0.981563321466E-01 792 -0.575638767462E-01 -0.109795891142 793 0.221120541656 0.679259701798E-01 794 -0.221206284053 -0.678939299960E-01 795 0.221127828521 0.678584967702E-01 796 -0.361554785249E-01 -0.122252688707 797 -0.361769349952E-01 -0.122176822289 798 -0.360754726808E-01 -0.122267842872 799 0.676280349664 -0.208050846335 800 -0.145470158467 -0.981045090169E-01 801 -0.577156675896E-01 -0.109949234320 802 -0.145428593494 -0.981965848214E-01 803 -0.145449289661 -0.981131316478E-01 804 0.221077227564 0.678985503945E-01 805 0.221045877201 0.678995417041E-01 806 0.221241052806 0.679083196966E-01 807 -0.576799236503E-01 -0.109794784034 808 -0.145389055873 -0.980992797426E-01 809 -0.145424178857 -0.980564230024E-01 810 -0.145412219443 -0.981062055369E-01 811 0.676310656193 -0.208139849648 812 -0.361554253907E-01 -0.122252712236 813 -0.361987775787E-01 -0.122248347334 814 -0.361972352663E-01 -0.122369943975 815 -0.221127774702 -0.677877369502E-01 816 0.221209513072 0.678623636963E-01 817 -0.221106382743 -0.678777929371E-01 818 -0.145412403689 -0.981062099179E-01 819 -0.145421703418 -0.981662775761E-01 820 -0.145458613760 -0.981284451328E-01 821 -0.576822591708E-01 -0.110022288574 822 -0.361696036509E-01 -0.122255143724 823 0.676280345176 -0.208050841754 824 -0.361903426776E-01 -0.122188234477 825 -0.361701333128E-01 -0.122232661711 826 0.221237328443 0.678205636383E-01 827 -0.221019680083 -0.677973547191E-01 828 -0.221105272591 -0.678551660861E-01 829 -0.145389228580 -0.980992638882E-01 830 -0.576590109088E-01 -0.110062147660 831 -0.145497955373 -0.980893332128E-01 832 -0.145421535248 -0.981662808803E-01 833 -0.361714752491E-01 -0.122277699971 834 -0.361768140682E-01 -0.122176824625 835 0.676313174357 -0.208003489151 836 -0.361574411048E-01 -0.122232617594 837 -0.221191324949 -0.678674483405E-01 838 -0.221242453424 -0.679489881837E-01 839 0.221230170730 0.677918736166E-01 840 -0.145424798829 -0.980564170594E-01 841 -0.145498425667 -0.980893358065E-01 842 -0.576589518002E-01 -0.109811156187 843 -0.145458956452 -0.981284574748E-01 844 -0.361565253461E-01 -0.122314343254 845 -0.360756610631E-01 -0.122267812127 846 -0.361034021834E-01 -0.122257716404 847 0.676210172267 -0.208239023679 848 2.14006439468 -0.887368467082 849 -0.109366171625E-04 -0.504861462811E-05 850 0.360681702749E-05 -0.441914897482E-05 851 0.154417832643 -0.102653591643 852 0.154404618762 -0.102622119621 853 -0.154399911827 0.102596612736 854 -0.154491797928 0.102591128275 855 -0.154405546809 0.102555857856 856 0.154504757706 -0.102593711189 857 -0.154388059312 0.102544805006 858 0.154408145273 -0.102583143946 859 -0.109363260012E-04 -0.504982518530E-05 860 2.14006528962 -0.887362983260 861 0.336980775663E-05 0.815656278863E-05 862 0.154462469964 -0.102547213431 863 -0.154463508066 0.102590673793 864 -0.154422907620 0.102603237625 865 0.154376183821 -0.102585772795 866 -0.154456930713 0.102617621177 867 -0.154363317375 0.102608330519 868 0.154464058202 -0.102572019578 869 0.154429435093 -0.102600249885 870 0.360724799426E-05 -0.441905352301E-05 871 0.336911736387E-05 0.815861038357E-05 872 2.14006300787 -0.887368808872 873 0.154395186580 -0.102559065501 874 -0.154421500627 0.102554792855 875 0.154433438891 -0.102574519663 876 -0.154440513394 0.102657064547 877 -0.154391279916 0.102619049951 878 0.154419988354 -0.102535662022 879 0.154436752370 -0.102617868397 880 -0.154431363999 0.102594832520 881 0.154405529311 -0.102555869640 882 0.154456915673 -0.102617627766 883 0.154391472409 -0.102619119365 884 1.04837350311 -0.116689250410 885 0.594115081839E-01 -0.424486107758E-01 886 0.593877146973E-01 -0.424833074996E-01 887 0.594087834764E-01 -0.424537036886E-01 888 0.199903875371E-01 -0.261150160789E-01 889 0.101151659508 -0.576907936230E-01 890 0.101152974097 -0.577489743418E-01 891 0.101185006583 -0.576771998676E-01 892 0.154387948066 -0.102544776958 893 -0.154464080864 0.102572045527 894 -0.154436934958 0.102617920577 895 0.593976580636E-01 -0.424560468550E-01 896 1.04846157954 -0.116643812351 897 0.594585734208E-01 -0.424800263283E-01 898 0.594254416186E-01 -0.424579136512E-01 899 0.101153223026 -0.577489681562E-01 900 0.101131039594 -0.577309203930E-01 901 0.198990129487E-01 -0.261176044759E-01 902 0.101133388437 -0.577410753206E-01 903 -0.154407983832 0.102583090608 904 -0.154429350458 0.102600204101 905 0.154431361406 -0.102594792853 906 0.593715913020E-01 -0.424630625018E-01 907 0.594430344756E-01 -0.424300434329E-01 908 1.04834389059 -0.116702311386 909 0.594373202371E-01 -0.424242104244E-01 910 0.101185836403 -0.576771883849E-01 911 0.101145580845 -0.577249054737E-01 912 0.101133997850 -0.577410620602E-01 913 0.200624558930E-01 -0.261169956558E-01 914 -0.154504611247 0.102593696252 915 0.154363390028 -0.102608343635 916 -0.154420067912 0.102535671231 917 0.594100278276E-01 -0.424437526171E-01 918 0.594264354857E-01 -0.424047004388E-01 919 0.594657631286E-01 -0.424803317815E-01 920 1.04847211419 -0.116658438377 921 0.101151887261 -0.576907883226E-01 922 0.199085063747E-01 -0.261081551989E-01 923 0.101131272645 -0.577309209087E-01 924 0.101145150919 -0.577249114603E-01 925 -0.154417849812 0.102653581406 926 -0.154462484780 0.102547203453 927 -0.154394994979 0.102558994072 928 0.199953825173E-01 -0.260824451760E-01 929 0.101162762380 -0.576812852208E-01 930 0.101182511763 -0.577147524058E-01 931 0.101163288640 -0.577452572124E-01 932 1.04837245285 -0.116689278849 933 0.594101380062E-01 -0.424437642586E-01 934 0.593977582123E-01 -0.424560913747E-01 935 0.593716228439E-01 -0.424630428159E-01 936 0.154491944292 -0.102591142443 937 -0.154376110198 0.102585765320 938 0.154440433773 -0.102657055393 939 0.101163062206 -0.577452659161E-01 940 0.101141471145 -0.577436445650E-01 941 0.101143797247 -0.577016056381E-01 942 0.199156834479E-01 -0.261695294357E-01 943 0.594088949985E-01 -0.424537229255E-01 944 1.04847209777 -0.116658434906 945 0.594255519801E-01 -0.424579009959E-01 946 0.594370712193E-01 -0.424242001884E-01 947 -0.154404730357 0.102622146462 948 0.154463486547 -0.102590642803 949 0.154421319566 -0.102554738408 950 0.101162513405 -0.576812676713E-01 951 0.199184131517E-01 -0.261760241236E-01 952 0.101117945976 -0.576850498151E-01 953 0.101141703936 -0.577436492956E-01 954 0.594116083199E-01 -0.424486388570E-01 955 0.594265453391E-01 -0.424046955372E-01 956 1.04846098164 -0.116643821519 957 0.594429559098E-01 -0.424300419059E-01 958 0.154400073682 -0.102596665510 959 0.154422991957 -0.102603287830 960 -0.154433440180 0.102574559733 961 0.101181683579 -0.577147474177E-01 962 0.101117337167 -0.576850535832E-01 963 0.200422618435E-01 -0.260729267191E-01 964 0.101143367972 -0.577016213327E-01 965 0.593877475860E-01 -0.424832906030E-01 966 0.594655148392E-01 -0.424803218041E-01 967 0.594584953200E-01 -0.424799971281E-01 968 1.04834548192 -0.116702276241 969 1.43344013554 -0.223893826934 970 -0.806894564927E-05 -0.619307289211E-07 971 0.491220404122E-05 -0.104626266828E-05 972 0.326860673503E-01 -0.270498948917E-01 973 0.326322475233E-01 -0.270348947350E-01 974 -0.326429325540E-01 0.270319510881E-01 975 -0.326898405724E-01 0.269999942668E-01 976 -0.326663377531E-01 0.270073201735E-01 977 0.326946513850E-01 -0.270187248519E-01 978 -0.326191899457E-01 0.270283032649E-01 979 0.326436179057E-01 -0.270245742041E-01 980 -0.806892701482E-05 -0.619808723783E-07 981 1.43344264896 -0.223893465294 982 0.443297350802E-05 0.112313914445E-05 983 0.326805249866E-01 -0.270073344891E-01 984 -0.326979855183E-01 0.269978986819E-01 985 -0.326458614571E-01 0.270422387870E-01 986 0.326301351764E-01 -0.270384534464E-01 987 -0.326896086921E-01 0.270100703811E-01 988 -0.326290404852E-01 0.270453780608E-01 989 0.326907866152E-01 -0.270083607284E-01 990 0.326415239858E-01 -0.270285119382E-01 991 0.491223130842E-05 -0.104635267962E-05 992 0.443302795937E-05 0.112343588266E-05 993 1.43343575169 -0.223892763717 994 0.326293902998E-01 -0.270302866456E-01 995 -0.326514373162E-01 0.270061582389E-01 996 0.326452250781E-01 -0.270129027636E-01 997 -0.326763440004E-01 0.270390509290E-01 998 -0.326358055958E-01 0.270378240266E-01 999 0.326427263129E-01 -0.270032186860E-01 1000 0.326724730386E-01 -0.270316308689E-01 1001 -0.326507572705E-01 0.270318371197E-01 1002 0.326663050435E-01 -0.270073249006E-01 1003 0.326895831571E-01 -0.270100717685E-01 1004 0.326359730670E-01 -0.270378415212E-01 1005 0.873575677025 -0.835460048577E-01 1006 0.152318536922E-01 -0.282158009965E-01 1007 0.152254935112E-01 -0.282423814565E-01 1008 0.152376192662E-01 -0.282122401780E-01 1009 -0.337881775420E-02 -0.215753955023E-01 1010 -0.111512605223E-01 -0.141425071614E-02 1011 -0.111272021317E-01 -0.144085161379E-02 1012 -0.111113600818E-01 -0.135526019929E-02 1013 0.326190781897E-01 -0.270282970752E-01 1014 -0.326907985348E-01 0.270083670405E-01 1015 -0.326726356829E-01 0.270316421977E-01 1016 0.152211737929E-01 -0.282100156192E-01 1017 0.873614904559 -0.834659419351E-01 1018 0.152957847300E-01 -0.282330976253E-01 1019 0.152349195543E-01 -0.281846819792E-01 1020 -0.111269237505E-01 -0.144083080456E-02 1021 -0.111544266965E-01 -0.146941183793E-02 1022 -0.342451337974E-02 -0.215581091687E-01 1023 -0.111675338158E-01 -0.145536930861E-02 1024 -0.326434829127E-01 0.270245601965E-01 1025 -0.326414658322E-01 0.270285010123E-01 1026 0.326507797611E-01 -0.270318247801E-01 1027 0.151935708671E-01 -0.282607087485E-01 1028 0.152693737370E-01 -0.281883386607E-01 1029 0.873485206012 -0.835585636934E-01 1030 0.152613884696E-01 -0.281834352336E-01 1031 -0.111104083585E-01 -0.135521235165E-02 1032 -0.111608671606E-01 -0.143490808104E-02 1033 -0.111668272036E-01 -0.145533130400E-02 1034 -0.326590750477E-02 -0.215341927654E-01 1035 -0.326945105020E-01 0.270187229910E-01 1036 0.326291087439E-01 -0.270453816831E-01 1037 -0.326428045309E-01 0.270032192851E-01 1038 0.152364042957E-01 -0.282112870609E-01 1039 0.152301291331E-01 -0.281626480437E-01 1040 0.152994015022E-01 -0.282385912090E-01 1041 0.873604952059 -0.834777051288E-01 1042 -0.111509944573E-01 -0.141423958320E-02 1043 -0.342583120480E-02 -0.215706120431E-01 1044 -0.111541611873E-01 -0.146940073655E-02 1045 -0.111613717541E-01 -0.143492736016E-02 1046 -0.326860999283E-01 0.270498911321E-01 1047 -0.326805505475E-01 0.270073302657E-01 1048 -0.326292230388E-01 0.270302668411E-01 1049 -0.336008042751E-02 -0.215078493690E-01 1050 -0.111189878269E-01 -0.141923072792E-02 1051 -0.111208620252E-01 -0.142500909018E-02 1052 -0.111233705595E-01 -0.144447859030E-02 1053 0.873574399357 -0.835460683064E-01 1054 0.152365247072E-01 -0.282112958170E-01 1055 0.152212545743E-01 -0.282100527078E-01 1056 0.151936327235E-01 -0.282606928984E-01 1057 0.326899813794E-01 -0.269999955755E-01 1058 -0.326300665894E-01 0.270384543624E-01 1059 0.326762658366E-01 -0.270390506827E-01 1060 -0.111236358334E-01 -0.144449635166E-02 1061 -0.111358328938E-01 -0.146387140683E-02 1062 -0.111687044729E-01 -0.141494566481E-02 1063 -0.341006754763E-02 -0.216463988018E-01 1064 0.152377408203E-01 -0.282122594958E-01 1065 0.873604938101 -0.834777039556E-01 1066 0.152350733729E-01 -0.281846764095E-01 1067 0.152610860423E-01 -0.281834210200E-01 1068 -0.326323594447E-01 0.270349000611E-01 1069 0.326979738672E-01 -0.269978875995E-01 1070 0.326512749819E-01 -0.270061446465E-01 1071 -0.111192672094E-01 -0.141922405849E-02 1072 -0.340770180833E-02 -0.216796383158E-01 1073 -0.111920831869E-01 -0.140028540894E-02 1074 -0.111355673313E-01 -0.146386521433E-02 1075 0.152319341419E-01 -0.282158192508E-01 1076 0.152302830699E-01 -0.281626507670E-01 1077 0.873614187914 -0.834659726229E-01 1078 0.152692919268E-01 -0.281883397027E-01 1079 0.326430676060E-01 -0.270319642962E-01 1080 0.326459194572E-01 -0.270422539772E-01 1081 -0.326452022336E-01 0.270129152274E-01 1082 -0.111218132244E-01 -0.142503991353E-02 1083 -0.111927898683E-01 -0.140031334882E-02 1084 -0.331119571905E-02 -0.215184078193E-01 1085 -0.111692082653E-01 -0.141497752803E-02 1086 0.152255562546E-01 -0.282423715830E-01 1087 0.152990996279E-01 -0.282385782478E-01 1088 0.152957022519E-01 -0.282330666893E-01 1089 0.873487129246 -0.835584723215E-01 1090 1.31676078528 -0.295253627290 1091 -0.836544073886E-05 0.190116295720E-06 1092 0.462810616776E-05 -0.130747107276E-05 1093 0.228035828302E-01 -0.513065199972E-01 1094 0.227423623947E-01 -0.512859458742E-01 1095 -0.227478046102E-01 0.512849626189E-01 1096 -0.227815114728E-01 0.512438074872E-01 1097 -0.227816364065E-01 0.512728548863E-01 1098 0.227835264567E-01 -0.512815143192E-01 1099 -0.227218940714E-01 0.512998593597E-01 1100 0.227482272708E-01 -0.512843154152E-01 1101 -0.836536987004E-05 0.190002151594E-06 1102 1.31676379824 -0.295253454214 1103 0.456674735172E-05 0.718528432533E-06 1104 0.227804230730E-01 -0.512775678927E-01 1105 -0.228023328366E-01 0.512468361959E-01 1106 -0.227441046131E-01 0.513054391721E-01 1107 0.227520559436E-01 -0.512972815997E-01 1108 -0.227988399021E-01 0.512553251112E-01 1109 -0.227437492607E-01 0.513041712859E-01 1110 0.227881626639E-01 -0.512693104695E-01 1111 0.227419318859E-01 -0.512835292873E-01 1112 0.462819628901E-05 -0.130764717538E-05 1113 0.456680885430E-05 0.718751619016E-06 1114 1.31675646033 -0.295252159666 1115 0.227280859602E-01 -0.512949771405E-01 1116 -0.227556504396E-01 0.512763870268E-01 1117 0.227372187250E-01 -0.512578990371E-01 1118 -0.227950356526E-01 0.512848472016E-01 1119 -0.227446371573E-01 0.512869731802E-01 1120 0.227397386456E-01 -0.512737167761E-01 1121 0.227891838194E-01 -0.512818094650E-01 1122 -0.227430543349E-01 0.512892121321E-01 1123 0.227816009517E-01 -0.512728729914E-01 1124 0.227988121387E-01 -0.512553355434E-01 1125 0.227448214366E-01 -0.512869906639E-01 1126 0.888454243029 -0.264166913367 1127 0.438209927221E-01 -0.971682269304E-01 1128 0.437827295074E-01 -0.971975421987E-01 1129 0.438208756599E-01 -0.971679992546E-01 1130 0.389627153731E-01 -0.115218717740 1131 0.743400604103E-02 -0.110956169691 1132 0.745934866145E-02 -0.110967326573 1133 0.749640381025E-02 -0.110899817835 1134 0.227217716806E-01 -0.512998633618E-01 1135 -0.227881698485E-01 0.512693088603E-01 1136 -0.227893675712E-01 0.512818303709E-01 1137 0.438074395151E-01 -0.971565793638E-01 1138 0.888528633281 -0.264100504951 1139 0.438894396320E-01 -0.971935588640E-01 1140 0.438445087051E-01 -0.971422238875E-01 1141 0.745968273516E-02 -0.110967314860 1142 0.741184452499E-02 -0.111016279354 1143 0.388667114210E-01 -0.115180102338 1144 0.741838833188E-02 -0.111016887743 1145 -0.227480725293E-01 0.512842842584E-01 1146 -0.227418677540E-01 0.512835065177E-01 1147 0.227430849029E-01 -0.512891931958E-01 1148 0.437692263953E-01 -0.972022504474E-01 1149 0.438687361594E-01 -0.971217128384E-01 1150 0.888342930089 -0.264202671270 1151 0.438485673115E-01 -0.971243299238E-01 1152 0.749754660846E-02 -0.110899796192 1153 0.743656069556E-02 -0.110992651113 1154 0.741923558590E-02 -0.111016863874 1155 0.391079623469E-01 -0.115192034418 1156 -0.227833594106E-01 0.512814965445E-01 1157 0.227438303217E-01 -0.513041855281E-01 1158 -0.227398303031E-01 0.512737240773E-01 1159 0.438378049955E-01 -0.971561107629E-01 1160 0.438403116817E-01 -0.971225925034E-01 1161 0.439059053614E-01 -0.971982614367E-01 1162 0.888516107310 -0.264123173851 1163 0.743433129419E-02 -0.110956176672 1164 0.389042485919E-01 -0.115198282510 1165 0.741216131627E-02 -0.111016271240 1166 0.743595456000E-02 -0.110992660239 1167 -0.228036181593E-01 0.513065029918E-01 1168 -0.227804509947E-01 0.512775542408E-01 1169 -0.227279020763E-01 0.512949570757E-01 1170 0.389965420194E-01 -0.115131960110 1171 0.747557901270E-02 -0.110956709532 1172 0.750900733955E-02 -0.110970967498 1173 0.747291093279E-02 -0.110985956295 1174 0.888452739629 -0.264167071011 1175 0.438379574812E-01 -0.971561317182E-01 1176 0.438075476255E-01 -0.971566489169E-01 1177 0.437692976729E-01 -0.972022220215E-01 1178 0.227816785932E-01 -0.512438245953E-01 1179 -0.227519744513E-01 0.512972724007E-01 1180 0.227949441000E-01 -0.512848403381E-01 1181 0.747258985162E-02 -0.110985956220 1182 0.744256237649E-02 -0.111002499800 1183 0.742340087094E-02 -0.110965680714 1184 0.389028672817E-01 -0.115307274693 1185 0.438210323671E-01 -0.971680317192E-01 1186 0.888516089028 -0.264123165511 1187 0.438446992144E-01 -0.971422036690E-01 1188 0.438481871419E-01 -0.971243091385E-01 1189 -0.227424850088E-01 0.512859408807E-01 1190 0.228023262138E-01 -0.512468325022E-01 1191 0.227554671740E-01 -0.512763636629E-01 1192 0.747524422399E-02 -0.110956688476 1193 0.389302728418E-01 -0.115316754446 1194 0.739984740400E-02 -0.110935811012 1195 0.744287858768E-02 -0.111002498092 1196 0.438211007424E-01 -0.971682739959E-01 1197 0.438405014279E-01 -0.971225826437E-01 1198 0.888527786559 -0.264100573668 1199 0.438686269085E-01 -0.971217020129E-01 1200 0.227479595240E-01 -0.512849928865E-01 1201 0.227441685102E-01 -0.513054668092E-01 1202 -0.227371878326E-01 0.512579179879E-01 1203 0.750786872134E-02 -0.110970967944 1204 0.739900183980E-02 -0.110935822581 1205 0.390761013745E-01 -0.115148928261 1206 0.742279767277E-02 -0.110965704740 1207 0.437828058888E-01 -0.971975199657E-01 1208 0.439055276556E-01 -0.971982420302E-01 1209 0.438893308565E-01 -0.971935096088E-01 1210 0.888345197588 -0.264202456227 elk-6.3.2/tests/PaxHeaders.21352/test_0250000644000000000000000000000013213543334750014467 xustar0030 mtime=1569569256.836634148 30 atime=1569569256.798634172 30 ctime=1569569256.836634148 elk-6.3.2/tests/test_025/0000755002504400250440000000000013543334750016613 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016446 xustar0030 mtime=1569569256.800634171 30 atime=1569569256.799634172 30 ctime=1569569256.800634171 elk-6.3.2/tests/test_025/TEST_705.OUT_0000644002504400250440000000010113543334750020505 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 8 elk-6.3.2/tests/test_025/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015647 xustar0030 mtime=1569569256.804634169 30 atime=1569569256.804634169 30 ctime=1569569256.804634169 elk-6.3.2/tests/test_025/elk.in0000644002504400250440000000111213543334750017711 0ustar00dewhurstdewhurst00000000000000 ! Mossbauer hyperfine field for fcc Co including spin and orbital dipole terms. tasks 0 110 500 test .true. tbdip .true. tcden .true. spinorb .true. spincore .true. lorbcnd .true. bfieldc 0.0 0.0 0.01 nempty 10 ! large number of k-points required ngridk 8 8 8 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.3448 sppath '../../species/' atoms 1 : nspecies 'Co.in' : spfname 1 : natoms; atposl, bfcmt below 0.0 0.0 0.0 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016443 xustar0030 mtime=1569569256.808634166 30 atime=1569569256.808634166 30 ctime=1569569256.808634166 elk-6.3.2/tests/test_025/TEST_900.OUT_0000644002504400250440000000007013543334750020507 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2133 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016444 xustar0030 mtime=1569569256.813634163 30 atime=1569569256.812634163 30 ctime=1569569256.813634163 elk-6.3.2/tests/test_025/TEST_910.OUT_0000644002504400250440000001622513543334750020521 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 234 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.117405848391 5 0.117405848391 6 -0.117405848391 7 0.234811696782 8 0.234811696782 9 -0.234811696782 10 0.352217545173 11 0.352217545173 12 -0.352217545173 13 0.469623393565 14 0.469623393565 15 -0.469623393565 16 0.234811696782 17 0.00000000000 18 0.00000000000 19 0.352217545173 20 0.117405848391 21 -0.117405848391 22 0.469623393565 23 0.234811696782 24 -0.234811696782 25 0.587029241956 26 0.352217545173 27 -0.352217545173 28 0.704435090347 29 0.469623393565 30 -0.469623393565 31 0.821840938738 32 0.587029241956 33 -0.587029241956 34 0.939246787129 35 0.704435090347 36 -0.704435090347 37 0.352217545173 38 -0.117405848391 39 0.117405848391 40 0.469623393565 41 0.00000000000 42 0.00000000000 43 0.587029241956 44 0.117405848391 45 -0.117405848391 46 0.704435090347 47 0.234811696782 48 -0.234811696782 49 0.821840938738 50 0.352217545173 51 -0.352217545173 52 0.939246787129 53 0.469623393565 54 -0.469623393565 55 1.05665263552 56 0.587029241956 57 -0.587029241956 58 0.469623393565 59 -0.234811696782 60 0.234811696782 61 0.587029241956 62 -0.117405848391 63 0.117405848391 64 0.704435090347 65 -0.277555756156E-16 66 0.277555756156E-16 67 0.821840938738 68 0.117405848391 69 -0.117405848391 70 0.939246787129 71 0.234811696782 72 -0.234811696782 73 1.05665263552 74 0.352217545173 75 -0.352217545173 76 1.17405848391 77 0.469623393565 78 -0.469623393565 79 0.587029241956 80 -0.352217545173 81 0.352217545173 82 0.704435090347 83 -0.234811696782 84 0.234811696782 85 0.821840938738 86 -0.117405848391 87 0.117405848391 88 0.939246787129 89 0.00000000000 90 0.00000000000 91 0.00000000000 92 0.00000000000 93 0.234811696782 94 0.234811696782 95 0.234811696782 96 0.00000000000 97 0.352217545173 98 0.352217545173 99 -0.117405848391 100 0.469623393565 101 0.469623393565 102 -0.234811696782 103 0.587029241956 104 0.587029241956 105 -0.352217545173 106 0.704435090347 107 0.704435090347 108 -0.469623393565 109 0.821840938738 110 0.821840938738 111 -0.587029241956 112 0.469623393565 113 0.234811696782 114 0.00000000000 115 0.587029241956 116 0.352217545173 117 -0.117405848391 118 0.704435090347 119 0.469623393565 120 -0.234811696782 121 0.821840938738 122 0.587029241956 123 -0.352217545173 124 0.939246787129 125 0.704435090347 126 -0.469623393565 127 0.469623393565 128 -0.277555756156E-16 129 0.234811696782 130 0.704435090347 131 0.234811696782 132 0.277555756156E-16 133 0.821840938738 134 0.352217545173 135 -0.117405848391 136 0.939246787129 137 0.469623393565 138 -0.234811696782 139 1.05665263552 140 0.587029241956 141 -0.352217545173 142 0.587029241956 143 -0.117405848391 144 0.352217545173 145 0.704435090347 146 0.00000000000 147 0.234811696782 148 0.939246787129 149 0.234811696782 150 0.00000000000 151 1.05665263552 152 0.352217545173 153 -0.117405848391 154 1.17405848391 155 0.469623393565 156 -0.234811696782 157 0.704435090347 158 -0.234811696782 159 0.469623393565 160 0.821840938738 161 -0.117405848391 162 0.352217545173 163 0.939246787129 164 0.277555756156E-16 165 0.234811696782 166 1.17405848391 167 0.234811696782 168 -0.277555756156E-16 169 1.29146433230 170 0.352217545173 171 -0.117405848391 172 0.821840938738 173 -0.352217545173 174 0.587029241956 175 0.939246787129 176 -0.234811696782 177 0.469623393565 178 1.05665263552 179 -0.117405848391 180 0.352217545173 181 1.40887018069 182 0.234811696782 183 0.555111512313E-16 184 0.00000000000 185 0.00000000000 186 0.469623393565 187 0.469623393565 188 0.469623393565 189 0.00000000000 190 0.587029241956 191 0.587029241956 192 -0.117405848391 193 0.704435090347 194 0.704435090347 195 -0.234811696782 196 0.821840938738 197 0.821840938738 198 -0.352217545173 199 0.704435090347 200 0.469623393565 201 0.277555756156E-16 202 0.821840938738 203 0.587029241956 204 -0.117405848391 205 0.939246787129 206 0.704435090347 207 -0.234811696782 208 0.939246787129 209 0.469623393565 210 0.00000000000 211 1.05665263552 212 0.587029241956 213 -0.117405848391 214 1.17405848391 215 0.469623393565 216 -0.277555756156E-16 217 0.939246787129 218 -0.555111512313E-16 219 0.469623393565 220 0.277555756156E-16 221 -0.277555756156E-16 222 0.704435090347 223 0.704435090347 224 0.704435090347 225 0.277555756156E-16 226 0.821840938738 227 0.821840938738 228 -0.117405848391 229 0.939246787129 230 0.704435090347 231 -0.277555756156E-16 232 0.00000000000 233 0.00000000000 234 0.939246787129 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013013543334750016435 xustar0029 mtime=1569569256.81763416 30 atime=1569569256.816634161 29 ctime=1569569256.81763416 elk-6.3.2/tests/test_025/TEST_500.OUT_0000644002504400250440000000013513543334750020505 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 54.5653017538 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.821634158 30 atime=1569569256.820634158 30 ctime=1569569256.821634158 elk-6.3.2/tests/test_025/TEST_510.OUT_0000644002504400250440000000014513543334750020507 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.608255168854E-04 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016432 xustar0030 mtime=1569569256.825634155 30 atime=1569569256.824634156 30 ctime=1569569256.825634155 elk-6.3.2/tests/test_025/TEST_000.OUT_0000644002504400250440000000012613543334750020500 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1391.14530634 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.829634153 30 atime=1569569256.828634153 30 ctime=1569569256.829634153 elk-6.3.2/tests/test_025/TEST_400.OUT_0000644002504400250440000000014113543334750020501 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 26.9957255165 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013113543334750016442 xustar0030 mtime=1569569256.834634149 29 atime=1569569256.83363415 30 ctime=1569569256.834634149 elk-6.3.2/tests/test_025/TEST_450.OUT_0000644002504400250440000000014013543334750020505 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 1.70425809952 elk-6.3.2/tests/test_025/PaxHeaders.21352/TEST_110.OUT_0000644000000000000000000000013213543334750016434 xustar0030 mtime=1569569256.837634148 30 atime=1569569256.837634148 30 ctime=1569569256.837634148 elk-6.3.2/tests/test_025/TEST_110.OUT_0000644002504400250440000000022713543334750020504 0ustar00dewhurstdewhurst00000000000000'hyperfine field' 2 3 0.100000000000E-03 1 -0.303230604774E-20 2 0.257914971763E-20 3 0.599129997540E-04 elk-6.3.2/tests/PaxHeaders.21352/test_0020000644000000000000000000000013213543334750014462 xustar0030 mtime=1569569256.874634124 30 atime=1569569256.841634145 30 ctime=1569569256.874634124 elk-6.3.2/tests/test_002/0000755002504400250440000000000013543334750016606 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016441 xustar0030 mtime=1569569256.843634144 30 atime=1569569256.842634144 30 ctime=1569569256.843634144 elk-6.3.2/tests/test_002/TEST_705.OUT_0000644002504400250440000000010113543334750020500 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.847634141 30 atime=1569569256.846634142 30 ctime=1569569256.847634141 elk-6.3.2/tests/test_002/TEST_900.OUT_0000644002504400250440000000007013543334750020502 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2315 elk-6.3.2/tests/test_002/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015642 xustar0030 mtime=1569569256.851634139 30 atime=1569569256.850634139 30 ctime=1569569256.851634139 elk-6.3.2/tests/test_002/elk.in0000644002504400250440000000064213543334750017713 0ustar00dewhurstdewhurst00000000000000 tasks 0 500 test .true. maxscl 5 rgkmax 6.5 spinpol .true. bfieldc 0.0 0.0 0.5 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 2.708 sppath '../../species/' atoms 1 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016437 xustar0030 mtime=1569569256.855634136 30 atime=1569569256.854634137 30 ctime=1569569256.855634136 elk-6.3.2/tests/test_002/TEST_910.OUT_0000644002504400250440000000144713543334750020514 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.290028863884 5 0.290028863884 6 -0.652074116947E-17 7 0.580057727768 8 0.580057727768 9 -0.130414823389E-16 10 0.580057727768 11 0.290028863884 12 0.290028863884 13 0.580057727768 14 0.580057727768 15 0.580057727768 16 1.16011545554 17 1.16011545554 18 0.580057727768 19 1.16011545554 20 0.870086591652 21 0.870086591652 22 1.16011545554 23 1.16011545554 24 1.16011545554 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016432 xustar0030 mtime=1569569256.859634133 30 atime=1569569256.859634133 30 ctime=1569569256.859634133 elk-6.3.2/tests/test_002/TEST_500.OUT_0000644002504400250440000000013513543334750020500 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 27.0653384182 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016433 xustar0030 mtime=1569569256.863634131 30 atime=1569569256.863634131 30 ctime=1569569256.863634131 elk-6.3.2/tests/test_002/TEST_510.OUT_0000644002504400250440000000014513543334750020502 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.433858096123E-02 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.867634128 30 atime=1569569256.867634128 30 ctime=1569569256.867634128 elk-6.3.2/tests/test_002/TEST_450.OUT_0000644002504400250440000000014013543334750020500 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 2.73277706657 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016431 xustar0030 mtime=1569569256.871634126 30 atime=1569569256.871634126 30 ctime=1569569256.871634126 elk-6.3.2/tests/test_002/TEST_400.OUT_0000644002504400250440000000014113543334750020474 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 25.9972138456 elk-6.3.2/tests/test_002/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016425 xustar0030 mtime=1569569256.876634123 30 atime=1569569256.875634123 30 ctime=1569569256.876634123 elk-6.3.2/tests/test_002/TEST_000.OUT_0000644002504400250440000000012613543334750020473 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1270.55005983 elk-6.3.2/tests/PaxHeaders.21352/test_0060000644000000000000000000000013213543334750014466 xustar0030 mtime=1569569256.921634094 30 atime=1569569256.879634121 30 ctime=1569569256.921634094 elk-6.3.2/tests/test_006/0000755002504400250440000000000013543334750016612 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013113543334750016444 xustar0030 mtime=1569569256.881634119 29 atime=1569569256.88063412 30 ctime=1569569256.881634119 elk-6.3.2/tests/test_006/TEST_705.OUT_0000644002504400250440000000010113543334750020504 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016442 xustar0030 mtime=1569569256.885634117 30 atime=1569569256.884634117 30 ctime=1569569256.885634117 elk-6.3.2/tests/test_006/TEST_900.OUT_0000644002504400250440000000007013543334750020506 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 8873 elk-6.3.2/tests/test_006/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015646 xustar0030 mtime=1569569256.889634114 30 atime=1569569256.889634114 30 ctime=1569569256.889634114 elk-6.3.2/tests/test_006/elk.in0000644002504400250440000000125213543334750017715 0ustar00dewhurstdewhurst00000000000000 ! GaAs using the Perdew-Burke-Ernzerhof GGA functional and spin-orbit coupling. tasks 0 10 25 500 tasks 0 reducek 0 test .true. wplot 50 100 4 0.0 0.5 rgkmax 6.0 xctype 20 spinorb .true. avec 5.3435 5.3435 0.0000 5.3435 0.0000 5.3435 0.0000 5.3435 5.3435 sppath '../../species/' atoms 2 : nspecies 'Ga.in' : spfname 1 : natoms 0.00 0.00 0.00 0.0 0.0 0.0 : atposl, bfcmt 'As.in' : spfname 1 : natoms 0.25 0.25 0.25 0.0 0.0 0.0 : atposl, bfcmt ngridk 4 4 4 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016443 xustar0030 mtime=1569569256.894634111 30 atime=1569569256.893634112 30 ctime=1569569256.894634111 elk-6.3.2/tests/test_006/TEST_910.OUT_0000644002504400250440000000501613543334750020514 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 81 0.100000000000E-07 1 -0.250000000000E-01 2 -0.250000000000E-01 3 -0.250000000000E-01 4 0.327416726970E-18 5 -0.250000000000E-01 6 -0.250000000000E-01 7 0.250000000000E-01 8 -0.250000000000E-01 9 -0.250000000000E-01 10 -0.250000000000E-01 11 -0.163708363485E-18 12 -0.250000000000E-01 13 0.163708363485E-18 14 -0.163708363485E-18 15 -0.250000000000E-01 16 0.250000000000E-01 17 -0.163708363485E-18 18 -0.250000000000E-01 19 -0.250000000000E-01 20 0.250000000000E-01 21 -0.250000000000E-01 22 -0.774229933037E-18 23 0.250000000000E-01 24 -0.250000000000E-01 25 0.250000000000E-01 26 0.250000000000E-01 27 -0.250000000000E-01 28 -0.250000000000E-01 29 -0.250000000000E-01 30 -0.163708363485E-18 31 0.163708363485E-18 32 -0.250000000000E-01 33 -0.163708363485E-18 34 0.250000000000E-01 35 -0.250000000000E-01 36 0.157101511249E-17 37 -0.250000000000E-01 38 -0.163708363485E-18 39 0.163708363485E-18 40 0.00000000000 41 0.00000000000 42 0.00000000000 43 0.250000000000E-01 44 0.163708363485E-18 45 -0.163708363485E-18 46 -0.250000000000E-01 47 0.250000000000E-01 48 -0.157101511249E-17 49 -0.163708363485E-18 50 0.250000000000E-01 51 0.163708363485E-18 52 0.250000000000E-01 53 0.250000000000E-01 54 0.163708363485E-18 55 -0.250000000000E-01 56 -0.250000000000E-01 57 0.250000000000E-01 58 0.774229933037E-18 59 -0.250000000000E-01 60 0.250000000000E-01 61 0.250000000000E-01 62 -0.250000000000E-01 63 0.250000000000E-01 64 -0.250000000000E-01 65 0.163708363485E-18 66 0.250000000000E-01 67 -0.163708363485E-18 68 0.163708363485E-18 69 0.250000000000E-01 70 0.250000000000E-01 71 0.163708363485E-18 72 0.250000000000E-01 73 -0.250000000000E-01 74 0.250000000000E-01 75 0.250000000000E-01 76 -0.327416726970E-18 77 0.250000000000E-01 78 0.250000000000E-01 79 0.250000000000E-01 80 0.250000000000E-01 81 0.250000000000E-01 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.898634109 30 atime=1569569256.897634109 30 ctime=1569569256.898634109 elk-6.3.2/tests/test_006/TEST_500.OUT_0000644002504400250440000000013513543334750020504 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.777015816068E-01 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016437 xustar0030 mtime=1569569256.902634106 30 atime=1569569256.901634107 30 ctime=1569569256.902634106 elk-6.3.2/tests/test_006/TEST_510.OUT_0000644002504400250440000000014513543334750020506 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.140681247627E-01 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016435 xustar0030 mtime=1569569256.906634103 30 atime=1569569256.905634104 30 ctime=1569569256.906634103 elk-6.3.2/tests/test_006/TEST_400.OUT_0000644002504400250440000000014113543334750020500 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 63.9850924328 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334750016442 xustar0030 mtime=1569569256.910634101 30 atime=1569569256.910634101 30 ctime=1569569256.910634101 elk-6.3.2/tests/test_006/TEST_450.OUT_0000644002504400250440000000014013543334750020504 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.222124643952E-19 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016431 xustar0030 mtime=1569569256.914634098 30 atime=1569569256.913634099 30 ctime=1569569256.914634098 elk-6.3.2/tests/test_006/TEST_000.OUT_0000644002504400250440000000012613543334750020477 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -4205.20695873 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_010.OUT_0000644000000000000000000000013213543334750016432 xustar0030 mtime=1569569256.919634095 30 atime=1569569256.918634096 30 ctime=1569569256.919634095 elk-6.3.2/tests/test_006/TEST_010.OUT_0000644002504400250440000000612013543334750020500 0ustar00dewhurstdewhurst00000000000000'total DOS' 2 100 0.200000000000E-01 1 0.00000000000 2 0.230291202690 3 0.757208440136 4 1.87955841356 5 3.72169473326 6 5.98624513859 7 7.90620785877 8 8.65898478080 9 7.95605480069 10 6.29122673700 11 4.60030253275 12 3.66856040357 13 3.86534403804 14 5.14573080275 15 7.18446762329 16 9.27632556559 17 10.7583379066 18 11.3382098259 19 11.5441300534 20 11.9891226704 21 12.9367630843 22 13.8848054992 23 14.0953346329 24 13.0320666235 25 10.7001191794 26 7.76980369894 27 5.12209417811 28 3.50861903414 29 3.06113935442 30 3.53483326224 31 4.45327703556 32 5.51902265453 33 6.61107422944 34 7.81203837987 35 9.08890145831 36 10.2319813437 37 10.8981582165 38 10.9261253588 39 10.5176813985 40 10.1396884958 41 10.2416013615 42 10.9308484828 43 12.0877452885 44 13.5821809514 45 15.6251028319 46 18.0044097483 47 19.6510428347 48 18.2696733659 49 12.4462752373 50 3.12488157817 51 0.00000000000 52 0.230267270109 53 0.757108608850 54 1.87922774618 55 3.72087244619 56 5.98490105832 57 7.90460182717 58 8.65754117318 59 7.95477110130 60 6.28954070982 61 4.59732409887 62 3.66380449616 63 3.85959972895 64 5.14111616504 65 7.18367675417 66 9.28038849363 67 10.7657158988 68 11.3458095282 69 11.5495834731 70 11.9925258460 71 12.9386824871 72 13.8859267779 73 14.0949408044 74 13.0306394621 75 10.6983022180 76 7.76881762996 77 5.12205662493 78 3.50928475673 79 3.06214753030 80 3.53616168017 81 4.45585958879 82 5.52536589231 83 6.62456692532 84 7.83369655729 85 9.11337323210 86 10.2497752939 87 10.9007686528 88 10.9139318936 89 10.4972547612 90 10.1203194224 91 10.2277039724 92 10.9231274558 93 12.0839378689 94 13.5805579309 95 15.6244648780 96 18.0038686391 97 19.6498850644 98 18.2676805961 99 12.4443167513 100 3.12387313251 elk-6.3.2/tests/test_006/PaxHeaders.21352/TEST_025.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.923634093 30 atime=1569569256.922634093 30 ctime=1569569256.923634093 elk-6.3.2/tests/test_006/TEST_025.OUT_0000644002504400250440000000022613543334750020507 0ustar00dewhurstdewhurst00000000000000'effective mass' 2 3 0.100000000000E-05 1 0.705074330575 2 0.705100639964 3 0.705103550160 elk-6.3.2/tests/PaxHeaders.21352/test_0100000644000000000000000000000013213543334750014461 xustar0030 mtime=1569569256.956634071 30 atime=1569569256.926634091 30 ctime=1569569256.956634071 elk-6.3.2/tests/test_010/0000755002504400250440000000000013543334750016605 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.928634089 30 atime=1569569256.928634089 30 ctime=1569569256.928634089 elk-6.3.2/tests/test_010/TEST_705.OUT_0000644002504400250440000000010113543334750020477 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 2 elk-6.3.2/tests/test_010/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334750015641 xustar0030 mtime=1569569256.933634086 30 atime=1569569256.932634087 30 ctime=1569569256.933634086 elk-6.3.2/tests/test_010/elk.in0000644002504400250440000000102013543334750017701 0ustar00dewhurstdewhurst00000000000000 ! Water molecule in a box. tasks 0 500 test .true. tefvit .true. maxscl 2 molecule .true. avec 5.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 5.0 rgkmax 6.0 gmaxvr 14.0 sppath '../../species/' atoms 2 : nspecies 'O.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atpos, bfcmt 'H.in' 2 1.811 0.0 0.0 0.0 0.0 0.0 -0.451907959 1.753710409 0.0 0.0 0.0 0.0 elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016435 xustar0030 mtime=1569569256.937634084 30 atime=1569569256.936634084 30 ctime=1569569256.937634084 elk-6.3.2/tests/test_010/TEST_900.OUT_0000644002504400250440000000007013543334750020501 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 6043 elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.941634081 30 atime=1569569256.940634082 30 ctime=1569569256.941634081 elk-6.3.2/tests/test_010/TEST_910.OUT_0000644002504400250440000000023413543334750020504 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 3 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016431 xustar0030 mtime=1569569256.945634078 30 atime=1569569256.944634079 30 ctime=1569569256.945634078 elk-6.3.2/tests/test_010/TEST_500.OUT_0000644002504400250440000000013513543334750020477 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.666133815105E-12 elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016432 xustar0030 mtime=1569569256.949634076 30 atime=1569569256.948634077 30 ctime=1569569256.949634076 elk-6.3.2/tests/test_010/TEST_510.OUT_0000644002504400250440000000014513543334750020501 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.174520502374 elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334750016430 xustar0030 mtime=1569569256.953634073 30 atime=1569569256.952634074 30 ctime=1569569256.953634073 elk-6.3.2/tests/test_010/TEST_400.OUT_0000644002504400250440000000014113543334750020473 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 9.99682604364 elk-6.3.2/tests/test_010/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016424 xustar0030 mtime=1569569256.957634071 30 atime=1569569256.956634071 30 ctime=1569569256.957634071 elk-6.3.2/tests/test_010/TEST_000.OUT_0000644002504400250440000000012613543334750020472 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -78.8724004317 elk-6.3.2/tests/PaxHeaders.21352/test_0140000644000000000000000000000013213543334750014465 xustar0030 mtime=1569569256.994634047 30 atime=1569569256.961634068 30 ctime=1569569256.994634047 elk-6.3.2/tests/test_014/0000755002504400250440000000000013543334750016611 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334750016444 xustar0030 mtime=1569569256.963634067 30 atime=1569569256.962634068 30 ctime=1569569256.963634067 elk-6.3.2/tests/test_014/TEST_705.OUT_0000644002504400250440000000010113543334750020503 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334750016441 xustar0030 mtime=1569569256.967634064 30 atime=1569569256.966634065 30 ctime=1569569256.967634064 elk-6.3.2/tests/test_014/TEST_900.OUT_0000644002504400250440000000007013543334750020505 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334750016442 xustar0030 mtime=1569569256.971634062 30 atime=1569569256.970634063 30 ctime=1569569256.971634062 elk-6.3.2/tests/test_014/TEST_910.OUT_0000644002504400250440000000144713543334750020517 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.382747642981E-01 2 0.114824292894 3 0.267923350087 4 0.344472878683 5 0.421022407279 6 -0.382747642981E-01 7 0.344472878683 8 -0.191373821491 9 0.574121464472 10 0.650670993068 11 0.114824292894 12 0.267923350087 13 -0.267923350087 14 0.421022407279 15 0.574121464472 16 0.382747642981E-01 17 0.727220521664 18 0.267923350087 19 0.382747642981E-01 20 0.114824292894 21 0.880319578857 22 0.344472878683 23 0.421022407279 24 0.574121464472 elk-6.3.2/tests/test_014/PaxHeaders.21352/elk.in0000644000000000000000000000013113543334750015644 xustar0030 mtime=1569569256.975634059 29 atime=1569569256.97463406 30 ctime=1569569256.975634059 elk-6.3.2/tests/test_014/elk.in0000644002504400250440000000074013543334750017715 0ustar00dewhurstdewhurst00000000000000 ! Optimised effective potential (OEP) test tasks 0 500 test .true. xctype -1 tauoep 0.05 maxitoep 50 maxscl 2 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 0.25 0.25 0.25 0.0 0.0 0.0 ngridk 2 2 2 vkloff 0.25 0.5 0.625 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334750016440 xustar0030 mtime=1569569256.979634057 30 atime=1569569256.978634057 30 ctime=1569569256.979634057 elk-6.3.2/tests/test_014/TEST_800.OUT_0000644002504400250440000000026413543334750020511 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 394.581580334 2 51.1494504119 3 35.9439292598 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334750016435 xustar0030 mtime=1569569256.983634054 30 atime=1569569256.982634055 30 ctime=1569569256.983634054 elk-6.3.2/tests/test_014/TEST_500.OUT_0000644002504400250440000000013513543334750020503 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.471866444503E-12 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334750016436 xustar0030 mtime=1569569256.987634052 30 atime=1569569256.986634052 30 ctime=1569569256.987634052 elk-6.3.2/tests/test_014/TEST_510.OUT_0000644002504400250440000000014513543334750020505 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.107586233368 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013113543334750016433 xustar0030 mtime=1569569256.991634049 29 atime=1569569256.99063405 30 ctime=1569569256.991634049 elk-6.3.2/tests/test_014/TEST_400.OUT_0000644002504400250440000000014113543334750020477 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9919844354 elk-6.3.2/tests/test_014/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334750016430 xustar0030 mtime=1569569256.995634047 30 atime=1569569256.995634047 30 ctime=1569569256.995634047 elk-6.3.2/tests/test_014/TEST_000.OUT_0000644002504400250440000000012613543334750020476 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -579.997959659 elk-6.3.2/tests/PaxHeaders.21352/test_0180000644000000000000000000000013013543334751014470 xustar0029 mtime=1569569257.03663402 30 atime=1569569256.999634044 29 ctime=1569569257.03663402 elk-6.3.2/tests/test_018/0000755002504400250440000000000013543334751016616 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334751016447 xustar0030 mtime=1569569257.001634043 30 atime=1569569257.000634043 30 ctime=1569569257.001634043 elk-6.3.2/tests/test_018/TEST_910.OUT_0000644002504400250440000000144713543334751020524 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 24 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.251891649582 5 0.251891649582 6 0.384969705319E-17 7 0.503783299164 8 0.503783299164 9 0.769939410638E-17 10 0.503783299164 11 0.251891649582 12 0.251891649582 13 0.503783299164 14 0.503783299164 15 0.503783299164 16 1.00756659833 17 1.00756659833 18 0.503783299164 19 1.00756659833 20 0.755674948747 21 0.755674948747 22 1.00756659833 23 1.00756659833 24 1.00756659833 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013013543334751016447 xustar0029 mtime=1569569257.00563404 30 atime=1569569257.004634041 29 ctime=1569569257.00563404 elk-6.3.2/tests/test_018/TEST_705.OUT_0000644002504400250440000000010113543334751020510 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334751016446 xustar0030 mtime=1569569257.009634038 30 atime=1569569257.008634038 30 ctime=1569569257.009634038 elk-6.3.2/tests/test_018/TEST_900.OUT_0000644002504400250440000000007013543334751020512 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 3511 elk-6.3.2/tests/test_018/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751015652 xustar0030 mtime=1569569257.013634035 30 atime=1569569257.012634036 30 ctime=1569569257.013634035 elk-6.3.2/tests/test_018/elk.in0000644002504400250440000000066313543334751017726 0ustar00dewhurstdewhurst00000000000000 tasks 0 205 210 500 test .true. wplot 200 100 10 0.0 1.0 swidth 0.01 rgkmax 6.5 ngridq 2 2 2 ngridk 4 4 4 avec 1.0 1.0 -1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 scale 3.118 sppath '../../species/' atoms 1 : nspecies 'Nb.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334751016442 xustar0030 mtime=1569569257.017634032 30 atime=1569569257.016634033 30 ctime=1569569257.017634032 elk-6.3.2/tests/test_018/TEST_500.OUT_0000644002504400250440000000013513543334751020510 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 25.5286835589 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013013543334751016441 xustar0029 mtime=1569569257.02163403 30 atime=1569569257.020634031 29 ctime=1569569257.02163403 elk-6.3.2/tests/test_018/TEST_510.OUT_0000644002504400250440000000014513543334751020512 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.157007973926E-01 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334751016441 xustar0030 mtime=1569569257.025634027 30 atime=1569569257.025634027 30 ctime=1569569257.025634027 elk-6.3.2/tests/test_018/TEST_400.OUT_0000644002504400250440000000014113543334751020504 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 41.0025904632 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334751016435 xustar0030 mtime=1569569257.029634025 30 atime=1569569257.029634025 30 ctime=1569569257.029634025 elk-6.3.2/tests/test_018/TEST_000.OUT_0000644002504400250440000000012613543334751020503 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -3816.44181154 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334751016445 xustar0030 mtime=1569569257.033634022 30 atime=1569569257.033634022 30 ctime=1569569257.033634022 elk-6.3.2/tests/test_018/TEST_800.OUT_0000644002504400250440000000026413543334751020516 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 231.402239370 2 29.8969231706 3 12.8329633332 elk-6.3.2/tests/test_018/PaxHeaders.21352/TEST_210.OUT_0000644000000000000000000000013113543334751016437 xustar0030 mtime=1569569257.038634019 29 atime=1569569257.03763402 30 ctime=1569569257.038634019 elk-6.3.2/tests/test_018/TEST_210.OUT_0000644002504400250440000001415513543334751020515 0ustar00dewhurstdewhurst00000000000000'phonon DOS' 2 200 0.100000000000E-01 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.00000000000 5 0.00000000000 6 0.00000000000 7 0.00000000000 8 0.00000000000 9 0.753170102542E-05 10 0.753170102542E-04 11 0.444370360500E-03 12 0.188292525636E-02 13 0.634922396443E-02 14 0.179857020487E-01 15 0.447383040910E-01 16 0.101115596833 17 0.213209903195 18 0.425264945565 19 0.804589025443 20 1.43784691596 21 2.41589101602 22 3.81159304361 23 5.66620412524 24 7.99402696117 25 10.8030125171 26 14.1096727923 27 17.9355434304 28 22.2880054987 29 27.1533362376 30 32.5136704525 31 38.3825777580 32 44.8230206641 33 51.9338201095 34 59.8024442485 35 68.4597178231 36 77.8555500003 37 87.8773870399 38 98.3959046141 39 109.320857881 40 120.638107328 41 132.418330437 42 144.803123187 43 157.968511474 44 172.076808476 45 187.216335939 46 203.375464919 47 220.459712735 48 238.361848050 49 257.019066520 50 276.441099103 51 296.689459710 52 317.851877596 53 340.008359510 54 363.204637941 55 387.429611162 56 412.634634425 57 438.801877685 58 466.037768897 59 494.616702995 60 524.919101174 61 557.271126259 62 591.781802133 63 628.291366353 64 666.488383082 65 706.123432510 66 747.192286840 67 789.967503270 68 834.888571618 69 882.386465859 70 932.780143489 71 986.296991584 72 1043.20193019 73 1103.90940874 74 1168.98753842 75 1239.06590415 76 1314.78833081 77 1396.94719853 78 1486.78189390 79 1586.28454181 80 1698.26265913 81 1825.93407475 82 1971.86531620 83 2136.35822896 84 2315.88816274 85 2502.66107229 86 2686.11699560 87 2856.13243274 88 3006.43434038 89 3136.38916690 90 3250.31314939 91 3354.98065626 92 3456.93980863 93 3560.97141398 94 3670.02675429 95 3786.12570626 96 3911.40200580 97 4048.62837834 98 4200.69919133 99 4368.72709291 100 4548.87503288 101 4729.07554412 102 4887.92940705 103 4998.12650303 104 5034.76011437 105 4985.46180214 106 4856.93242536 107 4673.57961605 108 4468.49829617 109 4271.71974273 110 4101.91780924 111 3964.89113221 112 3857.65106741 113 3774.26180093 114 3709.94773220 115 3662.29464977 116 3630.44885039 117 3613.88710178 118 3611.74143062 119 3622.79653671 120 3645.85082249 121 3680.20360378 122 3726.17281377 123 3785.53542174 124 3861.71497746 125 3959.68133912 126 4085.62159326 127 4246.17639044 128 4446.48705558 129 4686.49535858 130 4956.47622146 131 5234.80842023 132 5491.13774361 133 5695.23109764 134 5827.51638057 135 5885.34079176 136 5881.17106382 137 5834.07747882 138 5759.65876199 139 5664.04959178 140 5544.46250320 141 5395.04590936 142 5213.96165593 143 5007.69680706 144 4790.29171376 145 4578.52763857 146 4385.98432381 147 4219.36943964 148 4078.32086942 149 3957.96272295 150 3852.07902461 151 3755.50677830 152 3665.15455213 153 3580.05306640 154 3500.78130304 155 3428.76642650 156 3365.72592322 157 3313.61596675 158 3274.99186241 159 3253.51182265 160 3254.03202217 161 3282.09632016 162 3342.86959063 163 3439.99582117 164 3574.85124436 165 3746.59141593 166 3952.88821679 167 4190.57551565 168 4454.75205808 169 4735.10492687 170 5010.22656735 171 5243.67156030 172 5387.23804345 173 5393.93621615 174 5236.48962645 175 4920.96360842 176 4486.31085445 177 3988.67948268 178 3479.54917172 179 2989.91124446 180 2527.98967068 181 2088.69402974 182 1667.09286005 183 1267.62118369 184 905.035280006 185 598.104489404 186 360.728485785 187 195.667386519 188 93.9228424386 189 39.1335134559 190 13.8038756884 191 3.97839511565 192 0.886014245229 193 0.137378226704 194 0.114933757648E-01 195 0.00000000000 196 0.00000000000 197 0.00000000000 198 0.00000000000 199 0.00000000000 200 0.00000000000 elk-6.3.2/tests/PaxHeaders.21352/test_0030000644000000000000000000000013213543334751014464 xustar0030 mtime=1569569257.076633995 30 atime=1569569257.041634017 30 ctime=1569569257.076633995 elk-6.3.2/tests/test_003/0000755002504400250440000000000013543334751016610 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334751016433 xustar0030 mtime=1569569257.044634015 30 atime=1569569257.043634016 30 ctime=1569569257.044634015 elk-6.3.2/tests/test_003/TEST_400.OUT_0000644002504400250440000000014113543334751020476 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9921531675 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334751016427 xustar0030 mtime=1569569257.048634013 30 atime=1569569257.048634013 30 ctime=1569569257.048634013 elk-6.3.2/tests/test_003/TEST_000.OUT_0000644002504400250440000000012613543334751020475 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -580.223480630 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_750.OUT_0000644000000000000000000000012713543334751016447 xustar0029 mtime=1569569257.05263401 29 atime=1569569257.05263401 29 ctime=1569569257.05263401 elk-6.3.2/tests/test_003/TEST_750.OUT_0000644002504400250440000000036113543334751020512 0ustar00dewhurstdewhurst00000000000000'total forces' 2 6 0.100000000000E-02 1 0.177937190584E-01 2 0.177937190584E-01 3 0.177937190584E-01 4 -0.177937190584E-01 5 -0.177937190584E-01 6 -0.177937190584E-01 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334751016434 xustar0030 mtime=1569569257.057634007 30 atime=1569569257.056634008 30 ctime=1569569257.057634007 elk-6.3.2/tests/test_003/TEST_500.OUT_0000644002504400250440000000013513543334751020502 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.555111987028E-12 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334751016435 xustar0030 mtime=1569569257.061634004 30 atime=1569569257.060634005 30 ctime=1569569257.061634004 elk-6.3.2/tests/test_003/TEST_510.OUT_0000644002504400250440000000014513543334751020504 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.846321005656E-01 elk-6.3.2/tests/test_003/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751015644 xustar0030 mtime=1569569257.065634002 30 atime=1569569257.064634002 30 ctime=1569569257.065634002 elk-6.3.2/tests/test_003/elk.in0000644002504400250440000000067313543334751017721 0ustar00dewhurstdewhurst00000000000000 tasks 0 500 test .true. xctype 21 maxscl 10 tforce .true. mixtype 3 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 0.27 0.27 0.27 0.0 0.0 0.0 ngridk 2 2 2 vkloff 0.5 0.5 0.5 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000012713543334751016447 xustar0030 mtime=1569569257.069633999 27 atime=1569569257.068634 30 ctime=1569569257.069633999 elk-6.3.2/tests/test_003/TEST_705.OUT_0000644002504400250440000000010113543334751020502 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 12 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334751016440 xustar0030 mtime=1569569257.073633997 30 atime=1569569257.073633997 30 ctime=1569569257.073633997 elk-6.3.2/tests/test_003/TEST_900.OUT_0000644002504400250440000000007013543334751020504 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-6.3.2/tests/test_003/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334751016441 xustar0030 mtime=1569569257.077633994 30 atime=1569569257.077633994 30 ctime=1569569257.077633994 elk-6.3.2/tests/test_003/TEST_910.OUT_0000644002504400250440000000037113543334751020511 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 6 0.100000000000E-07 1 0.153099057192 2 0.153099057192 3 0.153099057192 4 0.459297171577 5 0.459297171577 6 -0.153099057192 elk-6.3.2/tests/PaxHeaders.21352/test_0070000644000000000000000000000013213543334751014470 xustar0030 mtime=1569569257.132633959 30 atime=1569569257.081633992 30 ctime=1569569257.132633959 elk-6.3.2/tests/test_007/0000755002504400250440000000000013543334751016614 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000012713543334751016450 xustar0029 mtime=1569569257.08363399 29 atime=1569569257.08363399 29 ctime=1569569257.08363399 elk-6.3.2/tests/test_007/TEST_900.OUT_0000644002504400250440000000007013543334751020510 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2801 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334751016445 xustar0030 mtime=1569569257.087633988 30 atime=1569569257.087633988 30 ctime=1569569257.087633988 elk-6.3.2/tests/test_007/TEST_910.OUT_0000644002504400250440000000174113543334751020517 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 30 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.285807191920 5 0.00000000000 6 0.00000000000 7 0.571614383841 8 0.00000000000 9 0.00000000000 10 0.285807191920 11 0.285807191920 12 0.00000000000 13 0.571614383841 14 0.285807191920 15 0.00000000000 16 0.571614383841 17 0.571614383841 18 0.00000000000 19 0.285807191920 20 0.285807191920 21 0.285807191920 22 0.571614383841 23 0.285807191920 24 0.285807191920 25 0.571614383841 26 0.571614383841 27 0.285807191920 28 0.571614383841 29 0.571614383841 30 0.571614383841 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334751016440 xustar0030 mtime=1569569257.092633985 30 atime=1569569257.091633985 30 ctime=1569569257.092633985 elk-6.3.2/tests/test_007/TEST_500.OUT_0000644002504400250440000000013513543334751020506 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 85.2372096282 elk-6.3.2/tests/test_007/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751015650 xustar0030 mtime=1569569257.096633982 30 atime=1569569257.095633983 30 ctime=1569569257.096633982 elk-6.3.2/tests/test_007/elk.in0000644002504400250440000000136613543334751017725 0ustar00dewhurstdewhurst00000000000000 ! FeAl in CsCl (B2) structure using GGA+U and interpolation between AMF and ! FLL double counting. tasks 0 15 16 500 test .true. kstlist 4 8 mixtype 1 msmooth 4 wplot 50 100 2 0.0 0.25 gmaxvr 10.0 xctype 20 dft+u 3 1 : dftu, inpdftu 1 2 0.183 0.034911967 : is, l, U, J spinpol .true. bfieldc 0.0 0.0 -0.01 scale 5.496 avec 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 atoms 2 : nspecies 'Fe.in' : spfname 1 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 'Al.in' 1 0.5 0.5 0.5 0.0 0.0 0.0 : atposl, bfcmt sppath '../../species/' ngridk 4 4 4 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013113543334751016436 xustar0030 mtime=1569569257.100633979 29 atime=1569569257.09963398 30 ctime=1569569257.100633979 elk-6.3.2/tests/test_007/TEST_400.OUT_0000644002504400250440000000014113543334751020502 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 38.9880161040 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334751016444 xustar0030 mtime=1569569257.104633977 30 atime=1569569257.103633978 30 ctime=1569569257.104633977 elk-6.3.2/tests/test_007/TEST_450.OUT_0000644002504400250440000000014013543334751020506 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.530789839273 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334751016443 xustar0030 mtime=1569569257.108633974 30 atime=1569569257.108633974 30 ctime=1569569257.108633974 elk-6.3.2/tests/test_007/TEST_800.OUT_0000644002504400250440000000014413543334751020511 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 1 0.100000000000E-03 1 0.123253721083E-01 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_810.OUT_0000644000000000000000000000013213543334751016444 xustar0030 mtime=1569569257.113633971 30 atime=1569569257.112633972 30 ctime=1569569257.113633971 elk-6.3.2/tests/test_007/TEST_810.OUT_0000644002504400250440000000475513543334751020526 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 80 0.100000000000E-03 1 0.183000000000 2 0.349119670000E-01 3 0.00000000000 4 0.00000000000 5 0.00000000000 6 0.00000000000 7 0.00000000000 8 0.00000000000 9 0.00000000000 10 0.00000000000 11 0.00000000000 12 0.00000000000 13 0.00000000000 14 0.00000000000 15 0.00000000000 16 0.00000000000 17 0.00000000000 18 0.00000000000 19 0.00000000000 20 0.00000000000 21 0.00000000000 22 0.00000000000 23 0.00000000000 24 0.00000000000 25 0.00000000000 26 0.00000000000 27 0.00000000000 28 0.00000000000 29 0.00000000000 30 0.00000000000 31 0.00000000000 32 0.00000000000 33 0.00000000000 34 0.00000000000 35 0.00000000000 36 0.00000000000 37 0.00000000000 38 0.00000000000 39 0.00000000000 40 0.00000000000 41 0.00000000000 42 0.00000000000 43 0.00000000000 44 0.00000000000 45 0.00000000000 46 0.00000000000 47 0.00000000000 48 0.00000000000 49 0.00000000000 50 0.00000000000 51 0.00000000000 52 0.00000000000 53 0.00000000000 54 0.00000000000 55 0.00000000000 56 0.00000000000 57 0.00000000000 58 0.00000000000 59 0.00000000000 60 0.00000000000 61 0.00000000000 62 0.00000000000 63 0.00000000000 64 0.00000000000 65 0.00000000000 66 0.00000000000 67 0.00000000000 68 0.00000000000 69 0.00000000000 70 0.00000000000 71 0.00000000000 72 0.00000000000 73 0.00000000000 74 0.00000000000 75 0.00000000000 76 0.00000000000 77 0.00000000000 78 0.00000000000 79 0.00000000000 80 0.00000000000 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334751016433 xustar0030 mtime=1569569257.117633969 30 atime=1569569257.116633969 30 ctime=1569569257.117633969 elk-6.3.2/tests/test_007/TEST_000.OUT_0000644002504400250440000000012613543334751020501 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1515.73159797 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_015.OUT_0000644000000000000000000000013213543334751016441 xustar0030 mtime=1569569257.121633966 30 atime=1569569257.120633967 30 ctime=1569569257.121633966 elk-6.3.2/tests/test_007/TEST_015.OUT_0000644002504400250440000000040613543334751020510 0ustar00dewhurstdewhurst00000000000000'total muffin-tin angular momentum' 2 6 0.100000000000E-02 1 0.879001624901E-17 2 0.106064590393E-16 3 0.257522741545 4 -0.659785074721E-18 5 0.159017941215E-17 6 -0.483544950615E-02 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_016.OUT_0000644000000000000000000000013213543334751016442 xustar0030 mtime=1569569257.125633963 30 atime=1569569257.125633963 30 ctime=1569569257.125633963 elk-6.3.2/tests/test_007/TEST_016.OUT_0000644002504400250440000000041613543334751020512 0ustar00dewhurstdewhurst00000000000000'muffin-tin angular momentum for one state' 2 6 0.100000000000E-02 1 0.110550047159E-06 2 0.341433609752E-06 3 0.132567881629 4 -0.944572329100E-06 5 0.923929041256E-06 6 0.156227775375 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334751016441 xustar0030 mtime=1569569257.129633961 30 atime=1569569257.129633961 30 ctime=1569569257.129633961 elk-6.3.2/tests/test_007/TEST_510.OUT_0000644002504400250440000000014513543334751020510 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.110191822487E-02 elk-6.3.2/tests/test_007/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334751016447 xustar0030 mtime=1569569257.133633958 30 atime=1569569257.133633958 30 ctime=1569569257.133633958 elk-6.3.2/tests/test_007/TEST_705.OUT_0000644002504400250440000000010113543334751020506 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/PaxHeaders.21352/test_0110000644000000000000000000000013213543334751014463 xustar0030 mtime=1569569257.170633935 30 atime=1569569257.137633956 30 ctime=1569569257.170633935 elk-6.3.2/tests/test_011/0000755002504400250440000000000013543334751016607 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334751016437 xustar0030 mtime=1569569257.139633955 30 atime=1569569257.139633955 30 ctime=1569569257.139633955 elk-6.3.2/tests/test_011/TEST_900.OUT_0000644002504400250440000000007013543334751020503 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7799 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334751016434 xustar0030 mtime=1569569257.143633952 30 atime=1569569257.143633952 30 ctime=1569569257.143633952 elk-6.3.2/tests/test_011/TEST_510.OUT_0000644002504400250440000000014513543334751020503 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.348415809319 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334751016426 xustar0030 mtime=1569569257.147633949 30 atime=1569569257.147633949 30 ctime=1569569257.147633949 elk-6.3.2/tests/test_011/TEST_000.OUT_0000644002504400250440000000012613543334751020474 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -579.532465257 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013213543334751016436 xustar0030 mtime=1569569257.151633947 30 atime=1569569257.151633947 30 ctime=1569569257.151633947 elk-6.3.2/tests/test_011/TEST_800.OUT_0000644002504400250440000000026413543334751020507 0ustar00dewhurstdewhurst00000000000000'regularised Coulomb Green''s function (gclq)' 2 3 0.100000000000E-07 1 394.581580334 2 51.1494504119 3 35.9439292598 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334751016432 xustar0030 mtime=1569569257.156633944 30 atime=1569569257.155633944 30 ctime=1569569257.156633944 elk-6.3.2/tests/test_011/TEST_400.OUT_0000644002504400250440000000014113543334751020475 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9921405989 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334751016433 xustar0030 mtime=1569569257.160633941 30 atime=1569569257.159633942 30 ctime=1569569257.160633941 elk-6.3.2/tests/test_011/TEST_500.OUT_0000644002504400250440000000013513543334751020501 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 0.695512736158E-12 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334751016442 xustar0030 mtime=1569569257.164633939 30 atime=1569569257.163633939 30 ctime=1569569257.164633939 elk-6.3.2/tests/test_011/TEST_705.OUT_0000644002504400250440000000010113543334751020501 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 48 elk-6.3.2/tests/test_011/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334751016440 xustar0030 mtime=1569569257.168633936 30 atime=1569569257.167633937 30 ctime=1569569257.168633936 elk-6.3.2/tests/test_011/TEST_910.OUT_0000644002504400250440000000037113543334751020510 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 6 0.100000000000E-07 1 0.153099057192 2 0.153099057192 3 0.153099057192 4 0.459297171577 5 0.459297171577 6 -0.153099057192 elk-6.3.2/tests/test_011/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751015643 xustar0030 mtime=1569569257.172633933 30 atime=1569569257.171633934 30 ctime=1569569257.172633933 elk-6.3.2/tests/test_011/elk.in0000644002504400250440000000066713543334751017723 0ustar00dewhurstdewhurst00000000000000 ! Hartree-Fock calculation of silicon. tasks 0 5 500 test .true. maxscl 2 avec 5.13 5.13 0.00 5.13 0.00 5.13 0.00 5.13 5.13 sppath '../../species/' atoms 1 : nspecies 'Si.in' : spfname 2 : natoms 0.0 0.0 0.0 0.0 0.0 0.0 : atposl, bfcmt 0.25 0.25 0.25 0.0 0.0 0.0 ngridk 2 2 2 vkloff 0.5 0.5 0.5 elk-6.3.2/tests/PaxHeaders.21352/test_0150000644000000000000000000000013213543334751014467 xustar0030 mtime=1569569257.226633899 30 atime=1569569257.175633932 30 ctime=1569569257.226633899 elk-6.3.2/tests/test_015/0000755002504400250440000000000013543334751016613 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000012713543334751016452 xustar0029 mtime=1569569257.17763393 29 atime=1569569257.17763393 29 ctime=1569569257.17763393 elk-6.3.2/tests/test_015/TEST_705.OUT_0000644002504400250440000000010113543334751020505 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 24 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334751016437 xustar0030 mtime=1569569257.181633928 30 atime=1569569257.181633928 30 ctime=1569569257.181633928 elk-6.3.2/tests/test_015/TEST_500.OUT_0000644002504400250440000000013513543334751020505 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 59.6928176432 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334751016436 xustar0030 mtime=1569569257.185633925 30 atime=1569569257.185633925 30 ctime=1569569257.185633925 elk-6.3.2/tests/test_015/TEST_400.OUT_0000644002504400250440000000014113543334751020501 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 72.0072886705 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334751016443 xustar0030 mtime=1569569257.189633923 30 atime=1569569257.189633923 30 ctime=1569569257.189633923 elk-6.3.2/tests/test_015/TEST_450.OUT_0000644002504400250440000000014013543334751020505 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.331544834949E-18 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_800.OUT_0000644000000000000000000000013113543334751016441 xustar0030 mtime=1569569257.194633919 29 atime=1569569257.19363392 30 ctime=1569569257.194633919 elk-6.3.2/tests/test_015/TEST_800.OUT_0000644002504400250440000000020313543334751020504 0ustar00dewhurstdewhurst00000000000000'DFT+U energy for each atom' 2 2 0.100000000000E-03 1 0.786888474582 2 0.786888474582 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_810.OUT_0000644000000000000000000000013213543334751016443 xustar0030 mtime=1569569257.198633917 30 atime=1569569257.197633917 30 ctime=1569569257.198633917 elk-6.3.2/tests/test_015/TEST_810.OUT_0000644002504400250440000000475513543334751020525 0ustar00dewhurstdewhurst00000000000000'U and J parameters' 2 80 0.100000000000E-03 1 0.293989988257 2 0.460350639166E-01 3 0.00000000000 4 0.00000000000 5 0.00000000000 6 0.00000000000 7 0.00000000000 8 0.00000000000 9 0.00000000000 10 0.00000000000 11 0.00000000000 12 0.00000000000 13 0.00000000000 14 0.00000000000 15 0.00000000000 16 0.00000000000 17 0.00000000000 18 0.00000000000 19 0.00000000000 20 0.00000000000 21 0.00000000000 22 0.00000000000 23 0.00000000000 24 0.00000000000 25 0.00000000000 26 0.00000000000 27 0.00000000000 28 0.00000000000 29 0.00000000000 30 0.00000000000 31 0.00000000000 32 0.00000000000 33 0.00000000000 34 0.00000000000 35 0.00000000000 36 0.00000000000 37 0.00000000000 38 0.00000000000 39 0.00000000000 40 0.00000000000 41 0.00000000000 42 0.00000000000 43 0.00000000000 44 0.00000000000 45 0.00000000000 46 0.00000000000 47 0.00000000000 48 0.00000000000 49 0.00000000000 50 0.00000000000 51 0.00000000000 52 0.00000000000 53 0.00000000000 54 0.00000000000 55 0.00000000000 56 0.00000000000 57 0.00000000000 58 0.00000000000 59 0.00000000000 60 0.00000000000 61 0.00000000000 62 0.00000000000 63 0.00000000000 64 0.00000000000 65 0.00000000000 66 0.00000000000 67 0.00000000000 68 0.00000000000 69 0.00000000000 70 0.00000000000 71 0.00000000000 72 0.00000000000 73 0.00000000000 74 0.00000000000 75 0.00000000000 76 0.00000000000 77 0.00000000000 78 0.00000000000 79 0.00000000000 80 0.00000000000 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334751016432 xustar0030 mtime=1569569257.202633914 30 atime=1569569257.202633914 30 ctime=1569569257.202633914 elk-6.3.2/tests/test_015/TEST_000.OUT_0000644002504400250440000000012613543334751020500 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -3191.00075227 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_820.OUT_0000644000000000000000000000013213543334751016444 xustar0030 mtime=1569569257.206633912 30 atime=1569569257.206633912 30 ctime=1569569257.206633912 elk-6.3.2/tests/test_015/TEST_820.OUT_0000644002504400250440000000014013543334751020506 0ustar00dewhurstdewhurst00000000000000'Norm of tensor moments' 2 1 0.100000000000E-03 1 87.1127717299 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_830.OUT_0000644000000000000000000000013213543334751016445 xustar0030 mtime=1569569257.211633909 30 atime=1569569257.210633909 30 ctime=1569569257.211633909 elk-6.3.2/tests/test_015/TEST_830.OUT_0000644002504400250440000000016613543334751020517 0ustar00dewhurstdewhurst00000000000000'Norm of DFT+U Hartree-Fock exchange energies' 2 1 0.100000000000E-03 1 2.08240790162 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013213543334751016440 xustar0030 mtime=1569569257.215633906 30 atime=1569569257.214633907 30 ctime=1569569257.215633906 elk-6.3.2/tests/test_015/TEST_510.OUT_0000644002504400250440000000014513543334751020507 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.779178186586E-02 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334751016443 xustar0030 mtime=1569569257.219633903 30 atime=1569569257.218633904 30 ctime=1569569257.219633903 elk-6.3.2/tests/test_015/TEST_900.OUT_0000644002504400250440000000007013543334751020507 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 7247 elk-6.3.2/tests/test_015/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334751016444 xustar0030 mtime=1569569257.223633901 30 atime=1569569257.222633902 30 ctime=1569569257.223633901 elk-6.3.2/tests/test_015/TEST_910.OUT_0000644002504400250440000000066313543334751020520 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 12 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.597004528775 5 -0.199001509592 6 -0.199001509592 7 0.398003019183 8 0.398003019183 9 -0.398003019183 10 0.199001509592 11 0.199001509592 12 0.199001509592 elk-6.3.2/tests/test_015/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751015647 xustar0030 mtime=1569569257.227633898 30 atime=1569569257.227633898 30 ctime=1569569257.227633898 elk-6.3.2/tests/test_015/elk.in0000644002504400250440000000132213543334751017714 0ustar00dewhurstdewhurst00000000000000 ! DFT+U test tasks 0 400 500 maxscl 3 test .true. dft+u 1 5 : dftu, inpdftu 1 2 0.29399 : is, l, U fixed swidth 0.05 spinpol .true. scale 7.893389 avec 1.0 0.5 0.5 0.5 1.0 0.5 0.5 0.5 1.0 atoms 2 : nspecies 'Ni.in' : spfname 2 : natoms; atpos, bfcmt below 0.0 0.0 0.0 0.0 0.0 -2.0 0.5 0.5 0.5 0.0 0.0 2.0 'O.in' : spfname 2 : natoms; atpos, bfcmt below 0.25 0.25 0.25 0.0 0.0 0.0 0.75 0.75 0.75 0.0 0.0 0.0 reducebf 0.5 sppath '../../species/' ngridk 2 2 2 elk-6.3.2/tests/PaxHeaders.21352/test_0190000644000000000000000000000013213543334751014473 xustar0030 mtime=1569569257.264633875 30 atime=1569569257.231633896 30 ctime=1569569257.264633875 elk-6.3.2/tests/test_019/0000755002504400250440000000000013543334751016617 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_705.OUT_0000644000000000000000000000013213543334751016452 xustar0030 mtime=1569569257.233633894 30 atime=1569569257.232633895 30 ctime=1569569257.233633894 elk-6.3.2/tests/test_019/TEST_705.OUT_0000644002504400250440000000010113543334751020511 0ustar00dewhurstdewhurst00000000000000'number of crystal symmetries' 1 1 1 4 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_500.OUT_0000644000000000000000000000013213543334751016443 xustar0030 mtime=1569569257.236633893 30 atime=1569569257.235633893 30 ctime=1569569257.236633893 elk-6.3.2/tests/test_019/TEST_500.OUT_0000644002504400250440000000013513543334751020511 0ustar00dewhurstdewhurst00000000000000'DOS at Fermi energy' 2 1 0.500000000000E-02 1 70.1899852233 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_510.OUT_0000644000000000000000000000013013543334751016442 xustar0029 mtime=1569569257.24063389 30 atime=1569569257.239633891 29 ctime=1569569257.24063389 elk-6.3.2/tests/test_019/TEST_510.OUT_0000644002504400250440000000014513543334751020513 0ustar00dewhurstdewhurst00000000000000'estimated indirect band gap' 2 1 0.200000000000E-01 1 0.182636808913E-02 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_400.OUT_0000644000000000000000000000013213543334751016442 xustar0030 mtime=1569569257.243633888 30 atime=1569569257.243633888 30 ctime=1569569257.243633888 elk-6.3.2/tests/test_019/TEST_400.OUT_0000644002504400250440000000014113543334751020505 0ustar00dewhurstdewhurst00000000000000'calculated total charge' 2 1 0.100000000000E-05 1 27.9993302808 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_450.OUT_0000644000000000000000000000013213543334751016447 xustar0030 mtime=1569569257.247633886 30 atime=1569569257.246633886 30 ctime=1569569257.247633886 elk-6.3.2/tests/test_019/TEST_450.OUT_0000644002504400250440000000014013543334751020511 0ustar00dewhurstdewhurst00000000000000'total moment magnitude' 2 1 0.100000000000E-02 1 0.591058877412 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_000.OUT_0000644000000000000000000000013213543334751016436 xustar0030 mtime=1569569257.251633883 30 atime=1569569257.250633884 30 ctime=1569569257.251633883 elk-6.3.2/tests/test_019/TEST_000.OUT_0000644002504400250440000000012613543334751020504 0ustar00dewhurstdewhurst00000000000000'total energy' 2 1 0.100000000000E-03 1 -1518.37732174 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_460.OUT_0000644000000000000000000000013213543334751016450 xustar0030 mtime=1569569257.254633881 30 atime=1569569257.253633882 30 ctime=1569569257.254633881 elk-6.3.2/tests/test_019/TEST_460.OUT_0000644002504400250440000000024713543334751020522 0ustar00dewhurstdewhurst00000000000000'total current of last time step' 2 3 0.100000000000E-03 1 0.415264444662E-19 2 -0.124106988372E-17 3 0.107176374784 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_900.OUT_0000644000000000000000000000013213543334751016447 xustar0030 mtime=1569569257.258633879 30 atime=1569569257.257633879 30 ctime=1569569257.258633879 elk-6.3.2/tests/test_019/TEST_900.OUT_0000644002504400250440000000007013543334751020513 0ustar00dewhurstdewhurst00000000000000'number of G-vectors' 1 1 1 2109 elk-6.3.2/tests/test_019/PaxHeaders.21352/TEST_910.OUT_0000644000000000000000000000013213543334751016450 xustar0030 mtime=1569569257.262633876 30 atime=1569569257.261633877 30 ctime=1569569257.262633876 elk-6.3.2/tests/test_019/TEST_910.OUT_0000644002504400250440000000360313543334751020521 0ustar00dewhurstdewhurst00000000000000'k-points (Cartesian)' 2 60 0.100000000000E-07 1 0.00000000000 2 0.00000000000 3 0.00000000000 4 0.235855304324 5 0.235855304324 6 -0.235855304324 7 0.471710608647 8 0.471710608647 9 -0.471710608647 10 0.707565912971 11 0.707565912971 12 -0.707565912971 13 0.471710608647 14 0.00000000000 15 0.00000000000 16 0.707565912971 17 0.235855304324 18 -0.235855304324 19 0.943421217294 20 0.471710608647 21 -0.471710608647 22 0.707565912971 23 -0.235855304324 24 0.235855304324 25 0.943421217294 26 0.00000000000 27 0.00000000000 28 1.17927652162 29 0.235855304324 30 -0.235855304324 31 0.943421217294 32 -0.471710608647 33 0.471710608647 34 1.17927652162 35 -0.235855304324 36 0.235855304324 37 0.00000000000 38 0.00000000000 39 0.471710608647 40 0.471710608647 41 0.471710608647 42 0.00000000000 43 0.707565912971 44 0.707565912971 45 -0.235855304324 46 0.943421217294 47 0.471710608647 48 0.00000000000 49 0.943421217294 50 0.00000000000 51 0.471710608647 52 0.00000000000 53 0.00000000000 54 0.943421217294 55 0.707565912971 56 0.707565912971 57 0.235855304324 58 0.00000000000 59 0.00000000000 60 1.41513182594 elk-6.3.2/tests/test_019/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751015653 xustar0030 mtime=1569569257.265633874 30 atime=1569569257.264633875 30 ctime=1569569257.265633874 elk-6.3.2/tests/test_019/elk.in0000644002504400250440000000067613543334751017733 0ustar00dewhurstdewhurst00000000000000 ! TDDFT time evolution test tasks 0 450 460 500 test .true. tshift .false. lradstp 5 rgkmax 6.0 ngridk 4 4 4 nempty 6 tstime 50.0 dtimes 1.0 pulse 1 0.0 0.0 250.0 0.03 0.0 0.0 30.0 10.0 ntswrite 0 spinpol .true. spinorb .true. bfieldc 0.0 0.0 0.01 avec 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 scale 3.33 sppath '../../species/' atoms 1 'Ni.in' 1 0.0 0.0 0.0 elk-6.3.2/PaxHeaders.21352/species0000644000000000000000000000013013543334751013412 xustar0029 mtime=1569569257.80463353 30 atime=1569569257.275633868 29 ctime=1569569257.80463353 elk-6.3.2/species/0000755002504400250440000000000013543334751015540 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/species/PaxHeaders.21352/Ac.in0000644000000000000000000000013213543334751014344 xustar0030 mtime=1569569257.285633861 30 atime=1569569257.284633862 30 ctime=1569569257.285633861 elk-6.3.2/species/Ac.in0000644002504400250440000000425213543334751016416 0ustar00dewhurstdewhurst00000000000000 'Ac' : spsymb 'actinium' : spname -89.0000 : spzn 413795.6860 : spmass 0.212000E-06 3.0000 58.5155 800 : rminsp, rmt, rmaxsp, nrmt 26 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 1.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.8323 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4862 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6749 0 T elk-6.3.2/species/PaxHeaders.21352/Ag.in0000644000000000000000000000013213543334751014350 xustar0030 mtime=1569569257.290633858 30 atime=1569569257.289633859 30 ctime=1569569257.290633858 elk-6.3.2/species/Ag.in0000644002504400250440000000356613543334751016431 0ustar00dewhurstdewhurst00000000000000 'Ag' : spsymb 'silver' : spname -47.0000 : spzn 196631.6997 : spmass 0.291730E-06 2.6000 49.0510 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.4920 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0961 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2735 0 T elk-6.3.2/species/PaxHeaders.21352/Al.in0000644000000000000000000000013213543334751014355 xustar0030 mtime=1569569257.295633855 30 atime=1569569257.294633856 30 ctime=1569569257.295633855 elk-6.3.2/species/Al.in0000644002504400250440000000227613543334751016433 0ustar00dewhurstdewhurst00000000000000 'Al' : spsymb 'aluminium' : spname -13.0000 : spzn 49184.33492 : spmass 0.554700E-06 2.2000 57.4918 400 : rminsp, rmt, rmaxsp, nrmt 6 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 2.00000 F 3 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5562 0 T elk-6.3.2/species/PaxHeaders.21352/Am.in0000644000000000000000000000013213543334751014356 xustar0030 mtime=1569569257.300633852 30 atime=1569569257.299633852 30 ctime=1569569257.300633852 elk-6.3.2/species/Am.in0000644002504400250440000000453213543334751016431 0ustar00dewhurstdewhurst00000000000000 'Am' : spsymb 'americium' : spname -95.0000 : spzn 442961.9018 : spmass 0.205196E-06 3.0000 51.9446 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 3.00000 F 5 3 4 4.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0774 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8674 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7549 0 T elk-6.3.2/species/PaxHeaders.21352/Ar.in0000644000000000000000000000013213543334751014363 xustar0030 mtime=1569569257.305633848 30 atime=1569569257.304633849 30 ctime=1569569257.305633848 elk-6.3.2/species/Ar.in0000644002504400250440000000233213543334751016432 0ustar00dewhurstdewhurst00000000000000 'Ar' : spsymb 'argon' : spname -18.0000 : spzn 72820.74919 : spmass 0.471405E-06 2.0000 28.6848 400 : rminsp, rmt, rmaxsp, nrmt 7 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8916 0 T elk-6.3.2/species/PaxHeaders.21352/As.in0000644000000000000000000000013213543334751014364 xustar0030 mtime=1569569257.310633845 30 atime=1569569257.309633846 30 ctime=1569569257.310633845 elk-6.3.2/species/As.in0000644002504400250440000000321613543334751016435 0ustar00dewhurstdewhurst00000000000000 'As' : spsymb 'arsenic' : spname -33.0000 : spzn 136573.7219 : spmass 0.348155E-06 2.4000 42.0399 500 : rminsp, rmt, rmaxsp, nrmt 12 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 4 1 1 1.00000 F 4 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4917 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5401 0 T elk-6.3.2/species/PaxHeaders.21352/At.in0000644000000000000000000000013213543334751014365 xustar0030 mtime=1569569257.315633842 30 atime=1569569257.314633843 30 ctime=1569569257.315633842 elk-6.3.2/species/At.in0000644002504400250440000000373613543334751016445 0ustar00dewhurstdewhurst00000000000000 'At' : spsymb 'astatine' : spname -85.0000 : spzn 382806.5818 : spmass 0.216930E-06 2.8000 39.4078 700 : rminsp, rmt, rmaxsp, nrmt 24 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 3.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.3831 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7106 0 T elk-6.3.2/species/PaxHeaders.21352/Au.in0000644000000000000000000000012713543334751014372 xustar0029 mtime=1569569257.31963384 29 atime=1569569257.31863384 29 ctime=1569569257.31963384 elk-6.3.2/species/Au.in0000644002504400250440000000431613543334751016441 0ustar00dewhurstdewhurst00000000000000 'Au' : spsymb 'gold' : spname -79.0000 : spzn 359048.0559 : spmass 0.225018E-06 2.8000 39.2245 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 T 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.9275 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0422 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2406 0 T elk-6.3.2/species/PaxHeaders.21352/Ba.in0000644000000000000000000000013213543334751014343 xustar0030 mtime=1569569257.324633836 30 atime=1569569257.323633837 30 ctime=1569569257.324633836 elk-6.3.2/species/Ba.in0000644002504400250440000000371213543334751016415 0ustar00dewhurstdewhurst00000000000000 'Ba' : spsymb 'barium' : spname -56.0000 : spzn 250331.8069 : spmass 0.267261E-06 2.8000 55.5566 700 : rminsp, rmt, rmaxsp, nrmt 18 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.2515 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2408 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6670 0 T elk-6.3.2/species/PaxHeaders.21352/Be.in0000644000000000000000000000013213543334751014347 xustar0030 mtime=1569569257.329633833 30 atime=1569569257.328633834 30 ctime=1569569257.329633833 elk-6.3.2/species/Be.in0000644002504400250440000000167213543334751016424 0ustar00dewhurstdewhurst00000000000000 'Be' : spsymb 'beryllium' : spname -4.00000 : spzn 16428.20279 : spmass 0.100000E-05 1.8000 44.5601 300 : rminsp, rmt, rmaxsp, nrmt 2 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 2 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F elk-6.3.2/species/PaxHeaders.21352/Bi.in0000644000000000000000000000013013543334751014351 xustar0029 mtime=1569569257.33463383 30 atime=1569569257.333633831 29 ctime=1569569257.33463383 elk-6.3.2/species/Bi.in0000644002504400250440000000373613543334751016433 0ustar00dewhurstdewhurst00000000000000 'Bi' : spsymb 'bismuth' : spname -83.0000 : spzn 380947.9282 : spmass 0.219529E-06 2.8000 45.2810 700 : rminsp, rmt, rmaxsp, nrmt 24 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 1.00000 F 6 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9498 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5393 0 T elk-6.3.2/species/PaxHeaders.21352/B.in0000644000000000000000000000013213543334751014202 xustar0030 mtime=1569569257.339633827 30 atime=1569569257.338633827 30 ctime=1569569257.339633827 elk-6.3.2/species/B.in0000644002504400250440000000172613543334751016257 0ustar00dewhurstdewhurst00000000000000 'B' : spsymb 'boron' : spname -5.00000 : spzn 19707.24741 : spmass 0.894427E-06 1.8000 50.1216 300 : rminsp, rmt, rmaxsp, nrmt 3 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 2 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F elk-6.3.2/species/PaxHeaders.21352/Bk.in0000644000000000000000000000013213543334751014355 xustar0030 mtime=1569569257.344633824 30 atime=1569569257.343633824 30 ctime=1569569257.344633824 elk-6.3.2/species/Bk.in0000644002504400250440000000453213543334751016430 0ustar00dewhurstdewhurst00000000000000 'Bk' : spsymb 'berkelium' : spname -97.0000 : spzn 450253.4557 : spmass 0.203069E-06 3.0000 52.0199 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 5.00000 F 5 3 4 4.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1057 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.9965 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7758 0 T elk-6.3.2/species/PaxHeaders.21352/Br.in0000644000000000000000000000013013543334751014362 xustar0029 mtime=1569569257.34963382 30 atime=1569569257.348633821 29 ctime=1569569257.34963382 elk-6.3.2/species/Br.in0000644002504400250440000000321613543334751016435 0ustar00dewhurstdewhurst00000000000000 'Br' : spsymb 'bromine' : spname -35.0000 : spzn 145656.0815 : spmass 0.338062E-06 2.4000 34.9262 500 : rminsp, rmt, rmaxsp, nrmt 12 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 3.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.4430 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7453 0 T elk-6.3.2/species/PaxHeaders.21352/Ca.in0000644000000000000000000000013213543334751014344 xustar0030 mtime=1569569257.354633817 30 atime=1569569257.353633818 30 ctime=1569569257.354633817 elk-6.3.2/species/Ca.in0000644002504400250440000000261213543334751016414 0ustar00dewhurstdewhurst00000000000000 'Ca' : spsymb 'calcium' : spname -20.0000 : spzn 73057.72469 : spmass 0.447214E-06 2.4000 50.3684 500 : rminsp, rmt, rmaxsp, nrmt 8 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7208 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0235 0 T elk-6.3.2/species/PaxHeaders.21352/Cd.in0000644000000000000000000000013213543334751014347 xustar0030 mtime=1569569257.359633814 30 atime=1569569257.358633815 30 ctime=1569569257.359633814 elk-6.3.2/species/Cd.in0000644002504400250440000000334213543334751016420 0ustar00dewhurstdewhurst00000000000000 'Cd' : spsymb 'cadmium' : spname -48.0000 : spzn 204912.7175 : spmass 0.288675E-06 2.6000 41.8471 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.3934 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4270 0 T elk-6.3.2/species/PaxHeaders.21352/Ce.in0000644000000000000000000000013213543334751014350 xustar0030 mtime=1569569257.364633811 30 atime=1569569257.363633811 30 ctime=1569569257.364633811 elk-6.3.2/species/Ce.in0000644002504400250440000000374613543334751016431 0ustar00dewhurstdewhurst00000000000000 'Ce' : spsymb 'cerium' : spname -58.0000 : spzn 255415.8429 : spmass 0.262613E-06 2.8000 75.2635 700 : rminsp, rmt, rmaxsp, nrmt 19 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 2.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.3797 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7361 0 T elk-6.3.2/species/PaxHeaders.21352/Cf.in0000644000000000000000000000013213543334751014351 xustar0030 mtime=1569569257.370633807 30 atime=1569569257.369633808 30 ctime=1569569257.370633807 elk-6.3.2/species/Cf.in0000644002504400250440000000453213543334751016424 0ustar00dewhurstdewhurst00000000000000 'Cf' : spsymb 'californium' : spname -98.0000 : spzn 457545.0097 : spmass 0.202031E-06 3.0000 52.0569 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 4.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1183 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0620 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7850 0 T elk-6.3.2/species/PaxHeaders.21352/C.in0000644000000000000000000000013213543334751014203 xustar0030 mtime=1569569257.375633804 30 atime=1569569257.374633804 30 ctime=1569569257.375633804 elk-6.3.2/species/C.in0000644002504400250440000000220613543334751016252 0ustar00dewhurstdewhurst00000000000000 'C' : spsymb 'carbon' : spname -6.00000 : spzn 21894.16672 : spmass 0.816497E-06 1.8000 39.9481 300 : rminsp, rmt, rmaxsp, nrmt 4 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 2 1 2 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5012 0 T elk-6.3.2/species/PaxHeaders.21352/Cl.in0000644000000000000000000000013213543334751014357 xustar0030 mtime=1569569257.380633801 30 atime=1569569257.379633801 30 ctime=1569569257.380633801 elk-6.3.2/species/Cl.in0000644002504400250440000000233213543334751016426 0ustar00dewhurstdewhurst00000000000000 'Cl' : spsymb 'chlorine' : spname -17.0000 : spzn 64626.86545 : spmass 0.485071E-06 2.2000 33.0920 400 : rminsp, rmt, rmaxsp, nrmt 7 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 3.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7601 0 T elk-6.3.2/species/PaxHeaders.21352/Cm.in0000644000000000000000000000013213543334751014360 xustar0030 mtime=1569569257.385633797 30 atime=1569569257.384633798 30 ctime=1569569257.385633797 elk-6.3.2/species/Cm.in0000644002504400250440000000456613543334751016442 0ustar00dewhurstdewhurst00000000000000 'Cm' : spsymb 'curium' : spname -96.0000 : spzn 450253.4557 : spmass 0.204124E-06 3.0000 55.3054 800 : rminsp, rmt, rmaxsp, nrmt 28 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 3.00000 F 5 3 4 4.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 1.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2184 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0481 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8489 0 T elk-6.3.2/species/PaxHeaders.21352/Co.in0000644000000000000000000000013213543334751014362 xustar0030 mtime=1569569257.390633794 30 atime=1569569257.389633795 30 ctime=1569569257.390633794 elk-6.3.2/species/Co.in0000644002504400250440000000312613543334751016433 0ustar00dewhurstdewhurst00000000000000 'Co' : spsymb 'cobalt' : spname -27.0000 : spzn 107428.6517 : spmass 0.384900E-06 2.4000 40.1486 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 3.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.3834 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3072 0 T elk-6.3.2/species/PaxHeaders.21352/Cr.in0000644000000000000000000000013213543334751014365 xustar0030 mtime=1569569257.395633791 30 atime=1569569257.394633792 30 ctime=1569569257.395633791 elk-6.3.2/species/Cr.in0000644002504400250440000000335213543334751016437 0ustar00dewhurstdewhurst00000000000000 'Cr' : spsymb 'chromium' : spname -24.0000 : spzn 94783.09194 : spmass 0.408248E-06 2.4000 51.1100 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 3.00000 F 3 2 3 2.00000 F 4 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.7020 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6530 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1134 0 T elk-6.3.2/species/PaxHeaders.21352/Cs.in0000644000000000000000000000013213543334751014366 xustar0030 mtime=1569569257.401633787 30 atime=1569569257.400633788 30 ctime=1569569257.401633787 elk-6.3.2/species/Cs.in0000644002504400250440000000371213543334751016440 0ustar00dewhurstdewhurst00000000000000 'Cs' : spsymb 'caesium' : spname -55.0000 : spzn 242271.8144 : spmass 0.269680E-06 2.8000 68.3104 700 : rminsp, rmt, rmaxsp, nrmt 18 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.6912 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9872 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4810 0 T elk-6.3.2/species/PaxHeaders.21352/Cu.in0000644000000000000000000000013213543334751014370 xustar0030 mtime=1569569257.406633784 30 atime=1569569257.405633785 30 ctime=1569569257.406633784 elk-6.3.2/species/Cu.in0000644002504400250440000000312613543334751016441 0ustar00dewhurstdewhurst00000000000000 'Cu' : spsymb 'copper' : spname -29.0000 : spzn 115837.2717 : spmass 0.371391E-06 2.4000 42.9740 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.6152 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1918 0 T elk-6.3.2/species/PaxHeaders.21352/Dy.in0000644000000000000000000000013213543334751014375 xustar0030 mtime=1569569257.411633781 30 atime=1569569257.410633781 30 ctime=1569569257.411633781 elk-6.3.2/species/Dy.in0000644002504400250440000000422613543334751016450 0ustar00dewhurstdewhurst00000000000000 'Dy' : spsymb 'dysprosium' : spname -66.0000 : spzn 296219.3788 : spmass 0.246183E-06 2.8000 48.9249 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 4.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1037 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7987 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8849 0 T elk-6.3.2/species/PaxHeaders.21352/elk.in0000644000000000000000000000013213543334751014574 xustar0030 mtime=1569569257.418633776 30 atime=1569569257.415633778 30 ctime=1569569257.418633776 elk-6.3.2/species/elk.in0000644002504400250440000006662313543334751016660 0ustar00dewhurstdewhurst00000000000000 ! This is a special input file for Elk which generates the default species ! files. No task is required: the code generates the file as soon as it ! encounters a 'species' block. Note the masses are the 'standard atomic weight' ! and are in relative atomic mass units (i.e. multiples of 1/12 times the mass ! of carbon-12); taken from J. S. Coursey, D. J. Schwab, and R. A. Dragoset ! (2005), Atomic Weights and Isotopic Compositions (version 2.4.1). species 1 : atomic number 'H' 'hydrogen' : symbol, name 1.00794 : standard atomic weight (units of 1/12 carbon-12) 1.4 : muffin-tin radius 1 : number of occupied states 1 0 1 1 : n, l, k, occupancy for each state species 2 'He' 'helium' 4.002602 1.4 1 1 0 1 2 species 3 'Li' 'lithium' 6.941 1.8 2 1 0 1 2 2 0 1 1 species 4 'Be' 'beryllium' 9.012182 1.8 2 1 0 1 2 2 0 1 2 species 5 'B' 'boron' 10.811 1.8 3 1 0 1 2 2 0 1 2 2 1 1 1 species 6 'C' 'carbon' 12.0107 1.8 4 1 0 1 2 2 0 1 2 2 1 1 1 2 1 2 1 species 7 'N' 'nitrogen' 14.0067 1.8 4 1 0 1 2 2 0 1 2 2 1 1 1 2 1 2 2 species 8 'O' 'oxygen' 15.9994 1.8 4 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 2 species 9 'F' 'fluorine' 18.9984032 2.0 4 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 3 species 10 'Ne' 'neon' 20.1797 1.6 4 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 species 11 'Na' 'sodium' 22.989770 2.2 5 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 1 species 12 'Mg' 'magnesium' 24.3050 2.2 5 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 species 13 'Al' 'aluminium' 26.981538 2.2 6 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 1 species 14 'Si' 'silicon' 28.0855 2.2 7 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 1 3 1 2 1 species 15 'P' 'phosphorus' 30.973761 2.2 7 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 1 3 1 2 2 species 16 'S' 'sulphur' 32.065 2.2 7 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 2 species 17 'Cl' 'chlorine' 35.453 2.2 7 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 3 species 18 'Ar' 'argon' 39.948 2.0 7 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 species 19 'K' 'potassium' 39.0983 2.4 8 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 4 0 1 1 species 20 'Ca' 'calcium' 40.078 2.4 8 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 4 0 1 2 species 21 'Sc' 'scandium' 44.955910 2.4 9 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 1 4 0 1 2 species 22 'Ti' 'titanium' 47.867 2.4 9 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 2 4 0 1 2 species 23 'V' 'vanadium' 50.9415 2.4 9 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 3 4 0 1 2 species 24 'Cr' 'chromium' 51.9961 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 3 3 2 3 2 4 0 1 1 species 25 'Mn' 'manganese' 54.938049 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 3 3 2 3 2 4 0 1 2 species 26 'Fe' 'iron' 55.845 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 2 4 0 1 2 species 27 'Co' 'cobalt' 58.933200 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 3 4 0 1 2 species 28 'Ni' 'nickel' 58.6934 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 4 4 0 1 2 species 29 'Cu' 'copper' 63.546 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 1 species 30 'Zn' 'zinc' 65.409 2.4 10 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 species 31 'Ga' 'gallium' 69.723 2.4 11 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 1 species 32 'Ge' 'germanium' 72.64 2.4 12 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 1 4 1 2 1 species 33 'As' 'arsenic' 74.92160 2.4 12 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 1 4 1 2 2 species 34 'Se' 'selenium' 78.96 2.4 12 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 2 species 35 'Br' 'bromine' 79.904 2.4 12 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 3 species 36 'Kr' 'krypton' 83.798 2.2 12 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 species 37 'Rb' 'rubidium' 85.4678 2.6 13 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 5 0 1 1 species 38 'Sr' 'strontium' 87.62 2.6 13 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 5 0 1 2 species 39 'Y' 'yttrium' 88.90585 2.6 14 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 1 5 0 1 2 species 40 'Zr' 'zirconium' 91.224 2.6 14 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 2 5 0 1 2 species 41 'Nb' 'niobium' 92.90638 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 3 4 2 3 1 5 0 1 1 species 42 'Mo' 'molybdenum' 95.94 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 3 4 2 3 2 5 0 1 1 species 43 'Tc' 'technetium' 98.0 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 2 5 0 1 1 species 44 'Ru' 'ruthenium' 101.07 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 3 5 0 1 1 species 45 'Rh' 'rhodium' 102.90550 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 4 5 0 1 1 species 46 'Pd' 'palladium' 106.42 2.6 14 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 species 47 'Ag' 'silver' 107.8682 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 1 species 48 'Cd' 'cadmium' 112.411 2.6 15 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 species 49 'In' 'indium' 114.818 2.6 16 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 1 species 50 'Sn' 'tin' 118.710 2.6 17 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 1 5 1 2 1 species 51 'Sb' 'antimony' 121.760 2.6 17 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 1 5 1 2 2 species 52 'Te' 'tellurium' 127.60 2.6 17 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 2 5 1 2 2 species 53 'I' 'iodine' 126.90447 2.6 17 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 2 5 1 2 3 species 54 'Xe' 'xenon' 131.293 2.4 17 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 2 5 1 2 4 species 55 'Cs' 'caesium' 132.90545 2.8 18 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 1 species 56 'Ba' 'barium' 137.327 2.8 18 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 57 'La' 'lanthanum' 138.9055 2.8 19 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 1 6 0 1 2 species 58 'Ce' 'cerium' 140.116 2.8 19 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 2 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 59 'Pr' 'praseodymium' 140.90765 2.8 19 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 3 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 60 'Nd' 'neodymium' 144.24 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 3 4 3 4 1 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 61 'Pm' 'promethium' 145.0 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 3 4 3 4 2 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 62 'Sm' 'samarium' 150.36 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 3 4 3 4 3 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 63 'Eu' 'europium' 151.964 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 3 4 3 4 4 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 64 'Gd' 'gadolinium' 157.25 2.8 21 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 3 4 3 4 4 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 1 6 0 1 2 species 65 'Tb' 'terbium' 158.92534 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 5 4 3 4 4 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 66 'Dy' 'dysprosium' 162.500 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 4 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 67 'Ho' 'holmium' 164.93032 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 5 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 68 'Er' 'erbium' 167.259 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 6 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 69 'Tm' 'thulium' 168.93421 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 7 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 70 'Yb' 'ytterbium' 173.04 2.8 20 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 6 0 1 2 species 71 'Lu' 'lutetium' 174.967 2.8 21 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 1 6 0 1 2 species 72 'Hf' 'hafnium' 178.49 2.8 21 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 2 6 0 1 2 species 73 'Ta' 'tantalum' 180.9479 2.8 21 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 3 6 0 1 2 species 74 'W' 'tungsten' 183.84 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 3 5 2 3 1 6 0 1 2 species 75 'Re' 'rhenium' 186.207 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 3 5 2 3 2 6 0 1 2 species 76 'Os' 'osmium' 190.23 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 2 6 0 1 2 species 77 'Ir' 'iridium' 192.217 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 3 6 0 1 2 species 78 'Pt' 'platinum' 195.078 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 5 6 0 1 1 species 79 'Au' 'gold' 196.96655 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 1 species 80 'Hg' 'mercury' 200.59 2.8 22 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 species 81 'Tl' 'thallium' 204.3833 2.8 23 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 1 species 82 'Pb' 'lead' 207.2 2.8 24 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 1 6 1 2 1 species 83 'Bi' 'bismuth' 208.98038 2.8 24 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 1 6 1 2 2 species 84 'Po' 'polonium' 209.0 2.8 24 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 2 species 85 'At' 'astatine' 210.0 2.8 24 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 3 species 86 'Rn' 'radon' 222.0 2.6 24 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 4 species 87 'Fr' 'francium' 223.0 3.0 25 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 1 species 88 'Ra' 'radium' 226.0 3.0 25 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 89 'Ac' 'actinium' 227.0 3.0 26 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 1 7 0 1 2 species 90 'Th' 'thorium' 232.0381 3.0 26 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 2 7 0 1 2 species 91 'Pa' 'protactinium' 231.03588 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 2 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 1 7 0 1 2 species 92 'U' 'uranium' 238.02891 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 3 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 1 7 0 1 2 species 93 'Np' 'neptunium' 237.0 3.0 28 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 3 5 3 4 1 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 1 7 0 1 2 species 94 'Pu' 'plutonium' 244.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 3 5 3 4 3 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 95 'Am' 'americium' 243.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 3 5 3 4 4 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 96 'Cm' 'curium' 247.0 3.0 28 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 3 5 3 4 4 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 1 7 0 1 2 species 97 'Bk' 'berkelium' 247.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 5 5 3 4 4 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 98 'Cf' 'californium' 251.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 4 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 99 'Es' 'einsteinium' 252.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 5 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 100 'Fm' 'fermium' 257.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 6 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 101 'Md' 'mendelevium' 258.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 7 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 102 'No' 'nobelium' 259.0 3.0 27 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 8 6 0 1 2 6 1 1 2 6 1 2 4 7 0 1 2 species 103 'Lr' 'lawrencium' 262.0 3.0 28 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 8 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 1 7 0 1 2 species 104 'Rf' 'rutherfordium' 261.0 3.0 28 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 3 2 2 4 3 2 3 6 4 0 1 2 4 1 1 2 4 1 2 4 4 2 2 4 4 2 3 6 4 3 3 6 4 3 4 8 5 0 1 2 5 1 1 2 5 1 2 4 5 2 2 4 5 2 3 6 5 3 3 6 5 3 4 8 6 0 1 2 6 1 1 2 6 1 2 4 6 2 2 2 7 0 1 2 elk-6.3.2/species/PaxHeaders.21352/Er.in0000644000000000000000000000013213543334751014367 xustar0030 mtime=1569569257.423633773 30 atime=1569569257.422633774 30 ctime=1569569257.423633773 elk-6.3.2/species/Er.in0000644002504400250440000000422613543334751016442 0ustar00dewhurstdewhurst00000000000000 'Er' : spsymb 'erbium' : spname -68.0000 : spzn 304894.5051 : spmass 0.242536E-06 2.8000 49.0284 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 6.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1037 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.9077 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9177 0 T elk-6.3.2/species/PaxHeaders.21352/Es.in0000644000000000000000000000013013543334751014366 xustar0029 mtime=1569569257.42863377 30 atime=1569569257.427633771 29 ctime=1569569257.42863377 elk-6.3.2/species/Es.in0000644002504400250440000000453213543334751016443 0ustar00dewhurstdewhurst00000000000000 'Es' : spsymb 'einsteinium' : spname -99.0000 : spzn 459367.8982 : spmass 0.201008E-06 3.0000 51.0277 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 5.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1339 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.1315 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7952 0 T elk-6.3.2/species/PaxHeaders.21352/Eu.in0000644000000000000000000000013213543334751014372 xustar0030 mtime=1569569257.433633767 30 atime=1569569257.432633767 30 ctime=1569569257.433633767 elk-6.3.2/species/Eu.in0000644002504400250440000000422613543334751016445 0ustar00dewhurstdewhurst00000000000000 'Eu' : spsymb 'europium' : spname -63.0000 : spzn 277013.4257 : spmass 0.251976E-06 2.8000 52.2803 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 3.00000 F 4 3 4 4.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0972 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6436 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8355 0 T elk-6.3.2/species/PaxHeaders.21352/Fe.in0000644000000000000000000000013213543334751014353 xustar0030 mtime=1569569257.438633764 30 atime=1569569257.437633764 30 ctime=1569569257.438633764 elk-6.3.2/species/Fe.in0000644002504400250440000000335213543334751016425 0ustar00dewhurstdewhurst00000000000000 'Fe' : spsymb 'iron' : spname -26.0000 : spzn 101799.2074 : spmass 0.392232E-06 2.4000 42.6274 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 2.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.4344 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.1817 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2816 0 T elk-6.3.2/species/PaxHeaders.21352/F.in0000644000000000000000000000013013543334751014204 xustar0029 mtime=1569569257.44363376 30 atime=1569569257.442633761 29 ctime=1569569257.44363376 elk-6.3.2/species/F.in0000644002504400250440000000243213543334751016256 0ustar00dewhurstdewhurst00000000000000 'F' : spsymb 'fluorine' : spname -9.00000 : spzn 34631.97042 : spmass 0.666667E-06 2.0000 27.0542 300 : rminsp, rmt, rmaxsp, nrmt 4 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 3.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0894 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4142 0 T elk-6.3.2/species/PaxHeaders.21352/Fm.in0000644000000000000000000000013213543334751014363 xustar0030 mtime=1569569257.448633757 30 atime=1569569257.447633758 30 ctime=1569569257.448633757 elk-6.3.2/species/Fm.in0000644002504400250440000000453213543334751016436 0ustar00dewhurstdewhurst00000000000000 'Fm' : spsymb 'fermium' : spname -100.000 : spzn 468482.3406 : spmass 0.200000E-06 3.0000 55.4667 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1486 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.2021 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8046 0 T elk-6.3.2/species/PaxHeaders.21352/Fr.in0000644000000000000000000000013213543334751014370 xustar0030 mtime=1569569257.453633754 30 atime=1569569257.452633755 30 ctime=1569569257.453633754 elk-6.3.2/species/Fr.in0000644002504400250440000000421613543334751016442 0ustar00dewhurstdewhurst00000000000000 'Fr' : spsymb 'francium' : spname -87.0000 : spzn 406504.1321 : spmass 0.214423E-06 3.0000 70.3136 800 : rminsp, rmt, rmaxsp, nrmt 25 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0328 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0471 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4089 0 T elk-6.3.2/species/PaxHeaders.21352/Ga.in0000644000000000000000000000013213543334751014350 xustar0030 mtime=1569569257.458633751 30 atime=1569569257.457633751 30 ctime=1569569257.458633751 elk-6.3.2/species/Ga.in0000644002504400250440000000273613543334751016427 0ustar00dewhurstdewhurst00000000000000 'Ga' : spsymb 'gallium' : spname -31.0000 : spzn 127097.2538 : spmass 0.359211E-06 2.4000 55.5610 500 : rminsp, rmt, rmaxsp, nrmt 11 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 4 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7036 0 T elk-6.3.2/species/PaxHeaders.21352/Gd.in0000644000000000000000000000013213543334751014353 xustar0030 mtime=1569569257.463633748 30 atime=1569569257.462633748 30 ctime=1569569257.463633748 elk-6.3.2/species/Gd.in0000644002504400250440000000426213543334751016426 0ustar00dewhurstdewhurst00000000000000 'Gd' : spsymb 'gadolinium' : spname -64.0000 : spzn 286649.2142 : spmass 0.250000E-06 2.8000 51.1390 700 : rminsp, rmt, rmaxsp, nrmt 21 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 3.00000 F 4 3 4 4.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 1.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3108 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8262 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9546 0 T elk-6.3.2/species/PaxHeaders.21352/Ge.in0000644000000000000000000000013213543334751014354 xustar0030 mtime=1569569257.468633744 30 atime=1569569257.467633745 30 ctime=1569569257.468633744 elk-6.3.2/species/Ge.in0000644002504400250440000000321613543334751016425 0ustar00dewhurstdewhurst00000000000000 'Ge' : spsymb 'germanium' : spname -32.0000 : spzn 132414.6195 : spmass 0.353553E-06 2.4000 46.1060 500 : rminsp, rmt, rmaxsp, nrmt 12 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 4 1 1 1.00000 F 4 1 2 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0759 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4380 0 T elk-6.3.2/species/PaxHeaders.21352/He.in0000644000000000000000000000013213543334751014355 xustar0030 mtime=1569569257.473633741 30 atime=1569569257.472633742 30 ctime=1569569257.473633741 elk-6.3.2/species/He.in0000644002504400250440000000206213543334751016424 0ustar00dewhurstdewhurst00000000000000 'He' : spsymb 'helium' : spname -2.00000 : spzn 7296.297095 : spmass 0.141421E-05 1.4000 24.1776 200 : rminsp, rmt, rmaxsp, nrmt 1 : nstsp 1 0 1 2.00000 F : nsp, lsp, ksp, occsp, spcore 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5703 0 T elk-6.3.2/species/PaxHeaders.21352/Hf.in0000644000000000000000000000013213543334751014356 xustar0030 mtime=1569569257.478633738 30 atime=1569569257.477633739 30 ctime=1569569257.478633738 elk-6.3.2/species/Hf.in0000644002504400250440000000426213543334751016431 0ustar00dewhurstdewhurst00000000000000 'Hf' : spsymb 'hafnium' : spname -72.0000 : spzn 325367.3656 : spmass 0.235702E-06 2.8000 49.2272 700 : rminsp, rmt, rmaxsp, nrmt 21 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 2.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5852 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.4529 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2221 0 T elk-6.3.2/species/PaxHeaders.21352/Hg.in0000644000000000000000000000013213543334751014357 xustar0030 mtime=1569569257.483633735 30 atime=1569569257.482633735 30 ctime=1569569257.483633735 elk-6.3.2/species/Hg.in0000644002504400250440000000364613543334751016437 0ustar00dewhurstdewhurst00000000000000 'Hg' : spsymb 'mercury' : spname -80.0000 : spzn 365653.2012 : spmass 0.223607E-06 2.8000 37.4626 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.2710 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3442 0 T elk-6.3.2/species/PaxHeaders.21352/H.in0000644000000000000000000000013213543334751014210 xustar0030 mtime=1569569257.488633732 30 atime=1569569257.487633732 30 ctime=1569569257.488633732 elk-6.3.2/species/H.in0000644002504400250440000000163613543334751016265 0ustar00dewhurstdewhurst00000000000000 'H' : spsymb 'hydrogen' : spname -1.00000 : spzn 1837.362219 : spmass 0.200000E-05 1.4000 36.6488 200 : rminsp, rmt, rmaxsp, nrmt 1 : nstsp 1 0 1 1.00000 F : nsp, lsp, ksp, occsp, spcore 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 2 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F elk-6.3.2/species/PaxHeaders.21352/Ho.in0000644000000000000000000000013213543334751014367 xustar0030 mtime=1569569257.493633728 30 atime=1569569257.492633729 30 ctime=1569569257.493633728 elk-6.3.2/species/Ho.in0000644002504400250440000000422613543334751016442 0ustar00dewhurstdewhurst00000000000000 'Ho' : spsymb 'holmium' : spname -67.0000 : spzn 300649.5811 : spmass 0.244339E-06 2.8000 51.3086 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 5.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1044 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8527 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9014 0 T elk-6.3.2/species/PaxHeaders.21352/I.in0000644000000000000000000000013213543334751014211 xustar0030 mtime=1569569257.498633725 30 atime=1569569257.497633726 30 ctime=1569569257.498633725 elk-6.3.2/species/I.in0000644002504400250440000000343213543334751016262 0ustar00dewhurstdewhurst00000000000000 'I' : spsymb 'iodine' : spname -53.0000 : spzn 231332.6970 : spmass 0.274721E-06 2.6000 41.0205 600 : rminsp, rmt, rmaxsp, nrmt 17 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 3.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8184 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6456 0 T elk-6.3.2/species/PaxHeaders.21352/In.in0000644000000000000000000000013213543334751014367 xustar0030 mtime=1569569257.503633722 30 atime=1569569257.502633723 30 ctime=1569569257.503633722 elk-6.3.2/species/In.in0000644002504400250440000000337613543334751016447 0ustar00dewhurstdewhurst00000000000000 'In' : spsymb 'indium' : spname -49.0000 : spzn 209300.4100 : spmass 0.285714E-06 2.6000 56.2447 600 : rminsp, rmt, rmaxsp, nrmt 16 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.7840 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6687 0 T elk-6.3.2/species/PaxHeaders.21352/Ir.in0000644000000000000000000000013213543334751014373 xustar0030 mtime=1569569257.508633719 30 atime=1569569257.507633719 30 ctime=1569569257.508633719 elk-6.3.2/species/Ir.in0000644002504400250440000000431613543334751016446 0ustar00dewhurstdewhurst00000000000000 'Ir' : spsymb 'iridium' : spname -77.0000 : spzn 350390.1559 : spmass 0.227921E-06 2.8000 41.0330 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 T 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 4.00000 F 5 2 3 3.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.2294 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8716 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2478 0 T elk-6.3.2/species/PaxHeaders.21352/K.in0000644000000000000000000000013213543334751014213 xustar0030 mtime=1569569257.513633716 30 atime=1569569257.512633716 30 ctime=1569569257.513633716 elk-6.3.2/species/K.in0000644002504400250440000000261213543334751016263 0ustar00dewhurstdewhurst00000000000000 'K' : spsymb 'potassium' : spname -19.0000 : spzn 71271.84084 : spmass 0.458831E-06 2.4000 62.3191 500 : rminsp, rmt, rmaxsp, nrmt 8 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2928 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6889 0 T elk-6.3.2/species/PaxHeaders.21352/Kr.in0000644000000000000000000000013213543334751014375 xustar0030 mtime=1569569257.518633712 30 atime=1569569257.517633713 30 ctime=1569569257.518633712 elk-6.3.2/species/Kr.in0000644002504400250440000000321613543334751016446 0ustar00dewhurstdewhurst00000000000000 'Kr' : spsymb 'krypton' : spname -36.0000 : spzn 152754.4092 : spmass 0.333333E-06 2.2000 31.7038 500 : rminsp, rmt, rmaxsp, nrmt 12 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.9818 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8532 0 T elk-6.3.2/species/PaxHeaders.21352/La.in0000644000000000000000000000013113543334751014354 xustar0030 mtime=1569569257.523633709 29 atime=1569569257.52263371 30 ctime=1569569257.523633709 elk-6.3.2/species/La.in0000644002504400250440000000352213543334751016426 0ustar00dewhurstdewhurst00000000000000 'La' : spsymb 'lanthanum' : spname -57.0000 : spzn 253209.2364 : spmass 0.264906E-06 2.8000 50.7129 700 : rminsp, rmt, rmaxsp, nrmt 19 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 1.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4321 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7953 0 T elk-6.3.2/species/PaxHeaders.21352/Li.in0000644000000000000000000000013213543334751014365 xustar0030 mtime=1569569257.528633706 30 atime=1569569257.527633707 30 ctime=1569569257.528633706 elk-6.3.2/species/Li.in0000644002504400250440000000211613543334751016434 0ustar00dewhurstdewhurst00000000000000 'Li' : spsymb 'lithium' : spname -3.00000 : spzn 12652.66897 : spmass 0.115470E-05 1.8000 57.7730 300 : rminsp, rmt, rmaxsp, nrmt 2 : nstsp 1 0 1 2.00000 F : nsp, lsp, ksp, occsp, spcore 2 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8784 0 T elk-6.3.2/species/PaxHeaders.21352/Lr.in0000644000000000000000000000013213543334751014376 xustar0030 mtime=1569569257.533633703 30 atime=1569569257.532633703 30 ctime=1569569257.533633703 elk-6.3.2/species/Lr.in0000644002504400250440000000456613543334751016460 0ustar00dewhurstdewhurst00000000000000 'Lr' : spsymb 'lawrencium' : spname -103.000 : spzn 477596.7830 : spmass 0.197066E-06 3.0000 68.3662 800 : rminsp, rmt, rmaxsp, nrmt 28 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 8.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 1.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3668 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5853 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9447 0 T elk-6.3.2/species/PaxHeaders.21352/Lu.in0000644000000000000000000000012413543334751014402 xustar0028 mtime=1569569257.5386337 28 atime=1569569257.5376337 28 ctime=1569569257.5386337 elk-6.3.2/species/Lu.in0000644002504400250440000000426213543334751016454 0ustar00dewhurstdewhurst00000000000000 'Lu' : spsymb 'lutetium' : spname -71.0000 : spzn 318945.3295 : spmass 0.237356E-06 2.8000 60.6496 700 : rminsp, rmt, rmaxsp, nrmt 21 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 1.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3291 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.2383 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0908 0 T elk-6.3.2/species/PaxHeaders.21352/Md.in0000644000000000000000000000013213543334751014361 xustar0030 mtime=1569569257.543633696 30 atime=1569569257.542633697 30 ctime=1569569257.543633696 elk-6.3.2/species/Md.in0000644002504400250440000000453213543334751016434 0ustar00dewhurstdewhurst00000000000000 'Md' : spsymb 'mendelevium' : spname -101.000 : spzn 470305.2291 : spmass 0.199007E-06 3.0000 49.0271 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 7.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1623 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.2742 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8134 0 T elk-6.3.2/species/PaxHeaders.21352/Mg.in0000644000000000000000000000013213543334751014364 xustar0030 mtime=1569569257.548633693 30 atime=1569569257.547633694 30 ctime=1569569257.548633693 elk-6.3.2/species/Mg.in0000644002504400250440000000246613543334751016443 0ustar00dewhurstdewhurst00000000000000 'Mg' : spsymb 'magnesium' : spname -12.0000 : spzn 44305.30462 : spmass 0.577350E-06 2.2000 45.4518 400 : rminsp, rmt, rmaxsp, nrmt 5 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.9139 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7134 0 T elk-6.3.2/species/PaxHeaders.21352/Mn.in0000644000000000000000000000013013543334751014371 xustar0029 mtime=1569569257.55363369 30 atime=1569569257.552633691 29 ctime=1569569257.55363369 elk-6.3.2/species/Mn.in0000644002504400250440000000335213543334751016445 0ustar00dewhurstdewhurst00000000000000 'Mn' : spsymb 'manganese' : spname -25.0000 : spzn 100145.9369 : spmass 0.400000E-06 2.4000 41.1948 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 3.00000 F 3 2 3 2.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.1372 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.9857 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2553 0 T elk-6.3.2/species/PaxHeaders.21352/Mo.in0000644000000000000000000000013213543334751014374 xustar0030 mtime=1569569257.558633687 30 atime=1569569257.557633688 30 ctime=1569569257.558633687 elk-6.3.2/species/Mo.in0000644002504400250440000000356613543334751016455 0ustar00dewhurstdewhurst00000000000000 'Mo' : spsymb 'molybdenum' : spname -42.0000 : spzn 174887.9212 : spmass 0.308607E-06 2.6000 48.6428 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 3.00000 F 4 2 3 2.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.3643 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.3863 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1404 0 T elk-6.3.2/species/PaxHeaders.21352/Na.in0000644000000000000000000000013213543334751014357 xustar0030 mtime=1569569257.563633684 30 atime=1569569257.562633684 30 ctime=1569569257.563633684 elk-6.3.2/species/Na.in0000644002504400250440000000246613543334751016436 0ustar00dewhurstdewhurst00000000000000 'Na' : spsymb 'sodium' : spname -11.0000 : spzn 41907.78700 : spmass 0.603023E-06 2.2000 56.6436 400 : rminsp, rmt, rmaxsp, nrmt 5 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0701 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0570 0 T elk-6.3.2/species/PaxHeaders.21352/Nb.in0000644000000000000000000000013213543334751014360 xustar0030 mtime=1569569257.568633681 30 atime=1569569257.567633681 30 ctime=1569569257.568633681 elk-6.3.2/species/Nb.in0000644002504400250440000000356613543334751016441 0ustar00dewhurstdewhurst00000000000000 'Nb' : spsymb 'niobium' : spname -41.0000 : spzn 169357.9703 : spmass 0.312348E-06 2.6000 49.8649 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 3.00000 F 4 2 3 1.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.1446 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2440 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1141 0 T elk-6.3.2/species/PaxHeaders.21352/Nd.in0000644000000000000000000000013213543334751014362 xustar0030 mtime=1569569257.573633677 30 atime=1569569257.572633678 30 ctime=1569569257.573633677 elk-6.3.2/species/Nd.in0000644002504400250440000000422613543334751016435 0ustar00dewhurstdewhurst00000000000000 'Nd' : spsymb 'neodymium' : spname -60.0000 : spzn 262933.4350 : spmass 0.258199E-06 2.8000 57.1546 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 3.00000 F 4 3 4 1.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0620 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4878 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7795 0 T elk-6.3.2/species/PaxHeaders.21352/Ne.in0000644000000000000000000000013213543334751014363 xustar0030 mtime=1569569257.578633674 30 atime=1569569257.577633675 30 ctime=1569569257.578633674 elk-6.3.2/species/Ne.in0000644002504400250440000000243213543334751016433 0ustar00dewhurstdewhurst00000000000000 'Ne' : spsymb 'neon' : spname -10.0000 : spzn 36785.34276 : spmass 0.632456E-06 1.6000 24.5143 300 : rminsp, rmt, rmaxsp, nrmt 4 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 4.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.3272 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4961 0 T elk-6.3.2/species/PaxHeaders.21352/Ni.in0000644000000000000000000000013213543334751014367 xustar0030 mtime=1569569257.583633671 30 atime=1569569257.582633672 30 ctime=1569569257.583633671 elk-6.3.2/species/Ni.in0000644002504400250440000000312613543334751016440 0ustar00dewhurstdewhurst00000000000000 'Ni' : spsymb 'nickel' : spname -28.0000 : spzn 106991.5230 : spmass 0.377964E-06 2.4000 42.8623 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 4.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5905 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3317 0 T elk-6.3.2/species/PaxHeaders.21352/N.in0000644000000000000000000000013213543334751014216 xustar0030 mtime=1569569257.588633668 30 atime=1569569257.587633668 30 ctime=1569569257.588633668 elk-6.3.2/species/N.in0000644002504400250440000000220613543334751016265 0ustar00dewhurstdewhurst00000000000000 'N' : spsymb 'nitrogen' : spname -7.00000 : spzn 25532.65214 : spmass 0.755929E-06 1.8000 34.9411 300 : rminsp, rmt, rmaxsp, nrmt 4 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 1.00000 F 2 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6770 0 T elk-6.3.2/species/PaxHeaders.21352/No.in0000644000000000000000000000013213543334751014375 xustar0030 mtime=1569569257.593633665 30 atime=1569569257.592633665 30 ctime=1569569257.593633665 elk-6.3.2/species/No.in0000644002504400250440000000453213543334751016450 0ustar00dewhurstdewhurst00000000000000 'No' : spsymb 'nobelium' : spname -102.000 : spzn 472128.1176 : spmass 0.198030E-06 3.0000 49.0598 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 8.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1751 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.3481 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8216 0 T elk-6.3.2/species/PaxHeaders.21352/Np.in0000644000000000000000000000013213543334751014376 xustar0030 mtime=1569569257.598633661 30 atime=1569569257.597633662 30 ctime=1569569257.598633661 elk-6.3.2/species/Np.in0000644002504400250440000000456613543334751016460 0ustar00dewhurstdewhurst00000000000000 'Np' : spsymb 'neptunium' : spname -93.0000 : spzn 432024.5709 : spmass 0.207390E-06 3.0000 54.0533 800 : rminsp, rmt, rmaxsp, nrmt 28 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 3.00000 F 5 3 4 1.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 1.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1316 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8240 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7920 0 T elk-6.3.2/species/PaxHeaders.21352/O.in0000644000000000000000000000013213543334751014217 xustar0030 mtime=1569569257.603633658 30 atime=1569569257.602633659 30 ctime=1569569257.603633658 elk-6.3.2/species/O.in0000644002504400250440000000220613543334751016266 0ustar00dewhurstdewhurst00000000000000 'O' : spsymb 'oxygen' : spname -8.00000 : spzn 29165.12202 : spmass 0.707107E-06 1.8000 30.4661 300 : rminsp, rmt, rmaxsp, nrmt 4 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 F 2 1 1 2.00000 F 2 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8728 0 T elk-6.3.2/species/PaxHeaders.21352/Os.in0000644000000000000000000000013213543334751014402 xustar0030 mtime=1569569257.608633655 30 atime=1569569257.607633656 30 ctime=1569569257.608633655 elk-6.3.2/species/Os.in0000644002504400250440000000454213543334751016456 0ustar00dewhurstdewhurst00000000000000 'Os' : spsymb 'osmium' : spname -76.0000 : spzn 346768.0765 : spmass 0.229416E-06 2.8000 47.1620 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 4.00000 F 5 2 3 2.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 8 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8559 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.3540 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7397 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2159 0 T elk-6.3.2/species/PaxHeaders.21352/Pa.in0000644000000000000000000000013213543334751014361 xustar0030 mtime=1569569257.613633652 30 atime=1569569257.612633652 30 ctime=1569569257.613633652 elk-6.3.2/species/Pa.in0000644002504400250440000000430613543334751016433 0ustar00dewhurstdewhurst00000000000000 'Pa' : spsymb 'protactinium' : spname -91.0000 : spzn 421152.6452 : spmass 0.209657E-06 3.0000 62.3511 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 2.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 1.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6682 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7444 0 T elk-6.3.2/species/PaxHeaders.21352/Pb.in0000644000000000000000000000013213543334751014362 xustar0030 mtime=1569569257.618633649 30 atime=1569569257.617633649 30 ctime=1569569257.618633649 elk-6.3.2/species/Pb.in0000644002504400250440000000373613543334751016442 0ustar00dewhurstdewhurst00000000000000 'Pb' : spsymb 'lead' : spname -82.0000 : spzn 377702.4940 : spmass 0.220863E-06 2.8000 53.2955 700 : rminsp, rmt, rmaxsp, nrmt 24 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 1.00000 F 6 1 2 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7322 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4439 0 T elk-6.3.2/species/PaxHeaders.21352/Pd.in0000644000000000000000000000013213543334751014364 xustar0030 mtime=1569569257.623633645 30 atime=1569569257.622633646 30 ctime=1569569257.623633645 elk-6.3.2/species/Pd.in0000644002504400250440000000353213543334751016436 0ustar00dewhurstdewhurst00000000000000 'Pd' : spsymb 'palladium' : spname -46.0000 : spzn 193991.7925 : spmass 0.294884E-06 2.6000 41.5324 500 : rminsp, rmt, rmaxsp, nrmt 14 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 6.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.1380 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8352 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1522 0 T elk-6.3.2/species/PaxHeaders.21352/P.in0000644000000000000000000000013213543334751014220 xustar0030 mtime=1569569257.628633642 30 atime=1569569257.627633643 30 ctime=1569569257.628633642 elk-6.3.2/species/P.in0000644002504400250440000000233213543334751016267 0ustar00dewhurstdewhurst00000000000000 'P' : spsymb 'phosphorus' : spname -15.0000 : spzn 56461.71226 : spmass 0.516398E-06 2.2000 39.7177 400 : rminsp, rmt, rmaxsp, nrmt 7 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 1.00000 F 3 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5151 0 T elk-6.3.2/species/PaxHeaders.21352/Pm.in0000644000000000000000000000013113543334751014374 xustar0030 mtime=1569569257.633633639 29 atime=1569569257.63263364 30 ctime=1569569257.633633639 elk-6.3.2/species/Pm.in0000644002504400250440000000422613543334751016450 0ustar00dewhurstdewhurst00000000000000 'Pm' : spsymb 'promethium' : spname -61.0000 : spzn 264318.8303 : spmass 0.256074E-06 2.8000 52.1574 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 3.00000 F 4 3 4 2.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0768 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.5401 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7991 0 T elk-6.3.2/species/PaxHeaders.21352/Po.in0000644000000000000000000000013213543334751014377 xustar0030 mtime=1569569257.638633636 30 atime=1569569257.637633636 30 ctime=1569569257.638633636 elk-6.3.2/species/Po.in0000644002504400250440000000373613543334751016457 0ustar00dewhurstdewhurst00000000000000 'Po' : spsymb 'polonium' : spname -84.0000 : spzn 380983.6933 : spmass 0.218218E-06 2.8000 43.2445 700 : rminsp, rmt, rmaxsp, nrmt 24 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.1481 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6144 0 T elk-6.3.2/species/PaxHeaders.21352/Pr.in0000644000000000000000000000013213543334751014402 xustar0030 mtime=1569569257.643633633 30 atime=1569569257.642633633 30 ctime=1569569257.643633633 elk-6.3.2/species/Pr.in0000644002504400250440000000374613543334751016463 0ustar00dewhurstdewhurst00000000000000 'Pr' : spsymb 'praseodymium' : spname -59.0000 : spzn 256858.9326 : spmass 0.260378E-06 2.8000 55.7748 700 : rminsp, rmt, rmaxsp, nrmt 19 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 3.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4342 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7585 0 T elk-6.3.2/species/PaxHeaders.21352/Pt.in0000644000000000000000000000012713543334751014410 xustar0029 mtime=1569569257.64863363 29 atime=1569569257.64763363 29 ctime=1569569257.64863363 elk-6.3.2/species/Pt.in0000644002504400250440000000431613543334751016457 0ustar00dewhurstdewhurst00000000000000 'Pt' : spsymb 'platinum' : spname -78.0000 : spzn 355605.4398 : spmass 0.226455E-06 2.8000 40.1191 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 T 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 4.00000 F 5 2 3 5.00000 F 6 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5235 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.9151 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2143 0 T elk-6.3.2/species/PaxHeaders.21352/Pu.in0000644000000000000000000000013213543334751014405 xustar0030 mtime=1569569257.653633626 30 atime=1569569257.652633627 30 ctime=1569569257.653633626 elk-6.3.2/species/Pu.in0000644002504400250440000000453213543334751016460 0ustar00dewhurstdewhurst00000000000000 'Pu' : spsymb 'plutonium' : spname -94.0000 : spzn 444784.7903 : spmass 0.206284E-06 3.0000 57.5498 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 3.00000 F 5 3 4 3.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0579 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7999 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7412 0 T elk-6.3.2/species/PaxHeaders.21352/Ra.in0000644000000000000000000000013213543334751014363 xustar0030 mtime=1569569257.658633623 30 atime=1569569257.657633624 30 ctime=1569569257.658633623 elk-6.3.2/species/Ra.in0000644002504400250440000000421613543334751016435 0ustar00dewhurstdewhurst00000000000000 'Ra' : spsymb 'radium' : spname -88.0000 : spzn 411972.7976 : spmass 0.213201E-06 3.0000 54.9631 800 : rminsp, rmt, rmaxsp, nrmt 25 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.4469 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2846 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5588 0 T elk-6.3.2/species/PaxHeaders.21352/Rb.in0000644000000000000000000000013013543334751014362 xustar0029 mtime=1569569257.66363362 30 atime=1569569257.662633621 29 ctime=1569569257.66363362 elk-6.3.2/species/Rb.in0000644002504400250440000000302613543334751016434 0ustar00dewhurstdewhurst00000000000000 'Rb' : spsymb 'rubidium' : spname -37.0000 : spzn 155798.2684 : spmass 0.328798E-06 2.6000 62.8187 600 : rminsp, rmt, rmaxsp, nrmt 13 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.1744 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5784 0 T elk-6.3.2/species/PaxHeaders.21352/Re.in0000644000000000000000000000013213543334751014367 xustar0030 mtime=1569569257.668633617 30 atime=1569569257.667633617 30 ctime=1569569257.668633617 elk-6.3.2/species/Re.in0000644002504400250440000000454213543334751016443 0ustar00dewhurstdewhurst00000000000000 'Re' : spsymb 'rhenium' : spname -75.0000 : spzn 339434.5961 : spmass 0.230940E-06 2.8000 40.0180 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 3.00000 F 5 2 3 2.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 8 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.5110 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.1270 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6149 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1881 0 T elk-6.3.2/species/PaxHeaders.21352/Rf.in0000644000000000000000000000013213543334751014370 xustar0030 mtime=1569569257.673633614 30 atime=1569569257.672633614 30 ctime=1569569257.673633614 elk-6.3.2/species/Rf.in0000644002504400250440000000456613543334751016452 0ustar00dewhurstdewhurst00000000000000 'Rf' : spsymb 'rutherfordium' : spname -104.000 : spzn 475773.8945 : spmass 0.196116E-06 3.0000 53.3658 800 : rminsp, rmt, rmaxsp, nrmt 28 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 6.00000 F 5 3 4 8.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 2.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5604 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.8179 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0541 0 T elk-6.3.2/species/PaxHeaders.21352/Rh.in0000644000000000000000000000013213543334751014372 xustar0030 mtime=1569569257.677633611 30 atime=1569569257.676633612 30 ctime=1569569257.677633611 elk-6.3.2/species/Rh.in0000644002504400250440000000356613543334751016453 0ustar00dewhurstdewhurst00000000000000 'Rh' : spsymb 'rhodium' : spname -45.0000 : spzn 187585.2510 : spmass 0.298142E-06 2.6000 45.1320 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 4.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.0301 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.8089 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.2190 0 T elk-6.3.2/species/PaxHeaders.21352/Rn.in0000644000000000000000000000013213543334751014400 xustar0030 mtime=1569569257.682633608 30 atime=1569569257.681633608 30 ctime=1569569257.682633608 elk-6.3.2/species/Rn.in0000644002504400250440000000373613543334751016460 0ustar00dewhurstdewhurst00000000000000 'Rn' : spsymb 'radon' : spname -86.0000 : spzn 404681.2436 : spmass 0.215666E-06 2.6000 38.0087 700 : rminsp, rmt, rmaxsp, nrmt 24 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6273 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8085 0 T elk-6.3.2/species/PaxHeaders.21352/Ru.in0000644000000000000000000000013213543334751014407 xustar0030 mtime=1569569257.687633605 30 atime=1569569257.686633605 30 ctime=1569569257.687633605 elk-6.3.2/species/Ru.in0000644002504400250440000000356613543334751016470 0ustar00dewhurstdewhurst00000000000000 'Ru' : spsymb 'ruthenium' : spname -44.0000 : spzn 184239.3392 : spmass 0.301511E-06 2.6000 48.8112 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 3.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.8048 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6670 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1922 0 T elk-6.3.2/species/PaxHeaders.21352/Sb.in0000644000000000000000000000013213543334751014365 xustar0030 mtime=1569569257.692633601 30 atime=1569569257.691633602 30 ctime=1569569257.692633601 elk-6.3.2/species/Sb.in0000644002504400250440000000343213543334751016436 0ustar00dewhurstdewhurst00000000000000 'Sb' : spsymb 'antimony' : spname -51.0000 : spzn 221954.9019 : spmass 0.280056E-06 2.6000 44.3358 600 : rminsp, rmt, rmaxsp, nrmt 17 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 1.00000 F 5 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2137 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.4804 0 T elk-6.3.2/species/PaxHeaders.21352/Sc.in0000644000000000000000000000013213543334751014366 xustar0030 mtime=1569569257.697633598 30 atime=1569569257.696633599 30 ctime=1569569257.697633598 elk-6.3.2/species/Sc.in0000644002504400250440000000307213543334751016437 0ustar00dewhurstdewhurst00000000000000 'Sc' : spsymb 'scandium' : spname -21.0000 : spzn 81949.61066 : spmass 0.436436E-06 2.4000 55.5111 500 : rminsp, rmt, rmaxsp, nrmt 9 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 1.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0100 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.2267 0 T elk-6.3.2/species/PaxHeaders.21352/Se.in0000644000000000000000000000013213543334751014370 xustar0030 mtime=1569569257.702633595 30 atime=1569569257.701633596 30 ctime=1569569257.702633595 elk-6.3.2/species/Se.in0000644002504400250440000000321613543334751016441 0ustar00dewhurstdewhurst00000000000000 'Se' : spsymb 'selenium' : spname -34.0000 : spzn 143935.2748 : spmass 0.342997E-06 2.4000 38.3229 500 : rminsp, rmt, rmaxsp, nrmt 12 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.9444 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6402 0 T elk-6.3.2/species/PaxHeaders.21352/Si.in0000644000000000000000000000013213543334751014374 xustar0030 mtime=1569569257.707633592 30 atime=1569569257.706633592 30 ctime=1569569257.707633592 elk-6.3.2/species/Si.in0000644002504400250440000000210613543334751016442 0ustar00dewhurstdewhurst00000000000000 'Si' : spsymb 'silicon' : spname -14.0000 : spzn 51196.73454 : spmass 0.534522E-06 2.2000 47.8169 400 : rminsp, rmt, rmaxsp, nrmt 7 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 1.00000 F 3 1 2 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 2 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F elk-6.3.2/species/PaxHeaders.21352/S.in0000644000000000000000000000013213543334751014223 xustar0030 mtime=1569569257.711633589 30 atime=1569569257.711633589 30 ctime=1569569257.711633589 elk-6.3.2/species/S.in0000644002504400250440000000233213543334751016272 0ustar00dewhurstdewhurst00000000000000 'S' : spsymb 'sulphur' : spname -16.0000 : spzn 58450.91926 : spmass 0.500000E-06 2.2000 36.9680 400 : rminsp, rmt, rmaxsp, nrmt 7 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 3 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.6346 0 T elk-6.3.2/species/PaxHeaders.21352/Sm.in0000644000000000000000000000013213543334751014400 xustar0030 mtime=1569569257.716633586 30 atime=1569569257.715633587 30 ctime=1569569257.716633586 elk-6.3.2/species/Sm.in0000644002504400250440000000422613543334751016453 0ustar00dewhurstdewhurst00000000000000 'Sm' : spsymb 'samarium' : spname -62.0000 : spzn 274089.5126 : spmass 0.254000E-06 2.8000 52.2193 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 3.00000 F 4 3 4 3.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0883 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.5919 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8177 0 T elk-6.3.2/species/PaxHeaders.21352/Sn.in0000644000000000000000000000013213543334751014401 xustar0030 mtime=1569569257.721633583 30 atime=1569569257.720633584 30 ctime=1569569257.721633583 elk-6.3.2/species/Sn.in0000644002504400250440000000343213543334751016452 0ustar00dewhurstdewhurst00000000000000 'Sn' : spsymb 'tin' : spname -50.0000 : spzn 216395.0920 : spmass 0.282843E-06 2.6000 49.2770 600 : rminsp, rmt, rmaxsp, nrmt 17 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 1.00000 F 5 1 2 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.1993 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9327 0 T elk-6.3.2/species/PaxHeaders.21352/Sr.in0000644000000000000000000000013113543334751014404 xustar0030 mtime=1569569257.727633579 29 atime=1569569257.72663358 30 ctime=1569569257.727633579 elk-6.3.2/species/Sr.in0000644002504400250440000000302613543334751016455 0ustar00dewhurstdewhurst00000000000000 'Sr' : spsymb 'strontium' : spname -38.0000 : spzn 159721.4890 : spmass 0.324443E-06 2.6000 52.2837 600 : rminsp, rmt, rmaxsp, nrmt 13 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 5 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.5031 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8259 0 T elk-6.3.2/species/PaxHeaders.21352/Ta.in0000644000000000000000000000013213543334751014365 xustar0030 mtime=1569569257.732633576 30 atime=1569569257.731633577 30 ctime=1569569257.732633576 elk-6.3.2/species/Ta.in0000644002504400250440000000426213543334751016440 0ustar00dewhurstdewhurst00000000000000 'Ta' : spsymb 'tantalum' : spname -73.0000 : spzn 329847.8433 : spmass 0.234082E-06 2.8000 43.8533 700 : rminsp, rmt, rmaxsp, nrmt 21 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 3.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8655 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.6690 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.3498 0 T elk-6.3.2/species/PaxHeaders.21352/Tb.in0000644000000000000000000000013213543334751014366 xustar0030 mtime=1569569257.736633573 30 atime=1569569257.735633574 30 ctime=1569569257.736633573 elk-6.3.2/species/Tb.in0000644002504400250440000000422613543334751016441 0ustar00dewhurstdewhurst00000000000000 'Tb' : spsymb 'terbium' : spname -65.0000 : spzn 289703.1722 : spmass 0.248069E-06 2.8000 52.3997 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 5.00000 F 4 3 4 4.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1036 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7464 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.8687 0 T elk-6.3.2/species/PaxHeaders.21352/Tc.in0000644000000000000000000000013213543334751014367 xustar0030 mtime=1569569257.742633569 30 atime=1569569257.740633571 30 ctime=1569569257.742633569 elk-6.3.2/species/Tc.in0000644002504400250440000000356613543334751016450 0ustar00dewhurstdewhurst00000000000000 'Tc' : spsymb 'technetium' : spname -43.0000 : spzn 178643.0715 : spmass 0.304997E-06 2.6000 48.7280 600 : rminsp, rmt, rmaxsp, nrmt 15 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 4.00000 F 4 2 3 2.00000 F 5 0 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5825 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.5257 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1656 0 T elk-6.3.2/species/PaxHeaders.21352/Te.in0000644000000000000000000000013213543334751014371 xustar0030 mtime=1569569257.746633567 30 atime=1569569257.745633568 30 ctime=1569569257.746633567 elk-6.3.2/species/Te.in0000644002504400250440000000343213543334751016442 0ustar00dewhurstdewhurst00000000000000 'Te' : spsymb 'tellurium' : spname -52.0000 : spzn 232600.5707 : spmass 0.277350E-06 2.6000 40.9670 600 : rminsp, rmt, rmaxsp, nrmt 17 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.5022 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5594 0 T elk-6.3.2/species/PaxHeaders.21352/Th.in0000644000000000000000000000013213543334751014374 xustar0030 mtime=1569569257.751633564 30 atime=1569569257.750633564 30 ctime=1569569257.751633564 elk-6.3.2/species/Th.in0000644002504400250440000000425213543334751016446 0ustar00dewhurstdewhurst00000000000000 'Th' : spsymb 'thorium' : spname -90.0000 : spzn 422979.5805 : spmass 0.210819E-06 3.0000 51.7499 800 : rminsp, rmt, rmaxsp, nrmt 26 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 2.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.2122 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6772 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7795 0 T elk-6.3.2/species/PaxHeaders.21352/Ti.in0000644000000000000000000000013213543334751014375 xustar0030 mtime=1569569257.756633561 30 atime=1569569257.755633561 30 ctime=1569569257.756633561 elk-6.3.2/species/Ti.in0000644002504400250440000000307213543334751016446 0ustar00dewhurstdewhurst00000000000000 'Ti' : spsymb 'titanium' : spname -22.0000 : spzn 87256.20310 : spmass 0.426401E-06 2.4000 46.2267 500 : rminsp, rmt, rmaxsp, nrmt 9 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 2.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.2872 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4164 0 T elk-6.3.2/species/PaxHeaders.21352/Tl.in0000644000000000000000000000013213543334751014400 xustar0030 mtime=1569569257.761633557 30 atime=1569569257.760633558 30 ctime=1569569257.761633557 elk-6.3.2/species/Tl.in0000644002504400250440000000370213543334751016451 0ustar00dewhurstdewhurst00000000000000 'Tl' : spsymb 'thallium' : spname -81.0000 : spzn 372567.9640 : spmass 0.222222E-06 2.8000 57.1183 700 : rminsp, rmt, rmaxsp, nrmt 23 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 4.00000 F 5 2 3 6.00000 F 6 0 1 2.00000 F 6 1 1 1.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5798 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.5217 0 T elk-6.3.2/species/PaxHeaders.21352/Tm.in0000644000000000000000000000013213543334751014401 xustar0030 mtime=1569569257.766633554 30 atime=1569569257.765633555 30 ctime=1569569257.766633554 elk-6.3.2/species/Tm.in0000644002504400250440000000422613543334751016454 0ustar00dewhurstdewhurst00000000000000 'Tm' : spsymb 'thulium' : spname -69.0000 : spzn 307948.2261 : spmass 0.240772E-06 2.8000 53.8678 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 7.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1016 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.9638 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9340 0 T elk-6.3.2/species/PaxHeaders.21352/U.in0000644000000000000000000000013213543334751014225 xustar0030 mtime=1569569257.771633551 30 atime=1569569257.770633552 30 ctime=1569569257.771633551 elk-6.3.2/species/U.in0000644002504400250440000000430613543334751016277 0ustar00dewhurstdewhurst00000000000000 'U' : spsymb 'uranium' : spname -92.0000 : spzn 433900.1591 : spmass 0.208514E-06 3.0000 56.2869 800 : rminsp, rmt, rmaxsp, nrmt 27 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 T 4 3 4 8.00000 T 5 0 1 2.00000 T 5 1 1 2.00000 T 5 1 2 4.00000 T 5 2 2 4.00000 T 5 2 3 6.00000 T 5 3 3 3.00000 F 6 0 1 2.00000 F 6 1 1 2.00000 F 6 1 2 4.00000 F 6 2 2 1.00000 F 7 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7461 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7688 0 T elk-6.3.2/species/PaxHeaders.21352/V.in0000644000000000000000000000013213543334751014226 xustar0030 mtime=1569569257.776633548 30 atime=1569569257.775633548 30 ctime=1569569257.776633548 elk-6.3.2/species/V.in0000644002504400250440000000307213543334751016277 0ustar00dewhurstdewhurst00000000000000 'V' : spsymb 'vanadium' : spname -23.0000 : spzn 92860.67375 : spmass 0.417029E-06 2.4000 46.3855 500 : rminsp, rmt, rmaxsp, nrmt 9 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 3.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.5646 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.6038 0 T elk-6.3.2/species/PaxHeaders.21352/W.in0000644000000000000000000000013213543334751014227 xustar0030 mtime=1569569257.781633545 30 atime=1569569257.780633545 30 ctime=1569569257.781633545 elk-6.3.2/species/W.in0000644002504400250440000000454213543334751016303 0ustar00dewhurstdewhurst00000000000000 'W' : spsymb 'tungsten' : spname -74.0000 : spzn 335119.8190 : spmass 0.232495E-06 2.8000 47.0748 700 : rminsp, rmt, rmaxsp, nrmt 22 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 5 2 2 3.00000 F 5 2 3 1.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 8 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.1774 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.8962 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.4828 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.1560 0 T elk-6.3.2/species/PaxHeaders.21352/Xe.in0000644000000000000000000000013213543334751014375 xustar0030 mtime=1569569257.786633541 30 atime=1569569257.785633542 30 ctime=1569569257.786633541 elk-6.3.2/species/Xe.in0000644002504400250440000000343213543334751016446 0ustar00dewhurstdewhurst00000000000000 'Xe' : spsymb 'xenon' : spname -54.0000 : spzn 239332.4978 : spmass 0.272166E-06 2.4000 34.6139 600 : rminsp, rmt, rmaxsp, nrmt 17 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 F 4 2 3 6.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.1523 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.7334 0 T elk-6.3.2/species/PaxHeaders.21352/Yb.in0000644000000000000000000000013213543334751014373 xustar0030 mtime=1569569257.791633538 30 atime=1569569257.790633539 30 ctime=1569569257.791633538 elk-6.3.2/species/Yb.in0000644002504400250440000000422613543334751016446 0ustar00dewhurstdewhurst00000000000000 'Yb' : spsymb 'ytterbium' : spname -70.0000 : spzn 315432.6234 : spmass 0.239046E-06 2.8000 49.1291 700 : rminsp, rmt, rmaxsp, nrmt 20 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 T 4 1 1 2.00000 T 4 1 2 4.00000 T 4 2 2 4.00000 T 4 2 3 6.00000 T 4 3 3 6.00000 F 4 3 4 8.00000 F 5 0 1 2.00000 F 5 1 1 2.00000 F 5 1 2 4.00000 F 6 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 7 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 3 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0982 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0212 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.9503 0 T elk-6.3.2/species/PaxHeaders.21352/Y.in0000644000000000000000000000013213543334751014231 xustar0030 mtime=1569569257.796633535 30 atime=1569569257.795633536 30 ctime=1569569257.796633535 elk-6.3.2/species/Y.in0000644002504400250440000000330613543334751016302 0ustar00dewhurstdewhurst00000000000000 'Y' : spsymb 'yttrium' : spname -39.0000 : spzn 162065.4502 : spmass 0.320256E-06 2.6000 53.7982 600 : rminsp, rmt, rmaxsp, nrmt 14 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 1.00000 F 5 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7619 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0082 0 T elk-6.3.2/species/PaxHeaders.21352/Zn.in0000644000000000000000000000013213543334751014410 xustar0030 mtime=1569569257.801633532 30 atime=1569569257.800633532 30 ctime=1569569257.801633532 elk-6.3.2/species/Zn.in0000644002504400250440000000312613543334751016461 0ustar00dewhurstdewhurst00000000000000 'Zn' : spsymb 'zinc' : spname -30.0000 : spzn 119233.3129 : spmass 0.365148E-06 2.4000 39.2020 500 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 F 3 1 2 4.00000 F 3 2 2 4.00000 F 3 2 3 6.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -3.0221 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.3778 0 T elk-6.3.2/species/PaxHeaders.21352/Zr.in0000644000000000000000000000013213543334751014414 xustar0030 mtime=1569569257.806633529 30 atime=1569569257.805633529 30 ctime=1569569257.806633529 elk-6.3.2/species/Zr.in0000644002504400250440000000330613543334751016465 0ustar00dewhurstdewhurst00000000000000 'Zr' : spsymb 'zirconium' : spname -40.0000 : spzn 166291.1791 : spmass 0.316228E-06 2.6000 48.4669 600 : rminsp, rmt, rmaxsp, nrmt 14 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 T 3 1 1 2.00000 T 3 1 2 4.00000 T 3 2 2 4.00000 T 3 2 3 6.00000 T 4 0 1 2.00000 F 4 1 1 2.00000 F 4 1 2 4.00000 F 4 2 2 2.00000 F 5 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -2.0002 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.1708 0 T elk-6.3.2/PaxHeaders.21352/utilities0000644000000000000000000000013213543334751013774 xustar0030 mtime=1569569257.842633506 30 atime=1569569257.818633521 30 ctime=1569569257.842633506 elk-6.3.2/utilities/0000755002504400250440000000000013543334751016120 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/utilities/PaxHeaders.21352/elk-bands0000644000000000000000000000012713543334751015640 xustar0029 mtime=1569569257.82063352 29 atime=1569569257.82063352 29 ctime=1569569257.82063352 elk-6.3.2/utilities/elk-bands/0000755002504400250440000000000013543334751017760 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/utilities/elk-bands/PaxHeaders.21352/elk-bands0000644000000000000000000000013213543334751017474 xustar0030 mtime=1569569257.822633518 30 atime=1569569257.821633519 30 ctime=1569569257.822633518 elk-6.3.2/utilities/elk-bands/elk-bands0000755002504400250440000001572613543334751021561 0ustar00dewhurstdewhurst00000000000000#!/bin/bash # # Copyright (C) 2010 M. G. Blaber # This file is distributed under the terms of the GNU General Public License. # See the file COPYING for license details. # # http://elk.sourceforge.net/ # # Marty's plotting program for elk band structures. # Changelog: # v0.2 - Fixed a bug regarding white space noticed by Kay Dewhurst # # Description: # -Plots the bands from elk, including labels that you have specified in your # elk.in file (see below for details) # -Notes on the necessary files and programs and Usage are given below. # -I recommend adding this script to your "path", a guide is given in the # Installation Notes below. # # A sample plot1d block is given below: # ------------- # plot1d # 3 100 : nvp1d, npp1d # 0.0 0.0 1.0 !G : vlvp1d # 0.5 0.5 1.0 !X # 0.0 0.0 0.0 !G # -------------- # #Some user defineable plot parameters (You may always change the parameters of #individual plots by editing elk-bands.gps) plot_width="15 cm" #For publication, change to 8.5 cm plot_height="10 cm" #For publication, change to 6 - 10 cm plot_font="Times, 18" #For publication, change to 12 border_linewidth="2" band_linewidth="1" #This number is scaled by border_linewidth internally by gnuplot # # # REQUIRED FILES: # elk.in BAND.OUT BANDLINES.OUT # # REQUIRED PROGRAMS: # awk gnuplot # # USAGE: # elk-bands # OR (energies in eV) # elk-bands [min_energy] [max_energy] # eg: elk-bands -5 10 # # INSTALLATION NOTES: # HOW TO ADD elk-bands TO YOUR PATH # -Make a new directory in your home folder named bin: # mkdir /home/username/bin # -Add this new directory to your path by editing your bashrc file, # /home/username/.bashrc # and add the following line: # export PATH=$PATH:/home/username/bin # To update the path variable for the terminal you are currently in, type: # source ~/.bashrc # ########### me="elk-bands" version="0.2" input_file=elk.in band_file=BAND.OUT bandlines_file=BANDLINES.OUT #Output: gps_file=$me.gps eps_file=$me.eps echo "- Welcome to $me version $version" echo "- Use ~ in front of any character in the labels list to make that letter greek!" echo "---------------------------------------------" ######### # Check Dependencies # Error Message dependencies_usage="ERROR - Programs required by $me not found. $me requires the following programs: - awk - gnuplot Your local package manager should have them, alternatively you can grab them from: http://www.gnu.org/software/gawk/ http://www.gnuplot.info/ " # awk check check=$(which awk 2>&1) if [ ! $? -eq 0 ]; then echo "Ahhhhhhhhhhhhhh - No awk found" echo "$dependencies_usage" exit 1 fi # gnuplot check check=$(which gnuplot 2>&1) if [ ! $? -eq 0 ]; then echo "Ahhhhhhhhhhhhhh - No gnuplot found" echo "$dependencies_usage" exit 1 fi echo "- Found awk and gnuplot" ######### # Check for input files # Error message inputfiles_usage="ERROR - Some file required by $me not found. $me requires the following files: $input_file $band_file $bandlines_file" # Check for f in $input_file $band_file $bandlines_file; do if [ ! -f $f ]; then echo "Ooops, can't find $f" echo "$inputfiles_usage" exit 1 fi done echo "- Found $input_file $band_file $bandlines_file" ######### # Check Parameters # Error message usage="Welcome to $me $version Usage (energies in eV): $me [min energy] [max energy] eg: elk-bands -5.5 10.0 " # Check if [ $1 ]; then if [ $2 ]; then min_energy=$1 max_energy=$2 else echo "ERROR - Please provide both energies" exit 1 fi else #no parameters provided min_energy="-15" max_energy="15" fi ######### # Get the labels and check them # Error for when someone forgets the labels in elk.in label_usage="ERROR - Labels not found. All tildes ~ convert the following letter to a greek symbol. $me requires the plot1d block in $input_file to look like: ------------------------ plot1d 7 400 : nvp1d, npp1d 0.0 0.0 1.0 ~G : vlvp1d 0.5 0.5 1.0 X 0.0 0.0 0.0 ~G 0.5 0.0 0.0 L 0.5 0.5 0.0 Merry Christmas 0.5 0.25 -0.25 W 0.5 0.0 0.0 L ------------------------- ERROR - Labels not defined correctly - scroll back up to see what went wrong " # Read the labels from elk.in and put them in a file label_names.tmp cat $input_file | awk '{ if($1=="plot1d"){go=1} if(go==2){number_of_labels=$1} if(go>number_of_labels+2){go=0} if(go>2){ for (i = 4; i <= NF; i++){printf("%s ", $i)} printf("\n") } if(go>0){go=go+1} }' | sed 's/://g' | sed 's/vlvp1d//g' | sed 's/ / /g' > label_names.tmp #Check the labels. no_label_line=$(cat label_names.tmp | awk '{if($1==""){print NR; exit}}') if [ $no_label_line ]; then echo "ERROR - No label found on line $((no_label_line+2)) of plot1d block" echo "$label_usage" exit 1 fi # Get the positions of the labels from bandlines file cat $bandlines_file | awk 'BEGIN{last=-1}{ if($1!=""){ if($1!=last){last=$1;print $1} } }' > label_positions.tmp # Match up the labels with their positions and remove the exclamation marks if they exist paste label_positions.tmp label_names.tmp | sed 's/!//' > labels.tmp rm label_names.tmp label_positions.tmp #this thing joins all the labels together into a format gnuplot can understand. labels=$(cat labels.tmp | awk '{ for (i = 2; i <= NF; i++){if (i==2){label=$i}else{label=label " " $i}} printf("%s%s%s %f, ",q,label,q,$1) label="" }' q=\" ) #Replace all instances of capital G with the gamma symbol labels=$(echo $labels | sed 's/~\(.\)/\{\/Symbol \1\}/g' ) if [[ $labels == *"{/Symbol }"* ]] then echo "WARNING -> There is a space after a \"~\" in the labels block... get rid of it."; fi echo "- Found labels" ######### # Write elk-bands.gps, the file which gnuplot uses. #this is a neat trick to spew out a file without having to use quotes. the end of the file is labeled _EOF cat > bands.tmp << _EOF set terminal postscript enhanced eps colour lw $border_linewidth dashlength 2 font "$plot_font" size $plot_width, $plot_height set style data lines set output "$eps_file" set ylabel "Energy (eV)" set grid noytics xtics #this puts vertical lines on the band structure according to xtics below set xtics( $labels ) set mytics 5 #minor y tics, the number of little tics in between labeled tics. unset key #change this to "set key top left" or something if you want the key in the plot #if you use "set key" then the title "Bands" will appear in the key plot [:][$min_energy:$max_energy] \ "BAND.OUT" using 1:((\$2)*27.21138386) title "Bands" lw $band_linewidth lt 1 lc rgb "black",\ 0.0 lt -1 notitle _EOF #this thing just removes the final comma from the end of the "set xtics ( )" line. cat bands.tmp | sed 's/, )/)/' > $gps_file rm bands.tmp rm labels.tmp echo "- Plotting file written to $gps_file" gnuplot $gps_file if [ ! $? -eq 0 ]; then echo "Unfortunately, some sort of unforseen error has occurred, try posting a message on the forum at http://sourceforge.net/projects/elk/forums/ " else echo "- Band plot is ready in $eps_file" fi echo "" exit 0 elk-6.3.2/utilities/PaxHeaders.21352/elk-optics0000644000000000000000000000013213543334751016046 xustar0030 mtime=1569569257.827633515 30 atime=1569569257.826633516 30 ctime=1569569257.827633515 elk-6.3.2/utilities/elk-optics/0000755002504400250440000000000013543334751020172 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/utilities/elk-optics/PaxHeaders.21352/elk-optics.py0000644000000000000000000000013213543334751020547 xustar0030 mtime=1569569257.829633514 30 atime=1569569257.828633515 30 ctime=1569569257.829633514 elk-6.3.2/utilities/elk-optics/elk-optics.py0000644002504400250440000000726513543334751022630 0ustar00dewhurstdewhurst00000000000000#!/usr/bin/python # # Copyright (C) 2015 by Markus Meinert # This file is distributed under the terms of the GNU General Public License. # See the file COPYING for license details. # # http://elk.sourceforge.net/ # # elk-optics.py v1.0 # # This script comes with no warranty. Check the results # carefully for production use. # # Description: # Reads all EPSILON_ii.OUT files in the present directory # and computes optical quantities. Diagonal components only. # # Input: EPSILON_ii.OUT # # Output: energy (eV), Re(eps), Im(eps), # refractive index Re(n), Im(n), # normal incidence reflectivity R, # absorption coefficient alpha (m^-1), # EELS -1/Im(eps) # # Output is written to optics_ii.out # import sys, os, math, cmath # check which files of type EPSILON_ii.OUT exist and # return a list of present components def get_components(): possible = ['11', '22', '33'] present = [] for p in possible: testfilename = 'EPSILON_%s.OUT' % p if os.path.isfile(testfilename): present.append(p) return present # read the EPSILON_ii.OUT file # return lists of energies and complex eps def read_epsilon(filename): handle = open(filename, 'r') content = handle.readlines() handle.close() data = [[],[]] for line in content: l = line.split() if l == []: continue data[0].append(float(l[0])) data[1].append(float(l[1])) # energies are read from first column of the first data block # real part of epsilon is read from the second column of the first data block (first half of the data) # imaginary part of epsilon is read from the second column of the second data block (second half of the data) datalength = int( len( data[0] ) / 2.) energies = data[0][0:datalength] eps_cplx = [complex(a,b) for a,b in zip(data[1][0:datalength], data[1][datalength:])] return energies, eps_cplx # compute optical properties from energies and complex epsilon def write_optical_properties(energies, eps_cplx, component): # complex refractive index N and extinction coefficient kappa # complex refractive index: N = n_r + ik N = [cmath.sqrt(x1) for x1 in eps_cplx] k = [cmath.sqrt(x1).imag for x1 in eps_cplx] # normal incidence reflectivity from complex refractive index R = [abs((1.-x1)/(1.+x1))**2 for x1 in N] # absorption coefficient in SI units from extinction coefficient and energy Ha_to_J = 27.21138602 * 1.6021766208E-19 hbar = 6.626070040E-34 / (2 * math.pi) c = 2.99792458E8 Ha_to_omegaSI = Ha_to_J / hbar alpha = [2 * (x1 * Ha_to_omegaSI) / c * x2 for x1, x2 in zip(energies, k)] # format data and write to file optics_ii.out data = zip(energies, eps_cplx, N, R, alpha) output = '%14s %14s %14s %14s %14s %14s %14s %14s\n' % ('# energy (eV)', 'Re(eps)', 'Im(eps)', 'Re(n)', 'Im(n)', 'R', 'alpha (m^-1)', 'EELS') for line in data: output += '%14.6e %14.6e %14.6e %14.6e %14.6e %14.6e %14.6e %14.6e\n' % (line[0]*27.21138602, line[1].real, line[1].imag, line[2].real, line[2].imag, line[3], line[4], -(1/line[1]).imag) outfilename = 'optics_%s.out' % component outfile = open(outfilename, 'w') outfile.write(output) outfile.close() # main loop over diagonal components of the epsilon tensor print('===================') print('| elk-optics v1.0 |') print('===================') print print('Looking for EPSILON_ii.OUT files...') components = get_components() if components == []: sys.exit('No EPSILON_ii.OUT files found. Exit.\n') else: print('Files found:') for c in components: print(' EPSILON_%s.OUT') % c print for c in components: filename = 'EPSILON_%s.OUT' % c print('Working on %s ...') % filename energies, eps_cplx = read_epsilon(filename) write_optical_properties(energies, eps_cplx, c) print('Optical properties written to optics_%s.out') % c print elk-6.3.2/utilities/PaxHeaders.21352/wien2k-elk0000644000000000000000000000013213543334751015744 xustar0030 mtime=1569569257.833633511 30 atime=1569569257.832633512 30 ctime=1569569257.833633511 elk-6.3.2/utilities/wien2k-elk/0000755002504400250440000000000013543334751020070 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/utilities/wien2k-elk/PaxHeaders.21352/se.pl0000644000000000000000000000013013543334751016763 xustar0029 mtime=1569569257.83563351 30 atime=1569569257.834633511 29 ctime=1569569257.83563351 elk-6.3.2/utilities/wien2k-elk/se.pl0000755002504400250440000000221613543334751021040 0ustar00dewhurstdewhurst00000000000000#!/usr/bin/perl if (@ARGV<1) { print "Script for conversion Wien2K struct files to spacegroup.in files used in exciting/elk\n"; print "The only argument is the name of the struct file, spacegroup.in is written to standard output\n"; print "Use at your own risk. \n Jerzy Goraus 2009\n"; exit; }; open(STR,$ARGV[0]) or die "can't open ",$ARGV[0]," file\n "; @STRUCT=; ($TMP,$GROUP)=split(/\_/,$STRUCT[1]); ($GROUP,$TMP)=split(/\n/,$GROUP); ($GROUP,$TMP)=split(/\ /,$GROUP); ($TMP,$LA,$LB,$LC,$AA,$AB,$AG)=split(/\s+/,$STRUCT[3]); $ATCNT=0; print " '",$GROUP,"\'\n ",$LA," ",$LB," ",$LC,"\n ",$AA," ",$AB," ",$AG,"\n 1 1 1\n .false.\n "; foreach (@STRUCT) { $BUF=$_; if (/ATOM/) { ($TMP,$X,$Y,$Z)=split(/=/,$BUF); ($X,$TMP)=split(/\ /,$X); ($Y,$TMP)=split(/\ /,$Y); $ATCNT+=1; # print "\n",$X, " ", $Y," ", $Z; $RESULT = sprintf(" %lf %lf %lf\n", $X,$Y,$Z); }; if (/NPT/) { $ATL=substr($_,0,2); $_=$ATL; s/\s//g; $ATL=$_; # print $ATL; $TAB{$ATL}=$TAB{$ATL}.$RESULT; $TABN{$ATL}+=1; }; }; $NUM=keys(TAB); print " ",$NUM ,"\n"; foreach (keys(TAB)) { print " '",$_,"' '",$_,".in'\n"; print " ",$TABN{$_},"\n"; print $TAB{$_}; } elk-6.3.2/utilities/PaxHeaders.21352/blocks2columns0000644000000000000000000000013213543334751016734 xustar0030 mtime=1569569257.839633507 30 atime=1569569257.837633509 30 ctime=1569569257.839633507 elk-6.3.2/utilities/blocks2columns/0000755002504400250440000000000013543334751021060 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/utilities/blocks2columns/PaxHeaders.21352/blocks2columns.py0000644000000000000000000000013213543334751022323 xustar0030 mtime=1569569257.840633507 30 atime=1569569257.839633507 30 ctime=1569569257.840633507 elk-6.3.2/utilities/blocks2columns/blocks2columns.py0000644002504400250440000000400713543334751024373 0ustar00dewhurstdewhurst00000000000000#!/usr/bin/python # elk blocks to columns by Markus Meinert # update January 2015, fixed a bug related to blank lines # Usage: blocks2columns.py PDOS_S01_A0001.OUT # blocks2columns.py TDOS.OUT # blocks2columns.py BAND.OUT import sys, os print("\n =========================\n | elk blocks to columns |\n =========================\n") # Read the file. filename = sys.argv[1] f = open(filename, 'r') data = f.readlines() f.close() # Analyze the file. # Number of lines. nlines = len(data) print(" Number of lines: %i " % nlines) # Count blank lines to determine number of datasets. ndatasets = 0 for line in data: if line.split() == []: ndatasets += 1 # If last line is not blank, add one to ndatasets and nlines. if data[-1].split() != []: ndatasets += 1 nlines += 1 print(" Number of datasets: %i " % ndatasets) # Number of lines per block is: nlinesperblock = (nlines - ndatasets)/ndatasets print(" Number of lines per block: %i " % nlinesperblock) # Collect the datasets into a list of lists with a double-loop over datasets and lines. datasets = [] for i in range(0,ndatasets): currentset = [] for j in range(i*nlinesperblock + i, (i*nlinesperblock + i) + nlinesperblock): currentset.append(data[j].split()) # Split each line by empty spaces. datasets.append(currentset) output = "" # Generate a head line output += "#%21s" % "x-axis" for i in range(1,ndatasets+1): blockname = "block_%i" % i output += "%22s" % blockname output += "\n" # Merge the datasets line-wise. for i in range(0,nlinesperblock): # x-axis as first column, read from first block line = '%22.13e' % (float(datasets[0][i][0])) # Append the block values as columns. for j in range(0, ndatasets): line += '%22.13e' % (float(datasets[j][i][1])) line += "\n" output += line filename = filename + ".columns" if os.path.exists(filename): print("\n Output file %s exists. Exit.\n" % filename) else: f = open(filename, 'w') f.write(output) f.close() print("\n Output filename: %s\n Done.\n" % filename) elk-6.3.2/utilities/PaxHeaders.21352/xps0000644000000000000000000000013213543334751014606 xustar0030 mtime=1569569257.853633499 30 atime=1569569257.843633505 30 ctime=1569569257.853633499 elk-6.3.2/utilities/xps/0000755002504400250440000000000013543334751016732 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/utilities/xps/PaxHeaders.21352/CROSEC0000644000000000000000000000013213543334751015564 xustar0030 mtime=1569569257.846633503 30 atime=1569569257.845633504 30 ctime=1569569257.846633503 elk-6.3.2/utilities/xps/CROSEC0000644002504400250440000000307613543334751017641 0ustar00dewhurstdewhurst00000000000000Crossection data for elements, E=1486eV ATOM=Xx 1.00E-0, 1.00E-0, 1.00E-0, 1.0 ATOM=Es 0.00E-0, 0.00E-0, 0.00E-0, 0.0 ATOM=Ag 0.29E-3, 0.77E-3, 0.21E-1, 0.0 ATOM=Al 0.78E-3, 0.59E-4, 0.53E-4, 0.0 ATOM=Bi 0.13E-2, 0.13E-2, 0.72E-3, 0.3632 ATOM=Ti 0.50E-3, 0.74E-3, 0.17E-3, 0.0 ATOM=V 0.51E-3, 0.74E-3, 0.42E-3, 0.0 ATOM=Cr 0.18E-3, 0.74E-3, 0.88E-3, 0.0 ATOM=Mn 0.58E-3, 0.74E-3, 0.14E-2, 0.0 ATOM=Fe 0.70E-3, 0.74E-3, 0.22E-2, 0.0 ATOM=Co 0.71E-3, 0.74E-3, 0.37E-2, 0.0 ATOM=Ni 0.83E-3, 0.74E-3, 0.59E-2, 0.0 ATOM=Cu 0.27E-3, 0.74E-3, 0.12E-1, 0.0 ATOM=La 0.29E-3, 0.21E-3, 0.76E-3, 0.22E-2 ATOM=Ce 0.31E-3, 0.21E-3, 0.94E-3, 0.22E-2 ATOM=Gd 0.43E-3, 0.21E-3, 0.94E-3, 0.21E-1 ATOM=Tb 0.36E-3, 0.21E-3, 0.94E-3, 0.29E-1 ATOM=Dy 0.31E-3, 0.21E-3, 0.94E-3, 0.37E-1 ATOM=Ho 0.27E-3, 0.21E-3, 0.94E-3, 0.46E-1 ATOM=Ge 0.15E-2, 0.75E-3, 0.19E-1, 0.0 ATOM=Ga 0.12E-2, 0.74E-3, 0.45E-3, 0.0 ATOM=In 0.10E-2, 0.77E-3, 0.94E-3, 0.0 ATOM=Pb 0.11E-2, 0.61E-3, 0.72E-3, 0.3330 ATOM=Pd 0.29E-3, 0.77E-3, 0.16E-1, 0.0 ATOM=Sb 0.14E-2, 0.16E-2, 0.76E-3, 0.0 ATOM=Si 0.10E-2, 0.17E-3, 0.53E-4, 0.0 ATOM=Sn 0.12E-2, 0.77E-3, 0.76E-3, 0.0 ATOM=Y 0.48E-3, 0.77E-3, 0.45E-3, 0.0 ATOM=Bi 0.13E-2, 0.14E-2, 0.43E-1, 0.3632 ATOM=Rh 0.23E-3, 0.77e-3, 0.12e-1, 0 ATOM=Ir 0.58e-3, 0.21e-3, 0.16e-1, 0 ATOM=Eu 0.35e-3, 0.11e-1, 0.94e-3, 0.17e-1 elk-6.3.2/utilities/xps/PaxHeaders.21352/conv.c0000644000000000000000000000012613543334751015777 xustar0028 mtime=1569569257.8506335 30 atime=1569569257.849633501 28 ctime=1569569257.8506335 elk-6.3.2/utilities/xps/conv.c0000644002504400250440000000335713543334751020053 0ustar00dewhurstdewhurst00000000000000#include #include #include #include #include #define N 100000 // Convolution with Lorentz and Fermi function, // compile with: gcc conv.c -oconv -lm // modify the N above if needed. // Use at your own risk. // Jerzy Goraus (2003) typedef struct { double x,y; } pT; pT p1[N],p2[N]; double a_lor,Ef; int cmp1(pT *t1, pT *t2) { double t=t1->x-t2->x; return (int)(2*t/fabs(t)); } inline double lor(double x) { return (1/(1+x*x*a_lor)); } inline double fermi(double x) { return 1/(1+exp((x-Ef)/0.02569)); } main (int argc, char **argv) { int m=4,i1; double *tabl=malloc(1600); FILE *f; double dE=0.4,Ef=0,DE=0.2; char *buffer=malloc(256); if (!((argc==2)||(argc==4))) { printf("\nconv: convolution with Lorentz and Fermi function\n\ conv [{ FWHM Ef }]\nfilename is xy ascii data file,\ FWHM - Full Width at Half Maximum default : 0.4eV \n \ Ef - Fermi Energy default : 0 eV n\n");exit(0); } if (argc==4) { sscanf(argv[2],"%lf",&dE); sscanf(argv[3],"%lf",&Ef); if (dE>20) {printf("%i value too high\n",m);exit(1);} }; a_lor=4/(dE*dE); srand (time (NULL)); double y,sum; int i=0,k,n1=0,n2=0; f = fopen (argv[1], "r"); if (f==NULL) { printf("can't open for reading %s\n",argv[1]); exit(1);} while (!feof(f)) { fgets(buffer,255,f); sscanf(buffer,"%lf %lf",&(p1[n1].x),&(p1[n1].y)); n1++; assert(n1; close(STR); $atcnt=0; print "\nElements : "; for ($i=0; $i<$#str; $i++) { $_=$str[$i]; if (/atoms\n/) { $i++; $_=$str[$i]; s/\s//g; ($ATCNT,$TMP)=split(/:/); } if (/spinpol/) { $i++; $_=$str[$i]; if (/true/) { $SPOL=1;} } if (/in\'/) { ($ELNAME,$TMP)=split(/\./); $_=$ELNAME; s/\'//; $ELNAME=$_; #print "\n",$ELNAME; $_=$str[$i+1]; s/\s//g; ($MULT,$TMP)=split(/:/); push @atoms, $ELNAME; print $ELNAME," (",$MULT,") "; $mtab{$ELNAME}=$MULT; $idxtab{$ELNAME}=$atidx; $atidx++; #print "|",$MULT,"|"; } } if ($SPOL ) { print "\nMagnetic case\n"; } else { print "\nNon-magnetic case\n";} #print $ATCNT; open(CRS,"./CROSEC") or die "Can't open CROSEC"; # Here enter the position of CROSEC print "\nRead CROSEC"; @crs=; close(CRS); foreach ($i=1 ; $i<@crs; $i++) { $_=$crs[$i]; if (/ATOM=/) { $A=substr($_,5); $A=~s/\s//g; } else { $CR{$A}=$_; } } print "\n"; $NDOS=0; foreach (@atoms) { $ELNAME=$_; for ($i=1; $i<=$mtab{$_}; $i++) { $fname=sprintf("PDOS_S%02d_A%04d.OUT", $idxtab{$_}, $i); print "\nRead : ",$fname ; open(pdos, $fname) or die "Can't open $fname\n"; @pdos=; close(pdos); if ($NDOS==0) { foreach (@pdos) { if (/\d/) {$NDOS++}; } $NDOS/=32; $NDOS++; #- init to 0 for ($j=0; $j<$NDOS-1; $j++) { $atw_su[$j]=0; $atw_pu[$j]=0; $atw_du[$j]=0; $atw_fu[$j]=0; $atw_sd[$j]=0; $atw_pd[$j]=0; $atw_dd[$j]=0; $atw_fd[$j]=0; $att_su[$j]=0; $att_pu[$j]=0; $att_du[$j]=0; $att_fu[$j]=0; $att_sd[$j]=0; $att_pd[$j]=0; $att_dd[$j]=0; $att_fd[$j]=0; $attc_su[$j]=0; $attc_pu[$j]=0; $attc_du[$j]=0; $attc_fu[$j]=0; $attc_sd[$j]=0; $attc_pd[$j]=0; $attc_dd[$j]=0; $attc_fd[$j]=0; } } $atfout=sprintf("_%s_%04d.dat",$ELNAME,$i); open(atpart, ">".$atfout) or die "Can't open output file $atfout\n"; if ($SPOL ) { print atpart "# spin up - s,p,d,f and spin down s,p,d,f\n"; } else { print atpart "# s, p, d, f\n";} for ($q=0; $q<$#pdos; $q++) { ($TMP,$pdosx[$q],$pdosy[$q])=split(/\s+/,$pdos[$q]); $pdosx[$q]*=$FACTOR; $pdosy[$q]/=$FACTOR; } for ($j=0; $j<$NDOS-1; $j++) { $at_su[$j]=$pdosy[$j]; if ($SPOL ) {$at_sd[$j]=$pdosy[$j+16*$NDOS];} $at_pu[$j]=0; $at_pd[$j]=0; $at_du[$j]=0; $at_dd[$j]=0; $at_fu[$j]=0; $at_fd[$j]=0; for ($q=1; $q<4; $q++) { $at_pu[$j]+=$pdosy[$j+$q*$NDOS]; if ($SPOL ) {$at_pd[$j]+=$pdosy[$j+16*$NDOS+$q*$NDOS];} } for ($q=4; $q<9; $q++) { $at_du[$j]+=$pdosy[$j+$q*$NDOS]; if ($SPOL ) {$at_dd[$j]+=$pdosy[$j+16*$NDOS+$q*$NDOS];} } for ($q=9; $q<16; $q++) { $at_fu[$j]+=$pdosy[$j+$q*$NDOS]; if ($SPOL ) {$at_fd[$j]+=$pdosy[$j+16*$NDOS+$q*$NDOS];} } print atpart $pdosx[$j], " ",$at_su[$j]," ",$at_pu[$j]," ",$at_du[$j]," ",$at_fu[$j]; if ($SPOL ) { print atpart " ",$at_sd[$j]," ",$at_pd[$j]," ",$at_dd[$j]," ",$at_fd[$j],"\n";} else {print atpart "\n";} $atw_su[$j]+=$at_su[$j]; $atw_pu[$j]+=$at_pu[$j]; $atw_du[$j]+=$at_du[$j]; $atw_fu[$j]+=$at_fu[$j]; $atw_sd[$j]+=$at_sd[$j]; $atw_pd[$j]+=$at_pd[$j]; $atw_dd[$j]+=$at_dd[$j]; $atw_fd[$j]+=$at_fd[$j]; } close atpart; print "\nWritten ",$atfout; #-- $gatfout=sprintf("_g_%s_%04d",$ELNAME,$i); open(GNU,">".$gatfout.".gnu") or die "can't open $gatfout\n"; print GNU $TERM,"\n",$OPT,"\n"; print GNU "set output \"$gatfout.$SUF\"\n"; print GNU "set xlabel \"Eb [eV]\"\n"; print GNU "set ylabel \"DOS [st/eV f.u.]\"\n"; print GNU "set title \"$ELNAME - $i\"\n"; print GNU "plot \"$atfout\" using 1:2 smooth uniq t 's' "; printf GNU ", \"$atfout\" using 1:3 smooth uniq t \'p\' "; printf GNU ", \"$atfout\" using 1:4 smooth uniq t \'d\' "; printf GNU ", \"$atfout\" using 1:5 smooth uniq t \'f\' "; if ($SPOL ) { print GNU ", \"$atfout\" using 1:6 smooth uniq t \'s\' "; print GNU ", \"$atfout\" using 1:7 smooth uniq t \'p\' "; print GNU ", \"$atfout\" using 1:8 smooth uniq t \'d\' "; print GNU ", \"$atfout\" using 1:9 smooth uniq t \'f\' "; } close(GNU); print "\nWritten ",$gatfout,".gnu"; #-- } $atwfout=sprintf("_%s.dat",$ELNAME); #at - atomic DOS, atw - given specie dos, att - total dos , attc - total dos with crossection open(atwpart, ">".$atwfout) or die "Can't open output file $atwfout \n"; if ($SPOL ) { print atwpart "# spin up - s,p,d,f and spin down s,p,d,f\n"; } else { print atwpart "# s, p, d, f\n";} if ($CR{$ELNAME} ne "") { ($Ks,$Kp,$Kd,$Kf)=split(/\,/,$CR{$ELNAME}); } else {$Ks=$Kp=$Kd=$Kf=0; print "\n----------------- No $ELNAME in CROSEC, Using 0 as crossection\n";}; for ($j=0; $j<$NDOS-1; $j++) { $att_su[$j]+=$atw_su[$j]; $att_pu[$j]+=$atw_pu[$j]; $att_du[$j]+=$atw_du[$j]; $att_fu[$j]+=$atw_fu[$j]; $att_sd[$j]+=$atw_sd[$j]; $att_pd[$j]+=$atw_pd[$j]; $att_dd[$j]+=$atw_dd[$j]; $att_fd[$j]+=$atw_fd[$j]; $attc_su[$j]+=$atw_su[$j]*$Ks; $attc_pu[$j]+=$atw_pu[$j]*$Kp; $attc_du[$j]+=$atw_du[$j]*$Kd; $attc_fu[$j]+=$atw_fu[$j]*$Kf; $attc_sd[$j]+=$atw_sd[$j]*$Ks; $attc_pd[$j]+=$atw_pd[$j]*$Kp; $attc_dd[$j]+=$atw_dd[$j]*$Kd; $attc_fd[$j]+=$atw_fd[$j]*$Kf; print atwpart $pdosx[$j], " ",$atw_su[$j]," ",$atw_pu[$j]," ",$atw_du[$j]," ",$atw_fu[$j]; if ($SPOL ) { print atwpart " ",$atw_sd[$j]," ",$atw_pd[$j]," ",$atw_dd[$j]," ",$atw_fd[$j],"\n";} else {print atwpart "\n";} } close atwpart; #- $gatwfout=sprintf("_g_%s",$ELNAME); open(GNU,">".$gatwfout.".gnu") or die "can't open $gatwfout\n"; print GNU $TERM,"\n",$OPT,"\n"; print GNU "set output \"$gatwfout.$SUF\"\n"; print GNU "set xlabel \"Eb [eV]\"\n"; print GNU "set ylabel \"DOS [st/eV f.u.]\"\n"; print GNU "set title \"$ELNAME \"\n"; print GNU "plot \"$atwfout\" using 1:2 smooth uniq t 's' "; printf GNU ", \"$atwfout\" using 1:3 smooth uniq t \'p\' "; printf GNU ", \"$atwfout\" using 1:4 smooth uniq t \'d\' "; printf GNU ", \"$atwfout\" using 1:5 smooth uniq t \'f\' "; if ($SPOL ) { print GNU ", \"$atwfout\" using 1:6 smooth uniq t \'s\' "; print GNU ", \"$atwfout\" using 1:7 smooth uniq t \'p\' "; print GNU ", \"$atwfout\" using 1:8 smooth uniq t \'d\' "; print GNU ", \"$atwfout\" using 1:9 smooth uniq t \'f\' "; } close(GNU); print "\nWritten ",$gatwfout,".gnu"; #- print "\nWritten ",$atwfout; for ($j=0; $j<$NDOS-1; $j++) { $atw_su[$j]=0; $atw_pu[$j]=0; $atw_du[$j]=0; $atw_fu[$j]=0; $atw_sd[$j]=0; $atw_pd[$j]=0; $atw_dd[$j]=0; $atw_fd[$j]=0; } } open(att, ">_TDOS.dat") or die "Can't open output file TDOS.dat \n"; open(attc, ">_cTDOS.dat") or die "Can't open output file cTDOS.dat \n"; for ($j=0; $j<$NDOS-1; $j++) { $u=$att_su[$j]+$att_pu[$j]+$att_du[$j]+$att_fu[$j]; $d=$att_sd[$j]+$att_pd[$j]+$att_dd[$j]+$att_fd[$j]; $uc=$attc_su[$j]+$attc_pu[$j]+$attc_du[$j]+$attc_fu[$j]; $dc=$attc_sd[$j]+$attc_pd[$j]+$attc_dd[$j]+$attc_fd[$j]; if ($SPOL ) { print att $pdosx[$j], " ",$u-$d," ",$u," ",$d,"\n"; print attc $pdosx[$j], " ",$uc-$dc," ",$uc," ",$dc,"\n"; } else { print att $pdosx[$j], " ",$u,"\n"; print attc $pdosx[$j], " ",$u,"\n"; } } close att; print "\nWritten _TDOS.dat"; close attc; print "\nWritten _cTDOS.dat"; print "\n"; elk-6.3.2/PaxHeaders.21352/COPYING0000644000000000000000000000013213543334751013071 xustar0030 mtime=1569569257.884633479 30 atime=1569569257.865633491 30 ctime=1569569257.884633479 elk-6.3.2/COPYING0000644002504400250440000012356413543334751015153 0ustar00dewhurstdewhurst00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . -------------------------------------------------------------------------------- GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. elk-6.3.2/PaxHeaders.21352/README0000644000000000000000000000013213543334751012716 xustar0030 mtime=1569569257.894633472 30 atime=1569569257.893633473 30 ctime=1569569257.894633472 elk-6.3.2/README0000644002504400250440000000377013543334751014774 0ustar00dewhurstdewhurst00000000000000 +------------------------------+ | The Elk FP-LAPW Code | +------------------------------+ This code is distributed under the terms of the GNU General Public License. See the file COPYING for license details. Elk is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Elk is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Elk. If not, see http://www.gnu.org/licenses/. Elk can be compiled by first running "./setup" in this directory followed by "make all". This will compile the main code as well as several auxiliary programs. For optimal performance we strongly recommend that you tune the Fortran compiler options in the file "make.inc" and use machine-optimised BLAS/LAPACK libraries. Setting the OpenMP and MPI options of your compiler will enable Elk to run in parallel mode on multiprocessor systems and clusters. A test suite is available: entering "make test" will check the output of your executable against a standard set. This may take some time to complete. Auxiliary programs include "spacegroup" for producing crystal geometries from spacegroup data, and "eos" for fitting equations of state to energy-volume data. Elk is updated regularly with new features and bug fixes. Features not listed as "experimental" may be used for production but, as with any code, please check the consistency of your results carefully. -------------------------------------------------------------------------------- J. K. Dewhurst, S. Sharma L. Nordstrom, F. Cricchio, O. Granas E. K. U. Gross elk-6.3.2/PaxHeaders.21352/release_notes.txt0000644000000000000000000000013213543334751015427 xustar0030 mtime=1569569257.912633461 30 atime=1569569257.903633467 30 ctime=1569569257.912633461 elk-6.3.2/release_notes.txt0000644002504400250440000011775713543334751017520 0ustar00dewhurstdewhurst00000000000000elk-6.3.2 -very large speedup of the first-variational Hamiltonian and overlap matrix setup; this is particularly apparent for large systems -made all of the numerical radial integrals much more efficient by storing the spline integration weights; this speeds up most of the code -switched radial integral infinitesimal from 1/3 d(r^3) to r^2dr; this improves numerical accuracy and returns to the convention of version 5.2.14 -added full (l,m) and spin characters for plotting the band structure with so-called 'fat bands'; these are performed with new tasks 22 and 23; thanks to Jagdish Kumar for the suggestion -Jagdish Kumar also fixed a problem with the phonon thermodynamic quantities which had an unnecessary prefactor of the number of atoms; see here -fixed a problem with occurs with constant electric fields (when efieldc is made finite) and crystals with non-symmorphic symmetries -Michael Fechner improved the fixed spin moment code by removing the requirement that unspecified muffin-tin fixed moments are checked for symmetry compliance -added 1D plotting of the magnetisation density, exchange-correlation magnetic field, electric field and m(r) x B_xc(r) with tasks 71, 81, 141 and 151, respectively -added density, potential and magnetisation plotting for ultra long-range calculations with tasks 731, 732, 733, 741, 742, 743, 771, 772 and 773 -constant electric fields can now be included in ultra long-range calculations; this can be done by setting the vector efielduc -an arbitrary external Coulomb potential can now be read in for use in the ultra long-range calculations; set trdvclr=.true. and the potential is read from the file VCLR.OUT elk-6.2.8 -Wannier90 interface added thanks to Arsenii Gerasimov, Yaroslav Kvashnin and Lars Nordström; and based on the original work of Duc Le and Jon Lafuente Bartolomé -the Wannier90 interface can be used to produce Hartree-Fock band structures (see example) and also works with non-collinear spin-polarised calculations -ultra long-range (ULR) calculations now available thanks to Tristan Müller (experimental) -self-consistent density GW calculations now available thanks to Arkardy Davydov and others; this is a new method still undergoing testing and is thus experimental -GW density matrix can now be written to file with task=640; the natural orbitals and occupation numbers are written to EVECSV.OUT and OCCSV.OUT, respectively -classical spin and orbital dipole magnetic fields can now be calculated and added to the Kohn-Sham field (set tbdip=.true. and tcden=.true.) -extensive optimisations throughout the code: every task should be noticeably faster -improved OpenMP parallelism -improved accuracy of the Mössbauer hyperfine field calculations -added spin and orbital dipole terms to the hyperfine field -updated constants and conversion factors to CODATA 2018 -added Andrew Shyichuk's improved check for requirement of the Tran-Blaha constant -variational meta-GGA functionals (like SCAN) now work with forces -added Roger Mason's fix to make FFTW thread-safe -René Wirnata has created the Elk Optics Analyzer that helps to visualize and post-process optics output data -regenerated species files with lower order local-orbitals -improved k-point convergence of the electron-phonon coupling constant for calculation of superconducting properties -upgraded to LAPACK 3.8.0 -changed default 'radkpt' from 30 to 40 -many minor improvements and bug fixes elk-5.2.14 -Youzhao Lan found a bug which prevented potential-only meta-GGA functionals (like Tran-Blaha) from being used; this has now been fixed -fixed meta-GGA atomic forces; thanks to Michael Porer for pointing out the problem -Eike Schwier discovered a conflicting MPI variable name and also reported that the code crashes when generating species files; both problems are now fixed -linear-response TDDFT off-diagonal components for q=0 now available (experimental) elk-5.2.10 -GW code is much improved and also faster; the Pade analytic continuation of the self-energy is more stable and reliable -OpenMP parallelism greatly improved; nesting is now permanently switched on and the number of threads is controlled by Elk itself; this should improve scaling on hundreds of CPU cores; please report any problems you have with parallelism on the forum -GW spectral function band-structures are now possible; this feature is still experimental -Yaroslav Kvashnin and Lars Nordström found and fixed a bug in the fixed spin moment direction code -fully variational meta-GGA (in the generalised Kohn-Sham sense) is now running in conjunction with Libxc (experimental) -variational meta-GGA works only with collinear magnetism; let us know if you have an idea on how to extend it to the non-collinear case -Elk now interfaces to Libxc version 4 -- please update your library from version 2 -gauge invariant current density plots in 2D and 3D now available (tasks 372 and 373) -the entire code is much faster, particularly advanced methods like Hartree-Fock, RDMFT, BSE and GW; this is in part due to a 'coarse' Fourier grid for the wavefunctions -the lmaxi has been changed from 3 to 1 and several optimisations based on this have been hard-coded into Elk -Broyden mixing (mixtype=3) is now the default; magnetic calculations will now converge using a small bfieldc or bfcmt thanks to an improved magnetisation initialisation scheme -real-time TDDFT calculations no longer require 'nosym=.true.' but rather 'tshift=.false.' and are much faster as a consequence -2D and 3D current density plotting now available with tasks 272 and 273, respectively -task 480 generates a linear-response dielectric function calculation from a time-evolution run -lots of optimisations everywhere in the code, including additional OpenMP directives -lots of minor improvements and bug fixes -cleaned up and improved examples -several direct access files are not closed after reading which speeds up file I/O; please report any problems with this on the forum elk-4.3.6 -GW approximation now available thanks to Arkadiy Davydov; this is a finite temperature Matsubara implementation; currently it only calculates the k-point resolved spectral function on the real axis; see the 'examples/GW' directory (experimental) -the GW approximation works with spin-orbit coupling and non-collinear magnetism; it can also be run after the optimized effective potential (OEP) method -significant optimisations for Hartree-Fock, OEP, RDMFT and BSE -fixed an minor bug in BSE -greatly improved the stability of lattice optimisation; also reduced the variable 'deltast' to 0.001 -improved the convergence of the electron-phonon coupling parameter with respect to k-points; thanks to Xianxin Wu for the careful testing -removed the variable 'epseph' which determined the sampling window for electron-phonon coupling -added new automatic test for TDDFT time-evolution -upgraded to LAPACK 3.7.0 -Elk now uses the LAPACK routine zheevd for diagonalisation which is faster than zheev -changed the variable 'rstsf' to 'ssxc' -the smearing width 'swidth' can now be set with temperature in kelvin using the variable 'tempk' elk-4.0.15 -changed muffin-tin functions to a 'packed' convention; this improves the memory efficiency and speed for the whole code; completely backward and forward compatible -Michael Fechner found a serious bug in DFT+U which has now been fixed; may affect systems with atoms to which DFT+U is applied and which have symmetric equivalents; MF added to list of contributors -fixed a problem with the laser pulse power density plot (AFPDT.OUT) thanks to Peter Elliot and Tristan Mueller -added the ability to randomize the orbitals at the start of a time-evolution run; use the variable 'rndevt0' to set the random amplitude -improved the accuracy of the Hellmann-Feynman force on the atoms; this also improves the supercell phonon calculations -added the reduced Stoner theory (RST) modification to the exchange-correlation functionals, see: L. Ortenzi, I. I. Mazin, P. Blaha, and L. Boeri, Phys. Rev. B 86, 064437 (2012); use the parameter `rstsf´ to adjust the spin scaling -removed the Pulay mixer (mixtype=2) as it was consistently inferior to Broyden -changed the variables 'lmaxinr' and 'lmaxvr' to 'lmaxi' and 'lmaxo', respectively; the old variables still work in elk.in elk-3.3.15 -lots of optimisations of both speed and memory; many tasks should be noticeably faster -added new 'robust adaptive mixer' (mixtype=4) which should be able to converge almost anything; there are no mixing parameters for this mixer; useful for materials searches when you have to be guaranteed convergence; slower to converge than the default mixing and Broyden mixing -added missing term to DFPT phonons corresponding to the first-order change in occupancies and the Fermi energy for q=0; the phonon dispersion for MgB2 is now in excellent agreement with experiment and previous calculations -the electron-phonon coupling code was greatly improved; produces very good coupling constants for Al, Nb, Pb and MgB2; all of which are in the 'examples/phonons-superconductivity' directory -new variable 'epseph' controls the Fermi surface sampling of the electron-phonon coupling matrix elements -Markus Meinert created a script for calculating optical constants from the diagonal components of the dielectric tensor; it calculates the complex refractive index, reflectivity, absorption coefficient and EELS spectrum; available in the utilities directory -real-time TDDFT now outputs a time-dependent DOS and effective temperature at each time step -setting 'uhighq=.true.' results in an ultra-high-quality calculation; when you absolutely have to have the best elk-3.1.12 -Important: fixed an inaccuracy in the scalar relativistic part of the code which has existed for around 12 years; this may slightly affect calculations of heavy elements; special thanks to Stefaan Cottenier, José A. Flores Livas and Marcin Dulak for the extensive calculations -real-time evolution now works with DFT+U (experimental) -added 'ramp' vector potential to time evolution code; this can simulate constant and constantly increasing electric fields; see manual for details; see the example Si-ramp -lots of optimisations everywhere: code should be noticeably faster -José made some changes to the 'highq' and 'vhighq' options -fixed bug with non-collinear optimised effective potential (OEP) -new task (150) writes out the Kohn-Sham-Dirac eigenvalues of the atomic species -SS added two new f_xc kernels: single iteration bootstrap (fxctype=211) and revised bootstrap (RBO) (fxctype=212), see S. Rigamonti, et al., Phys. Rev. Lett. 114, 146402; added two examples: Ne-RBO and LiF-RBO -improved the accuracy of the magnetic anisotropy energy (MAE) calculation by rotating the spherical coverings of the spherical harmonic transform; thanks to James Glasbrenner for testing -David Ernsting found and fixed a bug in the Compton interpolation routine -improved the stability of structural optimisation -removed the smoothing option from the exchange-correlation magnetic field source projection routine -the number of first-variational states for magnetic systems was twice as large as it needed to be: now fixed -improved the vim syntax highlighting generator; run 'make vim' again -organised the examples into categories -minor bug fixes and improvements -note for developers: changed some of the variable names related to atomic species (purely cosmetic) elk-3.0.18 -fixed electron-phonon coupling again; thanks to Karel Carva and Elie Moujaes for the careful testing and discussion -DFPT phonons now work with MPI -SS added the 'single-iteration bootstrap kernel' for linear optics calculations; this is selected with fxctype=211; see the example 'Ar-bootstrap-single' -SS fixed a problem with RDMFT which had appeared in recent versions -SS made minor changes to the non-linear optics code -Important: fixed problem with the option 'cmagz' for forcing spin-orbit calculations to be collinear; this may affect MAE calculations; thanks to Martin Gmitra for finding this and the careful testing -Important: fixed a problem with the magnetisation directions selected for MAE calculations -reworked the 'ncgga' option for non-collinear GGA calculations; should be much more reliable now -several important optimisations; the Hamiltonian matrix setup and density symmetrisation are now faster -magnetic anisotropy energy (MAE) calculation now outputs the direction vectors; thanks to Galya Madzharova and Yu-ichiro Matsushita for the suggestion -added option 'vhighq' for very high quality calculations;see example 'Os-Delta' -'highq' and 'vhighq' options now write out the parameters which are changed -increased default 'lmaxmat' from 6 to 7 -added new option 'nxlo'; this adds extra local-orbitals to the species in order to make the APW functions smoother; this can make calculations, particularly of excited state properties, more accurate -syntax highlighting now available for the vim editor; just run 'make vim' and highlighting will be enabled elk-3.0.4 -real-time propagation for solids now available thanks to the considerable efforts of Kevin Krieger over the past three years; see the example 'Ni-laser-pulse'; this feature is highly experimental -1D, 2D and 3D integrated electron momentum density (EMD) plots now available thanks to David Ernsting and Stephen Dugdale; these plots can be compared directly to Compton scattering profiles; see the examples 'Li-Compton' and 'Ni-Compton'; still experimental -electron-phonon coupling has now been fixed and is also available for linear-response phonons -large number of optimizations made throughout code -code is more memory efficient in many areas -Arkardy Davydov found a bug in OpenMP nested parallelism for BSE which has now been fixed -fixed bug in magnetic anisotropy energy (MAE) calculation found by José A. Flores Livas -added option for automatically converting species from APW+l.o. to LAPW; see option 'nxapwlo' in manual -greatly improved unit cell optimisation algorithm; now should be very stable; see example 'Ge-lattice-opt' -Markus Meinert updated his 'blocks2columns.py' python code which should now work correctly with EPSILON_xx.OUT files -modified the 'highq' defaults thanks to testest performed by Don Hamann described here -full charge and spin response function can be written to file using task=331 -supercell phonons calculation now work with MPI -removed use of OpenMP ATOMIC directive because of bug in ifort version 11 elk-2.3.22 -Lars Nordström, Francesco Cricchio and JKD added fixed tensor moment (FTM) calculations (experimental) -LN made changes to the mixer routine which makes restarts smoother -the Hamiltonian is now made real for systems with inversion symmetry; this was removed in the previous release because of a bug; the FV step is now up to four times faster -fixed problem with symmetry breaking of tetragonal systems during lattice optimisation pointed out by various users -further improved and stabilised lattice optimisation -fixed a long-standing bug related to electron-phonon coupling pointed out by Matthieu Verstraete and Ryotaro Arita -fixed a problem with electron-phonon coupling introduced in a previous version, discovered by user 'wuhuagumu' and Heung-Sik Kim -TDDFT reponse code for both charge and magnetism has been made faster and more memory efficient -creating a STOP file in the running directory now cleanly stops a structural optimisation run; as requested by James Mudd -problem with nested OpenMP has now been fixed -more OpenMP parallel loops have been added -extended the use of BLAS throughout the code -fixed bug which affected the running of task=120 -removed the 'frozencr' option for the moment because the core energy was incorrectly calculated; this will be restored in a later release -various optimisations and minor bug fixes elk-2.3.16 -DFT+U now works with multiple entries per atom; every mention of LDA+U has now changed to DFT+U to reflect the generality of the method, and to give it an air of respectibility; for example, the block 'lda+u' is now 'dft+u'; old input files will still work fine -greatly improved the magnetic anisotropy energy (MAE) calculations, thanks to suggestions by various users; the crystal is now rotated instead of the magnetisation direction -fractional atomic species can now be generated on the fly using the 'fspecies' block; see the example 'fractional-species'; note that the atomic mass is only an estimate in these species files; this is useful for the virtual crystal approximation (VCA) -spin-orbit coupling can now be used with strictly collinear calculations by using 'cmagz=.true.'; this will speed up the calculation considerably; use only when the system is genuinely collinear -unstable non-collinear GGA calculations can now be stabilised by setting 'ncgga=.true.' -improved the speed and stability of the lattice vector optimisation; thanks to forum discussions regarding BaTiO3 -added the lattice optimisation of BaTiO3 to the examples directory; thanks to David Tompsett -geometry optimisation should now work fine with MPI -added highly converged osmium example 'Os-convergence' thanks to a lengthy discussion on the forum started by Marcin Dulak; also increased the value of 'lmaxmat' for the 'highq' option thanks to Marcin's careful testing -Important: greatly improved the code setup and compilation thanks to suggestions by Marcin Dulak; all compiler options are now in the file 'elk/make.inc'; the Makefile in 'elk/src' no longer requires modification -new variable 'rotavec' available in elk.in; this is a rotation specified in axis-angle convention which allows the rotation of the crystal axes -thanks go to Rich Martin and collaborator Wen for useful testing and suggestions -improved the DFPT phonon calculations and added the example 'Nb-phonon-DFPT' -decreased the chance of accidentally triggering the convergence indicator in the self-consistent loop thanks to a suggestion from Markus Meinert -fixed problem with the routine 'nonlinopt', pointed out by user Sabrina and Koichi Kitahara -improved the OpenMP efficiency in parts by using '$OMP ATOMIC' instead of '$OMP CRITICAL' -changed the names of various internal subroutines; for example 'seceqnfv' is now 'eveqnfv' -thanks go to Igor Mazin, Konrad Bussmann and James Glasbrenner for some very useful improvments -fixed problem with species generation and MPI pointed out by Marcin Dulak -fixed problem with use of Fortran 'APPEND' flag thanks to user Alaska -updated the fundamental constants and conversion factors to CODATA 2008 recommended values -Important: updated code for compatibility with Libxc version 2.2.0; see the manual and note the change in compilation instructions -fixed problem with the routine 'energyfdu' which affected DFT+U calculations with 'inpdftu=4' (input of Yukawa screening length) -Important: temporarily switched of the conversion of the Hamiltonian to a real symmetric problem because of possible bug; the only effect of this is that the code is slower for systems with inversion symmetry; this will be fixed in the next release -minor bug fixes and optimisations elk-2.2.10 -fixed problem reported by Sonu Sharma and Michael Fechner with calculation of expectation values L, S and J -slightly improved the magnetic anisotropy energy (MAE) calculation -added new variable 'socscf' which scales the spin-orbit interaction term in the Hamiltonian; this allows calculation by interpolation of the MAE for cases where the MAE is small -added new variables to VARIABLES.OUT elk-2.2.9 -fixed problem with fixed spin moment (FSM) calculations pointed out by Jagdish Kumar -added new output file VARIABLES.OUT; this is for developers wanting to interface their codes to Elk; it contains most of the useful variables required for reading the Elk binary files; if you would like a variable added then just send me a mail; enabled when 'wrtvars' is set to .true. -minor cosmetic changes elk-2.2.8 -Important: fixed serious bug discovered by Jan Balluff and Markus Meinert which produced erroneous magnetic moments with GGA; this only affects version 2.2.5; sorry about that -even more substantial speed-ups for most parts of the code -fixed MPI problem with the magnetic anisotropy energy (MAE) routine reported by Konrad Bussmann and José A. Flores-Livas -minor bug fixes and improvements elk-2.2.5 -dramatic speed-up for most parts of the code thanks to some (fairly obvious) optimisations -greatly improved lattice vector optimisation -automatic determination of the magnetic anisotropy energy (MAE) with 'task=28' (experimental); see the example 'FeCo-MAE' -the variable 'nempty' is now a real number; see manual entry -magnitude of total magnetisation vector written to MOMENTM.OUT -improved the species files -made the linearisation energy search more reliable -reduced the annoying 'linearisation energy not found' warning elk-2.2.1 -added full structural optimisation; setting 'latvopt=1' performs unconstrained optimisation of the lattice vectors; 'latvopt=2' performs iso-volumetric optimisation; see the example 'MgB2-lattice-opt' -minor bug fixes and optimisations -all tests should now report 'Passed' elk-2.1.25 -fixed several problems with the previous (beta) release; thanks to Markus Meinert for the exhaustive checking -magnetic hyperfine fields are now correctly calculated thanks to MM -added missing items to the manual -added the example 'Si-phonon-DFPT' -thanks to Kari Ruotsalainen, Aleksay Golovchan and Vladimir Nazarov for pointing out bugs in 2.1.22 - now fixed -added estimation of direct gap to INFO.OUT; thanks to user Sean for the idea -this is the version that will be used for the Elk Turorial -see you in Lausanne! elk-2.1.22 (beta) -Important: this is a beta version and should not be used for production work; a production release will be made in a few weeks -Important: this version is not backwards compatible; calculations will have to be converged from scratch -density functional perturbation theory (DFPT) phonons now available; only for spin-unpolarised calculations at the moment; spin-polarisation will be added for the next release; use with task=205; still experimental and generates incorrect results for certain symmetries - we're still working on this; see the example 'Al-phonon-DFPT' -full frequency-dependent magnetic response function now available; works with non-collinear magnetism, etc.; use task=330; see example 'Ni-magnetic-response' -iterative diagonalisation greatly improved; now uses the method of P. Blaha, et al., J. Comp. Phys. 229, p453 (2010) -upgraded code to handle libxc version 2 -hybrid functionals should now work with libxc (experimental) -upgraded LAPACK to version 3.4.2 -block name dos changed to wplot; changed variable 'nwdos' to 'nwplot' -variable 'gmaxrpa' changed to 'gmaxrf'; this is the response function G-vector cut-off -BSE and TDDFT now faster, more accurate and memory efficient; thanks to M. Meinert for discussions -task 188 changed to 320 -reintroduced the variables 'lmaxinr' and 'fracinr'; this improves stability -lots of optimisations -added more MPI parallelism -various minor bug fixes -conduction state local-orbitals can now be switched on; use 'lorbcnd=.true.'; this can improve both ground-state and response function calculations; this is switched on automatically when 'highq=.true.' -most species files have been changed; mostly larger muffin-tin radii -Important: Markus Meinert suggested a change to 'nempty'; this variable now represents the number of states per atom and spin; this scales automatically as the number of atoms is increased -default 'nempty' is now 4 -M. Meinert changed the default Broyden parameters after extensive testing -LN fixed bug in XCrysDen Fermi surface plotting -LN also reduced the number of states which contribution to the Fermi surface plot to the minimum -supercell phonon calculations can now be restarted with 'task=202' -Frank Wagner discovered a bug which affects certain types of symmetries in rare instances; this has now been fixed -Important: default smearing function is now Fermi-Dirac (stype=3) -entropy contribution now added to the total energy -default smearing width reduced to 0.001 Ha, corresponding to room temperature -M. Meinert added a blocks-to-columns script; this is in the 'utilities' directory -Oscar Grånäs added to list of main authors elk-1.4.22 -Important:fixed bug in BSE calculations owing to incorrect rotation of dielectric function matrix elements; thanks to Arkardy Davydov for pointing this out -BSE is now three separate tasks: 185 writes the BSE Hamiltonian to file, 186 diagonalises the Hamiltonian and 187 produces the BSE dielectric function; thanks to Markus Meinert for suggesting this -adiabatic local density approximation (ALDA) for linear-response TDDFT now available; see example 'diamond-TDDFT-ALDA' -added Markus' suggestion that the Tran-Blaha constant can now be read in with the variable 'c_tb09' -added new variable 'highq'; set this to .true. and the most important parameters are set for a high-quality, well-converged calculation; see the settings in the file 'readinput.f90'; thanks to Igor Mazin for all the testing -removed the variables 'lmaxinr' and 'fracinr' as they were unnecessary -simplified TDDFT routines -Important: the variable 'radkpt' has been redefined and should be made larger by 2π ; (sorry about this, the original scale for this variable was correct!) -fixed problem with MPI that caused some LDA+U runs to crash; thanks to Alaska Subedi for pointing this out -added documentation -several minor bug fixes and optimisations elk-1.4.18 -Important:fixed severe bug affecting spin-unpolarised native GGA functionals, thanks to Jiji Pulikkotil for pointing out a problem with Mg3Sb2 which led to its discovery; this now makes structural optimisation truly variational for PBE -Important:fixed severe bug affecting spin-polarised 'libxc' GGA functionals -thanks to Miguel Marques and Silvana Botti for the week-long collaboration at Université Lyon where, amongst other things, we rewrote the meta-GGA interface to 'libxc' -thanks to Markus Meinert for careful testing of meta-GGA with various systems -MM also added questions and answers to the FAQ -meta-GGA now works for collinear magnetism only: it is inconsistent with non-collinearity -Henning Glawe pointed out a bug affecting the generation of the k-point set when 'autokpt=.true.' -Important: the variable 'radkpt' has been redefined and should be made smaller by a factor of 2π -SS fixed a bug in the plotting of spin-polarised Fermi surfaces -electron momentum density now available with 'task=170'; thanks to S. Dugdale and D. Ernsting for discussions -lattice vectors, atomic positions and muffin-tin magnetic fields can now be randomised by setting the random amplitudes 'rndavec', 'rndatposc' and 'rndbfcmt' to positive values; this is useful for checking stability of a calculation -the k-points corresponding to the indirect band-gap are now reported to 'INFO.OUT' -lots of optimisations and simplifications elk-1.4.5 -potential-only meta-GGA now available in conjunction with Libxc as an experimental feature; see the example 'Si-meta-GGA'; thanks to Miguel Marques for discussions -finite q-vector linear response TDDFT now available thanks to SS -Important: variable 'autormt' has been removed and automatic scaling of the muffin-tin radii is now always on; a new simpler algorithm for computing the radii was implemented; non-overlapping muffin-tins will not be rescaled; calculations may need to be reconverged -changed parameter for estimation of the nuclear radius from Z to A; thanks to Giorgio Concas for pointing this out -Kohn-Sham band gap written to 'GAP.OUT' after each iteration -3D nesting function plot now available; use 'task=105' -fixed problem with a constant in the BSE exchange term -fixed problem of TDDFT freezing with MPI -lots of optimisations and simplifications elk-1.3.31 -fixed problem with OpenMP 'reduction' clause in calculation of dielectric function -no other changes elk-1.3.30 -removed factor of 2 from the BSE exchange term, this has little effect on spectra in the optical range; spotted by Markus Meinert after careful investigation of core-state BSE spectra -M. Meinert also improved the 'CaO-BSE-core' and 'Fe-XMCD' examples -fixed problem with symmetry discovered by Alexey Baranov -calculation of the partial DOS is now parallel, thanks to suggestions from Anton Filanovich -various optimisations; including some ideas from Anton Kozhevnikov -iterative diagonalisation is now much faster -improved the adaptive mixing scheme -improved the initial stability of the self-consistent loop, thanks to discussions with Lars Nordstrom Notes for developers -inverse indices from 'idxis', 'idxia', 'idxil' and 'idxim' for species, atoms and angular momenta are now available, thanks to A. Kozhevnikov -the arguments to hmlaa, hmlalo, hmllolo, olpaa, olpalo, olplolo have changed elk-1.3.22 -fixed a problem which occurs with version 10 of the Intel compiler -simplified the 'setup' script and added OpenMP compiler options by default -no other changes elk-1.3.20 -added directionality to the TDDFT code; thanks also to Vladimir Nazarov for discussions -a pre-print is now available for the new TDDFT 'bootstrap' kernel: arXiv:1107.0199v1 [cond-mat.mtrl-sci] -added the scissor correction to the RPA inverse dielectric function in EPSINV_RPA.OUT -fixed a problem with running geometry optimisation with MPI; thanks to Arkady Davydov and Antonio Sanna for discussions -geometry optmimisation has changed: now the geometry, interatomic distances, final total energies and forces are stored for each optimisation step in GEOMETRY_OPT.OUT, IADIST_OPT.OUT, TOTENERGY_OPT.OUT and FORCES_OPT.OUT -removed geometry optmisation from the ground-state calculation and put it in a separate subroutine -reduced pseudocharge density constant (lnpsd) because the spherical bessel function order could be too large; may change total energies slightly -q-points and weights written to QPOINTS.OUT -minor changes and optimisations elk-1.3.15 -fixed serious bug introduced in the last version affecting some tasks (for example DOS plots) for crystals with non-symorphic symmetries; thanks to Vladimir Nazarov and Daniel Rohr for pointing this out -VM also fixed the graphene example, in which the atomic coordinates were (embarrassingly) incorrect; also included a high-precision DOS plot to demonstrate the Dirac-like band structure -SS, JKD, Antonio Sanna and Hardy Gross added a new TDDFT functional, called the 'bootstrap' kernel, which produces remarkably good linear optical response functions (article currently in preparation); see the example 'LiF-TDDFT' -Antonio Sanna added the Eliashberg equations for finding the superconducting gap as a function of temperature; see the example 'Al-Eliashberg' -improved the electron-phonon coupling calculation (task=240); this is faster, more accurate and now works for spin-spirals; now also parallelised with MPI -removed packed matrix format everwhere in the code, along with the variable 'tpmat'; the first-variational matrices are now stored in upper triangular format; this takes more memory, but is faster -Anton Kozhevnikov fixed a small problem with calculating the nuclear-nuclear energy -various optimisations, simplifications and minor bug fixes -this version of the code with be used in the CECAM Tutorial Notes for developers -the order of indeices for the q- and w-dependent inverse dielectric function, epsinv, have changed from (w,G,G') to (G,G',w) elk-1.3.2 -linear response time-dependent density functional theory (TDDFT) now available for calculating the q->0 dielectric response; see the example 'LiF-TDDFT' (experimental) -fixed a problem with the BSE calculation which made the response function too large -added the possibility of using arbitrary states in the BSE kernel thanks to discussions with Markus Meinert; this enables the calulation of core state BSE spectra; see the example 'CaO-BSE-core' (experimental) -MM also added an X-ray magnetic circular dichroism (XMCD) example: 'Fe-XMCD' -BSE calculations are now faster, thanks to discussions with MM -Alexey Baranov made several changes to the structure factor code, including adding an energy window, 'wsfac', for the calculations; see the example 'MnO-str-factors' -Tyrel McQueen suggested a way to speed up the Hartree-Fock calculation; this has been implemented and also considerably speeds up OEP and RDMFT -TMcQ also made some ongoing changes to the hybrid functional code -made the radial Dirac and Schrodinger integrators yet more stable; thanks to AB and Frank Wagner for discussions -fixed a problem with the ordinary RPA dielectric function; only affects calculations which have a scissor shift which made epsilon slightly too small -real symmetric diagonalisation now used for the first-variational eigenvalue problem for crystals with inversion symmetry; this can speed up the calculation by a factor of three; this is thanks to discussions with Lars Nordstrom; Important: the atomic basis may be shifted to a different position and old output files may need to be reconverged -fixed a stability problem which occurs when using GGA functionals by removing G-vector truncation of the effective potential introduced in version 1.0.16; thanks to Greg Walker for discovering this -LDA+U calculations are now faster thanks to fast evaluation of the atomic density matrix -Broyden mixing scheme now available: this seems to be both fast and stable (use 'mixtype=3') -removed Anderson mixing -improved starting guess for the density in ground-state calculations -upgraded to LAPACK 3.3.1 -various optimisations and simplifications Notes for developers -the arrays haa, halo, hlolo, oalo, ololo are now smaller and the indexing has been rearranged elk-1.2.20 -the Bethe-Salpeter equation (BSE) for linear optics now works beyond the Tamm-Dankoff approximation -RPA and BSE calculations now use full wavefunctions instead of plane waves -removed the Coulomb regulator from the calculation of RPA dielectric function, instead used the analytic results for the head and the wings of the matrix (thanks to Vladimir Nazarov for discussions) -improved the stability of radial Dirac and Schrodinger integrators (thanks to Alexei Baranov, Frank Wagner and Ondrej Certik for discussions) -added more block descriptions to the manual (thanks to various people for pointing out omissions) -various optimisations elk-1.2.15 -SS and JKD added the Bethe-Salpeter equation (BSE) for linear optics calculations. This feature works with LDA+U, magnetism and spin-orbit coupling. It is also parallelised with MPI and can be run across a cluster. See the 'LiF-BSE' and 'Si-BSE' examples. Currently an experimental feature -Alexey Baranov added density and magnetic structure factors: see the 'MnO-str-factors' example -AB also fixed a problem with output of the spacegroup code -full frequency and G vector dependent RPA inverse dielectric function now available with 'task=180'. Works with metals, insulators, magnetism and SOC, and can be calculated for arbitrary complex frequencies. Also parallelised with OpenMP and MPI. Thanks to Anton Kozhevnikov for discussions -added lots more MPI parallelism and made the code more MPI-friendly -many optimisations across the whole code -Simone Chiesa, Anton Kozhevnikov and Adolfo Eguiluz found a problem in the plotting of the partial DOS which has now been fixed -the first-variational eigenvalue matrices can now be stored and diagonalised in non-packed storage mode: use 'tpmat=.false.'. This can speed up calculations at the expense of memory -Tyrel McQueen found a bug in the 'findprim' routine, now fixed -TMcQ also suggested a change to how the code connects the points of the 'plot1d' vertices -Martin Stankovski suggested that 'ecvcut' be made into an input variable, allowing the core-valence cut-off to be adjusted -added the phonon calculation of Ni to the examples -Jerzy Goraus contributed a script for calculating VB-XPS spectra from PDOS* files; and also one for converting the Wien2K struct file to spacegroup.in -modified some species files thanks to tests done by J. Goraus -Henning Glawe suggested including the version number in the release directory -upgraded to LAPACK 3.3.0 -made tolerance for finding the linearisation energies (epsband) much smaller: this improves the overall stability of the self-consistent loop Notes for developers -arguments to 'genppts' have changed; also the non-reduced k-points are now stored in the remaining part of the reduced k-point arrays elk-1.1.4 -message passing interface (MPI) parallel runs now available; scalable to hundreds of cores across a cluster; can also be used as hybrid OpenMP+MPI parallelism for maximum efficiency; with thanks to Bhagawan Sahu for help with testing; see manual for compilation and running instructions -S. Sharma added susceptibility tensor for non-linear optical second-harmonic generation (SHG); see example 'GaAs-NLO' for details -added spin-orbit correction to momentum matrix elements; affects linear and non-linear optics -optical calculations now work in combination with spin-spirals -updated interface to version 1.0 of the ETSF exchange-correlation library, libxc; thanks to M. Marques and T. McQueen for assistance -fixed bug spotted by T. McQueen involving using multiple tasks in conjunction with 'primcell=.true.' -A. Kozhevnikov fixed bug in 'xc_pwca.f90' -A. Kozhevnikov also fixed serious bug in 'getevecfv.f90' -F. Cricchio changed the order of lattice vector angles in 'spacegroup' utility to 'bc, ac, ab' which corresponds to the convention alpha, beta, gamma -removed scissor correction from eigenvalue solver; now it is used, as before, only in optics calculations -T. McQueen suggested an improvement to the routine which generates the path in reciprocal space for bandstructure plots, 'connect.f90', which has been implemented -fixed problem with XCrysDen Fermi surface plots, spotted by FC -various optimisations and simplifications Notes for developers -arguments to 'zpotcoul' have changed in anticipation of linear-response phonons; should now be called in conjunction with 'genzvclmt' elk-1.0.17 -fixed problem with Fermi surface generation introduced in the last version -E. K. U. Gross added to list of main developers -no other changes elk-1.0.16 -fixed problem in linear optics calculations for metals - thanks to Antonio Sanna, Fabio Bernardini and Sandro Massida for pointing this out -FC and LN added option for automatic determination of APW linearisation energies (use 'autolinengy=.true.') -Marty Blaber made a script which allows for semi-automatic labeling of the vertex locations with gnuplot (found in the 'elk/utilities' directory) -FC and LN fixed problem with some compilers when writing FERMISURF.OUT -FC and LN fixed problem with writing XCrysDen Fermi surface plots -Anton Kozhevnikov found and fixed a problem with the generation of the irreducible representation file 'ELMIREP.OUT' -Torbjörn Björkman added a new routine which automatically determines the smearing width from the k-point density. See 'autoswidth' in the manual and the example 'Nb-autoswidth' for details -added a constant electric field E in the form of a saw-tooth potential: set the vector 'efieldc' (experimental) -added a constant vector potential A to the Hamiltonian to generate constant currents: set the variable 'afieldc' (experimental) -FC and LN fixed problem with a spin-polarised GGA routine -FC and LN pointed out that the energy term associated with the excess charge compensating background should be zero. This term has now been removed -code now more memory efficient thanks to smarter array allocation -the variable 'rgkmax' can now be made arbitrarily large without risk of instability -removed variable 'cfdamp' -Anton Kozhevnikov pointed out that the radial functions were being redundantly calculated for equivalent atoms -- now fixed -Anton Filanovich added several questions to the FAQ -scissors correction (given by the variable 'scissor') now applied consistently immediately after the generation of the eigenvalues -FC and LN removed the spherical harmonic transform matrices with rank lmmaxapw -added dielectric function calculation for arbitrary q-vector, see 'LiF-Yambo' example (experimental) -by setting 'gmaxvr=0', the G-vector cut-off for the potential and density is automatically determined from 'gmaxvr=2*gkmax+epslat' -various bug fixes, simplifications and optimisations elk-6.3.2/PaxHeaders.21352/Makefile0000644000000000000000000000013213543334751013476 xustar0030 mtime=1569569257.921633455 30 atime=1569569257.920633456 30 ctime=1569569257.921633455 elk-6.3.2/Makefile0000644002504400250440000000045513543334751015551 0ustar00dewhurstdewhurst00000000000000 MAKE = make include make.inc all: cd src; $(MAKE) all cd src/eos; $(MAKE) cd src/spacegroup; $(MAKE) clean: cd src; $(MAKE) cleanall cd src/eos; $(MAKE) clean cd src/spacegroup; $(MAKE) clean rm -f *.o *.mod *~ fort.* ifc* *.gcno *.exe test: cd tests; ./tests.sh vim: cd src; ./vimelk elk-6.3.2/PaxHeaders.21352/setup0000644000000000000000000000013213543334751013121 xustar0030 mtime=1569569257.931633449 30 atime=1569569257.930633449 30 ctime=1569569257.931633449 elk-6.3.2/setup0000755002504400250440000000630313543334751015175 0ustar00dewhurstdewhurst00000000000000#! /bin/sh # Setup script for the Elk Code # generic values MAKE="make" F90="f90" F90_OPTS="-O3" F77=$F90 F77_OPTS=$F90_OPTS AR="ar" LIB_SYS="" LIB_LPK="lapack.a blas.a" LIB_FFT="fftlib.a" SRC_OMP="" # get system type from user GETSYS () { clear echo "Choose compiler:" echo echo " 1. Intel Fortran (ifort) with OpenMP" echo " 2. GNU Fortran (gfortran) with OpenMP" echo " 3. Portland Group Fortran (pgf90) with OpenMP" echo " 4. G95 (g95)" echo " 5. NAG Fortran (nagfor)" echo " 6. IBM Fortran (xlf90_r) with OpenMP" echo echo " 20. Intel Fortran profiling (debug only)" echo " 21. GNU Fortran code check (debug only)" echo " 22. G95 code check (debug only)" echo echo " o. Other x. Exit" echo read SYS if [ "$SYS" = x ] ; then exit 0 elif [ "$SYS" = o ] ; then echo "Enter Fortran 90 compiler command:" read F90 echo "Enter Fortran 90 compiler options:" read F90_OPTS echo "Enter Fortran 77 compiler command:" read F77 echo "Enter Fortran 77 compiler options:" read F77_OPTS elif [ "$SYS" = 1 ] ; then F90="ifort" F90_OPTS="-O3 -ip -unroll -no-prec-div -qopenmp" F77=$F90 F77_OPTS="$F90_OPTS -assume protect_parens" elif [ "$SYS" = 2 ] ; then F90="gfortran" F90_OPTS="-O3 -ffast-math -funroll-loops -fopenmp" F77=$F90 F77_OPTS=$F90_OPTS elif [ "$SYS" = 3 ] ; then F90="pgf90" F90_OPTS="-O3 -mp -lpthread" F77=$F90 F77_OPTS=$F90_OPTS elif [ "$SYS" = 4 ] ; then F90="g95" F90_OPTS="-O3 -fno-second-underscore" F77=$F90 F77_OPTS=$F90_OPTS SRC_OMP="omp_stub.f90" elif [ "$SYS" = 5 ] ; then F90="nagfor" F90_OPTS="-O4 −openmp -kind=byte -dusty -dcfuns" F77=$F90 F77_OPTS=$F90_OPTS elif [ "$SYS" = 6 ] ; then F90="xlf90_r" F90_OPTS="-O3 -qsmp=omp" F77=$F90 F77_OPTS=$F90_OPTS elif [ "$SYS" = 20 ] ; then F90="ifort" F90_OPTS="-O3 -ip -unroll -no-prec-div -g -p" F77=$F90 F77_OPTS="$F90_OPTS -assume protect_parens" SRC_OMP="omp_stub.f90" elif [ "$SYS" = 21 ] ; then F90="gfortran" F90_OPTS="-O3 -fcheck=all -finit-real=snan -Wextra -Wall" F77=$F90 F77_OPTS=$F90_OPTS SRC_OMP="omp_stub.f90" elif [ "$SYS" = 22 ] ; then F90="g95" F90_OPTS="-O3 -Wall -std=f95 -pedantic -fbounds-check -fno-second-underscore -ftrace=full" F77=$F90 F77_OPTS="-O3 -fno-second-underscore" SRC_OMP="omp_stub.f90" else GETSYS fi } GETSYS # produce the make.inc file echo > make.inc echo "MAKE = $MAKE" >> make.inc echo "F90 = $F90" >> make.inc echo "F90_OPTS = $F90_OPTS" >> make.inc echo "F77 = $F77" >> make.inc echo "F77_OPTS = $F77_OPTS" >> make.inc echo "AR = $AR" >> make.inc echo "LIB_SYS = $LIB_SYS" >> make.inc echo "# LAPACK and BLAS libraries" >> make.inc echo "LIB_LPK = $LIB_LPK" >> make.inc echo "LIB_FFT = $LIB_FFT" >> make.inc echo "SRC_OMP = $SRC_OMP" >> make.inc cat make.def >> make.inc echo echo "You can now edit the compiler options in 'make.inc' to use optimised" echo "BLAS/LAPACK/FFT libraries, MPI parallelisation and Libxc." echo "See the Elk manual for details." echo echo "Then run 'make' to compile the code." echo echo echo "To enable syntax highlighting in vim run 'make vim'" echo elk-6.3.2/PaxHeaders.21352/make.def0000644000000000000000000000013213543334751013433 xustar0030 mtime=1569569257.941633442 30 atime=1569569257.940633443 30 ctime=1569569257.941633442 elk-6.3.2/make.def0000644002504400250440000000720213543334751015503 0ustar00dewhurstdewhurst00000000000000 #------------------------------------------------------------------------------- SRC_MPI = mpi_stub.f90 # To enable MPI parallelism the MPI version of the Fortran compiler must be # used. This is usually mpif90. Uncomment the following lines and run # 'make clean' followed by 'make'. #F90 = mpif90 #F77 = mpif90 #SRC_MPI = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_MKL = mkl_stub.f90 # To enable MKL parallelism, link with the MKL library then uncomment the # following line and run 'make clean' followed by 'make'. #SRC_MKL = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_OBLAS = oblas_stub.f90 # To enable OpenBLAS parallelism, link with the OpenBLAS library then uncomment # the following line and run 'make clean' followed by 'make'. #SRC_OBLAS = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_BLIS = blis_stub.f90 # To enable BLIS parallelism, link with the BLIS library then uncomment the # following line and run 'make clean' followed by 'make'. #SRC_BLIS = #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_libxc = libxcifc_stub.f90 # To enable Libxc first download and compile version 4.x of the library. Next # copy the files libxcf90.a and libxc.a to the elk/src directory. Then uncomment # the following lines and run 'make clean' followed by 'make'. #LIB_libxc = libxcf90.a libxc.a #SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90 #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_FFT = zfftifc.f90 # To use a different FFT library, copy the relevant library or include files to # the elk/src directory (eg. mkl_dfti.f90), uncomment the appropriate lines # below and run 'make clean' followed by 'make'. #SRC_FFT = zfftifc_fftw.f90 #LIB_FFT = libfftw3.a #SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90 #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- SRC_W90S = w90_stub.f90 # To enable the Wannier90 library copy libwannier.a to the elk/src directory. # Then uncomment the following lines and run 'make clean' followed by 'make'. #SRC_W90S = #LIB_W90 = libwannier.a #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # As an example, here is the make.inc file we use for our cluster. It uses MKL # LAPACK and BLAS, MKL FFTW and Libxc. The Fortran compiler is mpif90 which # enables MPI parallelism. All libraries are statically linked. # # MKLROOT = /cluster/intel_2018/mkl/ # MAKE = make # F90 = mpif90 # F90_OPTS = -O3 -ip -axCORE-AVX2,AVX,SSE4.2 -qopenmp -I$(MKLROOT)/include # F77 = mpif90 # F77_OPTS = -O3 -ip -axCORE-AVX2,AVX,SSE4.2 -qopenmp # AR = xiar # LIB_SYS = # LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -qopenmp # SRC_MPI = # LIB_libxc = libxcf90.a libxc.a # SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90 # SRC_FFT = zfftifc_fftw.f90 # #------------------------------------------------------------------------------- elk-6.3.2/PaxHeaders.21352/docs0000644000000000000000000000013213543334761012712 xustar0030 mtime=1569569265.524628599 30 atime=1569569265.255628771 30 ctime=1569569265.524628599 elk-6.3.2/docs/0000755002504400250440000000000013543334761015036 5ustar00dewhurstdewhurst00000000000000elk-6.3.2/docs/PaxHeaders.21352/Brillouin_zones.pdf0000644000000000000000000000013213543334761016637 xustar0030 mtime=1569569265.344628714 30 atime=1569569265.257628769 30 ctime=1569569265.344628714 elk-6.3.2/docs/Brillouin_zones.pdf0000644002504400250440000057763413543334761020734 0ustar00dewhurstdewhurst00000000000000%PDF-1.4 % 6 0 obj << /Length 71 /Filter /FlateDecode >> stream x3T0BC]=seUeɁTA3000#5Vp Ct;N? ! endstream endobj 5 0 obj << /Type /Page /Contents 6 0 R /Resources 4 0 R /MediaBox [0 0 507.249 517.809] /Parent 7 0 R >> endobj 3 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/var/tmp/10089666731916source1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 8 0 R /BBox [0 0 507.25 517.81] /Resources << /XObject << /Im1 9 0 R >>/ProcSet [ /PDF /ImageB ] >> /Filter /FlateDecode /Length 10 0 R >> stream H*25032U0BSCs= C039K3P%+ n endstream endobj 8 0 obj << /ModDate (D:20020211151125+01'00') /CreationDate (D:20020211150909+01'00') /Creator (Acrobat 5.0 Image Conversion Plug-in for Windows) /Producer (Acrobat 5.0 Image Conversion Plug-in for Windows) >> endobj 9 0 obj << /Type /XObject /Subtype /Image /Name /Im1 /Width 4228 /Height 4316 /BitsPerComponent 1 /Decode [ 1 0] /Filter /CCITTFaxDecode /DecodeParms << /K -1 /Columns 4228 /Rows 4316 /BlackIs1 true >> /ColorSpace /DeviceGray /Length 11 0 R >> stream XR0G}5K4W QL/.܂D,D$l*r@醐A~UKE}uv8LÄת^t}._5UOIn1. nuW]m`UGi{9'/W7tȩ30q;_ v=K8  m.K]WUKaWnx_TگWL]uvPXwLX.-k__]|OzW_"ݏ__*o^u {]f+_$m F#o-.4Gk0 | f1030odcYt\\>YF̎ ܁ɅVgUF"xlyϺ,H.n4N}>Y荣/0hZ 1B!@] Ͱ`h!@h#:1-YUy0@#6DGoB\Dvn#E0R8˲>^0 kraC <J xLsR)D ._? xX(s. @9-CQovD  A{{ M>0oIo >aIl> ;ۆ{}&z]*}'}xo`ag&mJx7j0?6WHpaA0Pn"}&M tA 0m0 >aa0} q}& `aA0MȭuH7úL1 >PML60aanao ; ke~ݜL aoޓoxk <0L>z7°eoOOA-29xH0ܮx!iNqC.&@U p/ 6lS28dc$'3 sHd'J\h6 Ze~"8-ِ0F٘-Ve٠00#p[r8|#| 2a&G[#n6 ]F# `G/ i""""pH}40"1`*B:L6{)|a RR P'H2!ܛAd2aW;q6Zt Xn8I QY P6h<&@R6TidptHc9: Ae7Zh:HK2id6aLNn !&$PVd<A(m' aaI#"I[tm+ .A;t,7Ki6ү-KIwKl4 {ẮJ۠m' ?$zN Imt+ tItu^ MRvVj$[I#'[i8nǴ7Iv ҭvVVÄa^J:++l0{I+kᇯ _e47A%!ޫtn I,67IxinÄN7ivk/na]^aM۠maU^Wm-AvJ}aKt%m/mҭ7Ivݺ[`ä vo /m[ ქT-,EZV/ X0*tI0wIml ^T짥väuTvD A$إtL$t$-I]-[ +/IۥMl:J tl%aXt7I+Kn Km+oJW :UiXnv,: ?Eb .Hʵl=fFnM <7 ]\7I0t[aa!n]VpKp\47Iw m%Kۥ::]Km^/l anpKzl%]U:I턖ݺIz 0V/zuKl% : -pV{iv%[h.wnWIv[aJҬ7Iv}aKtOa]i;aImiTaҧm/aZm+^-W Tqmp;i{MnI6l:^^ޒ m ^퇪iS-I0taUN/m!]vA*K :^M~XnA;i6aKh-I}+ ={i;m`[i6tÄm"%}oKڧl:UN^鴷 :I4Im\m-OU; V ۥVn/a[Am%m't0MKlKm[xnl8*V!!-t@>ᇥr{a+ alF :Ka|7+8]I&P[eTKa[l?t7ZmtoJW- xa[KzI6 A^?VKm/ixn]T%i n i]m~]/taa >ix[vհa!i8n]¶NAX`VNWt* l?Kh-m' >a&tm+ Mv^a%l%íw[mm/a_ mҼ7I-mޗx7Zav^tmI0[i]%XaK:[꽄m/ Kp އKmUmiv޽0m tm+p%7I-֜7m/amvݾ/ a[a+xNh mqt鰗am;l$Wl$t]֛Kw_}' ]Z[~ V^AWj 5nv[zIV]Ynm ;V I]Jޗ碌l%~^4h&mK&SJ^I~[Wl%WKUn}wJ_l%umt~m~/ISޒi}w[kin}aԉ&^h*_uKմ}}ui'wU^5@˙ϯoTB)0,&@ڂr zT9r(h&ީb""Mx'S *.JJ#\ӯ, (OwDG !w,L).f uQ,He[!,ڲxjCf%`x6Ckw2:H6#mŔkO]nfG[d !YdEz# u) oe@d ܎ckWLlG* ":WzR<a%\\[Eu0<3Kx߬RQ"-OT $zR#y )No\ȐB8 ᰸rzFF3x4MuHʨQ#u{{jxfB"=]Sato[_mv%ˁE?28$uZZ=.G~+B$9&a7O[W}l Rumu{s#\OWݿ@ˁGCM_iޢ@9F; T@jAFJfiOzDn$[_7R~@nV"Q {6k#DKTo]'K-_6>ti7Jմi'O M+Ioi7M' 'VrRoI=:[n Sk}P!;ImuIIMoo! mo:t[z7\7NڒMK{VtVuK|+nҭ"Nm-, aS}л m$]:oA}%A}o[zMXNB?>m>:Z _k{adj:XL! [~}I-(wAm=h  ]u! M]յn AagxI]z M꭫i;n=Roo-{vwzZOI~mA-鄶ޝ'M+ >%t}麒jvޔ- $^ޕl0=iv b޺H%ImIl>K}{}a%I6^5BN/n{@~Xt08Kt!~}$ >t=ݥ[uPXa'uo,7 -۪MںA'n@Gm{ka.xRBޒ[}U:i'L>[t{t <6PXouA-&{zKRۦռ$t!tWnmI*ޡwo[]zK{atJ.viu%o^JwTUXo[}KaKopo| CXztj^v%oknn[Iw 4PJ҅~&ީ{v,1 _o)-;I &mzIm}}U7IK 4JvO=ޭ-ַuwKonH&۵aS%iST菆PA8ڇXNeIߡ MuI[&]_UNޓi]: ,l ^}mz[~i%}Mի^=W$TOKku _q &$^ZZU}/m&Uom_$-m&aOMv*mJ @ ^l t*%jpkzA:JVߥ 7h! =ҴE7tI zH ii½0պtnOV%a &I?eN V.[zI{i-0MwM[ W ެ ;o\26W[J$m-t%Ň[޴Xa$mzմ 7XIp%OMT}%Ma| B#@#oI&uuItf@сt%Irh(fCV0}%"]o $a$}_IGAVL?ҴDbHR7n KPl?K[A*0ޒ -l˙9V烙2m\$'"Uj0KA%*l\;%uik Kw;H*v 6A%zm/!pwҭI75J mI-}-_r03zH%ڻһէiI^P +E ooU@mKnKa$WAp~ T}+Ja[u&ݯ[~kJm[oЫoh& RKn}w[m$wK@p~K~ot-:~ۆXI7sAm#i& %a۶{m) 0gq .Imkt1[ak^۵IMxa]h*A~$ZnᥰT[NޚInJ6굷$l oK&ƨ A*x0WawJnې`s⧇kjWKo"ᾡIw{aʒҢN0۪. I'^Ka%~T ;$JH_ީ{}om٨ha/ڤÿHuoUAI. 0{OWv~_8T[{*}ݷmH=vI;z!^3L5I K`C a* {*x۠H }7{JU 0oi%m%ZoKnam]IKv~$?wm$Vވ_0[ޚA Ww@O=ݾ*i(.XNe5D1An .u w+Z!aKӽ miGmrô o҅ Ӄ &_ ݰp rS~BE0B"+hOib~~ v׵}IA0aȮݥm7IK^Eontnjڽv7$} | K dRPo_[jK;)VvmJd)m Md/ IeK5Pص{D6waT,5B# oKl$m zn~a& q_ "/[ AvD0 ǧ`{t |D0LJN31m pv Nޕ`\-[ 4<*&%;^vRp0'V[ {Ah7n!dT6"GMۤyr 6ݶ[iG %\am-g'0;Jm۶[ @aH Bu5r7IL70[ g 6&b!#rb@o ^Xc![[a! ׳Pam-mX {h-RamW muV܂[ -߆. X. Am%}D߳GdY¾cûa dMt@>MKlNv 4kAmA}@6ނmoA{ݴ i;3W ;;rBsw}^"h2z XU_ KlL0D.­_JZa4۶K ;$~^0 l ֢87M5-$½mI 7 eZ{Z} (,!FkR0۶TAaa.-gCtAjItvujAc>-&:Nwa6܁݄X@Zml%TݢIЈݰ]iB`mmi(pm=oi$a-"\ ۤIm[uڐ 'mu۷P}pa"(VIuvmDFյ_^0l%l;ء>l:7[E(5[0K "ỻiS~ۢj Y$m]ePC=M$aݶXoN"8$7V(Op`m+~MVi(C*}paK't{vwqI -բz[omM6j ڷ(oݤaK/*op[l0[D3$:]nK!l+Xaݶ[l3 WOAq'}؈e4ˢ>a/O2Vl]"!$?onJ(vtX d^G Mz Qp72d?if@a0J9KH CX m 0CW'oۥMHA֞X% Xm/m}' DwiPW 7 ~ Hj'5QevU$m$GպA &(Q$/iZl7L^ֱ4V @dV$]a8} 6l+a (DrmAr;;G:޷ D %8e>{I;@evWb$gCJ߽B6w.ջga@At퍙 A@&aߦa\'D0jA}M 0c 0!G P9[]D!\){fnH}>A.v #iAsOkA[mPiJAiþ Nvep ӻXC\-z8ې^ i5!ǐYAPrHgm&PBBhepBAAV݄" 셺!M a6<tA >!Σ gfWVuX oݶt@Rݺ*;2 CovwaT5t>AM m 7nߒhkުBQaX wI5[ m4yv!rrrd %9H0GV۰Nsu:i6; 7M{n! ЏB|A Cun@oC+mmmo l5149ۜ>#NS+ ďedMM .[tvv  ;t@t)m@6nLaj7& aAPôkm  Xy* v]vאT7xH$v#P5ǻcfŶQs-A'peC/ i6m$cSM;Z"DH$Px"nm$l^!ݱaWvA7JAq\Uo 0@6m[`@"f,Nƒ%xnci~u@$5ăQ-{ nt%aq$\T$O+~Anφ m$6)1]TP璖a& l .k"lmtCInH$<;P`'}4FH_D,"lk Aj+Kl5Aa"\a[`u<4n+x.]M adq$ nTfT!=8u54nĨD ë [gv.Dxt'܆ njxg0 Ȝ` [qxADGDua˄0BWTFW0Bf[J[Eˇv頁w]H 9HO\vm(\EC0\ -@XעRZ x)AoV+!00-J"P<!-ӆ Oٶ _cVj'CFIhRmP v ah5 ㄼ#  J@ "l ZG|A "la6J Gj̸ |ڰDBh~i.v+Dp<KVD)XvDu9yڄ\aIa5 ;n0<H莸 چT=A - lQ!3{m-9" } $M _ ha- vGctADCvL$`n+aNү'HK I 3*_mrkh m d .I_d㔹L.'A/I0h@G" k[r\uB$Y,$n `re_dFH $a"8.2 x4WI%0d#{~W x.ܧJT[ Sq] xn7%I$uF !-++nhaiR!/t!aq6U pm$YRdDص`ߪLsd;C #2= x*lAF)yP3wI -<3G5AUJÎS%RK .AI_k'VKlP-,K}IV'Aq<0^> Pݴh"lfV'ߥV ӻ$.IB Wa?$M{wIVua}%ʤ\ nNZ +i*me=qmnKtګz!ޙ{_N aCT-kmշIu8Mv nr xۦ$]_V/n${ih-%E:H7m4M]t ЂߴQ >nN$7[,$6I۶A@D.ڨI]T{^]%g;rpނzO*aIvA$.:^n fDtn{ a@V}$"=_MבMWOWi%nK-=ڨi 0wT7HP9!n޶m~ս-iǷ I .WJEu axA%oI}iZL7 {i$7oޜ.𰂠wIU=.v;0GI0a .ɖj6h$4m솉l5vp c}v4,0wIm=߻$nd2)d$$mЄtKXanW%z^k,0PImj)&A^}[TnAw}+ۦ MIn~" Mֶҵ,($l n[op GTm=$vj!VP .ޕm*mtނw}5L7a4TA!R iA6 Xa-Rl(A$tWnn *VV[+h3L: UNh285I[oI!P0H*vaI0 V۴ VIHH$JH&_oA4j@ڦ %ah[Ϊ$IPI[oA j"mJKޕ Ca%*mU &wI R}$it}njm+PZA-ޓMvUU %NiI+V6*vhFV۴҆KT:K"i&I%m+A%oto^[mBOZLjI[oۦATpa$_!mmI%* *փlJ %oH0DR[n=Sa$PJ֛Im4W}ꡆ]$YrAA^KWt 4W+AUMxa[oAu $ޓk K[J -Pm$ސo醕[{.Xa$N@KmJh$aA7 $־ %n$t -%ua.ӮVVmIu +m8Mv~m$uaoA{xaޗNiUL54Ju %V۠i%m'In~ՆVozmVZA [oP@m'pwPI[ ]7MI[Ai%o +6m+􁴒z *ߤa 4IҴނҼA-W&I[oI|0J7L0]'0;TmմI+m7^ 4wA76[%jڰ ?ᆒWoKIAP հ[4Vtt6K'H-a+0z uMlIm' %턟umJצI[oIPI[oI KKJI+m+ރh ]E-6 Xm!H6JL4K &i%;2M 0\;++Ii{{ $A $+Xh$ۥm.m$I)]"mA6A(}H TI)]"ool$[zWN $zMm xA_ᴼ6H Mm=>H-ޗAJo&WI/ҿd $'IJ nҿH6KޓӤA VI[oA?j 5醒V_mKiH+wkJdIQnn 4VxA_ja$zNA o0I]}I[o :ᴂVuA7 𕥰i%InI[}kAA{}JxJAI+ovI] @H M[ $ݥuH+h$[l$ýAv+ 4V}%mJ`үxIҰImA7H-[aWmLPmVxK 6A[' H+m* 0A- +a$M0ۄj 4WmpaVI NpKmM ܎aBv`XmMa ]h$A% %n 6Wk,h;a$ 0an Ia$ CmIA%m`A[unI[a$ [a(aJ+ 0I[mA&a$H0i M mA V&i iH7a%$I[ta[aV& $ i%m`a+l0H-0i%m WAH.i $a  +AIn° &a ރ WaH6I[ a m*m&i0 ۦZ W6$چj7h& I+mKndtt [a$l0˃b l1H+ l A[ PMKmmM`I[na&I^ 6V MKmm  [aVH0KA n %AA[mÄ7 4M wH0Jݤޕ6Jݫ 6[ti$IvAA]Mt Rِ*H7HiiKn[V m$6MW[ti%v Vi%@ޕJH+majI,=#+JP LI[a[tI+mi%m:A+0WtiaH0%o-A[$ AmVۤI+v B nni6W0i@ޕ _IH+mJ&IXv n ۤjmPVA0Jޡ6j 5 wI[TA+zL4 T% H6Am Rh(t@IwHP l0I+vA[za$ [t&H%i0Ji JmA+n =wjHo[v`A+A T'H-H+ ioi [JmH-Ai%va m Aޭ I-0%m Vi%vAnP [xAچJh& [AKaX5 [i%atimH- Vi A6VPA MiCҀ aL:JI [l AjI 6 $L5AC m RL: m6oIV 0%n6 na A+nA[ $A-Ai0attm Ti7 nanW+I7A+wICn!I m$ %X4H:I[p 4 Ҷ0JݤP۠Ia J5Jth&aH @ #~Jm[tiCz &[pA6AC -Ai60 í H0V& ݤ mMջA6& +nm(mia Ci0ұh \$A[I +h JAWI UդjK +e0Ũl`+MÑ5ĺᱫd \Dp< M:# 7 \:1[-C C n  征P]`2ChvW2AN+ˈ6 `s!L-X2@0G#vFÑGCs``6v<|JGc10Dp[ 9`> 2 `9f[¶C$f 3"9Cr0fe4ɐ ˑ@>Ν0H2YluhF@MQUچi>.BeQHUT^?BJ28##fS̉!"@|ؑ3aHk r;&  A"893JVc"0aj CA 4RdB>EC,$3!AC0@hM=i U i u4AڄN Oaa4;[MVAݪ}[tO~4z}ޖӽW׾~_{NۥiKWiXIoOmVK ѥ^Wo!) ʬ.9}dMDt]]iTpo:y 0CA5 J&_6x )QN:./i"q„2 v7> YPʅ Hs0q"es!&@рB""ErD3R 1͆WX~ " P "d0H!i$@±; Zzaa4+AhsP0M4 49;!M ^_4Pfvp;Nx_}ڮ}ڠ۴׻ =%_'Tz~}mOJzzM]]5׻uMwkޱJ{kOTo "6H5"]SZ^ {\;~! {w괷k d3C!^Wjqi& q:)?y->LQCfHCC@4CfmH1ohp U Pt~ ڮk'i}JD_KH{-{j}oL_.u^~__v_KKm.+`uMV~.]ԁqJ5_!^CCp_wwi{(/~@("#wzwWe֛ή ַy ^# \rHfJC,sDッ_ 3H.A!=i\&߮ ú;tzW{uOwK}VvW}=Pvt ~kkMkvoK[ P(` 3z}{V+ bm0]] Ko[UPf8(SOMfD]IP_²&+j=n]oO>ۇNޓ 2 9Yj  qo ࡊAD>ߤ!{. BO @MO_wӆmS]R[};?zi}=SN~߿ ¬5_aVo&nio?@ SAߥ~UӾN Ѱa4L/l= 7k0P5M{MB;7 ",}~auv i;Aa0DAE3Jo} 0fJa0PՇ"B%&qB""#SaJt! Aa `221s Ʊ(CaE ܧ>ˢ:.)xeyD:`^9 Iۈi~Dz [5`m{Am{ݻN7owu[[uڅpӺXkյUn4a8M5 UL/Xk۴``զ5ij&a4 XT @a4v C83p\AQH ˜rAwLdCk;CVƊ"BНЈDr(@}Gw(&]/KVڏS`?@}u_2^>[!j?ٺCU,HkЧ 2EN}ym-5-] 5[n.?j/h-.SKz^Z Մ(^};I\Ah[Wh:a-zPao"w!z"r)?Am܉ea /a"]ȓu-K }tnKJi! ]ikNkVzm-jh0J"R5TWQJIS I[]nAtjt"? BNυ^ ;B.D~?,i5uOoٜ|>k}޿u߯C/k.w2?_vPhܳFmp6Ii+HT@@YDn z!(疞 g.P$cR4\&x. ʂxAg1n@ D+2}!<^Y@ڐ + ., ܏hH*@1rgtex(RG"8HL@@ d3\2Vxc 2C/O"x NLs=!<T""CVfe0GFK`W"@9Hr).j#0(H!DDDDH$°Et& &9 Ar43P` ג+@q rN&9٥ DM r].9,炠bHdvG-.B""$>Gp<1DDa7cCfڕe'0Y8[ S:aBss!&R&,.APs4tlpɎ"$3\1~$FHm.Rg|#8\c*ك7:8dܡ` Q)# [ aArIX."$fa7#6Xb$9!QdppH [ x(rFB"@:# Pr6R!5  ),a :e9N$cVA] DE46h!L";#MFrˁDIYuDGDp<D5ۧMInS%(Nns <BCQI v&PA*MGex4ih& Yږ\ nGALkaC< 6+I \D867Rh&,"6ˁ᜺ ICЈ1#rj`dZimp%@<KmXmn,o.XK 0 Eᵤ"8Y\<iT6a9\` %XXIK+Gp@@Za++8 BCX% Ä'pQ])Cl n &xin[H I,Vlq < J(MX@²f![fj,$;#5]&,hRaɰ0<4\6 "o\TW K&€xi ۄM28D|"fPL8"7QxjJ $M BSGI 3h0r#m @n x4`p@lr` ܲ7EAP]Ä  P૫p`ܲM$5Ԩ&,GH-A/୤ @a@`xk $x6*&FK!X 胛K X f L8I"P X ԐnY^#]AQc&FI zaYe\ Ae&  $pAeXdp<5H(4pE Ő<B ,YRH M'x*`tB+S@<" ́TpAe<5ˑf ) lVEMYhVfh&de  *nYh)fA%P<4h+P,"8t,e & % ; CYg = %uY{t:Öo*;AYo^YzL:ZAY_Y AC3 pa%Y`}RUdT&%,°WUI@F]e0xA7X KàV+,zA X ÂE0MX@4I'ጴf*}&WeH0X [+ ^ `9+ a, IzM p oAÓuY\{PhL"MP',堯iu@K!8,HzMQ,YՇ tnux W A I Z ,C  Ϩ)H7 ^8Gt7a&A aUhnEP , A (X*4 &APXDZ J7) aH Dt$@ݕT, CA Aah,.ڤ*%7 qG8H@Av7AYh%} Óx :`A7aB@7[nATZ$AQ> %a FppE`IppA`)%S TZ&*uK-& AI<$p epA)U:z e4JMp@ XB p,A+74nYALy'$'I6 a-Ma *,@H6n,  df,4*aɰ| -mf a A:ICX%ID [Aq!ʃNS0D7K*kr;-N+- D5) h \DDD˂'L$r 9.&E Bp8nXKkDDh(c9 `Y ԃG9Fi!p@"ٌ#"IۖB$)` Pr9D|]%mCJBDFG Gpp3#fG5 %"""BeK9--R#$#q7E8lmOAn""$#v\ nCM§ *2DDzfM`(x4Elp00tC] )DDJf)/  .|5 ЇD!""CTr942t@k2 '"2 r(Pe2sC6":3DDDHe&9Uo".DD283 OXSu<6AM t$P3d0糄+YvQq Þ 9MӼ[@R [ˢ|\ = PkT,@#.2:#p3qA$-450;*ьꋌ!p3"_#ĝX]DDD8!|#AT nDIb#p#dp< U"""B# ! KNY =S݄r@,! R jH]:2T o` VLj2!5[m2pB, p`{mS" +yg m2@ޕd2RV 倵\@m׆nP V@2_ Au,a | ܳ2%n]YCϿ bG)>׼6[q!8/otѢ#L`'' o@O~b""$8炸GbmwDDHA%"z؈i!lb"C4r)H0dFGD E""A +vuK+㧷$C8A~߶9!ðA x}a HA [EBio4ie _ 9 "P_zNHfyR/ӱncx_׿鈐ʂ 0sH4 R/__L/fCd.=C_""F28.^#f{ ?"g#<$~Ј#;. G67 u""$4Pd|d"!u؈ -Џ>GDvGU5Ou""RDpv(=f!-wOzU~ֻw}u?{>_m} e}m-z/UNx{ ^Oi_z;64M'Kl7WI0 7cH/a^G׆U m}'D,wo' ?Ov8oOV`Okaw[[a?ݶ+{oM?{h4E 4OVKSNwD"~o߼: Xm[_wM[߿ëoXpuoީ _  _|GihÃK}kDY @WM."45B"a +_߿q;P/pZOiDr{{i-Ak醒ZIW_u5k[ S $CcXK$EKVWM2i¯䌊؋.]oK\bB[`h=I߾'M_-F97 ¯XoDi:YL>.ootoAv{e{HzkGEpjAnI]&UprWZA9" ^}ݯ]6L?Sl7v'6_X&cӆr&R!ȼ]$zvtP̮֕?J{~VokWWjJBR?҄0ֿmF{4(* =7V{V4.87K_/W؄_WװL_xi7 /u}5 _U+{UŦJ~0/u}u ?AWtM"AP?{k _M_]6 aX~}; ~]?i&+_l-\mc MQ}}?]]u޽{W[w[oO__o}g"6{'WK}q^ݯSM_?u} VmzlGIށ=p+~(wo-]_A[^oUuooL%oz_;_߮7~聉u[AA!'6 9 'hԃu8h$'h_5Ml` ~M#//@ki=Ճ! um55yő0ͼ/[Q dX2+Љ`hzKVވ_5L8:+oK.' ~7N(?.O? 6nCakm,}+N%u 4 zCUW8Q參wFCpiB z kz {&AOa;_vɰe v!;&A+vD2 mmeto򾁳]^3IxhUE?1mwgai:.դ^߂Oims$N ̍Gi>+ \'kJ)Hx%l zAh4wC>nu[oiC .AvmdS!+ r5i .[C>v~Tވa_zng"&C;q( _TC^I{*hJ^VM]ê @lKh2r0w % @,ȯGv^ o_ ?ې/bk0z"lտ/13$`5-]}AQo" mWiK[m/ 뒳*DY9[KD1'_{ <%r CWj!d" A^_h2 +A/  w*vpdw\[%wgxт "w@ۡa2 K@#;56{\Pk w،띗ah5`%l3a3gecBET_C+W(b>Yv ay 0>o2N{{ o?o;%X$?mWHD${HYOU\+%!8 Vwt-~Cdt"eck-&od2wXc@?Mz [ $#N"8>v{Rd\| H1'xNK P2R/]+/L$eA_!+۫~B`BӄGMBvi[nM-胫 &U%aPV( aw!9GOuZW**&ğ'l+~%A}ow[UI:+"n׿˶D]?T < mߤxahi*} P{TU.ͮ[r Z:Tl{`̊}K}K A!q}B#aVHiB {I쥈eG"?;+Zߦ`r+cQXTrkLl[&)̺o+ $\7!l@>o"@4;I=CB_kI;jWY A2 Ws0P }KOLu/ôPppִἷ0[쇚%0"}W$v#V >&]sBd<&˥> 82;Wx" -m^ 2sUoL$Sȫ 'w0p+MC@@6gzaH#GvM l쪂rʭAHLe[NA݄ ݠ&ݠdp\7oV L"fW ۄ(dpftATwPi_ ׭t';H7H e9/ ] Dxsjo giXc;A(G_֑x*#vvo$t !;VXd$Fߠ3Mcgo D3@]RYذm HC8Zz4yXm= a'x2 [W},»

O\" lU82 ay81 DMLUz[EW aPAy2pgEv0^F2 en[ [I`ʗaA84-lȬj m'<" 쓕@nfZx U ko 6< </+ UkWi 0<K&D0E td ]oIh3VL=M>dA COE֒l.&`~7W] 􁆷{MUX2 vb̰%0Kao Dt _qJ) y H.n@ 17W Z%dь03LaW[). s@Ui OB莒(B|>vZ徠&JAܳ`1RrMx RLOaL-RnsF5t & y\4W(tA\;&; } o" PM7?I;, Z帘|U nK(Ѭ\_ D1 )+;"'n}5A@C<% `,ʠ$K , WP,A@0'wL% ,"l4h;{wh5rCm8{L ieW taB-7 \&O;XSCoi~JMEnom7@-*oԛ" $t& ]֭-u&@W| d/> 8L< &€WDްa B]#olPWa}@Y~ 0 >a|4A(6t /m6+M V`;A~@sU4@܅mv !^"$@7Ll!!d%t0$"C0rDB2=zXuib >-ߐD'DMhu"""CP{ X%kPYU;T.83s(+%5D(† Ao{$D _""UtHDpK Ih  iL&_*%^Zփ"S K3M= q%UXA0% _4K__* t" +./aUvOz"]BIn-&H/Vw}/׿[0Z-JKR-(%Ke AH4SJ+;)@i+/L( AXM_o $+nW[AI/w]JzA9ܡwn: >z\|`5ZB:\&v /A@'{մ7OZuA_# z kն"#Aк,_%_o k׆a+[넛_ow߂ oZoRCMǫt+k*~? mz{-{_O| ]{wA􂾿U5-ȡW ;$Ͼ w_k [k AiKKKnzZo I{*/ xSE/__;{O ,2 +~ _~_%oH%-^^~lgot}ҺAA 4 tWZG2Dk//߂ AW_/  ._h/IPAn3]_ /A?A{^/\$w_.A{- [vV;{ߥ[O  %i/+ _%| _/%]HҫO;x@@_+~~]z^]W_/ w_ 넟_j ~/A}(KK/E eOAuKT_Mނ wI=BoKK%W[H"`^Ho_/I% Wݯ4AA/!H"Xo _۠i}>  ۴6%u mW7":/a$>ޗC| ݄[ذ@{KH/ mM ?azu*_%}[@+/%߰_i?Bw ^A-o%][4/oKA{/.Anޖִ %!$foA~%KZ$֒k ko-p\%nA_7T4%턡  -CJ"]~ ._ݠwT%z jWJ B %\a) ].Cmi,K| Pvl }/W[jW.  D6͍B`~ޗnk+\%@ˠm%Ab Zm4z%AWOx /ٰįKk/KD6͕{*׽/oA~dZ ~uKChةBK/-nޒbEOJKՇA/Pj̫Z Z?oA_APս/*| 2TKѹ Ii7]!nJ*J %vJtATs}A= d56iWX*2<T7 yi u w R[G]?MzZT/ n }U 'Z72I%~p|%ҠD6& A7 K{ W$ݥVAi+5'&| % _ 7 ^/i?U _& V+UۅZ}/ *[ۥw_ ! @^^ NK_ z^lK ޫVQ $ Oo yn 7z/ k'DEo+^ |$%+ A}oKrnA}ޖB = ZzMO`PA|mDLސZOI%| JD?L>-aUKZM+sPdނo_+/[@@] x@oKp| ].pPeA7Iz +T WWu^*&$" Mn~)4)jWA/.7p`'Aw&#A/K'7Iv/ $g+i 7}&Ip@_, 0$^X2?i>6r#itY F+J 8mNfEqaZ^,^i^4d* J:WěL i W@4& +]EAi (tGQ:Є.6%Ix بZ^)6Ti/@jM&Rn8AU&]+)Ai ~]h%d i a z M8L%bEf$Yf+w zfW(֒~v* 0e94z }(I33~v4qd_h {I| q" $OA)dA ~v %R#a< I `W,@z63>D #ajYE6F7R+fC<"Ersj'sPhN"C8uhhDV_)@Y,KYyXx3@g"@gH(ǂXB$Yʘ3(=# ͥ,yB聝AYeDŽ9 LA8D1eA[~hBJ R Dq $33Lă܃tx|Z jrd$63RQ426Q>PGÐfLD|;ppD٠LH@( G H53}- .qĂz(v] !8A,x}"F8C4ԪYaia!GPe Ip%?x9I(: 6]$M.זu<¡".<3)!!#.Vc%$ij'T7 @ 2 #4B,FGQAF|6K0  Q Dp4  `HDFeT%kBA8@GXHΕMy3 ,@<3!J]l6嘶 L -,P<+qHD1F$HYA]"%@dj`8J"I E7I HGzMYxdLф!Pd0 Tޥ6<6&}MH0 [zDԍ`!tH}ȸR:[z4KoJY`xVӅ-!фz JݤOA~Ue\[)i$)NՆMiK*>q`< B|D+xCA)eKB nRʨ$H.MJRʪ2rt6$ěVf<3-tk)iS)b&hB HFJI, d ҉\H (2`, Zk( *"0(JZf!ҖjZՄ&yh/hZxf`҉hKJZxfNd], % @h]ӨфRՀ<pN҃ x5[A@RHԀiIbvJNMB٠L("&  {3i RK rK-U<QaQ8Z0xAT ^-ii%xjvpy868ᩄXA\a*T+XE䓖(pd5 2=W-qmArטdtXb ׬2L*@ -p R r!BHd P(eNW!"# 'UAA8*<d4">GD.)( K`lC V U-@j[ A24 feuk >X-GQ@L >)LJM9t >-4jpT-}0Of B hP4a;!A 4RF8iOׂ ;M4M4ト>᪅_^iv^MJiwzګ(!P@wx nr SZMW~AU'm0oA{ЯUYzuU} )">Gz#َi~KHȼRȰ.wr>K`_mZT}GA2 !&C3c8GA&24DH1R28_aAVB0palM>Ȁ1܃iv!4AOY%?:0݄0;}zݠ8 o:_>;ROSwҾ{ߊWu޷U'vC_~v?K4ޯڿ Ý}Dto!= zo8@"xm]B"_肀x =կCyx{K8NC-GHr_mZXz] vawNk Xaw~4^.=3|zoS[ g[] ~xz}h?_9{_A>.v kz{a^umU4i nӆ *zv0T_B0&oÐj=]U8h!着 sCvjޓi"a@LuWM0#Ä7yԆ>۴B#uAth2sJWl!wwlUe_}?=k޻vp h0׺? Qpd> z:09D3G)lu _m]{z֟{tzkkD}Uj׽?vjk{]up§ Zij5  a K4b!e8&gh""BdàaiX2ЃDD|j?@}@94A  a.S0*IU; .WUu5 `pVpO yR\ = IJ0*ݭ5OzZ5J6]Y2DGoD{1m/~@r)@0BGxsJC@&A#b`flr dF>FG ~ 4FN y;aU~M4&h; '_@tUO;Oa>ݧWy*InW~[*{ֻֻj(wo[8ӽWs{]פ'W!_O^w[C8dC/pZ_@kPo'Z Oigie/)VkKOҐ!?N{ .ޗMa .֓O0:]XeǼs@"ӏ[kt!^ Wzk_{AoOt4vTVkZr?xzޟk<>NamoWֶ{ovv5߮ 5a_MӴpa0E\]þZON B#o4 hF0C r Q귧 @?}UAhaV~ӽ]m5$P8? .C`dzp @г^gvhDn. Cw)X_t""?n꿽}،ckﻧ'{nWn:d_ . ^'B(h!^ `w^mq{oZ~ݮOM[ v~VSSMokzTT4V54;Ad :aafLD0   ЭQDHR# t 4"""w> /ProcSet [ /PDF ] >> endobj 17 0 obj << /Length 73 /Filter /FlateDecode >> stream x3T0BC]=ccseblUeɁTA300FbcSk @)w4D! endstream endobj 16 0 obj << /Type /Page /Contents 17 0 R /Resources 15 0 R /MediaBox [0 0 486.019 632.508] /Parent 7 0 R >> endobj 14 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/var/tmp/10089666731916source2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 18 0 R /BBox [0 0 486.02 632.50999] /Resources << /XObject << /Im1 19 0 R >>/ProcSet [ /PDF /ImageB ] >> /Filter /FlateDecode /Length 20 0 R >> stream H*2030R0B3c#=SC039K3P%+ 2 endstream endobj 18 0 obj << /ModDate (D:20020211151431+01'00') /CreationDate (D:20020211151405+01'00') /Creator (Acrobat 5.0 Image Conversion Plug-in for Windows) /Producer (Acrobat 5.0 Image Conversion Plug-in for Windows) >> endobj 19 0 obj << /Type /XObject /Subtype /Image /Name /Im1 /Width 4051 /Height 5272 /BitsPerComponent 1 /Decode [ 1 0] /Filter /CCITTFaxDecode /DecodeParms << /K -1 /Columns 4051 /Rows 5272 /BlackIs1 true >> /ColorSpace /DeviceGray /Length 21 0 R >> stream ڒZ6D~@`"Z!&ڣ%E`-G 8H-1' ӯޯkz@TuE0]q娑AfEsU]{CTv 8 J>4EA/ wrRaq=!V8p իj [)Z?~Z c-BA4Ur>˅Έ;H ,ڑp<2бixi >JYH >Ȧ'SD  e2qb"07`.G(6DfR*< 2e* IH RĠ$ .A0} yö, Yby\2pl6Z`%-hBOZ*Sh8,% `[2p(#/ 13eS];Y YA )@%YF-YUZ^0nYD9}-a-RYoK`C@Z#pmD 2 n27;ZuD5;XlA &4vp`2 TC)4TTCCs0إDn7p҄ v 2d$aH%a,0aI6`*%a «a aa'aK aA` : aSJ' 2@>ޢl}7IÄ; $a :ypà$[Zt2 t݆ : 0,$ 0H%A$mj XK 7ZM1 Ul6z^v ! > 0H%`I/`ۤ 0t^It 2zKpKl2{YT tK`:EKvlŵHR6$d i I/d2aK :桔:Ja W0$a n aAxl0eP%m1,Ԯ[ 0li/n]L pb3/Pk`%0aK 0I8nV;YX`I&:Iav Ia4N4l%axI#*$p :$aI/l:Ixa$ I*pJ l6= ^  p$ :In;%`$$0Ka { 0n[ :Iw(vtdvJ%aKp0 2c^[n AjK :Kn na` I8I*0%t : wg 0tb C3caH&.3 /I!aA n,28.,Id+ ۰ t0 dB#; 9PtQRf >TZ; DAR .[ 90uJ6v$]àI)3`x4Ⱦ`nVDD&@Q:I'Ex7#xJtDn|y)h:H$Lrא<IKI> 0e9N@u@ mdϵ7EC9)HLp`$#3 9UHI0ˣ 9vT( ʐ"Z1tK@I tHV&)`x@`$w!Xt@}!0+ZC^$]\l $4 RH"#G:I:A!8G lAp<4\RS!d]x2$2 HHC.I.:>X LgS ٘Tp<zb x!$#D6I4e i#ˁc<[ 4G~YS#T'h#X#A,l$JG٠Adk9#@>n\5HҗA%;! א4#%<e/ߤd4@nf]8PHD5a52+, 7A:_d*a߄K A8Vit"iFA` 6L 0̕&u##P<Nڵ_]#GVJzGa@x;KҨAһKv*Z] DҨ2GSp< /4H>)qu=RzzpzGb 7KTC ooא (MR%xlAB28{CXCR&a".ߥ)pMiu'@`7,jH[҄@T6K* xiTK`\z x76~<0A{@s,N, oaw'7CR肸!WSTAr[d ~ /`oH%dw{~0XO?m-老A}T`߆ ? /Zd u $ai%$c^<0{aK=$ 7p =aU01 /itTIma.T5iI}>iL:_k4 ݊dS $tRc6Y?cDv 0g5D[a7m/a 6  =a^d5$%mm4d2|mi`=_å v_v_Aopat\pua_pW첋 l%3K7K|6kK6GMbd5Z,5].]; k/~vSX6wᇥ0%a .6GZ. vX_n뷯 aAK\m}iPtôj[K 7K`úK;DE1duDGVЇ m#֋h".`oClU׆ % 07$õ_0nV_aJݿnT J6?`ۯtoe`Nuo=w 7Im`ݤgU0v 0xJBjvMiԗU>CT}nS1I6O[_zVuK]{O/_ }/^k- & |WOguAvu[K,ի{.֗]bC +Vҵĺ)Նv (k5?_!2ݮ^M{ׇj' h/aoK Oa5iK*dkkkNO][K;M9[*)ַ_IzdӑL-Z׻K_Z_m?[Ri5KW~CuaJkUna_⿿_]}}鯻Y^_["MZO~C_ń=:k/ZbJ?Ћ oWvU___mV _]WZ~AxdB?t7TOn)uz~K{ۥW_ Z ڿ/ݫPxmmSaVW`,׈Bmt^Jַ~,U~/߾׿oZWm?_yoׯ!murﶓ{\'{K-qIʆ{F`ƾjd-c8߆̎Hз;[G" uh&vR 6428.G 7m#0 J sGUwAX" D'~tJirfrvk9~dw>CkZH#9_R_rq{WKH௯ yPsRu-b0) A^ .ikeF#d rm*ܵu#aH"?Ȓ`p­&ZYs'p .8Oyj~qaH n26 saRaRWϢdaa28diaQs%\!2@6v,AvAL`2AaÊaL@%N0>r p9 r ų [Dv""IL&3]F$b G. c 0 ff7"*~lhp[a)L4A˭9C[9RP$"W )!cAD]h"AlL0+0[ [a+/PH,[A@l~˂i;Yj?dP4#`I:ޙs#BiT1Z#+31oL2˲qr#wA""Al(_l-[PĂj9Wo 8S( HA<_jH+9RXmud2@}d2rܧ2w! #Iu?Pd';sQ2ݜs7 u@6{8F{ֿA,Lt[wN}={Z֭O-&Yom]jd_IORvrWvk_{~-w_ 鷺__w[Ӵ}}BKK?o2#֫L ( `Gדe6ii.}"UOֵ!m݅Ua~KVudo=?^1>] i{=V7{"^!D6*~Adv5LZ֭"j (p{WKPQ9Z߅Q>]oAOZ,ȸ0[#0w@J0Dvo62_ܯ,I];M4vʢ4͏@솠n:ֶ]"MA(|[;lqrح(;G,L3>6?w|e;_A w0Ġ4}&2G¶v`1z~!%V?u!Iv)}v5#H ܁uRo}xgsIn喀vA7o&+Iw^ R+M7(C j¶'AޕۿԃwH U-D?JC![Sumj⠄}[}yr!8@GH[_[l8ه JBKbWo| .Ks/O\?OqҐP0޶=}}tTcmW׷+ l"ܷZ6iᪿK*v}W3 " *k}\KrPFo n$0_u ?pԋ">GCz.&:">.7ۮO -{$Vn(SA{]C&i[K'I<{v@$`$R YpA}Hf >^J= 4A(_V&w߂oh :{ozل 0{{}Iw\ ?L?[lǭݫy5_w鿶l_}{۾[+;:k+c[ֽm' tU֗w&KyϯjLM./nAh:i/kkVAh'! _Er^ R)ջx`vʒXPN@Bט[؄5@v\5W|>!aVa}?mX';,B AG$֠ "a` <"eֿoW {RZkN $[ۦkEqmx L"+[Rӽ݄ev c T-v^ؐ¥[o {l;J M]Kح L#Dpm0H3/ۆtB":HA){]}22{ Zz^]*: #*Znp܂PDUWak\X+WT:n#tD1!" Whpöս7FE ݿn^վAZk`o V~ a}/0om?E|DpWuZHo_V- $WNd!Aiؚ A,-zuAā 믄wNS\׮oqAS nO?mEuV\+ &[akEs@U۴2G˃Ww0n wa+\;z[ Zȴi [-vY/ê#.7Xe [l6""A}h+2p7'^NX$[dpT?:l27]$`C -0W;B<ˆ@m+u ~w\"L6U}Օ]8d7p%[i]l& 2aoׄ _; GA ÔRbC 3kOh!gLD@enK넒z `Ѓ6 `9[kPUj 6. a tCVL#TV9nT- 頁i.m;G8+Hy+ڶ% ;&8 aPdޡE@Q IXD3V 76,b=mD5` $12tn x6H6C]i[B&Yd#9cr|A>C ȹoS EEtt$Ҷ zU [pm&KdsC aAW0V@sZJC;u%ޓ F %OM__Sr@ %hU5CIMp@ATsE ^T -ɺ+_ȒV!Z_%W~tPM5 w&怦TT AO u@eHޝCTreA=0+/~ t| 48?Q A{ B }Ip7 KtA/z p_[ %hn%m0d C[I%QVCaҪ&@a-~.Wpd Mv VV'Wxkt@`Lʠ(M+X~.kSm)0'@a ? rd~BAY0Y.pO!B(4¶҅Al$7uznKAI3!`<KdZQWtxA 2TͿ & ݻ\6 3&*aKZd A Wtiei  T%A0a߃K@`ӃD.WNn5SO+)n;o\" G t?I&m֗&@L!M޿PHh@>odO׭; ]E}*kd;CG:}t O : U M_렶uۥ̉AG_ᴟ}/]?Ot!t_Kr1 { * v[NA_j#m?] OOOoZ]W߯!tE"0`.B,Pm+[T a[K s?m'[ 8\ M Mԃmz| Abol /.aih?I>+ ӧ(dRk톯 [kWm&ҴU!!@kպt&?+ +[ok׭7kIH6 ~çN^k7rǯ-p݆hFA_Iwov鵤VS u&qnK$_|C#m Ao_tA]_J7 mm/364h,Ww%F w{ D2I߻[d#sACdB:n/ 4Uy H5 ۥA/}$.NA^ 08HfNjvPPl4;. o\7 l \h*ۤ"]pI !a ; 4Gcg ɰ/o'!y\=7m%E]*#b߿(x3`o;mm&ua;(B/ۭ9N _ڦAj{},;qg`hB O y I ޱ @[ 5JA.ᆂ੻bDP؄VڶۘM 7? On a6幐+kM0j [i>6ڤC3HJȫlpxqnAmP4*M+[ Al Tu}l4 D1`קpXKl.J"wO%j:a~ akp@T%j: zzvv=t@IV/Ww '`R!զnCL>vA}ت^C 1; 6IktP9mT Ċo2 Hᴛ=A Vv\"{kaPKBA5BAۑ-m& |AKaf{aӠ`g\Kݵ/ K p҂MA8,P_!@%G./mi7H4,.aA`2І;4K 5a0Ӵ,q"m`>ؠM mVG !4DpY ZۅlKņpLi{mm,Fd0(}te0<h`} 焂~MWUe H@@y'b  5 ņ+I|gё ;0A_W #M NK~]]C̅$3pj{4 [8h qNvk 0Tڱo;Koِ,T @8-zs!x4T_oP8)%xpka.{ Wga]6VLdM>DvV^P`P$S`_wM.Ҳ'L_z;D -2 GdvG@l# ۆ\0a D6LջjzvP6#KA2= 黄CKe$ 4Ta)07GUox% f ~CMk{C-HqdKr~D! o=@s mU-WU@ãN}Av( Hqexf~Wm 7&e v-eO!%9{vB^áh2r+bͻn is[Kl.C I+@@(_ZA<ʙK׾KZKY ˑ5 RO-IAsKw_d =aG;@"lIHe^/"jivׯ5aZzMa"Zi2̪D2vXARWڂwMsPhJMՂ!%zI%zh%ae![A6v( -ҰnIfPg#NK04+h$MX%m\fi+m0_a _D6~ mw0jH/Vɀ41_ 7K]XA$BV޽ډ zmBk됣 {6A ǤiXTkaނ :Cۥa" upzVOiԧ d 6p^ t [`@oHbl`wKmHi0v_}S?mjۥ 2(%s!`km&ׄAbM&S;} M ѲƻJ́KխtWPAZ_A:MҪ䡡!I6_zpD%]+Wl M2kh&҄a"84U_M] mt_n[~H5t$ڤ NDMpBqi@koI4I^R~WAtJ @6MSz j5mBt|}&-I6zTW [i$.St`@+-I]$'^NvBiki$-΂խ B6&ת [` K 7#@%3nf zQ %nj[:I= ^&J$U;~I&gzMFT R`%0@C!ɛ*oj". t$ ,vm @I`֒~'zmnWzB X/K6JpM_n-먪޶ o ^:J6mz[ O]m߮K]6k a@zOl: /k9R%n!摠wAWhn^ 9OAKO}/Kwm/]vݥ_oqu_6ޗA~/iB6KKav_-ttat/ắᶒ/7A_^n뾘z_K]imz_må ޗݥa/ ~Maz_m{o_۴nmo[k^na߮Kutu kWu ;lnC݄ Gn]0KC}_I.7ua_IOu ۥLת ]+/i^Aޯn Kz^JVzQ6tnWU tM 0޾oݥWH0߾z mVtI$z_Imu$ޕ]'ta}CmvYy/ۖhl7e e82H0͢WMfh^a n9( H6g(ˁ೭&쳃@I- f\9 2҆ .t[m@DBV첬=a唣/ fTyeHH2ﴃvYMr9$ tY"8Hd+9T=&L2@ค|aXzA, "6B2< pGۉ$ #xz da t^zMؕ U.pXmbyta T3C 2l#Hj̺9uGf2eD"6%n$d|d!arHdÙZ+2 c =\. \6W<\2CLF̒dA &̀di0ސs"tfe֓d|d?li 8 $6NAD6!GD|Ճ! qzL2 p6!9\(7! 8aLHl S`jd d2]d6EYsUA2Y;g)dK`ޓ 6~m <$ ػ} 0𕾡҆=(aH l70% =+z u+JPPdgWUAz7Շ0ޕ҆ҰCxJEaV R(aXnVxJ &K pV(oJX=vA(aPaXj(6V"-ŷ 2]i' 1tz],z]H' UKpm"=l a%-u@QTzMXxIaIAXt+JaC֡°ҨmR`)P\i=*naXv H[xI+t` +-[I I&؛z ჰ oUIpT0ֻKVôH&Drn~+^iȜex5. 74Gj7YAK8Ht7)@DmQT0yp Gj7 /W 2n#B$fa¶Ml HO G †6S0jljX2l'5M"f 6 &0YɳX]#H+[-< e)An* +9!GP x+YR(Vn-LQ "-ڹ3YXeh^0H' 0ᮿJ;eW@ Wh8l+t"&K`x 2Pb&Kx5U/+W<kaՁW< ;`xkrx,n j%Fvx5tdhmXKYb2KTDh2GBZ` :Aݦ;U*#࠮8 s/G"9P.4&]gbACnrU+} 5l5i[ېakק`: kw;]u{aam]_{m]_Jo﴿@> _O]GAXin"{_3!Uנۤ]>6+]pe+P9i2 {vAޡ;09DojCETZ WI7'5 }"[nO}7 A{>}XauDE& %f`_~޷I^ ^ݵڻAwV_Նz)4h52{׻Na{T꾿ޚ 4T]v{Mv0AAT&}L&v8 r8)e-BjC7d0a hڭꚦ!sm0Aϲ9=ai`LDL&4i&6 \@ETU,a5 2]a0&0A}0h4qaA2MpBL9Ma!Ʌ /hF2׏RکJ?,UV:+)c@F~XYQ QpəAӺ[Ȼr ^[!%#"b DZ`0OnZ@܅t^Zhyv{#00GGH;^Za`H.HH(X ^hdG !  4ȗwk-H"kE˙udpu荆hB!8䦄@DAdf (IRhUizMC&D4` i!Ӿ ޾LG/n4h;AxM;醙"H`4N[M;pT^Oރ;Ukީz {U4_ڪꛧTߤN?߾ުS?^Ҷ4iޗjj0@ (nN%n!:nAFA"42_yU 5!6M! XW C1r(A jӬ 7jwt%Hl mR|7u~߰j!j @cI=N ЧU\P@:D60U{4@=;ЎWM+w~Cc8iջuu޾{}[~xzۭr RqH7}O# _m=Æ@_P?T׾f `rĒ?o܁{U-gֽSZnOwgk!]]}_߿]U?~j߻_m'u޿W֟Z{y {@Uk~zk__?WNa*ޟp_l^P# w'TkabpaZ7=uv UC,J_[W7}/~WPt}[\'}׺+!Pv[l#\SA@~K)p{׿׾^@<Uvkn\.^8kI M[ XK.@p` D9 =jMv Xx!m_cb"~}nw{wINmziwo}:o­ Wiキt;NkiӃOtvZ۬0Mc7 Wnp0Dt2IMV}4""=zaS9Zj~ i gKߴM>M0a09n1ߠ…NSiih5R6JqQFϰPXj P`pDb6"""&4@aH\B"?a!m!G8B(rf \%5"/V (`GJ4QXQfc E;BzQ_ ZaKP8nOҮ.! fهx)o[KTV[]-PnU9Nu~u_(Z-_1׋L!^ .Gf,[SUi.?޷жZKaKZD6 ղ}8ڼ"VpBHs$"^ZBxiax"g xQ,RH "P0~"V@OC0HYC< ͗"iԴ i'BPPD3vT,LpHO2 xXDZ@7N6|F*C.Jy6%,Ph@r"[>l6Yղ xhee6 X`Td@YJDp<6K44xf`xf7TE ՁAq <29ظ G@ʂ Ҹ3@\ 2<3aFA8 CJ#]B Թ\OGQ#,,Ad\! t ̖iaH5Q_- @gSB03e6 Y]@" -WDp<!'eAC<3@~X,@i @xeRx7 'xfp[ב , ,C) L8@47`ᥖxipe [@xirJY6p<4VM b:d\G, x x5'在4l._,b<5xAeqpP]%̽dp<2x2eK X|̄k6F@x4rΜ56QjxDͪ0f9dh-+ l$O}@=qx6kK<>Z SG@\ R:ZCWLP_m#A-<`͢[K@XjG OyBnB#۠3xi(D5f !;҂ Cང(*&L ~[PD5[*8RRV_ Mki 5NZ pkK- 2nQ[!k+Ie[ dm"X@IjD5'۩eS u +H  :pr,IAקD5͋Z6W5+Jc$!t~V#AU7CXpIS e0*PP<$!W/ Ac,QnoA$ڄ64@W P]A*xv  K!B`莎 JY.b"I-͐AW " 'YdS W*Z *P$R Ă $AnSq`BTJ‡ n P*"w nTCOz  I7HITdԤ˂]sI+ (Pil%6g,UL WD)` ʘ6 a$h[D6Ҷ (P-Yn6B06‚*(Yܷ) ʄ ۃa.DL/lhAH3PAF( PF9[P:Ax  (I db B;5ٹ\NA<2VA  ;'D6*q6v6 8/A #De[;(P%BC7ZQY0xHȀeg`epW 0pA6'=.F@Rn 2G@jB|Vhgi`Av22lpD*fSZ`EV ^ [۰Av d3\ ́!"8H PXlX56d h!Ȗnd64(Pd3Y{d,H<+lȥ G0{..@\3(I2<ڄ]P2lREu^6(Yp GT@Xo ɲaY ܁  c"Bn HK@p 8[m# Ll")h/HRp!Z  !nMM"lZ{xkmOq oɼ"c#@f׉fJBR AdhО2- 5Dd"njL0at ş6̅oD܀1Ćw}ۄ2fƙ@<5[a ̌4߄B`x6۰?7 dVDpN lGMr"nTȗ# -wpPfm |0|xj Չt0{+ c æ_!l5Pa߂XfrD\ F R& `,l*GM {+28tC >k d 2vQ@h_"8Gܕ('TL7XNA幨p<˦;2 WEX3v1&mlOd,[u agt a4BnB El3yn4Å_ `n(;KIr<a[&96.,@VnvK,GS2X5 'jp u ^ ɴp<J14Ve( MyD' E#` <H$YUa`<!Q~&ŀx+ H:"8f x)IX[ ^ߠ@4i B:aA$Z MR>]ZP„AKf='MЈxw@SA !t}E4n2B;RAn6i 0|p. Avh i./r< thMR#]]H*O&x,XA}mYlH .7*Mg1%Y q _~2 pe@+( a%@ͨ xPFqP$x, F#˸{,h0%@Ix,ӇN ,A W,x38Ko,aAL/^YցS\1A/ud0D 9*? >YSGm B9TA:"*4H,g/T-j2P0  k0| J|RA$ۯyfj`aL.ʪg\lAS,dgZA@d2t `5Jxd1_B2 e& O@R/X7B@dTY`_,uA+7z[2~$BG 0 CAEd*YA@x!X7L\Ʒ {Je ->h*g(vh%圴 O+Ou@=ז@Z0Xaz[c}cUU JGaHdpjպX@6cma-;J Oܺ2^`BIOpAh&-_Iu Z~| OKl/𖂿w-'}߄w Ah&RVtP_O N~?(Ka&bh+AwGM% A?XA?ְW IM`wh/"#@&p,I~-{NOr[, ii_]I n I} IWO_Z_ ć zp߄-,$߽Ai_ A 'ziN_Qa$MM%^!-d* ?Dw+K~' 3JAR L-ߥA'ނҿINXAh' i^%A', ,%A, O-/xAh+'IZ ߄}렟m;-/ -/ [tPW Z nZ i%o],-$/ hPMp_K ~ ,$Z ". ?/胷ZAo *_ a A%A~I%/,IG z2ux@_/-$~_ץ  k& KI*^ i%u* ZA/D1 Uaު  @i._K (UKXH% a-$-AWKI, %IWMKIw UxAa$?Z H$PB -q* $- +I@Iu] h$ IvZH$4 h$_"K Ð7N_ hZ*[xI@]%]nI%1zI_2NKD K㵄$A tA.*I]^A$t*] KA% IA] U *A ] I/&$$xIH$WtP $II R_$CUD= _WZATUI}h7ڤ_ $AV}-I%􂤾UI/ u A~Kid$_% IUp} tA$/AK_VK$ ZA}A:T /.PI y.l L5I$x!tI1HA*zT *R$JvU޼ I$@I(H 4I$o %A$O a$WUzK R *M-Jp.KoH6& JA%*]m $}aI%;ׂ ڭlI]osbKu,B KmAi%I%KijA/I{-au_]| XPVI.|% Z $nz I.٘0' UW^N /}&I)%ݫJI% k A%v JA$pI%׶Ix@%]vA%I%J$V+ PI~]w-$wA%^IW߭, IkVH*^%I%?AW NJ -Iuh H$kKA^XIWK $ %I𒠒H%A'A$ U:I%l%zTA.X%UM ڦ*A$I_~A+I$! J H$I/ *^A𑖈$ H$v $I-0A%XI*K@:J +A%Jv _WKI$,$W%ۮ %,$_JI%ҤZ$AaBA/N$~KH$ $XT-KH/߂XH$z @I_~J }| I AՠI_ dpH8mIO A[K I{ ZI נK]d3bH%% I A$8pI$AnI/Aڄ"4I[] U[ w /BF@J~H%@~*A/ |_ABA{ ֒IT$'IWH%i_m/A w^I./$K$J_e]$K  $֖$[/H  KV zI .K\ $,* ~  Z_AhH$K4H*YI 4 /IP_aK]a.tI_iA%i6  kI$ Irfih KII%W_ _۰ I{P~K I%´H$[f+$(px$KhPݤH }JA$JA%Z(iK&I r}$ MAt!i$%H*A"A}A%$aI/" AA $i$C$PA $$i$J a t 8PK&_ߺB!TSO@ %AI" RH+M$ KBI$K0A$Ii /Cm 4 Ay A~{tUzo i7$$[޿HeK I/MAA$%Ko B $I%@ }uT  A T ֐I!A/I׽$I M]`H KKI xABI,[ H$"QH%^#@ AH^AmZ, /*&V _vS@6Au׮8T8AWA4o :IA%5 Iin ImPyB$Apx׫ AUpނAI_$0Atz a$i%.AewJ;X i֒ /iwU@*I- D ,S p$0Ir,g5@ \G׹4^ 6WkkPIUatI a_4 ?m=t _հ2Q| m%w0}@ ޽Fj~ H/^q]H0K2>Z,B z [ -0h+A$ݿI$[/l*oa Kkamʂ [ ^2P_N,A I/Vn1aKPa /+Tۦ64K%6M^k+A%}ai }=V5lA6[nP ҽ$ H ;a˪mRH0IzAA.-&ʘfIA]H65oըI mZl0H I.բ;׶ 8ZpUP|+ Y+ſ_lPH$($맯pJ$A}֭kdzH/u׶#a$_ﶺj1IEqF[taBA%K^׺ 2AZA#V> I%Ib) VKLo H$A/`a5:A ĂAA(l0PA ml%M4 I&֡MQl _iޕK$@$jl6 I/W; $0_aA$_`$K߻h>=C` J?M%Ik,$M*%ia AizmM0I kM)7 OZڄI%Iݠ@-$t JBZ׮C4ܱ$H i҆I+AH @(zAn4A ޗ,7CT"A$7APA%I*7@ ) A-Bzai TaA$4ªJm솱@TmCh AuA Jצ$y( E$uJ0I%ސ|2‰ /5!aAB %o 9r* e$_@A=매 $0i{ $az}A(a[ iz[ $0$nI%d3vX dI% 0iGx0e$T}ս[ Xa $N ~ J6H$WI&ᆂH$4?oP vA$B;m^`,M  ;_i $ðl IC PA a_ I$ma AU ڹ`A7I$d3 =WҷH =aAl?߫a ZMIḂP ?t $ ?`$I7$=ArA$aaUI) MPe@CռȸkI0|Ma |-oxaJo 4H nI$ko2A$ 2 4I 4^7H A.{n A$ gc+ռh*I-> ?nw d.D njʃpd%:H(L7o{ $  Ĕo۠@H0ַ0i%TorR nI j?j 0Anö$256IA amPH$A59K[i ׾$H0d6$I , 4H(H$Ki1q"%yhA Pm a[XaH$ #]#aI$ Q NH`Aa,e $ )8eٌaa 0i$A Fa+$$aHh.#dv%ID"1fI H&E#\.9PT $j}DPP1 M!`H$@kD0l!$\"H(A0}_oDB$vA\ I'SbP@ZsA[0@YICDk 5!7n@l$I29N"C4rxQ2SAү.\s"D9@ނ߷Јр AAJKZS Y#0vwH$DPMD  ( }L2$ }Nk DՑ#N$COdB'p< $0xO{wo &Mk WRT$ ?[`j [AwְdN90$@}`yRP/z_ БG,$a ?~r^wd$0_vmA<IiIA$CA~q H a}m]>0d1o |$Ar5CĜdAP JPlbT 4 =i#݃ Y 2Bm4# .L T ]1V}Y٪0b@a*aN!tAAr 9r,'d 5պ 0ߝ]v 6ճxi$@M~oƑp<$ϺWAi" i8ᄂ2 _M0^ 6B$a[l[L-n >(L3>~mAi m.·`ᥝJîdpo!8*  P\*YvnO`I&' vmj i M[ fYA$ @j-tm@ 0&87_iX8H$p~ (m 0C ſR ;hm-aPþ@iv6Hi9V îAZ 7𛤐a NIOņi7nMDu jl0mmH \Qi&0׃ Wd7qH\pnk/; Au@ ׆7]-AMx0K @ߵaI&"< &=`Kl$0G;{ Vio$ ;PnSzvA['ͨkz &;Um Ci^@NzL'oA0Zram-JN D8ql0aA wD&l:/qT zȠ0mH&)mSzl;I 7 z,]ioE?V"5{A; nA${A.{m$"aa$| ^adWxA+15M6GA$|6Ak[I*o{wa&lmo? zAIa* oyV [I_A7M`ۄoo]ҧWpotBna4հKzI_\}d3wiSH(|[&Ac2[(pId5CVvvJ,co`[ 7%OaOWtASl0l6> $]40mVI$a8pl7 &P5ޯA vG|"h'ʍoJA^ ۄ $l:{A$ >4ߥa뺠XANm4B$cAEiӦ cX0a{H- û; {H%I#@"J ޒ >W ][A>K2TH Mh%a{фKn2i$AW%\& 9*c&0aJ1\% WzXhBqݤAl&b lN"85vAt6,O287$]XenŠT%G }>Ip(6\&Dʵ3V!һL/nI;.ԪBZ}CKe JkohCIz 9沠&D` 2M}vgHBKC}nArK n#T/d|@T0- ".E[&-Mh t)\m}G -Љ86ּ%Arh .dH ]\4v $DںeC0<:\abe yA0g>[s@fA\L[j흩@Ki^v p@Mw;4I/J! 2@e%W&zmp=/wD1/. zApK] =\ { a_AD 2)!}A\$'-h.5m.\ WHM2ZZBtʖu z\Adsi}8K l oeKi>-.a'zuᆕ _Yˁt._`M+fk Ip_ z =/i=֗-.-|Ci7k àK tQK_& _An-R7~]0YQY +~YIKa.Az֐* .K nA7t mK[j}Rt IpAmA~xIH A;iu& K*zKH6$-pD2 R ۴V.^ @Pn]AޒZ'ն%  ԛV+ۤy wA &ڥV- ۪THA.! _o0mIs%DMﴃ%.ׄ{t o@6+5)$$7t kwjPB{I. *^A\#oApe*6- 2.C7 R{ wa& b]a40{.$oIp@$ Al@\& aEPPK ^ A/A/@At%Vt_I?ڠH,5^ zJ  ÷Z XAP@  m$!zI  C 6[  %IImx@tmL6$+c+ph*a eȱVj/ ?ҭoH6 H+~ H0%A  w+oA%0iA 7uKmzL7 d;m2n AAD6m% v  op nBרd2^vL 6T(#oUm/A0R/ 6%] t˒-a(A0҆/* ;Xa/o֪%, $,}a @,A6IS/H;|%D[aIRl _pmJa+`~aҬ, A*K0v…~ W,-AwIU  A.#zXL F$ [z A aID _ސZ öSeXm @~M8M00 A_jAzpmJ Є~*[ nZwj{@LwH-AtP ÇxK36P'A!^Ad6+J?@ÐeւUIz &JڮPBC=$ 'J^hr(Ωi?P5ՃDH*u鶈 ÔT_&⡚>aC3 jVL0h# :TaHA }l0Dl:T ""T4[7 ԝ-w 3XeHaTAGL4HK!*k*0dt B %ʒMW ,$dLSBkU߿ok)P_YAK[̺ A]mm&'@H8" iiAM;?d0NfaK &`G D'>H`i§ ݧ}@]Q zozU/!]~hw~+oN2Uc^ڽ_h)hW޿S^w^eT^5Ax?}M߿mw_Mο}clf 3ߐiwoغ~ov@ ЎkGӿ;~opIBڠ ޝ QDq /M !U!ҽL ɴpd }!!9ChLPS] !s'B#F|o&_m].'ޟߺU`~7Zw׿}O^ӽ.{[OɸR߯MW}?[KM:~/]RZ}vVK-a޿A{KA| .)_ _,!rQ /H[_A{ / _ | UB@\-.*{KTZ(__ }Ek@vTHo_ i^ iۄ@043h,0nĐAQ V =@P-3҉#a(č(0v3Q5A_ҖRjPd Dp,t R6 %,YAr Z m pYHAK) Pe8e( )h"9h@ݢA m(2   d LRGH<7.g,j ^0z (E]D0A C ~\%grPs}IҖq>Pa@hE@R | K:Zw {dQd ,Pĵ gCkZq ZQ kD[5% K]l -s0< Q ҆S1–°k Q8 A-BGf?hKe:*QemGYHYG`)QrE)tZ@;fX9(i-h0O RܵCDDG˲AMe8q33j+EDZi#ICH AGH0=5 ai@?j#0H0V-aOYtamFفӾ0;[#">T ޚwB 4N#m5;MnM4Wj>OUڿw jD LH}~|{^!9 xMޟLOP9I5Oһ^!kz{|I7} S_h7{~Cezw:Mv@np]S~B|X?3z25_~/hXj}'mD4>_MG^%wmzO_"Ճju]_[ݝ~u# w]ӻJӷ{nawK 1ao xUrCxCw;zpC`k0^ <`? H> ?.X30WyG: w={PX/vy ٵpڭ4'uw{ #L-}{wפ/{ ò rh==?HH/ 5U, n;xq}i;Ag ^~NOkީ @#Rzva4#u "GNTLhFVӴӴ7Uu4a4Vwh4 uQvi"%~wh0@ek }4 dviAw)((aSAK.P!PM ""04"#Y#jzu5Q`KĀ;"Q"V N B*0@12JA 2:A鬴 SM4iVY9TBAk 0u"ˠ5Xwko,0 DTU>ӽx `Azwo'kikviT}{}Uo_}[}ukT֚ be:DO  Q4 `=nd|Hi~  endstream endobj 20 0 obj 46 endobj 21 0 obj 39698 endobj 15 0 obj << /XObject << /Im6 14 0 R >> /ProcSet [ /PDF ] >> endobj 27 0 obj << /Length 71 /Filter /FlateDecode >> stream x3T0BC]=#s0efUeɁTA300 #̵Tp Ct;N> endobj 24 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/var/tmp/10089666731916source3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 28 0 R /BBox [0 0 512.77 648.10001] /Resources << /XObject << /Im1 29 0 R >>/ProcSet [ /PDF /ImageB ] >> /Filter /FlateDecode /Length 30 0 R >> stream H*25437W0B3 =C039K3P%+  endstream endobj 28 0 obj << /ModDate (D:20020211151608+01'00') /CreationDate (D:20020211151555+01'00') /Creator (Acrobat 5.0 Image Conversion Plug-in for Windows) /Producer (Acrobat 5.0 Image Conversion Plug-in for Windows) >> endobj 29 0 obj << /Type /XObject /Subtype /Image /Name /Im1 /Width 4274 /Height 5402 /BitsPerComponent 1 /Decode [ 1 0] /Filter /CCITTFaxDecode /DecodeParms << /K -1 /Columns 4274 /Rows 5402 /BlackIs1 true >> /ColorSpace /DeviceGray /Length 31 0 R >> stream TM8iG䞢S!AT<ȇ}z+c Yjș'Zfjph~Aߐ 5}ƻivipî_KZKH)KiRijSZ tipQeӧ帚ln"^7]___舯Ou_PKǪ{@{N{_쁿pf_M) 2;BuM4*OVZҽ}aUv #IRէ]4az״vUGY[Az K3g+ b"?SdtW7ZbiV;_1?׮]{\ YKU}^{!|k?BMT#A#DH.ڃ~H(jijv6b!fY|@dphpvP@Y CHqdqj" !Jf*f !DrE_ DY28fr<)$QP؈9b3#$PN\P$rr ֳ <3ch.! xfU:^28#jt]`t`0\2 9i$E XdcqA<ʰda*A"$4GGxjH]fTA"hD2͎x+ #%a"Sp?hH5 kA0<7&3 v byk_Ap 5C0PAiD YL>@(s ACPhP53 aEAD3+ |#!pZ#0ierLCAv4S|" K!ᙐ;"8,:UAu dZ+>Yt v+0d 1d2hZYKgD4"hj k@Ky#YLG&A[l>VL`AS%R. * dQ Zb;)YAC3S3 ք6 ee% \5 4GL2 ML52`e3y 2lR|G@O "lSBα4ɺ#8@Ѐ"nL`ց4 C('"ĈR!+Mw`IQ0Pp4DeAZ gy aRZ3@ adXh !A, -!XT=0>ܴ_d|Xo#jell XbM([*cA{,@y _e3%Y3%&YV- e4 cP`r3]ZE-H}- /,D -+A]hYLBP<`ڔ0pe0e eP4("57`,V C BԘ5e(2 ,GkV" C0YCd"aR_.kZd48(8ibYQ!S,9@Z`"LN ,jZei,KZ!xB ,@xᗖp`D375E$ )4@ " $QkyiF!Z mj2X-UP}WL.KArP^݄ACRY 6A, \ /|, IH VfN u /+2 gr y G]0iZVq0p7ְDW*̮md)S;Z +gJJM:ZwX" kh\]}m/% p4Zk\J%RYX4rd?eH*)qXAp_ T!xM9ge`:WS-%aN.غhfSӠ \%.pܺQ%ߕՂZZ]7 @H2UH]6$/A^%jB "Bre?cAu\ ]_W,.+A%|Z.A/" H \ [k! TX$fZ}K9%| $V4,3?X3GfMDRT@Y+a 6End4, KX@/TBA+wa4%=ٓ[ -4 Hk,PIi @3Gkp"m,ȱB4j w B 4h2C1IP3HDpts!pVj֑ r>`՝b8(Aِ)f L&XDp?L 6 ⡜ 0D3 4 r !z bc; 2堨3)|y@Vo{h:#h""mŴAaB$Gh8S0H!>y@Epz; #`gE)AYpAʂ@hL&@Z Xtd@2e;Pn0!M` m@-An,!S.A"n` d@#N'l!yi A \ Ih=03ѐ. 4*:h<,pH<L0!D2xDۉQ q l0)\5Z0A." NQGCL ptC8!7 ,” AesTG !D0p@!+9MʨAb] 2!QAr l*AAFW Y]S*4k+A,4"ň!Lq 6A` S!S:|H @AӦ7oD[K0f&&`e, M& ֈ_l, !] \vjJP$jAt@d9ށqJTA 3A0"7)HD3uA`f,0 HYeV  )  PWc7 bm"V2 %MrʜA.,,U2ͦC n(O A" 5@eM\W@f DACg- ArPDui `_AAr QC4&.YGn&m7 sa)g+ kq`L+D  zak"P5  D qPiz;4AܴׄjA]C0'L*^F%JI!4 o%`}1@G a"/)0l0s!pS8@hOm^B nJ2Hg F` 2ܘ$;@M, \ RA @8 Y_ClpU0hYKHZGP n<4q K+ @p o@5pm+ -e4`$YA&5 jL" v1 7A- @M\)yLbvVAaC/w*MA~Y@4EPHpJỈ*B@D!@d)I7 .aɈ" 2&< 20H&`*[ +4`D$IE$+"> nAP ɺX5W Ƒ q)h "n& &@*Rn ~J'݅"M 4ASv7TAaep@Udh 0Ddž/q`eu0` #q@C /%H 6WX+-P"$!@aD$Hv_+e`QZ2 pD3d&e Pj8+ kܠ<"&M"F SA0q@i\\ :m0n@BӲ{' AƫAAa|H=ZuA +`r \'Iܸi`hGpZ ZMM %+h­B&d_+7 4 +W6 Az W+] dZd\) 4E~  ioCiwaM| U)mg):.M%z 6AII"f+`K6ࢶMCQ&̊gz |?Ap_t&AD3cv+amuFV / W B.uwش 6=ڂ]fa\V!WI8\p{_MR `a"XZ  [D4J @p ív_Ut0^L ¯\" k,Ȁo#xh@,?o $'( %Sd&26 -t[ $v y6I@8( P/Dܛj`!d`,{v)M٠lI xamAPbMj/ &hcabGaql /o0M5ԃbP/HH}U0幠k^  >BlP Ao"臡s/*D6.Bh57N!Awz7Gc` h0AU_AKAv6elQXa~vD5%z})]A î .Z(pw nI󱀯MpL"/ ]On->["v6+ ״nqkY/-ăWPD4/ 'JADm*@+d m_+=oAUs["RT$ ]`6B q~[ oՐ#cWx" 琠~y] (۠XOW,@o+H gx߂!"uӯ`Mw-ڕs$ 0@@]" nl\%a.bT_ %^ V&P.()mj}0"龍 QGk+̵d ۧKad*̐%̆"8kt`*U ɰ pjHA q]k c#.:pA;]jxA)d@2% rD@v UFBSt@B6z  (] `UPj @dd0[#a]xaV651 S\X54AF`-D @"`j3Y( Uwa[`OށB u6uؐ?h-Z_0 \<"uPِH 0տ+ި1Ii4@ofADvej'AaC]qJԆbx m?Ae)[-gz1^i.U Ž9'X@70̰ --i" @A!pA'a.@- Ip@𿂣?6v--Uz_ >0 @6&qɎKtN+@wG S!׺`ANFxrkuʨ3"!gi@ PfhkYXN  @5 ~.p3 # } &D3 NNh Bh0 A( PNZ0 ̺NH2@:D6<:M'-7jvVQ} 0ELG ! !*[Ua6YzD6@P( >.A0@ p@  v(H.rRD~"$&C@ޟTC@0P. d1@`! C/z(f $Aeu0<7j +ǪJ D D$\0Bep0'NlK!.{A@w4:).0g`qp xo'  G;Zm[kO 3Dh'w@+ pDR9N"$C+BFUA@Wu@g#"etK؈:atG!|<^; EHZp}KDDDw,r_ڀg/B& ä . "N+7M W^~\e{ 0pjDX0%dD{ O@,5qGk@x̄a׺ oם ^  /2:2-Cþdu!|`(Ȕ4w""UD4.z }%4 x]*_kA6@Cotd}uTADs Ȱ4/@@xR("!q9ʃS)Ȯ(O'AH hDDDFtD!p!C!t*2bf<_L! ppD5z'DHۿ 6 E ڈ:#h9E8,z*p<3^ 46Z\ApAu0%8hlt|(0R&D"?ע! $*Fle{3A {\ iiMQXY)my]@B; eh&p[I} fP!a\ _Te/mSԈ{ZwO8!"Il ^KDs| 57lHl/!$ <a_"\TbE6 7Azv*<(#2 <4']TZ!`]Z_0P*awڴ ÷aFK} p EhGfyܩ*Xa?WW! '*Ad(omH^(j a xk> a fEX6[@l0 EP'zR\DEXDrVWa0CD P`xp;< X7at  ̨gC#7NC2<deuGbf@bL2ݠ; Cm;&p( I -BF .C`;Nm HP`bETذga@x`L?{C!   v@6Ak0b(FιR2Ch2+> F&Hr#|AhZk@!b(`X;ޱf" 솢QSA#" -*ʐ {2#LN &@d71d*A?x!ި( @7" @80! @$@LtiHn  &@ПA{7L#qكfHdΨMAn^̅NBH9^հ}>E@.P\0hw_!$C6AnW ?sHi7r+]BC< ;**K`¿O\bm(pbdf 0@| 6Ptd64; C;p2u =Bv  gaa`Md2͵0Pv&  DzD$̠9|aAﶩ~ Q_ lo`ODUJ̖C) u$<40H`zAbF CҲ _Wi2 Dߪ7l M d}H]ua?z/ P!8oAP[tlȰ[uAq@uiY$߿WwR0]FmV~D(6Ȏo}6 phrKh/GA6 $xQ';}ka_Vd& =?xke= _H_ =~CCF(fIP+W 7M } I ӻ/ $ fBA mR 7j'Xh*`A]tq:ᠿJAEz/̽V@2@~"PCms]!gRm,s#OI* AP8M=ʘKDWa%h!wi5"uh"$G25i_A)t o0_X7+|?{7,` W4{ˢȶG!+tCTNJ @lo^j7KE]&  S a{ KnzazވsAd& |5X A7ra4CNCl?çD1!&{$ Dp ּ o4#VX@!z A^FkiZ AH& B ikȒبl X u*A&dwºОNzZZ $h5a"ޡd `) 0 !wam}D,5"jeJ )-cD6b+">  + I , @2QxEp wk -". ~  !dOKm{R{JmkX$!6Z Im6.&gb`J_iԁxol~;00 ʤݘxd㙼teR +9x%h]<  IDDu(6 H]A@)ـf_La@ݴt:p%A`ށ3 +XD4lד AZiD";tZY\6= pl#nR xJN~kW{T {.θ6,.6^ T}52S6+K̄bmQ\l60ҧV^X t*U+ڰV({_h\na2@.dGf2GR,7@7PAk}" qbM&xAh-~!qD~"){ '"6/6)^Ⴞۯj 2X433U"C"*M@AS_2ZMJ 2 +HdW"_}&2L6KM2# @!Vba*ARCvL r ѢN[dplz3y }<o ^ng Fa޺@ / -p;wu胻gDoDn ӣM<pko@JW]UfBh"l sqK kX2 A AB "̌I+ Y660P^ h&4Md}00D67 D3-Ad2mo2(pDtK@~RlY6X]) t"" ֊\dՑV B |8gXR( \}-mpDtB*Z 0RX _ D62[-9Rt@=`QC_A '*w+r?+9^aaa߱ }s-ʃ0#Ґe6uq`ijI Pd A($wGV5 [ !_ h[u MY\1@ب骺V[)A닰D _H/^@ڨ3kx"" - WH[tajٓA;/ m^`m/I_j/@1 -0)2p)o4`~_aDR2F< v00l]jW3A+ H^ Z~0rVvOA; צBrÂKH@#Mf" N^ e@B/r0"V ^ B %༅, |A/@C͞eje/2N9 9U!A'@ZH a 4"Ay$[ COu_ HfETKh4dp$I[ 2N}\j@pH v&A29[^ (El4½v&Flp!G< ld1kAZ'P,6lKGe" SCȅ}&xh2;.OB&<# @A$ek$e$wxg#Ct,%\T3-H@<"AkH4R ZpGb`x) p^vHH ULIuG酠턗  xm VA'EMVG"TA . p  @@ 86^B $Aph+`2 n D @gz @8p@L.Gk@A0P2sAxL4+k0A:-$ 4| v u ;X E 8 o`{ $YNYޡ=*` V[~ l 6bO{1Ao8 6& itaf ~چظAtT' zl"[Gx[h ]^A@i4- t;V* V$2ǡ }a FQ $ ipʀQ n. "Si-h Saeaos /!u  B (K"n 58Ma[a lȘJ) ,r AذCFcr][H*x&a$"E7a@ \Ѓh6AC@"*}{ԛ5~HpUa @ !2ݤ~/Er \U9) 0@| xDoD2 "n 75Aj_@N r 2Z K*gdCFĈ=Lk.T I'ԛ J#` [ (ښKk/ 4 :D4l]8 ^BN.raD@ALA־: *ׄ &ɲku ZD\d r&Vhȴ i'^/ӆP2I p(CQ/(036CH'A|$!i5 AYek/!;H CUɱ@6| e9 ՐVd2" $*CHrv ("Z @1 $a~]Ljlْ&@Ć4-`4| TMl4^ؘk"A) /piI%40̬2x}!Y%0+OaZd<+~CEuM$AC*BP͇V\́(DlRl% tА%`0ق,0AZLc膛H~ vf]C[_ <+D !H<7s6rl 6!P XErEii @XaCLH0@kL`$ǸiZ4&!`h&`]`6@)ZL8#Pk+ ԹP!솁]T6 t + A0A_MS ^_V( B-XDZi@:n !9A96@ ;5 z(a VaYn d3HDgebՄAAA"Ө`MA4IAgklU-?Vv*@ X ENFi`{ ̉r>w`u T [(nW;xcaЉ+ %W/ٚf  ;DAX" ?Z'-`R.N=[ xA&%۬%@ā!鰐 JX@avWXu&%Ci]P@@ O8 mgdfڰ‚IU.@eiL0\,fLV Lm#MH6 *A| AZaX GjvJ5d j[ #$SA $ != hH]Cap A@.$;`ئC5p@P@eX46D6 Xڛ-ˆBA(ga "uA70@[Bm J e"km0A$AUBoDx agfAo@@AANF &UIp@eA7` Mz f D6iK [þ  gaAAmxAWZ7PMPvR кDwMI& BB Ӣ \}47oz CAI^A+JMM+ *5 P\CIrXl" @t}AY:`ܛ v 2.\߷a-1h;@웄!SoW Ӿ@CD0#:Nv D2Üp`-O28F !a2L5 X~*7zSɲ2aA 3kH[JA?a`V ]mbR;/6A ? ~h")~* Xn\6Vm T &CJV@ Ү7u aAP!oÓmݽVjւ`@+t A*`hkM ج肻U"!-&% :[ao̔.0~-e 0~t@~Uoej&*/n; RM0uT$KdU ڂP-vɨ;2K i H/ o25ᩳAivH # 5 #h"" V›&`_bA|8A7XA}pNW(L?A]30E0X Є0~-KzM+nZ."L:˂@UQN,vU:aYRA" S)X,(5E( ԣI2!- W6!a% eA+L" }h DZƁeevk)`, !`" |+o()C ȧ-τ +.&(2 Lp l s Swcz n S) \ڎT$C nDo)nAAL7 RbC l5, H69c$k@]a D Cv$7%DD=]  Ć% V-A؂OH+쐰R( A"!I ԛ`, A5e8x" I(D,aC `  2 &A5&`QPdMewA,L6(B)6,`,aP A$T kD $)9&@DDf#+I\ 0@DI26bEZ62 #hj mTC#hGG ړs=+7#f]ˣy\26!<7niL`fo.n`X B$ ?n\t&.X Ab"0d6A 8u ?̆47WiADo)d?.6;AJTA(2@X@ xnL;UR.a)d,iU,`yg`z5edS>C <\ Rx \ <Ftgd,f*Ux=5d#>m2@B xy Nex U<@l x1#D}h5u+ yC x.9[K\kcLC xhc +㖀0<@!"E7Ң|$ZԴ*FUhYa)e Pʀx%x( x>[,_)gNU P!K9<2 i``K8ZRPbb x.-A<4)gU ږudLC よaYPC!}*Y(ӆ@XaK0)r%,Ű+f$l!iYYL 42bf?Ԇvf%bH"ﵿ;jW?Vׄo_ikW}WwmWק޻ Ӱ}']jP Blw=dY.'A;D!nֹ@(FA9t2r gBb)<BBFIh' A@0fPz}{~d H AaZ^I~k֞%ߦAKTNW޶}u֒=kOk{}n>W{ҿ^ {n!ʯj㧵Em/k?_ k,u#Xp"E!uulPzꗿËC;Uk{{K[_鿺Ck}uÿx kO}_O[7qW_ uNkuUtC@5\4Vzڨ<.C. {ipBt kMJy0zZWOy&qn.wڿo~ uZ]v_ztޯ[o4}mozVWm߽ _[Y~K ^.L4ž.lw 8(af03\ f?߽09N`t5p}!#r tVJ{ȵXUA ѥ!qtmK_d4B* föko߭Ao[~^ }XNA޷'>߽56TVư ]Umjv ?kv¦߻AO[ aPkImm{M4 NiN@4 0AXkiC+avT0v0F!q$ M8aSA ,p.e`J"EaSL *HM4TL W33DtC`DD[%BLDl4LDv :d(Dds! rQ;1j)-,$O@A|̘Dq@ r@B V %""P̲# c aw!a!0. BB!00D !(9! pfD h4 [4h@EϫD(v 4 T  o: ~Ni[Ӈo v7ߦm\~>;Qk~z޾NIU֞µ_-U܃4r <+D 9C;_ @p:h]!n7 w@kO#PhC8 V@޴Iwp a?O}zV~7U^KI [K}}:Uw:}+T\4[{I Wn=l?_CD}b#%pˉd|o!C>5+:~vﺻW~UA~q;!?֓jI[U_տ.+8u+Z ouַm*D2~ J Bukr Mr ׺?_!%wy WKMUuku]_jvһOmߪuۭvk?m/ok~ZJ׿_%jv: K SK ml2 i}m oخ>@W!5)ؼo|;jzk/k krko߰|5K{]4-`nm;ߪ& - xNv_MPaS wլ4MQ4 ;M;LA&A40&i0@І(!! ζT d9c  en~+ H}DDb"""""$]DDDDDF#0G oj?`GJ)]/ t ( m.( \Hzo="` ]VƩ][Kt^y.DPU]/TKuUphWjx?\i6TU~~! MQqkzZKF4B@mHcC<f:A[kZ]p2=БvS؞#3mBAt_D,-\ D 0,#HB`&XGwH@<7Aף0g##=];E𐐟;4~e@pU 6-2->4j2JArP TB CW fiɁ"P\WT@ ä[["@8H&$[EryxJIPv`Vv6GP I4 @$0 Ô^(';Ses<BY٘PYx fDW2N!G s$K2 ,+p̖j̒^W5 \ppZ 2IXw K. k t pi'aHiۤn0tA 7 U%pàtnI8`vpÔژ.[ÚWm E'}kul8A{i8dA-'a_ tiXa^aZa.-'-[ t%u-l07Kàna_-[aOXnnZM-{0pNàV)p`7 hD{aKAäжnP,0'P6ND tul8Ip7tm' H7[H!j҇ va2 j\7 0Dmv%M=67zn[{Ao&[ 8K~kVT lH1A;l8ISm]wNä.:ÄKTI`-/UNpK V_aJ_Imzl0V% I ZnmAW-%-p/.8%$Am]/Xn oꓷIﰗl7KJx[0Ant bhJ$ !8Mv]7 6wakat&޻t]}[}!l<0鴃M^v-jh7 ӤWZB|CݍS-V0)7ZWQoMn] 7E_l>ⶕ o#]ČUz N߄CD MApoImTB_Bѷ(Bߺ6Az[&֛A87V6T~Zlu)btmXpAoOUUf rx޶Wz$SIk4Aqa:hed!ޮv(_+ 4wҴ!Mzޭ ʾ{Aڦ 5hpt$ [V[t"(ʢAa(a% <VHeT (a*!Aq X51LB5 i]'*`4 & .9M)%q%+ P"¯Y8\R f аoF!9D.IVH[=DLH\}C.Ż[t ! 2 }m )}TҷM汑YV@ީCHC*L V !3 . GOTI\E\h_߭ }zh}CGz& փv\Z Gf*[;R):}$"f84-7TťޔaHKG[z"J[1__n FAaSҧ l=GL/v6t % { AߤB:zA$o$ *a &8M '$n&6vDCߤ}ZmP{7[MjOo]R zJD/$CQվS*H% 5oI?.-O l7߯UaU.}%%k}-\ )[4~B[ תOa mFDKa/ v oKaz lt`KT% l6 6G:/WInk]&Z xa|. |K8ġ'H 5Q%j7&ү6K CU(^M^ ֛  ~i$M00aAmThb)aA-ۮL[a $[$I[]\%V 6I ] / ?6Kl?M$ t 5^ -&K0 l0]@ z7 b-WAnj[v $ m_^0ר!0]$6RAn=H.uҤ H$tJ5(%j-k O`P} ~-A,0u$_JîOa mz 0JA.^AR|%aTKK$^4 p %]{ ڰֺ }|uU~:'Zii a:TU  |L Px4mB_wt{: }dtڇ%: ?>/{^@v_}?b,A[)PV8,;ZGPYHP_ZwZ 5ڨxoItAJ}^ 3AnbF w{Iok@]٨i W$tP#}W;#GA=kNpֽ>" OV(?kzO!\U(_j7?_A7vK.i?a/2=j¿HG`r:v,Gk_Zǰ|/}_^;wkizסnzkN~_]t/Vbzm+qB;Uma8atq(炇 }}~K?-I u/aa/Cޛ@eeAm~"?:!_wJֿ_F?ۖ/#}ܵ=ǻmw;SNUoֿ߯{__̆{~_z}geoqkK__k~}. _zwY ~t!+z_. "{`7?`oAww#~{_#lE0uޟuon`~ZIx(>+Bh?W^{oM_.;q;Na?i޿Ao~u:{k-="OO2R_ 'OҿkuW%] *#Dt?iT z&D O]?44B>IaUZ$}~4^^ (6cXiҷ7VֵD~~fP?Mu\A$O=P ‹"*:5Jv D)~h`˯\TL+d! ?W "?d)i[ Bw`0Ay:oȔe? Y?:*?kkDF`ar6C`Lya-zY)A},t@iv ,Kס?L]迶ձ `˲ 9̵y3W+""?_M,g%zk@0Gq]l(#1R gdEAuװA>ikDrװZ!?ugٟ<{A" } aO#;ї25! ?$?Y ;4?A6Oo൵۝~|;'C3̀yXf{聁_:rV·(U`G#To;#:j+ۻx/":צ#@ }#٨ej,.4 aA0 h&@!}: `elGiݦ 6@ 1p‡t%`)NvDX^ $@֓R (yگAy6Dh|`C- lugABv07XU0e:1Kr?zڤ1A% \24dtk :)4cD0Bfz^T JoA55$mu<v]z GPʷo2TAp[o5T 4e0/ >%H3vʑWpd j@h]a4CMh*S3v Ҙ`7nxD. A[@4IfנAH% v;+  ' Mr1X" z Na.\D4"l ) =v4 M0hAy\ZO`뵿@4dH .;  A zS@aNS ^X2 kguX(7dp7Z;3;i%@> iȴ eGY߃Y2r:gn &U UyK2!#\N[AF>vd1 d4h?嶪 "{; +'" _-H  @UD6"R$ ]B Sk+0@" 2pdZeiP9N!>ٓ=Hu_/ /AfHu_}ANE{UkU*_/]Uz! ޕi~omҀj-_hY#}C Dc S? A6}Zv?__v}_[k}uo_(޿ߥ?wN ~_uz_[^u{_Ԧ q_u_ok_[^UU'k}_}}ƫ㿮}t_ׯ_Wu~w~IoUwk_/a?~O_`Ư_?4}_Z=}WWÿg6St䫬o +($n'Y?Zn=7O yՃl ߿f l dUr [eX+uAr쁃)uwdHH5mnJM~+?@$ : Y`kܒǮCe,?Y흚ǥ,H9݁Go[ \;8,?J; }xl`u,v a>fZ0jv& }aN AkN@&@O {L*W@تPvQ:;X+@po:1z 2hu 8dua`&~ٔZV 6bBH $L2) 0l%C.Bp0dtiAtheXJ tRDAC hC,6Al iH e6 ᴤӁvZJ T^22 @M e &6PRbaC `)0.2{,a(0mRfA @#(1' ҆C7i)H Ґ C!ҐPbAH  l`2, (d3vf6 BP02 K.7J@P[JCj a(R:m CR2 &҈d4RH6P`AH iANPk * DtGJ@UL5AH a(b҆Ґ50AKoTY1PaH + @YXmAakPepa‹QhZ6QR? |A]N OwW_ G芣c*kpD& $3" hip " e$"BTIH(#~0A".GGc=Ȅs 4j 4 ܬ¤Ud3TC-@]`!@x34B DH:D!!ƄHR4m;N A(h" HA4MD2ɴAު@id AӰ4ᬆvwa:ڄw~M4 l#?mߠxv[AKӵ/{oNWoM^oNNwj{M_ig'޾ݯ*"p9 [}W Z!>6u_RovO3 ki~W '}oo aMGpA[{W{pp`uT /x2=zMk_HH@R믿^j҃=o]]nmvۭ!{ZzZi޽kz_![_Ć / յ[k ~פAֶ~r }ra4mS꾠jr8%/ 9dW{^4kC[{K}tz{_׮zߵtmu]Z7" ~V.;w-rU]~o o%kuýJaߵk`턩]:YBo߬[(?o0wk°amqa o΁j^ְղ: C xpa}Z+`z*$![ _t]Sf#|S[oj}5#E_[w{߇pޫkxku׵_to-5 o ~èNan[[[!-[Ojݯ ou1i[LM00zھ׾}ڦ 5[ X4B;P 0 8a4 z (T Uu[ d`C .&8A&\' v``MziDNs .$&KdAʁdsq% VE":"Ӳz& gr#|QQ[ r , !G""""""$Uq噢Xߧk_NSU.7BX%3aqUjb/}Od"[O׿.w&VDs-~@R`k5bȯ-v!,"*|E;Kw^+*ܑ ]ȏaz 8UO Z_o}Z ֖iRtx~[Jүu ª~AiqI$*iu^M-.U-浥UOKo\%U Z]*]E:I2 T#_^Dpٽu#_![t{լ7 W[A,>w̕J.9njobJiۦ.ݥKM-=Z#fƊ"$r 죖9K_!<΂Jj-14DDK-.(D3\90 kЈqʲ ԈZ]h̓E קrT3)YK&9 a.Q? 4qr&Acr ҃B""""U"1dp[ ?f""vjG2|o<ՠwGb""Lppp<^w> 2̼`1H8 nk8nS釨 4yF:.Ȅ AЈ = aIH0<7 ay`+°kLIa0&l 0_m@~z  L=Xa/0h*H7`]zoH0ait 4IH0_]azچ0i*Z&CJŁ R 0&@ $Kw`PgMa{0AzATi"A 4\$C9bMAo 50rCP@L:p AtII Qn3L?V]&6 0dKia l! uMj\$keDM ] l~]]i7!]l5} Î6_ &kwoۉZ$ f3H֛ >)'Y=WACmͽ&d3A&kH6']a0,:H7['!b mlȥ `  NA"O 54). 20 2 >oi$i6d$I@gu$uC6J$4ʈ ds;$H0=̱! G HM:&2 u!U;pVI,0"ଘ0} (q>7 v !.`m481 Ca􁆶 VGD:L?; C ˰pK|I!F0V2&CH7td, 6} ؈ Vd f `0aD32Xl0A1dtm$lJWTW 4W2S ;:n (sCh¶D" ' paf(lEzA ,'X- I{LVҥu0T`e? x46!_-2H0 0}&[ &v`4tZu V7Uaam I{mށa2n06-@X6v$ {Pt"$9VTʐ]" 3` 99jp Dps.F:1MZB;im pB""""Ar$gzWL"# 'P#sc1A;B|0r[#B""AWrq&\(5f0K W/"""Awcg! i\A@0pW 4 "0 Ki)iqȃ9Vچ"QADDDHyB.ͣhE̫I0ek#DJ9VTr8!pkLh&Ƞ4Bx!/&9s9=r5@9pL0 MT9iN""""F!5|$gg DDDDDH(G8`ԓa =DM`aCd-D3[Il 0ѠLf4`ApXH6]S h!+4e2ĂG;r+PfA+r8Zx f #KC<7! Ñ\G3QryVTr09PUXY(ra9 t$2b""""""""""""""""""""""d=7-# jܴAn  ^ an-#ɸaH 5n epaw))sF9幬(s9܂9x;9iHVG/r703'6@hiDDDDNHHD|5`Ag#8d̴3`DDDDDdGeˆvpYi$ &AU&Go#:> C0pIDDDD[>ZZ a7B ea-. %c<3gnZNDH9WۄC( $&G߆b a W"Fd!4嚦&4 `ܾXYaؤyf$  h"ۄ$R V7nY J 2]f CJZL[rͨ2r 2-&@6W, ΁0!+pitih?nY@b&[pKHt1P3u D ahfiAr) "nT A4[adph1[`e H#0j0 35#i[֭f (aވe2PLeq/pD 2* k%m3@1om2iPa }>vXTWljNUVe=M/d34(ۖuPpD 2pKK]ve2k{P0t,⡔0^r64Rl[s_^ ]RxnY[H%Pm-{@*HՆGUA5ygNVOH1PrJIe[j*iW{r+uh g0'n ԓECtBfaeB n# xD3+AZC3lm^#t`oZ "m*lB!n@9Ii;ЂȤ@mKۖD QL'B{h4@f{rhnۖiN&A_pBCC@ {ӃC){rTAhBA@XXv $]pA! ]Q4 :Aa!{pD&>d 4 ҾH5H/h[a%P n"lC)Zi-۠ޖLOoTD3Mْu ,0}`[tA%/a%vDuzOifUrW Pal:XhIBk}6VvX`MAIk Ap!M? !uȒZma0ɈX :a6݉H(j73l5]0nHN F% 5lMa߾í4m=8D @ho57Q X< lH#b &B%^"o0ql. !St8OJma `Kێat~WAjW"L!pVS4B,ad X.7_olR:. ga@ 4W҂M 82Z)-شy} 4!vX r@KoACK;TD?] hݣ KH8Df ;_}2>B׷H d vZIw۫2K + ,!pd}o{6d 7 Xۨ02U KP߰D47PT !5Ngiaz~&ֻ!p O# U.W SC@":a XC[u >̌l ALs%\ BInZ > [跨5GolYr%čҮ`2CYκZuӸGEu@mzw#(|0o'ĒD5vO_|0%ok`B zA3Q5XAZ^ >Tۢ/Zh",Aa0A: N';El2P ގ7 ݴMU;(-w B )+l0t~77ӡpV# }0x04`7eh |6Mgq& WI7V j"z#! a} O)H' yeUab/jM a=UIڤ\L YG3HAI 6pIՕmva $ l(Y]+za̭t?8+2 Q]eʠZau_ " $t&A Cu 4)A$ɱ4Hlުa KOY7Q47 kiAB [``[$+MՔY W0h lӄ)6A }j{ ag+V!^i뾃+ɲ5oPit^ o|RM-lAA0|0 % ¦[u bPpD__tSLUhU/ޛQa-MZf3MVM#_>[dXEE7t\aual  -xaMmAӮi4խ@W]C ] + @aVfJXN2 w> Bh30E|a0/|0 &n0̆04zpU|k/Aꖟ 3$ m: wU0` BT!#a %[I>ٔh0 udWO@ݞ[[@d4WK 5¯K^ 3P1 o 2d G`ևKᆁ`6*&[u|0gh ߯ } jK}* +HEaz^} va%:z, QK%o 4g)A0 q0fRk a=޶2 D} TWb$ 䰩֫~;\G)9"\W9()+|לD4}Idtyѩh y GE̎!9v\ PDDDDDDDDDDDD~4B}k$?_! 'aIn_ {~h"Diujުm U턿KK UXaW 3~$r]l b_k 21_]@[EBD4-zI5uak^k/[n d- 0_@ZQi{_0!Ҡ&aO}=kC$o`ch.$_/_ӻ̊Az_0A}okگ^[iP@ %C A] !ڬvo/_^rDخv[itGJڙ3B:vb-궺 KK" UlT>~a 23#?.T0!> TNҺa֯K0[ioVI6 cTG[ҷGe m^WcfV['IX`-ƋҧK~8#-@oKҠìaV&ۤ2%oDG)/lT ȻUZSظ1kýoշa ԛߪ~*=wW{~~_0Gu"tGdp]Iޡwu ~6}]{A'WֽW-{{`$N/ m}Zlk^[a#0]*+oOrf MA'+i}&~$ҕ[v~v-vBtpAo0TXaAUdO]oO"FoA]+ᯨ0։`1υCIm}W%mtW [*۾O\8A CUu0 h6[8M~a &̖( WH a.H52o ]H1ZݴMl |7 &톓A"P2[n[aPB >xnn`ԓIm*pD6&K_l7 `ۀ$b7]mL07hI쁅'm-aS4GoA]1հ{l u ꝴ1 <ACm,7!! &^Jy](6tbiv 2Ђlw :CAPA|3/m-0R{k^EB"a[u]WxAnCmKlm:d25 Omi;edx5{`ah~~"!0L3mݶ`}.:B7BN'@h5ޡKH n@-vۮA ,uPyy). vJAAfXI=y̖`D6.Z1ʑ_{vC`lf@^$ZĜl4Z|7F^!!*!!+LÅ V  5XA a턷! ̓ 1P ZH 0DSr GvbSL,<\6$&`G^imٱ{ 5mHPߥx$pa4*[pD a*PZa2 a"X KnCJR}v W@:*`{a(AXK'bC?X2{U  xo ݂հh'a) ADݐj,Șg"eoODLZb D.5a_AﵶD!uD: [dhʰ\A'ZD ZkpaA6>$tePl`\X+,Wվ ޵z Aԛ A 3Hmz 'fGfmjL`2 Ujk PN+JڶKAQa;AD08@xmD#] {a;xoJF !k aHIA;5}gW&[D݇[Ӄ.PV;8/t :'`\4xxn<(&avLv < -ac p!mӂm^@rmAaϴpA0 7h(HnrR4CI^ N  B'!7ᆡp(0i p@¶ vg#X3t=vJvXoNpP?H6Un@3|A9[nm#Q+ @B B mFd*ᆠ  $F WH+R@Y 6A0H&~i``^"̨ SM&p 7 |8pCMW zc&n̬vv@ٳV(CP2 o;V 4wX(JIwmME&"+df;H`0z i 0DP+V 0M+&DPZ_l50I(`d 80;5z0t0DC,s2zPmg8h` a&LAha^' YA$7vAv 2:; 5 )[F; V҄ä0NaB tSh(a<6&L@Wt j\Z'8 7 B{u Td(G]̂تmI&`@J>'EI(FJW ںV_2[Ot6&۾kTW '_6 gePDW00aLD*nW@A0xD5mX`]\0 sâ  nNuz+X%n v0# dp8\&$? C r4\ q> p Wol,YKl%3L/̸d0U v<sT0D4ƈ8;lepp L L,7߶ਃi07e/E>\  +`nG`(:i ݳֈ2 l#c*{3@ tTvAb%" h#@2-Ho~,DHgG Bo]b"$|#am5}M)DD2@I]GX +iOZj@@~L'᚞vԌ +ߴHhd0ҿA>- faI_1m#jNՂ[+v^9Ab]{Tút Mtێ}ZtAjm`M $[oI6^d}E2m3w /~emWM `"]Wz;5 Rom> 5V Pf; UV)z[kQ% sЦ ِ0~o]J] 0237Nѷ^aA_)~ KfSAݱJm8l2 'n c.{[/ݽV'"P _a}0y7)OwW޴Ρci7uA>ӻ. {m,Bm&7mn6NT޶mh'\ȶA+!]INMn#۴OTwVK_i{iRW}];ޕMh.Aj[m}w^vW_v麃<O)}oZZDDCiZMmw}]ZmՆ߻a[XoI~݄Wn ?۰Ka=CIGH4aސm[a0N? ~ M =Im0=ɽcWPatm bW ߶V[0wXm waMC-6[{ y64o!M} Xa 6 nx${ z݂aA6۬0V|Xio~`ۭ7@{ nJaۅmC A6ݭ;f6@ z-CQn ۨ0f6;m anޡ-{ [Z 8 aok ެ;Mkow f`n0mWY¹V-k ?Vꡮ|2 65BGmۻ+m vݭl&o0&&o8of[ nIޕli|0 i6 vvV63AüoA7o栨aՇ& mom&Mh'~"Vnچ+߆&{D6ڄ7aݼ-Ș+6E& 7u `+ ~M MC~M/V`t&iCJJv'`7i[ɽMAf 0 o ޔ0'maHݥ =mRjn$݄m0˫p@t~&7A6Vގ;n{a&(aݠA a@I op@ ݂ ۩f- ڕҖL6ҋKT=@U^a+x {X|$ݠ JA҃X VA6(0A g ZoJĂ9l!m(bAEY6Y ұ 炇+4[D ҆""$ rȜWʞMX`aφ9PTj&|1 o àDDPFBJ (3,zPH5Px4Km҆"""Aw0Izv1j"a[b$4;Vl4G #FB A6+e2.V+v҆ vՐ&9 BAXBh++B8pD2M "Kt^#p%mDDN#((ˣlm DDp6#nD|# mDD#݄P##4 v428p3{n"jD|]DpG7nQ>a8&R0"GX$3De#@A҈hD|G -ADDD#ݥ֋6ޢ"&Qm)LdvGamҷށ[a ݭJaaJۥwA[aaWuނ +vKiCҺVRܚ|Ca(PW [J[t0l%lPf .Yd| tb'#<ˆ@)J%t\.Wl)ql!&ɹa#_#lRl f.[fhN-"^[ aF$3  l B!f0UX!p4L4izAvh48 4 kގT k&wzzޗ^`L ;AD =tv_Kէ?4_޶4v5 [Ӵ_;%XAiv;kW}T]>A4;׻M.:d4(Du{ ~{)}ui}~o]D6A" )106=;5ܡ@zD{>n= ߧUL!o52 x r 0^7*ӿWt- T/ 3lA#h1*? _׭h!Z Fѻ_kX{Az{iwH7A;௤]tC)gg᯿Z 7H/]*Ui٨6|rG(}B='{'$oX; d4O ! \fx0HA]?MnҴ ` aԂS 0L r*/OOzO~m -{}֟Xh)A"Wo CAPBP17]5~k_!~ wޒuW|`2 azZ_K @An/Vdmm) ;TCBV({ F益+}5P)|Hfh@) 0qw׭Rnzo{_^@jq4z~Z]{{]wO_|>ץ_]~ӪVy_}#`~R[oᄊ7r}{t;_~UXAf?/3 ֓/ZҧO !R|H±">5I?_Z?mazOGKӿ]o Zީ^G+^kZt cu!?k׿_[޵ A/__HlrW@տ0γ~C7_l$>D;]o^ZDOe9Z'sR8/ִA^WJnB;C.b_OuSK[T}_կNM[k_ {_{]Z>-o__ At}6봯{`Uֿ\w)Za;ޛ;_y EҿMB_߂nݷk{u0~? ܃r\-h^n}?VO ZC_jQӮJhpΒ0ON__M{{Ja o pKW;ֶokkozfp)mdfǰdn۫fx`*9.9CL4PY/Oo|+i7vW{Ov]Pdq/~^-˿~]uO&4}  B ,88@W^ݺI7 + kl*74jC7\Sm6o JC`5AB}5>ӇzkiH.Ҧ _o{Mm%ppN $@7 #6I{o}! ܠJ:5ӽnC:G870w o];TpUN~eβC.Ã#j߆N"6+t酷a0 r&FB)" .Aߦ {ﻴ^ ;ONP5._w(߇mU7ڠӆ5ib=`E߷oIE45_ ݦ!MmSZ]AnZ[DA99E 0 /w nNX0a4e0N5MWSa0M4 8w 4 4 0B$ ^.>;=o۽5Xamt˂ɕl@M8iOL^˂i3EnޝhwkDD23P d30Ad8@dng6Ɓ0@iܱɧmo} [^NAP0Ո@A Mߠ4Ac/=WNjߠh (4@@r+M4nm2 #TM q 0(VӜ*Zƶ:d *h4a4OM5P0M0"$HT""D͡5fy[Ad Ӵ A0C *Јڸj""$I dta 9D+" M@!"3'by#C|5zҾ.ըQj?,( `a5`+VAk:Y86kaH S@9 j@r06ʀ`j5 wI&U( h `GDܗ'@h5@4X).0i3* @Hj r@9uB04 @r7/EJ aVxTӾAݷuFЁa@ _P E"=MpVtF*&c7AC#s>ӂ}!z^Mo`^a' O.3r ^$x@Aﮟ__Z7}Z|]NC0t0Auo) d&Aqn9\''~vi}OW{CFr!Md!( I{@ւ@Mх^m;I:C0}tֽaZTi I_ӿo^6A6XZ!GU I=I]wSt_>(uҔ34 ^P`]vW~֩7W7=B~?иCqu.==_v__}`w>k﮿Wai+<ׯ־tWU a{X~y^[uiPDC[{ GO}_߬ ߿3 g|UkI׭]{S_[ @\}t~)>$aXr AխuST0Wu#?kiT^#Wn{}uұ_ Oϟk ZG G ֤69pq o]{t]gYտU!CG"z7_U]? Si'`g9) Z ů ߥ]}_P\!!1[~֥~_}N}|ZWN?ԆhJ뮭}_kPu~ >W 0Ezz۪_C;H0MOt[]Zn⿼"_/7 ﵽ^XnA.4^Ou}o !~I/vr %4C8?gID'_[=aᅸ}% k[^d 3N@Wa O3 z2szWwi{Un3 <0N ~a&[(B,؃_]ބ=eػ.˨g28t/ve߿brN i~[z`g\!|S ^i+Uuno $_M6izx5O!)noi~7{M%!0J OmzПozý[ﵴiS~ {q`w{kmv[WU8}`ˠVyF ]q$UU_AP%a7!C#Kn{.8* ?d2C`Y!aѵoV ~W[UNtA #}lq! ҋUO /~N߆|@/g۶ޛP}wziM?M oS  0"۷mo^siݯ߄{[A&.| {{[}mw-h-qd" EMMki ,M0d2_k{ߦvބDDDC)0@iwwa; !|/BEYz֝kmޚ۬0pXedʂ &4 C/e4A VC"VoNO@[׻N""Ng(H2cs 2r 273c@ elXdpi 'jXjDDDDDDDDD ] P~iaojj Xd1𞫧Nan4 SAdih ` a9Bզvaazj *z8V d+iAC-c[VYQch2•4h0iB&A B$*}"TfК< 2 Tii L!hDm\5$2:0Dgrّ&_<顈?Jhi_Kj(J  endstream endobj 30 0 obj 46 endobj 31 0 obj 53463 endobj 25 0 obj << /XObject << /Im9 24 0 R >> /ProcSet [ /PDF ] >> endobj 37 0 obj << /Length 74 /Filter /FlateDecode >> stream x3T0BC]=Cc ed`UeɁTA3000#54Rp Ct;Na!8 endstream endobj 36 0 obj << /Type /Page /Contents 37 0 R /Resources 35 0 R /MediaBox [0 0 474.499 716.248] /Parent 7 0 R >> endobj 34 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/var/tmp/10089666731916source4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 38 0 R /BBox [0 0 474.5 716.25] /Resources << /XObject << /Im1 39 0 R >>/ProcSet [ /PDF /ImageB ] >> /Filter /FlateDecode /Length 40 0 R >> stream H*21735PAsC3=#S039K3P%+  endstream endobj 38 0 obj << /ModDate (D:20020211151805+01'00') /CreationDate (D:20020211151748+01'00') /Creator (Acrobat 5.0 Image Conversion Plug-in for Windows) /Producer (Acrobat 5.0 Image Conversion Plug-in for Windows) >> endobj 39 0 obj << /Type /XObject /Subtype /Image /Name /Im1 /Width 3955 /Height 5970 /BitsPerComponent 1 /Decode [ 1 0] /Filter /CCITTFaxDecode /DecodeParms << /K -1 /Columns 3955 /Rows 5970 /BlackIs1 true >> /ColorSpace /DeviceGray /Length 41 0 R >> stream RTP*i i}mESZ vfcW \~˙xi}}";M]{iK1Ml4om"CK}-:څPDfDTʕ!KAGK%B]a[fr}a"1,J?-+]ZZ; aݐN2-œW{cO+;U\Su]-_]ѥWV!փ(!wlVQ){i{v_[fkm.8aҿ *o +WJwKKE.6H]B j yN!{wXW}}|ɯjU≮2x@a}Zb{,%W-׺gZ,x']qZrSrʪK9j㏮Yǯ̊A Z }]o][J~©m'z4=o+=+~;~u{ Sv@P = !<@;E@$kCQH2pwP(w\q`aW'. ՝*!b٬ ?ImZ  $4D =: -[a$7NKp 1VaIv jT``fpACgD6$_pA%퐰oI{r>$qaAVaI%w+!WKqP`Z[l5 A/f>[U Sv":K 7 ] $p`Y {`la,DmK,)frX.[  |9[ !Q/`l``ȣ %TX sI]24 _A%[`M,B$8N*]SAHd x `h2AJ; 4`r!r  + 2N#x,FQ̹Д[M B"O_D V):B'*1#, JCBeTeАĔ.$ ɎTSáṐGDHa9NT(0LaL$"8Mm@@*e3#GbBYRB ! O.) H JL8d BL*9.Dur0P,rJ3 drD6n1,}8daJ5&5|7IWk ^ <'p@+l0hn) 8I.2 D $p p9#p_KC:pa@,4AT: U(v &UCpAk%:pAU`3+aA- vB I.aemჄ(`hkp$0 U2ÂI{a+U d K$  ^axn %VmXo$m *:M ݔTI$a4!Cp%aP;mæJrР6.06:n 8@TM= * ưՇIV <0 e$$6H0BpKaAnt+nۄ07t I+aa6@*an7Amwà&mIVC$a]l2<8 Aau(rpհomx 0%EbpaA/@pIx` aRUa Ij0i0iAl:IV0$49TaZkxe܂s"$R4 B.j!tU`\ 6dSK0{ 2 B}ᘓl8 ^6":l.ۄUPNŲ莌᠏$l0tp!3< Ua /l2hdqpܲ -=0 B %ܷhQ^Gxhۄ_mB':#n TT !B&R8)U,phji'Yb]àJ`à R#t`3ąsTC *-0D]h I( `m&bA%*Äa]]ajz^i|0E%qnzL4%KvA7ij޿+ 1ҒKoKO +W5m؄WnT^Pz Ն]۰l-=("kem/I;[kJ4 ҄_%wv2B* _aK_M;dGJ=0BM׷EKZ~0B۱]ÿnSZnvzo&2r]~!]KZ|7҄n}Z*ZU O[c~p]۰`]Ziߪ:d_ Rַ2z&MmBu/U_վ[֭*%w[0?ޚU"莍 t:DGUT/Ȩd75]kc!/W[[H6t :PzV~zpvCVSmk 'K ⶾzLGTkn5ajQ/4ᄕ[ut>0`z W kXi]~(2: 2>G29d7Wkn Au|/CKPMvC}A(i{x/CkvAx C=.uِ۝MC_2i`4rNPsQ%eK+\5)Ii}WUH+0Wgfz|WIz\>v 3*=q[;4ޒL?-K{h; _Ie=3ZI0uRn4 +Zk+` J&ƺ0A4mc+ .h6J/0s'#Z 'dP 7I Y٘` CUAbO a ҭ0}$ADgHK:ev( &a5z "z$k!]%AI"$%Ђ#t|GbARAՅik@uIy v7!y $MW2K$b1]Wo=RoU$Wo^ ! $ n%M͑ӷIՐ_u{>Z&k;% IuAZOI[Ѓu} ZU;NaGeFߥUM`>I&s պЄ=__Rh5$t7I&. ߯i~Z/w` ƃ4"ֿd{I+RKoRpk 4ں[ukMW8it'Kk~0I_H&+4V{_ - A/򴋊sUTz"C2% Ӊ/Siђe &jߤߙ` H0i P0M}&̀j;1AА]I45H+KAߙ 7lrB 7z 4dpjm.cApi70jCr̆+Ki|?m7idp# /!d(6ڐ4=7G )lFICaãPms$mᴯmn9M5~jv`*om.~`J{NgI;4kbC*ߝi#WUTH&]dun&_ Ji[ <XH HaVVG~ҠPkmH0Ԋ^MFz~_}$X5;uie-[ %N~?nMo;&ۭ&Aܧ*.oh!m|6MZ D/nH(&AfZIAYnao%ao]K a2%\Z x~IA^Uhy]`1+A$iVڻ_oo@b<]{iV Iޒ ݶw *t٢_zJ {A 몶 6.PivhޝI;I [Am@iKMT=ۯowkI7A?o$H! y[@VZO-[OނA @ˀvEsT@ݻB Aj{E2&A@p\$<7^KTN h/nAYA P AV >6dkWmoH0j"Y޿z  Sa :oW\Wt׺OwI A%LA 7 mUWThֻi8"a4z㯄J>mm %)ʂ^k^[~@"p`vݺ@:]ۤ`~] n}DŹuT,0ݵv뤂 HS_v-R ; 5m{+hҤ l^_ 2Ȕ `^Kdj@T4*lV4co2 ʨA%حl\tـ'o-yV ,0_۰#"SI {(~I,0mȸ$2,7Km@X0>d@H" i{ep>%€_܏Hg  I! `v =$*.o;$;[{ު;* ,60Z ,2?mw,=R%FVǤX2V +d ʹ~h^ 6菑g K2 :&@xouI M" ۯ@2 ܪ7I %  @86?DMai{׹|ȕh A,0߿۲`Z\U ԿnB2@2+ p-jDp>uAVX0o[! ͵ p޾h"Km#.d`K .x}$Aa'nMA<' yʍA0S>fDxߪ@YXa/҄akOaSVd K`7-% ̅>aWH HCkaK2[K^N"`x_HBJ{gbA*2`@X@عx_lBƞ̼ ]P%anH$K ?ۺm$d@K 6뮟;XGj7\MIK+ m'; AV;K_\ #[~ | fv$ MEE} D68Xa9;@ <-* ̅"pĊ9r"VrH [ŵ$DP$ }?!*%m< ZmםMHARv귅I#@TKگ""F9M. ]$^vA>rW5D59A;)7 )r.<`<2@AoB'h# xe7EU$vtH  WwAl $"uk #&GTIp<A $t` " &pow&ۡ?$}fN ߥz7꒝W kAV6-v@v2R_o| @ll aT?nxi"c~ҤA$0ocӰR m'^@zA}iӷm{GI^ji"T$Bj2*CQs[zaR_@ [9'I 'onId2c*OI,C [- ִ WUNd3Q0J6a$!C˰9r$]Pj%ZN!jE|P A%X`¬@Iu$kI?o~e9Q=}RZw띈6[HD^Ak*0o_W[tgE26R ,IuT!:AAѬd4 ͭ.Eq;M8aNC" *BiT n vjPa!y pɸ]$ B )hG Lub2"KAD]Ǥ4BC`AIP^eຐdac]Aw$I,EĈ9Tk AJD 5RH%:BAoos/I/;2  I굴-HG Ad uH$Wlõ_z\׎Q[H$Uԁ'D3߫M%U /@I$&- &8K/AqRDڽR@%^vX gH#hh Cᾖ")v"\5H&ظ4 ( vD28)7MͷUI+hlJGAx! ]gu\AU 6A =0L` ת {U ,Nt $p4(u! *U^-蔊t,!( %R<T-Y] * lB`Zpa_Ww!G%A $9FJ@tF"ZwC$-&kzAKĬFH. 20'A-Ma _4%Q!paGd}AvB#CĚP^RB,DثS!@_H%Kp@ ߂I)(o@4 ̒ґI>`W; oJ/Ew "dLD$IQ*V}V\<{{>PzTp)A9:B-Ė`a 6L `Wv9Vvar Y$ e p6b:OvR]fD @- J . *-UDL-i ` .SG0>_m$Huhy 2' ^ +$+p/8t +@؋O HRzBARHU Z AD;j%N2oz DqDpHg>Ğ  !;BA6 a=rrdh<rn$"M DQkaY-A&,DH<U!RdpQ|LM@0a nĝ#dQu3;4DJ.afAIT,FC3>a*b^e6@q @޺&TI\s$`*Dׄ 1_ Z;$8Ĉ[k!apި@757Ze` G4C ;[r#σ!eNl[<i%0mHX+`l$ b B yEUl rVC&6B"8y,ANAԇ"DJ-MᣅHx| d3Tv@|paвp( uZݰ`ߡdM 5QtH0j,2Ѵ?jK^-aTM3Pw!l2< ;5 mS@)&q/G "’ ". G2 {Gi|2,[~t\l 7"C p{  ?}ʐ@ʥh/dvN&-䕭7 ,  f2 2{׿!@J A`B2<5z ҧ }Ҿ޿Bp C [nFJA"ȫf҂ _`ޢ ,6sXJ`ʐ*H2 㕸mDwD%Oҥ~wa*l n\tmpusIlރ R m߶^vjT0uAGN ;&fIanOk/UWJ?a0nl{ ㅶ'A0v#.Ҧ' Ud5[x'If et_}PVIQd\5 09icW; .A`*X[n7"XXAiAB\+鬆cu+ul+$X@! hwݽ .5eh)d{$Lav 7^ md@7 PӴ-2 oo k ^P/ok 2_e9צ0 V0m֔-d(x#L-/vdM5c#uܺU|0  [/`: { Pakrm=s$s VKntO,ĭW|0nU^ f.g 1X FHrwڮ`5X #P8a 6TJE-˧FD1"gb 6tl Yfi"pPOa֓yذa=?) P_(t  ށoTo;(O%pd!tAAw֗gik i ! U6Hu;uin4Bށ$ހ׆w!<%;Mm5CT޸d5UVKA~Ydž+6SX"o iGx ǧYd(QX`E WA^6Y^g`VAA2G%o0XmhkjB5&b- z[pm$ߴF:~ٴ ɺjGZL K/"` vs%jAl4SmE'!tp";n Pې$҆ x^ ƛu}HL ɺkZj J}64IUpE, T/mC@b-TՂnտCZ!dCK;+D|:3$0lPL@ں_d~d5aC փH*oaC2B[U}T b: 00Th - VCh8_~djF 5Ԫ꿾d5C kRWYi-}D5BC6U6R. ^ ʀ; DpA@.dluKՈgeAHLOP%A\Iuبk2:. 4R n7ـHDA1.7h:. AitCXrC.C D$@6 Gc`\!Ҽ;5HL[XXuDX4AI aHC!l.)Ko; ށ2% I06`xs`-۠oHx}v`{$ma!$70`mTx8Rbl0tIXa!( }Ijm+أt!$öeA ?nohLzRn E ;R=j4mGfޔ0AFZ/Pᖒ6uM d:ޢl:,mBN% P!-dZ 7Rmep =+@AA-%lF`:0lX0acowD"5 i MHl$ 40m!!K @a+ V(d5J{Gp 0no] 0l i&@JkX0dk߰%N&BI@P ½ںhE iCH?!(5: ~Y4$}bi YiA aPh|2m$BO Fzi0u_ "taQ4 ʤ &aX5gPa'B Xaj)Da`s4+HH&BRI҆ Wi&loрe2$ýfI6 aA]\b2aUi%C}6U 8a`X+{6e% 2(@*aMn 0BߓaPWS kDZ}ol5 $oBYYd@ V÷ɲp'PٜAUSw be߹6Y`l5lY-A%oynd R TiR' VȜ0`mkinI@@08* wH)2@ hA4۰D 0De n*r* A7jgM5" |H72f u-Ӂ`mB{ ȴ2Ф %83 ~[KB5 E\\PL.@hH Cr˕Z BĂ.7X4T2y\P+9\UkaN \~W[)A'*KW+lAp`xa V$,Aje,! x+RL`,C$IŃ !mb L@˙!,i6̖2\s9[JxIgA1b(  L@+ldpXdXÉ (p<3%X 2$9 ڬ  DՐ d,0&0)$50AA$CGެ ")1C$;w:  B&x4AA<2A"@.A-"5R#H*B B'!G$@7f  R A@ 8 0`,lj4 E73+  13`ua[Ahey R!3El!hnhAl;0гU`" #H-C Dp a̴0 ArA `% ځW B&' D Dpx0H B,"r8d CL@Xfi fRi`Pl!!8"Tb- 5l)iFD@IQC.E  xa!@ 7X)49Ci i$#@JZI,P>e0b PÄ́v`!%,b`Aeƒgukƒ Z HP !-# h%aAP 0Ԇ P`a R j7d|\ˁŅ ׆  7YsB,|B ?QZ(,ĵ)GMdiG6Mxɶ(4)+: 4';rTn5n@}#苄WZ3 WeDpB$(#O@}<4Dhaj+׹`!IXpO+6 Mp~$ T+#bX4/޷]  @hwԀEi׾܀#"`f 5P#U =;NO4?iz [`sk~` v{|'i :zD9Vָ¼ʕz1A7Oÿz{ .9~zW]AnQwշ{]$\v{=Hq'ZwOO僚UwKwߖz=DsAKzIJ[N^z }Wĵw{_Q4Zk&GD$GDPEow{NV 0Hd Oاy +wwkL84!hS #aah8}ӕUzvuk"$d!RD(BAicU_4 wuj7 \  wA޻vmo⃇k >[z{o`v_AqҐG t[Nֻo[4K$:B?itW'[kf`_n@hwDl'k{A=+ i-j04ޛcW릯!" V:< wTL0-OoK}~ 8hOK^YA/!z}ߍ۫zbt7w/6D69S޽drkId;cO "GP}6KI$o&#چ~_wi3+mOޫDCꞘLN?ww߂oS hDo޺L'K}Oڢ z oNC@ !Wm@4(;q~xT B"_֯~4: e)~d<-?~T@ !m+kk+ᦃ`ʹn-Jv ""_v 5" ~RIX*Ug0ZxڽZN{Յ ]  F n a ~^:~] _Jԃ {O5wۯ]z{^KVC [}Ҡ0ko׵Q-mZaJ*%N܃P!~KjC4r.] P S0Cvo30QWoOvwn_uMUS[]0ݥV|-vvC= OSMdp`~Pkj!64drrJFka4vA@)1׷MiC0"O6">RB/A ܔDDDoih "!a""0PDn"b?e*Q"’L!)G*J?Z@}E) >P/)-b1w_Oת":?Oײ9"hwh?r3*K"]8]װ׷]kK[Dj*ZuTz0QUO{XqlqO~_]͊!#Մ7@AuW%\WR?ߨzjSbI}'\WJtt.:X!!(ٚTHaXBAp!l `=aj;I.Se+@* tB % 87P 0 ԰D2C9L%D,[ x,9 P2GAa vv RDOJ\3 S#ٚH rH.V2pBpLmB\2)0 CCHa2+M␚р<ΥP>@jddD]o!P ##mh7C,$0B@#\uP;@. a$xR ߃މ2HC lL@פ&`ݠd"+0t*PlXA 4AaVp+ X g=U #ADc.#AXdhƁEP2Ðaނ-AL7C3j"Pt "HrK E`2ނ-ʁ\06J$[fT7 FemM tD68 QnHkl pn6ذ4^Ep 8"E s"PV\Wa[2 o DS`,>AU" +Ä$ț˜A i  bCOHJA R*0Mna"h+>"@+0pD2P, aۄ@ *`6hm!%W& 3le+O`o D6)q7 ,d*+.  n O!!'hX"+'A7W \`pd%pHȔnנ@jV^!8xHlD " FEkFE ِ^zm幘4C-]d4 p?- ##jAK2@D5SXN2N  e> DnZ $. D[)z`[DACo!] F^ejr:q k0x 6ˠqjؑ 0S0V@ dEJP!* /C7jD4H@AT `)h 0M 2~ " +I;v v t[OwtAB鲸X4xAne AedpUH4l r2 ch p2U Gah|;BMAp f9 @ W8(c 6 ״y]P݆ J6 @m+ Ӵ\H2$vj60a 0@r@4d20Vi|fv* 5 Hi*B AWkre,H)W& E˂b@A4"ʤW&K˃Yn4 0% Sr #I+Ai0IZgKD:6[ N4=@*\!@i&ދY#D42 tA,jea np\ Յ2 V7@&や( Di I^Aa#D37F Pk0^AA@!&C9aDdpi":CJE2j&, :D߁+Xfn' \IiApU-tf6J|iD-DB e" e`' !q2TlHp\DL4l4 Tj&L !4EA68jM@ H4HAT(Z NZHh D C@f7T;@eP@[r `3.AО P5;$PK;>G" f @8z[ڀi&l"ge,]wHQHw;0Cijl2 l0 ; B h , & PCYu~I*-Gj/gc6pT,d3Wj6r 5 ,'Im̜\[pAAGHe w*xD6`mU He7Z!Qp2OnH| 2 r&Cip_%@d`KC]u5Ȫ"P4L![ب9\,_ A[gfA|" mʊ j `U",$%Ek E57 ۵p`p@p( }" 5pk-A!9 OAR5E@j"!ܙ y@E(i`5-A2T":HfR ",5AjmoXjH'oQ i'v7Ch跠j #yiI VWR }[HeykւWK@X, ŰPh X4\ ՑH,;!T!" 6T¶87LH}.K- pP0 㲹H6AtrX+@lW&H,,-X e}C\Y\, U u!R+#AepPʮfFm A!dZ[ A%i@oY(kCYIPfYXirm>s!@a awkA`HBXBX „tiH )D ȀP̸Y^R.'FFN&A;Y Es 4Px!H:^AadUlDmC]P~nL:M_o;k^ N pH ^ -~(w_@ ȫ2!BCM( Kd5X TG pHАn a KrCh D2CF H Si@ m̫Zj9FT H5 `/l6H.O2l6CD Ca%H/a," R$/A# eɿ۰DgvAa_0h4  'TMž,-ȭ"". Z';":L[A maW0Az0k9 FI 2H_`,Eb2CNRFD1" +$8d4B@s5 ,1Wؑ`BA$Ue$㔸T,"C!C Qͳ2NHAϰbd۟c VBC rD(2lWprZ B|2Cr8Rdp3kD,2AJ+ BP!J ]?Gj%L2b Tʂn x ɲ  Krp||}B#Mk7 |H,2/݉8,urn*w웕n ?[e?޵s%$fE }CYq}Ciq>? P_7zk_Pv-7onuսߺ7!}~ܓ_ԿHm.~WotZ{__?n_yo|:v-_]vJo߿_U%Ҫ ~0 {I@#;Mh!x*Lo}WzW]zv? _Io?w]__}w}k)._zk幧׿K]}WMZ?ݥZ޿/{w}O_[z?_K_޺~u}?[nvuU j_Ok__K~u_OU}z߿m|>z i]_^ ~>)o___ڿ__WK$?uiNhUV޽v[o}ҥk޿_ۯt~޽_{5Niֿ]5 'sM?\L& t__H7^vg.nq\KվG_^_K}wV믿/_o5]l->j _zh0o~kuƗuU{}]w{v__k޿_}m__oo׮o~]u__^M{_^WZ?_ޫ޽ݷ_nWTwUUu___[կ_[V_u{-޶?&]{߾T믷]W~u߭?1˅7"I?[jz}"{_nouw k_ߥ/"r!{'u@NW~ܴ1T{ AVߦp@_pD9C>[ __/ڽ/~-awoD>w{I귕փ?/ z^ _+n_~w ׿  . n|K*/&@^~֮pW9xH{wZj]~.<@B0%.x@~ߤdtCʯI d[Aq'_D<]n @u"p% ^!![ N !̘ @%̆Ud~_ A{Q-++!B̦O 4pK~$ RAz$!/iY/"9XP!Httx _.G ց de AGYPczvX 0v ڐh\(7 qv` >}~`AV2G,GAm!%\ _oX2[9| Q )("ZjddXAcߧS $G^,A Ș\$W3p @X e )`Vb!tvGXKHC#o 2I(@Ȩ3mʢ꽮, NdUPXB +T#"@ͫ7-zZ A$&n%\CQ-TY\P0k!"m9m4tWA$JEqղ-0O},&d41xI{iAE`n"ǂ ]Aa/ [q ݷJ0ߦAEQd WAmA߄bWK:Yl, !d7MEa4PMR練 7N[Tڂ]ak.z,DI 25kƂ|`⡥WVdJ 2KdP#+& 2kaWDktD(X@ aZYP' 7}KD:A'wA50k vMe9 6/ V ``[d$ n _HXZ M D@$9.'d6 y!bB'Ia ~_ nAxA`\!7-C]qN. eX>MZHՑH, l,-m~'h@lT 9ڠa^ *i0DprlB?Ƞm %&ʀVIXm \ X0} 6OUƤ,5˪Ib &f#&YOr eW@<QOMzpj Xgaxd 7S gjlN?>ɱmSYNDH-DpOCAA`T2 7߄@D;a[;. Az4 \8OAYl=7"Ȏh kiXuɠh0As0Td` MXd Ch;.ah ʁU>zGh ڵ" mg`z@+U21U;wWһ!z ÉA" OXT;2FGX2 @=pbA#-A K2 z@ 6Y@xOn 2_ Ne&`=L$h%FC@xo[6 ,T?|nA^EtOr'ԐfEQM}@A\ X7Na᷂ 2SO_3"Ö?a{A$BC ax@\8bUQp0vDp.$]Q V!DjD]`A"UGip#Ea$d Cl%y,Bh ]s $Bwge`ل Vk#A v ƲwA 0r mejL ua"dG" +KlˁZ AqrJVemK'Y &u;;$rGRb< H-#A]2 *s"wu p-' l KuҫGjCA2VTD -  U #v j} N '-R/ RoX JKXAZT 7YnB  (^` uAUO ktT%kvMe ZW8I^W-B@ˤ+'j@@_h _ԋ/J Of_WA w_6B8f zf$_MA6 >!`_ .ҿIߠ/ A $_ A֒[ԷXAB] OޠAO$ A/Ph+ a/V_u/ ),Bs`_M!MJ׾% __A| _@{L]qpO_% _o^% I {[An?_-u _  AuP֚__6uD/Z@i}F_K' O_zNo7o_?/N~UӿCoj_!7_ B[oY _[_G׾-4/7ߵT¿ot]5,~ҷ"?~}zK?_/!o[KD ?9'r('w~4H4}}n=Mo~׮oV5#~~M׿߮}|OƩ/Ok_[Kw~@[ׯ}mOw[w_]}On+/]%z};{I몾z|/.ִ}> ~ڭc{z^ ]In u%_ ] x Ac__鶂W}/ @ҷ}+ A A%/}yh@A{ Z*A Z@n^@֡ռ J?ׄ _pEmB_ ށWW޷,a^ ]T5_IJ @KB`RΔ ^>x%|TmT_Uo ^*|%+M}/,/ݬ_"A/ }-R[_Z|%zJ\37][}nKV&恙 x%oA}|_/ ^Zd_ zK^Kނ^ ʗ Fބɽ@Ӿ ӷ vM [+zW6 ݯV| _-o[P@&" )KJޓxA]۫z Қo M;W | [A[tA[_ax%[Vm z[AQ Jn[䁦ZյJA A 7l _A[u {w+}]VA-J`W @Ja)[5=> [(oڽo|[D5 !ȒnQ(nVrjpa -7^jk \b₽~+ D#W [vFm@GAX`0THd AHޯ AF7a@l̊JęЅd͂ۙ m<4pY([A-M xf m(\l ˯h^eXmmH$$@A*Pw SYJ  ´O"8 0@Tn$%`x67 !ruA 0 x6(@oN6al b;۔ 3`x*;EW)e e8v!0<6 S @x6pAC*@2Pxk@p PN@m_NC x+RJ_SZSCv x2ȗVSIۼ%)xmꂔ n lDbPbG b)TGRQ "!)<\R2Dp<,Q4S<6X JXPd ௠IDD fC,IarM28 Dhn Jl\ xPPe@(T '(R[Sap< 4A9 Q8AMESe`xD)Mp<P* ”٠dD@ j@Ea @(`29`xH@B ڐe!<2HH  <0d&R R@ahfD1DdID”܅7T^9J?CU-t(夕rEƝ}H赀Klqo ^lOh> AWxiAGȓZn*vbtj^6 ZE,fk*Z-VtYJe*,%./VLt1 .$@XAΚrc#fGB rqH9T@hXAa9M" " l}Zjr$DxF(` %e[9i- #1"@aA4¿ZYNAcNA݄wBM;\ P5iiz}zvj}S;O׻k=W(uUOM?O~!?ׯ} 1}C[y o[i8";]/Aw;CΈeD6 ?muY-k!Gn-аz@/ ^M4v&=o|6U'NW}k}zv.w߻vu~w_.9v}7>ˮS~_?1Z_ w|5گoowv'd^Uozj jicfվ=zwPo?u^i\>mvoJ_a6Sm~ #[ڶF8~}0iC! sw_43&@HgK)!jy ߾^* ]]]eAB;.o:i-{w50_ﵼ'w{[X0^4Wk -ڦ&wAa`"JM#kKiIh clikjaP4:"g8'MSMm0MDB" ÔKu%*h0  2 t@TqZ>ZBY ?!eRXS\o\%i.?`\)E-!@.;:\dtz!"!DDG0Qpr>\=?$& ܂eKH)pxuᖄ avZGA9C`r(r2,:B""#hH8F3L}gHmFȜGGͳQD""""N!`P طa! A(0DuA6[f̓ "6]C08 Ä X0d)f0c@CACFdѰH0tMM* c, d3bHYm4p!C(pp,[jY@Őn,d%ePʂ,2`? `dzX0` ܳP NkR @np,2 I X0,A0'!EqA0aBan$ %)pA`5&a( + Z`@a@ X7Xa 0D4.#2:rw!/HDyk2  A>l@ (D6H]dܰ6D6Hk U ܷ*D\kN!52 DhBKz d(hqi ,a L Im,M J!iа @(Jt nnhP]7_GX$Pqᴠ^+`oujCdhB { (A>O+MݥЂֈ(\6+ o~_B^Z@߯5޷^(& !k^W 7ov_ O@t%~mw2l }x+AOAD} d61 {>D5kP wVi.M"jk_,~<0fG{0&G@ڠ@CO(lmi6aOd5" n0j0R j*'T 4guA@4$) 1=A{./-d!A;ɰ{Pvyِ*;J͕mނ`{h/->" FR k|'Wuw 6B Cx ]a}gjO ~&C8`dok{vaǃ YD4@Ohߦ<" ѿ+ m { 6 n_*A' % 6v$&9X|)iY ܶmV""D n0"Aܡʃ̥oaaK Dr ND75wE.!(r Sœ4 a_.D !G 9Cq ilDD&d y7ߤ- f 0v»Z[ fKC) !T)^$!p\!EO{4#@4[D ;P*v~*eGD׻dfou&Cy,_}w۾קӶ[eq$b=I '{}-êo& { A[۠鿻jIݽW׻}u~vu_~m;wҧoVmov׿~%{[l5 XuokvTM~%6MA/mAMr86ԛm߸ tn0 t60z톻">M87z{~o=MKz^]oBC\m6n" vl6ߵN/m_u@lanKpYnww-ʃ\0jO"v[kـ x"(u{@k{_wzYKp_"{3]-4z鷻 mq|4KA{d&Uߕm{\4uV@j!J5 n\H4l ri4kՃS@iequ @mWFGaڪk<66AJNM%heXlDG  I ݶlU~mpa&+WdZ A'M^۳!``mHs󲸏f@a2@?m{ojpڤݷߙ 1 ɲeR#z[m̐c}CLMuZd" cS4vd|C֫ owޓtvWDMuo_^ؠj7K-eWb0oiXgbKi- mӋ~v4!O  f[~f?6{xVvv8ikۼumY Fa>Bxa="Oշ& B[}ׂ[ڷvK^Lc@vB7AvR.uZow !&m!#唳6[owF"z^ޤYVTCm֖ۢ+B kMkPmo崀omuo [)imm)JPn;k o% aoNmym VVۖoom8*6+om3 ۙ*׶Y ۏ{NaJBmջhmޓimv["oL% m}m40,@mgm awBݿpOd@66 /ovkt ݷ-CTM{ vX}I{tvime{ {}(*n7`mD6mrMۯç-T0i۽6[7wT6u{k0T^ -Sa[m _nlIa.npD6okZ\6v!m}a! mh+{uW-rWo 'E @*@-y[-u`/wm{\@2]w-}Ami9kw zꝶ-q÷_mG@Wmk8);m['$W!6y}h on+&-aPRm5սXlh;K-dz~X@)i9kTt ;RnPDimf"n8)w{NqA`NZH+6޽[VMu퇊6n{"o]]H*j#m۵N-Q$#tZo B{eP6|Zv~8"mp7ߵe .6-ۤ)ZK-BYRv\ Abն/naj"m  K ~p ݐLD='vⰈwiڰ))m|4oYjP $mJݼw ܒ6({eAZ=|P%A-&.+NշvL5B{mtڿfAnT oVnm턕'm{'W;k%vjx-?n-} movDO^t[+wB[mUw۰no^ N{m[~MFM]oMۄi[moWm֖/o^}]o ]֓k}b~@I4nmS@;$Vߣ'a6,v Z[M &ۯھ vڸa6|[#nACCl-eO[A>'_n ㏾Mcj =[m׶ok߰}?ANmmB+z&m0z A@նaMM@܄i6L$mw8 r] ݄m_Wۯߖ47mݷAZO@vۯnIoz /ooA{g`ɿ뿊 u{i{þkn}7_}{o^oT -;}-mmMݾ[{mowtWz/Vo`}i4cM_XuD4;o &݋z۷҆-m+ B}-۶fZ/[AHt߱mK{^ޝ7Ӷҫl6[{tmUW^[vm۰{z o 28nl%no[hFnvݶۯU}mpM֕fr>60ݺ̖6v5wZ)doU oKmXaa; ߶Km<:]]2n2?{ sE~h`? ߄)O8@ ýMӹ7ڴf Zṅ[0Kmw&ƀm.wa.l oowp^÷h*aa*oD60{7Do}AQ;0u{nf/ 6P}6( o [Гa0~ 6RmMAWNmk|0I6m w"{[vKmɱ(6wnnH _ ;K߅&`ڗ`PG{KaH/j6Iݾ}<>[{ b~kn{6 n o{a a~-Â!oֶdXja_ӷt&]x0}l=%AC[f<%[macl0w'6md_6"- jD lZ _],-ܷU _[ -ƒWb0ʶ-0Sn nqPl􎡧mz^hT5o-lI!/wz!! tݶj=MmA|0 9E0%[ݰaM [ an7nս4\MA}, BㆿpaX 6,nՐPȃu"46MZ[}xKo+gl>i7p{erlـû[}\T>[ 6=mᲸ6m޶0^ ,6GN[ 7Ta  n鲽A)= .`6 ?".EFc6 ;lA®ۂ AP']h$dN#;uKn鴅{~A:DQ@Pmd` qnRGKfD݇ !&AIc2  VC(v6۴a- Gݾ" 0} $ lT=E&+`ejI 2OP4 6Ol:qlI6! x* ٖum ;v@l;w;;TWv;`mV&RO@UCmfP >]ݻTnjH$ogk` =ۼ% 7̼&d%%{oZ @}*ݳdy@AETVo2%PvW  y8Apwal>e0rt NIWl5흨o `tv(\inۊv |*v2m I7 vh\ ~۽݂x2 T{4\0o!`poM@aLK .l7$Nlۇ[y 0K;ڷ{`|7lV[]-^J`A. AX<"8nEpW |2p[h^>vAf!b2: v)pd ņsReM;W֭@am" YB^v " Jio%m8 d^ 4A>;d)6XfVv a6:t@d1Y6G{aG[va* 4 &?*]@ m.w" F10 F۶%)zɢ8)dW|~d%z Q_+:A" vS60AuR-u6 `ˆUvR$S68/۱!BZy E v hv }AKT6@yn6*+ࣵaAy):x7J} K%~dGW/N0*2X@6/Z;S +\Dl=1m _u6h& /m@P(_gif ("r`2m8I[Ja$J*`@zh7K׶ޙ7r~̊@i} ~57޾Bڍ}KeX常(X&6Qh*tCFj0lO mnd(qPm`2a_}LA7+g2N a?o200^׷A>}}6df0720n" Rܸ7_ 24.n$fB`!e;°D ʒ[tNfFD ef`G oE*Xm= IRXAȰL-/ ̋>6.Xa 6%v22g 0mێ_mȀX!i^e3XMvWI{Lp = n(}+{m Ѽ(m불.i8BP;; :N &.WoYajEtdp@FW y; AE.a)V܆b@nVamP VMƕ:kW)8akup mG A{ bR; d>`$@0n* ̔8y6L>ʠ/!fI#u;m3 @؃;]Xgnf 0dKl d369XS8ڔ.-aW װA BbH)lW6zS ̕K" V %@a( >_:L 1%U{0i`׺eH z `;lm0eBHFW5 V_] p# B۴T@q1`Y̖G܌úaf;@#C:Th^21j Y 8rJa Ylۄ! a HA@؃!}7z H4H~@5l 38".d l ׵ vNH4+\Z̆ _l%a+d*9}74WKl a W!il 6AeWn 0gaq?AIv" h4q (a -̠4mELk؜`8lA@g=+aK`>@FDpD\SLp![F,x1fZ"o 2!)K Dpye,5pa-! _X0 8H4uCMzڻ Gum~z H00ϝl dW[l-H3y٠hXjXamm 2 P$ bt z2aP/b+,h4t‚ JFIo!ʽa8DojACU|0[vZ@ldE޾v៦p v@_ bfB!vA}H#6ۂv uDvl5ݔ;;4  §b᠎ uJŇtaL3J]`I0z C%d^D5U$L 0ݐٲDnc &j0o @#Q A[#!GY~ d X!9ڰWiޛ IA`Xah4ֿh\0`;@g?o1쉆 ;e; (޻;+u $dX =^h0@0DnPxA Dpa6 rPm)vv5i{u}BʰA)\(հ`ᇲ">M^6I!! 5flܓDڠl ! =Eq"v iMzvH<0D4oX2m ]4wi(j$G DyڨdSR A|2,o%;:EنK0lZְoCT!im$v.C]mjn(X?o, 0 hhn` Nv@ [ !F@ Brl6 / Ej"j7!~T_` D0k+Eô,6e8?h2 80`vm*7 _QD$G Ҹ(m? 7lk˅-) " axJA <&hI\5P\0oA-:}gDAmKmóo[ 5.p*tڨ-C@`(f\7o`2!0Ba`/ l" CF4H̃Yu`T^ qWJ k 6JAJx0|-Ճi .n$ذ{xAUHpKxA!< l;-Tp;ˊ###d5Wv0R2_zpa `.@=n#"#*K`*d6E<0f+%UlT;%^!2X@\pHG,@e?A`k e9UӰA~W4į0;- b>]rC 7WvH >W@9 [ DD̹`K10`AB e`ŎDH9r<(r %vqr$4R|ʑPKTŕ4v~WR 2  $b$r(Lr(s  ADDDHG*9pw<)Aʨ%dK""""",Xa PDRi)w \L0vU e h/#„̅$OnC @cyL\$ MV[ANV̊5U 0_ PdJ/`2 ^25 $ ^L@050 %h@!p]Uo$- ]Ū@0mdgEd[ ?̒6Awʠmw&̖CTma-5A`6 I*Y B/HiRaA@#X`s*%!Vd|h"GMBy"mAI;ܫ@@@pL3!0;גGAa&̀T 5 B as%`jH=K 0"I*BfKh*0Y;!Pv;iRJu'2CS?aPiC[UP"RYGKyڐ&emr#T%`ؚuPCoc9@4J싄k ; ߭SfDlLagk`vD,4o[LETXvZUWj̈A uŁEpX"{ l YDKAY$9ڐ* ۑ]1""kH ;-A 0ԇT/BCYuHB 5`qw Dw@ӻ RS$G*meaM["!!_,hP@jL=ޕavj t` PbT[ 9@Lu14IlZIAP2/ D"PH$v*{io-W LԾVUِL5 H}H(mJ #P(ޒAIH+`g`ڠvKԉAJw!/Gk S)_Pa< XB25~G|dV aVfeT BBRX :TA'Șr>%paA_z5 yh!xd'D(K@}j9[/L,1E). &z @- &D'V@7"J\+" ;(vdV8aTk(f\6K`P{ISڛN&  tAVp_TBa$0Wվ̎&v聣X2:7ppD" 6 cCd+` """@@FID It1&M) ݗWǥmp Dd]2 izMՇmX22VQTn@2IA ޘ6,CW:]$`200S}&@@ 9pw0„S"!p@VCft: iݴ@է[4Xw ARА2AZvRDܩ%$uA W[A72 [p@d zrcA` G !R}VV[]zz @zI&02H\-ᐻ2`+hbo e| +(^vd Am/-[DXEGA/Yo!Ы֮廂 t{꭯D }WWYP [ Vu<H.OpPS2TV7U ?*}({zƛ_r*VV FJa~ *J4W&/^؈}Td)Ղ I%E^%bzLwk %B ,,W@UMZB qGT" r$ uX 7yR#5mi'rP,^mFu/U\ @4iU7FJ@n+ANJdYj̋HPZ`-m ]t! RAGݻ#nt2t[74K}cA! ꮻt`p_2*OL] Az\^̠ ̔ڤ?tPD A.tvvf 5o4R[$-9Zk1WuO@J %MFJ`|v@K@)&"UQ0( K;߽y,)mHD$C-Fۥ`dP3w[zXf|*}j݈nވ,IH]"gv`S4i\9h~V+uK֔^ܪ`̔n~ kfׄ" L^nYi_T,ILS4I.DCx @5UIP FJaNҫ}aCI%}_]D $ i{n«%'2]$`d$CM ji$Rd JdB+y\uA-W/Z)r "ZJh [ZJ*ii7KAa J}%A@JJ0@" m;ո0)IHBM  Dzt˗(pF@BCjJkUEհKM^=Px`) _AJaג[IRi !"B m10@JRMA)J$ SPi^lCZ`̅T[I{e 4An( YFE?l SeU65#VTa2,aD6% tl YrAS$* "[[0 +i!WuaFBAB`iHT"a`" MAMR%L4֓id5FCAl T3 k i$t W -QO 6iF@a';RH  zA+J }.m-5W, P;5 A o*M@;MTDzX@0d4$ : h(@]P*D4ڵz  #!n&` ڨf(0aU[n@%2#DڠWJa- ]pA& @i5E!m,!D CnU ab kWM@ "mUW𓥰 ZTep$5Ҡa% @I Jv$ 5#MJ$ve!-`٘j* &w8@j5:+ &v8 @L PQmd ]T+$A)˃! }BL$H ^A$ $CZ (M\ M] ީaJCQL0I! J$*%@zPp DG`D46AZK! B ޒ d3ThT_a%}@ `5}PA6 `@[\ ZAh# $ 6a+ ; ?A8Atk]%A6&`ڡ5_H&VBCAl*HkANɆ* =mP@uMk i-i Z[&2:"!8B8:4G MI30b4"$ZI M$2 9:. E.h$wXkn ]e֐E2٭o wkKuߤ,l@l>AH)m>B&AQ A Gg [kmB߆ւ k5":d36aRGp H  k66A8Jpl %k@ .D5wH0p+ziڤE(5  ^ @í+AG]T$Z@b!P A@PlL5 f¦IJU6mpA$qH[$8a~BÄ"M%A#iml4H4g,XAXB " [oiaBA[҄5C Amp-d"5DP5RAo~gARHd A%PVX kɹ-`QTY)/! 2 p͠ì$#E g6XA6ЄP!!-Jva+ XiPH7 M@* #hu %,= GBl$AlA80 VA!6f ,PHM C_@\Qv ڨAk3@D5\ka$CPAI A,].-BJRAuaZ\0P U5]Xj B xmR@a\0zA]J4 :P4]KB-*.UK}@hduJ Z@ETF-.$#J\0A i~4UnavR:A,2 OT / wOAT7h45 /hwbCB9ժ!|) q̸]09+2$0瑅؉ h(̭N"CDsYRvE.'l b"$v!)Yӆ!L,0Ba j ">G28DA#;#GDp[(BOF8-x)eaè'2(Ȅ .dJ""P#2b"yDs#@eDDDN"Apm!Dr>,DJ Re(9`UG(jlZ >GS`96ZE,? -%. > IMDS$"2HiD|)Z--mPǖƔM U^ڄp#ՆrёWGMn@~DDx#Y%r2"%qX`AdXq$] =>@M.£K29 pPLXLBn6DQ0hC 0 $ 'If6 Țhh4 ;"j4M;L'! 4!@``a0Aj SN 'kk4аB *iik SAڦ q4vh=S ;0ZAt o 5Aam?5~WϘwkj,O&f'ETJC9b" .aA"_oxd#!2J|ȏAؤ4DHR a٨M 0V%}:TM{ҥr28<ˣKD @e3"!,!h04aBP_!tADrVF$8@`f kL 0M?OV'WAsڢ~75Z_cg|" a0MVMwP0iwR|RD3نpdhAp"¡  Czwq#C#r8T2@A ݦi}a>]mӾAw+HԆc ) O@ W 4APhZ!U[Ʉ5h~rD6!Banm~t 0A4մ]TCFM+A7zMׯ &j[]z}z:jn֛~w<&uWIk%oTmt ߭ZO.[t]io7\?Mn֯J->uzt_kڽ}p͏J!N_~w^R{߽ a?a,+ +.] ; gr[wwP˭﫿o[d4i+Ino:q`q Q2`7ai~1=_9A7*}{H(n"';|"03;])`HLHq?ׇ{ДAq|:@3ԻڪnA[^$Ǥez\\qktAm;{nT*Pm,]I)iwi6 Vވ7@}kzz(R;D0:4 ozBդ`7x}_{@x"{*[_]]zon]zm^xAROU{rBcޫn=w{!0r ]ﮟ]s! ֻW^M~|4EF{Z!]Mr&̧au]çJT0b]omkOqU@H]޷(V]o ]Nh \ G^5Owi !5oޟm? :! ZpwxOBio{ol ߻i_鴯 I_:/zc]_~ߵ/n!O Gwwa~ 쎿Xҧ_o}~V~t}kukmwm.;o^[na=m(un{aot_}N׭vi|3[K1 (F_B G ݈.C*wJ6X^CC肇R$k8N7PNPݴC(bcۆ+;S\ Ӆ[_ws{ir a.gr1!^TPݪ2{l#>a׻ޯxB5kj{vv_v[wkw0! a?M9䗯nۦwӶvm7Vv~ݯi]/}o_턘i ߃yCA{]mnkz|=ݥO0 :CvеXo$~;w|z{3A-²8 r|#O_];O]mn nmt-VÐn?lCa8k4 0A᫯aUn Gy zt]24& ClY 3ېh}wnk}ij! pAh0VA d2(zv_tk OOT T 4jSLudcI@\T l~l[!~׶p@nM5M4/!`Ah *'l&bh IW{~O_OON&:d 0L h&@3w)SRqwZې9=}|?*(T9NSX#{/5WMn?ij?~T[}[B.&>} m8zk{-0M4&j lwJZ'kO5ACeja jiA`J* q0"EGN@]Shki&@PqH!zM0A02B(P^i f]gV).iC@Aj kr Pa0D]h#DavحbYWWڴ dI@Tx<jjME|DpDDG5Z!(*WL .EEЃ2*>t##>`e(D!aaE0 hC k܀BHPNRq$acm`HHl@Ӳ, M4ӴaB!!Tp4 vMnN , ¦4`iAh=>> < Ӱ 4NM0aV=nT [[%y\'v_ZvH~Rtn btUA0 *J "*߻Mu>|W6B;!.1D.荊AAtD b 4` a?R^ӫN׻*Qyg##>dHȀ$Z#0""BXN0XiMj ?. rξDO,dipBCh4 ah@4Ȣ AUjuxaHl0A|)ݪ!wzP#[ 6:;FqR+ A4m4wq U viw|'e*C=gAF!*/ ?w~W2>J20#UC,0j5;r:>Hf> B!  ނ .rAa5UH;_ !*hOCb+[@4MSOOnM[O J4j! pNߴw zkvUwwAzCi?Wx^n^?UznT'n_;O^NդoOzZoM>5֛ڦn~w{j{W}Ouv{ݫ m{Zr聏Ii7zJ'. »B 㿐w!E!?{z{!\% CH&}BJ@&7g !*;N{!Ke#Xr׿}~:H*zj#:Cllċ[CM^Aq;x}7 D(C C=KAtx^h.յMPHː\zHP^߾_7NgIoVwO4ӿoI¨/Q^5ߤHwvnrkMz Iְ}GQXmw Cm~B~/}ZOi?L?_1MWZ_)wүiMޕצ_ۿG+P?KOW?$.={@8_ wC ѯU2a:k}^wJ$Z4kx߱2IߴI!iHlx6WWuO:]z߅H*EַQ$Ċ .;}e&膁YDuT{֚[0r_9cAGw* 01׿ lpVV ?_mۻ^JАi??ӯ_뾷_]~0Z^v?_mt߯ڢwz[K~vW? Տz]*uKwwJoA}/ַ_kVa|m}zc߿nk}~"[v7_xka&>gEWzio߿qv78Q h-[}oT.ڿ` -쎗p}؊b2lAWt>C`49@(pU BJvzÏ{Ȅzu D2-=maR \C %9r 8_޿!qw=ww Ѫ_kzx>߆w(s\]uO ڮC-Whɒ8カMm{_#_߾mmmAo/wi}Z_invw|kvӞIzza;kkmxzo|'m7ZkU nI>ה:_T } SOpd7m _uGS[L'zw޻ w|?w/34+ c8r *g<_TӴKn۽Aq9؏؈Q?~/mn]A`k[ $w+~N_0j!Aia0ih0 }nd6υO~C1=W{ﻆwݦ2ܭ0&0E`4 hA ,.!eN AK?kkv 4@u@L&47VF9 eA!뼆ſr{m^{|4TB &"x^Јav+y}׽Q`2cBd o 8r5'gpU S[[Xiw["eAC5b=Ar_OtoC?[uNžߵ-Nkq_}~Ӈkk^Ai6gtRvSXa4 d6V8aaIpi馚i hT  CB$PdtIM58vid gBwamm4 d A3$(rّMj aHeqeoR&d4'-@iEV:Fm%~OF@TL@ endstream endobj 40 0 obj 45 endobj 41 0 obj 57648 endobj 35 0 obj << /XObject << /Im12 34 0 R >> /ProcSet [ /PDF ] >> endobj 7 0 obj << /Type /Pages /Count 4 /Kids [5 0 R 16 0 R 26 0 R 36 0 R] >> endobj 42 0 obj << /Type /Catalog /Pages 7 0 R >> endobj 43 0 obj << /Producer (pdfTeX-1.40.3) /Creator (TeX) /CreationDate (D:20100419154306+02'00') /ModDate (D:20100419154306+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj xref 0 44 0000000001 65535 f 0000000002 00000 f 0000000012 00000 f 0000000277 00000 n 0000040545 00000 n 0000000165 00000 n 0000000015 00000 n 0000195071 00000 n 0000000626 00000 n 0000000843 00000 n 0000040504 00000 n 0000040523 00000 n 0000000013 00000 f 0000000022 00000 f 0000040878 00000 n 0000081460 00000 n 0000040763 00000 n 0000040610 00000 n 0000041233 00000 n 0000041451 00000 n 0000081419 00000 n 0000081438 00000 n 0000000023 00000 f 0000000032 00000 f 0000081793 00000 n 0000136140 00000 n 0000081678 00000 n 0000081527 00000 n 0000082148 00000 n 0000082366 00000 n 0000136099 00000 n 0000136118 00000 n 0000000033 00000 f 0000000000 00000 f 0000136476 00000 n 0000195003 00000 n 0000136361 00000 n 0000136207 00000 n 0000136826 00000 n 0000137044 00000 n 0000194962 00000 n 0000194981 00000 n 0000195149 00000 n 0000195199 00000 n trailer << /Size 44 /Root 42 0 R /Info 43 0 R /ID [<4A3080B10C54D3BD1FA4655ABE4E7C9C> <4A3080B10C54D3BD1FA4655ABE4E7C9C>] >> startxref 195470 %%EOF elk-6.3.2/docs/PaxHeaders.21352/elk.pdf0000644000000000000000000000012613543334761014240 xustar0028 mtime=1569569265.5226286 30 atime=1569569265.348628711 28 ctime=1569569265.5226286 elk-6.3.2/docs/elk.pdf0000644002504400250440000244533713543334761016326 0ustar00dewhurstdewhurst00000000000000%PDF-1.5 % 2 0 obj << /Type /ObjStm /N 100 /First 800 /Length 958 /Filter /FlateDecode >> stream xڍ[F+c}BP-/4u1_ߵI`{6ַok-$C$KP gH $ HX@R$$^o2d WTR)&v8<`QВ>w7%EAkYEq0'L*$tk u%y`i 9 y Fm% EPY8FNYJ>YX1@f0$[h-*9d BaYtPY"e!4O  `|G%yFaC 9`C_!,Y CuYiS;Ae[pcD'3S9N^nRYA_>"6 endstream endobj 203 0 obj << /Type /ObjStm /N 100 /First 850 /Length 900 /Filter /FlateDecode >> stream xڍIrH E<J$rpx} d!NMdaeVG$?T;OK$ L!gGT\Fb\ q8+yw_{Jgđ8p$@IĚz-xMQ+$ uBn}tL zt41{ݷo==;_eik}}y>`Zo+Z4g 't?xglӢ;C]᰿̋IFˠyhӽ;;[~,Dz4Xp8bтq.`7|[OM渍?Yt:HR39^?7>uR82Zp8]e3$N?qB=[0[Gpn yb_3!72̺ߴ#m[I 8l Nlv]3p杭;MXpSx T:fJU sn|8_-t9x9H endstream endobj 404 0 obj << /Type /ObjStm /N 100 /First 851 /Length 982 /Filter /FlateDecode >> stream xڍr6{>-½#2;$4)2ٔ4%sL 4II Zqv QI;454T K,`GS!#h5 ʈ!ߞY5Ǽf ZH %m K- |pjƪ-'dX&:'dmj-h9ůk\9N]e!ybO{z&|yoqz{G5N>kE5 XW6(֞2uMZ^XJx8GUcPC@8Jt2E)2Cb%ȅE{t, ‘:PֈxN(k*Slql``)qR -._`$NAqK0bAXPx({ݑvG`S6(bF[kA5kܢ1ACqp,-B%,ND9, -a18>6 #t,::HPmHP4h吠QT>+mDF7~ڥ;{-}\Lño 4JKi߼`4-;=ЕXlti_]46K!ӱm8uE/|\1E\_yʼY+ W燱 .媬y+|> stream xڍrH ;Oq{kjN[0{16bp@2_`;S:PtjIN WRTFi,Jt&etTxoL2vʚ+?G O9[>k7۠oI;| 4STEpp<*p\RQ>oT9, _0 Â"ƹBX !aNmp@8apnDȖKrh5!;\|NH0AӅ FdB88rtaAx r242_#!ȅͲn@p5 K ~1cƲzf,N@hq't86 Ff0. BPBނ"rFrC!vC( &Z\:h1 &Ŵ 4젃`D"gtjvtĬtZvAk[f υs֣Z4 ?:hf#~dnHD1,i]}W_Tr_W=SxT߾-n? 8T?T?5{49T尮?:IW6:E.2u?)R(}VuWG*eTNێ w!yIsXF+Ֆe=uGQw4QDP:[ؐqy롙@C##Ǯ3y1?w2F1,Լ(>doSޔaH]2ȍ0sެꡝAyv*eXWnr:{24nٖˎ L#2۪9'Bm1vux#/;2P߁m5eKFw'郞<|aG^ߋec6F]ߋv/Ÿn8q}?3|+2,>Do> stream xڕr"9 <%-Ԝf`KM aw4ݻ`́"?[$VI*F, >8eI kR"nqki+rzlP fp&V.NONybQ&LΨqVFyϒ *&w=w3>8q;}RF< ;%xd,#= 'jelDm3'"oPDq=3yؓ@:1>+spz 011M̛䈤Y924c 2'$ BY'0d5dheq#Ojy3q!c?cdb!z0fff{@Ȓ! 7C9QZt6i;c\lqgSfgj fgq&#(D`(H0$&t% *CA>P( { + ͨ|$匡 y Pu RW@A(CAPhHHabPizک?]:E{۪QOw?vE5u?X?lw%2TQM{,[ ݺ~,-Q[U}v pv­;d8pź%) ùw\l?oȀr(k0±%\`,Q${@5%24heiiKnu,P-C3z*kp 7gr(x9<KV7!%r~9!?N~IA7e34ɎU!"XsHtm0m<eW}}E2y*|M~{{suh]v)Zׇ.YaNNƍ7PvP~D20 Jw GP=@@i%N/ ]lw)cJ# i%ip YCkovզb۪붯<4w5 N!gZV<ϴ= endstream endobj 1007 0 obj << /Type /ObjStm /N 100 /First 969 /Length 1090 /Filter /FlateDecode >> stream xڥMnH 9E-M"w`=޸e'0bK-7cI=Q5@o$Wd&6ܭAXxc eD,&6$ aDÉpcl EqxYd|8`e#qlB.J02.@y7&5&9Y2S7ٖ5d_d()^p9t-F$lvB9/.Tx .<ٙ O,LHң,vGB^nd“$f\ɾPxCܢԇIiVfQ $-W&mY}Y"oH,B^kJY9 J^"kH8> #| ^{l & vSYɱ(0bqJ)9yS,> stream xڥr6y ,M\di ]zPũ(*$y H1x~RҔ9)MZ++ A`L%^E.*C|9e^ٌ1JrJ"*A+6SX֨s,k|:r&[\3V𙜔w Bʃ *pVQ{ G s>:6 hBbŗ7SќTG k]9! /Haހۊ)b8ͅ&m.dB ~c#4R 1 *m!"EeQ쁁v*`eYc5l軁{`Ā{``2%Y6f9DžϔsFSn8 s"(8&q @6fo1c Ff`9:b cTtcssF x.17C;>+P= Ŝ11gxnL|๱scs#osdRq'D D=6I([&7?.(N'IM/dѕuI&ufenI.JU,d06m #kֿLL endstream endobj 1609 0 obj << /Length 552 /Filter /FlateDecode >> stream xڝMo@s4R<6!K4$v;bJĮwfwvg@ 0ʇ؀ pށ^C9{%aj&Ԅ8 N9$ ur{'`CAύH|dt18!@aerYv{J9̰cu <+O&:%Ϡa5' J[q? yBkUU`E=3Mż)w\=Jg/dջˇ 4*meMtd0(?e,6eQ#~)CX huSmi^fa.\~\\x7e;bA P1M,j÷v1!T?/jOexk0nŤ\OjE)Ӭ^a.>~_rV=:IO\YP/bM˹*bYi|kLIF..ښF'hd: ~U^Q~`LS2-jw/Gh{}_Y kfo. dzr|֋- endstream endobj 1409 0 obj << /Type /ObjStm /N 100 /First 970 /Length 1191 /Filter /FlateDecode >> stream xڥr6ཞK{c8vԈ/T#zxzt@LyxDޛE*Z(,V+j`Zqs @kb%04k1r6kd"emu| gvkHZ;ުE@=} m Ax~ XDNxK5#92'ŹYdN#I'N2'XdNcMWU7'Ҧi ˙V譗⹬V#PδFء)yU*SCϝt.郶nFq"ӣ w\4&2=;r'4)xly"ClW&20vC=SCm]&<-Mz<驁r= Lq|lVE7 D7|>v]ѕ`mA=S>!Jf2Ew"Y3lꇇ0czxb^7nWLHW7mM)-^-3en&bQnwfo4LϞx/ Lѝ>[Cyq? b" Ch6g>c?fyyCmz˴^wq_͔ MHfJSr2Ó_]ٌ<35{-hL}U7#N8:jٮT_Q[u+,+IU'eymbs7ml PԎw|ngoi)>ǺlmS]9Ѯr/Xylܥ_m]޾oNB>?mۧ Lg4j endstream endobj 1607 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./elk_silhouette.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1615 0 R /BBox [0 0 818.336792 550.414001] /Group 1613 0 R /Resources << /ExtGState << /a0 << /CA 1 /ca 1 >> >>>> /Length 5438 /Filter /FlateDecode >> stream xm[8rߵZ,ex <~yERӃF?̒(2/Iq\Qy1^i̳׫l%RgkIzY_:7uޯu^Y<ǫ|V^IS*:1_kVPzTt]gZ #s*3EIisjB,SsqT^LCsz֕_*JS ԫCTXx׼^ZS3KΖ<oX9Zgk'<)mι?{z$Eje{7j },Mmi1lX9,QfA#C4KosI9ize ߶KxKyR Y2w ))/9*W?̹e#KªD\3l;jz˓HZJҔ#4W}MyQGk_/$Xx Wsz2JQnEM6UqWWWG+z42ϢHP(02p+MHSkoĎ|3kr9"ٌ֬_9X"}NVɝ=M~yձ5R&|y/u`6cg &?WP(耟7ސ~M b[rj#[DԔ<l4Tܡyj?9uKh}17~!ǫ6R !_mٱIM_$uu/*xdKaao<~_Szl"$[~|nTcIM^QSr@:Vބe!vw4=>婸RܫLxD> cK]!Rf$] P@uHa=|nݱ>єY9#0$lvxC 4ȒA\N&,Rgİ\ `@ yI3ILU'1m}Nv|I+q;`H ~ 8Wd3I`p;A+7ac1^VHZ!L)ĭ 5+87ѼL<#ä IzEA%E"O硰wa(8[,Yk{}غ x43:Ү֬ܔ1c8hdRP0jx+B7z; c7,(48]v4ALCN=Gҝ%nDD2"#{tvV3"Z0w_s  Ylk?rnVHb+>O='r%z[BN+PF~}2JVOldӕZ 6Ӱ: Zwܜ_$I5/>c0:n=łH].T1;dXx @;L{D JƋ?n(+q3< b٫1vN;j4{"(Q3n(?'a3'!aϷdWGJ2~{7e :2U[-zT(xy@.p\?bRT-FZ 3U-=j2wрi ^47ܗ*kh{g6i_~)_`Q0IwhjoXeV2Dܮ])m8ptPBՄ}4hfS7F=j.P=$9(܏ ߱w 4uYn Ո}IN5ZTd䎧!xܮ]cv515f,|}4BٍNTYt^ڌ!5{]L&.E $Q?mG5nB!{oEOT6~Q洒`ޤ" 2L?|BB낫K{~SLE/VsCtwU+›ZGiҮk+,9F۶\fYl=AHA&!mmY`&lEN2_}h'0Yg's4+8!;-&5m \vVSsT>|#q}{46)NfD%ѰvNZIsN2B$EQQ &C\'oT希HZry1L^@_B^;A)$F0VSs^.P.F,/LRH%M/4@$wiOMH]TVt8.XЖZC Cu*~ ɯ@%o:ScRqN:腱ܚ= R40n&ViZm(q#=au勜>ؤ|QqYo)(ݔBHNvN x^8*;SЖ%d;IŐˉLwv!rw$#tFg2s)/0PYNDU[$S8';.tAnz L%9~t{%ĤrEN8wc>q-"H(뮾8R9C8@eyiseo3dP*Ã1G%z G22)n TkQ)Dv"E&sdKR,ɂj[AL{8ōj*+jU ^q$ZP3 .}UL&K&њ& :1`1%~fuƋF?o&r /Z.C|!ʗ?$?]o+A@t9{B4:8;1`qOhm1L@s&1nAMQ)>ǩ]`AYT}e펲3nwa/(uAh*bI:)P$Hϵ bƒs]{ zhS*"p%sRthbÇ.8nagX3tY*9p|om fO(9#=WݥOUiKn'|ܟ:\?2-wnle{1PUuBNQck24ɵf.ֻK6NeHt.fǞ)m%lIW ɩgy[Uh ڳVTxgZc5s8֭ FnmLƚj6i`W:jSIt765YhZظ[ןѴu63=>(ЁG%v"VLQD~py3l g$hkƍ>,~vexU@//,4J ֨Hi+A ;PE¿G׬-7O^74|aaTeƵɛ-"ƼbgnRt?OvM>xӰ[qزGp Ao?1+&`z8"e}qp7'˓Ywk#ngD}"e$QoyV{=~;paFʰS E9Ka{at3%Tcri(dV3oeD/tyd7FC8JCd18+;ǝE)&cM~7B5ƪO 3nW[E-oYh356V#o!2=&f~LJeo y2缻Ṝ*x =L?WS0ע I̶?3#7wXEnyL̨+=>y_^@҈:6[e r~¹88 7ZQOB04ǠQ|CMy-}njIwu0jƾ)(B?t-C0]*Q?]Hd)I6c\t=0}k#:b/Dw1׽_t)z] c>PL9Y5+M+?#iz퉜lQ%H2h,ƮK؁1Gݥ|aO>nײk<U"}/Gq>%RӧpW}As4tz˴$K kطFPBߨw* K[6q|Z}>}%Qs ;b~,h$fՕ[2aueҬt|wquQWʵ.w69Br\ }Qnp^U>qcwbyH)OH:Μ endstream endobj 1662 0 obj << /Length 1129 /Filter /FlateDecode >> stream xMs68R!o6diEBPD "ll' Ă`3`i߂ ŕHqh' De6yaL0[Irc4Ku*M=4{gl*pk@Hd<&x*ƒ_ M5 Mn&3s ۉN-9i-oʪmns. m'!S{eXfEf}3GguU<+U#e^`-}U~cބbsi|CIT0b 9ߎA F=ҠYъDA*D!G)ԸO0W!1DzWK71רya"f,}Jdo|Hf~fn lVڶIJú~7w5+5HԬ]b]lqݸEAPV˻!f^.ُIz%Tz&}}&P^P"?w@AK'C1P)b؃ I|\71z^EF`O"X}6ñ:r@t&(Mu ("'}Ew``$ C8H'Rs@vC @!\}~0L(fv.}f3Gj0wPF|"(Czq|9tq("^\GjTM}=h1Gg16 ȢǑgX8i@Fr"i,Gr)$iUgVfAS!ȉEY\CU6YkU`8'U^c;F"Y-wH(wswb6`0S %> stream xOO0;G8؉$IiI$mqpR ^a+THJo 'qMj*N4ILDW5~_gW\hRNk$4VQٿpYsIHoZ,x7yb! si4(\G˧ӈs1",bEg}[`"Xc*a_H"Q l~bc[c:NaH`$$HIŪ+Q$`jEP" I.|{īV:~IB(I]d2.UjVY3)bpFğ)U|U31x&}eZl!̢ZmaE `"ENmC@*W(2ȳJxm*}8A "a֍5 u$vY#1w$aMHƹ}m@ 7oC.R,b(eKS$ct)"YWGLƬFA"ƿa&m:c{|KE4lz#IH@ormnAMѵAPt4G@$P͛LH8@Pٽqd Rc/; ƬXқd vtk, %")LR\$ mX0Ơܶ>M(?a$!Qi_g? endstream endobj 1616 0 obj << /Type /ObjStm /N 100 /First 1019 /Length 2605 /Filter /FlateDecode >> stream xڵ[ˎ\Wpioج`!@Nd-ƣęFb7jHb`ލdTO2YH2I "7AV|3Pߡe7ZT3xfw?efn(ShR[Q1ep ̩Ep9 ǁk"Aⳉ YJOjjAjgRJAI{j#,hIAyD #j0GڂqvR0M98Xݒ`Z;V-Vwjx9mrI9 Y EPejB= Ҭ[j#ztB0GɡybV nPUSh)~T h$4T54%i9ب'D9ΤxܔuIA5D%d I6 0ca6Sf=%a6N{$~6j71yfc=(vqlB* nIMCl+ D 7Ҳ^=yrux} \;5'߿/n?~᛻˷7kg1;}}u.}x{;/yuscȗ9( 1YR&߾"V)nÓ'SˇǛ_O`|x7_>o#oίߜ{_/_]?=,@Uwz緷'8}~_bi4  CayxYgexYgexYguxYguxYguxنgmxنgmxΞg t_OOw/w}Sχ_\^x  cZHk|8 _?HO`ܫmO=W9G<83063~`9r?Z"Qzܢ0Ki A$ Q:AʔceԈyώ ^J$D$ "u"#8+]j^K Qr" R,*(Z'"2RӊD+ejd鉽bGNCjb:g=KJl(wMLK_XH[S 0MxH+G/ S nz ګnuV0 O@Yp"{Fл.G>fU5jiCd)ĢHDy@U}J]%Q/Xl4oMъfTMxz,!hK> stream xN@=O1KXd2W{f[ uW);ԅ%bcu5 `CbOz ӹ!,;HXmH5 MHҔ(Ҥ$#߯Xw##wkrȈ1TQ"!ךvcm~{+^=5yo|*\4c~.Z|鞤qka_~{r*8'3.V`EB4-N$  EDHM"DH䅑|%Q&/(PSl@ {}PmR _u/DɺnI!)>a)GW,]k,iDch1B,m>d8`AVXWP5ZLm!8B,QYI[ MF4<Q|S@>s٧HʌU@PnTDȝNSw'hŀ1 r*vq" :&<d11T,zgQWbL!an iPu C{L7$zFiI8${?k< W$4'ظF0Q@@*o#vHr6XɖEmKl QDBP*P5I ̕h۴H۬jbL"L4L]oh0E1*, 2Pqs($4ɣ%bL! ݭ ! yݵyK&` H\jYH2qnUFع(I\mě EHI;H x@\m /-r1r#L'Z'+_WC endstream endobj 1822 0 obj << /Length 1311 /Filter /FlateDecode >> stream xnHy 0{QQ,],\駀ʉC\ jY:uvV䀘;H>G2NSNu9_㯗g; )\&NT0GRs=r|sI{ l1P+݄wVwxQ*}AyG}Lw=hX}4o ̱t:<ėD8 L}5"&۬~BBш0w CrUxZ1zhFDC'6̅T g&,U=74]sQEl'diut6nu O wGUϲȊ>!(n>taUנGx-e.,EcOJ} =<!}h݀$##981mwUЖ)Ln Eô>C ! UDxupnOB+_0" *AF7PXo@TdG/=U{0L/$3jOW;U RJPL2%Rz֓`n6+X/ `5,ZW)Nt >峌NO=.5;}ajX|Fc:AmO5:{.}`)FmZ^ (2kYXP6:k16#.4WzMk}LC|뻻e]|M6!P,pto4beS(ggV!`gq9oԽƟiM##7nRJ 9p\@\f`B'T4h1bŖA<ck 뼸)D0#N~+5ouK0sġ]_ut+ cH endstream endobj 1721 0 obj << /Type /ObjStm /N 100 /First 1022 /Length 2507 /Filter /FlateDecode >> stream x[ˊdWhioB4m t/x@w?{ޟ|ǟ+k8s k=@Wg sZaCӨӸ~MOc\ )ӠiLd2e"D,Y&Nd:u"D։Y'Ndu"׉\'ru"׉\'ru"׉l&Md6m"D| ǻӋO?|owx>B^~?=oweq#ܫ ȿetDŽ~k=>{V.$F{x RJ\r%Y۹X7}れp\clȀ5+ϥgΥ;7.u?,q~.Y<`&"g”ɋ jhKϥYE.YFF^2sCsjHF4_uQCr}0EcVvKFY.~Ş!GIxY8k[_t D/$Ʊ_t+[-EsԌ}[ɋ[&Q2tVV~V>3*|!]0vrQ j.UL(2ҎدZ-{pIjHtT*gM#-ٯH {x}O>DO1DyL1DyL1ٻӐi44lm}&2Md4i"Dmf/[.ơٹ[hBOlirKxӄzՖ&OOdc(1EUyuRC\ж Wp#аO~zcD (p2Rq?hFܱ!Ś-X=[>-KwP*tP'?]U:R. ! -r@CýgEr@CJ qLѱ~bPi*v@.τFxTL]pXfΌ=Me6%e$Os+ TEBAnCEpÙ ЊC;kN#Vpn3G9S=Tٽ L IVRιBY|9B: TFnY$ -$N@,$HbH 8scZr@P\^ȉRpsnD OCنAa8 ?//_Tt/s+/p9]?2->GZYVS 7 dkHM畝'u7 J { j(W]p+O8.~\!Iѳ_Bf<ЉK!2 *B6N#έl$Z܁l$, m߮3+\8i!6/ ' ?ĉi[F_vBq ܄q81%^ #+Bw10 endstream endobj 1875 0 obj << /Length 1778 /Filter /FlateDecode >> stream xݛMs9sZ}ǭڤ*T|K+` zf0 %XT*i}WoSx((R`0R*j\L7i~7c`XjYq;)!B% ގ= Cަ?BPE?=X ߢn6H)}$Xq #pPڡ?U|0ŠU˴0A;\CygDp7j0Ciy9'4\< `<3e6~BGJDuQ^DǬ  F<iD2Q;4jf8igTWVPkv5(^9|L~<kLg+1!*$ F@f=72ο'U*:G yXQը0D1c<,15"Q9K|PxX?$21.OEK{'hQWiF[&1#1njOyN/Q)p31x\nI 0.Pn%.(ozW2U>e,Xٽ~Pv & z^yܦaD._7pLQtJu!BL!q~yEC(Dkmb޶QHc|єH'Jתg߾zQ|xrуtBE89+D$d".Z/3qP@=PuQ}JQk-ekjݮhSMS*Sio16}^rdl )=9{‰Z<_$Kņ@_Opʣk]A:VB;*פ+^MʛqU]p]+oӛz61b7:/>w@?<||f~1ӻ٪ +_%dRD1\|#%šg( oǶW ds;`,׾3.,+쬜CCcgaѢ />ƍ~UW{t-:p.7 A*·ӝ5. Q5~qm̽E`O&MLd \Ɉ}P}VU ;DEMsa}%꼩ʉ*p.ueQūcQ5^0Rl+ B8 FtNCwAԶKCۆ&iV@gѶK3k;ˢkkP\ExY6Ƶ3WTi\xv+{s>&ev5mBiG"zX lsleSl= 8?F!qG8ђ$4.]g؝];.3dޣcnk>z9ړLeSbp̱&&,kVz*{sfic<8ʸgXҷx?cveHSm~] BY(> stream xn6y -UR$E+Ld'B,ɕ/EB%vmcEЗsI`Q~ur/r!.#( uʥr|@Ro_``(bᑀ: ɅrOٜ'*9!ؕ_ٜR U \ɿ-^h{39&a$lQR/JCh̰mXl5=~00|^Qb^[6,d<_Ǝ-4٦K|#dz?<-,4R3L =u\H%[G}H-.}\7n Z3ctu8 :82ڰ +eu Dh4)ɒeen5 :u kx#'9YBYtTcH8/}Ap98SMi\T=&*±TϡdV -h|?y:!SG-[s k@;,J &f ev*.^<|c:ᰞ mTqO0pCS bThS]%#OQ-MFxSFyRqg"f\)D/5`LbUl3$Bl܍NT! B@*e.$$da[Ȗ w'76,K @?nYȰ94ذ Bwz^Ojz`  JMp.R5YSzcv|NtuC$ FS tЀNM.2qԻ 4+l޸Xo,Gc +бdsveWA&?nˆtübF-2*.!԰ y.* N>vBA"bV 6O 1hިXLފR}jBbw1c;PJ?CRO=6S"vۭ֭0r s6 pyqz4^u\J< By2M)xhA""w  XSQcs컛dzD%b᳈p  ovzhҵ0Y i /9JixItLWhxlo-Q44fp谀RfsZ[Lx }Ϝ9A%h_<9x@8 endstream endobj 1824 0 obj << /Type /ObjStm /N 100 /First 1022 /Length 2313 /Filter /FlateDecode >> stream x[M]2ܧ*J*0@؋$ƋOLa*7LU % ,!`01gFR"6B_&=Td|d sUט#Ā\%sҭ;jl4|ykϰIb8 S4ޒٳ7V/|WnߋgɨO?LJٳr{TbsWd_>c o߾{|CyUn~^||qw{uwwoߟyǷsyUB~0e_z߿8@}uV4) F3pPA@2H-["DDDDDDDDDDD'rO={"DYYYYYYYYYYy$8+Ibn/>!?n_=]OO<{ 8| 9shv e|HǗw?c>>{O\ 0$s\B۹ ]wAGY}P\F໌Zϥ̃["ёÊ$Esivq*r-pP5ݎ6eRCQ?o(c:N[ȀeT SAK_vpby4x5d@ȁM30C}=d!jRZ;Q_t{  VB3.v"Q/4v Re bT /2CWPC ﯹ!H^/J^-c,"_tEBp΍y+:ԵX҂C.LB!Clui̠Fm+e" B3E͐!V1:/mq7k+\ݦC  'Džƨn @[Ќtm-t;Hpo HWơy` n<_u[ ~B8..[pnɹ\(c<,عQB7.k]_GέP_v J+ЍegNfP_uC^4e3U)tM81ci h쯺dUK[n4W]*\ű]B7.\C Uz|atkV:_uIBNn$ hBs^4_vBȗ&5UYhs٥:`:3Clk!ԅS*U [so5ui+Ҹui+r6@i4fh3fZs3Lkn&LȖȖȖȖȖȖȖȖȖS@p-ɠg fLLLLLLLLLOA"s"sҺt{ ebٺRR1yޡ].^g]֥uq[..KiٺvuY?Ϻ4κ~Gٺ~u9> stream xݛMsFAd$Te*T|AA SvsXKC",p\Qw;=o;X <CK;!%DO0s0`>v c*~|q l}-Hn|V-!#*HLO1yJV^ Ûm m ! iWy[ c1=rx!6j@!$ABrDٚ@Hb>-^9+ТgSx`7[6 ,,6 }R†8O-3ړ ]{:`:${ u V`T"+J xH'G{u7LAY,7[ҊxJhUCm d%.߽G x4?ִ!{Ui ZhM`A"ʢjâUz_,{ חЎV^U; xP;"?+an|HIDX,Ӊ XDߣy0Rd̤rMT9+ډ+sP:ޠIfen)u2`̒G6SϝWxa^Å ף;;l@dU>!:+ d둟jj {FD l\sW])QYF=ܾr# Ю%yCe#mw9xӿQmØ7+w endstream endobj 2033 0 obj << /Length 1609 /Filter /FlateDecode >> stream xݛKsH9ٙjRɁ FlgH"h@aT* ZRtF-QX\`¥(P$@`C E713ɑb { ,Zј1>N6S6>%јsı!VGcAHg>1~qe ݎ)zH91eXpSS%yofq\hRAF7-":A0,@tp "^J1 ٿ1G\\JxVU6y M@d;X8ԭMGvߏ,lWA旆`d+`TB>{6tI1#P7' 0ѱdhwpѴvQݞY,U<Vt!1P}[mwih7q#a/jdN΢zb60 w/;VAQsI4dG'[s0ӱ t謲<өj:JߙTtwyje09%cǫjRA8u^6۞nHQBfck> ^Tu. JI' ]0JҥtʳHH]URܝ ǶkE7V'%us*v7*`Ii~f~ږrߞˮg)KyKdX1~[m~v< j]SLh`mdxow2;jCb< yC\땗o6 ruXBl[4{Z;X l{,C)f~ՊލqN(ςXnzD!=s|nlX&}uy/ N=N.ݴ7AHImhIoy%#dGUSufE$} <*E\T*eUȺ,%R/&W2~8'!6VU/|ei+ЬOnJDZ[A2yP0N"$K_$xGKL.0!_R[{p+ZIK+n0}*/ӊMeiDEJw񺈬9̧)I >yrD4twv5d2 +踇fdIH2^oZz:9'yHaonV^w Ql4X(E<ԭt($=ٴKbSnIim)p|CAFTR6+РO|ԩQBRԝ:wN S"OG6<^88'-N]A~:]JNl\U(&g 'ZꓴxccX 0YP)}lÏ)Xh8\5(,c{ݔ Q\Vb{Up,O>mp? jCE+&'r5^Q&D7`eaq2{* ڸhb54±(ފ]UyiNrw,8fS}p6e endstream endobj 1930 0 obj << /Type /ObjStm /N 100 /First 1024 /Length 2336 /Filter /FlateDecode >> stream xڽ[] Whn)J#@m0b/^8Π01}y ѠR s%=oh0hpI$dFONMUfw$]f 'fH7K ,<܊a`{&SUxC@]XD9:w &4Y1"[GvMLx#a7j70„7̈́7%Lxc-Lxc Oj5:6zq/F7cZ[̄R9]j16hij0V*4[0}_g`[]xŋ6]_?o.l9受?]^\~u=-\њ26x.ooe×OwX߿O|sȌ|dl>nP[bQg_Sy!58!]ca3k?^=:+ 7._J<|ۻ"d=ܐ~/?}/ǍMs06I)L}}'a0a04Ƹd d d d d d d d 5k @\r 5[ @nr -[ @@@@@@@@ QcCaC숶|s+c*3dt96,æKfdG"q- 9ԁ2c=HXu Q[ #y=Cq!CɈG (vvp6Eד) C4cP!S֓!GGop M@ .R:r=S!>W@$Y7X-Q>Hh}O2F:5Ko kp+G$o-pe)Lu}|q8*>VH[ +)2ӯ Jv?Y.*Yק_+8t)Lu}ÎFLaTȈeLaGdvō X# v{υ,ϿBp9ӌq2S,IZ $G[$1j>H.^Sd֧<8`+LY Tɶ>H$3VJ)Lm}-#qpX)J)Lm}-@a:OF2okơe#u@Lm/G-Laj/7L?2 ]z N)Qe0 }pbO)./#Ge\f1 Y>f*Ͽ4<Ol#Wd2K#i)ebx"/E•"5M XȬϿh- .hcLK@ *vr$3I_*& # ؊2S $uskKIi:{JOR',ujr=[CO )o7B!@<yD$\ (aH5d d d d d d d d d d dddddddddsIR4/uv'u":{'uځ3IhKKRg}R':tOU:اty9>m}o^QlۄN96Jټ9d3Q tz9F5JmJ'c02޼96ү]W:اtZޭ4tܧt8Y-> m:tܧtrU:q٧tkJ'g٧t) 6Ӫv:9mB[Aʛ:96_2trN>L+Vjɔ)L+LOڿ+LO~hZs҉^Ӫ$۔Βٿ9t ۧtDNM,arZdҍJ'fNO jVd۔NdP:>s fNfڦt>-Y)ˮJ's٧t"˨҉nS:ke^Rۦs^̪myv2*'SV] endstream endobj 2060 0 obj << /Length 1047 /Filter /FlateDecode >> stream xݙMs0 [}kcg)Bi/~}`$N3գw+޳x;t -j8;al`fNq0t]DX,20z;|6hGήAydД)Nѧ}}]H94cZ{ϴƁrY*~R: ͳU[2֝HGyH%E: ,k2Kh85aztmm*0 iZ0`~4bU]K\sӽҀNJY{Wv2{ϟG ;BsmL9>pW5e'CR(ˣcM!ўja`Qz }[q2 =h%zɌ< hgV7W?4( LŁ s`J+UcFLٞw.}䗑\+3]SX-pѝbM[}?0XL1[ U?-`IM&]UnTP"[Jt{հ(tQUi!.n70KE\șX0Kf{ѕv\&e=v[{0uE^dC ^*tG-Z{zkVvߋzv,AS.(Wّ̒6lG;< ΤG]augr8o'@ HecY*vRN۰d\x #;F@]~"o' endstream endobj 2066 0 obj << /Length 2814 /Filter /FlateDecode >> stream xڍX[w۸~ϯPJqy(_ķubg>@$,H-@Ʊ_ Ą0`3N /&$4d~ddqM`r<]Nď,<e:=ٔFdx=Q y) QUoY%e+Z>*f&Y!8>^S|{%6SZ\ aqm=^~'BDFA]/`f앝er8JRoToVw̶Խ#Klz<3tsCXOĕ0dcbQ{RJ 8D_f +;RlsN-FA;u 2;[>e?n/g~:*ڱr![1NysKf޿`(ll/ifdE:m='~G` 8,ՠ*V{[3ݶ&vj;nPm#G֡,]8fG?2Jo$">Fߵ՘/{^Ʋy΍QĆ ҹX90teG À'3:Q]`&Z\KlR5ޢirOwbxCh(BY񯡭WzG3\Vj᮹*y}Jx<2E1*$GRGv1R*W`uX:W?j1yo#i2US:M')*lK Y3Վsk`j/he<ma"wm["CksﴃVǓn~p$ƯܥȥEIiovyjdesF+~br.T9Bj9M1M`aSaTDSR-3=~CAU!?i>:{D#w+ "Ѣ\c3/ɒݠ+;Ҁ[gi@q lb~6b( ؐQ,ug3-5o)7l}RZDACܐVk:Nvej z\{'1IH3BWL`L?^Pm'V/i\~BMH YvއUrl}bs~0HA7?CI|LkD V}2ĕh0G VP^> 85;!=j0Zz!ؼ-p'3WZ83pU=gMpR.~lKe%V𬑒ZU=!D4#O.C: rCWt~U+ANFh+8mAW\\uz#]4u OvTq/ؙl-1\u/*[ ZI+Jꁣ kv v 687T\F_sw!p=ydnʏQԆ k*䣴@'TKrF,9;Ռa!6p;uXC{W+pߓ8v24kuRP2PwZXӌrKj=P.22Z gU$!:򩫵(̀["N{_m+$kwF5suNH03q=ImP)c8TÌ?ó!Ns(WӃbꅳ5_@Q{e{I9:EUjA,3 8?!GE܈ew{90ېj0(Еʑ=" j y8ΆU%vaMq\6 d jr64b/ XWbO2/A":E';jp4OqIaW F߷+7NYm2ĵD픐Do:cBcnY~ XLf?4͎B#(HО Ά1;ySP  a3_nE/qhq)V25P8:qOc@2ۼK\l|Wh:p ׮1[-΀4F:Xk\䨄8:V>͖[ osllD%!y@M!h߶ro φ<}p~qBpEVkeiGmkxid3@98 mNtczn^pAqǮBG⛛,yQ݈ovbm}` sgЃ"gB1?&}'-l; {:ꅕW!М5_ mKכc4GҔ:ժtY;vgS ͨ("F|E$".%P{3;(1"uc!asIZ \T-;q/ngl( r7=xCq٤ܼ`Raq1"<.YaxȊwC|̧'.f|yR藫t?֦h*Ȟ&(hpn0rZ1fZ,B#FkEXI Z?/ܤ&  endstream endobj 2076 0 obj << /Length 2555 /Filter /FlateDecode >> stream xڕXے}W[0#)?lVJ*R.,9Kjxw_9=%Zq=}9ݍO+U /)2? <[qq+Wp0X}?ڼx&V+Q* WY .mv߼jTxj7*Y/Bх`q= }OJy4 ~~(ZEuAǪ״y{m C^%AuEVCn9l.gG~e9/؝S,V ZXZu-Y~?ZE~B){8 SIfIyEg%.D{L#Ta:j ai>YAz<"SX씓L( t̶WaJ׋bFDzBQT\E x8@&тWx cne\G9|0#PA`w-"p`nL1]YFPTUgc2ZLyzZ2}4uGl _I(bςoams))o刧Ϊ~ǚuN9j]y%*cs,]~#=ݴn-J )vDIoǡa؅(YT|¯k WJ[`ipQ3/{ $8#<,2(&鵓Ѥzȸ% ZJ]lȩBho8*aՅ Y"y{zo| &gX'TM !9;n p$uA\@i4]92h83b ˡ@@)B3]P`YYo "/W5JW oG h3%pJDg:$fAH-P=fN2vk_V»-Y,b?ϊyCj[rVLi8yEL?үcV^w6y9's_BM 'J9 pyLS*$_E0}t]\%_|Qn݄yB>\-i XF?1b+СJjwٍhiwd2dKwU!ڂ8R=*J[e;}>U$^u3̛Q:f\0rr=5WqX计/Ѱ9gnAQ PRK 6\KrTm {7(;T\4F\pv^5)YA[Nw3=n߃hڤdz =a|ʔ\ W>iU>D YҳU;FnBv딟Qd/>gnCȕ8ޚl4Ĭj{͊u˄ ݣhvTK LڣH5\+^AeaL{Ryl;9~m ,IDV Z@'yNT 7^mKPŨ/3).ᔝe"0q2] dNÇ@ӱ3doӇ7?_yo%wLqzOCB8> {硍]89ٺm"[Ws@q_whLT}Cm}3~<늝޷bc^9`{`E_JiBwKFDw|:sݟ{Ƚ:צ.,|.'c_%PXal ޼i6 endstream endobj 2083 0 obj << /Length 2720 /Filter /FlateDecode >> stream xڭYK6WT& 9x739l9)ŒC2Aef %ʴx7FnS$[eF k +LbsIiԻ&z$$z߯<}!M$Q$nudu" Db%V]s*6I_mj<9[x_z_R+ǃo*W#?쇺:4e<2꡼n.7]жW2nx\V}=5Zi| %qۭ@8K1q<bN"-/liQgR?@u0 q@&'Y2%R=Ie?6ʀO2*v$4C1[D))B*PJЗ w}mY x@e/de|U"|ER0ˡ;*po@Zja P5mbmfB)L^yVj.iT}G)ώ+=) mrr:\k%uJJR2j"dx #TVM78f: c2튥u_ ӳOPa SP@#uL00OmC@l]K/(wC gKwyjaOaFDI2co8WMWnBzϹ ߟ \BC]̀B)|Zts#I&X=HNb95 Ke+hͤɲ@c ~pn?ӻi}O$F>l );B~r`Q[v|w4uOiELogYp%\Ϝs)_gzpSm+7nȕtxQƏ,W+o'Kooꭷ]]|Jo [ϭC$נ'I?u,h ~R%fm h3zoHVRdcgP {)>jX6U-珡zTBS:lP!S}-`G#Aӛ)5ǺK1 lyq8JSP{y+d1>E)O3*S8,"4Q|J@>Y/ϳC Iҝ/4Z]:SBϟP %tE$+)t[P` aUsf gu}5!R.yYOAuN{ endstream endobj 2091 0 obj << /Length 1607 /Filter /FlateDecode >> stream xڥr6`Of,>rk2qN@1E2|VXdQdb.~15^e2LK#QF^C'y6bcA&%6;/^"@Ӧ@֌q15Mܭ"x(Z2T6ecaCa +3~V'~ku'ji$E|պ@pQc++8v?2E>(̛Px؞F UېwQz]aKU,I<df"QfiӨ# t^h;uN;zr %$+0/^"`۟%8GpH˽] a߂vLh4 c4BQh$hF@3$2 ݒL.q~;GGJ4VQ5hҰ^jT!iϛ;Iemkr= RX¡i|5=Gg+ZH0tjw/34`!n BA$JJʷrevP_& 87ކǃBRhF~xt<* p*a[RXВ<.E-:zdHcR5 =!A+_O׿7o1B(X \1?ŠZ2. &2ig1biNE{?9tcf*0#ɂu Y_&{&CE:4vЃڢpr+ʾ՞ˬ&콽uYs|>[.D}[)KSdyb5~C2OUxr?_5 oͫ޼n 9 gP / Oz(3Rry(£x?*:yP endstream endobj 2095 0 obj << /Length 1776 /Filter /FlateDecode >> stream xڭXYo6~ϯУ2DH )rMQyh kB#;á+eb~3$9_={8SiKb\FZ?qw2g)OA3bazqșϙPBVn~)I +&g0>{x.X埿| aQy0beQA-]t@tƈ!yDo9IGL+FM-X"{& EwQC lOwEML%+ CN`4*$Ilp@%yd2u(0Ao 8Stpr#a\AȐ3ʇA,Y6076 ^1l!pwKj.4D}QZ^-2 A%\76Bb{cU?v>Q;d%Ok#uQ`;eљmN,wf2o7_ endstream endobj 2100 0 obj << /Length 2721 /Filter /FlateDecode >> stream xڭZ[~_[p՚ qtnZc*/2K&i⥑ (N#Q!Lz, 0cK00qU,d|yR4XIKJl'i7ijk0/ڀ}HRho5&nLG1r{F\=YRĞs!i?cWVj"Q09cNYSvU/2zT) 2),LX;  FA^IyWZ>}` |ߊßRŌy-?~ Xy84I/͇ѤPZ„MR?Yv M˜kAX Hz &ElBD&.Y 0 ja)TY&D>}' OPin :#L!@1A Bj.&΀rspeJe2t* /;HE4]yރp&~ //`4Ѕى`CYz' 88! y֭>^MTyY7k]QljNCabNRH25욭]QUen=S;n:Lh3B#)W:V2{twlDDzf[]`,5&+s #e3.>纤g68`tjWBƀ/bAP8+,b6x_R̸&Y>m6 fܿ=-) $SXH`J`͸I)]zoUG͇=}땑fzQMS#C ypR4-=<IJ52RZ:pK9bh+k)84):0ԉ- FHEDN$?4{\_`bc n_7siGAڮ. vA.1;^w8xkjl)$87>0 e玱<l!۶q:t(\l<=Aiq(pֳi, ?>>.ͭfF~ ШWK05嵉%%L .A75jyr08S/Dg e&<ǔ[x$F/);w vG<ϭ!ZZ|zjߦR:;g꨻K:CK:}-8>_CߪډX`2mYo5!,Y dr]$ܐl| |~cK`A/mz}%`5ZɉC]Mlv=F$5<:σqZ}}]Cw^B]G/ iƾP#?_qsQSznF}ͻt+w*V[[y?鱉`+ TY(W֥F13 ?( endstream endobj 2105 0 obj << /Length 3165 /Filter /FlateDecode >> stream x˒>_#UexY;ެ)SqU>p$ m>d%t Er0VN9vD@wo҈F,j7EMbD*BNdmpݫ+Ͽ,bJ62<2˯O"rg` IپoŶǹ#?__v<:9RD꧟io#JDD*oa4tjwvl=!$b4ev FGquL2puL&R>CNvc%X'Z$sUy{ۭXYY@SB ,"tf_n՚8Eњӄpf5D怽*Wa[e}CJa_LĘw1*F29W@mVv`$ 3e)VS)/ڐGWYٗYwprz4=4xsRcoۦ:u'f{ $אiBfw `I ~z|]U"BD FRC=fD'^R_#H2&4ٝ"d S}R*ʼN8Z.qCa;  򷔉|˹Xe]>eô!L\yn%nDӷ̓SNf$o6MuBM-hPiQ h5ڸ/=89\&y=g =UlRQ!!J:9)GC{:c, Ncdq3ȸB-k%}A3`\.HryP9WSE`IB4uw1 QAԘue=#-o/(h) v ՄC7XȾi3offBdj"&x"W "8moY$\ȅJΠQE<4õ^D1(IFYY!*2ER h>kQ2ۀ S$'hfo>ۦtwb+w Ah qw##$pr)4Uy92S鰸mV[a} j8G)tvFfj1e68Ϋ)X-}ix e:stҒ{G7[QcPLs6bUAxoB 6NxӍ , 1s L֩_C90!@ ͦ޺7ih6L#} x =b /l,,]oV1Z] |s~A?sOW´b{ ӽKڬ߷~,gxi=aNv#]pkB+")Sp+8)U&l,p'Q_+EiܴVVr,~W\1+q[u>dtcL7Q A;Ep}6}uW$ZkzpD1)'v_REReni Ί쒖].l/&$`]A.1C 9=?IbF`eiICS9CIPlzod"sLRCPܟSe& n)G `l%ſN`$31Ϋ!$}1X77E ^,=jD0_`DJs$d8Ń[z$ ͹re:nn8ľI*:.u|/ڳUD*>TO č_ş}so c#LBT{Zٴ>ro*cx_=q{C{ܷȔSs>$9$?z4s0.bQwA(,wzu.gl7qU|oIrB\4)7 -c-UB G-}QT='|._ %~oˬ;}׾T >ܻAk` jM8/0Ż6W4{5]Ůƕvn@+HinK0h)W\zLi Xjpuvp=tN G @,Kr}-r{αMTpb&!*CLa2|W67|eqĢvoγ:1}oXsѻ'*k+ ojb{4~30d3v?͙\|f%3 Ab5bgc GճkvȷK~xݬ!ns&& uswP k( ]Aɪ웺z1.IUք%BwmZ<+wmT;RFr0ɈI٩rh3=yG&d9~KK;6 \y23'_ɰ[VEmCԓC t@*̲eʆ̌ #tL'^l^Vm4LY2!an67,!ewW7lO+[h@_ડb੎7Ts#Vay(p*~*cҋ/Em t*)Ljf 6b{C]qwٯcw߸FCw݇M N`pڙa>EڗCVJkT03+[~;,"-l endstream endobj 2112 0 obj << /Length 2782 /Filter /FlateDecode >> stream xڭZYs8~U# n3oڤfkkN<",qC!ίnD\.8)a?$uBO(jITJmeҺ!D||QҔ%w(Xt'.l]X.u[hESw/X7.4c:+o%?'h` s-If,L2k׮m]Ey Od#ϟ~~ wsCafiv{+0[lŢoBRp`JEd(}ӃXhB{9]Jw sЙmebgi.4\ϻSV,NV,=ٸU73a@Kab0Wf->EwR˾0k׹Ј:QDQIӐr>Lܪof.հ:뛪{}x寐GJMYJA_SIRSe!@HMhIVEY-˜(vG0Z3,;cuݟ_3d_Rb~9X Ep b Ku I|ɹ$RsL:Lb}<*2 O7,\2%VdU7Mr$"?J@Օ7MP˟[ Gf %%LO6@p!rH)wm$wu0x,0ux U03 lX hj9u>o^| S"$G,+Za=dȮ#0ɡZ_)Wb؂tNn)u~E$B;)H٫YF,X1=4^SQQA,D}Ӌ.VG1D1{ܝif( Wu$%zT+jb5LLX83ME=@)lIq!ڹX ­K\i@^˕N,`,i) Kzh-!fqՑ@ zvf)_Y|Wf,+a,#s2b}ưW:ZtgܢT]ǻ3^X.&T hch"eWWՐ'ɉ^Os3l28&|>|M[e%&8W CL'6՞!NBl:Hw|vV{LGޖAx ߙ @`cyeXćmBv.MNdv]ؼ c`INlBǠSG‰əU~Fj{2Ck4^,p !%F2#W.ü;v]e׵YYW"-F_J*D"MH~퐉1})chW@DL9ǕbJHڦƼCw }**CzdgJ,5{;f P1^6ԓs7?,p/NȓL: 7#'ӊ_9Y ty!Yp)IoV!;@pF@:ly#jU*\7WᾚrKi 7Ӄ[u-@)۳h$_D[g^} ˥~ Qj(65m\|`HU\ev 嗆n7, 0=>*ƥDG\Cz uOê{hxK냩s>rh B(E"'~6?۟V u +PVm 8Jhb)>_Ю1UÇ*]Tb J`_Vo 5X\ۻ`mR\ObN\]Ԯ)?i8&}ЦaJ42򐉆zH[wC yZT= K(CFgeGUn. endstream endobj 2116 0 obj << /Length 2655 /Filter /FlateDecode >> stream xڵZs_ɓG:}ܤΙN'-6{飨} %}IBv8'xؗoo> fkF!Va.5"{~L7wd #3E300~}s'~L!&ai]T]l7nHeg1βpwF87?Ec1&-xQ04)tF02:"Iy{3I`JD mvɵ\4=XRxСʻ\϶S]EwKMwb{<6YjiO  / CR[1 ;s 3o Lu !$#!)$M[UHYu [#!CfHcr%IÑ\KJ,N`tUPo-l{VeY|?;@V9Ȗ 37E?\v-V]?&A MJ4}Rb% uŲ%ص:ɔ~?%2d˯XW)B{ +`BdK%S~Xb#tsj.-c }y."$鰨uGljA\5HeWl k,>2{D*x>hOۉ1Pؓ] 1IQDNghH"XC>+]:ːT=( :yTy# ,T< nSjE+.2Ua}R Ⱦ3 m I5F-oX^?ľ5[8.ڧxlSV g\F p/Gz(O(m- CSlqcd&Irzu&,Z;[kAwC+&Cl經pj 5vwR#?'E5u*/{`'~i늧")vyk$bxt9C<Š eTu/W y4$ǔO@l}=E!J; ks>`-9X|1!Dc,9~Bf) q^G3m,B*鴾ذ~=97Y,D-p vA@u4h^wIb%cAz^A,Tj#g^w1׋\*U_u%JU"0wѷkezxy|StE~hO;;Uy, )^q Q{9[|) sU$9TEAXNY0v!]I~o_ Qvus7MP~Z7*t[5;{SE?.o7xw|dETJ$KiqyVkxU_n^Ec6 LmW i= Lo@K`f&&k&|KHjU~ƥ ,|_OUn n[տᇾ>U iAaf^TkOfbLalaPMXh8sqsR Ts$t2J;H£#zXO`]l2<gu{>jx@^˹U (9!t>qd}y|@ŪYO끈g飋3gACaժ|Ov` ϸ$#ȗl'oRid_:j7-D0b,_8a*Pг9|/ N38 "F#FWQg1jaAl1Q0h=%NETN8LJgP+fg83x,NPq_ӆhI 1qb @N֔^GQK#Jb"om)$oFsu@ .4uL b[V#APdd\٘8;˗n#)[##C`NEDe"O9!{k9?b]񕍯${v`9YLEnf2al!K"@:$ F.BaAiGgPS7_w)? wCq>K͋`86OF+NwUŌ o7yUAfPw-V.Tv .65rT7 G1⠅9V) v#VYF!+,:'dIFBZnaz`8_]앢Qt^FY&\k@&$IG%z bU endstream endobj 2121 0 obj << /Length 2799 /Filter /FlateDecode >> stream x]sݿ>|l'w&CgLiP\}v&$Ȗde,Xb^~Jhr'MBu&6:1BfD(#LL(r.,ќd^Y%?7Uk<]M?53盿](!& MV&$3qtՕUWqm*;75#E2~?iPTUU:=v(f@mDeذ<"wtnGHۺUKܳ%r-I\袀i/)2^06SSxEHpAguPQ!ҧE!RI$vlu.\ C 8M?u+~ G|E\eFuhK1"r/ƘW1SMGBAdhj! ^bՏBЕn%z9Xڵ[qQ4 @hAW6ug=G /M#65!q+IB]Aj Nm7nջ l_ - ~Kѫ=Z[t;=EwSkW!xB @[ R5X?uH@0jq`~c{b] .:NVȡtXCq++h>޸/Pb A>2wj/U{?TSk̠:\1+b>iof+oq>$d2 02D\ _pЙX!Un7c϶5ǁܙ*UP$@JP!'G&wFNFSo3'Ǻm A><. Ln` ش+ LOG9QLxjxVwz*5TgZ#J?+TNI]CÏs:Ʒ MX|++hOJ{= k%F,߉ JYWy֚^.X:c ^*pJ0 —cKҶ7wSZ~L|6?`mӜ`sXi͋h Dowg#E]+K'0)! Lko ۖۺ,,6Kk|϶D?re]1(\rS˾/}㱪}ltU-#9`ba` 82@j"M/W^IM~?·@utG*qVb2<S6`-> stream xڽZn7 }߯c2#R")F\@ Iye[ /@==Y::HJk!l2Pv BA$ ]T6夁FX R(r \@ā K900j`@cF#;Zrê8 K6Bb!%kR IQIIQdձ1XBV1 G5gTBN ɹ!)<>4<ƃEHèR}>I؈6 B0BO X*@̟sɜ,NrcGT`A PWk)[Rۨ WÕ倓$(y9(7Ukn1R=Fbt†b( j/h-HZ(j0F14c 9E },x4II"S!SEV kV aV5tcMBBV>Uaxଂ>eIXtNs |BiVCbEob fJ:9Yk盫U{u67j|~^GSUhjI_ͫM.]b`s>ںd( ǡ4%oua:s+$IBQbn4 yd&y'y,e,dY&2YɲLEX^hELu0垀cװv3|)IL j4L^LiLx,N]4&&wWzXr# &vYDjjL䍕ʞz/J -DxS"%Rcc 88JO˴8/Xz,~S*fA/a܅e+ڈhDZuyi+Ҙ-*5|ʼn͙iV'p||nD T=u)/~P#׺,}smD {jd^>Ҙ6vF\.7kc`r .7Kc!&oUP,z,~snL :Ϋ=`Ͽ`Cpmw$u 胤N5MKM@Er뒨hfeP;4\a^1)됢h M|2}=_۳b+3Zu3ܩLWׂԯu)ov5s4}j u;Pˉuz]Z:](JbyEoV+G}rZ=wo/OOzKto4˞ yzK>O(f$YEPw=~< s_hk~K>w%\eĚ'1C{%ogͭ׈P~WQJFyEfDe^RBIIm;i g:z㹯~4HlT~U[j S endstream endobj 2126 0 obj << /Length 2798 /Filter /FlateDecode >> stream xZݓ۶nR!$zؙmfCgtxw%BR>}_AҚI0I]҄HpT->%Y4dqg[5VOE۔MQ#]ʮ{uMU߹uݕm5_ai z/ ӧU[td-}}|,bF/r,(K)Mb] ].Ks RRSݮm) x(t?YA?;>Rs 'TLC戁U`4Zyz-ڵnO"_܍n[\Ygh\պWmȢy<]*~HK*Hޅ,pe4vCʅl]/9狷e:MKO$A^ئtgQɂXQgA%4mOƌ<8t,iQshhX$?%6#+gS#'p ٹ F v7Ǫw) >bʿ-oj]6ڽon̮8PF9K+{Ag0^%}!h 7<{[v`͢5pw  X]l Qݺ{<أ{[Am',mm4dj_[ط:jwS Yp{rض۶۲V``}4N/ex&iU~$_%b~"%I{@nH0R @[P0s1B" Bn _&EjpJ@7{,Ok8GniXm6%玿wM~ߕ4ps9I/r$ZGG2O/Ѻj'pةxjfΥFn):5vDV· .@}^ŅFL#Փq޺iЈrt)aHM'}qcw_/[]]"a^n0p=8Yփ@W3\02![`nzӿ޺/pdt l t){0A`[egox fjel.6AtʹD9h42HF–e#"[}Ż]g}e ˵gFFpz D6՗ɔd $zіۥ͵ ;W$>É՛3j9B,m4\ ZVܚ7?.^;kH5etmVCIVJWgҫ&P+X3*\@h s]ljFX #h;s_}3*U&Yٳk0ӣ>)]cb,0ji~6Y`p"9D\͔"~n;sQ&|J%ҧf2d`mp oڅ{m|ֈ' oQ%o VTtdV%ⳛb\`KJ8|(}M!HX""y$A9 _,q}z6NcA{m`=W9ף9" H`_é(Zdˁ+\.dBtp@VAb.a>[>fGx *Ec0_8dt"a."T>%Df¨"! 2pxxi(秀Ƴ @~";Ry}Hi#Qsp4ҤG^J^I䥳SI&v6^f䒞U3_g?d> stream xڵ[[w~@RTDw &i$0 IhH@fwde/3}3 FuMR(*IdԖuӋ WoXi΢Ȉ4Qt~?ݖmyH1n:Ͷ ZMGeߨ^,Rqw[UYo=he[tM{◡c ~6\E&M5ZE c\_CҡC*Q knI6tMW,n! 08NR>hoT.mp"KL]X56?^uZi>j18)j^$i" /lꦴqޕ[)$g(Rč%rw}.;ƷK2iܖ[oˮYX_d2N.ƈDqDmU|\^D*Oz s{RO/e]7tOUjHOݧjIN'<ϒ\NզhLVtfk,qKn}JQUPMz\M~?J:tE$'ީt$9H${Bc{i8T%W3xguEC*43ǀh8jTDp??_BFmvI`sɡK+WeU2.y !%'=֝jpŶ#ke^XуsmIуz ][,B,jo"w-p! +8Te dy ӓfŒc& `~V{-7/~%Vx}xg'hI޿iNG+`??IRSn`ފ7Q^ n`uPP3)_J*-u`ZX[kZ8d`T\j)_|ظ Rd|Ρ34Lu-~[av2h@DW~5C;>OW 21e暗^9a|HUoωlN czcj+#<]um MM~ՙhK1Ң>gQʦFsA\RpM5 틪6\}QhGvȍRjnn]秴tܰk "#rs$}Ã":" R Źde!$|s",MwW, FbT΢—ʟ(fġAęe2s )e1Py\7,L~Jwⱇ}dLoҵeq5پBKFd2bǖrfmAo7"1cJxϸx2Ƒl/hj{9C%,ϳRV Pޔ*3 "a:[QInB_FBd$3†b֗ kXo1pjaA!æ `fmhEfk*`~z}OWУUՖЭ36\M/m⦮'~۲O`5($ M15iLO$Tʑ˜KMpa㮫G3A9t鎌%U1sX]CLJ5$W w:(S {4"aՀaFXI|zU@2(ZgAX)D":>O9 Je]|DYp?`.b)چ+ A@i!-ye}q{E7Y<{L?]+e'<1{uYƖu< -!SEXןZI8Sds:wE[lK&s<.g꾦3 9+]{Hy6yO}h7^6 EnrHO~xG!Hxhbqoܻ_, Gc nS')a3QzQ_7 ҄ L(TCa/'P_d>G'ƑLn{7\:Ap 4Lkii&8Y/ϰBa:͇ ~|bmc1`g}@G!ln@qW,+), c%G|}v=%$e|`=-yy%c-=y9\^+s({ę"e\h8g%;r Sz_8CXi#eo隋j'$KEd3 GI% 3 ?M@rYuGkO2]-!JhXV(@|\lL{_;>)sf%8hVq84LY0z0C- }l&򦹎e"ٳ}z06].Ľxt]b\fTH2: 624p|N~܅i?5G~rB}K3r_`g@ ́ed=kwtۮ-DG*=mn {Wߖn1u|o~E]Ym ZO7)S+n6^u_邤$тd6.Hb{Xe@nON͕ϼ>V~OG{s Zڣ4> H7_ endstream endobj 2136 0 obj << /Length 2191 /Filter /FlateDecode >> stream xڵZr+T7B7x.U./Rɂ w(}RDIȘݧ0qG8< l῏Qiy"bL(:DőY.>/0F $DDƈu#*̣Qr>}7fڠ;U8A"Q8ZQh;k1Jo}#XpD2(azMg6"$fs v#ű<=c,nUX1&p' 5|$j+J٢ݙg6IB?P~IH v$"(vS΢?vm^nn+"Uh7ʬ4˘4HfbB4a1^E@/gL39b'ߩ3_S|j7)R10`uoBA$CPoJ!A27'A~0TWqrbdQt4 C|~|` ,үiv mwڍDԎu77] cs_[-&רE,b& q8Ǎ0ᅜ1ϥ\&S9=Αdox}1r'6m@}rƁEZC.?4+/Je_vyf\Ck/[ນ^;9+/u-YQkpMUx=w &ъ0 7G8¨B?M]~2Z/1G@7%!!SI`ڗ8&hGYяM`,vM@x>k)v^;S_F[Vt,IaUۭ}8%(fP`PD`~AQđ^֝Fwy|cH|Y|=|báD%K5Kj:ȱ;>8p7 "%^lwKC:a5[4uͮ=w^O uG ~!1\s&9GǾIRD_u谜J}3`[O $ $][`j !r)j>MW^I/Em7)q/%ޣ#}=`4&]n]C"#lcЭ.3mRk,b_5{K-O+1IR/b R]6a怀o^Q^dfksxp!Up^>v>JĘp_+Ƹ\UcF͢oŗy<Y AmO c6llHgCcCRx`zL5eZ`vPQk)7G V lĐ>}ڜEq_mwI|H%tk}IN07{lD5CgӥPweF OiZ>,tW%s^ *8=Qܣ3G5V; ,$dw]-l4 IgB׬gc)Գ7fbp/;d )MF"Y0$LuOt1R$kl|wqxn_hE%"{l;};r;VЯW*n/8 Jѷgܿ3 endstream endobj 2140 0 obj << /Length 2506 /Filter /FlateDecode >> stream xڭZs~_GyD47t;w-Q6ctH !ACbo MX=> 4S(NTȤ+u Mpއzw7$Yɕ:<тVo E~ʂqB:vP ]q_4+9͟7Ku9'BdwŎ$Rpx_y`ӄkB-gFINsfgY'Y}k&2UD3 *Mn[`EN5jx} JcUsbܸBۮʴzmx [uz|&ԋM JNm@!jU\SMAǪ*d,eӷݡV%5D_PKIbtZղ#r#BܦT8!\u3 $r8"\g\v&gox')PL/;\2y\y*xPCCѲ*rZ.ր xy:ݫ46ʲ&uvŪ^Ɩ-B"mj!Nu.Ъx-_퐶`]c$nS5hC8lݵ}09d 9]&v$ 1-)&lp>!|wJ-*2,n"nZ9TzE ޕ Pn,E 1'pCFf{8.AcDM\t^g$ (6xHC\!<[w\fxu=vF‘SYZ4/_G%:6&1sspfe$&}4QLNCJ٩3hc_-ٮnuY"LMoS`7\ŎƏ *IO:B:DN4mTÓq?hh*`-||w਱P900t5ٙ.fYvm)ۭ ~5{0Mi`Y=@k8GsWj=Ns{K,A_]е}Î[4,9R8f7s.ι(򬢖,"tulmۜʸM'V#(¿Z83dv :5A׶yke~VS jW33I_8VЌ Kf#ÒڹHxzOeaY4s㯶K :!sF @1"O{ ^ (is\sQE9~#AV<#+ʓOL}GLFΔ~.OuFbw[:* 'RÜ%T'[ GVٕ/ 垢oS $Eٜs!h꫔8el>J/yE狱M4w^f[/5c?o:)?ʣrG9G_GсxsG_hh0wgZY,x $g$) zWAS7E؅ $_aE7TcϾ6\q]<#҂H ċH{xa;Gl1c11"*<08-,SԐ >FD} endstream endobj 2144 0 obj << /Length 2423 /Filter /FlateDecode >> stream xZKHׯq."ḳe5;%V3sppwH(aj||ŗ`?u?# QE*NT9!Qi|~~ L*ïG "&$ZUeϳi`BkoaX4ďJ4JyIFr.5,[񧇿=Nr.On6,)nVOen2aTވ$O~qIύk)`}0iCho<}5Ul=BYf M YUlaZ4Ǒۓ*,j4`RKUǬy^4pάvS:^hlR϶ٽmW'3ܦ$K"~͹!%\F+Ab4'؄¾'s(P݀E/#ܰ/fet=5j+ >dmENߎ8![y!fh=SggFm'՗+G5lUJX?VVv NkBR+5sER"Ў9PڽĿ>!!_TØi+SńVLpI5ӂLij}g0dx33 #tb#7x,#6GT,˙fi|jY.XvX>=NǗY6(2EOhg+_R^EkozN S2#aҷ (V +m 3>1P2lP%|t)OicBCM xȵqn93E 7`) )7%A ?pGa [rSa< }fS^X@"ؽ#$`= IefX:rkƠcutsWAF@ +D!+$UZlUP]:+Qq蕨F}"e޶UQ;O綩8YLǂ*I}.8P+ܺEP7؝H;O ^ N?MNQ u]GB>.8;M-{rx<`K)_>1LMJ:i;neձ\u Hv!dMKۯQz|6[ $poĞd+Y;zcB%\Mgt!DA/Q)u_(J (7KAKy܏Re>(d&.90k"/K`y'Sw tu؁Zj8,kmU!Cp:t z%֞fKry2ݎWn>ғy|fnJH@?-b`LjscDa9>&?nz9zhWQ |ϻ꯭lN@bњmm 5jT'Т _6b$Fk h*QE8Sg:N>.FEBE:_|s}VffǍΡ ݕG3W8+NT($hu `v]v>H$1*һ80TO~UlhyNl,aw]n譶ٵA7 vq*.;]28l-W9}{瞙WF縅$%M˟#Ќ4~tD)x87΃frqܷj=;C JP4B PeVr.按?z53"l&7iN?\ UA Q;8#ǃ˻H=beXĻAIc#4/ll_b9_3IfQ/,MLSPSJGgW!*㏋Kxl8WJ̨!cѰY_mf ;Q:3F1H4TZfނjUN\weﱵyэ\v+A׆LQwqD߼ 7@풒䧺 LVf*)o4.)l8ywK.zLWI3\= Rc+oe~;!'o<gl|ͶPfH|iEcǭ=o~,Cbzg&:8x5bm;=A/t> endstream endobj 2149 0 obj << /Length 2489 /Filter /FlateDecode >> stream xZKϯQ`dvdkIIKRƃ@BIJUr! FM'$bn \}i&Q)\(:Y'=Č{G;NBP4y\'&aU,'~L"&`۩ʿ6txQfR!dY='NV!e*y3 2[0,K$NQЛg~ 82 bR.a,G:ʑ^$=L՜١/㳭 krXMѴz nD~,wvn߸缄hxS9ӫ9De:9N? j"rEl,x,5 )Lz3 WzsDcD ԟMa6Jr[}rkl?j78M0eY>EYaVt &2uυ10r-eWK[ٲ.`bNfZwSi&f[; ,4#44C2ҴVx1\Q߫7+ i;BC]{gXE^`K]TɌ;doBcLϔzEtɂS2nFO' 2"$Sup6vgU4=nx]DH4iDᒋi<7y#CD̈Wp$çf/o {`z;Qo;  Q/GۅiSԜK 9b][ &>kfILD4."Bex3tXi޸.+mvbfٺϛ`li|ۺz K/\P_]&rJ'4=3:F !e#egfZH rxZH{$#`˼S3A!U`xD(/BrG ѨE}v0h^ 7<2PZ`` eW`aŠGǼn+6lSZdL]+ Zv*di6ёQVz8+ ${B q{ښX 9OP*`ԉiiM|BuN:+B"R\]? R}cdV_w.΅a.L7YZ_?]f uO=ƚWӖ樚VvF=NHٕ@6Ƭ3L~P%Y7Y*owP)$D7;w*]pi6=SE MhL4чrW;!PLN q X$M,F1J>L"N+R.^I.tDͽƉԟ"D =DR G_w)'0U3yN_r 'TڬU,'G3AwI>@-Dyp]@EkrNe§T6kaD. L5s2+[sLٻ+6D|%OB|G}|fFˊd g+kvDd3;gkp 3b2T :|jt;h3) ݸֶ׫hkU:Fr k1K X%fM l DmEItui 4f{Y~@A~-D)-p~6[݅ ܹk$[(˲I3 P Q_OjͿ1ꊦf 4M X ~Ϋݡ/F \AI}ZmN c,,PpnW['XZY1+hUխ3f )lֽ v{I׸ f vXDmܷN`2\ endstream endobj 2153 0 obj << /Length 2992 /Filter /FlateDecode >> stream xڭZY8~_}cOT$.Q5A|/ -Ph2]@yFr_#$RP7VD53$ <=z[,{pSmtN$gjM[X4a"=fړoڍi+[ M6vVAhcS5uajMSuo ^ej0(Ю|T-aL?;/#SIO=bGQt Eakw1ƥbOm? }h9Êo2L:,VN#4@7v}y5[E'zu̬2ERC[Zp;꺳w+b6M ۷q[ruwЅ9ZɵTN (CL(*z~T̷5_h4|9jR-G.ăʗW #'nH)EνZE=CTdȒȔ*C9vTl:$@zO/\G<71ԅwӠܜk}ԅakQ)As]yMBӍ$i-xKN,nBP J@LfnL"q?^a~rCp")7M0bf_]} *ywb,"yc C\-̒6vetOb:!|Yn>6^ .3Bޚ{;V7m:ٴo}Xk0:1v 1/>h܀K?^Gp+DRnV#dAOx-(y $ Gu?b 3.0C <}Y?ҾQP`l",11-OP9jBMch-3xb eahCs8D$⯂BA&C'0,ɞG40tlq)8Йa""O%?zmv`_z9%] #qt˨Ih*]UU^t_2a9RX2|2r\[@ԣւ(5Dj1n٩ Wۃ^eLlEBL#   `J"δ11Đ+R_PVC-!/0Rkm6Y9QoCO--.CzK,eKѳS|Ƒ lz}5mc :CXQ9`cB ;Vk8j_;`$CD&,Z ]~zLZÒA8֔ӕ]3V`'{_ePH| g_o7~=HV_g[ Վ߭dT΀,{%9hL/ɳӉ.\,``q|yXE)]PJ#fY) f0 i#(<ezOs:=?p<_P/h-ܤ= 'ocW7)C ',oj?3_5l'6]+w+=]`g) #o [t[|e?i}g6q"ce?xot89F5u״!U4c̅f< 2_|yr2Ntv8I2)5J]tc^WR9PM~&B!P<:w)}ILJEr1=$pKZ5PKky-zmBCmBR *k/7%y%c~B~^؂Θ| ÉO֭p[׏kGQ.6} ʭGeiCzδӽ'8ܛ}q;nGf[]AeOmɒú=> stream xZKs6W(FavkfjSMe{@[ıD$5m<=Ѥj6An4^4K{S J4syRc N̼7x?nIBJchF-g)|߿8@*ux2zfnogeɔ$N0bN>Q3 u`."i(,P0!SO-N'g8 F= Hrv)c"ƌ TӐqʝbxFJNOnHHM"LY7bS=16ʴ)̛Ձ~qc$\'_{,0d_.$WC2.a=N?̑v~D@x>@;HcrB ;" "R w0JJJzhL!hqVչ3e^u krcIGLIApN7650>.FFQP&JR"MISI&QrNvQp=vPN[`;g DE HH@1"1=v>E@8=hMM#.蔀 MٷVg7 H#j33 hz8()_(gG0iTz,vRwRQb|!cFջ 1'ǺڸvY},#-Xڡ)}pY脍fG{Ly`Sq,% BSt;ǪQ薒0 KԤgF7| Ρi]c1]jgfWx]pi^޼|2d$*Z.|r"_wDluA+Ȭٻ<ͺ<Ԥ<€ՓwuմxVns"9,UX_0˗oBrJ_~`9[Hhv!h0nW>ݮ*z-?FrWYiWK}Y-w9|-T˽\ t?}U-'lc<5Qp2iU@' }}$x~ȷ#߮eZބy{I%"CqЍ7,] xvܳ1̈́o|T61A1YSAj]q*0ejfMtqA|"҇@MBސa4ؐKP~[rtp,|hW{bۺ 1991}ծGـ7.F"[f\󇪮uUCI,xpo^cM5Z:AbB]ʸ#x۴8nu_0]ȯmu¾|فY^hc:?X30A@1fʋ-!rôҭ&a(⁺ 8+c :/aMwdvaBw2?eY"$GNVش?0J)p=L6O$n]iHSt(1_W֙?l ɏ5yܐwvM7t/n96aP>^R}^߻h&#`?5:e5jb;9$~({OEkuܯi\ӥt0Badw5vO+*3Fdv9XdǓ34%c)m*XHR:[aJA.Sߵ']1>hJ؝@2;O_s'6>?_ňUANY4ՊNCD!~C|4PmVge״1 zL=zsEb &:yfjU`ѫչIeWZ©k~pH4v {YwB˧"3_DyU*pzUI h?h牻SyJ?贈 5E?eE?ǿѪ0)|&@v'CtoY#tUQ)s> JKD"DN/qRZ#B&ȯp!ΠW~0-Lpl"!ßPDk뜃yJx8]f{#"Ӌ+?¡*TIǬ]w쟜2>M>~0ǠCڴ6ZљH94V+:`Jp!{k/Z'LǿK=]~Gb2u {s녍7g8[ /}52KOn^Y]lͩ7kelݴlM]E@:wbvvq/d>0 A endstream endobj 2161 0 obj << /Length 2823 /Filter /FlateDecode >> stream xZKϯ`n* ƋTSԮT\3b"$5_n<(AaRaF ^nF4bQ?X7_~jST':JdLT"~LwE4ytwiiAI YLoߩD(t?uhr%D,Zn~F9Q"$z2V~X44&CoAb)ڒQRkK xRz2Xr5]ex dYOs_s!Ĭ_9{,zQ؊cz߸||k Zl/;\ +Y(,\niC MDS!ј PvPaRa&Q HHTc3^(pX\AN Q[%N?mg<% V-f@0j#$'5Pq(ay=+k Yv<-\ g1BCx[wc+ߵt௷=0E3PQSb;w>jn&Won}LCޙ<=nn^N4 .k M)]eU|7xt/qǭ|YcAVL`\=Zf2Y5a\\&jճ% -պ* QeLj/n*~dy^۝Y@ |}ӿdP$Bqti?=2AgE3 y:r^ν s$i½kmxP>kݦm6~ +n#X8ÄG(#@3,rhbJT.w͚^EmM J&~֡szXpy_ڴ٢ cCab5CfPHFAb>fUd4&\if5߱rh 0pIbCK8 jhHO 3BфJ@ (o@mVCJڂtzGv5 GE +8cy5[k)lJ ?6 `Oć$3b7˨\9b"a/c|hWRl3K66{6r7퍶ER$-Sl]֚~i:L3UVvcY,LYT, ~>$,3fSj؁!)Ac2]Ixu0&!<2I 7fa٦fW;m.Hs[ŽzMm+nc3!gL| ^rho6\%(N&Ii\ ȀxgR&Oˉ5m ;sR <8(u+Rڹa ɐ)GS8DC~9: HϪ?vC8`u[Q.2։p tNu^a/2X$NϺu?m^]r6N/?p0wSZ0>X`3+M=g;En.}P!,D3P3),_{'˦Mɚk5Ί[s7mg[u>170dA ~ۇpPlN`vGr0󫭡[9EYudl 3MRABbc>Rp@ |rSW'zh6wcMBU؊m2=jl]tw6 Uت薶(Nh3[#!R BS/h.9 nCl6pf/#~-˒ff?&˕н9"!,/5^B8~·Kd&a7e{ *ό,?]Iw fd*{#^B0(ۙ ^!/9_JO< z9Cyx"yc~9yB-R一M `_&`Sʱsz^dCsU̯7w&eR>V DWrpDPwY؉a-mh>RA@|DX`Ŝ 8)EAd+Nv6L{=9p'L#÷Dҟ ,O$=!rm 7 MK|o>=)͝iE7=Ţ\ ۭ[g j t.I@ovI!fQGjwKwM~L`B|> stream x[[4~_L"t[Z*'q&' i]I<[{f8VwK3<#^̛o^>B+f |V;<3'|p關At):S #Vizן~)vL!&a7teup̠$C[nVF,ӳgj;k5/"Y6SXК!3?2;9 F3eDW?`1#vIAD k@8ETPߋzlr_ڼsԾ.=Ǖc`94ϒ:ԁW:+|$%tWI 0$0&CR RU8nu%Sh9ZNqFMo8}jV 9-90KԈH7ݓO&<& b艹wq8.7iNS'f_n=O E.MF|I5_|NH\O߇5a4CD> er/GE"ӈ vMy`q Au n.kvȇDzs | hnc"\cDJCsa_ L *THt_k9B| k7fHj莥Nj 0i8CN_( LS RH't_k @zuϷ.fHgMt6 TLDg!jHgv48 ͦs %<*\;Bu~o^͐Н(6L#NyJJM{ǁ"_סxi |tK!zP+I(QQ.fK jK5Px{2M)˥º.-r Φ_&RÚL h?i0"iD)ɁlE7 Qґ\a.ހƮlKfB9ZO8|8r5RS<5fc# &Tks`l`u^v!ġ;|1C_>%2n_NxZg=qpVESrg4ʏ~7fQܣu$BNlێ{aF!Hv+=ygF==qm֍kL*}Yf_1_jo5 zޔo>tvwCO9q砏6 `Ѿ ,\ 4d덭S=ᅼ#/h]naN\ -uqٯ.Ni+nw'n):SW#!!eDN9Pp ^PA#ɜC^i87뜅͈x&$LPϽ]h@~EqNtqIs/L3UӤb_O.q,6n@F.qչ|TqUMZԦAd<ĥI$ +0ۛba+$4gח_ndRBP 7AJ-RrǐrSޝeil65X& VB_>B$5KЦO_ I"O_xnz "OtQDwuy vI?x'O?u#IF I"M_hnz LҔ`l*.& h]\T?JM 5:ո$r[厁f':CGA}ګ+03Qx3s_dz-Y %ѭR8@ vAFg =5u?'lyoM˖/sl̼>! a*ح G/}2e2Tw5aV0N.!0X8C\w(M2cYo8-$]L (uXf2<0Ba@c*Km}>7@۵`Ly$tk>[7 w}:}žuhs c hg<<䁽/Y#kKLLa۔r{ !պ@h0B F`0_Od40Ub +E EZwoIdF!) :X CϋóB?4`mTl FFuh񜇋$-–QfH~͚%b 0=r^oOԞA۽v0WOތ5{\.dlXD%ia6ءF B)ãviXL02D"I^lϑ1_znNH φ*;R:L!zNɈrO.T@x#6}suD7.X 3'6Nl┶!YL)DL*6oV-96E]Fem n2ѕqHd5!O>=MbqPcORL(RAS A(nóIylW??5 ~4D@ MS6#"Lbb;i8I #Hr!<<]Rt'kbZG6 ܦoQ@4oD#:BF֞'kPu mZ =f٪p^F|I 6?ܼ3ﴽHxp˪r{aC~#id%,øˑDB^+o#LM)4 wd+kSFcQY屩NA&hpXqN06Vy!f!ҙjR˲/A~,(uw%ֹH-D&Bme3;~ endstream endobj 2169 0 obj << /Length 2958 /Filter /FlateDecode >> stream xZY6~_G73Dcs5S?ixV`Z?4Qf_fZhp4ʫ/*8В/mmDMauKç9oѲ>ke #ULeKB3-zRKE`k`;2#ɒ "eߌO3RW,j?HP iq4Yj©WlMJ 1KCL`H4~;9m40i~6d*.Y<'PBg7VoDϢr5Qz(]`bˀ=3G_>/bb`EXZ3aĢau1pf5jsF]|?[VUBdPܷ(OaB QAJn `RneC#]/H (>ʍ㸤l;75#]-v`Nj<]z%ђ \}zv`ٸp\b#9LWK' ynVy|u$}; :ܼjXyNJX hɫa!\th]eos= K3x!\PqHE&4"{Ac˘k}f?Xvl1~r^d rv Όyz M2 6,8.7<dԻfW6CD B+[=2P'gCvlv'Ő, ctXWg;wQkR"0dǘW%,M(ɮ\~{poGQmoS&zb Ūhۼk\b}x 5z\we F mY -pu[)T{H^̃"+& !.;C 6&DYSj\$G!'Far\ﺾ}ރl[-~.2]Xl-"[ LB*ُ:Dh>f.(Pn4QD*d9u:xz.\?ǖDzHW!][T%8xQ3{ atYuE_uRz +h99r4UW>WwGl)"qw Bjl\" p?U<r4w}ڎwKŸ%Ƣ]}Knj_au = 1`M0 Ew~n³ѥ~*1vV_#>(=vf8x*x`TĄ x,WES4;^ c"+/+tsnJPm iMl_Qc͡<+٘ 1OT|ǺG#7JVGɶ:"$;U/GDFdʦ;sU8SY1ę-ǃ  p=f.V:.': ՇN+tgM,_)G6`NFR$1;= _.9Q.sc.Wďm}yC|2]ߝw00Uʌ4K2F4UǺGm0Rit9-cNĊ ,%Xz?(|K_i*ᅣuϑ }5lF p#j@_6 `ftvڵXfv}s˞iFa,\ׇ [Ntvfߙ86 ,XI1D>gz{"\qy_(7 yZbT]]~?[w0Q?V;Ԍ̦~Lէ`6|m\M_<:`ocS vR<޿vh&T|y d> `'z1غ< endstream endobj 2123 0 obj << /Type /ObjStm /N 100 /First 914 /Length 1377 /Filter /FlateDecode >> stream xڽn7z >! 9o4FA* }~]j2CݏpCL!b Bi搉Z0NFB 꿸nh3~5h i F8`mr %78P2h PrH O\6E34*O<5tK5*cIUE2RU>hɄW6x[<5Q X2'7 FH2ޔm4D- (f, bnUmK,VZ܀Fj~e\YŴp٠->,<::fo! L>+Ԋ sRpdrY`54+O9hi0(:3%22hv爑fw+B>C̤[h6)&peC!Z&ךOWIX' zF؍l6t&̷a˯Mn?~Ջ,-& R̈́w*lɗ/IMX+J{1'O k;t/ӕC_O Vg՟ǟw&l߼w/km?b_S6۷wD4i~n<*42Bx߇{8\8aG=#Rڬ[g.cWhё auJѰB6/D<#_F8q dspgj#z #c9㴅8ӁcI,)HQK_47ls95%yaa\-I+OlFGlt43f/T?I&*ɄBM{vݼ(+.p_V ^jy)+ /6jBC=W?,J+S_(l?ujۿujۿ^:X,1[yɸ.qY`{>B}Τ/&r|,_$@ B ̅8j J`% T0_/"L%kc&KV-YBbT+ endstream endobj 2175 0 obj << /Length 2545 /Filter /FlateDecode >> stream xZK۸ϯ-RevMd/ Ma$)R&ϿOAJ FCr!H&} G$jVpэoe<iNdI.Qqo$?ܾ$"B>Jh0 [FJn^?  /lN}%R&Y]E;_phs-ͯZlmRUnmu25JHZGVˡ˃&Rwu 2[OJ-Y\c=a:òx(ğM$-JwjIG6Jhgwj\-6YeK*|W퀊$=zf46mgou޸R6m֥yqԏϵeڽ+^y?g_OLa3VWn?JoSok]dy]| 3Z}˲֯ ,//\lv`Z,ӶE,#ky1q2<^)wgڤ|7V̼8Mcy:ς O.Y-Sʒ@^ݦ)6Qk <YYN?LI?ߣ[- `k]GUĩ_</Q?Lo2ق8>]Iل272P$EF ă"#KtddTA}x|<IG6kN!wx8pLAJ(+9p@:@}y FROҗ> 0ң3 J$5QuqK+ @jȧR}:ű kA n5F\ש5É|E,(OĮ,OڋEuFWYp0 o}wf_Mq55 ^UgAc7x+BYs̞K(4|/ﱰ-òf =6R׹zit-Au^Y'{kgp\)-CRiM4_`JtcA;ϜhcNQw&ذQzm♩͑2AYhh4L}6Mmކ `?ޣ^BUdn):!t6VGSUTy[yp>OugIH29X$xG+W W<}ɁMaSljQ7O)v}@`҇|lS]]i0|ex_y>F@<7޾7p._yEpbꀭ!X 蛝`ZgLzg?~nc>Gi A,UK.:Vd `l,W֦h뮩e9oڔ" z=JAăMҲ)g?A endstream endobj 2179 0 obj << /Length 2502 /Filter /FlateDecode >> stream xZKs6W(W0xܪ&U-Ɂ#B(R&̿O7R$E=,+9&FD#~61*]J Q&"TXF4y"zdc$QGOJLʢ_0J{z4PJBc+a./WUmqdO,!:ajo4ʠѫ,O?$$Q2 K $@7a4B f d! 4SCLh`&mB,ʋy.ײ3i%~xmx7._57rv纚M/2BX\OUuXGI49_ aňP>: cdk?L7R\Z6`:cgmUkNLbnU-@. cǦ% )OMO(z;uFcLw+ُ>O]ЙH M.GߙE};˘J."83zNS)b>cGΖ:UiN,&%B$p>QJD|aCOTS~BpRAOÝ234ꇴzP{Y`} ]UeVU +E[yZǥ91.f` ^=Uـ菆,B~0@@_ځ0c*om!tT.4(gςgA{Lm!rН}m}qt=Et="}Nz[ |X |.·J !xX>.H%}SIX_1П F! Ri-P.] [+jrްwAզ\~ڤ[MK+?Wʤ-2y⩛uՔ:|0v eޗ+8Cz&vi $!U]N'yfWw%2fkq+ɻiQ&~6W|>g9Wc7;ȡs"#9\t"w9ΉH_t"o'={.@r"R+9_=:vmva`C63_OIӦm0ȕT #TNM3p+h\mӼhvYvi9Q̅{"H (LI>'[ OQ&bLkc;u zm@t` }90MEbV1eAv&K);iy;Da!QjmWMɹ+Ci F"Z9lH>.m'uf[fC|9ɷig-/W2!^lw]hO:#:.r$S'"o;A<%NG?41WE?LQkiAa.w4NWE 5sAPj;JQZ @ $|%R9 }TJj`c҇:xo<%Tq]v̗bfƿgRqE}TBjϬq^Mj y88-L0ƿye2[C..қ)rBUdHb]-@骱Lz`d9o1p8sh1h:~M<65?Z'0@0"-;x{J1*XA;C, pNK'}61̸ѼRbJ׷'ŧgajb] TDOfrq߅ACrp`>wla.+9t i _I9D[bY<j3`۽qk&4G^aRaQ{$֐BYH:-; gty_)ո\J9xPe\[)O'0} !smw=`oտoِF!p=نNJgрQW] ]> stream xڭUn@}+1jcR\;@LL6, >3gpf'@n ;𣜡k2$'r12O(:,7%Fpʔ#5Ys:^dugf ST=o6}'sSTWQ):k1/5MR)U|O[3k`)W;Jh*8L#4):NG_raGT gNj闼J VZuNQ®鳢.&C}(7bЗ=4e^(Xڋtjmğ3 s#n=ci05~5\m!Qk\ - SN)FDgɔ;!ZQ`& \Jʬ:6z2&itW5GJCm\EX Oѡ_`ih9JeI~/۩UĔ9obLRre}USo&)88q& ov{NJk*hS o]՚*QcԔeRLJ5z\R6rn7xGpt̽X0 TE7CaR9mf۔`&ˋ:RʳEg96\ba.׉owoÄ endstream endobj 2189 0 obj << /Length 2748 /Filter /FlateDecode >> stream xڭZIsFW`n`hdj^$;NlNe  }>W,jZJl~cD5D"SF y"yԕu8bxEf'!(F(Q0pf D\y"ma)$m^m7gψN%J20b}:z]D,J@_{v3$xf0Ɉ`a ,p-Œu`)VDLtMilDN2?Td75cLs_ -?>bp&\jVTC+Tf+yɐ㐎$⣛+0C} `Gw@pH"3Ąg`ujE1mg)wv3lКe/͝x,ɪ$j-7v뭹{)8e|(f]J *M uUͭӺjJ ȹB12u`ɕycn}o+*KnZs;u[׭z~+q5Q\H<4D`ŧVb_MWZXVpԂId|ٵƊ;6^7TֵW-$仲?qӬ=l{ /fK32&~} n$Nie/N1@,ϭDp j/q C5tO&}|U{DDzo=ƺPZBɝj<|4@ƠBsrDİ##='akШz5yaO`e/Mg]yG8(?[ͮ\mו$#*&0#?&I8cHG:@m9.֖!4q<$$ÝRTƙP5D~æ %:/3:J! )s]18@T 6Xф@h?Qq';A7g .&\!)D:)DRz ?JA8m1yC-z Ex 2Z~w -=f sj͜ZB*F|UOS$$IPdFm_m$M$Ȳb/\-u^+&C:_rlN$ +L9GE牚'd^}TR?2dj,;5܉o$L;i74@#N7CS&Le+*i.NZn4bS460חݐ JɌiocR=sT`ՔiEkQ侊G&}]Q/^ҏO0&5e|Q, qN|!3iGJ`}U'n)r97l/ruK3.ȦiJ]ٔ6ٳllMt@ӻYp,!aTLҩ}ȷU9t}n\w`jycB:؁ւG39Tk;bvAPnW 4Σn•(ӿ^cq%0%%|%{~$eK`"XR:JUJ_Wq/,B78cG]~Ksˏ.nTopB+=Qo{j,7?~.5E!3A+ԟ2 QS)fށt2s!6j_ tIin [Mk6k=h]uu\9b{u獆MۇPNFLz 5 Íşf];ZRKk>wqSIT[H'#@@R;˿?.{ endstream endobj 2193 0 obj << /Length 3075 /Filter /FlateDecode >> stream xڭZ[s6~I !nLi4VwM6THq!HCd!pp.߹_"ETG1@<RDqD-跓Y<<1JGH  JPh>,0+N\w~.Yߖ_՘-E͵~.0cEp[X~\9c℥( 6{i 2D1DGxI0BhRS%ģ"HJjgl 8̐ b6_B;(8ޓdS|}0SQ(Ijehlxl!s]])gNOgIPB d$qh1疨 Jh>(vHpY} b3z(C8B"ZQ4%E93$\,҃;uْşjT\/ӏܲzSlUYЃ]ՅHH߽ʺLߙ.}j@t؃`tMYPq5H AۛkPHf FL蕹vVͽ^jN#V]dWln =vրr9T&Wga;*f;ftq%yIO]>|R9mo+q&,H,$c(AC-ZIi'Q;0g*U< T?@ \TGAM&&-4A S4wO*:L*S5n *g_W1M@ -#VjA.l8̳.U뢂Izʼmirp~;n *Miz4pwKIEY`vtSP,w%$\#'>'=$ĄMb%>_=_Xm #ke-,vd w妿UJmL:"6ʙ3<bxґ1#؜dٍ!X`$^S$>31̣][Yw82 3ꥑΓ\yt^-Em\lHWyv =-4@X?sd }m%*O}S5")k6Tai ,$m^*HOk9ؓZeRFC54ցp*Lg*wTQQY =x֝.x_P¬iNh0w] ?}{| MF:mD F.BS˅O$ypTLxFY~$s 2Yp#4t[ꆎ7v UBMDxpU HMA#r 0SΝ+15f;lGݚ<#`rpչ7 ,#!L8峚xS$Glz;0s遆 V$R>W\*jb}AټCSA!Eo0X'MyӶ }k;1ыOf[8OY۷E:W ?~Ģ ^OۂB[OFU=?U~XUgipX=֬|$F5q[tj&hVo?O׺_6JIg4K@f ڏzēMre NUQ' fRc%̎0}J4}л=]ƴ{_8c@bԸ$5vrKE>YJOKpXkQKia/PZMMBC9!1Vl[w>zh-|0FdpXMp8#X 9|Fe6~ |&F[dL""[l > stream xڵZr8}WQ0}NR;-FmVtqHIBJ VJD t>}/+m*(E5P,ں-Oo*%%-Yqs[^A¤yatSdvجp/I }.jYGg}YnWO]']_?tz*K1z`љy_n\]7Rn@J؟T UaHi貘2達(V'6;s*$kD2L *I -Ér/].|&a#Rk $0WhРa) jPLYTc|כ/W,7hIbsVK[|RB Ed.aeYh-C8OX;eza42K1>1agjN_ fOQ!+9隿|87:lz߮pf?C,A)9^EF+^(UҊ7EY?F* ա݊ b椴aGV-M%{$1fPϾnm`$8 .Nip8_4TQOX<6.òx~{~+v@Yկ,x_y5Q;jsH4pI]\:kVr @\p.˞$?H)xL 7 *+Wn%%*[<%h֫>`戤#EX!@"׋/q<"&8 Q5Q{ D8ariT\e<=Q;%p|e {Th:Dр߻5FO.N·K nK +]s0TE9cIOTmS}Za4> BG‚1p=Yi< ̱;j!uTp?]ee#zx"yŴ7L;@a,'QX(,Qu:2'AXZjy`zӛTqB c1`dyq vE\CøfnapYݭs8^sTÉ| \a^1=l̤;.q1$gy:\Dkw6xiaR?ȯ΁8cI18֫xB<A9H9_fi& wDJ y!meӴP+Fwp[EKUawqQB7uvS0.o!1qlzO>kja]aqlYxo7nu"hȭּn&6YfW35$izFb1i &d"Y[355j̬7ktk:~@Z֑kWy¯eNl=|?gIipD<-6 "uD6QqX+ S$lOz!BN&#NL|Vۊ eO.Kw}ٸdۖfhs@(Y 6aR2}C)aۊS.<&vdL0V-˝qgϽHEЩp_16#`MfuRփ>-ʁ#dsMcC}E2 ʭcpp|j_ԶqaxڦgW B!J񌒡^>|>Y1pKm,vCֻ묄f4 y%T̎&G6>v/) Pvwn >/\3]b 9ܦp#-R/WId""at]s -Q xQGgk1[g 8$n(:ׁysmQSfϦfm nYöaO_`a#Xr&}w;!ޟ3RmR:;_p3z`T>JQXLfY!/~g/g*_[G*M¤o75ɺ7c#[hn㚡&a{~_o|PNêO(3CfJzz|W#"sa.sfIy_2ye|%%^1[ -/WFk~ |b,HzM^VS̗{/d?E-yw5Ծ&yLyrz9O39$1pz t c^ż31oWw!yHV>&^&'],IvtCi]&ǿlCچ?$@7'|o H3<!G"< )? xv5?w/לDϟ N79:zZ=9$C/y endstream endobj 2202 0 obj << /Length 3199 /Filter /FlateDecode >> stream xڭ[KϯPnTł$)x8٪;)lj,0Iק(a [tFglV? ?{\4iAO_EK?4j(%FHY[>جQ9'Brt?(}63)8<هe,.3 71J21;;CNgqǜG3&3wejH4|!Hڝ[ޘSMyX^ևv"#oWܘ{E^Rm].kQ>97RI^ lW}ݡzr~A&fCld v_dY4m^5k\')=OP]Mۺj.I&z]&5ܥj\.aO)+ dXT5oyLXQK cIbVG yʌws#x`|rΒvhm4Vwmd TzoInpJ ,~$˼AH|SVn[~\xɕwUweh,i %m@#Te?2 ||Dྸ)ϮA׻=Xomo!a2g[u^MK!F׿QEm9ʤ2nf__E)[X'h\P5A5@}p\,`_P|3ɣVnO[ꆨ.nݡuj]ׅWmY0ɚxslʙ譛ºmvU}K)%20]g<71©۶=p W>p%PLw$>Eػ6;_KpE?Ng7xAΩ~h1J 'TX[<#ރ40-'"d67 ӌpLJ2y?5M$0֚paXfpQ?!f`, t,wzVq9 g:g<Ӏ i-e'sS0$g<&!7$} |7ݥt$ѩ_;/e%Ԛ}ޖ6F8 AF] !ۉb LMsr=tΛ}u VC;T 0>W סK܊)Dt:v\'1N&a k%|L_p~NDJ5|G r{-אk5 HBKນhdLm1E LPCXnȟ|H%9KEBhŜBQ]!4T4W. E}K'CPb>~bތ2}Щۜ%r eɇ,D {Fmt\5W,)H>#C+ 10و%SJnWScTX5a<%ldfS xʤ8a-ދ uJpQeӝR+8ӟzJm\}FSmKVm/@}cEkSF>'w優ٱA=XexW B)w27 _@MeX}.-Ws$JFc74:ò܆\N zȮp=̟/ ݮG$Ȝ3"3~q'Q#a9j!1.v=LQPika܂q ^Z87wVvBHeKhSA& O!Y8ZW'NH.|;Xh;^e2Ae*k]6}65?(UJ_ G'e!p-R0];~*={x^턁eԸ mnjR f 1J>5IEHxzOoӻ$\v~ɤ$] :EtyIvZuUhETKkU/:wVo@?wk^|XWĬrOK!udwxgGfdc4#ד L3JsvϏTqݯ7e]=HmZn'|K)Bv60jGKAu<_:a~xr^ţ)S0+5П G?a2$ct%_ٜs<czo֑Kpv@yWsMu es' ݯvMѴl[>/˶zȃ2ž7$ڗWݐ)k^̈́#,qb> stream x[KsWɅy?IkW.l$$$$\}z1")xklmi ==_?f^e ?aXii.R.+ qjpa}^]9AFffa$`eL B7}:r06m.lܿoH f%ICq2ٓ8p]e~EĘLa Ǿ n~z:# 4bJ/axx&D#C䥄&VǰWsج)TͶ&f>sխv-|VzVmfv?"̃3hB4iӕ@OEW]:K0^79vi;wc]`4&<|u>1oDj*=pNUԖV]8c#J d6QvAOeaXPK1B./U`Y !XOBąt1$-,7 H.6 5_Ķ(DyƼ/MbS,Su뼭*|z8lK0u6PM;Fjr‘V*몺+Ii ,^Pt )8S->W\q r_PJA_߽befUI'4"A?)etikג<tRv^bRpznْJ(,W79oXt>F UAZCs=L!`XsHRH"Ps"쳤1RHR6!ڈvHzqpSv]U Ov*BkYƳL Hڣi]|LKl{kA~ | @\BeY=2s4b>PAUdgg;y:f\X$tP1˶Ae?$a\LjnaHQscs+MR $ER3"Ҩ='#h4a#]0sj .7n*4 x:2nq_rpи㞂޸ܜjS0KMoՌ>bۆj&q#G͞8`C6;bSpSm{ z2Gɟogfl9eeUP074$7mU}^JUAr>IaU#Z?-ڪNxJ8o$aEMhtִvnk2 -yGR,[2Γmm36`BdF@V{q臟oR\JJSZ=*`&#~ի#Rd%onG/RՅ]f'%7fks}{kqSϞj]~MѶˌBҩHfvFs&nљ³eYڮCjhlj<;#<>ݾL1xAGZ%,[K4pSmmSd5u!q$XbRzSvB;D]턟R;)O8n/8QrIw-[( Ubfh 6Z}#QڗC^-jmF[T탫kP H LHmO:y\&L 5x+(s`N=nCdi$huPeq{鴬snvyog۽(6ͶjX zz%؀D>fWA͢+i}KS]ָRxqQzPbhI}.RN {R-N@۷b}la֠3-&f#aԘ2Wx E[l "ߦc$N-hc J^`N qQe4g|/MGE $lpR `QSP651mUY$H'f0e_;5cϕ~i&j]yOnŪ=Dkh:+H,`}HRH{ǎ\_HxiL߀X {·?tAʠvU)ͅs)$@=̉> G |f/L>N# aX cAD9 D=+%ÊOH!c֓t{Dxq&t1>6b .4fծkڼ \}o+ICTDpFG;'a舁O1ՌGPh2&O}YULlBf:jg8 g!ݮ×+|=:gi@+"OIC#:5X~@:ר%@RA;O,㩮,m̈DjNI< s{@XsR=vGѫ_%b0R N@s83_g89XG`6A"-1DBˑs:0Y֣ Mzމ,Zj;SfCʼnnc9rJ';QmS(Cm{}DI<|_Dx@ fPefT0 endstream endobj 2210 0 obj << /Length 3202 /Filter /FlateDecode >> stream xْ}B~TY\C[+q9U0%4s\kB`hݘ3<[׳j?ʄ#L1 &5z4 ߽}x3xi&LRprZqAR1?XN7K{øGZ.>>rYuE]en:~\PDY1fitW7٪]Z;fiYVU[t Pl^?'wkOu1_S&I%p |f<>8<G1,!0PDž! fH5y)^:+';I./T8OqDuj#FD 27euE39Ma/<`O| T@o~͖03=[͌Qs NәÂ'v(lrQJTBHz`R,n% &4 v'Ⱥvdnv_!&Xd PwDQϳ2ߕ6i(^Auo0pȒɆI R(|318p1pLct5h\PU vB%G6L#¬W-@$v4ѽ/#0!cTPn&球Bkػ, *mh;Ge֬t۹Y5#8v5fz]-ެ3&\r[:=<@Vʜ-XHVD_䴭9A1p5.=:FwO)J٣5 9 ۿn-l]ϻMR vzx, NԔ" %8> 0oEtN$q9NBWS=ZA*GjB`VB{ݨt]Tp4{6PAU:_5ҍv] `0LvW.aE 0f"]SesvD^^wu OdDIzdqpN s6q5R. ʰn\*_CgmYX 6u=8n;e|ﱑA;HB] hnυ K КrM(%6q E] .'\a$Կlp{1S>%}3.w!$ Iܞ.4eՅo㹒bˈŠWE$  =ڷ|o!t m/Fsk̥tG=yl\eby:ivějAHZ$}7իaWQZ ^07)ۻ\ExBp)?&=LzG!ѧ@a߇L۩&9vpԓ )$&س*v]_ET_A"؁J7s-# 8!'E>CP>Qu|H]Gr/- K!>Hxjy&C̠x~&I[}X,_;W‚qAs!?Bݮm>[mz.';CJgY)5`/in;g$rtm5rn%Mz׵ϴaafz{)T \fЅ\p.V> ubP.ډڗ?e ˤ!?Eǁ1ӝ 0qRd0Ayg+U][}%oJU 3HBm i5Ph_]]`FK7R-E1dܶzW.?0'HbtSu,F& 4n,἗Kx$ˣs{s ]堉|G@܁UȵԚD?6GLQEV/nnfdV;ͧ1-J@JA*]8si[r-e qsM:=/1_ޥt/SG/F0b5-a~3<36-Pp@8o=fwƋ806V` c>LaBoP8A? p FGȟ'˞/e\G(ߔb>W*w.3C:R^l #=s#AT jtZjҫaASu:tE8&9mĴǎߊÐ(z}AIySu&G]^d@4dy')^\zέ^Tbw2I`ѻu7߭ (OMoz>ce_tS0kZE^7vw[i?:!f})"~F%Իp!<(>cw!wZpٲQ㟞c+p3!TMx`n6>C?Vn$}X1m fXvYf=2}\n%\-3ۦ!|mQ G}?z華Va' z*wM憓فf:.m7~G5GԞڷ%M endstream endobj 2214 0 obj << /Length 2878 /Filter /FlateDecode >> stream xڽے۶=_w&dp!xilw6cnkTHʻ﹑"eq8<ћi6 /OB:&1}tƉ r:eTx4IǽƮrg@}BSqAM<38ʔ]*ގl7ܣWY 6d' v-mM%B߄E}|Rq[сNA~UIdR{sӹA&6KCv3+Ļwdu}{dGpZ Z êZ3%35Y5OfLg*zx='Kx:>&~K3QYgsVQe<7u_ r8F/xjȒ*9`:pQdqy ScGȲygKP>p $!  \h*)jʰp{rd qdɲ(/* cɹ:-6:HIIwtk×0=E%ǪxR9BcՄFʮ]aa_ r@}{ xQw%xZD-%WeπB8y<ۻOyfW5w WO?8ڑTvXC&q}[ !ZNR]cCBnk o՗Y@s|"P m )VFRںnYcPDGnP&7(Gio82Zd1bHEڑ%rn(0k<_I6. tQ+s_V3+l:K\:^~meˋ#8=|РBJb2U.2M 7a7 XMEԍQXJ~;ɧpr(:v9lj(ߗX5?g'q̔)KO:i-fYp TMY#6xԮ! x0&`&uiP_um1c/yl0jRІуȡxY|\&>b ~^J;՘F|t8ÙH.Jt_NRi؉iG{iO!5׸Aw x0l8OBcp )LaNF/@CU#C3ht) ۩g# G-* X,+LL9 p>%'Bh՚C]8䜔yR`i* w/ [`E o̦8pl.1]'&|*\;vM,(Gc=6:KV$aQr$E PyׁAIPt@HVHc踡Y.uRXD.y&T)aiEPY ~b,8ɯ \0i/B&WboQC#uQ⦷AaUӮ>#c.4-O* }c˳AIYa3 a#m&A`%c@ ) kǩ)40ŀU]Wp/k 2pA@ʀҾl#xL~JЖGhrL@:FQ9Gֈr4ԛ>s~,%yI j8 Cr|NSv$",ԓ>|Vty+_b> O W];=ugy4;2\StҠ򦗺:ؠ)|j"wC^:i $:ݘHL*n$R O֛ S9g3sd,.0Z^WJ~ن3:wmM?PׅG~_qEƓnT9[; wc䜚OLtqҋZFUc Јљ-D?7 endstream endobj 2218 0 obj << /Length 2138 /Filter /FlateDecode >> stream xڵnܶ_!%rUE<0v[=}%KT+m)s!-'h{ crH>=ν /) ӎPɗ§:{w2"HelQt?'k JHVNIi_CҿO1SCs̸gb:T0hm4'(@Fk0)ogS*oV`:qMqyʠH2Q,ҖhыmCΡT`}6"S h{e1#s2dy\Jʉ:: B`%2H@./lelT[H 01 6 `l:SLUvd9dɅ)Ӡ2ML'{횼ղe^Q fRbŋk Q^5BCH"j)ڒfZ=xh0F Xhl33+A6/?g+D[T* 44KW3܁̃+ {>h;{!¡i!WRB3̂6Єn멲I  tɌ>@# i5P] Bߊ5`q5E8Q aA$ d-{y(Y8>\ Z p‚'?X@ʀŭHx۠)`?0%L/ˇĂKNsTc9krg? /qyGN`FÀ2=%T3.7$̖i3fM7(kՈrc[2v0ǟ/ޟONFό2 A,m˗ T m P~`XYԌߛF+5tp5JcLX}ә5{D=aJsI.g!jTfO4~)?21Tnpl\8[^'/ 6gDU3$XJKbsD{VG\U`Te;gжqm@{3ʪR1' a WQ@$-ܳe:9% endstream endobj 2222 0 obj << /Length 1372 /Filter /FlateDecode >> stream xڵVs8~_GgV%۲ Rfn(Gv-9q hvOswh? ©HD(N"y3Hbrv1E$Y8"áy늩Xݻmg4r[7S?ܽʢ\_0I9Q""5F5E֔ژxG9mK} y>9{EJ)1,%)M -bvw9MBb$9y;0MF8`R~eHqx2 u[.h=e!QXkVϔn,͹9n=Qg 4t4r&UfS~jFM[j*+耝x[bݫB-YmwEzY(b,^nFfG4rlN WZ V9v5hԕj(J @Wj- Rn0yq LswV"ffni# Y>鲴 YVj?hMUu!= >Cu˰, #07ޜ^dv윀 \Ec-dEFYCxR[p79ݔݣzx@0k<+Qgȯ6/Z%9{]Gĕx3 ʃ %Ew"f\p,~Qc$"?AB0>3b)&q,zjSbz(T-`Rؕמ;ח =zSPong`I)ދW3RA cpZ}bqƵPMcDl'}١B/xEk24U+]C@ek+ffAuvY(<SÊhtH}[N R8=T>oZJmW~W,&ײz=RT7i.0n?š8$j;?`܂s2? uOE@7CȀe^SePG;4KP)I8 @^ . endstream endobj 2228 0 obj << /Length 1752 /Filter /FlateDecode >> stream xڽXr6}W𑞘n$tڙ4]'Ӥt<$I+wq!%ʐtN!؃ݳg}񈷀k0 B,bVnKŘnuׇ*/Ѡ jQރ2Z,l{ծ%vԒEr6 uuUO|ӕr9]NϾ]S¼8{3HblLeʛ}0jF4%D)l2aL|%(6qhCNnM/ocT}uy;B$z`!kuw_'om'wѦfE 9h:w&c[kϾ*0 2_Ȫm`:uyӫ^`Jgi ט:3v<3m5-+uU٣2%{tmUΊ4lS45Y!j$ܪȝu6ch lcI"1k1O=yyc [‚:&*@1?GEHhp|0l{62H$Fp@أTsS/ᰁ(8Pfl:6!r1$TJu] ['j1p_pYI  viܘ>1Tn,]eʔ9ř ANFpF9yth 0g^<2q,!1Q#m4f$ZM#SL2#NGQX Ϝl'̸F0x# Bêr㨷D'(1SR/;v! E>aă=;I=ON.$D,:sƎ宀&Q@tzltA,f'IxSbbk1vĜĺ֓_u ^.*U2M.C$IӥnȪ~T7\# [u-dWs%=Bxkq`W;?*[CK'\pEu-*]IU4Z#g ?7v8:pkK_,Gw/v݋`:5vmV qk endstream endobj 2232 0 obj << /Length 1308 /Filter /FlateDecode >> stream xڵWo6~_I@HeCڝ[,Imgtlˎ[Ne9M^Nl)QPwkQǻϟ=-ﭗ{XEўP>(Rw:cJqo4Dk"11ɗŦ BKov,ltoH13|;0$1m N.I4n.z/8k(h,v7-62/}8)N9&\؁7^L*_Z8G!jG=rS1'Ej;&ܕwf5&wrUm;IYd0FD k[ 8ndxuyf7"8L5dx,],esZzK)ځaJXC^_6 ;tnOg-e2[)'S}bZm/Yƒ0nlTq\(w-p2KrQHحҟHJ)Imi ??UV8'xUߦ.AρN" u_NڔPioe@#^Wr ̽mM2[;oE$K^[%\Y^`RVV,$}_e\=Y3wt8xDPYK}5w'Al]q0}Dt :IDac#,*2+̲2Zm Z<4ү& \CPU6u5Da4Q\[6N G]E.T( 1p>g$Q|n[{,e墙v#%aľQT:Ԭ A~sYgyc]*7'A.#bt.,mwJ#GD=CfϺoH#F(nۖuEq3V 3[ȵZSmY|rvGU?Wnrʼn {*fKRe endstream endobj 2236 0 obj << /Length 2183 /Filter /FlateDecode >> stream xڽXYsܸ~ׯ`88HʃlKDj[=!$!<4v Af\>>ͯn I@ҋEH«wxa}oWGo΢IzkO2Ophy_o9dH$ނQCsklT&KdGARmH t]>  mcJEO3Bb#@IH"zHy. G,TN׭kM|QҬJKDdkCU2$ަv~W+Yݦ {N3١~i u5k'!N3:H#Ҭ֘ S`tCS!w[D.Ob LqDDEW; YP1ֺ>T ZUNi`m򱔑by[4OKA%/W.N*7άUK 6Ҷ,Y}Xu@)$ZD9!InT'(ȾCrͥeYu56,/1=)[rB?k-buzyqqk?Nf^yv7/y~j7\ͯ7{}!+x`;gR'':  cƌBݫ,1lͱßv}ٕkW}U7 = F愕~VpmA]=9P`Ժ `͠!p/@ܤ[nty؎o)ߴc0'b㞀2ǔaPD yLhFK a JB3{8uu$#L-c# >w8ȣ %+"A{),۟ AG`Cf($أ!q >Dad=1 Kbb*+0'18U%81xw[x΂ /[FҤ^aMç [Z0{,UAMcW+,~qn,۾,"#׍e. ~ڋ?wAՉ'ﺄ PtoD!"JHf DuN;3$&7_ۣk;,҅14ύjoW|G T46G>.2_]U؃z{֙*}ZZL 709I> k^"Pe;>: endstream endobj 2240 0 obj << /Length 1255 /Filter /FlateDecode >> stream xW[S6~_ygXE˒yMаt<[^T|!.8i;iIG$0D 8Q,UA|a`9( E h F.cQ AvLc9#ˡL 3L)C FX;ae 9 9PݙLO"w7S*9I4a9?8" ,vLzJCL`˸拈pY8?knv]C#º֑50)IRdyPPDѡL}/4u3Su5_@,Qx~*lr8l&͈ ]SFXrBx“WmnNe\T  X<L),qI-Ҷן02uUcYj<1 ?t|vh7 S,7-7b`Wl;"xT5$ܕ)( WJ9Zp_j2bWMi02Ne^P*$jy9rҠT@YqŝB-9E7WPvA1f2 ~k>Lam܍2TQL:ۺt'UTE]͠Fˌ؎LLW@R f? }D "F[ך# %Sߚy L M@w6gPiQЭyf~}Ku fblXcEEGk'A҉)ӳe#Aaj=YmMAoV=t^gUކDžӫ, ٯV_PSX5~x5MGu/\{TV&t^@1X ՠؠJD|*}[Hfm@;ȁM ͱ8A;;vH3JQ|/ܶ|O$<31  LYܘ2T{$;T[]v66:4ق` E0b 7^ﯵ[rDGʦljn),UfilIh[tþGM 0466͵6$ bw[G]|nMtw&x;;:M?nwʱ waOw}Zgj:۵4OjCvC[u79QԖeڪU٧C̷,!ueϻ&ׅVDn^oO'F,f(s endstream endobj 2172 0 obj << /Type /ObjStm /N 100 /First 927 /Length 1457 /Filter /FlateDecode >> stream xڵXn7+9CV Hsh$BQ ҿ:vj*˔|pvS.ĥr5H6qH6v5Ev)Rō0$qi:SӚpOtAq5Y\ 3  bdDGs%Y\X`,$511oR' Qq(b+lA!GQFBŇM>"Z"E6*bfmT J UXv bVvTy_8 PSnȦ \dR;f5|uANM lj`n 5P-5/U#PT_in` DI6z~@?FȬF+ hHD0PL %Ͳ}GeƪF7{HRZP}e]2l0q[Ib-,MҬEr#A1!Xm 2'kP69HVft |L,FfQ5k hA!"Rqn,~ܕcJ{kϿ\FD}ӻ݋'<N:-1N}>o3Y]gu2՗>7]iuBsg/jU3ZȏiQs-tP kFx<&`ցvrlX1OނAudsCv.byy<=njd]r)( $A; ni?ntJi2.HD S ^fY0uu eu;}3۹?&]-D3,XX{cE:PD@U:0> stream xX[SH~W1Ԑݱj\DF@y@hX$!qj *:Sea;_>WLsd?+$*\ ̥AnAO9 A4a$$*Dp+"p<3wyފ-x0/qdfZC1):un5_Y;{Wő{-ߡ X;)<fݑǼ[g=~+0@ihn1dVXwEM8,;9sl8kDWc,!?SnId>[P#bM¤H(][8V ; bE ǡ(_âaѷcէ_fRxiʷa?MOr9*.0ݴ-h\ZCU+`"0o*(ঝހ(Mk5J Jn;>(0jEp`Lh'U]%@UۀͲ}/UDݛZ3gzew4\L\80 cHu7y9D 9Hk$u63m#CgbfHhƯ>?w?.Eg%PSz[w0H2IGI)}* C?EG,xM)OFv3L]d rof "n7 IG^.okYˇH%tp,P[ K.p?~BV$".,1XCB!<#bW;f12U[f 4; endstream endobj 2249 0 obj << /Length 2121 /Filter /FlateDecode >> stream xڵXr۶}WX'7[MZʙ}$bM үH26s7u -*/(KX$i2bS5ʻ~> @x߽ͅL=,ȸ7%"0`WޯUHD^m:}Ox"=ѪGSoD"'?)Ka]_^/?}|k Yj߁*N$ZŪPZXskUus4.yi)u-uq_SOv7Vv=~=7uӨ/;U-Ngds+/fs*Wj+yCaTeozc͍ABg W&E']ԟ-bs{RF?9A6N2QGufI@ D_F#.dZ6^@/&@yH8xר\E^mOP.+Ru6k=Z{R},UrSpiSQ&_@ 颮3I-N$0[*ңQMYoPgcS/J^b^L!o32#ȼREV!ߎt~儛=@*Bi-7'x+C jPf'?R=YEL"瞄I!zUBTEB v~01ˏ9ՌwjM U ЃQL^au+g]wcUy׫7>c)j)<>% 8D[~ox1H:[6 !r/n;¬LEu(t^]׻s>b(BM}3o6Lh-,Ϸ:RW;%kg[N0_&+ tC'łYuՇ~vҀU"{i|YJMUdjMڛ*آDҍ ANVcF (U) tHG3;~/714{F=I6BBvƛ.KFaGaH1_E ~,xX#Y].풺ѩk6G5jTIDky=l$=(k}#d`9%h""LX4Ԑh0bC9T̴ $Dᘩqȹ I iCad8:*n̸Z-xLێqFÖh(D_VV@R{ׇY:/i^ۧiQ(ą+I9T.EӋXp0ͨ Kc9dK$?l#si* ::LrEuJʋ*,Ch0/\W2vwSl_=>-y6O#y(ًҨ=0=31SnFm|f,JA%d +xJ$,)M]EN:glrѮʺz<>:".xd*?Ң^h[E]'"F~ſCTEjfƉ_4B+ckT,괿ۢ `3^;׹mƓwo#Z',ʞCF.SM+mQ)*KFb QaXyf6b{($IHrB gLSҎq7C|ФAzXܰ1nPcU)ަð #- FU/%xgtfv r|m*`zNZN @=V$nAr?}^?c,;=6_#G}aEYnW. ѥ#"1@n2Aқؾpz_{QNjý61O c@:J65$w=Av}){PY:bw w@\ƕ='1d"#;d) QBzby2'W yp3xW8yjH (Rv[TWR:J<ڄ{⻷n,7JyLJωFPshIPXz |}7pPsz>ՙDh,*]|CHq}g+)2' _ endstream endobj 2254 0 obj << /Length 1809 /Filter /FlateDecode >> stream xX[W8~W9U]m=}h tZ}0 &6cݒ8(@!hh>G$˨0 !3E y*y$zAG/>sV$MQ(c 4.M/A"_U7 ŘXWAG@B\Y&͊Yz=ye5uWQm旾Vmh{G{ EF4.> XĔy,w"$MΈ]Z`@^&7z1HXf]3.q9+J( }r z10v@ـсYݦG7)PF(ɌYMmwݢ ؐpj n7kݤjUhIãw; h0ЈunU9РESW{VrCHwOj`vћc#nl[zh;xg]c O!.3⑱ۛJwspz&ar`q,.*z|pȐ Hdb%)22 R42(Y&qS<z& LK3/aѥ\R sg`#T"Ed1n2sߘ.9Ji}\ *CT+0aӄ |.ul d1`W(hh}) ND]254!ih.(']}BJWn| q."%`D@\{#b*5ߓxED)Ӡ$,^PB1yJa',aIu T`N]_4}pPH7D'xaFg`j-6L 0KAzg{ [`3ͱؖlFڙZ9vas(1̉jGrpXs^" 8 pYSOA7,2/e  "pg rꉻFS%,v氱6˜kՙr};i:{lg@)!`GCт}W8@-`:~ұyc!CeR?Hޜ.('c'(%[8 ӃT-̠L93Qi Uˡ OZV,TE f,@̲ BN VL'ɀBqxDP #Al )ao =6bn'dw=@MSp$!C}v!oR?,ݠ$bZ3g3,t =Fo긞r;,o*>"=دvDue{8'pӻh\|73;B|APܚJݝE6?C6qosWbSuIvReS<\6uIִDfd6<cb, G[,ЭG ONNwsHሽY٣n˯^e7IKw/ȧcC{eh^h;b/^P5;;csߜ쾙nov]%> stream xڵYKs6WHM#OLֱN$mN%R$.ʤ YrL&c\B"]QQRMFGF*BebdUBD,]EZu% ۸[*^eVVWQ2Kz/U\!*+mO.~pH8lw-NX{㥮(jmY]/-> Xk,l}3&m]oͿ#c22xvSzar(Eڬ-ʿ_R붩We>J㬚Bz-Q>Le{5/u٢}Xh75 ,0` 3_uUnUΕb\QڀVcB82#MRM]pC$He>9,0Ca^wM2xym ݇T_\<\te8;j}4Y@΂]m 8І;j^~,督X;l%̡Ai*@գ‚$-^ uK!TbDJ匣> f nrT?xccD}"ϠL)0LH<lvLDNj|| ;̒ An MvHn8 UcvbHoAk9d/ ¡H"oq]DM K {K cL*mqHZBfS=P9 :I=9I5Џ"h yHmӄO٭(ߗ`ChbQ&Bb IYC)*Hpy`CS.: (>rBF>M;,'t4[ڃѧ)ezqhG2*|Nx NEmGm6|lUCpy'-4A8w Oo꺘B"7bX{>r|2xDeQ k[/ ?]<"́kC`X;wMF[Dڪ6rԭ@;~aˬix⇜:E8:?NQ@YyOslS8&&fҍrlﭱ2gT)],fph<7́Og% L8= *qЩSÎi /q/D}Ijp>*(p aX` KM(sbBO $T㋥&^Ӄ*TL?Xp@bX 4Nb_o}:0ܘq$j@=K10K^OYzN@i^Q)}if%͞Fc0/0Cpz)vJwȦ ^;$gmab1rwv> stream xڭYYsD~оc!،g6AZm+F-IɬC-NK̬Ioh>i CW^Rm:Py|R-<WݻʦvGE%ZWw pdb6P^ۦ Fl ʌM yCIGCb̤#w5<;A2\r6E3tΘ=. ~c3c|.9gY*H93FSǧaIvVΦŮc ۹%[m:0p +,hwj/K¹lwA&XW [8-: рTR4l(h]Ik+J QmP_E1 zjqסr諾}y`7tl6$va@V9Y27xdzUUX0nc:&>;]t]逯v9(aCu85/;ܘ9#\zqyp:]\]xO>>k{D<|1{ ߼we! Ӏ nnң/Wݾ/=G8 q҃$@@çՋ.ϱƊ:={[M &eBEZ |~:[XEn+<9šf;_ђOPk ŏ0[$ ǥPo(:bHp/6m|YPl+jyTܹ?QmhfWKD zoc*ֳ; 9FTW3A[ێPT- [8ֵvK׽Ax?Xd?-|}̈́--ĭO,YT߈3/;7(ƍcܒ endstream endobj 2266 0 obj << /Length 1135 /Filter /FlateDecode >> stream xV[o6~$bx%*{RK&ilSdCIYw(R,l6sD oQDcAb# LHH+D& zYH'Gg!ED%9 ы1~@)K?~%̛^gE@bl2!`AO'$;Ag:?Lg7gމϤw:;6^r׋1Q[OZe%7.:3O[d: Gx׷m D*wDZwrs~C$ =OԱ] x+ezWfv0w7uz~uylQ*$7uB\zݽҺVfn@r@g|; c  cDb3WV3^8Z7mj0~K هyZZ (c ܫ}{O Z-,^ewrV/nu2m*ˍvZE;`><%L`j>PK{yzu=E,أfHkC\>uZd װm֋woFÄD IH|D_ y"UB`-| G,PS2RS_~O?!stYZ@O5Umɳr}S(ʶ\d1TaʸˎMmyF]O[ϭooG 0KS'^:2K`2$ _p&8)LU}EF !bnVE:6R7 gj`PE;пFkծl@9wýCb͛ ;Ob}nm;3 '4gO%$&Fgd$G-PG}9ᛈdml_=}.m;b%&y|Jh0!:-r0]&U>Ĩ6}@!|h+I)K@ "C endstream endobj 2270 0 obj << /Length 1180 /Filter /FlateDecode >> stream xW[sF~ׯ %>(؎%Ӊ 3"R{v$xҗF|ߞ;1Cqa \2 ?S70F!X#y0i4Prp8;2-}Ql[Q 8-lx&Q->CnՉmV*FU5iYD-D 4v%LYm%a, ,.u&^5yh ".[؇=:i} J'~:?].fK_G8 ̶ LisF ĵ)oDR/Y3ۓ>|(Ybs.U&-b;PBX+nlW%Z1{L; C2HS帀OࡨQ t- 9D h` Łjkѫ_91lGȓZ[?Zu'X U}b0!s!FO~Cj!]I`9i̘Os*yI%2iZ!2Ѷ#|f^nX42Y1ˢU{ӫS+`汌lU, rB$hή"YiN{mh=r[W[W=qaz><ΛeQ0sYf1,F^; >*ũCL]m`k/lҹ endstream endobj 2274 0 obj << /Length 1725 /Filter /FlateDecode >> stream xXYoF~`ߨV.]@8S$ql@䁖(H<A֭( 7#5? XHɐ#F2[zo00bYiviH Z%IU6Xyg,&%MڬT\bMzV]v1^}W} MY}lȅNYeIR5i[1/Y4;TiR$SvUr2oqGF>{N濥ݮםw`KR\H8˲GF!VgvdGn-nM,-:-: ZQ7 uR6N%v|W,^\^:6irT K>IHwD~]6cs&6m#hSWp}j>ZPJz*$P6όȟ'&"pYF>.ӦS+k๮Z[$< 1.V~gQ(xaتP;lA@gyb5]3]VB\Q䫴3ԕ|gΊkC&uU- yv].[ՍSb\u!IVvٔy[慣txiFzNUCHd`&%gf¼XV` H!Y) s 9 p覥[`ݢ[MZ:3ƬX9z:6&rȊym,d"#8Z9(0H°$;@~]i ]G<c+Q(y46#bb1p%0Fm\VG\x!c00{rޢ>HUHGq(Mc s _ [((Ǿ#޾XaLd!\ Lri֋_.D4irGM7޼L A1!COΎnuaa 3fʽ)ˣ7܌1{3Z&Nd ɯu2rJjfXjxo!ן.*_ad9d].w;n(yj2etYeݜ߃i+=$ :=AQ8N¥3FXg7߸ڛIA"S܇;V6{ɴm%eEES}`Hu/}=t|߫uC J8[HT>,TtSo%s0;|L!LEa؟VGS0oXf&0VaVn<4d۔܁_Q:UTe`8/"rt#䗜PYPgKAzG~p0*i{ W@XݩRMna3V26(^MEh*Ew%.=ѰMK]a:Pp'}ecx㤽ٍlO}S+;> stream xXS6~B}`LLKgڐ>9OFMr)N },i8LING`p7!{ '#jRR g /9GF߬ `\ǖEXJfH)frfbR I+Zi'";8+Ǥ#['(fnpar|u2<83ؓzqׅ+PsH࿅!_L*ەf,ʽن]Dqm`Q4ٿ4+up9V*8:| _Ƙi؁27.ʽlyVw(Rb6ee,@vcȽ=>:]|8pQH0ܲWY85E)*_!l)ugcigMmʷ(^1y$zN?CG*haLLoOl.ioE8B@0d5X*+7YVnn"h &t J"ZǠpe SxATԨ7םyvXbs|I|xPttP\3ϔ3< K`ePYrH2JE*290u:qꍲM'qitNva-*&QT3/N$)Ҷ iH ʃ7Us^$Mڻ wzLdљY_-;x}y852h:0դ^5Y4 st&mW&".t=-R7]-@mm~<9Vv܃f+&`x B endstream endobj 2283 0 obj << /Length 1602 /Filter /FlateDecode >> stream xWKs6W(M% HtۃحiJg:iIRv_Ń)ӎҦ3b.@⌡i#%i(7'qs78yvq,V F1ҢM 霐0I$\9ef٨%w닲yq2 d~p'e8#F4Dq9QӔNΦa:y~~j.=P4N\bBCDǩnnlt)@4_Nq-Y5jfwjwVkྌW.]])cSsSpSrcU7MK\mtFvSct)fUk<{σ0 ;qX7Ub+\fV|Rh1AC9}ȡLEW^87n>Fw4u,,ǔ;P~'5x*7 ֟<xWXCm=oX6yUk M!%=wF]$>nVKT)IY3HaՂ+nhջN4'}2Wyu7"w]zdm.\˽:t>VK^<|zu.ɰ ̛tQQ4[Vϒ{n]MCDn恡A҉Su9cvmɱedؔ^j;HPnE%~T"qyc7Xfg'Wn3h6j+&>!̾L{6f{W5*lIPZ􈭰76Jz{KĽԥ4m6=1l)a 0p%M0"#M<܍g ? 8B!7}LQ3f;/(cؒAZ0Gr"X3UH VRlqk! pj1jˍ/}B_2-i %i7JzE[cxA!xL~AQFgZR^{u c]H)EQX[;F\vTqiw`K_ .0J t4l# vN%_]ebU8 =2a'P 9Tyi"@#Fa+qVSݗ>`1qۿC=*9*:IУZ*G\p F8PzF:iԣNj< )O&[AɀW4'%>3/7?A#x}$8ڿ^ⱧYQ,?*)w37ZjL(ɇb[yb0SL{RmTɛGz0iӳAO_)|[EsdnB!_C߬ʏ3xTg;ަ q_'ҧ|vL#?a -~E7=?h^z8Islќ\IJz'Eܸ{b36ulpo endstream endobj 2287 0 obj << /Length 1676 /Filter /FlateDecode >> stream xW[s8~ϯO @>d8Mwڴ3;mm&\.N;G:C>t|87Z+a< ]NBZq@0tD@XYY5_Z|a}oN/?/>O߽Qޗ'.|1qZ2Ood׸Nvx.Cjwbu_e5&1K>0/nnShE&T{$k%q7K'͕`-KCi7<E2t?>PDzGm(ʪݥ|EUmv(~4jA I%J&ꗸNl"|( 2z֍+ o8E EDềCY};n"47U) ݦIs%)𹉳BT!AEaRz6'`<'̞SW-Y+kъ\G$`]3($ZBܷ|7_'F|׋܏anu%av9T38'OӋ:}$z';!#h%A;M\mnW#nL{lg7$˥LjYTq뺄l H@n EA#2?BzW% Et| UmH5(+B"FAoE]N;{Xl[jАL5P7#kbnV}ݤCɻ(2h aPqf]qyC Q_]'ܣ)y΃V1<qQVW*fe'RS[e$h |~!N !Iv+TfPƺ9ӜQsLsH+H-0CRT,_{l!B)2>K7XH2v/^/?ϯl9Q?=zqT5we* iFtwLj/wݷj'nLഓ72ȒA $ `ͯB qc(o;Uj 5ζHs5 J)lȕ,[;Q6p7 x.JPqqY*kR%\H :) )gn@vM;$ٶ%xhFYQftWrjͨE"cAo()?^gLN0|H7=m1r)K }4x$ئ*tay:ȣ-< sc:R*H&C뽟4Fw/1G~hykES ÏXc׭3 א ڢ,t \ɪ]Md"ݜhȝOq%qWj"iPKi!՜,^WwE6pݠc1=bܣۺuy”XhdOXJS9ښdƺ0'QRvT UZ_mTSeYj!dDeD|]ATR}H\zҬnuPYQ2z5(bmjX,Z(&SƜx#z8sxenF1hܶe%RgK[+aoêsOp1\l endstream endobj 2291 0 obj << /Length 1617 /Filter /FlateDecode >> stream xWOFO-]!HI5QΉ?._g}ĥ4 [fk k?[fu6p0#: {yr{?x 8y,U`e`g.-V㋃٧ūo.h7i6KDIgs#MXT"J"{^㋣go0;-qLuZmVʟMyڴD"k_g҅`9ެ%`SW9|t5 ׷MxM[o B1 QN- +\/JaU%rTNv1pj,ٸy6Lion&5ّy5}'gZe[^9ÆkGUpB~0FcT De_xi-&'m<5mP ' nJ:JM˴5US3K U21* /AF`J;`@\P ѷh`G>NGqm;Z)幼8;= ݀Ft&LBMs E\%~:AX ,w m3c^X6ģ;J@os endstream endobj 2295 0 obj << /Length 1778 /Filter /FlateDecode >> stream xX[s8~;ICZ6,҄aypb%K~ϑNM̾0 ё|tO6WyEiB"aDhkޞQ`ދo/Ξ\c4eb% Ix%%Z{4_y%쟲Da:³ScinUO#ssBf1{saQBSaٯTin%Vu+dfZn,e(}٪9N 3S͝ni7?4Zt2LT8 ,EAÕI<(Qg*Ԓiȹa7 !ڝ`uݔVa- x <  , 5<1P)\r>v\ f#׿c?pw;~^kĄDfGQGQ1')xO;/&B8Q$Gg*]dmNAӡYo^u3qL(~Uo2F(Iq;@k&MZfVReU>i̔0=ySީj"2S69'Hڎ,12dC芠[g?P/u?h -}r/sguRW.l%8*$P몓!{u33zhX9Q2vc:5?Q]bN endstream endobj 2299 0 obj << /Length 1666 /Filter /FlateDecode >> stream xXn6}WQ )eة iEykXI J6$) A .9П"]Qqi,2J3RFAVGO΅g9EFYe3 V}|^֛x!4o, }[Zw781 -M_^-t3[}S67=^+F}CۋE|c[vЙ57Q+8BHUN'xd-j=L|6i-nWf2v7- n \eE S.zZ/ҫ.  |w`ڢMN| wUqѶ4=9WfhLd 8WuՓܼ Rb`_@Rz%ٝ"C\C ~2@[+ 7Ib Bg̈y8|II5yq*ddPLn؆ @C ܱ [/anpi ƭS͔V@ IB2gɤ0!,5>ː&R Jۻ aD:TJx@=>Ne|QSLRe7_\FKp՟L"c9(8##">FJaGkN N<[WeMv[:6)z)W J\`u=;;<ϛBR`fsBE5G7˞:j[SWE=NۥσCC?F8VVږvs4-Tc odeʳ2 sR*{[b'1x/ endstream endobj 2304 0 obj << /Length 3376 /Filter /FlateDecode >> stream x[ݓ۶B `<}hR:]'yI;:y(;~] tŹi.b?~Xftv_ΪY dL3#$I2bg)7gO_tFS]^4i .x~/5~BaKI4ӳQ%wM[lc4rH")R<}sDookC 4I3ȿy¥)9:g@ӔW۶Mf\YfrwMY-ʻU0ol~mYݸ&uT9dbn.Vv*J)w؃M/M6nM*lErŪXMiNn0eGz]gk^Cu&UZcn /ELcA肛孕wJ b]l_:Ź~'bMb?臂a &2=2)Ul̯ 2uuu]Ųp,eh4b؉F9^9vk,* VXpÙyU=NтF&U''߉ ^\^Ɋ|mW5¢nXLoTPa Mݶl%d)ͦ )Y=f59ϰtL{^XU[ofП](U?^3:%HYUF&]*nPFRWl[#˛,m]ַUrq=5J{CP|3L6ذÿw4L4tCŵļ ـ QVlzߛYS;fà@&L(󆤔q^DxdXw?DӱHzL@{"Slƈ (Nӭ"C** 3D ?]z:δV;N$sPl1eT'-c?Lc!`%x7M+IRtC}7X72΢SܒH5\C"`GE#"&4-c98XG%M2qIinqKldb7¾SѬ#B6Di"YܺQaEE c$m7Vdb@]wc=+ L"Ԇ@62xpaX0a +ѻe GWSE:|  l$)_0Nyu[ ARU47]v7|Y8L,_ZWRp0dv1 0 f@Zt 0zX966)az( 0YzZ1QZM[_X"UXʕ{*_g{uX Q=[wsF,al>0Q1n>qxU剱K0,h{/SƟEaSt=dxz`y\ۃea$H+cqc=_Ƣe6*~\q TCX Szk% c-3XQFȁ4ag/ޝQ3,fϿ%_B%]dD3X.~pBu}0̪ J!#ޤ6q5nc`p)qL%@{)G-, AY8-HqdýX{)$钋8M(&伈 ( vR SP=?ܺ|фamzA4 n:9l/}%1$f[aFM̞UI*Bhψg$r>dq)0ϺvU׹ϲ w@mέV1<'ݴD\()B*i]ppf?} t1tW8;Z#:'(U}X4S0# ʣb|4Y]P  L%ۿ)rQD@^U!JU;D8ju?(Gid %t^WW2}u \8\ C|ԥnX-*ٝ曨PMU:|D'^}ٙ픁 XF\y~5p'ԚyHlk ^BlU΋ e^FB~\6Q;1*4mg1%܋m4;cFu I6'}&g$jɟ}H1F z[#>)"gA#㞟r|_d? z|zD X4 endstream endobj 2308 0 obj << /Length 1629 /Filter /FlateDecode >> stream xXYsH~ϯУ]D\Ҍ$$l Gl Kc[Y2Eo!YJPOO_G ÿ (B OaJU[z0bU7#E8"| QarV~~~YQPbKAOH`Cc( "K[( i )#~Q nm&tR,R4kﲲs-)>0T1Ůdr80jeZ I< !rTGZ#Dxo/k4+3}*[:l(rOy#g!`CbVc$iq^|2Sp1>fv4@ w7y G% Yؒ A2R0' D5Tշ_\2.^"cE #Z"Y68Fz%=@)=RH-KyyGll#}>ޑ'br;TSh0yM\} 18~ 1~}mlr]dև6,DAEX^|p:?|@L CN$l>|^ bn L"fm#ߖtae@,h%p`ea lY#cGnżE0P${T q'ʑnEzּ֢f{YB1VjL"&daK񘆁VGu1*B _~+<V(`U.Dȁpi>+DȾ޻4]փ>e쾇ݰǎM+d3Pn" endstream endobj 2312 0 obj << /Length 1116 /Filter /FlateDecode >> stream xW[s6~#؊. o:m.ktvA01咬}8%ݤi'A:󝋾!#?7%w\LwPP>M(prt0%`)gTV=sk]2z0KFkV_K.~=y86->C\p(|JP GϭVFɧEuFNl[6Ìł 4c5iJerV5wei52g| Ⱦ_.nnã[7rWoaYcdw4"1O>i^Myߛ|RWՅynTe8i>^}:c5 ؃&.dh3iN^ro 4Kֻ\|mfIs6_.7؜A1IЩ/t(ؓ̈́=YK ZZejS++i[,2KdZxlzcZԕe^ vm1N*UE'biimpe- A^{snaqǪIJ؞9cFX*[a ˲;fzSB*ƯIh9},V_6fT^LpŴ~dΎiiͣ1( +ɏw[d:|tM|O5U7"$taIo3vhQQFC2= Z}ؙ&{ǡݢj Wmd)3ێߡ<8 {,p ہN dݕ&T*> stream xXs6 ~_GfM*w{HSK.AeG$\"e[:YrL0_uP~DJ@s040r|⌓ A,P4P #c>!TK$iDw#ϔ?aGz9I,/0A}yqF1>#Kgb<E'lz0m-)>HjZInԍ0prReҭ.12٪򤸞&O%޶0Uj=)"Jă0$C鬪nxa݇1< CBR|T#dqTGֱm:ҕ]T&e/+t.ېSoDVWRy'yU]EKWb9M>GyRneR偞7T;HLiZf.W7]W E$u/űD 4'21aucN0!Nj+.w8zՀ3Xv:o"C(hX<+QL4qqLb@xys2 aͭ^ͼ/Ƣ+/^=b+Ce H\y]UE]LYj4']ͼ{Mgi*1Mc0G?` h:k3<Y@uguyR7V?V*#^N{9W^G^\=)i6_d(:m9zX(ZEk.yVi~FU,W ' :L?a"oq!6f~Q r3᭥E.RƀJb$3h|-R5uqvH,"ֻl`kSǏ𿫊@6Q&HkSHrGf=e}q=1L ,^G""ޘR~e*'G#!u7V3SHOY| 1/U:Fj)ކ..lQ@?p:> stream xV[SF~[kJQb(m:I Q Yd,*!̴!]=\;Yߩ9@! Shg|abtp‰C b((KUG:1#n5f[L +xE$NKcv;w*p->QQb `c Xgd3hL}xzh. wr< =3qH.\F,Z>E=F.nWmV4x&TcVqQVvԪT:ʳ޺^ď@m2C+]ڌՋqwDi9%]\Bi F8_to$ ޭ8[u_Za΋I3!$5ߤI=׷U?~YMDO.\V۬f]V,dY;EuWmrU@3'4)6$ ){wAq endstream endobj 2324 0 obj << /Length 2116 /Filter /FlateDecode >> stream xڽYKsW 7b{WؒVvvkrZ""jACr_O @9J$ F$ߛ0T!U Lxh|AG7gY]|w͓`DMRTEa$@*~V_.wYQ]!S.7Zѩ"AjOO?vsdء ۹ѕnN xKW"Mb]庺A^>^wuTy"+_9|,%)ېs)$`"6∂f/ԅ0tr6zv𳺟Z=/M*w;DV!L!syTq׷W}B~Y @`Tx5. 5_&~M4νܥ}q-,$%$ Gc'3.Z^cG X<4ںea,~,}-=trv'܀O}zJ8B$E FN/YǧI$~t-A`GHTO +PN*Ę& ^W2(RH0ؔQ4TLd); CC✡A 3QJ MlCڌ%99)[LMR6nrXD f,@.V_/A$ F$Vhw LFVn (V0(Ͼ @\)Cy3|&/T_@6HbsaO̠l 9Ӱ $SΝghAB" op8Lq :;Xa4G 0o"塈g  V$$fv&#2ǂAJ0f P[j 5ږD2;Ml'=j7*PݭM 3 &xU>Գ4l'o`v\psE^*ibbVf}p%ԐzIʽ5:wex,{b e%!@߸jKCx@*S4p!l X3F6*P)TqY ܨOj}Efi0sOw)nv (&ԍ Dn)n;~bSU}¥Wf.{k}לSA˄J,zنO;`m=wN_Wo7.϶mW'3xӯfnF<.Tm ׼;'5K[6GS:+ƍ ]P]ҕ_&K {ks >3Ι;nso"'7uSS4Iyg :aftaԗYSETߚVtH\X>knmlm'm8+7MT qSm潘ǐ3 |lBY(,p/@j(r'@ZBER3Gd䛜0MD}^ u˟y͕Zjaź 'r(̉ SZ⨲s^ $ Elp$ kd%GJ™=vڧ K͠pMfYhDl![MK&zwℜG+|2}8Pf}+ʮܧ'x`57nն.0q%->)4nxGߗh2ہdb\ )$Jx<'Sy7fy&lMZl :ނw2W(2CVsYWs ̼haϭ~?eؼҲ70%Ihjc0o9 endstream endobj 2329 0 obj << /Length 1986 /Filter /FlateDecode >> stream xXr6}WSDp\]iVz05Cy@C\nJ5"FAOX~IPS!k+R[erpFa M.?g_<,aJd}AImKjT1weU&JPEݔy/2E8Fկ_< WI&8E._ϯH]q>=>Pts)n$/޶W5(f; 4f)>C=4CQ1c>;~zu'~S'PqCh(-[eߕiwhV`;eHe[u}Ǧ2iUP-Eލo;MďiZ@h *Q~@7:M Ӵ`y`#t^ 81*8Jy0C̰DZY!lnƑpPD3paucm-ñIJߌ}p#"}}59GO$y"⮌` ygӫ0R@TʍN sp-"(=QB%ٞޟ1LX¥%¬'/d 2"aoCh|rYɕ T\ a1?`|]F Ό&B4f /,vh9ai-b K<ٌWg|aGi^, 'a"1M rd7 Ϙ  cƤv:7h~'^@,$NâV:y*r!@&2& l1Z̓I N` u0 Ԇ?`x8ɋ8ј{zB\ݕmSIJ<ոf2n3&,2#ǵOD 2,mnIQmaӎޓR BrALͣ(1S2IEFB8? J~t3#65*\RchWOaL8S>/0("fEwԏ`F&{@wt%H>'Y2*©:+/_W~\.\mY9K^PN-t/),@?7:'r;9)}P&Mge-Uq2׈aՌo(tVJcT { W bA#={A|d?+b?rCu)OeaN('bgp Pd1B4၀k^m'bcXoy/] 3o(89Jmi0O_X[[a{lsB;x뙨+=kq :s Xd4b@` ڀuT :%;'B2(MƦB XugGC`w6þ\KA RHoe ΫP/`yڕ=6,nfdLiPh@d& 6N\'886/㺓"3_O)D۲{<؛m> stream xY6 W <)ȡ V Hsh@- }h2C[EGJLSASJ()q B΁L]hRRPA"yt#HJVWP1 Z8KCG{!1KpqK 50z&,$M!(~"&HR%79pMu ch$$,dh(ѠJGRܾqH$1!r`J>$qWCa`GTZn 4 UjNk 6):H#p/c}drBnCA 014P);UhBJmcاT>WH^ "!@p5H#/*)N?G Rz2J q0pT<>b6HYAr> ]hWG!j`Q#_N>AcQAhEsu2i祺$@AX8_83SvWW)Z_[Pˇ^8 ysV뛏*쯁Or.'6´x%o1a˝ χ6_77}@û?/9͗OVO?z6T|C 1޻O0xU}7z V1)ƒx ^fד"> —9C6şFv 4v%[:- d,X6ZF'̴?i5’ƾa>=zCqL b)IVEKڣ`_J4t;MI<lڛaᓛіcVtkCzQ/ܮz= UgNs(YTQ <ռXl祳նQe{8_#s5"SE)Zk~Ǟ,=/T&L!jBBT}+\笒 ^pLNfY*|RIY9d(/q3zmnv­<ŤyS^[>a}ZȻG44CSLS}45zwgMt^1JxVN(l+Kuԙiɪ *&@="7G X[&^sZ]hMrd^/eL/ۙ v endstream endobj 2334 0 obj << /Length 1338 /Filter /FlateDecode >> stream xڽVS8D,Q:4qncD?lPq&hZ9Ĺ߹S;X"(t"!HΗ Aa(1q ='1W7{En c͔ie8m4m:^OaDZim5Vm;7L|^A5|b>nc9RtKfY?~O.91b٣6OҞhSHj}ojP+%:t{hg&hwnE'x;l;.+Qh6BJ?@cM%DM=]cX7R%k+-Ov Kddw`̏F,M5J杏 s#^lme xK+gNo[QmKG{wVYgr~^Էw'dVS!HT7RJ)*}zjg27)1xh].~X]|2?\?şw:1b՝ y=JQØf),dcJr@vتз3C_5r<U>Y$ ub='&_c'> @4-U9>`-)p>qA1c-p,ln o{chp^fDɏ"V 1PDLыda uu endstream endobj 2338 0 obj << /Length 2110 /Filter /FlateDecode >> stream xYms6_oGD(ɇƵsNgkfmh %Z7 ۤw$gm’%'/5ɨ6:12#T*#Ln(ifg_]I0JrdvhM4׉dP4[$ݮ=ɜ $cūϮ#w0 ׄal};Hfm?6}l ,[ ϋz2T}kxu?g)Yl;`jn܈{w)<&1n'oa7e=W@|"Hu=}'Ga=)7D pW^E[م7mUKNW7mWrSݴ U[lnGm5CYt9;۞1,[0a>W,I)8~dzCK0F,./$&2G`7o9F{MKUװ^74H!7_._]ٸ~c#uq8Yuo1jSu&;}h8MwfWM_jB?^^˴uX!;ZjhQWK,$ )"0-[GZF:~ qwET@ID(b k2ct%1H8R| MPLo2cyYT]» k=1 ga/-oqs}Z̈M(\ʅn,V#C+o[GUqjgGy C> t!%jYb8{[m]J~XX~P:(OH^Bj&B%G@TC.Y6=؀[HO0elAno6ut.ͦ$gmjVd1Aگrf]+u XTy[X^C6igPI'a[$T Ю^FVHl㹚Al Tpk>]Pu4{3oַ;jwEn8^vuVX\4]Q,71UgvO~#~~l\J8.lmҧ.Eѐ UƼFѢ@~ [z>'Tɓ?kXW06Ӎ 6B~.tpA{L5 ¡]qUj,.bx،!(Kv8x,((8+ިMifg=( /eHmmPI2T<7j8F]OK*ݭ:Hx. evB:7uOA=l^G}EgPK,-߻S'v(P=}6[jTt>0ܨ'dްX hfunYF>㧁}d:=T蓃UYJF_-^tWO~a%c/V P {5{ endstream endobj 2343 0 obj << /Length 1417 /Filter /FlateDecode >> stream xڽXrH}W*0 yl%N,ey 0”(7= lɵBӧ{/GaP#ύQxۜo.!2>Of?vAr˕;ψeb|5ETz7eb>7&,\\L-NHO^Dk@IH1,'_~\ﯧ3/N`^/KVZ;av56Y "V6)Lf.x[g麈aLi+?CC h˧/˷w_04}\í+WnBZxcXSee#R!;O Pfs7Dp*Sˡdӂ+6.⪒IVF lǫHPσK/ s kkS{c5M xu|&?x?nެ{oZt,N%U:+3<+Dv'関R$OHPƠtNYJVXS`=*N)wU 0CNO?%@υO$2<FH!k̾/o?-o>^K.&a7e\ VBۃA!Nt"oYiqݑ)3W*̓IVnc}0 F; L(o UcQAS cf t+꺳B uFʸ{ آVكB}Y;:.ъo˻^ߴ \nd!=?ލ½(]<Q~l{b1n|~vpWTIuz7JN eSk4*3:/'?&eTOqSLjoH`Ldc+U.s`̍ẽpPsgXE^b/Z}(g@__1ݠjh+8#3l>_1C;pS])꩝ 2!qPwTit 2@QY6v0*ÀH@a$ncJi'ejRWQTAiR 5b{Vy lFxOZBU]^kA`?:P8.{rr8AנL$3}05n>8yǹImP 2.Ou[%c8:VG.ƕ;WChfG%ZF)'y/8&nhXdK܎t7rE/e5nGy]A)()ZFySeܱ)0 R挽DjTC͊(-fhS\(tN[ {+36do@;8nLN!}`'6J$́l|>[HԄ endstream endobj 2347 0 obj << /Length 1128 /Filter /FlateDecode >> stream xWKs6WHMLO>|sٕ;IL'Ɂ - 2|$ο %ёJmow?.V_dQb`/` 85ӛdv9>193~0QhH*FiK[mdʅ;ּ֝X҇)L^Od12" < Q2}A }R1/Bm=`zW)|̈S/<}:ћdS.OJ7w q`ng< p{gδTo,z;sH#ZMP׻TDFndS; endstream endobj 2351 0 obj << /Length 1423 /Filter /FlateDecode >> stream xWKo8W(J):m ,dʢKInKp(;vm.A!5GvgN0ԏYN>,rpF<ۯFO"pq8N2?yhqJԟ6E;4v?MUKA+Y3˜xrz9ss$yBF_&W,t/A^NQ聻kv_KAxykյmܝ* (|7LݛƺQM!kԃЏYfXϯ_y7{ Qoi^^@UI{Rc~;-+ѢQ mYZE׭M#Ve}P9$'>JRvE+U]TVa7QzGZEIVYV,U vi{L*jU{*{˗fNj!3js"]>_M[&Q6rw$.n1UC|[gUN 2hsXR}v ޙ@#O$~3̅ܭƜpIk1\RC H`<¾Ҵ2EY@+MOY +Bm ^C04aDqZҥhyy1% |> AI8`! $ Bd|J 5_ZcN?Pht0sl/B&`,=t招}K&7"\ȜC8QZ9c~{tX~ :"*?4 3㙨`YɃ)=-fdBK \el-VBՂ8H;% ò^Xnf5QN68ŴDMk}MhsG"q}uGBsk4O8\C N~jR(t^AlvC2!55U6Pp8pc vI'4 Fko.6Ӕ 185¢k.\5>[7Ct sYSVj2~R*d+LҌ5ܵkS(h}X`( ńeV^ =W=@`Qt>O s!&G-􀌴I^k1Ɉ;}VI?4oGc!̈:ӏ@?/6jU-z{F@QU&o,w 9(X85ςUBCSpô>} rB=F}K||'wE/PU+1\gZ~R;XC?Ǿ~Q& \Iãwg endstream endobj 2356 0 obj << /Length 1630 /Filter /FlateDecode >> stream xڭXKs6Wԑ&$A:vx86Ɂ  _!) HNN#~>X;kvrX G!s*鬜wzw}~sW q4_:'+zOd-2S >9*Tpqwhao^fGG ,20giH'GSNOm‘ h,bӨxk7_ZjneެK-g>7~v2{>Cn&ojK-+Y򧂞]\|~9'S!&GWGH(b!Y2\_(L Q*oZV2_m#;g8tfRRޚUUd`5!,ugbM 6ÌLL{=F*IQTKn@qoC7tIdJ^a[I|Ȫ.e85qJ~C0K3)2$kZq5ECޘFtu Qx=n@BnY&\6zs{ɼJٜCPCq0Аإ}NfWgf $GqlRzIs/e]9[#Pg5FõAa DqB A ԥ$(&+[;z2nIorYء7c|ba_pi=: v?y1m J /b՘ `+]6$ c:7@0Ӹ>spu}"دkGqU~-uhH:IB$$b3x4Zw(<.6gvJ^kPH;uqkہD่|̀hN|% BYF t>FXH;$ Iaئ;HB6!OFԂ}3a2h>aJe7&S(Ks=0&c0|֯_<ࠔK`:/z;*0_F3̞{j~3K^&:ƣ bIݝnŐc uga1c0;yq{83%Bz;2ЅC=4MF2)U-ӭlQʼnVuJTm*FɇICWݨACWT ՘I)STmd/RޜLJ3|7cdܪ>:i]@owJܟ0=YRL8 ʛk_`u&0DBN>͠28^?>ml>C[ކDoV?lެwmLwc,6fUlݝȪ ~SYQ=أ9rAS|Tl[kO:>z, \+{f37qe@cN ~6bQ2܅U(aW: D諸 ' )@EmV.s/_WjYz4\YPc|6m߻ܪ6V4mn~{'ߴ=3Άwl}l0? endstream endobj 2360 0 obj << /Length 2038 /Filter /FlateDecode >> stream xY[s6~J(./iItݝmݙIl%);ί߃EPtt<pw8|h GU)8(9qő*B}WqrvCD)Èevҭ/g~\]8ɽ@f\ٚAQ- Mɹ0]4u}n쏫R>v[ʼ~+qOMi4# 87@ajKgUf\[,a,EkdU[R,":_VrpJ2VJ&B+3Hpb8oYk,sc6e/ 6(c-%Zy->!$dѪfZdIhfᝎY/>JiA> YT c-E'䮬jmUXtu( Fz?X{;![Ѣp}`ꊁNO!G!n3˒nG٨庬N|ӗ;`U}wL#S]Œ}C#@2-4쥥Ph8/ŇCjK323skTZYQaOsH޻O$ޡ>lq1t0Yb[11dN/‹BನB8G^Mws0N*|N?#W6L3w/o^WfMipu0L$rVySK2f|5pL: 5y%{{C0enLl_£3L: g!A$%݂| g B%rSk/k6'Wsm=R$P ԡrjɢ5*Έ>\g#ݼ*!Jɭ+! ZE6$6Jc'Te't3> 76R*!D1W>ϷYv ;ڝjAbgB6Yʼ/i:yQD`tX~m?a%(6*q_߆@1v2J)֫2 1jŞ^`;q:Ƒ (ӈ7/y^RF#nlx$)KnʎHf2A`Uc8Ԗ+mA)gEG?3:YѱTs:swS>?9 $Kl08!ES;N|o!br_&lF<@IcW(UJ2.#]B:w f 14"LQ &.'- M]IfZj]as(If6A9116n{5S4)8u<@m*'c2^Y-v:&( QaeЂ 9ntceMv#Ku!P:ݐUL垮FilQ3Xߩ3N;>EN5Q~ Z6WՂ~ 5bI_2 3&.F0fV<ٜpu njN&}e*k [e-vMzOGP({ͷEeiJ|RlPm4H8n}Tf{VNMjДm,)#yΆij+F}L;p>ml(WCEY+jn3O}ҙF|~kl3JbPMR}w /r@$Ow~ltU>p#NE$.p݈J}vr.cs/7= xy{$PA.vo T\Ytn.~&?IwHz$5 endstream endobj 2364 0 obj << /Length 1752 /Filter /FlateDecode >> stream xXݓ6N!Bߖ)0CA_ЙN(JtÒZ~.YTF4!&&TJmdTh9@HgɽET)MQ£DP`t/33U|izUFcUtRmCZH)P{O?$)h4T^NOϟM7͐" O1gsl/j%zٯPU}{u;4|vz)|@[eף$?~q BOx!b[IV^nWYRlPu ڔ d]q72+;kzWmrG1gVٵV EF~Y/mϺ2gݹpOq rqȜ?Nzyobru.Ƨ!6Jc ^ h` eɇ q!u@LhVFs#- KYE7@9ƎMV\-{?Xq!= -"oAD}P{ePkPJ˝:X= > 6)i8 0B}m@@!ur,/C@q?23_47KRtW jq:,u]ڏ!c!3zmՆN ȣoFR}]<#YUW_|9 ./G,8شrUnUYՅg5C9RD@Wwz9*pnPdp d-+q`?ac^^) 㾌w*A1tu1h(6\]"7Mv{?kv6Gž^׵e) D'wMe<(S)&a4XڷaY M?tGtИ1>T]xL_vr6::E_dl釜Rks3+,4hl*˪ҵ0zG }Oa7ˣ}=^|G>𼝜N۽̋ 9Su*7AXxϐL qp.wO v8,0ضAeTE>Vlg:>J{֮MVjS"r]0 s8'V{MK[C΅_V\uV7~_v۴Dž`]F}r3p$SfyYJ> stream xWMs6WH5"Otԑ]S۱t R8# E9)RӦO ^}|F-),  D@F v@fu689Q#)-bHq%;O }J:q9{"4tO$1ċ~]gJpD"js 2oχ!^Y蝍O͑Gpk!b `E},]fJ0^'Qwv/:$ٱA'W7w,@ R#kփ\K͐P^}]}k]^$P'F L~Lg׷m_gs[ޔzQv M]x6<.Q-"0Jփw{ḥ}Hp Mo(!flj'Q UY~[DJ<-RrVQӪ9nH|́L%d}c2ūߧciV.-S-|䨖LcM򼘧Y\n@y䣟S 1x[:LFk{ReK] %@Q!uNj>t?ViR dU%uVƮV^aҭd&86zB@UXlxtrH$p 8p0aM)H3'ŗ8$}T}zEy>-x7Ҿ+BҵnD&ZFŒX=-!1// Gv\,">t' Sړ|uGf> stream xVKs6WHNErO#;N&cɝ$9 $1&A $],tv:XoZZp{!JCA`:An99: 7 Cb-WVLG^͎8.$׌7v[qhG!ZTL;nА[bț Vxe9>s>qHbΏw/%b[.I8ҒVT]s B|ϵrj*+Ӝ>|qz}qrġHYg"mY㸁ibUTd S`oS*svSoiZ&es )o@(/>STU-b9]5 ľFJwHlñnXZTnge>ORMЕq" YtZ31g's8rÚ^VK'S9|Lm} W>I8}`pWb$ Bo?0ٿC)G]c/E_e5`ܡ; l4 3'7'NYW3Lmo!#X{+i5(H@(bѨQQZ]g }Qe$T~2ot rIݶo?.PϷuHȏT0LZ& B>~zoZdl'X,[y -'~ +cKχJ+O k18q87Bor0gs!|}.HݴݴobXo(iJ),=3i#,UY-KnG7KX *ab_9ql\|>s;k\wn JTx]~.T7)ak&gdc]֌Ҵ*+atm8}ۜgQJT%(Jby L!McJw=Pke%z'mBmsʌJd9*?fM*A7yr5 i3z=>-e,VUKIZfY2x4B&A`:o[]qOZSߞAX1 3jgk(l(Ya>,hۉ^0<1H@jB”m .A9w31 wwR SfnS ,5bp' vG^' R{Qbb2C/ endstream endobj 2376 0 obj << /Length 2676 /Filter /FlateDecode >> stream x[[s6~Dp$:&i(ӑHQ$Jc'v2)\? "gQa'B+"\jIttG;;z𔈈`d!yhFͣGOպLV16*/G48jd$C~/xr1]Etzg}ufegǿ=𔳦\!M#N_0S^+\QJb4BcAF'?D)iLE I-@-Ux@D,1Lm Oik! ՆQà [B'HA8H(l3)xe`%yDHzlG[SݪSk J-D%h7nGr]" MaAA_q4#k;2X.#!7"|{4IN:kQ ذ勤H6+SݰhV54Y<Ü$ SL%u ,w}|1Oi;kk39P_uҕ!C6qKm%ZRyH4n؞S"Lkc[n!q=N]UIKY ;L~Od5W{.(0w~Oڲ,ր[59;Tu7EO $\Pa~~v(gЅ>˦iϴn] R =;؋H{َWI'"=fS؞É0(ޫqC_53Ƒ~"Y7WLrT6=ܤhn2PCAvO^tr~:9{? nFپ &M=)i̡b㴘]GjKd➫RN+`ƚ:3v^O7XnUw!-(q LZFFl^^E("ybtn6{A'8;yt=}r2LAEMEo|]Y4R];i [`fr2DeϗMzxޜ=x +5z'PNUfp^KY\$lckØ]R==n_o,Glzȴ,sHIfO76,s*WNgZqhߟL>}u.Ĝq6K_z10N~`_5;#m~n'\5!,BniZ/Aê6;M^. ˸vP8b8k Zhqz(ƺx/rj vVw1$E*Z1k endstream endobj 2381 0 obj << /Length 952 /Filter /FlateDecode >> stream xV[s:~Wўڊ./%ziI t>/4gdҤa%yէ(["?xXLwP.}h0$~zE@98dxM)ƝLMNuu´'DQVS(m(j~ zV 9*tv=ƹ|mWNmv1 V(UH6"J!CvVTG\i*;ʕ$f$J_?gn.p|]6LQ[%Yj2ϳD,s9+rVRlL-w2Δr,@Yׅ#v:Ygɭ&dRѣX&2-Vp4K|Xu,اJ>3߄A[9QqP$ygOxRHHs7gܪzXzXx8F6W{Su!M?`6ξjτRHz2upc<08")aGW^?|wr KJlt?ɓI]?nڢa8:iCcmc WhpBac&ܭºGV[*}u(UZLOe=}ټ(%x ߌE-PI>Id!s57ނHll__Q{ M8<ΒYM`Fgݞm}Jp{t Xv ;ou젞7+BTt+1ʏ4w:7O{ӡ)!zvսIvn+1]Ga,tsh+dk֕ U`c]}i.wS>EF*-Rt{K_QM景s94l endstream endobj 2385 0 obj << /Length 1030 /Filter /FlateDecode >> stream x͖o6Wi0%)R8vtH0}P&`IDEٱ]e0d|E-U#,H$#$&G0"HaL9EX3ɉp>L8rlDf]?27MK/\_A@ ; EL _op$%8&15Yo+Ig<0AUe,G,B>cfj7MѪE–)VEH}+>&~zic:+U> stream xڭWr6}WQjMysIu2MKn'30 J^$_JLZݳh_j]dcs5ϲ Eڧ A-G' F>4Ej ֡eZlۆ=M0<}[ub"dI.D.FN"%rѮ8-8xCdhwq>ezٷ^ KW/RJ_RCRj/EկPHEtǢ: 6$j;)~v8el?8M* lHF§z.A"C|L4Or-v9;f4ɠu"e3PmJ Ko&%,nճШU:6lȲM)z7fU,1~ZyYM0%َ7wcH+1ґ >Z.P^иT:ev߽;G4ު>|*/x| jדA6 IehA2 k!<Ȅ7Rfpcm5KD#68/"ۂxClL2'˦L0+TYx9AY~{z3b=PV,oxqTWիm/KB6 ߑ'{=A qRư5=8r]4j2,u54, z U r[`j.2h`Á"8a_AK*>G6x}L<CMʶ0f!}h2&(;.7ff_G&Z/&'Df^}/o endstream endobj 2393 0 obj << /Length 1397 /Filter /FlateDecode >> stream xWr6}WrD^!uTfɝ$y)HbK q ENTg,X`!_9qF10 "(ᬜ# ybE(1q+bqX: %-cS^Rط__@ƟWbyDx }%_9q5Z| cG[\!ŜS aZH! #_ 9{f؍=?eRa,cOhK8 x>AQ:{^_#}1{1=on{L14t ywxfܘGq/_iHi8g rVԅDߔ\&Lj #l5F>bJx,@!nH`ޜ2a< uM?">H6  !46.l FEy(]4 c%QUBJvf%Њ$5ObEiK}D8j`.DlR|1]7CLQ!v? j6!>bၓeV8Ii<̵L Cn }"L]d≁dzR/F+&i~otr\Z$MkvYvJA0`̦=[5&.̉fUVJ72 (eR %{-`a$8P  kP-_fߟ`׉J7v +ȬتrY0nLORjodb屳RAT$>Cm*GSч/)O饌)=PADWt"zr*4LfN9B7CNڧf>?u]YZ T=ҪچijIO7K!+HVmL2躺o]&a8TY}y6 CtjS:-VI/%PTwBJ}u; dPKtm so&ǶX2SaVW~NṃZnB7 &g.~ЧMcPty>?42]~ sV큧o4d endstream endobj 2397 0 obj << /Length 1582 /Filter /FlateDecode >> stream xڽXIs6WH"L\ss9u2KL'́@ cnAίJdLNdۗbak rw("GD%Yg.֫zvvEvQZguQ@+.zc}3./O|Frɓ\'{e*yU/iU9{POV.~ VOנ)X *vU!u#hyKĖ fzm<*yڜU%6L$k:>XeʑuZ"yXBVr3DYȊn;iǔ ۑԳː c琨CJ\.nޭn_K^ϓ"6|PJmcjF }ZId$ȓZX5Qd* WEz^Uu+^KԻr1a| !>zL6 GN HLs6&7$  鑈)NNTPǡEȋ|JP="2 (5O PHE&޿<`&Os)'p09m߀{d3YZ "$P V~yvRGթ}E%1PnB¶ };s-t 蓞נ+ ;M7z LiيRI=Nlq`#YW肅y]ezhw`iʔsRJ oy^IÆ(x(J2W[=T2@Au KtЩ;BHg(ClƷ)7DFf ؾeFD/0<J_=ZH; 8蚻 zv-ID42}g{c CCb|pwS%YT)E+9WO<L^^tXB)]Vr/eEF lӦ> BaRM0PwJ}n`c^tdDvkK}>6]uVNH8ֈPEd2 gR$e'K3]tg-뜳 :1~>"k?:s &D%zCt^K~W!=G;,q{yNy\bB3wohD ~BD( o< endstream endobj 2401 0 obj << /Length 789 /Filter /FlateDecode >> stream x[S@̐uل7Kb[/bHbC,.Qڙ>8d=~"n D Bb"@\:0$`ڂ"Jq(%C)'X¡h.p=Jtnt1w9u%D7\OBԽya)Bsm7ξjCOă`ӋĊ)1D}i:γY1NA,o`~-dӧY{"iϦ$&qkYw|2-UoAvszI ,qZؗQ%vflvcKE.:7:_TuU˶Pl6ɒ2#"?صDtXub鴘g|_Wsϭ^9:G {QmH0 kՠLM3jĹ(kW8pcPLn6V[>ߙYAW 9%+MĦilctitUeؗ.HHU5M?P=m[-p:7ҵ`—>Λ: -2[A5%t[Ӌ?>QMb9%pŽ~ZkE565ҀXAR"h0GC#ZX%HpS N0Z\[nw:|;[ ?-7 Yr?OQ<Rރⴊb0 _B9~@K T@i++ȫ`]c +W>K endstream endobj 2406 0 obj << /Length 797 /Filter /FlateDecode >> stream xn@y%Ξs&IJUU E 8;k!$us3YNF>!S𥜡k2$iBp!#'۸vВpNR@!1@`TaP< F AQwWink>YB+7!y 5`0dt61j՞o۔~God5yn)h2Li7%EQ1n1F C# eشlyt36ӛ6ήiȃj p@$Ϧa͒YkpޚBEjj7%Ej*AAbQ^ftޛ|IPmv˽~׎Η,ը0FGi[GlH&$1_a?}{YR;c$̢#bC} }6Mi`u( D`‡]'ˁV#ey6/`B}W\VK$TK+8/+)e(NP#ž,.hAZA{/`g endstream endobj 2410 0 obj << /Length 1616 /Filter /FlateDecode >> stream xYmo6_!,_d fI)RNm0]ڲ\Y (ȖbQ A"<=w<0ʉ?WDR$TxZ8i茜-ԹZ=﷞\ 0F|)9; (8?t޺(aKw<>Xn 'O4=u8̡||E $&N:@ RJC]6P}G%%th;Һpp kbOFZFF>X0c%& ħ>3:q߽lkp\ݳvqKjD8 dE1.\3%)Ƨc|ul^ipӂ; -i[,xMRJ/_0&fDɫu>(,a<h7?hxc 33t0DΜq$4ra$L1(# C;PнeeSR>F,ɾ*VY2t}LA4T'$leTtps뢬mtֱ?{ۿ`ExfU K>}ᔊu1ӺMgh- OZ_| 70J8'(@T }PM,J6ypOj$TF|'{.|N7Pb vַNMi-f\Iq:%zxqcQ\ PWsfxu9U\Dy/$#1 boD$u@4µCJeoz|EEI]IS?R쒤^e&Լ%Yʥb.4GP$ iX[yѳN Xss"\p( CT,(4B\蝆YAľVPQ3KJJg:C g4P͈?@eycZ*Iu-TyF?q1A/V%_ endstream endobj 2414 0 obj << /Length 1071 /Filter /FlateDecode >> stream x՘n6dfCR$sץN M+0tEX+\Iߡ(Q*;nXIJ(bhbLF<&srcϓޫ3 *d2'*Dc!砂bOh6 \4>gOD%aTXCL(-ɸwݦKA%MuR)c!%CUSlmYϒe|*,nL'TI|<3D@yOAa4S 3jNdU2C0Tke.&>ttR Qy=r,=sysg2I1 jW\Y֍8h{F37( V?9t wm}8D3/3dkBFQ*Y.>Gx-)jWY&ik[ތƧ7'N Wef ;־wɊk\: c.Y\IEH? AEtg4JY~j~~t_~ h( q=y@3VB)Qُ* B1$ [˃]ᓮh(ۃ(c:Qj`x7:5R%+ wpve=P+l盥˔AdYжr%©ڛч1bPI{ê.Peyt=?gEէϽoMp㗏I:ܤr |y̵օId@ pg BR>ʁ4 mWx -^Fy7: uC'o LVN ղƥqTb^FUp4^R섎 3H| !xR!j3ԕLH!!B´.e?1+҈Nߘ# ى {Üq}^+ZcJ3P`/⊸sG|0/ endstream endobj 2331 0 obj << /Type /ObjStm /N 100 /First 944 /Length 1404 /Filter /FlateDecode >> stream xYMo6/c9o4FF( q8@FN S]Ү}G|o3RbA%,\3RB!qq 1PX4 'cxZ"RTbjGJ!Q-cqd!{!it=\' aUOTLb&)i0,yaP'>Ϙn`@Gș-iܯp( /X0_KI ydCT0Aêx&#ЦhP<@|i%As\)wANA#*#U D| Wب;AV}> 'phN )è0׆EpI>3D̀2(c Je# o2s p`FI2-HqMK ZakX&i8GL#Ac` Ѱ^DxPנ٥ A}F=k,0|! {D Fϥb}}y9>}zyEi`(8 Zpq\zeH wWXOd?|É2(>N@vB@#zFX͗nUؾy}vombϷ_}Wپ}ݶ7m_n+G/h'sh%a!{L! 'R4Mmnm%< 6C[;֖n!H5q4L#,OMm>$ﯼa1a&@4] >L Ns}oKE[R1)8u %Hh%Jn쇎n5XNL*y5qٶJ .8M@"uoE{ui4}Xm^,})4BS KAhȞ-Gkt%}':ɧ^[ ibǁ3|ǝD:W3ج脰t5-7OhQ'5֙VsZ;zj{# qH1q,'oOwyց#jᓗQ3e>R''[ܑ| "Ret9ݥn{n 8D87ԧ8CvR_{o^K}˽M\sJybHȂ?n endstream endobj 2419 0 obj << /Length 1579 /Filter /FlateDecode >> stream xYmoH_._do|˥N/=icS۫&M8(ٙgfv'w"}e%I$tr0w\n50b A̒Ԓ #&і!!TQ4]ϓ׽Ѥw#"(S%LFsoZtaq5B@FT6 z2)OXqZ~h<<ƻQA9 :*OlC36l F2sE.u̜˷EeYTtwTZC~qT7yZ.8_*.I6h~{ap e ->GパEqit՜GͼS3 JZ|ɰL>ni'v\@aaØ}("N %F=z58ZfE$rO뢰H(Kq 0e(|qL×۬A$EUu9O/q`H:RySE>\܄Q=s>4iRIOos 2=uWWHJ eR?B:GI-]1D\Ǩ mT#yt CiJA>QH MJaJ!M(/d]+Fo "]6`U7T11 |0Jk}0 Dpw})7#v|xRUSB? 3HuR&8YQ׌E3tjkj e^fPfxa3a[Y&En" ؟O<Hmː6ɔ1 t@KuUTBZ(VX`Ob)uaZ۵aZ @i6Vݮ~jko1F)-L~Q%M/'̓#&q/զ#ծq.Re{ N+~+ORD(e>aF;5!gڅA-]1? u-<0(2Ƒ=!4y5;j҄}MiDCа繤 NN~rdmXߚ5Z-D9]_8"RŽtI:9pJy4*{^"05a:pƎNϓWccȡ8Kw4|.^cd :Gw~JvG=ԳQwev1fy[)$̧0R\oU'.TDMYV,O!^L'صyRRӹé>Ak~ 'o p`^ \b{r[ilȘ(ir%f4DEӰk!qՀ\B 3ng.5S>x)04Ӫ}Ȥ#gֳtwFETb})c~> stream x[mo_ABͽW89'u&M&遖hYDHI}gDR+qh%5;;3쒿, (&j#$Bip=HH럯N!X&hNNW}Q1xǫW'W'rDd ]5vN|Pc|*Ig KlM˓> hQ,<*N 7 PQ͛B2*|Swb2M "I!p ًxjI8P/Ϙ IML  $1]"P8)bß`J`M$4DNLU*j9p"dWHMlqWl m֝mp6e`[l ]<녗󪨤Gdy .~u39P$ׄԖjU)ŬT̚~2Eh@8OF4-D7Sı1J޹$ִ$jb[Wv(`O]vg>ydN{)~D{ɻI{贫DWt^2?g6..{uU;NUᨪ(d#f9&閊 "?2CPP G ^b|D?Nօ"0S0")tZn-OU6\NY2u?lhoe꛰ Ҙ\ݦ&Iq yN˼6N4A YC҆z\0UPk6} pTEتɠ+;҈c3<,7L'6d 1bP޻AOݠЛAe'Ϡm[Ŵ U7hVM}Aݐeӈqeb"9['iQ~$~G>͇M[I?{X$ڂI V6e8)@ÔM Js*,]&j&[$QZ>MNI6nh#ڔe UUֿPtJZPʠCaSmF9}1 hE_hs–}hr6ϜAΡ;M>[ievQ.@F6@0Kígބ CQz8 U7[1F+P yMrs08eBdZ=EV,du[`'˴I@+lg% >K(辴[l)$-Ï[aho뭯 kmaD [y-FG~{m ʰ~VޏaaS2n}TO+l͡p>%?b'5KU|O#1u1d=2m} ɦc^6CTҢp)ߢ^=?߮˜R4-՛QDq cVn.#FW@ˋA pg ff)&j|iʪ%"ɗ{<6W3?':^&nߞwXbxP|\b:N\ʄ* -M\%xֆ!%E.N&@>D[tozۍgP户g~7}륚jJ`'jcآvah*f<|DEcpƺ$wFٔB>)f"De0fN& F"Pv-uC{mhͬ"<֏;}/zU`C$1ʀM#@ː5Av|V=i 1634*~Nt1'rPTzYaDd=tZ|r&QÈot;oJVXh틏e\LfiX7ν7P_*bsb{+bUnjw8 >c]H4Cw\\^y՛w<2Uk6p f6خB/48L/V4oTF &q?6 ߱ɑoexѿ~+>3>ж}Wp8#e{jcjao:;vYzb/W͉- endstream endobj 2427 0 obj << /Length 1162 /Filter /FlateDecode >> stream xڽW[s8~#1$}v&NNj D;{rl'X>\-)t9&']T%hnF :!JO| o!Ry0]^ՇlANǜdRxhA.w|dSsMŽcʼnҬqiR22.puw[cO4 &yڌaN;s*TU#ɿ% G%*:r}zH>} ua'SD)9g]Kq`*;Jm  .(j}_YB$d/7>Cav[/˫p~KǚΘ-ǂپ&o}pncȡ}Er̃;yL]ej^iPxڥ)% yF%z R]5IeQPX0>vh?_0Lc7{̾71)vQM*Th,l;&}AOBWw4|\*9 wi08"ΌE@QKK endstream endobj 2432 0 obj << /Length 1388 /Filter /FlateDecode >> stream xW[o6~У< /HuC:[,ImgXvbӎKJui,9JliA΅!~8R8{L9k!v^u188C0 p@wÈy&pLb8攻I_̬ӵyf* fҬ()r9`GȘ0Ľ DŽ 5amibQdWaVt?:JE<Vۧ ~-L[L*nwr$YWR=u f @h{YɲҤWO}R]u5*lf*cwhcdϧ;27-v5bmǂ|Le+d~4-'/7T Xp,ar#~uH[W~>5Q:BcRwdZf|{MY(KiWqm/,Nh93\*cs)p Z* N>DP\p<ґF'C>!NXOGkY/( 22jh5Cm.AtOqҖRK|rFACޫ̒O\qC`hk+eY=D$3 HR aO naqTj}8 f=%`CrtļϤ[:/H@H#]Cum'Lq^.EL&>v> ν0,DvbiŅd]2'm֐,/ 2g] TVT^R!ȁ@%@׏e_m@5Lf#PD\*kժxZ{T<{h&{i2.M@R~@*v`O);W*Aۀc_,FJmo(016@:#ϳ:1Cgc otjsn:GqZܔm(lג~qbi@8 Hx#vVp bt+H:[;@8a U nX!_ =<-2hts }kCLuZ'FPb2;Jq4yE9Tt ut4 <`&e#FnK ǝp>|[U0J*szrv88=_Υ{6=>}=ϣ?6zW#GRܦ{]nͦvHA7~v endstream endobj 2436 0 obj << /Length 2525 /Filter /FlateDecode >> stream xZoHBe4^?$.J ,{b+r_=4CQHh!#9Ey0 4syTu!Κ?'GOOFM#E#0,#fјkg&r(W]Jٛ"D'ܓ F2v~c6F2@g$Uf:eZ,G Ww`l̫ycݟgj{d:gUI,C=lۡK a+wgNp8D괰[rH~cXC"X.7;\.PA~ 0װ`.Pd!&z,Emm;R Pe_TGTm#BxqwgSE[HJLyT"M~ X-uQlc%q>,`hcbᄑ9QfXxC$A*p|BIH|6'`I P؂1\ݲL=2H^A+<I"Og4sW`' **5;-~\T6+||C_LC2KIX 6@l.t&b L+x% p@t."*qYf5ARܬi꫷*)&tXH=C`C+=Qۄ Id rT> endstream endobj 2440 0 obj << /Length 1283 /Filter /FlateDecode >> stream xW[sF~ׯbw:rt;N'$Z. =.b\[m<6 >˷g!~_;Gq,B>GB)vM0buwa99:C8r++PD![UfI s(2gIǸC~X9:GDG Dh\]ίϦ!sO4tOGBa G ǣ40J%SZD8JM>/}^ߵhY],5н \4/˙(`0iڱJv6y}+y%25$%y6l+&T^ |YG|qz}q|{l^"&s"cnU_ 0>7-D#^#u0D111ύ! d,wX>Xi}aͅ9CcufcаgFQ@i !c%HEaC z2jG|A?c@Fa<ۍx4"xhxn8cm =GG0x|F.D߳!+FˁyI“=D/n3f+ DO^`qAawe?tcKe5/Xgp_tJ\k2&h#Jff2&'1dа6Y(4T>vv#A7tIѳK`+;(FTF|+fibyyד)iV_OvebbH͏C6/''rD1,8g@EsXeйԤb Qu.K|^iE۲$DgZmY"|ݝLYmQt7sg2ʊU&٠&#EQeUZ!Njˤ-2pkm_O2޵0-6zp<3aKI^$UUnw0m+}_ja.Z۝IUQmj O~am]\::j!.]ם ^ ­T )D.*ݾ>ljԨ53 ̒*D換x/~ TTq \BOa5H:jLV3LCOL.7^/ㅈ5ᅴ0BNC -l`js endstream endobj 2444 0 obj << /Length 1849 /Filter /FlateDecode >> stream xX]oF}Ԛ uhXJEDKD%ѡ$}pHF$X(;~C V?k6:0R*##" wg4x Hw(440d|b M1I"}: )'/(i̬GN/㫛C#CnWOK{VFQDsp֛"ߔ F6lÍ!]kͺgOI:T7}?~Xۡփ@׉pC"upמ:VmZ}>NʼXlut y֕L%kcB gwyWe^?8s|&(g/Ƃ=epAyeΒ$ϋiJpH*a![݋4d4[uTC0ycUebE8Ej-ߵ'f苗F7oo~y^b\ڈ_BצPxP·lk.b]fe,In-rג#׼/wNj4''~mn>R5RBPAY 16vHѩm*PWN֒XJ.F P]y}T[.v<) ! a1N8D-^FO"3!&w sruNN}*Y9Ai31J8 W>MqU]>w R?h0CDȟOVK%,;olO+S`!҈=mzѼ9N2/%b>>F7u6ƫՓTCF^[@?tV8H~tf+s|yXMηvCyQZj)@L$qͧYpcC:/Ug>,yՏN<-R:F;b/8V;$ې !K ݵI❫4b;ߣ*$o~ar#īo_>_bN-ө.l.9b7&.]  kh"6ۆ&ﶳQЈhoG[dzW--cSGzعL-@°:p&\ڛ "Y/զqmk@ugWUb,¼J0JAuI5ps]9nvd-6>w~ _`F΄/pŶJs{)H#GkL(]B1+ܨ3ݖ!̰ΑCF*>(n‰)lI=ÉP9d5b ^Qu4 ;P>,T\:XK ZkumƘUw6sfMư$kesVKZ*x/48Zl?RKabQ7?pXr4oDPy_) G^ =aW Ii~9V'zE?0ƂaB_bu ż9Ciq0Iڊo0-<#{hwƻݯԗ!lrsmMV@*JV8qR:? Ja3U~ADm{4~MBkWGF1#؅ݯ?x~t}:!l$[>lPG'`,*<!헰g endstream endobj 2448 0 obj << /Length 1210 /Filter /FlateDecode >> stream xWMo8W(OJ4qڴhN٦cR,%La"pDڏ3Ù7ԣG{2ß$X*).^yw|t|AG0pDړԓ #+} =6p|Y %#0S* “(Fr1Ȃ0a>6Kio)G871A[ 9Ă8ƹxТ@4|kw;(Uox]e233czL8qaailL_V3&"n![yHʺԌիWf hY$ .M(R/a T54|]^_Y+/g'f 6gJ # m7+R CQ33;xҪY?:afӇBvi^'MEk`##;M뙄Nϣ|8"!P]߰!<"}QǙ7}ωG ȩaDT` &',]-m */>- #܆(!Ȇ|2+ 9,^r%Xt}T! nn׷sxFoROz۸N𲇪lxCؗ;Ɏ};b&2\Ofg˛9tɉKLGI8,x˪v A+Ct&Yl @ԉnT5**̺#c<Ĭ&9s$dw|F zY}u8Оg#ɺ2? h]( SwdOu-OpY B ;q'\UaEŮSx&S5N/Z[I7罔ԄF{bILB! CR誽WL"FUtm酞ճRgPJ^7 endstream endobj 2452 0 obj << /Length 850 /Filter /FlateDecode >> stream xڽV[o8}ϯ#HkcKߺt6]MIH"u#^R 0 cH @DdtzLbq zëM eOmZUT=Zfn*{,z%y;<֧)wOye4cwv)y.[y;Ϙ+i!*+NZg΃JՙЈAvFa[f1|[n$a>˫O|2!ɝThb $0'"v3w endstream endobj 2457 0 obj << /Length 793 /Filter /FlateDecode >> stream xVn@}W#< yK;ubh*6FŐpI,k|iJTY{0#E _ _aA L\鹨L  \?KpC,)ѽ0%v(eJ󴦶Õ~A)gYrj;sH)>Ao"dd{:gOB.)0`0Uʹ,:!)ɷ@]_K0 >0M*UG'9ir]t1mōjrh?s]a^Z \A*=G*G*~׃:|:BĻ.QV?R(5zW=Ү 4ʷ> stream xYs8޿h\wm܌IsV4{ ) )( D,R@q04w0t舓 A44 #&P"`Ha>_c"IcfjQ{D|=t F1!#HRi$Oƒ= Aa"CJW|YJ4^,?Vevpx&0Iht3E8Cot{b+C ggǯF/OGD%ʐyYa}m@qM@kJ*LUEs 7ҹ2BGOKB mHU(4pY\FI:1TYiIKZh$jCc).0"]f H>I%kQR&{YE+, h;1G\_QHKH)׎ +G%G'\I|Z :>A<Ⱦ.oVzFܩIBC*޸("pwuw9 :`"/+0 IOX5A#+Χ$̃1AbLpPRHh}l絹]ZV4Rp U1,x{xO$FB6ĚJ.+G_ Ƭ2dStR'}CxRd~$6`(dMԲIIn}Im.m%$ERDZ~|(o\Rq3V"\묡jyn(Ƶ_W-G_U`l#*{ro Nz0*gCa{Ad*F/O~}~PIHI1]Cg+;\YAӲ_1@;J "Y,^jo 2){Ӷ +s@;Mt\;ch<\ʙJXv.:|$a2WNTWYj7-+x3mC!جլ0@siBю |y(4´PAt2]xڗRkȐxERBjEV02; 8DŽWlq, =Ȕ QLL"8p^pt ˋ7 `I8o-4Zن;`ocGGˣQ#R>m#Dl;w^E*͚Vd ŝDj}\ sȝgzr_ND-@kVYr[ϝ > stream xZs6_Gjb!NaMvK -Q6[RH*rDҐee2$A`w؏.)bʈJ Q$&J"TDFU͢(Lѫc"FIJS]"##(QbΫ|Rt' F$@N[)\E)Q&ƌhݬdԙUԣ4nswͲt ޲> ɔJ™'Sғ ɔ sHenL(QV9Y9 Ƙ!x{ជ2N]LG<*7pYӢryWW7DiGcr$ %&Dg-<七rM7@ H'Vp #_ESGn܌(_G>&8O=܌ٲZz= J "KNR#Ӱމ4 ؄"FkW!BΆEY,cGeR>L!Mh*Bqޡu靚5d Nڻ!Lha-"|(45?&>)I=[]&](O !Դd;-P|n݋"q#U4O.7._zl4S%t ~##[8Bh lܨ%{K1^-,es Έ{2<{Km}fŤƦHAU%U2 `no¥g/_n(Ȳ!Ĉ7 |Fɦ҇O!'ux?%W>:ImLGw82G4fb<orIAo\2 ;Ƴu9]C֗@֯i$dv( B}P2F]LmH'D{϶PFA HJ$ڏ*Ym(Hy5\w!ɞy!Z;Ki(IN MoX|X`m]U=3CI6fW,!2Zq"m* *1HC?{Ce"[WpA 3}]qtS,![4c=:@6 !7ZZ[n꧁Jwܝ*Qj]x(%1K/ԝH$L(ΟPfsJ;%<# akV,X 0I~! &)ƀi4pB )&{>!vdppT֌xh\>hO{p) ƶc7[W# e3!t_pwC@u @8\=> "K0t~"88 g ~ `#%m@a8 AdU&вDP`^:J2ФW0}5D` }A0k&CĽ-$y*$tÉU6-29Fׂ8ʸk/1UMvU_پ<8+ݠIP;{\ͳ01COni+ծ'C\H9 TұmϘo3n;LYXH> stream xZ[s6~<ldNVw(YTI*v\x$+ĂC; gD[># X!Va.54ZF?` _F1I4[FFa$"mr/q'$"D4a8RuTD [aF)AIG}qdÓaIcxѽ `)aWB="p@RHEDGD a ~{ڣ А w6H"E0C{O_NBOV!)1-[FDyWJ Z΅ebv FD"*bGoh?fAItq4aO~vV5DDFEa0(r/17hnhq)8DJx胏P8f0 WAZ6W@c#`S`?C[ǔJ80?#NEqo p@Ǒ qBwB@D(RvqĂU0r:e6[z) c$c /s *PmCH|u%XaseGKiD}[{bnH^pˆdB#AS iCѽw֗>` D_%Ƒy-IS Ȧ1L|/JˁPUެfCq\l: !zɀ=%RM҇;Kq^!Q _Qy817ؕg$t $S_.{ Yc(TbL ԪR/BΚ !LH !}VQ |h LIHPUPPmܴ Y}E9\i(1z] ٞIRlnXR5)*P$OO_T3|dx2){2Y"Vt9\Z[ DM,Ԯr]p] @Dё654ju\^_~@zs[1:]iK)g7e*&7erKjҮ'}mcd&ﲇE1߮ӼNjP{a j6 @@yafTi1p۶atTAFx4=!{vB 9dljrPm9Ow*=h#Q0ڊݩfקTO\R*ހY#kY5_ݤuup۳~?[-: l@e/3@T?];Odyبr:/*jpUʷ뛴l$ϲNorl{ܗV X;oEnId֣=W6:f![oϱ,5ׅ{| Jw-V`=m{LRt>Ъ!}/fypbٽap Hъ#v FZ87\N[6Gn&AyZu ٶ^l.^tCp\`sK`>Ms?$[}RuzQpo.? S0D@g_M4P>3s՘Y~5IڙaR^ T2ƐQ ʀt1T`=8*k8 ;cRS5KUkƏ ^44OK(:*WZY]sk,{BDu1xwHmeY&{ŦNo_&u57vuS(YXF玛$3ujEy8y+UΔիṯz nn>׮3K[U>e2mܾV ġ=S$ /$o4;HCn&H6̌\P.:-D $LyCeɁI GLS`#tyqAc^)>8nN7 ?8 -uM+#A@ j wTA##MjDmN0mj|kh5Ns6b3Ir8i yp`KC/:O#"I-i,VFDm(x){o(8zq0278J2pE))ܘE.'mWmV7d{lI+( mɥ)'x1ƚtn;L1e 0 emՔZ e`G5=Q,CC1Ҍ(d3ˣï{IjlLcQƠi$u򏒲L}ub /U"ZATim4Y8_,Ljj.ފE!CZ>W!Bju?ߠP*v(kYpA2nUO7U4W+'B<ʯm4oX/]0d iIl&5זM;Ȥڞ赾+d1*eII(ܓ|nĴ ۨI-GE_ojX퀡-zFfclOl*^wT!MVdOfbv #,*](x _1v, Wهf}bv?`=a endstream endobj 2473 0 obj << /Length 1575 /Filter /FlateDecode >> stream xX[sF~ϯ[EJ! t<( Kf%={mu L&칟# y_rap/ #8 =YxK F=;>^G0JqJHb{ay'"L. I1fz#SXHa CQWu.G{Vlb}[ȭ1bλU״ B2NO'Dxzxɻa &gͳBFa-!(*BJD#̙1#`L^/l0 ƌcfu'yeqvbϋ)={ ad]Oo.ML;yôFSLPXIMw+Uaf,n1F;b/nv6=ژ魨u&*Wye=԰Wo积a,Dpߜ_M!4&/uMgfA dem[qje-,׮E5*Xd~1wۺJCVݮYM[˾V(bUcjjὄMU+zE %R)WO*j} lrsy=|"ap5j +csP4>. ~azѽ$jY2B60M&[+JՈ^wxv-+* JO zRJjbsUbBH¢̓>]zmvE4P<3)39C4fTFj5ԟ߉P~\dK’֚M4 X=NPFР,d) = m)ȥY,DϮ$ BG(TEau9Tv0lC`Ծzp>:ioo06݀vI\<Z$ss̸u nW-ZQWm9 J?IϊVAԴƆn=#-gX,]%`\shZ)n;v5pd6 liva$lX IW.>"QY 6Ak۸O+[)-Bt2zU Ct}gH#/'e4Ud7C#uw1'Wp,yc_ ?*(M1כA`,L2ө4 9,`Ĉ-v %`*nL͹N4ŧEuXaWNb(UCdk4<48J9ERKH pBS6mw jK>5cj@DaaT㩍ŨZz{\`$:pRjf=b" qQma;Koĝ}~sl~ 2>͘SUjV%΂p0UK @:c GUۮmPXBŒ;w`e. @gťPsL&UcDΤS83> stream xڵX[s8~ϯik`" @ҝӝnu"ɄYG2Gl/!nVKZ>4<߳)utOLX +aS_]OPJȡ0hέF?`Ld'GGE_"cBR܌'SUxī"@v}9 BsL?܏}wt;&׻5hGgPoP#5!AxȒ"%(G%_RaKP`) 1QO_.HUD FJ J8(B:thˆDuw(0Ъ7B= ~A-.53I.aĺkGB͙nc6VQIVBKU2]ɪɳW 633S3\?}6 H>=ot;H̝ȮF֦b[,t)JHLXebq"uˢLIR*bi2Ȕ*Cc?RM.4!ӃLj.*_&:Jga< 2| ig\kɠDTz+IJda^dKqa<5G!U`ތ!hCJc9)d,,^ ^fz2i6jltC2@?n3`%- y'}/V׳[W 7.~\AUw^du*]8ޏW|o9m۠-GwR`[Y`{}bMH5ͯXZ endstream endobj 2482 0 obj << /Length 1577 /Filter /FlateDecode >> stream xXmo6_!4_d,b*J-!k,ִ;lkhGm"8~GRn`($8( ?J$Ldp0::&x$ 8%A]ba$~|3Y7T]A lrP./"he<+̸!3a kG? ]O0wΚ֔tDx(K PY,0P!H;#fV4 1[|r8-jL{^uBS$M{>#V~'Dk6d@G|%I@5'f5Hڶ\0uF8iHq`]Z,m0=rb]pL擞y &HO l-m}>֧RO=,Mi7j3>kPjj[u.g\HY%yhs[~Mw:Z1!EffCv\"؃{#FVy1g: vХ.3bܘ[Z{$ԷޝG)lcnM4k9My-,7^0bW6o{8%ara׹4p ,oDV;'I0Y-%{3&2yP-PBb@ֶ vaka>J$i19}ǛKb h7 I\oLejK|<-mG6CC$f**4L+`MwvMXxheo32ls9^tzzJhƀܮ_]QK1n"M oNEJΟ0] sa rW?K/#]'\Dݻfc§\E6k:APղ׍X>EVwV-Ҍ 9;-UT#2pƫ(WjlFSmpO,/Fz8Ub0iOYi" uZ y#Q\_ endstream endobj 2486 0 obj << /Length 1304 /Filter /FlateDecode >> stream xWs8~_Gg I,7ZRhoBnxpl%cY.VZ;M3p?ft,VO6lyd*UA*$"IE`t ^QP|uRQьM3S"aӪ ކˋի'ǗL ,EiY nöA8ПWmluT:ըuAZ(YHp|S{=y,HQ"DR;("){L$iVR85C_n5yYiDMWٯ!Wq9"J$'uk?s1Z|p <12y*h,X,BJ0ӒJHLp\ZB/ů|Q8|J8sp7watn}K.Û¶kg7r^ >>1_M2n؝}O%1^i÷g 0F2)PUL D1He@Y8`BQl\nft ySjpwr5_|b}pJufׯM۪шb =)ǻ~/;,w9w;ֱSD+w=S{Q4@+6l劮͛rEY<\H~PZ#O̸{ߺB+No,F۪o&u?M~8T;A&=uw5d4a%ver¹bl'/JTV / jS  |e8E$#4ƨ<OF endstream endobj 2490 0 obj << /Length 1123 /Filter /FlateDecode >> stream xWn6}WQb]yK6)Jbwhr!w(v8{Ea$G3ùʏqVO%(I8i!iT E||s!!e8#N^8$(Oy|q/=+iG5艏qg_q~W{J1ڞ}جx6>FQ|v:j?1AW@DNxFvV!;ыcyY4ۀZ#Ē֋hvzήY>yI|'SS4/߰SBCA:ϣV㄁c,&MCʢWWN %1щ$ߛO6^@ܾlT>AYt(^y PUQnm̧sޠpFzOn{{1;} רPiO}|lZ ~ f GwybV&t7=~1[`iʆBٔj79 P(uo$qίgP#D-̾3tf Τ=p͒ =[15"{_1M}ݮ>Jj؂G@-Tl xZ5ԃ6za"Ӌhϟ<+ ]^'c~RuJDM CF&޻ϗ hv"σn[Zf%1kc5;5wb"Aϫ]^j@mUXTGQj 8pS /ti/ٕj濱]y{QIMqVԈ͉RL VR?WpQGV)5ZӴ cvF._`erA"HNƾUsũQ B ׂ7#eU%NJ73[JsD+X?<1eYMJ1%TZ L}U *iA&>sҺv\jF[fBw>ϵd[,eJGIR$-2 endstream endobj 2494 0 obj << /Length 1094 /Filter /FlateDecode >> stream xڵV[o6~#T,/$-I46`Ht͒JvRl*n(D9ߗGz{!c,H^ L( =yB!񮞿,X t̋9bLi2^uEY4[+kuKQkz~)HjL/ P:K׷t>}gp89"pb/`FNSͶ+kpLmȱ|0tօ޶٪)+X4f,;c~}..ן3'FO3bLd_f|:BVm|\bwםFrX@H>B͍lUyS*US+sjlj4KI2mr+pB̷ d2Mmނ+Y7iUY7(^k㎧-'UJ;0KAf{ >eB^" ƧվPu2'x'D +B1y)E%2BB u+ȏKJ_MPδZ*Hd3<%Sz5C ]3f8" &cQ68H}$1OBSGMA1vTzFd{n 3=Q[_y8x=wwJA#0;qQw>^/һo%:zMTmvJ0f;&#^3i:yP8԰F("́Kj+ 8ɾ3'dHGc8XPIkR+p1Sz $> stream xYKs6W(5&:tj;N@K)E夗.P$ePI$b#{Wq,CG8aw; 珓gAsMn=I=0i2> $"D }B(2Yg>bYGCc\ˡ[A ?M޾<#`ϧ! Csbrz}6 xH\5l+HRD"EeU1Y͗|a&p[P~|:~El^)|lCGW'//Oj(S@kOdDW3#cY^ą|X̋Y&a<.jt C~n,HgCB{~G$6͒E<:?E/4ZGe|ikdG!̡[򩢈T2#.. +Cviaa.*)t  u~8[k![[8sF ިKR'p^:C44O.yRQL'?^Ij)Ƭio~Strp@*F4 (XI7]|CC JjL:zSM5TL6Tf01DL1m7e\.ƵD;itNj>~VV??z"JfD:JlhQMRGDjiV_r:eNN>13(jFe3!**鞄Ȧ4}dڅD hHMG0K!8SBkf:5ouj^5N 6fkj)|lj9@H(i_["zZpdϵ.|)dR7{V*q0 RޡHҙE[H0Ek0N; k[#"73.uLu`F7CRGtұ߀b 4_~ɳ1IRrHfm~3+E*\>eHDǹ&)MB;r\eN" 9t&B5Sv8(p#.w0ߑV0eR${2G 0Z9ߩ]_M4~ iJ`:{F31Ml y Q_~o3Qtյ{zD/7TTB?=*Y)l ?>Q MEyX1'C8tߓ~bsG/:CIl.,n&!Tc/EiY½O5G Z> :baOG@JlHYFY=  T-+{3:un62]Dbi]W D%6>ao|$K^*IC$%sǗ P;>w!n~}T{; x! 2:Lp endstream endobj 2502 0 obj << /Length 1255 /Filter /FlateDecode >> stream xWYSF~kMvAc*i%/˯OF!?7ǥ*5>2K;t9 ]WXKF]ͬ/ħse{kwm :)z/Y I&oxn24H6cSϲJ !! WC3/ImXyw|oA-V䀔J5m^=( >,~ʼb}՚*)vKe?xȑ,f_ T&4 4 ; Ss(npk`Zl<"Ƴ+r<WZQ?[ ~y*b|0_)ғ3o7WlaHe(Y8c't#H:pN3Ϻܑ'tϡ)p6 1ajB0&7tA %VA~HX:@_ endstream endobj 2416 0 obj << /Type /ObjStm /N 100 /First 962 /Length 1452 /Filter /FlateDecode >> stream xZMo7 /I0rh imtQvQkٱݶ$=@λCt9%O8 wL.%5 qؔbBv9ű$e{ANK/4 !G1X hVMlyX[NDIPۣ I$b0htJb2 H 'I!clC52޲Px%;j#fFV< FC!׽R`*-eCC%24+PEK\ RdXbbXI$[=> %]8LJ0"%GeU*.6}B>9 ):І[x3H$Q%GaG%= Uv2!tcRr\M9V-&3U3|s $88`If)8q* v6x_%TH:MNbbJ2I8f`AH-Tty"FbBJK@sp؋B`&DG`|2 7߾~z*^< 7fN4#!~qd'em#,pw̓r/{mj#<[QZ~^p]y< Rr~~wXi-e=sZ0PN/+R CJ'p/Ƌ>ҴkMELT o/uQQ1RD,32 my}^ݓ& 9 uE;9 yȑ/* 4!w£!MqCBуݠ1[릭c➛Ixy9ԉ7xK?-m%9Ҧ\d?EY΅vrWH9xmfmܺ}br\LLN}IH1E?H5esL||;3rr'g| !.za9r+yOxD_e9i}-px~k{=]ц~eo)M/ yΦ,eŔlq&,ZH Q)=WͽE֓R@^Y ~,tzQ_TQK[zBCa9mj!7@S7D3\t6J"quJdYF oPUiOT|b/_DIbӤbXPp<wv~Tz7ʛ+KwNJ~%GaDͿVoбbexyVf F endstream endobj 2508 0 obj << /Length 1138 /Filter /FlateDecode >> stream xW[o6~ X o{Hs&i >(hť;%Yv-Csψޢs|"=<`"\O $m7YN.EbqZH2$9lZ%1edlSk% 68d^Tj$NǶCH#cZ\\,%'>J:gCPED*=ׁ Rۜ XnΏ ppέ0H0.sa=~WШ\x*{D t⫴x{t#W隅C.sVšGQܲW@mD8BP *،A06Co7w>Uv@F_.5.FGPX -чO'sCR SL@w9G]rׂ-ޭߣFH畨g2'A?/zü_E^Ӵa"5/z[^k2)#x 3j?[+;wQ"Ϙ1Z':Q #(S-0l#]~| ~Ir"L$ 'F>mDzS1ԟ͎v\%cR4˿6ׅ 7*@Xz߯uq9v[(%;Y endstream endobj 2512 0 obj << /Length 1613 /Filter /FlateDecode >> stream xWYo8~ϯУ ,OS &]w+q ,>( d;$EslŢH)3~#-r?J$ p0_ܫo}>'!(z''F677_"BlA~+!قI_c}'"%WD}_{u F!r Q >=v~6=@ p$ނX7Uopj7nx󼜷nޖo/W>}Ye D.LJˀ-Xưg %*=bkVEiYqӸ|5Mw!jRc1qg.c% *13f[-=|$yT a=^ҼIn.#yٸs7or`EN,xp֍BLsG㢨6i5G IݗG8c8Sp6GYiyؤu_S5wLl_tD $x8-zé 4pIT lدƼUJpV ~zatՏoS$FF &v$I>wZI{k 0 S_gZ ]*eKaUҾGK\C*Q~S*RM'1$E%-씢|c@lI'VֳҠuƠX53KgD'"7+K2LtwݥTfPB g B}Kg ][t2 _t7ᴱզaP.wFItՕ®0)#S;aG]ڕ$&C1`uhH(-L7bCaL Eohn2ʡN&Jj 5)MnwxhE!fL@8/isӸ261? %lD>_p P8r8XGmeyY۪:-ЧGtQonr jϊ _Y`( XI`F^8٘dߢim̙&J6N a:E_L~H[;>EO6)Oa endstream endobj 2516 0 obj << /Length 1070 /Filter /FlateDecode >> stream xVYs6~ׯ[ȩXtg:I(8\qЮ[硣Za[!6jD&1I,b$ j$E' zK:99 '$()P ASZ޼Y'л;]0B}$!9:OnB D`pɇO@ 8B{E$ v DqÀYbLY0)ϩ\*֟:4볲*!a|30 a"HgSٔ o85zhc#A <úQn7>Dbm(3S.+kGGJ9 |/v1lzXͯWޡ,$q̳*?TX~!u[T̛j7e`dʬ7ԭ=w7yr-͚YȺ-;h;€`J=jSu~F^֔ٺgMdC~ ٪]7dĊeu1 W!U6kՑkUu_!mUSk!JU[(N#5NrMku1dw;՟|0@j;ym`^>k[sY}ŌAF(fkPOC؀"{I<,,`tʭ :r^^"d0 :7eO4`3 W)O8NXȧ~n_Ħ̈_sGg!URM&՗]^\ݤ'7) c(^؛]~[@`#ztj5)-=67Uʔ;ebBBW5%bD<> stream xWKo6W(çH!Mh=(iCeGyt- g ?^aZ"a*> 0bv5]pԋd 8-/DÀ*aWzW,,yb:9gRc'o"i1Q$v'Wxz1T?R埍͡g|" (h"TwE^WibT~dl.]Amtt}~ O}B! fa5[XPU tiydt_ަYeX#4U:׭]BV Pd.)uQN[O@b0ߌ޼pD R"EG-Q&vn~Wsݦ2{_)k{x~XH h/B؞_`dx endstream endobj 2524 0 obj << /Length 1001 /Filter /FlateDecode >> stream xVo6~_G )uٚR`Yr,ĖY~GRF]obQtoQPaIVH @efC!Ao_~DRJP4C! p(J'OaʴߣIo8Z2X)N$r0[~OҶ38ħ?GWgCC IHMTz(xk]L{9|^$VL Q*4)XDw}Ui}z Ha9wd4u cY$ɬst}{EJJy H<[> 8<ʙG\xνwIt3އŪVcm [l:gbůLUY,5"fYtUof0B6/ }&( hOkD\I1ZB[b~%f;ČČĬw䌝fMߑ#.qic2qM L<'i[" *u/k{>ƾ^dvxojzwjd/  HLea?ã;޹b˺`⛹iYn8dtm"80-jJX3/ J ¬E-O ?L&0X!3 endstream endobj 2528 0 obj << /Length 1186 /Filter /FlateDecode >> stream xڽWmo6_O X _$Q>eӺ]v MQ2 %~wۙPNw7K2)3*z>e^zh z y۴wv兄3DF%!tN>;Fǥ]_Ƥ++ B+3]Q+_4Iin8k|ͼ(M=e\RߋiyH/mkU+*6pxӞN{z%HyT$/0BT{'+2}jxs@0HSɔ(roN^nE3+h_+}@]EJk]AARP߷GU?E_̬OP6RQL^i-mhb9&n2_u,q,-*6/uf3k:Aq[+6jOV{==;N=kְt7N~hYuf]ez蓯7]ys;BN.ǣǹ2D tUztʥF2U\yfݠc^ 4^Y{P(  > stream xV[o6~X "YtN$E٦aʒPl+bCa0 ^t;w~A}[!?), i!10h> v?ήEHJ%R )NC{ SR&/d\Iw"4qte@҈eD@R#Q{ AXkģɕw3]gl>FX1FqCTu[͊*ӬY;Rlc=㛻PVjWʻ\e<" "wyJ,)l(cHaaU)XAgRlS5X;3/bnO-Shz9ۛsw'f !vf КSuMYr6IQYt)ѭu| YِHK/qbV'k4;6>whHoYj&F4Tr+'`N%k ČV6-D{AA\3X!E2:y>X a-uXX'¹nX&XYng[h9ݠRu_cڂ<6Sw)v߯;{)$ZRէr uϘcsRORTz}ik&dx yX:ƷO\]BBfJuUI[0B\{s,M:ߵn&S)zf^(|кQ۪a|= hp%F_k5>wB8R߭~g~rkvQjU[^+7_i}G jE>ibʪȶ#<0)iWSi l@ÂG[lL׀pч1P{Clz?zO^rAQe\gD`B!!סpjN/e)yu vurgnt"b$TTI"X!Cɇ2 endstream endobj 2537 0 obj << /Length 709 /Filter /FlateDecode >> stream xVn@}+і`y P5p*UIbK`;B"VΜ93{o=!aQk e2& <A YI4&d$ 6Ew; wvzD.W,~4"Y-)W'4$_T/gcqɓxDA+Cp14k/q?(oR9˪AKo%at6Ci KSÊHkt`Lu:/tC/]OTTHKF #wOkJșap9 LPlJ8친NT82%M'!@dlD!1>g&AtNΠ[]ۏ:ѧ٫+4"8n6G+Xm4x;b2:8`2}cotqI38 hW-O{gʦt%e8:Ja]*ȣ@] ﵠ[%rvs9)$}7F0l7`b1Jȅ;RU.̾BBK,SBЏ]×+=(ޤ_8̟ҍx_816VjQscZ?y-~ U%_N_俤 8+[U!rWUظ#n.LH-p)Fm endstream endobj 2541 0 obj << /Length 707 /Filter /FlateDecode >> stream xՔn0t$;u[UOj{Ұ m߾Z`AJZ !; #" ?h6(]8):z^W2 (!͑(Xޡ+  b 5Ut0d]OQj#9DQ@!7^% X"Opd`3NN]nA]-36*hAViZ`IYyge3*&u骤Ewz~]0vx߃ff!kee#km$N"O١2VeVJo:u;~<읝"zqMh`lI9.8gpHBjN!q GlBeil'WItRc!"5|+;]F +,M%mf`2'[+FRGwn~goY\wȎ5(o'ypyrN't ! Rh8qn(3D<.&H  ܑJ ;f;܁HG}zT-zZzG]xXdvm睤\#MsΨq&gfa cy݋MM7790\MNư7Y7Pُjb}3k,_W endstream endobj 2545 0 obj << /Length 1618 /Filter /FlateDecode >> stream xڽXsF~_Gy}':<ӆbәxPl%Ԗ,_]dK&H:n} Xp y@៊ QXXʠHC陴$1 &7pK:0HYp&*|.Y~_vEݿfyToE$oa2A]\~ȯ\VND.Cnk.X7h|ryzr~{K7֙ev?`(@*! bc"=7mkgwiE06L! 1D,a%PY1!~>\\US(ǣvp'@AܶH*)-䔊nݟೲh`\jH:GopgC7GDi" 2I 0Hf@VxY=eƖ-鮈0*l&˳1n0:1l3T̖{B9N޾wM뷓o'pU+_ ^&rM}^-S4=Y.@/$t *In1Zg+'R骬j巾i&& bdޜvັA2M5[0r1Yb6fp5P5C ld1{; sDH.Bi杗whTN7"rU{iaC *q\B (! &Ic$ZC&5ytCYr);T2oeQM˪MJ`\C7|_de2_5 .H:AT7.Qۡs͏I>kIB^1o| {^W{z ϠNAo`#jaiVj(mPPMT=ouJ111^CcYxY3amEwswc0vϔMi:o0R( $vkP[  S앁-qÒ#Ӧ'n\b{ȅܒ}טB'Ӊ*鏡s vKAGڮ\/1$PSk:) dݤ7/+<⪯n%1q}Owiz;>.^E ) X=G!\ك bL Жy=7 U&1?xA.r)c ] ? H@j죡pU]˪ޭ9]A_WyG(/"z(!G4?d; 952 1T5q%[Q / endstream endobj 2549 0 obj << /Length 1394 /Filter /FlateDecode >> stream xW_s8ϧ3Ib7RЖ& ǃ+#YNo+Jġn_>{[kOx$B Gq!C8ġ' 00bgaoI0#HWe1̰|8fՆ̒^Y27U:_X,b$yZIo@1  +(hmd.&-s UB;.;ȹP|) ~Ї3A ~F 7p9mA..2r5]#YQk_?j7XSoߔ C-ķYs~}Y7+yj/m]a\oJfvc/kPsC5@_Ƴ ʘƦ)ELn7aC` Nb~ QPjS&*>;4*’.rHtjVvHO>uf]F0hmf$Jv[P(l`wza(e-bLEf ]xP|tR$+g,Շ!B"'N)4q@bi80Uږ6l\5}+Ek;˧>aR7\Xt2$kap߸ۺw5D88[%Dվ+z3nL"^bjYn^QֺQFIv5](CIA6&LEZ&z!8|V)i#Kzgl)@?]qQo Hp^ Ffhu9gUr6t9a=-%[((tߛ5t>< @<p`@}4\k`ѡ*]@ !(aj4`AR"DBN2iĄ- Z.]_ -|ji yy5^ rzOhuiU*k0_6鈏VhEFK?6~v|ז'[5)L3iө ŝC4wQ; endstream endobj 2553 0 obj << /Length 1845 /Filter /FlateDecode >> stream xXr6}WXd:rtdA!D:$AJ Yt<Ar=8$:) ($*\ ̥Iei N^ 6$ME0(K>gE괶ո^JWqg~*?$t\eNr2z (0"MQ!:N{v}w?*[^Sּ3bȋ-+哺ΎO1GOx &eUY'3ҹJ\PE3vp4>)3 _`«E/̶ e‹_`s㺜/,zI l1v Li4 iF/9i$$)M6HaLG$o8Ftu3Βi+e ntˢ f^I  4Y#n0(D7@P;]JNTpHdDB)Rlc1/ `[pz^Q!p(rEˇclhR4h$f*qRqq7RKxOZxnF{s&ĠŐb ql&PƳnM:`ى\`+S!t'qH(ؑ?aaAұ!LBw3j tʸAI"pIvFXD!M!%nlpD]q;C]zv~1Q@5@^]ծ۪ <:hw(N%6m~e+S4ڧN@j TaX?L pY/oH,67,L ݕӸB s}+I^_o "/gr~So&,gu~=m}u(J̝(]ط]tdYمܷ賟cJhZ[01דmEHmUM{Q@y)B||m4n6뵃I] {(^D5v ٍP~L]x1%1&ry d-bVF!qK乷bgƐ5Ǘ wQbx]zO*F"iVxA'\ElV($ovw5 E)2Pӵ.a;z[Q6H;dI~Hd6hB"9ޙ#A\P9K²{aO; |`pKaHNm B}N $(NٻJ~?ޝk0.#$Ieǵthk;-],zǫogQΛ<'ݞG4)wG[ʎwLFXt0\ HlEH1QFTr8U6lɔ7eX.>+1)Z@@ 8v0 O{/]?5Ua˯UzZ[G 6U}``;րyy]ݔ;@޾8z.=җ/Ç/ ΢gn ߌt`^ufbQ/nk]I h]{5:ws2M4wͪ^NAw\7|uB;j-WB[7m/0|ճ{pgF@'jw썝,nb2œurqn'IÔ*”@zոwqEFua񀰊 VV8Nݱn·( > j> endstream endobj 2558 0 obj << /Length 768 /Filter /FlateDecode >> stream xՔmO0Se"8cuxhä"$.TK]H¾αK[BTEvzwD%< ?*,JJDĉ@Fct#H뇬/D NIJQ6FJaR` Fd2i>1yGc)>u9}e6.1Yz$GbIݩi}tF\&qT;ю(i<\8=;n Fח?ݾd}'VM6-㺅7jb=!c7gw3P>0I}Wy(A{FF_Z}!KLxel8 fm^5.`5nq B&(5D`BƾnSY \Nw1> FIKwOducMvCB`*sJ4A `Шw"Jq*%P)302(0+T^l^ڽO*m['^ r1_WǓ/j~/ i)V^Q:xaRl%LHGޝ&cQ!=*:*E{G]aW$OYҠ֕B`!͂rbsi ]4 Nx闛E˲Y8 L]Iu3% CC,Mbc(ԊXbWK2X݉2䳼Zf3°F0I⯇2q(y endstream endobj 2562 0 obj << /Length 794 /Filter /FlateDecode >> stream xŖO0Wё8vxc]:i0iBBD$-sBTE;i1t *Tit Bʠ:Q0a|!EF 38R Nq,0xxJA}> stream xVQO0~Pcv6e4M41BHMSdstTg|> =GKD#UH$ EB*H ] (8RtO8DQP2C0 9%%9gt:L./јɾ?EC?$TE4]d"@^[C\'%NkkP~(^T"s+Y-wM]Ev.xf66'Ro('gYJPP-q"r%5ob;;Uڍuv\6B.md '߁6};q'o-/:v4Q?_ɮFC OKS9;$]Bfa e|I"R:@D8t*> C%QHD~OHPސ1H5)i7 } RT Îd4{l OG).Tv>gf(ۛuwmYeZj싲*^ a<ӳS[ݒlKNߙUfIJ;Hr\n^[漧WuߧL7#׫`[kkPXkEW9WDmPVߒ=oyh5mNJ `rYe^YЊYY/د )%]Pɀ`e) .+Z endstream endobj 2570 0 obj << /Length 1024 /Filter /FlateDecode >> stream xW[oH~WX-ӹz<Цeހ]j`l `S%m]oeE&HH*BeITh> (Rp}=K#F)K9҂N}0ł!c\*" Uy!Jj Mz ^ di(cؕQba6% a~>HW:K2(hѐ vwU:+ POȆui`؃l4{9~߼L8+,Mcm<}q.ɇ6햔kBM/bt:7sw "7/m0&Zh6nM^z1aMiWJD̸BMXpN>ɬ/vE8s_+nDEB;H aƠզ\fz!>GD@-ZV/`]N(8$bp'e8A?WS endstream endobj 2574 0 obj << /Length 788 /Filter /FlateDecode >> stream xVMS0Wh,$˲dn-$4Jvv,'M J$^kJo?*7kH`NH  AGO>?ƃQ %8"E /`s(йϝDe=0ǘ*˟Km {#ot ,Wnd%[7}_`cCc9U6PeVVPޕ .N z֥NzQuTQԽ]ȓ?ì-F8% UY xA` qdm< 4>|"~TE%YJ% d'DZКΓ*O na<Ю(!%J%AC-1$P9 &RqwM#.|,SE`H,. LlʶJ}px] XRaOȕ`Jv0|Yv\^op8䩎t8}Gk&{BMˆl"BGnPzىOM[>أViYdޭ˹T:1Jr'UVvS[ f`1 V*owE5^}'U^/ > stream xX[8~W1w;#u)ӥzؕV>d H!ο8˜v5bs|'ߣƒh@EcCoA8i4'X`ESR&b49ֱQV< kIU1tfD*s>u^)v-^?IIV̳5;AGVhB"ñ);߾4}b̡6 9C#"x +: ++_C"gTiHBR'qG^;iwpie8\=,ԥe5wXa2;c`c ,j5ƘW`R6K0gx: &&Hġf#I"Zi(`Ai&d+)rE.|gZ$DKL#Uw VTt `"f ^ydLlaCvp!e-;bS DlOKȾxfSV/$+°"j'/>mEtkg+4&J7SL@iB7X`Mcb$Ü.g7!B3]`Kq31"~Ti'qPr#{A=m4+9?zK/ly0 ܒv>*h(Ps˚%K'm5e/Fl '&ZʽRZ8ނ!O>U+̨ :z㿄rUք,hMbGu l-VBS2v0`d02Lf GAKՋ)q̘:OkTHGp.R>{u2W,92aSM7t/9P endstream endobj 2583 0 obj << /Length 802 /Filter /FlateDecode >> stream xVMS0WhOK΍BBĦ%x8aﻲ:LF}zD>(Cd$J+DZܠnH!nEPJR )Nxn=~R&|90S36WF$e>1{/IMoKB:YH:O=HE IHmbڜa)B?Þw3v; ލ"b D., IW3 ^kP &F#sQ,(l[:w?/obX`R{WR <38AEqHk˙[Mfg&QnF5u~<ʾ Hn ;FUܿtk2)LB^yŽqFڗgLyE_]\ԙBB zVOIɤ\Ae63rasw8 ȑWas({*qmi5~G0T +~_>KOj!z~/F5{HjE^XܪfG5MfYլB |[8-& ¹udۡp`΂em&ټղXECL0s>Q:cZWRɸV]VR{RV+uPT*8>T!f*(8> stream xVO0~_!?7)+00iq['?'nTӦMU< 2?.HC@.F8~~~G{cPrN@Arc0&*I3QkQT6N,WzAL"M|761I܆B#J!mYNn@al^8DKHVM=bǻcM{o(~;zSeZ$Է= s<9?۷6.H>5IU:C{9zYyUsZLa+FM.T8x~o$&nMPrc%]42LIOVv@cUjk$qjѺGag@}D3OkW8 endstream endobj 2505 0 obj << /Type /ObjStm /N 100 /First 984 /Length 1358 /Filter /FlateDecode >> stream xYˎ7+#vI ÷Cn]ߧhH\bEb`95p@$pnA ؛,$(7+V,iܠ) EԃF`J @|z(78F1&RUFdǣHsHg7ޏr[,oֶ&F_E@bmD J䜈8|-zdNdPXQmU U\!9g+HXGOF!%EBk\0gX="h }5!jw5z2Kܯ%#*w<$I/a+& w毥Zdqv!Ңp󾆾5Zkfp\0DhA4krPq[@eD!8L1yUC0,zlV:pʘӒ/<)jmb8XZ$!ٛ 8)g vD+6-[FXUUaZ=a9x/T|6Laf!܄+LObx'7À'O>uO ~C?^l_! /_ׇ~&f#V}fl|OsVg  Zj@E9O8cN8 fj.ٌb0Jq5H]pKNIt +R $'lېeho |$_GZMt$ s~W3FzFk'ub<x];{J绹1fOKP R,b[bLsJqgF~ј!ݝG#O R'qjY>RR뼝*\xlsI~O4td=w.6s8̧u U!^{K+)tK xM8>OMt.S d^`+-6q')1~J+l0?4,^< s_즸hY*o)3c”^Ll"[)]u=T endstream endobj 2592 0 obj << /Length 1354 /Filter /FlateDecode >> stream xX[oH~W0g)IJIv>=s1`0 P̹|of_?I$T2P\ CŃBs !.q𜓀 AxHHI(Җ%vѬLJ2)_|^ 4Gxi;<<GĄA$B"]^ŽbUޑ3$V$ "i6Lmn~辎̇INS+aHMѸ7mp?/"ȗqk6QmH>e|`ڽ,-;Tt,sSgSGxi{R 3h\73߁:E("Y㓸 gږbeA\H9`sSc.BR]tH{f) rn{LdK cR430) r$(]uه97\ۿwcU(dagR>%?݀bȬʏ~]UbV7(! ֗o8s'b ~XIiF[HYE1LA!D \2&IO>;x^|\^Ň`…jt`ܞ|A oIO#:d]C_-b$B:=dfRjy 6<[P|dD8w e`5¢|> stream xWKs6WH͈ *a)$9$c$TlK{w $͡㱉bҫ=?"KBA4H$3yff&a&6;/a^I(f}< |$4'HYoT) d w):ySf$x %Nez>gC_&,FB:h22/ZU3S%̮jV-8&w1{rHFZDVQBy(k].ŵzٛwD꿝'K B, cыYHW]evh5p/*}n*]qtUg甦cГ^ nU[:oV^0uSZ5i촹]K}iWz;tu])6p'eCP(!X+'O W܃) $l,a%c.&@D2ܥ~WP*>Z0( pv}`tΒ(,X^EC' D}/3Ŝ2(o[mY𝶄uiˠM |vF9wyqEZm!,g m!, :n*h(.#HH$0atm> stream xVMo8W(/,(MhEۃbKrim6hQ͑ i(4Va9[0z"(u*=ĄSؽ!{H`ȻKMw3+1awCtٶ/K[6u+Cgu^UJ}dnM+"wӪʦ/fZ{jﳇILnS WXz]UO:c͕) g.ȪLU PۿLV4Y67g{7\Տjnk: ՔTefWnS eGE IH7L8AP8F1s:B=C0<8eMDD^/a@bνn+vcf_'\rL99)o LJ޽ZIwi&Zؚn&ڨɳ؛eUi7id-G>t*@E{6k(v:j7&3/M@\BKMzjRSNN ޺"Poϙ&ϲ䬗|J5Oݗs*cL#F9= endstream endobj 2604 0 obj << /Length 1265 /Filter /FlateDecode >> stream xWYoF~ׯG 6{:rK-&)MCq;]ڤJ* C{̽3g>!%*?i5DeSCog zyfL3D R!iNME/՛3*-O~6t?_E:QVinj`&Jm/]ujז& 7+=cmEx0LD *줦=:ss :pyE9z9睹 C#߭wU]>70@(fFySTX$Ayf ?Sb$J P6sO$jm3XSg9VkPa*/TJIZ@űz V<'D)l : BvVblX1a3 ufdvG{|*s½ |5#1sA!Yw\P=N X*Jрxf0#iƘcb.'7PEZD 1Uc}wC:holo㺨lp:wuڴ5`܄7B0 ijNa1.FJ;LOÚijMB;0ZSA58`G9ɾO'{NpP>Ndq xJ08V:rj GWo?Wo`W aJ IB2WkBݎEw 24[nff릩% mٻ%p="vTܽDֳ2@Sӵ@'k Ѕrmu0jm؟ey %dDw?8rGfyy67<:qmJ]H ۏuBA xru{vtUR0LՄcg'I BtAXxw>政U\&ʴv ro Z0IzMg`pU[:x:ϹTQ|> stream xڵXYS8~WiS;6og&fح$ƣQ [¿n `- tw>qk0cp'H";p82b??}rc.O#`8 3kVZ滓S r#Ib"?+i.Z,ύM4ɚV^ܦF\rY}bx氰(8L^\oj<01sBʪ1,zZj[I$o #c7'PS5CzaE]ZdU +Nn m{-Rd/(ZY4S?rrc;B=P~ z1-8;9w00%dyp{T1vzFV|+TƝ* sa̍*=I8ե,r 7۪H77`oD,8OE߀5p%P~^\bjaO^hŶnjǴ.mbS<]]ye]szvz ZC\-Nrj]jUP1EޯW%  6/fQd]}:/~![L~C]qWk^[KYaCWsQJ J[kAq/K+*]L}xQM?J@`ڀ"dV WSlK3lQϊOeg>\KbcwVm?'ȵT;c? <lat2ۊrC/%6A jV8 ˹T!o FEJk6B ;T ($t+HzZ^xIt[5UEdZ  h:f6np=2_G(H劾@/NWܢƀT$ S4[_;G1y0$&%4d - GՑ)guz=U+QiP'crF8)#¤MpsX@ CѮuWf>Qk w M)NxKSqh .^ao#t0K&\";N1,LrMIQeR$8p[@UWU5ׂ0?J@fiL;yժ.SNUސlq|cUi P-6LfӇ%Z=cMEmpƍKEZmf %K 6LXbb2'RUwz؊(0GX=jQ7:4o!G9JSuOz:{#?y~YJ`Z,Tu6h2{&B >Z4  v[]#|/tׅF7a=|WhaS@mpuM2 0&عvv[NW&<,fnDl?v=(&rz:h#H;~&?n\[qަm:U!5PG4i S~<鱶-zHHtxv<7^vF d^lf?2 endstream endobj 2613 0 obj << /Length 1029 /Filter /FlateDecode >> stream xVێ6}WQ*QOM-f(yJ-Jj|hM[,$3̜C}Dm5$D$N6݌"Aًۘ"Jq&C INuSIÈR&umwaĥ +ݛBmW7a$9*MF@w/n5%8#qEso֋0ː|qcMϽ,DO4辫KGHȹy4aj oܷé.j{UOW=a*9SqZ_˷on zP&1R>׍M2]F 픟V?4 YPM9FuUw7F~=씩|7 m@jN'4~?5H.7nz@}>npűVJ\Bec*Y1v6(ЄaN8U/~[>߯k'27 RT~˛>7_OF uXqq3TԳ*A:ӪQmRh5{ cc-w=;ѦV ȋox,]4[Y7~<UTCNWE6tg,`ۣĨw~ hPwpX+)lz݀ǖU x$Ŝ1;CIkL%&XJvVu}5\K.f=` /?]X \Z"&s <'dwDyYn.wy |@pYz壍ו^+D q.7Su,}πkGPQ 9YdWPb~M4Uj(gն*3h>4L˃G$4]lGuLZ4wOE#Ⱦ:t~TxdrݻBe%|w ӻrw_.swO,"Nq"wD0Lzj endstream endobj 2617 0 obj << /Length 2400 /Filter /FlateDecode >> stream x[[o8~ϯУ_2&MvbwE'V(ْB%L %\H$_IOVZ ˞& Z1I`l^ E|iF"gz3Wa6hr#)(b$o=m8 b7 4:].&)̕>c/s r?d$D+Dep}!< 0bFf3 q;d9dBDN:4*7]$7;G'5YA,]ꭥƩ%ɛi?_\'(0CbΎqʛOo5~%\Gn5hR'Q>㟟FN~y`)s^FϘ!PHio >RD:$u0pp[  p6ȀGbڔBJ2T(*&þ{N@ jVFibY@ѥ LW 13J D;$D!w*|>bf&IpK\L4Yܤp# Gqyy yіyEh-[(TL!p/(\Ah_ݔ)ط`)I ZfC&#drP_3l(!Z"-죲um:^)@byD!kDFa'&`e>"E|)$f3V\AfE_J#LקT}vqO*,IeΚԆsRܣ U^Ӛ5EFV`Ԑ@/ bS)`1[F){dSaFMvB!?TN6/Ҧt7gh"ێ"Cmghr~j@EчOov-WT~Ev+F%k0RX˓fp-,7 )Rzw_R/>UD*M\vl Fʯ0ͪ}DViz#liw>@.6bXd WkV<;:n9P{5Ñ8 a 淍pNR 5 {ȃȋIMLՠ>^Ƕ_=-!o&ҵ;` s:̼Lܚi==}mmn`U:ňIcMݯiDuG+\wAQ0.Hy%? [7kJgLIDZ/d60I$&X*rnz{ݠ7c9CޞroĂ6}QݔiW#_D* oaꁹ숋, [:;60]&> Z_%0d_sl&h7x6ၦa/#X^R^"&8f0jAQqW00+m6K˯1?D9ΒX'3 1:Ϣ(.QvG;NmyrָvI9BIHm,` ߌ endstream endobj 2621 0 obj << /Length 1828 /Filter /FlateDecode >> stream xZ[o6~[eby NK0tJlRYIu ؉ۦEQXύyG3[xH"a*ew`γN q]m;8|v~c])`fSBZwʘg~$Yj.Qf9OgI/F-t˒xVzcJ<2zӆ^|.hʥ :zQ k+oI6.E^ilj%ԗ+}4dz2q|5] GK1vZ\O` rGc7]A#:^O^G{frHK] Xcjf鑍k2"`P$5 ]*B Kڵ"6Eyaghz jb.SB$#Q. D9.sJVt!(*n +14Q4Jm ͹CFרl.ׄSQ\" =u)K5 `"m(E\#(yuycI Ntf؃ @7R%!oX]];mJQ/`@)]p8e+rXtT#%aXq_958 ބFQkwXPۇUc@&Azm {F"R;Fh 4v1\c@ aНg}RFG(;9l lб.3g.8nE ~ 7]ݗ`:OZ+v[#P dKuwAi- rp]F&W*3;\K0.9/GV4$4zBzZj b{{w7A e7 ˮ\ss#nR[b 8St)JWXVue0Ubdž->"yIf>U\ATh]ޙWvsEFF'T(z"RT+84cULr*ʮ9)}WJaf&ʰ| SN,>/ SiDɃC\̒'h sI`ݝ'C3{gI׋d?&M%tΧ)_)\& xw7>E\H=1N:o+$iXa'l|,ZjnM"jb#%B7m!ؖ+ AQŷI60jwy=v{<55n;tY2mR3 gӢ.f.\bnVH*1AB5Vf3YTs?HCvL!j'ĔjW͛1d8`TFpzEW}Ýh W;qCo 4IךHÅWHQ> stream xXYoF~#=]!M)rJ$)@KL"Rjكib)0 p7 $Xߋ 0DK%sc΂EA76=yrNx@0JpB"P10@`:>>M_v8^gzy@'p\#%Qƃ {"d4蝊ƾ`J#ߣ?=v{6kF?LNj-GT|VTf35ou]ma)«(0-'1„Wjn_("R Q͛-F1ƈPD"׭X߅e(6'D)E4i01#? v{N)N!H)=N;+8*> KAr>z>N$(収taۀYZImv^63A "k4D%HQ:eC1Yu2onÍ:Y݋6eEͲI뼸G6刄 `%ce߈0+{B^*]Y$s*D~rś7N!A%jme2@<| ŘG?`\ة<߶oVv-?7n^=;+]Y=2k%gOΦ'_NI2A`: sl%*jN-c@بtDDQD<+/LZ,զev}D$Z$Q ;_MGO>;;LwI*k6W뼕(V.L*ݎq1]b;G}EɛSs·#)ç΀7Z sΰ3zLp]2s-aWgϛ"/*+O\gˬg퀏 ڡ.7̑v\lʙ~[%y^.ba | !& x;kn:^Ue>l{gٵҕKP++nˁ# cQKY)]|)S_\BW.HM/OaqLaT`RJWNuzt,\F彌Ph8iO> JeNiqWS2+2@  Kt2D&(R#ʐ$p 'v'0!ʊq'-*y"'%&,V^k;jbݰC*$} c;WKr%< a-NcI´(}Fb}IUHH6 Wf ڦ{Zwlײ;Zȗ\aUi9ww)Mo̐} ;(R<j\Cێ4Wו.4o\u WR dOt9FUĪW'p0d%T0yę]˽-Ҍ܉A1Żvi6l{k6>boơg_1܈8n2'$(5\%Ɍd}Slǽ12m3@d^ ׉e»3w׹dPܴ~2q^iBfb?_DMܗt DD=6oWAcPx~}`Ozm E뫄{ua endstream endobj 2629 0 obj << /Length 1512 /Filter /FlateDecode >> stream xWYs6~#57SKV:a$H RH }Cc {|c{GOƊHt( #zV {=<|))ACW)=2ƥ_)d*?RI}0vft2dScOO.9$1CQԛ N._g- S<ʠ>d"ʛrN8-KUS{.,,O Ina 5W7#._y7R9s8&AS@]II]7vII2\@ 3D1 /|MRYR/enEm֦:/[`߫9ScgnߖNn#QϾ_Z>Wbm]|5KhUfeZf<EiVtԻƴ$63vctdvI,҅ݙmrӪ$M $Zf8A1!C# X: %BvOD5ί./_:kT~ߙQo|NpwA$ƾMhP$ U $a-斒KOXQ*)[U: BCI"'xKH8hB]c EQKѠ hm@4QI"ğ#Fp9[Q,r~>MH =#!DD!Л*â(S ;UJppDOtĭ'@U ,Jd1%5Rc<$A1[‡I B.(/%uK`+}S snJY@fKDxёLB̸Z./"qI*j| ƂDIp:de7O/e•k׀YXjADW;4V̅01h ?.>\Bl"CJ}(1(jo Wc6ڃ1G uݎeIAxN,FgJҝqhMrإDŠviJ77QSWmv;pZaA3Xj:֓c%צ0m .F}Vuff9vc)!l~c5X2ǕkvT`oW׳~ =t7m@Rw/~vW\,K,L==|~r}š& j"?zKxWC{{yW'oDQ?[L7$WxBÉn1hT77̂,0AQU "`˂k\cnkk,]ojL]e޶"wcX6&îI9~7 L fj8; _HpƮeZ|=h.FGo!uǵ$͢x\x=qT v1ڕ:(Cw endstream endobj 2634 0 obj << /Length 2476 /Filter /FlateDecode >> stream xYr۶}Wj,Wi:8inV;s"6HMI)2t3 {/lt+ܛ8oٞӆq:+e GGy}Kz3Ͻ /,Ui* Nz&7?I`If᲼lW_B{22\߆_X-Ol4_Ph_+I>lL߾w+=j_Z@*/.?;<IHGVZƽ }evU٢?ЕXGQe6%2OQbL\ I1WYav‡<]}`Vm˔eezϼl:<ň'< M>r`>^*JwWHӏ49AakԸ)I>^`\eF-z&ly]d,Ţ%Yg48b[ ].dexn0G@7Z3 rLN0㘴5&lxr{"#zKSԣX*Do<;oޛ%&gTuɻ:u'msUaPF˴S`4x-FbZzMcH0})%2ꊔt hzlKΔg7iY⮻*y Plyrvb;A~8AӔ z0H }HX"cʇ)@w /yl`egĀKSxF)Y."dj)]o  P:9 Adb3"^ +ϩyT P +:+蠜Y{'bM4i`>/rNnpYf΁Fc!,s{CY5s S&Q9HL ZGtZ8<ҥ`:6fnN5;᪰ZZi)3)޸8fuwz@}8#[_3 d*MgX Z@5˾`Ӣ9Gߢ^ĻsDUQC~-*PfiŤ!˨)&>]/#+_kO£bOKcbK1`t}N1$Bv^$iǜ]]c(A Zs{ي5cJQOB1ɨg/1[eitə0_SZY*2'>Ѱ0Vp@GrlÁw|E  *'gq(dO(ҽp ҕ$we%>';@(QEbGJW$rIVi@ ٢_jRJTC'h' !ݚ:iqn6I[J(攫m Pn}y9o6 Ȳybj]׿hSm92zvCE.S56hj7a_ ߼O%{F-hgNz^f8F&A{3^H ^"^+dDS&(Sml JM1(fMme‘)Hs[_` +bUp2f$;r.=ߥ Q zx@%(o??;Ε>9oTo>~8&? Kx8Ȧ`h#>U-WJll^m Ϯr[6F:;2hѕI=x:W؟oFmTMsFk0ڰFRn*wA6 Al[Nf}nƓ ^ydwzOyb@ CA@I2ݒ;f)02E*gi68 d`UާBjf-4ݬXmzA*'a^&n2Hͮ֠7N5v9 a_&^xIhn@Z7'˻''b!ڴiT3 ,ىtkr yjyW^?)Nt~4{$M Pyk`^tD|3+-""CɌ̤[SΔP w{U/xQwB_oy\PGU]Bc^V: ʵ1Kxۢű :A3Rʌ[ը"_:,HX?ņ(d⑭LjieRU} H.MHlÛ$fz{efۅO0%#BuA{Hq =nݲul M%JO>8nF|vHƇv~8Ruж*-Ap*"a\Zn$4|?NkS endstream endobj 2638 0 obj << /Length 1109 /Filter /FlateDecode >> stream xW]S8}ϯУ3}X7J6,$N(wAe;Wbics|F$D|i݀f58Q( (ZmdHr|ڠRs,T ?.Nf[ީTljŴ.opBd 3f/ϗKKrugb>=v δ 靎b;ep;@- 2] >h,5x m">RrcwVb"Jq %@bל$>)z],]i,R]ϢXM&! 9.j }M(d)/oh$k0O :!Ր̮]q=ҊcB7ٖyM36I}/oV'W7+@~;C)_SPrAh5&vENIFnP*cc'VNg R.c&1YϣIN `u bdcfܱui.GujQ(iuZ ZIl Ңh_]z !z:,2( s[X=K&GFSSʌQJRQ|RV(VEF}Vqlѐ:y-r+P@Ĩ13F[aVY296;ksDfT2:wھ۔`f < ۷3UTcj..Cs5`=V_hx?y~;{ :=/+:On3oR@SL2_ס2.q߁uP[:*!&5ߡ[ok2u2M5m_ґBsXIᚂ7&WӭAju#~0^XGIK(X} )ۘi *{i Gp* endstream endobj 2642 0 obj << /Length 2331 /Filter /FlateDecode >> stream xZYs6~ׯߨ}(ȉeˑ&nyf(9Ж6bH9JM>0%$YOVZ% <)* N~Z? R4!lH2JN1|4'?\uLc$8/BZ?_ٖ܃ !_,򉗹fe14|^.l|[ q=^D! RJyIl J{,plH(aXWQ&tC` =/x2X" L!jϬBq5Do HfX7 JX翚C+FA`b=qJ: 1 RǶQ?'Lik9X>ldM`T%`k8O_j020]5s; ":6AFƬk {S߂wgpߖ-ZǓ{/P-u'uEl)I!$;g%'Ã\l"IM"%8hzǟ8 FUgN Lh$A~P` [5=ػbRtnMnM0r:-2UlOUFH" *\ xqB=-.W*?BLB 4I?~$ &8KbcZH7p)@)q_qP_Ȯl-E>jhD B7YȊ>Sl+ đ8P~E(t p2q~SLT|Z8{ $4t=O3wlഽpڊ@A@`njG#o%l!-̰f I-C&C$5p(2X@sՙfQkSs Z/St;4PJy]~"]W^..h׿cjCZfk\j ql *`"AC(wAU,(!̀OC ⪭'L {c *ҵ5g;kk(xo kBfC gec-l~!5kb*Sb'C;H:x`7Kr)/Sb$>TmHr͵6֢e|mN4҃MrmupN1d5ē5P~SAֆ[ǡHo˹G*m$2 %SM=joxXf.уeZl4J?YL!U bVr[棢  Z{Lvz3P48+em~t<9f^N/Nz?nЩ03q "v1)AE&+G7bcam|\\ն-eUuڲfM|qoFe^ " +1WYb.~" AkecL*,}qiM# Q\̫rWsa{aѕM.n% aNOz˓ݶSEuYΫ)fb[t;1OAD8cZðZ?g2|.`jhbr$KHsjA(8\*APGn>&CSl[ɤޓ dB<Ʉ'rɄIZ0):DIWif>\"\",.ўR$M&2$`AO߀%w#d|<237lK]sue A=W, *:۰OJqAOM@8Zܚ 6~ 6qˀ`^\>PIеZ$F46Hl<Ոf ӊ' vDzԥ45/|fy.V4ҫRECi1Rj1U,IK}-p-8v MP 1!WwF%;b% Ys Hra)i`, ?)xH\q-ž1$u:)O=[#/ qc{g{:UYyNr>Qby_Ur7J€CHt~Ph:$v h endstream endobj 2646 0 obj << /Length 1427 /Filter /FlateDecode >> stream xXKoFWHf5ة&v,@HE@d;(k9h] 0lÙo^6" Ï R\ eʣ*fA~<8$"i!h4EFa$4+DR>L"Ɇ S"6$w"?&c/f~yqj Fkb()R9gÔ'CƧghjE EUNSg ,gr=9lFnĻʓwW/.?i|5T*>>y{6x.k`ctgUQ޸n@/ʣljћN0SfefMOZ0UIݱ{*uįfS5Lԏ$q٢[+U3ru2p_,3@^rQoĕ/7*"¾RKhGPa'  )D(y,Q3^`2^ƃ;ƈH81?Y>~6PYeĠ$)E4}^*"5J2R)(<@x)}sn*/M]7o4zQ,͢ǫm4فQ_4^g.m 6o泼Ere@f^`U5Y9 ЃXЀjY$ jA D?̟&36YVm ܛV(LoX1m(7P#&Y!UPjɑނbP S$[ FmoNV#ZԪwrzπ^ ;qϦAPzKY9 97)pb<=ۧ0$#L/S-5d]~lndP8{aۿRMiwx74gswpn~=9w.YOҫź> stream xY[sF}ϯPi)BHLj+:ldK{j%Y 'a0.~*\ӤL()gƚJEV&U'(iw~d c)œybxb% BY[jz4ft=lv|hnA\1"X-g 7]&3,Z^DDf8Tm"w0W5uĚ7cp˾YhL$/hMx76}&q ADc[V!8Cq@V)ml㪷Nklbehk웬dKTl[%%s91ƽm Ἔ} #D:w/qgmZFʯ*+fy5yQ !Rp^2Ysp5H4ym6m gK^:  rP[WÙW~ *#p~'U^T1(M{?G1BTDM\>E$ F C}Hń@|G3}rUDB;H%֙]I5VDA֣jMod_PDžA mA&xAMj|oCK=U",R(.zNȤ;'|o'Godɗn62h;8D]2ɂ5]52am_U مYvMl?;E;;~;lT3Դ۟D7rGc,"{~M.[ z(lĀFE\؝W m篑Ҁeh_+  Nfm7#0}msjarÑgCZQ{zkحȁ~4$S_5+B[,{OFu_Tys) I)Ww6-Aӌs`Aq2aiӽiFQ |.u)m.*_7㥜5wXyǔz] A'<vk|\ûc;ib&c,v}3^U٦y< o8R`ˢcGUOu7ϗC&|c$H2i=oDOgV3~r#O.\Q>fܽ )a@ٻ endstream endobj 2654 0 obj << /Length 1525 /Filter /FlateDecode >> stream xڽX[oH~#aR()+(4a]@+o2iة/}xƉNKA,ZΜ;ӫ" ?"\*:Xo0lvA2i3,-aR*jWu:8;=H,1Үa|}#4%*J0p o}!bE,,hʹJ"ШRRCф"*>6L0 #f?QbDvM`횓׳Hp<*<2bHf5:]@$ H&Y'?+#u)f_5@y7{|npPQ > 3UH29}cڋ1ޥEym ,,û}]DD$nʼ  KYCT'6M]n6ea>dzSXIϳ2[gՈZ@ "ĂC1bgLbGn'$OGon|j$m}tj h§N@(6H(fEfFpvXs>H$L`Pdτch{qA߆qSnؚD (pg![x]A wr !5]O~;B1yy2Jǜ6bv}] 2IG%bb|^|}܃F:毲h,׎cd݄TnuXxXL}ͧIԺ嬩7MmE<:3, `겙h(d`H\u,<SD70Cȣd9IxDK&mjp832s-0ۋ:U4`UľE`Şǟ |26e'j[.N\b"|+Ѱ+D^_xN1 0) +{U Jvk= o`a* iܡ;^ {}BŢӺnVuYev: ket1> stream xڽXIoFWHd=8+EĒI45RB=ΐqhE1J?DD(8axV {7o1F)Xy"AGɏKd~Jz]M"g*jLY^TRӑUBM,޿:`FIBl786\fӫI, #| l/.~c3= <4];N5;,DžzPˌM T74ei o<˵"kEܜOT?288]|=`Xp41t(x-%ja^>>3_ >֬Zˇֆ%uF<|84[Q{vz ,ȭ_NAjPet-0UnT'u!yyZݪz?0~_<:K!sx]# UWe/R=<7F"bS\ V3ɤKkf{ai5c+/~46eCA]xh <^h}Yt@ݝc5l:ʰIL0ݚ#G sQى0).aVGlۅ #r9 8!"&\7XSffHQ!Z[ՊU~omQ [_z^ )Oe֬̊vh#*T2΋:tBF _=2j(H7?;v6b endstream endobj 2663 0 obj << /Length 1441 /Filter /FlateDecode >> stream xX[o6~$ fyI}ҤK%ism%H.-[ECwnvEXT9߹~* ?BK$T2P\ cwAj>q4a$t %"FcB7< wOb1"[3O,]%h,0/I~"i513_LO"㈪tb/=B$R8Mo4DbwvT[bU5:z;}vv V*2<>9IP b d}`l;iO$ wZiVlܳfG"/lH CkgX;I{X&RL˛aff"阀(d(9a|yzsr}~5=KD JJrW&@Oέpf?xI wДz8Q1BA]gpĥE֥-yyPp?61D=l<[/S͒Y^9.҇ P(J[A2V&TFy)--=Zc8I[&KG0ۙ,1~o7iv8Y*X׿E&i}r!2ܮfoJCpx`)JE j|VȞ[V*7ʃN+ zhbL}9dz#Y5 ]1T[ ǁUoEGE8-R `;ΏNO#R0h\ Q0a=0`R*`܌޸Գר1d*x @0dAE"F^4n1TeO31r:k;W1O.}-N`Kſ%WVTgi뎮*s1vH^ hgE> stream xXKs6WHMLu4[L@SÌD)$ۗD*PiC\.>|؇>,AP"*KBDA]A<]?<Gj5*j;^Ls(ca.n"DNPivedfԷKt'Y}՜}:gtZe1NxmCl3-#-zrEhOYem.4x7!%#uBx(W?Ӱ2nbb ;`)Dr~mތ dB0C,.?+Eչ9٦ i(>hivs1ŢN%F@TQw9T:!7B3t%k}%'wo=…o]y<(@Y`bR:$J̧iԝ$\(HgLSѭsJ"`;(;B }m?CDdQ*ކHp9}>*8U\I۞οI\pFs$DBdS~PnSK ,Iap )k5̲N{^/I^sfc 5{B(|N;SI" ٞD|Pmd߆(߅/?X&$c\z0l/|\BK)PL3%\E( MWUޖʽ-j/Jp'@% F'[*0l#[TBF'Z( os X;]u.o3; 2;|XE^ܔ|l4%)~V)0e3ԶX9[Dž &sxlf`lN>fsqJrVdGCʁԁpq%tV߿s} *s M_œ >03lʡ'wi0y(ňH̓X`tovtB$a|ˮg=skƈ& Pi}!s2htyՆ|'eJׄ_%1(U]a+SYY.r⦚Xn7E]d.ڡa`]- ޖ]+/^I1k]{Xh`mӉKo`!@zN|W @>HObY/aؒ!P;a=hK lDvGIiHF*.]a:> stream xXnF}Wojm~q\)8RHV R(:_.%R^vbawfvsBK5) ($*\ ̥IiqvB>=9$!!h2'&a$@h0Jާ #{}BHVY`qAƼT 8|`ČNKg G &{oc!fkx3%XU9(ڃ^_`6jb5q*6MCc0~r#lSJkaAtpx~,}֣:}qxP۽_ J cTlꂢk4*U>/_[u6S⎙mժ1ɛw@NzJΟ>/g3H25ڛv/W3[T-mkv|kܪ/2YnYم 4 Qa)OOB?`L]x{#N%nBD.U:}Zo"D& `JCIˆR ) i 1]Lum $F jҟi@nl~ `Q8! b䐻Z&r#Jݭ$@S`U]~GMO8?bo @eGeB1fken`nAK19%!=iKD1hclJz Ri`j ­*f(:0/GA^TҖ7?2,gy5?DHonJ&wέ{õ_F_qi}t//nor7qMk[MvSb fռ؏M9ͮg%r;'HjNʤFFS\1߾I"y0Užw$wFꞴe$Rep|YueCs](@"Uۼr[puh_'Q3xևfJitO=msi̧1Y1Z9 ֪N{$넶FH_mb;U!h#; qƮ<+*OIUhHRnŃoD1,"ko Q O#LY#t&-ޘs=&\j;3. qTL 6xhyk9Vkd3n7НHzZH` (Ay ْHq\O;7MPVEj.0#r XV]`\¸fk# "]wd%L |0oLh>nfD}}.N@HDr7 ?pFf8*݇,VMOI YMaĤIc;C;*Lp4e|M7G4, q ̳*nfe I^/Y|#8:Rv@)Qp Z=&4rvO./W0(HD 7` endstream endobj 2675 0 obj << /Length 1780 /Filter /FlateDecode >> stream xXr6}Wo4Dp%7ypc;J$a$f"/Ӈ~{Rۚ=Xbqvu@ -( B%HD&aKTYp ӽ9 AJLσ HHL P@ M ҅4"t&/ ۳~^k `UwǯM2|3I? 3(foz V2+Ӏ⑛ jwΞ~o1AZG}:"#Ńw `2;]?pJHl<.k) J6Aq$R<^dħQDU|`r$b{E}S٦O!)`ȰM-!q|i_?Nπln9]|-Ǐ7P]X-s3z[J 365jvYݖ'yYu*&/2-vXԓKF2"].CYV^WUwμVzV$?TV\dty5N:]fYHibaE9n<` ݘYtyY9"Mc}ho vY08$He%k5ptXZU.~ΘD𸰟KV敞gYG#lr[]D,m ysW8f#L4,օE)tI$#_Q%SCGTCPKV! F1WiuCܟ|("ׄ8_#.UtyMQ9 M'z  /5P^ AH@Lb1uIXSZ1163 ȅ^d^ "롛#KCU?Ych qw#v1k;[M~>tdxN-IuY~)h3<6G#qHɆCpQ;lۥ*φXQwZrWԲ6~Gx7BUizr6B\WvY(:{gԶ1Xw}y0k pBp떈Mh&њF]KR7txQ'2}~~f &gVm-}l\ JV?1+++t`e@0'J{i&*7 \S8m*Ʈ ;(zPm\@/rZװ>|SDRˮ-6NH] _/|n8PX"2ݜn'@6ݎ֭Lbb(~zث~,] endstream endobj 2589 0 obj << /Type /ObjStm /N 100 /First 982 /Length 1435 /Filter /FlateDecode >> stream xXn7 +)`9(EQSkvv쬝\lRz(%" 1$r $EB!)@aKW1dj) Z"|>!ɡ$q4"D -7aǹQB"/R)dUK!I4%VpQ)1b0qxL1 Hya brwOϿt%P&2 . '^n@b,0($ItMHݓ׻X6* JJȠ2DdSEz2)N%eoಝ:HpxS>D|H\Cc>oT)ePmJ bG(ieb=*;w3Q"KD],&ޝhVDAJ9:J'i1Tɼ%>-ͼ%í9TM&ȕ,J؂] TbU<,;V{d kTs8E[[3 wOs6sJr( va0_$ʓfچ/ʜ&K߸r:dp2,z >b.8Y&^h`6ă ,(`?ޥ24۹zeL8NeA ݮ ja,R.`e[p]=GoqyVyKڬ5Zaqv$ɣв./́e}'+1XNVBeuP:D=GymExr ;|/m ƒ΀YL)V/OzĔ^Zl3 kjKm͢mޖ̀\ w<ģtT4x:*$QdlMflF/f@CUǵKx>O?ܛ endstream endobj 2680 0 obj << /Length 1282 /Filter /FlateDecode >> stream xVn6}WQ,Œf[l>((w,qi-XCrfxC>[zkKX$rCőKyXYyB@XOU@-J$ =k]XgE>qC0Z;r=B^h7JSǏB+ ɪd|ꄄh-Hdz+pJr`zzq5}b^`KF^d94qhOM(@=^D*LH>YdQoNƞkO{~X-V5OUU$P ×*ua}v!i7BbwJB]5,ULj.W9OK-ok.FEmYmL!,̬cA{bRǬcA HHvc̅mlaں!8q(p~}R /Ir^1#ՍG#p&gh#8"m+ҟE lx/vOG3>X]/ۛsmD#"$F}*J`{SѸQjL8WBr=3mQ`[.͸RJOרR]0c =Qw瑽_*退3.gӶ4 WlZwj;vs}c7^iif3(&t ={ض8Ín#Y%\5 ;A|HڑдimS$Siǂr?M72ErVK |إ>uTe+S"'p+ů8}j}{ۻ/K $ȕҝ =UNw%ŷ] Oˬ|F!@ObwUYPRjO#+鑩4;M$ {c+F]Xԝ;a4o=ūc0L8IGWHݏ yO4:E^c̈jD갶'uX1){{ &^ש~m9%c4@}]{ p h00{<0~V .EH4?5Kv* endstream endobj 2685 0 obj << /Length 1504 /Filter /FlateDecode >> stream xڥWYs6~#Ց8rj,3$Y Bq_]e*qAhǷ wM 2RyP$iDH̓U" ޜL$% +( I2^h^MRכ!}!)5|l:?Zx4Y"bY,_Iu@,{I[ (4e dyi #l4wM!^pR@բUIz/.^$,JS|zs9*v\ Q`ͭV#$wrHZ!F.R_1^a1;3ُi6=l*!Vۊ쫨)m!?|xiX?<|yJDȬ<'C%d#d妹>j)ڍ[%qV}Z q{"!&C]tvqsa~ݹ3wx<"pYCpaGz'9 +2Ih z 9Nƒ \;e4D; g,س#jfiqDHUk:t>5ALX^ 3L?bSckbpx7+#U܌*'N t2h1+$6?TqG$T5.3lelf]Uւ{wYY'&ޮ5j}28bnʿwxP Z&)2,\WQR,Ket!PTAc@/(KB*'rh*% 2{L;u(%8Hb-[6Kqov3.#>}8n9f:e?=`d20XYUo+`lYm$ Ik67g6`Wm?w| x: mzlo{׏E+$#8PhJ{+͐7ɮeJK8D8ڂ:hYFeYBOO*{m:z[u.޶q/O&moyoһ.fNegjkԦ_2*=~b-ɷ#-(I{;4H{:OGiGz||˹x!3vN_;c0Nz^>7Y ԏ]Dpv~8LvO-_[#XO- endstream endobj 2689 0 obj << /Length 1078 /Filter /FlateDecode >> stream xWS6~_GdY:pqLzQgl9ʒ^r0jv<;{t0#A(8`:(qk1ش\9ܛwGp列˟f"~^u ^}B:Hpa<)+{aV"#gk3J%*.3 6_z~F#C{0I^8~C_;ޮzZ&ET*Y7*SYEۖN̪UgzU=kAxfl"l Gb]QHUC:!zn> Z; EkZi>7k r(/+ @4y 30KQo0:Ws[#!zujJ\L\d 捖ѴS3obH:447rw\;wF1懊]_r} Ъ½ ':O> Cڰ "oqB4Q)%PGP2Dq֩4,)06#ZQ㮬zF ^ꊻRǍѴ- Dv3no}<> 퉫VECohl̰TӓZ&K4zPn]Ւ]b̨=3XNn - :r K}eVdN}>!Kf%͖bgd󎖰 ΜV'u5[&k{smsYuРKk g^jRdӽb' nHڌ,w_Bo?zI5 }CI~>·cTVF_%=kwou8Y(jNHb}{Ul2Rz{[ԪeY% [5@黎|u99E<8qFsZ) {"ƒáT endstream endobj 2693 0 obj << /Length 1527 /Filter /FlateDecode >> stream xXn8}WQ,>tݢMmdNȒ+wF,ɫFE69Μc=rŸ4QT "TJmwg>_=cDJqo4Dki01ƕ87fc2Zb_&Ǝo̜OfҞ(DP(hf%#kkfy}w3 1y} }-hM,,u2( ] h_lDgiU违h_]ԋӠ"p ?`Ef8Oܡ8i>-M|8 zΣxR+t&Iweęgq]I祺(1TLyxsx4vznR: lvƏh6pr~nckBЊ~ r#r\> Ab=8[}0v'dYvyfYo`2I&CZ9cNӺȝfwGu4f[c/XZ6 UFߛNbA/1Кu'kہc V%xFLi>c\p5ښ_J(ս5fvz 櫇֣vP(d,!)<3\):N0_@\mۻ~!]]BfmCwavٮwNiWWm ]/ϾTgaNNFjIͼٻ'[D<[{܍'=v_QAIbcïlh pdk;شCRAImpw4ܝĹq[v6MVqHusi{j NSH)AAs;#JPD~Aвͷ=%EYUBM~E0[3ϭ 4mDBf 'm#CB'0pعo2Ryn \$۵p-ZO3,nGD6|9/P@ .>/ǎ':z-CЀ9UC֮PfW4kWi.mcp9\uN[HֺܲcrcɚIO-URUdm5<4c G'"c% uJ9 R#Н۔?fB03RR8=qY(mYQ.{eU/.gATcZAiߞ@;!ܼ$!Wܓm̰A Є Q6J}~).?uiwSn+# `2[{}}0(bUt7R:xfIS8N v RmQ)j|(cOohGWWlllQ!2щ>L 8[{T5xYT6,%~ nl:mifA$_͇Ԑn Ǯl*~_Շ׻}$ۯ[#Gya;i_ LB9#a;누,A<v endstream endobj 2697 0 obj << /Length 2221 /Filter /FlateDecode >> stream xY[w ~ϯУܵ8M>d343I6t۳Ŗe-#I ,9t.93E|@[92DRmt`bIhLTY0 ~9@H󧛃1 #<ZP"a4-ԄS32| #e(Z^/7$"8$:x ?`FIBj UtdDx4&<>kmbL$\gD+e97rS%h)qKSj]y8]=b=d8UK>?Zè]]֓۷2rFYLj=[9HjE۝@Y*O|YyV=/Sֻ]o`ew63tΜg[٤ZeӪJȗ ˡ+1㘏y7DfߟN.o.?ELD# Mt1,q( ;y.,n=*G\Cz_rWDਜ TYU-RYF,˪|beKZE>2͟Vi}(yBC؜0 N8 h5gajsg哠1K1W"mB!hq Jw*,N12/`̧! #Nifil `>4<7+>iLO$&K+ᄁnɚ??U pp1A/(H{pOmA4-&dYiٹynU(-i Þ$a2@ >YjEN3R81F@e%!;#8 FSs `>w x# %! φcQY~)>q'&gV@{[TH̐L TQbPMI#Wa; 􁺙zqk{G߰d{˔m{h q CnZ%"_BeLb 'vPwQ^^Lw17m.~B:]6( o7G t]yk!x܃kiDs~ణO*:*Rraa !kA|HK/!Ux{$T?_cuM؄Z,rÔr$L+7$`зH(n 3sPz (DE('}(-qd t&DWwVD]*a {T%^mVY0Vhw)ztvžTvRS^OUT{j`ݯ\l]4l Y^Kh;_kt8$}/ւ"b \]՜Al{=u.^M^TϠm3 'ۋ{ MsQZ6Ʊepiids,A}{%)<~p>/w]1 CFpuH\NY7gWzyXB0Nnbً@sz֬}47<,950}ܑ:Ź{\ei[VURmO{ZܧSz'UBkxOUV,Zi5Y% _N9}9E[wi9::Y@Nnh, @N)̃B0MPA,Z=_ᘂ[WۯpI.Y%_nq1h!=l\q!M^N&M8f*WT0)& endstream endobj 2701 0 obj << /Length 1897 /Filter /FlateDecode >> stream xrH=_}x`kXHذ $f# LߞCȎv ziOHt/8OI,ϳx1gه;,py\$H}%0# nw1c6n]v|*܋/y2@bG1 fE OhÑ֥`4"|.;Ly8 PDhX#& ʑQd6 Ԣ05(,#n;(,'RPpѵHdэzB@бBhg@I×kE& Ӎ֬ϑb4 )%gk| ;/j/~hX.!T1efnNr[him"DRQP ΐp@58ZD5ݜCr 6`{{%XnۏH–BGl{GWh1L`CX%>ŮXT f7n[:QhM&yI (L?AjmǷI~OYnee@z &"⒝vf6*`Z)Sc3|sr *1 ZVmvoH7uXjG}qU}zڥ?Jo[i@Li،¹Z~P-}h`n(<P=[xÈnY#g= %A;HD]Wv:|/= ;0ޛvZTA8 d㰒HI8 a8̉9tqx2ssbrG;;ۙB"LSLgLD~x8p>JnDmCwPvOpVG RPRSw)n:-5e^A:Ow?{snq.(`%QJ]u[Wt`qVƃrRx:1Y1Hy0<˂;Cu *Ӄ?ΎNoGg\µnVNgEɹ8|IlQSϫrG#.8" =?1Z?Թ* R +'. ̜Mf thh .]NuZS<;hKUAaw&ǖ9(; gL'ٳP_Rct?qo¯<:~M ;Ju>:WXE2͒05̛}ު-;v@zBy'3:N#׵x:yg Q׸e!(]\zxX1؇KIk{" M8qQ36$;IKIA6֠ 9*AM  lEVv+/NA&(S\YR:7r4YD yժG$VJՒQ͠co ^Č7C嗮CgZMv"J\5XY,&Hf>n964% v2b6ǭzlyt YqIV[*6!G`|w|eC}糸Z^^ۊµi{kuPeĒCՄIǫ endstream endobj 2705 0 obj << /Length 2057 /Filter /FlateDecode >> stream xZ[s۶~`ߨН>Ni.NZ%HbןR J#;3^C@1"VH`U@K̓EO0 _Ó9 A4a$u{%BE1BEL-x0/>?Ϧi/Ma1s M0qL #D"sbx~Yx֣:|v~j>M*)D[J4l ~SU6S zGhߒ-߲5\7ET՛ӗop)]| @5L6eX+s7^O%4Y؇|bf>!/fWbiYU:N!c}[}0N5ū#"<*c2]2$7)n便&j>NFD˿fUz:O-훹cRZ"Y Uvz"N2*O2[\&dRf%AXA lBP EQ[̨O))%H#7B!JXrG<6J˕Wi ^k#F11fF%똛zIw#Mp-tA -~0-1}سҀ ^0J_Wѐ(C̎ʽq!.AŴx qఏF\jYCQ4a am@aP׹O>Ԣnv&@C w!=fv؂̊GCv"kKJwJ dB 2P\[cx.;>NEI¦PlONENvPs6ok:wAν]^y709׏Ǒ>:xƶ7p*Y2f(yaUIcZ_Lܯ[Nn~q<"fH i A鉈ɑsӗ; 13o&MX#XY$GBQnͳXb5hI~]H0Fr֫={%Z*2pQE 3ad]tUE<~{~&mCnЮZ||-Ⓡ׆tL#?l)Q*D[JDQDu@5|cǘ/"\nAț(ĉ1`4,$O{$t/F<4}eoM,mMJ4$,P  ˓TLnu{nvvZD ɖ7h5_d3.]NYo$q7&#ND8I"4M>ϣ<'ؾsXp8),=S Iq7[)0| bn4]iR<׻;g<nؠTIjF1)znM -Zh*Mo=.MhMZ̋13[,fp>7bVݥ׳ĖU;fU4XݙD&E| endstream endobj 2710 0 obj << /Length 1504 /Filter /FlateDecode >> stream xX[o6~ϯУ T,: XYҭYc7CAiG,~7r"ͺa!υ|S>F$ZITE~D*QQ\&$&rT6 w&orPμY5viQg`&[ALq0u()^O_'Sse͕OWU>MwB源m6H=f6=Z9Ӻ uRmEu\o:[4l@:o!CT.n2ui]Z^;JWSf FͲ^?q6ro#1Ul6z6 A RCV;Lf\xC XPLHk*17!c8wʺZ+Z'EqKX9 XDF49磹/4aU7)6vWazeD>őK=å*l$Kx?q!F^" 4H*AɠU KM{&I 5 őĂ{=B)7EK$ (cOo4$D3t@D]1)2W(1NИ)DzȽ`Q9&^8cb{ˊBF,۴3> stream xUn6}W҃"E*@RuJf2ѥ}ة]`[,@Cz9s8QKT""X$R\`QO$tOf"Jq(CIOH̨p=JpY׺.2p ˪Sm׳,'9H@"u?Wg38by>$joh1s\L9ܼ7Y"dy Ҟt_kc=𰌖| ujU$Y9Xwrۛsb mGC}i z{.uiW\jǍ &$Z4s|A0(G;f,~C`rhb6_B2]~L):i !Ffj~}IO'5/(J(-&>+D**M9ZNW qPC4>MB&$ۮv-*ꪼ+lX:٘2 v:N6OAGј wx$>.X.%gal+ݿ6"x:lzb'ShOPc5i[=%8]ϣY"2T;qk6v'0v9p3GPQLnְ8aKmI5=a˴0_euScI`c]YUZˆgSp'sLf;6Gx248wZ_ݗ`wQQp7*3nC8 K~3Iz.x]v !>qʹsAXz3"A TIEx_ڗ7 endstream endobj 2718 0 obj << /Length 745 /Filter /FlateDecode >> stream xU]O0}c"QcqƠee&L8I M]2:&MU{qE7?B%")9&~ }T+ AGqowKD IHQAH09DStde[}qg4Y>S+ת簳ۡf2cX `I%䖃Ȭ&/`8|Ex+/ {Nm wPv 9N6#_ B1AܻNem"9+RaJС 3zgVQC=L 3tZ=<L.QZGz<3h_YH6 V֣x09ZȱĺAu ^K4j/dīlIΣAv"v3H0(H͡O8=w14Y.SWgyI\a-ֽ_ FՋJIʩZ+5 de`_z SpeVmif@;n2gg΋ 4kڗ>\:-^5Pqo=.a>PkA-Mk*X} endstream endobj 2722 0 obj << /Length 972 /Filter /FlateDecode >> stream xڵVr6}W.@-%WNr,:LJmL$R&zŅĘjԸ j{r03|X" C" D#PI#d8-F1&( ͍  35E4ުwrr%+֘]Mp~FzOĐ*^B;YM/L9Dء 4bdqv3NgGwQ{ywa2ʛcsiU]Ah"CobSLQG3b8Ol>yC(jS( R!@)dm˲\qleպC] mn&g qH) ~-ggU2rgMV!_.XD%J{|CZie4}dcz֥M;``bv+kңڂډnb  co [@B8آvvXeS?O 9,{Y1!&Iҡi}~!k:"պgBDiƋ >wq9SoRE<i{"b-"xvXVUn(,du' rel.?yɅfm²Z*ySl.o]1wDcv5VF:Z&2˪w NfB0#Ndf q yw3ܩ endstream endobj 2726 0 obj << /Length 875 /Filter /FlateDecode >> stream xVR0}WўVBiN/ 4+hdҹ$E xxPaITP $&4DG_FcA8)'XQώŒ1ףIJ}Ǎq%/DiVsmLﻞ$dė!uF9%8$!58Ì64w\8}ct3HBc2n=*&-ݱɶt<}~޸yqZ?殔c)u:obG]49;ݷ6T(S}8Y;͕6 Qs]$7mM~0qmO:-p.n.0&<aVHN}HKwo(xvsk&KA" V߽=E4Sn#`B}haIL͖A?LP$C;&V؎9-ot>ӕ}bp*x5oq46(P3"%9dCHp?BBqP7@iA<ȃe>e>*yIg?tè0˔螥Ntἀ]90)0i S$WvYܸ҇m*gٚGin+Fq2,wy&h'e=1]U i@%1 bi_^Jc2a뫲YUUV?t7Kw $jGt,揈rH^9zPhb;&0dk;j̟u?R:`6 #PAi~q endstream endobj 2730 0 obj << /Length 1024 /Filter /FlateDecode >> stream xWnF}W#p/̛,KĊEAV1QQyq,BM0 ef왙CQ_5"'"QZ! LBCTD=:> stream xW[OF~ϯG[g}xۦVKxWUM u6=' *U+g<>\;32# 3T1c RQ&H5a(z);@SN`TRwQJ:w!_VCn^TډM+nHhoiVE:C|jEADMQOW^kY>F鬴S 9܆CzH$rw9=\|8:wn(s֋%-yYL4 |hQ+O,Z%67׿FM0\2!SGMMqOWŽL=Ia >[֗G[y(lt4iY.O9d.y Ӕ#-mp~>6Tsl֦e"7k<b &!_nT l^`OM|rƬUq;*+tq{*"v:2:_22cT`2"uJ{MbWIc Ͷk BSog |5:S3Kg t{M*ÓpSʌ2SQ~KeQ*V=qTfyVҠ-*H=iY|zz7/ͦllV* sg?OM>o׶L{ ٪V 9PY`)q՛s{۬lNBV".qܬxI#RtԀq߽hրB \׳ճf5u Qm 2^ EQֆ D7AƵB]d/Mx`5DTfi-nMSdMUqgͻ6Kв_AA endstream endobj 2739 0 obj << /Length 1162 /Filter /FlateDecode >> stream xڵW[oH~WFd.}YRhۭ3Ħa)?~xl`RfEs|眹|41Fb`ぇ8|]+|Ȥ13>v0,Mnҹlc230 /BuZўkTXU>ϳptĚ眖| 7`!I2EٽHJWPX7鑏NLd6:RtU#j,-T^E/Y%tfq.m-B&E.Έj ׸9N? o'ÛKm_v6*&M"f 2sJE=>L9 RU4W1DeA#SaR)V0jlD*3Iq/{+t R2`역k~" ٻ4$SVjNۺ QBj[%@q\Q53s}Nՙb3Zg"0r :Ty8*k?7pWzY\Hl7G 7Ϗ,Y'R>kD=Mxˆ:_ac P9\`B0Ɲ}sA 823{_Oyk|u='r-Q'핽-#{h#n-5z;gGȅ>d/ȟַ)o*)%"-z¾آVǠZp ~u߀?Y|@!vi !ŤeG&E\Q&/>w~Q]Yynj1J-"3n^)NDuȯpTR&0ognOD&HҨDJ4k⩔@N[kS %FCY| :n8/^[ 4E oDJUiB ҉J񋺹3(C`H'ވ 01 endstream endobj 2743 0 obj << /Length 1048 /Filter /FlateDecode >> stream xW]oF}Wі`2LXJ Vvr$d8@q!MTE=f=9;ĹN`*@2p$s_rΝa#v?_߅+NB:P'`  7@o@.zG*, )_VAޗYζںt8L]{ڰ -'X߇LMt xz,bmWI/UJ",Z@w /b/d#1AJ*j(\٨u8]yCJw4@'(Immz, US|3ŌVY_݁ZRNË!\@d!ݩp6m J%_g6s KU:.UfW . $:Je@AC[vC2Lu\mx;9JIspJ/h6Kz' Zm \Xi'Q+%˨L}@<^38.ldlyx3.^XyԲQl] U.L<Ì:&snj(u ݴX Tcz|a:1_T洯rREU*:UqVm\kGcBt5߹kct>憹ye3lXk|0} k?ȣ"ZRƳCH[(]iVa05`:YGTC*zFݙ'7ꝍ chӓ9~O(F9L!R*bĨF#Y=A]] o+|lBG4>$k;(z.TG٠3{,T/yܽ+;h_w;F5 ٯgG5Q^1MH'A֎jBQ݋N7 kTh'$0^hsfX*a}7Pt mZ?8)28١č o9r, endstream endobj 2747 0 obj << /Length 1495 /Filter /FlateDecode >> stream xڵXS8_O7L,7AK׹i{7$&i]I&1(jڧv0g/ܡ#HFP?|Ry{@:/Gu%13:!wBAC=;|7:x7O2r/{a ޜNgOW.W@zt<ɥ;mΊ̒j,U^G*i+,``<&:YR 2bjd9V~hKmZ4u#O?Oǃ3sCpudžu7G|{I9~WHĢۊ&$sṴ+pwyA'fqQ-jY(\v2R)2r+myܲ_B-zp`&ڢtưq,I#I9X!))' <- KW\qFF#$_IYVE:[qR0j,Vjqe6a'Yʋwf"d?m+CxnJ3t{yULE9GلX͸+y, QzPӢ2ty1,1JYeyP%jt Ԋ58lQcN<.{) >8|9`:2LRr}˃3u $l_sxNӎO~o$ yuU3 g}@6XgIǪNռhJ;3g0Hah3զzG$*O/Ѷ!a` sUV_IYdyⰠfeR%V8:I)oV%RXdᢡZ6 _H]^jS& J[N4@/`}U^QK{,eMQ\i 1):*Fvue ,Q EfcS>'n)< 7)LMfYDGްxqM݂nO[&I 4xf*ۘSfWwN FHRdL۩mnڱE 0kGmP2Ra= O!J!ɇ ж/hҷ_Pص,jۿhp]$O\jt 3M-zܾĚMJoB4lvLpuczEҴ> stream xڽWms8_G*@l1Y͓h@wnl@}*XjIa1ެDgfWe`JG8,@$Ač .plԕr;^0AЖag a.0Ž*S*d k,ʋBڍ ؤ2{So4=~@FGL!Xtsvb>s0b*pV3ԙ| MÓ!MBAVhPd٤JE& -#D!oc0ɗD|uC=\EnF {R ۣIExmc;80OLyz?&^LP*pl=nd˛0ˌʤjji'YU>K aBtia74 "ɼv.YRcaZG߃gq^ECS`udzcVg=9hu!7]V+('&|`Yt[Qļ%Ȝ TקH>'n= mx|z1jpAشΉ(&Ph9ZzC:Sw Zb7hkW4)3Xύi̶B:[n0FՃcmEC46ʬЩ7 GԖn)sO@I#WۭEOy/(|hP-FA{xti*8G֤WHJi!{5 LJm (ԀޣMoP7Ulw?r96֫_49HAQgAh 9( &BrC`c[Z (ܓ 'BExQ B{wrdžܻy ~ۮT}$$kDMpJ*HTX endstream endobj 2755 0 obj << /Length 1237 /Filter /FlateDecode >> stream xڽWms8ίG3Xo %mr$z3ms"xV 84LZ?i~?Xq,|a.G|*5>w00bb9t}`X y̳Èql}C)^'feHʍ$+sd=8_y0X(aLDӰx-+u SEfJ1r ~STAmV,6GL6(/ eg4z6y^ʬLyWF٥P_7C)⤲~0W7 T TI,yy]b' qaT\tNin+AB1@yUYTN "η%/*aΤVRɢ{F%}iWӣ?xY@Mh6by_Mjί!=v{\8uOFVkد"EEqH}c[フnasF=a9olO&tmcvbB5fٷqbR#J>h愦gc-tha!T^=j;G{Q5BBBSRidEJfRD+%k4EXӆnqB'y\..v -h# h(ZA q\7ueMIß橜UY"\8_$3pB֞\允 UhihGA%ÚTVa{a;cc; Rn)ƛCZJeQr;2]c*8@!e+y)g O^%2tHhG}bْT'1%^ ) endstream endobj 2760 0 obj << /Length 1812 /Filter /FlateDecode >> stream xYms6_FI^ 0~HcunڹsCKT)ɱD*^&H.v¿','uB5QTIk3 4~;HOf7(4[$paFƸJf.fgNl93mҰi^M}BM#IPZ%ӳbz}Z/Dh~N];]GEiT7_D73BFnr 1T;0 $9mNeo"a`nջ7ۋםL"kd 6m,:)~~0 \ߧg><2駑雫7?^d"()knm͍]zSnú)ƭHe=ֶ< zQ ;j/a,[칵XuB~<pE}k'mؖMԶ}xD84yw'[7[[obuc /bnM)ׄޟs4\%v$9䒁u;ϔ GTbnLF.-.!@1 Gp-D:naddJFzItB[ 5Dz *X#| W#R{GQY~aQqTT ˝I b _'\N\]r9;n?\Ng/$ˏ͢)fCw.gnk=MzkS_C <Lf9YdL$0==> @),/y*z 2^Ux/?0ӓ|q+}_;ani^W!P-vecbi 'ib n>J6,o*p"*A}U{Uᵨ {tC]bQA;L*+wi1tؼ+OY/m[VM]ΟZ* !@|:\jX&\\!b$<:_ؔ~;+ R< :ޞe4>4LjrYgPg0@t<)3p5>,;0QKuźh0*qL%ÉQ{\[*"TCYh聨/RYx*Di^.#@#"ܙWUGEԑ=|s=4tӾy/26(!%>˰` \UP_ڊ XaK,UÏ @0.#f7ZNr ~vl#,ݘF7(4KE0 Sưe/4o!!.iƶbE1sEgyt݌w >&tqXi.p ӵ:,J2;K])꟢֓4ui YF3v1=2bIylįq8b1!mlS}; :֩ ^ୂ/B5 %򖇄]S&/!v2h9ܜ?wsǚ0GnɹoEi"9 ቗" n:'$cN g( endstream endobj 2677 0 obj << /Type /ObjStm /N 100 /First 982 /Length 1404 /Filter /FlateDecode >> stream xYMoG W/X 9AC A\$>ԳZKk@po98$bsK9QqOWJ%s->$>-)Ԥ#ɪn`XZIṖhtXeX$n$,-k1@ 7g*/Zf|\a`(,HM=b{B6Y`i FLkX6h]kոAJm\M&raX2>cgxiai*1|PRhX /N'(刃`3\9,\JDHwZxC 1-Mm<5cV'Ȏ}ŋp '4(9 DA^^}Ni{c7\: #cn tjW!t"ZF‘J sw^{U;Q?۴}2m]ncvܜy<پ}M)?iHa$|8n EkKE끥P&>hk OEg(Gd>}Ct?L锶J}=u!cJU8Q`gt?Vp(ԥ+^b}0># cKTC2u}*zZb_"ZhQ!?Xhz)H/E/}yO{7閅t/;@dPML=Y3´#t+ǁ`90Mbz&2ո7ߛzy'_}AW JeI7@f󶭳43z]|.ĕc:ķ 50Sy5L(pyX<%e=ݺn]XY&@q2@⓹/3m٦ 4I!^LT/3j). ղt\Eed(OO2מcZ-mF_K]KНeQ7Y Pz<|">W*ѿbC<,4b[͢.|{yՇ ( 4K2Q s(CL;GCݟta;ԾyiCa]?TLij3SSy".| endstream endobj 2765 0 obj << /Length 1734 /Filter /FlateDecode >> stream xYs8_aA ps7)Cdv6+aX߫Gs+< D$RIOq0;` ΓNHd/ {YƯQ#Ybo Ih8OgU= $F #\MŪJ O_i'Ifym7ή֢ :r}?~r~ ?P@Jɳ7 vRBPF=U(*.3I<R[4Z-8k4% ֹi[,.EUbE'FĊ-zij87Y VgW}ľM*S >]Yb./IN,q/tڱ1hEK)VG.?}~rv|x|g61p*!?IUY,u(' ߪ_4QK/S83zZw_kK0a6W+ @]}ĄLLц*`HaXZ`1i6]p!?YPԙ܇$lZ9y|u5.fO׀J?)rKZz1!e\8FaH l?3TxE[%B<U;kWwȀ<25@89"P;D[!Q9 !Yn]s85m1"5$~؄ v-j <6$)h^ U TZGDV1?&d 'NpZ^<="F6,6T! H4L)v2#Bڮ`X:Q!Ы;/;nGe0 ԑ7w>| >8eMIe;  |Z CÏlPV[ m. W/:ҁ9u@j3{ ǻۂf6@"H}|/eZH28iuچb M#>{>TCIMqEg=)`-<@8NJDqnؒY0De7y]xXC+9zZZEyCs ^8:{kkεG. (as_ՅtUQP3t޽=Ulnbu>78k8k\z̗ymf$tiflA<egvCw 9g4Y=N8<=<>2_OeW ^$$$vD1V_4 ILUA fjK0gtP~Zơіa-h>[紆lŪw'ӭ{Ogٴh&$6HN.S66ǧ=lny6 zYeUzuM{u9fߗq0Så}W>tQ (,g!dt!ؚv,/jnd.Q0 }1!\-k;e@of9 oZfOaI~m*PQnW#$gۖ2B(/d(l2HS f endstream endobj 2769 0 obj << /Length 827 /Filter /FlateDecode >> stream xV]o0}W18kSt!e]+X7M&T|m{||O;C"’@@HLTh :[QGPD)d(#ŐKэ0(eft=sK$"Iͼ3-דX7< 8Q.:?,%8$!Շq^t܀;. vK` TmScD}4_GrTrٹ!YQ306ۻ pY8R ćeoA &|YsdeljM}5|6+=cMQ_EgMVG7';mgx;i8mO˨L$p$ rZNIjLgȲ  T}`/Ih15d:yR!.UEzsm'_؀|l\,0ڧɐ8|ⲞR^ęoem͕s'38ABPH$RQ15:SmP fǠ;a|zÃpR{]Giaiu5QA+iZ<Q2ktݘC> stream xY[SF~W(o/{is34m"ٹ~-k$$ ZIGgxOID!k"+R[Itܢ `kPӈQc"2<2ًWBEϘxxn;ֹrKQ3B+8_z}U[\p?4=OryQ\$Y\l6Nh2K.wKIL% gVۥɰd6L/d2k0q69 t)k$9/ Id?*zCvᄚund@`nu ߟo3/4~S^[|UR,$y~]Y#2HP**2(b4aSBHA$ ( Z99I.TE/81F1S!}O.}FO$҉odQ8'>54-[_i6vs8iת=`0¡&& />F 4 \> 1Ģ@,CԒGF.׼ բyy 1&^_Jtn9Y^γ7:YwP5 /gD0ww*Md(_:GXxP rͶ[oXGYĵrl -H9ػ{l,k+$(:Pk&%L;%Z+`atEyf[V+O"UVۈo:В1ZiY7+sv~{ggeRz l6LgeZiE;N 0"dy:OwuP]e՝V.Z.gպ zY7wT+W 1ӕBfdg> Lp<3zr? jֺ=5l&;o]-M`F6j_V˗4[hհ+VXeĪA+VŽo(l2'ݘERǥ!#;yBȠ*nY۫XV8FYc8 #SBl7:[*jT]1ɿ>&1^3W09%-nt5DYFxSrDVsOݜB餉uVc2nw3S(0Dp8tFp})%|E.? ܏ ϣߋ~=:> stream xVMs6W 7`|o#'r[۱t(9I&}I2m'Ex}}Dg2DO KBZHL21Z#@޵ϟ9pC,(\Xs/7O]( T>lTjB| wI9xРx9c2/[[&-1)CD T8}maX)P!bnI ;C'3މCR) V3aEaf! uAjP!@vm޼4}J1M1AQ"ZZ"Xp})*4}R&Ӑ@BA4xlJ@LhE^XY鐯 5a>_db]3+1#k.}gp3m6]]:yxuIC|؎@Jݙ2^'Itk2BMQ"&ߕI/)27&}|C@z@,"ZguZ wK qQ܏9Jr,c7?O6 0%d$aJ.MU5Om:~[%VLձSY(Z6e$G봤/sIOSmΧsAL(ɾ6< aڻ+ޜ:xB339$v"6nk1F$Ɛj͓, M#xMN[NR4$A$/8ngYu3;Ho#S-[T[l J>ywٲLb{d>2i%˪"T 4kWvt49T$"2o,?QЁt~v3 w[&AƯmqEEK|YΩ,Ʌ[,Mv'7 b_!xhjUV;B:e[c<yfMCNbel}_n M%C|on=yA;ZgPAӨʏpƶIn jYm}a}9q9|wɈ=doi my:mu;7Y{`> stream xXIs6W7* al$tzp;q:b)f PdaDT#{Z:x+}0(B OaI[zo&l2\D#8&| Q ɫsh z*zujdq .ZDb$1oECAHCmYil7uL*(sf},Mr;N*tsVUʤQm's H"0)2+&+ݮ8Y!ѣrM|{ j`_3Sz&gcV6 V& VIlIZ2|դx֍Jr ȑF>hDN..L 8!w7Z5OggW痯^>H߄A\ K+~i[3͵@NRvi@hTKJRB [ekWZOӻ=Nzj7nˬ*i@|hpNyDe`l`ۈlv1JF@=C|'S95VVIq:Y l8e2ka/]rV1d ۹47Nțlgʬak\UsZ ZH.YƦ*H _ʢOmUѝi3Õ~ 6&?S: Q )(\e7gHШQG uB+UQm.J'F eDpDW_Z˞_毮ݟϠz4ʕmQt)MR19OLzGBybP|={KQ-sF"J %n aLP֩,WbE*m:p{`3b*8g bu+'sv| ,=|'Kw0C8uY'TrGEUhZz~x凌~M3PU}KlvrH}['F} q` >zD;BCԎ4_ON3œQq6G%RNJ3vƊh6͎,ؿs%bsz}AXXnz,{^l9UY:,{Ѣ4 )!7V@`&BS൑@7"P>wƒp{[{h@i-dr, ǠR;FPa9FF] 80)@ ~i`+ER9e ;/((m@QĢ,ECn*W(>{OqiH'#FK?FQ$)QH!2{Ƒ﹕~BᲸŻQc9J)?(1FG Pr%\hI$M9nx%1y0ޡ'|(DN!zƪG懑b[dxj0~`td/ }le}[ǿUBȣ?ܧo>=CSNr*b&.D7DI endstream endobj 2786 0 obj << /Length 1327 /Filter /FlateDecode >> stream xXmo6_`1|E*C?t9C4vum $Wb~GEiܬ(abxӑ=K0H  8A(J{= Oy@!J#mVlF>|s<+jl|q_I2z?89GDÞ(AM/瓛d#*gS5kHP4PkZf|Vek簂)۬,`TLQ*Wct:}sl2z\OnD#egűF׷9\ \GB <5G JFTT#V4eU+})b[{٬Ë.:w:8Ɓ?_0Wo2nˊ֞ʛ4 B~ :G'ݪUtTZ#cJ&2{ZByCUY{6ۻfT٢C,Eچ!& dEY,# oɋfz=^]Is Qp$Y^4x@i3uJ .VQ|kUW?~[zHvmuB50 [/NX rƾ6P-뱋3w'5<clIvZKv\#z*!,@,4)\eY c:ʥ#=5DAiY="56@!FH~SXT0l2 RL3$:ufiOBa"gx4D,E  `\ ,wH27֠E[2kq*4344'>ABNOhf܆ZpeeQ-= F>xE܁qp;2X.t2 y%i7%J* n1#_JQ8uٖZ)HbsLo̗a'w'nw +vArٰr3 zșK 0@]k࿼ïF%pV Ė31QwHZVAJp3u:vQ͛'lΠ&,?% Utu3Վm^,͒XO%4]15Ms HvVBd>8 Q4Joco  bf߷R0ś7~0Roa GF!P IwPz>?P,6: "Bkpo endstream endobj 2790 0 obj << /Length 2011 /Filter /FlateDecode >> stream xڽY[s~ׯ#ْ؅;}pɑ;4%xAC~{Dicvp\ UPDJ%F : V4xuUFIBW8$q %4͗ϣO9FZc.tmϋl{o6U^6[{F4/'e5k82eDaS1c]Ui}fOl7iK*/M^~w_VE [k:׿ڕ&omn7Y/ZUU/2m*.8G1}%7]?.2_ɓn?S0 C!o/g/ooool͖}G,s:Br{i O #Jaw2SΉk>!Nw׳M9L/:zKoMo.2qm_/,ÑnP(.~KG @}2RE :], #IqVBQQltb ֿJHȬՋ^_L/Z" ] CgjɗAeCRKI'r06bRO^O6cڏwvmm{,t=iͻ8UR^ܾxO}iUѐ,l]bܭ/KJxEO^8U, p)eK,3,|B"CYCdڨd 57͓l~2΃S >I12L0E;+ VnF9ݳ:e^%":({19D].ꔕ PyN&JhJљIp ':fk ʼn !C'2@ [$4$>Z~OIb.`T3M8u[D2:ȖqlZ}#h " Gx#H}Y[5NՉgK{u7B DJ4I 9` ^ ߾&{bLOlN Ew'|0mV 0`I$6s] rFS!j;9 GvjVĊz!&G/a?Wx8>>i- l5\ :@<3ř 7izrn}jN=`ZF\$n,mav7OcH|#l s aֻߝ[gwxEoq&5*}7:vAdٵj+{^ %K＀MRC>Bha$ACA,AxS9Iv o?~O,y$0t7׻ l27iÉ#W|gˉ~S=dE&=fg~4eb~#r} endstream endobj 2794 0 obj << /Length 1619 /Filter /FlateDecode >> stream xXmo6_OZ,_E*>diҹ4v l8hЋ+M_lK$: M!R>{tGys?i63R*C#2f A>,Oňڑ"k/m@z(ek'v]i_޸,lOݫp\?eW_.( 99QzinfUIe/d';/e1v&^F?X_uE9]1n2NuVϋq~3;xaBH_2m R]8h3RDcvyD44$B"BeDk]k;0 >;5G֬r8C`ě(UIz gnNXdƣ *xStXaD!qt ksI8^]{)y%T?VBj`\v)i]Vv0ՠ!Ck'(&?7o`0A2xוdfUjFu-7{CtAn͎"9~]"e[gD6 Q;jB)wpɁÀ@5 6 m?{Y@n90Zp$|I7eF8;Թ>ʶUM$ _{ut>EY/\򢭐)Vl]p :} 52Z"b::чH'$Be-žWueh=HH?9z GUL56zD YUL .|؅m{}vdF /1* &/dxa~hDWplVH@a5ZɸLt Jn;Nq|Cת5Z\>_j$ StA;O8T?7}qcߪ|eR8bwzˋn`՗yA-yՐܹ{!xĝ'Ov#r[7Nٛ|> EtaPf黪*4Âl<ÞE}U=,Dx к}j,F^w2E;ΐJTM+Iڴ# endstream endobj 2798 0 obj << /Length 3107 /Filter /FlateDecode >> stream xZYF~_<&1}Iyx$$%DH$eoUjv°"ۈF+{?2S$*UQ*dLD-+It{W/DQg$= I$Rv[FzΩ$sU֌{leox۔uߙ}c'bmFݶX+o`A*ZU09IMme]%ۼ=[_B}ӻC)-5}Y1l/X%ize~,˪ҝ{p4;_[5>«7Tey[5u|i3\4vSMWSNчvݔO Ie?Hfe^em-6hcFuۦ/jd~_xMݷg1'3ٲk6y_,Tx۶b7?86/[~d]+y΄O_3GqR 2zxjQ9^l3,5ӟ;3eC5Kg ) )Ɨj|<,N= {1ky •Mux˵Lv镂*_7y;\_0R&eqƤ[XHÜ<1OTk_^`LvMnӗVALh,T5se97B)OY 9zᲱbqUò@KA0w )3ʜބ%cJEc8 e+NN+j3BAD|utYPjbDbC[VBY X^O"^)s|F"UD$O1㗠R(VH_CnCFpBM9M 0I:P63z 8 g)Hbd&sL"KEEϖGb7gJi>g ʼnнk~5-BP.a\Ӎ,)9f7IOnIi[:잒T23]9m21s*Oٛ 6}!CdT["$@' i>vaEp6x.Sy C3 endstream endobj 2802 0 obj << /Length 3262 /Filter /FlateDecode >> stream x[m6Bt^$f*R-z@ilvodQdiP1<̐&a { LEщPEr|wFA&O\}Qь%׉("iuQ\~c)3BJ,%J'3 sdZYERHXrbϽd 7IEIN5Z/"cp"osg+'*,֩@'E<}FLf̡d#q|9E|Qˀhh r`F0pG*@ vٛ3f0&LVg?B|uBqZav<.8\("H4M ­GQD*QwTvO  -eM 61=IG^Wo6;F 'Dgw )ACL7)7)0 1){!Fؐm3$/" Uo)bUc."2//_/bp -0YY"Li ؗg޾+W,I䐍a $d|PxSȨ3;Q[p-D?YO"ʹZbmʻÕlvS:_.߻Z$=: s-ul:_kZW2=nFnk1u(DBdzS0r+~xČd3N%x$jyG !O̻AT8VFLJ Ђ)qi` ^4' %d I dOPN/~A #RŜC0)F2:;fkP-2!@h$)$}ьl̓X:N}OYgi WJ m@LOfqq% BI <𽌉QJ(3BHҬY, Y/(NGjk k[Dx.F ;j"9|yP0L;&q)ff$)C4>s'J!`e!;sZOqZ; #qdshH ).9V}lSrS6Cȃ6D ]0pD6kTҐC6YQWQBkh9F GJb w& "` T:*w>`q a-NͪڽVyZm/]Y[F /bȠaA«>1U /:8I!Ȇ߆mI "bl~-Cmh`XQ/^ ((H9$:3>XD bA*P m>jmfPvJ!qG\P5MZސx„l" bҭ$:¾G"PśiѾ-}Rgp__xO |Rzl,4ιlALYxʽ.]Quڽٸ}lTU سul`ni؆+\/s[ w5ɥ]o+[b;Q~6OM89UT.0t+h*Nue˹T`6KݥBGȢh7cAФȺ:8LDFS @Ls # gfI`rρ`&c 7Ouqs8 3~-k2\UwB`IA3 iN-XXc;Ef"kѱ?tž!p>ty1ճc ?Wf-D4G?}29q$I)o/U&Z%N v¬Ms* ?l)5v̧15v-ÞQm,t:bq,Lpɀ1 FaIZU0`M|b"[驠NBQd*`5ڍl PY $ԟ"b/Q fTIfbsKg.Rx̷;|fX׸gXBj]guup]W'CzVA]/;%r,2uUOvjN(ŢWVM[_IUS]4Dy?xp)E9tlW"T1l&Q "BC4v 2W'CԷ0'J2։CCwq(H581fx@Tf0 DLd9~qZ>Et<(eme!}·~Iist'D2ڞ;baЪ/ AYSNI=xC8Zvm;NxR (wSSE^?7rR"Z8UbX +\Χw&,Z;S=ov1rIýa<}O9p5KG7IefUӺ1r!*U^_aoIfLCF6OVhE+`gӪS紽s4~?A"b(U7_yv+"N*{םlt}ߏ<|PzVm+s{22a (=Lz8}\]U3w3wFyKW޺96Yf=+(~5W?-6u- ܽv_Z?uzP̦&#AX^ړ -D7X7CE[Nw hGD ܲ.||܉ʗWenܳW'wu_X>E ,`a//}{zĄlg9QMU];Eq5{˥{); xcYfU^"3蝲I{?ST5*(yfYD[j_k\:)=H64)wыǸqz4͎qJ`y*k%^pU?KLiۅ>oP\Zx#Pe DӮ44lEq endstream endobj 2806 0 obj << /Length 1065 /Filter /FlateDecode >> stream xڽWn8}Wi#"vӴM Xh`8r"]-w(RʉREH"G3g.g 2kig2t"%Z0P|/ُD]_frVUf+S,/Ordowh;*i"R?_eE>QƯN^ff}U|Xܿe?ֳrڢd9 J.S>y\OQ55h~u=u AZC7IjMx굾_]5U#Lhc93*+X9]yo:ʥJ#Ј /hj5E@P4a\ǔs>=I>ٵG6tr[mN-zria+/>uBQFut !:E Lj4z& |g6QJj8 6.h*#/Xc*ƭx9K ~٬ Z^{#[G}>|Jp8b:>u@RnRHmmɼ}5n*ɿh[o`:[] B=6jL:9{6MIA=]'w& %Rԉ»x^S1`WuIzLnox|蚏 w SkDBN덀bYM*.Eyc]b{N{Dh 3HS?i#S!C;]a%\ ")d*Q(Ҝ!vw{B>4 !DMrAB"NeT~ pYg`񬳃Z}.U`"K&Aa6(f>p@ccd(O!bi׵pD2i&YǼ ̂ڶyղTmhpoy-³a8]]}9ރx{9~\` -7Egsmnv?UN2؝޽䦣}/bIQb 6+,u endstream endobj 2831 0 obj << /Length1 2158 /Length2 17536 /Length3 0 /Length 18824 /Filter /FlateDecode >> stream xڌpk aǶmc6:v:mc6:8oΜ3﫺R߳wWXQN(ngLD db02322ÒZ8[sKtt#LCQ b `b0s3qp32h 5t0lN"vfq@iL`9@halh 3t6|D46[=%=7?- t:M 74zXr;Sg7CG habkt|DH쁶+@ wsLLuoY `ja (;; mMR4v7t564PWq!%Gىrf1[;_Z8?˵sZؚU= PJ:G̀6FFFvNt76g+=_B?j񲷳~0~r2t]>^/21L,F@3 [??;Z?Ə ?~L]1ͿKPXEcfc018>>EC[)[S;~?){( T%o1@Aadc4yeo:7#qk)VXX{[cr]?@cl62)gÏ]5o--܁&j--PG >1?Cۙe7lhqbXG@oka(`j׍} _G;AqDA`CL? `C,? `CdG<G?S}TC>UGEj%`>*2/}GMGs? )>_\ab?#sG6cl0?j/~#7?R?6x18?:J>Rw/Ї>t6t2z`p6w}:Ç??q7=$w5cGǏ7ο tî.Yu> N͓jRy:~wyFJ 4ڇ/Fy/FuڞMyveshLaNUzxh4y 'b>ڣۀ{`Dҡҏv9h(5@{J&Tg[=k|%9Pf>!|Ce}Pa8+! d E&97#<X=;%ew;'ԋbqϷ8QZ{d.gwf Z)f,ağY#ҩی6Nj`3J&oY]?֕.PY#%t#g&28/N[p] EmF 7~-@7Y߱/b:RiWr*B:*ObXVR_:9( /zZ d%9gίIۙ=+Wuџo܃u~*O&{ë/%{e T\KTI*bԹ^ ۳[+"'[^A zLRhkI" S$]1l|&LK7~gKDJEAt6x;[ӑ =P6fLރKN+섈:cfk?=zi*E.( Bp49zF6dgG?o$V6]5HkQSI1Q 4Ǻw>f32'v\=^%Y 5&F C cЕٽ  2Ju~MI(=Pa^$. ʯLfIҶF]3~C3/ފ"oͽ6̨ͥO8d.~@vٓz(dׁ A8?kl]6t9L""b^']<*^ =$vɜЁNT({s1 9K5`EZ"G)jb",9>K@䁒=1oO"ն}"Mw ԁ2kyȫox}Nx#U&~_={y,[`J{ uQZsْePncϳ8UgetEa ۃu0uE!s:jLNO`iԟp\KX<;~. @rRfnfC潜T4;_yڢ,4P`Nl{+^4bd܇VUꬁyԗ Y !F_z09%,J 3t=faĐKCk78t^Qت7pXb:qV!Jwтʳ[ݑͫ=UF9BUG U7F~PVk8I=]>ϧ!yC3~RX!jB-EiеTM{~t=PڸSU ? 7gqϴj",ɕ~oB])CIv,=dM[M3ћg/:4͢U챟*Tlh#䷀ \u5df vԚgh vmʒ/بgv5 ;jlwYd}d]ڽQoj<88J,n㟃E|2%2Kٶ@ &'PE4/*ؠ\0-4tvwҾ+`kτOh83E7PƯɠ~(Cq`K,A_ _\3 898&q-͎!uϊ4rqxUdVh79YR_v8~>_m_s55 {mpMvFV#i`,=#]dnu(kZiϪ!n#Q|V.uQlܲ1@<e .J/}9[2R/(.j Ƚ5qTQ ٯ񮆧;*)<jV<V>0b}HM:aC$i?5kC73##c{2qbi⠕AZꘚƺD g^ւ!Eik7 Ppmx@h c`>ʒ@x0`g[1G~}4\AWg%8n)XoZ ~Cֿ"SlYvkl#כ\`vȜ< C~7N7F_V~GYC/N94p4+(WgV)se̬f[)!'ք |_|;HcEtl0'tRJa.LiCt遊JQbEQ9_qYD3'm,a eұ}Iㄱ4jTDͯb2z&=$7*29no8+d;y]+6s:R!~;)Q $a,Tp D LeK2b"eODYfe#:+K;: 덚Uv[K6W uĔYɗ/ ٺtoM>FLWIMisu񀅝;!:G'y.7S'N*Yrhf4J\knV۱8>*l=eA;1A"CP(;C `we_:&KtAʾd +îHu(WQEz;*үCT_SDz!: ,rHhޛ2:' 4=Nj3ˁ5S<HL z)]0G$\L.\( aw`'J@ʱa6.EJn>FK-wTf}D"#CKE/VTL-F\:$L6r%;A\ 6"d!'4J*g.c(Ӛ6',w2UN.3& |"u֝I~&lHq Vggp**2mTIM֭FNWx^gR^zo_J~L7'M 1vlxڒ'B20f1}BNS XA9bU&aAzP7KSUڦe&ϬX n7T}VyXxOǚxOS*jz`SvwȍMI"a\9?ti,Q+U9-Ѫ\C62GTIi.>z6HxC;I|[6tXό1+Ym-JY+Zx&kTwlw\ų.! `(ݯw^Ŭw'ݠ^9xw&;r@H8EIքr i=#Nt@\Z$bV2Spnx@`9y4|}(SD=*A~W;6qZ 8zzK\oh68]#p+2Qh骶k{uzw57w :|B'膤ѕD$bO2v2Vg&i#&N y)lL&Cz4ڡ*x~xX$h6 pvcLe?,P]lz79i`L<as -ʼ,?C}7`gȠcl7=A !OPA9  L@Fa5< Z1. Ȯo8i6it-hFb}Ht3[YMt68!n&R86bEa'yTQ82;n`h.,TމVf]cr| >2VF 5,#3^b7D9}5/ĐtW] >x+ͨ4-2朴&$i9(=6?$1U9|C?Ls)2lf*Y3UD"bT4ttYɈ)mT͚ؓU4 "ƿFi[9QZQ \̉q`[`DċVme6,;.~K#uQ7(! w[hg|ck $|A%:{,(P;ܣe07yRlKtrnޘ{;eˇnVȜOG#KxkrjNIjaڟg^@m;.ٞk ! :[[K4wTYf ʉ."$}B҃qP1VNĕnx}Lm砢6o&aib:%'^o7sγ$!`'tEACoL!4ߍ=݅uƬY[5McU4SCĮǃ}%yKq G;XvM4HE5_s@ezb's!~JiC̨4[-_M?"Ŧ{<})Q|_?F4>>bݐHpo]ϖeкCm Ulu .u?}}䵡v"$,G^9g&gg9yE6^򦥘*݊N'FK@O6׀U%=v+@8a@v2guP]<_S*xGX)R4]w4ɞC)6TJ Ֆ"bdzu|u=U!)4)s3q5kيM˴W>>f61f}^y—[b:AW(DZ4 pFKv w7}x5-g2mEOȴܶ_zC;Hazk@\\hYcG@G/-r omnETRIWڼ KRoT!CX[!ʒ\ )'MAz g}6Zd~D ]V~fm zai0@ose:u~ )0{q>"97w12w=z(PK?Y,v8+E>ay9-HE1z|+吃_CX(ŌwL. J 3:勡My(Nr9eA \I 5nPS&AEn ۹/^SZ5_ztBA+B@ e]A7u<ȧ2ZT]>VYLD@2V7*.2LĊ1} x廕ka&+j)<\"D_pFȵAlp|H|CR8pkdpX9Ì~VhoZ 'SyLP|Du) s & FhEUΡKI%If6\+h۬nWS!(@%{۫8wIF \d*mXp)ni}KveV͢m( H~QwJ4&7n҇w:=3j՚: UKSqiitP=t1W1~<G:Wظ7įS7nTZã.C >^0~YP|`qlæ:I<݌ei(+Z婒L#9| 0%8)Ț'z| ;}'bepۭQDnq|PuAW%P(V͂ j$񤹅L6h`dp@L2ޯBH)_eII?9m_! A^ Qr-~RwO'yũ/eL;ʼ(ޠX`0BrZ/ Bmpx0TGn?Wi"IX;uyB45(?M EBΠ=7E8vmߴ4Adv{ȗ8͝j-F[֩enkEjNAfZ,X]yq3#=DB~ rK 0ryII4=* ! Lk>r? 'r }Yׅ:t) [k9l>)Gl`+Gܘd |^LHluHˡ,+_c љlmbAMN1YJ^ʤzi]o=i̳G{^~>|`sС$nŶNee $nh6,V*rD#I@|0^h0X͔Q^^བbG9/=C rƂ|zP+ ACBhI1O7Zd ঝ;6r]͔ۛE+|x{m-vh:w/5/T2@Ĩ<, sӴ#&lmg^$/h"rWHV5(ڶ$bɴuRd(o BOaɎk{S!L0hH;(U RU#_Eqvw)]n֧6-CWCpYrRpl:c2w- E-q@4#IXq#va&RƧt(!mK)uCBcI!toNvc m 0L0lQWpCql-SnCF.ӦZ8+󑹫9<,_WcNYm.-IeU;PE4ī5_n0fgAz)slX7TԕӳuA?[ꩱ"RSDU[^Tl0אޙHy /\k7ѳί(7UWѝ&8|]D"·8i6P/k1I28ʯ+DD\[ Aq`;:&/`4ISq,]>9]o{ph 9Sܖd"*Xyre8R{[vG1>>Sp{ЬW.Dq-광;(VP Us p՟f27.zRrRo|Co Ct&Rh60`f[{xtV~׮$(%2 y۞l !෯%wEwq{kQ a )OOZG:Bw8c9=̳0VIXJSY$AU3g>KHLz.e`bݯE%f!³lyYqcܹ!$ʺN_D^oHOzRsӿ߈6HkQ#zn.&?.[1 ս$-֘;2jH4-@_0$f$ӄ֛.J!_pl]QϠ僟/AX,bp "uWRՐ}5I~~YHY ` l2ת;Ǚ J1Y)6s"Kfj]|+ 1D9z0zr8b+p$ SKFh/-%h0{vKgp ftu\' 9Ԓ@}Ԛ۵|`8k0{~[hCeR穫9#۫J#,x`0r 7#.Q A6y4U S\}ަRl-U(,wJb .SEškEC.Ewۋmp]z*ӂ7i`ZsU8}2IwpRpo)m?S z?ډ J OA˷NG2iŁ]y*D3{ _zr=]ABW[Y,"Z0OLAirX? ZvnWu98yipٍ2ui ЇzhU@B?R2YllӜBP#Oց;P.& _ u]/bM &uP\N5?`o53ZH>nr)oyZBHouT`e]@f˹eVa۱o!z 36SOI-M7SعvY ӛJG1 lK3*'[\7FUGdP_Lo\p."dyȂ3gqFMEualKBXQM8_zcRuD[Ya#V3kEJcb^镎_Q qVPP1+@5]TްwoҬQl_ Qpz 5Э6 fՊ\|U$>UtTB'ƒCQsvmK-=i+D}Fmw&eEvz@vo.wǂ_/&=ušXZҺ0 R˫L'N"!yjTͣ7=W)%\\̹ H9✍֬,qjsl^\"$Xe @~ct4=6)y3.Sۤ i3^q@iC$kU*YŰ%r>@+, Zc( z()w|/TY;3SLuh71gZBMk FDž= ]@Czq&]ZG!YmT|X"`%{I+̽ ^~2 FlV.`_O$Gn,WA[gndzW?:],8Rq GrzA-'sJPD_f[DfʕDef 6M8UMS~NZTn1 Da :U:"u_]Ik"1ޞi|x}-JC 5zf$v^$&t?)Dp'WI;sFjhxIUvb9bG XO$tCAƭ+,ǶFj*,9vO^#wœ1k%b p }Q˦A;*96㳰&SԂOve_UU ^PقG ~K.np' 73PR4Ӳr]xY~ \_LBЭQv=nocLjb /l1n@(Ïl=MW_O|Gxv9ǯ̄D76:zSد}I,g/_C)&;,?/n|Fت"v@ጾLzQqiEעy-9NTjő5Ud̝υ|L j.*<-4Fz_uǷ\QV)aAM#@ ǷkD*Tլ망{^u89 m,{YㅛI O.7)%_- +KOԋ"(:R.1[ZW9RF5۱=:}\T^~DNT5fH9rtRtdu*5s5s}ǘ?Ob71ΧBrA;Gz'H}NY@w d-kn+wQPOV\ijbI*#1Jxj]lE`>D"cq5s:SX㶐CxnL 4+44>s{鶙 Z#nZe}+XT|m5Mչ4s I#X?s\\|N_OĒfM9=3vs9YLڄ '*W[u3|v^։ƫuOklr~|N#=j^g&A$ֲ eb0Y카tAgB×Y}GMl;%1W<3+o){zh5Fq_x/)ߦ$/4`KMr6x~>87=E$̜Ê@DBe(u/ k$R^6ėL[CB:΂@.k..b]IE"l;?p>:!\<7~/:b4:Jy|AlӦ[,;7>4f3ن<&uJRNc/ď|g2&H0bp(=k]jM"H2Ǘi/aU'3~O"G瞣Eq?RJ~lF6/52x_z.)y`fӔ0 Ew'܍clsjt\pkm\ܓJkaY4$PdJB ݃r|3}&^=L:_^2Ͱr,qCS08r_979tb ?)D^Kv>qu?Tsy +D@C#m/&x⸶C޽ҿ}Bj;K}Q| @U:6K7(?xAU)9F%9Z0c,5km?yUHtC:̊5LvK)٨Iu_dyXM:ꄔB.mCniWr 9FG߽1Ŝ6?@Gʏ`:4fqY[CoSR+y[qx@݂zʠ1zPaAoR2\;'A"ӧI]u%E97ΣM+uC}WS! f7m5&mТ# +|x}@z-; nd~8 @Ӫ%d7szZWmE9:IkBh?elCtN%oqdOTF{R0_^b;_V?~hjKlH( U#y~h{CA6"]jvr(4@O={(v1M[e:XB.BMCjuYV\m/R`5Ӿx#pr᤾l #a 5*f'zzk{^O>~] hBkzQʖhj X`"3I3f*Uޡ9oVpڥ8;% 9pI$!8Q!(OG_-j׋bӕYd?CoUSC2Fpf>[m)$W -O~L߲5C㢯v`ɨ˹ &4VP`$z$z[Qp _Js[}e/xDR;~{Dh {cj*{kdp'w؎";C҂S-D*&>6{p]dxC>20}W&V>`tJ9jM_Y5цYԇБ-^2>{uㆶEU@2A>LZ%.a) *lFX4g[k8-g7[p quWaA>egW9O\0b6oX+DWP/迂eGߦY~nkٗ{[Ћ#:C+n=oߒW­g{&Fum'QF[*3Ukm>_,= }ײBd/s]UvHa5.بQ1O#y/{o(_B]G -gV͸%˺@Bӕ8H#V(ulZ<~a7xi0]aSB޷;~Z iEi3wXZa(LvMC0zqD<%מ, h> 5 Ka&GF?V +9;% mZo>"H6b@l/Mm_ɱHg8Cu+Vo8VGa `E]lsUIX<y`f˜i,pF3Mi^B3n8N?b!%^BEJw&! ȣK3 D]?G"]WPd} xMFս'Q sJC=9cO/_ZNEj 5f_>d_t# tl_y7Dc>qN,G'f ZI^&pl d:{'G2bu<76[JMՔo9pgEt| Lð3UxCL"`YH=d*ڕù҅YXjL:;f`4%jo%?_1mH QoW$2[X=lBoCXpP?c'W[)u:KyuWPe%iOj6)ycHj:q9>;1T. KPL _!Wo%htOx(0@QNEi~.gՙSzANa vM[44q$ >E*6_mA]pWg/Z#02 ] K2lm{p>\vW+Wo6\ȫQ%P&f2r jL8,w-1Z-:*./kxt7\]pO?1#jnmZڨo&x+gI2;jSsܗzO> stream xڍPBpw0Kp wwwww Aw'$ޢjսw{Ȉl b6֎tLa!u&f## =##3,%?vX2U5 a{MD(cc t0ع8̌\!sD͌2Ik,9 40qqqڛ[dMV'[l ̀nіŅ^ʁބbh P:흁FZ[m ljCEx7XCJ9[?d037ݿ%2;XV`lf ȉI;:"[:ؼ;Y.] & l,42Z XY`OhÿkambdlfmdWFN *fvN@ 9&6# ] M:@/{^66^f@O"X&&#hbf ;h~{3W&17 3tMD4UhmN!!W `cxoy}`+amlwS3@P7]o:"1'K˿Vfn2'} dlwRՀI8e4s3sɛ93.UZ4K3k_O ޷pxɿ]#E m2f6v,(1<mCymaQv6_A70q0~#o`/|gF=N7z?]忈t߈`b_3|?c02sm et?_N,A2XEq#; `0m|.W?VoC{c66~=/%TLZGAm0ֿGtg'w`rL.9ap4q8.]?n=39V],ǿ}Wt./W N|%UKXowzDJJa+0܃#Jy#Bq\UY7Nqzvi s`2HNY`SS,ΉQ>ޥOܵtu,xaWa] t.J%R˯h, cґiv5kP28Cc9a}\١ GulCW$֢GqadpD1B#_;weɭQ]?RCm2KlZ&_ʿs/Vb !pH@,f5)j#ԧsAhhXyb|в  Nv{èb, f' >~Vх H9BGm=ᙡP-)@$y4`QqR 8e-oy3+1Wm"ƥWIZ6͑;0[J3eҪN&k!:7U ʔ9D*ܦoeZ&r?|o4r}ȃ~(O-4bX{,,գ8pǺ'б?Swoe:s4SHdz 1R_dꍱWJ\qazܬ|5F]у) C#2?/XKFKhHڅfFM#}cGٻRlTuÛ +Q<]7fr.2-*la" {Bu?Fd8綼կXH+tjq({ ^ܷBO]nP\EXFl ꬥlhD1iբ%o:sб[?U=/[R7͍q÷Mhny\y)Gm5Jaf{Ѣ¶yE *LМCqz:,+8@x?l] H%A@9ߙ3Oͯh#SV/٪:z5c5HyM7\ /XѾt|~`1 D*:vKPĸ'%}f@ uWdP{8@i+וثjeh|I仯iXM 脯{GpN^J+8 BGLZKQ7Ӝ( EM4\wN D^HޕQyiHblMDLIINXaF\)U֬MQvqnȊ$Ϲ$!$;HZ1,<@Od[˔CɐFW(ZfDf#vVZq{v(m*~#(UM3/>졢]-*5ǰ\'qguIa ~^8exw/'iD%bLY8ӻ˟nr|lg==",9{ R 8y`R,>53"Xoa_ z| C1=hԡ(q}^:Wjϰ7/ybc I Yv 2YG)S@ۺ9BW0K#p KzIXio{@);W[EW|kɊtW,kvTkج|2 5O;l eO&CiʒA{ja2-ղfgWbs Epy cl'tljoڱ 7)2س:”y,NĜI[s:QDk_itɏ^\l(FJA;iRv"U OcE2!f&{". wwMEFN9JA2yT; ɯ]yR'RL%OPi*)"_^́T *9l@Sr8wʆV C&yح;zl9Pa12b:XVwj24VRƴk ,y}UٱyHIB :oAGpaa5 WZ_/'ZUt3I*›RJlѪ"ct(ZUw1/L&TE0,nr<-? j׎+G; ^>U!a&?;kHJ vIo?uP2qE٠ -sTg` 5(JRj Uv \QL->%G4ڂ?kUkQr3;hpٟq#y1J}3zL0;M v?M}˽{ܒ?# -P=cYkCeF5ܸZ-g`LW4FRK'ݖ břKKUarmoG}^uXB“|nràmI DUfT hCl bq[qƲ6Yu-)={ǹ`S_7递K ~߳LhP'r}t2j2~;~m&cy6A.*؈ ϕZZ-b2Ջʲw2qsg,qk#;bhq#6qOh輈1OŜa lAKFXBӤn$ȜݻUnc8>^R e j̺Am^,]]9ŭg}nJîdL"7ȏ0KxT95_t?, ԑU#-QdNj7Ou$nE髟oM k3%IlMjeu9z ?hP;S3N\C|_\;c[V7i$|;wҽM}Ypne_'ِ</ʌFovkX[_coZ#lO|;efit(hOuV;ʎT݃/Aos#Fd3soi%SS3| [;y]4 B`Awt{pjhj1ShAaX>=FZ<ʊ]d2">MSY_.R񅊿7Jx$fyϯUKYbNݻp,˵V'yt>;9$<=&2r+5„`2*d!7h<蚍FOUfs`UBH^f&06,K9ifQĦrS!#?)4T\}-xA=O[XVmSG,Yv4rpב)TGiOalHT~2:MA?1; !Vձ],w* (5(9;%\ Z%<ӮjӖ B_8kEP5ն&);)=P {0aa:ݚ='WD$~&(r"CҨ +qDZ="^~PQCHM(aŐ_A]d)m,K9(JjQaOh: bCw.N0m<&2l}[ '#%NhI͡u_$bf;0:\i _#A]49tEB9Fihg|?Jbm>jca^am‰m+ŏg̼s<35ίeI s~tu$CGu֦ϐdw]:-,d޾rA!kqowtÂݼnI苹w`ܐOE昧f)K?W`YFC&`{zǘCרB8 bUh7uy!MMdI m&"#ZG$b'khŋ(ޔ,OߪV5T_C U;I#+6vMvgtWi)[0qO,'\?t5x$CZPc2&rXL,g>Z}C!NQ@?&!BA'emcP~:To;=τs?Vӛ0"IC֍,xԤ]ط~ḩKWtux<볌%{y'g3 ]g*Q\]aM4Ht U˫T=7?HP 9`K `f~fdEfoUoX0(AE+4E 9+ط*{H#K@Dz vy# :^m8D)mQvϜ=J&aĎiWMK\PrF7 }J1LR˒Ygdg0hv9/\7=qKCx̋xÜ xsݾo/=D-t4,(?kK*Gy ~4~ p*;6JʼnJx(!U"Aʴ~2ˁOZL߁\z&^N -5De9AڽH!E(YF_LYX!ȝe,/O<x6G-<ZͿnwз@y]^r.=LD%Ʋ^CmOGf\x輀6?IRvPVHKK>\xe Ȉb7_=Q媈 ؃2H`E5ga?J (:%T :\pf@Eܛ[ĺ.t@LV\!a+2Kè]w|ONh6! a?) y)fF XٵS}MwN_@N]:i1xl:lLԣrXP`byl)}YGG`," 8jMd(l )3۠@C:Oz8oV;Y3og)@[ox<ߒ(ً} \5OTu,vIb)8Rޚ Z~2QwOى G}JX25+_~;YMEGa7Fq1TDk\9t'46.{0BMΞc ũSm^ltP8=fd-j 35;};^6NuJśCKuŀ7h ЎDhLIAҤ|F/[o ͷpoȑهo5Csm=)?x[M1eiWa`0Ʒf4m^gͰco{׸KG?>n42GĦ'h8.(WMݠ7]3b>@΋0xIA2 S@M0rQ%`/v4;ۯtE}Xq_d8OBdT6uCJD>ŒA YyH%5sI5;v3J{[zŶ*4'~LՀulC~C"Ow 현swW\@L"8e͛QD([(̕j1>lABRwI*.c#ļ;2} u\2@3^Æ S#͌4-XOx~e2:NMY ĵ? ,w& s\XI[4!AX@]gFxc`v_ K[^6hV}TzV?[#Ah@l7TQZDXli34^N<@.V? xMO@@p=bVqfcld+tML&x/lSJoڬEi_$*ZHJr]:6#+69̝C\. ןaۨ[}v$'O`2/4o 5bk\i+rIy5_*lٯ}>a< (^ hSj qWjV P! ,sbKHkeQFRF/ɨ1=?E(8L${xTԻ)m"uAˊ.F뵗 zB 1#8y9(i^GTJ(0gjDG(- SyiJN^Ť" @Fo^ÊLmYhm&xN 0UDP:R2f۷NO\M;2"a![+;c'ntCI9]1ɦIҲS&5jݢQ c*1rNy^F oT+uNdA >QJ%݇( - bG@ 'I*P: UzF*MP(͈/C؍ _(dۜ<_@F6nPCvc/|źvr>ԲqN YXRXv%E}@yU w$2.6l4'EeaDTͣ=K3"*gwFK0,#:&7誔/m3{G@7_MRV>Y DAcR_Q[?olpדhkR&̓NѓӺ/=Deťj ;%(dm ft[@xZ$ :bʌpQU|Kra\= 7ۧ886En a-OJKQe=ز#`"ELr] E@7nv%q<>)57LWx~uTȄXB %W-9E`wH%'hVz>++!:UK^'|v7_WNĕ*He~T幠5N4ed}Lt6xt=5*:yyZGf}~Z[>fbbc}ZA'}>9`>bY_^Em>a-GOk讇vJ8H' v"=Y۶G濌,lϰ ˄ $؏⪛_ _DDIeh*tr\ڰ\n1mZ0$zw5!bzx)ъ\aaBd,/UtgN{`d ԑԮ+pOf[XO2Avzr90iWxũ=q'mGkkp-X4*F5J 3!:u;"րl |Aɗ(8h~\4l!e#/;iZ W 'c[)jG5lQ(E0!Ҵ^fƅ̢%y]v ?j#Ϭ>3 |V/.ܶCC'3>翭 :^ &Eg_?&jζW"_piOO8)^ml%c!_ˢXU!%PņSR~SHĬ:Xpe8qoFՖbdšvvZH9˂CF)[9pb"H4>-oj"I'uMݰ5:%^6;mѝn<Ӳ//50G _SQ46uWU ` [O[O[fzBF~ DlFЯ#j/I17"u7ޫWςiLHzgGEȻSkeMp GBɸIS7JztJק>2Ǟ 5|(G5JܹTfG09ł'2IeZMN]&h{:Y>.T0j5 a9Janj\)RGT)6-GybRZoU¦ XaJ7f#p#)qɐhsx~$teC[UW3JJ.;otVb@ɚJ~~XIT,dPKAYb5R<<8Y>2)<> 3/v0j~E1Dj\+EJGV7]%&إzvHՅgM!% VO*KE#EVk:&USeׁZG|BBuK$}[\`s]%(JKв SlwoKNtdOLtE|{h^@!)V@U#Vvܺ3 +`ZFJ{>O1\ nL!)Y˴mѢעY%qfiO?Q;i٧, s?{kⳑNĻ pEwdcɃK: 2쎘ym-t !K3An"HGSD'w߶Itʢ6_/asy8tr=W$H-܏d؍a9!0TLSC."ͫZY6?|_E!2z4S.9<R?bAGKNا^ީs#<.x<JMO3aB Iv͵?tģMH9 \ngtWO)QG0?Fƈ@RkاaV;Hm}}x" *3ײ< 8O4ig[OӐ+5 }OwUa10nh5 u4ݸB+r_=bd!{id+>_BLGV-G~Nmf^SEYfEsۦk1kĝw݆7=oŻ#].< L-cHؙٹ؃^'[<]b6W.bMfdyd iH❽r3/5d *9_XDqXsȻ^LXT7Yi.Wk)L4/B cWH : `&Ƃ;.kd!!㣮tI~OYq^5?ڱE%ƹqsiЧ~K/w0fjGJ3(ֆA3\Qc#?(섹f>qLDQX|0Μ]5%t"U!&l+N(q3x(4M%?מ0-'DrS7qМH,'[^[Dl{X+?;+ڌL7i[:Vߩpd+]mU f=Ayƕʵ+A4[B毗[|j^Ojҟdbӳbt!jǬ+|J؋.(ź2|hzp&v -f`t/=˟¾i5w{%[ iމfH]IFu%frbc> ]*SN> endstream endobj 2835 0 obj << /Length1 1496 /Length2 7939 /Length3 0 /Length 8944 /Filter /FlateDecode >> stream xڍT6tt 04HK( ) 0 ]  Rҡ"H|soZ3ykϻ&: m.K9Xu>Ȫ>}!@>L&&=/3& AW, ryɁ\TaP=+W E?ȁ Un vd9z!6.g `` sN8  r;Le {~ydt90)%( x AjO" 1cp]K Z0_R_Uo"߆\Y?nѺ< *a 3OaSt= C8+@< ?Zc5c(X x= .{Ky׀ @p8 a-% \R|V087/㵦v:0'I' d1tw}n|(1:j]?h(82[#uS>eP2˔g=GFENob0gV)s4_՜j[rFrC2js)f)J ޥys%=;OwOYKR:䖎S.1|L{x'@ "*HiHi M-^%$fm¸U7}z팛Q08 (0bQ̻=E}(!q4j# 1U~L^=tȻ gՊ)*Hü`hmm=IU8O&2*eB*Jv ecF>FۆgTq{ur!{=3]E:&~+%Q5hIq o()bhlUIߕ+k9 ٠`UKKܸބj  FAyH'N+Nm݌U8ԗ#0lZžn[%>KfDs*3aẙ]y{¥ KfqHkrXX[{Zш0K[&hŞrG(ME)3H{0ZPU nwa+2hnvw'ce/'K KW}kpbg %QşUa\ͪodiń I|dtU\Z d&/s%P^kY%*}l>H{_B91lqrO6+fCб;PF1`sqK Q9AAn!9p0=5VvuC13Da)v;9հz$v6{kĒUo5EJl4SB Kڝ$)u0St@vHC~&Q3,=R7!#T ̾ܶYu;K+uqIo . jn?}rK(Œyf +ѪY폛މ9l˹<}1/`:s&g%mdI9q׀EAR-S Kvn22}"Rpw[k f*#nYrDrCЮ(j/|1SNXFý6dTAWjP~,K K-&A0qD q7&%=5q!ZwK_I1}^ 8h)m3F,=w9ǻϱO;wjdh3r!:Fbbe kMis$4wp,du|U.ǚ|Nӧ>d}>WC0Ͷw4kIdlvCPsEh!Wâv:?sv}&x#9SMZҍBLoXXk|HPzL 9E4[ք cG'"AV˜zϘ)^rWUM1'Ԭ~&UsU.9V(~4S g "6ü(jN7S=XN{R<tfyd*NHܥ2IVSp6i"Ls(K>UPT} o:/=,V46\z[ɖgǬnt1s~F^c'9άfq}dPBSM՛5W!ꔓE| 2 էYzq:qk;H3ip"C y_fd~>T,BR~ I9u]ߧUm;=FZO.R Hj^Ri5c*Xoϥ ĵr8xk}e$DۈxX*QዬPsGW";1tEḫk1_^V7nc >T%Ş!_v/sy{r&)$%nj,s ԓ(qܚ bw?{5ӇЪvv'}ҭNP̖w碖gcJ]](tDhSS])QtG?,==' A/EyjA;c 4;A"_Ec գ{TrBM|l hnvc]9{~r9eMU|V3?1wd t4)y BmlAD0'afx ⩞FΌDf*`*bPIvA_.~Ӡg;,1c}>ջB,ukHI@GK#U[['f2ЅN"jlYϞny0ĘY:WSJD<-}h ۬$fl-uB^I|Fa'4Wȗf{#J֥$?Ghn,Ϣ[j:t=zf{C]WꛡY$qM>h/JZ2@|$$_0FjK ZpTavr~^kgY>f~f9@X0.x\j."ϻVЕUݔQ\xF#aW)5#w< Biahi`ʪzjQΛ/ec_Ӌ}< ?զ--R7 ufaFJl kY>  z}k.f7*[s@OhD{L:@c=)>|>p?dIXȠa5IJi\F<2aQ._OyK%-`c!'#-g\Xޛt= Q mJϛ3_q"yhjW<+B1 w&*nL .faG" 630l [i <+b]_L$?=*{HlԟrzdɍKZ`,iHNo2zIhթ!HU6D@osTT$zu`qt~nMw׭m8Wϳ)clb #uqھwxB*psAF@r1[Eg*X{BI/GOM:7|d?d֯(hUҩ%v=K'IKW19rV]b<_܍@Svfi?όnyQ,XBoiodݤDBG2 TLJl78>RgCݞaU0LK q)+{sC;-15tֱI\It@i'aĈN9@CWl[{CXb Jdr1Q zηwGGW{܉}C/2y"yN"(8RLbQ3[VDHK9u1Q&{eo;%!5fM!)ҋ<ԋ~cJ "@ 2z v) "s7~7.ghf*K^h`XSJ1V-E^EÒ=xY#Xtʔ[UO0TtUu_t -CmtU025~+$v$ I/URu0J(^͹9*z.W&>Rvu+%OҡF) ?ӊ9KTml$v^hv{ 74W7ԕh"'i06ǎLp*"#+<\X̶D\)|h~rbzNf`NFlrc@K<],JgJtbWJ2H1P!*{2d3YLE}%&hʼnך,`#do. HT;Mۥ5kEkFDz_nMk~;J(kYK› VTMDJ[îrITݮ%>&=W_ nSjX& *Ҋ|S8\,<6{ Ðʶ8gӵ5E><]\'wJW/ 9{gG|n""da"F/}2ui̺$iQC+:DbAM7I0ZxcP(ڋˬjK>[-QtD3nGRzXҧȳd:ɛ#@^[e{]ɏIj*FmjF.{̞Tv6qSEïu 3%T!x b>J=@z[t޶k^wvȡH]t:ꙴi;)],ɞXLQZ\W X3mN|:tRzxA1Y6N#c5E*(bxC򁅬"/Ħ{2 yC7jH,yz"AbM [,:C=59;Y!ZR*o|n5&mu%b/Aq1sund`/JTދh쁊ǥ-]l;TbaaSS؏M0u1^*\9$Ƨ([l(>%%.fġ;6ܳpx!xL:N[pa0]T_F2xݗQBwҲOYG]^4՜VT->-P;cȶ٣!"^id_݅k=ҶlNsSBPGڨS4#TRU)%SW &P<@49O`u1z 6Q%NؔS\A7Qߒ?g~%S]6 b͔ 77XUvW]pyo[j҃^?(nh!!> ?ҡ ʈmW)j5.ʢ9O@AI -6`.< hRuZ<ݕ[3oI8gaU;gvKb=,Fm*魟IlQ>Rq̱w,Z}9eݡϩ_nXcEQ,B+)WL]+j6FŒ>LzIkHAUtMpEz8w2 M+-F跍AEpxI,Źumn*l:KDc]L8P\q /,>}xNpKkĬ8 KKDOD=T;48} uUQ] `B:LT 6H%)C$ ivnƣ?1R|5s',.JAxљ.=xLx*,@ձ Lu0c0(Ȃ:>[j%ȓG?y3B{ƫv%ps`kk-;KڻvyTMIO endstream endobj 2837 0 obj << /Length1 1955 /Length2 12948 /Length3 0 /Length 14151 /Filter /FlateDecode >> stream xڍP[-[ %hCpwww @py;37wޫk9kLEQ(`WWge3!QRj\m(. {Pĝ&5 W0S f `errXXxCtpHL9{ 3?3Z+//7_Q;3hjg43;^FՑÃ΅Rr]@sJ&vƄD аˢ`a lAf@{9NPU(;EV2޿r613ss4[,@@+7on51 % 0]̜A.L. M2gI{sq;; $@@3{1|m<} {sߍ92kڃ܀&Y],<,lif;#/#ep~> p#@?b:|io 0L {?@aA}Y,??Ef`o)3i(i翭bbV#'  ~8*&WY{ Xojv h=$V/@G,,f/gQbߒlm"!؁lM< _6_4U<%E 4WYK3Z=o { `deaxl׈ X2'S$' |` xJ́Id vX88#>e.n! `q V`8YS p>;X8Π3hxL pL8 c} t?$p@p@p5@p@p@19)ܘ#xnQ xlMr}bT f?fpH?fp:W+g:cvp@p3X]`B=fH_CCD<`/2tK#I}MRYZdzoݣ$|󭉴ً㎑TȒ4˯;d_! Hʝ T1z-)}V=p*B{*rj~2ߵދ1LW"~DJ$sڿsŔ}+_Q_~c*-rj>Tŀ imk3 C6qIm* \&qgKA#e`2%L7_{+Dx)SG]br BlM]L^^33` E汁z!>KwWQvAVF/vX5tTYLP861Ƕ |ɣR:*S k=ǔYr}#䉴Td2 sG!cRލՒK &эS}ƭ/8^03nDG؉2.?&!1yzn2aRgUϾ_AڌzAcQϓM襘rr֐1fk01Ov_R\Zbr򻯲㋂%פCD|0{ 6J`;C4wn~1m4ϕkU{gZ]uf3]ט {SD[ŋԹ-q1pbmF6xuW/qeSEwh3}LOע wa9=8]a<"3%ˣpo rfCGW#oI=G%.I#i3W :>w񫡸VLN-ks<}Ɵ{6z]Q|d6n=;¾!sOю|EBbUȣFeN!I&`5Q˒3 |K(UHۼ^q Iw@!#;<LbΉvtO+(RveY|HtzO}q?WQ.32|Q.'YVFCzT!>'bp8i&eeOh=A]Kfxbj]sl9Iy;*r< ./1 NLlKM<7/Aڏd_È4(/\DI\ dQaa:7HɻP%Dɰ^22>4Š[Ŷ+ls!ٿۣ)AwEd'ex\~ZTOECu_b`KWÉRKusgU1r:n*Iȉ~~*4;ijfvSw!y9of.^By>2~oPefN]~ƅyPu׆kg$=?habqh!k[M :,}Egffr_ޝ,_4 n`Eߞ!4RRHM[| xDVsBuTgp2l7OJG_:H.߬DR$^) ԇY$09da_Eյh-"\k?Çl%r7*U:(Md\\o=YZ$hp}? ՛ȯ;Rh^a-\^GZ׭|K{K XR^{g: <\"N9.9k*L`vOaCL2*ZI4"JJs~qȢa 55:Sh\`ESXD?7U9Ņ|"nr%S[b&pFѡ [7Akh숎j(Z |c$Q[qF|L'Ƚ\3&bg(X1LؿIx_NGq/O|Mi"H-r|0el%}QQ)C蕈(GX߳~rաw[oM\aouڊEjiƨ)pp3՛[$vۯ괆8Bs؅$U-6 (GQn)(wRե+:r[wP6{>㗦[(F'/V;Nz^̌9޹K3 ˱CPdx$U+ '61 A/ț(xFTrQ8yYt/`g-\V&,^(5E "2?╨,M`EnJT=Gɠ/\s:⊄zȫP0'~gCppvpN1ޥ$fT!4&Q9[4k\kjg2Ї WGD*nOwXol#y qm+g:nv.GE!~ۧdR*D/hqnY x> ]yg8!<Q93o9IdL#oO1Is[4n|r{CP/c7̢¯>|TAZ2YK_{.95;*AKi[b i{qM_W柙}滷4Q# NYUgTrh  U'9+쇮LVʬDz _J[СA.O4M5jQ9Wo+}}!o*j}ҡ0[)?^?9#sґ',;WquBsHZߚɵvOk} E 7pG\]vÍU5u:uIOy/vaMjz "x3t+ 0NXؑ>t*fZr]ɆT$Wײ6S%)FjQwT@0 gjcW*B>Vn4HE`kKb=.!rGqzСNé{aZKEu1j3\oM){ۭż WG9D?tAОP4m!b"ʈ4ƄOG/pINDüN }ZPOjѵ:M}4HtX5E_N5tpsPCL#[eyg <.Wrkr 6h9T8eR55&hUMI.܂Mn]gOxN$"wblq YB\܎}l "Ow1fZۙM:p0mbRKgq}N˂(m@L.NRQkGM8nO?3kC~VdwvX&{28Y<9f Ay&RX-hRPՑM0o 6;͡`< nFuҐ7XB>LۺmIz@S1wUE+3< 5Kx.hsjg=?,G{XT`}e nљ97[<|iraB6k3JAAy;^m; [ oH^򮥭9 13 =+<8}eO816dqw܍& s]⥁yh KKqlД-~U.'/ql˱-P:W:½a]0pBE?89kɽi*bT"tlB3nv`FyLGQ%.982$VM@٭Je$s8k幃O4|T#?&z㰰`m_)vjG0,ey[V\dCrI<'4ghbqz{R[U:bK{^-c([ەOjaB<''widߓf@$,]Zcmo{'mcDٺYbl7!Eˀ>`5ߵvBh>^XaUzXvhJJ z6r/(ozrs$gg=J:ސ4!(H&=\TLȍʜQ2!pڋZt.,}ʄH~Һ%z%S'܀_6▓0bd>a3.yGa'2TնKYD*z)#=J2ZkaSy8DRn\oN(': T!V/)#e[QQy6<Kd9b5ڂ6DJX^a0K z |Tcz, ";FϋwWY ^#XZRͩWpW6s@a$&pD/[' ^ҡe klnגGܗf10M*";_Wۧ9:a-S{ h }N6T”9ڳxmf( ,;߲s@ڹP͈ۤF;h7C]'ہkԦCY܁T뱣u/q_5z:gc?T^qʐAm.`1A\NfE, Ղ{@y1+ @4(2#n0{B7W1"!<2n#'dAUyҜa^L5s)Em4#>2%9'l]ס0@@AR"iq&c۰_^8O-"ʭ  C'9@ѐrC&d?θ,O˭7H2 "V*(vڎӄ F4&\)'\$1lO9&oV;Eyʑa6]eCj{:a J&>593۝/G4y. c ڈRYeUc|)w?zzDH`xFF!㱶ψ*_ԪghXT.sǥȹ5%#X*ڂ4"ιm%63KA'h/aHyZS%HTYŜ7Ye W1~GA"s,Cwqia":*Af2ohV US:!(E-!C)PĬ%Cu݂R~ #6(=2#*ҫeX#鵊;lT 3nK)2}U+9ѽ٩C!E șbK.U_x& 7f<W$.cnfU` LKSWW.AR kxOZQvňN22HB,3Olu4D- K,Gzb]E0n_I>tġ!2U a<_؏mC6_ +7 IL+<^.`+$o">sn1#iU˭(7g B4ȳb"~'Rָגts"NWx;dIsrqz+6VM2|tFl4#*' @3,8F`DtVR DUvML`LI\p^MyH ¸˲]\a?Dhrd_sI?ƫ}9߰$(㤞ܼJpCb #\a:~:: (u%SwPKF14^-A"%lG5S^ARJqRM65nͱ+]qW.8=Q5"^ }FX8o$z*JB!k 頗GI4OԵdk!7&p[hk%:u4v1cR]S|aR3i60Rg|Fɸ 3=8;#0y^Hɑ \U'_TŞMtr cu^]}XzOͷMA;VD>C7K[]H,m}ڂ>*{2}hBe Ygݚ%1CӨRˏMc9SM>w _La?DJ/Miևo4|}VE6CiZL3PPΆBFXM-c8H7Ug&.`S^PX,tۜT d)~?s뫐sKTCͯZS#G^Piz=Tqu:,Y]k;7=HMm 7o9VW ${HOᕋ=I4T G9{UKo/3ނK({9Hޯhw=Տ#;~Z c%(_CޔY]cge!om }"\u]&(ZC]"J&(eI]+jےȶ?Qﯩ1g7.p'f ΫaRta X%g<2w߬x^i#wՠ{$e QҦ՗`nèOه|t~9a5X~+R@yQس׼1 QV;F]fSRy;:r=/K(ASs`ՌIH5(%{NA-hi]v)+DV)ve<[0B F;q:XeYN΄4%FB\oqP$ e}.)oKgg J m?7&/! 5trQĿAG;92`fU0 \#|Ot4?ا5 q_Bc@r N4u|gr jv0%qӳgYg[v̉qޫpk#KO͋43I%HT6>ʁ+Ҙׅy'˖6-@'QxNf\OU4dz9{}DWoQY7 B^z lIk]&|Hlqw٩N*ȣ‹Z!Y1!֤KILRxHg ͞E?DٹW&C\e㢷w W2R8hmfbW47 5Ϩ\<$ٟ/ t~}lK[^e?N'kUI>IPW唲ηXjgh|EiudjD"2C'+[' ]W< Om \AEf1a>JswU)"dyóʃp|*T^y]S8^VvL%s38tfWXQIXW2iFn/< t UD C:EAg: Ik̳2{ i+no(=7⸺zJ@ rJ/sq81˶t79XwuNǻD7kf٩fLkQil1-ЮAxΗd3eoC=@ @sxkȕo @@nG/c[᭬*>OBBO]бk3 n9 )MT5pNۍbGodJYbBe6 p,'6AsnOUd_Ksc\N>ԵǓΔZYģB>"ybnq=vHDX϶\p&b8ծB#83DbIEBk?4jzTӇ+)~axO-:~ŭS&ewFxѡ/gP'P7'piYE'A|8k$O>=P-K@Yz٘CEՈj#'lU3p˂TJӞ~'[ᕪfe#L@gQÝȁ9B\+!򳤶šc%X ΆQx|׌թoW T7C#9S+R#v 02JM{ҋɗ_2w&Z5&NN%d4k>G6r[B.U^*MN?ξ]h;o\)|ucHM QYG|sPOw7nRaqU3@bS]|]0 #\=N0H0qR;崐Z1vg>P "`;D( 1}I)@?v?Eq녨y> prMY^%Cn &?^\ JUU - 6]^KW_Ing x8#QkBqk?tuZCFH[D_jf ,"S%*bv7{SsI~WlƚۻGH 11q~Ȩo$|U=cJ/casa M<fDnJnJ2.O=Y"Dɖ/lB=THN V%Clz $Nf ~{1@b.k&osSaݭC~ ֵ䪷}hIiv: R+St^[Jo6\G ''-7 Qzs=mJA#PӉ'yJ$Ŝ-ɾXXFfAwh:7ޝǐvG6<='vM)D<ç%h.h̢^%`I~Y];{dӌ9C2&S-hp֟aֵ8 ab#*Y.73dGx8zD/Ía2fnΓUB H-1#Q'Cה]U켆VQAL7p*јXE'BxyhOp4yu_%eh #mߺ}߉^" Ulꓺh6W|/m}vPA8b= MR|ޓ`mO׳Fvѹa3}y0i.GRXj{ֻGFǮy3846BraG85I@ 6v2oTWߤ %3_<cXԫz ?`fQF.Mulo_L;lTA8[KFd0O//&Z\;^2Ҹr_sd}vxKTFLyckE9?=&\#Ms:eo~*%6(;vE c1ݪdZ'"L% r/c+7PY4(sQz܅܈ȋ#jmHkbejY<-S'D ܻGQiՁ5*|~R#lLLWjzŸolD"7*2~!ȣQ}Wܚгl;#qңL,GD,dX+5ьh}>]} D`}# iGm2kĀ!CnP$||FGn] ByԻ9気Y͓rAy'KKhjWI.Ձo?[ h5 Զf_ӴЇO!ѿז\Ak0o ቭyz*`ڕspG&Lm]-M&ȚܛqXp^*<_lK>W_'D*JK3q tK_BO8n1&/?7H~Ǫ__"^g`>Z:GJ\dGcO/+feyL4H8`Qbc12@t锔t^H3\+ 'aPI|iNqOLgZL{W'y|݀eAT1TG#Re_M6֙Kx:|"3*e0e3/8)_/"D2xVu>6t\ ؗb${ҋdV+P& n[(aQjؗBJr=숍U@J#2&@?@%PRQtER)I/]hr: $(`gR y~><_X]Uj6r4W؋H,o|wD.q؍ in2be(IZƷ5<ѹG!GPi>}_[xYOij&M"h!*쓺|{uw vm,m 4ڬˋIQ7(͒>9ש̑8l3r_~*\gD~+Csa"iɟRJE; endstream endobj 2839 0 obj << /Length1 2381 /Length2 11052 /Length3 0 /Length 12339 /Filter /FlateDecode >> stream xڍTkKt ]3tIt8C -ҡH7HwIwwpssZ.ւyoxZ*uV1S1Df b $t@@r`j@!cjA0[4$ `$AQf w8 sH]E6<A+sw[8=F9@5NMu  ! '';vvWWW6#\ uA!.SϔJ`ߩa4,u+xXCM &ζu9/eX_?AmML`6v`[w9 j (K+99?֎{ j 6~P: - ?dw~&P;'G6Gyf)[S g|Pý]\+[̠f?0uc״;C$ya+38<<=fb w;/)~f0{H 5/y?54nP'n'a"M!nf sz0< 09`)lyP{d -vsb 1s sU9o??Mß6Psow;l?r޿b  Nw/#?yؿ9;Mv`ǿ [EM`89o@| ䷂n[-@pv䏸C~ [dO3u6q@?7ٟ8]/{Gg_;O)?k`wZB\߆ݜ#rI#&:j{~ i`eU`u+ MTFV9foبI2Ē:p֥.EPܯA iHPmn6و1;J3R/VMUCt뇽b=| G͔bc3R= K1:OdyϢKTfv2"WNVDʘ*ِ>[xxҁ8 85C;?s',P4}1@WÓƥ˦Є" 㳜6 o$gw&R<QmZ(<2;;+4&޷:.o" 炯#J50Ki^Y~zH;&Ok萉+Zz+TwcM+po%QZ"z:ݧt9~KZd!vk_F^NJ )`jD(Dң? ^px,H8*CYgO e5wfU4$^p0[+^{e7+g|\1Ts-mf wFD H SlX&}RPjZ+H1Ҙ퐲﬏ӥ[ &Z}tvHFQ+jc-[b(r_e+ܟ=s@Ƭ!cctLA?Z~!LX 3Lr Tpn-nm8 m &PWWW Q/<ԏ{< +W?ڐS(Dl"TC‚-S2ct~[b6Q⭓L|J/Q^S*=!tŕOmL/Ӭa[T}ܔݲW#QdaRnlzy5 5swv(.Fፄ+/v#Ŝ!7k 1lp (!{;)/{;4tXDJBex} "V]ϜG8孺&koK!ܘm q-827{iLP](Ţv5dg6"L~uT;tW}hVm`:9 9WhkAiTGos0?P>oֲ}LvYF;дCCWccU`K:nQ6q[1>}h()pDbխ\ xQU ?|W$Qe:ٌ!\!| U@ ~Q:66Kܮ#b砌Y+V IR+= oN$1H[Ak# gRҩMKz*Z5>, !mԔD<^ٗSOXpsj07~87ne`||F'-}G|Erw}'ݏF-Hk/Z+H̄hKz5]C(oTAJT|D, 0HNN̬$(P ˓H#韻kʞ?`8b(u ʯV.h+ O+L|O"r_LE#N-Q> _<|e;Z5ddK>K0q3J~)g(9S>/&0nJR&DKٸ6$FHVo4H+ݙL[8 8sܓ)4OfN D +af%i.kwz?>X>R2|R343j8|A%ѯrSUzJY\>,tmy 2jJn'OZQqRêD4gXyB7i:^EItz*1t^ʺL{DoiW(őXaEIp8N;cE S}8I^xaAcSkE8J;p0RP=f`]GTvFmu-6Ќό}9w ;B҃E95~\ȫ/U 2`R=٧.432szl F8JnV+? e Qk}?m )A۬j(%:ϕ-D kh{uڳ{e'p<3p#[GurPj|'&` R0sƣwxI~p {Z0m=5no4 jZt4Sbm/X7WrB7Bj&#c*UOY+F0 H2H"E5 57R|Y)PFƙ [,ߘ'b fCV,$0NL'ԇ[,q*_͏DCd_x\&amlգ"lJ>fQHM!4F*E$,/H%fwU2Ɩ5r1.ߐ C n,:6\aPeU<`_%}#czE'rxy-C:($em;^ݤft{NAi{BXv#t֕QlzX UJ+TY6*M35χJoUxO̿{4d>,)$ `tzhqLͰd&L y|1U=8k^TTu\tKlvq1v[(+*v oMc.kun$@#$KCxhDq9|c>"{&sYT)M0t##q翙].x?nFNI6-}(ǻks 9,]B<.,ǟL%oN]J^oFU*`I$鋅-zr3$yd-1mE@hAؼta@ƭ8 GLRk]}Ftg1|"FZ9'O uRxcrz$nBj“~ GMƫn-6uՃӓ!pE[&õʴHc -~Y]vZvT {U1Og y {MErXtMǧ z69ILiw*{.Lo Ѹ$oyDJݶ8W&~h/6t1V\SO N2G*3]Y2chQJ"FڎO~8k}?QLI9F}c" <ġFgnώ[R^p9.J:yl%kHw# 3Q>LY̶n<9xxbrvSfQb3o)w*5ְGzwޝ~nqå"*Y,a nb:Sdq)1XFO|ء"8qRj[,׸si#Dc{,v_kU Be Wq";etk:eəOw+DZu-AgY .ոKm~ojH 2n𶝟v.J#`fIUІW!l̑ ڷEɓJ&g4^8ۙ `G]"dxyznCę{Km '{-я?qQSO讍o4 Դet18(ݬQnuOF~Q(r(B}A@.1GXQ2ҏHq.GPE~b_%04]Fk3\@o1s'[!:C WYZ܉Lo]a_,Ԉ=d9^Xj;Wd2 63""ʀ!'q MbY{ a* L{zb15D~ӗ) nV;Er=1n/wڰ-ߍֻ7 #0tEו-kG8km]q$ a)]BJ9Yۘ&^潘E_[ȳR.#B<: 6\aiwcg\;Ig+#xv{?ߣձ BGg4_u2O̥X,n %ArAd7آH (Z`99o:%"[eR'>EfuϏe-ܢxT~"= ljmbR]Ie31}k_S5:{wˈƈs]CyK滲QREcS(6A=M/k5uo\=lbR,Y\dBL&ϱ'=_JMI<=~( zfy *\z4pUIb_$"us_l ɱ mGz7hЛ3WVl9iN#6a >Nv:0WļMtuu N`z,)8W2Pso>)xp&JxUsu f #kc9!4g%Q͒X&/y\.{f"<Vոt\u2to(9e4KkȞZ+MHQn?H&Y͞X$ {j1{2cKh+o:0,E=>S' ,JBbu, SDd&޵zJXBV(/ʼn7ZotV/ 8k%4KdSW85|Ѩu&_PO8BJW{S[ Kvb:5cK4*+n>RVI(:Lhr a,ŗ:֔̕vU/cI肵jlw]$gL3;&N{N(qoe!#:EOvߗ6*t=goS<fPo}c9BH+lSըu`PPG{M(>yo qi iHu^ B .7˭x#}v;PJXH ;*6qͬJ9;IB+U#JArLV, (XkKhWW8l{<>3!mY02ҽ5|&"<azHqGwPB?(m=T2aucK"vv-9z_r4{sj6cvS|ЁiS)C2c1y󆌧PɅ" 5Ugg5{8;ij3hz!-3l )jk$ "I\\:[IQ5D ̈́ = _h Xg<^u ȾJۊ-w*}]Ӂo  j>Ͱc>][6PGB7b{qJuElELq7{Yg00JE&\e͝!KSpFզZ/~ldr2#ċVjiO@EItX4g! \,F` M_z,%Ǵ!h,yë"ݔ" d19?$Q:7]{|$p%K.oki2 Ϊ(Whb,1r60 /t 6ȦgPMPw96!nqoƧΪsNW%J(Hn;Z$t,/L}P纮K)\?t?p|z.1 9#ΓF.rjXJ7=ωBy4ve`r_ {KB)KlלwQHms&Þ2N^KxM sUnGiHK7?L] q6We&˳I g8MϮvV5rc0h}Lj'TO|ˁLq^tT;җmj>4TRԲO>7'cDS34U:M+wdf ݒQZBArvlM:k6}]|j$S/:xM.ys'߅hM%y|fz4⥴ f\ "džh몮Tj{Fףfopj)kA7tOȫm78=+zjCNZ:Ti}4.)3,%ށ~"xvw<27J9e <\%7,sLSl=3՜A-ٺO*jdFfc<'㔣|bݍg,adV }|B9ѹ58׸O9wZ)`BK1=_D|MZx"ōJ<~ťY9i4qB_@S7펑ATեk hichm"-Z .H~@>CF-.~+PۙU[=hg}guk\A0|d`8I2>O[wTk)6zA4yI~.WX!C<{+N<|N<|w忺]"Jd` C$*(9UyXtdc$F|nث5'(\șM訠祴@g2Dƫʾ{u 3YDHQB|NmA2s'3sk+/LLpH*)YlKw-5e\C"V X_^j2%vW2:Ty]޽g0"LJpyڷ'ٚ!u=A{:M>%7bkk; "^hQ>dn;AL{yۏܢH*I ww*[wtвߩݖ*Tȟ|G:5.2]'hjܔ[>[ `jo<|zІ:mZOܗPq- "d|*0zmgw? t6Sib+Y޸ \oqLJ% tcjާ~na\.2 βf;-M:Z~ =wMPbC^cd1KÅz endstream endobj 2841 0 obj << /Length1 2613 /Length2 21999 /Length3 0 /Length 23484 /Filter /FlateDecode >> stream xڌP t4+HIwH.ttwHwIHwIw#) )gfΙa~wJ"ƶ [0#+ @T^^†DIfDrp4KBChb@0DP d`errXXx#h:26 G$JQ[;7sS304FV^^n" s# @6YC<F yo130lLi.`3  2N;5&$J&`!Xl!*N6 ;@UZhܿ.ې?@##[k;) Pc@߂@+G[>hn4: ! B2w~Fv`G&Gs926)5;>1snn4m@bLA`' 7;'d1vf `Ien|!y8Ao"$VV`25AcB C` f+O 3r#O>غ<l,V7(_6&~ )bv{ChkL2 ͟Iad1a<V_'F$de_?|ۿ% -dl&_+26w\i0"6fd`bQdd62{m@JO D [fd 9# Y9?A8mlo'tC48553f& `b\fߤ!.?,@F0q% V`Yx w?]]xW U w?]TBĢAb | hBbAE 3CX2Çjņ6/bsB_ lB3YAN.d+_"$؁j7Ƅ,%w ı_ $B6H@;#$O+_1@t~H@bvY?ead7O!!\[k߽l267S9NHvhkvlB._O eu0 &l2;:HV@ǿ: I 4Lv 翦b_"]//?NvN~@ #Y[#@*BƝp)}q_2eK$zY%,:>fخ%qH*oJj3r =qCD6􁄯СJ3F'i*%'uM| NLPB{gUQ.Mp%u֦utVNXB;8Je^~2;g`LqA"1ו_ Ұ< %Jhnk.̶/t$tr$Dt#ƴ[␝nB 0 ѓj.սZIl)$83$,=H '\ӫ-$* s[7$k?՗kiM6mV5efߏ)hu{=9jo@h_&+}v3-/7QwkJ ]k|rVk9̨[>ifaGx`$SsYVoIL1TBvhm+;s_L@;\~S}0 /Ɋ2",#O*Mt8_qx17̝vͼhPq#ZE/>NUN !0e]@#n'}1|sH#ou&1>vuŁ' GXUw7eȔ= " }h\NX,j>Bqݚ"a6}²{f<4f85~ۨZ ֏ W{&&j35F VZsdfЋ0K;snB"q:ĆZ~g=XĜFYW6dg!Q*8d2'U{M&~e2L{HKXvgWsEͲqz_~cj | [8Ft˳o^rGSZsrFJ7bP ~ 4տ?}l^ԿHb yk !XKQWbMc5)a6jy]&7yDى4 PIݚ7A >tP)bX>1Qq#W`vxw׀f2n {pɽW'DmU0+Unog8~cHTkhƠDV!8ɜ]VY,jm2FYcx C0+X0Hhn5.Q'`bOTI@2py;AV.ktt)QvB [6/ $'jxr^̂cX?n]*>sr>%1|UǕSz Z*=c~:(?~sN7gAEg3ŔE𵡑gEx~}$c$iAy<\k}\m8oY X^RͷS.䖣b"U8!h_"}knV4[rMlRS“t1j81KM0I]URvxh@)x2n )@q 8/aXGԪ5&94e=}'m%y.փ_Y|0>p_`_Tnծi{a7xr~qPG,Ifb罹Tװ9 ̇ Azf]1h1L j> ֧)״>CMnsTtCm'ƀhHJxSB ~]61$ٌ%ȒGԞȀ{&U*X_ŌeO ?ےv*')? 05~̮QJfN:q:!]&z5Trd}ybĴlmiO߸|h%"'B;y Bh=- [i=|Vq q9^Z}j/q?v7D\QZuF|Q4xYUQk'\"k7|0o>F<Ps~pG)֢ܷDo^j^'S28 hS>sjbI,%zt$Ilc2aBI-{SI~8lTbuJS#B2JHَ@u,DF!^'!i Ev5 cnEBjI4ϗ`O[nBx︬uXRWlֲ2p*VQ Sl0Mpڧ'[8j˭?P(*KU& ru},Ymw}BFv^v~fCH:7:CR}sF[;&3coોg4킧Y &ŠYЕƟDG^+QLZ&@tY)N?lt2ln&rcVj'3liDRlj_M@ { ˖0w):r@d]0OtJju`F x5͕ʆ6vҟ=1?<'4(CYrGvc+Njh@J#+7s9^֚u"c^1 O=80ə[qݥV'Wt$ $=3G3nQ9TS7!绒fEwIbS<(>9^~9";0=oEnh5n|7 _ ~D%Z-iՔr/#"cg1DUaHWp{ؑ҄rY=<h7ݵYeG6{gL|k~+&άBG]fqN/it rWχ}ڈUH3qFNOnM*~1_$uCa~5hW'=ۢztY#iFPb#q`U/ĔpEw(+5а"Y4M)iĖبR‘eO . 8R>HHF9{_kQ;p sC~Aid@Q?cShU8+1I8V4l+ / ,? 'XnΑ"S.p`(y ȮS uС`CО`vco:R)1v߈ ǫ9ݡ_[Y (WɌ cs \"iٗ=P /!؈Lkw9+nS# }uV(3`p=#jA l+"ӢY9Ba QwWL>Vp_>+A37ٕo^~=zx^6!Ncb_1;t<V~{ض*rdIz;ŋ)*pԯ\ L$nXd] f{ Ӿ\J"bHtV{O;twrWz c+!Mb_Zz3T.{ûČ&h,Pz~WK>><ܪvT5aWۣ[u)Ioqȇj@)$(`jPvE5;`$,\ך>ϋ}/Oɕ;"^#x9:nz ]p-ѝk9\!xvZ"b.:^[k~$ybJ~6F&/jvd"TnmǸSA0I dW_W#tR/X}Ԡk,g8?:'IEU[jqػL pEdp}(9Utn:}Y9Hksn1FS&iaLUBK\=gPJ-2WK4/n Ql.M<61WkJ!=<>Zh7us%񃐲zЏ̼.O*#9W^af{bbdsOKQq(Ј@G5]C2aCL桡++E'8h2Ūۨ{fɄR:h dƢ;Lw[΀Z2X q!y¼[&&!o+3[(P  YypKZiR8C_vS(Sl(SЊzp8 کN*U/c64{homHcP2 2¦HQl6aBց\UQDqxCAy9G8/)mG&;iÓf.+hQ>YJ0OxՊ^k5B[ Nz>;T9ׄRjva4;:u^t?-E [JאhxWbVސs`n6embT6zNFUX'F{ `}<"-Kvnh5Ee3 գ5Ԣwٜekۮ/HWrG YlwE`ބ=:iDaQź-nBUOQٴƥX*aSi;攝5d^42GrH;yk:wLK?KZS"36Gbn@˖c=/ yt23oZ.ܠ FC%,!1_.EwTIB[97x+Hh{eJ/7j ߛ|Ag$dٗ]+ &E1ǰ?PyMDZa5|پ|!IS}9 v櫦ʟJSºH;Z:Z$(6 V$xSq jvq xzv&dX$~'?$KHxahB4oyj^ *pĀcp_"zC|Z[})qL$S9C[baF1mm eQA^Ȣ9S'KOFeΟ#G P=ȹ擘k[U®]Xݮ`[ ; ' pF;z5[2mfUߚTmojT زy;N4}ނ{}|kA=0e-Zה$.X]16t~n u=_1L?}Kipv0c<UĎ`a8j 띇^ C 2G" 3Jz$XwR _fRlŝZP!y9?_vIbTgċw@Z M]>!?ԾSDZ^:WuΐkI9H31yrBM/0́K6wdQ7c%@?"Q d$VX: b3 @.˻pcS,c2A<@pL⮼}R3 4gGAz*v~\8bh6`/^>SǜElhG6=F؟,f]wWs3 / ] =6׽弥_I@;X/:N?3\Aؽ-5mttj%j EZ_/"Mf$ІM"Cf[ޢܑ@G%vnYv;K.hbbZ)gEc zc[R - cF8$x%ӎE 60^/;2J2F&\{Q?}]WNIPhٛ>U~S ml.}zPJMhMl[/-k#G%kzG2\o̍.zg}uex扳hO`c4&q>8bk! \=uk #idex\t ꯦVh%]Fks2uf/V}Ӱm$ʨq &cnuċ{>q6[Nu9V [E8u/Qʱ\@du Ȫp,GkYڋ[9p4"?/|Q#=qOVqH\=Jwؐ'nh(ñth&GCV]#[(FC6×3}TƠO.8KLMfzLxV,r?2#4gN#0~age?$=(%*o6ospFF-0T4%.}ojf鈧gHZ2j=^i +I9McuȪM\U)̜RcYF5‚jRPnUc94߭[CLwZVXBEЛ |<>Fc)a+K/98E>>=ASr+ZvT8ضWJCT ƳðB/'vP1lc>6K%?]/Y klr$ҍ:MwΑ%Dj?b~Uy rKӣK?O~,sFB'WŸ*M \&dp {%3RŲQz5@7Vmؕ9k4pn-H>ccJM#HluI|^h61I 7GeZ m ͉Hʂ'6(xoZ"DZ>"?R29K(32bDY̒nZ PF&-CJP'ѳwm/0aRG*\Z'WB5F/(\oNBj0B;wnVBK1vy4Xus(m 5ЍmB`"TG^;''bK»~F|hhoV)AϮ5ՕzI j,?n;p30u~lH[| Jeuɮ߰}}T~rdWtğnEezjOxl+;~*:jsZYESR,Qk9<-7b⼯M<}G)=fIZ)#W^Eg&y.gmkC-59 H/Hl5vG/+_QM5E33Vkb߯>bV<]CO^\%K*iaaquY;tX1gAwNr05[Ou׌fa?ph̜)+-뇭yK_6,i 񉩟yɈ((E|Y[Յ=0s(SHa,`C ,.61QoF_o&#N!}IҗR4Mi·o)jGiݶӝ"T'o 1 5GI;\1:}D1BW +5K$R)WL޿DV2!G'__Q@E-&jk'WZb'LNǵhs֦| eChS^†^9이$^tT>XßpY5)1\l+Q#ny$iǹSJJ MOKt.*V/tJ]xXŨZ$=-TvЛdcxUen.;~!ga/̻B˻^|3Vz!˩xG^9Dyuv0fr^ ڟKuaMgᫌ\7eˉW/nX}Z@*ݢГፌsTلNØ-sQ2vZ(V珚Z~LKt͟ܫcyiBȊ4fe]ug|)Ƴtxyn~BT>M{>̝> M-"\ݘ}Y+ 9lbkIt]G>bBH)۸bke'I0{Ӓu+6_Hp&;%te bپ5Έ^ Ez؎s޴vx~J4 Jt#j6O (ꖱ:G@*KYCqX3};3oϨŧ*$$Js!irFwy#V䩺s.{CbM֚Y,; eO`eJgDpmDXeEleI%P6њ8]uZF0IH.d[>PF;-U@ 3}%*9u]Q6V[.9 ,}WWbc8.<}ViHHA3:zk˗swZ>FY+?"ng> JY6c/}4tbp2TEv~dnU(5( nZlrag{a~ŌcW0zQƮ"<_Ῡ!OW9McE'=pO4h׈7\d]QDGu68.O\ `64)pꊶg&j1ј0Cy4\BSlEIzgqSjL/nn6)n}#b 邞/הϵӹƃ})?6988i`N uszhWܰMIh~zlz07)b1ۼVΥ|0b .ɃOc|nhp>K:شv?a}53 c-|vq+rX4$ m1&;oP8۹n??/jU3Sh\E(8ӂG[NwKaT nԛV<W!=noTSn!=Ϗ~[VScn/?17=PJcnuubS[&¡%y?<.8 Ĵ`>{t9%GJuQr#}* *sYO/CS֓kWfT1.ݏUWU*}P?'M$5wBƂAAt /3O zK%N~h\ ;~Keb gm0G%g8W]*f.9g>+eIxA8.`\y Ǘ!:.W?ި%)1#[i̖YS0hW|z k(yצw\e{#ܠA~`֩ Y5azsyrSQ8uAsyyռ篧2i~2S60{[tu=&c(n$ej5q!-E$psxvvcً䕮GG%2p)11nh$V[G7@Os1X 6D:W;0:>K~4H:~^n oDki2 4Џ4ݼۅ=1 MbeztKBiNݒEP& ^ H)Ź`P @ Զyy7!4v;Eia*[{@m{T_TBp鵞;d u5MI 'I>G$xx@LL>꡺3J?7BSy&$FÏVhs ~53Ք#6DLx00;An x/N,ܘ6Czޛ7S=5Zj'ʩO{%Pbl>!3)@K.9ޚMM؜Q&Biv}dBRFO>Bd])hA7]d>|&&>Ps8bdRry2G%.+P x#HhoYQfz>0 =ǐQjg^vGc&U:ǧ#FWX+?iTF\5x|KK ;xISWQk ϱ#?꽧7ⶌm;ʴoq5 &sۿ"?[0'HjK77dcw+(Wus/{(c_ $N *VL3A\#_1;+d&hiܨLZP&֜Ye\[}{; ^b`5q+cct%Yw̢}{bjjwq܀cSpHՊ( W Is:c^/}N6əeLhC'nDsB u_o y - g[eRr6>ii1ISgF$v@O֓a%# iؐ Mz>m3&E0vp9:p~bZ1)]r+;#l?ә6uA37ڈ^N_nF\;5n$4 tJmogz*rAM{ؼ'ddթ$R5iAuIF 5pK;$\U2F!o++_WJ[5n`lG_M9$G!ڝ1yM/CK(4X̹`$J_ >^ԵeԱ篳ƼЇB<DE0ۋ&;!pY2I1cZR,2b<*!IBٱRe,U K;f+|e>'"6{}V$ɘ3苮I"z YΏᦙU$?xϊ 8þ֒TxO$ Y b@{ԛb`XEg/D`Bv9{ \R$;vZvClЭTL ̖vE4&@!;jTI @t헡y{O(_Z}g5O} s@~Ѫ ?6о'&fp5U3${WM1~'?Jr Ҕj{pIPSW,3` cGh]`t,`_23\[UzIM_Bp*xٴb+xAu߳~]/wVP3,A\WdP_C9U|4f$ EQTc6[xv-j iԊj; -٭f:⠛9lt<_qNӓX]X_|fnU.AG#:YO Ba-Q).xiŌԭ,'Zu൶+!'?J cE{GѨ,D3]%n\Fz0cEis* y@ˉ wE |-]ߴ`vet=G} ޽ԙɉsAGsy͆E܈9zCa<H~i|%vx5O\*+{X(}z0'u m$I7R 2p!A-#{ȂxS%J@OS"s#RKdxV%yb~4<}w0*g^ O;\XCCa&jDKk@ZO`O| ?xWc~gOR 4H =$^,p]e۞wMXju|GYV\#{P[F~9UD>K"ow_^Ekfs3&fZTA¤NlݨfY]<9SÜ't{glsYP/tս"#AQgpr(ekGoxqn+~3VK`xw6vHK2Z0/eoX"MycJ5>e9@h<ArkDi)&z:3BlTxEksxWuK+oPK m-Ȣ!jS&XH \wtaǜx- ՚62 Rxw%kCtyO|200-_Tfe;(^~̿>ML ic+{S@ jMئ"sDTwwyww H8-ƒ_" dN?))*\9ڙJ*"xa5wz3r7̬ⴷo73O`?󶃪Q?6 G4}e7<ǂ8]"D$y91u pmg?;ͩxL+ŴdZAA`:-}>1hP4Kꦘ*8PTͤ> */o|?̵y]4w\eKL.+Le\,m"Pᚲ"+jr=ez' mx"eqGucE7(<% UQ me6|R}{(gOF2Y\%!mG6y?g4+ZC=\^S,uѧ?py]iPu>TQ9# &K_|OC~8+ /%\}=#8%&liMdXBRتȩO̫|B.Re1 &W^ъ;%Sj ds)pCdUc+*Yy eک{E&6 ?Od!]}Iht9Hߥაi }}Lkԅ40=Bh ;(|Z.hzr3BÖG}W~ND #AFLjp-b ?Ŀv}xRh:S1nJv6ZRb ތ ~-4KB~ZI l()qXF!L Dk'IX6_YA꜄7.w3Gl $bhmҶ/_ Tm[Iv®Yw`dgL33fpYy#mSUY nudj0~'/Aĭ:L R7P8J'Pٸ)3x[Ԁ26Qz\7z%6pZ_C)g[G~rVUGl mhDP2tnS&{v{h%UK=ѰwU.ΉIS3*㑝xSj 2 Q"sX\V)qN\p! XR`2)~CCAq:_dI\hf@.`rʯÆtpNauAʼQ Ӥmcʙp'$?*9!1Lh9dbt ?+[T/Ԉ!F(yyV 1G$ǃ`qA)'FICeE#2J[%y.$u?F~3\Wcj 1 =iCb3㝩+)G+@VLR+}yizִvҲtUCV~I[u(̽NaqsjꛀX '( l+Y4TxC g{Hg %#5.#Ю,sr\ SΔB=$BIĻ/O b Q87*׳ `YxuGتepa=))ßmqq^}\v%d ?n<+w=szO?_@%H_7d,+hETdu:o'25@W42~NeH 6Gv KCfNSb(C_Ȯ^x*!<6/p.2ew vu"0+AhDyઌ&G40g0yͮ1/&R_X %K'Yi@q vD2,<#$¬p%0( |*{l4lbNwQDMsV)I.=c02܆\[M@TnFbYIB]l\2gnuĜ/̴#h5 3tkU9`cpg}C)ki!*)/mD:J-@s[{@# sbT)82]#}G+E YGꈀѓM:;.г~S?Hf*2V9zC e^OQ?up N$Ü6)zg׆u \C"H9Oti>_¬JccDZ"+-ir$oT=~(*Y[ ]0(h0}TI!FO1yrW *A@#^3݈9:VFŪT:zE"淘Z͂s^Ĩ3O]XE< rmG6YT;x!*.X b$Aҩ_EVTJDA|?7kCo\uN[*9CE4RgS1e5a^Oum݈9􁨠P5V(OH3`f417G#BgZՑT7I`u‹Y2Uw'>^/P/|1/frHec.'( s?XW}JVі& @qW7-F1ց&9G(Y>Ea~rXT3\F3>\֎C!_֊˅h*}v8>x!ϭ2׳908EI'Brh5Bqo04^V =\0_>ݺSH$>EpRE,ٳjYO]5%nU䦮d2 ;'N8 v-+,u dP_Ø!v$8 έѴb=: c[S)&u/k3 ({;dDWt΀:E ͹Qy!98nˆPO(d8|P.|sat4-~=t2A˄4Ra8{wވň[  D.'f&p6 .뚄gA8TA.NPiռ@$,!D[ˣ2!g?#]Ab0[ΑKDj!p}U;uce5U; ȯw6`hS̱`ҲBjfSۧ7n$mdgٯ/fbN߅'DKY ޯ2?6W,7tZ r [ʹ ~k0A g>ѰnmΒMW: 5Yh֣<=iΖ:V5szw8A-kՏ endstream endobj 2843 0 obj << /Length1 1448 /Length2 6925 /Length3 0 /Length 7908 /Filter /FlateDecode >> stream xڍt4ֶ=Am݈ a Fa&z=1D'D^ D!zo=Y{_ܻ\7T"ma $-("jJ@1! PvrPp$B? TQ00X;]$ HʊHQ P_H,@ tZH̝[ꃂ;Ddd~]`(803 >+F {yy ]܅({>0P0(W= OeBci`, X`/iu @DH @.`a;A:Bho2;#`O0l59R6U;wE Ý(+ *@O Am3Y' `G@~p6A<`j`!ҿ1{ 0o>0?W+[n=a4J""(ҿca;|` rO!^P$o6z`h Su**HoNAQ @DT\ =3>W]5vHO6+cϿrLe- 7ɭ@#oEH <y5h"koS3؟ՅA.DǒYPD\(0> qC?ɯUs#`Hw_'lc%ð<$މJH(؇;z$evA0 !h [?"5f,Yή_(( vQ (" v-#- 79K6`0 "XrZ%>"O~j.*81G}z%('{^=rlSq;ߧZ:cAvЖ=mcܩ$[38RUdKP=8Q7ޒ(B{)t&yݦy kk{[2[Etwdo.qmyK[4ѫr`n֎ -o\O7Yĉ*M _xdRjP>0d W-Hnc$2w̎pH"al-,r@ItHMzf_568A2G<əX3o6cO)E9W@,a3ϻxAd'M"i޹=/dMx~a؛h ᬬH[iK]YQ+~PƴXڴem\tx=㠑͉ _^UwTknydc[x^TOP;j|!w F?/p3|-Z,zzx.J!El8 iI^3h)\<ۍex.5TySFM"}~SϿ-L|o"R%ӤUZvFS7e:NCB{JZ()Cb,)?@q,"T˧.146E E?cA-^쯿Le^ؽ[(#E-/eo8-d8b͑:rLB3%сf \%yy[Nɝח99·K7[bbSLI`ӮLw ƈX"P~z~)./*vO}:J16$&)SKGq׉=w󩉯`,П*G }AްP`&JM܉^r=t0d6B&注ۻuLjGzHw()[Ҳ֧4rACo碿VѾV&uw+iU7W+xJg+w DMkNi ^_ q-% n}l1lNBd—~n> Si27qK {qîY?hu&O}/caQ;;S'Z z{#zVmJ+cLˬ.]q9,ƟYo \x@ ({Q+A$6(ސ [vmZփVu{>:/4^|Rh0@9n?1N7,AޝI+-coAZlǞ)_XE]Ͻ-`*31B>n!!u}wm&$ ,J铬nڬNh±(D#6kVCNVt* ;{xk8@1dyz(w]Tp=C'KǓ:լs'ibmwx[Rz=-mH>;T4aV}kFC Y'@XCt D.ӑ%GHas'rz?ƣgyNodH hUrF cTۧӅU@~/N.O߆O>6} y~)vIA后7z#x2g3ɝK@=sqmXnMWvN7VYb.Knz%?sމ)ر[ ZfF{9-˼~>2: ~~oUL_*nOpӏ3.߶qTIyf w r'JWxVsq:mloKT`Ϲ΁˸X=AMɖۗ/-a%oK߯p!;8iMڟ1O8t0x#MhD]Ahyfsco_# ggJGP[6}\V(h&+bXR;|\A#c4P_Fo\x?agH ;O+E,%DX&rʝ~1BG#JjoUNї=TWHӳNũIVW@DVZw9i\JZ `jh̶.Ŵ@D`Wu/Cia Ho1c?ULPTLPaLU4%w N[~?IYt #AgPϒs)xZ̪떿j.gӡTg]zGSv{$d*NcI>fi~W8ߒ_֦ibNln&xoD4T˂1)Ĕl쒉;> g#2!v+ʭw;V4uK(B"Do6;iڟҦ wIM̩ DZ˰W ugg4OUr{[~/N' &v<}9"29rGn]w)oSg _CeS]Tlc??=I%߶m-b2+K(2a.81q}QEn{,!LOl&˞{7i$<%"Fmzl= "]G㹑<ZxgQ|1R0h}ȋd%gA.@!.c1 9:󬽇zxvfѴmIhc> P enZyÚ9Rr%M!{fpr][j%1}I'(Nz$\٧m?9{!gϘqs+fۨtkEU=mƶCn?_H)=a*{cI!^:+bCPW-bWqU<<_6:1EL$(kBZ9=kNV?'jm^׵?2{B3Stb-Y燿^U$VE ) WEcHGxyՅT*4;usI6ZڐѼS h Zݫ! ui¥0ɀQ!"̩ޞ[@XtjуrR2mE;mR3זppO[̚6u]65 ^>aD{m y`1ܭl*vmE2u)V6n%eI@0U4C~~!Ϯ&=fށ\9+'; u]LjE7XKz[^-E{]Em'KVg)\{EmnB22y63[Ep+b2TmRvYTTu >tgwnZ ^}qE:4h`P=<4j]Н|? {0IlS{e޿6)g'4_7cG^'7ŏ54Yó16d)QҍQc"'q9)BC7OWzC^$6h5PIPlF j[y8X Dt\di_\(}' W#FzC'D+WvP)w<5UybxH,,oopѓwx_9sG;=uhD&HJ.h Z1IƼ&w_pQ_~cChS6x5) zԁe([lOX^5 k*ܺCQlrDǥYS} ` VkK$0륖[=hGFe2ďKU>igX*axuw1ӠF̩q 0 IyKWz8_x6_† ›ghۘs?Ǹv@%T#,zA M YaC]qKʢ/4=O7K;yd(&'KǨly|;~{"Sf7U?ћƩ +ODM nϮ{!t |F%Hm1po3dg2wە31&N4 l]D*V64:)o؅|z^y)'=[grÀo|رQ fkobU5<oj"&ez%:&},P̍2ma3 XA\VPeXj6j^v!]%NVt(:P zVçq۪N׫=kfu£ב/3CrA+u+7hr|!ƍogTKg2Z w +-PSjyͅfMj~FALk)n lmFn\0?gVuv>U{=Km4u5 f 2-'@Dz ff>HMP~oWr+hY)e͐NHks)nq8[_3jC98ԻϜEN^5*R|[L,h̹8lWR<#g(I|l|V6 /;yg_޳ m('"TuhEFy,G: ꜰJS_>ٗt<նعĩ7pW] ~.^Aې3_|ae䝝WyX9% E2ԞSxYy1,ﶿ5g̚Z洂me|==7rr #unT/|H /&Rm84 @ (*~T͘ Tq/ƐJb-xb^@i/f(o|TCB?7"y!m} 1}"4 _tqҌfb;8eU+3 EYD_*4'} -h?BJGSX_6$AP0LΓbR 󏋌{үQЊp2)}BWWim{WhE)m/3 PKeX'^[ݜ&i#`PsxdyqiKcc6sF5kǂvKUz nU\U0MuLַo%cc>&cOVm1 O-RxYbqrn=$TI߶8Ʒm<ַ.>ڪQ%}&>nu.kj+Ԉ)ch*r {e&v[wfd5i%)O^!՟y(R[nh*Y^ w6Z.uRͬ:eN!BP[I$V7yHaun8i63qDA endstream endobj 2845 0 obj << /Length1 1971 /Length2 13811 /Length3 0 /Length 15033 /Filter /FlateDecode >> stream xڍP\[-wwwwwH;]$]9^սU{L[c5J&vF ;[gzf&4\\dagQG&t~ȸXY<̜`Vӻ0rާcyۙ1x,#;}BM@J`kx`j1s08" N'3Q`G A\,F+Q0́Xs@A_ |_;}?.w'$-{dazG@{Sxo_? ڸ|w?Dgmwvrg;~da߷du\=ߩ{ K. ^yW?_ ;~uΘ7ز.Fύ`W Txլ5rf nkz[z"#3"[;|%y>^r4ˆ= e%a0Rjȯ`n* ?q9!Ke8x iM:vachFhz"Z.cN^b%%̀5Cx* .mX=4Ⱥ Ca NSi~A-xwflBHV0EH0? ȫ`}_Fa6qȾ-$'h%6.3kjb! 괄Y )sQڝwZ60V~&Yxݎ:@888Hl.893rsB>EA\3".=~3| (\}YcN~H&5HFof(c7qM ϯW*~3_a4  sf4b/r*7\u`gXt4&[5v5"L`n`Xܥb3 6/GuyQ{M@{J'aJ)S0lnot ` $lFaxۧԺbx)pl6%=iA$;T*SݽG>TxBB-جU _Pi:%{ R6AY'yuzKpe4Ob "Bo8\pIW$t=^u$Y367~#uPp"-D8av\~d7I(mI'>UUR)b5T~7&qځjKd~`n2)G{*ϸlp 2i1˶IR*+h+f Dclf_R,'p x(_ HK.[֘žʂ(nQ>_&*#OGﷻEN~b=]8sY΢KFձy|EQx- Z_8(՞SS뮵L{̦:3J;Er@2>hVlyȞÏH%X;%7.mS6Of .:ŧE Oc`BbOY8vlXNc[iɏ3B]Qd X\vsI ,myNkڝM~(p{6<TϢ"ʰ冝9N~kDcJV,*QG&6)dq'y{]n^O`>es V9K#QӫJ]nZӇ!p*@yavCCuē['M:(cn:K'xيCtveݵ}|sVBNz? KJ'IC7O[G.&Ku@'zU z2qxRV~e+= #FA^;[Uq0U+awʉ](oA|* ( 9^$~Wux` ةŎ*#8J׊X*{%t\S7_Յ25vFmC h VMlnf[}rQ ߘǃ X!8rpSfi{<й(,@ʁ. Nz2(bK$dKF9Kwk0 vݴwɑni{Im_Nςh#brWp񢫀̨/㯗2+3s2Nw%WGT3I kfNwS\y3Р*15[6cͭBb`doh& V=bfCĩU>vp|tk ٽ$X`MF q9"dLn6dzʌ P 5>\1U[(W mb/t=9OSkO`E}_g#&Sc?'ZV3ІkbQ+SEXo2Wa/caN GSNSGs&,$ M񆸑!LwzS07 f=y%Lq$$Mq>e9O=V|0~uY@SaC8:%'pAHhTuqt/2јŲ̨Y++Yʇ\ת1< !lӻ03NBRV(]:DA0!#ݡ7r|gt@N0Bڋ52WbhEy aLMf%?橠PFBje8rȪPq?oXz9y<*ZAg< ϓщvV0sve -JqjQ~Xfxȵ>tx.t (/SBdͻc'--Mՙʧ#ǡ"gkNL[:X5FըuD)70E%I?م_lco5~ras5=ѐBT4ic˼u| jr}t0&Ϫto@=-jxdL9U@\T2Ϩ$[pDkΥv,pRcŪoqokr._܅6>6Ar8d{rSwZ@3܏UGznV y|zDog3ÞIc.6*3ΐy_VbyK6k&ۙ:!xK~#+`;#6W(wV[s 73/B: =Ξ[k8r9*f}EKFG?C2?i[~u! 3gaEmnvBwٙn.(|vk"n_HnWFٕ l2^7r'ZgH4"#BO W:=u70iA+Do/ؒD~RW㴇њeJ M:xP`cemRsk~WK/Tg"C5تz4r,c/cӌ1a't$㒿G$V׏QnE՝mY䞦Ɯ!x>9F:$n,JI!vyC'XQ3SۃW "_Ll=SE,$K jL S:f^{M6amR,E7 RH^5gYC)NwJ'(65Ί],ҳ8WFC)u7uf4wdq Efv)딐#1#-^rJ#|-k3زd|+CɊl~_+eaѹN x"_Q3.7bQn@(P*[|8q{7E3GHL*6FYr*rOωFw63ۯd!kwcCU1E֭X jW\Xo-t:YE](~P6b&d&E_YeZهt%GXQ[G@^s/Q d P2d4f?2eؗ:)pfóL;Ɂ.'HSO Id=<ɫU\TiRfP[$T TgK CxI% *5L#>l^Fڕ%ZhMېJ)hi˶ίDQoqʠ8SɣhHL'*Ŏ.dGVe<5]ZOS]5) "V+8QA]uGWaK uX2) ݾ'I@nh_4 .&V'R e H:lyq|c+mb1ʫc-ULf3GNuF%omtVE3<[> e.ORF>C%TiO9Co9yt}v+\W 1V ?@vI7= JC8w'<}Xq~nABmK9xT}浂,&n[}Y}##hk^J/i$½!ND#w᚞dck:8] 1w?UB c+'0jD{ckSeڇfD߮plW}ݞ7B#-l3KX P8o0{~ociho$lĕFvj1\};hbf[)heI*i(6}D0Uňl8,~vY]?}ދU&ǯ1_=7^uw%̴nl%$8//D;cLAk0bv9X`o/o蕴:AV'1-}*kY|T委 2 !I&e|h>1:|xaʼn_FRbEB+6VǾ]I;7,5yC|jNĖv6隦p=Ff& dIHSmb3&mћ7m>9=*s5&!s c 6ݐMV/Cy˔xk쑅 )?w/3>,|?i&tW?YX'p?r%?3T}{H8t-)y\&B 0U2V@l4&@ur%=MB9RXk: T!q '/PhW"z2|5Iά3Z3#3p(:׍3Jn4ܝ#Yުv +ڠ(Vp3B &_#eHe륚gygkSfF e8Jh;P^l`Zt5=M2_R?\攬%b&-l9ˑɊvRR %$'eQ$ԘcAɤ;@rI"`꣪:H$9$PX\;+JU# - ܅q!H0.OTՒ\@B4=7rG-r'n|]ZXŦ]rKsF.w{D "n<2Cb_pQo9OhHiqweGԋupMA33a0u,x}ln|no99ɛ> oK!tjfwYЀL Ӯdn%6_2[[qOVFMku0J_ScozN$G̸94k?2rQJi`8=L6:1¨M49 kV8 ~.|NFGE^6c#~?|}k.Zϗ X<(wJcnY/_ 9B~muyIC%n58/o^p3l|؞V.\-/qRSZj_- jdbVVH$K-9G|U#rݾ`&M*)+ߓKLA ă/w!;鎮vvGEXPş8Z塳өÉ@bfν[{2iEӝN)RlI(cQ?(G$-,[j[&Ѱ/c:JRc`yRLQ1* &cSQCZ] Q:(lWaL^ڶo1oת*Ť}ǻJDdWo6V6pɑzU$k6l`zf.IQn dͦ 7__q;VTMteUF&AM":*bͭD,Tp^e=+;՗~?uvDAa|`UY}@;9,6Y_FLV3shX6pB0贎>S5ߛXotawV*O%ҀUMSƮ ށg}Ј}IG`o._PDz˯R(7E%5aG>z-A9,@V\ (*lKiOx $u"H)tX-XNd0cۡXu64T_ST$>kbEde&ٙkˆG.Xvsp~Hn.wr!ۦI7"گ}߼\ƭxgLyНWnd $w'Y s 1c*_2bvC_˧PCG`;jxl2 Q[ jYM[Unko\OoWn99~3$XO~(m/Zt;̝KFTv?<&=MV9~CMJU| ]t($CQyO5Rî`o"]J7B,Ĩᱶd⮀^QuB G AsN-; T#x1:'m, 8≳MRO=t-X)~?O<]R1VQnP-b(xZ2L*.bxIԵK/K8,^}ҸfwӌR*a| q>.b8 @;nIt]\pd8syJp-TjBwg#KY+;S;i 9er1.=uQӸLeUhU·]YA<0rdqw8`}je(jfWW鈷;OMdv82-=.7j.9$"^p&N"<ϺmOugQKJƜVK6PS:=nQh*5fitKO[?rߒɮ]үjX᠛H\Cՠێ(CIrH)3sEE}YET8E^)q<my9ŏ`փy&ם+T;t;f>?5V"U@ =j:*E >v#ukQpB,ffb|Dnl$K!ã@2s`)9ݼ%'ͦ_7JRQQS pW.-z|P}KGd?|"z/DH~b0.B0S1BЃiQH'40݂( Z!{T?%'.Wn4`yH 'kѤB+Y*WFfx7D'n_كog<{ɄrbFڟկOQŀq|3Tހj܁s(+i&usteu(.<9y4ujs9+fyjA/l a)E(%ig XQy0x":`zn9A+teazU\y_v]1"VjѪec2mye>gQwOH\9 AJKSq\*G,0Q[2;k/xu.ȧ& PoN>њHxh-9Ν^aN?Rkf_ػ.~N\fy';n chF# +EP dZ&Xǭض+ٯ`~!aPE3ޒTnFXh~vk n;,/pKWG哕֔7j9$ØRmzouѣdH2]C\;rCJ|dS_&l2#0^[OOQ 9AĔ3gਔh!C5a|͗}?b($N7wkRPhH(sh UE&~;T endstream endobj 2847 0 obj << /Length1 1347 /Length2 5921 /Length3 0 /Length 6837 /Filter /FlateDecode >> stream xڍwuTTm> " ͡Cb f`h)PTFiiTRBABѧu:{_}?72 c= Y@UWWK @ 1aH遂m 6cݑ@TpN!u1h' `IY,@21XY@ ⅄ Nέq"=p:|P~,##%PvcPЅx8]p`" '*+"- qq`o#`wc0WӀWo܀#1 8O4 pc-@@v0pz Dv@WvH h/ C H];P6 lEz #Qwh*p'U .W:1hE Cj*rtk ©9= (w>PG_)L|]῍_j\~WkDqr?wzo `H`w@S8 `>@0} A|Ϳz۪%)!߁ ? _-4HQ/O$cap|$^3+N.I  .H}==p-f?XM[eB`qaz3@z@z;n{<~ ǿدE X,ė7D$q) "x\\%51Q)@&Wh'{ɿC'>aœQfZڱs@fb*ثͣQo_8ӁmgMT6# Rp]nj'9uy(t[\Ӕ-=.q!B^ZZ AXrfc[Z\J[,k?{D%:& iLW]2H2jF[OB‚{ KWO:}hWP9BX=oPޭN$ɊEoؒ_茙Ϊ`u,S= v6 dmV[vMx-:&za5>}$ٞtG$brr%< 1ZS14Ѝܯ"Lte{;I߷6fn,=Hu#Ց)c+}fw-`;@$b g~!̆g]@ Z5%u'=|mƊxvfPWbN] oݠn.ڡU 6%u13V}ze6wdg }/ 4g0l}No޹HliL Sjbq{#$o꘥ζΞqWS} {*v??+?XZKZRg^i\<]ΞYx..9Wng60ϰeŠAX@K3f*n3, ^Uus4hYNa}נ7p hj4z[6_ ^/f6+7 gW9nҊWqvsjW崛"~56RX+=q㜏nUϻxŮ%">Hدö"M7Hߢ}ю6z0}3oS,I +)"t8h>V6R7rYb {hĵ45lSӿ4-K4>cBQ},a`Bx *d_˔@VVd>+&sJ Js Q7%M9nw߰eΙ/t mpLv}CnDqo̧8,$HM|ȴG3@!x&~>@+d;3LX~oDX[ޝ<oмQe9~[F ɴjG--M'βK>wnKZ[>\- /YNw5xfN^^f4v#HtKϙJoL]j=чeRwt>ߚG$ %` ?>0:zDWOyhPGU_Fu% <6 "}aG E /}4DξVmU7/{z~j>s9{YeYp,[(W4Y/ '=ֶӊf5p&tq$`^K "`&byrv=5oSc\zf|B2,럤mЪgi0>շmO)8/ۿ|uC46͖ (c>+$a2-Tf= \xsF Lj~ju8Uk5=$[x9>DN~~gy AE`z9' =3-8iTAubwtj ]+c.O'e;tC6-7+96b5'=wm*+;g/{y҄&;#G*hs♹%vx9 ^Zb~ZﷷL"eNԄܝskሃ#Rϴ@~?;>~ڡ;{ܴiu巼J='c j-f?#őu~T=%H Ex6xvꅌ}4)*BoU' 7PjO!nYQ[sF<(κt{/^| /xCq6, ٵcx_MlX>C+OogzSgĬ7ҡ̫e<{j4UW"/~AZp-At*z۳(-Q܃ZZ z)b,2 L_*˽۝kj\^ \4UOsupy 'g=\F)˱ĞÆ}2 [b#]BLr?W Ngd?uO%Vo[di_p.q}"b,xbŵxa/=j܆Q|;S/|\K"v|5ȺN.? ?.ݢIsپM Onm )W>q䳹$,r0xV]F8ˣOjf7#9i7^dM=Mh68~p;][ ݵ ] M(#sM(7#xdlQ#wI§$+(^Bim[|>jGBrKmH8;vdnٔœ_-~>FyJN'Շu\{ER YxȲ7qw>'>W"Ђr`@[у/L I[Q@תDstiza۫ic!R(UએHqPqwуI$EV*8|H=9y2w ZD^9ϐ#8*D/I|dwphɔiIhlḵ` ߳ f[ k\3V/NW;y,a!SrfdƲJX9clݞh!|T=LϞ]%(TțP8}nh3G#f)~NB1!;+tId?ɸ8u]0R5ߘPV`\4E ԑvRTfH=+()^kmb&/TXƆϟvB:RNJTnA7DMyB9V ob {t/ O3S٧(7KOlЂya6s+&l40T~x]XݱҐx& @6GBC~CdVWsv"ut_@c> 6[GҖ{+fAZL$w>'XH0HHU^< a|Ĺ#csgȥZi!pI۵D2<~EgP4l L叐g™2zdg|%&L~Vc$lT fz˾paM|3;Y[M &K=ՔKxk$I̵FkFm۲AG8/%=q0b?4\6 yv>[Io|6*:|UbZk/deKrKUWE Ҧ`o|Vw@f־m@YȰBʜoXkOɼt ^e!I]-H~/\Umn^mETlY#<84jd+\֌;MPNe;/$W{2}|8UbBÿݵR̺|csQ/Du<)T#hɋ4)ne pJr"#ӈ.ˁ=VG/ݽq8$ya/%w-p+H'Ӧ{؋]i&@; ]E ]vԋb:5"8HH0k=k'!gj!t\Cg1,'EBNScݕ O s(Qщ-_)cT+lozR_S%*8:dkq2?KcHӇ_@LaٙzRĸ𓫫|Zi>it1&uK/s+S -M+' !fROFAĖ^ڛ{9UV?$cǢcPt h,vXÇiX>J n6NU J`c?GSic;ZEq/+=/X>o 6Ҵ bc~HU4=ZQ:;0RL;4џ*6z?G,3w~DVWj[w]; 2Eq>#E2v%ʷV^7 K/>~ Uҗ[s?bħE:w5tR O'Dڕ v{-3sh3"\DN P&{E=/]aWxM1 ѹ#Srʽ޻ч'G.ߒ] \"q:ݫg ֡`j7yW^VCgPsSv2Ҧ4t+}GTtR 8>Cmo_I IJWYQӱQTP/k7n\RnZ5> O\Yd'Z%^1> stream xڌT[.LtH.ni4nDN.Insw|?ƽ1p?39לkTd*jLf&@){ 3+?@\-+JJle@ hIA9W[?N c7+3"3@tFwttZS:_Q;1hb g45ٛZ]<VŁݝΙ # tr~ P2]3@oZA`W NPU(;A+m76f;/gcSS{;c`ne (K)0x0Af mnV&`DU)řw,À, 2\~rڀAs+"\X4@V@YL":,ë{:R+vwZ!y;.N@_?EHll3+S ,dedb(k(kj2]:11{7'+{x?|Fʂ|3,࿱S о +)7ΰ߆rKM6<.Pj^ZEʺAdaod0xw XA.`<_,b/"x,"60ں,"V [K v Ⱦ N A`r /LN) 0`.v@` K!8 GRq~JT_/\K?E`OuKxA`wU k 0C޽ K6)xp#9Xj8ϣˋ_+6r2u3OM0OH8?ׁ;3+vTp;/3oQa>@&`pn/$~ ^q6wu#{adgVpF˗րG,+n? U6@p? ~DWzp7_ȀsQ3,lH;*`鳲9eNpkl]8t|' ?97>{;;8EK*.pg s:[ 3'eζΖ|~X\,t 1a]Ctɺg/8TyML]{~jzMfM>XrS-Jδ9,4NL=z @Wt%߁.I{)2GX )N0f3(nHhM71"Ȗϣf t#9lGW^T\.iMխ*ny_L&rL2&\1O<&.1FIb|"8 ߭GNz-;S#I{=]\3(X@˜μÞVe6Tmp;Fv aFܗzlC'refp,/6@b-WIDs|j(: =L!IM7ZEDla iI.CPmZ@Ylt9X`AS;|VwDG\>u'JW&0m1M~$[rHIYQ *e9Ye($U]9,ܜ c>ҬhS%8gک  2Y*+3ٵ׼=p\U[6gipNDCu172(4-uwRY *Yn]>3".ٿ*BJG_Jߚ0l<}"#TSɥZ5Nsl۶B 96lz?|YsؓyXÒhїA |++@~ MBT\WiTP%K2!6He P=ѭ_920 *L1$v_t3S1. >k"`#@ N`}J<}!C  Ө(Z3lWqa9RNoh/HmS2q,%RR\Qj>UIcF f < 6Τ/[,eXGN7>IE6̆M~"6I|.2r#1"$ʶq!k[+Ruld) ޲㱿^S2nlSnqMNϖi82qٙܭbk`72^M')˱?_:>C<<^?];kyoPwbҙH$Ğa4!ʬIܲ*w LqWt'C7T&U^S]+wy-ƦdOm/D@){1\,ܕ'kJszU"˥Zd=rBm'ސ?<|55"RAH`r~&>1!/wd:9^׽T]?qWVK;²?\wr쎤^ױ"$!yr_-P?)ܩKǫ2nhb7h[d,j71l nv8Vum}{v]"Z!xv &TɰwF]9qq,旝T*9$tjb ,[G\X♢y?ېi)faARpxbw0:2}WD6ĚOX~"iEPy/bzmI ̶Ò!uJÓ"eMQqzT.]sg)?8DL27@M(-1"mMhy+|Ɯ〥㷘 RХ*; 0c70xښ{/TPU/݂oOsAN~qw q>1z \U E_ss,yk Vg a+c#/Rd5q^,D Pi GETfV\bl-" : Z!ZQ1OiKkkQٞ1g"bat2q1*25G͂@aYd+"o;H! _? 9 4MI{4u*ȖbrݙN*/WDLq$./Q,H$O3lƵE6Q׊ҌW#̺yj3& #% %En2e <z:kH\C ;q8DY u׫'$lƎ،x]]g0y׎Q!7W-g{@&;bLcjIyM$-,b"<4=/02)%9dĤ\t3;}5WuP\B(}kۛ CtV)Z`Tq[L&SލڹON: E\(Xs7r G5nX^km #ȏ4|Zo]3GH 9[~>zR8WZ%^[ZX_{L6ɕ :0Y Yz> D;s L\4)߻o$[A+&*fLczWUi ?`0l^4OݹcJ`>YDjU̫rcVD yNmH<2^|;xdH7 fA{Q⁣ʈFrw(Nڹ!-%>76u蝝g%U~[uǕVqB[1bƶ?=j u2r)U,occE6W߳Xt.KPknLj7R,m W M2̀pʜ /@ (ߕ]D`P@I°Kرu3q{"HG>.p/V4 ߱BP7N-㶮%B^ A% k=l IZV&yUGȒxuƓLtLhGB̆k8[vk 1fWAFCQ [{`?2G\[:J&`&<#0̇s~f8L&b]xk΋b8l D=[ HY ,|yɪ4!AY}B58kx%꠮jef{5'Oc.t L>Lk`.1Z7A2sםqp=;̍NUU$Uv P'VQnϥV6Ҍ{seM!Dda[b`n ^ @"u/d- ؙdy'&#OSVY}9K$bTlӘ+:Ojki<>\7tE OLSY|?WyF$5._̚\[ $YRyqKjx͇?OE*2SkSDLBvm kiϢ (捦GA:F>PnĕFM4ُ~+_6kr.U:s$w f,m2n^Uz.P:%.'":v2p{'{\ԟ̸#i;@`Me/s]9kK,qMJ4iWPfp;=(C6QubTJk 8*W[bop9>\[Oˈ,D=4eO|tcƤR[h| }s9%^Sm[gJڕP: nͅJ /lP{7p [|wݐ"NJF3{a6dE9Eu0\;7:Zǎ~a8K\^GE̙-^ĉ`g*fĦ[k2.o\ӝ(r}FP㓏ѥ._bMnM9Hw #б7(F6KTʹǒ2Kb Kc#ڽY'vH~w:ۏ:[Y`a/L)BNmj7KؽIfaJnpѯy$r? @:  GF~Wu0aԁIa/X (1hGspO8SJ& -ߗ>dړ#Fi x[Y oDFJevbiy.6Bѷ@Y\=s kwDsˤM:*'ku];怮'QU*$=sm A\\wI6ӔVbdu)~_1`i(q鿂܍V~{D+k fjZ֎k:A-K Ŗ7ӹW+r>IMMhcENa}{DvbU|`[)cԳQ  &⠉ R|$Qd\'UGi2T9L<("I9IKM0\bY (?;i.t{W7µ[;j͸3*%ΨD]LeUEI]LfbbMXPdF32v"rf)VNF)z˨yu(:51&`##r;IQqȋkd䈷:_zHf\tV^K7Lh юAZMc [Y4՛~M{7|uz38s^=RЃ*tѡhwt'Xa?q'W̬) pB-{ [QEb䡥y+|TG?Bmmޝy9u)L֪aNڵurGM!w L֘=ȥ-T?ܢtn6֓&S6V?((OxV<VwaIP]&pn^ؔj R_MP{ dDi&yTWzŎnↁIV7ǴC_z~q1Ȧ^6e\_F m,98Go4x %A}$`bk4*{T=oı"t}=/v^NSy/pe3Fk+mxYORKe(/ܭ)Bƚ. tsM5Rp/@ﶄ^E=L7L!F"܌Y4n*JDaXfsXrQFI%Vy/'FQe1B[ܛ:®|+J7FU $*Nו 8 ]TH.f(.TC25z.瓑hEyJiKWnd@<¨\:(je4EpT1DJ9nJM l INX9%Tsotw3$q0dX\5gFFS1%nMܬ5m$)vmƨ]a^5{.ްÛClj 䲁l2T_2,,B+Īǃ-fGn!hkIEbd ]ʤx.9ifG]>OC3o2Qf4a7RyܘTǒ*3+W L&R"qذ>:X udk|CnD[(iIʑudos8(lrk>"4Z>=-Pq敂D hٷ>+1GΤS V ~]y9Y&3uiwY&S\ C#V|BB`K L}g!HzJ|cԤ><2\__8_C\]=pnۤYq!GdUU}U&%aWKs"6E)|Lfڜ/&nws @ؑTVq>ŴTǍ20sg;`p 1c8K^A:.-*{(/BNbIE0d$Xy5GCo*>T"Gevav($FMk`3Rµ.#gs/U.a8hEϰfIs]SKvvIEo|CwVV}CQOD1̶>`.,(|8M…+@=܀ősW-͊WIe x'Du\ WR&2P%6קx%* C4bu1KgXIH\J*_G{gͿgTf`en>6ȉ"zqsf 5"@dְ ݰᑄOOAoH.mDQ>B7[ݤbj49D֍;P(iQ!ݹ7s3ǟ~z?xAZYR[eݐ>XuWx %.v?Dȼ Q4 Ok*hꛧ'5X_5=S7$LN\nn )QE_v!jO Ed=uڬxIۆR257ՋN6Io*|䛽YNV^S0i`'XK mb*@|v$Z)"VٌfQ`QOJ㢟3tL7 k2ά_ Al.l~X%6 ANز]Ş~Jn,4?9k-t6vudhpHօ m]xG~ډQ@HniDd Q2A8ٴDW^)ŬN/okDf +$t;GF%"YQ9 \;cZ^¬\AO,}[;J7f۝z^j*4wjS1ӎ?h@"T.yHyiA;(g 삊4h516.NVB CxݓBAлw2P3=1Ya*XQ%^rC@NGc=vM#w&."-FsdE sQZ~IS A$~˯Q) 2uMYfOӭ0IbM< Gc 6nGzҺ ;>pڐЙgA#FYa 9]`N G+5*4Ss&]5iRF}BFK>,汏8Às]hO ~0a+W+Q{+PSCU wٛA>$UpE\5 DnI#.c`h\6S`lJ>cm'u9&K)N >^dh lдN0{{‰ACIJTi}| 1"#AGPU.n,O~s6 V.hNFshd˸oc5f/*R@"s[RTQzP5sܥ&dzBɴxW㎕g@ӣN"閛A @+hyR.A}KhQtݹB:㗓Àxr>/20weg~?>l[ ױ1ssE+%BP۱6 _%zڲٖTRZ峭>1yN[(c Y}v;AFqa]?g#G>d%rvMW}EcPڢ>\bR ܚ JR) =U^9,Z*ڵSvf#WW񻁼[?'Ŕ S{MW;;1p;D y/XF44Eq`ZDCժnX~s=/&GqWPt|n梭D$CbJpAzYãsQ+Hr 3I4؛k%i{$ﷵRU߽OCuΨtPBX}24%n1< \6o^5!O5B0i (- [=_e}̎%΍tzҰ6U-~=5a;Ul[$N+X@ܦAh=Bܴ]t02P5^dʺ냋BlnEcw^2\̒J[*$N?2LQG5hC_I.ap/d啪`{i <gPdH6$pEz~nPt)!{gpXL>G!&GԸV, bWW'ѱ齿J_mɺJۈ0yqrP ?}u|݋(0f3*G1L* -wvX0提jf ׋ 4z (˔Jl&u-U{([0nue1@i&C{vaiawp_Z[z/7 Kt-#&1NMoxqN 8Ov$e6l-#\}=ajg[A.D?OmjAJ"5M*GJQi :C-ԚmӓjdW9>^([ᘧm `>w|u9:8l3*O6nud{Zrt"YlGn'ꤸYVDzƧ\oGXx8 3Ce0VEJtSS1|D)#2af7&륥s{G̍}lG!{:F _8V^<=8]M|K|#f݇D:A Ľhe3>/A)#= rX鉅De+L`x.!c.)"0yHLd5l/wT6vĠ)=謎]|v;6yqߛ"ڴSS;sրd%1T9H%-`0fؑ.lq] s~5 ;-}1NÉxq$tUl#ܻ<<iԒ)PhG$򚶋oOYUz@QPiBw|,-}CZ0ۙNrf]X ;fGG2ԅ6̐ w&Q\{'`[Н]h\D 7}5rJyMݜ3?UpG%Ῑu1_tЂ3tq췉s{߅cvJ.2MA@eZt[>> i6x̠%oQR~;(:z3gIRKYO~\J#p֙[B%y((U=X;DfP'Tu\A|A影.#S&#}9N+0v\ikmWhKA *2CZ-u<4z}XiTyRi3Uu֔u)B"zԪtS1q*c:e\ֶHX!.%G"3ȫfc HNSup]%a2CZ|eF s]!Y3Ry۩"({Ds+9[ DOuBZRۥT*0ӧ;rr5|&g0[h)@gVh 6>}akVq qך\# H5qanU΅ .&*|gƙdݡ5J~oU,LmRJ:#M(*. +]mVUDyBƷڒo{:t%ތ 6}&l QrxkQm_85Ns@6[GT)lnN7ӨFm1u[լtY{3&\śebDnC{$ԾML7#0)έ2yam[)8 'j}txpe0zGyLQpLT~Y/4-3XWkbDDhE#3[q@n>"4X.&WDh`DPL`R#)ߔSC&\1E:ΓORW3ȕ_,Gю`~1z+C;VWݾYk6:UE[~Bb(8<⟠5z-0$\6!"D*Km}Po5Em.פֿt @ ܭLVq q ZPL}+{ 4'8jL0 )({*[FTRY@%9pDݧCo,\f@pPXqHτGoN0Mڈ=*t= _bC۽KAY*WR- 7{En5LfXԂ+ ~U֜ ]Rԛ8cO!LR([G,Z> /GKnupOM&?F7H|~}c߰zNvOtGe†4B{g(!F$'9i('ǮzZ5SgJCn\bmYgŘ??F){.Plo.& |cmleJGr͙HId }xS̳ռҾ'Z~巺|E,pTϧ=ЊJH,u ]XmZ`ks_-e] An>!H91N*R z"x)G4#;r)9/:fw0I9$)w ?x#CLť&@hDzm/yJ+I/ʶ{k_/ &h];J"0UQs-X]CCy6PBkj3H4S f,8Xp33&J"o1 X^}A+48TnO.]wTBb;att>KfF:Bd-_뜝1スJm`AB:+~qX@z=m-W1H܏>9csrmnV]zP;+FEvG?8sSÞ'ůu֐cH /m&+%Wl1~ϋ %"Bs;o{q4\%n{T8;ΗF|ݭdR4?XP%Ü#z)$ Fi0 gj7tXn-I Oۍ@ zP,E{̹ƒw'b2!n?$ް]r9ky h׿↌b}KA[.4 v 7KoqQ՚`^ o!wvD7UMF/m ]{\ NR񱝣}(u0)ᵻی桄rv'n zCvE=X^. >$- p=I"WjV* kbu 5ET$FoDxo 2}`n>S0*a+gg:jG`aO~4)=*R0uO^ꏽh]VhڟuZ , uĹ"nCd:h f;9<5r񝶆R>"MkwN3řfR&OFYe&2k- eJ%_I~N0an3 {ϨMyTN&5p4jᐤd$d22^c孟l׳!=K* yENWf7|3:'`7U7U*B(1KBbLj呣-H#/=-dC"^  4+:8>VˏD7uӎINgW;A<'FU?VO]%pm:c?ܨMwrJǝN~ 8dEIE5C:F*TY 5Yw>gI/@ b[3cruK%O\YrYTЪF5nתSōO9aQ^^u 5ޑ%j%ɥ")2Ǥ 1>.9퉌]'aأ]W:v=\s JIHE1>?]%WxbϽ&El%1Ee0<& =`Dv`gmlߥUY1+?}4.~q% ʾT)cv2,n' aZD.Lmy9|zU0ǵ1GR0PީA[5,dyQ EwlS/,Lu-S`yT8-r{Z}9kRFk~v3acv!qpɁ,X F¿q;$v!r)%K0< |#WvvcYpG}YT|[Y- ]~!K AWsYNKoSq䯋N!8vd|J{$CM##ͮ~l$@w莾jL{w1j_!OEMK,)p _ҸGV͗"SWngցPr5#+ݫ̵E'9k./D2lPBUEn]jj]AbIwM,y!ǾM!Oo\3lp%5/5v#;qIpa4P^ P9r6Re塜FO4$ =*}ۇ*#aMj^W+@;1nO3S+17p_;'> ҃F@ir}1/qOeF0 G_3VE(jϳ% 5F-Z@YQg0uJ+Ě{GCciPZ/vtt-@䄑z~QA$g59Q UP F=WGL_h;;0X@Q8C-j#▓қ=Y[jZBx0'8Zп w8B2\C李Bgj}9rGor-Q[3J^D n\ Aovni*StZL 9E?*2J_6oYz}ƒԭWUX_ԅj/64B#=-`P&|Qy+ar+:~X,A F}TvHFC`zR¤o(cH+Dʞ榡JH5L[^ ]0)7w"\.Pbe^p]z)b9L42^9N0d gO󋱌.A:,2ZE+K4vǨ=D d Шr+DLCU2qy.Z'6;UX>:ÿvz9(]8Z<D*A-;5/$^gY$G NLJֻt Ϟ|(?b ee~̰~Qw*Y=K\YTHK o'=\Wԩ-DB"B$|QT~k,=T"CrohNQ~YbNaȬf),M̕<'Zr|$5(zap$K`MiJ=I:Ih2-6~*ByJ)12R[O^UlH}ZL ݒlT&!Ce{ֺ9,w֣9!9 DnTRyvAn*ؤ@D'x>dQ 2Jc~ngB+sV41=%c {EXwa\v74:̂GY,L5㷠9 Ir\EWDom)|}Z`Sr_!>o~w-Hx\4E#Ni&G81' yց'﬌!߮`_x>?oIPbYy E$ !RwFBN&=u"f*hx0c,=6G_fs~" d[lHndz/`Ly5J )#ȫ*7z8f[ q#*< xA=wrbozVnntsA0?0)cq^m3J{uy:]fqnӬ<)6a6v=% NܝSˁ~e ^Ayrޕ[⮊GbFK--IVhIr>fyRK'-`RL>`,Qh7캢>|^:Ds&(~q_[:U%qqΠѰ/<0K67%g&\q ,Bf}>Ail\ziASY-4ά_C :`qvt}ޮC~Y'%l Į{4=qG?Dو>(3kׄ!ֳpI &oa5B[QK}'Z 3t d]9sBV;K$2&տW*uf{<O;G7;*L@A=iV)odN$70 *ɏkec6z| ??frЃ F@HѰ\\TWRbQ[k!V0k77IJ2AzTǜ¬މƱ'$̈́i_f%u ^=J|3 LV$sz4Ah+Ri_Lqk)iq~7x;srGQK!`;u'/_ ML 770͡%$Z>LkN8پyz7}fxl])G=#!P3j @l.,U«ڻw{]-ZigY< 44{vtGؿ,(PU9zM`[؋ 3ŷ\jMa:ZS ņH:ljjݴ(0ei?5.ǜg9.薐o Z\|\\BK*rs@4H=AA-ۓE-w'9Y<QogD1y:n3X'ZE#`tA.i Yܸ w8=IUQل;{ǞAjT+?⦀ 4a U}ʪ$ѮÑ* mf֯Hعc&UkfW(WV< OnKaUH^ˊBedtvNw? ~+I2}X2H$8.Ycd#SY)b鱴%z}PEE3*>\3鳧Rǭ@8-5Q.9~V̂CIH '"iݸ͏8)!_(߃Щ&*nh58`̱j6XN2B\Y&a̢/‚+[b;ȅmXt)^u hQjՅ2rK'.ӰC`LRXGp5%6tMsɒZ|uo4K 4ܬ:-Gҽp|0O9j~wv$8h xމyl.0:vv s@1$dvNOѪ26wkT~![5t-1@pBU\0OG9[eڭփX E2ڌbv+UH ze"61%o.H3U1@9mP>FOGCZ*ԽXh2i8Cjkqq+WP/B9`錁QEwTSq%2?7/=f>Vb1=/`Y?v*!mi4 6¾9ekf'*Ҍ!Z ;fgYL;_=^M <mgZtUJ>ܓG;kx%@^"QJЬP$. B{蕻C~=xG)bgd<֗Esi)DHGcUQފ;;eiClC L. ?b80xe M S\xpBޕ"(Z2(kÇO"D"8Z{RY>>hDŤ6Roߪ.'2*:A,,eϫF<Wq) SdЙ%'6@Dv}x 'gr( '`Pos8}X+!U٠GnU^Ã(r4ZQ^JRGU|QjTO"RAZ)>ب&o l̤W :X[A5aW "+ۺ|̸X@'ǹ#!ƍ}̧~i8 k˭Qt Ǧ|-_B_pC6=J43)|ޗ[ )ؒoUo{4$yuR@!Ӌ*嘐;hŐr{jm V# *S5QkHٛȖ|0S&5P;Pr3D}_Uvg@, 7ËqbĞkΏsbF:Jf'|2FICV{W5jM^L"wJ^UgZELISwXݞ'\r1zo?Ff[8q3SB#MYx{/.T$HKϛNPtf6mi !I"1eыɵަpQ-([ʛqOdᩔDFi ADK]4M!u nzG<᠝9&4jt{yzJYJ2VPBJ<%chJ.Yl*¼{ieqCv~v1R/HQ911v[͉/>wCR<4h]~2@Cb#8\hp7-KJ<){U l[/F݉N '!N4ͣmqGR xɽ+QC~VゞNxi]XK/YTbP$KsP"dͮq[%)+dٍXhܒaVj՝p-r8ĿagOƥ)Nߟ^{CE ~xo%8W_8ɨz NUnQ5 }Io{R\}IlIp]6$$I TUY3 遧&- Md!fIQ|H؉%@oSյcvz)U/ˮ,9㸨:2o~nNB8RZςuA 5N2JrhsJB)bӶ=8s*>Euy76$.Ih/YJ4—W5ؚ$^UX# t4^;\0ݚ%r_a !gx#J*u[Aag:a+}1vkf6_R6~l UF¾-/[&(hTh_s I}[u?(ܑf3^i2U[ײ )/{^d"`9zXtvW|$ wc9_?TQ8"?iN4 mY5{a29%醔]V"~uָGi,szA_,{*W #}s;Z׶1vBH@|#I2\tSlW-ɏsZZQcPm&jDNI.L\D/*$]̸N7%yk#GmJl„sZ }-f<! x p@euC.2nrW6pWK $NGY ֟-WvA..SLN _-M!\GOӄZ{>wF;`iūOc}T]p3Yzոusf_1 ּ%_9̅LE< ݻBmuqx,NX˱v*1?J]=CUo=؉ eA‹Zy(/+xMqvm? fr lz4=S  $suqEMRSh_SЕ늫_IgS1 @l5MyP\-0E Wc簖XY{K)OZZZyqR,U@3ւ4o8~B97 5?D>)`~EN9b~}ޣU˞"$hhH= kr viT_,h}/+xEOny)X_h{xYgw^(fnr W, .{/řRRzutk_6`{W3I;f&U$}ZWrS 0iOܞ?g-@Ykn=?KL_gXE4N 4N& h/|} r=%XӒ}J|@{ZE=ǁP]H=Uu@8͑ %oeWDo:d̵qG^sm]mc{‚;O=(gnZb k ?*MbD60SpZSJ]W-`B!c۷׳6$;;r-A*x?7,࢛Pj l)?4#6ԏ`Fd|T~baj}QB !0H-O6WmST1iR+Z)6[s\]#.Q&X;g\0'2H^ђk)FIpnZ&;߆i?jilOU[}ş$¹Qo`Y Tr ueGIʹV28QNsw,^`n:FgM2_ bg.-MWXX>t)7[GZt@{/vGTo>̠plG5lND `[¦o1HN6QLF둟|S* C¡+«=|x|9F'" :ɿؓ?6ZՄQ(0u_T.SZHoxS:NdYWXWBQ{+ N|zhSCһx! L]˿i5T]]v Ry@ Š7v1^0fhfMx endstream endobj 2851 0 obj << /Length1 1466 /Length2 7411 /Length3 0 /Length 8407 /Filter /FlateDecode >> stream xڍwTZ.݂HH 0tw7R 3tIwI !R"%etHH;?߽kݻfֳx޽0s¬0((P<@ ?3c6 0+ ĝNsӂAH'OXODbq w-@`.^pl6>119g0b@ݍ6 '>Fx Mp9\v_A߅1  n0;) 6`]j it\?Κ7_ѿ   N`&Am9`w w d};q@Y1tW_չ!.77ӯ y5Y jsvCnxS6w]=VG(l*k"jyܩك! ("*6 \|w\vw% v<7;#~>o ` A(?wjnp' xG<>laP'W[Q[QMwan~ _ X5 'ٻ.'ab c,́B@/o2鷕!N^Dq_ vv5YW--V5nN7 B6Gok P. Ape*ǻG펏M໥JPp݈$!ڂ=3!Bw`p_xu~Kb"^݄x碌on8i(( cW6H8nȿ 0l7?yVr^-ȃ{}Djy8gyI^ ?K_ETvg;?},͍Ƚ6v5zބڦΜ%'9R|]86xJXt;0ysu4'䃜[:DNg}‡Ҧ? rNsd^;o}<*FINڬ\L%}]ڍK' r$RQ>YDaMJOtgucn{[IP!#.t$PG?~'}b-NЍSs߄c,:xSh f]U]҃ᄽx\kۋQMD aĦ"M:*ITN5_\'g%hS^ڿ'mnnNϩD'] VqHe#8D %B3ݦ5 ))U] L6O+&|36<*u‘I*X,ЀC&~^WVoK\X >,,^MR=22l Gnd[K(*Β*3'yI݄C?7M KU]yvQ&A+H45vT>ȴzgxA]i:k5'' `:'5%2~{>B󌴖hD56!܈ؑ~7d[OvnE9o˨wPF%Fi%uoQJM瓥4bLIm,qR91$C|D_yh"9f$fnz(@O~x /:4yո_}>Z-Tn!Vah8ݠ\K[P}G3(8^h'yZp0Gs4*8E&+\4=?x'ȜziaXMb:EzsQbs>Pg^wiϞخAՠK?h?ۥh}DJvH9F H]v«9P̙)pZ0%bBzr6 v*"ڜJ&B*u[lQv\%'ІADE3{X~w]n]!OX[{m0$N5K(5)d|ӸF;}r=!o|v {%ƍs!wV*y5u- 3"4|R|ԅ6 iDe]|>,ͶDK% ?E(`#0U{c3_quFKM?c|:FNj<(ߪa2-iF^$UgkAmR/܂Wܽū _,EϋF o 5G ͵9{nHLd_U>74?guae C49?;1lϝ`Uɰ,$7%\.SINNNϗ&0j27n3}. ÄUJGedh (hiƴ2_F/7Rj@:HVur6q1K.:&ڷsQ@VzjRӯlܓ-iK~ȯ5X|/e|7ܾ89?tfaf2\A-kÝ0 +% kTVjc%$;0 T=s\/*׳>;wy&hܻ;uWuAj|{<)aZTdqXi|4=MhPq (uV,D\4zPd+N"Il5՞*vs^Z.. ߻.ŠޕZTߺE6LC>G`:HͨTh'BP٬8.xx Bu@ ?obIr֚}9.D?J|5 8E{3ؘb^5q ݽul>@׋ңxl5'ɥC8ku|P-_+9AO/te@]KV8XnEA ƣ" _xxR.;GG ?YD#)K6kbW)k b{jWB8U_sp]gF.9t0wj۪"T=j30y3w|R FmXu0G|=DE%~"偎4mOEIڇ&9ϑ mp3S⯡.2 b (P?02YJ׉qn#OnFmT½Frv+.<`q\f敃-HiY il$"ebLj3Pj&oIǟjK( EhNp)Ly6PJ!RSi&=x>|l7~'htka \VA֘׏tEJfZ#]i f 8EPpj#k(딉*+k(ٺ2$_nwY=J:&꘷Iq/JnUQZ&(]&QDT#.\(X{FXFBy}ãROtAA'I?h* $?L Fڗ#Fn擮{)L,Daa/%?.gHl \{bdiŰ=wQDi_=fl~Y|߾հ凃2=%~%1é5~rEj|Y,ݽwlȦރ!: q돢S@ػ nRM2$B)䍭 ob\k ! LhQB j_ Sa ϟZo<2wLrA۹%,s6ʼYQE 3r.nQ1;!o{ 9G7i70B8^L0K=fuaˏ^Xlz8kޑrw7* 7>mR.=NVs^,`(s3?t^;LB 1;|$ HxgBB &\ 9YYXtbdM鹬Gg NAuBlֆ(.wQEse˕B *!5+S!F'~qQl; %:Fnqq&Qt\9{דd'2qH|NPa*=1rz=ZѧYK52udgƇrzZ< q.59<ԕ U]i{W %dkaV|ykĊT6V})6jc3 ΄ f| hq\Ny@2VpĻdSYXBLpdN O52#G<f\YRVƼ͍MZWEžG` .( Yf0 NoQ( [Wlس]l\E:=$6|rMޏ]ueߞ4pl=L_'Z76pO๏('DiB0mREzxh{Iq̈}boi%=IM8lUa,uO3HNF7k_sdAgOs kh(o r=e,nkg"5ǥAthaO;uF E >ׇϚzރ`OrƻAG+ 8OrRq|Dd^ g$QeQ"}PwSAs1˕.tEQe%lBѸq.LIh?ީ0foY7S_bq+TY>alJ.3 F% oU A?ky(kԥgj:s=%{VDSu5|5X(ýe+SwM2l8ɝI]N[ZZ OCU*~E EReelGmc/,XT%?'~$@%?g[<[߿x)]p߈ER\(!|6 Lݚ?ū zn-/sD gP4Σʊ<9<>YKO"7 j־L0 ?Vh)gN U'ha̞qx^V"L@rTPKޠ԰`V ] $4_,@۬ 4}T.Ǐ}x(4ڍm[ lNK`u[yY?6:ߍQel8pBg}ҏXiLn5ZE{߳%m5d  58 PWsb5 b٩#'"{hurXQ$~Ylwe6-f(EpDP c/=~U)I[=&F+$aFu9Y21cq*i"<<*ڻ[%tԔ9byjdd-0l=xB6skT8wDO97`?Ob#'mODY>بOm9xxv uˁGu4أ'V{jFĊBR5GSd>nX8%,V|mHgƺ)Ӳo5p! zݟ(XC4lked:W50(ٟ?ԇ&~I]̒L>[P3?&ά%Μ+!WQ< `y>q<Ѿ~*ZHg~ F58ǘ.8b-e86H4p4"=23Ye!9<8X1N|P RR1͔5Op %K8Os@Hg~_+:tUrq3yl?JVn"})}jΊNWC+\3ƨYߛK75HgTgV]7;n#s::$REk81= 0o̲82$ < ?ɗ\ЮEjDԵiĵ;Q?yj# cF'mu);|SJym&بh\9L95&+YF93ۛQؾf,[Ds|,j@F!b'fM>! :8Pr ֻ Z/G`AeǹsY |T&D=LP{;+)e:|R߼so~FhsHZwoHn0۫ '&WH=L5sĒxD# v*\5՞;~[T>I)$J2KO&ũz)tLS&s! S"ְa C}iz$&g1,$˝@6s4>&s#}7A3K/i7jJ+GX ~H8x$!Ϝ=-.3 !) 9qVJ/}3G`?1&Gi?oʧ?eS"==$]c2dw ~ .G#IzG endstream endobj 2853 0 obj << /Length1 2045 /Length2 13976 /Length3 0 /Length 15227 /Filter /FlateDecode >> stream xڍP۲C.=k.>;--c= QTa27۹002D䔹l̬p.6p@'gK{;EF.6Q#09{; `ef@{'^)@ motwt4p8>&4.B@'K#;D#%QPpqqebrwwg4ufw2LCpt(Nn@S_lGPtǬbon|l,Mv v@')Y`i td#{[#;OK;s  .B03+##oFq!%G}ř h-/}N@{2}vv|YڙU+PJ?&?6s t=L,"Wt`Q  pqrz ` 4a?n1x,~1[v6\&ia!9U KX ```0s1>>|7T0ɕ3#K#?OŠo.y .3/cweqWF6̫l r@SKWr1!;s6YhhbbϨcWkl,퀊Ζ=(f*Gcv?)fgbovrp<>qY>]>RON_'I?$_1BL+Ib0IA-Tx>"?,<&?CɿH4d0 ?sߘUfnJ(_!-?n/_CW?~W?>r;ٟYcu_tquU,gA)ԟ9cߙ\,jևDw%|ѱ~x*/?kL\> tؒ=&p&|!V !]uB _hW]Sij6RPwŨoz7Aw$+u>$*w}):j&%`Pۙ u@1= ;ͣOM:mH $[3_E qa䎓 $,$G"sʻlTʃ~gኟ:>b/C*f[MTmp )EbɌ*Xg*}3 f4߮--gɬnI N>n*0Pڃ}ƣ[m7 xF(֡`q^_Z=MDHDB92 aln&?{үҐ( l?,1 zRA&{f\{%W+Sx? }UHo#僂װXhp!FMKT~ 78&;y'z=aRU<}^#ҙσkq{?[(6ƽF/4&l &DlaZ"Ar)4!b{b _ȯ%G欳 6,汓;ǙH7 AZ}b[J?bpXJ+hU|ZGӌB! ?`H׎}FP#uA-TVm< 7} ]eNy_!S@r!D Žh<f$l9 h \`CKP}LX~JG6^="bͪJ׀(]LιKV5z>@ŷ93֨KH35nێ[Cbq&rW6( (KCΥiO];-KZ_7y?!>N v$vr[xJ-Sw.Te*q_)vM̢&RKO\Hd%-e`lYhXƸzࡾ13h$&}"p'a+:E@~grR_+14MxAf#)7E3~}kY1pJ3#TdcbW?,+?H;h&q!yUIՌcږTQToR|tuȁ+/^~UI,liI+25J!=Q7R58RkB % TsJ|sR Ԁ 5+=Lo,⎳ch53i-+l¯TSӽ `kGL!lۼ_IeDo @߇3a]T⑱y25}-J6\)jC=LB& B| MPg/U{}$=پN2τXŎA{*TO9H=. 8(;q|ڹ!yQ(1{8Qz!S_gW38<0 #KW+>يDaHoUhsr.zABR.ԩtv%hF?MN~똰g]E]9䩬щ78@~dFe1qR,ꊕtE ʾKuߴnz7/zWpid`VoaNB;|*逍g2t9;[HT}t7AR朗[I wnY=' F2a՞rv$*֞nk^p˥Tx !J>ec} 8&l֔ ]yyӈ:t,|96'x[bۉnvsͯp {Z!K%̓$b됮ճ[ya&twU?6m ʷ l!!S}3haTus&|h0XƕBD}gtgs|9*v,80\&pmW8]_#1kʶlWW'ԅ2.0<%nMlM^„|!jt.y[f@iƚlg8&%>pxHHOu-S2/`]QjB\5J~@Ls1I3&PeRHMv`ȋR>t~x|u 5mwO+Q!U*9&HV 6L^het"|焺x_,.g@$c8|=\WhYM9z&i%'$V~(ƚE_W,Ţٰ=m_9Jn ExeE&o?77`8OZ ,Ki>]^ fi؇Ĉ t<;ϙtdW2cNMKp!1؏}L1BWzj3i]}"MT 0`ʀ&֩0.s-40Wm9PAX5]nU4x_BY2Ч%V$=F"IZJjo!?&bC^%[Ѻ_4L8V;\zs+mXQ7:ctn$ ! N~iy UJE Tg@e$(㋵+^eRN fe-QXWbs.}]sEKJI0=]KI~-x^/`hӍ;XAG&7{#V$ka}14'K)h2s ,mJ JoI5Ӳ;~&  Z:gz<<b*HT: xf٦Zv ˳SIcϽK%'GB-;̦uL`:`Cߒy;:vt/tϠbթc,targ~uT#IոӍ=jVGKRy'&AX6 ֘xYG4:6sys#R탑D'سF/)znv}y-[/{D90jSp[0o~SM.|1you?nO{*dF־Gz 1z)[?y P6!Tbľ{>QU7iB8qa}C:˽3Hr vW*#UV;.Uqd,??Mx,/&fC'ޏJf0P=ܺXf^i+x2 \22QB;=5dEM=kW¶l&\Z %HLto0ڥpmӶ**:|%'[J0SB|xAvj^s4T>y 5()I2m[i?d IW+ )פEXML-˄h5Q;2o g٥u[&kYoƽga_m>+Lc?z B㮎/U&kQE?tP֫!0#CG<|vJ:&˗nHYY6O'fIT0Ӽ[*RU4pfgu/ˑp%66!12ɨx>DAQPhmJԁ7 ^>?cD~|iNCy(ǐ}GU{+[iul3bLz uIroj|3*%!oc’S3+8g_hJCYC.''u>As,2#?@h4| NR\4(j򲗇{ǘwU鐊M{)ٽv2O| O=^:kS\ޝ^x3Ԇ7g@'yb䣁 {93CLt_ۗEi8 s6e]4 @,% }O8ư{R#2 A6ͺd5l:PV~?\ԄL4x[$.b<(İmwvGss4 ZΒE4YT/$uKU:j ;\#Hgdz^!EmI-À th˱Qr49kS;4 ⥣9tS?O5e{N1 lZvs_Q(W&±ϊcYa\w#3DY0VJja^>ϝm:Y=psKĄwvP.A|5I 0SB3ɞ)pp0嘰,%m uy`GAmkcD r PGɼ@([]2Y2Nֱ=[L3m2z=n1` ?yL4Mk3XmN⣽-=iqX>LEK[3V,x ZJͅZY:՘JʋR3tCd풽d!7]ۥ`zE -Bw"'ZxudT,o^ѕQ5$w|9!G{T }O$tzB ë%o)dR|]aT8_PT*|v &~/P\qw1X0])e*lu:%7tn꠩K7>q_:vX‚be/Wg{RkOҡ7QZ{!;0kIW%/b!"~!dԴ{?B<:47u8waX5P""OgCy)99Jq-N/{G^:rL^r?B~1Gɯ1\}]p PEoxͲ|dh$%T4CeԋXLkK[Mڳ+WNEuNuf%sd,\6cDpB.E/&qxfNOxC",WwH?xYATͲn=@Q3su\*XxDz &)Aڈl_\Ulkg>]G:/du݆"ňZi5;7W]1suQA c~&dz}Z,Z<_k9u7#з $y{|+wFx\g_Ygfd?ieEy9g!Q 䉓,׹Θ 7D`J6ɂ{EY⏹Mo a+5v: K~[ZJYwZ4Q Moga:FXE 'l[9t؏9'NyS#ě5ҐjJ뻮ܢꦬB_=@#ԽF =7w#/>KVNrxgZbk/c:2*L|˶jM,O6Z_ƫ} :˛~bVo"8F( 8Ez‰ w3`V9 TI4HISM*=ߨ?M))=âURdQG%Ukߡ$Pܬ^̥۟\`#5#P0ddcY#y핪i LP L#jy-(W7,SrS [)jNMMdjIc#-Cߎ&jUsࢎ^'CyHfn&\B;)Y1]]T"@ƭMNźu G1|n,8$|jMIXl v*aG%115nɹɦ Ix61qːx8{Z fa^%= 5zʘ JǺ0{醾_M)[o ,Ƙen< mEhK.`=z7@GIT)'tW;AG=-fÐ:F\d>P3 @:Lc+D=7۱95,-Չ;k)dњjK؝7svM ]fԏCkm^B hV6H)ԙ>zP n^lJfb1n^jv 2#0ny*'dqr ^q]AMLXq_ XB>,(vA ~,JI)y&DXze|PNVsovAH{f1R2uba_Ҽ*&>E\vh\Jl7u&ٓK8oQxfT,L_zWbOV*?CQ 9A&q_RIΰ3r]5ΛA(3F;vg8?a* 9\w2ѯP55@e ǥLb@QX仯B\.\-mDƕÅ5KASSBO0%a`mJnDtAi ZjU^ |{Qޘ nr8˛ĀxQO_Lczs- +Osfg|‹|qI7DN Nz8D9[+]R7eOOdUuc b{*hʡݧ~niz cȨ8R-.s;Č Ieɞdems%?1 Ab>BOzFg#FJy`|'[yQzqfað7[F7yhx-.+FUkb$g 馳 _RsQBfRd hvg 9es[-е:y΂reiLpAP("+z*\PΪԥ\[-b+og7 $BEU%ʧ?8e19)r=3¤G+H y TD< /f% ӇPQ%޸CL,f D#gzٺ[9Y}߱G x3$)`-z(VHs]ɨ>75yC('z3[ be$8V3beTc2h [.QcG/;BQaϫ^SM_ʱ>raPNC𹣌vWOg?q~lRT^Q|TIu=lOfri`00oG׀Sj8K[-뇋 -"3xC'o@B>mc5À> oh\  b@8Z w΋'Rj8E=}9 ꎚf|tB[:m7 `xXj tw\j  bp=7M7%іk f#H{7!9taJjVef'Kƨp4F#'x, #pi4ILQ>h9yC FG:s۞}K$%iK RɏcffYhȨ&I7EMpTW Р7;UsK6NJ9"|4=|=ׁ'koq29MDu&Gkc:Z`:"sְƹ64C2*̈3WvBtF8>eDd8Igp%)_e2!!F))Wl-po ?Ts$|E.oMiz^}` nY59XW=e9^|LT-aK?槵Fo$U=+L[6ZpîuL Ĥ>B74$zO7poƭmJ12Yy
mIS8R EA|CsT$f5} Ϸi:bmi!CpEmNuY}u+t0m\4/ų o {FZgI J U/0#rmhi!0I&ז&JAye:@^ub b0ۚTpYk[t$ Iwm/tv4{|~+P2.K& q} (}SIoѯ!A\DHA}V]?x`:4ۖoIk/^B~x}7 {+dolI DlOy=X -{BwݤWԜ\.‰|:VDva7GP^iҮᜁ" Et | : 2yjytFIk;j@4RZe@=ɁE%izÜ]Zp9#edxuE9&ၘ ^`5ڪ!u{BΑ/VW cI:A?ዮqa0(DBridJԄfe#z(sd<>ԃrpeT ZWZ{^c< |M"bbSBW ]ѦްGΩܭQ~a]q W.fQlvWeߗV! Fϗ`vq.pK'/q뻾f`AywqQqcLrɣuNE;R'J|p8tA럛l['6q?^ endstream endobj 2855 0 obj << /Length1 2126 /Length2 16382 /Length3 0 /Length 17670 /Filter /FlateDecode >> stream xڌPJ upwwwww5n! .-hp`sw{꽚^[Vݽw%:P `aagbaaC"Pj]\A|Mmna9w;+;?.| S@ tEwtvYY?K9-t=dnP4uڿhnjPw4ݼ3'+-f P]<(. a rǬhi@@w }o@ O?  tw7 ` ܼڹ:zLn U\]@NnL *d%,nOݛkuptgm r w'fM;PV?&?6+ ṱ"vd `^d |Au5\܁vo ̀V ?f?]@^}c,}zjj_`eap/7)?*X:X:x~J#?Oo.%h4 '6;_wW^?^S{C"nn3 `eCJ* 7sZ_fr8zP,,>U{?Rbz#_;0398X: u\fѿL . `x/Y򿈛,e v`wwP/a0Aj;ΩsjA:EA>?""wO_l/^3_]!__wVv{ldxߥ k|oKCMkw{rw~'szpZxANCb}_'^q!ǿ+g}b0Y{f7O%/~6yl|]!_e^/O #,/84u<ԋx2MRig2.tFM tME]ۑY!y=nkl6׎4=8Yr,4@OȨ!l ]ٝYƃgWձ=:.y3qsEfyd0nDpt^(swo$rI'q쥾z[l>lxxzDcTbr8kK^m$2Qr@j1} c]i0jAݔVLc2ev v[ azǝVM L`4C~_7{QAxiR<%3΋, 蘶:gC\ժms!^JaNKN.tOUg{h_>A v7*oAcϒT/o2\Pح}'}QIM0=JoZi+ lF&\A׭)GY͇ߞaܿ(^.3E> (`FAφ,ǗW{N1*_W.NKWlY4I{ZBhKv5N,.dx hɉHJP`CcQa)hKizXF;drʰuahe `Ez wwI3|E(=@DQ/-ǰ128z&rL&eXkYgNuh%d\ LjtJAoq@4<5[-@X @3Vp$BYShaO2>q|*!z=6D{ga"K]OpUGCm0cC Zx8^-:^i;gŗe#~w+HA.OGu0זOY=#[8jrjNw{4[>Ģq(GfƟ|EfN[,h5:yU9 7_Nϖ^zVkIWʽf8_Լ]3R)̘ODY?CaZV,odrΒ?m T,!bGuqIM~ǵ*8U ,?9daqo 鎔 kZ!\%/,LCyC;`ݏmּQdBsxD"c6_ѭ֜{h+@_9 ]7ȪFvװ?dwiZ۵<AKWLzKiTkuzQehj6Vk ge s.OdO;Dʤ'n.ZZM2v y#1I,A3ma;@(?1$]h9M/y-:;*VC|5r]G 2Mh..8?0H) ybڇ+mאּ#`J |B}/}_4G`iFV JmXTkҊI40 q.M|ZiLl1x4 #![3,9%qRօ]+ Jx(D/>Fԙ/qhΟQ"21}򋉡 %iWVwG #S߈}S\csTU ^IxD y7N璯3.6 5"aZ4Loȫx8dh5d'|mMW{㿙 ,'Ƹ  2 Yc=ȇ'0˔?ΎVw>-D~,Vن&b Ptr[A?-[UcXՙ?ɡ23:s3qg jSbg3둩`P7F>gCwmlYeaat\%|L=py-f,CV--nm?02*{(9JҺg}!D2/'>gSO!%6*ʷ6bqOG'_j=gʥCYzts~PZE~z\fhe f 4 D]{φX9b?.kxj|5,~R6΅'_:h,%k|u]`lhe0 uFӾHxrMȮ< =v^tX O(+ H#= U(Q#27iz\릉#0,cmTT-kq#*tKb!{ \_YYPrMOMvb " ].K{B'ڕObnבlc_knr~,J_5/Y`]0[ 벊Z h>.Y|q҈Qі>zbl)n5ɓ {)F'\mIU1z!i5/|#7@7rA>ɨsHҚ7!6Pw@jvޡĤ|}%7D!H?Q޾f8yK~Q_z6+6dmjn>lVbM#L }L>^}=!1o@uzdDGp W$<%6|1CYh7d;Z\m/‰؀EZAG5xhy kq2nBٰa(W3v7}Bgnj?%ɈU~#nef] _xVǑzT&@q8܌L9\^!2Rc_2g].QfzL3A7/c3m%dplhױnȤkMɸtjF1Z虱HZ(i"-X~%2 A6-J|@眠 _ S+sӕMvEg E 9dH9C 3 (!òclN]k.er9S7P̄75c6ۃ%aúǻ=obC؍}׀ܮvz/zaI-N;3pztN̲NT_}5' 0H@ ~}DƞTDo{.KFU!ݻN3ߴT{a! jv2|Z;?!{0y"Uխ\Da|^ 1͹IoqV8Sܾ9!ZtuOv;45@S(e\6 .@<!gdA"zb=r{s(9cm#W%mu|I}5"OHt9R=, 8 a526FOH 'i8f&"}$hyڷ$*aNhdxOJe&n؜G>a;l6wzxYim|TDnft֭OetzTѕhPz{%ZGrxGQuU-+?*V4|bzU.3$C^u#@-L[zOk'qPIZ(SwK ;E4 ERm$)`V1%Y<ٷ vY / b9$7sIP[ؚS|:Ք:l\j2w맹%nQOko ߎ [' :C2 mjy`RcOTߣ뒤V7 S{Qy=Y=HNCc/|.H$J1! }0O?2$V"X*N8,జ2Yfdz9ܚ;2ZsֹG|f_¹;7(w/{)xJ^ꏽ¥`V1tnjdF¶|D8P Q/ Q'=NG+I+>ʐy2!9Eo**Gk K'^W ntJ*ۉ^[nͶ2Q2?'YRj.-&A%C(JT`{D+2T7k0"k>QiZg% 9п\w}ŜuॵXꊭG^pG9cazě B yy0j> ߄/0oi<5U*/!26vHIue(K vT04huhLCJD>~\Rkui0S,u^0,F'[75pVLLH&2UnHBT6D@.C7wpX&)זM4Gh0ԨqOgZ-W:탕z W@NL<,)J_iR@mz#p/oQ6zPc`R\L(EzJJ!D;$ָX~$B31L4ۿfa#B9ڽE*6uIvW1<ŦE&]'3Uުi)p[PWy ĝP20]}pNA0xלg @q^m;ԲAtSf`U`soV~%rS &o|RaIaKT m^uG.ydn6TAVf6B)-*cӀjT:6|+JB+5d:ck>P}O2֠݌WKSn8E62љ?LPm'G(P% ll>U6{y}X 1#_kﺠFzhn Q h_h$(MY fcnꞗS*SEަǢN\Y~BtV9ܦP1|Ƭ'"({EZ_ YOH:J+:@[W0%-lo,_`=Gp%'o#@#Xu :R!{rplwsz~95܎m:MUY&ojٛ;{x8S ^2 y+cRRž.ծBTrٕNI27ztI[dQƟžyrDPx~\#)j_ʧPq%;p/O JL:sM}-Z8o_ ^;qID#<SL-?vMYp~*MwR%E5-5bB؞4e*sɰ)p6Ї&859P')8߸:ŖNRUAx9w.TxBEl)kcCG"Yʪ[:r^6jҫ*OƜb=y }_(w*+L-Y -_b$ >hgyY%lGsfa䢌M'jķF2hٟǑ#{$A%0_ch}$4ﺝROWdXSπۮA(f,IxZn]i3t-mG4c`ll- ?tC&'0VCYh V׈[xjR24uS ?6}Ț)CT'-QtMZAyh뼽O9$v)mEdOt@9J}ܢPsbH'`0W~f"zn ;Ydj=fJ>fMI)"RՓѯjQ)m%?]0R݄g#}|K! l$YvJ j$`ټT"TQVn3Γ e$M[׳Ǎ6lY~pcկ?LA,߲ێ?Ԫ,d93،e4g4"dۊ!|l%2Ŗ4J-c+viӃ ۂHF 4$Ƕ{$5CΌH|w}hbt?0Hl}v,um 0K*NefFj)Nghh-ؠG]@yTzRzCK[m$̧Q)lj-vO!#Ie$ju AN i:uWHY|N9N-q'Hm8;/1I+ωdj@PNJ^i{hʦE2r%sj8oLgJƬpɵ@~.3 ƞuG y˜優7`atp>l6J-4=^xEa'KڮP`aS.Tjy|AILWbQp߱}cWʫ{?}^%lf%$f3uZ/DDWk?'+.KKz1p(eJu?iI6(m\zY#Ӭ8VԚBiksk>xajYm6Q5 xJ0ǡE"ax[$Tzo`T,.+2!s cLunX`$ Q9c#,<7z/n3dė7G±!'8 KI=JWŰ ltCˢXB"$XqIҥjR~1A;^8kHY_c}>[^%] TB7Fy\ V̐N.+ȵ򖥮2tO 2hUr-u 0uo|S"gM:whAX\ Їa^ef60ʉD %2RK^*6P57=ABWwZOϚϯPwe%n04ΡY{(%r.3eq(`Y!g?j/uY]7 ~@;,TSRG@C^3 tJ[e@US;mB L!gf$sfq10%}_Q|ȁ2+oƬ8,]a4R)3DH5LԎ:<rYb:zÒtՐ*䈀 $U;Y_UiQ~;TeJmt5-iV+B>5b\2|t&ĴFz 4gqOv|fIjFϷ Vs1p`v j;j SvjfR0x2gtdVKrX'yR{lgjDީ݋ <(1%*i.woKxUZ!l0(oφ4jϺ`*' R%jV7H }YuǺzׂ6 805?er9tFFU8OZ{$gC6r :c7$XiQUid;׸ uJo"_c x1eJQ70'q@ļl+!u|E)BoGxơy-uaŁY"|tA暷YN÷#l$\-(s;|RԼX0O*<-0g!qfkTyFu&:2 [,}ZAi.9gK[u4mn!XLCQʇoW n??~7S$6E%^(n JBcT -qe>lLKJT4vHWbJ~[Z |# >k]z˕.*H51ͣcg[Ρ6ZvQ]ׄ]{k}j*sdӖRے,¿c7-Ӣc6{dg~K<2a:5GN~m2f͖O$ҡ0^9%uuT\KRioA"XlL۵4!nDvcc_lakV" Q>(/\P(QXO ^ʼnBL,|63C3)oࣃQ3(dgkڪu%R0"4;4s3Ɛ!LF@XTDγѮ33A Ow]41[fl_?ST۾PK|IUaؑY$rJ[}Kp+VB5̚t J4n9#e0l}ƮGPŐ\]˹=P|SX_yh 2\X hFNZ!ngCٛ@0lm Z>Ln*׎<"ÍdG\iHc: !hjZqKj˃Wp%9X',۩gi< &@1GZ~(35!/@+D9-Tg 咬sets:FOcw1)fŚKy?]|?FzH~(h/xg@jޮusu^zd*FSuƴ3{s<0uq`/1e xgYW[."xU3 %xUG|К?KN|׾<;_ѣY e2Gya[od}:; )dBy`S'l_58`yUCְ zYۘzŏ+W8-XB;~G=*u2餛'AU &ŭT@( TPq$ w osA9PZY`[K:J~ɵtVHP6z!ybO `=Wr4MViȖӲx5ߐ3`k`UZdCV"IehxI{i/o{ ɣ)GgԴ–:yԅ:'gV4Db_?^,Z88Xnt6b*WoU#̭4ŸZ%2S>NJu2 b@rަ&Ťe7UW3ߊ[YUkKrP:ˇx"2c>S+ _jx1)0^H }rȫ]EsuIwB`KȊf7[uV:B:sPû~rYChb f)19\~m$zm> O?᜘OHg5;!F M0yg)8Ѓ~D1gr&6BwZ[Ozsef~V$'R͔閅lm47KRE]H7L2NŦ2<"k2YnD)R_1FJby%j &|@or%iX#? Ě~Ыdv{xI`@xa"xw˷:6é(>I@wTSlv4c:@ǰa&EgTq5!v<}~uO+J8(T6p!ﻃ:LzNϏ`DBs |TQ*4P>=嗞'g~}kmX"`)S'zT{KCuO~&3LZXTƅ[ʸH̴ |7YCvq[x*~nxơt,/K xchqpG:\? f][%KIB+QXZ/KiS YPD %pyl:`d2Y'&qkWJNo v=POL]7Rǽb υ|{ojUaG/]=^COx:S$X'7;i4U+! nZ}6ptȼ^z4k7oNt ~bհFэ<~`p/ۙNi]˺~h+[ ~+ ?!&C)Jo$qrYq(d0}p8ϴ2``2`,2qPQQnj4K^tܵiyc궐 S3H.$AÖhJ p ?6U} ُi3HGh)v{ܞc,C)UJW8$/yx4|>> vY Mr$>m"ucl]P/^b}p ?O%ԏvR{7 ^,LQ{f<ԽLZE_|,T_6+ae̙#@˲ԭһ~:?Mp_PB"x'JyCY&5=E|.UN#MQu"9 'KG lYF2}YXL|s1֩ WLze'uӫ)(ѓD&LsklnN-m۹M, )Wa8K#= $"aTa?mļa8=KžQ׷NkF"f *oT9!F$Lo4MlTQc*J-JOJ>-ͻb:åteFO q|vݖHhOtP`qM'wU2Q:%U];io ۏ|^Γ3Afksz4lv*tW|q80hφ~ An vĥפ-lK40aLFX=,aT YL?+y~zfzM/Мdfi(.N^UwX%#LMިp'UU+ q>Ŀ] ,O ӷ)R%ÄaڣJC m+<[d+sZl9NA*xcޜ鳘]`yDϘ1:X,  Ѽ1hU|*V1LrGT;=JuƓɂ|0+hތllvz|(au`1 ލͩhWB6Q;};@K$BXXDn8!,"^71Q92 Tޠ:=>d82x.-!Yr=wO+r[@;->xP0\\mD9哐ykq7^OIc_V ~RPVNoVHΙxs.ɻWrP4?HnV)Pr-e@a[;&-lrh@D?Vi%~a?!>8yB1 I.JegTYE#Ѭnq^=nvpldA9 ]S|e=1h9sV޴co$A >I9{sism>nE.иB(?L>ׅG7 Cڦ$h?}ObZ`V-m#p4C6R {EVa6|UXhAQQ6ÏLE0{X@8 endstream endobj 2857 0 obj << /Length1 1584 /Length2 7387 /Length3 0 /Length 8418 /Filter /FlateDecode >> stream xڍwT].]"C7 ) 0 0CII7 RJI H![wZgyk׽fzm=nY; X Epzz|@(c33C.̆`8_`B<jUOOXODb< /@ 07_#a>l>11?`- !+ڂ\z0[l8/7pfxC]0* r]63@ˡGx<  ?xBz*-70`7/ٿ ?A0W7uC\-%u a /dA%Y¿z@p8Whڬ8)@<}p0o?U VQ;F@(Pv}ly-PC `P8b~xaA^`v[bf0zxP ;#SW65rr00_F{+Ujۇ6c%|K \0́B@ۇo/{GJ.. ? WD< ajkr5vO @ upl A:&k_w /x:?Q?L.3~!a |a>!RaؿTX+F^H /x~#~o$UX4o=F^Hk=pֳ<4?epg)N`-V"̩&Zʛ{u}a5:Ѥ'J#Q#7w9k 4ɲ *aʹ$Şe0aD$-zh?I Ռ5h&\S`rn* pҧR!esZcM虖_L ==U Fnc! r-qf _^ QxLA\>gO^6X˒Ǻ :NBFhkBm!eN1RT-esGhF-jJI%욤em+,!;GS2E. Ϯ'Er 1T^}GWHZ̟O_dyN'x×uLJtT!ZⰐЩτF,bFCE <|E@Խg45p7D}ƂO(~؞n4|M.R&[RmCZ]߿]jis,p)c4 ͣYL'PKPg[;fiu %J?V䌠Pt9Ȫz=;1Y+[ o 'Pg?um[+,toB pۓMag Kyc6lۧ|jUSG] *Ŵ9И˫sҚf_rnqϟ_>m`siD)\6mpc^ ֶr27gϩ '=vf:PDO zз QNuλo9]rۯ!!T^_fX6 gMDi2z{˜l;fOdaw̙in:Fja"g$uN2 188q ƔHH_*TwR>$,M)`%> J Cf0 OD8>|Bs~Sۣdl?2(b,~M{5}ʾyٶ;Jg ,;r\B% ̇3ygkӵ7Aӄ(Da9s4XEy $IqZí^T@ړƀTl?;|GR9!ptѩ(cQ?w(;܃yX^#4;L {fBp=۽AoT\9t7B3i1G_JS*ū.[9Spo2v}A ѵ|=Jssߢbb=-b7?+J;*CfO)Gl; +VH`[Wȉ ڨ)LD }x2Bs$YMSjL" 2oWWoT_;} #-έ}Nt\4WLX(qfcOpF74+Ǚr닃Ӂ_</f>ȃd%{F ;lf?bS10\8fOdgd1U#y9ӂQFU6Ҋ{ĈtXp}FǞ~BdCi$NbVP*Rοy +(NP8;ţ,ʴq%/VG8 *Bo\̛u&6&8B@ㅚ:m-0tT@Խd^%]shxУ@N⏉wxb^_X6/]OTڮO3Wm6%o-lfZGßcmהV؜%Xix eT,\5}ĭw'nWP‹61u&鲴֤ h{`N@jՍ%#E)}kq_`t<)T!C~>T% 0Jx%9{, `Tdf8V@/eڋpmnR&ـ\vPUEKU2Y}l0n2( ^:H%[-UμEHIdt؝hTo*Y@b9CIw㸛Dz T(''M\i/ނHTE ך^\`\4㴰A_*ݾlSMZ%sN0xc=YR%\Aݢ>N`'*PU}׮oD$Rȥ;1@hr4!A4)cx<@ޗ>B2aWq ! I>a]6iV:w0wMuz RPOK/w >̌Lr%m/xlrz4p摎=$S-p6#PrzrS8]{}xw[h _g{r`F6a~=,M&OFY0a}Vʳw{N)Hɻd ɠuHzm],i|DO9Ṳ('R~_{&9?Qy, ) T=SՂK[E &ۘ_ )&91uc#7>  ,5R+J)[oeϫ;ԦY%?[r`0ߕUϏw3(ӹOxI#'2LI%V6%Z^D}VqqJ|*̀d 0qt=} nS?  I5^GAɁ%wYݹޡָ q)7ےNSQeSU)Զ2;IڎCoWbn7:P$eI2c\G$"aʼnƆ]&wըWJ8墁~[5׌g*$^w)q犧/٪Zvx;&ۇ?\9*tFaubs[+Oyul$ 2#R8k޴VMڙk8qre(ttLJftX``8V,fc:cP6nbX1ѓҖanX_֡o Rqrp"*#;?zS]r̷pNznKލ%ɑQ:\QڋꖱXzG,LG/L7 E*U xK&_ bl/¼/7=pT#CPh_1{ 2iwJ*Vy'MEǎb݊]آ\TM+(a(n߬M^s[VWngP7 _!nyjAH`HM<'f @Qk(؟6.f<,|Q\B$1dtUG)_j1}HըBW2`v8F=2 i&6a*pE4rCT߲C-nݞ dT",#<bU4m Ut!hNq_"l>~tfVA!qyojXc"(F`W r{C=@5|@<g#xDPe>t.FݐзW&+[/CU4H d?]MY4/_=fn`9Ĵ0VN\%.;J~{."IӲoLSqH"Y.ޠU ԬW]6csUU2dxiAGMtY?Ú`{ A/HͳuxspRE35tB׹PQxy;e8V" `U%k[^St=SU7`޷y*{#.Jiw{06`^r~*>\9[#!v) tWb'룫vИ2J5ٸk _EM} ?:+!j:qj9CGxjLV1=vF0Mk3W^bGu!)e9?+3p4|pYe`ܝl|yRS{!}([f¢jAw\͍XbY#(ٙq${9z9PȒ 9 ^ˌe\}ۑAae]/QX8 >6>#?DqA)h^&Ul`꠩ E`S'8 ɱ6,^aX>C1wW3l|ґny̐NN-w$Zx MXХ@2u3)P6uEK4`S]w@3L0w}h,SXOzGD,tvÐ?dml%,6{ǟ[p<}lw5?ttMox9%h / #"{^՘޺̒i/ĀyyK<.v8_OyqkGiH& 8[u:EěL(;pN8+v/btJhj}@Y򛧒uu8q;Dt,hE| ^yaP& zM4_ѯgHdM;]?cc -\ɿJДߓ߫`S@*~^F}zeŷA#\Z`ƀˎp}Pu\r)8,•92ԮG)~\nnЕk4UԲ=]}T:>BǗ^ΑNE]lcZ)=޴BF px<&}^?&nLC]u#&T9aZY9ej(sQV5e%%eQy)aɭb͇Cs VicAU{T`%ĢI27y꺱lSNܦz%MCkZ87ݍ#. YYk I%uA]nDKh(d mO|uJSTϵJ2m/Z] N#eNA<?ixU|lYҹٮ;BeHC@,j"G4γ; HWrEJ!<K ;?6֘(.^^5")1 sKЗn? ,ܾUYHkY7A.VK|"!h`ִ8qӈʵ~RӱH!gs{;x{& n4Iȟl?rRocezF,?f^k5pkٶ}~ǚb endstream endobj 2859 0 obj << /Length1 1919 /Length2 9607 /Length3 0 /Length 10823 /Filter /FlateDecode >> stream xڍT.t7CttH 0 0tIwwtw4H H7w?}kݻfy~ mv)K9HcȨjrsx9xtla`_8:( gd0* p<\\B)B@7[K*@ rAg@=mm`8}0[6H9m-U h! \0`PaNNwww Zf@_%Ԁ?K@gغ!ІX܁ Z]& g<:@[Q93?9um 8@+[0.=-).= h ~Ki  sp59Z@@0_:,gs!l-~a uur)ƬA0??7yXp 5zC!P t`ή _ }BXZ k[Gagxm=F\pq~0K#o-Tє3e !ov!?  yV #]=۟`s@X3`诸,otm_^DoF`o9 90B_U} uuTO59ۺz,5la6\׼mA_n|,[N"|Wbkx@gg':> dpr8B`pF_WcV@ / S 7"N92h_B_2(rr/;;C劗ON7LxcOJ9ƿvjp 9™.$C &$'wjqrw<`x7 :»tutu[ aPx-7%% _3 t#<)(R +3;wZŃ;rǟw/Y:;ý^pJuA 'H]]pm;zWD@8q Ji'i3J4ЩO>Ƿg*6O]QYBȬ'"6qO4)͌?݅Vw:8qhRa1R9]Q4W8xF:Q7Ѥ<7b3F>=8{W_OJD38DJ(w-SOKZʸL`L`{kLSuMOb9[Y:81IZ#lդK3T["\Ts]?Ug %7*KM(~A&;$f1 <)b`/5TQ+;>c5uQgWl /Z>tB)  :3gqXanS$"/%&ixtpuTv C^`RV-U|+""oyaNSoOL͝O9yPMs^ژ1)6IN |Z͕~7/{k#j$@>%8"{GΗ=}L) ߯NG^˛d>F U:.[P{?Z5]~6y5kT;(sa3-nVfFżN6|r@jBK(/GD=VK4eq0P^NuRc]c}'r@Vpk-qs 4NUy6MyZVBRѹ=I ;\I}!ը)2ϋ2Zf/0&oWEԲᮢ1?+e c {Q)ܬ AlV$٪G7` pJ2-Y`2Xŧu3u?vIpLa3"҇\%`gټn˗t]z ULJz+7DiV'0eF inm9"ٵb+ς7˻^іkJ$:z%P)kN5#i,gh4( +xaXVᾘ_d8elq#*r8P{DWC[yt̅,x̰#}܄Q^<Ƀ $k@Vwg3XP- |o_؛yi4of޾87m520aɤ ļ@\8^_' ԦKs5AЎ@;]ws\D̈ )7Dc̝Ieȴzt_j:/o6|.T+ D8apV4:V@]5> ,4ܓ{xtn''Tw5-F^(^`XFz>ՙHaԽ-*!{ OXFDO& Ɏ;{RT+ظs  Z@Bw1B-=V៝,Ýrt {L}Mx8 ga +!/U'z.c,F/' Y* m+M9,W(N9l)c텹YMU?FߛK֣p!ߓ3]fON^´K -%>"3ث7/I֧~_CY:b^0Y`B?tnG q|8,}NFX')nɍ/ ?Y"vnq|ΎmKIR{˅zXjxu҅0pW}N˸j>eFk[4Ȫ ~)VE$Ζ6f$r!OO¶/bWppP򧝧NfL@_N:SGk҄GB^OڷueV9a~m O!GiBуsQyj#k|6gcl50*'/4i;B.;;D' ;אAܜXѹѬr|tiagToc2qh^4 m3O"g~UB5?@YM9>E=Pы 4f 8-2o/5l'ۂ\R$"yr=b9ۡ;B(Vͷ//iٿ<ܑˋE:SDsT_+W R]AY~//Lѓ ]ĀQ]e,l`"Z-Z^rUv>c9(wPk5U׮PG0ت X aP"#0Nқ+ erI*ѺFu?@qYkG)%4뉧s:ɸ}*kXJ'_MdmKN]D߬Ҝ}BHCƧ|`5{s7#3:{OGy%S謘*wk;*Yͳb>v<|2ÁYWs'Սi 8_9Kɇ[GSaZm 2n,oA[JaɚڍԀR_.OۈУ%{oݟTb[t?#u(URT7q:Mֳ:%* ~JÊd'\͎'o >w3X#\ ߼KW&2-jj3H*[?f,@uGlc\\´hScTtHN܀C lDrLvZOFa=\Ql5WL`2~aIG "L?Sb/hBzߤ0uѱ,09#n$r(B{䎱yGtm| jb[V&JYȿcެ6cX.#)ФbtYhڕ.gs:[;1M-Y+ShN_'F@%p>[bRׂǘ,kbUW,ka'Nn\y\2pJX WmPJklSL|9YOUU1GndֶyT^Իhz'tMjD,ӍJҽՠmW e+6 Kp3\Zg4Xۣc6TdU]HM*7T]7T4NjhWnq21$z^d6UAv\Lz9J /;4(|xByAæOIqt? .Ljr]#'%fZh؁(KJ^n[/ Joq/UgVy%bJUύ 듊QLJ?1y,MQlǡ("KSxBtZx*(Ql }"_COkת0qOPs]~&r)<0S@QţW7 *AyI06 /eKS1T"ͮ,_Ehu]Kt+s&rp"#^(ksҎ̔O|]= (ϗ|tWv0χ{1ZZV[\QsG)YYtsw{? E'7Z.r?GhFHT/ʶs1UݶטaAk̳|dz,qMď$! dXb+OѴ'!jvt;Lܕ X="ا!TX|b^J\nxNnT:W[/S c^2 *i*~y*{_PSq9\70_Q8#XҠUC|MQ~WX>n1e#`T\]@<^}a~i'A5SP1eQ66anqݼڲ ne'L#,u dbI(&'P{a-=`|3NN|,a%i!b(a;5&C_㍀dN[h㼒6utEKi8$oݬOy\7)b5UG=͢S jrnփ^H,ޟi|Dsh8k~>X !h"6T)T]A5A1p+&q 9(tY+T߹<q6{m}!qTfm%/,g[]YhQmqq'ܡa#H\XC..G 9ʸ[a OƎl$ Apx:eͮ/ Ss͈X֊z L8VoMc+ؽt2B+Fy7brd{꛵ӃW Vab#ќAf$3bhbwZ"?LcN7(+#ڳU?dT./Z<ѾtQȷf=a ޒK i1CppKTctd $I"M.f931'j@ӔNǒ69{Pp&~M~:nYe*uaVY֒VEzF~߾R`KU mgMWS4OͫWd Vqz)H`6N nBQ8- ["z;} jJH+S/CT,Y/yBeb"۳X(Q=QM'x(ZWΩqfeoR9j]M=!k;SL$ḼtrJG3 h! htj3QYtcI07p bE_'%7y2e{bS; O!/'it-l؀x/Zm@Xe\PР;i˩jH_חGlTG4/*͋͹D&ԛ5_0ѦQ{RUj\Ʀ;?L~>&1KBW 8Eۢb27V[׺֮v*p~[dzV׻"p2Z 8+l羓y@HYRj7"^oq4zN٣ j?m=QdZ~.sT4^~}\Sj2aݏha`YyäJPgUb㏖Ĕ#< , w #ϣ6N}2>7T'3(=RjVːAK7哆jg їBnSIDaxfHBAvhcᚡnz\Ǣ%o`ջnYgMY)jzG%^o.֢$ߗ,=Z\λ֮?[TdaɎ ^`_U))?o돺J.t:,PCsb.i']aH ]cwS,P] q2ZGdRë!{>yZhgQ~g}n^U5xVqA|d(kjڮh~$m >BY%fT*,1*yUƐ|Gg|⹡q7.C@O7Un6wsu ]UބuT? ocC_Bӄzl|ёBXh4 }%!T0!Z!VqbrOyi#._`1TS=[xZɲԗĝu0VgR5%㘬w 5uaqZߗd+>h;Vmq ǔ[%w(xL|w*ʆ/=z2)(դ+4se~o3XxtϦV9_+Si Jw06:seS%o ?-珓xOVN#sQh͍~±_6@R{80Ti淙υSo'O1g r}#  F{lp.EmG߰zwPFmGWIJ(&\}aw^/mZ6W oMMZy:)PY"(>>ĖA*F߸1=.X9>V|LGGح\MHےMQFZ!Qt9[pt xkFسЎ'm<UG|Ӽ4Prytԯؕ 0׶`OuşPl0iO4\Mُl:8fӣm_ḥYʤxJ>ܤL C޽Z#v"U]h^d3ؤځ \w&9Zb =Ia>hmDޗriVֶ¥|ek٠uw1OE[G;Flg)VH?GIoeRBD͎G9qމ?LY" k݉lѤ(j/_&f & lj J\ejFDN{,$# H',#,Xi4R?Ufdiу)1n3^ H 2Hamn'?Vx({ P#OnanB%fGNHSPxUEI gp"QcN_E=}.C`aYiF(j>||Ub/M)1TOsipT8چ'_@g<ߐ%|:E̅B |ee6]-E"HCyYrIwoh@!X]D,?uպlٷ_8+%.60o)jU|OkcϞ43ÌwvB"/7u؅TNKʜ/!8ƨe̷B[`4fr`v ⱒw 2UZt9vGE0OqQ=)Lˮcf`b✹ə8bƠg9u#)$%1͋'۱1%䧻|%EfGʶoM_6(oG? f~P-V*_]( }C JS K !^5*%)1mKv hϺe[/_? ϫ2z{1$ڷz).;c(X#]Q5&"2]WM: V@kG,=> stream xڍvP-ҫ4Ԑ{E!$"$:JҋtPRW JSH)_,ߛyo2k9k&\"p=B Ɖ Y$@b&H /Lkp"1hEPvG@qxLt1h ,KʂdA $/"]D@R*c\}ܑN86z`)E Puc`H%p8WYQQ/// bo 8'pD(e@ ^78༠pAh,> G5u0@U 0(W(v8 ]}5 ' ῈP,"]xΡ5EC/<,H_E*AhW*Hw >nB]8 p_"hBS/QsD@xÜD7qEx~W^"Pa\Q8#hT?k# ЯϿǠ]|C}ZƦB;HDd$vHIKY?h @OSWÞlYK7-ۀ  )77;;(_޳8u1)@7gfup꿣8(~юx/% ?8F 8MM 0`^-,b9_X-羪hk ;ԇwmd(Sx;ůkB)QqF 0i L.~uHq"0R[dew.I`acl_Gm:ΧjT?+tD\c9JL-ΚfiTjӳ6쪕&(>Je*mF[rX X]qN04}{F;Rja:.c`n/;M|@udy+W`b/+SBV=O r<%7O߈{ BJ*"#.%k)\ߺ_"0~>z6# vVwAzpqۚ,}ɬVط< sb/7sO?'h $!Zu];4ؿ4F̗L]zS1}%aSBI -Fy+cv`>T:%ɿf| <7|pdO%fDP2'Kڕ4Xk>->al8|j{)ԔƼ֒mǴՈ~Ϡn9miI^Y˯Ez_6fJq_ZoK0s:ptl캣6wwWZd~%Z/JTT F\/SmWZdpOxl%>xx {ꥌpqB"Xl"cd5 M+E^?t ]XKUM0{`QA~Nӻ/M\/E%ڧ- Փ4Gl3X:1_bxmtCeŬfI|1ʯ2}`().Y2Cw^籐Nsfm Bonc.8 wƚ5m?Q?rNQ[;ٔrIa] XOͯ*ٹ!\c]YeF}:U4N+QBJgējviEli(!n-&Js+x Y5ZKl '!ڠܩ-*0Gc*YdA![Xތt|e oƓ9 _snHtI=փi?WѐCtL)Xj_#ؑF^毮jLzN6vbi;Xۀ˩E}4%JedkdپOO Qܸ]ݑ1%8!{V:{8y#$c)$E6EY.\f'yT0S*UfZuIl*A"/Mn'{=yP]_Pt}kp|ͣB2{C]=%ʗI _Ωv nEkO:\W#+:;!1Pv14BYbq3%zjXbLjk^7{ysB@x-_ޠoFFWVVXs:"/Z| /PU%DvB1"^Ʊc]Ǟ:Vـ;7roY|zuT܁iYg'/XF9kCdဥ8xջ6v1N/?sf$pئjcL1-(9FR1gQdz4C°F~Αj^^n=q5޳ks v*s g ,#L=.j zu2n"bF(QEF]yY`en*};8yH\S/bYSj¬Rߊm=rŗ@E'mhV*ҍ[b@5)Out`@xZFwUN.h`T+#64Bv=oS(=uyr^{R9 oTl>Br\}VSi_Q.).HeiZc2 -Uذċt#%и6)|QtH(9۪ $3%q Tx _Sq/Ԍexn,4MZ6A>^7p/#E-{ށ^T_ԟMf2#eЎy "VB1Y}ą>2,og3DcN-mơf YCm:ߨ< <%5gaSImmFGQߕT&fVS2Agg_S'"[N.%80 Z߻fϨ+-UA>er#ė쓇'rϒ[H$)#EJOZC">%Q<-'z#;f>8IӋ q̕uĀ(sS Jrc}#몑VnLIdu |bm1zʟ>g.(M5(`/>?aq|U%'5krMɛɫޭL$oy?s %k784PGm}CQH1՜t)-eȖBjA#O[WJ鋳/)Gf/]7n.DY͇{w"%rOT"e|kQK8i/P% 8W !ϦR+׿sxg31M*ȜD\Y%:2q9[!~ I[Q?5_>T|w{])M{v2e~(fŧqeOT廏r⑧l^c* ,oEțE׸@V˵zw{erlae생&K>,ъ"4*%~o_tZ2 >]wE.47M.yE[sM,v5/i(yrC/zvd*H6:f\m Dx~)=>mR }Ȕ6at=Hp6 b,;H-i/W(mdUa+e+}j0)=O6OImtc,MSZy9m^ڎ7o=<&4y[Km~RZ]`@וIbB6'>#ĨIpټ jKZ6-sdڒVioa:|GrCJ&x]v#zU\4'0D/3yuGbg\&$n\32~RkqOXE~KvͪFI$h[+qzE!s!c+] .PD=BrGM fIw=/:O ZE!G%&Oɒ"b<q #&4>ܓ7̴o#1 g'VaFUw$q4~vp-b<"{pJ1zL#oBZI 3<1T In_O3f7Pm:>t%3ۙ }0 :j3$eDHݴ|@3bC(H_H M /CӘ~A.:QT3fyLف&^Qհ}2Ytk+[Ajո NǓDm~>󣇨X۟nFf1N LNW950at FR7#LG|O2] Z-QڮGܵe}0(D2ax)@4EE+U rfNS,`stc}[ZZ}G_ec?Ky ȡ+aQdF2XjƽT}yKFLS5.}Jd ^^Y¦bF;f݆eqY_ |Fj'=|]HbKnu1B!+s ubIv7Hel$GM)OjtEP!#}J2Y{u4K tQkbOI;%__:.!j(Yb/KK o]c Bkʍ9.dKW~|4G(R/wd|84GjǵL0JkB{1A9_sLǵw%&J{&ZFfG9+^ $^lT/kAk) VcƋ:y¸@w=ʨ϶IQޔ.Sal6ૅ:ovn׍~Z\|ͣb2v'OX3d?.{kDC {βڎb$CjpO];6Xw^-3͕Vo_H۱s^.O"8ưx/3d]fޯ#g?]^БtMۊi~h_ 3œ sr<0bxG3M2Ts_St8YaoCq>t=Dk+v[֏]e**Ƚpp=*'/.;n({].wC7ڧ4G}NxcDSYXG=[杦U\?7K7LܔN ~"ܱ='((rJ 3B;W|yYº$9X}'lEp`T壊cNtޞU O۝bwugdrBlRi019>xҙV?&;P =Vq> stream xڍuT\.- *CwwwtC HJҍ -!ҝ}ufyv~3, z< Tw*x,,F0wg_0Dp堄ј25=B@QI1I~~ ?ߎ$P ux8`QB ac^@ 1@(: w D0hà>]UˋE e9^0wEzB!_\*`?!ⱻ g G#<(>h u8kq? .  n| suUyݽݹ 8#@ǃ >/ן)*"~\7( VE$F. ؠYKMwM#7 8t3<W󺷝B )󻚛x : ͇M%)J}j~hТ`a *sWӻ<2V jYSHJh:rͱnԱ# t(miW7{`.>rLŀЏ9z8aUU^ @IIeGJF o{Kd<s^$ه8M -M0Z4p̠z;bOwѮHߚn||9i3qm=A?c? ro T +ibW}*䤸 ^Eug72 nC`VwןnG~+`<3 /`q'M=_LRAVfQ?0uĒ% vMaMQcry&;k`#'*Hkop̺k9&0)6ֲ4+L7bmLo '5f0 ;YKw:Hh?w-v&-\J&==Umԟ t[A-|%U=s)u~sRNt~qK6E/s,q{!BkGh]} $:7m$">)u)}Ju@u!G8+?K>v^/w@6:"p5ɨ5S4zaMVz1B 5?I{%r9uQ8wvDa{i?, c(]wX)1!´1wZ5-1K D_0] 0:bV)x}9_jۍ٢}>8qzpg"VGuB8[MԈp[6˾ j@KA ܱMq+Klu,a5چ@U7Vp[F6M6Q98Dc:EH(婔jF]r7Ee 1L%[|ǜ Rx55 ^׵*tm6-Mc27,Ȃb357Z8l-$֜ޏ~Lx#Y g7Bk m 2J4smt~5mھA}{Lg4"AB9䦹o(?/f};V73Jvc5j]) 3IWL>QwZLSz+1Gʨ"wa:8dxeAu (RP;\nrrapB_Se5ի^Q/awE/DX2^L'o(OW\<3F;30WL%5kplzOM{CU:'q\E([R|9+ ])KQVx73GxgO=\/V!nަLmG'Iv7Vi7>Fy<7ʌU"ww6J2JQ~,;"xgnJ#j_WRvcۅt"0S5ci ԋlThz$ ۉ>]G N/gIAR"vyg0rt1 /Xxvt1^W3yk Q e7RQEpD\cRYg_J n,3GK>s2[lO} v'qISN_(M>·n{R%6B~懖DkڠIoάY)P4#^,W@!8OD ۄ!ߨs9;K ,h}8coO 4U]`O8XҖ'1w}Dݍs/?m0CxnMR0Ufv ==}mZ߇3WURϒ5hq"kԉc>F+b.ko kȘq2X՘"Bc 찊HK1_F4qN(Nr}h"kzˆjPٷɌs5sR R1Wq.32[Ⱉ=e_9Iх-5pjDz)hF*K2 "w%?i޳kCgc& }ԌdدKo.7mKz^(>!KXkzNs=9(O7^弭n/E"atOO@01Q&;fֱ]hʝ AYJ+'GҧVϚvqcٓ:(g 4+b<d"<\6x `}Uk?gMUoeFsy}#N\{Iف4 x%LyJ~ϖ vqixLjjcgd`1֝'VsD+џÄj aDх+*} &1G)õow^Xn8I( m}k}{IصgsIKKѫʠ#]sňЅ$!& 'c&ӄ0y*eKn23ޗ&ޡ r ٺ ~%̍y6a+9qDLɩFMayPc^""ΓB6z&w_r8ԒuEH7U79ga0o]VSݶ<@Qt[B ۄC~Uc)_6X '!!tXwLj)Vɱi}Pٖh{X 5Ikrz̍Fʶ# ũ9tk%u5y}m|@w;PetَQM)sāu&(|\hTT?BĴDr(⢨MHelJTMm:HtjCWhZZ,G;C^u_ cMK%ƐrY,/L٩,]v[貈lD: GM lsiJY&rBTCRHrOh*Sbww=m,nb9lrP@{ujuT8{4lŎy=]uo2@>7*V eH\(Զ5P؆2ƺ*fE 0u& 8t}VmԳ(d`}Su! @zuRLT!OƗeÎ:8RV21nNa D] `VΧ[muV9K>29Gₛԛ/=B}jp&jL> ^8uay&` g$s dz(sEHeJM $o-8y#-fE*oZ+.x/=s²\=rR1|wd~?J% ֛ݼe|XE fˆkx~+dg8s,a9Obrt/:$n~4~]q 7A~w{ ,]3lIf?c} SRa7O:Z4hA|/Ek7TRc}Z?Z-jiϻBƹi]ϟ8=_C>|+ Yۉd~\CYtdm}7IҪz.:7z 7{j㿬9,P|z1Q@ {#3<"k\w;᨟wΦD0[4 .RT"p7$fgM1,#KeJ}g-&a#Al_kS\Y){T%KKYE\r@}k8?'[vqSĆWӱY\ 6b5S+A{ ͛(?+\? <5r6j7ZQY?qٖ_KaYs^IqXq/faID >6xKUqb,;Ȅw[jz.E"ץ1D6C)lEᳩ֮6Y4ͬ%byLb"/b =`ۊw@GN?rwUIw%']C5R~ԣ}liveX2ۻ]Rפ0v#휒r=튾<5T_XݭXg@sOi`cKDU/R]O=74~N!ɓM76,}iRR˾ia DcHfۇ\|6g~e`s29)m˜2RX#$6> +.s/ݛpɃ92Jk'X QӅ/VpU"xY-fN+.3}<)3ɯ*hCThNY3&BkNZrԚt`a-eQ&섘IW4}8&Yqx%/\,J6ElW9ɕ1+G:%R)?%LΫ^s%dn5!+l~3s>ax.R[dwJg[v3_t œE%*$9 ҅qP y\~x}@ԢFNlǺvqwlYdlسMr޽T{?ÖJ2q-2zu뾨 uUmiD ڊ#DUa@έnk WV-lwT4eY, &QR {uYIzS'CU6}o$mIWlBL6ţ9<_@)o>kap9);he~fw jXrXDڻX*>{ <96Fѓ϶ń a7:ϓITvqM %7˺(6K:v,zBq7g-(&P~_7glIS|z@[PM}4d! K&F K#X]rzFKtL,n[HUaJ5'.;50rM^\5Wľz4m|RU) endstream endobj 2865 0 obj << /Length1 2193 /Length2 17494 /Length3 0 /Length 18806 /Filter /FlateDecode >> stream xڌP Awwww2';] ~gsUTͼOӽ{5*ꌢ@){WFV&>,+ Rj R r3]&an`sXXXXl,,1tpHL9{ 3?3Z+//7ÿv@g=@ hhfb Pw0]'#3 -jP݁怿J(]%@ Bx؂̀..n@g;;@]VXop+_&ffv&^ {KPR`rte؛ehbon51}7W&)QU{F¼$@@sbwsm<},@aȬirrJ]Gf tpN_^)Yx/ n@?*!AfS%Ow1og'@}X,}d>a^bfM  IQ_'`eep?oпt?){h >@͟Agd1{bi4, |4s:tڱ.q*PKV:L&$:?9!|aӽe4PSnRq")XUT=ɺaw:DUQn+y yv-ТU=b7*)YΌ#$*~mG|r:XGO`i-TkCh^ b?ъI#CeJV;d(W9HB8ȍD G'xM M]JXM$W?͙! -Fo(7'iB8dq6~/Юnw-7H{0J6~9q%ۡGMO#:mxk͍QiEB!Vcr2: JA2kUM=Oϸ25%(]Jj`޳< k0Oۇy5T8 A\})z$`);,y[7ϻ=y\i+Tjѥ,E"ϵV~ɬ0XKӱ`ʨ,j 1a[ =7?P[W uAP4 Jj\mR([9<IWn|$x' ˧C]y4>%^f%6%[oR^](%^@ j53+@믶#fôs-1$8=a9fdx])Xf]cXjKZNC>`+dgҔ/o͜sYAIwY H9j*V}`Rhزy]+u{ d~b{,TWa|n_<:gݻn]LIauxN;.jONV㚏vc'8 ڏH\ % uNE/y)q>Gc b`c&;Cź(#U1]Y. M$;hpTe'AwIo}l,Ǝ;h.D2阷M1Rf"YkμnnUlA*D,xP1Kӊˠ ]{]ӦDm^WMEeb Ե7as <Փ1{ ~#b*ՔΌiQEl9=FOP}޹YP*H tp~H8 SG$Ȳ{c`@.9}UGI.m6?&=XG9.Uٺpx(2:ޏ@M-( ;*=c6!*|xce^Sh45Fndq$u6ʹ YoT8rli>_m5[6ұ .<LS7w|^ߐU䴸>m 9>sR]\7}ԞxRTSl?(mcrnx4RH /+U 'jג0}3w6AjXb֛p̜JxajJ O^na)14st8G>"wC:mdڒ(Ƌ-"dTS6|z* #vb}]뷌HėУNZz@j^a:(ׅLsOw7T `/ۺ_<{LuAUQ 6Vׅk9M>MԜYK6v1E#h ] Yc]1|P-6$,I77}cKU w/h{K\܉GlU- waQn?h6H>"IB8c*E?]pFɹݹT:74VySlvԧ ޷XE w]\b3ϋWXul(**O}DyI]X8&-9wmb%AEt}8ϰoP~ϒ:!**oBYX̛jGGhܙ75D! D,/v-&PpU=c)Y|{K[w.E?tkÀΨ_|BKT:of V4>1h{#ޕVyoLy loLvd)pSo9Q&c61d 3]ߴ_G'9L!ax!fȳV#} u2gGqI=D~PQQ/o.?c gnG H]^Xw}61_|jw_滿;}+6=QqcZzbU@̙2@#zz|jLѡLڏݛwr9!櫤㺒^0n%Ъ3,ZXz8h5-&ZSc_pwӷ [ F2G{Byqb~O,y6GOn4ϋt~ƒmp{u+/ C~%/Dh5r2Z7f3n Ggv2>OoT'^"ZS[:N 7͏ݬ7cuˎ/r& k.F'%td12W;h=W)_m`ŏUvjXk leN)Kzޗ慦$:(稪ajTឤU㨖C%27/W)o-CdR{fWmWlר20=H]'= rzȸcvk ~!ٌU rq>Fw#1&WK= }8ͯɥ:AuZJXS$~I+[ 4sBWs6]j*#W%pp^n TcNTi=PazŠEQw$ZnpH60 v+jqxej)|S:Q{=pxnYM%qtd9Yu2g쌐ppD0meۺ8 (AbW6ĒdÖG$iOd^dg=C/qx.n0Rp٦4u:zϰY*mٗW sh=?'\Mj2/=]? Mw6 թXH~_e29I']0qG8#YIdMy<{s&zǬk*ҙy!Ы Cd4S }McCr43+'qLN&]{7I'Y  =~rٗkXipw;`fHAs݀mtclH5`r׭ $t*bf2Oc֠a ޿pDc ="}*\w4(S ٦39bz1 @%}bە-ߠ9E`h >#D}帰g_yq݇w>l'p,_eݤD|?TO|*0]z*AI =k8 :N4xeŀ~݂,8q;nFsy1`4Fq/':c8W>;ד\ICBjs9 ˂ "|4ݘߺU?!^J4 ;N~#Η "B: 9]ü˅ňݯ3{?kLNu핶:h ˭c^  7϶[;b];@wm=Icir90;n΁?Se@QDp _VZZٱ*ϞoȚZ6y W@rFdZFfI(G|cXH/ {pl2I&VO}*rQKܦ_EV`En0~\bc̐HC1WLڑ2ndl‰7}W\/嗾Yw|Q ]yظ#~N?} blҒ~hn'ax]P-D>t*vNi_ZI-|ur q Wnb]8=<^I "rW RityLlS> 6BIJH;SIOq!՛y0m[SKJ{ƾyZgix<3zpq|Y}Sx x_OI8.[p[Ȭg}Xl5d?W}9CU<<2)bn/41K/61r:c&t@e-HE=uM}Y+9sjk3zkY[im9nhs(/Qǁ`sR8m]ԣ>!JͫɨJ&a:Rꯄj'l =q*!Lp̱:~wVs>͒w ~!Ϋ4J]͈6Z 锫;p'vr59e$F[1|WeG3|Ֆ]m"Yg< ؠ.r8~ /_ *&70dn-?wD )9Vj)`X% *pdw%\Ig#a>PL2*;.-4Vb(ıaJ4ƺϦnZlB=fBqo^o nS%H]tj--]Yf8ph:T[Lf7l*xetYͪ9̔a*2Ċ0fp8K?~0 f*dܩeFkMX o(Y7Xܦ?UD`s^YKj/rX}t ݂y dzW颭OquFWY|)Z4ؗBw>fHVpօ-B֯\%^ۋr'8'_gTHR/);> Ib R0g@Iް-gX>2Y'>Yr~?aOj0 \ô&/-m[wLKd4Z4-{yR5n.NZS9F'dG҆1FYEJw;r:8n1M{щAnwNQ(?q) 7˺&^ּ=e3> PFȰ(c6} -}EzTXw-hNub-BDn^)<ijN,ف,(&zj+½_O(;+ۊH0MܡЂ\f i`|.i/ي [gQ#+aprdtO*2ĭCXL(# Kz%Lt8ɩPC.3O BE^nhӼ&c & DmEi &.ب՗'xQ-hO0n՗yB`稡Xღ^ IBfw燎-՚ʣ'h@C~4{!2m;|}[zrc&݆ҏ#'+_2~W,~G =n$w-:[/ l=쏩a oBɅ?e0? hLx`Xd}O E@Mر'ŗIEmfx> qpD(2Loڢ0W5 R 3z޴-3&$%7e DʁWܣ9o9ӑ"zB=qC7VoG(M:.`oxm q|r7kWddRi-uJP'Je^f[e7Rqr-w)#NN;F @W "O=rӖF;c1-H촙Pn.Mu)\j J:iX,&ݵ1ج5P4T\kw~hn 9+pfkVRl&q*+ڂ|lB.K? MLMN$;ARgKe>n+;h,=3ƼV) =\?epoMDž6Qk(S &j= S3K*h18=x ZI#M>zU>ԛC)K+9<V{̛*POnh;t?9bcFQ00q1zalqP=W%vn* 丼pSD!(HH^,a:##͝V]7bTqgwA^ TS$LԄ5t1ߥʝc LQt >[.U88y2ѽyCgrVhV*mK[0Go\P>)Ţ=#!ymċ?bФUkND 0,!ӄ:_V9Y<$k9}E ]sZkz0"_00NR~UVj[h?ʺc+3jޞ1{|ٔ"M>WK=ii=Cub^>0[b Q2GCІ>ѵOlOfhec^Gl;LG\Z;@^/? aQ ]w֝I*)1g.K-qgrYJcIy94Gj%tg2֤Vvɵďç: _p!! \Y͸`㥁tȥ?Ǩ&X_Ymh,(e2s{*{fHB-h QaYQ8}-Hhkgŏ^ b@e-tw[GFSz [LJpMPQXtPKr [ EmZ7Dq.zI1G֬2%gBjfPD:Wi=4AHj 5Dp<:jDj9CX_)k!զ [XD.鄱:@֮uml8p d&*9ՂlVl*W{v+k'6Uxo36\CC]p~aw 8(FړdX$Ce-WœTضlhz;Ȩ7]X5z(?|i'Ni7;j+Y"]&aX :ϱDu$HvږBB6|xz¤΃R]fzGyZ?!EGQ'lW~#BJ;͓R}ї.leϗ _ u<S8C)a(| OvgMғ@Atpv60Mndr/X h;Qш#岗ҳ!w!ca$ۇK'[mxV TF\-zhccf"_3j(oFqw`]_-([Rс_ǛW(JS Vk\.ҕ{x\$cR9\rV v.!Ge2$3M;p˧dl6n!?,R]L>P% 2)sʑLuQ0qϔ|UG/ge:%BCuM͒Lq84vLz]0jI凵Kj^ 50TAȆ~^+Xp/墆KfP gXwAMSSٰq{&#8d^%D~ƃ }ߋf@x%3&LI3Aoߍ4ˍvQQtG) @nLuxzgJ/HQ4׭خ| }.a7Xz&5a3j}7~9lѠB_ES}48~1hMRWQb[M@qR;2ho:žl~2n~w!eeo|[(|F~$}*R5DJJ2)do3pji (ǥy\E3fhw#uILP#!,=naD〜E_ˌLymI/hF<>+x?O[~|l4HW[|`._1@ 7dìV>á.5~_c6ɭ`_qDM=ǧSTIVKLѥ:v'?S= Űb|l ؝ʴA񵋰Z{-Z=^1 |.sWdM-¶bF,1Šſt>wy.#HWRZ=Uv$Z;cHA'V΃TRgbH6#)ԜsX(e~nҤAU>s/=-rKr9ܭ:q1^=J$W2 =K???| 76`v< W+[gD*~\9U˂,byRl4țt,᙮C4XtuW\sKƣl8<@Eٶ+@g=EF3u` шT'ܦI5p(ƥcAOV.V5='cLq2(;tkkPKEގ=}^/ٻ֠n!!ː%@nԹ`MjK{|^'y&ėֽ!sӝ%,HhVP.eeOgs|y?ƾZKI5mX[0yxjɑkX*@98bhs%>)\e/ <+Y jlܹ| 2>s0Œ Wz=tN}a3Q3 \IP{UFr Okq:̙:ZɏQG[XJ5y%ZTMCE 2C~I^Z VDwa?l,G;$f*s+_>C7B"ccpE8=ۿkfXH5du[}ypNxm&yU>D$ĜH*pbV&QK\:\R"#/ 1xj Ȅ{{G9ko=YtoK[`[ w3b")1 ||HL2 ez*U^ЌȲaL%z-t"x~@h ?idQUrN(\KwD-h0E_wh O~/ILE0t> QC.{eC3bhfDjϊ(MG]<#وji(hh)3/ %SٲEmw͵Y _rA/C_KdF)яpΒfjAwba6(鐬#ozB T؊i3DLД}{;3Oc =)6 :Fr M-d"̒ rу̵uhn.Crvu \3P#{MÆvHY-Ϋ2m-mțMmPz-GeZ!lQvIیxɠ((/ ˻*ȱ%AM'ՉEۅih=8[GOuTir{d4V]нhLcu?M8MO'ɧRb9RJDiyOID ~㸤{E1ُY:.s|b#P 3x*>YVHRgx=:_;/ K>/GëG3JWw]<]o]KhitNki䁿WY-s**34\ { N7jG/h^e8Q=C&n֞&%J .aGx63S3جsɤwLY3C&\zϧ[O&i2xauOp!yS}m*G\n h"-׾0CrRHl-//!2,$#>UzkC~IlF[VCEf{=S\Ȝ |0(KU!1Gu> q &K⿋x%=r-c,1*NZ9UL>Nr!bjPbgКE:㏅mBv xҠXT`؈xَ !7ك0ؼ(lTo5R?xޅE|Vo&wZ [oUlrwbbMˣ-/gkI|s6|UvFD{b")ga%ܧxnjgbȯl8dN& j0a׹N/}77xZ8\yپ(q$&Zg?#j.pn]fN/ KQc+!~?l~?ɚWӋ8}YŷNQ,[ =6`ˣv uM$:;IśARGet5Ȭ!ހhH, =LlޱdE YhNn`֋e T{cC> Ӱl|xWY͝/k1'.|2j]>)gE#*رO\J¼EB݄a&Z !T'"4ii٬w2*" =0"x򈴂#" O Uf%RZ-'i/bح@%| ?lݶPʏ/m~lHJՖߊdWy\q9K ΃BC u>O&VΎIuvUeGW1|XY[WÅ~+Sآ,}33Ņ=:;`"f C~ *4^Vc —&*XHy+%|9 oFh-s|HY49JR!X׍u/QE9=k<|hTy aUSXu=-\K>^Ƨ8)BA훣ݞīc"ȫ6;qP v 7]# HT=;&"|{LXo#gfNȠBjQ{6!m`w؜uM!iɈRj 7LvZc&"a\>Up" ? (o)wN+]kTF_Vml~1]OJh5j8=(V>>S0qxRa:(|t!ca~HP &28ɭp0[Va)\C*wgkYM/V,9-B]5'Q~\J_t7WTz{%Θ(q<%P&i'`q4/j\qb8c؛5A<wZɱkR6݈Np)^hs~bd՛#/:ڸM9ksFDQ+ttc EKs[S~ްntˆ6+t ~c"da~~?bQߪ v위oL*1+7tbEzZ$d#J f;J]&:VDT'y!<ʧq>\"Jm=H)4!PH6H@}s*-i#0'SnNV*]jVc$(Bpڐ͆VtY R.nR*S; ;wyư$'[TLp-Ob72}}Դ $oz7mNѶ3=!iFXd^iL@wE| W^<+ؗųd\OVZHlyVG$Tz7sp‘0/:7vxM /DI7z8Y2CDATC %v{cq{on 邰.4yVbь,-9a! VMpcvۡY~~q ϻdza@Gh -k9 W*_IA CJF쳷p WMd!)&ߠ*|@%VPGY{GFErAK.]%ە!dG ,a39 `ύ#v(pgY, ٸGW oN:$6u.a K<iFyF+¤Sec4N^ 4}A9*kW=1ȧ4KNฬ6o9Ȗf{{$16Gpf_R=lFtPhZTf +1BS1*7­*`4V".ʔ޾Y1d[L+]„#n*]`.}e?MB.BHȺ@IZ+O%.FT R4kDѹQ}^(OgXBFnTg{L2OaqvXoW3 ?4jأk-"ϤYPq}汘K$ Dx+Wú:d5qf01puu10KʶhǂRsL'gPk-~1)/UKTI*`EDM1Za~(Źpn%{͖cg,Cs@9<r2#$*>Eߡ'ϒ endstream endobj 2867 0 obj << /Length1 1651 /Length2 10035 /Length3 0 /Length 11108 /Filter /FlateDecode >> stream xڍT- q54@-C܃`xdfkzkuN>EM,j` rwe5dll,llW[_fdj- _`M`s9@n~ ?? ;s S;8z9C,\_@gF0;C@EeG3-@ v/ :A+WWG~VV [z& v;(vƂL аiWwp9/[% x.Pvg௳YbG2dX@le)WOW&w %؂L_U^=3g wi^NY\l> 3ؽXY{{wn'7_!/&l`W/;{Yr6txi!Wg7Ͽ@9` #b[_. g{E^^qbz⢌vOL`fbӨ Oj_?%\J/,?R&-H7d+En/2 sh7ʺ^AE@N6?)'\jfdk5[=Xmybc|ټ./~Wsq@ /䗛~A\@=P2%ңrsXE@<VUo`UF|/7<vX~wj/__j Xm**Av ˿K/e l/`׉9;< ú`3%3PΟDߦ9цnw% U9 E{6K[ltް}͈ oa;%tƾ'ӣgaonUmFdb Mkm+TW0]]bu ݲT.W"SI$RwC\ëLА #4G죷܄&3y~I :S uaJݙ+XY5sH\ګ6/̭|>/< "<x Mel߰>\b=S7F_S4I2.Tf{rtr>lEHotPn͘dq@0)pNOp?v`Uj4AZ{ œ*ruJrߕh8Ib,̕w7:s ?-#l ⷼ;;\%M}$bN#);W@̹~7US)Z;q3,}>w#<#As_L2öϟDG1W f烿x<0=ɮ.N,f,#GmϹ)MM.W0%hW_.4D6#q|瘞stjt{esw\Azλ˕tPqfkh7bG 6wq"A(,0 7}fqٯJ(#-+[ԯœGeQ^VXSErOR'zkKX~j)2f`4\] ~Wh\şm e6-9?[=iuO]8UpoV`$XȪ 3^n0:6>!U|9YZC(5n2l `t [ c_̝m%T7UgZ\'v&JN ;?~ |qH6-H. jGΡfOكm_dMw&ν{W;ё}%i?̵kFO?0L8x XDL@iƨMyExW1Ai54h(덹ǔZ GSaBRh(sqCQ+kǓ.,l"4'dy% c.X O~M)nH+P)h*#N(]A8k:K璝oSH8jSgfQu =E)T穛 2X:Mb%|L0{ٯVÍLP,=f{tVҺf&adcGKXAlu{W7[ dE;ڔ~jL+i"Eͤ$5jj`c&~TNzo:ma֥l pkeo ?;V~ۓ}̀aN$E6!sT;B. *T ;1n8˞:%ffq;:(dӬ2ŴE]فt;ǩUwnPW׿l;{q5BYaZY$K20CCq < (=L- _^җp:tܙ6S>q%wۡf̫z3ǍQʣ>M)^wJ u/~GA&X|ˍi&f=LgQ+W_dr 6a2dßk=3b 8z*f'< R(oմ/ؼ )JXCy52Ҵ9 'W i6pRt"7]ZP/* ~ŕa%ا-/K~?Xr̃ wTXlT4sچ\;\g_J._ϟG#>zts . $r!891, <~ $>4GLvt֔8VڹD~+kwh^Р eۘo $?ygpl\X4 ~3?s0V*Ri,Ws A2<+q#1>:}vjoYXX(Wg79M\Ijrx{؏xC%HTՓr-xv\S)[ hC BhZ<ؿcskai翭V.}҂6KC̀3֟)CPmƲ@AwJbTqfѯq FmomnX !hxXZr{.!@w(Y2j^b>iBеgm3΀sn(MIU\E0wc-T"QM~l!&0ko G sA3=SLJUQgoyDi"cXqo R:i tֱ&\a ̉~6䭀TqW #PkAhFSĚA5 :XH{Z/ Svԥb= 0 ҄;!mւbq0aRw:HÙt>Ky>!kh~]=Z><1R\#[dk5P$ק`ew&,N ۜ2ﺡ]DT%,Oè8ѰCAl~e[Qԏ5gd<9:g1)mYa4v|{ HWGݦLZ]C3UVrID,sd'S5]Bޝ5ߴF$Z3Oև[JԴ փqt3s`p#u]eD˚:Whm}oo {&bռԌ휷bf YY^Mt32ecޓ~x2gז8sW]_gi/vwWѓ/\a]@!+}1=WմQ-i> 5+"Uq>ؠB6]&™ɬ TNfe'*$8}lf5_]QוWO:?karгZ Gn`ǟ6{ ;()A skN娅ڡW2JXBf ݸȟK6n `<=60@p3ԧyBh|5Zt"WdVP^SI4YK6r*.9CQ;M]lY4W!д]ݞ%sR i"ʊ#E^1 F"|vއ'pBmei d7.CP-2 JE[Vb*Ď׉3T#acQOiWںMipD1g>#_2Ԗ[qƳCf-%f 1(݌泠iD3%&>'1F!/2fړoWHٻ?IYҿҙVLzT{YDMjbs\u?cQ74VO7iU ;{d*AA{rnQ6uV0{Ngo~jP Ғە/A:EH㠐Q/ᐋ0%IuAѼ׉g*xKhypQ사[bty%i! 3aĭНe5O;j<`YOfě$ev2 @];_TJQ3 K7L<{DƸd3*%icp F]_!W6Džiq'kj:x),~g<[|_*pY!)]@MKb*ڇx*-H*q=oqk Rñz>+Iͷw)M&~""fPxRo)r<-ܝO`Y(AJKsI*15rTIkʲ !kl(Y+S |iVRonЛljBNIoko<4]PwNLKWC>6YQW nџ+ fϩC9 DN>Z@}Qs.}{Hʳk^K 7,Dܠ} `(PZ#_a[3CC2u4j.~EczA6D&7rg>|Oh,é, IKYA2 sB&?M,jL`d%ẖÆI?Inzc WOBr *D,΅džW jeweo v v[؜\Px7yqEd&fkZ-Y*" Eu >&OM:VZU+?8sJAOAn=u1m5}}fzR܁'%L`qӰy:d`UOQE֠@X7V L<M}Ň7gkp?~=Ҭ4!Oefi*YݒGMv^6!`Bw\2N2M79xفˀ}ۭR…Z7d(Q^QZi;c.Tojf4SwQL17ih&.'Avbnv UƄY_AovJ5@:;PrmCaX~{+wvSn"w6wis% YhaK0xL0N=愒Puc53]|eT8N}ӯJl $ 8Z(j/1~YQ38>+=|1Ўuh9Ȍ.W1ZXS1T_l*[sBayZY?$DTwcgUD&%`_1kK| L G 0r3żV zmϣG:j]mhC[4# +d4z@(S/r3Uwͦ/ԏXuoDv::?}PG:{ai" ?Ḵ;s>/_|+g*;>,^^, 6ȧڒ]"**bx-' / i!|OʺpG=7{ #tX 1_\nrs"C.unW0+rႁ[%S2b3 *6؊?Ɏ(/SJxRf*V,5{8ͤ4};Uea'a NcU]3n}.4neўaY[B_j%S|Co`uM.H0>:3saep}C_lQ\4{gI5~x3 uJ&5>$gSo{jAܝ-Q\?Z;#0"uFxJfD6i!fz^lD0}.u7U*jإaߜ8hnLڏF? +(#(gBT$F,Z@͂v!t=CK6O0cϗ@2M}I<ўrJ ٟsPY:@;/7Ug B2i ^oRgs70"s%m<7R^U}i1_YlPCh4]gQG_<Ǐ`"L4@?CZHHn"`C$c{ج~+犽<g+ppu}d5$s[66?դFguMt',qgp7FH<7aA露/`K CNknp1ȕ;Ico>(iǖuzױ{x|7 R4K˙jP+Ay_XwXc!GA[&p*ao(Fː[_p4]ؑJ]C Ҝ[ pḛkr)8x*lzGZBtfkz%KӰm!Xd{V Џъ6c+IXsU珧|ma$uε|6&?:tTc;s2p'i+vBV WFj|;O)铼1^nv"&p7Fbů9lQR0J i\"\{lBDUj-wqʎ/HvN)B{ s6A +Y;2HN M=rC=o^4e̷TpfwT߉ѩB>JWlVFV|DN*6QIie!9SޫoS f VWGfS5o{Bciꪠ$[(ZƖ :ixMcEV@8.`/᪎ }􍼘t_&`.5W)9+μFdY*H%oTjvoDM)Ql{,C9fBk-IU8\ײX2{7cF6D.] Qٗ%3ل(=Bc tf;18PEms~hPZHE{_6g [h#W^+,V+; kՑpnWIʨ7>gPppZ]Ŧ|W3:$Hsن k: Əv@%YBA%d.J/T` H?Tq#s$MnÔlL2#y(Wm ` Y\uΕ-M`XvO %2FQON'IqmW+B!{>! –5R${^8)job==ݚyje-Ae1 Fq95"Z5oOB> =#UJ@8 n%AnΕر(Ӵ1EvRPt7;P o/>+kVsƙG":JGG!7=-pJ;% , ^BԤgE=J^ ɧ0uM?<@!;Ec}]Z{z9*< FS)ѦOkꞭ~]$<^'2A$)ťo3F3$PH ?;1|2~XE(f2X +v 'ChIVGe~㜉 dy ˾K@`7ڥv_:|;= QX5s1_D<Ѳ}/t=MK&M-)^cc=q|d@!Bӆf+;|38 =A- NۄVhHa3AC ]ATv..u3m /1TJX|DGS){VeJo\ &4vF{% J''3}44L[ğ]wMfFB E<;pZI d"7Vڮ' UV,:t ?p1"}XTr4~MT}@Ɩ endstream endobj 2869 0 obj << /Length1 2628 /Length2 18854 /Length3 0 /Length 20375 /Filter /FlateDecode >> stream xڌP -0;ap'Hkpww']}ޚ*f֧{uLQAd:102DTUYl̬HNʑ(ԁ [?,DN`Pd vX8yYx<59 ],Lri-Bd`afߟjc a-@hhlh P['5/+##LjdP:\&J)jn  -`g["% PX?`ad7?dcghnak0$dܜ&Z;.ֆF`$ ɑ n(h?1 1L-2Ll-읁Rb؀EHef@'3337+h3@/1oO;\Bt4tޞ*!L,F@3 [b0,c0.xL@>b&i%ibtRDd`08ظ<hh?9NI?Fyria'hMwi- TWUӠӎ>HĬm#!n}3ix=gɨ<4nv/B5jpZaͦqwO< {Dda4ԓYӋC~aSE]0` M Ɗ/^Og6Jf&u-ͦ EK| %"q"S7>ػo{}KH[s8~-GHofp"ؙ!?̲9kj$~`mvJ\ M2J m4J|]| ɤ? =@+״^?tr""/_Exp%XbuNw3&IYi>tD?-(->&na `@N2ALLHVF7;O5~2'ZBOY(!#!;7^/1v3)?+CɖN%Dz$ !MHF٥_&U@Ge;V,ܜ1A+ rQnPzh{c5o\vQXyc E]#9 5gQl0kɋʞ 0[|xhu|sϛVWd4s+V~&ܛW@THI4ǻq>\E,!ա4c\ |6=UTLE$J[eb/jmGHc OX/y/\|U_A.Jwy]BcsD~Y_G)C %/B)t{k{}Р+L~0薸Kd$/H>:9C|3Zkg# !rLm;7KCvc ]YcjPܾqkB5PqxO$2a|#a/ mJ虤I+SCrj3ҞGLkBP=SC)C8*Q~oJnJN#MzT@+n!Q`/' 9 7!闛82f3'90O̐m,94x?iXZlqq?ogBVdw]ƲU@Mok UG:*"Yhޘ<}yw9$7⫨6Xwބ t,MO> wm$9>64,9mm_Gd$M8c 7OcpY,dB8MNHz6p(&oBU:QހusdhK' .ι !Z8,cR:tJaFD-5 b ^AjՀ&z6gG;eL rU+4K3oLy~3O@%Qw_ z/yŎ:mq뚮J>Ʃ>&tc76dP|=L;KS$iPӆb>?88~M0oI-x< 8b {;cRB kA1;n!\["ȎO . MzP1Ps׶kb딷IS/iieMF<!Wm`"Һ+&ਧ\:ҤuG/a)YeVoj`/,;חj5ErIa4wɉ]iܵ',]p&eYpjҌ FP77LLg:ԶU7+)CBf\Oe\Cp>A, 1gWuzmKM~i S.~?MG_x”u {G) UIU6=ia>}"?H`Ia%Kې񹙨cOmOtC`fN QnsF磷!8QlT }P? jؕɣVOm"5(;p4&>"~ 2Q  4 X)GBBK.?G~8e#/a>Ơz#Kb4E_a`Kō34P\VNG(>H+ . h;0}ȇP`O\8]zuO=f:!\(n2 'nm ul^=8K.7@nth17D&It%$. ˸ M3Ϳ1dWOO ]V+~g)/L>}+KYq^ʂVCr7.7e iL!8V?z$FՓVY( ŀn|r,s|Ym*{xCy]AC?LV&I].5PG@^1SecE WǒO1o_Rg&ll|S*dzu?zuWV5]tw -ݯlG+G&O ^pއsvuA"h'-Uyf&gC͘e̼}קsgfC\/me2+CVi(Ie^yׄtZo!r0ʵYy-OæG`Gj;9<-A,{jo˜?&N8|j)8/3gPy)yOt!RϿF]b&[[MNWfkmkCAp]c{l!.uoO;}t-:կ@/ϙnw<spCqlg_H>Leנe9B4v|f˥8F@1 =rf 'Tq%>rcfcE!H_f aG&t*(^6ڎژBfHsnp)ג #rޒGxCB4Ʊ+k\2oȸE"!W@$u.H2 *BZo[/ġ6~ţ 61ʠ}KHھo#n#XPKNrS+GVqRmq\e"*XX*=a;kCRrtm|P Iq8Or ^J59 )x,A&1y~RHEA}W3\7m+,Yа5 WtN1Rn/sI77Vw 3kLfB[?yZ; D*M6ԅjN\00 g2+@:de.|pFf'k=%@U4,B&D$DӠp@Z_bļ`obQmom_iFr2IF 4=IP# خvBg%TEh{*s 9u^e]9Umu:@x܊B*ynW4` x:q^p!_E>qn|ȑ56ȷUc_ȍ7,{ lu'F@8' u/+T[ҼƖlHul| C.>5B<3Ar-7޲{>y˙#tw)f9b1ee(D\ @W#{njF0guƵbHl[-PoG*~5Qxcsp*Uc \!3 ]ixRQ,M¡Z}5; 1Ԓom19I[Xlsa=VPv@cV['BhԸˍ5S~/>Y*o2HӭR ?587Bm8)_ApfR6{_ڥ]j$|Z cuo8' gF lf4c{4=.u0YmY8˘јzrWS@0x3Z%Ѝ?/qŵ%MZ24r1YU>L6[v/N ϐ,cUAL$9IbUm'%w5ˈl~{u兟'OM(^RzUv/ /t(mjCTni50N[n2` X2X=v&8IjqޗnXCH:(r !Yz|tCՔ}!sj#aRQNEZ3 3N)dhRMw/B^c)o%oML"p(lm*+I)pb{ו4WiQd' 1HCzZ;\mfU5PS괾\9pc fDg"Kө͐{W[5%n+"^jh /wH%v ϱ+>ujc"/2 '7 =FzxZUDAgNثHN=DiCe!iv0MaGA'x7yX Dt}x/Bui%zY}4v#)DuXB͓04 D*CKaJ2J_q<g5>!F5Oe/?Զ!J|W2]Iɛ,XF;}Fiҵ,T`rjn;?Wr+rry$v3Kw9"%PA{FcUcjxd%ݩԺjCv5Jә#|Je!/?#"aLE𞋎 F܂ 4TĊE䶉(EL9~f1J.ԇKuOyj WiӃ$5Bi؀:&˼V1@Ab5[`:Zx4Ǻ˽aY1Q%LZs*HXhWj^F, 2 kZtJvZѤb~pN ~Bb}iq<;&s^H7ȣj?52Ҝ') ݟdm;[lJ' d2,1+- 9,)Φz1}6k>Dշe z \#y7M;Ԗ~ɇhʈ2"tV[;ƦGu_#E;?+-L..ʹ5w"*i)_S8p`#=`x"irJbic{K􉇌Gi׼%0ŭi9NMhq&tH<~OgTiщ+wQh )[7K04B$# ׉4‹3D]A^ =vCpNn)#~y 5F Lb[}leףCKBaqG^%$=Mѐ QQȫIQǴKإWtgh+6^nm _$x<\w ڢƜ ]g:T[&_khKc\Go'zw x.F漢umުq 2ƍWq$bI3ɷrV.&0";0hg;3lݭT\\ c!O:=Bҏ<7rY+mr Yգ˖qbqfc=k1"գ+"9u[d=D:g!`wBu'S!cOB[xԒiK"YRW_-!F॓7bwl0!c <ڀ0m\=l]va%*ͽyMyv\z,ziyY! fi% Yz -uF~}M0劎03jcǦj"#O && LdțDB~hr{Rs"rs% fqh%d+oq̀UI2ElL,#kx@dp; х`CymDf@^(y1̘fyPӷ,CtQ#au[3$PY4Ty^٤,5n“F% +Z~:fqmL}h)\ ܤ x6,P6'0-|<P=%4t9H:J2c%צ#^^LHW+Y_˺a #)'5Hxaqétt6dV~ȫ^D4rJLؾW үp颣b?̢y?=-lyA*wm(|Fk&{G1C[Z0m~jd6; u)?R@!#Ci`pOe;n0앩FI&׎ۃ"bs;x_n]4iYB-="4bG+NJH3 H[N=jv zrl4kEznK@wxP0@.5$*]gWÜ[6dn%{}1&6c&F%}-usƵ+*D!A6.~p>)ו~q$]8QPCB`֭M|cҋm >+žJE OmTNU.3D̹>Xp.UuAy &Vv2z^RUq!C'rt9U T&h4XƍV1\M{WUKי <"_XE*f(i|v*(9r:>`KVԦbʈ%}t}9^Gs:!",wUu҉Q4tHW( wwf/ep0NUD _ 'Ϸ;gbyHĪN? \^J}~zúNH":CɼC?6K]`KFz Ϫ2yX a$)">Pu/!ĿUs*c6sODsu8 *JpXR$ )& oyt6Υ}댔*OSj"$w8ý^gIwZ= ;61bS3] KonEe*MVug67|!0Q U]yD^jK]l͡8klAA3H$h[=3_&DRڻw2$I} 1ߧɒњ<8ҁl(F3ӲZ!S[-ͳgkCT.Im)yW?"FdőTZ.k'f^ \)Sޥh'eLmmEzmjW2G!\ԓSuY:sD<bI)'ڥХ]+VA㛒E/*J厼1pk1jX oV*%RY(w(V))K:R'4ZbfI{SUIo̬B5=mٛ5+b8/{-#Bas/GF}2iA& #޼3ACJdQ6{1V2VE؊3zBYA ~:L)g°*Q}+E}}_TԽOR^*Ν{ qPRktB~XFchQ y- fAHDͰx`N,,'Hc|W} gS.s.=!yy}sDwB֨7ng6te.Wa`P[Z:0dW c"ԭm^;v1TGm=,H[  4 Jy KV2lUWb;# -ܾ d@ +Ǘ,8x6m$~:BٚxwK R6lԑGԂIбI`P뉐n_jB_+3u~d\|x= ˔Ҳs?X w-rD𮅨lԟ aVJG_o?&[k221܍Sj<AǝzۧyO,빹Z#3T&2.5g&DpMoF yn}02^>.H`h^a]nB/'e.*rf~FRgڅKGEͧ֎+0}6VwiiY˄z~mZEh D %b޻t;5"K/Hz')@TiNjG[b?mN"ɲ|Ju\O~Yꦇ .*|h^@D~""ᷟم]RQc,gZ~NЪN&Q|,b%U>ak_n`Eٙ"LYZ5lq75Ĵq6I:DsV&/[k/7̰o8PއS[Ê}7)h>% q?".@cmy%obV| d V/Zm|bT!="cBR& ICma 'Ȓ29LG뤲HR|:Ebڗ9bvi_mqwc,8$]ׄ\~| #FKߜе&\Nݧ@d.ܵRǤd~O+T3j\ۿq$(W8/v'n(G+m˦=4U.F˗VX GJ,ڎgM[>mZ೒IYؙzQ7ٰs~qhI83Rɣ %a ;#X!!g׵9ʹ-4ga*H V1YA:.L&T w,{2RQ2d W^uA|'T9]I_X"MYY< 0A`>3pltvHL?9oS2$$aH:n90aDJ׏kg5c@g(22ٌ(oScXM{.kmoR!X#%EbT=7 ]ݚta +t*'֍Tf(Ty?B#)1 g3%VY\= «@0*yM݁Fπu=N 7m_f>w/J!+!\KZ=dګAk%. iVXd7.kVxqes\[ud7+ZsѯP ?B+ h9r#0zevpY6IDaSHa>-wpQ}S*$ygOvX؍ x5T hxӑ5 SLƼ};iʓSv:ן4ϼ]PWS>Pc1DxЧih4ܑTx~E:t3zl KE /$è#Kɶ sIu\ǔݼU/cmyb#t[bd7%kr]d: K==m4O{8_Fm(̸qi }_ d V캭3|]b()g!SD!9ZZDn2{׀ 2h\*%,`}z.c.*5ɧ Fk1h;T\`,rhU@'tZ:{x܎sا p[Q-?JQBXK?G)}n0; Fhu2.NA%gNTJA"߷]|D|Qx<}ZoϞGx n}<WWS=+ra&z QQ]qT4hV7x9y(Gf3uM UԜ0 =PLaLFzľWE!F5,cHS)=W'y+*}@wgk0FGO0/v ~ |>w_ ~I!2%WdzC4PwoHsS-WTO.*kavV 3V;y( e~PαKhU&;;/*| +VSl1mC`JX Y$fլ^Ov֗\ـHo͟:gnm)DL`i4 @;X}y3a>]kAzr'hϬDkxď4M( [L蕑Dz_-?`Um;5 nAboRZvl׫fGxR܏YtݴC 5GuG)~yEkh:kқ 0g|{+ B갠oCX2n0S5R;cm=FUqQ s!;&,_Ղ@$2&lҢjP998l%s@JP= ԮѲ %gm2փ*SW#Q,2hсG͜p#)c4`.bh "?x6a/`#L=$A%w^ ҝ"jUxrـe׆N+3Iavc./Vdà}2,ѕo:k:-tR&;kAu)ght@h59xjh[C瞧ŹjhP5'Tq^O$w{D"lU {z~ۜYtV*#-;mkQ\Ơm5"kæSkg+ÌAlU)۞4zJzߨڇ㷴Pls4烂YjjYaV{ϤrR mX-T_>OXr,|s|8#T:nО0̳A^̔~dĨ^Qq"x,zy9> z#!40,LAldY#™eg,ж]Mη,:< )iJ!ETE3aK`}PA7sѓv( o-챋@!#ɡ<.4ɸ'a|T;LI޳c֑1DI^)?ٽg9'WTSpd*-Ծߌ-W_tFIZGu6=&3u;% ՒTUVL~*d5fӰ:x3hUz58i`l&^I~%(:,Gy0U(=Ē.jOR?Y+ʫ@]$c>u=M5:skc\b^Ea]'ԟeodo,`}B^UIᢄ<*Dwyǻ `K4vFfQ:Fxz?r8WLrKg)%tij4aAm[F/?RŷӢC$/R4B@[]SQj׆p\7.QUF}-2kqpgM-yT3i>k2p+G0dnrh6YXϟOޒ?i|/:AN߭ODս j#$^|bC5/ ϫ$=_C3Qyyo{'T p` +++&ӳn[G L &1.. @dG_^frz[oMgBEk`mwB td NkmE"[kƼ[O5ĤcQ<4)0o71 $ZgVũ  f}Ĵeg٦ZpM@σŁj)40jާVZOzx@HļEXܞ|hn8LeN%^%ᔈ;|QU1k!y L`"Ed.sTo T~O[Qj'J1TeLV`H1ʭ0baC+$aeR8`I՚:-cSt@m3JJ%XH ͇Bhlw:+ "!T FNܔ+1k^7zeйW-Y(Ԕ"&τ;Vڽ7`:Nђ ) a9͋\)N $kE8!\Ya {e4͕ E!|ﮆ>^ irFn Q$hjb'3A( ᆫfŎa;Zm`MfI]~dփ71z[րZ/Gww DAOڽez"X<|zE; 9b:w3&΁R,;j$YʢORD). X _}'"Vx[^I>)LN \ߚ/኶> pp^S*'#j!{-TZT_JI.SXnc+u H /~1S5{5o骝ĸxO,APVw"*3_{aGxNWSl@J4xInDК-3ү,e=&ÊFRQnJApy4puB`k76@V) Rcx!PZF}ó, sߔ=W0&ۄ^~'Jn@@(be5E~ qXX6} \-fBOhRN4Ձ "'<[D{|8]$pN@ÕcX9*Âa_(Yudė]s4SR`0Y!C*blM||OddW@uqQtXLK5'(Us '4{dQcPbנmQ8ADQA&jcř@ξMW*oV\8/Naf,=!,wi_.x5^[:(a */rRQqCD8c0"3ռ|B۲|®MZZ.aYc»e^]s Bl^em`3둖CC,՟hVf7QUJKͮZK@%hUFoQB?6y籛6;p0t,xTGVضm?Pv>znpGGGzaHwuߒ^{xadȃ8E7pn\@Yr*i; 6#!x26L Gl]PI!@汩wWJkFNM'({gMT HNA=8}~{$o[UM#epԡmê/9l j6=#M/Zyb߮Cp`T_1Sɮ|_D>,9o lR[/CtXhξ@M?N6 x%'> stream xڍ4?nJJQo{{G{/.׽{m2"3!B&G2JYwO>s|<_Ŧo("0h D,(A0XD 2BQ\,AKP"xM'`Ѐ q)u)0% `;4Gͥq">xa|DRt@E h@w@8: (C"^)+ǻH@BPgk/'x #ϑ]3hB\a{@`@!a4ↆ#;` пA-'g!$W28@^H=`D!=5m!'^?(u"QP[B/P@M&%Lg> tpHA?Y W8;#xO~*H,F8w/ПuBc<> ;$ns PC0Q#  i&qc vX7I50<`GV'v1HOL6Aap 7UTtԯ_"( .)>oH&K8Q[KC-+sKF?WVP?~3'[7r _.awQ .8b^`a_"@Bh 0XW*yA~# dI ؿ'; ( N@d P !O@ uh8 P& ?_(JHMMrÝ,' 8$,JhCAq'& _v.x,o= n' av@/&d{^' a4߭Kx85AP_4ቀQ|_+^kۈ:e2x3HYfoS$+rXB '`'IH#eveWqn Z 6"hJ- ?.pW~/pX)_%IyQBB$N1PDq`^!^rkLh1r: V\R%-\ŃXޠ@^[[g6*Vb+?./_x_~`z0EܼҩpX}Z3Aհw {vs24|L\8t=/$gaȬ߶dEMo?uQHT/-$<\o3>{ΐۚ%֯Ƙ~ 2/^{nZf9"yQe1UΟ!e-QdpBsGӔRBM z7;nYVHח9prumI[*$,|yOCS O {J0 4$D/eÓRbtlbíyS/iKZ]VhnKNgWA= 2=Z|=.9V$h{_3ApZ&>^.T:hy}^5ѥi5vܓRb% 딒*Wr=2; zS-˿ OM&dxrׇ>˔vekԻ,)(g۫$^S89]Ai2@ }HQNpJo$Va^h0x5eb%ճ\RiY9uBiWt4'FN'OI{bFx"c:X7X3/+RvMZm\bMe*9uK\``,FM8W]Fz=%^w[i6j\i@;K9LvRdDU]RErVU>1V m\L[?;95af|*d(A&=5D/LC 5#ILՁKMa.MobMzDnS;vo˻(u?F-B"^U>߽_W=qxGlr<-% LPܡ4*ulUzuQ''B/*bjy,cGW}Yը\$PÍoCۥ!)_ȜX3f/iI6/Lt,ê?6~Ԙ%jp4#[=56c{Al O ^A^;ϲV~9z#ɿא=j.^I&9iB(O5{1?<[zbYߒ?ƖܡjM> 8jO&e mwi'uDKZ:K_Ya d.ߔCkl:\~tWUm8ͳXj_M E eڻkd}b$cg=^rJ.hw4(<<ӓAee:vh_DBon_Q_i0*YjNxCjvziėl>ˋ]*^' ڶI+e_m z315*k狢аgdyi-mLCR\wh{n/gʨX)|)fpWԤN*[Aƴ)^q:_b[div "MgXTUQIs/X;jr(\cVy( 2lNWm3`%d"WZzȈAF\th$`@}onv##kȻnkћR#Rϩ8#}w^jݰ/+HkJz t{tqs!['hg}x9kJ+``촏.UwLwe5?H0߲ٛ=U?+돕y~AKDj#sD357>ObI.0޷ |s-u.[P2-{f?892ڞ ".G ? oS 1vjE% nSPĎ3ވ}Fȕq[Rh^vwk˜͝=l%N;I>I4sz}j<>qp+{nk [F; -ʧ>Kp:5}oAؙ|-D+9߼:;wGVrmzlT:t|Q1~:ԕN-F*x#, E}!vgr)C b3}_frr^A]7?D`!|{"H1J+f{ tVl*L}a1՗GisҖvƆUY%ܵ\> ހ/ Sx DSDSsyVYڱޏ5U_Bat6;Ǧ*UsZ6gYǏȕ]feYot"3#jK琇-lnۯs5O,ĆCJ9՞t-m U ժ \69sw`=4W7Ӎ҈iD~Zu"vERB|)> stream xڍS 8TmNZ4(/!|jȐMi(K9fΘ̜3fPHӯWZiQQҢ&-T>DBP;3u5u}羟Y24ɋl ŝhd* yӨJeT:&W;f.,##!B P!4h,*ЩT@LPddIU2$N#$ A(p!,!^AbWCRT*ɐDNdq@B,M I6 \aWB21ƒQ9AQ|XAX@%~pP? 4ȴoؚ@%C<&B A`;'B $cJ1KC5@Dy2DrD C` r&?_D󈾫(U /ДWH)sP$^`-ʠM8P77NL&pr:e83qH9N( 7`?]O_SNЀ؃c`ra`]1T&G|hܵrM)_3b+b߮~HU? 6# ɯ"v k"g#0?y~h0~(kքtLHTB tb`jO|8Q+C@!NPT'&#iFF!+FwBy"]д^)d2b%zn+ '糖4晶HgvmmZb2{4WeۥuJOWM*LZޚ]vwGb2ȓ_#`ȥr߿=hu3 `d}ZIlޖ[{ s^9z2a.hyl7حuϩ&.A.KצU,xR+9'J2kw\]pC;9n]]__-%m-9qdgf߁Rc%+v' RY9[*YHMRnyEcY3kyxfkčeYx!Y.7%%{6߭hpr}AFۓ=[n̵m&ݰtoXel .7%&C-'??0U4MQذ/˯#icEو*3:̓ |zչ"COڗ fGU:h _SJX)@.nh#3?O$; %7O<aO"{XLSlԫEizSs8dx7emGzUpMWZ3,aH\xU9:]r!i=nP_-FYHvm%ݱNqO;g7ej endstream endobj 2762 0 obj << /Type /ObjStm /N 100 /First 1018 /Length 6284 /Filter /FlateDecode >> stream x\[s7~sj+JmeYk;Q*4xB]gbHDJJNթXh/&3*J+5uAWNk*"2s; >=!4U al:JQ*%!+ T2 cz=[O &z`ux&[DCcy'4W72P[jL{X(3H۵ӜṑZ%Z(b/xi4C䞫ᘧ)R^⽤Px/)U61GlTezD96Α"*Ybc+"TYO hJ<ƧX %Řx+b5T;*:mH,騛*ob+~MԨ1ϣ&4 iRV1vR1O5 ^VZI蘀8Ż#h/וe˒2F 0^ڈ ZK񃧑2Hԥ=$͊I*Y,hZ`cS~7<+f E:kZ5)&@.<]f) 6Ԯak<4|'a' zi6͓o}RWIOdUǟ*:3ttGt듿}NW#wZgGxbQ}mUX%{ŔPE̒'' <aMKgy"Ҽ!y1o%$[ϊ4Dۮ.߷ꗪ~PՇEQtUK/ƧQ^,l@ٓ];s1{ݞL{__pɍ]1Jgm1㱷 wK#]hkEkb =9~IZAhB[ -n+q,;捌Jt), i+IT?"75cT;1 <g~[2OQ(Ry'Vi46Yz(n;}QjqoQDu(nfCN=824֍}*|۱ 6=9ޣXJ=c7Hm p1y |j-e,}Hd> Q"-.n=ϕ#qf BcC)+`H-qIbX9Fd #&k5%'c^!. #BzӎwՂk*ɡdؠ6ڍ<5)&~g| 1)Ѿ]Ůq% J >[ag&zEfDP"IB 䒐<60k"ih=+ 0NN@g& 9(GhޛRĵDxu\XES, ;s.A}4F46,;9Afnm#$&>tG7";ޫ5u0%VFHe>Sjgd01c+›ǩ9ܔnyG~hb3A`#vqvr66.vr^YD%K`)YW@1A\CHcͭb=maE1q0\6 N㭴βeRȿBbc(m9kTaimJlG-[:shc[>FR)d,̪)%O#.+%)|kᑂͶߠ.c4܊ofF*YK:Ee^:'dY \X'R. 4.q׈֙W΍(H*l $8Cz0<< > %yҖ8%tI昇1 $}8]``aAƓ ӀX|T9YᏔ"@G1`@R>Y i|(B !W̩̃ϴ~p8|7Ii-v(EOfa.9{" }@N#^4hJ5ۇgZ%[ s;(Xt$8h\W$r沊CjWH\H(i xɕ&!Ig$oWcN6DI^*+|\^3,myE%EږMh^276( 8 T?*6/Sט=*Q7ٱ[0,"Gߑ8'JG0F "*0 >(PHAb>AhO7M)N.d9`<^,+Rmp:[F)+r4RΓōdu+k y($?l] J).@Ӓ~L(p̈́H-%R~ZKRjhڢ; &Os6Djbk<;;Hi3΢OK~o56"Ot!IPvLY#oVĐ䤗)ѣr$;t$CFՈ\2 WPJd̆=E\d,E\縆EI~R$2ۇle-&2w6u`e(X$.Ùpfkf%'u^.U2ryɆ~IJ b-fc4, }Ʊ+d!|VF"HRpxW2|q7ct@5PehCB)M2@>gL+ݘH %czd2eA2ei%0ro$(s^DjYB*Y에e8_$yZ+*KWʈ\y3ɍO&]4')> d0`}\򐔄d]Wr@!%36=VI ,=c2KXe!ԉ|+I-W`(k_u]J5bF?\V&V ƿN9S50)* eV ]qywȔLfe0(d! W.KNp9/褤\'܌].!%2%w˚^ +、_H=Xޠv9F-feo&7h+]IS^&W ]ODBx\F p6J$/6I{^\be-hbE7n'vwtXZ8QKBR-\$N[E03!"&(BPX #F7YX)] u[JSd:8JfO[ {MHA EY:MVx%}i 3D|qQlLzq\@w@|G$|ɚP?tϹ8j[%Wcq%+^FI Hq %2=hOfHFD*{PFoWPx'~na")EPOU8&&')_BF5ǀ!m7Yl SqTrL$!y; ph%D1:c7)AaU!e885H[hx\r/IP/dL+lF)F\#;QB܆|~-Vlroӣ뽏鼲hqFs<>Hc~"'ՋvrzF?y~/鴭E{cD83{y}P~Q_ׯ}}XXOq}R5ן?_^zRVO\e}IU}&'Y=Ox~V/٬muZQw;o(Ѩ{Ộѻ ss 3?[2qۤ[+}IL.z|9賵t3b 0?қcq?Shm0]A3#&1#Ht7g [e3M}ZѬhl %}F=y}U!^\cRI;k9iYqN/j2gSґvƭ ^A[׀z.۔j }ldקmw979?UW{ӧSw>9Y=,\ݜEX>~x1_[&|hOgd~5=/گaTCi( uOS4fsvyr}X~6>n%]&_L./sLO''mۋiMN>o@吲4 6am6$w>gPTfWg> ʈS#?u5ʿU͠Gt֎XdpO'is2>Ʈىcqc +(lhuQO`ggSTdx;$SKEѳHlҝYHnP"괾Zk'?އg+by5ޡX9Y-?,1!TбebuRb`rK?u8ũh\i'GÏ QdjC4>iaqJ s~x[%y>a֬d_s+st) MIz<ۯdr~='#?( WD5vrHBz y0gE`wro+K-R<E3EoI*zn'ׇL4 G!1; H-_wǂ=F.Z&쥗Fcj-QܝwxM]揍\E>o._r;;U¾ݜ׫Gl߿>5)O,mXo-w+qYlh;y؟OR(dJ] t8mP,HE-;E'(]~c;.(4t<[eENYN[:v'e>'dίO/Ɵ T[DAd8Ldz5AW^}Ch\=pbu5~''rtw yrs*r1r؏@QWx7ʞ)=m\|\LdYS0k kL9xb92즄̯s{!epw𻹊Gϟ ]~rFs B'.mvLB_#{'꟯gs!"Y޸ZQR}Lh38]r3O&tg3xs" ײ\ȹgri\JZ'D嬽5s;yo_C>paaNp-.lCH'xN]:z}^{=xUIRvG2I~Qk } )ys6^pvFԏ/D7Xy7B=n8: OŊ{&'e7~g5֮6XF[_Cwk;;ЦǁP4/ endstream endobj 2875 0 obj << /Type /ObjStm /N 100 /First 990 /Length 2215 /Filter /FlateDecode >> stream xڥY]o\7}_q`"E ( 'xޭ5P4,v})ͥ-٪ G#:\&74 !,:dL ~d _&j)a~BDح\Ԑc'u!G,[b#yJ@X; 4J yJ07F!韔@2L PQ:%QT =g k!)9yk1M@1H7 rIHCAX|xtøյ?<, q . |{>//wa-۽>_/WU5[ǻ2EwUyl@]W'?.@E=>*/9jg7ɧ7jqׇ/9?ڐ! zY* bWu<<CcNȌ <k `^13F<4@ì&j0f#*- Kb#F$JZ4/f\ƙ!  a}cR(Ba-2A iŎ!-C0_{l9(4#x͘fKhhFa6-ϛٖn )J z8dY%YȎq";N4z$%PsgGDvȎYʏ u< de%C-hY%*mUjZqb;NlljaZdrfq [ck}le%COta)- ,1c %P`/flUt-T` UIJJfʃ`/X v)uJ'ZbA^ YɔeŋbC0k}bO0%,2k}bOIw27j(h{s}Rldֿ®_oOSS9E|UޮH,1,v0YdA`f3쁱YLul1S&1/z6,|QYoDxnFh[uEێ_?r?O}b[Y<ɻٞȜٓ/ pqow;o~:PxP믏>Nji/J{b8oA7U^tU|Ș6^1!]>#-#T|1C|0[>BPc>#t-+>h|p1]>|A~̇o.Ï-ˇ1|`+>p|`1]>|@t7õ|@W|Q 8RˇQ9Z=箞S4sjzNXϩs9UzNc=VϩT9Z=S4sjzNXϩs9UzNc=VϩT9Z=S4sjzNXϩs9UzNc=VϩT9Z=S4sjzNXϩs9UzNc=VϩT9Z=g=  endstream endobj 2884 0 obj << /Type /ObjStm /N 100 /First 984 /Length 1544 /Filter /FlateDecode >> stream x}MG:E@ B a|/0/0>SO#ͨ]~AT2y,XC {LYk9ʵu5~Cl>?ղ&?`smi'&.PaxVܶ r\^Xe?C|5L֙^Vޚ֚ MM/N+NoNkޜ\yzsZsi՛ӚgXsi՛Ӛ75۟aͧ75ޜ|zsZiͧ5ޜX o.ӛ˭c:px]6 o.X\=7l[l›˲ g.~޷ڴ onX^˙}l 637~^5\ۛÚogk9ۛÚok~9ǛÚok~9qǛÚok~9aӇQ7y?}}^?˷+_?NyB4I7Cyr}{>o1myw<Y]'>9eI<޶w83K^>ϙ}|> >gsf9,}s>g9K3ϙ} >gsf9,}s>g9K3ϙ} >gsf9,}s>g9K3ϙ} >gsf9,}s>g9K3ϙ} >gsf9,}s>g9K3ϙ} >gsf9ω9Ky%쐧}伒ns@+>Osy39ϡa{ky\[9:ϑk<qN+y<漒 >Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}>Gsd9(}s>G9J#ϑ}wOG endstream endobj 2885 0 obj << /Type /ObjStm /N 100 /First 892 /Length 1567 /Filter /FlateDecode >> stream x}An7E:E" r r,daAO٣ tk?_k0n}ŷv5.ov}`\mXgS{B^ZmlZ]"^53Nց`kWkKWٳx7 O ;4\p0MûkeanM 7̺o^֛U:5j6/;ua4aR;QlϨTA*H U*H쪡[T*ا R;T*ءTA*Y;U*ط RVAU*8Z?0£mCe1u5X*A\4KOu5o\Zx6.uu*:;YssjSKS,UХKos5K OjS#:KGzMgM aKts.y{3ea! hSPAuv@goYjmR>J\z> stream x}MEsr拗?%Y+^ 13QфcawuW_VXG;&X<i@_3=>ִͧclǩǹ7 9Gʱ.M 3OVgihxYhx[F2z~Z2ez6 Nj:F3i2:et>l8uYFnPet@"eXFiP'2:lrZFd2Zg9u龞}uZkְqe3s;c,3t QĖ۠kgmedvi= geeaLװqa,m]igޮtiN pgH@:4q8nXFYcg8C\:2qlQqǏO~.oӇmo|#?뻟}aOBW]_^u{W_e]t]Rvk*pjgVIWseBWƾwt8[8gЅkxʮv麭߻ ]Lov˾-HR{_+鳾]ϿaB˷b=lZ{Z[w}k_VyxIߕwv7s&띾 ՗ÞlOlEո>S gvߐ*#fmB ;acg]vfűK]vfűK]vɰcGdQaG.v8vT{ {wvdػc {waoU؃fok|r`Cݲa}TG>3ñ ;av#N ;vfإ.;3إ.;3إŽ]2QaG.v8vT#+=`G;^a;2ݱ { {;Vao{ϰ7^)URok|cGTJETJTRQ)AȔ W**"(RJET"S*\TdJ+RLpR*R)TTJEP*2•JJETRQ)AȔ W**"(RJET"S*\TdJ+RLpR*R)TTJEP*2•JJETRQ)Apn endstream endobj 2887 0 obj << /Type /ObjStm /N 100 /First 909 /Length 2852 /Filter /FlateDecode >> stream xڅ]% Wv`wmɟ,@XB2LOϏ:\ob:n(.5/,&A~s˒=vZbkK)$nwXײtmtK[b%-1j"?mEO%I9xMIR>,aRboUgҹi8O,$i4UI$F"Q)./QiHbd+4SIZ/ORHV$JErERbdĉx8( gLL$A([9/M??}kyO/_?Y~~}˯n~\*+!wWlsg\EUU{W*ԙ q@3Wa*xC]Zw`WiU\p&Z۹LjZ\2sypE3W{:^ J:J^:^{̰^=e`/3{ {Þ<Þ{=ϰ'=i`O3 g{ {Þvag<< ;a灝g va'vi;yi`3=q=vǁ=ΰ=a`3G{gAR1\mg z =)itLKAJ=%B:QQOE4$S!3sL;A:=9MMO5h4$S!3rL+A*=B9IIO%H4$S!t=<ȡb!{Geo勶Wqmxx6ռYTqAi'.ۖU¤ptC$)N )݅RqZN鬐Qif^@7yye?||߾__>?/oo_zLG3V_?[Y*37 gC~?|חo&N7*LjKkEl,UJfK01뭅MImll We5c#*..rl. Dd@l/GJfñJ"eu2&sl6 Inj6r"UajEgɓ˰e \lLFT?Jz ҸUX\d*%V1"0rր w$a뀗[ VllQjU\`ʭ-nfʭ0QCSn"xef2K8 8ux3)4pW2p'WR6p76#.J0:^D \CTf!l:d\ M5E)+Wa*ar7̛=SuR\%X.vQ4"ʢ*pQpEK(q ,"Y \C]G5pwHԋbTH˚Y 8kG5pwH\8z)5⮡)Qv7n@!MpowvEIW9DvOy7ݱML{SxI&ʷHKk464V:GƱPԴ5B5ioe0:3&XfII}'`bjJPKMRo5=GtU M~ j/ė`1,FRhRJ۴tUMv vJl.4`gkJٚž6m/_U?[]-Ė`1liM; v&^QR]lYLd93e˚f2L2yb:2UW=NV3I+֤yKNG[7kʰy~LRBr'j P&\ _U b5Ŕh #7mfە2Tf6#)ة6j{mv%f46ҀڔTRKc~]\,YnAPi]@v)n~MtK>mĬ_}Hw#u/}կfU#E^YѢ{Зﺝ"7ft*p'׃Mv7Mw충>]R۳~@FޡAZphRoM81G`~)7iLϡhCUX>Mu-G 7nn:y-u7=KQz ="O/k~aB?gѴ'&;WX$(P+CS&7==ev3\f7== =zv=N/z2~1ГW~:GϒyQe˄,_&uwxܬu;ܤuL]=HMfͬk<.H^^lы~W{>@d/-"i$7|WuGH'G2k?f/|轄uQŶ+Xخ[u cpӲzZdoG=<6n; endstream endobj 3010 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.18)/Keywords() /CreationDate (D:20190927092743+02'00') /ModDate (D:20190927092743+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) kpathsea version 6.2.3) >> endobj 2933 0 obj << /Type /ObjStm /N 77 /First 795 /Length 2938 /Filter /FlateDecode >> stream xڕ[ˎ% W2w҃" x'X^L112E><ɌuީW"W]<~1W` zQNU(ky9rXףğ1j < CӆQ)^0 UhgUhMND"S@R^|iG5&,CJgzHg~xwcԁHG xЂF?Z4C{gzh5g~xZkx0|VS?G$ UrDYZG9s lH^9ZprFQJ24iQrڈeRd[O`k=ՖNK(U<1]V5@ު[;O>)7[Iz䮴ZZI`axk!Yv =?:>K[5ᭇg o|xWߎg!eX[] 1%l  ņYװ P 0B% ݭVn5$i> Q.6Nz~b ,tNKc^:+ BVa #\܈YWƫHO` רZ„ Ldh}YκBO4!tςFڌbilx׉;9S[IY*l,-m;~#7 KҝL:|u%%L8a~#70+ o &_נ kdMpۀ72o12$2$r$rtf!}Qn vOQ l.!bl`p h v̑Ks(ph6%;.g丑=ғ/.!=ғA&_|Lk}=+LP EOBA%" pہ)Iۋq(#m@w ]ÔUbE0- q*fCh)wQ9i72q͆XW Ρ$_CI#.z sؖw#JD4~)5&_K)Ḧ́Z8䋿heJJBn;_T(И$Za ќĻ{i\cyrݖ-У96tƑX8ouG7爭ݖGOx%ē-.!l |?QZ ']\(<=ON70gxVڮJz&TZ<>OH#CT|v]gQfLE[M[6KQx 19kl@T-ٴfӢ7 2U:A&_̄sFNLCICIeסs.ur)1q2])lZt iэLCI o:q3r|Ik}9);W;Hف\L܀̶pɶpɶT| w׳ "Ȉ׉; -6E$B}*}ȥL l[l[l[;:gAI]&ܮxl[l[;SwwRb#^9Trx}PhS 7tXh2"T qJ]i}R*]P'mMӖ~ȚRŃ);qM^b%*IAop-}ߝP2"S*qJR})U'nʘ}wCKAxtG$Aundhr@\)UR@h-)}KЂb\(rGc {߃VRMAW*7D2\Zccwjj-Z:  {FKО.j> l,؝8iBÅƧ)Å)Å5Euw4i FoPiN+ Fo@߼ Rs:N/UTtmzatzS-۵WttFwXXh-ޞ ])FS @өTt@ ݭhRwZN:N:ږIR ħrGxm̪v7u|:wCw_NG1:3_>>5?ƠA6}sXq1t{0J.4_=r!]b0X+c:B̀ ΀[ArXUyי:é~yEq%x\\M,mbi36i׷X_]q"iI3>ҝoFDg~ۋn~*ݾ'$dB_a˯F,LP2AL̸v]5&1A1?}sԘt&[g\Z_PBNT:QD3:R{aEȾԉ&&lfT_6d_DdוrB&yb<1ANɘ'缑pẁ^2uگow_R`R_= /|xouNyx?|ǧGSWݷq~<&2Yen. endstream endobj 3011 0 obj << /Type /XRef /Index [0 3012] /Size 3012 /W [1 3 1] /Root 3009 0 R /Info 3010 0 R /ID [ ] /Length 7172 /Filter /FlateDecode >> stream x%{to]36IM4m&inMiҙٶi&iE #T@c @Nh\GԺю=R.hA G =^4&>4&M15P;6vJzj)4V#yCh'֡vm{(,](aG;_j6$ށ 4&{mC%IhFk'.@ {hk6ހ4&А|{hxJkѮa]Dc A {Mag ev& v&АL{Mag CN(L^7Uؙ@C3z{].@5 ;hATؙ@KP@ag uY*^ ;h!iv&)4 W4L{EeW4@+vAa\@-r&2Yj Md;ah"oJ0{E &5W4)ah2j{E" Z t M(c@aׄm=W5 PY.{IAT/&&, &U+@M h B`OaOX]aOvp[aOXaOX>'P~'3{B8{ЃaOg{B8ua',X=a܅{BU0@܁=a܆=a܂N=!$M@B@žm,CO= ,@,A=[7ž``z FAž`*t ߜe'=(B'=:A%zSžz{]L*[x@@Mx *4<Th|y*:!i24Y)>D&8dT _6h#`Fػ.g8!SϢE+@EOCs@L} V M> ;d)h;Ё&SOB;h2 Fcơ=.4z ؃6v EG}>4؏&SChqA248@; = Ah8L?>v~mMR=&SI4>$T:r0Хȍao- Ce3h.,p-X E4Vs^p M:@/>+@ UU ZUA7t&RKa/ .ĭe ;{[ˠz %VU `t %n` %VUA>@KEh %s--XcXMP^o}Oa/N넽'pNK!^LK2z_ {i-*넽}}FNK3On0uԩL0JU넽}Ơ#ꄽPT'%3~uX'%?:aO4ƾN==(O$NSCImzԼN=](a[ {ݿ%užbt {:aO݀:aOYN=%užE:a/ {O.넽NSWNS|2]'užrP )_/ћ/߇Ս/ )4=U{J>|]GS_=y!i{J>P+hNsP@j-Wdt*p Ւ ]p['tXAeǛ-4nm<.+wѸw@׀u4y\1q AqEhxmc ~ܫa?ԛᄌC3 ƽBEՋX2Yh3@2ު e=xO e=ṽ(1 e G6𶠻^f=̷ {%2 wz eLt eBC-{xw^>[LH;QnC^Ļ{w:2!Va/򖡧^f݀J[{xס@ˬE w :*!B^%$eW Wa/aO/ћ*!|>a^%$TAثG *.AU^%.K#UPWɇ!i{|x2aEi8eV^U>Aet^U Dyjc59:)GnSAOzI @v@ U z@ PCa0ǁa`Nc80N9\xVW9 L1&s+: ,p"0\2E p,ׁ% 7[m րu`C` x<X vN[fafx\ `["1E-blcAE-blc["1E-blc["1E-blc["1E-blc["1@<rX%Zf˟@b,c X 1@b,c X 1@b,c X 1@b,c X 1@b,c X 1@b,ca`ed/NaRQGl)6Z6[i h f ]e =[d 6z66ls) ln)RR8}0 i0 U0A0-0N[P <.sR8 Ӥ/)\UR.p"p \pXV-6pXk:M!<O,qT:#fiG'Mc_MQ|D >A"|D >A"|D >A"|D >A"|D >A"|D 5AD#l5C_1]iD >A"|D >A"|D >A"|D >A"|D >A"|D ڇlSmb2O1? lk֮:,tX`[;am#3 lk?.8,M,mmvӮe^jՂJCm䱫U> [/Oc7l2v j#Ҵi@-6}VԲBK2}wVl(`Ͳ Ht_ cɗIS^/nT;6ye]WK|в7Q| =b[M&,KZOwHn .NZ&Mj*\싆QD˾g._*P/zT0f_E6lz4,Pe__ PQ7?![BݒFݞ=iOGF>mƜѷHFrZC9ijƪ6jx{Nt@xiIjGS+t:!M}CI;  ~͑z}gL(0 4o,(Z;=3OY^Bs_F Aes'Z_洿@me9=ҖuW3iP6kcikM,3j,mYiAJO-׫7f+tDPTjҨQU;-7hUQr3_F^y42&8P[tb `A?!U IurXTG,wWb*uYi4]40eҀ4xz)R*R*)(m V`UT`U=VU'2A-u\>!YoѢ~E]:Z&66nXkޭekohŚttӚ:e͛omkutǚݡUkrttZ^:Z|YGgua-դPg-Iݷ֋:z`/Ѧ~ږ4;L2j ̌/!1N03f̮!M˴/s_ĘWW^| p̎yzU7 4_̓yusվe͗qe^[kJe όWV ZudTe SY`Ye ܙW V=W5Y^󍩴;*}!@O endstream endobj startxref 667094 %%EOF elk-6.3.2/docs/PaxHeaders.21352/spacegroup.pdf0000644000000000000000000000013213543334761015632 xustar0030 mtime=1569569265.596628553 30 atime=1569569265.525628598 30 ctime=1569569265.596628553 elk-6.3.2/docs/spacegroup.pdf0000644002504400250440000056057313543334761017721 0ustar00dewhurstdewhurst00000000000000%PDF-1.5 % 53 0 obj << /Length 428 /Filter /FlateDecode >> stream xڕSN@ +L$blP  -m!bɯ_O -OU8Ǐ' PA;;%(y\ Tl*B\f f0d2AC0"Q0d0 Z`]bZCEAR3z; Ee4$}[,_rD }%ΡjEf)8>OA+^;<#=epW(M|Xׅm3k]m/rSM5xɢ^'^&ieOM(}G e PGt=lKA<ߴ&w2Eݟ??v~nSj^"q9J6dEd'VksݛO38sQVeI/Vﳔ?F endstream endobj 72 0 obj << /Length 603 /Filter /FlateDecode >> stream xݖˊ0y -5_li ._R;Ğ!34@  D mJD᧜!kPDuReA!c|-n!&(E##(Q 6@0O|hGp(qԱNCQ%z B u7z\`*,y ~omҏKq/ _zm8UBV*.^'q[Wn ]*os ~Uf-֖cʫmh0SS`L% J$nrV:.ޗ[x'u} !'8ҏSEUm,ONj𦈳B:b ҙB|s|0l"W?ttWcR } ;$Lrb)TriJ~i[//hu  Hx=kߧvI@fQԑP=f7~hd3}M:ֺ +85OT:2|LYyv;uPpByKJv)>wRQL$ntfNw7iJ 4}\Fl endstream endobj 80 0 obj << /Length 1698 /Filter /FlateDecode >> stream xڭے6=_uf>eٴAqDc-ߣ;6t$MhDu//2qgQp4OVF"ތD$A,IiE2Km!&!ǿKFm+X}٩^~Z51p@Sw$Jo\%8v0KTy՝?Ti=,ۯes]/$nZZzĺ?zU}vK.6x+hkQhBI4qA8(F[e3~QO{֞ףAXUړD)1 ,;&+Yﻃ>_ H.}%5Z8nҸe65{QU ;k@{#ڭK[C\ִ[UeaXέɑZm*鎬3k +1GĦ_vJ Ɂ$jkgSMUN9DDaI9 ݉Y6֋/ bD4IPF)2ŇO87XG1D3P-޻,M21fiaSGoi,FOsDW'B1eFw-TȕyY[aVgN_$cE6~I ݱϧt9KFTe u,ę_lr 1 Fx!wn(ܟᢏ[85 ;Ϊ|pcI,S5~oo$A>l0I304^;ʣ ()b9PRAӡh{ز-4As.ypJflhM4c AK"fec +(K[ :D͋@h9@i!q@ SFtO01ьCx֍_3"1@7 L| )=%1^ʳ`u)."H(`zzjsyq`OTPo cppHY{|WS 6?`1ggUGeP_v{:aOH6"P:ATZ1 z([cNl8J3uut&ӗAgrmBrrȽ@wgp>P/:UyfF_*w:MX,9q[̒$ǥreUG 'W(/B:1鈱 4p@1t0%_4٘J!i 5G-N_ü>IgsKy:vAwP&^Ώfcœ8 6B!@ fMBG,~aG4so=?0]Ї} >ȕptCN"L Р{4}l(a? JhdM@&ZbD",< aRL(_Yp;,RџhR3i`X6ApxXGzΙ'33?@6̒y9s=ɋvveLs]"'I;/,慗Wi`AW4Xw5!s0T^gv /l.CWYfކ=iZ:sd|t g~"3"8CoGki<foH2QSW/ endstream endobj 88 0 obj << /Length 975 /Filter /FlateDecode >> stream xڍV[6~_#YW.ykͦ$$&,6YPSz8dv"'`PSyJM4Ȥ"T& :T7 ip/72 %9YDvǶqoL=5AQ2GAG"O!bo~AMS,⭚O Aa٠ն#S03 y A$chah\({ "S}]N]Ma]GKE ~0 ٬8#gѷ Q [&F4вØ ca=ç)'l,eRfOU;(;xWm#qWJH:2=>AA^"$ -J]cD$])u~a7XLq`&Kn߾ݾ}]C2Cی;0䫫NEJHuf0>Ê;?n(Χ+ɰ$?[0|eYSP53lU>(;=IkW% I,iv2/aA؊ RRN. gmQiX^)h܌ P3Ӑ^Dl²[˹ 9+_}w4UǾ*b嬑Ky~i7غƸ6f,`i& xg<f0cd.cSs4U؉~D 3쇪O?ʄ/Ұk6~y4z S],$t`]oC?QEW3mM?ʡMYo6n_۪٬f2}z3mUfd%&e OXPpإIxG )V.k> stream xڽ_w >zv? ЇݠI7@ $kI X[EwWՑ$g!?=nxcLqHΫх߆ތoB1Dunl8è씆_L*嗌ç7?m8DMAH~UM6߽[=iA{wCZ0u?ޘm7_y,r L3Ze^<><PV>I+"Aڒ S=;;DƋ<f^ 7hq{VDns/ ҖUmnx҄"r Z)}&ͭآ^D,aʚ U'Edl"dzܔ;L(ք[K`ô%mU[j&A7^4솷2 ZGu)*Ku %nU9]}WuV/kz{sJ}fu.ҩ@K.ZL1(,BbAWt'{6Xg E_Ճ |UY]FY!=^8mҝњV{E^ՃIowx3*h78뭐ܢ_>Hwǻ?nW_(D >e.5Oo0 UtLa!E!BHuBȪ g UL|$n0<t܋-yBB}.>I eaեv(0n`85jЪlFWm!!]竏E ݉!惑' A_wMIZŵQ S1$U b;~星p6̯.R 7E&-Y[+t'Ο=wt{#qzGIcwxCca@˼6x#2/$hWNyh7 τ2$RNH]~{@#k/[+DT'l| 0~+4 Z- [ &eDnQs/LN yãIy#D4!UPםgƼ-N8#$,5$/Ix?HwWu.JM_=WVkel,9[s!݉_}kHhBx5×dU0 ~& )~ %~Ua]D?H_Ua4!-䔶NHCr ?{~įmT$\iBxWg7􅠼 8*'L؂^:շ FDD/jݯ݀ Mo#v"z y [OR&EsHO:?CBg}{At~c = endstream endobj 96 0 obj << /Length 3105 /Filter /FlateDecode >> stream xŝK+-Todbe $al/fڲl@ 8>EY0ZlsuYt{: CS%17+L?1w7y?~]RiF~vǝ0Di'ysN{s[:ՠӽ5{ wFؽ>)Aʇah~&_[#|<-ƈI6?<<=ݧߟ8ګ[Y ,}hzw8ŃQ6ӥ^O*CԐ76Hw8?Zwv8s/ㇿ{4FNf@q|@9 וL Dx'WޏA|D8!Gqp&Gf[ c*yq*By !'WVa0~g(10R\'+^+C /-qѯݗ&VZ5|2t_j[kk| ?M\J.F`Džvq:j>B~5D5~Q" "+騭 X!kzU.ʯy |_< Bt \tRGfV3 ~D!&y|9MNafg#?(MRI{֪(%׽YDCHCP43(G*(fJnl031 0 -Lr]D!&yɇ5c;)53$7CL)@٬2z 2 Ac⍑=1eBb)H0n#o$wnኲ]d^H$YCP [亻PHCT43m CXr;ĥnW`aa-a)onci\"xzK7.MK?.`X %DcHCXLXͿ% af v>W,mRKa#\»`HCXLX_ᆰnW`٬^2`2$} *R G(.P0x9k*KBR U{ JEٸ)opA # @8g3WNb0w1mpr4S afNz>qޣIS0]0=r qS\z.P,^2Yq;B( #\{tHrf9[)~a↨n{+X82je`)up %" aJ3ay~7%wCCE,qÂT!K. 4*̈́Y % aP lV`ie hrOZqun^%" A¼Ϗʶ$ 1,,dzITqoY*8D@Ʌ۩DtqKgn|zfn%4Mn-ACPm6ir.J"\ߎl6iOfm|D!8386-lt))A3n*Mi#|bs%GI)lLlvaل)l,{2#7$`)tp %" aX-c1 nKfRX._2"hŠ B)..\"<̥rz=~yPTn@8mVp)`TJ0!RK(i&JφG$#bYVeJPWtsauqRB%ޣICT43Jq’X^oDNUoQMONC \xʎHCt43N7D'w)q,_RʠL{q#\Wq\">ރOH*͉O;RAteiApWLZ4n3+ BQ8.p"< NS{!2wCg*Xl ;Ft!iNf2nwY9ޮ^2|@6J{p)tp _QG4%OsV!~LȔyzL7(oA;T!L.K9G!0y! U _{kC>(`o Xi#\»HC43x#C{Bt٬_AX,hݚ4".hr]D!4yv8Chr? Roߒirͱ[mU~!SB&ޥ_Ch8'4Mq0~X)v )(`ICW`r;n:"3-bav.,_AS@F/ͦ4-TcԼ=/NJ8!*RoVb8h}X87D!Sݣt#yʭkwn]CX) 2+%@奸1˃xLWfR(\v"Y ,>\$BeZzGsv%iW*r(i.tGDͥ,txVwQމ"-/4]ܱFSxcZviwW8c{g2]:70Wf&n/'~z+3\PJi_ig"/ݻWգ:(/nێ endstream endobj 100 0 obj << /Length 3023 /Filter /FlateDecode >> stream xŝK7F+ji/DMYNq(wIjqX=J"K}U !Ht[:T礦߷$?nhߦd:PNo?%jR֋hi9f&0zN4xC&AH㦠Sso79ǫw/(7))f9orFh`~zӳ~=UywiT,-&VȨ?n~1R?>2*O ⣐m<<"xPm`%(fQ1c mHox<ʽ\m \{7:s!NFn>%*;_ 43"C"7Ù\cm>{~aF)V4wz= x) 2Y^n%\`^`%leSt{)a4U{a>zFJ?KR?.%[lMӝsT堤nL{DdF6YVOFGBǽ2!aTd'Cz!\I)`Y~ EEq;YX@ta$_CUEJjM1QY4I*ƬRG8P/f,@7i|5⿊jY56gs -5ܶdd:y+ i!f*2!U1J]T 6+F318ր[6d:9%m;e;8^5*%ŎhY4Ж13րhe#kmA:8M^gpdۂQWi ir4a)p YnOMO?ƷL;3!U3J] 6kFP3x֐/1V(uфrCfhwa!XC>m1$cV3\Zfbփ2ͬ32ej.ы+k󸆘r6լw;`-iVLC7`bV(C MQuBUCJP45լnh Qv/7-c!]5E_!!fݱ"EĆ{."3CQQK4-VxR"DJo&B&jZ@Ć[{!:& .Fjj{ύ"EߦoU$7-*6ܳ gpKl urxꞯU bcr66լSnOV SCttR ec,2}4]Uۨ)'HIfuϨnQeV>3+kto#","f}]왈\c8RD5GhYK-UDv!W)&bj:?"Q!b>뚙qx Bг*KrQ!/XRĦ2+j Ww8Bf$ _MFa""f宼` Ev gZnEI7prp#:s 9roTF endstream endobj 105 0 obj << /Length 2921 /Filter /FlateDecode >> stream xŝMoGsw&-6A|Kr"^xoSbVqZ~AHq(>LOuȿ&3},.9SNSAi>~z>=``?ˡqO`2$N5V%;7wv;~ :WQQkDO*4ѲS]q6v+K\rᒋ]Ř btDЫ }3#$I& 2"{w/8\G@*t ⶜ Kr:~u* 9GAe} w:\ӑ01ӕ3*yȩ&f1e5:*iȩ4jI Lb(x8\DhI]JSidd26yvogA$c{ /d6ǫ5@20+SMq ;.pipF;sD4R.<ŭt hJuV^|qAs#BHH*$(2LB6_z*:F -N1Kdq`7^FH]^ E}>;X2Q|yd,;{F0@b^p 4y͗/@Vr 0'X{QA@zz/7\AQ+@ލvq+D|H/"I@AܶAP BAa.VJ%o|sDyc $ }9ͮA>"%#/IK软JNe[`zSO^GCH> stream xŝ]o7+20orrS؅,iHfݿER}fP2ܱ< G?'5}N~L9'C SNH룝~~~|%ӆrP_|DM*mjUX;~UN0Ia8ic4/O~<{&:U0{MF8;xwMJYjۤ>)ꧏϯܤ~׏?GZ SZ8~?uh`Ҁ^p_pY:$Ў0> C˗K5R[ 記BiaTTA7<+=m!ݭSsO<1[%1/uKG mli2:Cd8;g$F`n1ƼѻK=\FG)g mq{g\D̻{.*8E^ob-.n[2.]?K~«zB4K0 < BlҼDP-2pާQ^ɿG(y^53OkN2:YX@տݖ! _IAH!^flUy8ԌåttL ,f鴐Q #%_GHc>G8\JGb9lT4=/|q*ܫ`d'8;W`n9yF^1uSE'GCMJ&$NvyǻV7nwB:6J'40*n""1'nH,"ss [Elg= p Y AىPN 5@YCʽ4G i[gpCE[.f! @ .j.5BDJ8YEvϭ@ņȍEtlVx@6@>j #!Z$uh !q43+CU†{6+?0ё0#h9'. fa^F} &Nƹlayn.#y-.D\17#FJҰmqn4g#[mlg6p`|QH]-!Z4Uj'kHܱ=3[5l{:r,h )+l(kvan{% i43g-RALӾ:<-CDJ8YEm!b]2ѱ1ahƐ+W#!%l: &Q&{c[$lg22^DGB?Ak6u!"" "Bdi;VpnF":":/-2tPtUs3_lo17Cdi;v66\rDkyh" Ԣ!P58w{vvF` mF":Y(Zgƈzc_oB."<4wܕjH7p?op  Uzff፪r!$N֐ƹϻ@W̝'ё1M@ Vz!ˑM27oCFJ^:ktmqR]A` E\hbփV͜0';>пal؈ss~-6ܑ;1X1+!9#6]\Ә8E3[]l#w/WxЂNXS!Z4пw4"澇ba:wFBH,! s+}lro6M5t i-cYno#@J]e*0@fs8z;:VQQGKhUgc*2Yp˻;.T.0O.2q *#%p[:OQK4jdVXt"# XFH,# q3[USp2>T:ley/(BEC 0YCfrm [5ӈ|8\ĥz6kz5V /@ņ~ 1a.6a6K!cî>&g#dBКV(\)vl"$L6oٮ6~۲t.c NVuldH2ZhLl# $#Ӷ@UFu-[8\EB^>k4(gt1Wuq&Hl{v\D ?.y^:ZYX Z֤NZj^KhIW!a4̓W-)sڸp]gډPBYV _X a6Ö,jeC~$r*ӠUik9+D-!a4̓`W-)p>9@+ӏ^D7aCB ]e754YCf3!*!^H1^EG£г+.׍ gaGCHMd%Gؠ/NGkh a< N{ma !!a4枻SRr sg. e@+*dYՐ.RU<0![=np iL( yyU~!a4f#V)BF":.%A#'t񐒯!$L췜lr'gU. ):hMZi@3kjQBW)2$Mv\V)_^=^KGEG+YC2#Ee !A%HRpYF`{s+oNG*lEm(r I$D^Gսr<\B9^DR/>JUQ5D9Glv~hяR/ឤ;ZDU#q4x> stream xŝMF<ڇGnYA]0of `i/ۚQJVQ=~=kK>iY-LP :4e1WPOϿ^1qYrO/?NZ=t7ْUN~iO$E;%[+(Qzr/W|od*^W䌊qz}ٽÛo~}䢢3 JPY ~^ &BloAPTr鬐>|w˟u.=hghT6OX.ۑ +$ $Ui'697ۚL_snrtxQ%՝A_a=AcDҘǙw{A^ܻ]hr?m .WPkKi27 }[!"G.掋iHEf.uDIG&m˳]Vs1GXdrpYLx|z/aga懝pxG`gp {y8\FG@t p/Hf MB$R}-Lr'ct}0 b}-79& "Ґ<ͼ_$ \RsxأI:"qN܋ '}Q%&r+Jd7@␐<\߂. ɹpU..*oMjӐSdHC4g,ܓhhrݗ*GpcA79!"" T3K.r.;?(8\EGEMuQRQ0CDN4d"O3?K"K&rjTfUM ŨA&EJ$nJ( ~ e3k:̌YdLy&A7+9zJLqZ2%#9wu(]/#c0JP+:clkECyȩWM xtD! yp% 9wu[p>ԉިBy!79m"" ;{-8\JGG0:ڬ|so$" 9N $2ҕ::B֒<W>Vt4D@zF5! yyY Krlg-$hk}*G~϶tr3_`"`C.<^ᒌ7{tN9I4 ,=BB4-UvS}RьQ3A-jʶ#!f$^7R8d$.; kpRrnɌWq1De OV6>uScMH8$$3/ҕ\ܕYxU1dQ%[HF4Bn.rm\D!yy'-pE̫h2ԫ)s^5\dۨHC*4Nj@d"î0Et<4nGPڛ'=kDґ+.ȹ륍)p#Uڀz^G%#5lfdqe볁6 fҹp-k+]GPkVBbG!Ϩ +$$N,μ>6ϸϻѱ0U ”UɭY LۘC&8n/d \2s`ƋXkpԧv1(<}ވ796:"␎<μ>. ᒎQʠv 5Pnmᒐn Jet\4I jWk_\/=bMF~y5"̋T%9wبrNѧQq#l#($|5#G8:\i0owM&޽}fxzϪ l\h-Bl&"œoy vIPO> stream xŝMoGsw&i"A|@R"^8ۤU3MaIJjz`O×A_aL*Ӑ}P쇯߆^B=21)/ >W?rc>t7ը}W?=HiHT0Fi#6> eӣ>6`hQ1_^ͯ7onWP1`*ک줂~c_M (RHL*j3)_w/_n_+plUvy+_|N+؆eN $ad4I >l7kB,߽jL¬sSc_dUqWw 2CTyz'(œ{s쵲WڮhrQ{e'V'9^1|Suq6;IGtܛA"u906QhN6Kk|D8!__."$Iγ."U T]|^&&0%c8j_J$8q~ߋTx]k(!^$8$~,WwaT>{}cbu@A@$HSEqM&!9!K5,_GmAnQ1۵4:#Ȥ&'_&`ނSyn7;I"%Ҽe]\K6vѰYjvQyFy Alڂ8Fv+͢!\sfђU4\4YeA.Zr<8?G S}qR')9|.=7fw0S-ԔZʙ̜R#d%G_JHj%s[K%\sz䦻s!hT !X6Z?CU@k"&D~'e`KsYKh2U֚j(]CCbe2.KGB,ESi=JoY KrYѰ-HoTHd Mĩ&8p%9tqv0>;mVz2q!qQU4N9Z9)GyB>Nf.ྈsqV;B> Zqk!4י@TyL [KHWx-b;?(`} &Nu98)5HKY%hhJ"W)G6ݞ]IοΠ Sq'1' 5I=Q1Ll=(Oruĩ8'G5Y@iZ(3[֑W!j}31qfNmbㄐS򅍳Y+@kK7猚6Q%Ljrr ZRƨۤU}(؈ LFcTYw,Ȱ7^m_B`-zې4iD $eon8UBÃ8Z#!kiƲGAkֻbIH, em-$$N9)2 uthh % I*ȩT `!qvpX^AKΣW4c^W!Y,+f(hA*(4Uv [C~| a0+jS`%Uނzr+qY/gnyb7K*<|uz^yG/=+Q,/=ܺ#JuxkQ˙t'P\$ Rk'G/{rѨzvJN\۟B;X =|*~wٖp㮫?UrKg endstream endobj 121 0 obj << /Length 3015 /Filter /FlateDecode >> stream xŝKoGF,  J̓bu~Sr\t'N9-}~qeYJ$o~{zE+WwI~<{kҒlMP&us/{ëߛ.fb~IΨOͯ?~y^OPj9bXmK<$8[> bC3ĠL㗻qϫv|Et  >~u7`2p{lB MR v@J* ȩ=A~oUI~är*S%iJE},mo5XRþ9^Ai-k!DTrSe2e.Ii n!Vmn!5M*WQq+inB@ZtӰ-Hլ.?/ڼꡫW[5HURR~GZ0D҉7'uzqOFH2C&]0J2 f[f#T~ Up̤TM,F)rqj>pmAnRBP-N䖝t EXrnpk>pYE:7Np A%8uӴƭL.=|~_ 4x5N%8ww<3YeAYrlyA>M31 RMWsV&8xab>Oea(g8YKr܂H@H5M@^MIG 2ؑWO;S{O] h)$m*ra"D^̽-D` o>/eeKU֮9J#!Kq&*6+m=I)}7#$%)RBiRjhiXI<W>ƭp*JqeU'/hA6x:`I۾p@lvRqD+,y*ũla6x* I|gϲS΀Z>'ڒQ&wjʞϖä]=F2yփWX5`C ,EjT2aei4<'YӞ,34ȏAl GyƅX:>Z:xtMMIیiO4I8԰4G0[#J2U'Y TS7I6y'&m=I&k2Y֑V:!٢ds]S`J1&ҤdM28!>^py6b *DP՛[g<% !n,OJI$iO#Lud|qֽ jzPGXJq2yHIیi KuܭKh*rV>X\SLBmumkz1Lձ.^^܀d=xЗƴ8WŠKYڊPI8NԔz) u' ) 9;Sᒏv¨7a aEPooC:`B;e!f!/% \Y(uS PNxXK;UJ[16BC%9v9j!Lvst&)A}fcB[%9v:Ա2f"/xLD|n4AN1Qǁ:Fh(T HPo4B*iJ&(GЉ tڕ}uWtpl ٴck0AjYc ԉYt ^>5+A@|>pRj/f/7Jئ_&N0zQ~ʅ8=BgAg>sVz˱d3.] bv?*CúO endstream endobj 125 0 obj << /Length 3144 /Filter /FlateDecode >> stream xŝMoGs`?rv](oI28L.{f *NKo ei8OquhIM~?p20E넴>ˇ7:EM8aUX;mw7&?NRoMwSLןo~:ۉwss;ɛl*͋I&5}R9L~/u\go?|yoF0"HZ8?J>}ee48E>|}2t@¸(_~>Z+M1bއB aTTAҖ-Q?fHA;\:n2`agy:Q7Mfsk_[^KɛcL>,>[ :J)dJ ۪N1"BEDEǍ !"!M&{? ,ޱl6")our8K+}$)}+"_J8DR\B+W#VAtL aBzW5\m|<8H`H&2 rfނۯ{ƿ8:$S }P\$""d\D)1X:Bu{$M"P lёRWH6Gͼh9̌x3.q<&gPɇSbd\`jLU&3gpӐ5 :( 7 ;G&d4yޱkg`ݩ"X?ԱR:a hQd%7q$V"VdnVRQq8K]R"H.9H>bG)v+"$""epˮ!}^kjx8!Cʁz.j:F IO$"$M8F9IٗYOq[eAW)u dSUZbcV1r3z~x蔐Ԍv k3p-RꪵȦzH9xeN@C+QtD4%Bv˯.4 ;]$*VMUf3?]A4+Q)M뽘h:vgSG!=JIOc'"j'NnI8"[atYP)+lmjcٚ))v,% $M=@7:LrM^DQi򑩒pr $`]I*IөJ2nNRx:^\ӑ2asmcµQ=*[/)dS\dsXᐁBsR;9FGID FDݔlQRUI=l4{f !7)zs>n3xsZzKC+@@bEE]ȦH9;v a7 O"ǣHi%"tEBEJ})T)i6UJn`7))rtبP ŶƈvlpEfd$[v A7)ˏwt8^ Al㝰ƞe&pqrQD6QMu?BQ ߜ$Oȿ/2F1A-㔈f&[|uD "#㖯tq̻9[O?jl3Or.RE_' ɦJrnR=hQRK4fj+BlJFHI݆«>WEnro`o4[È6ԣYkKP>1JPӖ=[ĢUbi*."* p,Z`YQk~NFx RK_8\ZPWeԂ[Z{kBj-E-f14 eu+W\prWeB[1cB`] !qݑ{4q -n_"֪51 Amfl-[cfwyjk*aE,J͊gzs?smYQMUfsajSb7'{& A}[mM!.QTe"j͆ToVN"Y}V!>l4?nEpY3;jr֫e.\`~ 68C[ŭG&ׂ[k۵RC4L(BuZ"iuE)l1Rn0H04^Y$,./==fR/xo*&Sm: 5\@nWX59!%])Wk/'*9;`Gpc_p"f;`~:v+!`q+np>SrnEávT̑**Jk꘮)[TԱXVi̕BĕZV C(hpJWx[bEAJ]TlUd!\||54iaީLs@ Hc7 ^)#"*# >ɸ__̿ƫW8iE5pas9)/qlu;Ȝp|:wx d>UU;dKƇΗ ܙ1!2vYʎ杌34nKid pj}u%20jw97I*yYЎ}<4.ߪ=`B ꑍ"*r G6@"#riOm>™4z9}_꘵<9zH+ endstream endobj 131 0 obj << /Length 3121 /Filter /FlateDecode >> stream xŝIoGF}T 0̛L `r`d^"N+?0dRtʌdlsԊIԲ1s>n~|3 wq!¦DgBۻ|g7rcMhuлMѴl~գ)o Z^LyKgMmn~ظ)776߼ϧWնoſndMySJ]$vk]΃d)b"{O?~<@Hd:!USL|_α1Zs;pF_cc/x<.7!`RP~{q{8 v<(m6hiհȲwnt_ݫmec|!"Zklk .Gѽ\&%XRDwjXDYͻp;:,"".'Tqr|38[~7يn+::wRHgZHw+RzQ^ielEplh KX9^j$'WM?R>G^$><޵x6;EklnwT¥fbr r?e.(A$ĮcCb*!,?P·Xاz Y !XPbWYz հS4DYC >.N~ Yd ބNl$kRd`IVe=C&vU]\EU s7hR{S3+=LRK8aFRbXCl$o߭fkF]m26Wt0*bXWYAWm }4_fN!ELA"_o[6lb'%w!P-TA!`P3;|AK5.z{PZZ1`RZ ŰӲ !Ԓ|6*+)&( s5x2*BĮZwg ˊc*;ˊYY@qM1 %$vUYl eؓZNqk>p+,zL*Vq %$vըF-DXvKݍ-Z`On%ŭi-<|5S8-ܒUn9a-v7j[,Rf[=G&= Yz2,@VKfݍZT,^-',\(lrQ,%oyZ,HX6KݍZdj-'yLpq^}+J=3~z=D1ޢVAB{toL!r3%zS=1XrOb'W(ݓkeIy@^wnm=XdE>Uy|bX>YL!lo\wb$z_JQ`I?۫a4TBlׂKCs}|3΁1;􏡒a:'u`,ȺN e$gO3)dR5Ak&jA;u, I5f`^|7ցfc'F`@cE ʰkf .K/Tp:ṂV3K)J=)m[ $,)QS&`^~F.hC9XiUiK`EZu!ee>UD'|eٙA}ՐUiR`d^TjvNYOpw10a a?!P3#$ԀJ3B%%unI 6P˷oa",H@m00\@W5jV߻PAD5젬_oaf XC 4}Js% %v~@CD5kx0k?P S <88sGުt90XPb'rL*m ,Ko Q [([Bl$?P C 4Ԃ7"u7`IC Ű>Tmf%zx8b&xPػܿM`^!PsP[3CN4SZQ@doMi`$ެn$cdW~ eأO~A0<-|T5FC ԓR gU"ުF$Ԓ:+lOř\A}^WFJil`dެ~B(D0VJBU eY A\um]N$Ҩ`I*YݵKR`;4\j=YYifhjcH}ئ40X2KboV?bl"%}Y ɬ;5 ؀ 5͋U ,y%Sȧg,Lj!,no秣 s j:soLI꽞cܳ!z2~(ϣYyޱgkGHh1 >@I@[g{>xP;x{O[:ms.]WPECo ̓r~yt䜈V"ng8s ޡ2@K,{MbOF/ t~Я.H;P?&~wC`zz[=pyɾxvě3zbzu0N{JOYK$N("A. vvw:;Hͼ?lx*ﰴ 'j&u63g endstream endobj 135 0 obj << /Length 1966 /Filter /FlateDecode >> stream xڵrGཟbx1M/Y*ST#,d.UX)H^?=3u- 3s閿 jv̿\ h|rD DdUX;l.޼6A qӇA$B4ᯋ?L;ѹANF8}z{JAIdRAY+lͳ?=\zoALB 9aY5k3`TE3b+> 9ȄQw8?Z:B KlcoW:?"a1Ҽ_6rh#9!;R -~3 #r4n, o\5Ow+COG!uTTOlcsqTzt8*4RkYI(Pf351[ZsvKcv®>>K̟e TS <m_q4wy=`U*F1M;wZBc ^𭂛+X{7j.u|vJ>Tm0"j . qpSrT q4wh? W(t^h4k:Fd< m_tA`Wĕ/K0c.zV Y/.Ca%NQ@9*pw CU(i\kRaܢ|!j>`%7+G^ 癦|J›2嫉)_69tg]stՑ b`puU*R1Z酌eWs<m A>#A< Aw٧gb~]<ӜIZ8u[;KoUj{$%[GX׾n3TaHa"EĐ8 . qgQ3C<%h@a6L;aM֑Y@ܾTA > ܐ!G4\E KU "܈qJR!GnQsUx2:(g8Ȑ q`8[XӴvj`ZX[ئKt QE0K0cTi)!yX[ض z݁>bE K0说}8z?jOl̗W q}yGP endstream endobj 139 0 obj << /Length 1357 /Filter /FlateDecode >> stream xWo6_GiQuZwh,Ӓ0J))EG9vi7`CHw_g;p?Lxq;I(FIh읷=f2ClN;q16;Ng]C_)9;Z5pou[ +Y*93?d⌘V:Sә8Yl&'ܤǴ@NL>|r<p5NC=$ i tmtEt~7A΄iJo64 + ճӠ,S$aT5c-uS\R]Y]|sn3y,vl_Dcvy)u)5{ ŀf/!*ur(P\#ėLؚ!50O$w(p|q=qdTª<*"uAɏqv(/V 5ye_~س|PA"dqeŏ/nl:T=. x1S;"{* = ׹P dYȅ1=TFn7:9`o퐨 H2 y_%]ȌU}宐oE-[ev3m~TגsĀ-ڶ}0%&c!Rez;TO)LtQZ|5+yWTje 2;1c$3'c?9OX ́NWM.1ѿ3wNٿ?{m'Ͼ:Sz7tVs \f1}FhSbŇxh!T$oOL!5Фd- [tG dgl1e<烾ڴ%bݞUP79a z 8R{Ƶr|cTT;S)7UO 8wm=4Em BQρ+И54`q> stream xV[oH~Ẉ-\=v>)tI&w* `Sch_ga;KzGCA8dC,Pr<PʤWYN+E$rzHB + 8Ìѧd0N|ycs W HBc2nV뛲XWY䖱᪗fE vDCKrt%\w+坌O@w<,!B*ݱ~결iX+.|1ndyqDr,El7)Y\;VE qj7p~?Gӱ=D^$vĆY~ ^s ^ݙ3"OeZVvV̬jcʻ+x&DPZKn`c̜fgo-қ}5Q9 U(hՋ9!8Y;w[4uh! /k' k #,!˘wK>6\#ipe+;V&}:wŽ7m Z6s<+ˏ;w07rKyՙ0N&!mxӤ.cTN蘪]PӕzhE՛_׸eBySgǃ?GxIr1v^) endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 791 /Length 1527 /Filter /FlateDecode >> stream xYnH+14{݁ <` b03^hCI4O=RvdѲSjE4)ā#1>(Y.֢!ÍHm& q|<gpBDX%IHK& @$)Kd)X06(9!6A+j2EQGdt%8[ ĬHd>sEdflF瀴93hY (D*lEw%!:hPDtL vќA1¤ eEF 0鵉 ƛ,@wFLAJfx؅I B4<\()H S`d3~,5ȅvH3VDVF`0.BЩ0 B 0`&0T(I!3:ɤAS\~EN;I<2(`ȅ(2 FW #툁([#*O>HbTOyMo>MzԽl(F^\+oh~wqU^Ϸ7m/r1Vrӟz\../Z9g }*Ѐjv#<&b4N ǣqZd>V6oE&P[ gehz}7Mxm^/̕3w3Dkk{{ɷ.[/xq5.LS ،OAm/3ye /TptT?**ēPj bBK5o275;iYrP#R>/3&zZ 4]ۢ05v $Že֋M*`]T :TVIl7U~tZ 3dC QE+*ڶpm"E+#r[(EِU'E|_ϮYC֜/ Q d Il0sB;z~f'=ڤu>ke|~?$ Ee'(NYn,lV2v$:^HF]4Ay}UaI-H핉nc O@MbN%$1;V=0fτbwb׃GJ xjxvIn7*qCE+ $[vS@(l_j:TxTlB3VWS8l֩| ϊ͛+6fvI8XrXmAp㸺yJtg%O+{ϻ+0GMMi %{䗀-/55m S1QΡ1)uz[koCjyR1 endstream endobj 150 0 obj << /Length 750 /Filter /FlateDecode >> stream xV]o0}Wc[&]: 4}H!I]І6T:E`\_sQcD~< ]I4G@Oq0p}D H@Q8.`s@ gʼlpP7r.tw#"tp/;,T˺ O`Q2@jw 7]Q湽:*!d?;ہ4^?PO|ws&An$u-1f?긚z,djj$і#; z@=fomrbBFp qx6L'OERKp=RșX Leuɗ*F?4n 1E1+(Jf0YࣻmT\@@c0En(hWrlJa%b2NY$AJ1T &ISF1Qa4|fv!ɱpD=z*ԉR(Γt sȫ(_g!4Qfw7xàUxDAd<\S6*  endstream endobj 165 0 obj << /Length1 1835 /Length2 13332 /Length3 0 /Length 14484 /Filter /FlateDecode >> stream xڍP4Npww @;݂w Np$Kp -}-oLs5梡Pdp48:p $%8\H44Z`7;H4: W"$]@@7-Pnpp 8"z-ʬG+ ?zs??/q{ PÝvMGs0J Y9 yzz]Y]D`7k12@h{4V$5/'x3؁Ao) ;@S^ r+Xf߇`o(v3hnht;X,v 3`G -lW&{>Ws++(v 7W?ݛ˵upt;XX1$/w̛  r̭ v6m ?}_@V`Aw{ `_Fo pt'+fWVӓe{:%$,x,<޷ǿr,vNio \c7,?S*Bɸ+y\w-Pv| ku%,O Vv=F dv3K.ٵX4;H``g?2}{>\4 ]U?:>i!Gf:L~ ;p<M^,o`i6 l_lw=oMI(\7+S ol5ky!ȵYyv$)tK%V_1PMgLЭBac ,JIE|3,|{B.;BOux!dy0{~`'~Y*{11VVi?Bp`J="9!OY 9Qʪܢ|ӏcv{edP%t84(^9OM %Ӯ"o _x%jYE3aH`ZF8[׽Qj!)Mketq:7eMUb?Lhdox~{FԘ6ƤzR·JaAe/uV L >5hƷJ{U6zoOSjmL].2rJu`(U%iiԏkLtYdlfM=4ҎjZrBC#h;mC鷥 SjxwWWțJ/[k*MweʅP1 $iFDfMC}n^mɶ} kK-"XY@ #גixR68z(kR-~w׶"S l6~QQsNkOoӾ9j`,Hc'USK>xMLz}vtjb\t.+cįGVS=I )b]" rA}',PgC(n6\C;>~0o"AGM,{ot#RG满mcFg-O|0pP0p=äQ*DeP>Q܋>RM3\WImz bSUbU3.X],Z:uw&r1 l;x'X0^C$^H0(K=e%{v /ZAIk5BTaN¥vr?zwq*s\\xaXص97BNzrx2|!3|&eXj r5ٴN~И gAn鸱JACMiURѱF-y}ضSZX nR%0L21u*4&LC~s^6 lxCQ]dԒl݅e蟆b+VG igW| ;=Ry-$'~^ߚl*}&SƋgȐl=7%IH9$3AwƃЕ*: 5 ܭ_ 4uG?Ds 9SI =5\[yz{k L_/Ia3P 0]WۖMf;L G{$G٠`A%?|5* hNDN5A\5 AvGu5Sy7y&26 J,IN6d&~ eZVCUi\>t9z-z>e\xHѺc5>+q ؼ*.r lh1Mj`K_ރrVIr#mt*#ɽw pmHvy>Q y81JNU)Qq@2<}/">֏4PLV}M?m' `I*L|aOoi jL B*HH#J7FiORdaEyO_cZWxpCa)O]saC>b~drLA=w. X4w5BcRKpm , 9[tYQ ^fs8tꈣ3`Oi<(J }_P~!TD6wb\.lNͳ؏b'uKus7hWx !jH)vJw19[Qˎ6 i<@zGxKpӰ͈y/p^D_f's8i9neɴIS5L螘WY/،C3Q Fl''bXٹTC=wY,-Jh? z`M[TtXcc~O,\L6_Ē"vV] x1!7/> v^)? wC{׵29!̡rv|R0o/W?ܓ#; Ũ;UBZ%$z TxohՂk&vO—/{SP"?<Cf@t3BiNiVWgVehLZu?Fg0YFP5&r2 M]d\XHN,ޜvS7%T4^aDСz4*C^Ĩtk2cTgҸ׆0CV8R~wimU%)ˬ=Wacj!GZ$dc{Ƕ/z9jKQ_8EG_!{%Cϸc< 6+@\ 98j{3=`GHs\V4u zFZ͏/H4՟Qy`IԦ,󷹓Q`@&Pnb_WKM>gNDM$?OjDh({%][﨓>Spn\AUtrb3֒[ㆳ"~Vm DÇAy{}vey})5>0:B޿n$qpr&&`2[Sj) Rcs}Bz#93rGm\rx#a jwiT_4Z͵H!s[-Viz)hư*U:Gx~}&\~ȥ҉U)^zq4Jm_9-r1 "#C*6|_Pla$ؼ$4uq%ÏMWY󗬘'csXaI߰*᯸`LZR -zn9DaTÏa!0J&!z344ۦ'Nl~i"|_z<,t6Ipthz|'&X҈[wQG5LmeY Qs>{Xcqw>L~&.FҲI@OVeߍ^<ؚV̪0b-v.5jWeEE :Z/Ƈ5_L9cg"b`g|5Q,7W?ygr(5iU [.Gv52O\x55IR%6EiJ !}Z4"u|VaPh{g54]: 롬tF37[Y׽<ȸHrr{|Y@ JjؚOlZ55Rg3Fd3R<'f b&&p Hd7]/]e 2m8v@\X;i}:He:2/JC !x{O_ X R2jza(_q[aly|EȽ#)!\t5jRQMHo9׭:$+zC| "ʉmroi;BErć)̜2M{nr 7=]ת"xp؂.)j$%Uξ_X@'eDQQR96"5tjGAQDnDWR=2ݗ9ẓ]v&Z*Z#Wū*/6>QwB?vwu *B9T3[GUfP2ͤ{O0X-yN q&6* EFϿʃ9) %wM"wef'8}zJ 109BcqG-!Ƣ Ұ }{jW°d Ges>Fnի }o,Cȵ[kBϗ+ `季OMm%`-;LNݠg쒢1h= Wp:̪tH YeMǛgRFp.C,_!FCP TIj> (ሖӣ:(]57]3퟈h*&U\S\lsCq$qTd(^IUW=tTʔBxH;kZ|~D/"ڪ ŷQnVVY,)u蔱5gNʧTܫ<;*.t<6ġ> ^) cc>zlQCX"p{D4jT 8.h^J߽EL%4.1gLډzfD7iiQ޷3Zgy QD($![[/ə؇n",ͥy@dFMz SDPַqP,],9Rf ^Fm-H$ C& i),5KUgx6Ζ7Dһoʃ[ΉKr֎:afm*v0H(~n=K!u)e8 ,%Ldt!-"||/GVPZĔS^'凈TGI/XE =se?>4>ųwr3Ca1F|죛#u@Wz#`>֠-OYY+mV)^˲-Oi,'Y 22׃g߼-w,)ӑǰRqX;ϡq՜h\jO=}swx#hA76{8tž,?L̐h:dޱIu߿ G짩m1~vʁj4$ib>5#VJC&4RFf~K#NlvNZ紬ʶ8S"7黛Om$D<_+AD$宩i:SI./Kug2MYER R`ZV,3vCA⾰V/ R1_]RʹZttFqG/;d1[qĕi*{y$/Y{pX xض[~|C'|DW..Jm=IֆFh[1Qu8򭓪{YdVw [1_a=S/7 ]:Iԇ7dVJuMrm>JPYRsa '˄)  NM+q(@}܎>+_& >n^ùRrV˙e7h"SiTJo?qDl<˖ݧ$SP(hzdI\MR[Kf-T2;43Pe2׶!c͇kuW-ZeѼ*¤},ԏ *93qdG= sb<`TZm]n]:r!(zꖓG2҂O( 2!PI2;GI* 8򺉵4Ƽ#4b<0:`/mȶr NiI_'L_ij47Uh3o$94Ŝ Y-IO#Ӯ{@[ ،Ya|tM?i([cI1M)V0x`Ϯ3ݬqn ɠ&S8x6w=~ocD%*H9!o7?LB ʻI<2=Ox~@7L+h ZP(&Fs{Հ&DȯnJ.-{Ƚm,Gx7[[_%LRK鸄r*vE2&2Jq8=ȡ`wD_;9Wܗyv@4DlV&TLg$Ψ*WՍӂ3NإiObo@%_OȮCpu ۫ iJƠT5%1y[㳴7Cl͵cM'zEvsop/d쌓oJ1BI FR tTqB<ɂ>A `K2U Px s车YOXՙQp\ZU>jSg0>p0y2~kIVb]mDvW;;f3:F'O҆Q&bq4\Sڌ=h,% $-Lx٪>o*4lFZ*bi$D#EI0&BF۫C}Q^Iz) aub}[ S&? trԯ2#H o-kΗZ1O &Z :8ڮsOӚTN>?Rk-\PwqP~iΞj ÉXo @E5T=4=dzC"b7$PY\To]; aAqs~dŢeSᔜtf ms ZC*l@3=mه ]x|1ʲbFULfxפ/?Z}:` ͐-Նb*N #Vc@І ]!#3aؼ|dKFB^eF2_E5a.=ڕ&Eed7_~* fEY@RG>3*ك/QqB_%ϵ0H >]3$#ݔ`6pRLҪ9v8Q7,#Q=[>k#4{/,Q-0^ꟌǬR!L? ;*@EO&͇\21VcUd9DP)˩h.3$CUhwq.F BQ%'Jy\}]iǬj~}qmf+,Qݲ0I [}HZVC!>k'*:&wUH gEe>P.宸K6Ծv\+#lU&o]5ъ&u`H G[ǝf$)l%K ֦nig<HiQbO>7- [y Bc5Z`tRlyT{ -x6$ʇ2`t>\*!^+N.pKL$q2'ͽ<9m` alE|ޗYE@yf&.8h ~8Tju_%Euf3p}\ԧ ZVJ )$J!A&"54uZvD=E0 6/'2VMz/h"Ui̚\_§/{}N֮ Olfd;i[_!JF`b5q~t1%s}MLDSgU)p_57@nBCU#8<u`:&/#jGiqvUڤJ"cn a2itΧH}kȩ'W4qs}|p:?^m\jbu45Bh43P)[ju]G:v&!E}c˕!QF+F(A``&Uȥ̜%"'GG;5JT;ou~{./wႲN\ģ7 )XqXO`xCjU4kQ$O}{_& 7&:ĚaIxHLqT9) e!jÚjZ} 6*>UϳЮ+d( xdPf2#^M=bMsVEW0/ \zG!zpJ,$$ǵtK!>8Kʼ4(Bwf,}CsJw57b! %iTs\ضa?Ef64DpHLEoE!J.ER%ë+ mM+$qhUtE("iv[)`IfAbقkgzyH`TrCm@ R;*3H;X<9_%]om^"q4߯#|f!ͲzKk_ANŎPqy I+)ɞ:;Z6LF3Zw&B6F b=鮜#Z3G~~"&>WR1("X;Sf@ E+9heW> stream xڍP n5 2-$x܂wwd}Nޚ*fuuLEI$`fbcfH(백XY9YYّ4ȑ@.VbH8W$JTtȹ8ll<vVV@7+3"3@D%lea ~ZS:_1;)[^#mV YXݙv.tw+%@ rv~ Pځ) aiBt^V {WW{335:@]V7OslluoGVMMVs+[@YZf~.@7-W@*Z?:[9]]lk$@`IZ9L_;{[ٛ.ՑE$+UGfXYYy 'Ԓw OG_J|e|A_H.@7  0YX#*_:~lߟ2|03{[?EZBRM[្wx3qqعll|.VQZ[Y{s?)3,})9N.@g XXM_LMo/3vKO7G:-PtxKfW' h"m2SZ=.5/=H`bce?2y>\^g/uy7-cHf{]G3_S `aw^;8#>Qno_u T/}eA?NhA\"W?bXL^umwX,?|WA!&iFVۿ;:b/ZտklIl5yBWcQ&G⶷=sW^_V'Wt._wXk?1_לl W7_S;Շku6<{Uz7uu~-=p@ )¬@uMHm;֘Ֆv*s=|2]UkoKRWOu-I> j[H}? 3in<9h@7CvQ8aݺx RݮG~,dь6,5ɜ'3 czO_]Oafx!K`@=([cZ.`w"$'MÛ.'՜hQYMֹ X20qD DX:zv>fN-Oq>jWTg`> {xD۷!W"p)sy}|~4u/ &`noQ2YGă!6KlGY}/6D1P#իr^h/ߕLEDQ4\CJAr0yUz3M0EF!Bjx*/)y4M7*$cuœ*}&dKƏCPD(nK[YVkDi{8[4i1s[c b0ƛXOsuϢ_&koFs%qVYRruSr, [mV2*ol"Fd*Ҥlz];^ז*? |+)Q8-%nJiӃ0#ӹNBN1x=iew-K䟫4̓G-՚ |~iP3DAbc^8$k`gq:Հ\%f~&-Paqy(6 Z2vfq4Syu0#K`'"^{>Z19XD|AQG)h#Nz"ҤoHP>zݡM-%#T7Vhbk`Xv>2d~NX9+JwCrN]Qlѝr@xKEHT^M* c<$لd,?r8%{nS%Jo D*$}ܧCs>r6$u/~1o I NpF>9 k9< |#d݁x(j1TfvX՜ү~ *( ?/!>IɊr"kx*OQ( ɒB>i= [TDyq{Od11Gveܝ1h *:ë^&h_L'o|_͕ї+JuLuvgsWfh [\wGS(+|AL:\\m̮69M\“po5aCE#nq[P`N/̥Y E!F>:`GrPW^Axe+XҜ9*@dIhb TF:@5|uP )$0A"0ySt![ICgE1`$ 73KÔ$}ᮨ_)":JRw خx^EP:pA%h}xׅpv8ÞEw?*ѦsMcE<4rմ '$l*nmsT!T؎[L+VCɗX8{*SxXx˅vԨ"SE!_XYvaIUek̢xQR_Zv޼\)XweRKCi,~Ypk yοv/rTiD_(^ԽѷP~ٿ{=k6w򾓂0.9cCLrfb=\YTN$UWxR5dQ0l 3Tea#.!9>CXD!(F̮ 3n  EЇ 'A(&U% ;b&6f(:FEY f8`kb,T0po7lj ZdX$o, ʜRmRzlma1mO*7-nV{ ;Of/P߆O0\V2 AwS'H[@/"XKKޡ9[2ٳY5}e.m݅IHK7mK#cD .pd|)}Pn~95ظҜg`]ZeCB92R " *, Ω4rͫ4txY CMq4a>0X*q'FelvrK*`q޺a|uX{SO6giXIRp. 5QoU3R.k =Jh֧hs|ƣN)#Tcncޖ',#;꾓Gr^.a3 fVj2 &-)=z>'C׃ùWa S[^ֽnB AõC$d 4T˜)a]uc[p |w{@|QtmIRԎa9+}y]uuF}}᮪Ϡ)ԄKdΞqZ^\HMRN[R(^QKO f 9J;( )s>p?Mb]1 կ?dcW^{@3+:/jH)3,Q0:B܁nx)eb+3 zôܡYK۴9nk/4/ZY20Z"oӸBwd'm7ZҾl(ftT^ %1i 8zX $۬#PJ m`/,O|KN lMMy;x2OzrEm| #>$,F`|=''ѪQUnjh>5޷M#[ޗƵđm٦E{$UNGWVa~z53} k;a辥#g6tugx{%w]UlTlY[yD 7t_k x]4 x$tS;(d6Ŵz+fud􁮫?.M6RJu'(EVe7P]LX @jP[~Wع_c6ZĿD=y/?0[&Az8O~8`s_}۬# Q(4tjmkZgP(-XO1D g>;ZpIYX|+*+a1|6$k|0Sb3pH5ܫWxTؚ¸k6npzT9=ߵL(BfFc ͼS4GG?# ~ SUNAJO$n7u#FQYQ:5!{BZ5w?J=7QRwl{ѭ)]3ߪ`WPt5~f[򇰅z ď DJ|2~B v`.\X+m R'ԋ3_eӏm|I*dy?auWOř)eנo-a݊f;Gi+uhԆ- WF&=d̚ jʯ8%0o;vUӖdq2Ӗᮨd7)ņᄕ)9arH$GKX$KE#')?9u\ 716]>ORkml\l <7C$(řS#7Yduk M_=,K+ka>T9 ⊸^o'jS\l6~DˠLŽ\t6wIwaႚŕ N`bho0C ˲S~v\<cx;HK̮dEUqbXd:={hN!`"`}Q6&MDcL͝?Sj54rhm ҳBW'xrJ1I/gI˅=-(å\RJ(0trZXPbW@\Y|Hݣ8_,/l ts*̨Šv0mg7w!Ta530$Hm8\~9؄WfcikrUҼVF| Iѐ! \Bv\nX'›쎿^[*Sk\l9YE/9dcN$(̀"ބ!+/+-v6U/d]m/>x} zѳR$zg 'dH< C+vrJ.\M 䳂]%>Y;yr[ }M2-&1 qIAT!S.sL/Ls@˶yKwrB۽Sb\BZTՒR"OhL(JV@;)l]a{Qui8 ջ]+ll6^U#LYQй u4{m_-2P8YD"G>?G"+t]:J:gZf HEJrVncv;#>"h;;y'Yq\QtWF&>h߹7,M-3idfTRi,+Ɓ'>ɞpznZU22ymdg>-NgzXtL+.#|bjnO#ڹ^#Hq)#=W@|gN!4gxͣ{)zkD_;}R;A]j aapGep\gPTOJh'`" ))![f<\KBby_6PjXG}4g ;뮋_RJ To}<9y.e&&hV}":U$QCsQ]$J!ߠ3*dYĨՎ,G^f~nܨ<dϏjG!R^2#ۢ6zC_ аŕ["iã{G% nC[TYfjx mo$PRTokP;wO// tQJXO$ 8m"~@@.9)߬dK HTpEܙ9+P B.:@MRѨ 4Fx 4Kf1)򇬸@X{ľZJk&0~ d_oZ~GoO?2Q5MȦwYly(Tr_uvqGN.}U!sh`a.{rj6ɱ<[̑(eMlQV Ҁ81W=w[_iJ}dxFժqz㬅 4Nkv:+DȲ]35ZZ9uԢ, 2`%\ojIas?mUG9ƓIM/FPs9bq"LӍ7@r4JqS͋@MzP#~;BxE嚌=z>?Wت/a-XV[(knFŅ@2 o눉Z@€9z Sbb=-k @T Ǿ#M3*&+ t "شI-Pϲ(ީ?T-Garw"N LwfQ8Nxۣ/'0;h4xBaoҳzD7L[safZN>4)g;W8Ҫ]6S],}pl :Z[C?hO]{~Wd\7)50ŞH{;q9m",?$oz#.?4e7y^׎VDHc1|rP40]tW9[ddD׺mfiX|3&k<SS>vʔ`@צހܡwڍDeK|<0#qǫ2PÎ:Bؕ#)^-yj T[v;}7sD0Ms[ۑcUt!!N\o8xDYPUY k/;1W5Jt˨ޖ1.S:~PIXKyBBu\v';~:ߦ0 <- ց6JM<&x{[?V$b4~:\&:!LTE( qɯ|soD$ʹHw]<9T%'w,M&z9>d*2e_د, L[*MOcKYA2eg!fA8@$8|_-5Pz麢/ b*nxmW϶:L8I,Ie"g܉0j84.ARXmr{tv_WrArI^7olH5^B[wiRctQh_[2rtt|9np0y0wUƜifg< cB3(I>{JeBQq _ Gmn+ O9/ =nGA:hcg"zp}7`qp[ $.YuēȘh u Dz僱]M2s7|f܈QTK؅ms vRNVnBXT <$.˴߃+1m'O-Gp|ɐbI;\:*rzlⳡ/Gc^˦^; <`KG|k/sH LM"A:O - «l3b)[jԆ̟m( aՆCw7|aؒMt蝺%qz ĄOhR`( i.Go1cT͏ :끂Ϻ0۝prƕٷdZf)Jl[2k5 wp#c$FG}Q[o;yڑ_Gd1EG8ޯ?߭*T>eZ>BIpk-'sYB^U jLVnة[!!Yi%&6`:Ul3]\|T5IM7a)d$sJ$R}xM7~B%HnQa(%~)bf\\K~QMvV/Qྔ%)L%sxYSjH7q`[^܍OV;A줱\w_̇| Nnb/F44-Z4ԡ)H=XpSqM]۶"xՎf3ƤjcʤHЌIꇊ#"5ͮ"%&X <,=o tjfS/z |7aӹNR@zbtں4cA!|s؞q\;QW ["h='UxM[gq6m[3d6cq D{A^xxx G[K˘A")0 ;HƐ[odyj~Wf jdTZ@'>7D-Q'-]E|qa^֮}ӣ&,wѲ[B}9;7J0\ϕXy F7MĘE4βPG< j=0?5>@x$kٜMClC7Btem*+ bEmj*ws‡{7 N@'*}WاMG<5YrҸ0g9æc,c. g@뺫iJIe/Ρ{m34*:њd"\A:Q\!h`<@59E^ϐIvpCn[R f(H10=_uc1Y"İm EoM7w*&*'((] mpcNenbhV5'ɱ7ӟĄ/FoV*I~jji 2h\e2ҍ-lَBAԟ>>##F<с>e (~@kw,"5E#Ob+0~%Kt!7 ?y7o/\n9xۏ8= ֌[cVI[ z٣bͳ":C%{}oG8;xE)^MKRh~2p8́r¯lgkKB7QוIS243з ^,eSUc?\zJ>[x1`%*@@8Cia }iȓ;'uP8:!d-!S# HH8S~IU8Me{b__)A:@.(FR*棴EšnBe2OEx=LD刁S'Dq~!gRIַYp%:%y'^04UD.+^٬W+9~@a O[ϲ} MݧuBmx`yyt[GPG^xH}I~LIy('`7l)>ǚ%%o,?I4hh!jG B;Y˅HUKU% |,z>㗌DE7)ApFmO9U\NzJڹ!L9'0 oj_][@fHήՄ>8sh$U8c "4se^1tmTU?&1}7͈VC|C(h84Vi<\>:dUQG2 m_ t}XqG}zh@2jn댇Sb0x[sk?F+IbcQNP%R!@"S,ZI0`߃6ztD#+5WI;ke`UŸ.qza$( Bܻ,H^X8֬a5FK45޼`*Ů" s)B¦d()UI%S\AJ㭲'c JUlƱBȸ3T!չ̰ih?z 0]JFHzYKu # :%o:'GcW*UdHk$O"k/… ؟*U8-pT"%XH,g6;?)=km#~-2 ԱlĞT E._>o1O7>݂$ endstream endobj 169 0 obj << /Length1 1851 /Length2 11690 /Length3 0 /Length 12853 /Filter /FlateDecode >> stream xڍP[  0hpw 083Cpww]r^9ޚguݽ  $ ;2 $%$ll,ll(44֠:Ph>, `P$A@W$䝬vv^66{$A(4[7{ 3sׅ32[E9uEc5@ blrttB掎...,@0= r;L(m@nn/h-A`' <@MNY_&wtW0bc Y GiGWG&lv@W_b*knсOҼDbc;:Odn9_+0_hj61ӈ- $'oҫ o@Pwdc~b 0}mea zAp:N /:L,F 3 0_ W [t^`L `k2:zW\ `0spxy^Gh:*6SFfˀCBdJWt] ?YKv@ohcaoʫ|_GA:KkA&N6+| 1Adlhl/ˮgެ- eş+|Cflz8 _.9u0u)1qp@7דEܯBxR_!!v{??/Uo `7*x,JE|VkNkOEY#~kb~ 9^M,@ ko;Z?kV-_|-o:ׅ }}`ڷ@Q뜲>_# _ϟkN˻GNk_E Qf!Ƃ5mUb$.ۣB'ɷẒy{& 6b?H/tKlWXUK^uL.gFn=r =qr *[3QLоJ4 'Y 绚8Z"i^6?:Tul6W$|iBAJK%z`2V7iG)u#`[I.O9菙·)F28&=%L8۞ :çOz"Rߎ.AkɃup1I wR8#UDl)X]@i]&̅0mulw-.:A0pI,X w?‚HBw']z-ʜVpqM߁t~+"^(r/ e?#ؗ3R]n,D}-@d-\lت:oZ~ Y$o5*R_D?e3 c$pz6 /Rp?a}ce3$O~;sb}kmm\6y3%8hcL0?|(uJ.7'S-t\7|)D˶nNNUCAQzL4U(e,eNzKN1O{~4}R02^Y|M Kr ,Bxc.-kIdμSeΚZ;[-w؛ʹ6XS3Lrnؐ-~N,&LJ 0kj*p ,>I| 0Rt635S~F$֎ۆTʇ1):[Ӊ*M+9rd M4?qILqk&"iϞ/q(¨Mk9"]zo+HkI:TCAX{DXF( dx"b Jg@J~c8^lm8$HupS0pG6z][b* ʕD]C=y%F.A}EF߮*fM(_#Y" BE1Or /L i_Ta4ED&\' 6 xT긖Bq_IRUZJ/>9߈UP}( ZvيF@IqD~iT ,*j̷̄2젷ǀGKQ2hFk,8/Md7FÞyF36⿄d'z3 3X5t+ZQ)Yh ]T>y|_YdH$}wgi̾i7Q|/~#$wOcJGL*{UW(.}j8d%"VLh{_BuXsJ13V;a<OiV $So1Q~~f䭶y*á[AT37vnJgyT+061婾=%gjOC?CF}cn`=38,ITp{UFMj1򑼻HqmKn9}=7%)~WޙH$Y>Ws"lTd{vߚd/#/Swbm[me Y[*a%O|qO)' .) ā~MA>_UQ. ;Y6xZQ|9NnW8 #Slp!V?4+L̏ jF6LwOL&#}J:9j\)*Tmo֗#a:M>>s?{v( \^;vm~58Mlڧ5p㦎 ~fs ۱NOBT9bP-Q@\e^4k?lcfZKdp;eCd*S5">~imSpKO$sFR! sf6_HB ).8rk T=@Qf4i)XȲV;kU]> H˧l[]n{aI|rV w 8M7. #*rzlaևT;'Igtt&9Kw-wJӺ<2?9`f8>r͇w 9-R2K~ y*'m vI{ck™ȳ= %8ܿCiP0{L:C&۰$T: ym./ApDežԌTc9e30/wXJ 9(_'q{8!] ^.19cm+m[\zT ]shW/ASVy 'rϟMRlJa55>/GY !ӻnh |NcEX⒛䷫Uuav윝X!}RKah,F͹yjuw:cM}}A{-0l>!}5@jYWj lb7e Z97m)ݴd{bLAwOԵ}upӐwB]0=/@LX|TxŻj"Ff=mf]!{]"*ѕ( .cs$ 䧬J+]sQ_7fٸSitkI Yu|bԙtdu3#u?jGz7I8-תh[_"tMrc<13ѵv-~^?g.qwf.6=x䐊ϭJD=Ai,jB9)t+ W.Eبg-&"7itPY$yyBR)O&k@/ _PQ׌$N^RpZ&=̫ݘ0,h49۾!;jU$#ߧB]0ƽQH {L.aH;L'xL4[$0ӟ1u|v&jC5]>&h6+hJgj^҂ 0N 0yQPnĜRŦ!J-`|9-x9q:a08q!Եl)*76f@ǖ>d4ƈfX:9nћ˖SFZֳOiM[,ePJʊqZ7_:"زg͜ 5o`l'V(wqm [ܤI xO(%IW8nSwXoïUAb/Ccz[hP'EϜ87Wћy7R}@2qnY^rh)Hlyݳm˅fTw`&~xܘ~yXX-([3PF?Q{:XVQ,%A{zoԔGY+ItG[KEv=$8[ܴqo=+#jbV2KJ&XbB޴%jZTkK7$OW$D;"jї+wH7 ɘq3ɧ \C1bߞh/ uP%)q N ҃45ٴ;(DU/amRTO3diu x?M4? 7Qvٓqe,F-qƖ`Ve ߒD2jqsN%^UGÖXfoTP5 bF)E GIA< Yͮ Y Cz)йYf ^8G+ + f5k^ SyrY,Sv:+IJo]?sTH<]#z3,읬 &uAcd#rDN/ uIFTIxmo5"}[H;$~$&+3B ):Q~ݮM=x}WnYH&:+%Xl/htoG/ qU]#Q3̩&W: 46?бʜ+%5~Rk8CIMSѧf4uo41YVݯg+ vt6 F ^8.C# ÷_CЎB'J|ij ?'lqz| Gcjq14(h[|22 7Eֻ}N5< Aӄ8̚n/- R/<*cz[$IMf- ?6QHDZ95MQ{_` ۍRb0H"'sFvLBVE}G\S&bU =5jwì@i;tojRG0Pi0<sQ͠2F4ZïE1_o`ULkb;MlBQC>jYiL~ @bbrx=j t+ȋjhh3.Sm-o⑱gwgeV Q}* s}|V.jN*-BLId\v3-ΛOHtK$3s4d!J[@:CxG>Xk̎l°$۪D9Rsp.6ni4*,YvZ!M~bo$C"rrK>Ɯ%}7z\0m^JN~Lf1Z'_IK`Лx")F M` bimΧl,U}Xfp~ɤ筷aT0.FPdi̚KZ,PHSd.ԉRLnt Kuarj~~Xmj{jIDcAg#y"D۾{o g|HywZo"ێ3䕩`K9EF^9%_Qu=.vͨA&e '? ժȱj$V ʬ Î$Q–ڲ!*ՙ_R_M+fp>q-kwm0/c6 }P#KRk|%!u;:Ե1[E.\߻lO}݄@?G=x=y6AiVR l Ѳ2O3{ "`w/\,C*1wKсD ԯyJ>t:MmIшFM HxI=Å o,qWͲznԨ"VJ*0 4[lQx>A2 :N9x&&\0,\~kŭ%[Agj֨lk ~܀̌T~qB^.KU1XE3r!-sh I/\ ZpB[Ie2çr>qQ,Yx?5@ޞ\EwVsʛKAu^qZJ޴b򏆚>2ϫQ4?;FtjW K>4<1[&("r_tvPfGNh qwig%ʈmK~0^; 0flo%nY/yIC?[ڧxMpc,7XB-Kא% 2VRw ڢkA 1pXW"sIXFf F@^Ͱ -ߚE*t&L%dXx*}P4ܬQɒ?SأV/E,2a0vhb!0x׎jݭI/֬/w49Om;ʵi2,e#_Z쥈A~,GZeꏠ*/6}ʏζ0E1cM}5h5;C{7ڔY3lrTľ`듧hFxҽ'j}})~A0TҊ\QɊoؼYD~q.@qc4߾ai滃P4qU]39Kk|;J U}#a*:+YTUWg DÖH>Ӱ\bn5VZmȐXٷ#: k2' "+&!7Z^%K>JP, XQ5D} 29?Kӫ Imձ.}PQ6u4^4}ٮᨹ&Wj͗ Fݧʪ^hDY[ Cg4L{ XhE!Q1V@-tsn)kʸ =1T 1̵wŪ3 K_5Mzi<5pa}e /J]oVNZJdw-.Q(6͡ Z=R!Qeb wӖC [|̮q rBJ<F|_Vcf_ʠ/tcЀ83.sJE~'wtO?#bʜlcUPFp#psLrJ5܁UUf7Dywg`%;"x'ۭws ƽ0fHn*G35L]dJRPԩV3S!hNmmr%sKIEtBld0ȑjt>Nv߉ Nk̺Т,p$T:(>o~:͂wRmw9jy>~+hQ! щ3_g> A%. ~r}C1Иɝljh\ s)q96ֺÄП^ $Y@t ;\n8~wNe.󚔻c㴾Kd"D컄[D;0<sޜq3$y;j-:rS[vokqov/lH @b^~zeXkX6r}?;OCˋpU^@2 /Sf8ޖn@h*㣥}=h/ 8GKe>5ΰ^`bjOYR_kcTT"K{iVR*UwF֙pm5F7 ;rZV qxs6aR냳MT$vTN>1 \Y4ˌ9r[Fk~pKy?8ߨiҬ#8!$4\59NôtYx(| JT`CyR1?R΍M5=X3ˌ~zGzb_4ٍ;Tb'\,tw@?rEi@@(Hd nY͠oX<T}B%M T3s*3Rt¦ea~ Qlo~>?g&qDdh?Q 5XF=8&.⯴cjom'*;^WTBeꀳy-CіH}-KQIݩہU%oqzHwMQsOs>Q{mhśP՛Fý)ɽPh2ILGݒ1|u/ 0 |Bdzm]%8;z˥zFr4;V4qJhu8!Y}$ё "U9rX\i|x!IvXgIoM0!f@،E endstream endobj 171 0 obj << /Length1 1500 /Length2 7172 /Length3 0 /Length 8184 /Filter /FlateDecode >> stream xڍwT[.ҋ(M&*DJ$! H 7RETQ HQQ?z% F.,*/A @ h 4p(CF1}^l`q|PhC0PW쎶x#=== hA 8h(j52@ 3)+`xBPPw0P"Zo?ٿ ࿓!W$ ;a.P ~!.h6@l߭C*zv?mQ0$- vWW(&՟ Ş7:p߿-{vHUWH9@1}!1 u rcgE"{P=Cꋆx@;?H`:TǺG ,Я, C]bCu%]C?#oPA `>v: ?}G:UW؃g?$n ԅa#U2;Rqwq !0?,u1Xh#b7vv0wc X9 *0//7%8z`@aUf}+Ac%}l(VTCn>AQxb/k|XA~#0vf=Eń@_@ GbqXͻD"E8@ȿ` lQ(숿o ڒL!l%CC3zJf4-$)[$jVU,:u~-N5>gUt`I:6{tgf S4RT.Y;>~{>&{rҔk-Ѣe7Ij3h.r@w/듐GQ:Yw4:NH焙9O*(܈ˋ`kI>Fd^/>=;3|n?O;Ij#ǫ8pܶ{ikʼ9!]r珸&M2 eJCM)=`F7͎|}/wt(pκb}o^f*xxXh "|]EHXʷ;Cڢ<[[:8NuT3Lqt}kw' vEWv LUސ '}Q3 ?i' ogdWiP% ٵ=&V$H#X=Mfn:Zﳯ-7C "0BsÄ.۟wQmp׆OzߦAtJյl_ i(-lWf2XPUSXZrT?EݶH+,MMdT]w`wo3\l%F^ I2)3CXyiaEJz s1&]DfԻ(p.=h RX+'PH.qPLuXO }g&.00dBg'\Y9޿e~|=Whӭ9SY'u#NOco@Ex;7f[Y x!oVƵ/cF]Q=gKo2IRj<^QgɶajqVӷH6 r*ju&[ӡ?~>A(|y0$ϓm0WQWOUYr8V܈5TiVNg"8tSŜ+yII(] 'kF{Au帽.{ղ2qb30FǏV|638(O:ֳui%t4|:h^{ Ўp95Tc_zgBa9ш0!Q? V@EOkЂN5g*C#\cPWr`L;@@M\#uT< ҸTB?ʫ)*t:?dg!UfB%42>6ʌ8S};|{yV<.D43#+ZCu7 >v?ʤޠw~}ϴ]\m ݶNx^3ȂȆOO-ypj]k}yYk@&I}8Y!xœr+nlTwZ- !G>E),N}Ha]ŸOjw& QVtόlF@y}G! K$bt]ؤ"H3?f33cyO8RpKKh61f+܇VP b#[/oWb}"^ZJo;3_0'h|ͱTJ N*ލǢ{fB> kX. ) yUMps{yXL YE08ʘ7> vYHRڒhJ+_S:lOs.^98{R hU$ocaD1>uRy\W2`{(2Bd 1Wy9v:w2ǒ:KGZUKn&ϯ]h}_:^py$ҨT&DH<][=0^X"Hb2|ʨo;zӬ-)5mݡL :/ ڻz=Ji c 鶵.?A\3xejayrdp|\ýt{H vaqx9](fJo}5&kkaU^JǏ5٭01ğrh?TÉog=TBc8 ?W{OyQXk3Qǻ8bdc ?[y;f7Om3”zG02\7Wk6mw59Go֕O!' RpXhOS$9O z>A7e{oi2K zaۯaghWqKQhWo/c[GT'97eo SsWc2䴒!/7}:k1tI+1%#^|ZYi<%!SEMxyV{1iHPr\M[2X"YM 9`daRPW-+>hkB^EE*M[U 2[̢#UkkGfvŽAK#!w*<:cZ.)qd3O'7Djae]:_P]<(>>`mc D 3X "{:~/bQ7;?$&ROm wE*@џfҚ֔H&I^t>9rVAA ';>DqV[ZrMsNֳ)X~_!5 iqC;t<͢l!$*&}evǪ 匕QE9ZSq6ڸzHKMes)g"kKSrтn.e>k6I Sw~Rlwbygn٫[QYz 4"0L'o|5[p.yq~v9Im:$[ V# e?ơ(ʷA~& _qm,mzȲQʬaH"8O.gn 3s6f_n>Wu8}rTiN 'A?2Ls76f@M]y_o+%kGIJwtiF}DMiLCj[h~i@ +14 1=\ :P\Pq$8e\ [ X5dO649x QIͧc^SHOfFOByp PcyFb}$: rs\wDR?1%.6tɟGMcÐb +yHeϡܼ1Ze[*iíRoRLvzHDf)oπqm[i5K:zk.T2vWټD2II}`Du^l8[sp9eAП(k>jZېUC>~zg{BAAՁ#|FBq#Y%)]싢o/'U}ZR}?@ٝLӜeȾ}%F+ fm/m-OK!sb=$9IoFO")M:}3=p*qcIF D;0umCPO,d1ZbcuHw,Kn)TR1$i^m}1K6).xkuG>"['e]iDISQ]'U10J/pRf:\MJ&@<)խo>A ~~+~\CAy9 oW_i?M p'12/CZMj~IЁ=к!?ۙOBMݼǥXVȤs<"Uך~͜d/gB$dx BqgMGҢZdA/?X+^ 5*-)&C"1͋C]p^^I^)4m/vTj` B|I k6wO{~.GEVu8f9%L̢{3EZv2QDrgB}3Б{ZH{dHv{mR߆cl)-J;ADZY>`)xgx9 J[ԨP%kYNf8ci":" 8z֯p󌞒}tlmSq{Px<m<]OoiX8Y.4d14F{L,c-V_E|'Èj6~v w!iWUԚUw\ԻōBW{=!-6eфS[Mꭻ? #.Gg"%_SKCZ7m,\8疞,H-b;M̦$QCKD[Jc~*ڎT"b +hqߋK0X;szF0BK/Ik4o TQ1dR&~@!G=ziJřKėA'럕tMݑjjǟ!3?̓8K8#6&c~2w./;Z3b%th[qCƇgB"+x@mg1 ϳ9#wԹ6|&I߿T#al}y+9,>0^ gkV}swnWM''$Z'-7V9|(XQ=V0 í=p:ږM-UivIaaS'|⇾ǯW!Dv_]޾{pb&gC|eJE(>7Zˮ.Knԙi+[Pwɵ>vq;ގp_ gYoNT?oWJ3f/{ZYs*u]{|j&x MD;Aq8(\y^d[)[Lzp!H dI7)QFgqecn$MHPuElv/vU%M ?ͱqK󃼛k"-ZDsRfP(߳h˿}GB|(t/JyA TK9rG,: 91n C0J/](-vZI!\&1L@]&u&|qhI%K\^ՄwE:?]f=Ko\w?_3IPӓیE!Lᴙ\iYfxȅ.IO/ocfoRvCw w`FIHu2OSQ_#G`<1Y (T5&,\~&3;0niԪAEj GI˅H o_i[:f0l-'YtX70s8_Vk*ƥ5nWKzL3<ƾa4VjL!6$bͲh{Uj~@ڗq5]|G$/#5@7𫔶3%Ě:y컀l6|V'roMτ_> stream xڍtT>!RJ4  %]R 0 0CKHK7H7 *t"-] %Z߷fߜgg9>,z<2Hk"恀9 aXXhg_fC; DAEPp@!QCQ0tC= @X䐮>p{6Zm8ܿ2.0w Ѐ`.7;@zH8 h(/!%9^p@{lhB]`:?v= 60&a slSQh܀A_P+G0:@Pg& ;Co+etЛjewE@(y9e@~'wuB ~;8WLE/ʍo=  ?0o_}\a_\&`p; =`~'"@p4fG o. xF^Hkcjhde?> @7 ц*w  .U_ `k:8L- `!? RpvfP_zo&@y3L^4fd7jp"f G8Ys#`Hrflnԍ0iC_v3OCa5x|B;ԇo r30HMgҝ5xm~~_:( QM uSwL"mBkCjdhx?e|(Cw+Y.'dϪU(tA-4er}Nx7&O0ǓNi&`ҋwchEKw?f}?z\jXfk{MyZï+}Gly+.!1fO53[ IzH:zgG* V+$V"{QKI'Wv1C2%qKadP9`gpz8S}nP۩15g&lc2zюU6< |$yA $]; 5Lp*,s)~cEE[~;CiT3##V/fy^ ]NgM{5⨂*(ۤ {Yl_fTb@qDPDʹtn~+ d&AyC@wR^3/biwTRs*,g)*m +a)яX5' 2Y#Mxd44prnS1A ӦVk5 wع<.w]TR 4XhnvyDc`|})$jJMdjxS5SmR[V< =LhP 'cxEm*\kNB k!rPFA[9ΒWq}~ *Wb)bf}#1D}X8YoB鸪Eޭg^b|ȳ#˷QZm5t{4DžRLUQd0l }^&]R$TzD6Aԓ$`q/AtB @AV&jҰ| z\״MSo4>=>VAJk'y ^?jIgʪ|eLu<>.I~O"rʀ|@ճpa~)bqU}gtܶք1[HyH#Ҽ $Z2<̷jc:HʪZ y#\g=XW4H6ϿVIPaȓ`"P4Tw7 5{eXUƇt!ӄyTLS_,)=Bz^۸ТeQ6FMO~bK8JUDv}v-J{5sqWoR,Nccs @+]^S8W 'rfkٰESv(Kq==WP/`/nz$ a^s>l8 PaJ9n]-ԁCMe4u7:L5ʋ#`Dk2KLƒU)9*uy!PA0T ȌßeƇҀ", GQՋЦo('֣WK,,䖊eo+#,P&r-> +;z+qDkLsGg]u%) q6C~a!"{tA%}pcW _\_ξ,PR_xu1Mny!;wp7~vOLf䟹&3F{[EJT^-:ȳIYDasGJc y2pT >L&nIkѳFԳ& GJGP\Etvj\.y "ϿWߍu)l{|vD*]x1UHD?>hfyk $S "zfV8Q9'6NhTv4xxn0s!kFT&ݯrp,ɠ' 8z_?eQKgfvM&_ 哕@vV$ubfi!jB1<dPXc2Wju>{BM'xG-J :o+Uen?ݸSLTFTvK%=I=-hˣHړ4k@Rݙ֜a@Q ڭx7M5Ngko4+K `aX*K=t2VCʳs0y`t+XTzQ&K$K~Sa#,mމ!)097֭U9%¨8PҌ bލl7kȁ.")B,CZI6_F{&V ZxwlaYE]07~^޿ҹ[rdVݧAU'z}6MJOb%NwSkOP>;m l$2u^ێ4JsTzFr #7N/s.eAYYɨRIUZ%zx! &k-g65k#eR'[GC1&Uw(};枞iwWUTEߟD9W-= z1SEȦ;~TRV1Vf19w]aʱL=Z5yzM29"T. qOpۺm8[js! K A3 ׺-)(LDB埂};Q\ }7oIV^CV}4 jVٳ_a}G;[cs0_uQlz(ʾS'RJlB ̆jKgs3'OI~[{0E9]4:n-rLcjy~^ 0O-^,avyVsOb3tZGҷebEI82Smz݊^E;  ᤴ7 !ض/8Ē6QiukH~׵K[]\Z\eq?ɥq$-DHmKw|~ܧ PܝJ޾7UH6tW˴I &v֛9^YvTi"30jbOca~8Zd1=fA{04*tgϭ+CQ\Nw.DS}$7x}S.0s_upzԻr:SuXv}.u _x{i5krkBit?ͶT3su={Lb7JV|C]^H̀̍ Rf,%}ݹdC]nHS8zup=#ح'D4LE{dF`Dl'4| z/0bw`z@qduSY2Bg=^|ԐHboMʽט.!7l;L)S#loV߹r_̝&%| tnKkçj3O(${sd3Owvϗ/~*,{XI6_ġ8kk% WOJڴ(FQs.nA{v E_RTjPג\䧯.ScqK:NEF"3 bR[ƲY=|]KԶ W _u,T`,+Ng&u'o( !;m.;ԌWPTxjoeqy% l؈,HJaX̱}MTa_D 82InI"X63]Rɜ DY8A:f{ސ]ê}UbLvPr6ZoHuijaC?uC%Cq3xhv)}kQ,cioqj֑JhP2Q3Aw2G1C%(n#J*MBv7w:-hɷE^J->'8rdjIZ sWuj7 zZ^k4xn.^oޓswvEoD2QEh71XFŲ`0, Z^q\J":z3ZJe\ך [Ry"n`Uf]G+N Zyfwj}5mh[O{Մ))/WF/#UZDa\"KrbCE ؼpgEhKVRvִ`zud;eB[>{OPp$$xӤlUKE0kSw!ƨr]}>Sv&X,CZ>*'9uGC|J˹㽙`﬽&+qG6-bwL_3 Mً L 댹afN$:r/K0~R RrcK9ͦq[e\rĐOΠoɈDF/hI-Hv]JKNg㊡R :q< "gBZrm}2ր5Db9Cmpl-Ur~{MOq1L2upo=V:.֟%]*Ρ|J9Y[57=O nGԒՖaRQ{E kL%9a]I-[;<☋/^##U9Bo´LS5ZJظW)ڹ9wK)KC"\ 4_4v+jFjJz٣bBT|1UXSe%fB5KLtp[Fx"SЃE GP->(vi,f2UyR2%zZw_{oṞjA hnۖXR6q ܻI!F ܊Y ݕv;aɔGӺEhh~h粚eQڹ(ZxW5%юI!1N> stream xڌP\k-nAwwwwwn% n nw^սE1}oouCNJ/lfosgf`ʫ03XXլ\lÓkxe 4vČ]@vvW3+ ?N<1c7+3<@ O.jdeaJ?*Sj377'_a[@h hjlP7xW*>KFFwwwc[g{' j:%@ tr~7 P0<9@oXAvf@'(9@UZXo:f`f`'`ne(J1x~8ۃ݌lM@Un VO{ΦNV. V6[d4eq;3Q{[[3Ĭ{2}̭7ang  HGft311qr%j̿Š|&V@xogc7 o#xff hae':H 43?O zx1|Eh @`M2NЃQ2O3p]-hLS@w,{k?$cbg2b_. F]_j @uu-=h &凌Yo1h,lLo-We6Vv@%{g t4KZ-ӏDɿT@wJq;S{+0vr22AhF;{ Ԟ/ rF AF? (qALF?( V.A(ʮeW@T P>? iA|(?32;8b #R1w#gGbudb3⟜l%F?T Z  _y9~]A{Ԟ207tO0N2eK,=,vɬAm~MߵhA#jڪAr/5z?jP0N?>O6Ф@ ?a)~=?'*hkߴ`mt׼AQA 5lclT ],b Qw9b f/_y{ { F8P$/ߩ^3uu7 h 4oob5V;8 f*5S#d̠u[mqeֆwmIO>φ *SXpjB{>/>![ː:r!+߻Iz UޫEx.Q ,%3ɚ!q'A;x?{s;3F$@ {Z䭳0Z܅KCy6:E-r"]Z2WDDe%J%ʮmtNn2 NR]Y3"fMaKG 7sՎ[ns/oY$m〖n/m#ݾ%4►+?y2@Ati1PݒC.D t{GOs}.b}m̢.ظs(|r~^k*nF!)o-R+q6| A̓H.q}bMZwwz8R/TJ=@x$~1pH$8`붢B^=Bd8vS3$7.g4I(^8_j"nĶq5Ǻʥ)e}Ŋzqk>4|TCDY% Ij9ܬq'AU>kwazl6M^ [_ =: &xa; j*:^.W ˔ݦ޹EK`vDڱ{g^YhKFP&#tcf !~_Ly^d&O comۗ _-w==idF]L1- Z^H ٱ^SdKzݗrQ&PtH?[*<6{(S!Ll1(HOl5ªp lWLșRiҏ%'1ft+jS1cf eV{B"m[ԂI$K VYODSæ1<0~G0DЉ#P[gygM+|ǘ&qAՓ4m¤d˪.m[D? MCI@5jQC$NSw_:jEu.]YZə V VQgD dyRAT=T1F*յrn ۍ[p$ڈ|7o(d'd6八>iX31SLHS3V'O;hZ> X̊u11VȠaEU1O|jïǿ!D"(+qgM#0ֆƢ;kd*f|.e˃123v{QdlWYlWB7컪By|l/\Xr'Ȣ`7oQdrVI‹6l87$@F'af_z޻ߔ#ЅgNOeʮp] ).rydAu]恩L"[5$CBƭρAhYMmՈ6|hsY%ק"b@"blأ0wA;+|I OwU?>1Zn/}>=*ߙWj%Z/?"]X?4ǰ!hYᔂbx}bMyEX^.% aO Fl8#_"kx6ߕ*gš.cxߩR"@Y axTS1IaTv-Q<7/k(sV} cBtQNԤ*m~s!pBe B&E~y$$نb 8h. f)R:SoC0E#E;x\vV{t&WH)_diTZC* j yTW9Lβ\~7OӘ -Y67K U6 *>E <,&e䱒#<9_S7KM/EJ )rz%0|jG+èyY0[LHU" # fƅ%QWe\%Lٱs1CmJ\qd2!:iܗu=%G6dY j>ԻY"-MrAbogQRocDMQ_/dZꯐ“-+RR0=/D煠׏ *,tʆz4aȰC{My8'ҟF v?X}l (mr_7wnfzFN?Èפ; .Z+~4j>vDr\!sLYJv75ue#~Y՟zpuNW%zϊG2bhOjCb!ƷWI,J׃>zI͋> )=8_n]`H^8?Db<ԶZXq7;l1dgXCV'_>0gܼQ 2Qn.x>p&a#j̋W64HJfo\b.~z=3u.ILvϼ܂ے౴\_Lh`UR}jGL\8h]ʵ2gusdM @'.fٌJ* I<z͸prk[w Vu[67OMXlb8I1Xw #`p'4U[5 \Iti%aYDO{v mK~Da&F%`ׇAp#{!<"eٞSOFyhCH5(FFų zO ? yY]`Z =D{;l~kdG\c#Su<%вȁ^nb LH`PJc}ع\G'DRPڟBIbJ:,,ƌwb]$rzѵ=W[+'!i: ,nX{J3. '_3S]!%&Nr P^IgCV sz1^?8<}ֺN4/(˜zxyE_*?)IAb8$%ʉܵMX}fbzI@b/{k;,2MB.WU<5mO?q徼 fMPޞ>K`iHc9cVJn096B ߂[F|x! +sBdg/ XSiZwD-m7~i|ikz;U"9=6$!Gr+3a1,0WM#5ӨG⽈ {ƪ5p1#i9Tz^:B->Y(ѝ=,φ5iQk f;Ag{$VDxYHIθm*p]ΥOhoA\*zdOymGI0Y*K?n¼nYbҳLJ=a%2N{.߬2^#1_qGezd|.B'53S3CtWԻx𡂖 ޒoRh_Qe)&ˬ8P;X10)쇅I Sy@j@TիUWFWLZcD/<5KїLY6<@Yz܅U"]jrI>GQ3I)%n_;_%ӇD>m吡_)mAZln .z;OY=Zr;%{yPտW2Q С\[yh_Q`6Y'D@{_zEeet>zOEI=tq\Jd OA7p( J˴Dfeآ'h.h(.(\SUe=)}iu&aMVHiL{RAJ4Yi^QjB-F6J\ `ݢS!tS99mMpvnek{is.6I =G̾a c(_t  9 aV"Py,ɴ-1s;XWjR0 pD–-#wy =˗9Gcpm+[Tj"A~D6_TZ68vw#6 Rt`]IE{r9l-# i}E^?~m-iv2Vl`8+C,)GuJB]m$ 2:VZsyc PxtŸZ%A}AUqJAv'̂R:Td<|,i.> >;3M+(ێ@..g'ò<5+fcf99,T^@'K>'n\~$DANuODmYXnMnGV7h[㰽ɂiM}{Dim|x>rEŌ>Ȕ;,}T7o$Q:z h2W)ءs+ fh)ryaL0:ͩ+:v2v\]94U]p1^\m2B ! |Dv`l˙hR@8ۍv 2M阻ݓ֠or]fG>AiWpji*}:qpTvk%L3|,u}ϔvۅ1vGHAG[#O3]:Ըԛl/6(T ԇrd}8+=4OsҬJ!G}<uU!!J=tLTRݑ}͛HQ-3˓bHFxRG?+~z>}6wae^ϵc4KB,ql^/tlSX\Zׇ# $z5h?cd?\YЀ*4P)l`358! ӧ1: [UF;t\OAc2Nb_ClLQ"u =/9,+y_0ۢaM^BF_óo{q*'+ݓU&To,*D*)% Ý-AB53zDo^RBlNbo%2= BH>rEcb};`#tO8G?{to6K`R{x!^YQk?"]:YMuqYDLb Y1ڠv.Er='6; !ii+*҈-A/J'|JƘiT K43 ֞ΗbL`]ܭ!8pgJ<]f$Qڮ}# D]% eCqjREڶMKcqqD2G.Ft XU&DM!C3f7qⵚc2 )o8L~a̬O,*Vߤ{%SA4qB@l'U2O\/ .5{f2PuD3*a2: i2:لȯ >+~,ew 'K~JQw(bWO56msKUkE8qfu3mZ_ǎoP"Rz|\16SzlFDZ_uGh() 'CNREmS77{!MR;WosMPWȷ؜1CD~׳fidfW/ ?/zQK|;h$Gݸ%6Wg>ǬDq˒aclw$f0S)Yy>/so#s@5nK:{@+lHB@! AmGF1kڭ$If]^9SD%4s;s}  1mc& R0}5xw&iee7O@F~L1m{Mu.L Gj%,֝]g}:1.Y؛8޽7!f;`'垒 U~#ЈIIΜWg=TR"p ~㎴hŷV,go䶱d¡ц'O%:E T qPHDU>rv076Jjfw鷡mmIJw!)JāCjws:ˣTme╔sXINЉ΂C5aĚXoxOvN:9Ri7p~NR}+b'³[ ^c ȩI(ȣt;P]*n8T$& PY1`Un@\07|sI=(&4mqq uu Fs5d-̝ 9BH4ƓMH UA5ަBVz4C ة|Ҿun$kۆai FUC}:oJ`w G!{;,Vw|7{kl-Q_|1M3Ρjv)7#>WujT}&O< !ӑ5Hi#/ƷglHMm~k? 2LY~oJ񫡥h9fh5CNTY}asɟmPaݴ--.28G[}ntCkWLYx ~Wgߵf;@t0ы2W_ih~^j3}<΄]2]Uh>[Lx1Cl2;0m҂k$44ܓBzpSL "X$=^k3g?4$|˔ -ܧR /qD A} Ftnc3ut^uw5JsP PY5Q_t-Ica4NTnHRb+#Vcb(7i7F#N8,a-5pSe3?T=v38I> Y' [ ?W=Mڟ}4bvͭ. ,)IԛX#\_WM y_2>Y!dN"4ec@_zΒUs}HTfw!oCn Mz7 ,m!EN>Ji4Kئ~-%v{.T 3EJq2DTG2YH{d` G̓NVe&<+{g#4]D"S !S}i"b $CH_r8>\/4HC($`AyXB{L|Ǖ3mL~eK\ B`3Koy-d8>񔄓DĨ45 *#Π5eoS3*6jٗzʹЍVH;>Q>-e/_)jI2w4п'0$;͢6~៚*/ HoE|HW}O,|^$1)% 0!4xEi[{G>΀c"HL KS˂O ᳇UHL&= wV]kM.C=hlW0cTLA(sL统jLH &DoBj{#/1xL 5\tSMJ̪mEu՞-X#\%` JĊv>A?TZ؋Oj;ʚh"qLJUW<((/9%G@g7|+z42EZexC12BY24\ 0LվޣMa'iK'//.|uݜI/#5I|hg|rczƼm?oQNAd! 1@BJ LQט0^̓V'`IaTiQw#nMbrD3qO(WIh~勋k(NY ܀<(im9f4DG!;)%$k]^h̫|\7CxX7d[ms0۵bh}Gs piD!WW p+FeJ-l:`cUFâ:v_r&z|q~^N#i⾖ĄϛeAЦxidVܽɐ6j:bZ_H9 l LyF W4AaƒCPIY3A6.]x2K+b~Ϝe c Pkevxv]G)B c3d6+E`:|%TluE.MdC{pd'<9C4֯. =ׯh@vHXc<ǃ%W,: 3C@sDLRqO_'mؾB& *8p|-UfjNH%tFvmgQi*x09a4d) N~wpน3h=]htێ`eᒋlVa/zTSd^Lq0x=u+aG|z[x>i ĂY5vbL۔c`a+O=bb'Q 큈o#jي! Ia$4'(~R|PtN+w5Κ1JwvOУ+:i)jʳ]a'K-+Xup!N;W37sBhC.>]I*pD7QH:}$xHۈ]|"efHPfꤰ$23BgE[ɑݍ]3Wٷ]lLz Njp»+A+زsI n;X ebe.~Z? |rpٯit1 ,rPR+a-麡~;Lq˱T`v cAbH`RNx5[;VCtxu( *xOKa W' )XvUby@>!l.Iv8H h Y|HRCf&@j.G~·?Eeu/Ws/#{ڂMYG=X3DJ_q>ߤm^n 0FxqcD8^Q5n?k@TWMX6(gE T%0,<Φ+t2$2ql tX#K1w=̘ i'eYlΠ3$7}1xfH_Ʉ |Y&{X_EɆu9SYeNلBӦ&SdC#˙.L>~/nni괺9+O $y.J-'݋pa.SљVLq婆(DLNN52\ 7Hӎ͌|׋dž 9r*Ŕ3J|Oiz$ȆVb$!xz_2sp,,uDJYVT_ǒ3=꒑\z2 ^qJN^ޒj>X3)>ߪ-F\:I9XbJoN[F/6c5 @PړTQh =x'bܗ>5թat67XyYt.'5gc.mXp%cmJN"-3[JaY_{Kvb7R^0NV<: Vܯ/y _=Kܖ .4bq]zzF;횘%KmI6 G3A}*(Y&㯲BP˵#Ɠj[C21$^Sq6  Blʀ͸|f|``~wba]q5ʦ):{mIUt}/N!1 r( [+zPgUn"}yb:/PHF=n^N\YAV.AݦfL}0ulSȤEV& Ïi7IHS)AvhBD`Wda3aZ˻HC3mw;hٙoe[ |DG_qF`gǴۏI*{T>! hs!wQ ۑ2{k2ބ_lzf^w.nT’4D l:v&J{ɟs[xFxȘj+2(017wdi&׬x-ҟV2A}G1ՃQpr.f*<lM߸(Q(+b@ Rrs#X2KG_nZtC!wVE٫m^!ie3ǃ.\huۭ$m5lSh}9HY^Vt+&h/qF_Cjr)?TIJXcp:w+)6j9ߜ zȌ|tBL{v~ʏE*ov; LsAGXm1#Į˛zJJ2ˏbmN XkH>qb͹$$Mf:r0p .i/۱.X mX ]b.uKTt&+vrwuH~M0~~b^u Q7ƾ7 !ό7#E:ЙdH)ecvDN Y-R^dbצZSlOjulzڒSpm{j/ N[:Q Vfb\?` 9YAM]wUV8H)l* Q`F̅rϙ$N$bBSe7 Avë0Y*Np~)2RFq*ǂ-IdZ7k|*Y7iz.=*U k_$~Ğ8)jx"WkrS.GEMC }&qs23V50suv#\DTd>f[l&iyNݾ!*2"@?%Ry]!YcR%-o0ȡb{~u?"9#rnPkqj>kM?09 $V M{DdYg6 0aIQs aĶҬǼ\Xb2nEt(;!6fbTI`F8G^xD$ul<ߞhXhm ahq+76OM .Y H[ "^aQ,sc7 ]o|PJ WOΤt.S+urh{iT^F[6s6L 0eOWTu&B^ē$ء\@KtiSƒuۃkI ,C;% ٵ& +eU霧4ozx^ڃ'p`s jޘP>Ԍv02`\h Dk$ZH0ְ]Z^s Xqr`H#C`ChxyHP:UK'3HRqZ@Ѐyqn,G@wUYJW[N\Kj4 Ԫ&RD8}HI}ÌՎeIby|ƒEu8dSV_3.e,f|?$kE ;YEyg%z8fi0)Z'W;a o߀4 8et)+Mż5-F˼~ZĢ̠#1BOqǼ]y7!,s6QB1 7oObzJ;q\g(D߂Б7`tDY2YcXyJCHd #fe`5-"ck,6wI5x= 27}L6I|SVثsrIHWel}VڭQڑ!^p(V-2vDbn*̠.NH!uEg6ToxIbZl_F;_q pgr(/P6^xfxӟ2B!qMRP (biy"_w (b3z HRN }!q-MwYbF mޗ7Xo8k(n3u<7 o8(z/ 23um] }AHicVu35h|zna1%_@Gk:c:w˴4܄I k?bY:wWP*ch'Vn%ڃ|,:Տ$*(fs6>~.ݚ8PJ( h*jg&܋4Z#Z)n?kϷoתs)FheklԳ\CGYqt=ʋUͿq0,4HJ\e?]&v4xxZuxӱO!9鯫VvdoQbpHD`=;r/[*TWA .^O/L*reDXc>H, ݞ2GѥA\+ ̴Jmb:d;r~@Vd͛ 7v .$$v'/i WuJg":Nnw`rO9[EzgJI;MNˌϝɱ]WkJ2Q^=RO=/H!AYv#ћV$ i Ёti`A&ғ,.a&ŕH>HmM֔HCmVڅŸ4P;~ spp>@hw!ߨ3g?XgADwHXoڧͥ`&Bn5 ユ}S0EwF I H'Ŗ]Y,V 1dzAʽupxIwBG (^%!"2q< %6_)4Sl#Ķwj-mݫt\yb"T {o얱+N.$mmoRiWl9Խ%LF`>8hxZIRC:Y3Ŗ?^E2x&X.^؉ [L= !nXhq N7Iψ M޶?oe{PN*Kkϗ IAuiMyU85)V/lG~be$YqC3 "k!/8oLX TJ Y$Yn ]O۾tCSm USx9Z:L}ƮX΀ު{^9mfV "MkυxZA>/.?y'٩w[Wpv58IOrѰrRwek؎8оUV؇tzvOQYFGΝ'-lKWZ xMlۚ'f= ŏywoq@ ;g%㤹RnkBvnvs , fu! `4@mGVT Md* ]p(-=H 0ɝ7cQuيT]#1 3Po`{\V@;$G9%y`¡C^[hΰ[0pE6`& r/E#^fKw«U47.E_ՕqKU.?FBlsZ g!8|A ֨ɪ.ۈR9Ys/o"@-0Lx ͶO;ɭ}`y=[1AAjVqn?ݕ}Y-=6t?I'aeyH PS7q#։fikFbK{+1 NHمI<6s:8E[KM/ўYu,]s ffAC0Or赿9ʹ+Cur%wha VhR4^)=F \U haVB@Vњ8ӷ% *0}q:-súݞ]}v*T[w&`}L^ѓ c6G\nIqdkX8f=~a=ڕ"eO 2KUpmyYMˎ.N̺ pɑ6=22 ʘAy_gaL3oeSZf9z s$&J׃Ľ O [W$$ޘOY.{m>AN !c\\~7-Ύeaa7)Νƶ˶sZWm|D8vң3eB2`sUO@IShyظS;ݧطQw1R:ޓ:#Aje|NXǟAJs!/GI]~8I|PF}7u %檧`/jr F1_7zw7uvKlkBr'{6 57:'H]qSiƮ&A05/dPU,B"8\ݤ+w??H+X ٔjUvu((%)/s?3uZa4U _92W򚖲nԼ 0x8<%WzwGPTS(J]2>vͫᗩ7::b#qYu{P]tXfFFv݌E4r(H4ay0M#IqK{ˉZnC:$ډ}T|v"HT*vvq+Mq"}jE]/SOxLd?ĬͲ=(/xHS4e#7~ʸA4K6-ogCʼ8ub!|XfaX]؁PzmX=;m?4nΛƛգ MAlF+Ya‰}mbb̗` [6"1XIDOq>e4 μVqO~~#Pwe4.pŸSCkFsy`ӷ.8E@L"AwyfC[HũS~]lӫ^:3xD#'9&TңC]X0*`0 GޮYY!e"T\}Y ٥NFe>1SY,Q#it녁*hsPec;+w$$ 1kOǑi=rKܘ s=k'X^!>̗DGZpF{aP'Bed\zVHenq9B6?* arDHk F=5v31q-iSBxL-\^& bu2EUW>ݬ .L~MZQ> stream xڍTk6Lw Ctw4 1-]ҍ ! 7yyk}ߚ, :ܲPk5D||<||8,,`3b@Vp`GiB!5gPc<Mrap-9m8@11Y lchZ@.mP0p8/;f ;@ '\ wa<8,Xjl#< q7@_U 1ci@ lecuq!;3s ݡ+O+5wV%Y]s]<`_ xdE<O  ^݇w[ P/ߟbk[W'HU/ fDĀm++7? C ہ8~V  oſ% ` A`?0< 0Cd-j)iip.o- D"CXʂ_U 'Y+'aϿ`pK `, >gvc(o>Jο /=p5 SПqق=\W B̀,G+A:`0g0uZ(n SeX>VC+!6P_/$ |p-FHB? b mA޿ @'?%!? ?zDDvb^ɈyA7"@l[x0!/?1E _%x`MI{G]@ o +,}mnhImHқn8I?QU@f0 S%C@ҫWٻby4|~[wFXb;I쳐Y|9JF 87#coٳjI8q~&?|W ݻL(PHFXv_=X++^Qmw}.a{?YY&٩(yQTcbZT]J1s?yivNk;XOg K}IIohx7puzE # WatXHI%Ge,->ë3tzIc`,NRzp!0(_5BFMX[Z=I%Ą(/)>quspH|vA*,Zql'KXq&=i])D0<=}Fx-#$t|:MK2e㎅\%QPЉDXn3U6[v"[%?ƨ  w_{dNY(IDp^/[5ѮiyIi7jP_lL{4y% mv:Qh UD}CudpوVIꮰϒX(.khqe_^&&VhLɾG_c)19XM۸؜*Q4Im0*P(z`3%I. mRa a0)ilX?"; 7H &8io]s}ЪLxzhP\v?tLPGa7)ijٳ#Go"g9Z%d4IG ֪;P|TΛEF N_cL='oSI'MG7|8b >|~fXl3!ބWA V򤅨u.Af1یpD*"#=I-85T3{,֙,m(={ m/Ghr'8CGNSJw;-͇| ox8Ş&^,/m66ߍ͔S?5p/\7G}I,b%<^cVi˼Zl]Ɯ%Zp92/(r5=9tvFgp;#kFҶk5Fmz5Y~[rˑE]9n TR.Yl`|]{ zmѺ(pӑ^yX oVTX;9(f_KqIZ18̞O{i1l@LYp˩*^ͱ30h%ko@fSSK_&y*df?̢^"2Ә|2R &)S]z̟5殮̓↾@XΒ 0 Ls%syEmo+G%TFCs1t1K{/>{`DŽ>ږ(I/Yo 9V_Nq:~{axc}_M"bpl[H)Ȱg֒;ExΚp KѤpLPV)a_vn ;_5iDa{8oWZknvDcj%|IY |X?r-85=.LA\{e8Wa7lG} Kk~wwhz/I E= 123 ̏Ϲ c}˚IِpŒsx)XQ].ʆKJ$ 8śCF8]Y3ɷϵۀo \=z{1cO3r9ny''QtHmRȯ4i"|k|fcFa%#I[,<̯ؤ?a:(.w1JjI`IYUcˆ,n s3v@6TXE,rK)+Knv>7g=䛮? B Qß,l%O' UNtB ';ijGd#\ˎf%G'+#~ibװ ۢ]Bn{N  IJ@x"2&Oz;xemZM"v?Кk?̿A:Ҩ^b0 !o\Q=D}Ħw%K,1WB6< ^$RJO'uk܋h"eh,G1~AK0q1sњ>M=YXbj&SXrPTփsv7݁H随OVv L6^S`Xr*21NsS<|8+jˁ*V_5QYC϶qZךq/8A0F\Bՙ?ŞsEIݢ*>}'NM-x5br x:tLp+p-Mpo9 Q\)áH"$@ߖRK8Mn~s}m}d퉬o@9ӑڨ)Y l*+K'bYhϲv>I.PEů nTMH^^H D'%-qOM 0L&: ݊XqTaa7@JG@(@v^˒ qdDFEMn `I. ?MJOE 9ՓfRn\ TEӲb)찜&#-;XX[l?Xƨ$ jwF?ܩz;TֵƤ=K/zmHF,ZE:[xvjQj`KB9~hKzF1ZpdLB0nҔzkB:3efۃDlD +5ū*0)`/./Jc]cI^QR\̓焋L ߡ kV+!5}g#їW^V63CpJ܍f؛0Ǐّl@z܄q<$04lj']^M?F<6>?48:J*Cn6ff1a&%n1uwB tRk=}]11V{2H}̯GK}w=RFh1%O:bEqhW"^16=nV-M<yʀ<>SErOQIs; X VpMˮgXc])\8VKdiX3PYS1i6ٯVh#FGgwedZ=GYӎ/Ge$bYïa(6O:.Ҧ`zI7ۍBcsOPNPˀiSo3+IwNkdA gfa`-62aǯ_/4B5x}Ǔ-EGT%D;j4lSo~OGnZiX'bP<(tD%sjt,sJEiR_xٝb^<޸[ ]RUaKucvTP֖C~^&d`*f)k&Cظoe*#f%miFLm!=|.^ՑL~oiN~(X-EWCKbױocRSI YbD-6z+ MפH{fdoҥ#^?oZK.8fy/ r0mC&acB)Pڋ6l{r*m^"UN G'>YjoD"~/p'iR0!ٟt${ OcwԽ",WpO/8MhU=Z^ܞK9'/܂ZגLv,w4|:Oݛ8'1O+X7v{`nۯjsB:vl _Pmc^ AvfE bz>o#.*8Væydm姜h>!kᨒ+!0h7UZbBefNG ZO) ؎z<r&16L?Y]QjF_.,!IyTUL|+fCH >RGKri?>mb3I$$5E9yݴ7~܅!Qy_hKwYb1WRgl4/GȚ7N,TwtF>ჺhT΍6ulf=7x&$kTOJg^oɝ [gOЖCqi=,'>c8XwT2c ZpؼK)Zㄥ3Nc W! J=}0^zNA?|r{>6U\6U=ɏh,4'm!&#)}hf%#n[yn^;jn(Ty7+Xq!ś26x%LO.=~2A&IkHn=]& (^ Aug *w߾v،X_Z֟dE3?-U.\ \앝kRiun8e*m:ų2Cg#h Ջd1m Zvay5[A|L)gbkoFgI>)~r_c*V˖ŪtdbC0ű /6%:Dވ;ہ_ڐgӶ5P;!uex)Cu($nq){C"[rXgzD┆ M4oTqu*c\3PokK3ԁC\g7;@t`L@_޺c]/o!AY.CQf|(K|6?d<P i٨T($/k'{jm~(UJ[cu)N19 FvH&nE-h/ J(-jek:>%OW$ПYDGT<$!lu5CaL%.([t}Q}?[) w/Ǜ[F~i̕<)b֙k$zpL}Ќ'QS (r kAUvswj|+E^8AjO}|/ t@őŗdrw]x455ӇLˉ0Xj@;dXsO· Uۖ7՗;ѓ2 _>kxz4ZT@\bǏ}3t[~"9RƑRCUdxEpAqi gi}jecn˒ =&ò;IL~LrMJ7I@[C 2vzstdVqḯ:g'jE*w)&-9Ѕ{hO"f /S Jm(C\GEmJ;\csH=Ϥ, &p'‹ ~p&SiQwv8d@Rן/O.=ڟ9M~'-Q̴+`:RaI?f4Ƭ[P]h\g4ILiKxݍTd(E&S:QCJ\[F`pㆷ}fFF+M1N8drPH91^twk.1P><;~YO:HﶖtOSw%{Ǭ OQLϾ]e^:":NPbU+QѻSHGglbW-UFIIy*Bi4&x+sykG^= a75a]o׃C;p< x{[HucF=,MK v ՕW .OB}`/ |sXeZ4D#E@tZk鹢pwfda>pAҎ'MRe[Ikc&Z$XkŪemOSGhW ;Sij_9|Q a Lj a1IJ|F_ruqT=+߸Ś6lfL'0$9fD'&Z7DTɥɜ9'VkCJj䆀ZI7~IrA&huhr_|yzӵ6: endstream endobj 179 0 obj << /Length1 1584 /Length2 7387 /Length3 0 /Length 8418 /Filter /FlateDecode >> stream xڍwT].]"C7 ) 0 0CII7 RJI H![wZgyk׽fzm=nY; X Epzz|@(c33C.̆`8_`B<jUOOXODb< /@ 07_#a>l>11?`- !+ڂ\z0[l8/7pfxC]0* r]63@ˡGx<  ?xBz*-70`7/ٿ ?A0W7uC\-%u a /dA%Y¿z@p8Whڬ8)@<}p0o?U VQ;F@(Pv}ly-PC `P8b~xaA^`v[bf0zxP ;#SW65rr00_F{+Ujۇ6c%|K \0́B@ۇo/{GJ.. ? WD< ajkr5vO @ upl A:&k_w /x:?Q?L.3~!a |a>!RaؿTX+F^H /x~#~o$UX4o=F^Hk=pֳ<4?epg)N`-V"̩&Zʛ{u}a5:Ѥ'J#Q#7w9k 4ɲ *aʹ$Şe0aD$-zh?I Ռ5h&\S`rn* pҧR!esZcM虖_L ==U Fnc! r-qf _^ QxLA\>gO^6X˒Ǻ :NBFhkBm!eN1RT-esGhF-jJI%욤em+,!;GS2E. Ϯ'Er 1T^}GWHZ̟O_dyN'x×uLJtT!ZⰐЩτF,bFCE <|E@Խg45p7D}ƂO(~؞n4|M.R&[RmCZ]߿]jis,p)c4 ͣYL'PKPg[;fiu %J?V䌠Pt9Ȫz=;1Y+[ o 'Pg?um[+,toB pۓMag Kyc6lۧ|jUSG] *Ŵ9И˫sҚf_rnqϟ_>m`siD)\6mpc^ ֶr27gϩ '=vf:PDO zз QNuλo9]rۯ!!T^_fX6 gMDi2z{˜l;fOdaw̙in:Fja"g$uN2 188q ƔHH_*TwR>$,M)`%> J Cf0 OD8>|Bs~Sۣdl?2(b,~M{5}ʾyٶ;Jg ,;r\B% ̇3ygkӵ7Aӄ(Da9s4XEy $IqZí^T@ړƀTl?;|GR9!ptѩ(cQ?w(;܃yX^#4;L {fBp=۽AoT\9t7B3i1G_JS*ū.[9Spo2v}A ѵ|=Jssߢbb=-b7?+J;*CfO)Gl; +VH`[Wȉ ڨ)LD }x2Bs$YMSjL" 2oWWoT_;} #-έ}Nt\4WLX(qfcOpF74+Ǚr닃Ӂ_</f>ȃd%{F ;lf?bS10\8fOdgd1U#y9ӂQFU6Ҋ{ĈtXp}FǞ~BdCi$NbVP*Rοy +(NP8;ţ,ʴq%/VG8 *Bo\̛u&6&8B@ㅚ:m-0tT@Խd^%]shxУ@N⏉wxb^_X6/]OTڮO3Wm6%o-lfZGßcmהV؜%Xix eT,\5}ĭw'nWP‹61u&鲴֤ h{`N@jՍ%#E)}kq_`t<)T!C~>T% 0Jx%9{, `Tdf8V@/eڋpmnR&ـ\vPUEKU2Y}l0n2( ^:H%[-UμEHIdt؝hTo*Y@b9CIw㸛Dz T(''M\i/ނHTE ך^\`\4㴰A_*ݾlSMZ%sN0xc=YR%\Aݢ>N`'*PU}׮oD$Rȥ;1@hr4!A4)cx<@ޗ>B2aWq ! I>a]6iV:w0wMuz RPOK/w >̌Lr%m/xlrz4p摎=$S-p6#PrzrS8]{}xw[h _g{r`F6a~=,M&OFY0a}Vʳw{N)Hɻd ɠuHzm],i|DO9Ṳ('R~_{&9?Qy, ) T=SՂK[E &ۘ_ )&91uc#7>  ,5R+J)[oeϫ;ԦY%?[r`0ߕUϏw3(ӹOxI#'2LI%V6%Z^D}VqqJ|*̀d 0qt=} nS?  I5^GAɁ%wYݹޡָ q)7ےNSQeSU)Զ2;IڎCoWbn7:P$eI2c\G$"aʼnƆ]&wըWJ8墁~[5׌g*$^w)q犧/٪Zvx;&ۇ?\9*tFaubs[+Oyul$ 2#R8k޴VMڙk8qre(ttLJftX``8V,fc:cP6nbX1ѓҖanX_֡o Rqrp"*#;?zS]r̷pNznKލ%ɑQ:\QڋꖱXzG,LG/L7 E*U xK&_ bl/¼/7=pT#CPh_1{ 2iwJ*Vy'MEǎb݊]آ\TM+(a(n߬M^s[VWngP7 _!nyjAH`HM<'f @Qk(؟6.f<,|Q\B$1dtUG)_j1}HըBW2`v8F=2 i&6a*pE4rCT߲C-nݞ dT",#<bU4m Ut!hNq_"l>~tfVA!qyojXc"(F`W r{C=@5|@<g#xDPe>t.FݐзW&+[/CU4H d?]MY4/_=fn`9Ĵ0VN\%.;J~{."IӲoLSqH"Y.ޠU ԬW]6csUU2dxiAGMtY?Ú`{ A/HͳuxspRE35tB׹PQxy;e8V" `U%k[^St=SU7`޷y*{#.Jiw{06`^r~*>\9[#!v) tWb'룫vИ2J5ٸk _EM} ?:+!j:qj9CGxjLV1=vF0Mk3W^bGu!)e9?+3p4|pYe`ܝl|yRS{!}([f¢jAw\͍XbY#(ٙq${9z9PȒ 9 ^ˌe\}ۑAae]/QX8 >6>#?DqA)h^&Ul`꠩ E`S'8 ɱ6,^aX>C1wW3l|ґny̐NN-w$Zx MXХ@2u3)P6uEK4`S]w@3L0w}h,SXOzGD,tvÐ?dml%,6{ǟ[p<}lw5?ttMox9%h / #"{^՘޺̒i/ĀyyK<.v8_OyqkGiH& 8[u:EěL(;pN8+v/btJhj}@Y򛧒uu8q;Dt,hE| ^yaP& zM4_ѯgHdM;]?cc -\ɿJДߓ߫`S@*~^F}zeŷA#\Z`ƀˎp}Pu\r)8,•92ԮG)~\nnЕk4UԲ=]}T:>BǗ^ΑNE]lcZ)=޴BF px<&}^?&nLC]u#&T9aZY9ej(sQV5e%%eQy)aɭb͇Cs VicAU{T`%ĢI27y꺱lSNܦz%MCkZ87ݍ#. YYk I%uA]nDKh(d mO|uJSTϵJ2m/Z] N#eNA<?ixU|lYҹٮ;BeHC@,j"G4γ; HWrEJ!<K ;?6֘(.^^5")1 sKЗn? ,ܾUYHkY7A.VK|"!h`ִ8qӈʵ~RӱH!gs{;x{& n4Iȟl?rRocezF,?f^k5pkٶ}~ǚb endstream endobj 181 0 obj << /Length1 1444 /Length2 6237 /Length3 0 /Length 7221 /Filter /FlateDecode >> stream xڍx4ֶDd^{uf01F{ѣE%z N[֬5;~>{3_p!(~!@YRE@aBvv( 'd7x"b({BPhL&"-/@H $&%$.@O)7 h!$!2B# PtxBAp#@P?BpɸPR>>>H7rAOod;oi(q h/8 @0{@:|W޿A῝@  w8Aap`H spD~PS48+[ @!PدA*pwQH_@=! mg~4CzA4Ur1g @ _y@~<'t AtP^m g(0O/'8-TTWR[JJ_@$_R 3oWHI}NW\hB\(~oE 3R~۹;V =,j30(4(ъ/"ՠr?yAA{eC } mg?U_&,*pt#D -fB5+)t!0*` @ B F^0/?Ryyzy})@  $:FJgle_(cy^C%{KsQ3 <.eh0T֔ u0cOcS H9g"ŻE6_m]w"7$w32 Tb^.cKԐD OL/Mӱksx~k։YCrjTŒ7:@GՄP=S.OOf+vX²_1Uߖ2 ଧz[F:l^1zwAbXlJ`jX~653sFw QZvn1Q8}BvM,Lb %1ǰ+t%=;&=>o/w[ڇlLTٻ;)MgxTPڳ.;`Z?bDVv۰;m瑠0v~}~2q7jKr2H|f)_ie٣N ?m6[(XbtMٽxa՟Șf|3}W qH]j5V٘$ڪOkj~ڌީ;PۭCTs"k/uC8$b̂UIP;7 0\ a w7Ǒ]{0.R2 j α$~x|,h/OU{hw!Jn nғfBˤG:kv-_#4h|' pv{!/.2e>9.jI[Zx5J,V NqK;꾛,JS@j'ߢB͆,qXYp/F綦 lgٚ8⿜ېKғ֛-oWWmYL8`T̏׭PvH'm_yb*g)ɒ/zL_f%ՎFNSL*Oe>f̆ܺ.9z>OT땇a#Wl0ZfWֿT}\r(϶9ݒ#?vD2]RncJqI&l Y = &3x._ct##OnHW] KET-8+˳B}Xj3F 6Zn:>pv$ޛ*sV|boi$z'!`=?}8ꊾPDb|ha qg*.GGCӓsPX/ϘwQsXWymoMVu =<E7Ox7k[̦.ǩUô/yPg ସ?e (I:T8?cr>?GceJt~Lݻf'-o;PQk P_n!SA,Os<ĩc4-8~Y5a0 43LEA)U,q3Ni0sxB]Iܛ[8m_Lb{QZS2pJL)y8H1t^L$ y6ڽ[KcՅ;( =rWMP`u7g}CxxTLQ?$,ɑW_7 M 1JBn\+ @ WL+w6%:nGLjn(/Ai{;_`O݋NWrOCXGOeٷڥLCO)(\~|I2aB[@{ȒHUd*C4/SU0{bsO6Nv7Y#{Eu&O{tFIvmUe%GRHgYY2 ȸ],bi4nAhdM|6L~A2[k)sb4B&^g¢ʃa9ߦR31 l 10  3PF+q>"z.whDBMjFюdH!v##IVdWY6ʭg>8v"jS]u)em)URt<|=v4Lzw8WNNfNq{Z,LP#+\&!xgL e'Me4:FjjSdi_ubugBWp7HKa~q?1CGCi 9 w鐯C 0jI3eghSpd.ru b{c`¯ɚ5mit/H 7n,3 a YIegS+2lF/q7l[X@R4YK#zfl!e#jI'M'WUf8ۯW샌pI>?( !_vs*t8Axi< &۩?^: ^0՝ZMJ(=.eN'}nr$Y&Ū4NTR $Mi|&$֙T SEąxdxB:w=k `}%W'2bqPg^?L$0K7yqnI_~2N>NK+M0UUT(yIp*H:4U9!вY`ys%(8/;,J~Th:\^[E^Tx\)2,Ly旡4 ~ᒚ$ʟEFQZeg֎q.*.$T5zt8ce7\nK%*7-$#WBRzmӑ[ +O4(Z`*%1-}= . gIDȢ刲1͘@qZ$yUkq}6-n%kM*{=ȵ8yAyŒkL\MA;j@*z5sRܳѾySi%[$4]$[G˳:XT,ۅzOx*0E{I$v|w?%N\?@9niе8_w)K=R34h3}j4d e“fjLϝ%LjK98ďX#UFI_Xmb9 `Ʊ?5wMXč;ByNKy S6Up|e3)s&fZKEYmSSYpNx!̶"U9ޓՌ·/4/]8;˹e7:͆ Zp} 6RܳTH3:YLSi1]B( HOQzP0\ᵾ{s53`(EnA>'YMI-53dFev(9__Vr[j35މ,s%jRUpy. Eo3so z \,Ϳ`n"T^ K9Զ~cFwH [ Y}.@@NA\9Lx\VA}?T 4`Hjt^xYnP(f]+iypo)y O\AO*-9?͍Q&S<ͪ?xwç( \VK̕zBl|mZLi5a̺ `rܳ]rSYzsۮ{˛p+#J=<,R#]3{7ڋSoAx_hWoB %V߳D8tV߷S=je䉿:ITOEѻ0J>ݺV)]P0n9s'MZڈx嶛{p1Q)\~!k$6 D-YD}o~EK\cͿ飋4 gg6d4:[r!G/սɰwTݽne}w-&{$ 4E!~5M?Mys6ڕa!*:#iTwgle. ^#"p[-\v0[ܧ|j# 1tLZPqDٜkOWt6X;oWBDɌܪ[kجA%EUQDdՍji}L6{_JnvUS*i}1?EԃfN3 n戴 mb’TO#?,[y rcj 0PҸsCy>(\~d9ٽټcSϯOڭG?% endstream endobj 183 0 obj << /Length1 1372 /Length2 5935 /Length3 0 /Length 6880 /Filter /FlateDecode >> stream xڍuTݶ-A@%Bґ.А%$A JEDtKA91#\ss~b30Rw(, T3b 0XeĹ .3DdAQ@mPDRVDJ 2"1@5'(v qmEdd]$ AqW0  C"p>(+ù {yyX'BF,㉀ uE 8"pc= A @a(8o4!PȺg_P E Q@{ G (/"C=Hs(!xXÂH_# *?eu\@ᰀ_!1}ܬ3 G{ -<%22@; sU ;( Ov@ 0 "#a8:FY/Bx>~ F~Z 17OH HKd,cEm\-=([1cϿk>?kEUG` 0 %-)77twwC].> xzCmo9ipGpPQx1 p$7@`$7e5$ a"[Y`9X.xs_u 3Q I x9OoH8 Og ڣ1_*. v a?J<0~+ֿ@x#` 4L.ܩ:RK{_Zb-%pܓu/gj܇]O3z92¿q8mݖ2G޵%w怸G3; I,Po>2IyB yl>q!.\Tpւ]Y RYpsZc-8YZS` &ZCg8#H|ƻ4< ɲHZ&:_m&GXn})L]#爠]8(S凛va#VbLj 춺g8Ј4G’g7WyH)Z$ vn+憯rǁw)e%md$"t2tթjܞwKT(]y7w{0!ט>Vxb quC 5~fҶfgwYߎkuz_<ٿ5v1vZ4[:mϧ)~x[~鞰0lFaP`y{s%I:|ڕiZxUH|V?*/}i;`R$1QKA^zCLtog;UD~+3 DEpd㧏h^@idJrM\UC4 e5k6AeLWwK`9w)B |E r!n+uw7NJUԀ4t/X 6L6 ^xV٩"j@ټ0;ŸkjXGLJ3=(N\G&7inzha?7r[:ikz|c| d#q2|PPgmKqS%PDYٯ{>o={1)]="&njyXE`9P^xN(e?>ޕ}@:G&*9rd٧Z6'b-*]m(GʱCИa `rv* RYelptcq>2h?|wBuuZT!<,z,w5IGj'ƒ*˟Oi8fsNCzorIw.`gd؟Kx^x0#ye)p6yIʗ4?{~rKkG#4 Gdn>y,ȼa<AҾ4PN""1 7/JI딖a f&l^- &v^^ao@ug(3$#5#x ;X{O>}:Ktxqqc Ng)6gAKig/+޾~c9ψw7A`P "E] nS̴SPTb)sc,RG0ϟGd6M~䗆(o:0X BEO>ȯ fMtCdh킻 `"y'*f:DflYd&eK.a Ob]^}2jD;"޴&:<ǛTnupEWf5³ &N9)+yi+Jn+d~= .-1桽έhetn~Z^ƒcXi_x-0=آKCIQ秛ȟĂmHnEOZd08vwvxg "Y;#6>ݲ&8a_bEvYi:,$#IzCmַ  acx9R]4naK %nS nQ'}o{uyKCiqő($I_c gng^ËՏ-'8Pzf&I.1 LRV,xF( ܋^R;}OX5s#(|ijCf&{=ɅĪx bO 5[2 !PǍD5=3eXUhRqS3g;j T PV3Q֟}+mфC#-_GFoQ;e:GuҢW!{YɶZ8n6#gَVe[<5߼S.%gpg'sPpH)TR{ )h/|/xEY'Q2n?իo#|$%um%=K_'S_v4ײyE8+m~!q(O4Uԍ~a a{ RYd]~S.(@d Of.AblMJ]fԗo7Ǐ]b5?i,/HH|ꄻ^ Xtl0ZЖQ$KC{kĨUqfb7Iv7}|j3VY9>#rUw{bmYˢ\8Lo-Y#yH Ѽtӿlx8cXl MN~e˛{r]^UҤb6`Lg.Okx1^|? Hm!UJtkѠu@RdavK"n,qqg1O̸.mSM#]ܛk="Z$IAua ( nl: ˯|b~(v:S4JigS 0b,ktm73%`SPF~F$ImtV:"3I˔ {0kHmťQ1QMsɬvEaRTE|!v//ˆvGEZ]U(*b P[9ZTu EݥTdU{$/Ȗ~!۞WLv}J&hݺ}N`+<`vsrN])AU0fv_Umۓn1c=3Y*ȼ [G^#Җ~|[,ּďpԖwZku>yIEmvc*|7tAZ#6qrxYh%Y ǜGqAzؐrHɢkWL%Qg (?"XۤY}՛y۷%M\ ٍizGTok95<[پԚSLB8*%yy#vm2,]Ֆޫ`Ik7,/*d~`N~D9IP|›<x'k"U q^C%t7J Wܠ/\hѩmn>ҋe{ŕOL>}7ڄ 1b!O7I0i.*'?2\E5ʰPi/U:Sv`nɋ5@OWg.4kfqqzqaEDBQR3}uPO{.pAOUћl֊J$v=g;`kՁ[p)\2'e WzVt<T' Ru endstream endobj 185 0 obj << /Length1 1552 /Length2 9715 /Length3 0 /Length 10751 /Filter /FlateDecode >> stream xڍtT/€t -)%1  14"! t#)Jw~qsZY?oo? zܲ6pkkxyxxyqȿ8̆W(&,] ģLx4Ԁ/|>a1b~^^] w @0Ý\v<:>Q\d!.P0!!  #=$zxx]y.vR\( qCl 9BnouKEx\ G >l .=Uu_\w N f:@ZJ<O  G?KduuBBG1+lᎎ.ܽ_k/d цuv*m(GfAxyyEEgl#O%|N6 ~P[+@A|? F!vP?ۿ@=fa6p?^1P]KP{|B>>~AǃAlѿ}ӿJvl/;?ci CB7t(OwEJn2? GuCI?[@TTR w[iWp5'b5_x }פ|4zmYq0pdK K醿nRf4Y1DA^k .3a ޳@%;d<<5-vs|NyW3,t 3ĚSh #QVNGO:q{H?K? ! ZTɭnEZ+M=zUCӖǚxK|eI_osiH?@/5k8d-@%U|ADFBk43m(5zO~Vmo|o $Dx`B FJ?na٫$ޛk1,p nT~DO!d,\g4$k߶Ex2%Ѵ/`=ZS(Z q?Z΍벊5NRn,+M*XD6M].cYWN gOg}w6U%~b>Y# 9J/[է^\sokŹ&ERQi(Vbv4:vA/M8JZIֽ^fD|gz YOfR?" H }h/p(OnJy -fDۑ(>yaVf-:Ըr[܂̫d`g5旵H~NO6oQ\4fF4>sħjĪME7m֪]):XS,C ƱgTF/:Pݧ&qSChXǃM!WMU^9ߵZjS.D~y7~B#u2^ ǬJB,GG{9 FcL:bc#/;G= ['2%GV-ՓdB/J?5{- 7Cn;C]-~msGK8b6]-tqqƂ>% }>o? *+kBn ].2al ] ނȯjB; %}#ufqP7n:"z)GӽOJx]kG<Ę!<9oinDUߕKdX<.JB :#S'_G}2} uPԑpRd'dٓ _T| '.-ee)𵫤X.2Ƞom>E5R,,޴gF׆mzP\ex/ ~xgg?3 꾄p E󆒆%UxMj5- YG}E];[bR0k}|#C`r~ ~PG)E/cސ ,`I3敊մe`/5!X*ʼE:e`t7>t=F+a݇I%z>]2U,k guvN>ߘ?=`j؈C6/2zmElKKԀukj/?fJ]/ԭ$lV;85aʮ* R|FlIIvQF!zzKێt KʡC5`qQ!o=ArŻٹ*=c5pFxkx2j+eEͮ!0lIYe 6<ߒ1d yF= ~^̑/?kcBkI'/'$$eVk-:Pۧ a("d! $f̲ ]1ʒg71~[<o?v9o܁»0z">*_hz?PZ|"nΎIj(PvR.[unmڛ,:Y}`a{A۱-q=b ˿Vpk!XfZ]N15V ƒv[omHA{-"Cp^1r^E,;؝޴#)Wuܹ mKa"c~L2tHxpaa%} IX#9y;RuӠ(Mj%tCбee3Iӌ_±pNu˒wL b7Rg".J iveGP:ztVu7[JF:y2KŝfNU$!-G~HkFɸQAޅ׋: 총ȨHLZthߨ j(dafbqyHa?`t{)Jqj,^5,zFMJYKV~ 㭜k(:;ߎvIT@  {t/FuS`t\#ťbRK_|ꍳ(˳˂R08y&F} Ϛ?y8}anًǔr R<<+Al J ΙIeYQtL9QE*o<| T# =QO,Kza"ω*{:%^q17G`!ߞ_}nAZv=/N^L#;Q%5tvr~UɶS~h.dJ1lF6d 7jLKXᰪ]|!+ܒy|®>@Խ4qDOo e]#$p&xY_'}y=TZFV0w2P3;N^IFȴg _yHpz~xHn#ޞ2g*]'vURZ>t;&<ݠO).TQG'"PUj.h*̠@w\7듨ߡU '&j$;*^(;gNeodY#d}uԺGBvVǗ"sL-R:+$i؆eӴ^ukl3PVGgfE59ٍ;d)m4ʄ>{Q->;u׎:,6uۖR$Wt~0^_+ZDQKw`m~$hP׽'zʖ9nFQ /׆BB S]rxtAܜ\ >rcI j\34L̍ĨNS }6M;nώ#uAK)Sv(BK/6"NNjtv[,%w[ay^}>;VVl^q#cUOdudӪF}MLz֎b ogx!)Nu7J73 D U %ӺU6-6^I0>ŕtct~!&\6(NmhdȅηZ*<ԾJ)׫lAdQi GqYe 审+kdS!u1Z:ހ"^_lTf@uKW4 JV}zƟ<:oĐ$qºwtp#nQW8aH`Ǽb!Y9v1e)F6]]u}r,+hgqx_ \$j}^ [,O?{Ձ.]r ^0gOߏkiyTybOh@3لAeo&L V1 bbFw_$pd7g߰3'amxDW]0O1(}>< x v2E/t ,U!܉_~0j7<:= ]+e9XZ+ZKvI&C|/a??>špRNlgqUz=5%Ytq4S_Y_xnYn9Whz~VOjp/Eelxzy96XL>A\ɂ} [pQh鈗L{iPnJ]k`2Ro7絷xa+F+1ACav6\(D([)kD[,&ST1?.tڜ94"N>'$v6~ ̵w"_CO5ș*<z*X2dyh(V9X,ɒ`vRYV=Sܯ,P5~'~uKo FQ1:9T{"J $u~[-s1SK{$ 'P :O!T*+)z|V9NlуlSnBVX}컺V eѼsL@m\GU{F-$"=mB}~ |ڭ>EVE3F̿MJ2X̱ίhz9]D0+adWEӯ|?]$Pkrm3?ӓ'< o}=0RWymFFT1Y̿(,SSkbdr??s#ϱ\Bp}kD~0n<#nq#i>UM*򲓛cFxGW\vB#ϹgEHkYGqߨkz !2Ǭ^<+#q:xēN^[nϱcP4Jm J0$.\MzP9'4̑E)S >O6{hfu/0XR,oнbArڑ<ۇO8& Tg.h{C&չ?%-6?P}O%6(qE# UȻv92gO#-p_'JŇԚ;o*7q%`a֌u ) =2VE9 TU O ;C>G {" u[0a 6h!xS[qu"D:zN՚#9YJ%ԇv ݦ'{%VE#qe6 * \CzK#G:veu7^RY3ai-Ml6/z@؞Wیr\dEAI6ff|Qvm?fLro47ͣ3-X0AN7t{B鲟Xw?驾(F@_- g肟N.Լz")f,9##5ȃ3h:z0~lR~cB]M/i=xT)ޢ0q;`#;2M7o_I_PJ QEqM*;> stream xڌP\ cwwwơqwww +9>s&'VR6%@N L<QyUUf&+ 95?r8ruȖ@Cwӻ< l `f0s0s01XcrX2 [#(=TfnnN6@ cC[9=5@dltrT|NNv< 6 3j:9@tp P09@_ .0:8ۚ*rE;e@ws oYlhl 3u5ZXr NnNtC[ A.ֆFn 0|go~vN qd+{mMDA66@['Gpݝ߇ke r2513PZ6"?23݌Jn[`Nma |t4tޞT/cfX;fp`az?f_>O G("BoUlzVV;+'Q -]?Ҡ]!ΠLyFyjoˉS}7 sg$8tdŒfN:t/5ߌ`P ,K0_jq>y7['MKYǟicVB G%rܓ ɬT M}8=/{2A%5V32N- v8ww ʴ%LA*KyhFWL9]A7|,OeF) 9|[g/qI'mT{G{}m&>NX&Z^/ 7`%)ÛyK)5hء79}TQUD=8;SO&n/l^cƚNsIeaZYH,[U U?ȵ-/6k*S҇X$d}B8T9W"xc⢤i-B4z'طy#\A78[y*\NlLRsl:Z})_Y8MN ,D5f _Gem,@ D3yQHr/˨cʼԦ~ DbC?T5:ݣ̚WffK\xnC~b!>J>66i:)qTwƜ$>0ݲ/8͌WP/,B}[lEAlzwҝX%Tcx:a3[e`1{/e'v1a+3B!QnhVD{k=O.|^qdeS)y]%"!gY\kūʾ 0Krd oeb{ߛNOd4ؓz] FW9%g1t?˾Ud#<;H06\iEɀUO .Gv2^NY9\HJZlV Ocz* }:PW8 y!sXZ~PA"tVِ($Ηߖ6 ~ N5R%WPBۤ?R"n R fo*)zFJ(# q|Ҍ[9b7Opsd`X^:Pf7VbPUu!]!c6mJ0ݱXu: J(`GÞXb [aaL^t/jtT8z9c,*/mv~?va @YJhDUܶ[5UYxA܀3S1Y.7.ϳlna{Kt_KL)FRn\?`l%>;O1{:5a`wmw"w1GA~`T)2ܖQ$xW @U d@::^:NX]aO[eHS=frC$onFHk^W#pS `&'rSW6קE.d4|{1cklmU@Lg8(Xx)]zS_E(KSp~[FfDtD}@,G F)'yUk{ h u>l RH1߆`gc4ZC/EsH/7ZN( QK;X l{H~!䭾yx#L "[ 6i3'QСW9c#Ίr3ozXs6,^$L:`JbE%K},HPy["wp)hNE1(bbxHt"#R ܣy _orb^8(ۣsSu|jY&ho)QcbH쪉a^7yŠ $=, =OIc K50].dP03;vH$gb|ykuErگ/Rp[,a5nDĂ<[m){(XN}XmSwfA*]@X7`xÜ:QҒ1cPbˍsaQ lX F54 |D$chX6}ԏ**&>iPVLZuޕ ;)!]jviifU*#\,|ITB;k,J#7eO1c]mPuKHSMzT Yw~_ ýE$ $o\IF MsH@Xd☏) a-)]gw+pI0kRkA5ȳ7a!X.y_P*Q* Tk˶}rǯNoJϧIN%2n \ 3+[ _< t0JɏX{b9{9(5FN\JTYU7|TJXާmM:ϩFRߧل)Rjúe..emZjluh iZ}=VE'BR BrtG6lC9pTQ|2PY#qrؔHb '/@!21=]m^TAǓRrCB&}A!W85U_ya\iHF ܏-|H`6[C+Gh4CWchKɅ9BǨ m=>/| 7SJ!j7n8g|KyS:Qoovn ~<>I*u*'G V~G8S蔃r 3toy Sg3j,Wf+0H༵adu~u RV%QPK,C<1sW KPȰU¤ ?FH>(P/))U1IqyA,PzO;B΃IgyjOҁK ;Fq{;_TŘ_ͱbE35cv&/cWF_7KʫJ%.@z3Urq?BXwPm!}0xWz,<"f(j ]獥j6S1a9kSmBX)9Zxs׎qBmn|E瑲T=k3X#tˡ2 g%6>wC2n~np6·U-8noY~N 7s1SO9OC2 $Qy^}h%yBd^֩*$z|jܔdgq{6FI[0M[8 S36Q4GvAaY۴@/{n΄yD@23说$`p N8 ߜ-ve\ጵ{0>LZD,/I7;xqY=$n5`UdJQagt* ]Qv h)^^ HUcˏwZ<"IIġõ7KgajW\c'L V(e4VL{x#/B#nN#a`t"9YE'FJƮRvpK.(ipIQywo,aAjS28dቹD;bV @7XMsa.p-A*cL|߯!%!ie|~n#unHD1q 42}WJ7#8HDͺ\-`YXyUYܝ2]t}vrH=~kHw<x [d5(9 ,3KkP1t$DÂ'R~OT:?:i!1s\Ezw}IgiV].i]U^k.I9Ԅ4 M"]:20,f٘*8mi檄IsdK@KƁ6_8m都q&+0t2F[cf5 !΅"h`h`]|0}bY4KŨ/+Zk3yJ]42 L6iA遁H&yɬ:1O..9ʟ2eqR =@SjAV<93+քhxN{Aԋ 2}py~]yUh &S$šRJ.Wd0rZq(a ֙_e[nXZ1 6wu_H7-qm J3Y{TEufb~S凖592<Ɩ,p Mfh9c<\[Ǘrzں51?v28Y=ɟ$(9}8h|>Ow~zV`m +/RHB @fc?#9Xv=:;zoXK=4حҢձ̃m!i?vaq$?ڦqa|a0B{Q'"tEDߣC$I>pip72ul+|  Dj.`|֏IXH!)#0ւ y$5Ѓ'@Av(05ۘw mRtl5C1;ef\ĝRsu4U)fvAI@IDaC)1yqG3֯?dwX|3 CX7S@x 6r-m'~͍%Mf$B9qe1TkF?|<<6nM/ݱ}'G/U޳[(ԚȎ߲I ,kw/˔q1™itzZ%|DӰŮ;Q}ߊ*X[g,Ƕ]>0#sY< w'90p_%acjӝĠ)(Hs{Vp_"]>b8_WgG9I?0/&=gt ѤTqPrdt'\:_AH͆  g1Xg""Hh+v 3)_(_)ac`?ĕ!+T okNO2DT"?\q%J?cW?6D<6! *KkÓIIR3HS{c>0%Y= 7ByF` /H]Ax/,n|-+Ѫ`v'~j]2zN9= G>7ȆXlfzZS.u >7$& |:d_ xZϚ <Q Ljׁ"Һrх{gL?[,F^Lv,FfBXQ,$'sQ/qlB1LD Ų\e?2{W: zCX=ڑq.}EҦ̭8f|ZSвeoU sl,"}n, @4Ttr͸`5{^\l&<*!Bd$ Z%Hrt7K]Q̐ ޽{3c#h}v/ku c>CiOe^O mvcE^&,]-Sy.hݞpHheyx$óc !`XW7Ξ]^({$  "`-885c: ^g78 LN(\}Q}´,]G3Nξzs=IXC#!yWRF2q_B])^"4a38M*\ѧ7ȟd$J2x@~gQIU%pՁ8ḏS#]M0OI`5H RXZg'-x7%9#&\'ڥ˂֯n\Fٿ)ʊvvv~G$!cqM!{$'4' 3]Y[,8`4h{YԞU&T).ti v[α}vL5|A Hm/?NNĠwGsĦ? o^gY^8ѝF)@=rFBbzCGd]YDs.YѕJw1ReoQX?'uc0R* d:c(Xh% Ic+ ]QrN8Ok-F=|Sݩ>}0C{%ꎢ LO܆kb};.TtcV1;*Kn˹CtX94L5E~ Tن#9(E}-ф .]ڪZ`1AVeUq;]ѿ,KnvB:bD{k)9N8ό; ^)6 "鐜zXA X"6 !ĒO@J~G+$%/EfPoӢۅ`$|c> ,O׍?{1>E}m^p2GfaROv"LV*|>6U^A"50{[2'tRlc 3g~P=qF7WQ2W<ø,B`PwN5@9c8ݧ,gݭp GK pcs&@FhR+$5u=oê~U[(<>)jۖCrB ~)A`; G Sdp0a?JȢkz=&쌻Y|z_72TH'=qRj "B&6)*R_D#{Yƴ.٬;֪Yov! YP*6Qgj(Vn=]c%% oG#3Ny)(6q%$忷=Ik[o2Z \DelUuRQh G!$" hz9gZOq8pVbKyc 6`݇GŋRZ}`/8E\D614 tuyxEZ[׎#XᝮdsiU;Cޭ7>H-LFƭ` h4]g%M+%^2+]9%BƣkZ)%f.~dOH-0.%&#\`BxH[lC9ᡕ%cdq 'R.G؃ѝ)&\q/>zx1iQPRW}#m@ T$MXMP{R<^}gCwB#xM*rBJ1Yz8!=rhN^)}E.^?׿Ǝ#:T ,]#uϯ2H!Ňkם1rTf/v~p<KL%1 & Qwe2uBLRq6X&O42|-j[ Zk򫴣Q΂SɇYb|*&f׆͋a\pGvJcB:2GD )P|&G zʭ*×2}1PTNRgk_*,!ﲵj4ËqEI?|.٢T\tAGtt@powiE<\`Rtw]Sc,uRY Gi0E헙+c VlKðd*1U:7VGyIwZV(nM,xKA&J?z<\t`#i7@MˆM'rPjWo`+U{Q]&`ˆcJ p漫 қrJ@y)xng0KFCc5p_5%J~Cq#֌G8Kl`Ժէq')5C +ȏvg޺p'MEXG؍0J3 OWP~{9Jazmܨh)ۉ^Ռz5B ge9OqlĵHum9iG; U_fqXLR~r5=e, Nh##øX')=D\E`P ^XrzPHOy˃n,rEq/lCuV3ɗ]Kd2lA*H1B#\ \qe1֡|M70]y9m&Oނ1a{՟heG;\_:yit: IThO&w>`騺XC@΄iӡ2p+3k1ߣTj.^4['!:{ٻvG^F[zbQ%869S|Lk&9Q҉#Y̆A3L;fSl u$6k*TN6Xb$:u^Wƫн4QZ}M&ز @܌HNݾibxe+^j ~EEJq;Y$pZ=oMua: ZrF?0YsM![.~ZJBIkPv] =8g^) 'omNS]?%#鉋pa WCjY_Ӷ3y_OZ'MF"<=qԊYJ7;BZ$L{Ljl9vںw$Ib3 TLXQG>A5l}0B䑕h' i6%_.ъe鿘\#p`2ʾ=c &&1Y5箠0&j^];:76_Цվϼ3' DS< #)nQ b«ni +MLi_XL܏e>&~c|0v.tmN!0x^_K>!2WLg^3r-.EC;)U"喚3a%p|&zoƞiOA S+:n{al&ur oZ-܎l7 zLίgyg` jh-I0B>d皩 8x[i1GӔ͎.HxQKWz[_@T稻!49E*Pj5{5 uMȨP 8PS.od^֠sډn_^}[zʦgC{t"ѐӃW,u wGʫ:t-fqQZ6eu/ ^df!R^3m=@H\ _Iந&xX8ףKtBhhϲ vظzR(Y0%tm l'#WsqU~MO4So2¨MLex+]eqY`E\MDּɻG2ʊw1v$Q!ؿ`)N ;pbF֑EAiYv*oȩJ Cj9cʦ&{O,Xuy-ji>]$)Ra""S3F/OnyfТ!cޏ)QUaХ{*&pp.Hl~DL? |n@\' &oEζMAzdk@m"Mj<)xDxɕp* ϸPQm$S7m0 1ArJ]YaoF4)l cHW[4 >XrbCQy"vT,!sG ¢CL,nQHX!J@p2T)~KG1Va5nP(u^+C4]jԏGV|h-mʌ5, >j߁h?%;΂䶗q~|4_zE4n޴]Px(}HU_7PzʘqwCQސc^)adQOHVgm@*_P5s$-9da`V^^dTQϩ>ev}TMcr)3#dMQKWVqEa\*haǧqYsJ<ڔBJijtiwzڃb9f**:k˒!yk׿>a%eQq]idvRL@D+ j A 0 |+$[`qj9jΥe9m@F>nEcGdWZm./ޚw`k'W M OB: '덤Rӥ5YSO'XzǗ`mMHi IP50Iu"ճK:Q4vJo>Z{oHrmVa|MD$mM`C #ԡT]:F& |thrlW5uI!/Hb~,Tz3nǬ:YϾ/ LY27GEoe2a{j\gۍA>E'U%PU2x\ӣZBm3j5+0pn9&K+/T KXCU:1/XgUCMλtHѢjjQb6*p~[J3]wBB-bjq>aL~EAVq0GP!iɝJ U<[d\ JQjxD'+=ȸ-ߝwhi\}hg# o0Bǻ+=0ܼ.J1.Ֆ=6o߾pCq? wfJVFity$&608, :ju`lAHʪ([&sDQu P 󲲪V TOU,?S?( +`yS `|l>O@ ٿ< j0z!^E4} a~eAQ; @~ܝBZ8j}7=<u(E|gV>UW[ޡ֪ȵ?vяQjfrUG.:9C@œV+XN/8 D>Ks{ݪ! dtC?Fa왟"9CEO44濨͞J7<ݥ H~E.h?-R[2`X1Ł60EbVUf.[l5r_>BI(=0!'NV¯onR~];I]ZPO~*<4G*H;,,86WLtӠD%_v[`ϯtda;P19;aEr*Fgy͚w DC pk'`$t DoL;:EFܸM2FpFjd Ń_xQ)eGS"3$Q39k -[T˓F/f7v+˨ewabJ*>=t47(Ζ0 CkLOGW~&|( aklDiÇfHoŏ9u/79Fhrt= l$8sUeɭrO5|}Ԫ16.&տQ=+bƒ&1' a5a2LJ[#Ku3r3k?tBrٶHl3|(1%!&; Ԧr¿ e$ˋE"m?`G p]D4$mD[n8&3Ys1];J)6|cNxڣe8/hUX$!' Mgw-=3/aj,w no ]4Gmx;lR!1 &kaxI4T/Fd7ŎO'5;@w)ɎW26 |o.0.n(,JAw~˸J(&読nda%s|{kaa^O䕽 3̞ޑHx˓*lnE=e,` v<ƴۋ)~eMٹ.f:YL8+/=_N/7 endstream endobj 200 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.18)/Keywords() /CreationDate (D:20190927092745+02'00') /ModDate (D:20190927092745+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) kpathsea version 6.2.3) >> endobj 152 0 obj << /Type /ObjStm /N 67 /First 589 /Length 3528 /Filter /FlateDecode >> stream xZYsI~ׯnb#|`ilȖG_yZdq#puuuV_fef. %B+#i V\[amYZ[AhkkmO{ W2r堄\1ª`| -Np$>Q oBhF'|L(3pI✔QM2"d|Qg9-$bpDRV [Ɋ wJ(RQ̆JLY9X10(nɦx ,H7IX,rIV0`.<ɀ`@6L@ PV+(c.0 ;i$ k@kFs70ŧ@1:S(c _8 =~ܓ_o! .̚"AA=t|7h\t|_; ~{i,8$Hʁx)r [1Iqs7H1}oY*vAc!A{p2m8|1 sX*D£PQQc60=`zo:g1 #Z ora0yRy{1Π@>8C#(1 DѮ ѸBCZLN hi0ħ՛b6`Nh#WY{7 "1D&t '!| u2"CiR%$fE%4)R0oZh)YG j#a`;H)9KR:tZH [2ES+F&,/xx6 W!uLWx,ٔ+՚ǸS^62T5,Yj:,}UYCk}h"Q<٬VTΥJVvBjw^{VB C bVQ+O͂Gq_f tR+Is1\}\pR~1}+JJҘESҔx=&KMSO; %o]j J؊9ujt"=J)'M~tؖQsg(//2"hZazBSReQ1™n;!VQ#`Go^'<y7T+Yb܊W (b2'?{ Sb~zxdbP+>iWpBO|Hã`4ؽ5؟͚뗘zu% x\ &K/Py*\A^ȏD^ʡky#r|[9S9~`z%grv5i9g,6p W24f4{ρF8Yx4!h5.`7Ck-7j>x6d8Ȉ6~_x޸ ogBOy*exk FSAku ]!'KͤZ Ye\6=:;E\6Hk游􍰳#D b &tAo,67ܴZ3t?ڴZL6lƪ7GvO|܇*UmxѦ]@ 76Jưѥ%շY V *S~K0lS4ͦ F7[cyXwP~R o80m*GhM,@f cGNmtx<@3> Û͆'m}O~Ԑ2s?a};^7lw}y o.~^NI${RԴqOVn^|;?XeVk9Tjd*޶c~`Soy{ECn WX҆ P}-.{iCC29ʂp89bO>m٫Ք>Z|+>u#v{+ }G~T+%ﶗm͊zIZy{F+u\Kשi87lK_nWΥJdnwґVSwS\ Tlw/nJ?%_Ia־K +\jU<~H5/X.>JÏSG\K&."bzK~&jSF=X@êrYWZVPEߢ'B{z7AI!K0cn«pŀ]h#y67m~;i> Rӷ;=;K8\ZFش 55زq15m٨lW|ƆU6E܃q5M bSCl@lZzyTuUrHGÿ[{p5ph{`5`XLhţ`2\/p]}vzEJWzJC/Ж}W3~v暥ǕPX1_Dv ʿՊ24R 6p2-b=(cu꩚jZmNK^n(Op|/t_tKkdWt^^BjE݇) uP5레kA׬֯Ymjլ~SynCxUpipr-ŗ{3IE)x^Z%|JhŹ% ~|^Res<fQOo]@TI endstream endobj 201 0 obj << /Type /XRef /Index [0 202] /Size 202 /W [1 3 1] /Root 199 0 R /Info 200 0 R /ID [ ] /Length 517 /Filter /FlateDecode >> stream xMSaϹKExz神"%DJ%QB++ 3lge,4g _`d0y~7}}l3%s{P+aDUj0wԀ[xCZPnGm2R=C;}T4xGQYdj,i